Intervalos de confianza de la diferencia de dos proporciones poblacionales

Cuando se requiere saber si las proporciones de éxitos de dos poblaciones (\(P_{1}\) y \(P_{2}\)) son iguales o no, por ejemplo, la proporción de artículos defectuosos de la máquina 1 (\(P_{1}\)) y la proporción de artículos defectuosos de la máquina 2 (\(P_{2}\)), se construirá un intervalo de confianza para la diferencia de éstas proporciones como sigue:

\((\hat{p}_{1}-\hat{p}_{2}) - z_{\frac{\alpha}{2}}\sqrt{\frac{\hat{p}_{1}(1-\hat{p}_{1})}{n_{1}}+\frac{\hat{p}_{2}(1-\hat{p}_{2})}{n_{2}}}\leq P_{1}-P_{2}\leq (\hat{p}_{1}-\hat{p}_{2}) + z_{\frac{\alpha}{2}}\sqrt{\frac{\hat{p}_{1}(1-\hat{p}_{1})}{n_{1}}+\frac{\hat{p}_{2}(1-\hat{p}_{2})}{n_{2}}}\)

o de manera breve

\((\hat{p}_{1}-\hat{p}_{2}) \pm z_{\frac{\alpha}{2}}\sqrt{\frac{\hat{p}_{1}(1-\hat{p}_{1})}{n_{1}}+\frac{\hat{p}_{2}(1-\hat{p}_{2})}{n_{2}}}\)

Si el intervalo construido contiene al 0 (es decir que un límite sea negativo y el otro positivo) se concluye que las dos proporciones de éxitos poblacionales son iguales.

Cuando el 0 no este contenido habrá dos maneras de interpretar:

* Si los dos límites son positivos se dice que la proporción de éxitos en la población 1 es mayor que la proporción de éxitos en la población 2.
* Si los dos límites son negativos se dice que la proporción de éxitos en la población 1 es menor que la proporción de éxitos en la población 2.

Ejemplos.


Ejemplo 1. Se quiere saber si la proporción de mujeres zurdas en ITSON (\(P_{1}\)) difiere o no de la proporción de hombres zurdos en ITSON (\(P_{2}\)).

Para poder responder a ese cuestionamiento deben seleccionarse muestras aleatorias de hombres y mujeres. Suponga que se seleccionaron 200 hombres y 220 mujeres de los cuales 20 hombres y 23 mujeres resultaron ser zurdos.

  1. Calcular el porcentaje de exitos en las muestras (\(P_{1}\) y \(P_{2}\)).

Hay un 10.45% de mujeres zurdas en la muestra:

\(\hat{p}_{1} = \frac{x_{1}}{n_{1}} = \frac{23}{220} = 0.1045\)

e1p1 <- 23/220
e1p1
[1] 0.1045455

y un 10% de hombres zurdos en la muestra:

\(\hat{p}_{2} = \frac{x_{2}}{n_{2}} = \frac{20}{220} = 0.10\)

e1p2 <- 20/200
e1p2
[1] 0.1
  1. Según la confianza el valor de \(Z_{α/2}\) será cómo sigue:
  • 99% ——— 2.58
  • 95% ——— 1.96
  • 90% ——— 1.65

En este caso si se establece la confianza en 95% el valor de z será 1.96.

  1. Luego sustituimos en la fórmula del intervalo:
\((\hat{p}_{1}-\hat{p}_{2}) \pm z_{\frac{\alpha}{2}}\sqrt{\frac{\hat{p}_{1}(1-\hat{p}_{1})}{n_{1}}+\frac{\hat{p}_{2}(1-\hat{p}_{2})}{n_{2}}}\)

Primero, el límite inferior del intervalo:

e1li <- (e1p1 - e1p2) - 1.96 * sqrt((e1p1*(1 - e1p1))/220 + (e1p2*(1 - e1p2))/200)
e1li
[1] -0.05344955

y un 10% de hombres zurdos en la muestra:

e1ls <- (e1p1 - e1p2) + 1.96 * sqrt((e1p1*(1 - e1p1))/220 + (e1p2*(1 - e1p2))/200)
e1ls
[1] 0.06254046
  1. Finalmente la interpretación será:

El intervalo va de -0.054 a 0.062 o de -5.4% hasta 6.2%. Note que el 0 (cero) esta contenido en el intervalo, por lo que se puede decir que:

Al 95% de confianza, la proporción de mujeres zurdas y la proporción de hombres zurdos de ITSON es la misma.

Note que la conclusión fue hecha considerando a la población


Ejemplo 2. La porporción de votantes a favor del candidato A es mayor que la proporción de votantes del candidato B? Use 95% de confianza para responder.

Suponga que en una muestra de 1000 personas, 340 dijeron que votarían por A. En otra muestra de 1000 personas 450 dijeron que votarían por B.

  1. Calcular el porcentaje de exitos en las muestras (\(P_{1}\) y \(P_{2}\)).

Si etiquetamos a la primera muestra como 1 (es indiferente cuál es 1 o 2). Hay un 34% de la muestra que votaría por A:

\(\hat{p}_{1} = \frac{x_{1}}{n_{1}} = \frac{340}{1000} = 0.34\)

e2p1 <- 340/1000
e2p1
[1] 0.34

y un 45% de la muestra 2 votaría por B:

\(\hat{p}_{2} = \frac{x_{2}}{n_{2}} = \frac{450}{1000} = 0.45\)

e2p2 <- 450/1000
e2p2
[1] 0.45
  1. Según la confianza el valor de \(Z_{α/2}\) será cómo sigue:
  • 99% ——— 2.58
  • 95% ——— 1.96
  • 90% ——— 1.65

