1 Giới thiệu

Đường cong ROC (Receiver Operating Characteristic) là một trong những kiến thức cơ bản mà sinh viên Y khoa được học trong giáo trình Thống kê năm thứ nhất. Ứng dụng quen thuộc của đường cong ROC là để đánh giá hiệu năng của một xét nghiệm chẩn đoán.

Tuy vậy, trên thực tế không phải tất cả bác sĩ đều hiểu rõ bản chất của đường cong ROC chính là một bài toán tối ưu hóa và nhị phân áp dụng cho một thang đo liên tục. Mục tiêu của bài toán này nhằm xác định ngưỡng cắt tối ưu của một thông số xét nghiệm để đưa ra một quyết định lâm sàng mang tính nhị phân (loại trừ hay xác định bệnh lý), hay nói cách khác, định ranh giới trên thang đo để cắt thang đo này thành 2 khoảng riêng biệt, thí dụ: bệnh lý và bình thường. Ta sẽ di chuyển từng bước trên thang đo và tại mỗi điểm, ước tính 2 chỉ số: True positive rate (TPR) và True negative rate (TNR), hay Sensitivity và 1-Specificity (Xin xem lại bài kiểm định mô hình phân loại nhị phân : https://rpubs.com/lengockhanhi/347941 ). Đường cong ROC mà ta biết chính là hình ảnh của tất cả các kết quả TNR, TPR tương ứng với rất nhiều điểm trên thang đo.

Trong bài thực hành hôm nay, Nhi sẽ hướng dẫn các bạn dùng ngôn ngữ R để thực hiện thủ công một phân tích ROC .

2 Thí dụ minh họa

Thí dụ ta có một chỉ số xét nghiệm Marker, và mục tiêu đặt ra là xác định một ngưỡng cắt tối ưu nhất của chỉ số này cho phép chẩn đoán (Diagnosis =1) hoặc loại trừ (Diagnosis=0) một căn bệnh.

Ta tải dữ liệu vào R:

library(tidyverse)

df = read.csv("https://raw.githubusercontent.com/kinokoberuji/R-Tutorials/master/ROCdf.csv",sep = ';',dec = ".")

knitr::kable(head(df))
Marker Diagnosis
19.396251 1
48.747631 1
30.151102 1
22.956150 1
8.329277 0
24.973473 1

Đầu tiên, Nhi dùng KDE plot để thăm dò trực quan phân phối của Marker trong 2 nhóm Diagnosis. Biểu đồ cho thấy có sự chồng lắp đáng kể giữa 2 phân bố, như vậy mục tiêu của ta là chọn ra một ngưỡng phù hợp để cân bằng giữa false negative và false positive, mặt khác không có ngưỡng cắt nào là tuyệt đối hoàn hảo.

df%>%ggplot()+
  geom_density(aes(x=Marker,fill=factor(Diagnosis)),alpha=0.4)+
  theme_bw(10)+
  scale_fill_manual(values=c("blue","red"))+
  scale_x_continuous(breaks=c(seq(from=0,to=80,by=20)))

Bạn có thể vẽ một đồ thị của hàm logistic mô tả Diagnosis như 1 biến ngẫu nhiên có phân bố nhị thức tùy theo giá trị Marker. Tuy nhiên ở đây chúng ta không cần phải dùng đến mô hình logistic mà sẽ sử dụng trực tiếp thang đo của Marker cho việc chẩn đoán.

binomial_smooth <- function(...) {
  geom_smooth(method = "glm", method.args = list(family = "binomial"), se=T,show.legend = F,...)
}


df%>%ggplot(aes(x=Marker,y=Diagnosis))+
  geom_point(alpha=0.2,aes(col=factor(Diagnosis)))+
  binomial_smooth(col="purple",fill="violet",alpha=0.5)+
  scale_color_manual(values=c("blue","red"))+
  theme_bw(10)

3 Tạo hàm vẽ đường cong ROC

Nhi viết một hàm gg_roc() để vẽ đường cong ROC với quy trình 2 bước:

  1. Đầu tiên, sử dụng hàm roc() của package pROC để tạo dataframe dữ liệu của Sensitivity, Specificity cho toàn bộ các điểm cắt từ dữ liệu gốc, hoặc dùng bootstrap (nếu tùy chỉnh smooth=True),

  2. Sử dụng ggplot2 để vẽ ROC curve từ dữ liệu nói trên

library(pROC)

gg_roc = function(data,formula,smooth=T,...){

  # Generate ROC data
  myroc=roc(as.formula(formula),data=data,
                 algorithm=3,
                 direction="auto",
                 auc=T,
                 ci=T,
                 smooth=smooth)
  
  # plot ROC curve by ggplot2
  data_frame(fpr=1-myroc$specificities,
             tpr=myroc$sensitivities)%>%
    ggplot(aes(x=fpr,ymin=0,ymax=tpr))+
    geom_polygon(aes(y=tpr),fill="red",alpha=0.3)+
    geom_path(aes(y=tpr),col="red3",size=1)+
    geom_abline(linetype='dashed')+
    theme_bw()+
    coord_equal()+
    labs(x="False positive rate",y="True Positive rate")+
    ggtitle(paste0("AUC=",round(myroc$auc[1],3),"   ",
                   "95%CI :",round(myroc$ci[[1]],3)," to ",
                   round(myroc$ci[[2]],3)
    ))
}

Đây là kết quả của ROC curve không sử dụng smoothing, lúc này 95%CI của AUC được xác định bằng phương pháp DeLong.

gg_roc(data=df,formula='Diagnosis~Marker',smooth=F)

Đây là kết quả của hàm nói trên với tùy chỉnh smooth =True, lúc này 95%CI được xác định bằng bootstrap 2000 lượt.

gg_roc(data=df,formula='Diagnosis~Marker',smooth=T)

4 Xác định ngưỡng cắt tối ưu

Tiếp theo, Nhi viết 1 hàm có tên là cutoff_analysis, cho phép xuất ra một dataframe gồm 17 chỉ số đo lường hiệu năng của quy luật chẩn đoán nhị phân tại từng điểm cắt trên thang đo của Marker. Điều thú vị, đó là package pROC chỉ tính cho chúng ta 2 metrics là Sensitivity và Specificity, nhưng do chúng ta đang xử lý một bài toán nhị phân, các bạn có thể tính ra tất cả các metrics còn lại (không dễ dàng cho lắm, nhưng hoàn toàn có thể, vì chúng có liên hệ chặt chẽ với nhau qua 1 confusion matrix).

Các chỉ số này gồm: Sensitivity, Specificity, FPR, FNR, LR+, LR-, Balanced Accuracy, PPV, NPV, F1, F0.5 và F2 scores, Pre-test probability, Pre-test Odd, Post test Odd và Post test Probability, cuối cùng là d_distance và Youden index - 2 chỉ số quan trọng cho phép định vị 1 điểm tối ưu trên ROC curve.

cutoff_analysis=function(data,outcome,score){

# Generate primary data
myroc=roc(response=outcome,
          predictor=score,
          algorithm=3,
          direction="auto",
          smooth=F)
# Calculate the pre-test probability
pre1=length(which(outcome==1))/nrow(data)

cut_df=as_tibble(cbind(myroc$thresholds,
                       myroc$sensitivities,
                       myroc$specificities))%>%
  dplyr::rename(.,Cutoff=V1,Sens=V2,Spec=V3)

# Complete the data with more metrics
cut_df<-cut_df%>%mutate(.,FPR = (1-.$Spec),
                          FNR = (1-.$Sens),
                          LR_pos = (Sens/(1-Spec)),
                          LR_neg = ((1-Sens)/Spec),
                          BAC = (Sens + Spec)/2,
                          PPV = ((.$Sens*pre1)/(.$Sens*pre1+(1-.$Spec)*(1-pre1))),
                          NPV = (.$Spec*(1-pre1)/((1-.$Sens)*pre1+.$Spec*(1-pre1))),
                          Pre_Odd = pre1/(1-pre1),
                          Post_Odd = Pre_Odd*LR_pos,
                          Post_Prob = Post_Odd/(1+Post_Odd),
                          F1= 2*(Sens*PPV)/(PPV+Sens), 
                          F2= 5*(.$Sens*pre1)/(5*(.$Sens*pre1)+4*(.$Spec*(1-pre1))+(1-.$Spec)*(1-pre1)),
                          F05= (1+0.5^2)*(.$Sens*pre1)/((1+0.5^2)*(.$Sens*pre1)+(0.5^2)*(.$Spec*(1-pre1))+(1-.$Spec)*(1-pre1)),
                          d_distance=sqrt((1-.$Sens)^2+(1-.$Spec)^2),
                          Youden_J=.$Sens+.$Spec-1)
return(cut_df)
}

Áp dụng hàm này cho data df, ta có 1 dataframe như sau:

thres_df = cutoff_analysis(data=df,outcome=df$Diagnosis,score=df$Marker)
thres_df%>%knitr::kable()
Cutoff Sens Spec FPR FNR LR_pos LR_neg BAC PPV NPV Pre_Odd Post_Odd Post_Prob F1 F2 F05 d_distance Youden_J
-Inf 1.0000000 0.0000000 1.0000000 0.0000000 1.000000 NaN 0.5000000 0.5575000 NaN 1.259887 1.259887 0.5575000 0.7158909 0.8630031 0.6116292 1.0000000 0.0000000
1.645625 1.0000000 0.0056497 0.9943503 0.0000000 1.005682 0.0000000 0.5028249 0.5588972 1.0000000 1.259887 1.267046 0.5588972 0.7170418 0.8610039 0.6126374 0.9943503 0.0056497
1.675092 1.0000000 0.0112994 0.9887006 0.0000000 1.011429 0.0000000 0.5056497 0.5603015 1.0000000 1.259887 1.274286 0.5603015 0.7181965 0.8590139 0.6136489 0.9887006 0.0112994
1.742477 1.0000000 0.0169492 0.9830508 0.0000000 1.017241 0.0000000 0.5084746 0.5617128 1.0000000 1.259887 1.281609 0.5617128 0.7193548 0.8570331 0.6146637 0.9830508 0.0169492
1.792323 1.0000000 0.0225989 0.9774011 0.0000000 1.023121 0.0000000 0.5112994 0.5631313 1.0000000 1.259887 1.289017 0.5631313 0.7205170 0.8550613 0.6156819 0.9774011 0.0225989
1.874291 1.0000000 0.0282486 0.9717514 0.0000000 1.029070 0.0000000 0.5141243 0.5645570 1.0000000 1.259887 1.296512 0.5645570 0.7216828 0.8530987 0.6167035 0.9717514 0.0282486
2.049692 1.0000000 0.0338983 0.9661017 0.0000000 1.035088 0.0000000 0.5169492 0.5659898 1.0000000 1.259887 1.304094 0.5659898 0.7228525 0.8511450 0.6177285 0.9661017 0.0338983
2.167599 1.0000000 0.0395480 0.9604520 0.0000000 1.041176 0.0000000 0.5197740 0.5674300 1.0000000 1.259887 1.311765 0.5674300 0.7240260 0.8492003 0.6187569 0.9604520 0.0395480
2.197487 1.0000000 0.0451977 0.9548023 0.0000000 1.047337 0.0000000 0.5225989 0.5688776 1.0000000 1.259887 1.319527 0.5688776 0.7252033 0.8472644 0.6197888 0.9548023 0.0451977
2.516608 1.0000000 0.0508475 0.9491525 0.0000000 1.053571 0.0000000 0.5254237 0.5703325 1.0000000 1.259887 1.327381 0.5703325 0.7263844 0.8453374 0.6208241 0.9491525 0.0508475
2.841710 1.0000000 0.0564972 0.9435028 0.0000000 1.059880 0.0000000 0.5282486 0.5717949 1.0000000 1.259887 1.335329 0.5717949 0.7275693 0.8434191 0.6218628 0.9435028 0.0564972
2.916030 1.0000000 0.0621469 0.9378531 0.0000000 1.066265 0.0000000 0.5310734 0.5732648 1.0000000 1.259887 1.343373 0.5732648 0.7287582 0.8415094 0.6229050 0.9378531 0.0621469
2.983609 1.0000000 0.0677966 0.9322034 0.0000000 1.072727 0.0000000 0.5338983 0.5747423 1.0000000 1.259887 1.351515 0.5747423 0.7299509 0.8396084 0.6239508 0.9322034 0.0677966
3.000635 1.0000000 0.0734463 0.9265537 0.0000000 1.079268 0.0000000 0.5367232 0.5762274 1.0000000 1.259887 1.359756 0.5762274 0.7311475 0.8377160 0.6250000 0.9265537 0.0734463
3.141737 1.0000000 0.0790960 0.9209040 0.0000000 1.085890 0.0000000 0.5395480 0.5777202 1.0000000 1.259887 1.368098 0.5777202 0.7323481 0.8358321 0.6260528 0.9209040 0.0790960
3.309931 1.0000000 0.0847458 0.9152542 0.0000000 1.092593 0.0000000 0.5423729 0.5792208 1.0000000 1.259887 1.376543 0.5792208 0.7335526 0.8339566 0.6271091 0.9152542 0.0847458
3.376077 1.0000000 0.0903955 0.9096045 0.0000000 1.099379 0.0000000 0.5451977 0.5807292 1.0000000 1.259887 1.385093 0.5807292 0.7347611 0.8320896 0.6281690 0.9096045 0.0903955
3.416840 1.0000000 0.0960452 0.9039548 0.0000000 1.106250 0.0000000 0.5480226 0.5822454 1.0000000 1.259887 1.393750 0.5822454 0.7359736 0.8302308 0.6292325 0.9039548 0.0960452
3.458230 1.0000000 0.1016949 0.8983051 0.0000000 1.113207 0.0000000 0.5508475 0.5837696 1.0000000 1.259887 1.402516 0.5837696 0.7371901 0.8283804 0.6302996 0.8983051 0.1016949
3.501754 1.0000000 0.1073446 0.8926554 0.0000000 1.120253 0.0000000 0.5536723 0.5853018 1.0000000 1.259887 1.411392 0.5853018 0.7384106 0.8265382 0.6313703 0.8926554 0.1073446
3.550576 1.0000000 0.1129944 0.8870056 0.0000000 1.127388 0.0000000 0.5564972 0.5868421 1.0000000 1.259887 1.420382 0.5868421 0.7396352 0.8247041 0.6324447 0.8870056 0.1129944
3.598937 1.0000000 0.1186441 0.8813559 0.0000000 1.134615 0.0000000 0.5593220 0.5883905 1.0000000 1.259887 1.429487 0.5883905 0.7408638 0.8228782 0.6335227 0.8813559 0.1186441
3.911126 1.0000000 0.1242938 0.8757062 0.0000000 1.141935 0.0000000 0.5621469 0.5899471 1.0000000 1.259887 1.438710 0.5899471 0.7420965 0.8210604 0.6346044 0.8757062 0.1242938
4.384991 1.0000000 0.1299435 0.8700565 0.0000000 1.149351 0.0000000 0.5649718 0.5915119 1.0000000 1.259887 1.448052 0.5915119 0.7433333 0.8192506 0.6356899 0.8700565 0.1299435
4.567970 1.0000000 0.1355932 0.8644068 0.0000000 1.156863 0.0000000 0.5677966 0.5930851 1.0000000 1.259887 1.457516 0.5930851 0.7445743 0.8174487 0.6367790 0.8644068 0.1355932
4.641318 1.0000000 0.1412429 0.8587571 0.0000000 1.164474 0.0000000 0.5706215 0.5946667 1.0000000 1.259887 1.467105 0.5946667 0.7458194 0.8156547 0.6378719 0.8587571 0.1412429
4.757399 1.0000000 0.1468927 0.8531073 0.0000000 1.172185 0.0000000 0.5734463 0.5962567 1.0000000 1.259887 1.476821 0.5962567 0.7470687 0.8138686 0.6389685 0.8531073 0.1468927
4.850897 1.0000000 0.1525424 0.8474576 0.0000000 1.180000 0.0000000 0.5762712 0.5978552 1.0000000 1.259887 1.486667 0.5978552 0.7483221 0.8120903 0.6400689 0.8474576 0.1525424
4.910033 1.0000000 0.1581921 0.8418079 0.0000000 1.187920 0.0000000 0.5790960 0.5994624 1.0000000 1.259887 1.496644 0.5994624 0.7495798 0.8103198 0.6411731 0.8418079 0.1581921
4.932351 1.0000000 0.1638418 0.8361582 0.0000000 1.195946 0.0000000 0.5819209 0.6010782 1.0000000 1.259887 1.506757 0.6010782 0.7508418 0.8085569 0.6422811 0.8361582 0.1638418
5.056955 1.0000000 0.1694915 0.8305085 0.0000000 1.204082 0.0000000 0.5847458 0.6027027 1.0000000 1.259887 1.517007 0.6027027 0.7521079 0.8068017 0.6433930 0.8305085 0.1694915
5.244783 1.0000000 0.1751412 0.8248588 0.0000000 1.212329 0.0000000 0.5875706 0.6043360 1.0000000 1.259887 1.527397 0.6043360 0.7533784 0.8050542 0.6445087 0.8248588 0.1751412
5.332890 1.0000000 0.1807910 0.8192090 0.0000000 1.220690 0.0000000 0.5903955 0.6059783 1.0000000 1.259887 1.537931 0.6059783 0.7546531 0.8033141 0.6456283 0.8192090 0.1807910
5.363999 1.0000000 0.1864407 0.8135593 0.0000000 1.229167 0.0000000 0.5932203 0.6076294 1.0000000 1.259887 1.548611 0.6076294 0.7559322 0.8015816 0.6467517 0.8135593 0.1864407
5.436528 1.0000000 0.1920904 0.8079096 0.0000000 1.237762 0.0000000 0.5960452 0.6092896 1.0000000 1.259887 1.559441 0.6092896 0.7572156 0.7998565 0.6478791 0.8079096 0.1920904
5.546781 1.0000000 0.1977401 0.8022599 0.0000000 1.246479 0.0000000 0.5988701 0.6109589 1.0000000 1.259887 1.570423 0.6109589 0.7585034 0.7981389 0.6490105 0.8022599 0.1977401
5.620389 1.0000000 0.2033898 0.7966102 0.0000000 1.255319 0.0000000 0.6016949 0.6126374 1.0000000 1.259887 1.581560 0.6126374 0.7597956 0.7964286 0.6501458 0.7966102 0.2033898
5.665109 1.0000000 0.2090395 0.7909605 0.0000000 1.264286 0.0000000 0.6045198 0.6143251 1.0000000 1.259887 1.592857 0.6143251 0.7610922 0.7947256 0.6512850 0.7909605 0.2090395
5.717394 1.0000000 0.2146893 0.7853107 0.0000000 1.273381 0.0000000 0.6073446 0.6160221 1.0000000 1.259887 1.604316 0.6160221 0.7623932 0.7930299 0.6524283 0.7853107 0.2146893
5.758711 1.0000000 0.2203390 0.7796610 0.0000000 1.282609 0.0000000 0.6101695 0.6177285 1.0000000 1.259887 1.615942 0.6177285 0.7636986 0.7913414 0.6535756 0.7796610 0.2203390
5.798341 1.0000000 0.2259887 0.7740113 0.0000000 1.291971 0.0000000 0.6129944 0.6194444 1.0000000 1.259887 1.627737 0.6194444 0.7650086 0.7896601 0.6547270 0.7740113 0.2259887
5.839294 1.0000000 0.2316384 0.7683616 0.0000000 1.301471 0.0000000 0.6158192 0.6211699 1.0000000 1.259887 1.639706 0.6211699 0.7663230 0.7879859 0.6558824 0.7683616 0.2316384
5.926506 1.0000000 0.2372881 0.7627119 0.0000000 1.311111 0.0000000 0.6186441 0.6229050 1.0000000 1.259887 1.651852 0.6229050 0.7676420 0.7863188 0.6570418 0.7627119 0.2372881
6.045342 1.0000000 0.2429379 0.7570621 0.0000000 1.320896 0.0000000 0.6214689 0.6246499 1.0000000 1.259887 1.664179 0.6246499 0.7689655 0.7846587 0.6582054 0.7570621 0.2429379
6.085835 1.0000000 0.2485876 0.7514124 0.0000000 1.330827 0.0000000 0.6242938 0.6264045 1.0000000 1.259887 1.676692 0.6264045 0.7702936 0.7830056 0.6593732 0.7514124 0.2485876
6.102733 1.0000000 0.2542373 0.7457627 0.0000000 1.340909 0.0000000 0.6271186 0.6281690 1.0000000 1.259887 1.689394 0.6281690 0.7716263 0.7813595 0.6605450 0.7457627 0.2542373
6.139763 1.0000000 0.2598870 0.7401130 0.0000000 1.351145 0.0000000 0.6299435 0.6299435 1.0000000 1.259887 1.702290 0.6299435 0.7729636 0.7797203 0.6617211 0.7401130 0.2598870
6.188509 1.0000000 0.2655367 0.7344633 0.0000000 1.361538 0.0000000 0.6327684 0.6317280 1.0000000 1.259887 1.715385 0.6317280 0.7743056 0.7780879 0.6629013 0.7344633 0.2655367
6.221533 1.0000000 0.2711864 0.7288136 0.0000000 1.372093 0.0000000 0.6355932 0.6335227 1.0000000 1.259887 1.728682 0.6335227 0.7756522 0.7764624 0.6640858 0.7288136 0.2711864
6.232278 1.0000000 0.2768362 0.7231638 0.0000000 1.382812 0.0000000 0.6384181 0.6353276 1.0000000 1.259887 1.742188 0.6353276 0.7770035 0.7748436 0.6652745 0.7231638 0.2768362
6.245391 1.0000000 0.2824859 0.7175141 0.0000000 1.393701 0.0000000 0.6412429 0.6371429 1.0000000 1.259887 1.755905 0.6371429 0.7783595 0.7732316 0.6664674 0.7175141 0.2824859
6.262833 1.0000000 0.2881356 0.7118644 0.0000000 1.404762 0.0000000 0.6440678 0.6389685 1.0000000 1.259887 1.769841 0.6389685 0.7797203 0.7716263 0.6676647 0.7118644 0.2881356
6.319597 1.0000000 0.2937853 0.7062147 0.0000000 1.416000 0.0000000 0.6468927 0.6408046 1.0000000 1.259887 1.784000 0.6408046 0.7810858 0.7700276 0.6688662 0.7062147 0.2937853
6.369075 1.0000000 0.2994350 0.7005650 0.0000000 1.427419 0.0000000 0.6497175 0.6426513 1.0000000 1.259887 1.798387 0.6426513 0.7824561 0.7684356 0.6700721 0.7005650 0.2994350
6.393690 1.0000000 0.3050847 0.6949153 0.0000000 1.439024 0.0000000 0.6525424 0.6445087 1.0000000 1.259887 1.813008 0.6445087 0.7838313 0.7668501 0.6712824 0.6949153 0.3050847
6.514457 0.9955157 0.3050847 0.6949153 0.0044843 1.432571 0.0146986 0.6503002 0.6434783 0.9818182 1.259887 1.804878 0.6434783 0.7816901 0.7660455 0.6702899 0.6949297 0.3006004
6.632610 0.9955157 0.3107345 0.6892655 0.0044843 1.444314 0.0144313 0.6531251 0.6453488 0.9821429 1.259887 1.819672 0.6453488 0.7830688 0.7644628 0.6715064 0.6892801 0.3062502
6.744798 0.9955157 0.3163842 0.6836158 0.0044843 1.456250 0.0141736 0.6559499 0.6472303 0.9824561 1.259887 1.834711 0.6472303 0.7844523 0.7628866 0.6727273 0.6836305 0.3118999
6.880949 0.9955157 0.3220339 0.6779661 0.0044843 1.468386 0.0139249 0.6587748 0.6491228 0.9827586 1.259887 1.850000 0.6491228 0.7858407 0.7613169 0.6739526 0.6779809 0.3175496
6.987856 0.9955157 0.3276836 0.6723164 0.0044843 1.480725 0.0136849 0.6615997 0.6510264 0.9830508 1.259887 1.865546 0.6510264 0.7872340 0.7597536 0.6751825 0.6723313 0.3231993
7.064217 0.9955157 0.3333333 0.6666667 0.0044843 1.493273 0.0134529 0.6644245 0.6529412 0.9833333 1.259887 1.881356 0.6529412 0.7886323 0.7581967 0.6764168 0.6666817 0.3288490
7.091780 0.9955157 0.3389831 0.6610169 0.0044843 1.506037 0.0132287 0.6672494 0.6548673 0.9836066 1.259887 1.897436 0.6548673 0.7900356 0.7566462 0.6776557 0.6610322 0.3344987
7.148384 0.9955157 0.3446328 0.6553672 0.0044843 1.519020 0.0130118 0.6700742 0.6568047 0.9838710 1.259887 1.913793 0.6568047 0.7914439 0.7551020 0.6788991 0.6553826 0.3401485
7.232644 0.9955157 0.3502825 0.6497175 0.0044843 1.532228 0.0128020 0.6728991 0.6587537 0.9841270 1.259887 1.930435 0.6587537 0.7928571 0.7535642 0.6801471 0.6497330 0.3457982
7.310617 0.9910314 0.3502825 0.6497175 0.0089686 1.525327 0.0256039 0.6706569 0.6577381 0.9687500 1.259887 1.921739 0.6577381 0.7906977 0.7527248 0.6791641 0.6497794 0.3413139
7.359765 0.9910314 0.3559322 0.6440678 0.0089686 1.538707 0.0251975 0.6734818 0.6597015 0.9692308 1.259887 1.938597 0.6597015 0.7921147 0.7511897 0.6804187 0.6441302 0.3469636
7.450059 0.9910314 0.3615819 0.6384181 0.0089686 1.552323 0.0248038 0.6763067 0.6616766 0.9696970 1.259887 1.955752 0.6616766 0.7935368 0.7496608 0.6816780 0.6384811 0.3526133
7.535045 0.9910314 0.3672316 0.6327684 0.0089686 1.566183 0.0244222 0.6791315 0.6636637 0.9701493 1.259887 1.973214 0.6636637 0.7949640 0.7481381 0.6829419 0.6328319 0.3582630
7.593851 0.9910314 0.3728814 0.6271186 0.0089686 1.580293 0.0240522 0.6819564 0.6656627 0.9705882 1.259887 1.990991 0.6656627 0.7963964 0.7466216 0.6842105 0.6271828 0.3639127
7.713405 0.9910314 0.3785311 0.6214689 0.0089686 1.594660 0.0236932 0.6847812 0.6676737 0.9710145 1.259887 2.009091 0.6676737 0.7978339 0.7451113 0.6854839 0.6215336 0.3695625
7.811636 0.9910314 0.3841808 0.6158192 0.0089686 1.609290 0.0233448 0.6876061 0.6696970 0.9714286 1.259887 2.027523 0.6696970 0.7992767 0.7436070 0.6867620 0.6158845 0.3752122
7.909620 0.9910314 0.3898305 0.6101695 0.0089686 1.624190 0.0230064 0.6904309 0.6717325 0.9718310 1.259887 2.046296 0.6717325 0.8007246 0.7421088 0.6880448 0.6102354 0.3808619
8.018414 0.9910314 0.3954802 0.6045198 0.0089686 1.639370 0.0226778 0.6932558 0.6737805 0.9722222 1.259887 2.065421 0.6737805 0.8021779 0.7406166 0.6893325 0.6045863 0.3865116
8.081115 0.9910314 0.4011299 0.5988701 0.0089686 1.654835 0.0223584 0.6960807 0.6758410 0.9726027 1.259887 2.084906 0.6758410 0.8036364 0.7391304 0.6906250 0.5989372 0.3921613
8.102898 0.9910314 0.4067797 0.5932203 0.0089686 1.670596 0.0220478 0.6989055 0.6779141 0.9729730 1.259887 2.104762 0.6779141 0.8051002 0.7376502 0.6919224 0.5932881 0.3978111
8.149066 0.9910314 0.4124294 0.5875706 0.0089686 1.686659 0.0217458 0.7017304 0.6800000 0.9733333 1.259887 2.125000 0.6800000 0.8065693 0.7361759 0.6932246 0.5876391 0.4034608
8.235015 0.9910314 0.4180791 0.5819209 0.0089686 1.703035 0.0214519 0.7045552 0.6820988 0.9736842 1.259887 2.145631 0.6820988 0.8080439 0.7347074 0.6945317 0.5819900 0.4091105
8.302277 0.9910314 0.4237288 0.5762712 0.0089686 1.719731 0.0211659 0.7073801 0.6842105 0.9740260 1.259887 2.166667 0.6842105 0.8095238 0.7332449 0.6958438 0.5763410 0.4147602
8.350086 0.9910314 0.4293785 0.5706215 0.0089686 1.736758 0.0208874 0.7102050 0.6863354 0.9743590 1.259887 2.188119 0.6863354 0.8110092 0.7317881 0.6971609 0.5706919 0.4204099
8.412731 0.9910314 0.4350282 0.5649718 0.0089686 1.754126 0.0206162 0.7130298 0.6884735 0.9746835 1.259887 2.210000 0.6884735 0.8125000 0.7303371 0.6984829 0.5650429 0.4260596
8.475043 0.9910314 0.4406780 0.5593220 0.0089686 1.771844 0.0203518 0.7158547 0.6906250 0.9750000 1.259887 2.232323 0.6906250 0.8139963 0.7288918 0.6998100 0.5593939 0.4317094
8.512095 0.9910314 0.4463277 0.5536723 0.0089686 1.789924 0.0200942 0.7186795 0.6927900 0.9753086 1.259887 2.255102 0.6927900 0.8154982 0.7274523 0.7011421 0.5537450 0.4373591
8.528971 0.9910314 0.4519774 0.5480226 0.0089686 1.808377 0.0198430 0.7215044 0.6949686 0.9756098 1.259887 2.278351 0.6949686 0.8170055 0.7260184 0.7024793 0.5480960 0.4430088
8.543807 0.9910314 0.4576271 0.5423729 0.0089686 1.827214 0.0195981 0.7243293 0.6971609 0.9759036 1.259887 2.302083 0.6971609 0.8185185 0.7245902 0.7038217 0.5424470 0.4486585
8.578416 0.9910314 0.4632768 0.5367232 0.0089686 1.846448 0.0193591 0.7271541 0.6993671 0.9761905 1.259887 2.326316 0.6993671 0.8200371 0.7231675 0.7051691 0.5367981 0.4543082
8.876170 0.9910314 0.4689266 0.5310734 0.0089686 1.866091 0.0191258 0.7299790 0.7015873 0.9764706 1.259887 2.351064 0.7015873 0.8215613 0.7217505 0.7065217 0.5311492 0.4599579
9.199268 0.9865471 0.4689266 0.5310734 0.0134529 1.857647 0.0286887 0.7277368 0.7006369 0.9651163 1.259887 2.340425 0.7006369 0.8193669 0.7208388 0.7055805 0.5312438 0.4554736
9.304630 0.9865471 0.4745763 0.5254237 0.0134529 1.877622 0.0283472 0.7305617 0.7028754 0.9655172 1.259887 2.365591 0.7028754 0.8208955 0.7194245 0.7069409 0.5255959 0.4611234
9.529845 0.9865471 0.4802260 0.5197740 0.0134529 1.898031 0.0280137 0.7333865 0.7051282 0.9659091 1.259887 2.391304 0.7051282 0.8224299 0.7180157 0.7083065 0.5199481 0.4667731
9.840045 0.9820628 0.4802260 0.5197740 0.0179372 1.889403 0.0373516 0.7311444 0.7041801 0.9550562 1.259887 2.380435 0.7041801 0.8202247 0.7170923 0.7073643 0.5200834 0.4622888
9.991691 0.9820628 0.4858757 0.5141243 0.0179372 1.910166 0.0369173 0.7339692 0.7064516 0.9555556 1.259887 2.406593 0.7064516 0.8217636 0.7156863 0.7087379 0.5144371 0.4679385
10.019467 0.9820628 0.4915254 0.5084746 0.0179372 1.931390 0.0364930 0.7367941 0.7087379 0.9560440 1.259887 2.433333 0.7087379 0.8233083 0.7142857 0.7101167 0.5087909 0.4735882
10.145782 0.9820628 0.4971751 0.5028249 0.0179372 1.953091 0.0360783 0.7396190 0.7110390 0.9565217 1.259887 2.460674 0.7110390 0.8248588 0.7128906 0.7115010 0.5031447 0.4792379
10.325981 0.9775785 0.4971751 0.5028249 0.0224215 1.944173 0.0450978 0.7373768 0.7100977 0.9462366 1.259887 2.449438 0.7100977 0.8226415 0.7119530 0.7105606 0.5033245 0.4747536
10.423143 0.9730942 0.4971751 0.5028249 0.0269058 1.935255 0.0541174 0.7351347 0.7091503 0.9361702 1.259887 2.438202 0.7091503 0.8204159 0.7110092 0.7096141 0.5035442 0.4702693
10.482213 0.9730942 0.5028249 0.4971751 0.0269058 1.957246 0.0535093 0.7379595 0.7114754 0.9368421 1.259887 2.465909 0.7114754 0.8219697 0.7096141 0.7110092 0.4979026 0.4759190
10.541058 0.9730942 0.5084746 0.4915254 0.0269058 1.979743 0.0529148 0.7407844 0.7138158 0.9375000 1.259887 2.494253 0.7138158 0.8235294 0.7082245 0.7124097 0.4922613 0.4815687
10.578859 0.9730942 0.5141243 0.4858757 0.0269058 2.002764 0.0523333 0.7436092 0.7161716 0.9381443 1.259887 2.523256 0.7161716 0.8250951 0.7068404 0.7138158 0.4866201 0.4872185
10.610185 0.9730942 0.5197740 0.4802260 0.0269058 2.026326 0.0517645 0.7464341 0.7185430 0.9387755 1.259887 2.552941 0.7185430 0.8266667 0.7054616 0.7152274 0.4809791 0.4928682
10.626031 0.9730942 0.5254237 0.4745763 0.0269058 2.050448 0.0512079 0.7492589 0.7209302 0.9393939 1.259887 2.583333 0.7209302 0.8282443 0.7040883 0.7166446 0.4753384 0.4985179
10.628331 0.9730942 0.5310734 0.4689266 0.0269058 2.075153 0.0506631 0.7520838 0.7233333 0.9400000 1.259887 2.614458 0.7233333 0.8298279 0.7027202 0.7180675 0.4696978 0.5041676
10.649670 0.9730942 0.5367232 0.4632768 0.0269058 2.100459 0.0501298 0.7549087 0.7257525 0.9405941 1.259887 2.646342 0.7257525 0.8314176 0.7013575 0.7194960 0.4640575 0.5098173
10.728040 0.9686099 0.5367232 0.4632768 0.0313901 2.090780 0.0584848 0.7526665 0.7248322 0.9313725 1.259887 2.634146 0.7248322 0.8291747 0.7003891 0.7185629 0.4643391 0.5053330
10.817869 0.9686099 0.5423729 0.4576271 0.0313901 2.116592 0.0578756 0.7554914 0.7272727 0.9320388 1.259887 2.666667 0.7272727 0.8307692 0.6990291 0.7200000 0.4587024 0.5109827
10.929464 0.9686099 0.5480226 0.4519774 0.0313901 2.143049 0.0572789 0.7583162 0.7297297 0.9326923 1.259887 2.700000 0.7297297 0.8323699 0.6976744 0.7214429 0.4530661 0.5166325
11.089323 0.9686099 0.5536723 0.4463277 0.0313901 2.170177 0.0566944 0.7611411 0.7322034 0.9333333 1.259887 2.734177 0.7322034 0.8339768 0.6963250 0.7228916 0.4474302 0.5222822
11.306006 0.9641256 0.5536723 0.4463277 0.0358744 2.160129 0.0647936 0.7588989 0.7312925 0.9245283 1.259887 2.721519 0.7312925 0.8317215 0.6953428 0.7219610 0.4477671 0.5177979
11.459287 0.9641256 0.5593220 0.4406780 0.0358744 2.187823 0.0641391 0.7617238 0.7337884 0.9252336 1.259887 2.756410 0.7337884 0.8333333 0.6939961 0.7234186 0.4421358 0.5234476
11.545520 0.9641256 0.5649718 0.4350282 0.0358744 2.216237 0.0634978 0.7645487 0.7363014 0.9259259 1.259887 2.792208 0.7363014 0.8349515 0.6926546 0.7248820 0.4365049 0.5290973
11.695355 0.9641256 0.5706215 0.4293785 0.0358744 2.245398 0.0628691 0.7673735 0.7388316 0.9266055 1.259887 2.828947 0.7388316 0.8365759 0.6913183 0.7263514 0.4308746 0.5347470
11.782162 0.9641256 0.5762712 0.4237288 0.0358744 2.275336 0.0622527 0.7701984 0.7413793 0.9272727 1.259887 2.866667 0.7413793 0.8382066 0.6899872 0.7278267 0.4252447 0.5403967
11.861060 0.9641256 0.5819209 0.4180791 0.0358744 2.306084 0.0616483 0.7730232 0.7439446 0.9279279 1.259887 2.905405 0.7439446 0.8398438 0.6886611 0.7293080 0.4196154 0.5460465
11.957573 0.9641256 0.5875706 0.4124294 0.0358744 2.337674 0.0610555 0.7758481 0.7465278 0.9285714 1.259887 2.945206 0.7465278 0.8414873 0.6873402 0.7307954 0.4139867 0.5516962
11.998020 0.9641256 0.5932203 0.4067797 0.0358744 2.370142 0.0604741 0.7786729 0.7491289 0.9292035 1.259887 2.986111 0.7491289 0.8431373 0.6860243 0.7322888 0.4083585 0.5573459
12.013771 0.9641256 0.5988701 0.4011299 0.0358744 2.403524 0.0599035 0.7814978 0.7517483 0.9298246 1.259887 3.028169 0.7517483 0.8447937 0.6847134 0.7337884 0.4027309 0.5629956
12.056876 0.9641256 0.6045198 0.3954802 0.0358744 2.437860 0.0593437 0.7843227 0.7543860 0.9304348 1.259887 3.071429 0.7543860 0.8464567 0.6834075 0.7352941 0.3971040 0.5686453
12.100715 0.9596413 0.6045198 0.3954802 0.0403587 2.426522 0.0667617 0.7820805 0.7535211 0.9224138 1.259887 3.057143 0.7535211 0.8441815 0.6823980 0.7343857 0.3975342 0.5641610
12.167080 0.9596413 0.6101695 0.3898305 0.0403587 2.461688 0.0661435 0.7849054 0.7561837 0.9230769 1.259887 3.101449 0.7561837 0.8458498 0.6810948 0.7359010 0.3919141 0.5698107
12.258071 0.9596413 0.6158192 0.3841808 0.0403587 2.497890 0.0655367 0.7877302 0.7588652 0.9237288 1.259887 3.147059 0.7588652 0.8475248 0.6797967 0.7374225 0.3862948 0.5754605
12.325552 0.9596413 0.6214689 0.3785311 0.0403587 2.535172 0.0649409 0.7905551 0.7615658 0.9243697 1.259887 3.194030 0.7615658 0.8492063 0.6785035 0.7389503 0.3806765 0.5811102
12.466423 0.9596413 0.6271186 0.3728814 0.0403587 2.573583 0.0643558 0.7933799 0.7642857 0.9250000 1.259887 3.242424 0.7642857 0.8508946 0.6772152 0.7404844 0.3750591 0.5867599
12.576515 0.9596413 0.6327684 0.3672316 0.0403587 2.613177 0.0637812 0.7962048 0.7670251 0.9256198 1.259887 3.292308 0.7670251 0.8525896 0.6759318 0.7420250 0.3694427 0.5924096
12.624495 0.9596413 0.6384181 0.3615819 0.0403587 2.654008 0.0632168 0.7990297 0.7697842 0.9262295 1.259887 3.343750 0.7697842 0.8542914 0.6746532 0.7435719 0.3638273 0.5980593
12.757161 0.9596413 0.6440678 0.3559322 0.0403587 2.696135 0.0626623 0.8018545 0.7725632 0.9268293 1.259887 3.396825 0.7725632 0.8560000 0.6733795 0.7451253 0.3582130 0.6037091
12.945214 0.9596413 0.6497175 0.3502825 0.0403587 2.739621 0.0621174 0.8046794 0.7753623 0.9274194 1.259887 3.451613 0.7753623 0.8577154 0.6721106 0.7466853 0.3525998 0.6093588
13.068832 0.9596413 0.6553672 0.3446328 0.0403587 2.784533 0.0615819 0.8075042 0.7781818 0.9280000 1.259887 3.508197 0.7781818 0.8594378 0.6708464 0.7482517 0.3469879 0.6150085
13.125547 0.9596413 0.6610169 0.3389831 0.0403587 2.830942 0.0610555 0.8103291 0.7810219 0.9285714 1.259887 3.566667 0.7810219 0.8611670 0.6695870 0.7498248 0.3413771 0.6206582
13.183913 0.9596413 0.6666667 0.3333333 0.0403587 2.878924 0.0605381 0.8131540 0.7838828 0.9291339 1.259887 3.627119 0.7838828 0.8629032 0.6683323 0.7514045 0.3357677 0.6263079
13.285465 0.9596413 0.6723164 0.3276836 0.0403587 2.928560 0.0600294 0.8159788 0.7867647 0.9296875 1.259887 3.689655 0.7867647 0.8646465 0.6670823 0.7529909 0.3301596 0.6319576
13.382439 0.9551570 0.6723164 0.3276836 0.0448430 2.914875 0.0666993 0.8137367 0.7859779 0.9224806 1.259887 3.672414 0.7859779 0.8623482 0.6660413 0.7521186 0.3307377 0.6274733
13.457342 0.9551570 0.6779661 0.3220339 0.0448430 2.966014 0.0661435 0.8165615 0.7888889 0.9230769 1.259887 3.736842 0.7888889 0.8640974 0.6647940 0.7537155 0.3251411 0.6331231
13.521401 0.9506726 0.6779661 0.3220339 0.0493274 2.952089 0.0727578 0.8143194 0.7881041 0.9160305 1.259887 3.719298 0.7881041 0.8617886 0.6637445 0.7528409 0.3257898 0.6286387
13.595673 0.9506726 0.6836158 0.3163842 0.0493274 3.004805 0.0721565 0.8171442 0.7910448 0.9166667 1.259887 3.785714 0.7910448 0.8635438 0.6625000 0.7544484 0.3202064 0.6342885
13.669528 0.9506726 0.6892655 0.3107345 0.0493274 3.059437 0.0715651 0.8199691 0.7940075 0.9172932 1.259887 3.854545 0.7940075 0.8653061 0.6612601 0.7560628 0.3146253 0.6399382
13.698240 0.9506726 0.6949153 0.3050847 0.0493274 3.116094 0.0709833 0.8227939 0.7969925 0.9179104 1.259887 3.925926 0.7969925 0.8670757 0.6600249 0.7576841 0.3090467 0.6455879
13.740438 0.9506726 0.7005650 0.2994350 0.0493274 3.174888 0.0704108 0.8256188 0.8000000 0.9185185 1.259887 4.000000 0.8000000 0.8688525 0.6587943 0.7593123 0.3034708 0.6512376
13.794221 0.9506726 0.7062147 0.2937853 0.0493274 3.235943 0.0698475 0.8284437 0.8030303 0.9191176 1.259887 4.076923 0.8030303 0.8706366 0.6575682 0.7609476 0.2978976 0.6568873
13.843093 0.9506726 0.7118644 0.2881356 0.0493274 3.299393 0.0692932 0.8312685 0.8060837 0.9197080 1.259887 4.156863 0.8060837 0.8724280 0.6563467 0.7625899 0.2923274 0.6625371
13.873725 0.9506726 0.7175141 0.2824859 0.0493274 3.365381 0.0687476 0.8340934 0.8091603 0.9202899 1.259887 4.240000 0.8091603 0.8742268 0.6551298 0.7642394 0.2867603 0.6681868
13.887217 0.9506726 0.7231638 0.2768362 0.0493274 3.434062 0.0682105 0.8369182 0.8122605 0.9208633 1.259887 4.326531 0.8122605 0.8760331 0.6539173 0.7658960 0.2811965 0.6738365
13.976932 0.9506726 0.7288136 0.2711864 0.0493274 3.505605 0.0676817 0.8397431 0.8153846 0.9214286 1.259887 4.416667 0.8153846 0.8778468 0.6527094 0.7675597 0.2756361 0.6794862
14.131225 0.9506726 0.7344633 0.2655367 0.0493274 3.580193 0.0671611 0.8425680 0.8185328 0.9219858 1.259887 4.510638 0.8185328 0.8796680 0.6515058 0.7692308 0.2700795 0.6851359
14.212864 0.9506726 0.7401130 0.2598870 0.0493274 3.658023 0.0666484 0.8453928 0.8217054 0.9225352 1.259887 4.608696 0.8217054 0.8814969 0.6503067 0.7709091 0.2645268 0.6907856
14.294301 0.9506726 0.7457627 0.2542373 0.0493274 3.739312 0.0661435 0.8482177 0.8249027 0.9230769 1.259887 4.711111 0.8249027 0.8833333 0.6491121 0.7725948 0.2589784 0.6964354
14.405669 0.9506726 0.7514124 0.2485876 0.0493274 3.824297 0.0656462 0.8510425 0.8281250 0.9236111 1.259887 4.818182 0.8281250 0.8851775 0.6479218 0.7742878 0.2534343 0.7020851
14.473153 0.9506726 0.7570621 0.2429379 0.0493274 3.913234 0.0651563 0.8538674 0.8313725 0.9241379 1.259887 4.930233 0.8313725 0.8870293 0.6467358 0.7759883 0.2478951 0.7077348
14.518043 0.9461883 0.7570621 0.2429379 0.0538117 3.894775 0.0710796 0.8516252 0.8307087 0.9178082 1.259887 4.906977 0.8307087 0.8846960 0.6456548 0.7751653 0.2488262 0.7032505
14.689707 0.9461883 0.7627119 0.2372881 0.0538117 3.987508 0.0705531 0.8544501 0.8339921 0.9183673 1.259887 5.023809 0.8339921 0.8865546 0.6444716 0.7768778 0.2433133 0.7089002
14.870140 0.9461883 0.7683616 0.2316384 0.0538117 4.084764 0.0700343 0.8572750 0.8373016 0.9189189 1.259887 5.146342 0.8373016 0.8884211 0.6432927 0.7785978 0.2378068 0.7145499
14.904980 0.9461883 0.7740113 0.2259887 0.0538117 4.186883 0.0695231 0.8600998 0.8406375 0.9194631 1.259887 5.275000 0.8406375 0.8902954 0.6421181 0.7803254 0.2323071 0.7201996
14.955615 0.9461883 0.7796610 0.2203390 0.0538117 4.294239 0.0690193 0.8629247 0.8440000 0.9200000 1.259887 5.410256 0.8440000 0.8921776 0.6409478 0.7820608 0.2268148 0.7258494
15.048284 0.9461883 0.7853107 0.2146893 0.0538117 4.407246 0.0685228 0.8657495 0.8473896 0.9205298 1.259887 5.552632 0.8473896 0.8940678 0.6397817 0.7838039 0.2213305 0.7314991
15.258047 0.9417040 0.7853107 0.2146893 0.0582960 4.386358 0.0742330 0.8635074 0.8467742 0.9144737 1.259887 5.526316 0.8467742 0.8917197 0.6386861 0.7829978 0.2224633 0.7270148
15.423485 0.9417040 0.7909605 0.2090395 0.0582960 4.504908 0.0737028 0.8663322 0.8502024 0.9150327 1.259887 5.675676 0.8502024 0.8936170 0.6375228 0.7847534 0.2170160 0.7326645
15.475504 0.9417040 0.7966102 0.2033898 0.0582960 4.630045 0.0731800 0.8691571 0.8536585 0.9155844 1.259887 5.833333 0.8536585 0.8955224 0.6363636 0.7865169 0.2115794 0.7383142
15.585721 0.9372197 0.7966102 0.2033898 0.0627803 4.607997 0.0788093 0.8669150 0.8530612 0.9096774 1.259887 5.805556 0.8530612 0.8931624 0.6352584 0.7857143 0.2128586 0.7338299
15.674160 0.9372197 0.8022599 0.1977401 0.0627803 4.739654 0.0782543 0.8697398 0.8565574 0.9102564 1.259887 5.971429 0.8565574 0.8950749 0.6341019 0.7874906 0.2074669 0.7394796
15.816097 0.9372197 0.8079096 0.1920904 0.0627803 4.879056 0.0777070 0.8725647 0.8600823 0.9108280 1.259887 6.147059 0.8600823 0.8969957 0.6329497 0.7892749 0.2020893 0.7451293
15.977804 0.9372197 0.8135593 0.1864407 0.0627803 5.026906 0.0771674 0.8753895 0.8636364 0.9113924 1.259887 6.333333 0.8636364 0.8989247 0.6318017 0.7910674 0.1967269 0.7507791
16.020444 0.9327354 0.8135593 0.1864407 0.0672646 5.002854 0.0826794 0.8731474 0.8630705 0.9056604 1.259887 6.303030 0.8630705 0.8965517 0.6306853 0.7902736 0.1982036 0.7462947
16.082268 0.9327354 0.8192090 0.1807910 0.0672646 5.159193 0.0821092 0.8759722 0.8666667 0.9062500 1.259887 6.500000 0.8666667 0.8984881 0.6295400 0.7920792 0.1928987 0.7519445
16.144879 0.9282511 0.8192090 0.1807910 0.0717489 5.134389 0.0875831 0.8737301 0.8661088 0.9006211 1.259887 6.468750 0.8661088 0.8961039 0.6284153 0.7912844 0.1945078 0.7474602
16.152451 0.9282511 0.8248588 0.1751412 0.0717489 5.300014 0.0869832 0.8765549 0.8697479 0.9012346 1.259887 6.677419 0.8697479 0.8980477 0.6272727 0.7931034 0.1892679 0.7531099
16.202750 0.9282511 0.8305085 0.1694915 0.0717489 5.476682 0.0863915 0.8793798 0.8734177 0.9018405 1.259887 6.900000 0.8734177 0.9000000 0.6261343 0.7949309 0.1840524 0.7587596
16.274343 0.9237668 0.8305085 0.1694915 0.0762332 5.450224 0.0917910 0.8771376 0.8728814 0.8963415 1.259887 6.866667 0.8728814 0.8976035 0.6250000 0.7941403 0.1858464 0.7542753
16.400717 0.9192825 0.8305085 0.1694915 0.0807175 5.423767 0.0971904 0.8748955 0.8723404 0.8909091 1.259887 6.833333 0.8723404 0.8951965 0.6238588 0.7933437 0.1877304 0.7497910
16.510507 0.9192825 0.8361582 0.1638418 0.0807175 5.610793 0.0965338 0.8777204 0.8760684 0.8915663 1.259887 7.068966 0.8760684 0.8971554 0.6227217 0.7951901 0.1826457 0.7554407
16.536454 0.9192825 0.8418079 0.1581921 0.0807175 5.811179 0.0958859 0.8805452 0.8798283 0.8922156 1.259887 7.321429 0.8798283 0.8991228 0.6215888 0.7970451 0.1775952 0.7610904
16.631504 0.9192825 0.8474576 0.1525424 0.0807175 6.026408 0.0952466 0.8833701 0.8836207 0.8928571 1.259887 7.592593 0.8836207 0.9010989 0.6204600 0.7989088 0.1725818 0.7667401
16.716156 0.9147982 0.8474576 0.1525424 0.0852018 5.997011 0.1005381 0.8811279 0.8831169 0.8875740 1.259887 7.555556 0.8831169 0.8986784 0.6193078 0.7981221 0.1747241 0.7622558
16.868266 0.9147982 0.8531073 0.1468927 0.0852018 6.227665 0.0998723 0.8839528 0.8869565 0.8882353 1.259887 7.846154 0.8869565 0.9006623 0.6181818 0.8000000 0.1698140 0.7679056
17.036316 0.9147982 0.8587571 0.1412429 0.0852018 6.476771 0.0992152 0.8867776 0.8908297 0.8888889 1.259887 8.160000 0.8908297 0.9026549 0.6170599 0.8018868 0.1649512 0.7735553
17.154467 0.9103139 0.8587571 0.1412429 0.0896861 6.445022 0.1044371 0.8845355 0.8903509 0.8837209 1.259887 8.120000 0.8903509 0.9002217 0.6158981 0.8011050 0.1673116 0.7690710
17.261199 0.9103139 0.8644068 0.1355932 0.0896861 6.713565 0.1037545 0.8873603 0.8942731 0.8843931 1.259887 8.458333 0.8942731 0.9022222 0.6147789 0.8030063 0.1625703 0.7747207
17.295072 0.9058296 0.8644068 0.1355932 0.0941704 6.680493 0.1089422 0.8851182 0.8938053 0.8793103 1.259887 8.416667 0.8938053 0.8997773 0.6136087 0.8022240 0.1650866 0.7702364
17.394493 0.9058296 0.8700565 0.1299435 0.0941704 6.970949 0.1082348 0.8879430 0.8977778 0.8800000 1.259887 8.782609 0.8977778 0.9017857 0.6124924 0.8041401 0.1604786 0.7758861
17.532098 0.9013453 0.8700565 0.1299435 0.0986547 6.936440 0.1133889 0.8857009 0.8973214 0.8750000 1.259887 8.739130 0.8973214 0.8993289 0.6113139 0.8033573 0.1631504 0.7714018
17.605267 0.8968610 0.8700565 0.1299435 0.1031390 6.901930 0.1185429 0.8834587 0.8968610 0.8700565 1.259887 8.695652 0.8968610 0.8968610 0.6101281 0.8025682 0.1659005 0.7669175
17.624176 0.8923767 0.8700565 0.1299435 0.1076233 6.867420 0.1236969 0.8812166 0.8963964 0.8651685 1.259887 8.652174 0.8963964 0.8943820 0.6089351 0.8017728 0.1687249 0.7624332
17.640898 0.8923767 0.8757062 0.1242938 0.1076233 7.179576 0.1228989 0.8840414 0.9004525 0.8659218 1.259887 9.045454 0.9004525 0.8963964 0.6078192 0.8037157 0.1644133 0.7680829
17.653899 0.8878924 0.8757062 0.1242938 0.1121076 7.143498 0.1280197 0.8817993 0.9000000 0.8611111 1.259887 9.000000 0.9000000 0.8939052 0.6066176 0.8029197 0.1673830 0.7635986
17.694618 0.8834081 0.8757062 0.1242938 0.1165919 7.107419 0.1331405 0.8795571 0.8995434 0.8563536 1.259887 8.954546 0.8995434 0.8914027 0.6054087 0.8021173 0.1704190 0.7591143
17.740161 0.8789238 0.8757062 0.1242938 0.1210762 7.071341 0.1382612 0.8773150 0.8990826 0.8516484 1.259887 8.909091 0.8990826 0.8888889 0.6041924 0.8013083 0.1735177 0.7546300
17.766577 0.8744395 0.8757062 0.1242938 0.1255605 7.035263 0.1433820 0.8750728 0.8986175 0.8469945 1.259887 8.863636 0.8986175 0.8863636 0.6029685 0.8004926 0.1766760 0.7501457
17.783093 0.8699552 0.8757062 0.1242938 0.1300448 6.999185 0.1485028 0.8728307 0.8981481 0.8423913 1.259887 8.818182 0.8981481 0.8838269 0.6017370 0.7996702 0.1798905 0.7456614
17.793623 0.8699552 0.8813559 0.1186441 0.1300448 7.332479 0.1475509 0.8756555 0.9023256 0.8432432 1.259887 9.238095 0.9023256 0.8858447 0.6006192 0.8016529 0.1760343 0.7513111
17.824619 0.8654709 0.8813559 0.1186441 0.1345291 7.294683 0.1526388 0.8734134 0.9018692 0.8387097 1.259887 9.190476 0.9018692 0.8832952 0.5993789 0.8008299 0.1793725 0.7468268
17.886971 0.8609865 0.8813559 0.1186441 0.1390135 7.256887 0.1577268 0.8711712 0.9014085 0.8342246 1.259887 9.142857 0.9014085 0.8807339 0.5981308 0.8000000 0.1827598 0.7423425
17.942993 0.8565022 0.8813559 0.1186441 0.1434978 7.219090 0.1628148 0.8689291 0.9009434 0.8297872 1.259887 9.095238 0.9009434 0.8781609 0.5968750 0.7991632 0.1861935 0.7378582
17.965759 0.8520179 0.8813559 0.1186441 0.1479821 7.181294 0.1679027 0.8666869 0.9004739 0.8253968 1.259887 9.047619 0.9004739 0.8755760 0.5956113 0.7983193 0.1896710 0.7333739
18.028131 0.8520179 0.8870056 0.1129944 0.1479821 7.540359 0.1668333 0.8695118 0.9047619 0.8263158 1.259887 9.500000 0.9047619 0.8775982 0.5944931 0.8003370 0.1861892 0.7390236
18.102575 0.8475336 0.8870056 0.1129944 0.1524664 7.500673 0.1718888 0.8672696 0.9043062 0.8219895 1.259887 9.450000 0.9043062 0.8750000 0.5932203 0.7994924 0.1897728 0.7345393
18.222854 0.8475336 0.8926554 0.1073446 0.1524664 7.895445 0.1708009 0.8700945 0.9086538 0.8229167 1.259887 9.947368 0.9086538 0.8770302 0.5921053 0.8015267 0.1864641 0.7401890
18.405799 0.8430493 0.8926554 0.1073446 0.1569507 7.853670 0.1758245 0.8678523 0.9082126 0.8186528 1.259887 9.894737 0.9082126 0.8744186 0.5908234 0.8006814 0.1901483 0.7357047
18.528537 0.8385650 0.8926554 0.1073446 0.1614350 7.811895 0.1808480 0.8656102 0.9077670 0.8144330 1.259887 9.842105 0.9077670 0.8717949 0.5895334 0.7998289 0.1938662 0.7312204
18.596759 0.8385650 0.8983051 0.1016949 0.1614350 8.245889 0.1797106 0.8684351 0.9121951 0.8153846 1.259887 10.388889 0.9121951 0.8738318 0.5884204 0.8018868 0.1907960 0.7368701
18.687024 0.8340807 0.8983051 0.1016949 0.1659193 8.201794 0.1847026 0.8661929 0.9117647 0.8112245 1.259887 10.333333 0.9117647 0.8711944 0.5871212 0.8010336 0.1946049 0.7323858
18.924698 0.8295964 0.8983051 0.1016949 0.1704036 8.157698 0.1896946 0.8639507 0.9113300 0.8071066 1.259887 10.277778 0.9113300 0.8685446 0.5858138 0.8001730 0.1984420 0.7279015
19.146373 0.8295964 0.9039548 0.0960452 0.1704036 8.637563 0.1885090 0.8667756 0.9158416 0.8080808 1.259887 10.882353 0.9158416 0.8705882 0.5847029 0.8022550 0.1956069 0.7335512
19.279699 0.8251121 0.9039548 0.0960452 0.1748879 8.590873 0.1934697 0.8645335 0.9154229 0.8040201 1.259887 10.823529 0.9154229 0.8679245 0.5833862 0.8013937 0.1995256 0.7290669
19.375569 0.8206278 0.9039548 0.0960452 0.1793722 8.544184 0.1984305 0.8622913 0.9150000 0.8000000 1.259887 10.764706 0.9150000 0.8652482 0.5820611 0.8005249 0.2034676 0.7245826
19.389893 0.8161435 0.9039548 0.0960452 0.1838565 8.497494 0.2033913 0.8600492 0.9145729 0.7960199 1.259887 10.705882 0.9145729 0.8625592 0.5807275 0.7996485 0.2074317 0.7200983
19.514847 0.8116592 0.9039548 0.0960452 0.1883408 8.450805 0.2083520 0.8578070 0.9141414 0.7920792 1.259887 10.647059 0.9141414 0.8598575 0.5793854 0.7987643 0.2114165 0.7156140
19.641891 0.8071749 0.9039548 0.0960452 0.1928251 8.404115 0.2133128 0.8555648 0.9137056 0.7881773 1.259887 10.588235 0.9137056 0.8571429 0.5780347 0.7978723 0.2154210 0.7111297
19.697712 0.8026906 0.9039548 0.0960452 0.1973094 8.357425 0.2182735 0.8533227 0.9132653 0.7843137 1.259887 10.529412 0.9132653 0.8544153 0.5766753 0.7969724 0.2194440 0.7066454
19.756507 0.8026906 0.9096045 0.0903955 0.1973094 8.879765 0.2169178 0.8561476 0.9179487 0.7853659 1.259887 11.187500 0.9179487 0.8564593 0.5755627 0.7991071 0.2170308 0.7122951
19.779278 0.7982063 0.9096045 0.0903955 0.2017937 8.830157 0.2218478 0.8539054 0.9175258 0.7815534 1.259887 11.125000 0.9175258 0.8537170 0.5741935 0.7982063 0.2211155 0.7078108
19.915322 0.7937220 0.9096045 0.0903955 0.2062780 8.780549 0.2267777 0.8516632 0.9170984 0.7777778 1.259887 11.062500 0.9170984 0.8509615 0.5728155 0.7972973 0.2252154 0.7033265
20.149911 0.7892377 0.9096045 0.0903955 0.2107623 8.730942 0.2317077 0.8494211 0.9166667 0.7740385 1.259887 11.000000 0.9166667 0.8481928 0.5714286 0.7963801 0.2293297 0.6988422
20.287891 0.7847534 0.9096045 0.0903955 0.2152466 8.681334 0.2366376 0.8471789 0.9162304 0.7703349 1.259887 10.937500 0.9162304 0.8454106 0.5700326 0.7954545 0.2334576 0.6943579
20.321792 0.7802691 0.9096045 0.0903955 0.2197309 8.631726 0.2415676 0.8449368 0.9157895 0.7666667 1.259887 10.875000 0.9157895 0.8426150 0.5686275 0.7945205 0.2375985 0.6898736
20.350257 0.7757848 0.9096045 0.0903955 0.2242152 8.582119 0.2464975 0.8426946 0.9153439 0.7630332 1.259887 10.812500 0.9153439 0.8398058 0.5672131 0.7935780 0.2417516 0.6853893
20.435522 0.7713004 0.9096045 0.0903955 0.2286996 8.532511 0.2514275 0.8404525 0.9148936 0.7594340 1.259887 10.750000 0.9148936 0.8369830 0.5657895 0.7926267 0.2459163 0.6809050
20.592808 0.7668161 0.9096045 0.0903955 0.2331839 8.482904 0.2563574 0.8382103 0.9144385 0.7558685 1.259887 10.687500 0.9144385 0.8341463 0.5643564 0.7916667 0.2500921 0.6764207
20.798172 0.7623318 0.9096045 0.0903955 0.2376682 8.433296 0.2612874 0.8359682 0.9139785 0.7523364 1.259887 10.625000 0.9139785 0.8312958 0.5629139 0.7906977 0.2542784 0.6719364
20.954825 0.7578475 0.9096045 0.0903955 0.2421525 8.383688 0.2662173 0.8337260 0.9135135 0.7488372 1.259887 10.562500 0.9135135 0.8284314 0.5614618 0.7897196 0.2584747 0.6674521
21.021066 0.7533632 0.9096045 0.0903955 0.2466368 8.334081 0.2711473 0.8314839 0.9130435 0.7453704 1.259887 10.500000 0.9130435 0.8255528 0.5600000 0.7887324 0.2626805 0.6629677
21.072176 0.7488789 0.9096045 0.0903955 0.2511211 8.284473 0.2760772 0.8292417 0.9125683 0.7419355 1.259887 10.437500 0.9125683 0.8226601 0.5585284 0.7877358 0.2668954 0.6584834
21.279886 0.7443946 0.9096045 0.0903955 0.2556054 8.234865 0.2810072 0.8269996 0.9120879 0.7385321 1.259887 10.375000 0.9120879 0.8197531 0.5570470 0.7867299 0.2711189 0.6539991
21.672273 0.7443946 0.9152542 0.0847458 0.2556054 8.783857 0.2792725 0.8298244 0.9171271 0.7397260 1.259887 11.066667 0.9171271 0.8217822 0.5559277 0.7889734 0.2692879 0.6596489
21.890179 0.7399103 0.9152542 0.0847458 0.2600897 8.730942 0.2841721 0.8275823 0.9166667 0.7363636 1.259887 11.000000 0.9166667 0.8188586 0.5544355 0.7879656 0.2735480 0.6551646
21.901801 0.7354260 0.9152542 0.0847458 0.2645740 8.678027 0.2890716 0.8253401 0.9162011 0.7330317 1.259887 10.933333 0.9162011 0.8159204 0.5529332 0.7869482 0.2778151 0.6506802
21.973618 0.7309417 0.9152542 0.0847458 0.2690583 8.625112 0.2939711 0.8230980 0.9157303 0.7297297 1.259887 10.866667 0.9157303 0.8129676 0.5514208 0.7859209 0.2820890 0.6461959
22.038870 0.7264574 0.9152542 0.0847458 0.2735426 8.572197 0.2988706 0.8208558 0.9152542 0.7264574 1.259887 10.800000 0.9152542 0.8100000 0.5498982 0.7848837 0.2863693 0.6417116
22.045303 0.7219731 0.9152542 0.0847458 0.2780269 8.519282 0.3037701 0.8186137 0.9147727 0.7232143 1.259887 10.733333 0.9147727 0.8070175 0.5483651 0.7838364 0.2906558 0.6372273
22.083182 0.7174888 0.9152542 0.0847458 0.2825112 8.466368 0.3086697 0.8163715 0.9142857 0.7200000 1.259887 10.666667 0.9142857 0.8040201 0.5468216 0.7827789 0.2949482 0.6327430
22.143418 0.7130045 0.9152542 0.0847458 0.2869955 8.413453 0.3135692 0.8141294 0.9137931 0.7168142 1.259887 10.600000 0.9137931 0.8010076 0.5452675 0.7817109 0.2992462 0.6282587
22.277213 0.7085202 0.9152542 0.0847458 0.2914798 8.360538 0.3184687 0.8118872 0.9132948 0.7136564 1.259887 10.533333 0.9132948 0.7979798 0.5437027 0.7806324 0.3035496 0.6237744
22.411225 0.7040359 0.9152542 0.0847458 0.2959641 8.307623 0.3233682 0.8096451 0.9127907 0.7105263 1.259887 10.466667 0.9127907 0.7949367 0.5421271 0.7795432 0.3078581 0.6192901
22.517452 0.6995516 0.9152542 0.0847458 0.3004484 8.254708 0.3282677 0.8074029 0.9122807 0.7074236 1.259887 10.400000 0.9122807 0.7918782 0.5405405 0.7784431 0.3121716 0.6148058
22.616074 0.6995516 0.9209040 0.0790960 0.3004484 8.844331 0.3262538 0.8102278 0.9176471 0.7086957 1.259887 11.142857 0.9176471 0.7938931 0.5394191 0.7807808 0.3106854 0.6204555
22.635296 0.6995516 0.9265537 0.0734463 0.3004484 9.524664 0.3242645 0.8130526 0.9230769 0.7099567 1.259887 12.000000 0.9230769 0.7959184 0.5383023 0.7831325 0.3092954 0.6261052
22.637251 0.6950673 0.9265537 0.0734463 0.3049327 9.463608 0.3291042 0.8108105 0.9226190 0.7068966 1.259887 11.923077 0.9226190 0.7928389 0.5367036 0.7820383 0.3136532 0.6216209
22.681955 0.6950673 0.9322034 0.0677966 0.3049327 10.252242 0.3271097 0.8136353 0.9281437 0.7081545 1.259887 12.916667 0.9281437 0.7948718 0.5355909 0.7844130 0.3123785 0.6272707
22.726032 0.6905830 0.9322034 0.0677966 0.3094170 10.186099 0.3319201 0.8113932 0.9277108 0.7051282 1.259887 12.833333 0.9277108 0.7917738 0.5339806 0.7833164 0.3167575 0.6227863
22.749955 0.6860987 0.9322034 0.0677966 0.3139013 10.119955 0.3367305 0.8091510 0.9272727 0.7021277 1.259887 12.750000 0.9272727 0.7886598 0.5323591 0.7822086 0.3211393 0.6183020
22.835249 0.6816143 0.9322034 0.0677966 0.3183857 10.053812 0.3415410 0.8069089 0.9268293 0.6991525 1.259887 12.666667 0.9268293 0.7855297 0.5307263 0.7810894 0.3255239 0.6138177
22.926810 0.6771300 0.9322034 0.0677966 0.3228700 9.987668 0.3463514 0.8046667 0.9263804 0.6962025 1.259887 12.583333 0.9263804 0.7823834 0.5290820 0.7799587 0.3299112 0.6093334
22.961653 0.6726457 0.9322034 0.0677966 0.3273543 9.921525 0.3511618 0.8024246 0.9259259 0.6932773 1.259887 12.500000 0.9259259 0.7792208 0.5274262 0.7788162 0.3343010 0.6048491
23.101580 0.6681614 0.9322034 0.0677966 0.3318386 9.855381 0.3559723 0.8001824 0.9254658 0.6903766 1.259887 12.416667 0.9254658 0.7760417 0.5257586 0.7776618 0.3386934 0.6003648
23.254215 0.6636771 0.9322034 0.0677966 0.3363229 9.789238 0.3607827 0.7979403 0.9250000 0.6875000 1.259887 12.333333 0.9250000 0.7728460 0.5240793 0.7764953 0.3430881 0.5958805
23.414834 0.6636771 0.9378531 0.0621469 0.3363229 10.679168 0.3586093 0.8007651 0.9308176 0.6887967 1.259887 13.454546 0.9308176 0.7748691 0.5229682 0.7789474 0.3420165 0.6015302
23.559253 0.6591928 0.9378531 0.0621469 0.3408072 10.607012 0.3633908 0.7985230 0.9303797 0.6859504 1.259887 13.363636 0.9303797 0.7716535 0.5212766 0.7777778 0.3464271 0.5970459
23.601657 0.6591928 0.9435028 0.0564972 0.3408072 11.667713 0.3612148 0.8013478 0.9363057 0.6872428 1.259887 14.700000 0.9363057 0.7736842 0.5201699 0.7802548 0.3454583 0.6026956
23.785130 0.6547085 0.9435028 0.0564972 0.3452915 11.588341 0.3659676 0.7991057 0.9358974 0.6844262 1.259887 14.600000 0.9358974 0.7704485 0.5184659 0.7790822 0.3498830 0.5982113
23.958340 0.6547085 0.9491525 0.0508475 0.3452915 12.875934 0.3637892 0.8019305 0.9419355 0.6857143 1.259887 16.222222 0.9419355 0.7724868 0.5173636 0.7815846 0.3490153 0.6038611
24.001818 0.6502242 0.9491525 0.0508475 0.3497758 12.787743 0.3685138 0.7996884 0.9415584 0.6829268 1.259887 16.111111 0.9415584 0.7692308 0.5156472 0.7804090 0.3534523 0.5993768
24.155711 0.6457399 0.9491525 0.0508475 0.3542601 12.699552 0.3732383 0.7974462 0.9411765 0.6801619 1.259887 16.000000 0.9411765 0.7659574 0.5139186 0.7792208 0.3578906 0.5948925
24.379480 0.6412556 0.9491525 0.0508475 0.3587444 12.611360 0.3779628 0.7952041 0.9407895 0.6774194 1.259887 15.888889 0.9407895 0.7626667 0.5121777 0.7780196 0.3623300 0.5904081
24.471184 0.6367713 0.9491525 0.0508475 0.3632287 12.523169 0.3826874 0.7929619 0.9403974 0.6746988 1.259887 15.777778 0.9403974 0.7593583 0.5104242 0.7768053 0.3667704 0.5859238
24.539090 0.6322870 0.9491525 0.0508475 0.3677130 12.434978 0.3874119 0.7907198 0.9400000 0.6720000 1.259887 15.666667 0.9400000 0.7560322 0.5086580 0.7755776 0.3712120 0.5814395
24.677056 0.6278027 0.9491525 0.0508475 0.3721973 12.346786 0.3921365 0.7884776 0.9395973 0.6693227 1.259887 15.555556 0.9395973 0.7526882 0.5068791 0.7743363 0.3756545 0.5769552
24.826172 0.6278027 0.9548023 0.0451977 0.3721973 13.890135 0.3898161 0.7913025 0.9459459 0.6706349 1.259887 17.500000 0.9459459 0.7547170 0.5057803 0.7769145 0.3749316 0.5826050
24.935110 0.6233184 0.9548023 0.0451977 0.3766816 13.790919 0.3945127 0.7890603 0.9455782 0.6679842 1.259887 17.375000 0.9455782 0.7513514 0.5039884 0.7756696 0.3793835 0.5781206
24.987219 0.6188341 0.9548023 0.0451977 0.3811659 13.691704 0.3992093 0.7868182 0.9452055 0.6653543 1.259887 17.250000 0.9452055 0.7479675 0.5021834 0.7744108 0.3838363 0.5736363
25.104773 0.6143498 0.9548023 0.0451977 0.3856502 13.592489 0.4039059 0.7845760 0.9448276 0.6627451 1.259887 17.125000 0.9448276 0.7445652 0.5003652 0.7731377 0.3882898 0.5691520
25.211497 0.6098655 0.9548023 0.0451977 0.3901345 13.493274 0.4086024 0.7823339 0.9444444 0.6601562 1.259887 17.000000 0.9444444 0.7411444 0.4985337 0.7718502 0.3927439 0.5646677
25.351268 0.6053812 0.9548023 0.0451977 0.3946188 13.394058 0.4132990 0.7800917 0.9440559 0.6575875 1.259887 16.875000 0.9440559 0.7377049 0.4966887 0.7705479 0.3971988 0.5601834
25.543970 0.6008969 0.9548023 0.0451977 0.3991031 13.294843 0.4179956 0.7778496 0.9436620 0.6550388 1.259887 16.750000 0.9436620 0.7342466 0.4948301 0.7692308 0.4016543 0.5556991
25.639839 0.5964126 0.9548023 0.0451977 0.4035874 13.195628 0.4226922 0.7756074 0.9432624 0.6525097 1.259887 16.625000 0.9432624 0.7307692 0.4929577 0.7678984 0.4061104 0.5512148
25.749454 0.5919283 0.9548023 0.0451977 0.4080717 13.096413 0.4273888 0.7733653 0.9428571 0.6500000 1.259887 16.500000 0.9428571 0.7272727 0.4910714 0.7665505 0.4105672 0.5467305
25.867005 0.5874439 0.9548023 0.0451977 0.4125561 12.997197 0.4320853 0.7711231 0.9424460 0.6475096 1.259887 16.375000 0.9424460 0.7237569 0.4891710 0.7651869 0.4150245 0.5422462
25.974788 0.5829596 0.9548023 0.0451977 0.4170404 12.897982 0.4367819 0.7688810 0.9420290 0.6450382 1.259887 16.250000 0.9420290 0.7202216 0.4872564 0.7638073 0.4194824 0.5377619
26.043361 0.5784753 0.9548023 0.0451977 0.4215247 12.798767 0.4414785 0.7666388 0.9416058 0.6425856 1.259887 16.125000 0.9416058 0.7166667 0.4853273 0.7624113 0.4239409 0.5332776
26.052526 0.5739910 0.9548023 0.0451977 0.4260090 12.699552 0.4461751 0.7643966 0.9411765 0.6401515 1.259887 16.000000 0.9411765 0.7130919 0.4833837 0.7609988 0.4283999 0.5287933
26.272711 0.5739910 0.9604520 0.0395480 0.4260090 14.513773 0.4435505 0.7672215 0.9481481 0.6415094 1.259887 18.285714 0.9481481 0.7150838 0.4822909 0.7637232 0.4278407 0.5344430
26.529877 0.5695067 0.9604520 0.0395480 0.4304933 14.400384 0.4482195 0.7649794 0.9477612 0.6390977 1.259887 18.142857 0.9477612 0.7114846 0.4803328 0.7623049 0.4323060 0.5299587
26.584580 0.5650224 0.9604520 0.0395480 0.4349776 14.286995 0.4528884 0.7627372 0.9473684 0.6367041 1.259887 18.000000 0.9473684 0.7078652 0.4783599 0.7608696 0.4367717 0.5254744
26.603743 0.5605381 0.9604520 0.0395480 0.4394619 14.173607 0.4575574 0.7604950 0.9469697 0.6343284 1.259887 17.857143 0.9469697 0.7042254 0.4763720 0.7594168 0.4412378 0.5209901
26.613670 0.5560538 0.9604520 0.0395480 0.4439462 14.060218 0.4622263 0.7582529 0.9465649 0.6319703 1.259887 17.714286 0.9465649 0.7005650 0.4743688 0.7579462 0.4457042 0.5165058
26.726261 0.5515695 0.9604520 0.0395480 0.4484305 13.946829 0.4668953 0.7560107 0.9461538 0.6296296 1.259887 17.571429 0.9461538 0.6968839 0.4723502 0.7564576 0.4501710 0.5120215
27.040870 0.5470852 0.9604520 0.0395480 0.4529148 13.833440 0.4715642 0.7537686 0.9457364 0.6273063 1.259887 17.428571 0.9457364 0.6931818 0.4703161 0.7549505 0.4546382 0.5075372
27.269732 0.5426009 0.9604520 0.0395480 0.4573991 13.720051 0.4762332 0.7515264 0.9453125 0.6250000 1.259887 17.285714 0.9453125 0.6894587 0.4682663 0.7534247 0.4591056 0.5030529
27.289672 0.5426009 0.9661017 0.0338983 0.4573991 16.006726 0.4734482 0.7543513 0.9527559 0.6263736 1.259887 20.166667 0.9527559 0.6914286 0.4671815 0.7562500 0.4586535 0.5087026
27.296173 0.5381166 0.9661017 0.0338983 0.4618834 15.874439 0.4780898 0.7521091 0.9523810 0.6240876 1.259887 20.000000 0.9523810 0.6876791 0.4651163 0.7547170 0.4631257 0.5042183
27.375037 0.5336323 0.9661017 0.0338983 0.4663677 15.742152 0.4827315 0.7498670 0.9520000 0.6218182 1.259887 19.833333 0.9520000 0.6839080 0.4630350 0.7531646 0.4675981 0.4997340
27.464657 0.5336323 0.9717514 0.0282486 0.4663677 18.890583 0.4799249 0.7526918 0.9596774 0.6231884 1.259887 23.800000 0.9596774 0.6858790 0.4619565 0.7560356 0.4672225 0.5053837
27.502252 0.5291480 0.9717514 0.0282486 0.4708520 18.731839 0.4845396 0.7504497 0.9593496 0.6209386 1.259887 23.600000 0.9593496 0.6820809 0.4598597 0.7544757 0.4716986 0.5008994
27.585677 0.5246637 0.9717514 0.0282486 0.4753363 18.573094 0.4891542 0.7482075 0.9590164 0.6187050 1.259887 23.400000 0.9590164 0.6782609 0.4577465 0.7528958 0.4761750 0.4964151
27.788406 0.5201794 0.9717514 0.0282486 0.4798206 18.414350 0.4937689 0.7459654 0.9586777 0.6164875 1.259887 23.200000 0.9586777 0.6744186 0.4556167 0.7512953 0.4806515 0.4919308
27.951201 0.5156951 0.9717514 0.0282486 0.4843049 18.255605 0.4983836 0.7437232 0.9583333 0.6142857 1.259887 23.000000 0.9583333 0.6705539 0.4534700 0.7496741 0.4851281 0.4874465
28.105269 0.5156951 0.9774011 0.0225989 0.4843049 22.819507 0.4955027 0.7465481 0.9663866 0.6156584 1.259887 28.750000 0.9663866 0.6725146 0.4523997 0.7526178 0.4848319 0.4930962
28.253940 0.5112108 0.9774011 0.0225989 0.4887892 22.621076 0.5000907 0.7443059 0.9661017 0.6134752 1.259887 28.500000 0.9661017 0.6686217 0.4502370 0.7509881 0.4893114 0.4886119
28.669352 0.5067265 0.9774011 0.0225989 0.4932735 22.422646 0.5046787 0.7420638 0.9658120 0.6113074 1.259887 28.250000 0.9658120 0.6647059 0.4480571 0.7493369 0.4937909 0.4841276
29.116310 0.5022422 0.9774011 0.0225989 0.4977578 22.224215 0.5092667 0.7398216 0.9655172 0.6091549 1.259887 28.000000 0.9655172 0.6607670 0.4458599 0.7476636 0.4982706 0.4796433
29.230529 0.4977578 0.9774011 0.0225989 0.5022422 22.025785 0.5138547 0.7375795 0.9652174 0.6070175 1.259887 27.750000 0.9652174 0.6568047 0.4436451 0.7459677 0.5027503 0.4751590
29.319226 0.4977578 0.9830508 0.0169492 0.5022422 29.367713 0.5109015 0.7404043 0.9736842 0.6083916 1.259887 37.000000 0.9736842 0.6587537 0.4425837 0.7489879 0.5025281 0.4808087
29.356071 0.4932735 0.9830508 0.0169492 0.5067265 29.103139 0.5154631 0.7381622 0.9734513 0.6062718 1.259887 36.666667 0.9734513 0.6547619 0.4403523 0.7472826 0.5070098 0.4763244
29.493177 0.4887892 0.9830508 0.0169492 0.5112108 28.838565 0.5200247 0.7359200 0.9732143 0.6041667 1.259887 36.333333 0.9732143 0.6507463 0.4381029 0.7455540 0.5114917 0.4718401
29.717760 0.4887892 0.9887006 0.0112994 0.5112108 43.257847 0.5170532 0.7387449 0.9819820 0.6055363 1.259887 54.500000 0.9819820 0.6526946 0.4370489 0.7486264 0.5113356 0.4774898
29.859875 0.4843049 0.9887006 0.0112994 0.5156951 42.860987 0.5215887 0.7365027 0.9818182 0.6034483 1.259887 54.000000 0.9818182 0.6486486 0.4347826 0.7468880 0.5158188 0.4730055
29.970901 0.4798206 0.9887006 0.0112994 0.5201794 42.464126 0.5261243 0.7342606 0.9816514 0.6013746 1.259887 53.500000 0.9816514 0.6445783 0.4324980 0.7451253 0.5203021 0.4685212
30.050302 0.4753363 0.9887006 0.0112994 0.5246637 42.067265 0.5306598 0.7320184 0.9814815 0.5993151 1.259887 53.000000 0.9814815 0.6404834 0.4301948 0.7433380 0.5247853 0.4640369
30.100032 0.4708520 0.9887006 0.0112994 0.5291480 41.670404 0.5351954 0.7297763 0.9813084 0.5972696 1.259887 52.500000 0.9813084 0.6363636 0.4278729 0.7415254 0.5292686 0.4595526
30.146044 0.4663677 0.9887006 0.0112994 0.5336323 41.273543 0.5397309 0.7275341 0.9811321 0.5952381 1.259887 52.000000 0.9811321 0.6322188 0.4255319 0.7396871 0.5337519 0.4550683
30.278080 0.4618834 0.9887006 0.0112994 0.5381166 40.876682 0.5442665 0.7252920 0.9809524 0.5932203 1.259887 51.500000 0.9809524 0.6280488 0.4231717 0.7378223 0.5382352 0.4505840
30.468857 0.4573991 0.9887006 0.0112994 0.5426009 40.479821 0.5488020 0.7230498 0.9807692 0.5912162 1.259887 51.000000 0.9807692 0.6238532 0.4207921 0.7359307 0.5427185 0.4460997
30.555159 0.4529148 0.9887006 0.0112994 0.5470852 40.082960 0.5533376 0.7208077 0.9805825 0.5892256 1.259887 50.500000 0.9805825 0.6196319 0.4183927 0.7340116 0.5472019 0.4416154
30.580238 0.4484305 0.9887006 0.0112994 0.5515695 39.686099 0.5578732 0.7185655 0.9803922 0.5872483 1.259887 50.000000 0.9803922 0.6153846 0.4159734 0.7320644 0.5516852 0.4371311
30.604390 0.4439462 0.9887006 0.0112994 0.5560538 39.289238 0.5624087 0.7163234 0.9801980 0.5852843 1.259887 49.500000 0.9801980 0.6111111 0.4135338 0.7300885 0.5561686 0.4326468
30.721867 0.4394619 0.9887006 0.0112994 0.5605381 38.892377 0.5669443 0.7140812 0.9800000 0.5833333 1.259887 49.000000 0.9800000 0.6068111 0.4110738 0.7280832 0.5606520 0.4281624
30.880620 0.4349776 0.9887006 0.0112994 0.5650224 38.495516 0.5714798 0.7118391 0.9797980 0.5813953 1.259887 48.500000 0.9797980 0.6024845 0.4085931 0.7260479 0.5651354 0.4236781
31.006636 0.4304933 0.9887006 0.0112994 0.5695067 38.098655 0.5760154 0.7095969 0.9795918 0.5794702 1.259887 48.000000 0.9795918 0.5981308 0.4060914 0.7239819 0.5696188 0.4191938
31.150499 0.4260090 0.9887006 0.0112994 0.5739910 37.701794 0.5805509 0.7073548 0.9793814 0.5775578 1.259887 47.500000 0.9793814 0.5937500 0.4035684 0.7218845 0.5741022 0.4147095
31.528866 0.4260090 0.9943503 0.0056497 0.5739910 75.403587 0.5772523 0.7101796 0.9895833 0.5789474 1.259887 95.000000 0.9895833 0.5956113 0.4025424 0.7251908 0.5740188 0.4203593
31.859185 0.4215247 0.9943503 0.0056497 0.5784753 74.609865 0.5817621 0.7079375 0.9894737 0.5770492 1.259887 94.000000 0.9894737 0.5911950 0.4000000 0.7230769 0.5785029 0.4158749
31.954058 0.4170404 0.9943503 0.0056497 0.5829596 73.816143 0.5862719 0.7056953 0.9893617 0.5751634 1.259887 93.000000 0.9893617 0.5867508 0.3974359 0.7209302 0.5829870 0.4113906
32.085278 0.4125561 0.9943503 0.0056497 0.5874439 73.022421 0.5907817 0.7034532 0.9892473 0.5732899 1.259887 92.000000 0.9892473 0.5822785 0.3948498 0.7187500 0.5874711 0.4069063
32.200666 0.4080717 0.9943503 0.0056497 0.5919283 72.228700 0.5952915 0.7012110 0.9891304 0.5714286 1.259887 91.000000 0.9891304 0.5777778 0.3922414 0.7165354 0.5919552 0.4024220
32.276407 0.4035874 0.9943503 0.0056497 0.5964126 71.434978 0.5998013 0.6989689 0.9890110 0.5695793 1.259887 90.000000 0.9890110 0.5732484 0.3896104 0.7142857 0.5964393 0.3979377
32.389483 0.3991031 0.9943503 0.0056497 0.6008969 70.641256 0.6043110 0.6967267 0.9888889 0.5677419 1.259887 89.000000 0.9888889 0.5686901 0.3869565 0.7120000 0.6009234 0.3934534
32.496448 0.3946188 0.9943503 0.0056497 0.6053812 69.847534 0.6088208 0.6944846 0.9887640 0.5659164 1.259887 88.000000 0.9887640 0.5641026 0.3842795 0.7096774 0.6054075 0.3889691
32.619363 0.3901345 0.9943503 0.0056497 0.6098655 69.053812 0.6133306 0.6922424 0.9886364 0.5641026 1.259887 87.000000 0.9886364 0.5594855 0.3815789 0.7073171 0.6098916 0.3844848
32.763435 0.3901345 1.0000000 0.0000000 0.6098655 Inf 0.6098655 0.6950673 1.0000000 0.5654952 1.259887 Inf NaN 0.5612903 0.3805774 0.7107843 0.6098655 0.3901345
33.000965 0.3856502 1.0000000 0.0000000 0.6143498 Inf 0.6143498 0.6928251 1.0000000 0.5636943 1.259887 Inf NaN 0.5566343 0.3778559 0.7084020 0.6143498 0.3856502
33.288698 0.3811659 1.0000000 0.0000000 0.6188341 Inf 0.6188341 0.6905830 1.0000000 0.5619048 1.259887 Inf NaN 0.5519481 0.3751103 0.7059801 0.6188341 0.3811659
33.552933 0.3766816 1.0000000 0.0000000 0.6233184 Inf 0.6233184 0.6883408 1.0000000 0.5601266 1.259887 Inf NaN 0.5472313 0.3723404 0.7035176 0.6233184 0.3766816
33.752281 0.3721973 1.0000000 0.0000000 0.6278027 Inf 0.6278027 0.6860987 1.0000000 0.5583596 1.259887 Inf NaN 0.5424837 0.3695459 0.7010135 0.6278027 0.3721973
33.795784 0.3677130 1.0000000 0.0000000 0.6322870 Inf 0.6322870 0.6838565 1.0000000 0.5566038 1.259887 Inf NaN 0.5377049 0.3667263 0.6984668 0.6322870 0.3677130
33.816397 0.3632287 1.0000000 0.0000000 0.6367713 Inf 0.6367713 0.6816143 1.0000000 0.5548589 1.259887 Inf NaN 0.5328947 0.3638814 0.6958763 0.6367713 0.3632287
34.088803 0.3587444 1.0000000 0.0000000 0.6412556 Inf 0.6412556 0.6793722 1.0000000 0.5531250 1.259887 Inf NaN 0.5280528 0.3610108 0.6932409 0.6412556 0.3587444
34.396313 0.3542601 1.0000000 0.0000000 0.6457399 Inf 0.6457399 0.6771300 1.0000000 0.5514019 1.259887 Inf NaN 0.5231788 0.3581142 0.6905594 0.6457399 0.3542601
34.720152 0.3497758 1.0000000 0.0000000 0.6502242 Inf 0.6502242 0.6748879 1.0000000 0.5496894 1.259887 Inf NaN 0.5182724 0.3551913 0.6878307 0.6502242 0.3497758
35.046196 0.3452915 1.0000000 0.0000000 0.6547085 Inf 0.6547085 0.6726457 1.0000000 0.5479876 1.259887 Inf NaN 0.5133333 0.3522415 0.6850534 0.6547085 0.3452915
35.109692 0.3408072 1.0000000 0.0000000 0.6591928 Inf 0.6591928 0.6704036 1.0000000 0.5462963 1.259887 Inf NaN 0.5083612 0.3492647 0.6822262 0.6591928 0.3408072
35.263291 0.3363229 1.0000000 0.0000000 0.6636771 Inf 0.6636771 0.6681614 1.0000000 0.5446154 1.259887 Inf NaN 0.5033557 0.3462604 0.6793478 0.6636771 0.3363229
35.445805 0.3318386 1.0000000 0.0000000 0.6681614 Inf 0.6681614 0.6659193 1.0000000 0.5429448 1.259887 Inf NaN 0.4983165 0.3432282 0.6764168 0.6681614 0.3318386
35.624657 0.3273543 1.0000000 0.0000000 0.6726457 Inf 0.6726457 0.6636771 1.0000000 0.5412844 1.259887 Inf NaN 0.4932432 0.3401678 0.6734317 0.6726457 0.3273543
35.948032 0.3228700 1.0000000 0.0000000 0.6771300 Inf 0.6771300 0.6614350 1.0000000 0.5396341 1.259887 Inf NaN 0.4881356 0.3370787 0.6703911 0.6771300 0.3228700
36.142617 0.3183857 1.0000000 0.0000000 0.6816143 Inf 0.6816143 0.6591928 1.0000000 0.5379939 1.259887 Inf NaN 0.4829932 0.3339605 0.6672932 0.6816143 0.3183857
36.241891 0.3139013 1.0000000 0.0000000 0.6860987 Inf 0.6860987 0.6569507 1.0000000 0.5363636 1.259887 Inf NaN 0.4778157 0.3308129 0.6641366 0.6860987 0.3139013
36.798372 0.3094170 1.0000000 0.0000000 0.6905830 Inf 0.6905830 0.6547085 1.0000000 0.5347432 1.259887 Inf NaN 0.4726027 0.3276353 0.6609195 0.6905830 0.3094170
38.088714 0.3049327 1.0000000 0.0000000 0.6950673 Inf 0.6950673 0.6524664 1.0000000 0.5331325 1.259887 Inf NaN 0.4673540 0.3244275 0.6576402 0.6950673 0.3049327
39.059281 0.3004484 1.0000000 0.0000000 0.6995516 Inf 0.6995516 0.6502242 1.0000000 0.5315315 1.259887 Inf NaN 0.4620690 0.3211889 0.6542969 0.6995516 0.3004484
39.275107 0.2959641 1.0000000 0.0000000 0.7040359 Inf 0.7040359 0.6479821 1.0000000 0.5299401 1.259887 Inf NaN 0.4567474 0.3179191 0.6508876 0.7040359 0.2959641
39.388687 0.2914798 1.0000000 0.0000000 0.7085202 Inf 0.7085202 0.6457399 1.0000000 0.5283582 1.259887 Inf NaN 0.4513889 0.3146176 0.6474104 0.7085202 0.2914798
39.442152 0.2869955 1.0000000 0.0000000 0.7130045 Inf 0.7130045 0.6434978 1.0000000 0.5267857 1.259887 Inf NaN 0.4459930 0.3112840 0.6438632 0.7130045 0.2869955
39.599007 0.2825112 1.0000000 0.0000000 0.7174888 Inf 0.7174888 0.6412556 1.0000000 0.5252226 1.259887 Inf NaN 0.4405594 0.3079179 0.6402439 0.7174888 0.2825112
39.819937 0.2780269 1.0000000 0.0000000 0.7219731 Inf 0.7219731 0.6390135 1.0000000 0.5236686 1.259887 Inf NaN 0.4350877 0.3045187 0.6365503 0.7219731 0.2780269
40.151565 0.2735426 1.0000000 0.0000000 0.7264574 Inf 0.7264574 0.6367713 1.0000000 0.5221239 1.259887 Inf NaN 0.4295775 0.3010859 0.6327801 0.7264574 0.2735426
40.844407 0.2690583 1.0000000 0.0000000 0.7309417 Inf 0.7309417 0.6345291 1.0000000 0.5205882 1.259887 Inf NaN 0.4240283 0.2976190 0.6289308 0.7309417 0.2690583
41.404553 0.2645740 1.0000000 0.0000000 0.7354260 Inf 0.7354260 0.6322870 1.0000000 0.5190616 1.259887 Inf NaN 0.4184397 0.2941176 0.6250000 0.7354260 0.2645740
41.559367 0.2600897 1.0000000 0.0000000 0.7399103 Inf 0.7399103 0.6300448 1.0000000 0.5175439 1.259887 Inf NaN 0.4128114 0.2905812 0.6209850 0.7399103 0.2600897
41.974580 0.2556054 1.0000000 0.0000000 0.7443946 Inf 0.7443946 0.6278027 1.0000000 0.5160350 1.259887 Inf NaN 0.4071429 0.2870091 0.6168831 0.7443946 0.2556054
42.452040 0.2511211 1.0000000 0.0000000 0.7488789 Inf 0.7488789 0.6255605 1.0000000 0.5145349 1.259887 Inf NaN 0.4014337 0.2834008 0.6126915 0.7488789 0.2511211
42.571995 0.2466368 1.0000000 0.0000000 0.7533632 Inf 0.7533632 0.6233184 1.0000000 0.5130435 1.259887 Inf NaN 0.3956835 0.2797558 0.6084071 0.7533632 0.2466368
42.689276 0.2421525 1.0000000 0.0000000 0.7578475 Inf 0.7578475 0.6210762 1.0000000 0.5115607 1.259887 Inf NaN 0.3898917 0.2760736 0.6040268 0.7578475 0.2421525
42.998201 0.2376682 1.0000000 0.0000000 0.7623318 Inf 0.7623318 0.6188341 1.0000000 0.5100865 1.259887 Inf NaN 0.3840580 0.2723535 0.5995475 0.7623318 0.2376682
43.399156 0.2331839 1.0000000 0.0000000 0.7668161 Inf 0.7668161 0.6165919 1.0000000 0.5086207 1.259887 Inf NaN 0.3781818 0.2685950 0.5949657 0.7668161 0.2331839
43.798854 0.2286996 1.0000000 0.0000000 0.7713004 Inf 0.7713004 0.6143498 1.0000000 0.5071633 1.259887 Inf NaN 0.3722628 0.2647975 0.5902778 0.7713004 0.2286996
44.030026 0.2242152 1.0000000 0.0000000 0.7757848 Inf 0.7757848 0.6121076 1.0000000 0.5057143 1.259887 Inf NaN 0.3663004 0.2609603 0.5854801 0.7757848 0.2242152
44.120574 0.2197309 1.0000000 0.0000000 0.7802691 Inf 0.7802691 0.6098655 1.0000000 0.5042735 1.259887 Inf NaN 0.3602941 0.2570829 0.5805687 0.7802691 0.2197309
44.335069 0.2152466 1.0000000 0.0000000 0.7847534 Inf 0.7847534 0.6076233 1.0000000 0.5028409 1.259887 Inf NaN 0.3542435 0.2531646 0.5755396 0.7847534 0.2152466
44.495117 0.2107623 1.0000000 0.0000000 0.7892377 Inf 0.7892377 0.6053812 1.0000000 0.5014164 1.259887 Inf NaN 0.3481481 0.2492047 0.5703883 0.7892377 0.2107623
44.659256 0.2062780 1.0000000 0.0000000 0.7937220 Inf 0.7937220 0.6031390 1.0000000 0.5000000 1.259887 Inf NaN 0.3420074 0.2452026 0.5651106 0.7937220 0.2062780
44.882470 0.2017937 1.0000000 0.0000000 0.7982063 Inf 0.7982063 0.6008969 1.0000000 0.4985915 1.259887 Inf NaN 0.3358209 0.2411576 0.5597015 0.7982063 0.2017937
44.961916 0.1973094 1.0000000 0.0000000 0.8026906 Inf 0.8026906 0.5986547 1.0000000 0.4971910 1.259887 Inf NaN 0.3295880 0.2370690 0.5541562 0.8026906 0.1973094
45.129376 0.1928251 1.0000000 0.0000000 0.8071749 Inf 0.8071749 0.5964126 1.0000000 0.4957983 1.259887 Inf NaN 0.3233083 0.2329361 0.5484694 0.8071749 0.1928251
45.309461 0.1883408 1.0000000 0.0000000 0.8116592 Inf 0.8116592 0.5941704 1.0000000 0.4944134 1.259887 Inf NaN 0.3169811 0.2287582 0.5426357 0.8116592 0.1883408
45.553437 0.1838565 1.0000000 0.0000000 0.8161435 Inf 0.8161435 0.5919283 1.0000000 0.4930362 1.259887 Inf NaN 0.3106061 0.2245345 0.5366492 0.8161435 0.1838565
46.454374 0.1793722 1.0000000 0.0000000 0.8206278 Inf 0.8206278 0.5896861 1.0000000 0.4916667 1.259887 Inf NaN 0.3041825 0.2202643 0.5305040 0.8206278 0.1793722
47.556435 0.1748879 1.0000000 0.0000000 0.8251121 Inf 0.8251121 0.5874439 1.0000000 0.4903047 1.259887 Inf NaN 0.2977099 0.2159468 0.5241935 0.8251121 0.1748879
48.004664 0.1704036 1.0000000 0.0000000 0.8295964 Inf 0.8295964 0.5852018 1.0000000 0.4889503 1.259887 Inf NaN 0.2911877 0.2115813 0.5177112 0.8295964 0.1704036
48.041491 0.1659193 1.0000000 0.0000000 0.8340807 Inf 0.8340807 0.5829596 1.0000000 0.4876033 1.259887 Inf NaN 0.2846154 0.2071669 0.5110497 0.8340807 0.1659193
48.403201 0.1614350 1.0000000 0.0000000 0.8385650 Inf 0.8385650 0.5807175 1.0000000 0.4862637 1.259887 Inf NaN 0.2779923 0.2027027 0.5042017 0.8385650 0.1614350
48.787478 0.1569507 1.0000000 0.0000000 0.8430493 Inf 0.8430493 0.5784753 1.0000000 0.4849315 1.259887 Inf NaN 0.2713178 0.1981880 0.4971591 0.8430493 0.1569507
49.174498 0.1524664 1.0000000 0.0000000 0.8475336 Inf 0.8475336 0.5762332 1.0000000 0.4836066 1.259887 Inf NaN 0.2645914 0.1936219 0.4899135 0.8475336 0.1524664
49.996862 0.1479821 1.0000000 0.0000000 0.8520179 Inf 0.8520179 0.5739910 1.0000000 0.4822888 1.259887 Inf NaN 0.2578125 0.1890034 0.4824561 0.8520179 0.1479821
50.639966 0.1434978 1.0000000 0.0000000 0.8565022 Inf 0.8565022 0.5717489 1.0000000 0.4809783 1.259887 Inf NaN 0.2509804 0.1843318 0.4747774 0.8565022 0.1434978
51.069129 0.1390135 1.0000000 0.0000000 0.8609865 Inf 0.8609865 0.5695067 1.0000000 0.4796748 1.259887 Inf NaN 0.2440945 0.1796060 0.4668675 0.8609865 0.1390135
51.389539 0.1345291 1.0000000 0.0000000 0.8654709 Inf 0.8654709 0.5672646 1.0000000 0.4783784 1.259887 Inf NaN 0.2371542 0.1748252 0.4587156 0.8654709 0.1345291
51.754392 0.1300448 1.0000000 0.0000000 0.8699552 Inf 0.8699552 0.5650224 1.0000000 0.4770889 1.259887 Inf NaN 0.2301587 0.1699883 0.4503106 0.8699552 0.1300448
52.204428 0.1255605 1.0000000 0.0000000 0.8744395 Inf 0.8744395 0.5627803 1.0000000 0.4758065 1.259887 Inf NaN 0.2231076 0.1650943 0.4416404 0.8744395 0.1255605
52.352325 0.1210762 1.0000000 0.0000000 0.8789238 Inf 0.8789238 0.5605381 1.0000000 0.4745308 1.259887 Inf NaN 0.2160000 0.1601423 0.4326923 0.8789238 0.1210762
52.736647 0.1165919 1.0000000 0.0000000 0.8834081 Inf 0.8834081 0.5582960 1.0000000 0.4732620 1.259887 Inf NaN 0.2088353 0.1551313 0.4234528 0.8834081 0.1165919
53.640088 0.1121076 1.0000000 0.0000000 0.8878924 Inf 0.8878924 0.5560538 1.0000000 0.4720000 1.259887 Inf NaN 0.2016129 0.1500600 0.4139073 0.8878924 0.1121076
54.262760 0.1076233 1.0000000 0.0000000 0.8923767 Inf 0.8923767 0.5538117 1.0000000 0.4707447 1.259887 Inf NaN 0.1943320 0.1449275 0.4040404 0.8923767 0.1076233
55.957702 0.1031390 1.0000000 0.0000000 0.8968610 Inf 0.8968610 0.5515695 1.0000000 0.4694960 1.259887 Inf NaN 0.1869919 0.1397327 0.3938356 0.8968610 0.1031390
57.762996 0.0986547 1.0000000 0.0000000 0.9013453 Inf 0.9013453 0.5493274 1.0000000 0.4682540 1.259887 Inf NaN 0.1795918 0.1344743 0.3832753 0.9013453 0.0986547
59.777428 0.0941704 1.0000000 0.0000000 0.9058296 Inf 0.9058296 0.5470852 1.0000000 0.4670185 1.259887 Inf NaN 0.1721311 0.1291513 0.3723404 0.9058296 0.0941704
61.780229 0.0896861 1.0000000 0.0000000 0.9103139 Inf 0.9103139 0.5448430 1.0000000 0.4657895 1.259887 Inf NaN 0.1646091 0.1237624 0.3610108 0.9103139 0.0896861
62.382997 0.0852018 1.0000000 0.0000000 0.9147982 Inf 0.9147982 0.5426009 1.0000000 0.4645669 1.259887 Inf NaN 0.1570248 0.1183064 0.3492647 0.9147982 0.0852018
62.917290 0.0807175 1.0000000 0.0000000 0.9192825 Inf 0.9192825 0.5403587 1.0000000 0.4633508 1.259887 Inf NaN 0.1493776 0.1127820 0.3370787 0.9192825 0.0807175
64.381462 0.0762332 1.0000000 0.0000000 0.9237668 Inf 0.9237668 0.5381166 1.0000000 0.4621410 1.259887 Inf NaN 0.1416667 0.1071879 0.3244275 0.9237668 0.0762332
65.967092 0.0717489 1.0000000 0.0000000 0.9282511 Inf 0.9282511 0.5358744 1.0000000 0.4609375 1.259887 Inf NaN 0.1338912 0.1015228 0.3112840 0.9282511 0.0717489
66.718620 0.0672646 1.0000000 0.0000000 0.9327354 Inf 0.9327354 0.5336323 1.0000000 0.4597403 1.259887 Inf NaN 0.1260504 0.0957854 0.2976190 0.9327354 0.0672646
68.467912 0.0627803 1.0000000 0.0000000 0.9372197 Inf 0.9372197 0.5313901 1.0000000 0.4585492 1.259887 Inf NaN 0.1181435 0.0899743 0.2834008 0.9372197 0.0627803
69.936136 0.0582960 1.0000000 0.0000000 0.9417040 Inf 0.9417040 0.5291480 1.0000000 0.4573643 1.259887 Inf NaN 0.1101695 0.0840880 0.2685950 0.9417040 0.0582960
70.555422 0.0538117 1.0000000 0.0000000 0.9461883 Inf 0.9461883 0.5269058 1.0000000 0.4561856 1.259887 Inf NaN 0.1021277 0.0781250 0.2531646 0.9461883 0.0538117
71.220054 0.0493274 1.0000000 0.0000000 0.9506726 Inf 0.9506726 0.5246637 1.0000000 0.4550129 1.259887 Inf NaN 0.0940171 0.0720839 0.2370690 0.9506726 0.0493274
71.642639 0.0448430 1.0000000 0.0000000 0.9551570 Inf 0.9551570 0.5224215 1.0000000 0.4538462 1.259887 Inf NaN 0.0858369 0.0659631 0.2202643 0.9551570 0.0448430
72.239855 0.0403587 1.0000000 0.0000000 0.9596413 Inf 0.9596413 0.5201794 1.0000000 0.4526854 1.259887 Inf NaN 0.0775862 0.0597610 0.2027027 0.9596413 0.0403587
72.714618 0.0358744 1.0000000 0.0000000 0.9641256 Inf 0.9641256 0.5179372 1.0000000 0.4515306 1.259887 Inf NaN 0.0692641 0.0534759 0.1843318 0.9641256 0.0358744
72.993747 0.0313901 1.0000000 0.0000000 0.9686099 Inf 0.9686099 0.5156951 1.0000000 0.4503817 1.259887 Inf NaN 0.0608696 0.0471063 0.1650943 0.9686099 0.0313901
74.514808 0.0269058 1.0000000 0.0000000 0.9730942 Inf 0.9730942 0.5134529 1.0000000 0.4492386 1.259887 Inf NaN 0.0524017 0.0406504 0.1449275 0.9730942 0.0269058
76.143385 0.0224215 1.0000000 0.0000000 0.9775785 Inf 0.9775785 0.5112108 1.0000000 0.4481013 1.259887 Inf NaN 0.0438596 0.0341064 0.1237624 0.9775785 0.0224215
76.506209 0.0179372 1.0000000 0.0000000 0.9820628 Inf 0.9820628 0.5089686 1.0000000 0.4469697 1.259887 Inf NaN 0.0352423 0.0274725 0.1015228 0.9820628 0.0179372
80.419374 0.0134529 1.0000000 0.0000000 0.9865471 Inf 0.9865471 0.5067265 1.0000000 0.4458438 1.259887 Inf NaN 0.0265487 0.0207469 0.0781250 0.9865471 0.0134529
84.526775 0.0089686 1.0000000 0.0000000 0.9910314 Inf 0.9910314 0.5044843 1.0000000 0.4447236 1.259887 Inf NaN 0.0177778 0.0139276 0.0534759 0.9910314 0.0089686
90.770448 0.0044843 1.0000000 0.0000000 0.9955157 Inf 0.9955157 0.5022422 1.0000000 0.4436090 1.259887 Inf NaN 0.0089286 0.0070126 0.0274725 0.9955157 0.0044843
Inf 0.0000000 1.0000000 0.0000000 1.0000000 NaN 1.0000000 0.5000000 NaN 0.4425000 1.259887 NaN NaN NaN 0.0000000 0.0000000 1.0000000 0.0000000

Có nhiều cách để xác định điểm cắt tối ưu,thí dụ, ta có thể đặt ra tiêu chí: d_distance nhỏ nhất, Youden index J lớn nhất:

Cả 2 tiêu chí d-distance min và Youden J max đều dẫn đến kết quả điểm cắt tối ưu = 17.394. Tất cả metrics tương ứng với điểm cắt này được xuất ra như sau:

thres_df%>%subset(.,d_distance==min(d_distance))%>%t(.)
##                  [,1]
## Cutoff     17.3944930
## Sens        0.9058296
## Spec        0.8700565
## FPR         0.1299435
## FNR         0.0941704
## LR_pos      6.9709495
## LR_neg      0.1082348
## BAC         0.8879430
## PPV         0.8977778
## NPV         0.8800000
## Pre_Odd     1.2598870
## Post_Odd    8.7826087
## Post_Prob   0.8977778
## F1          0.9017857
## F2          0.6124924
## F05         0.8041401
## d_distance  0.1604786
## Youden_J    0.7758861
thres_df%>%subset(.,Youden_J==max(Youden_J))%>%t(.)
##                  [,1]
## Cutoff     17.3944930
## Sens        0.9058296
## Spec        0.8700565
## FPR         0.1299435
## FNR         0.0941704
## LR_pos      6.9709495
## LR_neg      0.1082348
## BAC         0.8879430
## PPV         0.8977778
## NPV         0.8800000
## Pre_Odd     1.2598870
## Post_Odd    8.7826087
## Post_Prob   0.8977778
## F1          0.9017857
## F2          0.6124924
## F05         0.8041401
## d_distance  0.1604786
## Youden_J    0.7758861

Ta cũng có thể tối ưu hóa F1 score, hoặc BAC:

Khi dùng F1 score làm tiêu chí, ta có kết quả điểm cắt tối ưu = 17.036

thres_df%>%filter(F1!=Inf)%>%subset(.,F1==max(F1))%>%t(.)
##                   [,1]
## Cutoff     17.03631553
## Sens        0.91479821
## Spec        0.85875706
## FPR         0.14124294
## FNR         0.08520179
## LR_pos      6.47677130
## LR_neg      0.09921525
## BAC         0.88677763
## PPV         0.89082969
## NPV         0.88888889
## Pre_Odd     1.25988701
## Post_Odd    8.16000000
## Post_Prob   0.89082969
## F1          0.90265487
## F2          0.61705989
## F05         0.80188679
## d_distance  0.16495124
## Youden_J    0.77355527

Khi dùng BAC, ta tìm lại được điểm cắt tối ưu tương đương với khi dùng Youden J:

thres_df%>%subset(.,BAC==max(BAC))%>%t(.)
##                  [,1]
## Cutoff     17.3944930
## Sens        0.9058296
## Spec        0.8700565
## FPR         0.1299435
## FNR         0.0941704
## LR_pos      6.9709495
## LR_neg      0.1082348
## BAC         0.8879430
## PPV         0.8977778
## NPV         0.8800000
## Pre_Odd     1.2598870
## Post_Odd    8.7826087
## Post_Prob   0.8977778
## F1          0.9017857
## F2          0.6124924
## F05         0.8041401
## d_distance  0.1604786
## Youden_J    0.7758861

Để hình dung rõ hơn điều gì đã xảy ra, các bạn có thể vẽ biểu đồ tuyến kí mô tả sự thay đổi của các tiêu chí dọc theo thang đo của Marker:

mc_df<-thres_df%>%select(-c(Pre_Odd,
                            Post_Odd,
                            LR_pos,
                            LR_neg))%>%
  gather(Sens:Youden_J,key="Metric",value="Value")

mc_df%>%ggplot(aes(x=Cutoff,
                   y=Value,
                   color=Metric))+
  geom_step(size=1)+
  theme_bw(10)

Hàm geom_smooth cho ra một hình ảnh mượt mà hơn

mc_df%>%ggplot(aes(x=Cutoff,
                   y=Value,
                   color=Metric))+
  geom_smooth(size=1,se=F)+
  scale_x_continuous(breaks = c(0,5,10,15,20,25,30,40,50,60,70,80))+
  theme_bw(10)

5 Tổng kết

Bài thực hành đến đây là hết. Các bạn đã có trong tay 2 hàm cho phép thực hiện một phân tích ROC hoàn hảo và vượt xa bất cứ phần mềm thống kê thương mại nào khác.

LS0tDQp0aXRsZTogIkdp4bqjaSBwaOG6q3UgxJHGsOG7nW5nIGNvbmcgUk9DIiANCmF1dGhvcjogIkzDqiBOZ+G7jWMgS2jhuqMgTmhpIg0KZGF0ZTogIjI0IFRow6FuZyAxIG7Eg20gMjAxOCINCm91dHB1dDoNCiAgaHRtbF9kb2N1bWVudDogDQogICAgY29kZV9kb3dubG9hZDogdHJ1ZQ0KICAgIGNvZGVfZm9sZGluZzogaGlkZQ0KICAgIG51bWJlcl9zZWN0aW9uczogeWVzDQogICAgdGhlbWU6ICJkZWZhdWx0Ig0KICAgIHRvYzogVFJVRQ0KICAgIHRvY19mbG9hdDogVFJVRQ0KICAgIGRldjogJ3N2ZycNCi0tLQ0KDQpgYGB7ciBzZXR1cCxpbmNsdWRlPUZBTFNFfQ0Ka25pdHI6Om9wdHNfY2h1bmskc2V0KGVjaG8gPSBUUlVFKQ0KYGBgDQoNCiFbXShyb2MucG5nKQ0KDQojIEdp4bubaSB0aGnhu4d1DQoNCsSQxrDhu51uZyBjb25nIFJPQyAoUmVjZWl2ZXIgT3BlcmF0aW5nIENoYXJhY3RlcmlzdGljKSBsw6AgbeG7mXQgdHJvbmcgbmjhu69uZyBraeG6v24gdGjhu6ljIGPGoSBi4bqjbiBtw6Agc2luaCB2acOqbiBZIGtob2EgxJHGsOG7o2MgaOG7jWMgdHJvbmcgZ2nDoW8gdHLDrG5oIFRo4buRbmcga8OqIG7Eg20gdGjhu6kgbmjhuqV0LiDhu6huZyBk4bulbmcgcXVlbiB0aHXhu5ljIGPhu6dhIMSRxrDhu51uZyBjb25nIFJPQyBsw6AgxJHhu4MgxJHDoW5oIGdpw6EgaGnhu4d1IG7Eg25nIGPhu6dhIG3hu5l0IHjDqXQgbmdoaeG7h20gY2jhuqluIMSRb8Ohbi4NCg0KVHV5IHbhuq15LCB0csOqbiB0aOG7sWMgdOG6vyBraMO0bmcgcGjhuqNpIHThuqV0IGPhuqMgYsOhYyBzxKkgxJHhu4F1IGhp4buDdSByw7UgYuG6o24gY2jhuqV0IGPhu6dhIMSRxrDhu51uZyBjb25nIFJPQyBjaMOtbmggbMOgIG3hu5l0IGLDoGkgdG/DoW4gdOG7kWkgxrB1IGjDs2EgdsOgIG5o4buLIHBow6JuIMOhcCBk4bulbmcgY2hvIG3hu5l0IHRoYW5nIMSRbyBsacOqbiB04bulYy4gTeG7pWMgdGnDqnUgY+G7p2EgYsOgaSB0b8OhbiBuw6B5IG5o4bqxbSB4w6FjIMSR4buLbmggbmfGsOG7oW5nIGPhuq90IHThu5FpIMawdSBj4bunYSBt4buZdCB0aMO0bmcgc+G7kSB4w6l0IG5naGnhu4dtIMSR4buDIMSRxrBhIHJhIG3hu5l0IHF1eeG6v3QgxJHhu4tuaCBsw6JtIHPDoG5nIG1hbmcgdMOtbmggbmjhu4sgcGjDom4gKGxv4bqhaSB0cuG7qyBoYXkgeMOhYyDEkeG7i25oIGLhu4duaCBsw70pLCBoYXkgbsOzaSBjw6FjaCBraMOhYywgxJHhu4tuaCByYW5oIGdp4bubaSB0csOqbiB0aGFuZyDEkW8gxJHhu4MgY+G6r3QgdGhhbmcgxJFvIG7DoHkgdGjDoG5oIDIga2hv4bqjbmcgcmnDqm5nIGJp4buHdCwgdGjDrSBk4bulOiBi4buHbmggbMO9IHbDoCBiw6xuaCB0aMaw4budbmcuIFRhIHPhur0gZGkgY2h1eeG7g24gdOG7q25nIGLGsOG7m2MgdHLDqm4gdGhhbmcgxJFvIHbDoCB04bqhaSBt4buXaSDEkWnhu4NtLCDGsOG7m2MgdMOtbmggMiBjaOG7iSBz4buROiBUcnVlIHBvc2l0aXZlIHJhdGUgKFRQUikgdsOgIFRydWUgbmVnYXRpdmUgcmF0ZSAoVE5SKSwgaGF5IFNlbnNpdGl2aXR5IHbDoCAxLVNwZWNpZmljaXR5IChYaW4geGVtIGzhuqFpIGLDoGkga2nhu4NtIMSR4buLbmggbcO0IGjDrG5oIHBow6JuIGxv4bqhaSBuaOG7iyBwaMOibiA6IGh0dHBzOi8vcnB1YnMuY29tL2xlbmdvY2toYW5oaS8zNDc5NDEgKS4gxJDGsOG7nW5nIGNvbmcgUk9DIG3DoCB0YSBiaeG6v3QgY2jDrW5oIGzDoCBow6xuaCDhuqNuaCBj4bunYSB04bqldCBj4bqjIGPDoWMga+G6v3QgcXXhuqMgVE5SLCBUUFIgdMawxqFuZyDhu6luZyB24bubaSBy4bqldCBuaGnhu4F1IMSRaeG7g20gdHLDqm4gdGhhbmcgxJFvLiANCg0KVHJvbmcgYsOgaSB0aOG7sWMgaMOgbmggaMO0bSBuYXksIE5oaSBz4bq9IGjGsOG7m25nIGThuqtuIGPDoWMgYuG6oW4gZMO5bmcgbmfDtG4gbmfhu68gUiDEkeG7gyB0aOG7sWMgaGnhu4duIHRo4bunIGPDtG5nIG3hu5l0IHBow6JuIHTDrWNoIFJPQyAuDQoNCiMgVGjDrSBk4bulIG1pbmggaOG7jWENCg0KVGjDrSBk4bulIHRhIGPDsyBt4buZdCBjaOG7iSBz4buRIHjDqXQgbmdoaeG7h20gTWFya2VyLCB2w6AgbeG7pWMgdGnDqnUgxJHhurd0IHJhIGzDoCB4w6FjIMSR4buLbmggbeG7mXQgbmfGsOG7oW5nIGPhuq90IHThu5FpIMawdSBuaOG6pXQgY+G7p2EgY2jhu4kgc+G7kSBuw6B5IGNobyBwaMOpcCBjaOG6qW4gxJFvw6FuIChEaWFnbm9zaXMgPTEpIGhv4bq3YyBsb+G6oWkgdHLhu6sgKERpYWdub3Npcz0wKSBt4buZdCBjxINuIGLhu4duaC4NCg0KVGEgdOG6o2kgZOG7ryBsaeG7h3UgdsOgbyBSOg0KDQpgYGB7cixtZXNzYWdlID0gRkFMU0Usd2FybmluZz1GQUxTRX0NCmxpYnJhcnkodGlkeXZlcnNlKQ0KDQpkZiA9IHJlYWQuY3N2KCJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20va2lub2tvYmVydWppL1ItVHV0b3JpYWxzL21hc3Rlci9ST0NkZi5jc3YiLHNlcCA9ICc7JyxkZWMgPSAiLiIpDQoNCmtuaXRyOjprYWJsZShoZWFkKGRmKSkNCmBgYA0KDQrEkOG6p3UgdGnDqm4sIE5oaSBkw7luZyBLREUgcGxvdCDEkeG7gyB0aMSDbSBkw7IgdHLhu7FjIHF1YW4gcGjDom4gcGjhu5FpIGPhu6dhIE1hcmtlciB0cm9uZyAyIG5ow7NtIERpYWdub3Npcy4gQmnhu4N1IMSR4buTIGNobyB0aOG6pXkgY8OzIHPhu7EgY2jhu5NuZyBs4bqvcCDEkcOhbmcga+G7gyBnaeG7r2EgMiBwaMOibiBi4buRLCBuaMawIHbhuq15IG3hu6VjIHRpw6p1IGPhu6dhIHRhIGzDoCBjaOG7jW4gcmEgbeG7mXQgbmfGsOG7oW5nIHBow7kgaOG7o3AgxJHhu4MgY8OibiBi4bqxbmcgZ2nhu69hIGZhbHNlIG5lZ2F0aXZlIHbDoCBmYWxzZSBwb3NpdGl2ZSwgbeG6t3Qga2jDoWMga2jDtG5nIGPDsyBuZ8aw4buhbmcgY+G6r3QgbsOgbyBsw6AgdHV54buHdCDEkeG7kWkgaG/DoG4gaOG6o28uDQoNCmBgYHtyLG1lc3NhZ2UgPSBGQUxTRSx3YXJuaW5nPUZBTFNFfQ0KZGYlPiVnZ3Bsb3QoKSsNCiAgZ2VvbV9kZW5zaXR5KGFlcyh4PU1hcmtlcixmaWxsPWZhY3RvcihEaWFnbm9zaXMpKSxhbHBoYT0wLjQpKw0KICB0aGVtZV9idygxMCkrDQogIHNjYWxlX2ZpbGxfbWFudWFsKHZhbHVlcz1jKCJibHVlIiwicmVkIikpKw0KICBzY2FsZV94X2NvbnRpbnVvdXMoYnJlYWtzPWMoc2VxKGZyb209MCx0bz04MCxieT0yMCkpKQ0KYGBgDQoNCkLhuqFuIGPDsyB0aOG7gyB24bq9IG3hu5l0IMSR4buTIHRo4buLIGPhu6dhIGjDoG0gbG9naXN0aWMgbcO0IHThuqMgRGlhZ25vc2lzIG5oxrAgMSBiaeG6v24gbmfhuqt1IG5oacOqbiBjw7MgcGjDom4gYuG7kSBuaOG7iyB0aOG7qWMgdMO5eSB0aGVvIGdpw6EgdHLhu4sgTWFya2VyLiBUdXkgbmhpw6puIOG7nyDEkcOieSBjaMO6bmcgdGEga2jDtG5nIGPhuqduIHBo4bqjaSBkw7luZyDEkeG6v24gbcO0IGjDrG5oIGxvZ2lzdGljIG3DoCBz4bq9IHPhu60gZOG7pW5nIHRy4buxYyB0aeG6v3AgdGhhbmcgxJFvIGPhu6dhIE1hcmtlciBjaG8gdmnhu4djIGNo4bqpbiDEkW/DoW4uIA0KDQpgYGB7cixtZXNzYWdlID0gRkFMU0Usd2FybmluZz1GQUxTRX0NCmJpbm9taWFsX3Ntb290aCA8LSBmdW5jdGlvbiguLi4pIHsNCiAgZ2VvbV9zbW9vdGgobWV0aG9kID0gImdsbSIsIG1ldGhvZC5hcmdzID0gbGlzdChmYW1pbHkgPSAiYmlub21pYWwiKSwgc2U9VCxzaG93LmxlZ2VuZCA9IEYsLi4uKQ0KfQ0KDQoNCmRmJT4lZ2dwbG90KGFlcyh4PU1hcmtlcix5PURpYWdub3NpcykpKw0KICBnZW9tX3BvaW50KGFscGhhPTAuMixhZXMoY29sPWZhY3RvcihEaWFnbm9zaXMpKSkrDQogIGJpbm9taWFsX3Ntb290aChjb2w9InB1cnBsZSIsZmlsbD0idmlvbGV0IixhbHBoYT0wLjUpKw0KICBzY2FsZV9jb2xvcl9tYW51YWwodmFsdWVzPWMoImJsdWUiLCJyZWQiKSkrDQogIHRoZW1lX2J3KDEwKQ0KYGBgDQoNCiMgVOG6oW8gaMOgbSB24bq9IMSRxrDhu51uZyBjb25nIFJPQw0KDQpOaGkgdmnhur90IG3hu5l0IGjDoG0gZ2dfcm9jKCkgxJHhu4MgduG6vSDEkcaw4budbmcgY29uZyBST0MgduG7m2kgcXV5IHRyw6xuaCAyIGLGsOG7m2M6DQoNCjEpIMSQ4bqndSB0acOqbiwgc+G7rSBk4bulbmcgaMOgbSByb2MoKSBj4bunYSBwYWNrYWdlIHBST0MgxJHhu4MgdOG6oW8gZGF0YWZyYW1lIGThu68gbGnhu4d1IGPhu6dhIFNlbnNpdGl2aXR5LCBTcGVjaWZpY2l0eSBjaG8gdG/DoG4gYuG7mSBjw6FjIMSRaeG7g20gY+G6r3QgdOG7qyBk4buvIGxp4buHdSBn4buRYywgaG/hurdjIGTDuW5nIGJvb3RzdHJhcCAobuG6v3UgdMO5eSBjaOG7iW5oIHNtb290aD1UcnVlKSwgDQoNCjIpIFPhu60gZOG7pW5nIGdncGxvdDIgxJHhu4MgduG6vSBST0MgY3VydmUgdOG7qyBk4buvIGxp4buHdSBuw7NpIHRyw6puDQoNCmBgYHtyLG1lc3NhZ2UgPSBGQUxTRSx3YXJuaW5nPUZBTFNFfQ0KbGlicmFyeShwUk9DKQ0KDQpnZ19yb2MgPSBmdW5jdGlvbihkYXRhLGZvcm11bGEsc21vb3RoPVQsLi4uKXsNCg0KICAjIEdlbmVyYXRlIFJPQyBkYXRhDQogIG15cm9jPXJvYyhhcy5mb3JtdWxhKGZvcm11bGEpLGRhdGE9ZGF0YSwNCiAgICAgICAgICAgICAgICAgYWxnb3JpdGhtPTMsDQogICAgICAgICAgICAgICAgIGRpcmVjdGlvbj0iYXV0byIsDQogICAgICAgICAgICAgICAgIGF1Yz1ULA0KICAgICAgICAgICAgICAgICBjaT1ULA0KICAgICAgICAgICAgICAgICBzbW9vdGg9c21vb3RoKQ0KICANCiAgIyBwbG90IFJPQyBjdXJ2ZSBieSBnZ3Bsb3QyDQogIGRhdGFfZnJhbWUoZnByPTEtbXlyb2Mkc3BlY2lmaWNpdGllcywNCiAgICAgICAgICAgICB0cHI9bXlyb2Mkc2Vuc2l0aXZpdGllcyklPiUNCiAgICBnZ3Bsb3QoYWVzKHg9ZnByLHltaW49MCx5bWF4PXRwcikpKw0KICAgIGdlb21fcG9seWdvbihhZXMoeT10cHIpLGZpbGw9InJlZCIsYWxwaGE9MC4zKSsNCiAgICBnZW9tX3BhdGgoYWVzKHk9dHByKSxjb2w9InJlZDMiLHNpemU9MSkrDQogICAgZ2VvbV9hYmxpbmUobGluZXR5cGU9J2Rhc2hlZCcpKw0KICAgIHRoZW1lX2J3KCkrDQogICAgY29vcmRfZXF1YWwoKSsNCiAgICBsYWJzKHg9IkZhbHNlIHBvc2l0aXZlIHJhdGUiLHk9IlRydWUgUG9zaXRpdmUgcmF0ZSIpKw0KICAgIGdndGl0bGUocGFzdGUwKCJBVUM9Iixyb3VuZChteXJvYyRhdWNbMV0sMyksIiAgICIsDQogICAgICAgICAgICAgICAgICAgIjk1JUNJIDoiLHJvdW5kKG15cm9jJGNpW1sxXV0sMyksIiB0byAiLA0KICAgICAgICAgICAgICAgICAgIHJvdW5kKG15cm9jJGNpW1syXV0sMykNCiAgICApKQ0KfQ0KYGBgDQoNCsSQw6J5IGzDoCBr4bq/dCBxdeG6oyBj4bunYSBST0MgY3VydmUga2jDtG5nIHPhu60gZOG7pW5nIHNtb290aGluZywgbMO6YyBuw6B5IDk1JUNJIGPhu6dhIEFVQyDEkcaw4bujYyB4w6FjIMSR4buLbmggYuG6sW5nIHBoxrDGoW5nIHBow6FwIERlTG9uZy4NCg0KYGBge3IsbWVzc2FnZSA9IEZBTFNFLHdhcm5pbmc9RkFMU0V9DQpnZ19yb2MoZGF0YT1kZixmb3JtdWxhPSdEaWFnbm9zaXN+TWFya2VyJyxzbW9vdGg9RikNCmBgYA0KDQrEkMOieSBsw6Aga+G6v3QgcXXhuqMgY+G7p2EgaMOgbSBuw7NpIHRyw6puIHbhu5tpIHTDuXkgY2jhu4luaCBzbW9vdGggPVRydWUsIGzDumMgbsOgeSA5NSVDSSDEkcaw4bujYyB4w6FjIMSR4buLbmggYuG6sW5nIGJvb3RzdHJhcCAyMDAwIGzGsOG7o3QuDQoNCmBgYHtyLG1lc3NhZ2UgPSBGQUxTRSx3YXJuaW5nPUZBTFNFfQ0KZ2dfcm9jKGRhdGE9ZGYsZm9ybXVsYT0nRGlhZ25vc2lzfk1hcmtlcicsc21vb3RoPVQpDQpgYGANCg0KIyBYw6FjIMSR4buLbmggbmfGsOG7oW5nIGPhuq90IHThu5FpIMawdQ0KDQpUaeG6v3AgdGhlbywgTmhpIHZp4bq/dCAxIGjDoG0gY8OzIHTDqm4gbMOgIGN1dG9mZl9hbmFseXNpcywgY2hvIHBow6lwIHh14bqldCByYSBt4buZdCBkYXRhZnJhbWUgZ+G7k20gMTcgY2jhu4kgc+G7kSDEkW8gbMaw4budbmcgaGnhu4d1IG7Eg25nIGPhu6dhIHF1eSBsdeG6rXQgY2jhuqluIMSRb8OhbiBuaOG7iyBwaMOibiB04bqhaSB04burbmcgxJFp4buDbSBj4bqvdCB0csOqbiB0aGFuZyDEkW8gY+G7p2EgTWFya2VyLiDEkGnhu4F1IHRow7ogduG7iywgxJHDsyBsw6AgcGFja2FnZSBwUk9DIGNo4buJIHTDrW5oIGNobyBjaMO6bmcgdGEgMiBtZXRyaWNzIGzDoCBTZW5zaXRpdml0eSB2w6AgU3BlY2lmaWNpdHksIG5oxrBuZyBkbyBjaMO6bmcgdGEgxJFhbmcgeOG7rSBsw70gbeG7mXQgYsOgaSB0b8OhbiBuaOG7iyBwaMOibiwgY8OhYyBi4bqhbiBjw7MgdGjhu4MgdMOtbmggcmEgdOG6pXQgY+G6oyBjw6FjIG1ldHJpY3MgY8OybiBs4bqhaSAoa2jDtG5nIGThu4UgZMOgbmcgY2hvIGzhuq9tLCBuaMawbmcgaG/DoG4gdG/DoG4gY8OzIHRo4buDLCB2w6wgY2jDum5nIGPDsyBsacOqbiBo4buHIGNo4bq3dCBjaOG6vSB24bubaSBuaGF1IHF1YSAxIGNvbmZ1c2lvbiBtYXRyaXgpLiANCg0KQ8OhYyBjaOG7iSBz4buRIG7DoHkgZ+G7k206IFNlbnNpdGl2aXR5LCBTcGVjaWZpY2l0eSwgRlBSLCBGTlIsIExSKywgTFItLCBCYWxhbmNlZCBBY2N1cmFjeSwgUFBWLCBOUFYsIEYxLCBGMC41IHbDoCBGMiBzY29yZXMsIFByZS10ZXN0IHByb2JhYmlsaXR5LCBQcmUtdGVzdCBPZGQsIFBvc3QgdGVzdCBPZGQgdsOgIFBvc3QgdGVzdCBQcm9iYWJpbGl0eSwgY3Xhu5FpIGPDuW5nIGzDoCBkX2Rpc3RhbmNlIHbDoCBZb3VkZW4gaW5kZXggLSAyIGNo4buJIHPhu5EgcXVhbiB0cuG7jW5nIGNobyBwaMOpcCDEkeG7i25oIHbhu4sgMSDEkWnhu4NtIHThu5FpIMawdSB0csOqbiBST0MgY3VydmUuDQoNCmBgYHtyLG1lc3NhZ2UgPSBGQUxTRSx3YXJuaW5nPUZBTFNFfQ0KY3V0b2ZmX2FuYWx5c2lzPWZ1bmN0aW9uKGRhdGEsb3V0Y29tZSxzY29yZSl7DQoNCiMgR2VuZXJhdGUgcHJpbWFyeSBkYXRhDQpteXJvYz1yb2MocmVzcG9uc2U9b3V0Y29tZSwNCiAgICAgICAgICBwcmVkaWN0b3I9c2NvcmUsDQogICAgICAgICAgYWxnb3JpdGhtPTMsDQogICAgICAgICAgZGlyZWN0aW9uPSJhdXRvIiwNCiAgICAgICAgICBzbW9vdGg9RikNCiMgQ2FsY3VsYXRlIHRoZSBwcmUtdGVzdCBwcm9iYWJpbGl0eQ0KcHJlMT1sZW5ndGgod2hpY2gob3V0Y29tZT09MSkpL25yb3coZGF0YSkNCg0KY3V0X2RmPWFzX3RpYmJsZShjYmluZChteXJvYyR0aHJlc2hvbGRzLA0KICAgICAgICAgICAgICAgICAgICAgICBteXJvYyRzZW5zaXRpdml0aWVzLA0KICAgICAgICAgICAgICAgICAgICAgICBteXJvYyRzcGVjaWZpY2l0aWVzKSklPiUNCiAgZHBseXI6OnJlbmFtZSguLEN1dG9mZj1WMSxTZW5zPVYyLFNwZWM9VjMpDQoNCiMgQ29tcGxldGUgdGhlIGRhdGEgd2l0aCBtb3JlIG1ldHJpY3MNCmN1dF9kZjwtY3V0X2RmJT4lbXV0YXRlKC4sRlBSID0gKDEtLiRTcGVjKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgRk5SID0gKDEtLiRTZW5zKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgTFJfcG9zID0gKFNlbnMvKDEtU3BlYykpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICBMUl9uZWcgPSAoKDEtU2VucykvU3BlYyksDQogICAgICAgICAgICAgICAgICAgICAgICAgIEJBQyA9IChTZW5zICsgU3BlYykvMiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgUFBWID0gKCguJFNlbnMqcHJlMSkvKC4kU2VucypwcmUxKygxLS4kU3BlYykqKDEtcHJlMSkpKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgTlBWID0gKC4kU3BlYyooMS1wcmUxKS8oKDEtLiRTZW5zKSpwcmUxKy4kU3BlYyooMS1wcmUxKSkpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICBQcmVfT2RkID0gcHJlMS8oMS1wcmUxKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgUG9zdF9PZGQgPSBQcmVfT2RkKkxSX3BvcywNCiAgICAgICAgICAgICAgICAgICAgICAgICAgUG9zdF9Qcm9iID0gUG9zdF9PZGQvKDErUG9zdF9PZGQpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICBGMT0gMiooU2VucypQUFYpLyhQUFYrU2VucyksIA0KICAgICAgICAgICAgICAgICAgICAgICAgICBGMj0gNSooLiRTZW5zKnByZTEpLyg1KiguJFNlbnMqcHJlMSkrNCooLiRTcGVjKigxLXByZTEpKSsoMS0uJFNwZWMpKigxLXByZTEpKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgRjA1PSAoMSswLjVeMikqKC4kU2VucypwcmUxKS8oKDErMC41XjIpKiguJFNlbnMqcHJlMSkrKDAuNV4yKSooLiRTcGVjKigxLXByZTEpKSsoMS0uJFNwZWMpKigxLXByZTEpKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgZF9kaXN0YW5jZT1zcXJ0KCgxLS4kU2VucyleMisoMS0uJFNwZWMpXjIpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICBZb3VkZW5fSj0uJFNlbnMrLiRTcGVjLTEpDQpyZXR1cm4oY3V0X2RmKQ0KfQ0KYGBgDQoNCg0Kw4FwIGThu6VuZyBow6BtIG7DoHkgY2hvIGRhdGEgZGYsIHRhIGPDsyAxIGRhdGFmcmFtZSBuaMawIHNhdToNCg0KYGBge3IsbWVzc2FnZSA9IEZBTFNFLHdhcm5pbmc9RkFMU0V9DQp0aHJlc19kZiA9IGN1dG9mZl9hbmFseXNpcyhkYXRhPWRmLG91dGNvbWU9ZGYkRGlhZ25vc2lzLHNjb3JlPWRmJE1hcmtlcikNCmBgYA0KDQoNCmBgYHtyLG1lc3NhZ2UgPSBGQUxTRSx3YXJuaW5nPUZBTFNFfQ0KdGhyZXNfZGYlPiVrbml0cjo6a2FibGUoKQ0KYGBgDQoNCkPDsyBuaGnhu4F1IGPDoWNoIMSR4buDIHjDoWMgxJHhu4tuaCDEkWnhu4NtIGPhuq90IHThu5FpIMawdSx0aMOtIGThu6UsIHRhIGPDsyB0aOG7gyDEkeG6t3QgcmEgdGnDqnUgY2jDrTogZF9kaXN0YW5jZSBuaOG7jyBuaOG6pXQsIFlvdWRlbiBpbmRleCBKIGzhu5tuIG5o4bqldDoNCg0KIVtdKHlvdWRlbi5wbmcpDQoNCkPhuqMgMiB0acOqdSBjaMOtIGQtZGlzdGFuY2UgbWluIHbDoCBZb3VkZW4gSiBtYXggxJHhu4F1IGThuqtuIMSR4bq/biBr4bq/dCBxdeG6oyDEkWnhu4NtIGPhuq90IHThu5FpIMawdSA9IDE3LjM5NC4gVOG6pXQgY+G6oyBtZXRyaWNzIHTGsMahbmcg4bupbmcgduG7m2kgxJFp4buDbSBj4bqvdCBuw6B5IMSRxrDhu6NjIHh14bqldCByYSBuaMawIHNhdToNCg0KYGBge3IsbWVzc2FnZSA9IEZBTFNFLHdhcm5pbmc9RkFMU0V9DQp0aHJlc19kZiU+JXN1YnNldCguLGRfZGlzdGFuY2U9PW1pbihkX2Rpc3RhbmNlKSklPiV0KC4pDQpgYGANCg0KDQpgYGB7cixtZXNzYWdlID0gRkFMU0Usd2FybmluZz1GQUxTRX0NCnRocmVzX2RmJT4lc3Vic2V0KC4sWW91ZGVuX0o9PW1heChZb3VkZW5fSikpJT4ldCguKQ0KYGBgDQoNClRhIGPFqW5nIGPDsyB0aOG7gyB04buRaSDGsHUgaMOzYSBGMSBzY29yZSwgaG/hurdjIEJBQzoNCg0KS2hpIGTDuW5nIEYxIHNjb3JlIGzDoG0gdGnDqnUgY2jDrSwgdGEgY8OzIGvhur90IHF14bqjIMSRaeG7g20gY+G6r3QgdOG7kWkgxrB1ID0gMTcuMDM2DQoNCmBgYHtyLG1lc3NhZ2UgPSBGQUxTRSx3YXJuaW5nPUZBTFNFfQ0KdGhyZXNfZGYlPiVmaWx0ZXIoRjEhPUluZiklPiVzdWJzZXQoLixGMT09bWF4KEYxKSklPiV0KC4pDQpgYGANCg0KS2hpIGTDuW5nIEJBQywgdGEgdMOsbSBs4bqhaSDEkcaw4bujYyDEkWnhu4NtIGPhuq90IHThu5FpIMawdSB0xrDGoW5nIMSRxrDGoW5nIHbhu5tpIGtoaSBkw7luZyBZb3VkZW4gSjoNCg0KYGBge3IsbWVzc2FnZSA9IEZBTFNFLHdhcm5pbmc9RkFMU0V9DQp0aHJlc19kZiU+JXN1YnNldCguLEJBQz09bWF4KEJBQykpJT4ldCguKQ0KYGBgDQoNCsSQ4buDIGjDrG5oIGR1bmcgcsO1IGjGoW4gxJFp4buBdSBnw6wgxJHDoyB44bqjeSByYSwgY8OhYyBi4bqhbiBjw7MgdGjhu4MgduG6vSBiaeG7g3UgxJHhu5MgdHV54bq/biBrw60gbcO0IHThuqMgc+G7sSB0aGF5IMSR4buVaSBj4bunYSBjw6FjIHRpw6p1IGNow60gZOG7jWMgdGhlbyB0aGFuZyDEkW8gY+G7p2EgTWFya2VyOg0KDQpgYGB7cixtZXNzYWdlID0gRkFMU0Usd2FybmluZz1GQUxTRX0NCm1jX2RmPC10aHJlc19kZiU+JXNlbGVjdCgtYyhQcmVfT2RkLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBvc3RfT2RkLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIExSX3BvcywNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMUl9uZWcpKSU+JQ0KICBnYXRoZXIoU2VuczpZb3VkZW5fSixrZXk9Ik1ldHJpYyIsdmFsdWU9IlZhbHVlIikNCg0KbWNfZGYlPiVnZ3Bsb3QoYWVzKHg9Q3V0b2ZmLA0KICAgICAgICAgICAgICAgICAgIHk9VmFsdWUsDQogICAgICAgICAgICAgICAgICAgY29sb3I9TWV0cmljKSkrDQogIGdlb21fc3RlcChzaXplPTEpKw0KICB0aGVtZV9idygxMCkNCmBgYA0KDQpIw6BtIGdlb21fc21vb3RoIGNobyByYSBt4buZdCBow6xuaCDhuqNuaCBtxrDhu6N0IG3DoCBoxqFuDQoNCmBgYHtyLG1lc3NhZ2UgPSBGQUxTRSx3YXJuaW5nPUZBTFNFfQ0KbWNfZGYlPiVnZ3Bsb3QoYWVzKHg9Q3V0b2ZmLA0KICAgICAgICAgICAgICAgICAgIHk9VmFsdWUsDQogICAgICAgICAgICAgICAgICAgY29sb3I9TWV0cmljKSkrDQogIGdlb21fc21vb3RoKHNpemU9MSxzZT1GKSsNCiAgc2NhbGVfeF9jb250aW51b3VzKGJyZWFrcyA9IGMoMCw1LDEwLDE1LDIwLDI1LDMwLDQwLDUwLDYwLDcwLDgwKSkrDQogIHRoZW1lX2J3KDEwKQ0KYGBgDQoNCiMgVOG7lW5nIGvhur90DQoNCkLDoGkgdGjhu7FjIGjDoG5oIMSR4bq/biDEkcOieSBsw6AgaOG6v3QuIEPDoWMgYuG6oW4gxJHDoyBjw7MgdHJvbmcgdGF5IDIgaMOgbSBjaG8gcGjDqXAgdGjhu7FjIGhp4buHbiBt4buZdCBwaMOibiB0w61jaCBST0MgaG/DoG4gaOG6o28gdsOgIHbGsOG7o3QgeGEgYuG6pXQgY+G7qSBwaOG6p24gbeG7gW0gdGjhu5FuZyBrw6ogdGjGsMahbmcgbeG6oWkgbsOgbyBraMOhYy4gDQo=