https://www.gob.mx/salud/documentos/datos-abiertos-152127

Location: “~/R/COVID-19-master/vignettes/Covid_lgm_Mexico”

Sumario Actualizado

[1] "Numero Total de Pacientes (Hospitalizados - Ambulatorios): 41593"
[1] "Resultados Test Covid: c(\"Negativo\", \"Pendiente\", \"Positivo\")"
[2] "Resultados Test Covid: c(25402, 10792, 5399)"                       
[1] "Numero de Pacientes Fallecidos: 847"
[1] "Numero de Pacientes con Test Covid Positivo: 5399"
[1] "Numero de Pacientes Fallecidos con Test Covid Positivo: 406"

Numero de Pacientes - Ingresos a Hospitales

Fecha de Aparicion de Sintomas vs Sexo vs Resultados Test Covid

Sexo: Masculino & Femenino

Test Covid: Positivo & Negativo & Pendiente

Fecha Ingresos Hospitales vs Sexo vs Resultados Test Covid

Sexo: Masculino & Femenino

Test Covid: Positivo & Negativo & Pendiente

Numero de Fallecidos vs Sexo vs Resultados Test Covid

Sexo: Masculino & Femenino

Test Covid: Positivo & Negativo & Pendiente

Numero de Fallecidos vs Resultados Test Covid vs Nacionalidad

Nacionalidad: Mexicana & Extranjero

Test Covid: Positivo & Negativo & Pendiente

Numero de Fallecidos vs Resultados Test Covid vs Tipo Paciente

Tipo paciente: Hospitalizado & Ambulatorio

Test Covid: Positivo & Negativo & Pendiente

Numero de Fallecidos vs Resultados Test Covid vs Origen

Test Covid: Positivo & Negativo & Pendiente

Origen: Usmer & Fuera de Usmer

Numero de Fallecidos vs Resultados Test Covid vs Uci

Test Covid: Positivo & Negativo & Pendiente

Uci: Si & No & na (no aplica)

Numero de Fallecidos vs Resultados Test Covid vs Intubado

Test Covid: Positivo & Negativo & Pendiente

Intubado: Si & No & na (no aplica)