En este caso si se establece la confianza en 95% el valor de z será 1.96.

  1. Luego sustituimos en la fórmula del intervalo:

Primero, el límite inferior del intervalo

e2li <- (e2p1 - e2p2) - 1.96 * sqrt((e2p1*(1 - e2p1))/1000 + (e2p2*(1 - e2p2))/1000)
e2li
[1] -0.1525776

Ahora el límite superior:

e2ls <- (e2p1 - e2p2) + 1.96 * sqrt((e2p1*(1 - e2p1))/1000 + (e2p2*(1 - e2p2))/1000)
e2ls
[1] -0.06742241
  1. Finalmente la interpretación será:

El intervalo va de -0.153 a -0.067 o de -15.3% hasta -6.7%. Note que el 0 (cero) NO esta contenido en el intervalo y que los dos límites son negativos, por lo que se puede decir que:

Al 95% de confianza, la proporción que votará por A es menor que la proporción de votantes de B.

¿Qué tan mas pequeña?, pues de 6.7% a 15.3% más pequeña.

Si las etiquetas 1 y 2 se cambiaran, los dos intervalos serían positivos y eso nos llevaría a la misma conclusión, la proporción de votantes a favor de B es mayor (de 6.7% a 15.3%) que la que está a favor de A.


Ejercicios


1. En una muestra de 100 pacientes sometidos a un cierto tratamiento (A) se obtienen 80 curaciones y en otra muestra de 100 pacientes sometidos a otro tratamiento (B) se obtienen 90 curaciones.

  • Calcular e interpretar el intervalo de confianza del 95% de la diferencia de proporciones de pacientes que mejoran (P). Después de contruir el intervalo diga cuál es el mejor tratamiento.
  1. Calcular el porcentaje de éxitos
# P1 = 100 pacientes sometidos (n) al Tratamiento A con 80 curaciones (x)
tp1 <- 80/100
tp1
[1] 0.8
# P2 = 100 pacientes sometidos (n) al Tratamiento B con 90 curaciones (x)
tp2 <- 90/100
tp2
[1] 0.9

El tratamiento A tiene un 80% de éxito, Mientras que, el tratamiento B tiene un 90% de éxito.

Debido a que la confianza es del 95% el valor de \(Z_{α/2}\) es de 1.96

  1. Cálculo del intervalo
# Límite Inferior
tli <- (tp1 - tp2) - 1.96 * sqrt((tp1*(1 - tp1))/100 + (tp2*(1-tp2))/100 )
tli
[1] -0.198
# li En porcentaje
tlipor <- tli*100
tlipor
[1] -19.8
# Límite Superior
tls <- (tp1 - tp2) + 1.96 * sqrt((tp1*(1 - tp1))/100 + (tp2*(1-tp2))/100 )
tls
[1] -0.002
# ls En porcentaje
tlspor <- tls*100
tlspor
[1] -0.2
  1. Conclusión Ejercicio 1: El intervalo se encuentra comprendido entre -19.8% y -0.2% por lo que, con un 95% de confianza, puede concluirse que la población que se sometió al tratamiento B tuvo mayor casos de éxito, por lo que, este tratamiento es el mejor.

2. En una muestra de 400 pilas tipo B fabricadas por una empresa, se encontraron 21 defectuosas. Mientras que de 500 pilas tipo C 10 fueron defectuosos. Estime con un intervalo del 99% de confianza la diferencia de proporciones de pilas defectuosas y diga en cuál tipo hay más proporción de pilas defectuosos.

  1. Calcular el porcentaje de éxitos
# P1 = 400 pilas tipo B fabricadas (n) se encuentran 21 defectuosas (x)
pp1 <-21/400
pp1
[1] 0.0525
# P2 = 500 pilas tipo C fabricadas (n) se encuentran 10 defectuosas (x)
pp2 <- 10/500
pp2
[1] 0.02

De la población de pilas tipo B un 5.25% salieron defectuosas, mientras que, de la de pilas tipo C solo el 2% lo son.

Como el nivel de confianza es de 99% el valor de \(Z_{α/2}\) es igual a 2.58.

  1. Cálculo del intervalo
# Límite Inferior
pli <- (pp1 - pp2) - 2.58 * sqrt((pp1*(1 - pp1))/400 + (pp2*(1 - pp2))/500)
pli
[1] -0.0004957061
# li En porcentaje
plipor <- pli * 100
plipor
[1] -0.04957061
# Límite Superior
pls <- (pp1 - pp2) + 2.58 * sqrt((pp1*(1 - pp1))/400 + (pp2*(1 - pp2))/500)
pls
[1] 0.06549571
# ls En porcentaje
plspor <- pls * 100
plspor
[1] 6.549571
  1. Conclusión Ejercicio 2: Con 99% de confianza el intervalo se encuentra comprendido entre -0.05% y 6.54% por lo que se puede decir que la proporción de pilas defectuosas de los tipos B y C es la misma.

3. En Ciudad Obregón de 250 personas entrevistadas, 100 leen el periodico habitualmente y en Hermosillo 98 de 240 leen el periodico. Al 90% de confianza en que ciudad la proporción de personas que lee el periodico es mayor?.

  1. Calcular el porcentaje de éxitos
## P1 = 100 personas que leen habitualmente el periódico habitualmente en Ciudad obregón (x) de las 250 entrevistadas (n)

cp1 <- 100/250
cp1
[1] 0.4
# P2 = De las 240 personas entrevistadas en Hermosillo (n) 98 de ellas leen el periódico habitualmente

cp2 <- 98/240
cp2
[1] 0.4083333

