3v4l.org

run code in 300+ PHP versions simultaneously
<?php // Author: Carl Turechek define( 'DBTYPE', 'mysql'); define( 'DBHOST', 'localhost'); define( 'DBNAME', 'database'); define( 'DBUSER', 'root'); define( 'DBPASS', ''); define( 'DBSCHEMA',''); function get_dbconn($dbname = DBNAME) { $dbDat = new stdClass; $dbDat->name = $dbname; try { $dbh = new PDO( sprintf("%s:host=%s;",DBTYPE,DBHOST),DBUSER,DBPASS); $dbs = $dbh->query("SHOW DATABASES LIKE '$dbname'"); if( ( $db = $dbs->fetchColumn( 0 ) ) !== false ) { //echo $db.'<br>'; if(!$dbh2 = new PDO( sprintf("%s:host=%s;dbname=%s",DBTYPE,DBHOST,$dbname),DBUSER,DBPASS)){ echo "PDO Error 1.2:\n";print_r($pdo->errorInfo()); }else{ $dbDat->pdo = $dbh2; return $dbDat;//return pdo object if table name is found } } } catch (PDOExeption $e){ echo $e->getmessage(); } } class dbCommands{ /**** connect and create $dbname if no $pdo object present****/ function createDB($pdo,$dbname){ if (!$pdo) {//if no db then create, previously checked try { $dbh = new PDO( sprintf("%s:host=%s;",DBTYPE,DBHOST),DBUSER,DBPASS); $dbh->exec("CREATE DATABASE $dbname;") /* CREATE USER '$user'@'localhost' IDENTIFIED BY '$pass'; GRANT ALL ON `$db`.* TO '$user'@'localhost'; FLUSH PRIVILEGES;*/ or die(print_r($dbh->errorInfo(), true)); } catch (PDOException $e) { die("DB ERROR: ". $e->getMessage()); }echo "Database $dbname created successfully\n"; echo"<form action='' method='get'>"; echo'<input type="hidden" name="db" value="',$dbname,'"> <input type="submit"> </form>'; }else{ echo'Connected to:',$dbname;echo'<br>'; } } /**** delete databases ****/ function deleteDBs($pdo){ if($pdo and @$_GET['removeDatabase']){ try { if($pdo->exec( "DROP DATABASE IF EXISTS {$_GET['removeDatabase']}" )){ } echo'<div style="float:left;border: solid #000 1px;display: inline-block;"><h2>dropping ',$dbname,'</h2>'; }catch (PDOException $e) { echo $e->getMessage(); } } } /**** show helper for db and table links ****/ function showHelper($id,$type){ $link=''; if($type=='db'){$link.=$type.'='.$id; return'<a href="?'.$link.'">'.$id.'</a><br>'; } if($type=='table'){$link.='db='.$_GET['db'].'&'.$type.'='.$id;} return'<a href="?'.$link.'">'.$id.'</a><a style="float:right;color:#f00;" href="?db='.$_GET['db'].'&removeTableName='.$id.'">X</a><br>'; } /**** show all databases ****/ function showDBs($pdo){ $dbLinks=''; if($pdo){ $type='database'; echo'<div style="float:left;border: solid #000 1px;display: inline-block;"><h2>All Databases</h2>'; $this->displayAddRemove($type); $dbs = $pdo->query( 'SHOW DATABASES' ); while( ( $db = $dbs->fetchColumn( 0 ) ) !== false ) { $dbLinks.=$this->showHelper($db,'db'); } echo $dbLinks,'</div>'; } } /*** Add / Remove helper for dbs / tables */ function displayAddRemove($type){ if($type=='table'){ echo'<div style="float:left;border: solid #000 1px;display: inline-block;"><h2>All tables in '.$_GET['db'].'</h2>'; echo"<a href='?db={$_GET['db']}&addTable=true'>add</a> - <a href='?db={$_GET['db']}&removeTable=true'>remove</a><hr>"; /* show remove table form*/ if(@$_GET['addTable']==='true'){ echo"<form action='' method='get'>"; echo'Name: <input type="text" name="addTableName"><br> <input type="hidden" name="db" value="',$_GET["db"],'"> <input type="submit"> </form>'; } /* show remove table form*/ if(@$_GET['removeTable']==='true'){ echo"<form action='' method='get'>"; echo'Name: <input type="text" name="removeTableName"><br> <input type="hidden" name="db" value="',$_GET["db"],'"> <input type="submit"> </form>'; } } if($type=='database'){ echo"<a href='?addDB=true'>add</a> - <a href='?removeDB=true'>remove</a><hr>"; /* show remove table form*/ if(@$_GET['addDB']==='true'){ echo"<form action='' method='get'>"; echo'Name: <input type="text" name="addDatabase"><br> <input type="submit"> </form>'; } /* show remove table form*/ if(@$_GET['removeDB']==='true'){ echo"<form action='' method='get'>"; echo'Name: <input type="text" name="removeDatabase"><br> <input type="submit"> </form>'; } } } /**** show all tables in $dbname w/ add remove forms****/ function showTables($pdo){ $tblLinks=''; if($pdo and isset($_GET['db'])){ $type='table'; $this->displayAddRemove($type); if(!$tbls = $pdo->query( 'SHOW TABLES' )){ echo "PDO Error 1.2:\n";print_r($pdo->errorInfo()); }else{ while( ( $tbl = $tbls->fetchColumn( 0 ) ) !== false ) { $tblLinks.=$this->showHelper($tbl,'table'); } echo $tblLinks; } echo'</div>'; } } /**** add tables in $dbname ****/ function addTable($pdo){ $tblLinks=''; if($pdo and (@$_GET['addTableName'])){ echo'<div style="border: solid #000 1px;"><h2>Creating table ',$_GET['addTableName'],'</h2>'; if($pdo->exec( "CREATE TABLE {$_GET['addTableName']}(id INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY)ENGINE=MyISAM AUTO_INCREMENT=0 DEFAULT CHARSET=utf8;" )){ echo "PDO Error 1.2:\n";print_r($pdo->errorInfo()); }else{ echo'added!'; } echo'</div><br>'; } } /**** drop tables in $dbname ****/ function removeTable($pdo){ $tblLinks=''; if($pdo and (@$_GET['removeTableName'])){ echo'<div style="border: solid #000 1px;"><h2>Dropping table ',$_GET['removeTableName'],'</h2>'; if(false===$pdo->exec( "DROP TABLE {$_GET['removeTableName']}" )){ echo "PDO Error 1.2:\n";print_r($pdo->errorInfo()); }else{ echo'dropped!'; } echo'</div><br>'; } } /***** Display Table Content*****/ function showTableRows($pdo){ function getColumns($pdo, $reqType){ if(!$rows = $pdo->query( "SHOW COLUMNS FROM {$_GET['table']}")) { echo "PDO Error 1.2:\n";print_r($pdo->errorInfo()); }else{ $all = $rows->fetchAll(); //print_r($all); foreach($all as $key => $value){ if($test=explode('(',$value['Type'])){}else{$test=$value['Type'];} $allTypes[$key]['type']=$test[0]; $size=explode(')',@$test[1]); $allTypes[$key]['size']=$size[0]; $allTypes[$key]['name']=$value['Field'];//build array for later use //output fields to be added if($reqType !=='getAllArray'){ if(($test[0]==='int' or $test[0]==='bigint') and ($value['Field'] !=='id')){ echo '<div style="display:inline-block">',$test[0],'-',$value['Field'],'-',$size[0],': <br><input type="text" name="',$value['Field'],'"></div>'; } if($test[0]==='varchar' or $test[0]==='text' or $test[0]==='tinytext' or $test[0]==='mediumtext' or $test[0]==='longtext'){ echo '<div style="display:inline-block">',$test[0],'-',$value['Field'],'-',$size[0],': <br><textarea type="text" name="',$value['Field'],'"></textarea></div>'; } } } if($reqType =='getAllArray'){ return $allTypes; } } } if($pdo and (@$_GET['table'])){ echo'<div style="float:left;border: solid #000 1px;display: inline-block;"><h2>All rows in ',$_GET['table'],'</h2>'; echo"<a href='?db={$_GET['db']}&table={$_GET['table']}&addRow=true'>add</a> Rows<hr>";//rows echo"<a href='?db={$_GET['db']}&table={$_GET['table']}&addCol=true'>add</a> - <a href='?db={$_GET['db']}&table={$_GET['table']}&removeCol=true'>remove</a> Columns<hr>";//columns /* show add row form*/ if(@$_GET['addRow']==='true'){ echo"<form action='' method='post'>"; getColumns($pdo, @$reqType); echo'<input type="hidden" name="db" value="',$_GET["db"],'"><input type="hidden" name="table" value="',$_GET["table"],'"><input type="hidden" name="addingRow" value="true"> <input type="submit"> </form>'; } /* show remove column form*/ if(@$_GET['addCol']==='true'){ echo"<form action='' method='get'>"; echo'Name: <input type="text" name="addColName"><br> After: <input type="text" name="afterColName"><br> Type: <input list="addColType" name="addColType"> <datalist id="addColType"> <option value="int">int</option> <option value="bigint">bigint</option> <option value="text">text</option> <option value="char">char</option> <option value="varchar">varchar</option> <option value="timestamp">timestamp</option> </datalist><br> Size: <input type="text" name="addColSize"><br> <input type="hidden" name="db" value="',$_GET["db"],'"><input type="hidden" name="table" value="',$_GET["table"],'"> <input type="submit"> </form>'; } /* show remove row form*/ if(@$_GET['removeCol']==='true'){ echo"<form action='' method='get'>"; echo'Name: <input type="text" name="removeColName"><br> <input type="hidden" name="db" value="',$_GET["db"],'"><input type="hidden" name="table" value="',$_GET["table"],'"> <input type="submit"> </form>'; } $reqType='getAllArray'; $allTypes=getColumns($pdo, $reqType); echo'<h3>Showing Table: ',$_GET['table'],'</h3> <form action="" method="post" ><table cellpadding="2" cellspacing="2" border="1" class="display" id="example" style="text-align:left;"> <thead> <tr>'; echo'<th>delete</th>'; foreach($allTypes as $key => $value){ echo"<th><input type='text' name='column-head-{$value['name']}[]' value='{$value['name']}'>"; echo"<input type='text' style='width:30px;' name='column-size-[]' value='{$value['size']}'> <input list='column-type-' name='column-type-[]' value='{$value['type']}'> <datalist id='column-type-'> <option value='int'>int</option> <option value='bigint'>bigint</option> <option value='text'>text</option> <option value='char'>char</option> <option value='varchar'>varchar</option> <option value='timestamp'>timestamp</option> </datalist><br> </th>"; } echo'</tr> </thead> <tbody>'; if(!$rows = $pdo->query( "SELECT * FROM {$_GET['table']}" )){ echo "PDO Error 1.2:\n";print_r($pdo->errorInfo()); }else{ $rows->setFetchMode(PDO::FETCH_ASSOC); while(( $row = $rows->fetch( )) !== false ){ echo'<tr>'; foreach($row as $key => $value){ if($key=='id'){echo'<input type="hidden" name="pageIds[]" value="',$value,'">'; echo '<td align="center"><input type="checkbox" name="delete[]" value="',$value,'"></td>'; echo '<td>',$value,'</td>'; }else{ echo '<td><pre><textarea type="text" name="',$key,'[]" >'; $value = str_replace("&", "&amp;" ,$value); echo $value = str_replace("<", "&lt;",$value); echo '</textarea></pre></td>'; } } echo'</tr>'; } echo' </tbody> </table><p><input type="hidden" name="db" value="',$_GET["db"],'"><input type="hidden" name="table" value="',$_GET["table"],'"><input type="submit" name="update" value="Make Changes"></p> </form>'; } echo'</div>'; } } /**** add row into table ****/ function addRow($pdo){ if($pdo and (@$_GET['table']) and (@$_POST['addingRow'])){ echo'<div style="border: solid #000 1px;"><h2>adding row </h2>'; foreach($_POST as $key => $value){ if($key !== 'table' and $key !== 'db' and $key !== 'addingRow'){ $qk[]=$key; $qv[]=$pdo->quote($value); } } $q="INSERT INTO {$_POST['table']} ("; $q.=implode(',',$qk); $q.=") VALUES ("; $q.=implode(',',$qv); $q.=")"; if($pdo->exec( "$q" )){ }else{ echo "PDO Error 1.2:\n";print_r($pdo->errorInfo()); echo'added!'; } echo'</div><br>'; } } /**** add column to table ****/ function addCol($pdo, $after_column = 'id'){ if($pdo and (@$_GET['addColName'])){ if(@$_GET['afterColName']!==''){$after_column = @$_GET['afterColName'];} echo'<div style="border: solid #000 1px;"><h2>Adding Column ',$_GET['addColName'],'</h2>'; $typeSize =$_GET['addColType']; if(@$_GET['addColSize'] !=''){ $typeSize.='('.$_GET['addColSize'].')'; } if($pdo->exec( "ALTER TABLE {$_GET['table']} ADD {$_GET['addColName']} $typeSize AFTER $after_column" )){//maybe add type echo "PDO Error 1.2:\n";print_r($pdo->errorInfo()); }else{ echo'Column added!'; } echo'</div><br>'; } } /**** remove column from table ****/ function removeCol($pdo){ if($pdo and (@$_GET['removeColName']) and $_GET['removeColName'] !== 'id'){ echo'<div style="border: solid #000 1px;"><h2>removing Column '.$_GET['removeColName'].'</h2>'; if($pdo->exec( "ALTER TABLE {$_GET['table']} DROP {$_GET['removeColName']}" )){//add type echo "PDO Error 1.2:\n";print_r($pdo->errorInfo()); }else{ echo'Column: ',$_GET['removeColName'],' removed!'; } echo'</div><br>'; } } /**** update columns ****/ function updateColumns($pdo){ if($pdo and (@$_POST['update'])){ echo'<div style="border: solid #000 1px;"><h2>updating columns</h2>'; foreach($_POST as $key => $value){ if('column-head-' == substr($key, 0, 12)){ $newname[] = $value[0];$oldname[] =substr($key, 12); } } $i=0; foreach($_POST['column-type-'] as $key => $value){ if($i!==0){ $typesize =$value; if(@$_POST['column-size-'][$i]){ $typesize.='('.$_POST['column-size-'][$i].')'; } if($pdo->exec( "ALTER TABLE {$_GET['table']} CHANGE {$oldname[$i]} {$newname[$i]} $typesize" )){ // echo "PDO Error 1.2:\n";print_r($pdo->errorInfo()); } } $i++; } echo'</div><br>'; } } /**** update table ****/ function update($pdo){ if($pdo and (@$_POST['table']) and (@$_POST['update'])){ echo'<div style="border: solid #000 1px;"><h2>updating </h2>'; $i=0; foreach($_POST as $key => $value){ $i=0; if($key !== 'table' and $key !== 'db' and $key !== 'update' and $key !== 'id' and $key !== 'pageIds' and $key !== 'delete' and 'column-head-' !== substr($key, 0, 12) and 'column-size-' !== substr($key, 0, 12) and 'column-type-' !== substr($key, 0, 12)){ foreach($value as $key1 => $value1){ $toUpdate[$_POST['pageIds'][$i++]][$key]=$value1; } } } unset($value); unset($value1); foreach($toUpdate as $key => $value){ $i=0; $query="UPDATE {$_GET['table']} SET "; foreach($value as $column => $value1){ $ColandVal[]="$column=".$pdo->quote($value1); } $query.=implode(',',$ColandVal); $query.=" WHERE id='$key';";echo'<br>'; if($pdo->exec( "$query" )){ echo'added!';//echo "PDO Error 1.2:\n";print_r($pdo->errorInfo()); }else{ } } echo'</div><br>'; } } //****---delete-row function delRows($pdo){ if(@$_POST['delete']) foreach(@$_POST['delete'] as $key => $value){ if($pdo->exec( "DELETE FROM {$_GET['table']} WHERE id = $value" )){ echo'deleted!';// echo "PDO Error 1.2:\n";print_r($pdo->errorInfo()); } } } } /*-*-* end classes-- start program *-*-*/ $dbCommands = new dbCommands(); if(isset($_GET['addDatabase']) and $_GET['addDatabase']!==''){$dbname=@$_GET['addDatabase'];}else{$dbname=@$_GET['db'];} $dbDat=get_dbconn($dbname); if($dbDat !== null){$pdo=$dbDat->pdo;$dbname=$dbDat->name;} $dbCommands->createDB($pdo,$dbname);// create db $dbname if no connection to could be made. $dbCommands->deleteDBs($pdo); $dbCommands->addTable($pdo); $dbCommands->removeTable($pdo); $dbCommands->addRow($pdo); $dbCommands->addCol($pdo); $dbCommands->update($pdo); $dbCommands->updateColumns($pdo); $dbCommands->removeCol($pdo); $dbCommands->delRows($pdo); $dbCommands->showDBs($pdo); if($pdo and $dbname){ $dbCommands->showTables($pdo); $dbCommands->showTableRows($pdo); } ?>

