Distribución Normal de Probabilidad
Distribución Normal de Probabilidad Continua
Una distribución de probabilidad continua es una distribución cuya
función de distribución es continua. Por lo tanto, una distribución de
probabilidad continua define las probabilidades de una variable
aleatoria continua.
Ejemplos:
- El peso de los alumnos de un curso.
- El tiempo de duración de un componente eléctrico.
- La rentabilidad de las acciones de las empresas que cotizan en
bolsa.
- La velocidad de un coche.
- El precio de unas acciones bursátiles.

Área
El área bajo la curva es igual a 1
Para variables aleatorias continuas, área = probabilidad
El área a la izquierda de la media es igual a .5
Porcentaje
1-pnorm(30,25.5,4.5)
## [1] 0.1586553
X
qnorm(.95,25.5,4.5)
## [1] 32.90184
Ejercicio 4
Si un fabricante desea desarollar un auto que supere el 95% de las
compactos actuales. ¿Cual debe ser el rendimiento mpg?
25.5+1.645*4.5
## [1] 32.9025
#El auto compacto debe recorrer 32.9 mpg para superar el 95% de autos actuales
Ejercicio 4.1
Suponga que los diametros de tallos no soportados en la base de una
especie particular de girasol, tienen una distribucion con un diametro
promedio de 35 mm y una desviacion estandar de 3mm.
a) ¿Cuál es la probabilidad de que una planta de girasol tenga un
diametro de base de mas de 40 mm?
z41<- (40-35)/3
z41
## [1] 1.666667
p41 <- 1-pnorm(40,35,3)
p41
## [1] 0.04779035
Función de Densidad de Probabilidad (Normal)
x <- 40
meanx <- 35
desx <- 3
x_densidad <- seq(meanx-3*desx,meanx+3*desx,length=1000)
y_densidad <- dnorm(x_densidad,meanx,desx)
plot(x_densidad,y_densidad,type="l",lty=1,xlab="x",ylab="f(x)", main="Función de Densidad de Probabilidad (Normal)", col="red")

Función de Distribución de Probabilidad (Normal)
x_distribucion <- seq(meanx-3*desx,meanx+3*desx,length=1000)
y_distribucion <- pnorm(x_distribucion,meanx,desx)
plot(x_distribucion,y_distribucion,type="l",lty=1,xlab="x",ylab="f(x)", main="Función de Distribución de Probabilidad (Normal)", col="blue")

b) Si las plantas de girasol se seleccionan al azar ¿cúal es la
probabilidad de que ambas plantas tengan un diametro de base de mas de
40 mm?
p42 <- p41*p41
p42
## [1] 0.002283918
c) ¿Dentro de que límites esperaria usted que se encuentren los
diametros de base, con probabilidad de 0.95?
p43<- 35-(1.96*3)
p43<- 35+(1.96*3)
d) ¿Que diametro representa el 90% de la distribución de
diámetros?
p44<- qnorm(.90,35,3)
p44
## [1] 38.84465
## PhantomJS not found. You can install it with webshot::install_phantomjs(). If it is installed, please make sure the phantomjs executable can be found via the PATH variable.
Shiny applications not supported in static R Markdown documents
Ejercicio 5
Un nuevo proceso para producir diamantes sinteticos es rentable sólo
si el peso de estos es mayor a 0.5 quilates para evaluarlo se generaron
con los siguientes pesos: 0.46,0.61, 0.52,0.48,0.57,0.54
El proceso es rentable?
1)Ho: m >= 0.5 / H1= m > 0.5
2) α= 0.05
3) Zona de aceptación

4) Estadística De Prueba
peso_diamante<- c(0.46,0.61, 0.52,0.48,0.57,0.54)
peso_diamante
## [1] 0.46 0.61 0.52 0.48 0.57 0.54
promedio <- mean(peso_diamante)
promedio
## [1] 0.53
desviacion<- sqrt(var(peso_diamante))
desviacion
## [1] 0.05585696
n<- 6
miu <- 0.5
t1<- (promedio-miu)/(desviacion/sqrt(n))
t1
## [1] 1.315587
5) No se rechaza H0, los datos no presentan suficiente evidencia
para indicar que el peso medio de los diamantes exceda los 0.5
quilates
Gráficas Generales de t de Studen
Función de Densidad De Probabilidad (t de studen)
x_densidad2<- seq(-4,4,length=1000)
y_densidad2<- dt(x_densidad2, df=5)
plot(x_densidad2, y_densidad2,type="l", lty=1, xlab="t", ylab="f(t)" , main="Función de densidad de probabilidad(t de Student)")