El número de personas que leen el periódico en Ciudad Obregón corresponde al 40% de los entrevistados, mientras que, en Hermosillo las personas que leen habitualmente el periódico es el 40.83%

el nivel de confianza es del 90%,por lo que, \(Z_{ α/2}\) es igual a 1.65

  1. Cálculo del intervalo
# Límite Inferior
cli <- (cp1 - cp2) - 1.65 * sqrt((cp1*(1 - cp1))/250 + (cp2*(1 - cp2))/240)
cli
[1] -0.08150586
# li En porcentaje
clipor <- cli * 100
clipor
[1] -8.150586
# Límite Superior
cls <- (cp1 - cp2) + 1.65 * sqrt((cp1*(1 - cp1))/250 + (cp2*(1 - cp2))/240)
cls
[1] 0.06483919
# ls En porcentaje
clspor <-  cls * 100
clspor
[1] 6.483919
  1. Conclusión Ejercicio 3: Con un 90% de confianza la proporción de personas que lee el periódico habitualmente es la misma en ambas ciudades, debido a que el intervalo de confianza se encuentra comprendido entre -8.15% y 6.48%.

………… Melanie Icedo Félix …………

LS0tDQp0aXRsZTogIkFzaWduYWNpw7NuIDYgLSBNZWxhbmllIEljZWRvIEZlbGl4Ig0Kb3V0cHV0OiBodG1sX25vdGVib29rDQotLS0NCjxkaXYgc3R5bGU9InRleHQtYWxpZ246IGp1c3RpZnkiPg0KDQojIEludGVydmFsb3MgZGUgY29uZmlhbnphIGRlIGxhIGRpZmVyZW5jaWEgZGUgZG9zIHByb3BvcmNpb25lcyBwb2JsYWNpb25hbGVzDQoNCkN1YW5kbyBzZSByZXF1aWVyZSBzYWJlciBzaSBsYXMgcHJvcG9yY2lvbmVzIGRlIMOpeGl0b3MgZGUgZG9zIHBvYmxhY2lvbmVzICgkUF97MX0kIHkgJFBfezJ9JCkgc29uIGlndWFsZXMgbyBubywgcG9yIGVqZW1wbG8sIGxhIHByb3BvcmNpw7NuIGRlIGFydMOtY3Vsb3MgZGVmZWN0dW9zb3MgZGUgbGEgbcOhcXVpbmEgMSAoJFBfezF9JCkgeSBsYSBwcm9wb3JjacOzbiBkZSBhcnTDrWN1bG9zIGRlZmVjdHVvc29zIGRlIGxhIG3DoXF1aW5hIDIgKCRQX3syfSQpLCBzZSBjb25zdHJ1aXLDoSB1biBpbnRlcnZhbG8gZGUgY29uZmlhbnphIHBhcmEgbGEgZGlmZXJlbmNpYSBkZSDDqXN0YXMgcHJvcG9yY2lvbmVzIGNvbW8gc2lndWU6DQoNCjxkaXYgc3R5bGU9InRleHQtYWxpZ246IGNlbnRlciI+DQokKFxoYXR7cH1fezF9LVxoYXR7cH1fezJ9KSAtIHpfe1xmcmFje1xhbHBoYX17Mn19XHNxcnR7XGZyYWN7XGhhdHtwfV97MX0oMS1caGF0e3B9X3sxfSl9e25fezF9fStcZnJhY3tcaGF0e3B9X3syfSgxLVxoYXR7cH1fezJ9KX17bl97Mn19fVxsZXEgUF97MX0tUF97Mn1cbGVxIChcaGF0e3B9X3sxfS1caGF0e3B9X3syfSkgKyB6X3tcZnJhY3tcYWxwaGF9ezJ9fVxzcXJ0e1xmcmFje1xoYXR7cH1fezF9KDEtXGhhdHtwfV97MX0pfXtuX3sxfX0rXGZyYWN7XGhhdHtwfV97Mn0oMS1caGF0e3B9X3syfSl9e25fezJ9fX0kDQo8ZGl2IHN0eWxlPSJ0ZXh0LWFsaWduOiBqdXN0aWZ5Ij4NCg0KbyBkZSBtYW5lcmEgYnJldmUNCg0KPGRpdiBzdHlsZT0idGV4dC1hbGlnbjogY2VudGVyIj4NCiQoXGhhdHtwfV97MX0tXGhhdHtwfV97Mn0pIFxwbSAgel97XGZyYWN7XGFscGhhfXsyfX1cc3FydHtcZnJhY3tcaGF0e3B9X3sxfSgxLVxoYXR7cH1fezF9KX17bl97MX19K1xmcmFje1xoYXR7cH1fezJ9KDEtXGhhdHtwfV97Mn0pfXtuX3syfX19JA0KPGRpdiBzdHlsZT0idGV4dC1hbGlnbjoganVzdGlmeSI+DQoNCiMjIyMgU2kgZWwgaW50ZXJ2YWxvIGNvbnN0cnVpZG8gY29udGllbmUgYWwgMCAoZXMgZGVjaXIgcXVlIHVuIGzDrW1pdGUgc2VhIG5lZ2F0aXZvIHkgZWwgb3RybyBwb3NpdGl2bykgc2UgY29uY2x1eWUgcXVlIGxhcyBkb3MgcHJvcG9yY2lvbmVzIGRlIMOpeGl0b3MgcG9ibGFjaW9uYWxlcyBzb24gaWd1YWxlcy4NCg0KIyMjIyBDdWFuZG8gZWwgMCBubyBlc3RlIGNvbnRlbmlkbyBoYWJyw6EgZG9zIG1hbmVyYXMgZGUgaW50ZXJwcmV0YXI6DQoNCiMjIyMjICogU2kgbG9zIGRvcyBsw61taXRlcyBzb24gcG9zaXRpdm9zIHNlIGRpY2UgcXVlIGxhIHByb3BvcmNpw7NuIGRlIMOpeGl0b3MgZW4gbGEgcG9ibGFjacOzbiAxIGVzIG1heW9yIHF1ZSBsYSBwcm9wb3JjacOzbiBkZSDDqXhpdG9zIGVuIGxhIHBvYmxhY2nDs24gMi4NCg0KIyMjIyMgKiBTaSBsb3MgZG9zIGzDrW1pdGVzIHNvbiBuZWdhdGl2b3Mgc2UgZGljZSBxdWUgbGEgcHJvcG9yY2nDs24gZGUgw6l4aXRvcyBlbiBsYSBwb2JsYWNpw7NuIDEgZXMgbWVub3IgcXVlIGxhIHByb3BvcmNpw7NuIGRlIMOpeGl0b3MgZW4gbGEgcG9ibGFjacOzbiAyLg0KDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQojIyAqKkVqZW1wbG9zLioqDQoNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNCioqRWplbXBsbyAxLioqICpTZSBxdWllcmUgc2FiZXIgc2kgbGEgcHJvcG9yY2nDs24gZGUgbXVqZXJlcyB6dXJkYXMgZW4gSVRTT04gKCRQX3sxfSQpIGRpZmllcmUgbyBubyBkZSBsYSBwcm9wb3JjacOzbiBkZSBob21icmVzIHp1cmRvcyBlbiBJVFNPTiAoJFBfezJ9JCkuKg0KDQpQYXJhIHBvZGVyIHJlc3BvbmRlciBhIGVzZSBjdWVzdGlvbmFtaWVudG8gZGViZW4gc2VsZWNjaW9uYXJzZSBtdWVzdHJhcyBhbGVhdG9yaWFzIGRlIGhvbWJyZXMgeSBtdWplcmVzLiBTdXBvbmdhIHF1ZSBzZSBzZWxlY2Npb25hcm9uIDIwMCBob21icmVzIHkgMjIwIG11amVyZXMgZGUgbG9zIGN1YWxlcyAyMCBob21icmVzIHkgMjMgbXVqZXJlcyByZXN1bHRhcm9uIHNlciB6dXJkb3MuDQoNCjEuIENhbGN1bGFyIGVsIHBvcmNlbnRhamUgZGUgZXhpdG9zIGVuIGxhcyBtdWVzdHJhcyAoJFBfezF9JCB5ICRQX3syfSQpLg0KDQpIYXkgdW4gMTAuNDUlIGRlIG11amVyZXMgenVyZGFzIGVuIGxhIG11ZXN0cmE6DQoNCg0KJFxoYXR7cH1fezF9ID0gXGZyYWN7eF97MX19e25fezF9fSA9IFxmcmFjezIzfXsyMjB9ID0gMC4xMDQ1JA0KDQpgYGB7ciBlcDF9DQplMXAxIDwtIDIzLzIyMA0KZTFwMQ0KYGBgDQoNCnkgdW4gMTAlIGRlIGhvbWJyZXMgenVyZG9zIGVuIGxhIG11ZXN0cmE6DQoNCg0KJFxoYXR7cH1fezJ9ID0gXGZyYWN7eF97Mn19e25fezJ9fSA9IFxmcmFjezIwfXsyMjB9ID0gMC4xMCQNCg0KYGBge3IgZXAyfQ0KZTFwMiA8LSAyMC8yMDANCmUxcDINCmBgYA0KDQoyLiBTZWfDum4gbGEgY29uZmlhbnphIGVsIHZhbG9yIGRlICRaX3vOsS8yfSQgc2Vyw6EgY8OzbW8gc2lndWU6DQoNCiogKio5OSUg4oCU4oCU4oCUIDIuNTgqKg0KKiAqKjk1JSDigJTigJTigJQgMS45NioqDQoqICoqOTAlIOKAlOKAlOKAlCAxLjY1KioNCg0KRW4gZXN0ZSBjYXNvIHNpIHNlIGVzdGFibGVjZSBsYSBjb25maWFuemEgZW4gOTUlIGVsIHZhbG9yIGRlICoqeioqIHNlcsOhIDEuOTYuDQoNCjMuIEx1ZWdvIHN1c3RpdHVpbW9zIGVuIGxhIGbDs3JtdWxhIGRlbCBpbnRlcnZhbG86DQoNCjxkaXYgc3R5bGU9InRleHQtYWxpZ246IGNlbnRlciI+DQokKFxoYXR7cH1fezF9LVxoYXR7cH1fezJ9KSBccG0gIHpfe1xmcmFje1xhbHBoYX17Mn19XHNxcnR7XGZyYWN7XGhhdHtwfV97MX0oMS1caGF0e3B9X3sxfSl9e25fezF9fStcZnJhY3tcaGF0e3B9X3syfSgxLVxoYXR7cH1fezJ9KX17bl97Mn19fSQNCjxkaXYgc3R5bGU9InRleHQtYWxpZ246IGp1c3RpZnkiPg0KDQpQcmltZXJvLCBlbCBsw61taXRlIGluZmVyaW9yIGRlbCBpbnRlcnZhbG86DQoNCmBgYHtyIGUtaW50ZXJ2YWxvIGluZn0NCmUxbGkgPC0gKGUxcDEgLSBlMXAyKSAtIDEuOTYgKiBzcXJ0KChlMXAxKigxIC0gZTFwMSkpLzIyMCArIChlMXAyKigxIC0gZTFwMikpLzIwMCkNCmUxbGkNCmBgYA0KDQp5IHVuIDEwJSBkZSBob21icmVzIHp1cmRvcyBlbiBsYSBtdWVzdHJhOg0KDQpgYGB7ciBlLWludGVydmFsbyBzdXB9DQplMWxzIDwtIChlMXAxIC0gZTFwMikgKyAxLjk2ICogc3FydCgoZTFwMSooMSAtIGUxcDEpKS8yMjAgKyAoZTFwMiooMSAtIGUxcDIpKS8yMDApDQplMWxzDQpgYGANCg0KDQo0LiBGaW5hbG1lbnRlIGxhIGludGVycHJldGFjacOzbiBzZXLDoToNCg0KRWwgaW50ZXJ2YWxvIHZhIGRlIC0wLjA1NCBhIDAuMDYyIG8gZGUgLTUuNCUgaGFzdGEgNi4yJS4gTm90ZSBxdWUgZWwgMCAoY2VybykgZXN0YSBjb250ZW5pZG8gZW4gZWwgaW50ZXJ2YWxvLCBwb3IgbG8gcXVlIHNlIHB1ZWRlIGRlY2lyIHF1ZToNCg0KQWwgOTUlIGRlIGNvbmZpYW56YSwgbGEgcHJvcG9yY2nDs24gZGUgbXVqZXJlcyB6dXJkYXMgeSBsYSBwcm9wb3JjacOzbiBkZSBob21icmVzIHp1cmRvcyBkZSBJVFNPTiBlcyBsYSBtaXNtYS4NCg0KKk5vdGUgcXVlIGxhIGNvbmNsdXNpw7NuIGZ1ZSBoZWNoYSBjb25zaWRlcmFuZG8gYSBsYSBwb2JsYWNpw7NuKg0KDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQoqKkVqZW1wbG8gMi4qKiAqTGEgcG9ycG9yY2nDs24gZGUgdm90YW50ZXMgYSBmYXZvciBkZWwgY2FuZGlkYXRvIEEgZXMgbWF5b3IgcXVlIGxhIHByb3BvcmNpw7NuIGRlIHZvdGFudGVzIGRlbCBjYW5kaWRhdG8gQj8gVXNlIDk1JSBkZSBjb25maWFuemEgcGFyYSByZXNwb25kZXIuKg0KDQpTdXBvbmdhIHF1ZSBlbiB1bmEgbXVlc3RyYSBkZSAxMDAwIHBlcnNvbmFzLCAzNDAgZGlqZXJvbiBxdWUgdm90YXLDrWFuIHBvciBBLiBFbiBvdHJhIG11ZXN0cmEgZGUgMTAwMCBwZXJzb25hcyA0NTAgZGlqZXJvbiBxdWUgdm90YXLDrWFuIHBvciBCLg0KDQoxLiBDYWxjdWxhciBlbCBwb3JjZW50YWplIGRlIGV4aXRvcyBlbiBsYXMgbXVlc3RyYXMgKCRQX3sxfSQgeSAkUF97Mn0kKS4NCg0KU2kgZXRpcXVldGFtb3MgYSBsYSBwcmltZXJhIG11ZXN0cmEgY29tbyAxIChlcyBpbmRpZmVyZW50ZSBjdcOhbCBlcyAxIG8gMikuIEhheSB1biAzNCUgZGUgbGEgbXVlc3RyYSBxdWUgdm90YXLDrWEgcG9yIEE6DQoNCiRcaGF0e3B9X3sxfSA9IFxmcmFje3hfezF9fXtuX3sxfX0gPSBcZnJhY3szNDB9ezEwMDB9ID0gMC4zNCQNCg0KYGBge3IgZTJwMX0NCmUycDEgPC0gMzQwLzEwMDANCmUycDENCmBgYA0KDQp5IHVuIDQ1JSBkZSBsYSBtdWVzdHJhIDIgdm90YXLDrWEgcG9yIEI6DQoNCiRcaGF0e3B9X3syfSA9IFxmcmFje3hfezJ9fXtuX3syfX0gPSBcZnJhY3s0NTB9ezEwMDB9ID0gMC40NSQNCg0KYGBge3IgZTJwMn0NCmUycDIgPC0gNDUwLzEwMDANCmUycDINCmBgYA0KDQoyLiBTZWfDum4gbGEgY29uZmlhbnphIGVsIHZhbG9yIGRlICRaX3vOsS8yfSQgc2Vyw6EgY8OzbW8gc2lndWU6DQoNCiogKio5OSUg4oCU4oCU4oCUIDIuNTgqKg0KKiAqKjk1JSDigJTigJTigJQgMS45NioqDQoqICoqOTAlIOKAlOKAlOKAlCAxLjY1KioNCg0KRW4gZXN0ZSBjYXNvIHNpIHNlIGVzdGFibGVjZSBsYSBjb25maWFuemEgZW4gOTUlIGVsIHZhbG9yIGRlIHogc2Vyw6EgMS45Ni4NCg0KMy4gTHVlZ28gc3VzdGl0dWltb3MgZW4gbGEgZsOzcm11bGEgZGVsIGludGVydmFsbzoNCg0KUHJpbWVybywgZWwgbMOtbWl0ZSBpbmZlcmlvciBkZWwgaW50ZXJ2YWxvDQoNCmBgYHtyIGUyLWludGVyIGluZn0NCmUybGkgPC0gKGUycDEgLSBlMnAyKSAtIDEuOTYgKiBzcXJ0KChlMnAxKigxIC0gZTJwMSkpLzEwMDAgKyAoZTJwMiooMSAtIGUycDIpKS8xMDAwKQ0KZTJsaQ0KYGBgDQoNCkFob3JhIGVsIGzDrW1pdGUgc3VwZXJpb3I6DQoNCmBgYHtyIGUyLWludGVyIHN1cH0NCmUybHMgPC0gKGUycDEgLSBlMnAyKSArIDEuOTYgKiBzcXJ0KChlMnAxKigxIC0gZTJwMSkpLzEwMDAgKyAoZTJwMiooMSAtIGUycDIpKS8xMDAwKQ0KZTJscw0KYGBgDQoNCg0KNC4gRmluYWxtZW50ZSBsYSBpbnRlcnByZXRhY2nDs24gc2Vyw6E6DQoNCkVsIGludGVydmFsbyB2YSBkZSAtMC4xNTMgYSAtMC4wNjcgbyBkZSAtMTUuMyUgaGFzdGEgLTYuNyUuICpOb3RlIHF1ZSBlbCAwIChjZXJvKSBOTyBlc3RhIGNvbnRlbmlkbyBlbiBlbCBpbnRlcnZhbG8geSBxdWUgbG9zIGRvcyBsw61taXRlcyBzb24gbmVnYXRpdm9zKiwgcG9yIGxvIHF1ZSBzZSBwdWVkZSBkZWNpciBxdWU6DQoNCkFsIDk1JSBkZSBjb25maWFuemEsIGxhIHByb3BvcmNpw7NuIHF1ZSB2b3RhcsOhIHBvciBBIGVzIG1lbm9yIHF1ZSBsYSBwcm9wb3JjacOzbiBkZSB2b3RhbnRlcyBkZSBCLg0KDQrCv1F1w6kgdGFuIG1hcyBwZXF1ZcOxYT8sIHB1ZXMgZGUgNi43JSBhIDE1LjMlIG3DoXMgcGVxdWXDsWEuDQoNClNpIGxhcyBldGlxdWV0YXMgMSB5IDIgc2UgY2FtYmlhcmFuLCBsb3MgZG9zIGludGVydmFsb3Mgc2Vyw61hbiBwb3NpdGl2b3MgeSBlc28gbm9zIGxsZXZhcsOtYSBhIGxhIG1pc21hIGNvbmNsdXNpw7NuLCBsYSBwcm9wb3JjacOzbiBkZSB2b3RhbnRlcyBhIGZhdm9yIGRlIEIgZXMgbWF5b3IgKGRlIDYuNyUgYSAxNS4zJSkgcXVlIGxhIHF1ZSBlc3TDoSBhIGZhdm9yIGRlIEEuDQoNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNCiMjICoqRWplcmNpY2lvcyoqDQoNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPGRpdiBzdHlsZT0idGV4dC1hbGlnbjoganVzdGlmeSI+DQoNCioqMS4qKiAqRW4gdW5hIG11ZXN0cmEgZGUgMTAwIHBhY2llbnRlcyBzb21ldGlkb3MgYSB1biBjaWVydG8gdHJhdGFtaWVudG8gKEEpIHNlIG9idGllbmVuIDgwIGN1cmFjaW9uZXMgeSBlbiBvdHJhIG11ZXN0cmEgZGUgMTAwIHBhY2llbnRlcyBzb21ldGlkb3MgYSBvdHJvIHRyYXRhbWllbnRvIChCKSBzZSBvYnRpZW5lbiA5MCBjdXJhY2lvbmVzLioNCg0KKiBDYWxjdWxhciBlIGludGVycHJldGFyIGVsIGludGVydmFsbyBkZSAqKmNvbmZpYW56YSBkZWwgOTUlKiogZGUgbGEgZGlmZXJlbmNpYSBkZSBwcm9wb3JjaW9uZXMgZGUgcGFjaWVudGVzIHF1ZSBtZWpvcmFuIChQKS4gRGVzcHXDqXMgZGUgY29udHJ1aXIgZWwgaW50ZXJ2YWxvIGRpZ2EgY3XDoWwgZXMgZWwgbWVqb3IgdHJhdGFtaWVudG8uDQoNCjEuIENhbGN1bGFyIGVsIHBvcmNlbnRhamUgZGUgw6l4aXRvcw0KDQpgYGB7ciBleGl0b3MgdHJhdGFtaWVudG9zIH0NCiMgUDEgPSAxMDAgcGFjaWVudGVzIHNvbWV0aWRvcyAobikgYWwgVHJhdGFtaWVudG8gIkEiIGNvbiA4MCBjdXJhY2lvbmVzICh4KQ0KdHAxIDwtIDgwLzEwMA0KdHAxDQoNCiMgUDIgPSAxMDAgcGFjaWVudGVzIHNvbWV0aWRvcyAobikgYWwgVHJhdGFtaWVudG8gIkIiIGNvbiA5MCBjdXJhY2lvbmVzICh4KQ0KdHAyIDwtIDkwLzEwMA0KdHAyDQoNCmBgYA0KDQpFbCB0cmF0YW1pZW50byAqQSogdGllbmUgdW4gODAlIGRlIMOpeGl0bywgTWllbnRyYXMgcXVlLCBlbCB0cmF0YW1pZW50byAqQiogdGllbmUgdW4gOTAlIGRlIMOpeGl0by4NCg0KRGViaWRvIGEgcXVlIGxhIGNvbmZpYW56YSBlcyBkZWwgOTUlIGVsIHZhbG9yIGRlICRaX3vOsS8yfSQgZXMgZGUgKioxLjk2KioNCg0KMi4gQ8OhbGN1bG8gZGVsIGludGVydmFsbw0KDQpgYGB7ciBpbnRlcnZhbG9zIHRyYXRhbWllbnRvc30NCiMgTMOtbWl0ZSBJbmZlcmlvcg0KdGxpIDwtICh0cDEgLSB0cDIpIC0gMS45NiAqIHNxcnQoKHRwMSooMSAtIHRwMSkpLzEwMCArICh0cDIqKDEtdHAyKSkvMTAwICkNCnRsaQ0KDQojIGxpIEVuIHBvcmNlbnRhamUNCnRsaXBvciA8LSB0bGkqMTAwDQp0bGlwb3INCg0KIyBMw61taXRlIFN1cGVyaW9yDQp0bHMgPC0gKHRwMSAtIHRwMikgKyAxLjk2ICogc3FydCgodHAxKigxIC0gdHAxKSkvMTAwICsgKHRwMiooMS10cDIpKS8xMDAgKQ0KdGxzDQoNCiMgbHMgRW4gcG9yY2VudGFqZQ0KdGxzcG9yIDwtIHRscyoxMDANCnRsc3Bvcg0KYGBgDQoNCjMuICoqQ29uY2x1c2nDs24gRWplcmNpY2lvIDE6KiogRWwgaW50ZXJ2YWxvIHNlIGVuY3VlbnRyYSBjb21wcmVuZGlkbyBlbnRyZSAtMTkuOCUgeSAtMC4yJSBwb3IgbG8gcXVlLCBjb24gdW4gOTUlIGRlIGNvbmZpYW56YSwgcHVlZGUgY29uY2x1aXJzZSBxdWUgbGEgcG9ibGFjacOzbiBxdWUgc2Ugc29tZXRpw7MgYWwgdHJhdGFtaWVudG8gKkIqIHR1dm8gbWF5b3IgY2Fzb3MgZGUgw6l4aXRvLCBwb3IgbG8gcXVlLCBlc3RlIHRyYXRhbWllbnRvIGVzIGVsIG1lam9yLg0KDQoNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQoqKjIuKiogKkVuIHVuYSBtdWVzdHJhIGRlIDQwMCBwaWxhcyB0aXBvIEIgZmFicmljYWRhcyBwb3IgdW5hIGVtcHJlc2EsIHNlIGVuY29udHJhcm9uIDIxIGRlZmVjdHVvc2FzLiBNaWVudHJhcyBxdWUgZGUgNTAwIHBpbGFzIHRpcG8gQyAxMCBmdWVyb24gZGVmZWN0dW9zb3MuIEVzdGltZSBjb24gdW4gaW50ZXJ2YWxvIGRlbCAqKio5OSUgZGUgY29uZmlhbnphKiogKmxhIGRpZmVyZW5jaWEgZGUgcHJvcG9yY2lvbmVzIGRlIHBpbGFzIGRlZmVjdHVvc2FzIHkgZGlnYSBlbiBjdcOhbCB0aXBvIGhheSBtw6FzIHByb3BvcmNpw7NuIGRlIHBpbGFzIGRlZmVjdHVvc29zLioNCg0KMS4gQ2FsY3VsYXIgZWwgcG9yY2VudGFqZSBkZSDDqXhpdG9zDQoNCmBgYHtyIGV4aXRvcyBwaWxhc30NCiMgUDEgPSA0MDAgcGlsYXMgdGlwbyBCIGZhYnJpY2FkYXMgKG4pIHNlIGVuY3VlbnRyYW4gMjEgZGVmZWN0dW9zYXMgKHgpDQpwcDEgPC0yMS80MDANCnBwMQ0KDQojIFAyID0gNTAwIHBpbGFzIHRpcG8gQyBmYWJyaWNhZGFzIChuKSBzZSBlbmN1ZW50cmFuIDEwIGRlZmVjdHVvc2FzICh4KQ0KcHAyIDwtIDEwLzUwMA0KcHAyDQpgYGANCg0KRGUgbGEgcG9ibGFjacOzbiBkZSAqcGlsYXMgdGlwbyBCKiB1biA1LjI1JSBzYWxpZXJvbiBkZWZlY3R1b3NhcywgbWllbnRyYXMgcXVlLCBkZSBsYSBkZSAqcGlsYXMgdGlwbyBDKiBzb2xvIGVsIDIlIGxvIHNvbi4NCg0KQ29tbyBlbCBuaXZlbCBkZSBjb25maWFuemEgZXMgZGUgOTklIGVsIHZhbG9yIGRlICRaX3vOsS8yfSQgZXMgaWd1YWwgYSAqKjIuNTgqKi4NCg0KMi4gQ8OhbGN1bG8gZGVsIGludGVydmFsbw0KDQpgYGB7ciBpbnRlcnZhbG8gcGlsYXN9DQojIEzDrW1pdGUgSW5mZXJpb3INCnBsaSA8LSAocHAxIC0gcHAyKSAtIDIuNTggKiBzcXJ0KChwcDEqKDEgLSBwcDEpKS80MDAgKyAocHAyKigxIC0gcHAyKSkvNTAwKQ0KcGxpDQoNCiMgbGkgRW4gcG9yY2VudGFqZQ0KcGxpcG9yIDwtIHBsaSAqIDEwMA0KcGxpcG9yDQoNCiMgTMOtbWl0ZSBTdXBlcmlvcg0KcGxzIDwtIChwcDEgLSBwcDIpICsgMi41OCAqIHNxcnQoKHBwMSooMSAtIHBwMSkpLzQwMCArIChwcDIqKDEgLSBwcDIpKS81MDApDQpwbHMNCg0KIyBscyBFbiBwb3JjZW50YWplDQpwbHNwb3IgPC0gcGxzICogMTAwDQpwbHNwb3INCmBgYA0KDQozLiAqKkNvbmNsdXNpw7NuIEVqZXJjaWNpbyAyOioqIENvbiA5OSUgZGUgY29uZmlhbnphIGVsIGludGVydmFsbyBzZSBlbmN1ZW50cmEgY29tcHJlbmRpZG8gZW50cmUgLTAuMDUlIHkgNi41NCUgcG9yIGxvIHF1ZSBzZSBwdWVkZSBkZWNpciBxdWUgbGEgcHJvcG9yY2nDs24gZGUgcGlsYXMgZGVmZWN0dW9zYXMgZGUgbG9zIHRpcG9zICpCKiB5ICpDKiBlcyBsYSBtaXNtYS4NCg0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNCioqMy4qKiAqRW4gQ2l1ZGFkIE9icmVnw7NuIGRlIDI1MCBwZXJzb25hcyBlbnRyZXZpc3RhZGFzLCAxMDAgbGVlbiBlbCBwZXJpb2RpY28gaGFiaXR1YWxtZW50ZSB5IGVuIEhlcm1vc2lsbG8gOTggZGUgMjQwIGxlZW4gZWwgcGVyaW9kaWNvLiogKipBbCA5MCUgZGUgY29uZmlhbnphKiogKmVuIHF1ZSBjaXVkYWQgbGEgcHJvcG9yY2nDs24gZGUgcGVyc29uYXMgcXVlIGxlZSBlbCBwZXJpb2RpY28gZXMgbWF5b3I/LioNCg0KMS4gQ2FsY3VsYXIgZWwgcG9yY2VudGFqZSBkZSDDqXhpdG9zDQoNCmBgYHtyIGV4aXRvcyBjaXVkYWRlc30NCiMjIFAxID0gMTAwIHBlcnNvbmFzIHF1ZSBsZWVuIGhhYml0dWFsbWVudGUgZWwgcGVyacOzZGljbyBoYWJpdHVhbG1lbnRlIGVuIENpdWRhZCBvYnJlZ8OzbiAoeCkgZGUgbGFzIDI1MCBlbnRyZXZpc3RhZGFzIChuKQ0KDQpjcDEgPC0gMTAwLzI1MA0KY3AxDQoNCiMgUDIgPSBEZSBsYXMgMjQwIHBlcnNvbmFzIGVudHJldmlzdGFkYXMgZW4gSGVybW9zaWxsbyAobikgOTggZGUgZWxsYXMgbGVlbiBlbCBwZXJpw7NkaWNvIGhhYml0dWFsbWVudGUNCg0KY3AyIDwtIDk4LzI0MA0KY3AyDQpgYGANCg0KRWwgbsO6bWVybyBkZSBwZXJzb25hcyBxdWUgbGVlbiBlbCBwZXJpw7NkaWNvIGVuICpDaXVkYWQgT2JyZWfDs24qIGNvcnJlc3BvbmRlIGFsIDQwJSBkZSBsb3MgZW50cmV2aXN0YWRvcywgbWllbnRyYXMgcXVlLCBlbiAqSGVybW9zaWxsbyogbGFzIHBlcnNvbmFzIHF1ZSBsZWVuIGhhYml0dWFsbWVudGUgZWwgcGVyacOzZGljbyBlcyBlbCA0MC44MyUNCg0KZWwgbml2ZWwgZGUgY29uZmlhbnphIGVzIGRlbCA5MCUscG9yIGxvIHF1ZSwgJFpfeyDOsS8yfSQgZXMgaWd1YWwgYSAqKjEuNjUqKg0KDQoyLiBDw6FsY3VsbyBkZWwgaW50ZXJ2YWxvDQoNCmBgYHtyIGludGVydmFsbyBjaXVkYWRlc30NCiMgTMOtbWl0ZSBJbmZlcmlvcg0KY2xpIDwtIChjcDEgLSBjcDIpIC0gMS42NSAqIHNxcnQoKGNwMSooMSAtIGNwMSkpLzI1MCArIChjcDIqKDEgLSBjcDIpKS8yNDApDQpjbGkNCg0KIyBsaSBFbiBwb3JjZW50YWplDQpjbGlwb3IgPC0gY2xpICogMTAwDQpjbGlwb3INCg0KIyBMw61taXRlIFN1cGVyaW9yDQpjbHMgPC0gKGNwMSAtIGNwMikgKyAxLjY1ICogc3FydCgoY3AxKigxIC0gY3AxKSkvMjUwICsgKGNwMiooMSAtIGNwMikpLzI0MCkNCmNscw0KDQojIGxzIEVuIHBvcmNlbnRhamUNCmNsc3BvciA8LSAgY2xzICogMTAwDQpjbHNwb3INCmBgYA0KDQozLiAqKkNvbmNsdXNpw7NuIEVqZXJjaWNpbyAzOioqIENvbiB1biA5MCUgZGUgY29uZmlhbnphIGxhIHByb3BvcmNpw7NuIGRlIHBlcnNvbmFzIHF1ZSBsZWUgZWwgcGVyacOzZGljbyBoYWJpdHVhbG1lbnRlIGVzIGxhIG1pc21hIGVuIGFtYmFzIGNpdWRhZGVzLCBkZWJpZG8gYSBxdWUgZWwgaW50ZXJ2YWxvIGRlIGNvbmZpYW56YSBzZSBlbmN1ZW50cmEgY29tcHJlbmRpZG8gZW50cmUgLTguMTUlIHkgNi40OCUuDQoNCg0KDQoNCg0KLi4uLi4uLi4uLi4uIE1lbGFuaWUgSWNlZG8gRsOpbGl4IC4uLi4uLi4uLi4uLg0K