****if deces: 1=death; 0 alive)*************

1 Prepare: packages, data

library(foreign, lib.loc = "C:/Program Files/R/R-3.6.1/library")
library(survival)
library(ggplot2)
library(survminer)
## Loading required package: ggpubr
## Loading required package: magrittr

2 read data and group for variable

2.0.1 Read Data

data=read.csv("C:/Users/BINH THANG-TRAN/Dropbox/PhD/Data/BS TRi Ca/Data/data.csv")
head(data)
##   ID dossier chirurgien age sexe tabagisme Apparition ASIA_preop Frankel_preop
## 1  1  928667         ZW  55    1         1          2          D             D
## 2  2 5473345         ZW  71    1         0          2          E             E
## 3  3 5466545         GB  68    2         1          2          D             D
## 4  4  553346         DS  71    1         1          1          D             D
## 5  5  734329         DS  63    1         1          1          E             E
## 6  6  390270         GB  65    2         1          1          D             D
##   ambulation_preop fctSphincter approcheChx    dateChx ambulationPO
## 1                2            2           1  10/6/2018            2
## 2                1            2           1   1/7/2018            1
## 3                2            1           1   1/3/2018            2
## 4                2            2           1 16/12/2017            2
## 5                1            2           1 16/12/2017            1
## 6                2            2           2 28/07/2016            1
##   amelioration_ambulance ASIA_PO FrankelPO duree_sejour ATCD_RoRx RoRx_PO
## 1                      0       D         D           13         0       1
## 2                      0       E         E            4         1       0
## 3                      0       D         D           12         0       1
## 4                      0       D         D           25         1       1
## 5                      0       E         E            5         1       1
## 6                      1       E         D           16         1       0
##   TypeSurgery chimiotxPO Tokuhashi Tokuhashi_cat SINS SINS_cat
## 1          CO          1         5             1   12        2
## 2          CO          0         9             2    8        2
## 3          CO          1         6             1   10        2
## 4          LA          0         6             1    6        1
## 5          CO          0         6             1   11        2
## 6          CO          1         5             1   10        2
##   ImprovementPainPO deces date_deces SurviePosOpMOIS LastFollowUp BloodLoss
## 1                 1     0 31/10/2018            4.77   31/10/2018      1500
## 2                 1     0 31/10/2018            4.07   15/08/2018       500
## 3                 1     0 31/10/2018            8.13     1/4/2018       300
## 4                 1     1  12/2/2018            1.93     9/2/2018       200
## 5                 1     1   1/2/2018            1.57   30/01/2018      2000
## 6                 1     1  12/8/2017           12.67   18/07/2017       200
##   DurationSurgery Histology
## 1             299         1
## 2             124         1
## 3             108         1
## 4             110         1
## 5             126         1
## 6             120         1
names(data) #name of variables
##  [1] "ID"                     "dossier"                "chirurgien"            
##  [4] "age"                    "sexe"                   "tabagisme"             
##  [7] "Apparition"             "ASIA_preop"             "Frankel_preop"         
## [10] "ambulation_preop"       "fctSphincter"           "approcheChx"           
## [13] "dateChx"                "ambulationPO"           "amelioration_ambulance"
## [16] "ASIA_PO"                "FrankelPO"              "duree_sejour"          
## [19] "ATCD_RoRx"              "RoRx_PO"                "TypeSurgery"           
## [22] "chimiotxPO"             "Tokuhashi"              "Tokuhashi_cat"         
## [25] "SINS"                   "SINS_cat"               "ImprovementPainPO"     
## [28] "deces"                  "date_deces"             "SurviePosOpMOIS"       
## [31] "LastFollowUp"           "BloodLoss"              "DurationSurgery"       
## [34] "Histology"

2.1 explaination

###subset dataset -Independent vars:

data1 <- subset(data, select=c(ID, sexe, age, tabagisme,Histology, ASIA_preop, ASIA_PO, Tokuhashi_cat,ambulation_preop, ambulationPO, RoRx_PO,chimiotxPO, SurviePosOpMOIS, deces))

Independent variables

data1$age_gr <- ifelse(data1$age >= 60,c("0"), c("1")) #Age: 60+; <60;  (age) -need to group

data1$sexe = factor(data1$sexe) # Sex: male - female (sexe)
data1$tabagisme = factor(data1$tabagisme) #Tobacco use: Yes - No (tabagisme)
data1$Histology = factor(data1$Histology) #Histologic type: ADC;  Non-ADC; SCLC  (Histology)
data1$ASIA_preop = factor(data1$ASIA_preop) #Pre. ASIA score: A, C, D, E   (ASIA_preop)
data1$ASIA_PO = factor(data1$ASIA_PO) #Post. ASIA score: C, D, E  (ASIA_PO)
data1$Tokuhashi_cat = factor(data1$Tokuhashi_cat) #Revised Tokuhashi score: 0-8; 9-11   (Tokuhashi_cat)
data1$ambulation_preop = factor(data1$ambulation_preop) #Pre. ambulatory status: No, With help; Independent   (ambulation_preop)
data1$ambulationPO = factor(data1$ambulationPO) #Post. ambulatory status: No, With help; Independent  (ambulationPO)
data1$RoRx_PO = factor(data1$RoRx_PO)  #Post. Radiotherapy: No- Yes   (RoRx_PO)
data1$chimiotxPO = factor(data1$chimiotxPO) #Post. Chemotherapy: No- Yes  (chimiotxPO)

####View new dataset again

head(data1)
##   ID sexe age tabagisme Histology ASIA_preop ASIA_PO Tokuhashi_cat
## 1  1    1  55         1         1          D       D             1
## 2  2    1  71         0         1          E       E             2
## 3  3    2  68         1         1          D       D             1
## 4  4    1  71         1         1          D       D             1
## 5  5    1  63         1         1          E       E             1
## 6  6    2  65         1         1          D       E             1
##   ambulation_preop ambulationPO RoRx_PO chimiotxPO SurviePosOpMOIS deces age_gr
## 1                2            2       1          1            4.77     0      1
## 2                1            1       0          0            4.07     0      0
## 3                2            2       1          1            8.13     0      0
## 4                2            2       1          0            1.93     1      0
## 5                1            1       1          0            1.57     1      0
## 6                2            1       0          1           12.67     1      0
View(data1)

3 Survival Outcome:

SurviePosOpMOIS: time-to-event deces: 0: censorted (alive); 1 event (die)

