OpenCoverage

OpenSSL Test Coverage

Sources

Page:<>1
Condition %: 100.000% (62/62)
23
Condition %:  67.397% (246/365)
4
Condition %:  52.632% (30/57)
5
Condition %:  42.424% (14/33)
6
Condition %:  25.000% (1/4)
...8
Condition %:  0.000% (0/4)
SourceCondition %▾eLOC - Effective Lines of CodeMcCabe - Cyclomatic Complexity
dh_asn1.c
Source: dh_asn1.c
Absolute File Name: /home/opencoverage/opencoverage/guest-scripts/openssl/src/crypto/dh/dh_asn1.c
Coverage:  80.556% (29/36)
 80.556% (29/36)
9615
bn_sqr.c
Source: bn_sqr.c
Absolute File Name: /home/opencoverage/opencoverage/guest-scripts/openssl/src/crypto/bn/bn_sqr.c
Coverage:  80.519% (62/77)
 80.519% (62/77)
11926
sha512.c
Source: sha512.c
Absolute File Name: /home/opencoverage/opencoverage/guest-scripts/openssl/src/crypto/sha/sha512.c
Coverage:  80.303% (53/66)
 80.303% (53/66)
18031
rsa_asn1.c
Source: rsa_asn1.c
Absolute File Name: /home/opencoverage/opencoverage/guest-scripts/openssl/src/crypto/rsa/rsa_asn1.c
Coverage:  80.000% (32/40)
 80.000% (32/40)
3424
bn_div.c
Source: bn_div.c
Absolute File Name: /home/opencoverage/opencoverage/guest-scripts/openssl/src/crypto/bn/bn_div.c
Coverage:  79.646% (90/113)
 79.646% (90/113)
13533
buffer.c
Source: buffer.c
Absolute File Name: /home/opencoverage/opencoverage/guest-scripts/openssl/src/crypto/buffer/buffer.c
Coverage:  79.221% (61/77)
 79.221% (61/77)
11729
asn1_lib.c
Source: asn1_lib.c
Absolute File Name: /home/opencoverage/opencoverage/guest-scripts/openssl/src/crypto/asn1/asn1_lib.c
Coverage:  78.571% (165/210)
 78.571% (165/210)
24980
bn_mul.c
Source: bn_mul.c
Absolute File Name: /home/opencoverage/opencoverage/guest-scripts/openssl/src/crypto/bn/bn_mul.c
Coverage:  77.811% (263/338)
 77.811% (263/338)
393118
s3_msg.c
Source: s3_msg.c
Absolute File Name: /home/opencoverage/opencoverage/guest-scripts/openssl/src/ssl/s3_msg.c
Coverage:  77.465% (55/71)
 77.465% (55/71)
7518
bn_lib.c
Source: bn_lib.c
Absolute File Name: /home/opencoverage/opencoverage/guest-scripts/openssl/src/crypto/bn/bn_lib.c
Coverage:  77.440% (357/461)
 77.440% (357/461)
618176
md32_common.h #2
Source: md32_common.h #2
Absolute File Name: /home/opencoverage/opencoverage/guest-scripts/openssl/src/crypto/include/internal/md32_common.h
Coverage:  77.273% (34/44)
 77.273% (34/44)
5517
e_camellia.c
Source: e_camellia.c
Absolute File Name: /home/opencoverage/opencoverage/guest-scripts/openssl/src/crypto/evp/e_camellia.c
Coverage:  77.143% (54/70)
 77.143% (54/70)
11639
extensions.c
Source: extensions.c
Absolute File Name: /home/opencoverage/opencoverage/guest-scripts/openssl/src/ssl/statem/extensions.c
Coverage:  76.956% (541/703)
 76.956% (541/703)
1043178
o_str.c
Source: o_str.c
Absolute File Name: /home/opencoverage/opencoverage/guest-scripts/openssl/src/crypto/o_str.c
Coverage:  76.860% (93/121)
 76.860% (93/121)
15553
cfb128.c
Source: cfb128.c
Absolute File Name: /home/opencoverage/opencoverage/guest-scripts/openssl/src/crypto/modes/cfb128.c
Coverage:  76.136% (67/88)
 76.136% (67/88)
