Coral growth
Import data set
aranaR <- read_excel("aranaR.xlsx", col_types = c("text", "numeric", "text", "numeric", "numeric", "numeric"), na = "#N/A")
Filter structures A, B & C
arana_A <- aranaR %>%
filter(structure == "A")
arana_B <- aranaR %>%
filter(structure == "B")
arana_C <- aranaR %>%
filter(structure == "C")
ANOVA Area non depending on initial sizes
AranaRanovaA <- aov(area ~ month, data = aranaR)
anova(AranaRanovaA)
AranaRAnovaASummary <- summary.lm(AranaRanovaA)
AranaRAnovaASummary$r.squared
[1] 0.3281756
plot(AranaRanovaA)




ANOVA Area Structure A
AranaAAnova <- aov(area ~ month, data = arana_A)
anova(AranaAAnova)
Analysis of Variance Table
Response: area
Df Sum Sq Mean Sq F value Pr(>F)
month 10 14742 1474.2 36.128 < 2.2e-16 ***
Residuals 261 10650 40.8
---
Signif. codes: 0 *** 0.001 ** 0.01 * 0.05 . 0.1 1
AranaAAnovaSummary <- summary.lm(AranaAAnova)
AranaAAnovaSummary$r.squared
plot(AranaAAnova)




TukeyHSD(AranaAAnova)
Tukey multiple comparisons of means
95% family-wise confidence level
Fit: aov(formula = area ~ month, data = arana_A)
$`month`
diff lwr upr p adj
Feb-Jan 0.1636212 -4.66202025 4.989263 1.0000000
Apr-Jan 1.9313736 -3.07717126 6.939918 0.9755749
May-Jan 3.2371322 -1.77141264 8.245677 0.5791367
June-Jan 6.0084359 0.83178149 11.185090 0.0091306
July-Jan 10.1220867 4.88187552 15.362298 0.0000001
Aug-Jan 11.3243485 5.86475840 16.783939 0.0000000
Sept-Jan 17.8384298 12.10295330 23.573906 0.0000000
Oct-Jan 18.6954792 12.60101686 24.789941 0.0000000
Nov-Jan 18.1809167 12.08645436 24.275379 0.0000000
Dec-Jan 21.0773000 14.83746382 27.317136 0.0000000
Apr-Feb 1.7677524 -3.51239340 7.047898 0.9915136
May-Feb 3.0735110 -2.20663478 8.353657 0.7231434
June-Feb 5.8448147 0.40494624 11.284683 0.0236533
July-Feb 9.9584655 4.45808085 15.458850 0.0000007
Aug-Feb 11.1607273 5.45095129 16.870503 0.0000001
Sept-Feb 17.6748086 11.70068869 23.648929 0.0000000
Oct-Feb 18.5318580 12.21229399 24.851422 0.0000000
Nov-Feb 18.0172955 11.69773149 24.336859 0.0000000
Dec-Feb 20.9136788 14.45380468 27.373553 0.0000000
May-Apr 1.3057586 -4.14205240 6.753570 0.9994791
June-Apr 4.0770623 -1.52569363 9.679818 0.3946086
July-Apr 8.1907131 2.52918182 13.852244 0.0002203
Aug-Apr 9.3929749 3.52780250 15.258147 0.0000214
Sept-Apr 15.9070563 9.78424525 22.029867 0.0000000
Oct-Apr 16.7641056 10.30379645 23.224415 0.0000000
Nov-Apr 16.2495431 9.78923395 22.709852 0.0000000
Dec-Apr 19.1459264 12.54829965 25.743553 0.0000000
June-May 2.7713037 -2.83145225 8.374060 0.8784968
July-May 6.8849545 1.22342320 12.546486 0.0047365
Aug-May 8.0872163 2.22204388 13.952389 0.0005730
Sept-May 14.6012976 8.47848663 20.724109 0.0000000
Oct-May 15.4583470 8.99803783 21.918656 0.0000000
Nov-May 14.9437845 8.48347533 21.404094 0.0000000
Dec-May 17.8401678 11.24254103 24.437795 0.0000000
July-June 4.1136508 -1.69712939 9.924431 0.4377143
Aug-June 5.3159126 -0.69345319 11.325278 0.1376760
Sept-June 11.8299939 5.56892021 18.091068 0.0000002
Oct-June 12.6870433 6.09554694 19.278540 0.0000001
Nov-June 12.1724808 5.58098444 18.763977 0.0000004
Dec-June 15.0688641 8.34272786 21.795000 0.0000000
Aug-July 1.2022618 -4.86193962 7.266463 0.9999057
Sept-July 7.7163432 1.40261952 14.030067 0.0043995
Oct-July 8.5733925 1.93186512 15.214920 0.0018547
Nov-July 8.0588300 1.41730262 14.700357 0.0048938
Dec-July 10.9552133 4.18004021 17.730386 0.0000168
Sept-Aug 6.5140813 0.01712688 13.011036 0.0487515
Oct-Aug 7.3711307 0.55517902 14.187082 0.0219640
Nov-Aug 6.8565682 0.04061652 13.672520 0.0472160
Dec-Aug 9.7529515 2.80670924 16.699194 0.0004038
Oct-Sept 0.8570493 -6.18182586 7.895925 0.9999991
Nov-Sept 0.3424868 -6.69638836 7.381362 1.0000000
Dec-Sept 3.2388702 -3.92624315 10.403983 0.9289677
Nov-Oct -0.5145625 -7.84890255 6.819778 1.0000000
Dec-Oct 2.3818208 -5.07375619 9.837398 0.9941333
Dec-Nov 2.8963833 -4.55919369 10.351960 0.9742488
Anova Area Structure B
AranaBAnova <- aov(area ~ month, data = arana_B)
anova(AranaBAnova)
Analysis of Variance Table
Response: area
Df Sum Sq Mean Sq F value Pr(>F)
month 10 79412 7941.2 51.008 < 2.2e-16 ***
Residuals 321 49975 155.7
---
Signif. codes: 0 *** 0.001 ** 0.01 * 0.05 . 0.1 1
AranaBAnovaSummary <- summary.lm(AranaBAnova)
AranaBAnovaSummary$r.squared
[1] 0.6137555
plot(AranaBAnova)
TukeyHSD(AranaBAnova)
Tukey multiple comparisons of means
95% family-wise confidence level
Fit: aov(formula = area ~ month, data = arana_B)
$`month`
diff lwr upr p adj
Feb-Jan 1.5984524 -7.4584963 10.655401 0.9999688
Apr-Jan 6.6667227 -2.4542550 15.787700 0.3895697
May-Jan 9.0473952 -0.2110924 18.305883 0.0620416
June-Jan 17.2029007 7.4359524 26.969849 0.0000014
July-Jan 26.0507972 16.2838490 35.817745 0.0000000
Aug-Jan 25.0788124 14.8601016 35.297523 0.0000000
Sept-Jan 41.7067724 31.4880616 51.925483 0.0000000
Oct-Jan 33.0689324 22.8502216 43.287643 0.0000000
Nov-Jan 34.9937857 24.6424819 45.345090 0.0000000
Dec-Jan 46.3570611 35.8635344 56.850588 0.0000000
Apr-Feb 5.0682703 -4.2748368 14.411377 0.8032730
May-Feb 7.4489429 -2.0284518 16.926337 0.2809745
June-Feb 15.6044483 5.6297456 25.579151 0.0000355
July-Feb 24.4523448 14.4776421 34.427048 0.0000000
Aug-Feb 23.4803600 13.0629003 33.897820 0.0000000
Sept-Feb 40.1083200 29.6908603 50.525780 0.0000000
Oct-Feb 31.4704800 21.0530203 41.887940 0.0000000
Nov-Feb 33.3953333 22.8477788 43.942888 0.0000000
Dec-Feb 44.7586087 34.0714427 55.445775 0.0000000
May-Apr 2.3806726 -7.1579292 11.919274 0.9992752
June-Apr 10.5361780 0.5033016 20.569054 0.0303500
July-Apr 19.3840746 9.3511982 29.416951 0.0000001
Aug-Apr 18.4120897 7.9389154 28.885264 0.0000015
Sept-Apr 35.0400497 24.5668754 45.513224 0.0000000
Oct-Apr 26.4022097 15.9290354 36.875384 0.0000000
Nov-Apr 28.3270631 17.7244774 38.929649 0.0000000
Dec-Apr 39.6903384 28.9488565 50.431820 0.0000000
June-May 8.1555054 -2.0025440 18.313555 0.2515938
July-May 17.0034020 6.8453526 27.161451 0.0000061
Aug-May 16.0314171 5.4382712 26.624563 0.0000780
Sept-May 32.6593771 22.0662312 43.252523 0.0000000
Oct-May 24.0215371 13.4283912 34.614683 0.0000000
Nov-May 25.9463905 15.2252813 36.667500 0.0000000
Dec-May 37.3096658 26.4511764 48.168155 0.0000000
July-June 8.8478966 -1.7756458 19.471439 0.2044285
Aug-June 7.8759117 -3.1643974 18.916221 0.4276569
Sept-June 24.5038717 13.4635626 35.544181 0.0000000
Oct-June 15.8660317 4.8257226 26.906341 0.0002416
Nov-June 17.7908851 6.6277374 28.954033 0.0000224
Dec-June 29.1541604 17.8590076 40.449313 0.0000000
Aug-July -0.9719848 -12.0122939 10.068324 1.0000000
Sept-July 15.6559752 4.6156661 26.696284 0.0003177
Oct-July 7.0181352 -4.0221739 18.058444 0.6060956
Nov-July 8.9429885 -2.2201592 20.106136 0.2545349
Dec-July 20.3062639 9.0111111 31.601417 0.0000007
Sept-Aug 16.6279600 5.1860547 28.069865 0.0001910
Oct-Aug 7.9901200 -3.4517853 19.432025 0.4613356
Nov-Aug 9.9149733 -1.6455041 21.475451 0.1703243
Dec-Aug 21.2782487 9.5902528 32.966245 0.0000005
Oct-Sept -8.6378400 -20.0797453 2.804065 0.3399608
Nov-Sept -6.7129867 -18.2734641 4.847491 0.7282767
Dec-Sept 4.6502887 -7.0377072 16.338285 0.9700423
Nov-Oct 1.9248533 -9.6356241 13.485331 0.9999819
Dec-Oct 13.2881287 1.6001328 24.976125 0.0118739
Dec-Nov 11.3632754 -0.4408210 23.167372 0.0709320
Anova Area Structure C
AranaCAnova <- aov(area ~ month, data = arana_C)
anova(AranaCAnova)
Analysis of Variance Table
Response: area
Df Sum Sq Mean Sq F value Pr(>F)
month 10 59342 5934.2 15.429 < 2.2e-16 ***
Residuals 349 134230 384.6
---
Signif. codes: 0 *** 0.001 ** 0.01 * 0.05 . 0.1 1
AranaCAnovaSummary <- summary.lm(AranaCAnova)
AranaCAnovaSummary$r.squared
[1] 0.3065638
plot(AranaCAnova)




