

Email          : albert.prayogo99@gmail.com
RPubs         : https://rpubs.com/albert23899
Jurusan      : Statistika
Address     : ARA Center, Matana University Tower
             Jl. CBD Barat Kav, RT.1, Curug Sangereng, Kelapa Dua, Tangerang, Banten 15810.
Berikut merupakan pemodelan survival dengan menggunakan data dari BMT dataset yang memuat data survival 137 pasien yang telah menjalani transplantasi sumsum tulang belakang. Analisis Survival yang akan dilakukan bertujuan untuk mengetahui kemampuan bertahan manusia setelah menjalani transplantasi sumsum tulang belakang. Variabel-variabel yang ada didalam data tersebut adalah 1. T1 merupakan waktu (hari) pengamatan pasien 2. Delta 1 merupakan indikator kematian pasien 1-Meninggal dan 0- Hidup 3. TA ,erupakan waktu menuju acute graft vs host disease 4. delta A merupakan indikator terjadinya acute graft vs host disease
Memuat BMT dataset
## Loading required package: MASS
## Loading required package: survival
## Loading required package: Formula
library(MASS)
library(survival)
library(Formula)
library(DT)
data(BMT, package = "SemiCompRisks")
datatable(BMT,
caption = htmltools::tags$caption(
style = 'caption-side : bottom; text-align: center;',
htmltools::em('Table1 1 : the BMT data.')),
extensions='FixedColumns',
options = list(scrollX=TRUE, fixedColumns=TRUE))
Analisis Survival dengan menggunakan Metode Landmark
Menentukan Batasan Waktu Survival
Data yang dianalisis dengan menggunakan metode ini adalah pasien yang dapat hidup selama 90 hari setelah transplantasi sumsum tulang belakang dilakukan. Waktu 90 hari menjadi landmark(tolok ukur) karena berdasarkan ilmu pengetahuan reaksi imun acute graft vs host disease baru muncul 90 hari setelah transplantasi sumsum tulang belakang dilakukan. ## Menyeleksi Populasi Menyeleksi data yang sesuai dengan ketentuan tolok ukur penelitian. Data pasien yang tidak mampu bertahan hidup sebelum 90 hari akan diabaikan
## -- Attaching packages --------------------------------------- tidyverse 1.3.1 --
## v ggplot2 3.3.5 v purrr 0.3.4
## v tibble 3.1.6 v dplyr 1.0.7
## v tidyr 1.1.4 v stringr 1.4.0
## v readr 2.1.0 v forcats 0.5.1
## -- Conflicts ------------------------------------------ tidyverse_conflicts() --
## x dplyr::filter() masks stats::filter()
## x dplyr::lag() masks stats::lag()
## x dplyr::select() masks MASS::select()
lm_dat<-
BMT %>%
filter(T1>=90)
Menghitung Peluang Survival Berdasarkan Lamanya Waktu Bertahan Hidup Pasien yang Dimulai dari Hari ke-90
lm_dat<-
lm_dat %>%
mutate(lm_T1=T1-90)
lm_fit<-survfit(Surv(lm_T1, delta1)~ deltaA, data=lm_dat)
## Loading required package: ggpubr
##
## Attaching package: 'survminer'
## The following object is masked _by_ '.GlobalEnv':
##
## BMT
## The following object is masked from 'package:survival':
##
## myeloma
library(ggplot2)
ggsurvplot(
fit=lm_fit,
data=lm_dat,
xlab="Days from 90-day Landmark",
risk.table=T,
risk.table.y.text=T,
pval=TRUE
)
Dari grafik diatas dapat disimpulkan bahwa fase kritis pasien yang menjalani transplantasi sumsum tulang belakang berada di 500 hari pertama setelah reaksi imun acute graft vs host disease muncul. Hal ini dibuktikan dengan turunnya peluang survival secara drastis hingga hari ke 500. Setelah hari ke 500, kurva peluang survival cenderung stabil yang menandakan bahwa kematian pasien setelah 500 hari muncul reaksi imun terjadi tidak signifikan
Cox Regression
Berikut merupakan analisis survival dengan menggunakan regresi Cox, analisa cox dengan menggunakan fungsi coxph pada r untuk menyeleksi data pasien yang tidak sesuai dengan tolok ukut
##
## Attaching package: 'magrittr'
## The following object is masked from 'package:purrr':
##
## set_names
## The following object is masked from 'package:tidyr':
##
## extract
library(tidyverse)
library(gtsummary)
##
## Attaching package: 'gtsummary'
## The following object is masked from 'package:MASS':
##
## select
library(survival)
coxph(
Surv(T1,delta1)~deltaA,
subset=T1>=90,
data=BMT
)%>%
gtsummary::tbl_regression(exp=TRUE)
| Characteristic |
HR |
95% CI |
p-value |
| deltaA |
1.08 |
0.57, 2.07 |
0.8 |
Time-Dependent Covariant
Selain analisis dengan tolok ukur waktu tertentu terdapat metode analisis survival dengan menggunakan time-dependent cov. Time-Dependent cov dapat dilakukan ketika : 1. Nilai kovariat berubah setiap waktu 2. Tidak terdapat tolok ukur waktu yang jelas 3. Penggunaan tolok ukur yang membawa terlalu banyak pengecualian ## Menyiapkan Data Time-Dependent Cov Analysis Analisis Time-Dependent Cov dengan menggunakan pemrograman R membutuhkan data set yang khusus. Karena tidak terdapat ID maka BMT data set akan ditambahkan kolom id
bmt<-rowid_to_column(BMT,"my_id")
Menggunakan fungsi t-merge dengan menggunakan fungsi event dan tdc untuk membuat data set khusus
td_dat<-
tmerge(
data1= bmt %>% select(my_id,T1,delta1),
data2 = bmt %>% select(my_id, T1, delta1, TA, deltaA),
id=my_id,
death=event(T1,delta1),
agvhd=tdc(TA)
)
Data Asli
bmt %>%
select(my_id, T1, delta1, TA, deltaA) %>%
filter(my_id %in% seq(1,5))
## my_id T1 delta1 TA deltaA
## 1 1 2081 0 67 1
## 2 2 1602 0 1602 0
## 3 3 1496 0 1496 0
## 4 4 1462 0 70 1
## 5 5 1433 0 1433 0
Dataset Baru
td_dat %>%
filter(my_id %in% seq(1,5))
## my_id T1 delta1 tstart tstop death agvhd
## 1 1 2081 0 0 67 0 0
## 2 1 2081 0 67 2081 0 1
## 3 2 1602 0 0 1602 0 0
## 4 3 1496 0 0 1496 0 0
## 5 4 1462 0 0 70 0 0
## 6 4 1462 0 70 1462 0 1
## 7 5 1433 0 0 1433 0 0
Analisis TIme-Dependent dan Cox Regression
coxph(
Surv(time=tstart, time2 = tstop, event = death)~agvhd,
data=td_dat
) %>%
gtsummary::tbl_regression(exp=TRUE)
| Characteristic |
HR |
95% CI |
p-value |
| agvhd |
1.40 |
0.81, 2.43 |
0.2 |
Kesimpulan
Acute graft vs host disease tidak berhubungan secara signifikan berhubungan dengan kematian dengan menggunakan analisis tolok ukur atau time-dependent Covariate
LS0tDQp0aXRsZTogIlR1Z2FzIDIiDQpzdWJ0aXRsZTogIlN1cnZpdmFsIE1vZGVsIg0KYXV0aG9yOiAiQWxiZXJ0IEFndW5nIFByYXlvZ28gKDIwMjA0OTIwMDE5KSINCmRhdGU6ICJgciBmb3JtYXQoU3lzLkRhdGUoKSwgJyVCICVkLCAlWScpYCINCm91dHB1dDogDQogIGh0bWxfZG9jdW1lbnQ6IA0KICAgIGh0bWxfZG9jdW1lbnQ6IG51bGwNCiAgICBjb2RlX2ZvbGRpbmc6IGhpZGUNCiAgICB0b2M6IHllcw0KICAgIHRvY19mbG9hdDoNCiAgICAgIGNvbGxhcHNlZDogeWVzDQogICAgbnVtYmVyX3NlY3Rpb25zOiB5ZXMNCiAgICBjb2RlX2Rvd25sb2FkOiB5ZXMNCiAgICB0aGVtZTogc2FuZHN0b25lDQogICAgY3NzOiBzdHlsZTEuY3NzDQogICAgaGlnaGxpZ2h0OiBtb25vY2hyb21lDQotLS0NCg0KDQo8aW1nIHN0eWxlPSJmbG9hdDogcmlnaHQ7IG1hcmdpbjogMHB4IDEwMHB4IDBweCAwcHg7IHdpZHRoOjI1JSIgc3JjPSJtZS5qcGciLz4gDQoNCmBgYHtyIGxvZ28sIGVjaG89RkFMU0UsZmlnLmFsaWduPSdjZW50ZXInLCBvdXQud2lkdGggPSAnMzAlJ30NCmtuaXRyOjppbmNsdWRlX2dyYXBoaWNzKCJsb2dvbWF0YW5hLnBuZyIpDQpgYGANCg0KRW1haWwgJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7Jm5ic3A7OiAgYWxiZXJ0LnByYXlvZ285OUBnbWFpbC5jb20gPGJyPg0KUlB1YnMgICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOzogaHR0cHM6Ly9ycHVicy5jb20vYWxiZXJ0MjM4OTkgPGJyPg0KSnVydXNhbiAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7OiBbU3RhdGlzdGlrYV0oaHR0cHM6Ly9tYXRhbmF1bml2ZXJzaXR5LmFjLmlkLz9seT1hY2FkZW1pYyZjPXNiKSA8YnI+DQpBZGRyZXNzICAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgOiBBUkEgQ2VudGVyLCBNYXRhbmEgVW5pdmVyc2l0eSBUb3dlciA8YnI+DQombmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyZuYnNwOyBKbC4gQ0JEIEJhcmF0IEthdiwgUlQuMSwgQ3VydWcgU2FuZ2VyZW5nLCBLZWxhcGEgRHVhLCBUYW5nZXJhbmcsIEJhbnRlbiAxNTgxMC4NCg0KKioqKg0KQmVyaWt1dCBtZXJ1cGFrYW4gcGVtb2RlbGFuIHN1cnZpdmFsIGRlbmdhbiBtZW5nZ3VuYWthbiBkYXRhIGRhcmkgQk1UIGRhdGFzZXQgeWFuZyBtZW11YXQgZGF0YSBzdXJ2aXZhbCAxMzcgcGFzaWVuIHlhbmcgdGVsYWggbWVuamFsYW5pIHRyYW5zcGxhbnRhc2kgc3Vtc3VtIHR1bGFuZyBiZWxha2FuZy4gQW5hbGlzaXMgU3Vydml2YWwgeWFuZyBha2FuIGRpbGFrdWthbiBiZXJ0dWp1YW4gdW50dWsgbWVuZ2V0YWh1aSBrZW1hbXB1YW4gYmVydGFoYW4gbWFudXNpYSBzZXRlbGFoIG1lbmphbGFuaSB0cmFuc3BsYW50YXNpIHN1bXN1bSB0dWxhbmcgYmVsYWthbmcuIFZhcmlhYmVsLXZhcmlhYmVsIHlhbmcgYWRhIGRpZGFsYW0gZGF0YSB0ZXJzZWJ1dCBhZGFsYWgNCjEuIFQxIG1lcnVwYWthbiB3YWt0dSAoaGFyaSkgcGVuZ2FtYXRhbiBwYXNpZW4NCjIuIERlbHRhIDEgbWVydXBha2FuIGluZGlrYXRvciBrZW1hdGlhbiBwYXNpZW4gMS1NZW5pbmdnYWwgZGFuIDAtIEhpZHVwDQozLiBUQSAsZXJ1cGFrYW4gd2FrdHUgbWVudWp1IGFjdXRlIGdyYWZ0IHZzIGhvc3QgZGlzZWFzZQ0KNC4gZGVsdGEgQSBtZXJ1cGFrYW4gaW5kaWthdG9yIHRlcmphZGlueWEgYWN1dGUgZ3JhZnQgdnMgaG9zdCBkaXNlYXNlDQoNCiMgTWVtdWF0IEJNVCBkYXRhc2V0DQpgYGB7cn0NCmxpYnJhcnkoU2VtaUNvbXBSaXNrcykNCmxpYnJhcnkoTUFTUykNCmxpYnJhcnkoc3Vydml2YWwpDQpsaWJyYXJ5KEZvcm11bGEpDQpsaWJyYXJ5KERUKQ0KZGF0YShCTVQsIHBhY2thZ2UgPSAiU2VtaUNvbXBSaXNrcyIpDQpkYXRhdGFibGUoQk1ULA0KICAgICAgICAgIGNhcHRpb24gPSBodG1sdG9vbHM6OnRhZ3MkY2FwdGlvbigNCiAgICAgICAgICAgIHN0eWxlID0gJ2NhcHRpb24tc2lkZSA6IGJvdHRvbTsgdGV4dC1hbGlnbjogY2VudGVyOycsDQogICAgICAgICAgICBodG1sdG9vbHM6OmVtKCdUYWJsZTEgMSA6IHRoZSBCTVQgZGF0YS4nKSksDQogICAgICAgICAgZXh0ZW5zaW9ucz0nRml4ZWRDb2x1bW5zJywNCiAgICAgICAgICBvcHRpb25zID0gbGlzdChzY3JvbGxYPVRSVUUsIGZpeGVkQ29sdW1ucz1UUlVFKSkNCmBgYA0KIyBBbmFsaXNpcyBTdXJ2aXZhbCBkZW5nYW4gbWVuZ2d1bmFrYW4gTWV0b2RlIExhbmRtYXJrDQojIyBNZW5lbnR1a2FuIEJhdGFzYW4gV2FrdHUgU3Vydml2YWwNCkRhdGEgeWFuZyBkaWFuYWxpc2lzIGRlbmdhbiBtZW5nZ3VuYWthbiBtZXRvZGUgaW5pIGFkYWxhaCBwYXNpZW4geWFuZyBkYXBhdCBoaWR1cCBzZWxhbWEgOTAgaGFyaSBzZXRlbGFoIHRyYW5zcGxhbnRhc2kgc3Vtc3VtIHR1bGFuZyBiZWxha2FuZyBkaWxha3VrYW4uIFdha3R1IDkwIGhhcmkgbWVuamFkaSBsYW5kbWFyayh0b2xvayB1a3VyKSBrYXJlbmEgYmVyZGFzYXJrYW4gaWxtdSBwZW5nZXRhaHVhbiByZWFrc2kgaW11biBhY3V0ZSBncmFmdCB2cyBob3N0IGRpc2Vhc2UgYmFydSBtdW5jdWwgOTAgaGFyaSBzZXRlbGFoIHRyYW5zcGxhbnRhc2kgc3Vtc3VtIHR1bGFuZyBiZWxha2FuZyBkaWxha3VrYW4uDQojIyBNZW55ZWxla3NpIFBvcHVsYXNpDQpNZW55ZWxla3NpIGRhdGEgeWFuZyBzZXN1YWkgZGVuZ2FuIGtldGVudHVhbiB0b2xvayB1a3VyIHBlbmVsaXRpYW4uIERhdGEgcGFzaWVuIHlhbmcgdGlkYWsgbWFtcHUgYmVydGFoYW4gaGlkdXAgc2ViZWx1bSA5MCBoYXJpIGFrYW4gZGlhYmFpa2FuDQpgYGB7cn0NCmxpYnJhcnkodGlkeXZlcnNlKQ0KbG1fZGF0PC0NCiAgQk1UICU+JQ0KICBmaWx0ZXIoVDE+PTkwKQ0KYGBgDQojIyBNZW5naGl0dW5nIFBlbHVhbmcgU3Vydml2YWwgQmVyZGFzYXJrYW4gTGFtYW55YSBXYWt0dSBCZXJ0YWhhbiBIaWR1cCBQYXNpZW4geWFuZyBEaW11bGFpIGRhcmkgSGFyaSBrZS05MA0KYGBge3J9DQpsbV9kYXQ8LQ0KICBsbV9kYXQgJT4lDQogIG11dGF0ZShsbV9UMT1UMS05MCkNCmxtX2ZpdDwtc3VydmZpdChTdXJ2KGxtX1QxLCBkZWx0YTEpfiBkZWx0YUEsIGRhdGE9bG1fZGF0KQ0KYGBgDQpgYGB7cn0NCmxpYnJhcnkoc3Vydm1pbmVyKQ0KbGlicmFyeShnZ3Bsb3QyKQ0KZ2dzdXJ2cGxvdCgNCiAgZml0PWxtX2ZpdCwNCiAgZGF0YT1sbV9kYXQsDQogIHhsYWI9IkRheXMgZnJvbSA5MC1kYXkgTGFuZG1hcmsiLA0KICByaXNrLnRhYmxlPVQsDQogIHJpc2sudGFibGUueS50ZXh0PVQsDQogIHB2YWw9VFJVRQ0KKQ0KYGBgDQpEYXJpIGdyYWZpayBkaWF0YXMgZGFwYXQgZGlzaW1wdWxrYW4gYmFod2EgZmFzZSBrcml0aXMgcGFzaWVuIHlhbmcgbWVuamFsYW5pIHRyYW5zcGxhbnRhc2kgc3Vtc3VtIHR1bGFuZyBiZWxha2FuZyBiZXJhZGEgZGkgNTAwIGhhcmkgcGVydGFtYSBzZXRlbGFoIHJlYWtzaSBpbXVuIGFjdXRlIGdyYWZ0IHZzIGhvc3QgZGlzZWFzZSBtdW5jdWwuIEhhbCBpbmkgZGlidWt0aWthbiBkZW5nYW4gdHVydW5ueWEgcGVsdWFuZyBzdXJ2aXZhbCBzZWNhcmEgZHJhc3RpcyBoaW5nZ2EgaGFyaSBrZSA1MDAuIFNldGVsYWggaGFyaSBrZSA1MDAsIGt1cnZhIHBlbHVhbmcgc3Vydml2YWwgY2VuZGVydW5nIHN0YWJpbCB5YW5nIG1lbmFuZGFrYW4gYmFod2Ega2VtYXRpYW4gcGFzaWVuIHNldGVsYWggNTAwIGhhcmkgbXVuY3VsIHJlYWtzaSBpbXVuIHRlcmphZGkgdGlkYWsgc2lnbmlmaWthbg0KDQojIENveCBSZWdyZXNzaW9uDQpCZXJpa3V0IG1lcnVwYWthbiBhbmFsaXNpcyBzdXJ2aXZhbCBkZW5nYW4gbWVuZ2d1bmFrYW4gcmVncmVzaSBDb3gsIGFuYWxpc2EgY294IGRlbmdhbiBtZW5nZ3VuYWthbiBmdW5nc2kgY294cGggcGFkYSByIHVudHVrIG1lbnllbGVrc2kgZGF0YSBwYXNpZW4geWFuZyB0aWRhayBzZXN1YWkgZGVuZ2FuIHRvbG9rIHVrdXQNCmBgYHtyfQ0KbGlicmFyeShtYWdyaXR0cikNCmxpYnJhcnkodGlkeXZlcnNlKQ0KbGlicmFyeShndHN1bW1hcnkpDQpsaWJyYXJ5KHN1cnZpdmFsKQ0KY294cGgoDQogIFN1cnYoVDEsZGVsdGExKX5kZWx0YUEsDQogIHN1YnNldD1UMT49OTAsDQogIGRhdGE9Qk1UDQopJT4lDQpndHN1bW1hcnk6OnRibF9yZWdyZXNzaW9uKGV4cD1UUlVFKQ0KYGBgDQojIFRpbWUtRGVwZW5kZW50IENvdmFyaWFudA0KU2VsYWluIGFuYWxpc2lzIGRlbmdhbiB0b2xvayB1a3VyIHdha3R1IHRlcnRlbnR1IHRlcmRhcGF0IG1ldG9kZSBhbmFsaXNpcyBzdXJ2aXZhbCBkZW5nYW4gbWVuZ2d1bmFrYW4gdGltZS1kZXBlbmRlbnQgY292LiBUaW1lLURlcGVuZGVudCBjb3YgZGFwYXQgZGlsYWt1a2FuIGtldGlrYSA6DQoxLiBOaWxhaSBrb3ZhcmlhdCBiZXJ1YmFoIHNldGlhcCB3YWt0dQ0KMi4gVGlkYWsgdGVyZGFwYXQgdG9sb2sgdWt1ciB3YWt0dSB5YW5nIGplbGFzDQozLiBQZW5nZ3VuYWFuIHRvbG9rIHVrdXIgeWFuZyBtZW1iYXdhIHRlcmxhbHUgYmFueWFrIHBlbmdlY3VhbGlhbg0KIyMgTWVueWlhcGthbiBEYXRhIFRpbWUtRGVwZW5kZW50IENvdiBBbmFseXNpcw0KQW5hbGlzaXMgVGltZS1EZXBlbmRlbnQgQ292IGRlbmdhbiBtZW5nZ3VuYWthbiBwZW1yb2dyYW1hbiBSIG1lbWJ1dHVoa2FuIGRhdGEgc2V0IHlhbmcga2h1c3VzLiBLYXJlbmEgdGlkYWsgdGVyZGFwYXQgSUQgbWFrYSBCTVQgZGF0YSBzZXQgYWthbiBkaXRhbWJhaGthbiBrb2xvbSBpZA0KYGBge3J9DQpibXQ8LXJvd2lkX3RvX2NvbHVtbihCTVQsIm15X2lkIikNCmBgYA0KTWVuZ2d1bmFrYW4gZnVuZ3NpIHQtbWVyZ2UgZGVuZ2FuICBtZW5nZ3VuYWthbiBmdW5nc2kgZXZlbnQgZGFuIHRkYyB1bnR1ayBtZW1idWF0IGRhdGEgc2V0IGtodXN1cw0KYGBge3J9DQp0ZF9kYXQ8LQ0KICB0bWVyZ2UoDQogICAgZGF0YTE9IGJtdCAlPiUgc2VsZWN0KG15X2lkLFQxLGRlbHRhMSksDQogICAgZGF0YTIgPSBibXQgJT4lIHNlbGVjdChteV9pZCwgVDEsIGRlbHRhMSwgVEEsIGRlbHRhQSksDQogICAgaWQ9bXlfaWQsDQogICAgZGVhdGg9ZXZlbnQoVDEsZGVsdGExKSwNCiAgICBhZ3ZoZD10ZGMoVEEpDQogICkNCmBgYA0KIyMjIERhdGEgQXNsaQ0KYGBge3J9DQpibXQgJT4lDQogIHNlbGVjdChteV9pZCwgVDEsIGRlbHRhMSwgVEEsIGRlbHRhQSkgJT4lDQogIGZpbHRlcihteV9pZCAlaW4lIHNlcSgxLDUpKQ0KYGBgDQojIyMgRGF0YXNldCBCYXJ1DQpgYGB7cn0NCnRkX2RhdCAlPiUNCiAgZmlsdGVyKG15X2lkICVpbiUgc2VxKDEsNSkpDQpgYGANCiMjIEFuYWxpc2lzIFRJbWUtRGVwZW5kZW50IGRhbiBDb3ggUmVncmVzc2lvbg0KYGBge3J9DQpjb3hwaCgNCiAgU3Vydih0aW1lPXRzdGFydCwgdGltZTIgPSB0c3RvcCwgZXZlbnQgPSBkZWF0aCl+YWd2aGQsDQogIGRhdGE9dGRfZGF0DQogICkgJT4lDQogIGd0c3VtbWFyeTo6dGJsX3JlZ3Jlc3Npb24oZXhwPVRSVUUpDQpgYGANCiMgS2VzaW1wdWxhbg0KQWN1dGUgZ3JhZnQgdnMgaG9zdCBkaXNlYXNlIHRpZGFrIGJlcmh1YnVuZ2FuIHNlY2FyYSBzaWduaWZpa2FuIGJlcmh1YnVuZ2FuIGRlbmdhbiBrZW1hdGlhbiBkZW5nYW4gbWVuZ2d1bmFrYW4gYW5hbGlzaXMgdG9sb2sgdWt1ciBhdGF1IHRpbWUtZGVwZW5kZW50IENvdmFyaWF0ZQ0KDQogIA0KICANCiAg