baseline = Surv(data1$SurviePosOpMOIS, data1$deces==1)
km = survfit(baseline ~ 1)
summary(km)
## Call: survfit(formula = baseline ~ 1)
## 
##   time n.risk n.event survival std.err lower 95% CI upper 95% CI
##   0.33     87       1   0.9885  0.0114      0.96636        1.000
##   0.43     86       1   0.9770  0.0161      0.94602        1.000
##   0.83     85       1   0.9655  0.0196      0.92793        1.000
##   0.87     84       1   0.9540  0.0225      0.91101        0.999
##   1.00     83       1   0.9425  0.0250      0.89487        0.993
##   1.07     82       1   0.9310  0.0272      0.87928        0.986
##   1.10     81       1   0.9195  0.0292      0.86412        0.979
##   1.13     80       1   0.9080  0.0310      0.84931        0.971
##   1.17     79       1   0.8966  0.0327      0.83479        0.963
##   1.37     78       1   0.8851  0.0342      0.82051        0.955
##   1.57     77       2   0.8621  0.0370      0.79257        0.938
##   1.60     75       3   0.8276  0.0405      0.75190        0.911
##   1.63     72       1   0.8161  0.0415      0.73861        0.902
##   1.67     71       1   0.8046  0.0425      0.72545        0.892
##   1.70     70       1   0.7931  0.0434      0.71239        0.883
##   1.77     69       1   0.7816  0.0443      0.69944        0.873
##   1.83     68       1   0.7701  0.0451      0.68659        0.864
##   1.93     67       1   0.7586  0.0459      0.67383        0.854
##   1.97     66       1   0.7471  0.0466      0.66115        0.844
##   2.17     65       3   0.7126  0.0485      0.62362        0.814
##   2.30     62       1   0.7011  0.0491      0.61127        0.804
##   2.33     61       1   0.6897  0.0496      0.59898        0.794
##   2.37     60       1   0.6782  0.0501      0.58677        0.784
##   2.40     59       1   0.6667  0.0505      0.57462        0.773
##   2.67     58       1   0.6552  0.0510      0.56254        0.763
##   2.70     57       1   0.6437  0.0513      0.55052        0.753
##   2.77     56       1   0.6322  0.0517      0.53856        0.742
##   2.90     55       2   0.6092  0.0523      0.51483        0.721
##   3.37     53       2   0.5862  0.0528      0.49134        0.699
##   3.63     51       1   0.5747  0.0530      0.47968        0.689
##   3.70     50       1   0.5632  0.0532      0.46807        0.678
##   3.80     49       1   0.5517  0.0533      0.45652        0.667
##   3.83     48       2   0.5287  0.0535      0.43359        0.645
##   3.87     46       1   0.5172  0.0536      0.42221        0.634
##   3.97     45       1   0.5057  0.0536      0.41088        0.623
##   4.10     43       1   0.4940  0.0536      0.39930        0.611
##   4.13     42       1   0.4822  0.0536      0.38778        0.600
##   4.17     41       1   0.4705  0.0536      0.37632        0.588
##   4.47     40       1   0.4587  0.0535      0.36492        0.577
##   4.57     39       1   0.4469  0.0534      0.35358        0.565
##   4.67     38       1   0.4352  0.0533      0.34230        0.553
##   4.73     37       1   0.4234  0.0531      0.33107        0.542
##   4.90     35       1   0.4113  0.0530      0.31954        0.529
##   5.10     34       1   0.3992  0.0528      0.30807        0.517
##   5.43     33       2   0.3750  0.0523      0.28535        0.493
##   5.67     31       1   0.3629  0.0520      0.27409        0.481
##   5.70     30       2   0.3387  0.0513      0.25180        0.456
##   7.00     28       1   0.3266  0.0508      0.24076        0.443
##   7.40     27       1   0.3145  0.0504      0.22981        0.431
##   7.60     26       1   0.3024  0.0499      0.21893        0.418
##   7.67     25       1   0.2903  0.0493      0.20813        0.405
##   7.77     24       1   0.2782  0.0487      0.19741        0.392
##   7.93     23       1   0.2661  0.0481      0.18679        0.379
##   8.30     21       1   0.2535  0.0474      0.17565        0.366
##   9.03     20       1   0.2408  0.0467      0.16462        0.352
##  10.03     19       2   0.2155  0.0451      0.14293        0.325
##  10.27     17       1   0.2028  0.0442      0.13227        0.311
##  10.50     16       1   0.1901  0.0432      0.12175        0.297
##  11.17     15       1   0.1774  0.0422      0.11138        0.283
##  12.20     14       1   0.1648  0.0410      0.10116        0.268
##  12.67     13       1   0.1521  0.0398      0.09111        0.254
##  12.90     12       1   0.1394  0.0384      0.08124        0.239
##  13.07     11       1   0.1267  0.0370      0.07157        0.224
##  13.10     10       1   0.1141  0.0354      0.06212        0.209
##  14.87      9       1   0.1014  0.0336      0.05292        0.194
##  19.60      8       1   0.0887  0.0317      0.04402        0.179
##  20.80      7       1   0.0760  0.0296      0.03544        0.163
##  22.00      6       1   0.0634  0.0273      0.02727        0.147
##  29.27      4       1   0.0475  0.0246      0.01722        0.131
##  32.00      3       2   0.0158  0.0153      0.00238        0.105
##  97.63      1       1   0.0000     NaN           NA           NA

4 Kaplan – Meier plot:in black and white

plot(km, xlab="Time to death", ylab="Prob of survival")

4.1 Kaplan – Meier plot: plot in collor

ggsurvplot(   km,                     # survfit object with calculated statistics.
   data = data1,             # data used to fit survival curves.
   risk.table = TRUE,       # show risk table.
   pval = TRUE,             # show p-value of log-rank test.
   conf.int = TRUE,         # show confidence intervals for 
                            # point estimates of survival curves.
   xlim = c(0,100),         # present narrower X axis, but not affect
                            # survival estimates.
   xlab = "Time in month",   # customize X axis label.
   break.time.by = 6,     # break X axis in time intervals by 500.
   ggtheme = theme_light(), # customize plot and risk table with a theme.
 risk.table.y.text.col = T, # colour risk table text annotations.
  risk.table.y.text = FALSE # show bars instead of names in text annotations
                            # in legend of risk table
)
## Warning in .pvalue(fit, data = data, method = method, pval = pval, pval.coord = pval.coord, : There are no survival curves to be compared. 
##  This is a null model.

#survival by gender

baseline = Surv(data1$SurviePosOpMOIS, data1$deces==1)

km1 = survfit(Surv(data1$SurviePosOpMOIS, data1$deces==1) ~ data1$sexe)