TukeyHSD(AranaCAnova)
Tukey multiple comparisons of means
95% family-wise confidence level
Fit: aov(formula = area ~ month, data = arana_C)
$`month`
diff lwr upr p adj
Feb-Jan 3.3011585 -11.0081378 17.61045 0.9996411
Apr-Jan 10.7031585 -3.8109592 25.21728 0.3764401
May-Jan 15.6217252 0.3543255 30.88912 0.0398370
June-Jan 20.3973644 5.6576964 35.13703 0.0005089
July-Jan 27.3450525 12.4837997 42.20631 0.0000003
Aug-Jan 29.2183360 14.0938044 44.34287 0.0000001
Sept-Jan 34.1318521 19.0073206 49.25638 0.0000000
Oct-Jan 35.9243252 20.6569255 51.19172 0.0000000
Nov-Jan 30.7182657 15.1391766 46.29735 0.0000000
Dec-Jan 36.3273371 20.7482481 51.90643 0.0000000
Apr-Feb 7.4020000 -7.3775520 22.18155 0.8717355
May-Feb 12.3205667 -3.1993895 27.84052 0.2674606
June-Feb 17.0962059 2.0950940 32.09732 0.0114729
July-Feb 24.0438939 8.9232995 39.16449 0.0000231
Aug-Feb 25.9171774 10.5377432 41.29661 0.0000049
Sept-Feb 30.8306935 15.4512593 46.21013 0.0000000
Oct-Feb 32.6231667 17.1032105 48.14312 0.0000000
Nov-Feb 27.4171071 11.5904348 43.24378 0.0000022
Dec-Feb 33.0261786 17.1995062 48.85285 0.0000000
May-Apr 4.9185667 -10.7904336 20.62757 0.9951484
June-Apr 9.6942059 -5.5024059 24.89082 0.6017363
July-Apr 16.6418939 1.3273248 31.95646 0.0206447
Aug-Apr 18.5151774 2.9449928 34.08536 0.0064322
Sept-Apr 23.4286935 7.8585089 38.99888 0.0000871
Oct-Apr 25.2211667 9.5121664 40.93017 0.0000180
Nov-Apr 20.0151071 4.0030114 36.02720 0.0030392
Dec-Apr 25.6241786 9.6120828 41.63627 0.0000196
June-May 4.7756392 -11.1419891 20.69327 0.9965722
July-May 11.7233273 -4.3069537 27.75361 0.3893605
Aug-May 13.5966108 -2.6780484 29.87127 0.2009751
Sept-May 18.5101269 2.2354677 34.78479 0.0117779
Oct-May 20.3026000 3.8950843 36.71012 0.0035616
Nov-May 15.0965405 -1.6013963 31.79448 0.1181056
Dec-May 20.7056119 4.0076751 37.40355 0.0034468
July-June 6.9476881 -8.5808093 22.47619 0.9346850
Aug-June 8.8209715 -6.9596764 24.60162 0.7728987
Sept-June 13.7344877 -2.0461603 29.51514 0.1547949
Oct-June 15.5269608 -0.3906675 31.44459 0.0630778
Nov-June 10.3209013 -5.8959237 26.53773 0.6051754
Dec-June 15.9299727 -0.2868523 32.14680 0.0591639
Aug-July 1.8732835 -14.0209881 17.76756 0.9999993
Sept-July 6.7867996 -9.1074719 22.68107 0.9517649
Oct-July 8.5792727 -7.4510083 24.60955 0.8168957
Nov-July 3.3732132 -12.9542002 19.70063 0.9998674
Dec-July 8.9822846 -7.3451288 25.30970 0.7897825
Sept-Aug 4.9135161 -11.2271929 21.05423 0.9961387
Oct-Aug 6.7059892 -9.5686699 22.98065 0.9620473
Nov-Aug 1.4999297 -15.0674796 18.06734 1.0000000
Dec-Aug 7.1090012 -9.4584081 23.67641 0.9501751
Oct-Sept 1.7924731 -14.4821860 18.06713 0.9999997
Nov-Sept -3.4135864 -19.9809957 13.15382 0.9998706
Dec-Sept 2.1954850 -14.3719243 18.76289 0.9999980
Nov-Oct -5.2060595 -21.9039963 11.49188 0.9953118
Dec-Oct 0.4030119 -16.2949249 17.10095 1.0000000
Dec-Nov 5.6090714 -11.3743208 22.59246 0.9925782
ANOVA Length non depending on initial sizes
AranaRanovaL <- aov(length ~ month, data = aranaR)
anova(AranaRanovaL)
Analysis of Variance Table
Response: length
Df Sum Sq Mean Sq F value Pr(>F)
month 10 2637.7 263.766 35.19 < 2.2e-16 ***
Residuals 953 7143.3 7.496
---
Signif. codes: 0 *** 0.001 ** 0.01 * 0.05 . 0.1 1
AranaRanovaLSummary <- summary.lm(AranaRanovaL)
AranaRanovaLSummary$r.squared
[1] 0.2696734
plot(AranaRanovaL)




TukeyHSD(AranaRanovaL)
Tukey multiple comparisons of means
95% family-wise confidence level
Fit: aov(formula = length ~ month, data = aranaR)
$`month`
diff lwr upr p adj
Aug-Apr 1.9672066 0.63850025 3.295913024 0.0001088
Dec-Apr 3.6783360 2.28285881 5.073813206 0.0000000
Feb-Apr -0.7729353 -1.98987220 0.444001543 0.6140531
Jan-Apr -1.1730616 -2.35174721 0.005624075 0.0523724
July-Apr 1.8243026 0.53512914 3.113476003 0.0002927
June-Apr 1.0648593 -0.21647290 2.346191565 0.2098098
May-Apr 0.1315678 -1.13143462 1.394570207 0.9999998
Nov-Apr 2.8188873 1.43592580 4.201848710 0.0000000
Oct-Apr 3.3294798 1.96416142 4.694798258 0.0000000
Sept-Apr 3.1064318 1.76275108 4.450112446 0.0000000
Dec-Aug 1.7111294 0.23371563 3.188543113 0.0090285
Feb-Aug -2.7401420 -4.05022979 -1.430054142 0.0000000
Jan-Aug -3.1402682 -4.41490329 -1.865633120 0.0000000
July-Aug -0.1429041 -1.52035203 1.234543898 0.9999998
June-Aug -0.9023473 -2.27245936 0.467764752 0.5595117
May-Aug -1.8356388 -3.18862438 -0.482653311 0.0006807
Nov-Aug 0.8516806 -0.61391726 2.317278497 0.7336765
Oct-Aug 1.3622732 -0.08668820 2.811234603 0.0873127
Sept-Aug 1.1392251 -0.28936597 2.567816227 0.2644263
Feb-Dec -4.4512713 -5.82903258 -3.073510090 0.0000000
Jan-Dec -4.8513976 -6.19549227 -3.507302881 0.0000000
July-Dec -1.8540334 -3.29599698 -0.412069900 0.0018065
June-Dec -2.6134767 -4.04843417 -1.178519187 0.0000003
May-Dec -3.5467682 -4.96538226 -2.128154172 0.0000000
Nov-Dec -0.8594488 -2.38584093 0.666943428 0.7701417
Oct-Dec -0.3488562 -1.85928163 1.161569297 0.9996601
Sept-Dec -0.5719042 -2.06279943 0.918990950 0.9780524
Jan-Feb -0.4001262 -1.55778305 0.757530571 0.9899517
July-Feb 2.5972379 1.32726247 3.867213327 0.0000000
June-Feb 1.8377947 0.57577971 3.099809612 0.0001579
May-Feb 0.9045031 -0.33889727 2.147903517 0.4024935
Nov-Feb 3.5918226 2.22673950 4.956905670 0.0000000
Oct-Feb 4.1024152 2.75520924 5.449621103 0.0000000
Sept-Feb 3.8793671 2.55409459 5.204639601 0.0000000
July-Jan 2.9973641 1.76399393 4.230734350 0.0000000
June-Jan 2.2379209 1.01274898 3.463092818 0.0000003
May-Jan 1.3046294 0.09864054 2.510618181 0.0215061
Nov-Jan 3.9919488 2.66085291 5.323044734 0.0000000
Oct-Jan 4.5025414 3.18978541 5.815297410 0.0000000
Sept-Jan 4.2794933 2.98925626 5.569730408 0.0000000
June-July -0.7594432 -2.09125198 0.572365504 0.7559207
May-July -1.6927348 -3.00691792 -0.378551634 0.0017523
Nov-July 0.9945847 -0.43527007 2.424439440 0.4736803
Oct-July 1.5051773 0.09237983 2.917974714 0.0256572
Sept-July 1.2821292 -0.10976879 2.674027182 0.1031074
May-June -0.9332915 -2.23978359 0.373200515 0.4312905
Nov-June 1.7540279 0.33123884 3.176817007 0.0036063
Oct-June 2.2646205 0.85897448 3.670266542 0.0000133
Sept-June 2.0415724 0.65693380 3.426211073 0.0001195
Nov-May 2.6873195 1.28101524 4.093623687 0.0000001
Oct-May 3.1979120 1.80895432 4.586869775 0.0000000
Sept-May 2.9748640 1.60716994 4.342558002 0.0000000
Oct-Nov 0.5105926 -0.98827728 2.009462446 0.9910220
Sept-Nov 0.2875445 -1.19164251 1.766731533 0.9999291
Sept-Oct -0.2230481 -1.68575319 1.239657037 0.9999928
ANOVA Length Structure A
AranaALAnova <- aov(length ~ month, data = arana_A)
anova(AranaALAnova)
Analysis of Variance Table
Response: length
Df Sum Sq Mean Sq F value Pr(>F)
month 10 640.15 64.015 39.977 < 2.2e-16 ***
Residuals 261 417.94 1.601
---
Signif. codes: 0 *** 0.001 ** 0.01 * 0.05 . 0.1 1
AranaALAnovaSummary <- summary.lm(AranaALAnova)
AranaALAnovaSummary$r.squared
[1] 0.6050045
plot(AranaALAnova)




TukeyHSD(AranaALAnova)
Tukey multiple comparisons of means
95% family-wise confidence level
Fit: aov(formula = length ~ month, data = arana_A)
$`month`
diff lwr upr p adj
Feb-Jan 0.17712771 -0.77883715 1.133093 0.9999495
Apr-Jan 0.94518309 -0.04701512 1.937381 0.0775233
May-Jan 1.18783826 0.19564005 2.180036 0.0059483
June-Jan 1.83016850 0.80466760 2.855669 0.0000011
July-Jan 2.63869619 1.60060463 3.676788 0.0000000
Aug-Jan 2.73233983 1.65078906 3.813891 0.0000000
Sept-Jan 3.94134461 2.80514044 5.077549 0.0000000
Oct-Jan 4.14947619 2.94215654 5.356796 0.0000000
Nov-Jan 3.82760119 2.62028154 5.034921 0.0000000
Dec-Jan 4.49417619 3.25805781 5.730295 0.0000000
Apr-Feb 0.76805538 -0.27794727 1.814058 0.3806322
May-Feb 1.01071055 -0.03529210 2.056713 0.0685411
June-Feb 1.65304079 0.57539690 2.730685 0.0000608
July-Feb 2.46156848 1.37193628 3.551201 0.0000000
Aug-Feb 2.55521212 1.42409925 3.686325 0.0000000
Sept-Feb 3.76421691 2.58073721 4.947697 0.0000000
Oct-Feb 3.97234848 2.72043595 5.224261 0.0000000
Nov-Feb 3.65047348 2.39856095 4.902386 0.0000000
Dec-Feb 4.31704848 3.03734036 5.596757 0.0000000
May-Apr 0.24265517 -0.83656215 1.321872 0.9997048
June-Apr 0.88498541 -0.22492668 1.994897 0.2597257
July-Apr 1.69351310 0.57195756 2.815069 0.0000871
Aug-Apr 1.78715674 0.62525967 2.949054 0.0000570
Sept-Apr 2.99616152 1.78322596 4.209097 0.0000000
Oct-Apr 3.20429310 1.92449879 4.484087 0.0000000
Nov-Apr 2.88241810 1.60262379 4.162212 0.0000000
Dec-Apr 3.54899310 2.24199602 4.855990 0.0000000
June-May 0.64233024 -0.46758185 1.752242 0.7302033
July-May 1.45085793 0.32930239 2.572413 0.0017902
Aug-May 1.54450157 0.38260449 2.706399 0.0011208
Sept-May 2.75350635 1.54057079 3.966442 0.0000000
Oct-May 2.96163793 1.68184362 4.241432 0.0000000
Nov-May 2.63976293 1.35996862 3.919557 0.0000000
Dec-May 3.30633793 1.99934085 4.613335 0.0000000
July-June 0.80852769 -0.34259421 1.959650 0.4501109
Aug-June 0.90217133 -0.28829061 2.092633 0.3325747
Sept-June 2.11117611 0.87085056 3.351502 0.0000042
Oct-June 2.31930769 1.01352506 3.625090 0.0000012
Nov-June 1.99743269 0.69165006 3.303215 0.0000648
Dec-June 2.66400769 1.33155274 3.996463 0.0000000
Aug-July 0.09364364 -1.10768130 1.294969 1.0000000
Sept-July 1.30264842 0.05189286 2.553404 0.0332328
Oct-July 1.51078000 0.19508616 2.826474 0.0105261
Nov-July 1.18890500 -0.12678884 2.504599 0.1180353
Dec-July 1.85548000 0.51331079 3.197649 0.0005453
Sept-Aug 1.20900478 -0.07804900 2.496059 0.0871591
Oct-Aug 1.41713636 0.06688888 2.767384 0.0306224
Nov-Aug 1.09526136 -0.25498612 2.445509 0.2367936
Dec-Aug 1.76183636 0.38577817 3.137895 0.0021237
Oct-Sept 0.20813158 -1.18627730 1.602540 0.9999934
Nov-Sept -0.11374342 -1.50815230 1.280665 1.0000000
Dec-Sept 0.55283158 -0.86658521 1.972248 0.9737777
Nov-Oct -0.32187500 -1.77481579 1.131066 0.9997416
Dec-Oct 0.34470000 -1.13225797 1.821658 0.9995885
Dec-Nov 0.66657500 -0.81038297 2.143533 0.9296701
ANOVA Length Structure B
AranaBLAnova <- aov(length ~ month, data = arana_B)
anova(AranaBLAnova)
Analysis of Variance Table
Response: length
Df Sum Sq Mean Sq F value Pr(>F)
month 10 1116.23 111.623 56.514 < 2.2e-16 ***
Residuals 321 634.02 1.975
---
Signif. codes: 0 *** 0.001 ** 0.01 * 0.05 . 0.1 1
AranaBLAnovaSummary <- summary.lm(AranaBLAnova)
AranaBLAnovaSummary$r.squared
[1] 0.6377569
plot(AranaBLAnova)




