Update ABI/API compatibility reports after commit c67e1cd73f

This commit is contained in:
OpenJPEG Travis CI 2017-09-06 16:10:05 +00:00
parent 16d70c6f94
commit c713727e25
6 changed files with 79 additions and 86 deletions

View File

@ -207,7 +207,7 @@ $VAR1 = {
'Source' => 'cio.c', 'Source' => 'cio.c',
'SourceLine' => '271' 'SourceLine' => '271'
}, },
'168209' => { '168266' => {
'Header' => 'openjpeg.h', 'Header' => 'openjpeg.h',
'Line' => '1062', 'Line' => '1062',
'Return' => '177', 'Return' => '177',
@ -215,13 +215,13 @@ $VAR1 = {
'Source' => 'openjpeg.c', 'Source' => 'openjpeg.c',
'SourceLine' => '160' 'SourceLine' => '160'
}, },
'168537' => { '168594' => {
'Header' => 'openjpeg.h', 'Header' => 'openjpeg.h',
'Line' => '1550', 'Line' => '1550',
'Param' => { 'Param' => {
'0' => { '0' => {
'name' => 'cstr_info', 'name' => 'cstr_info',
'type' => '168555' 'type' => '168612'
} }
}, },
'Reg' => { 'Reg' => {
@ -232,12 +232,12 @@ $VAR1 = {
'Source' => 'openjpeg.c', 'Source' => 'openjpeg.c',
'SourceLine' => '924' 'SourceLine' => '924'
}, },
'230629' => { '230660' => {
'Header' => 'openjpeg.h', 'Header' => 'openjpeg.h',
'Param' => { 'Param' => {
'0' => { '0' => {
'name' => 'p_codec', 'name' => 'p_codec',
'type' => '230715' 'type' => '230746'
}, },
'1' => { '1' => {
'name' => 'p_callback', 'name' => 'p_callback',
@ -258,12 +258,12 @@ $VAR1 = {
'Source' => 'openjpeg.c', 'Source' => 'openjpeg.c',
'SourceLine' => '44' 'SourceLine' => '44'
}, },
'230727' => { '230758' => {
'Header' => 'openjpeg.h', 'Header' => 'openjpeg.h',
'Param' => { 'Param' => {
'0' => { '0' => {
'name' => 'p_codec', 'name' => 'p_codec',
'type' => '230715' 'type' => '230746'
}, },
'1' => { '1' => {
'name' => 'p_callback', 'name' => 'p_callback',
@ -284,12 +284,12 @@ $VAR1 = {
'Source' => 'openjpeg.c', 'Source' => 'openjpeg.c',
'SourceLine' => '59' 'SourceLine' => '59'
}, },
'230813' => { '230844' => {
'Header' => 'openjpeg.h', 'Header' => 'openjpeg.h',
'Param' => { 'Param' => {
'0' => { '0' => {
'name' => 'p_codec', 'name' => 'p_codec',
'type' => '230715' 'type' => '230746'
}, },
'1' => { '1' => {
'name' => 'p_callback', 'name' => 'p_callback',
@ -310,23 +310,23 @@ $VAR1 = {
'Source' => 'openjpeg.c', 'Source' => 'openjpeg.c',
'SourceLine' => '74' 'SourceLine' => '74'
}, },
'230928' => { '230959' => {
'Header' => 'openjpeg.h', 'Header' => 'openjpeg.h',
'Param' => { 'Param' => {
'0' => { '0' => {
'name' => 'p_format', 'name' => 'p_format',
'type' => '219787' 'type' => '219818'
} }
}, },
'Reg' => { 'Reg' => {
'0' => 'rdi' '0' => 'rdi'
}, },
'Return' => '230715', 'Return' => '230746',
'ShortName' => 'opj_create_decompress', 'ShortName' => 'opj_create_decompress',
'Source' => 'openjpeg.c', 'Source' => 'openjpeg.c',
'SourceLine' => '168' 'SourceLine' => '168'
}, },
'231150' => { '231181' => {
'Header' => 'openjpeg.h', 'Header' => 'openjpeg.h',
'Param' => { 'Param' => {
'0' => { '0' => {
@ -342,12 +342,12 @@ $VAR1 = {
'Source' => 'openjpeg.c', 'Source' => 'openjpeg.c',
'SourceLine' => '352' 'SourceLine' => '352'
}, },
'231281' => { '231312' => {
'Header' => 'openjpeg.h', 'Header' => 'openjpeg.h',
'Param' => { 'Param' => {
'0' => { '0' => {
'name' => 'p_codec', 'name' => 'p_codec',
'type' => '230715' 'type' => '230746'
}, },
'1' => { '1' => {
'name' => 'num_threads', 'name' => 'num_threads',
@ -363,12 +363,12 @@ $VAR1 = {
'Source' => 'openjpeg.c', 'Source' => 'openjpeg.c',
'SourceLine' => '375' 'SourceLine' => '375'
}, },
'231399' => { '231430' => {
'Header' => 'openjpeg.h', 'Header' => 'openjpeg.h',
'Param' => { 'Param' => {
'0' => { '0' => {
'name' => 'p_codec', 'name' => 'p_codec',
'type' => '230715' 'type' => '230746'
}, },
'1' => { '1' => {
'name' => 'parameters', 'name' => 'parameters',
@ -384,7 +384,7 @@ $VAR1 = {
'Source' => 'openjpeg.c', 'Source' => 'openjpeg.c',
'SourceLine' => '386' 'SourceLine' => '386'
}, },
'231541' => { '231572' => {
'Header' => 'openjpeg.h', 'Header' => 'openjpeg.h',
'Param' => { 'Param' => {
'0' => { '0' => {
@ -393,7 +393,7 @@ $VAR1 = {
}, },
'1' => { '1' => {
'name' => 'p_codec', 'name' => 'p_codec',
'type' => '230715' 'type' => '230746'
}, },
'2' => { '2' => {
'name' => 'p_image', 'name' => 'p_image',
@ -410,12 +410,12 @@ $VAR1 = {
'Source' => 'openjpeg.c', 'Source' => 'openjpeg.c',
'SourceLine' => '406' 'SourceLine' => '406'
}, },
'231744' => { '231775' => {
'Header' => 'openjpeg.h', 'Header' => 'openjpeg.h',
'Param' => { 'Param' => {
'0' => { '0' => {
'name' => 'p_codec', 'name' => 'p_codec',
'type' => '230715' 'type' => '230746'
}, },
'1' => { '1' => {
'name' => 'p_stream', 'name' => 'p_stream',
@ -436,12 +436,12 @@ $VAR1 = {
'Source' => 'openjpeg.c', 'Source' => 'openjpeg.c',
'SourceLine' => '429' 'SourceLine' => '429'
}, },
'231898' => { '231929' => {
'Header' => 'openjpeg.h', 'Header' => 'openjpeg.h',
'Param' => { 'Param' => {
'0' => { '0' => {
'name' => 'p_codec', 'name' => 'p_codec',
'type' => '230715' 'type' => '230746'
}, },
'1' => { '1' => {
'name' => 'p_image', 'name' => 'p_image',
@ -477,12 +477,12 @@ $VAR1 = {
'Source' => 'openjpeg.c', 'Source' => 'openjpeg.c',
'SourceLine' => '450' 'SourceLine' => '450'
}, },
'232106' => { '232137' => {
'Header' => 'openjpeg.h', 'Header' => 'openjpeg.h',
'Param' => { 'Param' => {
'0' => { '0' => {
'name' => 'p_codec', 'name' => 'p_codec',
'type' => '230715' 'type' => '230746'
}, },
'1' => { '1' => {
'name' => 'p_stream', 'name' => 'p_stream',
@ -538,12 +538,12 @@ $VAR1 = {
'Source' => 'openjpeg.c', 'Source' => 'openjpeg.c',
'SourceLine' => '473' 'SourceLine' => '473'
}, },
'232324' => { '232355' => {
'Header' => 'openjpeg.h', 'Header' => 'openjpeg.h',
'Param' => { 'Param' => {
'0' => { '0' => {
'name' => 'p_codec', 'name' => 'p_codec',
'type' => '230715' 'type' => '230746'
}, },
'1' => { '1' => {
'name' => 'p_tile_index', 'name' => 'p_tile_index',
@ -574,12 +574,12 @@ $VAR1 = {
'Source' => 'openjpeg.c', 'Source' => 'openjpeg.c',
'SourceLine' => '504' 'SourceLine' => '504'
}, },
'232524' => { '232555' => {
'Header' => 'openjpeg.h', 'Header' => 'openjpeg.h',
'Param' => { 'Param' => {
'0' => { '0' => {
'name' => 'p_codec', 'name' => 'p_codec',
'type' => '230715' 'type' => '230746'
}, },
'1' => { '1' => {
'name' => 'p_stream', 'name' => 'p_stream',
@ -605,12 +605,12 @@ $VAR1 = {
'Source' => 'openjpeg.c', 'Source' => 'openjpeg.c',
'SourceLine' => '530' 'SourceLine' => '530'
}, },
'232701' => { '232732' => {
'Header' => 'openjpeg.h', 'Header' => 'openjpeg.h',
'Param' => { 'Param' => {
'0' => { '0' => {
'name' => 'p_codec', 'name' => 'p_codec',
'type' => '230715' 'type' => '230746'
}, },
'1' => { '1' => {
'name' => 'res_factor', 'name' => 'res_factor',
@ -626,23 +626,23 @@ $VAR1 = {
'Source' => 'openjpeg.c', 'Source' => 'openjpeg.c',
'SourceLine' => '554' 'SourceLine' => '554'
}, },
'232810' => { '232841' => {
'Header' => 'openjpeg.h', 'Header' => 'openjpeg.h',
'Param' => { 'Param' => {
'0' => { '0' => {
'name' => 'p_format', 'name' => 'p_format',
'type' => '219787' 'type' => '219818'
} }
}, },
'Reg' => { 'Reg' => {
'0' => 'rdi' '0' => 'rdi'
}, },
'Return' => '230715', 'Return' => '230746',
'ShortName' => 'opj_create_compress', 'ShortName' => 'opj_create_compress',
'Source' => 'openjpeg.c', 'Source' => 'openjpeg.c',
'SourceLine' => '572' 'SourceLine' => '572'
}, },
'233035' => { '233066' => {
'Header' => 'openjpeg.h', 'Header' => 'openjpeg.h',
'Param' => { 'Param' => {
'0' => { '0' => {
@ -658,12 +658,12 @@ $VAR1 = {
'Source' => 'openjpeg.c', 'Source' => 'openjpeg.c',
'SourceLine' => '670' 'SourceLine' => '670'
}, },
'233166' => { '233197' => {
'Header' => 'openjpeg.h', 'Header' => 'openjpeg.h',
'Param' => { 'Param' => {
'0' => { '0' => {
'name' => 'p_codec', 'name' => 'p_codec',
'type' => '230715' 'type' => '230746'
}, },
'1' => { '1' => {
'name' => 'parameters', 'name' => 'parameters',
@ -684,12 +684,12 @@ $VAR1 = {
'Source' => 'openjpeg.c', 'Source' => 'openjpeg.c',
'SourceLine' => '731' 'SourceLine' => '731'
}, },
'233304' => { '233335' => {
'Header' => 'openjpeg.h', 'Header' => 'openjpeg.h',
'Param' => { 'Param' => {
'0' => { '0' => {
'name' => 'p_codec', 'name' => 'p_codec',
'type' => '230715' 'type' => '230746'
}, },
'1' => { '1' => {
'name' => 'p_image', 'name' => 'p_image',
@ -710,12 +710,12 @@ $VAR1 = {
'Source' => 'openjpeg.c', 'Source' => 'openjpeg.c',
'SourceLine' => '749' 'SourceLine' => '749'
}, },
'233458' => { '233489' => {
'Header' => 'openjpeg.h', 'Header' => 'openjpeg.h',
'Param' => { 'Param' => {
'0' => { '0' => {
'name' => 'p_info', 'name' => 'p_info',
'type' => '230715' 'type' => '230746'
}, },
'1' => { '1' => {
'name' => 'p_stream', 'name' => 'p_stream',
@ -731,12 +731,12 @@ $VAR1 = {
'Source' => 'openjpeg.c', 'Source' => 'openjpeg.c',
'SourceLine' => '768' 'SourceLine' => '768'
}, },
'233589' => { '233620' => {
'Header' => 'openjpeg.h', 'Header' => 'openjpeg.h',
'Param' => { 'Param' => {
'0' => { '0' => {
'name' => 'p_codec', 'name' => 'p_codec',
'type' => '230715' 'type' => '230746'
}, },
'1' => { '1' => {
'name' => 'p_stream', 'name' => 'p_stream',
@ -752,12 +752,12 @@ $VAR1 = {
'Source' => 'openjpeg.c', 'Source' => 'openjpeg.c',
'SourceLine' => '785' 'SourceLine' => '785'
}, },
'233720' => { '233751' => {
'Header' => 'openjpeg.h', 'Header' => 'openjpeg.h',
'Param' => { 'Param' => {
'0' => { '0' => {
'name' => 'p_codec', 'name' => 'p_codec',
'type' => '230715' 'type' => '230746'
}, },
'1' => { '1' => {
'name' => 'p_stream', 'name' => 'p_stream',
@ -773,7 +773,7 @@ $VAR1 = {
'Source' => 'openjpeg.c', 'Source' => 'openjpeg.c',
'SourceLine' => '802' 'SourceLine' => '802'
}, },
'233851' => { '233882' => {
'Header' => 'openjpeg.h', 'Header' => 'openjpeg.h',
'Param' => { 'Param' => {
'0' => { '0' => {
@ -804,12 +804,12 @@ $VAR1 = {
'Source' => 'openjpeg.c', 'Source' => 'openjpeg.c',
'SourceLine' => '822' 'SourceLine' => '822'
}, },
'234197' => { '234228' => {
'Header' => 'openjpeg.h', 'Header' => 'openjpeg.h',
'Param' => { 'Param' => {
'0' => { '0' => {
'name' => 'p_codec', 'name' => 'p_codec',
'type' => '230715' 'type' => '230746'
}, },
'1' => { '1' => {
'name' => 'p_tile_index', 'name' => 'p_tile_index',
@ -840,12 +840,12 @@ $VAR1 = {
'Source' => 'openjpeg.c', 'Source' => 'openjpeg.c',
'SourceLine' => '852' 'SourceLine' => '852'
}, },
'234397' => { '234428' => {
'Header' => 'openjpeg.h', 'Header' => 'openjpeg.h',
'Param' => { 'Param' => {
'0' => { '0' => {
'name' => 'p_codec', 'name' => 'p_codec',
'type' => '230715' 'type' => '230746'
} }
}, },
'Reg' => { 'Reg' => {
@ -856,12 +856,12 @@ $VAR1 = {
'Source' => 'openjpeg.c', 'Source' => 'openjpeg.c',
'SourceLine' => '879' 'SourceLine' => '879'
}, },
'234498' => { '234529' => {
'Header' => 'openjpeg.h', 'Header' => 'openjpeg.h',
'Param' => { 'Param' => {
'0' => { '0' => {
'name' => 'p_codec', 'name' => 'p_codec',
'type' => '230715' 'type' => '230746'
}, },
'1' => { '1' => {
'name' => 'info_flag', 'name' => 'info_flag',
@ -882,12 +882,12 @@ $VAR1 = {
'Source' => 'openjpeg.c', 'Source' => 'openjpeg.c',
'SourceLine' => '897' 'SourceLine' => '897'
}, },
'234635' => { '234666' => {
'Header' => 'openjpeg.h', 'Header' => 'openjpeg.h',
'Param' => { 'Param' => {
'0' => { '0' => {
'name' => 'p_codec', 'name' => 'p_codec',
'type' => '230715' 'type' => '230746'
} }
}, },
'Reg' => { 'Reg' => {
@ -898,12 +898,12 @@ $VAR1 = {
'Source' => 'openjpeg.c', 'Source' => 'openjpeg.c',
'SourceLine' => '913' 'SourceLine' => '913'
}, },
'234799' => { '234830' => {
'Header' => 'openjpeg.h', 'Header' => 'openjpeg.h',
'Param' => { 'Param' => {
'0' => { '0' => {
'name' => 'p_codec', 'name' => 'p_codec',
'type' => '230715' 'type' => '230746'
} }
}, },
'Reg' => { 'Reg' => {
@ -914,12 +914,12 @@ $VAR1 = {
'Source' => 'openjpeg.c', 'Source' => 'openjpeg.c',
'SourceLine' => '941' 'SourceLine' => '941'
}, },
'234884' => { '234915' => {
'Header' => 'openjpeg.h', 'Header' => 'openjpeg.h',
'Param' => { 'Param' => {
'0' => { '0' => {
'name' => 'p_cstr_index', 'name' => 'p_cstr_index',
'type' => '234944' 'type' => '234975'
} }
}, },
'Reg' => { 'Reg' => {
@ -930,7 +930,7 @@ $VAR1 = {
'Source' => 'openjpeg.c', 'Source' => 'openjpeg.c',
'SourceLine' => '952' 'SourceLine' => '952'
}, },
'234950' => { '234981' => {
'Header' => 'openjpeg.h', 'Header' => 'openjpeg.h',
'Param' => { 'Param' => {
'0' => { '0' => {
@ -956,7 +956,7 @@ $VAR1 = {
'Source' => 'openjpeg.c', 'Source' => 'openjpeg.c',
'SourceLine' => '967' 'SourceLine' => '967'
}, },
'235069' => { '235100' => {
'Header' => 'openjpeg.h', 'Header' => 'openjpeg.h',
'Param' => { 'Param' => {
'0' => { '0' => {
@ -1376,7 +1376,7 @@ $VAR1 = {
'Size' => '4', 'Size' => '4',
'Type' => 'Intrinsic' 'Type' => 'Intrinsic'
}, },
'168555' => { '168612' => {
'BaseType' => '76855', 'BaseType' => '76855',
'Name' => 'opj_codestream_info_v2_t**', 'Name' => 'opj_codestream_info_v2_t**',
'Size' => '8', 'Size' => '8',
@ -2041,7 +2041,7 @@ $VAR1 = {
'Size' => '8', 'Size' => '8',
'Type' => 'Pointer' 'Type' => 'Pointer'
}, },
'219737' => { '219768' => {
'Header' => 'openjpeg.h', 'Header' => 'openjpeg.h',
'Line' => '292', 'Line' => '292',
'Memb' => { 'Memb' => {
@ -2074,15 +2074,15 @@ $VAR1 = {
'Size' => '4', 'Size' => '4',
'Type' => 'Enum' 'Type' => 'Enum'
}, },
'219787' => { '219818' => {
'BaseType' => '219737', 'BaseType' => '219768',
'Header' => 'openjpeg.h', 'Header' => 'openjpeg.h',
'Line' => '299', 'Line' => '299',
'Name' => 'OPJ_CODEC_FORMAT', 'Name' => 'OPJ_CODEC_FORMAT',
'Size' => '4', 'Size' => '4',
'Type' => 'Typedef' 'Type' => 'Typedef'
}, },
'221544' => { '221575' => {
'BaseType' => '141', 'BaseType' => '141',
'Header' => 'openjpeg.h', 'Header' => 'openjpeg.h',
'Line' => '578', 'Line' => '578',
@ -2090,13 +2090,13 @@ $VAR1 = {
'Size' => '8', 'Size' => '8',
'Type' => 'Typedef' 'Type' => 'Typedef'
}, },
'230715' => { '230746' => {
'BaseType' => '221544', 'BaseType' => '221575',
'Name' => 'opj_codec_t*', 'Name' => 'opj_codec_t*',
'Size' => '8', 'Size' => '8',
'Type' => 'Pointer' 'Type' => 'Pointer'
}, },
'234944' => { '234975' => {
'BaseType' => '74651', 'BaseType' => '74651',
'Name' => 'opj_codestream_index_t**', 'Name' => 'opj_codestream_index_t**',
'Size' => '8', 'Size' => '8',

View File

@ -20,7 +20,13 @@
<br/> <br/>
<h1>Changelog from Git</h1><br/><br/> <h1>Changelog from Git</h1><br/><br/>
<div class='changelog'> <div class='changelog'>
<pre class='wrap'>commit 297f202104fc0ff6b0627e15e7e6883c915f80bf <pre class='wrap'>commit c67e1cd73f6c1fca081f5445af4f65b240c40edc
Author: Even Rouault &lt;even.rouault@spatialys.com&gt;
Date: 2017-09-06 17:33:38 +0200
Fix invalid access out of bounds, and bad behaviour, when calling repeatdly opj_get_decoded_tile() on an image with a color palette
commit 297f202104fc0ff6b0627e15e7e6883c915f80bf
Author: Even Rouault &lt;even.rouault@spatialys.com&gt; Author: Even Rouault &lt;even.rouault@spatialys.com&gt;
Date: 2017-09-06 16:49:28 +0200 Date: 2017-09-06 16:49:28 +0200
@ -611,7 +617,6 @@ Date: 2017-08-13 22:57:31 +0200
Signed-off-by: Stefan Weil &lt;sw@weilnetz.de&gt; Signed-off-by: Stefan Weil &lt;sw@weilnetz.de&gt;
commit 0b4c3ce75d11600ebc6675bd871f78ca3c95bc60 commit 0b4c3ce75d11600ebc6675bd871f78ca3c95bc60
Merge: a35b489 9f75088
Author: Even Rouault &lt;even.rouault@mines-paris.org&gt; Author: Even Rouault &lt;even.rouault@mines-paris.org&gt;
Date: 2017-08-11 15:13:35 +0200 Date: 2017-08-11 15:13:35 +0200
@ -619,18 +624,6 @@ Date: 2017-08-11 15:13:35 +0200
Changes in converttif.c for PPC64 Changes in converttif.c for PPC64
commit 9f750884f91a4f1b9ca3e6a401057c21a7e2bd99
Author: szukw000 &lt;szukw000@arcor.de&gt;
Date: 2017-08-11 00:06:23 +0200
Changes in converttif.c for PPC64
commit a35b4891340dcecf2b248c7e57a90bf7d7aa9b2f
Author: Even Rouault &lt;even.rouault@spatialys.com&gt;
Date: 2017-08-10 16:58:36 +0200
Fix argument order in error message of previous commit
...</pre></div> ...</pre></div>
</body> </body>

View File

@ -560,7 +560,7 @@ $VAR1 = {
'2.1.1' => '2016-07-05 14:54', '2.1.1' => '2016-07-05 14:54',
'2.1.2' => '2016-09-28 18:18', '2.1.2' => '2016-09-28 18:18',
'2.2.0' => '2017-08-10 00:31', '2.2.0' => '2017-08-10 00:31',
'current' => '2017-09-06 16:49:28' 'current' => '2017-09-06 17:33:38'
}, },
'HeadersDiff' => { 'HeadersDiff' => {
'1.1' => { '1.1' => {
@ -648,7 +648,7 @@ $VAR1 = {
'Maintainer' => 'OpenJPEG team', 'Maintainer' => 'OpenJPEG team',
'MaintainerUrl' => 'http://www.openjpeg.org/', 'MaintainerUrl' => 'http://www.openjpeg.org/',
'PackageDiff' => {}, 'PackageDiff' => {},
'ScmUpdateTime' => '1504711123', 'ScmUpdateTime' => '1504714181',
'Soname' => { 'Soname' => {
'1.1' => { '1.1' => {
'lib/libopenjpeg.so' => 'libopenjpeg.so' 'lib/libopenjpeg.so' => 'libopenjpeg.so'

View File

@ -30,7 +30,7 @@
<th>Headers<br/>Diff</th> <th>Headers<br/>Diff</th>
</tr> </tr>
<tr id='current'><td>current</td> <tr id='current'><td>current</td>
<td>2017-09-06<br/>16:49</td> <td>2017-09-06<br/>17:33</td>
<td>7</td> <td>7</td>
<td><a href='../../changelog/openjpeg/current/log.html'>changelog</a></td> <td><a href='../../changelog/openjpeg/current/log.html'>changelog</a></td>
<td class='ok'><a href='../../objects_report/openjpeg/2.2.0/current/report.html'>100%</a></td> <td class='ok'><a href='../../objects_report/openjpeg/2.2.0/current/report.html'>100%</a></td>
@ -161,7 +161,7 @@
<td>N/A</td> <td>N/A</td>
<td>N/A</td> <td>N/A</td>
</tr> </tr>
</table><br/>Maintained by <a href='http://www.openjpeg.org/'>OpenJPEG team</a>. Last updated on Wed Sep 6 15:19:08 2017.<br/> </table><br/>Maintained by <a href='http://www.openjpeg.org/'>OpenJPEG team</a>. Last updated on Wed Sep 6 16:10:04 2017.<br/>
<br/> <br/>
<hr/> <hr/>
<div align='right'><a class='home' title="Andrey Ponomarenko's ABI laboratory" href='http://abi-laboratory.pro/'>abi-laboratory.pro</a></div> <div align='right'><a class='home' title="Andrey Ponomarenko's ABI laboratory" href='http://abi-laboratory.pro/'>abi-laboratory.pro</a></div>