Here you find the average performance (time & memory) of each version. A grayed out version indicates it didn't complete successfully (based on exit-code).

VersionSystem time (s)User time (s)Memory (MiB)
8.3.60.0130.00616.88
8.3.50.0110.01216.82
8.3.40.0060.01018.92
8.3.30.0170.00719.11
8.3.20.0060.00319.11
8.3.10.0080.00019.18
8.3.00.0190.00319.43
8.2.180.0080.01216.75
8.2.170.0120.00322.96
8.2.160.0130.00319.39
8.2.150.0060.00324.18
8.2.140.0030.00624.66
8.2.130.0090.00026.16
8.2.120.0000.00819.78
8.2.110.0030.00622.19
8.2.100.0060.00618.07
8.2.90.0040.00420.84
8.2.80.0030.00618.00
8.2.70.0030.00618.41
8.2.60.0000.00918.41
8.2.50.0040.00418.10
8.2.40.0040.00419.72
8.2.30.0030.00718.14
8.2.20.0070.00418.09
8.2.10.0030.00617.95
8.2.00.0050.00318.02
8.1.280.0040.01125.92
8.1.270.0050.00323.99
8.1.260.0080.00026.35
8.1.250.0040.00428.09
8.1.240.0030.00722.50
8.1.230.0090.00321.00
8.1.220.0040.00418.04
8.1.210.0060.00319.22
8.1.200.0060.00317.48
8.1.190.0030.00617.60
8.1.180.0040.00418.10
8.1.170.0040.00419.16
8.1.160.0000.00918.98
8.1.150.0050.00318.75
8.1.140.0040.00417.62
8.1.130.0040.00419.10
8.1.120.0000.00817.70
8.1.110.0060.00317.68
8.1.100.0040.00417.68
8.1.90.0000.00817.64
8.1.80.0050.00317.74
8.1.70.0000.00717.64
8.1.60.0000.00917.82
8.1.50.0040.00417.73
8.1.40.0050.00317.75
8.1.30.0060.00617.85
8.1.20.0080.00317.86
8.1.10.0030.00517.77
8.1.00.0030.00517.77
8.0.300.0000.00920.29
8.0.290.0060.00317.00
8.0.280.0060.00318.18
8.0.270.0020.00517.49
8.0.260.0000.00718.69
8.0.250.0030.00617.23
8.0.240.0040.00417.25
8.0.230.0090.00017.20
8.0.220.0000.00917.16
8.0.210.0030.00617.23
8.0.200.0040.00417.22
8.0.190.0040.00417.20
8.0.180.0070.00317.11
8.0.170.0000.00817.27
8.0.160.0050.00517.25
8.0.150.0030.00617.21
8.0.140.0040.00417.20
8.0.130.0090.00013.59
8.0.120.0000.00917.09
8.0.110.0040.00416.99
8.0.100.0060.00317.12
8.0.90.0050.00317.07
8.0.80.0160.00717.14
8.0.70.0090.00017.09
8.0.60.0030.00617.08
8.0.50.0040.00417.09
8.0.30.0040.01417.25
8.0.20.0090.00917.33
8.0.10.0000.00917.30
8.0.00.0100.01017.03
7.4.330.0000.00613.20
7.4.320.0070.00016.75
7.4.300.0000.00816.69
7.4.290.0040.00416.88
7.4.280.0040.00416.73
7.4.270.0000.00716.73
7.4.260.0070.00013.41
7.4.250.0030.00816.72
7.4.240.0030.00516.79
7.4.230.0030.00516.64
7.4.220.0080.01216.72
7.4.210.0080.00816.75
7.4.200.0040.00416.71
7.4.190.0030.00616.71
7.4.160.0080.00816.70
7.4.150.0150.00816.65
7.4.140.0130.01017.86
7.4.130.0120.00816.82
7.4.120.0120.00616.96
7.4.110.0150.00316.64
7.4.100.0040.01516.65
7.4.90.0120.01216.69
7.4.80.0130.01019.39
7.4.70.0070.01016.76
7.4.60.0090.01316.85
7.4.50.0000.00516.77
7.4.40.0120.00616.55
7.4.30.0150.00316.71
7.4.00.0070.01015.43
7.3.330.0000.00613.51
7.3.320.0000.00713.55
7.3.310.0070.00016.63
7.3.300.0000.00716.61
7.3.290.0040.01216.63
7.3.280.0030.01316.61
7.3.270.0090.00916.54
7.3.260.0120.00616.71
7.3.240.0180.00616.59
7.3.230.0070.01016.50
7.3.210.0100.01016.64
7.3.200.0090.00916.63
7.3.190.0120.00616.62
7.3.180.0150.00316.50
7.3.170.0120.00616.69
7.3.160.0060.00916.56
7.3.120.0060.00915.20
7.3.10.0070.00716.61
7.3.00.0070.00716.55
7.2.330.0120.00616.95
7.2.320.0030.02116.80
7.2.310.0150.00316.75
7.2.300.0110.00716.69
7.2.290.0060.01617.08
7.2.130.0080.00816.88
7.2.120.0000.01416.95
7.2.110.0060.01217.09
7.2.100.0100.00716.70
7.2.90.0090.00616.77
7.2.80.0020.01216.95
7.2.70.0090.00316.70
7.2.60.0040.01016.81
7.2.50.0030.00916.75
7.2.40.0080.00916.84
7.2.30.0060.00916.83
7.2.20.0030.00916.77
7.2.10.0090.00616.97
7.2.00.0090.00818.05
7.1.250.0060.00315.88
7.1.200.0080.00615.93
7.1.100.0030.00918.35
7.1.70.0030.01317.16
7.1.60.0100.01319.21
7.1.50.0100.01616.69
7.1.00.0000.03722.31
7.0.200.0250.00616.60
7.0.140.0030.07322.16
7.0.120.0030.03322.18
7.0.100.0030.04020.36
7.0.90.0130.04720.15
7.0.80.0070.04020.11
7.0.70.0000.04720.12
7.0.60.0130.04020.16
7.0.50.0030.04320.50
7.0.40.0000.04320.14
7.0.30.0070.04020.15
7.0.20.0070.04019.99
7.0.10.0000.04720.14
7.0.00.0000.04720.19
5.6.280.0000.07721.21
5.6.250.0070.03720.75
5.6.240.0000.04720.63
5.6.230.0070.04720.79
5.6.220.0100.03720.71
5.6.210.0070.04020.69
5.6.200.0000.04721.09
5.6.190.0030.04321.22
5.6.180.0030.05321.09
5.6.170.0030.04321.14
5.6.160.0000.04721.20
5.6.150.0030.04321.19
5.6.140.0000.06721.07
5.6.130.0030.05321.07
5.6.120.0070.04021.14
5.6.110.0130.08021.13
5.6.100.0000.09321.22
5.6.90.0070.05321.20
5.6.80.0030.05020.46
5.6.70.0170.06020.68
5.6.60.0100.07720.54
5.6.50.0130.06320.68
5.6.40.0030.09020.56
5.6.30.0070.08720.60
5.6.20.0100.07720.52
5.6.10.0100.07720.59
5.6.00.0200.06320.52
5.5.380.0000.04720.63
5.5.370.0070.03720.57
5.5.360.0070.04020.47
5.5.350.0070.04020.47
5.5.340.0100.03720.91
5.5.330.0070.04020.97
5.5.320.0000.04720.86
5.5.310.0070.04021.00
5.5.300.0070.04021.05
5.5.290.0030.05320.93
5.5.280.0030.08320.95
5.5.270.0070.07320.96
5.5.260.0070.08721.01
5.5.250.0170.07320.86
5.5.240.0100.07720.41
5.5.230.0130.07320.43
5.5.220.0070.05720.28
5.5.210.0070.09020.35
5.5.200.0000.04320.26
5.5.190.0170.07320.29
5.5.180.0170.07020.41
5.5.160.0200.07020.24
5.5.150.0030.07020.35
5.5.140.0130.07320.12
5.5.130.0130.07720.39
5.5.120.0130.07720.28
5.5.110.0200.06320.27
5.5.100.0030.05320.09
5.5.90.0030.04320.17
5.5.80.0100.07320.14
5.5.70.0130.05020.21
5.5.60.0130.07320.23
5.5.50.0170.06320.18
5.5.40.0130.06720.18
5.5.30.0230.06320.25
5.5.20.0070.04320.22
5.5.10.0100.04320.11
5.5.00.0100.06020.13
5.4.450.0070.03719.23
5.4.440.0070.05719.43
5.4.430.0100.08019.32
5.4.420.0030.09019.43
5.4.410.0070.08319.37
5.4.400.0130.05719.10
5.4.390.0030.07319.10
5.4.380.0100.05718.95
5.4.370.0030.07719.14
5.4.360.0070.07319.18
5.4.350.0100.06319.11
5.4.340.0000.06019.02
5.4.320.0070.08019.13
5.4.310.0070.04319.02
5.4.300.0030.04718.96
5.4.290.0030.04719.17
5.4.280.0130.07019.23
5.4.270.0130.06319.11
5.4.260.0100.07719.16
5.4.250.0130.06319.09
5.4.240.0030.05018.91
5.4.230.0030.08019.00
5.4.220.0100.04719.09
5.4.210.0000.06719.27
5.4.200.0070.08019.13
5.4.190.0030.07718.94
5.4.180.0130.07318.99
5.4.170.0170.06718.90
5.4.160.0100.07319.07
5.4.150.0070.07719.15
5.4.140.0070.06016.39
5.4.130.0100.07316.35
5.4.120.0100.06716.60
5.4.110.0130.06316.39
5.4.100.0070.03716.61
5.4.90.0100.03316.61
5.4.80.0030.08016.54
5.4.70.0070.04316.52
5.4.60.0070.07016.39
5.4.50.0100.07316.39
5.4.40.0130.03716.52
5.4.30.0100.07316.58
5.4.20.0170.06016.52
5.4.10.0170.06316.58
5.4.00.0100.06015.95
5.3.290.0000.05315.58
5.3.280.0070.03715.58
5.3.270.0070.07715.58
5.3.260.0100.06715.58
5.3.250.0070.07715.58
5.3.240.0100.07015.58
5.3.230.0100.05015.58
5.3.220.0130.06015.58
5.3.210.0130.04715.58
5.3.200.0070.07315.58
5.3.190.0170.07315.58
5.3.180.0100.08315.58
5.3.170.0070.07315.58
5.3.160.0100.06015.58
5.3.150.0130.07315.58
5.3.140.0130.04315.58
5.3.130.0100.06015.58
5.3.120.0100.06315.58
5.3.110.0030.05015.58
5.3.100.0030.05015.58
5.3.90.0100.07715.58
5.3.80.0030.04315.58
5.3.70.0170.06715.58
5.3.60.0100.07015.58
5.3.50.0100.07015.58
5.3.40.0070.06715.58
5.3.30.0030.06015.58
5.3.20.0070.07015.58
5.3.10.0030.04015.58
5.3.00.0070.06315.58

preferences:
45.47 ms | 401 KiB | 5 Q