TukeyHSD(AranaBLAnova)
Tukey multiple comparisons of means
95% family-wise confidence level
Fit: aov(formula = length ~ month, data = arana_B)
$`month`
diff lwr upr p adj
Feb-Jan 0.18207018 -0.83806086 1.2022012 0.9999653
Apr-Jan 1.06367117 0.03632821 2.0910141 0.0352882
May-Jan 1.39714762 0.35431620 2.4399790 0.0009454
June-Jan 2.55507471 1.45497274 3.6551767 0.0000000
July-Jan 3.40917816 2.30907619 4.5092801 0.0000000
Aug-Jan 3.44835333 2.29736701 4.5993397 0.0000000
Sept-Jan 4.93403333 3.78304701 6.0850197 0.0000000
Oct-Jan 4.24211333 3.09112701 5.3930997 0.0000000
Nov-Jan 4.27337500 3.10745403 5.4392960 0.0000000
Dec-Jan 5.34344203 4.16150177 6.5253823 0.0000000
Apr-Feb 0.88160100 -0.17076155 1.9339635 0.1973730
May-Feb 1.21507744 0.14758940 2.2825655 0.0116927
June-Feb 2.37300454 1.24950211 3.4965070 0.0000000
July-Feb 3.22710799 2.10360556 4.3506104 0.0000000
Aug-Feb 3.26628316 2.09291072 4.4396556 0.0000000
Sept-Feb 4.75196316 3.57859072 5.9253356 0.0000000
Oct-Feb 4.06004316 2.88667072 5.2334156 0.0000000
Nov-Feb 4.09130482 2.90327912 5.2793305 0.0000000
Dec-Feb 5.16137185 3.95762099 6.3651227 0.0000000
May-Apr 0.33347645 -0.74090568 1.4078586 0.9954439
June-Apr 1.49140354 0.36134870 2.6214584 0.0012371
July-Apr 2.34550699 1.21545215 3.4755618 0.0000000
Aug-Apr 2.38468216 1.20503429 3.5643300 0.0000000
Sept-Apr 3.87036216 2.69071429 5.0500100 0.0000000
Oct-Apr 3.17844216 1.99879429 4.3580900 0.0000000
Nov-Apr 3.20970383 2.01547969 4.4039280 0.0000000
Dec-Apr 4.27977086 3.06990211 5.4896396 0.0000000
June-May 1.15792709 0.01377337 2.3020808 0.0444896
July-May 2.01203054 0.86787682 3.1561843 0.0000015
Aug-May 2.05120571 0.85804482 3.2443666 0.0000029
Sept-May 3.53688571 2.34372482 4.7300466 0.0000000
Oct-May 2.84496571 1.65180482 4.0381266 0.0000000
Nov-May 2.87622738 1.66865332 4.0838014 0.0000000
Dec-May 3.94629441 2.72324650 5.1693423 0.0000000
July-June 0.85410345 -0.34248116 2.0506881 0.4267591
Aug-June 0.89327862 -0.35024858 2.1368058 0.4167405
Sept-June 2.37895862 1.13543142 3.6224858 0.0000001
Oct-June 1.68703862 0.44351142 2.9305658 0.0007511
Nov-June 1.71830029 0.46093714 2.9756634 0.0006551
Dec-June 2.78836732 1.51613575 4.0605989 0.0000000
Aug-July 0.03917517 -1.20435203 1.2827024 1.0000000
Sept-July 1.52485517 0.28132797 2.7683824 0.0041167
Oct-July 0.83293517 -0.41059203 2.0764624 0.5267952
Nov-July 0.86419684 -0.39316631 2.1215600 0.4864173
Dec-July 1.93426387 0.66203230 3.2064954 0.0000701
Sept-Aug 1.48568000 0.19691894 2.7744411 0.0099002
Oct-Aug 0.79376000 -0.49500106 2.0825211 0.6513260
Nov-Aug 0.82502167 -0.47709479 2.1271381 0.6109014
Dec-Aug 1.89508870 0.57860917 3.2115682 0.0002333
Oct-Sept -0.69192000 -1.98068106 0.5968411 0.8132642
Nov-Sept -0.66065833 -1.96277479 0.6414581 0.8615894
Dec-Sept 0.40940870 -0.90707083 1.7258882 0.9953724
Nov-Oct 0.03126167 -1.27085479 1.3333781 1.0000000
Dec-Oct 1.10132870 -0.21515083 2.4178082 0.1990411
Dec-Nov 1.07006703 -0.25948948 2.3996235 0.2483002
ANOVA Length Structure C
AranaCLAnova <- aov(length ~ month, data = arana_C)
anova(AranaCLAnova)
Analysis of Variance Table
Response: length
Df Sum Sq Mean Sq F value Pr(>F)
month 10 465.57 46.557 9.5155 5.019e-14 ***
Residuals 349 1707.59 4.893
---
Signif. codes: 0 *** 0.001 ** 0.01 * 0.05 . 0.1 1
AranaCLAnovaSummary <- summary.lm(AranaCLAnova)
AranaCLAnovaSummary$r.squared
[1] 0.2142374
plot(AranaCLAnova)




TukeyHSD(AranaCLAnova)
Tukey multiple comparisons of means
95% family-wise confidence level
Fit: aov(formula = length ~ month, data = arana_C)
$`month`
diff lwr upr p adj
Feb-Jan 0.3747946 -1.23913967 1.9887289 0.9996195
Apr-Jan 0.8567683 -0.78026764 2.4938042 0.8369907
May-Jan 1.1515016 -0.57049639 2.8734996 0.5301705
June-Jan 1.5483859 -0.11408963 3.2108615 0.0937399
July-Jan 2.1570259 0.48083686 3.8332149 0.0018924
Aug-Jan 2.2953651 0.58948105 4.0012491 0.0008644
Sept-Jan 2.8021393 1.09625524 4.5080233 0.0000099
Oct-Jan 3.5291016 1.80710361 5.2510996 0.0000000
Nov-Jan 2.5730540 0.81590080 4.3302072 0.0001595
Dec-Jan 3.2661969 1.50904366 5.0233501 0.0000002
Apr-Feb 0.4819737 -1.18500036 2.1489477 0.9974755
May-Feb 0.7767070 -0.97377663 2.5271907 0.9380571
June-Feb 1.1735913 -0.51837228 2.8655549 0.4727288
July-Feb 1.7822313 0.07679130 3.4876712 0.0319653
Aug-Feb 1.9205705 0.18593617 3.6552048 0.0165111
Sept-Feb 2.4273447 0.69271036 4.1619789 0.0004089
Oct-Feb 3.1543070 1.40382337 4.9047907 0.0000007
Nov-Feb 2.1982594 0.41318147 3.9833373 0.0038354
Dec-Feb 2.8914023 1.10632432 4.6764802 0.0000143
May-Apr 0.2947333 -1.47707246 2.0665391 0.9999823
June-Apr 0.6916176 -1.02239625 2.4056315 0.9671461
July-Apr 1.3002576 -0.42706064 3.0275758 0.3448912
Aug-Apr 1.4385968 -0.31755211 3.1947457 0.2254992
Sept-Apr 1.9453710 0.18922209 3.7015198 0.0164099
Oct-Apr 2.6723333 0.90052754 4.4441391 0.0000825
Nov-Apr 1.7162857 -0.08970598 3.5222774 0.0793267
Dec-Apr 2.4094286 0.60343688 4.2154203 0.0010096
June-May 0.3968843 -1.39845247 2.1922211 0.9997551
July-May 1.0055242 -0.80251855 2.8135670 0.7783783
Aug-May 1.1438634 -0.69174257 2.9794694 0.6356837
Sept-May 1.6506376 -0.18496837 3.4862436 0.1229297
Oct-May 2.3776000 0.52700920 4.2281908 0.0019445
Nov-May 1.4215524 -0.46179478 3.3048995 0.3407938
Dec-May 2.1146952 0.23134808 3.9980424 0.0138763
July-June 0.6086399 -1.14280707 2.3600869 0.9889837
Aug-June 0.7469791 -1.03290775 2.5268660 0.9570237
Sept-June 1.2537533 -0.52613355 3.0336402 0.4483588
Oct-June 1.9807157 0.18537890 3.7760525 0.0172407
Nov-June 1.0246681 -0.80441487 2.8537510 0.7704928
Dec-June 1.7178109 -0.11127201 3.5468939 0.0875777
Aug-July 0.1383392 -1.65436319 1.9310416 1.0000000
Sept-July 0.6451134 -1.14758900 2.4378158 0.9856449
Oct-July 1.3720758 -0.43596703 3.1801185 0.3326894
Nov-July 0.4160281 -1.42552799 2.2575843 0.9997025
Dec-July 1.1091710 -0.73238513 2.9507271 0.6825285
Sept-Aug 0.5067742 -1.31372369 2.3272721 0.9981635
Oct-Aug 1.2337366 -0.60186945 3.0693426 0.5222458
Nov-Aug 0.2776889 -1.59093613 2.1463140 0.9999939
Dec-Aug 0.9708318 -0.89779327 2.8394569 0.8432164
Oct-Sept 0.7269624 -1.10864364 2.5625684 0.9711717
Nov-Sept -0.2290853 -2.09771032 1.6395398 0.9999990
Dec-Sept 0.4640576 -1.40456746 2.3326827 0.9993121
Nov-Oct -0.9560476 -2.83939478 0.9272995 0.8617489
Dec-Oct -0.2629048 -2.14625192 1.6204424 0.9999967
Dec-Nov 0.6931429 -1.22240060 2.6086863 0.9850373
ANOVA Width non depending on initial sizes
AranaRanovaW <- aov(width ~ month, data = aranaR)
anova(AranaRanovaW)
Analysis of Variance Table
Response: width
Df Sum Sq Mean Sq F value Pr(>F)
month 10 1889.1 188.906 40.855 < 2.2e-16 ***
Residuals 953 4406.5 4.624
---
Signif. codes: 0 *** 0.001 ** 0.01 * 0.05 . 0.1 1
AranaRanovaWSummary <- summary.lm(AranaRanovaW)
AranaRanovaWSummary$r.squared
[1] 0.3000626
plot(AranaRanovaW)




TukeyHSD(AranaRanovaW)
Tukey multiple comparisons of means
95% family-wise confidence level
Fit: aov(formula = width ~ month, data = aranaR)
$`month`
diff lwr upr p adj
Aug-Apr 1.60201584 0.558434664 2.64559701 0.0000461
Dec-Apr 3.01583868 1.919814950 4.11186241 0.0000000
Feb-Apr -0.65486760 -1.610663722 0.30092852 0.4976747
Jan-Apr -0.97643780 -1.902190971 -0.05068464 0.0287131
July-Apr 1.62026031 0.607728771 2.63279185 0.0000159
June-Apr 1.00198458 -0.004388394 2.00835755 0.0521644
May-Apr 0.15226679 -0.839709730 1.14424331 0.9999923
Nov-Apr 2.48268137 1.396487650 3.56887510 0.0000000
Oct-Apr 2.93909583 1.866759150 4.01143251 0.0000000
Sept-Apr 2.57758353 1.522241375 3.63292568 0.0000000
Dec-Aug 1.41382284 0.253445216 2.57420047 0.0043272
Feb-Aug -2.25688344 -3.285841380 -1.22792550 0.0000000
Jan-Aug -2.57845364 -3.579566596 -1.57734069 0.0000000
July-Aug 0.01824447 -1.063618891 1.10010784 1.0000000
June-Aug -0.60003126 -1.676132918 0.47607040 0.7807105
May-Aug -1.44974905 -2.512399336 -0.38709875 0.0006116
Nov-Aug 0.88066554 -0.270431778 2.03176285 0.3245410
Oct-Aug 1.33707999 0.199049160 2.47511083 0.0073942
Sept-Aug 0.97556769 -0.146464074 2.09759946 0.1574410
Feb-Dec -3.67070628 -4.752815703 -2.58859686 0.0000000
Jan-Dec -3.99227648 -5.047943810 -2.93660916 0.0000000
July-Dec -1.39557837 -2.528113002 -0.26304374 0.0036316
June-Dec -2.01385410 -3.140886105 -0.88682210 0.0000006
May-Dec -2.86357189 -3.977767561 -1.74937622 0.0000000
Nov-Dec -0.53315731 -1.732003161 0.66568854 0.9394425
Oct-Dec -0.07674285 -1.263048263 1.10956256 1.0000000
Sept-Dec -0.43825515 -1.609221264 0.73271096 0.9816696
Jan-Feb -0.32157020 -1.230807083 0.58766668 0.9880126
July-Feb 2.27512791 1.277674707 3.27258112 0.0000000
June-Feb 1.65685218 0.665651222 2.64805314 0.0000047
May-Feb 0.80713439 -0.169446477 1.78371527 0.2167486
Nov-Feb 3.13754897 2.065397128 4.20970082 0.0000000
Oct-Feb 3.59396343 2.535852505 4.65207436 0.0000000
Sept-Feb 3.23245113 2.191566968 4.27333529 0.0000000
July-Jan 2.59669811 1.627995063 3.56540117 0.0000000
June-Jan 1.97842238 1.016158363 2.94068640 0.0000000
May-Jan 1.12870460 0.181507202 2.07590199 0.0060347
Nov-Jan 3.45911918 2.413661245 4.50457711 0.0000000
Oct-Jan 3.91553363 2.884480076 4.94658719 0.0000000
Sept-Jan 3.55402133 2.540654398 4.56738827 0.0000000
June-July -0.61827573 -1.664293532 0.42774207 0.7126570
May-July -1.46799352 -2.500167969 -0.43581907 0.0002633
Nov-July 0.86242106 -0.260603194 1.98544532 0.3189154
Oct-July 1.31883552 0.209208270 2.42846277 0.0062669
Sept-July 0.95732322 -0.135889359 2.05053580 0.1499378
May-June -0.84971779 -1.875851567 0.17641599 0.2143199
Nov-June 1.48069679 0.363221998 2.59817159 0.0010599
Oct-June 1.93711125 0.833100803 3.04112170 0.0000011
Sept-June 1.57559895 0.488087950 2.66310995 0.0001768
Nov-May 2.33041458 1.225887180 3.43494198 0.0000000
Oct-May 2.78682904 1.695925774 3.87773230 0.0000000
Sept-May 2.42531674 1.351114225 3.49951925 0.0000000
Oct-Nov 0.45641446 -0.720815051 1.63364397 0.9762974
Sept-Nov 0.09490216 -1.066868226 1.25667254 1.0000000
Sept-Oct -0.36151230 -1.510337602 0.78731300 0.9952167
ANOVA Width Structure A
AranaAWAnova <- aov(width ~ month, data = arana_A)
anova(AranaAWAnova)
Analysis of Variance Table
Response: width
Df Sum Sq Mean Sq F value Pr(>F)
month 10 390.98 39.098 28.641 < 2.2e-16 ***
Residuals 261 356.29 1.365
---
Signif. codes: 0 *** 0.001 ** 0.01 * 0.05 . 0.1 1
AranaAWAnovaSummary <- summary.lm(AranaAWAnova)
AranaAWAnovaSummary$r.squared
[1] 0.5232074
plot(AranaAWAnova)