Función de distribución de probabilidad (t de studen)
x_densidad3<- seq(-4,4,length=1000)
y_densidad3<- pt(x_densidad3, df=5)
plot(x_densidad3, y_densidad3,type="l", lty=1, xlab="t", ylab="f(t)" , main="Función de densidad de probabilidad(t de Student)")

Ejercicio 5.1
Los desechos industriales y residuales descargados en nuestros ríos
y arroyos absorben oxígeno y, por tanto, reducen la cantidad de oxígeno
disuelto disponible para peces y otras formas de fauna acuática. Una
agencia estatal requiere un mínimo de 5 partes por millón (ppm) de
oxígeno disuelto para que el contenido de oxígeno sea suficiente para
sostener vida acuática. Seis especímenes de agua tomados de un río en un
lugar específico durante la estación de aguas bajas (julio) dio lecturas
de 4.9, 5.1, 4.9, 5, 5 y 4.7 de oxígeno disuelto.
¿Los datos dan suficiente evidencia para indicar que el contenido de
oxígeno disuelto es menor a 5 ppm) Pruebe usando a=.05
1) Ho: m >= 0.5 / H1: m > 0.5
2) 2) α= 0.05
3) Zona de acceptación

4) Estadistico de prueba t
oxigeno <- c(4.9, 5.1, 4.9, 5, 5, 4.7)
promedio1 <- mean(oxigeno)
promedio1
## [1] 4.933333
desviacion1<- sqrt(var(oxigeno))
desviacion1
## [1] 0.136626
n1<- 6
miu1 <- 5
t2<- (promedio1-miu1)/(desviacion1/sqrt(n1))
t2
## [1] -1.195229
5) No se rechaza
LS0tDQp0aXRsZTogIk0zX0EyIg0KYXV0aG9yOiAiSm9yZ2UgQ2FuaXphbGV6Ig0KZGF0ZTogIjIwMjMtMDgtMjkiDQpvdXRwdXQ6IA0KICBodG1sX2RvY3VtZW50Og0KICAgIHRvYzogVFJVRQ0KICAgIHRvY19mbG9hdDogVFJVRQ0KICAgIGNvZGVfZG93bmxvYWQ6IFRSVUUNCiAgICB0aGVtZTogImZsYXRseSINCi0tLQ0KIVtdKEM6L1VzZXJzL2FkcmlhL0RvY3VtZW50cy9TZW1lc3RyZSA3L01vZHVsbyAzL2ExLmpwZykNCg0KDQpgYGB7ciBtZXNzYWdlPUZBTFNFLCB3YXJuaW5nPUZBTFNFfQ0KbGlicmFyeShkcGx5cikNCmxpYnJhcnkoZ2dwbG90MikNCmBgYA0KDQoNCg0KIyAqKkRpc3RyaWJ1Y2nDs24gTm9ybWFsIGRlIFByb2JhYmlsaWRhZCoqIA0KIyMgKkRpc3RyaWJ1Y2nDs24gTm9ybWFsIGRlIFByb2JhYmlsaWRhZCBDb250aW51YSogDQojIyMgVW5hIGRpc3RyaWJ1Y2nDs24gZGUgcHJvYmFiaWxpZGFkIGNvbnRpbnVhIGVzIHVuYSBkaXN0cmlidWNpw7NuIGN1eWEgZnVuY2nDs24gZGUgZGlzdHJpYnVjacOzbiBlcyBjb250aW51YS4gUG9yIGxvIHRhbnRvLCB1bmEgZGlzdHJpYnVjacOzbiBkZSBwcm9iYWJpbGlkYWQgY29udGludWEgZGVmaW5lIGxhcyBwcm9iYWJpbGlkYWRlcyBkZSB1bmEgdmFyaWFibGUgYWxlYXRvcmlhIGNvbnRpbnVhLg0KIyMjIEVqZW1wbG9zOg0KIyMjIC0gRWwgcGVzbyBkZSBsb3MgYWx1bW5vcyBkZSB1biBjdXJzby4NCiMjIyAtIEVsIHRpZW1wbyBkZSBkdXJhY2nDs24gZGUgdW4gY29tcG9uZW50ZSBlbMOpY3RyaWNvLg0KIyMjIC0gTGEgcmVudGFiaWxpZGFkIGRlIGxhcyBhY2Npb25lcyBkZSBsYXMgZW1wcmVzYXMgcXVlIGNvdGl6YW4gZW4gYm9sc2EuDQojIyMgLSBMYSB2ZWxvY2lkYWQgZGUgdW4gY29jaGUuDQojIyMgLSBFbCBwcmVjaW8gZGUgdW5hcyBhY2Npb25lcyBidXJzw6F0aWxlcy4NCg0KIVtdKEM6L1VzZXJzL2FkcmlhL0RvY3VtZW50cy9TZW1lc3RyZSA3L01vZHVsbyAzL2EyLmpwZykNCg0KDQoNCiMjICrDgXJlYSoNCiMjIyBFbCDDoXJlYSBiYWpvIGxhIGN1cnZhIGVzIGlndWFsIGEgMQ0KIyMjIFBhcmEgdmFyaWFibGVzIGFsZWF0b3JpYXMgY29udGludWFzLCDDoXJlYSA9IHByb2JhYmlsaWRhZA0KIyMjIEVsIMOhcmVhIGEgbGEgaXpxdWllcmRhIGRlIGxhIG1lZGlhIGVzIGlndWFsIGEgLjUNCiMjIyBFbCDDoXJlYSBhIGxhIGRlcmVjaGEgZGUgbGEgbWVkaWEgZXMgaWd1YWwgYSAuNQ0KDQohW10oQzovVXNlcnMvYWRyaWEvRG9jdW1lbnRzL1NlbWVzdHJlIDcvTW9kdWxvIDMvYTMuanBnKQ0KDQoNCiMjIyAqUG9yY2VudGFqZSoNCmBgYHtyfQ0KMS1wbm9ybSgzMCwyNS41LDQuNSkNCmBgYA0KDQojIyMgKlgqDQpgYGB7cn0NCnFub3JtKC45NSwyNS41LDQuNSkNCmBgYA0KIyMgKipFamVyY2ljaW8gNCoqDQojIyMgVW4gZXN0dWRpbyBkZW1vc3RybyBxdWUgZWwgdXNvIGRlIGdhc29ubGluYSBwYXJhIGF1dG9zIGNvbXBhY3RvcyB2ZW5kaWRvcyBlbiBFc3RhZG9zIFVuaWRvcyBlc3RhIGRpc3RyaWJ1aWRvIG5vcm1hbG1lbnRlLCBjb24gdW5hIG1lZGlhIGRlIDI1LjUgbWlsbGFzIHBlciBnYWxsb24gKG1wZykgeSB1bmEgZGVzdmlhY2nDs24gZXN0w6FuZGFyIGRlIDQ1IG1wZy4gwr9RdWUgcG9yY2VudGFqZSBkZSBhdXRvcyByZWNvcnJlIDMwIG1wZyBvIG3DoXM/DQpgYGB7cn0NCigzMC0yNS41KS80LjUNCjEtMC44NDEzDQojUmVwcmVzZW50YSBlbCAxNS45JSBkZSBhdXRvcyByZWNvcnJlIDMwIG1wZyBvIG3DoXMNCmBgYA0KIyMjIFNpIHVuIGZhYnJpY2FudGUgZGVzZWEgZGVzYXJvbGxhciB1biBhdXRvIHF1ZSBzdXBlcmUgZWwgOTUlIGRlIGxhcyBjb21wYWN0b3MgYWN0dWFsZXMuIMK/Q3VhbCBkZWJlIHNlciBlbCByZW5kaW1pZW50byBtcGc/DQpgYGB7cn0NCjI1LjUrMS42NDUqNC41DQoNCiNFbCBhdXRvIGNvbXBhY3RvIGRlYmUgcmVjb3JyZXIgMzIuOSBtcGcgcGFyYSBzdXBlcmFyIGVsIDk1JSBkZSBhdXRvcyBhY3R1YWxlcw0KYGBgDQoNCiMjICoqRWplcmNpY2lvIDQuMSoqIA0KIyMjIFN1cG9uZ2EgcXVlIGxvcyBkaWFtZXRyb3MgZGUgdGFsbG9zIG5vIHNvcG9ydGFkb3MgZW4gbGEgYmFzZSBkZSB1bmEgZXNwZWNpZSBwYXJ0aWN1bGFyIGRlIGdpcmFzb2wsIHRpZW5lbiB1bmEgZGlzdHJpYnVjaW9uIGNvbiB1biBkaWFtZXRybyBwcm9tZWRpbyBkZSAzNSBtbSB5IHVuYSBkZXN2aWFjaW9uIGVzdGFuZGFyIGRlIDNtbS4NCg0KDQojIyMgYSkgwr9DdcOhbCBlcyBsYSBwcm9iYWJpbGlkYWQgZGUgcXVlIHVuYSBwbGFudGEgZGUgZ2lyYXNvbCB0ZW5nYSB1biBkaWFtZXRybyBkZSBiYXNlIGRlIG1hcyBkZSA0MCBtbT8NCg0KYGBge3J9DQp6NDE8LSAoNDAtMzUpLzMNCno0MQ0KcDQxIDwtIDEtcG5vcm0oNDAsMzUsMykNCnA0MQ0KYGBgDQoNCiMjIyAqRnVuY2nDs24gZGUgRGVuc2lkYWQgZGUgUHJvYmFiaWxpZGFkIChOb3JtYWwpKg0KYGBge3J9DQp4IDwtIDQwDQptZWFueCA8LSAzNQ0KZGVzeCA8LSAzDQp4X2RlbnNpZGFkIDwtIHNlcShtZWFueC0zKmRlc3gsbWVhbngrMypkZXN4LGxlbmd0aD0xMDAwKQ0KeV9kZW5zaWRhZCA8LSBkbm9ybSh4X2RlbnNpZGFkLG1lYW54LGRlc3gpDQpwbG90KHhfZGVuc2lkYWQseV9kZW5zaWRhZCx0eXBlPSJsIixsdHk9MSx4bGFiPSJ4Iix5bGFiPSJmKHgpIiwgbWFpbj0iRnVuY2nDs24gZGUgRGVuc2lkYWQgZGUgUHJvYmFiaWxpZGFkIChOb3JtYWwpIiwgY29sPSJyZWQiKQ0KYGBgDQoNCiMjIyAqRnVuY2nDs24gZGUgRGlzdHJpYnVjacOzbiBkZSBQcm9iYWJpbGlkYWQgKE5vcm1hbCkqDQpgYGB7cn0NCnhfZGlzdHJpYnVjaW9uIDwtIHNlcShtZWFueC0zKmRlc3gsbWVhbngrMypkZXN4LGxlbmd0aD0xMDAwKQ0KeV9kaXN0cmlidWNpb24gPC0gcG5vcm0oeF9kaXN0cmlidWNpb24sbWVhbngsZGVzeCkNCnBsb3QoeF9kaXN0cmlidWNpb24seV9kaXN0cmlidWNpb24sdHlwZT0ibCIsbHR5PTEseGxhYj0ieCIseWxhYj0iZih4KSIsIG1haW49IkZ1bmNpw7NuIGRlIERpc3RyaWJ1Y2nDs24gZGUgUHJvYmFiaWxpZGFkIChOb3JtYWwpIiwgY29sPSJibHVlIikNCmBgYA0KDQojIyMgYikgU2kgbGFzIHBsYW50YXMgZGUgZ2lyYXNvbCBzZSBzZWxlY2Npb25hbiBhbCBhemFyIMK/Y8O6YWwgZXMgbGEgcHJvYmFiaWxpZGFkIGRlIHF1ZSBhbWJhcyBwbGFudGFzIHRlbmdhbiB1biBkaWFtZXRybyBkZSBiYXNlIGRlIG1hcyBkZSA0MCBtbT8NCg0KYGBge3J9DQpwNDIgPC0gcDQxKnA0MQ0KcDQyDQpgYGANCiMjIyBjKSDCv0RlbnRybyBkZSBxdWUgbMOtbWl0ZXMgZXNwZXJhcmlhIHVzdGVkIHF1ZSBzZSBlbmN1ZW50cmVuIGxvcyBkaWFtZXRyb3MgZGUgYmFzZSwgY29uIHByb2JhYmlsaWRhZCBkZSAwLjk1Pw0KYGBge3J9DQpwNDM8LSAzNS0oMS45NiozKQ0KDQpwNDM8LSAzNSsoMS45NiozKQ0KYGBgDQojIyMgZCkgwr9RdWUgZGlhbWV0cm8gcmVwcmVzZW50YSBlbCA5MCUgZGUgbGEgZGlzdHJpYnVjacOzbiBkZSBkacOhbWV0cm9zPw0KYGBge3J9DQpwNDQ8LSBxbm9ybSguOTAsMzUsMykNCnA0NA0KYGBgDQoNCg0KYGBge3IsIGVjaG89RkFMU0V9DQpsaWJyYXJ5KHNoaW55KQ0KbGlicmFyeShzaGlueXRoZW1lcykNCg0KIyBEZWZpbmUgVUkgZm9yIGFwcGxpY2F0aW9uIHRoYXQgZHJhd3MgYSBoaXN0b2dyYW0NCmxpYnJhcnkoc2hpbnkpDQpsaWJyYXJ5KHNoaW55dGhlbWVzKQ0Kc2hpbnlBcHAoDQoNCnVpIDwtIGZsdWlkUGFnZSh0aGVtZSA9IHNoaW55dGhlbWUoImNlcnVsZWFuIiksDQogICAgICAgICAgICAgICAgbmF2YmFyUGFnZSgiQXBsaWNhY2lvbmVzIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhYlBhbmVsKCJEaXN0cmlidWNpw7NuIE5vcm1hbCIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpZGViYXJQYW5lbCgNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWdzJGgzKCJJbmdyZXNhIGxvcyBzaWd1aWVudGVzIGRhdG9zOiIpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWVyaWNJbnB1dCgieF9mdW5jaW9uIiwieDoiLCAxKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1lcmljSW5wdXQoInByb21lZGlvMSIsInByb21lZGlvOiIsIDApLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWVyaWNJbnB1dCgiZGVzX2VzdCIsIkRlc3ZpYWNpw7NuIEVzdGFuZGFyOiIsIDEpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFpblBhbmVsKA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGgxKCJGdW5jacOzbiBkZSBEaXN0cmlidWNpw7NuIHkgRGVuc2lkYWQgTm9ybWFsIiksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxvdE91dHB1dCgiZGVuc2lkYWQiKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbG90T3V0cHV0KCJkaXN0cmlidWNpb24xIikNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhYlBhbmVsKCJUYWIgMiIpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFiUGFuZWwoIlRhYiAzIikNCiAgICAgICAgICAgICAgICApDQopLCAgIA0Kc2VydmVyIDwtIGZ1bmN0aW9uKGlucHV0LCBvdXRwdXQpIHsNCiAgb3V0cHV0JGRlbnNpZGFkIDwtIHJlbmRlclBsb3Qoew0KICAgIHhfZGVuc2lkYWQxIDwtIHNlcShpbnB1dCRwcm9tZWRpbzEtMyppbnB1dCRkZXNfZXN0LCBpbnB1dCRwcm9tZWRpbzErMyppbnB1dCRkZXNfZXN0LCBsZW5ndGg9MTAwMCkNCiAgICB5X2RlbnNpZGFkMSA8LSBkbm9ybSh4X2RlbnNpZGFkMSxpbnB1dCRwcm9tZWRpbzEsaW5wdXQkZGVzX2VzdCkNCiAgICBkZW5zaWRhZDwtIHBsb3QoeF9kZW5zaWRhZDEsIHlfZGVuc2lkYWQxLHR5cGU9ImwiLCBsdHk9MSwgeGxhYj0ieCIsIHlsYWI9ICJmKHgpIixtYWluPSJGdW5jacOzbiBkZSBEZW5zaWRhZCBkZSBQcm9iYWJpbGlkYWQgKE5vcm1hbCkiLCBjb2w9InNreWJsdWUiKQ0KICAgIH0pDQogIG91dHB1dCRkaXN0cmlidWNpb24xIDwtIHJlbmRlclBsb3Qoew0KICAgIHhfZGlzdHJpYnVjaW9uMSA8LSBzZXEoaW5wdXQkcHJvbWVkaW8xLTMqaW5wdXQkZGVzX2VzdCwgaW5wdXQkcHJvbWVkaW8xKzMqaW5wdXQkZGVzX2VzdCwgbGVuZ3RoPTEwMDApDQogICAgeV9kaXN0cmlidWNpb24xIDwtIHBub3JtKHhfZGlzdHJpYnVjaW9uMSxpbnB1dCRwcm9tZWRpbzEsaW5wdXQkZGVzX2VzdCkNCiAgICBkaXN0cmlidWNpb24xIDwtcGxvdCh4X2Rpc3RyaWJ1Y2lvbjEsIHlfZGlzdHJpYnVjaW9uMSx0eXBlPSJsIiwgbHR5PTEsIHhsYWI9IngiLCB5bGFiPSAiZih4KSIsbWFpbj0iRnVuY2nDs24gZGUgRGlzdHJpYnVjacOzbiBkZSBQcm9iYWJpbGlkYWQgKE5vcm1hbCkiLCBjb2w9InJlZCIpDQogICAgDQogIH0pDQp9KQ0KYGBgDQoNCg0KIyMgKipFamVyY2ljaW8gNSoqDQojIyMgVW4gbnVldm8gcHJvY2VzbyBwYXJhIHByb2R1Y2lyIGRpYW1hbnRlcyBzaW50ZXRpY29zIGVzIHJlbnRhYmxlIHPDs2xvIHNpIGVsIHBlc28gZGUgZXN0b3MgZXMgbWF5b3IgYSAwLjUgcXVpbGF0ZXMgcGFyYSBldmFsdWFybG8gc2UgZ2VuZXJhcm9uIGNvbiBsb3Mgc2lndWllbnRlcyBwZXNvczogMC40NiwwLjYxLCAwLjUyLDAuNDgsMC41NywwLjU0DQoNCiMjIyBFbCBwcm9jZXNvIGVzIHJlbnRhYmxlPw0KDQojIyMgMSlIbzogbSA+PSAwLjUgLyBIMT0gbSA+IDAuNQ0KDQojIyMgMikgzrE9IDAuMDUNCg0KIyMjIDMpIFpvbmEgZGUgYWNlcHRhY2nDs24NCiFbXShDOi9Vc2Vycy9hZHJpYS9Eb2N1bWVudHMvU2VtZXN0cmUgNy9Nb2R1bG8gMy9hNC5qcGcpDQoNCg0KIyMgNCkgRXN0YWTDrXN0aWNhIERlIFBydWViYQ0KYGBge3J9DQpwZXNvX2RpYW1hbnRlPC0gYygwLjQ2LDAuNjEsIDAuNTIsMC40OCwwLjU3LDAuNTQpDQpwZXNvX2RpYW1hbnRlDQpwcm9tZWRpbyA8LSBtZWFuKHBlc29fZGlhbWFudGUpDQpwcm9tZWRpbw0KZGVzdmlhY2lvbjwtIHNxcnQodmFyKHBlc29fZGlhbWFudGUpKQ0KZGVzdmlhY2lvbg0KDQpuPC0gNg0KDQptaXUgPC0gMC41DQoNCnQxPC0gKHByb21lZGlvLW1pdSkvKGRlc3ZpYWNpb24vc3FydChuKSkNCnQxDQoNCmBgYA0KIyMjIDUpIE5vIHNlIHJlY2hhemEgSDAsIGxvcyBkYXRvcyBubyBwcmVzZW50YW4gc3VmaWNpZW50ZSBldmlkZW5jaWEgcGFyYSBpbmRpY2FyIHF1ZSBlbCBwZXNvIG1lZGlvIGRlIGxvcyBkaWFtYW50ZXMgZXhjZWRhIGxvcyAwLjUgcXVpbGF0ZXMNCg0KIyMgKipHcsOhZmljYXMgR2VuZXJhbGVzIGRlIHQgZGUgU3R1ZGVuKioNCiMjIyBGdW5jacOzbiBkZSBEZW5zaWRhZCBEZSBQcm9iYWJpbGlkYWQgKHQgZGUgc3R1ZGVuKQ0KYGBge3J9DQp4X2RlbnNpZGFkMjwtIHNlcSgtNCw0LGxlbmd0aD0xMDAwKQ0KeV9kZW5zaWRhZDI8LSBkdCh4X2RlbnNpZGFkMiwgZGY9NSkNCg0KcGxvdCh4X2RlbnNpZGFkMiwgeV9kZW5zaWRhZDIsdHlwZT0ibCIsIGx0eT0xLCB4bGFiPSJ0IiwgeWxhYj0iZih0KSIgLCBtYWluPSJGdW5jacOzbiBkZSBkZW5zaWRhZCBkZSBwcm9iYWJpbGlkYWQodCBkZSBTdHVkZW50KSIpDQpgYGANCg0KIyMjIEZ1bmNpw7NuIGRlIGRpc3RyaWJ1Y2nDs24gZGUgcHJvYmFiaWxpZGFkICh0IGRlIHN0dWRlbikNCmBgYHtyfQ0KeF9kZW5zaWRhZDM8LSBzZXEoLTQsNCxsZW5ndGg9MTAwMCkNCnlfZGVuc2lkYWQzPC0gcHQoeF9kZW5zaWRhZDMsIGRmPTUpDQoNCnBsb3QoeF9kZW5zaWRhZDMsIHlfZGVuc2lkYWQzLHR5cGU9ImwiLCBsdHk9MSwgeGxhYj0idCIsIHlsYWI9ImYodCkiICwgbWFpbj0iRnVuY2nDs24gZGUgZGVuc2lkYWQgZGUgcHJvYmFiaWxpZGFkKHQgZGUgU3R1ZGVudCkiKQ0KYGBgDQoNCiMjICoqRWplcmNpY2lvIDUuMSoqDQojIyMgTG9zIGRlc2VjaG9zIGluZHVzdHJpYWxlcyB5IHJlc2lkdWFsZXMgZGVzY2FyZ2Fkb3MgZW4gbnVlc3Ryb3MgcsOtb3MgeSBhcnJveW9zIGFic29yYmVuIG94w61nZW5vIHksIHBvciB0YW50bywgcmVkdWNlbiBsYSBjYW50aWRhZCBkZSBveMOtZ2VubyBkaXN1ZWx0byBkaXNwb25pYmxlIHBhcmEgcGVjZXMgeSBvdHJhcyBmb3JtYXMgZGUgZmF1bmEgYWN1w6F0aWNhLiBVbmEgYWdlbmNpYSBlc3RhdGFsIHJlcXVpZXJlIHVuIG3DrW5pbW8gZGUgNSBwYXJ0ZXMgcG9yIG1pbGzDs24gKHBwbSkgZGUgb3jDrWdlbm8gZGlzdWVsdG8gcGFyYSBxdWUgZWwgY29udGVuaWRvIGRlIG94w61nZW5vIHNlYSBzdWZpY2llbnRlIHBhcmEgc29zdGVuZXIgdmlkYSBhY3XDoXRpY2EuIFNlaXMgZXNwZWPDrW1lbmVzIGRlIGFndWEgdG9tYWRvcyBkZSB1biByw61vIGVuIHVuIGx1Z2FyIGVzcGVjw61maWNvIGR1cmFudGUgbGEgZXN0YWNpw7NuIGRlIGFndWFzIGJhamFzIChqdWxpbykgZGlvIGxlY3R1cmFzIGRlIDQuOSwgNS4xLCA0LjksIDUsIDUgeSA0LjcgZGUgb3jDrWdlbm8gZGlzdWVsdG8uDQojIyMgwr9Mb3MgZGF0b3MgZGFuIHN1ZmljaWVudGUgZXZpZGVuY2lhIHBhcmEgaW5kaWNhciBxdWUgZWwgY29udGVuaWRvIGRlIG94w61nZW5vIGRpc3VlbHRvIGVzIG1lbm9yIGEgNSBwcG0pIFBydWViZSB1c2FuZG8gYT0uMDUNCg0KIyMjIDEpIEhvOiBtID49IDAuNSAvIEgxOiBtID4gMC41DQoNCiMjIyAyKSAyKSDOsT0gMC4wNQ0KDQojIyMgMykgWm9uYSBkZSBhY2NlcHRhY2nDs24NCiFbXShDOi9Vc2Vycy9hZHJpYS9Eb2N1bWVudHMvU2VtZXN0cmUgNy9Nb2R1bG8gMy9hNi5qcGcpDQoNCg0KIyMjIDQpIEVzdGFkaXN0aWNvIGRlIHBydWViYSB0DQpgYGB7cn0NCm94aWdlbm8gPC0gYyg0LjksIDUuMSwgNC45LCA1LCA1LCA0LjcpDQoNCnByb21lZGlvMSA8LSBtZWFuKG94aWdlbm8pDQpwcm9tZWRpbzENCmRlc3ZpYWNpb24xPC0gc3FydCh2YXIob3hpZ2VubykpDQpkZXN2aWFjaW9uMQ0KbjE8LSA2DQoNCm1pdTEgPC0gNQ0KDQp0MjwtIChwcm9tZWRpbzEtbWl1MSkvKGRlc3ZpYWNpb24xL3NxcnQobjEpKQ0KdDINCmBgYA0KDQojIyMgNSkgTm8gc2UgcmVjaGF6YQ0KDQoNCg0KDQoNCg0K