3v4l.org

run code in 300+ PHP versions simultaneously
<?php // ------------------------------------------------------------------------------------------------- // posbirame vsechna prijata data z formulare (../kalkulace.php) - doplnit if isset // info o zakazce $oid = $_GET['offerIdNo']; $of = $_GET['offerName']; $ev = $_GET['eventName']; $arsum = $_GET['summaryArea']; // ucastnik - dodavatel $supName = $_GET['supplierName']; $supAddr = $_GET['supplierAddress']; $supTel = $_GET['supplierTelContact']; $supEmail = $_GET['supplierEmail']; $supIco = $_GET['supplierIco']; $supDic = $_GET['supplierDic']; $supNote = $_GET['supplierNotes']; // ucastnik - klient $clName = $_GET['clientName']; $clAddr = $_GET['clientAddress']; $clTel = $_GET['clientTelContact']; $clEmail = $_GET['clientEmail']; $clIco = $_GET['clientIco']; $clDic = $_GET['clientDic']; $clNote = $_GET['clientNotes']; // polozky jednotlivych sekci // material polozka $matn = $_GET['materialItemName']; $matup = $_GET['materialUnitPrice']; $matq = $_GET['materialItemQuantity']; $matut = $_GET['materialUnitType']; $matic = $_GET['materialItemCoeff']; $matipnv = $_GET['materialItemPriceNoVat']; $mativ = $_GET['materialItemVat']; $matisv = $_GET['materialItemSumVat']; $matipiv = $_GET['materialPriceInVat']; // montazni prace polozka $servn = $_GET['serviceItemName']; $servup = $_GET['serviceUnitPrice']; $servq = $_GET['serviceItemQuantity']; $servut = $_GET['serviceUnitType']; $servic = $_GET['serviceItemCoeff']; $servipnv = $_GET['serviceItemPriceNoVat']; $serviv = $_GET['serviceItemVat']; $servisv = $_GET['serviceItemSumVat']; $servipiv = $_GET['servicePriceInVat']; // vedlejsi rozpoctove naklady polozka $ocn = $_GET['otherCostsItemName']; $ocup = $_GET['otherCostsUnitPrice']; $ocq = $_GET['otherCostsItemQuantity']; $ocut = $_GET['otherCostsUnitType']; $ocic = $_GET['otherCostsItemCoeff']; $ocipnv = $_GET['otherCostsItemPriceNoVat']; $ociv = $_GET['otherCostsItemVat']; $ocisv = $_GET['otherCostsItemSumVat']; $ocipiv = $_GET['otherCostsPriceInVat']; // celkove sumy sekci bez a vcetne DPH $matAllNoVat = $_GET['materialAllPriceNoVat']; $matAllVat = $_GET['materialAllPriceVat']; $matAllInVat = $_GET['materialAllPriceInVat']; $servAllNoVat = $_GET['serviceAllPriceNoVat']; $servAllVat = $_GET['serviceAllPriceVat']; $servAllInVat = $_GET['serviceAllPriceInVat']; $ocAllNoVat = $_GET['otherCostsPriceNoVat']; $ocAllVat = $_GET['otherCostsPriceVat']; $ocAllInVat = $_GET['otherCostsPriceInVat']; // celkovy rozpocet bez a vcetne DPH $totBudNoVat = $_GET['totalBudgetValueNoVat']; $totBudSVat = $_GET['totalBudgetSumVat']; $totBudInVat = $_GET['totalBudgetValueInVat']; // ------------------------------------------------------------------------------------------------- // pripojime knihovnu tcpdf, s jejiz pomoci budeme vykreslovani ovladat, je doporuceno require_once require_once('tcpdf.php'); // ------------------------------------------------------------------------------------------------- // tridy class pdf extends TCPDF { // hlavicka + funkce pozadi stranky public function Header() { // ziskame aktualni sirku, $bMargin = $this->getBreakMargin(); // automaticky radkujeme, $auto_page_break = $this->AutoPageBreak; // automaticke odsazeni nechceme. $this->SetAutoPageBreak(false, 0); // vlozime soubor s pozadim stranky, $pozadi_uvod = 'body.jpg'; // roztahneme tento obrazek na celou obrazovku $this->Image($pozadi_uvod, 0, 0, 210, 297, '', '', '', false, 300, '', false, false, 0); } } // ------------------------------------------------------------------------------------------------- // vytvorime novy pdf dokument a prednastavime vlastnosti jako orientace, format A4, kodovani atd. $pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false); $pdf->SetCreator('Patrik Sokol'); $pdf->SetAuthor('SUKUP parkety'); $pdf->SetTitle('Cenova nabidka c. '.$oid); $pdf->SetSubject($of.' - '.$ev); // nastavime okraje $pdf->SetMargins(10, 10, 10); $pdf->SetHeaderMargin(0); $pdf->SetFooterMargin(0); // vratime se k nastaveni automatickeho odsazeni $pdf->SetAutoPageBreak(false, PDF_MARGIN_BOTTOM); // nastavime meritko (velikost) obrazku $pdf->setImageScale(PDF_IMAGE_SCALE_RATIO); // ------------------------------------------------------------------------------------------------- // nastaveni hlavniho fontu $pdf->SetFont('dejavusans', '', 12); $pdf->SetMargins(20,40); // ************************************************************************************************* // A ZACINAME UVODNI STRANKOU... // pridame novou stranku $pdf->AddPage(); // uvodni informace $uvod = '<span stroke="0.7" fill="true" strokecolor="rgb(89,67,32)" color="white" style="font-weight:bold;font-size:42pt;text-align:center;margin-bottom:100px;">'.$of.'</span><br /><br /><br /><br /><br /> <span stroke="0.5" fill="true" strokecolor="white" color="rgb(0,67,0)" style="font-weight:bold;font-size:32pt;text-align:center;">'.$ev.'</span><br /><br /><br /><br /><br /> <span style="text-align:center">celkova vymera podlahovych ploch:</span> <span style="font-size:32pt;color:maroon;">'.$arsum.'</span> <span style="text-align:center">m<sup>2</sup></span><br /><br /><br /><br /><br />'; $pdf->writeHTML($uvod, true, false, true, false, ''); // zucastneni - dodavatel a klient $ucastnici = '<table style="width:100%;text-align:center;" cellpadding="5"> <tr> <th></th> <th style="font-weight:bold;text-decoration:underline;">Dodavatel:</th> <th style="font-weight:bold;text-decoration:underline;">Objednatel:</th> </tr> <tr> <td style="font-style:italic;font-size:10pt;">jmeno:</td> <td>'.$supName.'</td> <td>'.$clName.'</td> </tr> <tr> <td style="font-style:italic;font-size:10pt;">adresa/sidlo:</td> <td>'.$supAddr.'</td> <td>'.$clAddr.'</td> </tr> <tr> <td style="font-style:italic;font-size:10pt;">tel. kontakt:</td> <td>'.$supTel.'</td> <td>'.$clTel.'</td> </tr> <tr> <td style="font-style:italic;font-size:10pt;">email:</td> <td>'.$supEmail.'</td> <td>'.$clEmail.'</td> </tr> <tr> <td style="font-style:italic;font-size:10pt;">ICO:</td> <td>'.$supIco.'</td> <td>'.$clIco.'</td> </tr> <tr> <td style="font-style:italic;font-size:10pt;">DIC:</td> <td>'.$supDic.'</td> <td>'.$clDic.'</td> </tr> <tr> <td style="font-style:italic;font-size:10pt;">poznamka:</td> <td>'.$supNote.'</td> <td>'.$clNote.'</td> </tr> </table>'; $pdf->writeHTML($ucastnici, true, false, true, false, ''); // ************************************************************************************************* // POKRACUJE VYPIS MATERIALOVYCH POLOZEK $pdf->AddPage(); $pdf->SetAutoPageBreak(true, PDF_MARGIN_BOTTOM); // nadpis material $material_uvod = '<span style="font-weight:bold;font-size:28pt;">Rozpis materialu na zakazku:</span>'; $pdf->writeHTML($material_uvod, true, false, true, false, ''); $material_table_ths = '<table><tr><th>nazev</th><th>jedn.cena</th><th>mnozstvi</th><th>jednotka</th><th>koeficient</th></tr><tr><th>celkem bez dph</th><th>dph sazba</th><th>celkem dph</th><th>celkem s dph</th>'; $pdf->writeHTML($material_table_ths, true, false, true, false, ''); $material_vypis_dat = ''; foreach( $matn as $key => $matn ) { $material_vypis_dat = "<table><tr><td>". $matn."</td><td>". $matup[$key]."</td><td>". $matq[$key]."</td><td>". $matut[$key]."</td><td>". $matic[$key]."</td></tr><tr><td>". $matipnv[$key]."</td><td>". $mativ[$key]."</td><td>". $matisv[$key]."</td><td>". $matipiv[$key]."</td></tr></table> <br />"; } $pdf->writeHTML($material_vypis_dat, true, false, true, false, ''); $material_konec = '<span style="font-weight:bold;">konec</span>'; $pdf->writeHTML($material_konec, true, false, true, false, ''); // ************************************************************************************************* // POKRACUJE VYPIS MONTAZNICH PRACI // nadpis montazni prace $montaze_uvod = '<span style="font-weight:bold;font-size:28pt;">Montazni prace spojene se zakazkou:</span>'; $pdf->writeHTML($montaze_uvod, true, false, true, false, ''); $montaze_vypis_dat = ''; foreach( $servn as $key => $servn ) { $montaze_vypis_dat .= "Nazev ".$servn. "Jednotkova cena ".$servup[$key]. "Mnozstvi ".$servq[$key]. "Jednotka ".$servut[$key]. "Koeficient ".$servic[$key]. "Celkem bez DPH ".$servipnv[$key]. "DPH sazba ".$serviv[$key]. "DPH celkem ".$servisv[$key]. "Celkem s DPH ".$servipiv[$key]. "<br /><br />"; } $pdf->writeHTML($montaze_vypis_dat, true, false, true, false, ''); // ************************************************************************************************* // POKRACUJE VYPIS VRN // nadpis vedlejsi rozpoctove naklady $vrn_uvod = '<span style="font-weight:bold;font-size:28pt;">Vedlejsi rozpoctove naklady:</span>'; $pdf->writeHTML($vrn_uvod, true, false, true, false, ''); $vedlejsi_naklady_vypis_dat = ''; foreach( $ocn as $key => $ocn ) { $vedlejsi_naklady_vypis_dat .= "Nazev ".$ocn. "Jednotkova cena ".$ocup[$key]. "Mnozstvi ".$ocq[$key]. "Jednotka ".$ocut[$key]. "Koeficient ".$ocic[$key]. "Celkem bez DPH ".$ocipnv[$key]. "DPH sazba ".$ociv[$key]. "DPH celkem ".$ocisv[$key]. "Celkem s DPH ".$ocipiv[$key]. "<br /><br />"; } $pdf->writeHTML($vedlejsi_naklady_vypis_dat, true, false, true, false, ''); // ************************************************************************************************* // BLIZIME SE KE KONCI, BUDEME VYPLNOVAT SUMY CELKOVEHO ROZPOCTU // pridame stranku $pdf->AddPage(); $finishing = '<table style="width:100%;text-align:center;" cellpadding="5"> <tr> <th></th> <th style="font-weight:bold;text-decoration:underline;">bez DPH:</th> <th></th> <th style="font-weight:bold;text-decoration:underline;">DPH:</th> <th></th> <th style="font-weight:bold;text-decoration:underline;">vc. DPH:</th> <th></th> </tr> <tr> <td style="font-style:italic;font-size:10pt;">material:</td> <td>'.$matAllNoVat.'</td> <td style="font-style:italic;font-size:10pt;">,- kc</td> <td>'.$matAlVat.'</td> <td style="font-style:italic;font-size:10pt;">,- kc</td> <td>'.$matAllInVat.'</td> <td style="font-style:italic;font-size:10pt;">,- kc</td> </tr> <tr> <td style="font-style:italic;font-size:10pt;">montazni prace:</td> <td>'.$servAllNoVat.'</td> <td style="font-style:italic;font-size:10pt;">,- kc</td> <td>'.$servAllVat.'</td> <td style="font-style:italic;font-size:10pt;">,- kc</td> <td>'.$servAllInVat.'</td> <td style="font-style:italic;font-size:10pt;">,- kc</td> </tr> <tr> <td style="font-style:italic;font-size:10pt;">vedlejsi rozpoctove naklady:</td> <td>'.$obcAllNoVat.'</td> <td style="font-style:italic;font-size:10pt;">,- kc</td> <td>'.$obcAllVat.'</td> <td style="font-style:italic;font-size:10pt;">,- kc</td> <td>'.$obcAllInVat.'</td> <td style="font-style:italic;font-size:10pt;">,- kc</td> </tr> </table> <table style="width:100%;text-align:center;font-size:24pt;border-top:1px solid;" cellpadding="5"> <tr> <td style="font-style:italic;font-size:10pt;">celkovy rozpocet:</td> <td>'.$totBudNoVat.'</td> <td style="font-style:italic;font-size:10pt;">,- kc</td> <td>'.$totBudSVat.'</td> <td style="font-style:italic;font-size:10pt;">,- kc</td> <td>'.$totBudInVat.'</td> <td style="font-style:italic;font-size:10pt;">,- kc</td> </tr> </table>'; $pdf->writeHTML($finishing, true, false, true, false, ''); // ------------------------------------------------------------------------------------------------- // ------------------------------------------------------------------------------------------------- // na samotny zaver si zvolime nazev souboru .pdf, jeho umisteni a zpusob jeho generace (manualne, automaticky, atd). Urcite lze take vytvorit emailovou sablonu, ktera se zasle automaticky $pdf->Output('cenova-nabidka-'.$_POST['offerIdNo'].'.pdf', 'I'); /* NEJAKE NAPOVEDY A POMOCNICI, TEST, SCRIPT, atd... */ /* ?OUTPUT I: send the file inline to the browser (default). The plug-in is used if available. The name given by name is used when one selects the "Save as" option on the link generating the PDF. D: send to the browser and force a file download with the name given by name. F: save to a local server file with the name given by name. S: return the document as a string (name is ignored). FI: equivalent to F + I option FD: equivalent to F + D option E: return the document as base64 mime multi-part email attachment (RFC 2045)*/ /* ?IMAGE image - source, x, y, w, h, type, link, align, resize, dpi, palign, ismask, imgmask, border*/

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.40.0060.00919.27
8.3.30.0140.00020.29
8.3.20.0050.00320.61
8.3.10.0060.00321.12
8.3.00.0090.00023.66
8.2.170.0120.00322.96
8.2.160.0140.00020.47
8.2.150.0040.00424.18
8.2.140.0080.00024.66
8.2.130.0000.00826.16
8.2.120.0040.00421.00
8.2.110.0060.00319.25
8.2.100.0090.00318.03
8.2.90.0040.00419.28
8.2.80.0000.00919.48
8.2.70.0060.00317.88
8.2.60.0030.00618.05
8.2.50.0090.00018.07
8.2.40.0050.00318.22
8.2.30.0050.00319.55
8.2.20.0040.00417.85
8.2.10.0000.00818.02
8.2.00.0030.00518.05
8.1.270.0090.00023.99
8.1.260.0040.00426.35
8.1.250.0080.00028.09
8.1.240.0000.00922.50
8.1.230.0070.00421.23
8.1.220.0030.00618.77
8.1.210.0000.00819.15
8.1.200.0030.00617.60
8.1.190.0030.00517.91
8.1.180.0040.00418.10
8.1.170.0030.00518.84
8.1.160.0040.00418.95
8.1.150.0000.01018.82
8.1.140.0030.00517.64
8.1.130.0030.00317.93
8.1.120.0000.00717.72
8.1.110.0050.00317.57
8.1.100.0040.00417.56
8.1.90.0040.00417.66
8.1.80.0040.00417.66
8.1.70.0040.00417.63
8.1.60.0050.00517.84
8.1.50.0030.00617.62
8.1.40.0040.00417.68
8.1.30.0000.00817.71
8.1.20.0050.00317.88
8.1.10.0030.00517.66
8.1.00.0030.00517.78
8.0.300.0000.00820.35
8.0.290.0040.00417.53
8.0.280.0040.00418.73
8.0.270.0050.00317.55
8.0.260.0030.00317.14
8.0.250.0070.00017.26
8.0.240.0060.00317.23
8.0.230.0070.00017.16
8.0.220.0030.00417.23
8.0.210.0040.00417.14
8.0.200.0000.00717.23
8.0.190.0060.00317.26
8.0.180.0030.00617.27
8.0.170.0090.00017.18
8.0.160.0030.00617.08
8.0.150.0000.00717.10
8.0.140.0030.00517.19
8.0.130.0000.00613.71
8.0.120.0060.00317.21
8.0.110.0100.00017.16
8.0.100.0080.00017.11
8.0.90.0040.00417.12
8.0.80.0090.00617.18
8.0.70.0070.00017.21
8.0.60.0080.00017.32
8.0.50.0030.00617.27
8.0.30.0110.00917.40
8.0.20.0120.01017.50
8.0.10.0000.00817.33
8.0.00.0090.01016.96
7.4.330.0030.00315.11
7.4.320.0000.00916.71
7.4.300.0030.00316.68
7.4.290.0040.00416.84
7.4.280.0040.00416.74
7.4.270.0000.00716.71
7.4.260.0000.00513.36
7.4.250.0040.00416.76
7.4.240.0070.00016.84
7.4.230.0050.00216.88
7.4.220.0180.00316.81
7.4.210.0060.01016.78
7.4.200.0000.00816.64
7.4.190.0050.00316.88
7.4.160.0120.00616.57
7.4.150.0030.01617.40
7.4.140.0130.00617.86
7.4.130.0090.01116.75
7.4.120.0080.01116.69
7.4.110.0120.00816.63
7.4.100.0090.01216.70
7.4.90.0130.01316.75
7.4.80.0070.01119.39
7.4.70.0090.01216.88
7.4.60.0130.00616.77
7.4.50.0030.00616.52
7.4.40.0070.00722.77
7.4.30.0070.01116.55
7.4.00.0070.00715.08
7.3.330.0030.00313.37
7.3.320.0030.00313.52
7.3.310.0070.00016.64
7.3.300.0040.00416.39
7.3.290.0090.00616.53
7.3.280.0100.00816.59
7.3.270.0080.01117.40
7.3.260.0090.01118.24
7.3.250.0160.00316.57
7.3.240.0090.00916.57
7.3.230.0090.00916.68
7.3.210.0120.00616.86
7.3.200.0160.00419.39
7.3.190.0160.00316.68
7.3.180.0090.00916.47
7.3.170.0090.01016.57
7.3.160.0170.00016.58
7.3.120.0070.01015.05
7.3.10.0130.01016.05
7.3.00.0140.00716.07
7.2.330.0090.00916.89
7.2.320.0100.01116.56
7.2.310.0230.01816.74
7.2.300.0150.00316.83
7.2.290.0120.01216.91
7.2.130.0080.00816.55
7.2.120.0090.00916.50
7.2.110.0090.00616.96
7.2.100.0090.00916.70
7.2.90.0110.00816.71
7.2.80.0120.00616.66
7.2.70.0060.01016.82
7.2.60.0130.00616.86
7.2.50.0060.00916.88
7.2.40.0060.01216.40
7.2.30.0130.00316.94
7.2.20.0100.00716.91
7.2.10.0120.00616.90
7.2.00.0150.00517.74
7.1.250.0150.00315.55
7.1.100.0030.01018.27
7.1.70.0000.00817.00
7.1.60.0100.01619.17
7.1.50.0090.01216.88
7.1.00.0030.07722.29
7.0.200.0030.00516.73
7.0.140.0000.07722.02
7.0.100.0000.08320.13
7.0.90.0100.07320.08
7.0.80.0070.08020.09
7.0.70.0100.05720.09
7.0.60.0100.07320.11
7.0.50.0030.08020.43
7.0.40.0100.09020.05
7.0.30.0030.05720.09
7.0.20.0070.06720.08
7.0.10.0030.06320.05
7.0.00.0030.08720.00
5.6.280.0030.07720.99
5.6.250.0100.06720.79
5.6.240.0070.07720.80
5.6.230.0100.03320.82
5.6.220.0070.06720.74
5.6.210.0030.07720.81
5.6.200.0000.10021.18
5.6.190.0100.03721.17
5.6.180.0000.04321.17
5.6.170.0030.05721.11
5.6.160.0070.08721.19
5.6.150.0030.04321.03
5.6.140.0100.05721.03
5.6.130.0030.05321.09
5.6.120.0130.07721.03
5.6.110.0030.04021.18
5.6.100.0030.04321.03
5.6.90.0030.04021.12
5.6.80.0030.07320.55
5.6.70.0030.06720.48
5.6.60.0030.07020.47
5.6.50.0030.08720.52
5.6.40.0030.03720.39
5.6.30.0030.06720.41
5.6.20.0070.03320.47
5.6.10.0030.07020.40
5.6.00.0070.06020.48
5.5.380.0200.06720.61
5.5.370.0070.07020.45
5.5.360.0030.04020.41
5.5.350.0070.08020.41
5.5.340.0070.08020.73
5.5.330.0100.08020.88
5.5.320.0070.07721.02
5.5.310.0130.07020.88
5.5.300.0070.08320.97
5.5.290.0070.07321.01
5.5.280.0070.03720.82
5.5.270.0030.06020.81
5.5.260.0000.04320.96
5.5.250.0070.07320.76
5.5.240.0030.08320.32
5.5.230.0030.04720.11
5.5.220.0000.05320.33
5.5.210.0030.07720.34
5.5.200.0070.05020.27
5.5.190.0070.07320.24
5.5.180.0030.08020.25
5.5.160.0100.07020.36
5.5.150.0000.04720.36
5.5.140.0070.03720.26
5.5.130.0000.05320.37
5.5.120.0030.03720.33
5.5.110.0130.06720.32
5.5.100.0030.04020.17
5.5.90.0030.07720.10
5.5.80.0030.04020.12
5.5.70.0100.05320.04
5.5.60.0030.03720.15
5.5.50.0070.07320.14
5.5.40.0130.06720.18
5.5.30.0030.06720.13
5.5.20.0070.07020.17
5.5.10.0030.04720.14
5.5.00.0130.05720.16
5.4.450.0030.05319.47
5.4.440.0100.07319.49
5.4.430.0030.03719.30
5.4.420.0130.05019.39
5.4.410.0100.07019.34
5.4.400.0070.05019.04
5.4.390.0100.05018.94
5.4.380.0070.08018.86
5.4.370.0000.03719.08
5.4.360.0100.05718.94
5.4.350.0100.06719.14
5.4.340.0000.04018.89
5.4.320.0030.08019.06
5.4.310.0070.07719.15
5.4.300.0030.07318.97
5.4.290.0100.06719.20
5.4.280.0030.03719.05
5.4.270.0000.08019.14
5.4.260.0100.06719.07
5.4.250.0070.07318.92
5.4.240.0100.05719.05
5.4.230.0100.06719.13
5.4.220.0070.07719.15
5.4.210.0100.05319.23
5.4.200.0030.06019.15
5.4.190.0030.06319.04
5.4.180.0100.07018.97
5.4.170.0100.06319.13
5.4.160.0070.07318.86
5.4.150.0070.07318.88
5.4.140.0000.03716.45
5.4.130.0030.07316.42
5.4.120.0000.03716.27
5.4.110.0100.03716.42
5.4.100.0000.03716.39
5.4.90.0070.06016.57
5.4.80.0100.08716.38
5.4.70.0030.07716.45
5.4.60.0000.06716.56
5.4.50.0030.03316.55
5.4.40.0070.06316.52
5.4.30.0000.04316.46
5.4.20.0000.03716.46
5.4.10.0100.06716.42
5.4.00.0030.07315.88
5.3.290.0000.04014.70
5.3.280.0000.04014.66
5.3.270.0030.04714.72
5.3.260.0100.06314.78
5.3.250.0070.07314.65
5.3.240.0100.06714.74
5.3.230.0000.07314.66
5.3.220.0070.07314.81
5.3.210.0100.06014.73
5.3.200.0070.06014.80
5.3.190.0070.03314.66
5.3.180.0070.08014.73
5.3.170.0000.08014.61
5.3.160.0000.03714.68
5.3.150.0000.07014.61
5.3.140.0170.06014.73
5.3.130.0070.07314.68
5.3.120.0070.06714.75
5.3.110.0130.06714.76
5.3.100.0070.06714.25
5.3.90.0030.07714.18
5.3.80.0030.05714.25
5.3.70.0030.07714.26
5.3.60.0000.05014.25
5.3.50.0070.03314.05
5.3.40.0100.07014.19
5.3.30.0030.03714.11
5.3.20.0070.07013.80
5.3.10.0030.07013.90
5.3.00.0100.05713.64

preferences:
39.29 ms | 400 KiB | 5 Q