TukeyHSD(AranaAWAnova)
Tukey multiple comparisons of means
95% family-wise confidence level
Fit: aov(formula = width ~ month, data = arana_A)
$`month`
diff lwr upr p adj
Feb-Jan 0.04465152 -0.83799390 0.9272969 1.0000000
Apr-Jan 0.57195977 -0.34414001 1.4880596 0.6298444
May-Jan 0.83678736 -0.07931243 1.7528871 0.1088221
June-Jan 1.39839744 0.45154917 2.3452457 0.0001421
July-Jan 2.03896667 1.08049340 2.9974399 0.0000000
Aug-Jan 2.18234848 1.18374920 3.1809478 0.0000000
Sept-Jan 2.79648246 1.74742150 3.8455434 0.0000000
Oct-Jan 3.23279167 2.11806957 4.3475138 0.0000000
Nov-Jan 3.09810417 1.98338207 4.2128263 0.0000000
Dec-Jan 3.37243333 2.23112128 4.5137454 0.0000000
Apr-Feb 0.52730825 -0.43846934 1.4930859 0.7948653
May-Feb 0.79213584 -0.17364176 1.7579134 0.2225042
June-Feb 1.35374592 0.35875387 2.3487380 0.0007360
July-Feb 1.99431515 0.98825425 3.0003761 0.0000000
Aug-Feb 2.13769697 1.09333684 3.1820571 0.0000000
Sept-Feb 2.75183094 1.65912035 3.8445415 0.0000000
Oct-Feb 3.18814015 2.03224530 4.3440350 0.0000000
Nov-Feb 3.05345265 1.89755780 4.2093475 0.0000000
Dec-Feb 3.32778182 2.14622321 4.5093404 0.0000000
May-Apr 0.26482759 -0.73161722 1.2612724 0.9987215
June-Apr 0.82643767 -0.19834772 1.8512231 0.2444574
July-Apr 1.46700690 0.43147107 2.5025427 0.0003382
Aug-Apr 1.61038871 0.53760543 2.6831720 0.0000994
Sept-Apr 2.22452269 1.10461540 3.3444300 0.0000000
Oct-Apr 2.66083190 1.47919371 3.8424701 0.0000000
Nov-Apr 2.52614440 1.34450621 3.7077826 0.0000000
Dec-Apr 2.80047356 1.59371897 4.0072282 0.0000000
June-May 0.56161008 -0.46317530 1.5863955 0.7910793
July-May 1.20217931 0.16664349 2.2377151 0.0091047
Aug-May 1.34556113 0.27277784 2.4183444 0.0029562
Sept-May 1.95969510 0.83978781 3.0796024 0.0000019
Oct-May 2.39600431 1.21436612 3.5776425 0.0000000
Nov-May 2.26131681 1.07967862 3.4429550 0.0000001
Dec-May 2.53564598 1.32889138 3.7424006 0.0000000
July-June 0.64056923 -0.42226531 1.7034038 0.6785822
Aug-June 0.78395105 -0.31520627 1.8831084 0.4259989
Sept-June 1.39808502 0.25288846 2.5432816 0.0044714
Oct-June 1.83439423 0.62876094 3.0400275 0.0000733
Nov-June 1.69970673 0.49407344 2.9053400 0.0003725
Dec-June 1.97403590 0.74377598 3.2042958 0.0000204
Aug-July 0.14338182 -0.96580535 1.2525690 0.9999983
Sept-July 0.75751579 -0.39731083 1.9123424 0.5567459
Oct-July 1.19382500 -0.02095934 2.4086093 0.0588642
Nov-July 1.05913750 -0.15564684 2.2739218 0.1521496
Dec-July 1.33346667 0.09423754 2.5726958 0.0232568
Sept-Aug 0.61413397 -0.57420691 1.8024749 0.8453500
Oct-Aug 1.05044318 -0.19624464 2.2971310 0.1896930
Nov-Aug 0.91575568 -0.33093214 2.1624435 0.3800552
Dec-Aug 1.19008485 -0.08043409 2.4606038 0.0892107
Oct-Sept 0.43630921 -0.85115297 1.7237714 0.9906729
Nov-Sept 0.30162171 -0.98584047 1.5890839 0.9995743
Dec-Sept 0.57595088 -0.73460119 1.8865029 0.9405909
Nov-Oct -0.13468750 -1.47619238 1.2068174 0.9999999
Dec-Oct 0.13964167 -1.22403835 1.5033217 0.9999998
Dec-Nov 0.27432917 -1.08935085 1.6380092 0.9998922
ANOVA Width Structure B
AranaBWAnova <- aov(width ~ month, data = arana_B)
anova(AranaBWAnova)
Analysis of Variance Table
Response: width
Df Sum Sq Mean Sq F value Pr(>F)
month 10 839.02 83.902 39.564 < 2.2e-16 ***
Residuals 321 680.74 2.121
---
Signif. codes: 0 *** 0.001 ** 0.01 * 0.05 . 0.1 1
AranaBWAnovaSummary <- summary.lm(AranaBWAnova)
AranaBWAnovaSummary$r.squared
[1] 0.5520746
plot(AranaBWAnova)




TukeyHSD(AranaBWAnova)
Tukey multiple comparisons of means
95% family-wise confidence level
Fit: aov(formula = width ~ month, data = arana_B)
$`month`
diff lwr upr p adj
Feb-Jan 0.3258246 -0.73122861 1.3828777 0.9956935
Apr-Jan 0.9737883 -0.09073783 2.0383144 0.1079307
May-Jan 1.1358238 0.05524865 2.2163990 0.0300506
June-Jan 2.0416149 0.90169641 3.1815335 0.0000008
July-Jan 2.9482011 1.80828262 4.0881197 0.0000000
Aug-Jan 2.6836867 1.49104210 3.8763312 0.0000000
Sept-Jan 4.2780067 3.08536210 5.4706512 0.0000000
Oct-Jan 4.0514867 2.85884210 5.2441312 0.0000000
Nov-Jan 3.7780417 2.56992191 4.9861614 0.0000000
Dec-Jan 4.6024710 3.37775218 5.8271899 0.0000000
Apr-Feb 0.6479637 -0.44248752 1.7384150 0.6994252
May-Feb 0.8099992 -0.29612495 1.9161234 0.3866686
June-Feb 1.7157904 0.55162445 2.8799563 0.0001411
July-Feb 2.6223766 1.45821065 3.7865425 0.0000000
Aug-Feb 2.3578621 1.14202119 3.5737030 0.0000001
Sept-Feb 3.9521821 2.73634119 5.1680230 0.0000000
Oct-Feb 3.7256621 2.50982119 4.9415030 0.0000000
Nov-Feb 3.4522171 2.22119257 4.6832416 0.0000000
Dec-Feb 4.2766465 3.02932761 5.5239653 0.0000000
May-Apr 0.1620355 -0.95123228 1.2753033 0.9999950
June-Apr 1.0678267 -0.10312884 2.2387822 0.1105306
July-Apr 1.9744129 0.80345736 3.1453684 0.0000050
Aug-Apr 1.7098984 0.48755490 2.9322419 0.0004174
Sept-Apr 3.3042184 2.08187490 4.5265619 0.0000000
Oct-Apr 3.0776984 1.85535490 4.3000419 0.0000000
Nov-Apr 2.8042534 1.56680606 4.0417007 0.0000000
Dec-Apr 3.6286827 2.37502458 4.8823409 0.0000000
June-May 0.9057911 -0.27977354 2.0913558 0.3220544
July-May 1.8123773 0.62681267 2.9979420 0.0000617
Aug-May 1.5478629 0.31151727 2.7842084 0.0029846
Sept-May 3.1421829 1.90583727 4.3785284 0.0000000
Oct-May 2.9156629 1.67931727 4.1520084 0.0000000
Nov-May 2.6422179 1.39093745 3.8934983 0.0000000
Dec-May 3.4666472 2.19933289 4.7339615 0.0000000
July-June 0.9065862 -0.33330700 2.1464794 0.3890183
Aug-June 0.6420717 -0.64646310 1.9306065 0.8748217
Sept-June 2.2363917 0.94785690 3.5249265 0.0000022
Oct-June 2.0098717 0.72133690 3.2984065 0.0000382
Nov-June 1.7364267 0.43355518 3.0392983 0.0010391
Dec-June 2.5608561 1.24257797 3.8791342 0.0000001
Aug-July -0.2645145 -1.55304930 1.0240203 0.9998737
Sept-July 1.3298055 0.04127070 2.6183403 0.0364918
Oct-July 1.1032855 -0.18524930 2.3918203 0.1721694
Nov-July 0.8298405 -0.47303102 2.1327121 0.6032091
Dec-July 1.6542699 0.33599176 2.9725480 0.0028769
Sept-Aug 1.5943200 0.25891414 2.9297259 0.0061048
Oct-Aug 1.3678000 0.03239414 2.7032059 0.0394387
Nov-Aug 1.0943550 -0.25488963 2.4435996 0.2380156
Dec-Aug 1.9187843 0.55465680 3.2829119 0.0003742
Oct-Sept -0.2265200 -1.56192586 1.1088859 0.9999785
Nov-Sept -0.4999650 -1.84920963 0.8492796 0.9820352
Dec-Sept 0.3244643 -1.03966320 1.6885919 0.9995252
Nov-Oct -0.2734450 -1.62268963 1.0757996 0.9998877
Dec-Oct 0.5509843 -0.81314320 1.9151119 0.9667248
Dec-Nov 0.8244293 -0.55324849 2.2021072 0.6902662
ANOVA Width Structure C
AranaCWAnova <- aov(width ~ month, data = arana_C)
anova(AranaCWAnova)
Analysis of Variance Table
Response: width
Df Sum Sq Mean Sq F value Pr(>F)
month 10 433.51 43.351 9.6923 2.653e-14 ***
Residuals 349 1560.96 4.473
---
Signif. codes: 0 *** 0.001 ** 0.01 * 0.05 . 0.1 1
AranaCWAnovaSummary <- summary.lm(AranaCWAnova)
AranaCWAnovaSummary$r.squared
[1] 0.2173543
plot(AranaCWAnova)