LS0tCnRpdGxlOiAiQ292aWQxOSBNZXhpY28iCmF1dGhvcjogIkFuZHJlcyBQRU5BIGFuZHJlc3BlbmFAZ21haWwuY29tIgpkYXRlOiAiQXByaWwvMTUvMjAyMCIKb3V0cHV0OgogIGh0bWxfbm90ZWJvb2s6CiAgICB0b2M6IHllcwogICAgdG9jX2Zsb2F0OiB5ZXMKICBodG1sX2RvY3VtZW50OgogICAgZGZfcHJpbnQ6IHBhZ2VkCiAgICB0b2M6IHllcwogICAgdG9jX2Zsb2F0OiB5ZXMgICAgCi0tLQoKaHR0cHM6Ly93d3cuZ29iLm14L3NhbHVkL2RvY3VtZW50b3MvZGF0b3MtYWJpZXJ0b3MtMTUyMTI3CgpMb2NhdGlvbjogIn4vUi9DT1ZJRC0xOS1tYXN0ZXIvdmlnbmV0dGVzL0NvdmlkX2xnbV9NZXhpY28iCgpgYGB7ciBzZXR1cCwgaW5jbHVkZT1GQUxTRX0Ka25pdHI6Om9wdHNfY2h1bmskc2V0KAoJZWNobyA9IFRSVUUsCgltZXNzYWdlID0gRkFMU0UsCgl3YXJuaW5nID0gRkFMU0UKKQpgYGAKCjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+Cgpib2R5eyAvKiBOb3JtYWwgICovCiAgICAgIGZvbnQtc2l6ZTogMTZweDsKICB9CnRkIHsgIC8qIFRhYmxlICAqLwogIGZvbnQtc2l6ZTogMTRweDsKfQpoMS50aXRsZSB7CiAgZm9udC1zaXplOiAzOHB4OwogIGNvbG9yOiBEYXJrUmVkOwp9CmgxIHsgLyogSGVhZGVyIDEgKi8KICBmb250LXNpemU6IDI4cHg7CiAgY29sb3I6IEJsdWU7Cn0KaDIgeyAvKiBIZWFkZXIgMiAqLwogICAgZm9udC1zaXplOiAyNHB4OwogIGNvbG9yOiBEYXJrQmx1ZTsKfQpoMyB7IC8qIEhlYWRlciAzICovCiAgZm9udC1zaXplOiAyMHB4OwogIGZvbnQtZmFtaWx5OiAiVGltZXMgTmV3IFJvbWFuIiwgVGltZXMsIHNlcmlmOwogIGNvbG9yOiBEYXJrQmx1ZTsKfQpjb2RlLnJ7IC8qIENvZGUgYmxvY2sgKi8KICAgIGZvbnQtc2l6ZTogMTJweDsKfQpwcmUgeyAvKiBDb2RlIGJsb2NrIC0gZGV0ZXJtaW5lcyBjb2RlIHNwYWNpbmcgYmV0d2VlbiBsaW5lcyAqLwogICAgZm9udC1zaXplOiAxNHB4Owp9Cjwvc3R5bGU+CgpgYGB7ciBlY2hvPUZBTFNFLCBtZXNzYWdlPUZBTFNFLCB3YXJuaW5nPUZBTFNFfQpybShsaXN0ID0gbHMoKSkKbGlicmFyeSgidGlkeXZlcnNlIiwgd2Fybi5jb25mbGljdHMgPSBGKQpsaWJyYXJ5KCJzdHJpbmdpIikKYGBgCgpgYGB7ciBtZXNzYWdlPUZBTFNFLCB3YXJuaW5nPUZBTFNFLCBpbmNsdWRlPUZBTFNFfQojIHVwZGF0ZSBkYXRhIHdpdGggc29tZSBjaGFyZ2VkIGNvbHVtbiBuYW1lcwp0aWR5X2pvaW4gPC0gcmVhZF9jc3YoIn4vUi9DT1ZJRC0xOS1tYXN0ZXIvZGF0YS9DT1ZJRDE5X01leGljb18xNC4wNC4yMDIwLmNzdiIpCmBgYAoKYGBge3IgZWNobz1GQUxTRSwgbWVzc2FnZT1GQUxTRSwgd2FybmluZz1GQUxTRX0KdGlkeV9qb2luIDwtIHRpZHlfam9pbiAlPiUgcmVuYW1lX2FsbCh0b2xvd2VyKQp0aWR5X2pvaW4kcGFpc19uYWNpb25hbGlkYWQgPC0gCiAgc3RyaV90cmFuc19nZW5lcmFsKHRpZHlfam9pbiRwYWlzX25hY2lvbmFsaWRhZCwgIkxhdGluLUFTQ0lJIikKCnRpZHlfam9pbiA8LSB0aWR5X2pvaW4gJT4lIAptdXRhdGUocmVzdWx0YWRvID0gY2FzZV93aGVuKC4kcmVzdWx0YWRvID09IDEgfiAiUG9zaXRpdm8iLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuJHJlc3VsdGFkbyA9PSAyIH4gIk5lZ2F0aXZvIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuJHJlc3VsdGFkbyA9PSAzIH4gIlBlbmRpZW50ZSIpLAogICAgICBzZXhvID0gY2FzZV93aGVuKC4kc2V4byA9PSAxIH4gIk1hc2N1bGlubyIsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4kc2V4byA9PSAyIH4gIkZlbWVuaW5vIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuJHNleG8gPT0gOTkgfiAibmUiKSwKICAgICAgdGlwb19wYWNpZW50ZSA9IGNhc2Vfd2hlbiguJHRpcG9fcGFjaWVudGUgPT0gMSB+ICJBbWJ1bGF0b3JpbyIsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4kdGlwb19wYWNpZW50ZSA9PSAyIH4gIkhvc3BpdGFsIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuJHRpcG9fcGFjaWVudGUgPT0gOTkgfiAiTkQiKSwKICAgICAgb3JpZ2VuID0gY2FzZV93aGVuKC4kb3JpZ2VuID09IDEgfiAiVXNtZXIiLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuJG9yaWdlbiA9PSAyIH4gIkZ1ZXJhIGRlIFVzbWVyIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuJG9yaWdlbiA9PSA5OSB+ICJuZSIpLCAKICAgICAgbmFjaW9uYWxpZGFkID0gY2FzZV93aGVuKC4kbmFjaW9uYWxpZGFkID09IDEgfiAiTWV4aWNhbmEiLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuJG5hY2lvbmFsaWRhZCA9PSAyIH4gIkV4dHJhbmplcm8iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4kbmFjaW9uYWxpZGFkID09IDk5IH4gIk5EIiksIAogICAgICBpbnR1YmFkbyA9IGNhc2Vfd2hlbiguJGludHViYWRvID09IDEgfiAiU2kiLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgLiRpbnR1YmFkbyA9PSAyIH4gIk5vIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgLiRpbnR1YmFkbyA9PSA5NyB+ICJuYSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIC4kaW50dWJhZG8gPT0gOTggfiAic2kiLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgLiRpbnR1YmFkbyA9PSA5OSB+ICJuZSIpLCAKICAgICAgdWNpID0gY2FzZV93aGVuKC4kdWNpID09IDEgfiAiU2kiLCAKICAgICAgICAgICAgICAgICAgICAgIC4kdWNpID09IDIgfiAiTm8iLAogICAgICAgICAgICAgICAgICAgICAgLiR1Y2kgPT0gOTcgfiAibmEiKSkKYGBgCgojIyBTdW1hcmlvIEFjdHVhbGl6YWRvIAoKYGBge3IgZWNobz1GQUxTRSwgbWVzc2FnZT1GQUxTRSwgd2FybmluZz1GQUxTRX0KIyBOdW1lcm8gVG90YWwgZGUgUGFjaWVudGVzCnByaW50KHBhc3RlKCJOdW1lcm8gVG90YWwgZGUgUGFjaWVudGVzIChIb3NwaXRhbGl6YWRvcyAtIEFtYnVsYXRvcmlvcyk6IiwgbnJvdyh0aWR5X2pvaW4pKSkKIyBOdW1lcm8gZGUgUmVzdWx0YWRvcwpwcmludChwYXN0ZSgiUmVzdWx0YWRvcyBUZXN0IENvdmlkOiIsIHRpZHlfam9pbiAlPiUgCiAgZHBseXI6Omdyb3VwX2J5KHJlc3VsdGFkbykgJT4lIAogIGRwbHlyOjpjb3VudCgpICU+JQogIGRwbHlyOjp1bmdyb3VwKCkpKSAKIyBOdW1lcm8gZGUgZmFsbGVjaWRvcwpwcmludChwYXN0ZSgiTnVtZXJvIGRlIFBhY2llbnRlcyBGYWxsZWNpZG9zOiIsIHRpZHlfam9pbiAlPiUgCiAgZHBseXI6OmZpbHRlcihmZWNoYV9kZWYhPSIyMDIwLTA0LTE0IikgJT4lIAogIGRwbHlyOjpjb3VudCgpICU+JQogIGRwbHlyOjp1bmdyb3VwKCkpKQojIE51bWVybyBkZSBmYWxsZWNpZG9zIGNvbiBUZXN0IENvdmlkIFBvc2l0aXZvCnByaW50KHBhc3RlKCJOdW1lcm8gZGUgUGFjaWVudGVzIGNvbiBUZXN0IENvdmlkIFBvc2l0aXZvOiIsIHRpZHlfam9pbiAlPiUKICBkcGx5cjo6ZmlsdGVyKHJlc3VsdGFkbyA9PSAiUG9zaXRpdm8iKSAlPiUKICBkcGx5cjo6Y291bnQoKSkpCiMgTnVtZXJvIGRlIGZhbGxlY2lkb3MgY29uIFRlc3QgQ292aWQgUG9zaXRpdm8KcHJpbnQocGFzdGUoIk51bWVybyBkZSBQYWNpZW50ZXMgRmFsbGVjaWRvcyBjb24gVGVzdCBDb3ZpZCBQb3NpdGl2bzoiLCB0aWR5X2pvaW4gJT4lCiAgZHBseXI6OmZpbHRlcighaXMubmEoZmVjaGFfZGVmKSAmIHJlc3VsdGFkbyA9PSAiUG9zaXRpdm8iKSAlPiUKICBkcGx5cjo6Y291bnQoKSkpCmBgYAoKIyMgTnVtZXJvIGRlIFBhY2llbnRlcyAtIEluZ3Jlc29zIGEgSG9zcGl0YWxlcyAgCgpgYGB7ciBlY2hvPUZBTFNFLCBmaWcuaGVpZ2h0PTUsIGZpZy53aWR0aD03LCBtZXNzYWdlPUZBTFNFLCB3YXJuaW5nPUZBTFNFfQpmb28gPC0gdGlkeV9qb2luICU+JSAKICBncm91cF9ieShmZWNoYV9pbmdyZXNvLCBzZXhvKSAlPiUKICBzdW1tYXJpc2Uobl9jYXNlcyA9IG4oKSkgJT4lCiAgdW5ncm91cCgpICU+JQogIG11dGF0ZShjdW1fbl9jYXNlcyA9IGN1bXN1bShuX2Nhc2VzKSkKCmdncGxvdChmb28sIGFlcyhmZWNoYV9pbmdyZXNvLCBjdW1fbl9jYXNlcykpICsgCiAgZ2VvbV9saW5lKGNvbCA9ICJibHVlIikgKwogIGdndGl0bGUoIlBhY2llbnRlcyAtIEluZ3Jlc29zIGEgaG9zcGl0YWxlcyAoQWN1bXVsYWRvKSIpICsKICB4bGFiKCIiKSArIHlsYWIoIk51bWVybyBBY3VtdWxhZG8gZGUgSW5ncmVzb3MgYSBIb3NwaXRhbGVzIikgKwogIHRoZW1lX2J3KGJhc2Vfc2l6ZSA9IDE0KQoKZ2dwbG90KGZvbywgYWVzKGZlY2hhX2luZ3Jlc28sIG5fY2FzZXMsIGNvbG9yID0gc2V4bykpICsgCiAgZ2VvbV9saW5lKCkgKwogIGdndGl0bGUoIlBhY2llbnRlcy0gSW5ncmVzb3MgYSBob3NwaXRhbGVzIChEaWFyaW8pIikgKwogIHhsYWIoIiIpICsgeWxhYigiTnVtZXJvIGRlIEluZ3Jlc29zIGEgSG9zcGl0YWxlcyIpICsKICB0aGVtZV9idyhiYXNlX3NpemUgPSAxNCkKYGBgCgojIyBGZWNoYSBkZSBBcGFyaWNpb24gZGUgU2ludG9tYXMgdnMgU2V4byB2cyBSZXN1bHRhZG9zIFRlc3QgQ292aWQKCiMjIyBTZXhvOiBNYXNjdWxpbm8gJiBGZW1lbmlubyAgCiMjIyBUZXN0IENvdmlkOiBQb3NpdGl2byAmIE5lZ2F0aXZvICYgUGVuZGllbnRlICAKCmBgYHtyIGVjaG89RkFMU0UsIGZpZy5oZWlnaHQ9NSwgZmlnLndpZHRoPTcsIG1lc3NhZ2U9RkFMU0UsIHdhcm5pbmc9RkFMU0V9CmZvbyA8LSB0aWR5X2pvaW4gJT4lIAogIGdyb3VwX2J5KGZlY2hhX3NpbnRvbWFzLCByZXN1bHRhZG8sIHNleG8pICU+JQogIHN1bW1hcmlzZShuX2Nhc2VzID0gbigpKQoKZ2dwbG90KGZvbywgYWVzKHggPSBmZWNoYV9zaW50b21hcywgCiAgICAgICAgICAgICAgICB5ID0gbl9jYXNlcywKICAgICAgICAgICAgICAgIGNvbG9yID0gcmVzdWx0YWRvKSkgKyAKICBnZW9tX2xpbmUoKSArIAogIGZhY2V0X3dyYXAoc2V4byB+IHJlc3VsdGFkbykgKwogIGdndGl0bGUoIkZlY2hhIEFwYXJpY2lvbiBTaW50b21hcyB2cyBTZXhvIHZzIFJlc3VsdGFkb3MgVGVzdCBDb3ZpZCIpICsKICB4bGFiKCIiKSArIHlsYWIoIk51bWVybyBkZSBDYXNvcyIpICsgIAogIHRoZW1lX2J3KGJhc2Vfc2l6ZSA9IDEzKQpgYGAKCiMjIEZlY2hhIEluZ3Jlc29zIEhvc3BpdGFsZXMgdnMgU2V4byB2cyBSZXN1bHRhZG9zIFRlc3QgQ292aWQKCiMjIyBTZXhvOiBNYXNjdWxpbm8gJiBGZW1lbmlubyAgCiMjIyBUZXN0IENvdmlkOiBQb3NpdGl2byAmIE5lZ2F0aXZvICYgUGVuZGllbnRlCgpgYGB7ciBlY2hvPUZBTFNFLCBmaWcuaGVpZ2h0PTUsIGZpZy53aWR0aD03LCBtZXNzYWdlPUZBTFNFLCB3YXJuaW5nPUZBTFNFfQpmb28gPC0gdGlkeV9qb2luICU+JSAKICBncm91cF9ieShmZWNoYV9pbmdyZXNvLCByZXN1bHRhZG8sIHNleG8pICU+JQogIHN1bW1hcmlzZShuX2Nhc2VzID0gbigpKQoKZ2dwbG90KGZvbywgYWVzKHggPSBmZWNoYV9pbmdyZXNvLCAKICAgICAgICAgICAgICAgIHkgPSBuX2Nhc2VzLAogICAgICAgICAgICAgICAgY29sb3IgPSByZXN1bHRhZG8pKSArIAogIGdlb21fbGluZSgpICsgCiAgZmFjZXRfd3JhcChzZXhvIH4gcmVzdWx0YWRvKSArCiAgZ2d0aXRsZSgiRmVjaGEgSW5ncmVzb3MgSG9zcGl0YWxlcyB2cyBTZXhvIHZzIFJlc3VsdGFkb3MgVGVzdCBDb3ZpZCIpICsKICB4bGFiKCIiKSArIHlsYWIoIk51bWVybyBkZSBDYXNvcyIpICsgIAogIHRoZW1lX2J3KGJhc2Vfc2l6ZSA9IDEzKQpgYGAKCiMjIE51bWVybyBkZSBGYWxsZWNpZG9zIHZzIFNleG8gdnMgUmVzdWx0YWRvcyBUZXN0IENvdmlkCgojIyMgU2V4bzogTWFzY3VsaW5vICYgRmVtZW5pbm8gIAojIyMgVGVzdCBDb3ZpZDogUG9zaXRpdm8gJiBOZWdhdGl2byAmIFBlbmRpZW50ZQoKYGBge3IgZWNobz1GQUxTRSwgZmlnLmhlaWdodD01LCBmaWcud2lkdGg9NywgbWVzc2FnZT1GQUxTRSwgd2FybmluZz1GQUxTRX0KZm9vIDwtIHRpZHlfam9pbiAlPiUgCiAgZ3JvdXBfYnkoZmVjaGFfZGVmLCByZXN1bHRhZG8sIHNleG8pICU+JQogIGZpbHRlcighaXMubmEoZmVjaGFfZGVmKSkgJT4lCiAgc3VtbWFyaXNlKG5fZGVhdGggPSBuKCkpCgojIFBsb3QgcmVzdWx0cwpnZ3Bsb3QoZm9vLCBhZXMoeCA9IGZlY2hhX2RlZiwgCiAgICAgICAgICAgICAgICB5ID0gbl9kZWF0aCwKICAgICAgICAgICAgICAgIGNvbG9yID0gcmVzdWx0YWRvKSkgKyAKICBnZW9tX2xpbmUoKSArIAogIGZhY2V0X3dyYXAoc2V4byB+IHJlc3VsdGFkbykgKwogIGdndGl0bGUoIk51bWVybyBkZSBGYWxsZWNpZG9zIHZzIFNleG8gdnMgUmVzdWx0YWRvcyBUZXN0IENvdmlkIikgKwogIHhsYWIoIiIpICsgeWxhYigiTnVtZXJvIGRlIEZhbGxlY2lkb3MiKSArCiAgdGhlbWVfYncoYmFzZV9zaXplID0gMTMpCmBgYAoKIyMgTnVtZXJvIGRlIEZhbGxlY2lkb3MgdnMgUmVzdWx0YWRvcyBUZXN0IENvdmlkIHZzIE5hY2lvbmFsaWRhZCAgCgojIyMgTmFjaW9uYWxpZGFkOiBNZXhpY2FuYSAmIEV4dHJhbmplcm8gIAojIyMgVGVzdCBDb3ZpZDogUG9zaXRpdm8gJiBOZWdhdGl2byAmIFBlbmRpZW50ZQoKYGBge3IgZWNobz1GQUxTRSwgZmlnLmhlaWdodD01LCBmaWcud2lkdGg9NywgbWVzc2FnZT1GQUxTRSwgd2FybmluZz1GQUxTRX0KZm9vIDwtIHRpZHlfam9pbiAlPiUgCiAgZ3JvdXBfYnkoZmVjaGFfZGVmLCByZXN1bHRhZG8sIG5hY2lvbmFsaWRhZCkgJT4lCiAgZmlsdGVyKCFpcy5uYShmZWNoYV9kZWYpKSAlPiUKICBzdW1tYXJpc2Uobl9kZWF0aCA9IG4oKSkKCiMgUGxvdCByZXN1bHRzCmdncGxvdChmb28sIGFlcyh4ID0gZmVjaGFfZGVmLCAKICAgICAgICAgICAgICAgIHkgPSBuX2RlYXRoLAogICAgICAgICAgICAgICAgY29sb3IgPSByZXN1bHRhZG8pKSArIAogIGdlb21fbGluZSgpICsgCiAgZmFjZXRfd3JhcChuYWNpb25hbGlkYWQgfiByZXN1bHRhZG8pICsKICBnZ3RpdGxlKCJOdW1lcm8gZGUgRmFsbGVjaWRvcyB2cyBSZXN1bHRhZG9zIFRlc3QgQ292aWQgdnMgTmFjaW9uYWxpZGFkIikgKwogIHhsYWIoIiIpICsgeWxhYigiTnVtZXJvIGRlIEZhbGxlY2lkb3MiKSArCiAgdGhlbWVfYncoYmFzZV9zaXplID0gMTMpCmBgYAoKIyMgTnVtZXJvIGRlIEZhbGxlY2lkb3MgdnMgUmVzdWx0YWRvcyBUZXN0IENvdmlkIHZzIFRpcG8gUGFjaWVudGUgIAoKIyMjIFRpcG8gcGFjaWVudGU6IEhvc3BpdGFsaXphZG8gJiBBbWJ1bGF0b3JpbyAgCiMjIyBUZXN0IENvdmlkOiBQb3NpdGl2byAmIE5lZ2F0aXZvICYgUGVuZGllbnRlICAKCmBgYHtyIGVjaG89RkFMU0UsIGZpZy5oZWlnaHQ9NSwgZmlnLndpZHRoPTcsIG1lc3NhZ2U9RkFMU0UsIHdhcm5pbmc9RkFMU0V9CmZvbyA8LSB0aWR5X2pvaW4gJT4lIAogIGdyb3VwX2J5KGZlY2hhX2RlZiwgcmVzdWx0YWRvLCB0aXBvX3BhY2llbnRlKSAlPiUKICBmaWx0ZXIoIWlzLm5hKGZlY2hhX2RlZikpICU+JQogIHN1bW1hcmlzZShuX2RlYXRoID0gbigpKQoKIyBQbG90IHJlc3VsdHMKZ2dwbG90KGZvbywgYWVzKHggPSBmZWNoYV9kZWYsIAogICAgICAgICAgICAgICAgeSA9IG5fZGVhdGgsCiAgICAgICAgICAgICAgICBjb2xvciA9IHJlc3VsdGFkbykpICsgCiAgZ2VvbV9saW5lKCkgKyAKICBmYWNldF93cmFwKHRpcG9fcGFjaWVudGUgfiByZXN1bHRhZG8pICsKICBnZ3RpdGxlKCJOdW1lcm8gZGUgRmFsbGVjaWRvcyB2cyBSZXN1bHRhZG9zIFRlc3QgQ292aWQgdnMgVGlwbyBQYWNpZW50ZSIpICsKICB4bGFiKCIiKSArIHlsYWIoIk51bWVybyBkZSBGYWxsZWNpZG9zIikgKwogIHRoZW1lX2J3KGJhc2Vfc2l6ZSA9IDEzKQpgYGAKCiMjIE51bWVybyBkZSBGYWxsZWNpZG9zIHZzIFJlc3VsdGFkb3MgVGVzdCBDb3ZpZCB2cyBPcmlnZW4gIAoKIyMjIFRlc3QgQ292aWQ6IFBvc2l0aXZvICYgTmVnYXRpdm8gJiBQZW5kaWVudGUKIyMjIE9yaWdlbjogVXNtZXIgJiBGdWVyYSBkZSBVc21lcgoKYGBge3IgZWNobz1GQUxTRSwgZmlnLmhlaWdodD01LCBmaWcud2lkdGg9NywgbWVzc2FnZT1GQUxTRSwgd2FybmluZz1GQUxTRX0KZm9vIDwtIHRpZHlfam9pbiAlPiUgCiAgZ3JvdXBfYnkoZmVjaGFfZGVmLCByZXN1bHRhZG8sIG9yaWdlbikgJT4lCiAgZmlsdGVyKCFpcy5uYShmZWNoYV9kZWYpKSAlPiUKICBzdW1tYXJpc2Uobl9kZWF0aCA9IG4oKSkKCiMgUGxvdCByZXN1bHRzCmdncGxvdChmb28sIGFlcyh4ID0gZmVjaGFfZGVmLCAKICAgICAgICAgICAgICAgIHkgPSBuX2RlYXRoLAogICAgICAgICAgICAgICAgY29sb3IgPSByZXN1bHRhZG8pKSArIAogIGdlb21fbGluZSgpICsgCiAgZmFjZXRfd3JhcChvcmlnZW4gfiByZXN1bHRhZG8pICsKICBnZ3RpdGxlKCJOdW1lcm8gZGUgRmFsbGVjaWRvcyB2cyBSZXN1bHRhZG9zIFRlc3QgQ292aWQgdnMgT3JpZ2VuIikgKwogIHhsYWIoIiIpICsgeWxhYigiTnVtZXJvIGRlIEZhbGxlY2lkb3MiKSArCiAgdGhlbWVfYncoYmFzZV9zaXplID0gMTMpCmBgYAoKIyMgTnVtZXJvIGRlIEZhbGxlY2lkb3MgdnMgUmVzdWx0YWRvcyBUZXN0IENvdmlkIHZzIFVjaQoKIyMjIFRlc3QgQ292aWQ6IFBvc2l0aXZvICYgTmVnYXRpdm8gJiBQZW5kaWVudGUKIyMjIFVjaTogU2kgJiBObyAmIG5hIChubyBhcGxpY2EpCgpgYGB7ciBlY2hvPUZBTFNFLCBmaWcuaGVpZ2h0PTUsIGZpZy53aWR0aD03LCBtZXNzYWdlPUZBTFNFLCB3YXJuaW5nPUZBTFNFfQpmb28gPC0gdGlkeV9qb2luICU+JSAKICBncm91cF9ieShmZWNoYV9kZWYsIHJlc3VsdGFkbywgdWNpKSAlPiUKICBmaWx0ZXIoIWlzLm5hKGZlY2hhX2RlZikpICU+JQogIHN1bW1hcmlzZShuX2RlYXRoID0gbigpKQoKIyBQbG90IHJlc3VsdHMKZ2dwbG90KGZvbywgYWVzKHggPSBmZWNoYV9kZWYsIAogICAgICAgICAgICAgICAgeSA9IG5fZGVhdGgsCiAgICAgICAgICAgICAgICBjb2xvciA9IHJlc3VsdGFkbykpICsgCiAgZ2VvbV9saW5lKCkgKyAKICBmYWNldF93cmFwKHVjaSB+IHJlc3VsdGFkbykgKwogIGdndGl0bGUoIk51bWVybyBkZSBGYWxsZWNpZG9zIHZzIFJlc3VsdGFkb3MgVGVzdCBDb3ZpZCB2cyBVY2kiKSArCiAgeGxhYigiIikgKyB5bGFiKCJOdW1lcm8gZGUgRmFsbGVjaWRvcyIpICsKICB0aGVtZV9idyhiYXNlX3NpemUgPSAxMykKYGBgCgojIyBOdW1lcm8gZGUgRmFsbGVjaWRvcyB2cyBSZXN1bHRhZG9zIFRlc3QgQ292aWQgdnMgSW50dWJhZG8gIAoKIyMjIFRlc3QgQ292aWQ6IFBvc2l0aXZvICYgTmVnYXRpdm8gJiBQZW5kaWVudGUgIAojIyMgSW50dWJhZG86IFNpICYgTm8gJiBuYSAobm8gYXBsaWNhKQoKYGBge3IgZWNobz1GQUxTRSwgZmlnLmhlaWdodD01LCBmaWcud2lkdGg9NywgbWVzc2FnZT1GQUxTRSwgd2FybmluZz1GQUxTRX0KZm9vIDwtIHRpZHlfam9pbiAlPiUgCiAgZ3JvdXBfYnkoZmVjaGFfZGVmLCByZXN1bHRhZG8sIGludHViYWRvKSAlPiUKICBmaWx0ZXIoIWlzLm5hKGZlY2hhX2RlZikpICU+JQogIHN1bW1hcmlzZShuX2RlYXRoID0gbigpKQoKIyBQbG90IHJlc3VsdHMKZ2dwbG90KGZvbywgYWVzKHggPSBmZWNoYV9kZWYsIAogICAgICAgICAgICAgICAgeSA9IG5fZGVhdGgsCiAgICAgICAgICAgICAgICBjb2xvciA9IHJlc3VsdGFkbykpICsgCiAgZ2VvbV9saW5lKCkgKyAKICBmYWNldF93cmFwKGludHViYWRvIH4gcmVzdWx0YWRvKSArCiAgZ2d0aXRsZSgiTnVtZXJvIGRlIEZhbGxlY2lkb3MgdnMgUmVzdWx0YWRvcyBUZXN0IENvdmlkIHZzIEludHViYWRvIikgKwogIHhsYWIoIiIpICsgeWxhYigiTnVtZXJvIGRlIEZhbGxlY2lkb3MiKSArCiAgdGhlbWVfYncoYmFzZV9zaXplID0gMTMpCmBgYA==