summary(km1)
## Call: survfit(formula = Surv(data1$SurviePosOpMOIS, data1$deces == 
##     1) ~ data1$sexe)
## 
##                 data1$sexe=1 
##   time n.risk n.event survival std.err lower 95% CI upper 95% CI
##   0.33     45       1   0.9778  0.0220       0.9356        1.000
##   0.43     44       1   0.9556  0.0307       0.8972        1.000
##   1.00     43       1   0.9333  0.0372       0.8632        1.000
##   1.13     42       1   0.9111  0.0424       0.8316        0.998
##   1.17     41       1   0.8889  0.0468       0.8017        0.986
##   1.57     40       2   0.8444  0.0540       0.7449        0.957
##   1.60     38       2   0.8000  0.0596       0.6913        0.926
##   1.77     36       1   0.7778  0.0620       0.6653        0.909
##   1.83     35       1   0.7556  0.0641       0.6399        0.892
##   1.93     34       1   0.7333  0.0659       0.6149        0.875
##   2.17     33       2   0.6889  0.0690       0.5661        0.838
##   2.37     31       1   0.6667  0.0703       0.5422        0.820
##   2.40     30       1   0.6444  0.0714       0.5187        0.801
##   2.70     29       1   0.6222  0.0723       0.4955        0.781
##   2.77     28       1   0.6000  0.0730       0.4727        0.762
##   2.90     27       2   0.5556  0.0741       0.4278        0.721
##   3.37     25       2   0.5111  0.0745       0.3841        0.680
##   3.63     23       1   0.4889  0.0745       0.3626        0.659
##   3.80     22       1   0.4667  0.0744       0.3415        0.638
##   3.97     21       1   0.4444  0.0741       0.3206        0.616
##   4.17     19       1   0.4211  0.0738       0.2987        0.594
##   4.67     18       1   0.3977  0.0733       0.2771        0.571
##   5.10     16       1   0.3728  0.0728       0.2542        0.547
##   5.43     15       2   0.3231  0.0711       0.2099        0.497
##   5.70     13       1   0.2982  0.0698       0.1885        0.472
##   7.40     12       1   0.2734  0.0683       0.1676        0.446
##   7.60     11       1   0.2485  0.0664       0.1472        0.420
##   7.67     10       1   0.2237  0.0643       0.1274        0.393
##   7.77      9       1   0.1988  0.0618       0.1082        0.365
##   9.03      8       1   0.1740  0.0588       0.0897        0.338
##  10.03      7       2   0.1243  0.0515       0.0552        0.280
##  10.27      5       1   0.0994  0.0468       0.0395        0.250
##  10.50      4       1   0.0746  0.0412       0.0253        0.220
##  12.20      3       1   0.0497  0.0341       0.0129        0.191
##  12.90      2       1   0.0249  0.0245       0.0036        0.172
##  97.63      1       1   0.0000     NaN           NA           NA
## 
##                 data1$sexe=2 
##   time n.risk n.event survival std.err lower 95% CI upper 95% CI
##   0.83     42       1   0.9762  0.0235       0.9312        1.000
##   0.87     41       1   0.9524  0.0329       0.8901        1.000
##   1.07     40       1   0.9286  0.0397       0.8539        1.000
##   1.10     39       1   0.9048  0.0453       0.8202        0.998
##   1.37     38       1   0.8810  0.0500       0.7883        0.985
##   1.60     37       1   0.8571  0.0540       0.7576        0.970
##   1.63     36       1   0.8333  0.0575       0.7279        0.954
##   1.67     35       1   0.8095  0.0606       0.6991        0.937
##   1.70     34       1   0.7857  0.0633       0.6709        0.920
##   1.97     33       1   0.7619  0.0657       0.6434        0.902
##   2.17     32       1   0.7381  0.0678       0.6164        0.884
##   2.30     31       1   0.7143  0.0697       0.5899        0.865
##   2.33     30       1   0.6905  0.0713       0.5639        0.845
##   2.67     29       1   0.6667  0.0727       0.5383        0.826
##   3.70     28       1   0.6429  0.0739       0.5131        0.805
##   3.83     27       2   0.5952  0.0757       0.4639        0.764
##   3.87     25       1   0.5714  0.0764       0.4398        0.743
##   4.10     24       1   0.5476  0.0768       0.4160        0.721
##   4.13     23       1   0.5238  0.0771       0.3926        0.699
##   4.47     22       1   0.5000  0.0772       0.3695        0.677
##   4.57     21       1   0.4762  0.0771       0.3468        0.654
##   4.73     20       1   0.4524  0.0768       0.3243        0.631
##   4.90     19       1   0.4286  0.0764       0.3022        0.608
##   5.67     18       1   0.4048  0.0757       0.2805        0.584
##   5.70     17       1   0.3810  0.0749       0.2591        0.560
##   7.00     16       1   0.3571  0.0739       0.2380        0.536
##   7.93     15       1   0.3333  0.0727       0.2173        0.511
##   8.30     13       1   0.3077  0.0715       0.1951        0.485
##  11.17     12       1   0.2821  0.0700       0.1734        0.459
##  12.67     11       1   0.2564  0.0682       0.1523        0.432
##  13.07     10       1   0.2308  0.0660       0.1317        0.404
##  13.10      9       1   0.2051  0.0635       0.1119        0.376
##  14.87      8       1   0.1795  0.0605       0.0927        0.347
##  19.60      7       1   0.1538  0.0570       0.0744        0.318
##  20.80      6       1   0.1282  0.0530       0.0570        0.288
##  22.00      5       1   0.1026  0.0482       0.0408        0.258
##  29.27      3       1   0.0684  0.0426       0.0202        0.232
##  32.00      2       2   0.0000     NaN           NA           NA

#graph by gender

library(ggplot2)
ggsurvplot(
   km1,                     # survfit object with calculated statistics.
   data = data1,             # data used to fit survival curves.
   risk.table = TRUE,       # show risk table.
   pval = TRUE,             # show p-value of log-rank test.
   conf.int = TRUE,         # show confidence intervals for 
                            # point estimates of survival curves.
   xlim = c(0,100),         # present narrower X axis, but not affect
                            # survival estimates.
   xlab = "Time in month",   # customize X axis label.
   break.time.by = 6,     # break X axis in time intervals by 500.
   ggtheme = theme_light(), # customize plot and risk table with a theme.
 risk.table.y.text.col = T, # colour risk table text annotations.
  risk.table.y.text = FALSE # show bars instead of names in text annotations
                            # in legend of risk table
)

5 table 1: general chracteristics of participants

#install package "moonBook", ztable
library(moonBook)
require(ztable)
## Loading required package: ztable
## Welcome to package ztable ver 0.2.0
require(magrittr)
options(ztable.type="html")
#table 1: general chracteristics of participants

mytable(data1)
## 
##       Descriptive Statistics      
## ----------------------------------- 
##                     N      Total   
## ----------------------------------- 
##  ID                87 44.0 ± 25.3 
##  sexe              87              
##    - 1                 45  (51.7%) 
##    - 2                 42  (48.3%) 
##  age               87  61.3 ± 8.8 
##  tabagisme         87              
##    - 0                 35  (40.2%) 
##    - 1                 52  (59.8%) 
##  Histology         87              
##    - 0                 22  (25.3%) 
##    - 1                 58  (66.7%) 
##    - 2                   7  (8.0%) 
##  ASIA_preop        87              
##    - A                   1  (1.1%) 
##    - C                   5  (5.7%) 
##    - D                 39  (44.8%) 
##    - E                 42  (48.3%) 
##  ASIA_PO           87              
##    - C                   2  (2.3%) 
##    - D                 27  (31.0%) 
##    - E                 58  (66.7%) 
##  Tokuhashi_cat     87              
##    - 1                 72  (82.8%) 
##    - 2                 15  (17.2%) 
##  ambulation_preop  87              
##    - 0                 22  (25.3%) 
##    - 1                 41  (47.1%) 
##    - 2                 24  (27.6%) 
##  ambulationPO      87              
##    - 0                   4  (4.6%) 
##    - 1                 48  (55.2%) 
##    - 2                 35  (40.2%) 
##  RoRx_PO           87              
##    - 0                 28  (32.2%) 
##    - 1                 59  (67.8%) 
##  chimiotxPO        87              
##    - 0                 54  (62.1%) 
##    - 1                 33  (37.9%) 
##  SurviePosOpMOIS   87  7.5 ± 12.0 
##  deces             87              
##    - 0                   4  (4.6%) 
##    - 1                 83  (95.4%) 
##  age_gr            87              
##    - 0                 51  (58.6%) 
##    - 1                 36  (41.4%) 
## -----------------------------------