9529
bn_ctx.c
Source: bn_ctx.c
Absolute File Name: /home/opencoverage/opencoverage/guest-scripts/openssl/src/crypto/bn/bn_ctx.c
Coverage:  76.087% (70/92)
 76.087% (70/92)
14738
x_bignum.c
Source: x_bignum.c
Absolute File Name: /home/opencoverage/opencoverage/guest-scripts/openssl/src/crypto/asn1/x_bignum.c
Coverage:  76.000% (38/50)
 76.000% (38/50)
5520
e_idea.c
Source: e_idea.c
Absolute File Name: /home/opencoverage/opencoverage/guest-scripts/openssl/src/crypto/evp/e_idea.c
Coverage:  75.926% (41/54)
 75.926% (41/54)
2223
e_sm4.c
Source: e_sm4.c
Absolute File Name: /home/opencoverage/opencoverage/guest-scripts/openssl/src/crypto/evp/e_sm4.c
Coverage:  75.472% (40/53)
 75.472% (40/53)
2827
x_info.c
Source: x_info.c
Absolute File Name: /home/opencoverage/opencoverage/guest-scripts/openssl/src/crypto/asn1/x_info.c
Coverage:  75.000% (6/8)
 75.000% (6/8)
214
x509_err.c
Source: x509_err.c
Absolute File Name: /home/opencoverage/opencoverage/guest-scripts/openssl/src/crypto/x509/x509_err.c
Coverage:  75.000% (3/4)
 75.000% (3/4)
62
v3err.c
Source: v3err.c
Absolute File Name: /home/opencoverage/opencoverage/guest-scripts/openssl/src/crypto/x509v3/v3err.c
Coverage:  75.000% (3/4)
 75.000% (3/4)
62
ui_err.c
Source: ui_err.c
Absolute File Name: /home/opencoverage/opencoverage/guest-scripts/openssl/src/crypto/ui/ui_err.c
Coverage:  75.000% (3/4)
 75.000% (3/4)
62
ts_err.c
Source: ts_err.c
Absolute File Name: /home/opencoverage/opencoverage/guest-scripts/openssl/src/crypto/ts/ts_err.c
Coverage:  75.000% (3/4)
 75.000% (3/4)
62
store_err.c
Source: store_err.c
Absolute File Name: /home/opencoverage/opencoverage/guest-scripts/openssl/src/crypto/store/store_err.c
Coverage:  75.000% (3/4)
 75.000% (3/4)
62
ssl_err.c
Source: ssl_err.c
Absolute File Name: /home/opencoverage/opencoverage/guest-scripts/openssl/src/ssl/ssl_err.c
Coverage:  75.000% (3/4)
 75.000% (3/4)
62
rsa_err.c
Source: rsa_err.c
Absolute File Name: /home/opencoverage/opencoverage/guest-scripts/openssl/src/crypto/rsa/rsa_err.c
Coverage:  75.000% (3/4)
 75.000% (3/4)
62
rand_err.c
Source: rand_err.c
Absolute File Name: /home/opencoverage/opencoverage/guest-scripts/openssl/src/crypto/rand/rand_err.c
Coverage:  75.000% (3/4)
 75.000% (3/4)
62
pkcs7err.c
Source: pkcs7err.c
Absolute File Name: /home/opencoverage/opencoverage/guest-scripts/openssl/src/crypto/pkcs7/pkcs7err.c
Coverage:  75.000% (3/4)
 75.000% (3/4)
62
pk12err.c
Source: pk12err.c
Absolute File Name: /home/opencoverage/opencoverage/guest-scripts/openssl/src/crypto/pkcs12/pk12err.c
Coverage:  75.000% (3/4)
 75.000% (3/4)
62
pem_err.c
Source: pem_err.c
Absolute File Name: /home/opencoverage/opencoverage/guest-scripts/openssl/src/crypto/pem/pem_err.c
Coverage:  75.000% (3/4)
 75.000% (3/4)
62
ocsp_err.c
Source: ocsp_err.c
Absolute File Name: /home/opencoverage/opencoverage/guest-scripts/openssl/src/crypto/ocsp/ocsp_err.c
Coverage:  75.000% (3/4)
 75.000% (3/4)
62
obj_err.c
Source: obj_err.c
Absolute File Name: /home/opencoverage/opencoverage/guest-scripts/openssl/src/crypto/objects/obj_err.c
Coverage:  75.000% (3/4)
 75.000% (3/4)