TukeyHSD(AranaCWAnova)
Tukey multiple comparisons of means
95% family-wise confidence level
Fit: aov(formula = width ~ month, data = arana_C)
$`month`
diff lwr upr p adj
Feb-Jan 0.31568806 -1.22739779 1.858774 0.9998787
Apr-Jan 0.97011789 -0.59505550 2.535291 0.6432834
May-Jan 1.33238455 -0.31402125 2.978790 0.2413718
June-Jan 1.94818651 0.35869024 3.537683 0.0041219
July-Jan 2.28283001 0.68022229 3.885438 0.0002856
Aug-Jan 2.26453186 0.63353269 3.895531 0.0004771
Sept-Jan 2.77601574 1.14501656 4.407015 0.0000037
Oct-Jan 3.38945122 1.74304542 5.035857 0.0000000
Nov-Jan 2.67655836 0.99654061 4.356576 0.0000220
Dec-Jan 3.04830836 1.36829061 4.728326 0.0000005
Apr-Feb 0.65442982 -0.93936745 2.248227 0.9629454
May-Feb 1.01669649 -0.65694448 2.690337 0.6710560
June-Feb 1.63249845 0.01480860 3.250188 0.0457530
July-Feb 1.96714195 0.33656734 3.597717 0.0052214
Aug-Feb 1.94884380 0.29035643 3.607331 0.0076046
Sept-Feb 2.46032767 0.80184030 4.118815 0.0001199
Oct-Feb 3.07376316 1.40012218 4.747404 0.0000004
Nov-Feb 2.36087030 0.65415366 4.067587 0.0005129
Dec-Feb 2.73262030 1.02590366 4.439337 0.0000194
May-Apr 0.36226667 -1.33176046 2.056294 0.9998185
June-Apr 0.97806863 -0.66070354 2.616841 0.6945269
July-Apr 1.31271212 -0.33878034 2.964205 0.2656983
Aug-Apr 1.29441398 -0.38464354 2.973471 0.3093238
Sept-Apr 1.80589785 0.12684033 3.484955 0.0232531
Oct-Apr 2.41933333 0.72530621 4.113360 0.0002707
Nov-Apr 1.70644048 -0.02027185 3.433153 0.0559354
Dec-Apr 2.07819048 0.35147815 3.804903 0.0054060
June-May 0.61580196 -1.10072319 2.332327 0.9859730
July-May 0.95044545 -0.77822794 2.679119 0.7903882
Aug-May 0.93214731 -0.82287933 2.687174 0.8239371
Sept-May 1.44363118 -0.31139546 3.198658 0.2202276
Oct-May 2.05706667 0.28771304 3.826420 0.0088036
Nov-May 1.34417381 -0.45649824 3.144846 0.3576487
Dec-May 1.71592381 -0.08474824 3.516596 0.0774950
July-June 0.33464349 -1.33991855 2.009206 0.9999022
Aug-June 0.31634535 -1.38540811 2.018099 0.9999498
Sept-June 0.82782922 -0.87392424 2.529583 0.8913634
Oct-June 1.44126471 -0.27526044 3.157790 0.1949635
Nov-June 0.72837185 -1.02041807 2.477162 0.9591721
Dec-June 1.10012185 -0.64866807 2.848912 0.6221245
Aug-July -0.01829814 -1.73230454 1.695708 1.0000000
Sept-July 0.49318573 -1.22082067 2.207192 0.9975751
Oct-July 1.10662121 -0.62205218 2.835295 0.5965559
Nov-July 0.39372835 -1.36698720 2.154444 0.9997285
Dec-July 0.76547835 -0.99523720 2.526194 0.9457030
Sept-Aug 0.51148387 -1.22909786 2.252066 0.9971115
Oct-Aug 1.12491935 -0.63010728 2.879946 0.5946703
Nov-Aug 0.41202650 -1.37456973 2.198623 0.9996422
Dec-Aug 0.78377650 -1.00281973 2.570373 0.9424228
Oct-Sept 0.61343548 -1.14159115 2.368462 0.9884837
Nov-Sept -0.09945737 -1.88605360 1.687139 1.0000000
Dec-Sept 0.27229263 -1.51430360 2.058889 0.9999923
Nov-Oct -0.71289286 -2.51356491 1.087779 0.9712384
Dec-Oct -0.34114286 -2.14181491 1.459529 0.9999402
Dec-Nov 0.37175000 -1.45970500 2.203205 0.9998871
Growth plots
Change month order
arana_A$month <- factor(arana_A$month, levels = c("Jan", "Feb", "Apr", "May", "June", "July", "Aug","Sept", "Oct", "Nov", "Dec"))
arana_B$month <- factor(arana_B$month, levels = c("Jan", "Feb", "Apr", "May", "June", "July", "Aug","Sept", "Oct", "Nov", "Dec"))
arana_C$month <- factor(arana_C$month, levels = c("Jan", "Feb", "Apr", "May", "June", "July", "Aug","Sept", "Oct", "Nov", "Dec"))
Boxplots Structure A
ggA1 <-ggplot(arana_A, aes(x = (month), y = length))+
geom_boxplot(notch = T)+
labs(x= "Month",
y= "Length (cm)")+
scale_x_discrete(labels = c("Jan"="J", "Feb"="F", "Apr"="A", "May"="M", "June"="J", "July"="J","Aug"="A","Sept"="S","Oct"="O","Nov"="N","Dec"="D"))+
theme_classic()
ggA2 <-ggplot(arana_A, aes(x = (month), y = width))+
geom_boxplot(notch = T)+
labs(x= "Month",
y= "Width (cm)")+
scale_x_discrete(labels = c("Jan"="J", "Feb"="F", "Apr"="A", "May"="M", "June"="J", "July"="J","Aug"="A","Sept"="S","Oct"="O","Nov"="N","Dec"="D"))+
theme_classic()
ggA3 <- ggplot(arana_A, aes(x = (month), y = area))+
geom_boxplot(notch = T)+
labs(x= "Month",
y= "Area (cm²)")+
scale_x_discrete(labels = c("Jan"="J", "Feb"="F", "Apr"="A", "May"="M", "June"="J", "July"="J","Aug"="A","Sept"="S","Oct"="O","Nov"="N","Dec"="D"))+
theme_classic()
Boxplots Structure B
ggB1 <-ggplot(arana_B, aes(x = (month), y = length))+
geom_boxplot(notch = T)+
labs(x= "Month",
y= "Length (cm)")+
scale_x_discrete(labels = c("Jan"="J", "Feb"="F", "Apr"="A", "May"="M", "June"="J", "July"="J","Aug"="A","Sept"="S","Oct"="O","Nov"="N","Dec"="D"))+
theme_classic()
ggB2 <-ggplot(arana_B, aes(x = (month), y = width))+
geom_boxplot(notch = T)+
labs(x= "Month",
y= "Width (cm)")+
scale_x_discrete(labels = c("Jan"="J", "Feb"="F", "Apr"="A", "May"="M", "June"="J", "July"="J","Aug"="A","Sept"="S","Oct"="O","Nov"="N","Dec"="D"))+
theme_classic()
ggB3 <- ggplot(arana_B, aes(x = (month), y = area))+
geom_boxplot(notch = T)+
labs(x= "Month",
y= "Area (cm²)")+
scale_x_discrete(labels = c("Jan"="J", "Feb"="F", "Apr"="A", "May"="M", "June"="J", "July"="J","Aug"="A","Sept"="S","Oct"="O","Nov"="N","Dec"="D"))+
theme_classic()
Boxplots Structure C
ggC1 <- ggplot(arana_C, aes(x = (month), y = length))+
geom_boxplot(notch = T)+
labs(x= "Month",
y= "Length (cm)")+
scale_x_discrete(labels = c("Jan"="J", "Feb"="F", "Apr"="A", "May"="M", "June"="J", "July"="J","Aug"="A","Sept"="S","Oct"="O","Nov"="N","Dec"="D"))+
theme_classic()
ggC2 <-ggplot(arana_C, aes(x = (month), y = width))+
geom_boxplot(notch = T)+
labs(x= "Month",
y= "Width (cm)")+
scale_x_discrete(labels = c("Jan"="J", "Feb"="F", "Apr"="A", "May"="M", "June"="J", "July"="J","Aug"="A","Sept"="S","Oct"="O","Nov"="N","Dec"="D"))+
theme_classic()
ggC3 <- ggplot(arana_C, aes(x = (month), y = area))+
geom_boxplot(notch = T)+
labs(x= "Month",
y= "Area (cm²)")+
scale_x_discrete(labels = c("Jan"="J", "Feb"="F", "Apr"="A", "May"="M", "June"="J", "July"="J","Aug"="A","Sept"="S","Oct"="O","Nov"="N","Dec"="D"))+
theme_classic()
Combined graphs
plot_grid(ggA1, ggB1, ggC1, labels=c("A","B","C"), ncol = 2, nrow =2)

plot_grid(ggA2, ggB2, ggC2,labels=c("A","B","C"), ncol = 2, nrow =2)

plot_grid(ggA3, ggB3, ggC3,labels=c("A","B","C"), ncol = 2, nrow =2)