6 Univariate cox-model

library(survival)
#model 1: sex
cox1 = coxph(Surv(data1$SurviePosOpMOIS, data1$deces==1) ~ data1$sexe)
summary(cox1)
## Call:
## coxph(formula = Surv(data1$SurviePosOpMOIS, data1$deces == 1) ~ 
##     data1$sexe)
## 
##   n= 87, number of events= 83 
## 
##                coef exp(coef) se(coef)      z Pr(>|z|)  
## data1$sexe2 -0.3841    0.6810   0.2291 -1.677   0.0936 .
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
##             exp(coef) exp(-coef) lower .95 upper .95
## data1$sexe2     0.681      1.468    0.4347     1.067
## 
## Concordance= 0.541  (se = 0.032 )
## Likelihood ratio test= 2.82  on 1 df,   p=0.09
## Wald test            = 2.81  on 1 df,   p=0.09
## Score (logrank) test = 2.84  on 1 df,   p=0.09
#model 2: age group
cox2 = coxph(Surv(data1$SurviePosOpMOIS, data1$deces==1) ~ data1$age_gr)
summary(cox2)
## Call:
## coxph(formula = Surv(data1$SurviePosOpMOIS, data1$deces == 1) ~ 
##     data1$age_gr)
## 
##   n= 87, number of events= 83 
## 
##                  coef exp(coef) se(coef)      z Pr(>|z|)  
## data1$age_gr1 -0.4134    0.6614   0.2358 -1.753   0.0795 .
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
##               exp(coef) exp(-coef) lower .95 upper .95
## data1$age_gr1    0.6614      1.512    0.4167      1.05
## 
## Concordance= 0.542  (se = 0.031 )
## Likelihood ratio test= 3.16  on 1 df,   p=0.08
## Wald test            = 3.07  on 1 df,   p=0.08
## Score (logrank) test = 3.12  on 1 df,   p=0.08
#model 3: tobacco use 
cox3 = coxph(Surv(data1$SurviePosOpMOIS, data1$deces==1) ~ data1$tabagisme)
summary(cox3)
## Call:
## coxph(formula = Surv(data1$SurviePosOpMOIS, data1$deces == 1) ~ 
##     data1$tabagisme)
## 
##   n= 87, number of events= 83 
## 
##                    coef exp(coef) se(coef)     z Pr(>|z|)   
## data1$tabagisme1 0.6532    1.9216   0.2445 2.672  0.00755 **
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
##                  exp(coef) exp(-coef) lower .95 upper .95
## data1$tabagisme1     1.922     0.5204      1.19     3.103
## 
## Concordance= 0.561  (se = 0.033 )
## Likelihood ratio test= 7.42  on 1 df,   p=0.006
## Wald test            = 7.14  on 1 df,   p=0.008
## Score (logrank) test = 7.34  on 1 df,   p=0.007
#Model 4: Histology
cox4 = coxph(Surv(data1$SurviePosOpMOIS, data1$deces==1) ~ data1$Histology)
summary(cox4)
## Call:
## coxph(formula = Surv(data1$SurviePosOpMOIS, data1$deces == 1) ~ 
##     data1$Histology)
## 
##   n= 87, number of events= 83 
## 
##                      coef exp(coef) se(coef)      z Pr(>|z|)
## data1$Histology1 -0.23118   0.79359  0.25730 -0.898    0.369
## data1$Histology2  0.01456   1.01467  0.44202  0.033    0.974
## 
##                  exp(coef) exp(-coef) lower .95 upper .95
## data1$Histology1    0.7936     1.2601    0.4793     1.314
## data1$Histology2    1.0147     0.9855    0.4267     2.413
## 
## Concordance= 0.53  (se = 0.029 )
## Likelihood ratio test= 0.99  on 2 df,   p=0.6
## Wald test            = 1.02  on 2 df,   p=0.6
## Score (logrank) test = 1.02  on 2 df,   p=0.6
#model 5: Pre. ASIA score
cox5 = coxph(Surv(data1$SurviePosOpMOIS, data1$deces==1) ~ data1$ASIA_preop)
summary(cox5)
## Call:
## coxph(formula = Surv(data1$SurviePosOpMOIS, data1$deces == 1) ~ 
##     data1$ASIA_preop)
## 
##   n= 87, number of events= 83 
## 
##                      coef exp(coef) se(coef)      z Pr(>|z|)  
## data1$ASIA_preopC -1.1574    0.3143   1.1153 -1.038   0.2994  
## data1$ASIA_preopD -1.6480    0.1924   1.0426 -1.581   0.1140  
## data1$ASIA_preopE -2.1236    0.1196   1.0479 -2.027   0.0427 *
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
##                   exp(coef) exp(-coef) lower .95 upper .95
## data1$ASIA_preopC    0.3143      3.181   0.03532    2.7971
## data1$ASIA_preopD    0.1924      5.196   0.02494    1.4850
## data1$ASIA_preopE    0.1196      8.361   0.01534    0.9326
## 
## Concordance= 0.555  (se = 0.033 )
## Likelihood ratio test= 7.62  on 3 df,   p=0.05
## Wald test            = 8.84  on 3 df,   p=0.03
## Score (logrank) test = 10.03  on 3 df,   p=0.02
#model 6: Post. ASIA score
cox6 = coxph(Surv(data1$SurviePosOpMOIS, data1$deces==1) ~ data1$ASIA_PO)
summary(cox6)
## Call:
## coxph(formula = Surv(data1$SurviePosOpMOIS, data1$deces == 1) ~ 
##     data1$ASIA_PO)
## 
##   n= 87, number of events= 83 
## 
##                   coef exp(coef) se(coef)      z Pr(>|z|)
## data1$ASIA_POD  0.2683    1.3078   0.7380  0.364    0.716
## data1$ASIA_POE -0.5017    0.6055   0.7267 -0.690    0.490
## 
##                exp(coef) exp(-coef) lower .95 upper .95
## data1$ASIA_POD    1.3078     0.7647    0.3078     5.556
## data1$ASIA_POE    0.6055     1.6515    0.1457     2.516
## 
## Concordance= 0.575  (se = 0.028 )
## Likelihood ratio test= 8.25  on 2 df,   p=0.02
## Wald test            = 8.79  on 2 df,   p=0.01
## Score (logrank) test = 9.2  on 2 df,   p=0.01
#model 7: Revised Tokuhashi score