62
kdf_err.c
Source: kdf_err.c
Absolute File Name: /home/opencoverage/opencoverage/guest-scripts/openssl/src/crypto/kdf/kdf_err.c
Coverage:  75.000% (3/4)
 75.000% (3/4)
62
evp_err.c
Source: evp_err.c
Absolute File Name: /home/opencoverage/opencoverage/guest-scripts/openssl/src/crypto/evp/evp_err.c
Coverage:  75.000% (3/4)
 75.000% (3/4)
62
eng_err.c
Source: eng_err.c
Absolute File Name: /home/opencoverage/opencoverage/guest-scripts/openssl/src/crypto/engine/eng_err.c
Coverage:  75.000% (3/4)
 75.000% (3/4)
62
ec_err.c
Source: ec_err.c
Absolute File Name: /home/opencoverage/opencoverage/guest-scripts/openssl/src/crypto/ec/ec_err.c
Coverage:  75.000% (3/4)
 75.000% (3/4)
62
dso_err.c
Source: dso_err.c
Absolute File Name: /home/opencoverage/opencoverage/guest-scripts/openssl/src/crypto/dso/dso_err.c
Coverage:  75.000% (3/4)
 75.000% (3/4)
62
dsa_err.c
Source: dsa_err.c
Absolute File Name: /home/opencoverage/opencoverage/guest-scripts/openssl/src/crypto/dsa/dsa_err.c
Coverage:  75.000% (3/4)
 75.000% (3/4)
62
dh_err.c
Source: dh_err.c
Absolute File Name: /home/opencoverage/opencoverage/guest-scripts/openssl/src/crypto/dh/dh_err.c
Coverage:  75.000% (3/4)
 75.000% (3/4)
62
ct_err.c
Source: ct_err.c
Absolute File Name: /home/opencoverage/opencoverage/guest-scripts/openssl/src/crypto/ct/ct_err.c
Coverage:  75.000% (3/4)
 75.000% (3/4)
62
cpt_err.c
Source: cpt_err.c
Absolute File Name: /home/opencoverage/opencoverage/guest-scripts/openssl/src/crypto/cpt_err.c
Coverage:  75.000% (3/4)
 75.000% (3/4)
62
conf_err.c
Source: conf_err.c
Absolute File Name: /home/opencoverage/opencoverage/guest-scripts/openssl/src/crypto/conf/conf_err.c
Coverage:  75.000% (3/4)
 75.000% (3/4)
62
comp_err.c
Source: comp_err.c
Absolute File Name: /home/opencoverage/opencoverage/guest-scripts/openssl/src/crypto/comp/comp_err.c
Coverage:  75.000% (3/4)
 75.000% (3/4)
62
cms_err.c
Source: cms_err.c
Absolute File Name: /home/opencoverage/opencoverage/guest-scripts/openssl/src/crypto/cms/cms_err.c
Coverage:  75.000% (3/4)
 75.000% (3/4)
62
buf_err.c
Source: buf_err.c
Absolute File Name: /home/opencoverage/opencoverage/guest-scripts/openssl/src/crypto/buffer/buf_err.c
Coverage:  75.000% (3/4)
 75.000% (3/4)
62
bn_err.c
Source: bn_err.c
Absolute File Name: /home/opencoverage/opencoverage/guest-scripts/openssl/src/crypto/bn/bn_err.c
Coverage:  75.000% (3/4)
 75.000% (3/4)
62
bio_err.c
Source: bio_err.c
Absolute File Name: /home/opencoverage/opencoverage/guest-scripts/openssl/src/crypto/bio/bio_err.c
Coverage:  75.000% (3/4)
 75.000% (3/4)
62
async_err.c
Source: async_err.c
Absolute File Name: /home/opencoverage/opencoverage/guest-scripts/openssl/src/crypto/async/async_err.c
Coverage:  75.000% (3/4)
 75.000% (3/4)
62
asn1_err.c
Source: asn1_err.c
Absolute File Name: /home/opencoverage/opencoverage/guest-scripts/openssl/src/crypto/asn1/asn1_err.c
Coverage:  75.000% (3/4)
 75.000% (3/4)
62
pqueue.c
Source: pqueue.c
Absolute File Name: /home/opencoverage/opencoverage/guest-scripts/openssl/src/ssl/pqueue.c
Coverage:  74.576% (44/59)
 74.576% (44/59)