LS0tDQp0aXRsZTogJypQb2NpbGxvcG9yYSogc3BwLiBncm93dGggYW5hbHlzaXMgb24gcmVzdG9yYXRpb24gc3RydWN0dXJlcyBpbiBhbiB1cHdlbGxpbmcNCiAgYXJlYSBpbiB0aGUgRWFzdGVybiBUcm9waWNhbCBQYWNpZmljJw0Kb3V0cHV0Og0KICBodG1sX25vdGVib29rOiBkZWZhdWx0DQogIHBkZl9kb2N1bWVudDogZGVmYXVsdA0KLS0tDQojI1BhY2thZ2VzDQpgYGB7ciwgZWNobz1UUlVFLCB3YXJuaW5nPUZBTFNFfQ0KbGlicmFyeShzdGF0cykNCmxpYnJhcnkodGlkeXIpDQpsaWJyYXJ5KGRwbHlyKQ0KbGlicmFyeShnZ3Bsb3QyKQ0KbGlicmFyeShyZWFkeGwpDQpsaWJyYXJ5KGZvcmNhdHMpDQpsaWJyYXJ5KGNvd3Bsb3QpDQpsaWJyYXJ5KGRldnRvb2xzKQ0KbGlicmFyeShSQ29sb3JCcmV3ZXIpDQpgYGANCg0KIyNNb3J0YWxpdHkNCiMjI1BlYXJzb24ncyBDaGktc3F1YXJlZCB0ZXN0DQoNCiMjIyNUZXN0IGphbnVhcnkgdG8gYXByaWwNCmBgYHtyLCBlY2hvPVRSVUUsIHdhcm5pbmc9RkFMU0V9DQoNCm1vcnRhbGl0eV9qYW5fYXByIDwtIG1hdHJpeChjKDMwLCA3LCAzNywgMywgMzYsIDMpLCBieXJvdyA9IFQsIG5yb3cgPSAzKQ0Kcm93bmFtZXMobW9ydGFsaXR5X2phbl9hcHIpPC0gYygiQSIsICJCIiwgIkMiKQ0KY29sbmFtZXMobW9ydGFsaXR5X2phbl9hcHIpPC0gYygiYWxpdmUiLCAiZGVhZCIpDQptb3J0YWxpdHlfamFuX2Fwcg0KbW9kZWwxPC0gY2hpc3EudGVzdChtb3J0YWxpdHlfamFuX2FwcikNCm1vZGVsMQ0KbW9kZWwxJGV4cGVjdGVkDQoNCmBgYA0KDQojIyMjVGVzdCBtYXkgdG8gZGVjZW1iZXINCmBgYHtyLCBlY2hvPVRSVUUsIHdhcm5pbmc9RkFMU0V9DQoNCm1vcnRhbGl0eV9tYXlfZGVjIDwtIG1hdHJpeChjKDE1LCA1LCAyMywgNSwgMjgsIDUpLCBieXJvdyA9IFQsIG5yb3cgPSAzKQ0Kcm93bmFtZXMobW9ydGFsaXR5X21heV9kZWMpPC0gYygiQSIsICJCIiwgIkMiKQ0KY29sbmFtZXMobW9ydGFsaXR5X21heV9kZWMpPC0gYygiYWxpdmUiLCAiZGVhZCIpDQptb3J0YWxpdHlfbWF5X2RlYw0KbW9kZWwyPC0gY2hpc3EudGVzdChtb3J0YWxpdHlfbWF5X2RlYykNCm1vZGVsMg0KbW9kZWwyJGV4cGVjdGVkDQpgYGANCg0KDQojI0NvcmFsIGdyb3d0aA0KDQojIyMjSW1wb3J0IGRhdGEgc2V0DQpgYGB7ciwgZWNobz1UUlVFLCB3YXJuaW5nPUZBTFNFfQ0KYXJhbmFSIDwtIHJlYWRfZXhjZWwoImFyYW5hUi54bHN4IiwgY29sX3R5cGVzID0gYygidGV4dCIsICJudW1lcmljIiwgInRleHQiLCAibnVtZXJpYyIsICJudW1lcmljIiwgIm51bWVyaWMiKSwgbmEgPSAiI04vQSIpDQpgYGANCg0KDQojIyMjI0ZpbHRlciBzdHJ1Y3R1cmVzIEEsIEIgJiBDDQoNCmBgYHtyLCBlY2hvPVRSVUUsIHdhcm5pbmc9RkFMU0V9DQphcmFuYV9BIDwtIGFyYW5hUiAlPiUNCiAgZmlsdGVyKHN0cnVjdHVyZSA9PSAiQSIpDQoNCmFyYW5hX0IgPC0gYXJhbmFSICU+JQ0KICBmaWx0ZXIoc3RydWN0dXJlID09ICJCIikNCg0KYXJhbmFfQyA8LSBhcmFuYVIgJT4lDQogIGZpbHRlcihzdHJ1Y3R1cmUgPT0gIkMiKQ0KYGBgDQoNCiMjI0FOT1ZBIEFyZWEgbm9uIGRlcGVuZGluZyBvbiBpbml0aWFsIHNpemVzDQpgYGB7ciB3YXJuaW5nPUZBTFNFfQ0KQXJhbmFSYW5vdmFBIDwtIGFvdihhcmVhIH4gbW9udGgsIGRhdGEgPSBhcmFuYVIpDQphbm92YShBcmFuYVJhbm92YUEpDQpgYGANCmBgYHtyfQ0KQXJhbmFSQW5vdmFBU3VtbWFyeSA8LSBzdW1tYXJ5LmxtKEFyYW5hUmFub3ZhQSkNCkFyYW5hUkFub3ZhQVN1bW1hcnkkci5zcXVhcmVkDQpgYGANCmBgYHtyfQ0KcGxvdChBcmFuYVJhbm92YUEpDQpgYGANCg0KDQojIyNBTk9WQSBBcmVhIFN0cnVjdHVyZSBBIA0KYGBge3IgbWVzc2FnZT1UUlVFLCB3YXJuaW5nPUZBTFNFfQ0KQXJhbmFBQW5vdmEgPC0gYW92KGFyZWEgfiBtb250aCwgZGF0YSA9IGFyYW5hX0EpDQphbm92YShBcmFuYUFBbm92YSkNCmBgYA0KYGBge3Igd2FybmluZz1GQUxTRX0NCkFyYW5hQUFub3ZhU3VtbWFyeSA8LSBzdW1tYXJ5LmxtKEFyYW5hQUFub3ZhKQ0KQXJhbmFBQW5vdmFTdW1tYXJ5JHIuc3F1YXJlZA0KYGBgDQpgYGB7ciB3YXJuaW5nPUZBTFNFfQ0KcGxvdChBcmFuYUFBbm92YSkNCmBgYA0KYGBge3Igd2FybmluZz1GQUxTRX0NClR1a2V5SFNEKEFyYW5hQUFub3ZhKQ0KYGBgDQoNCg0KIyMjQW5vdmEgQXJlYSBTdHJ1Y3R1cmUgQiANCmBgYHtyIHdhcm5pbmc9RkFMU0V9DQpBcmFuYUJBbm92YSA8LSBhb3YoYXJlYSB+IG1vbnRoLCBkYXRhID0gYXJhbmFfQikNCmFub3ZhKEFyYW5hQkFub3ZhKQ0KDQpgYGANCmBgYHtyIHdhcm5pbmc9RkFMU0V9DQpBcmFuYUJBbm92YVN1bW1hcnkgPC0gc3VtbWFyeS5sbShBcmFuYUJBbm92YSkNCkFyYW5hQkFub3ZhU3VtbWFyeSRyLnNxdWFyZWQNCmBgYA0KYGBge3Igd2FybmluZz1GQUxTRX0NCnBsb3QoQXJhbmFCQW5vdmEpDQpgYGANCmBgYHtyIHdhcm5pbmc9RkFMU0V9DQpUdWtleUhTRChBcmFuYUJBbm92YSkNCmBgYA0KDQoNCiMjI0Fub3ZhIEFyZWEgU3RydWN0dXJlIEMgDQpgYGB7ciB3YXJuaW5nPUZBTFNFfQ0KQXJhbmFDQW5vdmEgPC0gYW92KGFyZWEgfiBtb250aCwgZGF0YSA9IGFyYW5hX0MpDQphbm92YShBcmFuYUNBbm92YSkNCg0KYGBgDQpgYGB7ciB3YXJuaW5nPUZBTFNFfQ0KQXJhbmFDQW5vdmFTdW1tYXJ5IDwtIHN1bW1hcnkubG0oQXJhbmFDQW5vdmEpDQpBcmFuYUNBbm92YVN1bW1hcnkkci5zcXVhcmVkDQpgYGANCmBgYHtyIHdhcm5pbmc9RkFMU0V9DQpwbG90KEFyYW5hQ0Fub3ZhKQ0KYGBgDQpgYGB7ciB3YXJuaW5nPUZBTFNFfQ0KVHVrZXlIU0QoQXJhbmFDQW5vdmEpDQpgYGANCg0KIyMjQU5PVkEgTGVuZ3RoIG5vbiBkZXBlbmRpbmcgb24gaW5pdGlhbCBzaXplcw0KYGBge3J9DQpBcmFuYVJhbm92YUwgPC0gYW92KGxlbmd0aCB+IG1vbnRoLCBkYXRhID0gYXJhbmFSKQ0KYW5vdmEoQXJhbmFSYW5vdmFMKQ0KYGBgDQpgYGB7cn0NCkFyYW5hUmFub3ZhTFN1bW1hcnkgPC0gc3VtbWFyeS5sbShBcmFuYVJhbm92YUwpDQpBcmFuYVJhbm92YUxTdW1tYXJ5JHIuc3F1YXJlZA0KYGBgDQpgYGB7cn0NCnBsb3QoQXJhbmFSYW5vdmFMKQ0KYGBgDQpgYGB7cn0NClR1a2V5SFNEKEFyYW5hUmFub3ZhTCkNCmBgYA0KDQoNCiMjI0FOT1ZBIExlbmd0aCBTdHJ1Y3R1cmUgQQ0KYGBge3Igd2FybmluZz1GQUxTRX0NCkFyYW5hQUxBbm92YSA8LSBhb3YobGVuZ3RoIH4gbW9udGgsIGRhdGEgPSBhcmFuYV9BKQ0KYW5vdmEoQXJhbmFBTEFub3ZhKQ0KYGBgDQpgYGB7ciB3YXJuaW5nPUZBTFNFfQ0KQXJhbmFBTEFub3ZhU3VtbWFyeSA8LSBzdW1tYXJ5LmxtKEFyYW5hQUxBbm92YSkNCkFyYW5hQUxBbm92YVN1bW1hcnkkci5zcXVhcmVkDQpgYGANCmBgYHtyIHdhcm5pbmc9RkFMU0V9DQpwbG90KEFyYW5hQUxBbm92YSkNCmBgYA0KYGBge3Igd2FybmluZz1GQUxTRX0NClR1a2V5SFNEKEFyYW5hQUxBbm92YSkNCmBgYA0KDQoNCiMjI0FOT1ZBIExlbmd0aCBTdHJ1Y3R1cmUgQiANCmBgYHtyIHdhcm5pbmc9RkFMU0V9DQpBcmFuYUJMQW5vdmEgPC0gYW92KGxlbmd0aCB+IG1vbnRoLCBkYXRhID0gYXJhbmFfQikNCmFub3ZhKEFyYW5hQkxBbm92YSkNCmBgYA0KYGBge3Igd2FybmluZz1GQUxTRX0NCkFyYW5hQkxBbm92YVN1bW1hcnkgPC0gc3VtbWFyeS5sbShBcmFuYUJMQW5vdmEpDQpBcmFuYUJMQW5vdmFTdW1tYXJ5JHIuc3F1YXJlZA0KYGBgDQpgYGB7ciB3YXJuaW5nPUZBTFNFfQ0KcGxvdChBcmFuYUJMQW5vdmEpDQpgYGANCmBgYHtyIHdhcm5pbmc9RkFMU0V9DQpUdWtleUhTRChBcmFuYUJMQW5vdmEpDQpgYGANCg0KDQojIyNBTk9WQSBMZW5ndGggU3RydWN0dXJlIEMgDQpgYGB7ciB3YXJuaW5nPUZBTFNFfQ0KQXJhbmFDTEFub3ZhIDwtIGFvdihsZW5ndGggfiBtb250aCwgZGF0YSA9IGFyYW5hX0MpDQphbm92YShBcmFuYUNMQW5vdmEpDQpgYGANCmBgYHtyIHdhcm5pbmc9RkFMU0V9DQpBcmFuYUNMQW5vdmFTdW1tYXJ5IDwtIHN1bW1hcnkubG0oQXJhbmFDTEFub3ZhKQ0KQXJhbmFDTEFub3ZhU3VtbWFyeSRyLnNxdWFyZWQNCmBgYA0KYGBge3Igd2FybmluZz1GQUxTRX0NCnBsb3QoQXJhbmFDTEFub3ZhKQ0KYGBgDQpgYGB7ciB3YXJuaW5nPUZBTFNFfQ0KVHVrZXlIU0QoQXJhbmFDTEFub3ZhKQ0KYGBgDQoNCiMjI0FOT1ZBIFdpZHRoIG5vbiBkZXBlbmRpbmcgb24gaW5pdGlhbCBzaXplcw0KYGBge3J9DQpBcmFuYVJhbm92YVcgPC0gYW92KHdpZHRoIH4gbW9udGgsIGRhdGEgPSBhcmFuYVIpDQphbm92YShBcmFuYVJhbm92YVcpDQpgYGANCmBgYHtyfQ0KQXJhbmFSYW5vdmFXU3VtbWFyeSA8LSBzdW1tYXJ5LmxtKEFyYW5hUmFub3ZhVykNCkFyYW5hUmFub3ZhV1N1bW1hcnkkci5zcXVhcmVkDQpgYGANCmBgYHtyfQ0KcGxvdChBcmFuYVJhbm92YVcpDQpgYGANCmBgYHtyfQ0KVHVrZXlIU0QoQXJhbmFSYW5vdmFXKQ0KYGBgDQoNCg0KIyMjQU5PVkEgV2lkdGggU3RydWN0dXJlIEENCmBgYHtyIHdhcm5pbmc9RkFMU0V9DQpBcmFuYUFXQW5vdmEgPC0gYW92KHdpZHRoIH4gbW9udGgsIGRhdGEgPSBhcmFuYV9BKQ0KYW5vdmEoQXJhbmFBV0Fub3ZhKQ0KYGBgDQpgYGB7ciB3YXJuaW5nPUZBTFNFfQ0KQXJhbmFBV0Fub3ZhU3VtbWFyeSA8LSBzdW1tYXJ5LmxtKEFyYW5hQVdBbm92YSkNCkFyYW5hQVdBbm92YVN1bW1hcnkkci5zcXVhcmVkDQpgYGANCmBgYHtyIHdhcm5pbmc9RkFMU0V9DQpwbG90KEFyYW5hQVdBbm92YSkNCmBgYA0KYGBge3Igd2FybmluZz1GQUxTRX0NClR1a2V5SFNEKEFyYW5hQVdBbm92YSkNCmBgYA0KDQoNCiMjI0FOT1ZBIFdpZHRoIFN0cnVjdHVyZSBCIA0KYGBge3Igd2FybmluZz1GQUxTRX0NCkFyYW5hQldBbm92YSA8LSBhb3Yod2lkdGggfiBtb250aCwgZGF0YSA9IGFyYW5hX0IpDQphbm92YShBcmFuYUJXQW5vdmEpDQpgYGANCmBgYHtyIHdhcm5pbmc9RkFMU0V9DQpBcmFuYUJXQW5vdmFTdW1tYXJ5IDwtIHN1bW1hcnkubG0oQXJhbmFCV0Fub3ZhKQ0KQXJhbmFCV0Fub3ZhU3VtbWFyeSRyLnNxdWFyZWQNCmBgYA0KYGBge3Igd2FybmluZz1GQUxTRX0NCnBsb3QoQXJhbmFCV0Fub3ZhKQ0KYGBgDQpgYGB7ciB3YXJuaW5nPUZBTFNFfQ0KVHVrZXlIU0QoQXJhbmFCV0Fub3ZhKQ0KYGBgDQoNCg0KIyMjQU5PVkEgV2lkdGggU3RydWN0dXJlIEMgDQpgYGB7ciB3YXJuaW5nPUZBTFNFfQ0KQXJhbmFDV0Fub3ZhIDwtIGFvdih3aWR0aCB+IG1vbnRoLCBkYXRhID0gYXJhbmFfQykNCmFub3ZhKEFyYW5hQ1dBbm92YSkNCmBgYA0KYGBge3Igd2FybmluZz1GQUxTRX0NCkFyYW5hQ1dBbm92YVN1bW1hcnkgPC0gc3VtbWFyeS5sbShBcmFuYUNXQW5vdmEpDQpBcmFuYUNXQW5vdmFTdW1tYXJ5JHIuc3F1YXJlZA0KYGBgDQpgYGB7ciB3YXJuaW5nPUZBTFNFfQ0KcGxvdChBcmFuYUNXQW5vdmEpDQpgYGANCmBgYHtyIHdhcm5pbmc9RkFMU0V9DQpUdWtleUhTRChBcmFuYUNXQW5vdmEpDQpgYGANCg0KDQojI1RXTy1XQVkgQU5PVkENCiMjIyNJbXBvcnQgZGF0YSBzZXQNCmBgYHtyIHdhcm5pbmc9RkFMU0V9DQphcmFuYVIgPC0gcmVhZF9leGNlbCgiYXJhbmFSLnhsc3giLCBzaGVldCA9ICJHcm93dGgiLCANCiAgICAgICAgICAgICAgICAgICAgIGNvbF90eXBlcyA9IGMoInRleHQiLCAidGV4dCIsICJudW1lcmljIiwgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJudW1lcmljIiwgIm51bWVyaWMiKSwgbmEgPSAiI04vQSIpDQpgYGANCg0KDQojIyNHcm93dGggZGlmZmVyZW5jZSBiZXR3ZWVuIGluaXRpYWwgc2l6ZXMNCmBgYHtyIHdhcm5pbmc9RkFMU0V9DQpUV2Fub3ZhIDwtIGFvdihkaWZmX2phbl9kZWN+bWVhc3VyZSpzdHJ1Y3R1cmUsIGRhdGEgPSBhcmFuYVIpDQphbm92YShUV2Fub3ZhKQ0KYGBgDQpgYGB7ciB3YXJuaW5nPUZBTFNFfQ0KVHVrZXlIU0QoVFdhbm92YSkNCmBgYA0KDQoNCiMjI0NvbXBhcmlzb24gZ3Jvd3RoIGRpZmYgYmV0d2VlbiB1cHdlbGxpbmcgYW5kIG5vbiB1cHdlbGxpbmcgc2Vhc29uIGRlcGVuZGluZyBvbiBpbml0aWFsIGNsYXNzIHNpemVzDQoNCiMjIyNJbXBvcnQgZGF0YSBzZXQNCmBgYHtyIHdhcm5pbmc9RkFMU0V9DQphcmFuYVIyIDwtIHJlYWRfZXhjZWwoImFyYW5hUi54bHN4Iiwgc2hlZXQgPSAiR3Jvd3RoIiwgDQogICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZXMgPSBjKCJ0ZXh0IiwgInRleHQiLCAibnVtZXJpYyIsIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibnVtZXJpYyIsICJudW1lcmljIiksIG5hID0gIiNOL0EiKQ0KYGBgDQoNCg0KIyMjIyB0LXRlc3QNCiMjIyMjTGVuZ3RoIFN0cnVjdHVyZSBBDQpgYGB7ciB3YXJuaW5nPUZBTFNFfQ0KU3RydWN0dXJlX0EgPC0gYXJhbmFSMiAlPiUNCiAgZmlsdGVyKHN0cnVjdHVyZSA9PSAiQSIsDQogICAgICAgICBtZWFzdXJlID09ICJsZW5ndGgiKQ0KDQp0LnRlc3QoU3RydWN0dXJlX0EkZGlmZl9qYW5fYXByLCBTdHJ1Y3R1cmVfQSRkaWZmX21heV9kZWMsIHBhaXJlZD0gVFJVRSkNCmBgYA0KDQojIyMjI0xlbmd0aCBTdHJ1Y3R1cmUgQg0KYGBge3Igd2FybmluZz1GQUxTRX0NClN0cnVjdHVyZV9CIDwtIGFyYW5hUjIgJT4lDQogIGZpbHRlcihzdHJ1Y3R1cmUgPT0gIkIiLA0KICAgICAgICAgbWVhc3VyZSA9PSAibGVuZ3RoIikNCnQudGVzdChTdHJ1Y3R1cmVfQiRkaWZmX2phbl9hcHIsIFN0cnVjdHVyZV9CJGRpZmZfbWF5X2RlYywgcGFpcmVkPSBUUlVFKQ0KYGBgDQoNCiMjIyMjTGVuZ3RoIFN0cnVjdHVyZSBDDQpgYGB7ciB3YXJuaW5nPUZBTFNFfQ0KU3RydWN0dXJlX0MgPC0gYXJhbmFSMiAlPiUNCiAgZmlsdGVyKHN0cnVjdHVyZSA9PSAiQyIsDQogICAgICAgICBtZWFzdXJlID09ICJsZW5ndGgiKQ0KDQp0LnRlc3QoU3RydWN0dXJlX0MkZGlmZl9qYW5fYXByLCBTdHJ1Y3R1cmVfQyRkaWZmX21heV9kZWMsIHBhaXJlZD0gVFJVRSkNCmBgYA0KDQojIyMjV2lkdGggU3RydWN0dXJlIEENCmBgYHtyIHdhcm5pbmc9RkFMU0V9DQpTdHJ1Y3R1cmVfQXcgPC0gYXJhbmFSMiAlPiUNCiAgZmlsdGVyKHN0cnVjdHVyZSA9PSAiQSIsDQogICAgICAgICBtZWFzdXJlID09ICJ3aWR0aCIpDQoNCnQudGVzdChTdHJ1Y3R1cmVfQXckZGlmZl9qYW5fYXByLCBTdHJ1Y3R1cmVfQXckZGlmZl9tYXlfZGVjLCBwYWlyZWQ9IFRSVUUpDQpgYGANCg0KIyMjIyNXaWR0aCBTdHJ1Y3R1cmUgQg0KYGBge3Igd2FybmluZz1GQUxTRX0NClN0cnVjdHVyZV9CdyA8LSBhcmFuYVIyICU+JQ0KICBmaWx0ZXIoc3RydWN0dXJlID09ICJCIiwNCiAgICAgICAgIG1lYXN1cmUgPT0gIndpZHRoIikNCg0KdC50ZXN0KFN0cnVjdHVyZV9CdyRkaWZmX2phbl9hcHIsIFN0cnVjdHVyZV9CdyRkaWZmX21heV9kZWMsIHBhaXJlZD0gVFJVRSkNCmBgYA0KDQojIyMjI1dpZHRoIFN0cnVjdHVyZSBDDQpgYGB7ciB3YXJuaW5nPUZBTFNFfQ0KU3RydWN0dXJlX0N3IDwtIGFyYW5hUjIgJT4lDQogIGZpbHRlcihzdHJ1Y3R1cmUgPT0gIkMiLA0KICAgICAgICAgbWVhc3VyZSA9PSAid2lkdGgiKQ0KDQp0LnRlc3QoU3RydWN0dXJlX0N3JGRpZmZfamFuX2FwciwgU3RydWN0dXJlX0N3JGRpZmZfbWF5X2RlYywgcGFpcmVkPSBUUlVFKQ0KYGBgDQoNCiMjIyMjQXJlYSBTdHJ1Y3R1cmUgQQ0KYGBge3Igd2FybmluZz1GQUxTRX0NClN0cnVjdHVyZV9BQXIgPC0gYXJhbmFSMiAlPiUNCiAgZmlsdGVyKHN0cnVjdHVyZSA9PSAiQSIsDQogICAgICAgICBtZWFzdXJlID09ICJhcmVhIikNCg0KdC50ZXN0KFN0cnVjdHVyZV9BQXIkZGlmZl9qYW5fYXByLCBTdHJ1Y3R1cmVfQUFyJGRpZmZfbWF5X2RlYywgcGFpcmVkPSBUUlVFKQ0KYGBgDQoNCiMjIyMjQXJlYSBTdHJ1Y3R1cmUgQg0KYGBge3Igd2FybmluZz1GQUxTRX0NClN0cnVjdHVyZV9CQXIgPC0gYXJhbmFSMiAlPiUNCiAgZmlsdGVyKHN0cnVjdHVyZSA9PSAiQiIsDQogICAgICAgICBtZWFzdXJlID09ICJhcmVhIikNCg0KdC50ZXN0KFN0cnVjdHVyZV9CQXIkZGlmZl9qYW5fYXByLCBTdHJ1Y3R1cmVfQkFyJGRpZmZfbWF5X2RlYywgcGFpcmVkPSBUUlVFKQ0KYGBgDQoNCiMjIyMjQXJlYSBTdHJ1Y3R1cmUgQw0KYGBge3Igd2FybmluZz1GQUxTRX0NClN0cnVjdHVyZV9DQXIgPC0gYXJhbmFSMiAlPiUNCiAgZmlsdGVyKHN0cnVjdHVyZSA9PSAiQyIsDQogICAgICAgICBtZWFzdXJlID09ICJhcmVhIikNCg0KdC50ZXN0KFN0cnVjdHVyZV9DQXIkZGlmZl9qYW5fYXByLCBTdHJ1Y3R1cmVfQ0FyJGRpZmZfbWF5X2RlYywgcGFpcmVkPSBUUlVFKQ0KYGBgDQoNCiMjI0NvbXBhcmlzb24gZ3Jvd3RoIGRpZmYgYmV0d2VlbiB1cHdlbGxpbmcgYW5kIG5vbiB1cHdlbGxpbmcgc2Vhc29uIG5vbiBkZXBlbmRpbmcgb24gaW5pdGlhbCBjbGFzcyBzaXplcw0KIyMjIyNMZW5ndGgNCmBgYHtyIHdhcm5pbmc9RkFMU0V9DQpTdHJ1Y3R1cmVfTGVuZ3RoIDwtIGFyYW5hUjIgJT4lDQogIGZpbHRlcihtZWFzdXJlID09ICJsZW5ndGgiKQ0KdC50ZXN0KFN0cnVjdHVyZV9MZW5ndGgkZGlmZl9qYW5fYXByLCBTdHJ1Y3R1cmVfTGVuZ3RoJGRpZmZfbWF5X2RlYywgcGFpcmVkPSBUUlVFKQ0KYGBgDQoNCiMjIyMjV2lkdGgNCmBgYHtyfQ0KU3RydWN0dXJlX1dpZHRoIDwtIGFyYW5hUjIgJT4lDQogIGZpbHRlcihtZWFzdXJlID09ICJ3aWR0aCIpDQp0LnRlc3QoU3RydWN0dXJlX1dpZHRoJGRpZmZfamFuX2FwciwgU3RydWN0dXJlX1dpZHRoJGRpZmZfbWF5X2RlYywgcGFpcmVkPSBUUlVFKQ0KYGBgDQoNCiMjIyMjQXJlYQ0KYGBge3J9DQpTdHJ1Y3R1cmVfQXJlYSA8LSBhcmFuYVIyICU+JQ0KICBmaWx0ZXIobWVhc3VyZSA9PSAiYXJlYSIpDQp0LnRlc3QoU3RydWN0dXJlX0FyZWEkZGlmZl9qYW5fYXByLCBTdHJ1Y3R1cmVfQXJlYSRkaWZmX21heV9kZWMsIHBhaXJlZD0gVFJVRSkNCmBgYA0KDQojIyNUZW1wZXJhdHVyZQ0KIyMjIyNNZWFuIHRlbXBlcmF0dXJlIG92ZXIgdGhlIHllYXINCmBgYHtyIG1lc3NhZ2U9RkFMU0UsIHdhcm5pbmc9RkFMU0V9DQpUZW1wTWVhbiA8LSB0ZW1wXzIwMjAgJT4lDQogIHN1bW1hcmlzZShNZWFuID0gbWVhbihUZW1wLCBuYS5ybSA9IFQpLA0KICAgICAgICAgICAgU3RhbmRhcmRfZGV2aWF0aW9uID0gc2QoVGVtcCwgbmEucm0gPSBUKSwNCiAgICAgICAgICAgIG5iX29icyA9IG4oKSwNCiAgICAgICAgICAgIHN0ZF9lcnJvciA9IFN0YW5kYXJkX2RldmlhdGlvbiAvIHNxcnQobmJfb2JzKSkNClRlbXBNZWFuDQpgYGANCg0KIyMjIyNNZWFuIHRlbXBlcmF0dXJlIGRlcGVuZGluZyBvbiB0aGUgdXB3ZWxsaW5nIHNlYXNvbiAoMSkgYW5kIG5vbi11cHdlbGxpbmcgc2Vhc29uICgwKQ0KYGBge3IgbWVzc2FnZT1GQUxTRSwgd2FybmluZz1GQUxTRX0NCnRlbXAudXB3IDwtIGRkcGx5KHRlbXBfMjAyMCwgLihVcHdlbGxpbmcpLCBzdW1tYXJpemUsDQogICAgICAgICAgICAgICAgICBwcm9tID0gbWVhbihUZW1wKSwNCiAgICAgICAgICAgICAgICAgIHNkID0gc2QoVGVtcCksDQogICAgICAgICAgICAgICAgICBtaW4gPSBtaW4oVGVtcCksIG1heCA9IG1heChUZW1wKSkNCnRlbXAudXB3DQpgYGANCg0KIyMjIyNNZWFuIHRlbXBlcmF0dXJlIGZvciBlYWNoIG1vbnRoDQpgYGB7ciBtZXNzYWdlPUZBTFNFLCB3YXJuaW5nPUZBTFNFfQ0KVGVtcE1vbnRoIDwtIHRlbXBfMjAyMCAlPiUNCiAgZ3JvdXBfYnkoTW9udGgpJT4lDQogIHN1bW1hcmlzZShNZWFuID0gbWVhbihUZW1wLCBuYS5ybSA9IFQpLA0KICAgICAgICAgICAgU3RhbmRhcmRfZGV2aWF0aW9uID0gc2QoVGVtcCwgbmEucm0gPSBUKSwNCiAgICAgICAgICAgIG5iX29icyA9IG4oKSwNCiAgICAgICAgICAgIHN0ZF9lcnJvciA9IFN0YW5kYXJkX2RldmlhdGlvbiAvIHNxcnQobmJfb2JzKSkNClRlbXBNb250aA0KYGBgDQojIyMjI01lYW4gdGVtcGVyYXR1cmUgcGxvdA0KYGBge3IgbWVzc2FnZT1GQUxTRSwgd2FybmluZz1GQUxTRX0NCnRlbXBfMjAyMCRNb250aCA8LSBmYWN0b3IodGVtcF8yMDIwJE1vbnRoLCBsZXZlbHMgPSBjKCJlbmVybyIsICJmZWJyZXJvIiwgIm1hcnpvIiwgImFicmlsIiwgIm1heW8iLCAianVuaW8iLCAianVsaW8iLCAiYWdvc3RvIiwic2VwdGllbWJyZSIsICJvY3R1YnJlIiwgIm5vdmllbWJyZSIsICJkaWNpZW1icmUiKSkNCg0KZ2dUZW1wIDwtIGdncGxvdChkYXRhID0gVGVtcE1vbnRoLCBhZXMoeD0gZmFjdG9yKE1vbnRoKSwgeT0gTWVhbiwgZ3JvdXAgPSAxKSkgKw0KICBnZW9tX3JpYmJvbihhZXMoeW1pbiA9IE1lYW4gLSBTdGFuZGFyZF9kZXZpYXRpb24sIHltYXggPSBNZWFuICsgU3RhbmRhcmRfZGV2aWF0aW9uKSwgZmlsbCA9ICJncmV5NzAiKSArDQogIGdlb21fbGluZShhZXMoeSA9IE1lYW4pKSsNCiAgZ2VvbV9obGluZSh5aW50ZXJjZXB0ID0gMjcuNDIzLCBjb2wgPSAicmVkIikrDQogIGdlb21fdmxpbmUoeGludGVyY2VwdCA9IHdoaWNoKFRlbXBNb250aCRNb250aCA9PSAnbWF5bycpLCBsaW5ldHlwZT0gImRhc2hlZCIsIGNvbCA9ICJncmV5MTgiLCBzaXplID0gMC41KSsNCiAgZ2VvbV92bGluZSh4aW50ZXJjZXB0ID0gd2hpY2goVGVtcE1vbnRoJE1vbnRoID09ICdlbmVybycpLCBsaW5ldHlwZT0gImRhc2hlZCIsIGNvbCA9ICJncmV5MTgiLCBzaXplID0gMC41KSsNCiAgbGFicyggeCA9ICJNb250aCIsDQogICAgICAgIHkgPSAiVGVtcGVyYXR1cmUgKLBDKSIpKw0KICBzY2FsZV94X2Rpc2NyZXRlKGxhYmVscyA9IGMoImVuZXJvIj0iSiIsICJmZWJyZXJvIj0iRiIsICJtYXJ6byIgPSAiTSIsICJhYnJpbCI9IkEiLCAibWF5byI9Ik0iLCAianVuaW8iPSJKIiwgImp1bGlvIj0iSiIsImFnb3N0byI9IkEiLCJzZXB0aWVtYnJlIj0iUyIsIm9jdHVicmUiPSJPIiwibm92aWVtYnJlIj0iTiIsImRpY2llbWJyZSI9IkQiKSkrDQogIHRoZW1lX2NsYXNzaWMoKSsNCiAgdGhlbWUoYXhpcy50ZXh0PWVsZW1lbnRfdGV4dChzaXplPTkpLA0KICAgICAgICBheGlzLnRpdGxlPWVsZW1lbnRfdGV4dChzaXplPTEwLGZhY2U9ImJvbGQiKSkNCmdnVGVtcA0KYGBgDQoNCiMjR3Jvd3RoIHBsb3RzDQoNCiMjIyMjQ2hhbmdlIG1vbnRoIG9yZGVyIA0KDQpgYGB7ciwgZWNobz1UUlVFLCB3YXJuaW5nPUZBTFNFfQ0KYXJhbmFfQSRtb250aCA8LSBmYWN0b3IoYXJhbmFfQSRtb250aCwgbGV2ZWxzID0gYygiSmFuIiwgIkZlYiIsICJBcHIiLCAiTWF5IiwgIkp1bmUiLCAiSnVseSIsICJBdWciLCJTZXB0IiwgIk9jdCIsICJOb3YiLCAiRGVjIikpDQphcmFuYV9CJG1vbnRoIDwtIGZhY3RvcihhcmFuYV9CJG1vbnRoLCBsZXZlbHMgPSBjKCJKYW4iLCAiRmViIiwgIkFwciIsICJNYXkiLCAiSnVuZSIsICJKdWx5IiwgIkF1ZyIsIlNlcHQiLCAiT2N0IiwgIk5vdiIsICJEZWMiKSkNCmFyYW5hX0MkbW9udGggPC0gZmFjdG9yKGFyYW5hX0MkbW9udGgsIGxldmVscyA9IGMoIkphbiIsICJGZWIiLCAiQXByIiwgIk1heSIsICJKdW5lIiwgIkp1bHkiLCAiQXVnIiwiU2VwdCIsICJPY3QiLCAiTm92IiwgIkRlYyIpKQ0KYGBgDQoNCg0KIyMjI0JveHBsb3RzIFN0cnVjdHVyZSBBDQoNCmBgYHtyLCBlY2hvPVRSVUUsIHdhcm5pbmc9RkFMU0V9DQpnZ0ExIDwtZ2dwbG90KGFyYW5hX0EsIGFlcyh4ID0gKG1vbnRoKSwgeSA9IGxlbmd0aCkpKw0KICBnZW9tX2JveHBsb3Qobm90Y2ggPSBUKSsNCiAgbGFicyh4PSAiTW9udGgiLA0KICAgIHk9ICJMZW5ndGggKGNtKSIpKw0KICBzY2FsZV94X2Rpc2NyZXRlKGxhYmVscyA9IGMoIkphbiI9IkoiLCAiRmViIj0iRiIsICJBcHIiPSJBIiwgIk1heSI9Ik0iLCAiSnVuZSI9IkoiLCAiSnVseSI9IkoiLCJBdWciPSJBIiwiU2VwdCI9IlMiLCJPY3QiPSJPIiwiTm92Ij0iTiIsIkRlYyI9IkQiKSkrDQogIHRoZW1lX2NsYXNzaWMoKQ0KDQpnZ0EyIDwtZ2dwbG90KGFyYW5hX0EsIGFlcyh4ID0gKG1vbnRoKSwgeSA9IHdpZHRoKSkrDQogIGdlb21fYm94cGxvdChub3RjaCA9IFQpKw0KICBsYWJzKHg9ICJNb250aCIsDQogICAgICAgeT0gIldpZHRoIChjbSkiKSsNCiAgc2NhbGVfeF9kaXNjcmV0ZShsYWJlbHMgPSBjKCJKYW4iPSJKIiwgIkZlYiI9IkYiLCAiQXByIj0iQSIsICJNYXkiPSJNIiwgIkp1bmUiPSJKIiwgIkp1bHkiPSJKIiwiQXVnIj0iQSIsIlNlcHQiPSJTIiwiT2N0Ij0iTyIsIk5vdiI9Ik4iLCJEZWMiPSJEIikpKw0KICB0aGVtZV9jbGFzc2ljKCkNCg0KZ2dBMyA8LSBnZ3Bsb3QoYXJhbmFfQSwgYWVzKHggPSAobW9udGgpLCB5ID0gYXJlYSkpKw0KICBnZW9tX2JveHBsb3Qobm90Y2ggPSBUKSsNCiAgbGFicyh4PSAiTW9udGgiLA0KICAgICAgIHk9ICJBcmVhIChjbbIpIikrDQogIHNjYWxlX3hfZGlzY3JldGUobGFiZWxzID0gYygiSmFuIj0iSiIsICJGZWIiPSJGIiwgIkFwciI9IkEiLCAiTWF5Ij0iTSIsICJKdW5lIj0iSiIsICJKdWx5Ij0iSiIsIkF1ZyI9IkEiLCJTZXB0Ij0iUyIsIk9jdCI9Ik8iLCJOb3YiPSJOIiwiRGVjIj0iRCIpKSsNCiAgdGhlbWVfY2xhc3NpYygpDQpgYGANCg0KDQojIyMjQm94cGxvdHMgU3RydWN0dXJlIEINCg0KYGBge3IsIGVjaG89VFJVRSwgd2FybmluZz1GQUxTRX0NCmdnQjEgPC1nZ3Bsb3QoYXJhbmFfQiwgYWVzKHggPSAobW9udGgpLCB5ID0gbGVuZ3RoKSkrDQogIGdlb21fYm94cGxvdChub3RjaCA9IFQpKw0KICBsYWJzKHg9ICJNb250aCIsDQogICAgICAgeT0gIkxlbmd0aCAoY20pIikrDQogIHNjYWxlX3hfZGlzY3JldGUobGFiZWxzID0gYygiSmFuIj0iSiIsICJGZWIiPSJGIiwgIkFwciI9IkEiLCAiTWF5Ij0iTSIsICJKdW5lIj0iSiIsICJKdWx5Ij0iSiIsIkF1ZyI9IkEiLCJTZXB0Ij0iUyIsIk9jdCI9Ik8iLCJOb3YiPSJOIiwiRGVjIj0iRCIpKSsNCiAgdGhlbWVfY2xhc3NpYygpDQoNCmdnQjIgPC1nZ3Bsb3QoYXJhbmFfQiwgYWVzKHggPSAobW9udGgpLCB5ID0gd2lkdGgpKSsNCiAgZ2VvbV9ib3hwbG90KG5vdGNoID0gVCkrDQogIGxhYnMoeD0gIk1vbnRoIiwNCiAgICAgICB5PSAiV2lkdGggKGNtKSIpKw0KICBzY2FsZV94X2Rpc2NyZXRlKGxhYmVscyA9IGMoIkphbiI9IkoiLCAiRmViIj0iRiIsICJBcHIiPSJBIiwgIk1heSI9Ik0iLCAiSnVuZSI9IkoiLCAiSnVseSI9IkoiLCJBdWciPSJBIiwiU2VwdCI9IlMiLCJPY3QiPSJPIiwiTm92Ij0iTiIsIkRlYyI9IkQiKSkrDQogIHRoZW1lX2NsYXNzaWMoKQ0KDQpnZ0IzIDwtIGdncGxvdChhcmFuYV9CLCBhZXMoeCA9IChtb250aCksIHkgPSBhcmVhKSkrDQogIGdlb21fYm94cGxvdChub3RjaCA9IFQpKw0KICBsYWJzKHg9ICJNb250aCIsDQogICAgICAgeT0gIkFyZWEgKGNtsikiKSsNCiAgc2NhbGVfeF9kaXNjcmV0ZShsYWJlbHMgPSBjKCJKYW4iPSJKIiwgIkZlYiI9IkYiLCAiQXByIj0iQSIsICJNYXkiPSJNIiwgIkp1bmUiPSJKIiwgIkp1bHkiPSJKIiwiQXVnIj0iQSIsIlNlcHQiPSJTIiwiT2N0Ij0iTyIsIk5vdiI9Ik4iLCJEZWMiPSJEIikpKw0KICB0aGVtZV9jbGFzc2ljKCkNCmBgYA0KDQojIyMjQm94cGxvdHMgU3RydWN0dXJlIEMNCg0KYGBge3IsIGVjaG89VFJVRSwgd2FybmluZz1GQUxTRX0NCmdnQzEgPC0gZ2dwbG90KGFyYW5hX0MsIGFlcyh4ID0gKG1vbnRoKSwgeSA9IGxlbmd0aCkpKw0KICBnZW9tX2JveHBsb3Qobm90Y2ggPSBUKSsNCiAgbGFicyh4PSAiTW9udGgiLA0KICAgICAgIHk9ICJMZW5ndGggKGNtKSIpKw0KICBzY2FsZV94X2Rpc2NyZXRlKGxhYmVscyA9IGMoIkphbiI9IkoiLCAiRmViIj0iRiIsICJBcHIiPSJBIiwgIk1heSI9Ik0iLCAiSnVuZSI9IkoiLCAiSnVseSI9IkoiLCJBdWciPSJBIiwiU2VwdCI9IlMiLCJPY3QiPSJPIiwiTm92Ij0iTiIsIkRlYyI9IkQiKSkrDQogIHRoZW1lX2NsYXNzaWMoKQ0KDQpnZ0MyIDwtZ2dwbG90KGFyYW5hX0MsIGFlcyh4ID0gKG1vbnRoKSwgeSA9IHdpZHRoKSkrDQogIGdlb21fYm94cGxvdChub3RjaCA9IFQpKw0KICBsYWJzKHg9ICJNb250aCIsDQogICAgICAgeT0gIldpZHRoIChjbSkiKSsNCiAgc2NhbGVfeF9kaXNjcmV0ZShsYWJlbHMgPSBjKCJKYW4iPSJKIiwgIkZlYiI9IkYiLCAiQXByIj0iQSIsICJNYXkiPSJNIiwgIkp1bmUiPSJKIiwgIkp1bHkiPSJKIiwiQXVnIj0iQSIsIlNlcHQiPSJTIiwiT2N0Ij0iTyIsIk5vdiI9Ik4iLCJEZWMiPSJEIikpKw0KICB0aGVtZV9jbGFzc2ljKCkNCg0KZ2dDMyA8LSBnZ3Bsb3QoYXJhbmFfQywgYWVzKHggPSAobW9udGgpLCB5ID0gYXJlYSkpKw0KICBnZW9tX2JveHBsb3Qobm90Y2ggPSBUKSsNCiAgbGFicyh4PSAiTW9udGgiLA0KICAgICAgIHk9ICJBcmVhIChjbbIpIikrDQogIHNjYWxlX3hfZGlzY3JldGUobGFiZWxzID0gYygiSmFuIj0iSiIsICJGZWIiPSJGIiwgIkFwciI9IkEiLCAiTWF5Ij0iTSIsICJKdW5lIj0iSiIsICJKdWx5Ij0iSiIsIkF1ZyI9IkEiLCJTZXB0Ij0iUyIsIk9jdCI9Ik8iLCJOb3YiPSJOIiwiRGVjIj0iRCIpKSsNCiAgdGhlbWVfY2xhc3NpYygpDQpgYGANCg0KIyMjI0NvbWJpbmVkIGdyYXBocw0KDQpgYGB7ciBlY2hvPVRSVUUsIG1lc3NhZ2U9RkFMU0UsIHdhcm5pbmc9RkFMU0V9DQpwbG90X2dyaWQoZ2dBMSwgZ2dCMSwgZ2dDMSwgbGFiZWxzPWMoIkEiLCJCIiwiQyIpLCBuY29sID0gMiwgbnJvdyA9MikNCmBgYA0KYGBge3IgZWNobz1UUlVFLCBtZXNzYWdlPUZBTFNFLCB3YXJuaW5nPUZBTFNFfQ0KcGxvdF9ncmlkKGdnQTIsIGdnQjIsIGdnQzIsbGFiZWxzPWMoIkEiLCJCIiwiQyIpLCBuY29sID0gMiwgbnJvdyA9MikNCmBgYA0KYGBge3IgZWNobz1UUlVFLCBtZXNzYWdlPUZBTFNFLCB3YXJuaW5nPUZBTFNFfQ0KcGxvdF9ncmlkKGdnQTMsIGdnQjMsIGdnQzMsbGFiZWxzPWMoIkEiLCJCIiwiQyIpLCBuY29sID0gMiwgbnJvdyA9MikNCmBgYA0K