cox7 = coxph(Surv(data1$SurviePosOpMOIS, data1$deces==1) ~ data1$Tokuhashi_cat)
summary(cox7)
## Call:
## coxph(formula = Surv(data1$SurviePosOpMOIS, data1$deces == 1) ~ 
##     data1$Tokuhashi_cat)
## 
##   n= 87, number of events= 83 
## 
##                         coef exp(coef) se(coef)      z Pr(>|z|)    
## data1$Tokuhashi_cat2 -1.1675    0.3111   0.3433 -3.401 0.000672 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
##                      exp(coef) exp(-coef) lower .95 upper .95
## data1$Tokuhashi_cat2    0.3111      3.214    0.1588    0.6098
## 
## Concordance= 0.556  (se = 0.03 )
## Likelihood ratio test= 14.19  on 1 df,   p=2e-04
## Wald test            = 11.57  on 1 df,   p=7e-04
## Score (logrank) test = 12.29  on 1 df,   p=5e-04
#model 8: Pre. ambulatory status

cox8 = coxph(Surv(data1$SurviePosOpMOIS, data1$deces==1) ~ data1$ambulation_preop)
summary(cox8)
## Call:
## coxph(formula = Surv(data1$SurviePosOpMOIS, data1$deces == 1) ~ 
##     data1$ambulation_preop)
## 
##   n= 87, number of events= 83 
## 
##                            coef exp(coef) se(coef)      z Pr(>|z|)  
## data1$ambulation_preop1 -0.6800    0.5066   0.2845 -2.391   0.0168 *
## data1$ambulation_preop2 -0.4772    0.6205   0.3090 -1.544   0.1226  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
##                         exp(coef) exp(-coef) lower .95 upper .95
## data1$ambulation_preop1    0.5066      1.974    0.2901    0.8847
## data1$ambulation_preop2    0.6205      1.612    0.3386    1.1371
## 
## Concordance= 0.544  (se = 0.033 )
## Likelihood ratio test= 5.43  on 2 df,   p=0.07
## Wald test            = 5.77  on 2 df,   p=0.06
## Score (logrank) test = 5.94  on 2 df,   p=0.05
#model 9: Post. ambulatory status
cox9 = coxph(Surv(data1$SurviePosOpMOIS, data1$deces==1) ~ data1$ambulationPO)
summary(cox9)
## Call:
## coxph(formula = Surv(data1$SurviePosOpMOIS, data1$deces == 1) ~ 
##     data1$ambulationPO)
## 
##   n= 87, number of events= 83 
## 
##                        coef exp(coef) se(coef)      z Pr(>|z|)    
## data1$ambulationPO1 -2.7953    0.0611   0.5922 -4.720 2.35e-06 ***
## data1$ambulationPO2 -1.9756    0.1387   0.5810 -3.401 0.000673 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
##                     exp(coef) exp(-coef) lower .95 upper .95
## data1$ambulationPO1    0.0611     16.368   0.01914     0.195
## data1$ambulationPO2    0.1387      7.211   0.04441     0.433
## 
## Concordance= 0.626  (se = 0.03 )
## Likelihood ratio test= 21.45  on 2 df,   p=2e-05
## Wald test            = 27.03  on 2 df,   p=1e-06
## Score (logrank) test = 37.8  on 2 df,   p=6e-09
#model 10: Post. Radiotherapy

cox10 = coxph(Surv(data1$SurviePosOpMOIS, data1$deces==1) ~ data1$RoRx_PO)
summary(cox10)
## Call:
## coxph(formula = Surv(data1$SurviePosOpMOIS, data1$deces == 1) ~ 
##     data1$RoRx_PO)
## 
##   n= 87, number of events= 83 
## 
##                   coef exp(coef) se(coef)      z Pr(>|z|)   
## data1$RoRx_PO1 -0.6645    0.5145   0.2474 -2.686  0.00724 **
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
##                exp(coef) exp(-coef) lower .95 upper .95
## data1$RoRx_PO1    0.5145      1.944    0.3168    0.8356
## 
## Concordance= 0.565  (se = 0.028 )
## Likelihood ratio test= 6.76  on 1 df,   p=0.009
## Wald test            = 7.21  on 1 df,   p=0.007
## Score (logrank) test = 7.47  on 1 df,   p=0.006
#model 11: Post. Chemotherapy

cox11 = coxph(Surv(data1$SurviePosOpMOIS, data1$deces==1) ~ data1$chimiotxPO)
summary(cox11)
## Call:
## coxph(formula = Surv(data1$SurviePosOpMOIS, data1$deces == 1) ~ 
##     data1$chimiotxPO)
## 
##   n= 87, number of events= 83 
## 
##                      coef exp(coef) se(coef)      z Pr(>|z|)    
## data1$chimiotxPO1 -1.1749    0.3088   0.2477 -4.744  2.1e-06 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
##                   exp(coef) exp(-coef) lower .95 upper .95
## data1$chimiotxPO1    0.3088      3.238    0.1901    0.5018
## 
## Concordance= 0.663  (se = 0.022 )
## Likelihood ratio test= 24.24  on 1 df,   p=9e-07
## Wald test            = 22.51  on 1 df,   p=2e-06
## Score (logrank) test = 24.67  on 1 df,   p=7e-07

7 multivariate model

#model 12: multivariate model