12526
x_algor.c
Source: x_algor.c
Absolute File Name: /home/opencoverage/opencoverage/guest-scripts/openssl/src/crypto/asn1/x_algor.c
Coverage:  74.545% (41/55)
 74.545% (41/55)
5624
aria.c
Source: aria.c
Absolute File Name: /home/opencoverage/opencoverage/guest-scripts/openssl/src/crypto/aria/aria.c
Coverage:  74.510% (38/51)
 74.510% (38/51)
22014
ctr128.c
Source: ctr128.c
Absolute File Name: /home/opencoverage/opencoverage/guest-scripts/openssl/src/crypto/modes/ctr128.c
Coverage:  74.324% (55/74)
 74.324% (55/74)
9325
v3_prn.c
Source: v3_prn.c
Absolute File Name: /home/opencoverage/opencoverage/guest-scripts/openssl/src/crypto/x509v3/v3_prn.c
Coverage:  74.074% (80/108)
 74.074% (80/108)
13139
ec2_oct.c
Source: ec2_oct.c
Absolute File Name: /home/opencoverage/opencoverage/guest-scripts/openssl/src/crypto/ec/ec2_oct.c
Coverage:  73.077% (152/208)
 73.077% (152/208)
23163
statem_lib.c
Source: statem_lib.c
Absolute File Name: /home/opencoverage/opencoverage/guest-scripts/openssl/src/ssl/statem/statem_lib.c
Coverage:  72.759% (844/1160)
 72.759% (844/1160)
1984320
bn_word.c
Source: bn_word.c
Absolute File Name: /home/opencoverage/opencoverage/guest-scripts/openssl/src/crypto/bn/bn_word.c
Coverage:  72.549% (74/102)
 72.549% (74/102)
10734
evp_enc.c
Source: evp_enc.c
Absolute File Name: /home/opencoverage/opencoverage/guest-scripts/openssl/src/crypto/evp/evp_enc.c
Coverage:  72.271% (245/339)
 72.271% (245/339)
402117
ssl_asn1.c
Source: ssl_asn1.c
Absolute File Name: /home/opencoverage/opencoverage/guest-scripts/openssl/src/ssl/ssl_asn1.c
Coverage:  72.143% (101/140)
 72.143% (101/140)
29344
eng_init.c
Source: eng_init.c
Absolute File Name: /home/opencoverage/opencoverage/guest-scripts/openssl/src/crypto/engine/eng_init.c
Coverage:  72.093% (31/43)
 72.093% (31/43)
4615
rsa_sign.c
Source: rsa_sign.c
Absolute File Name: /home/opencoverage/opencoverage/guest-scripts/openssl/src/crypto/rsa/rsa_sign.c
Coverage:  72.000% (72/100)
 72.000% (72/100)
16134
a_d2i_fp.c
Source: a_d2i_fp.c
Absolute File Name: /home/opencoverage/opencoverage/guest-scripts/openssl/src/crypto/asn1/a_d2i_fp.c
Coverage:  71.717% (71/99)
 71.717% (71/99)
16235
bn_exp.c
Source: bn_exp.c
Absolute File Name: /home/opencoverage/opencoverage/guest-scripts/openssl/src/crypto/bn/bn_exp.c
Coverage:  71.469% (501/701)
 71.469% (501/701)
754209
v3_pku.c
Source: v3_pku.c
Absolute File Name: /home/opencoverage/opencoverage/guest-scripts/openssl/src/crypto/x509v3/v3_pku.c
Coverage:  71.429% (10/14)
 71.429% (10/14)
118
bn_lcl.h
Source: bn_lcl.h
Absolute File Name: /home/opencoverage/opencoverage/guest-scripts/openssl/src/crypto/bn/bn_lcl.h
Coverage:  71.429% (5/7)
 71.429% (5/7)
93
b_print.c
Source: b_print.c
Absolute File Name: /home/opencoverage/opencoverage/guest-scripts/openssl/src/crypto/bio/b_print.c
Coverage:  71.429% (440/616)
 71.429% (440/616)
865208
tasn_utl.c
Source: tasn_utl.c
Absolute File Name: /home/opencoverage/opencoverage/guest-scripts/openssl/src/crypto/asn1/tasn_utl.c
Coverage:  71.287% (72/101)
 71.287% (72/101)
14738
packet.c
Source: packet.c
Absolute File Name: /home/opencoverage/opencoverage/guest-scripts/openssl/src/ssl/packet.c
Coverage:  71.041% (157/221)
 71.041% (157/221)
30574
ts_lib.c
Source: ts_lib.c
Absolute File Name: /home/opencoverage/opencoverage/guest-scripts/openssl/src/crypto/ts/ts_lib.c
Coverage:  70.833% (17/24)
 70.833% (17/24)
4910
des_enc.c
Source: des_enc.c
Absolute File Name: /home/opencoverage/opencoverage/guest-scripts/openssl/src/crypto/des/des_enc.c
Coverage:  70.492% (43/61)
 70.492% (43/61)
19628
dsa_asn1.c
Source: dsa_asn1.c
Absolute File Name: /home/opencoverage/opencoverage/guest-scripts/openssl/src/crypto/dsa/dsa_asn1.c
Coverage:  70.175% (40/57)
 70.175% (40/57)
9029
mem_sec.c
Source: mem_sec.c
Absolute File Name: /home/opencoverage/opencoverage/guest-scripts/openssl/src/crypto/mem_sec.c
Coverage:  70.166% (127/181)
 70.166% (127/181)
38971
tasn_new.c
Source: tasn_new.c
Absolute File Name: /home/opencoverage/opencoverage/guest-scripts/openssl/src/crypto/asn1/tasn_new.c
Coverage:  70.048% (145/207)
 70.048% (145/207)
24076
ct_oct.c
Source: ct_oct.c
Absolute File Name: /home/opencoverage/opencoverage/guest-scripts/openssl/src/crypto/ct/ct_oct.c
Coverage:  70.000% (140/200)
 70.000% (140/200)
36869
statem.c
Source: statem.c
Absolute File Name: /home/opencoverage/opencoverage/guest-scripts/openssl/src/ssl/statem/statem.c
Coverage:  69.820% (310/444)
 69.820% (310/444)
491147
bss_mem.c
Source: bss_mem.c
Absolute File Name: /home/opencoverage/opencoverage/guest-scripts/openssl/src/crypto/bio/bss_mem.c
Coverage:  69.718% (99/142)
 69.718% (99/142)
21857
xcbc_enc.c
Source: xcbc_enc.c
Absolute File Name: /home/opencoverage/opencoverage/guest-scripts/openssl/src/crypto/des/xcbc_enc.c
Coverage:  69.388% (34/49)
 69.388% (34/49)
7422
ncbc_enc.c #2
Source: ncbc_enc.c #2
Absolute File Name: /home/opencoverage/opencoverage/guest-scripts/openssl/src/crypto/des/ncbc_enc.c
Coverage:  69.388% (34/49)
 69.388% (34/49)
5722
ncbc_enc.c #1
Source: ncbc_enc.c #1
Absolute File Name: /home/opencoverage/opencoverage/guest-scripts/openssl/src/crypto/des/ncbc_enc.c
Coverage:  69.388% (34/49)
 69.388% (34/49)
6522
rsa_pss.c
Source: rsa_pss.c
Absolute File Name: /home/opencoverage/opencoverage/guest-scripts/openssl/src/crypto/rsa/rsa_pss.c
Coverage:  69.333% (104/150)
 69.333% (104/150)
19149
statem_clnt.c
Source: statem_clnt.c
Absolute File Name: /home/opencoverage/opencoverage/guest-scripts/openssl/src/ssl/statem/statem_clnt.c
Coverage:  69.324% (1313/1894)
 69.324% (1313/1894)
3614566
stack.c
Source: stack.c
Absolute File Name: /home/opencoverage/opencoverage/guest-scripts/openssl/src/crypto/stack/stack.c
Coverage:  69.298% (158/228)
 69.298% (158/228)
33083
p8_pkey.c
Source: p8_pkey.c
Absolute File Name: /home/opencoverage/opencoverage/guest-scripts/openssl/src/crypto/asn1/p8_pkey.c
Coverage:  69.231% (27/39)
 69.231% (27/39)
2819
err_prn.c
Source: err_prn.c
Absolute File Name: /home/opencoverage/opencoverage/guest-scripts/openssl/src/crypto/err/err_prn.c
Coverage:  69.231% (9/13)
 69.231% (9/13)