cox12 = coxph(Surv(data1$SurviePosOpMOIS, data1$deces==1) ~ data1$RoRx_PO +data1$tabagisme+  data1$ASIA_preop +data1$Tokuhashi_cat+ data1$ambulation_preop+  data1$ambulationPO+data1$RoRx_PO+data1$chimiotxPO)
summary(cox12)
## Call:
## coxph(formula = Surv(data1$SurviePosOpMOIS, data1$deces == 1) ~ 
##     data1$RoRx_PO + data1$tabagisme + data1$ASIA_preop + data1$Tokuhashi_cat + 
##         data1$ambulation_preop + data1$ambulationPO + data1$RoRx_PO + 
##         data1$chimiotxPO)
## 
##   n= 87, number of events= 83 
## 
##                             coef exp(coef) se(coef)      z Pr(>|z|)    
## data1$RoRx_PO1          -0.56985   0.56561  0.26740 -2.131  0.03308 *  
## data1$tabagisme1         0.76691   2.15311  0.29125  2.633  0.00846 ** 
## data1$ASIA_preopC       -2.32389   0.09789  1.19271 -1.948  0.05136 .  
## data1$ASIA_preopD       -1.45476   0.23346  1.10891 -1.312  0.18956    
## data1$ASIA_preopE       -1.07091   0.34270  1.13022 -0.948  0.34337    
## data1$Tokuhashi_cat2    -1.05935   0.34668  0.40871 -2.592  0.00954 ** 
## data1$ambulation_preop1  0.13339   1.14270  0.43212  0.309  0.75755    
## data1$ambulation_preop2 -0.62944   0.53289  0.33784 -1.863  0.06244 .  
## data1$ambulationPO1     -3.07851   0.04603  0.77607 -3.967 7.28e-05 ***
## data1$ambulationPO2     -2.32716   0.09757  0.74322 -3.131  0.00174 ** 
## data1$chimiotxPO1       -1.35077   0.25904  0.29846 -4.526 6.02e-06 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
##                         exp(coef) exp(-coef) lower .95 upper .95
## data1$RoRx_PO1            0.56561     1.7680  0.334895    0.9553
## data1$tabagisme1          2.15311     0.4644  1.216614    3.8105
## data1$ASIA_preopC         0.09789    10.2153  0.009452    1.0139
## data1$ASIA_preopD         0.23346     4.2834  0.026565    2.0517
## data1$ASIA_preopE         0.34270     2.9180  0.037399    3.1402
## data1$Tokuhashi_cat2      0.34668     2.8845  0.155609    0.7724
## data1$ambulation_preop1   1.14270     0.8751  0.489905    2.6653
## data1$ambulation_preop2   0.53289     1.8766  0.274831    1.0333
## data1$ambulationPO1       0.04603    21.7260  0.010056    0.2107
## data1$ambulationPO2       0.09757    10.2488  0.022735    0.4187
## data1$chimiotxPO1         0.25904     3.8604  0.144319    0.4650
## 
## Concordance= 0.752  (se = 0.027 )
## Likelihood ratio test= 69.22  on 11 df,   p=2e-10
## Wald test            = 64.1  on 11 df,   p=2e-09
## Score (logrank) test = 84.87  on 11 df,   p=2e-13
LS0tDQp0aXRsZTogIlJfU3Vydml2YWwgTHVuZyINCmF1dGhvcjogIkJpbmggVGhhbmcgVHJhbiINCmRhdGU6ICIxMS8yMi8yMDE5Ig0Kb3V0cHV0Og0KICBodG1sX2RvY3VtZW50Og0KICAgIGNvZGVfZG93bmxvYWQ6IHllcw0KICAgIGNvZGVfZm9sZGluZzogaGlkZQ0KICAgIG51bWJlcl9zZWN0aW9uczogeWVzDQogICAgdGhlbWU6IGpvdXJuYWwNCiAgICB0b2M6IHllcw0KICAgIHRvY19mbG9hdDogeWVzDQogIHdvcmRfZG9jdW1lbnQ6DQogICAgdG9jOiB5ZXMNCi0tLQ0KDQoNCioqKippZiBkZWNlczogMT1kZWF0aDsgMCBhbGl2ZSkqKioqKioqKioqKioqDQoNCiMgUHJlcGFyZTogcGFja2FnZXMsIGRhdGENCmBgYHtyfQ0KbGlicmFyeShmb3JlaWduLCBsaWIubG9jID0gIkM6L1Byb2dyYW0gRmlsZXMvUi9SLTMuNi4xL2xpYnJhcnkiKQ0KbGlicmFyeShzdXJ2aXZhbCkNCmxpYnJhcnkoZ2dwbG90MikNCmxpYnJhcnkoc3Vydm1pbmVyKQ0KYGBgDQoNCiMgcmVhZCBkYXRhIGFuZCBncm91cCBmb3IgdmFyaWFibGUNCg0KIyMjIFJlYWQgRGF0YQ0KDQpgYGB7cn0NCmRhdGE9cmVhZC5jc3YoIkM6L1VzZXJzL0JJTkggVEhBTkctVFJBTi9Ecm9wYm94L1BoRC9EYXRhL0JTIFRSaSBDYS9EYXRhL2RhdGEuY3N2IikNCmhlYWQoZGF0YSkNCm5hbWVzKGRhdGEpICNuYW1lIG9mIHZhcmlhYmxlcw0KYGBgDQoNCiMjIGV4cGxhaW5hdGlvbg0KDQoNCiMjI3N1YnNldCBkYXRhc2V0IC1JbmRlcGVuZGVudCB2YXJzOg0KDQoNCmBgYHtyfQ0KZGF0YTEgPC0gc3Vic2V0KGRhdGEsIHNlbGVjdD1jKElELCBzZXhlLCBhZ2UsIHRhYmFnaXNtZSxIaXN0b2xvZ3ksIEFTSUFfcHJlb3AsIEFTSUFfUE8sIFRva3VoYXNoaV9jYXQsYW1idWxhdGlvbl9wcmVvcCwgYW1idWxhdGlvblBPLCBSb1J4X1BPLGNoaW1pb3R4UE8sIFN1cnZpZVBvc09wTU9JUywgZGVjZXMpKQ0KYGBgDQoNCg0KSW5kZXBlbmRlbnQgdmFyaWFibGVzDQoNCmBgYHtyfQ0KZGF0YTEkYWdlX2dyIDwtIGlmZWxzZShkYXRhMSRhZ2UgPj0gNjAsYygiMCIpLCBjKCIxIikpICNBZ2U6IDYwKzsgPDYwOyAgKGFnZSkgLW5lZWQgdG8gZ3JvdXANCg0KZGF0YTEkc2V4ZSA9IGZhY3RvcihkYXRhMSRzZXhlKSAjIFNleDogbWFsZSAtIGZlbWFsZSAoc2V4ZSkNCmRhdGExJHRhYmFnaXNtZSA9IGZhY3RvcihkYXRhMSR0YWJhZ2lzbWUpICNUb2JhY2NvIHVzZTogWWVzIC0gTm8gKHRhYmFnaXNtZSkNCmRhdGExJEhpc3RvbG9neSA9IGZhY3RvcihkYXRhMSRIaXN0b2xvZ3kpICNIaXN0b2xvZ2ljIHR5cGU6IEFEQzsgIE5vbi1BREM7IFNDTEMgIChIaXN0b2xvZ3kpDQpkYXRhMSRBU0lBX3ByZW9wID0gZmFjdG9yKGRhdGExJEFTSUFfcHJlb3ApICNQcmUuIEFTSUEgc2NvcmU6IEEsIEMsIEQsIEUgICAoQVNJQV9wcmVvcCkNCmRhdGExJEFTSUFfUE8gPSBmYWN0b3IoZGF0YTEkQVNJQV9QTykgI1Bvc3QuIEFTSUEgc2NvcmU6IEMsIEQsIEUgIChBU0lBX1BPKQ0KZGF0YTEkVG9rdWhhc2hpX2NhdCA9IGZhY3RvcihkYXRhMSRUb2t1aGFzaGlfY2F0KSAjUmV2aXNlZCBUb2t1aGFzaGkgc2NvcmU6IDAtODsgOS0xMSAgIChUb2t1aGFzaGlfY2F0KQ0KZGF0YTEkYW1idWxhdGlvbl9wcmVvcCA9IGZhY3RvcihkYXRhMSRhbWJ1bGF0aW9uX3ByZW9wKSAjUHJlLiBhbWJ1bGF0b3J5IHN0YXR1czogTm8sIFdpdGggaGVscDsgSW5kZXBlbmRlbnQgICAoYW1idWxhdGlvbl9wcmVvcCkNCmRhdGExJGFtYnVsYXRpb25QTyA9IGZhY3RvcihkYXRhMSRhbWJ1bGF0aW9uUE8pICNQb3N0LiBhbWJ1bGF0b3J5IHN0YXR1czogTm8sIFdpdGggaGVscDsgSW5kZXBlbmRlbnQgIChhbWJ1bGF0aW9uUE8pDQpkYXRhMSRSb1J4X1BPID0gZmFjdG9yKGRhdGExJFJvUnhfUE8pICAjUG9zdC4gUmFkaW90aGVyYXB5OiBOby0gWWVzICAgKFJvUnhfUE8pDQpkYXRhMSRjaGltaW90eFBPID0gZmFjdG9yKGRhdGExJGNoaW1pb3R4UE8pICNQb3N0LiBDaGVtb3RoZXJhcHk6IE5vLSBZZXMgIChjaGltaW90eFBPKQ0KYGBgDQojIyMjVmlldyBuZXcgZGF0YXNldCBhZ2Fpbg0KDQpgYGB7cn0NCmhlYWQoZGF0YTEpDQpWaWV3KGRhdGExKQ0KYGBgDQoNCg0KDQojIFN1cnZpdmFsIE91dGNvbWU6DQoNCipTdXJ2aWVQb3NPcE1PSVM6IHRpbWUtdG8tZXZlbnQNCmRlY2VzOiAwOiBjZW5zb3J0ZWQgKGFsaXZlKTsgMSBldmVudCAoZGllKSoNCg0KYGBge3J9DQpiYXNlbGluZSA9IFN1cnYoZGF0YTEkU3VydmllUG9zT3BNT0lTLCBkYXRhMSRkZWNlcz09MSkNCmttID0gc3VydmZpdChiYXNlbGluZSB+IDEpDQpzdW1tYXJ5KGttKQ0KYGBgDQoNCg0KIyBLYXBsYW4g4oCTIE1laWVyIHBsb3Q6aW4gYmxhY2sgYW5kIHdoaXRlIA0KDQpgYGB7cn0NCnBsb3Qoa20sIHhsYWI9IlRpbWUgdG8gZGVhdGgiLCB5bGFiPSJQcm9iIG9mIHN1cnZpdmFsIikNCg0KDQpgYGANCg0KIyMgS2FwbGFuIOKAkyBNZWllciBwbG90OiBwbG90IGluIGNvbGxvcg0KDQpgYGB7cn0NCg0KZ2dzdXJ2cGxvdCggICBrbSwgICAgICAgICAgICAgICAgICAgICAjIHN1cnZmaXQgb2JqZWN0IHdpdGggY2FsY3VsYXRlZCBzdGF0aXN0aWNzLg0KICAgZGF0YSA9IGRhdGExLCAgICAgICAgICAgICAjIGRhdGEgdXNlZCB0byBmaXQgc3Vydml2YWwgY3VydmVzLg0KICAgcmlzay50YWJsZSA9IFRSVUUsICAgICAgICMgc2hvdyByaXNrIHRhYmxlLg0KICAgcHZhbCA9IFRSVUUsICAgICAgICAgICAgICMgc2hvdyBwLXZhbHVlIG9mIGxvZy1yYW5rIHRlc3QuDQogICBjb25mLmludCA9IFRSVUUsICAgICAgICAgIyBzaG93IGNvbmZpZGVuY2UgaW50ZXJ2YWxzIGZvciANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIHBvaW50IGVzdGltYXRlcyBvZiBzdXJ2aXZhbCBjdXJ2ZXMuDQogICB4bGltID0gYygwLDEwMCksICAgICAgICAgIyBwcmVzZW50IG5hcnJvd2VyIFggYXhpcywgYnV0IG5vdCBhZmZlY3QNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIHN1cnZpdmFsIGVzdGltYXRlcy4NCiAgIHhsYWIgPSAiVGltZSBpbiBtb250aCIsICAgIyBjdXN0b21pemUgWCBheGlzIGxhYmVsLg0KICAgYnJlYWsudGltZS5ieSA9IDYsICAgICAjIGJyZWFrIFggYXhpcyBpbiB0aW1lIGludGVydmFscyBieSA1MDAuDQogICBnZ3RoZW1lID0gdGhlbWVfbGlnaHQoKSwgIyBjdXN0b21pemUgcGxvdCBhbmQgcmlzayB0YWJsZSB3aXRoIGEgdGhlbWUuDQogcmlzay50YWJsZS55LnRleHQuY29sID0gVCwgIyBjb2xvdXIgcmlzayB0YWJsZSB0ZXh0IGFubm90YXRpb25zLg0KICByaXNrLnRhYmxlLnkudGV4dCA9IEZBTFNFICMgc2hvdyBiYXJzIGluc3RlYWQgb2YgbmFtZXMgaW4gdGV4dCBhbm5vdGF0aW9ucw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgaW4gbGVnZW5kIG9mIHJpc2sgdGFibGUNCikNCmBgYA0KDQoNCg0KI3N1cnZpdmFsIGJ5IGdlbmRlcg0KDQpgYGB7cn0NCmJhc2VsaW5lID0gU3VydihkYXRhMSRTdXJ2aWVQb3NPcE1PSVMsIGRhdGExJGRlY2VzPT0xKQ0KDQprbTEgPSBzdXJ2Zml0KFN1cnYoZGF0YTEkU3VydmllUG9zT3BNT0lTLCBkYXRhMSRkZWNlcz09MSkgfiBkYXRhMSRzZXhlKQ0KDQpzdW1tYXJ5KGttMSkNCg0KYGBgDQoNCiNncmFwaCBieSBnZW5kZXINCg0KYGBge3J9DQpsaWJyYXJ5KGdncGxvdDIpDQpnZ3N1cnZwbG90KA0KICAga20xLCAgICAgICAgICAgICAgICAgICAgICMgc3VydmZpdCBvYmplY3Qgd2l0aCBjYWxjdWxhdGVkIHN0YXRpc3RpY3MuDQogICBkYXRhID0gZGF0YTEsICAgICAgICAgICAgICMgZGF0YSB1c2VkIHRvIGZpdCBzdXJ2aXZhbCBjdXJ2ZXMuDQogICByaXNrLnRhYmxlID0gVFJVRSwgICAgICAgIyBzaG93IHJpc2sgdGFibGUuDQogICBwdmFsID0gVFJVRSwgICAgICAgICAgICAgIyBzaG93IHAtdmFsdWUgb2YgbG9nLXJhbmsgdGVzdC4NCiAgIGNvbmYuaW50ID0gVFJVRSwgICAgICAgICAjIHNob3cgY29uZmlkZW5jZSBpbnRlcnZhbHMgZm9yIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgcG9pbnQgZXN0aW1hdGVzIG9mIHN1cnZpdmFsIGN1cnZlcy4NCiAgIHhsaW0gPSBjKDAsMTAwKSwgICAgICAgICAjIHByZXNlbnQgbmFycm93ZXIgWCBheGlzLCBidXQgbm90IGFmZmVjdA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgc3Vydml2YWwgZXN0aW1hdGVzLg0KICAgeGxhYiA9ICJUaW1lIGluIG1vbnRoIiwgICAjIGN1c3RvbWl6ZSBYIGF4aXMgbGFiZWwuDQogICBicmVhay50aW1lLmJ5ID0gNiwgICAgICMgYnJlYWsgWCBheGlzIGluIHRpbWUgaW50ZXJ2YWxzIGJ5IDUwMC4NCiAgIGdndGhlbWUgPSB0aGVtZV9saWdodCgpLCAjIGN1c3RvbWl6ZSBwbG90IGFuZCByaXNrIHRhYmxlIHdpdGggYSB0aGVtZS4NCiByaXNrLnRhYmxlLnkudGV4dC5jb2wgPSBULCAjIGNvbG91ciByaXNrIHRhYmxlIHRleHQgYW5ub3RhdGlvbnMuDQogIHJpc2sudGFibGUueS50ZXh0ID0gRkFMU0UgIyBzaG93IGJhcnMgaW5zdGVhZCBvZiBuYW1lcyBpbiB0ZXh0IGFubm90YXRpb25zDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBpbiBsZWdlbmQgb2YgcmlzayB0YWJsZQ0KKQ0KYGBgDQoNCg0KIyB0YWJsZSAxOiBnZW5lcmFsIGNocmFjdGVyaXN0aWNzIG9mIHBhcnRpY2lwYW50cw0KDQpgYGB7cn0NCiNpbnN0YWxsIHBhY2thZ2UgIm1vb25Cb29rIiwgenRhYmxlDQpsaWJyYXJ5KG1vb25Cb29rKQ0KcmVxdWlyZSh6dGFibGUpDQpyZXF1aXJlKG1hZ3JpdHRyKQ0Kb3B0aW9ucyh6dGFibGUudHlwZT0iaHRtbCIpDQpgYGANCg0KYGBge3J9DQojdGFibGUgMTogZ2VuZXJhbCBjaHJhY3RlcmlzdGljcyBvZiBwYXJ0aWNpcGFudHMNCg0KbXl0YWJsZShkYXRhMSkNCg0KYGBgDQoNCg0KDQoNCg0KIyBVbml2YXJpYXRlIGNveC1tb2RlbA0KDQpgYGB7cn0NCmxpYnJhcnkoc3Vydml2YWwpDQojbW9kZWwgMTogc2V4DQpjb3gxID0gY294cGgoU3VydihkYXRhMSRTdXJ2aWVQb3NPcE1PSVMsIGRhdGExJGRlY2VzPT0xKSB+IGRhdGExJHNleGUpDQpzdW1tYXJ5KGNveDEpDQoNCiNtb2RlbCAyOiBhZ2UgZ3JvdXANCmNveDIgPSBjb3hwaChTdXJ2KGRhdGExJFN1cnZpZVBvc09wTU9JUywgZGF0YTEkZGVjZXM9PTEpIH4gZGF0YTEkYWdlX2dyKQ0Kc3VtbWFyeShjb3gyKQ0KDQojbW9kZWwgMzogdG9iYWNjbyB1c2UgDQpjb3gzID0gY294cGgoU3VydihkYXRhMSRTdXJ2aWVQb3NPcE1PSVMsIGRhdGExJGRlY2VzPT0xKSB+IGRhdGExJHRhYmFnaXNtZSkNCnN1bW1hcnkoY294MykNCg0KI01vZGVsIDQ6IEhpc3RvbG9neQ0KY294NCA9IGNveHBoKFN1cnYoZGF0YTEkU3VydmllUG9zT3BNT0lTLCBkYXRhMSRkZWNlcz09MSkgfiBkYXRhMSRIaXN0b2xvZ3kpDQpzdW1tYXJ5KGNveDQpDQoNCiNtb2RlbCA1OiBQcmUuIEFTSUEgc2NvcmUNCmNveDUgPSBjb3hwaChTdXJ2KGRhdGExJFN1cnZpZVBvc09wTU9JUywgZGF0YTEkZGVjZXM9PTEpIH4gZGF0YTEkQVNJQV9wcmVvcCkNCnN1bW1hcnkoY294NSkNCg0KI21vZGVsIDY6IFBvc3QuIEFTSUEgc2NvcmUNCmNveDYgPSBjb3hwaChTdXJ2KGRhdGExJFN1cnZpZVBvc09wTU9JUywgZGF0YTEkZGVjZXM9PTEpIH4gZGF0YTEkQVNJQV9QTykNCnN1bW1hcnkoY294NikNCg0KI21vZGVsIDc6IFJldmlzZWQgVG9rdWhhc2hpIHNjb3JlDQoNCmNveDcgPSBjb3hwaChTdXJ2KGRhdGExJFN1cnZpZVBvc09wTU9JUywgZGF0YTEkZGVjZXM9PTEpIH4gZGF0YTEkVG9rdWhhc2hpX2NhdCkNCnN1bW1hcnkoY294NykNCg0KI21vZGVsIDg6IFByZS4gYW1idWxhdG9yeSBzdGF0dXMNCg0KY294OCA9IGNveHBoKFN1cnYoZGF0YTEkU3VydmllUG9zT3BNT0lTLCBkYXRhMSRkZWNlcz09MSkgfiBkYXRhMSRhbWJ1bGF0aW9uX3ByZW9wKQ0Kc3VtbWFyeShjb3g4KQ0KDQojbW9kZWwgOTogUG9zdC4gYW1idWxhdG9yeSBzdGF0dXMNCmNveDkgPSBjb3hwaChTdXJ2KGRhdGExJFN1cnZpZVBvc09wTU9JUywgZGF0YTEkZGVjZXM9PTEpIH4gZGF0YTEkYW1idWxhdGlvblBPKQ0Kc3VtbWFyeShjb3g5KQ0KDQojbW9kZWwgMTA6IFBvc3QuIFJhZGlvdGhlcmFweQ0KDQpjb3gxMCA9IGNveHBoKFN1cnYoZGF0YTEkU3VydmllUG9zT3BNT0lTLCBkYXRhMSRkZWNlcz09MSkgfiBkYXRhMSRSb1J4X1BPKQ0Kc3VtbWFyeShjb3gxMCkNCg0KI21vZGVsIDExOiBQb3N0LiBDaGVtb3RoZXJhcHkNCg0KY294MTEgPSBjb3hwaChTdXJ2KGRhdGExJFN1cnZpZVBvc09wTU9JUywgZGF0YTEkZGVjZXM9PTEpIH4gZGF0YTEkY2hpbWlvdHhQTykNCnN1bW1hcnkoY294MTEpDQoNCmBgYA0KDQoNCiMgbXVsdGl2YXJpYXRlIG1vZGVsDQoNCmBgYHtyfQ0KI21vZGVsIDEyOiBtdWx0aXZhcmlhdGUgbW9kZWwNCg0KY294MTIgPSBjb3hwaChTdXJ2KGRhdGExJFN1cnZpZVBvc09wTU9JUywgZGF0YTEkZGVjZXM9PTEpIH4gZGF0YTEkUm9SeF9QTyArZGF0YTEkdGFiYWdpc21lKyAgZGF0YTEkQVNJQV9wcmVvcCArZGF0YTEkVG9rdWhhc2hpX2NhdCsgZGF0YTEkYW1idWxhdGlvbl9wcmVvcCsgIGRhdGExJGFtYnVsYXRpb25QTytkYXRhMSRSb1J4X1BPK2RhdGExJGNoaW1pb3R4UE8pDQpzdW1tYXJ5KGNveDEyKQ0KYGBgDQoNCg==