227
bn_mpi.c
Source: bn_mpi.c
Absolute File Name: /home/opencoverage/opencoverage/guest-scripts/openssl/src/crypto/bn/bn_mpi.c
Coverage:  69.048% (29/42)
 69.048% (29/42)
8215
rsa_pk1.c
Source: rsa_pk1.c
Absolute File Name: /home/opencoverage/opencoverage/guest-scripts/openssl/src/crypto/rsa/rsa_pk1.c
Coverage:  68.675% (57/83)
 68.675% (57/83)
12130
pbe_scrypt.c
Source: pbe_scrypt.c
Absolute File Name: /home/opencoverage/opencoverage/guest-scripts/openssl/src/crypto/evp/pbe_scrypt.c
Coverage:  68.605% (59/86)
 68.605% (59/86)
14530
eng_lib.c
Source: eng_lib.c
Absolute File Name: /home/opencoverage/opencoverage/guest-scripts/openssl/src/crypto/engine/eng_lib.c
Coverage:  68.478% (63/92)
 68.478% (63/92)
20849
qud_cksm.c
Source: qud_cksm.c
Absolute File Name: /home/opencoverage/opencoverage/guest-scripts/openssl/src/crypto/des/qud_cksm.c
Coverage:  68.421% (13/19)
 68.421% (13/19)
356
e_seed.c
Source: e_seed.c
Absolute File Name: /home/opencoverage/opencoverage/guest-scripts/openssl/src/crypto/evp/e_seed.c
Coverage:  68.293% (28/41)
 68.293% (28/41)
719
e_cast.c
Source: e_cast.c
Absolute File Name: /home/opencoverage/opencoverage/guest-scripts/openssl/src/crypto/evp/e_cast.c
Coverage:  68.293% (28/41)
 68.293% (28/41)
719
e_bf.c
Source: e_bf.c
Absolute File Name: /home/opencoverage/opencoverage/guest-scripts/openssl/src/crypto/evp/e_bf.c
Coverage:  68.293% (28/41)
 68.293% (28/41)
719
ssl3_buffer.c
Source: ssl3_buffer.c
Absolute File Name: /home/opencoverage/opencoverage/guest-scripts/openssl/src/ssl/record/ssl3_buffer.c
Coverage:  68.254% (43/63)
 68.254% (43/63)
12625
a_int.c
Source: a_int.c
Absolute File Name: /home/opencoverage/opencoverage/guest-scripts/openssl/src/crypto/asn1/a_int.c
Coverage:  67.944% (195/287)
 67.944% (195/287)
437108
ofb128.c
Source: ofb128.c
Absolute File Name: /home/opencoverage/opencoverage/guest-scripts/openssl/src/crypto/modes/ofb128.c
Coverage:  67.857% (19/28)
 67.857% (19/28)
319
d2i_pr.c
Source: d2i_pr.c
Absolute File Name: /home/opencoverage/opencoverage/guest-scripts/openssl/src/crypto/asn1/d2i_pr.c
Coverage:  67.857% (38/56)
 67.857% (38/56)
12018
ssl3_record_tls13.c
Source: ssl3_record_tls13.c
Absolute File Name: /home/opencoverage/opencoverage/guest-scripts/openssl/src/ssl/record/ssl3_record_tls13.c
Coverage:  67.826% (78/115)
 67.826% (78/115)
19125
a_gentm.c
Source: a_gentm.c
Absolute File Name: /home/opencoverage/opencoverage/guest-scripts/openssl/src/crypto/asn1/a_gentm.c
Coverage:  67.742% (21/31)
 67.742% (21/31)
4513
e_chacha20_poly1305.c
Source: e_chacha20_poly1305.c
Absolute File Name: /home/opencoverage/opencoverage/guest-scripts/openssl/src/crypto/evp/e_chacha20_poly1305.c
Coverage:  67.544% (154/228)
 67.544% (154/228)
33777
Page:<>1
Condition %: 100.000% (62/62)
23
Condition %:  67.397% (246/365)
4
Condition %:  52.632% (30/57)
5
Condition %:  42.424% (14/33)
6
Condition %:  25.000% (1/4)
...8
Condition %:  0.000% (0/4)

Generated by Squish Coco 4.2.2