@ 2013-06-30T22:14:39Z <?php
class EAHashor {
private $right32;
public function __construct()
{
$this->right32 = ~((~0 << 16) << 16);
}
public function eaEncode($string){
$a = "67452301";
$b = "EFCDAB89";
$c = "98BADCFE";
$d = "10325476";
$words = $this->init($string);
for($i = 0, $l = count($words) / 16 - 1; $i <= $l; $i++){
$A = $a;
$B = $b;
$C = $c;
$D = $d;
/* ROUND 1 */
$this->FF ($A, $B, $C, $D, $words[0 + ($i * 16)], 7, "d76aa478");
$this->FF ($D, $A, $B, $C, $words[1 + ($i * 16)], 12, "e8c7b756");
$this->FF ($C, $D, $A, $B, $words[2 + ($i * 16)], 17, "242070db");
$this->FF ($B, $C, $D, $A, $words[3 + ($i * 16)], 22, "c1bdceee");
$this->FF ($A, $B, $C, $D, $words[4 + ($i * 16)], 7, "f57c0faf");
$this->FF ($D, $A, $B, $C, $words[5 + ($i * 16)], 12, "4787c62a");
$this->FF ($C, $D, $A, $B, $words[6 + ($i * 16)], 17, "a8304613");
$this->FF ($B, $C, $D, $A, $words[7 + ($i * 16)], 22, "fd469501");
$this->FF ($A, $B, $C, $D, $words[8 + ($i * 16)], 7, "698098d8");
$this->FF ($D, $A, $B, $C, $words[9 + ($i * 16)], 12, "8b44f7af");
$this->FF ($C, $D, $A, $B, $words[10 + ($i * 16)], 17, "ffff5bb1");
$this->FF ($B, $C, $D, $A, $words[11 + ($i * 16)], 22, "895cd7be");
$this->FF ($A, $B, $C, $D, $words[12 + ($i * 16)], 7, "6b901122");
$this->FF ($D, $A, $B, $C, $words[13 + ($i * 16)], 12, "fd987193");
$this->FF ($C, $D, $A, $B, $words[14 + ($i * 16)], 17, "a679438e");
$this->FF ($B, $C, $D, $A, $words[15 + ($i * 16)], 22, "49b40821");
/* ROUND 2 */
$this->GG ($A, $B, $C, $D, $words[1 + ($i * 16)], 5, "f61e2562");
$this->GG ($D, $A, $B, $C, $words[6 + ($i * 16)], 9, "c040b340");
$this->GG ($C, $D, $A, $B, $words[11 + ($i * 16)], 14, "265e5a51");
$this->GG ($B, $C, $D, $A, $words[0 + ($i * 16)], 20, "e9b6c7aa");
$this->GG ($A, $B, $C, $D, $words[5 + ($i * 16)], 5, "d62f105d");
$this->GG ($D, $A, $B, $C, $words[10 + ($i * 16)], 9, "02441453");
$this->GG ($C, $D, $A, $B, $words[15 + ($i * 16)], 14, "d8a1e681");
$this->GG ($B, $C, $D, $A, $words[4 + ($i * 16)], 20, "e7d3fbc8");
$this->GG ($A, $B, $C, $D, $words[9 + ($i * 16)], 5, "21e1cde6");
$this->GG ($D, $A, $B, $C, $words[14 + ($i * 16)], 9, "c33707d6");
$this->GG ($C, $D, $A, $B, $words[3 + ($i * 16)], 14, "f4d50d87");
$this->GG ($B, $C, $D, $A, $words[8 + ($i * 16)], 20, "455a14ed");
$this->GG ($A, $B, $C, $D, $words[13 + ($i * 16)], 5, "a9e3e905");
$this->GG ($D, $A, $B, $C, $words[2 + ($i * 16)], 9, "fcefa3f8");
$this->GG ($C, $D, $A, $B, $words[7 + ($i * 16)], 14, "676f02d9");
$this->GG ($B, $C, $D, $A, $words[12 + ($i * 16)], 20, "8d2a4c8a");
/* ROUND 3 */
$this->HH ($A, $B, $C, $D, $words[5 + ($i * 16)], 4, "fffa3942");
$this->HH ($D, $A, $B, $C, $words[8 + ($i * 16)], 11, "8771f681");
//HH ($C, $D, $A, $B, $words[11 + ($i * 16)], 16, "6d9d6122");
//the line below has been changed to use 14 rather than 16 as seen in the commented line
$this->HH ($C, $D, $A, $B, $words[11 + ($i * 16)], 14, "6d9d6122");
$this->HH ($B, $C, $D, $A, $words[14 + ($i * 16)], 23, "fde5380c");
$this->HH ($A, $B, $C, $D, $words[1 + ($i * 16)], 4, "a4beea44");
$this->HH ($D, $A, $B, $C, $words[4 + ($i * 16)], 11, "4bdecfa9");
$this->HH ($C, $D, $A, $B, $words[7 + ($i * 16)], 16, "f6bb4b60");
$this->HH ($B, $C, $D, $A, $words[10 + ($i * 16)], 23, "bebfbc70");
$this->HH ($A, $B, $C, $D, $words[13 + ($i * 16)], 4, "289b7ec6");
$this->HH ($D, $A, $B, $C, $words[0 + ($i * 16)], 11, "eaa127fa");
$this->HH ($C, $D, $A, $B, $words[3 + ($i * 16)], 16, "d4ef3085");
$this->HH ($B, $C, $D, $A, $words[6 + ($i * 16)], 23, "04881d05");
$this->HH ($A, $B, $C, $D, $words[9 + ($i * 16)], 4, "d9d4d039");
$this->HH ($D, $A, $B, $C, $words[12 + ($i * 16)], 11, "e6db99e5");
$this->HH ($C, $D, $A, $B, $words[15 + ($i * 16)], 16, "1fa27cf8");
$this->HH ($B, $C, $D, $A, $words[2 + ($i * 16)], 23, "c4ac5665");
/* ROUND 4 */
$this->II ($A, $B, $C, $D, $words[0 + ($i * 16)], 6, "f4292244");
$this->II ($D, $A, $B, $C, $words[7 + ($i * 16)], 10, "432aff97");
$this->II ($C, $D, $A, $B, $words[14 + ($i * 16)], 15, "ab9423a7");
$this->II ($B, $C, $D, $A, $words[5 + ($i * 16)], 21, "fc93a039");
$this->II ($A, $B, $C, $D, $words[12 + ($i * 16)], 6, "655b59c3");
$this->II ($D, $A, $B, $C, $words[3 + ($i * 16)], 10, "8f0ccc92");
$this->II ($C, $D, $A, $B, $words[10 + ($i * 16)], 15, "ffeff47d");
$this->II ($B, $C, $D, $A, $words[1 + ($i * 16)], 21, "85845dd1");
$this->II ($A, $B, $C, $D, $words[8 + ($i * 16)], 6, "6fa87e4f");
$this->II ($D, $A, $B, $C, $words[15 + ($i * 16)], 10, "fe2ce6e0");
$this->II ($C, $D, $A, $B, $words[6 + ($i * 16)], 15, "a3014314");
$this->II ($B, $C, $D, $A, $words[13 + ($i * 16)], 21, "4e0811a1");
$this->II ($A, $B, $C, $D, $words[4 + ($i * 16)], 6, "f7537e82");
$this->II ($D, $A, $B, $C, $words[11 + ($i * 16)], 10, "bd3af235");
$this->II ($C, $D, $A, $B, $words[2 + ($i * 16)], 15, "2ad7d2bb");
$this->II ($B, $C, $D, $A, $words[9 + ($i * 16)], 21, "eb86d391");
//this last line is used twice
$this->II ($B, $C, $D, $A, $words[9 + ($i * 16)], 21, "eb86d391");
$this->addVars($a, $b, $c, $d, $A, $B, $C, $D);
}
$MD5 = '';
foreach (array($a, $b, $c, $d) as $x) {
$MD5 .= implode('', array_reverse(str_split($this->leftpad($x, 8), 2)));
}
return $MD5;
}
/* General functions */
private function hexbin($str){
$hexbinmap = array( "0" => "0000",
"1" => "0001",
"2" => "0010",
"3" => "0011"
, "4" => "0100"
, "5" => "0101"
, "6" => "0110"
, "7" => "0111"
, "8" => "1000"
, "9" => "1001"
, "A" => "1010"
, "a" => "1010"
, "B" => "1011"
, "b" => "1011"
, "C" => "1100"
, "c" => "1100"
, "D" => "1101"
, "d" => "1101"
, "E" => "1110"
, "e" => "1110"
, "F" => "1111"
, "f" => "1111");
$bin = "";
for ($i = 0; $i < strlen($str); $i++){
$bin .= $hexbinmap[$str[$i]];
}
$bin = ltrim($bin, '0');
// echo "Original: ".$str." New: ".$bin."<br />";
return $bin;
}
private function strhex($str){
$hex = "";
for ($i = 0; $i < strlen($str); $i++){
$hex = $hex.$this->leftpad(dechex(ord($str[$i])), 2);
}
return $hex;
}
/* MD5-specific functions */
private function init($string){
$len = strlen($string) * 8;
$hex = $this->strhex($string); // convert ascii string to hex
$bin = $this->leftpad($this->hexbin($hex), $len); // convert hex string to bin
$padded = $this->pad($bin);
$padded = $this->pad($padded, 1, $len);
$block = str_split($padded, 32);
foreach ($block as &$b) {
$b = implode('', array_reverse(str_split($b, 8)));
}
return $block;
}
private function pad($bin, $type=0, $len = 0){
if($type == 0){
$bin = $bin."1";
$buff = strlen($bin) % 512;
if($buff != 448){
while(strlen($bin) % 512 != 448){
$bin = $bin."0";
}
}
}
// append length (b) of string to latter 64 bits
elseif($type == 1){
$bLen = $this->leftpad(decbin($len), 64);
$bin .= implode('', array_reverse(str_split($bLen, 8)));
}
return $bin;
}
/* MD5 base functions */
private function F($X, $Y, $Z){
$X = $this->binarySafeHexDec($X);
$Y = $this->binarysafehexdec($Y);
$Z = $this->binarysafehexdec($Z);
$calc = (($X & $Y) | ((~ $X) & $Z)); // X AND Y OR NOT X AND Z
return $calc;
}
private function G($X, $Y, $Z){
$X = $this->binarysafehexdec($X);
$Y = $this->binarysafehexdec($Y);
$Z = $this->binarysafehexdec($Z);
$calc = (($X & $Z) | ($Y & (~ $Z))); // X AND Z OR Y AND NOT Z
return $calc;
}
private function H($X, $Y, $Z){
$X = $this->binarysafehexdec($X);
$Y = $this->binarysafehexdec($Y);
$Z = $this->binarysafehexdec($Z);
$calc = ($X ^ $Y ^ $Z); // X XOR Y XOR Z
return $calc;
}
private function I($X, $Y, $Z){
$X = $this->binarysafehexdec($X);
$Y = $this->binarysafehexdec($Y);
$Z = $this->binarysafehexdec($Z);
$calc = ($Y ^ ($X | (~ $Z))) ; // Y XOR (X OR NOT Z)
return $calc;
}
/* MD5 round functions */
/* $A - hex, $B - hex, $C - hex, $D - hex (F - dec)
$M - binary
$s - decimal
$t - hex
*/
private function FF(&$A, $B, $C, $D, $M, $s, $t){
$A = $this->binarysafehexdec($A);
$t = $this->binarysafehexdec($t);
$M = $this->binarysafebindec($M);
echo "A: $A\nt: $t\nM: $M\n";
$F = $this->F($B, $C, $D);
echo "B: $B\nC: $C\nD: $D\nF: $F\n";
$A = $this->add($A, $F, $M, $t) & $this->right32; //decimal
echo "4: $A\n";
$A = $this->rotate($A, $s);
echo "5: $A\n";
$A = dechex($this->add($this->binarysafehexdec($B), $this->binarysafehexdec($A)) & $this->right32);
echo "Result: $A\n\n";
}
private function GG(&$A, $B, $C, $D, $M, $s, $t){
$A = $this->binarysafehexdec($A);
$t = $this->binarysafehexdec($t);
$M = $this->binarysafebindec($M);
$A = $this->add($A, $this->G($B, $C, $D), $M, $t) & $this->right32; //decimal
$A = $this->rotate($A, $s);
$A = dechex($this->add($this->binarysafehexdec($B), $this->binarysafehexdec($A)) & $this->right32);
}
private function HH(&$A, $B, $C, $D, $M, $s, $t){
$A = $this->binarysafehexdec($A);
$t = $this->binarysafehexdec($t);
$M = $this->binarysafebindec($M);
$A = $this->add($A, $this->H($B, $C, $D), $M, $t) & $this->right32; //decimal
$A = $this->rotate($A, $s);
$A = dechex($this->add($this->binarysafehexdec($B), $this->binarysafehexdec($A)) & $this->right32);
}
private function II(&$A, $B, $C, $D, $M, $s, $t){
$A = $this->binarysafehexdec($A);
$t = $this->binarysafehexdec($t);
$M = $this->binarysafebindec($M);
$A = $this->add($A, $this->I($B, $C, $D), $M, $t) & $this->right32; //decimal
$A = $this->rotate($A, $s);
$A = dechex($this->add($this->binarysafehexdec($B), $this->binarysafehexdec($A)) & $this->right32);
}
private function rotate ($decimal, $bits)
{
return dechex(($decimal << $bits) | (($decimal >> (32 - $bits)) & (~(~0 << $bits) & $this->right32)));
}
private function addVars(&$a, &$b, &$c, &$d, $A, $B, $C, $D){
$A = $this->binarysafehexdec($A);
$B = $this->binarysafehexdec($B);
$C = $this->binarysafehexdec($C);
$D = $this->binarysafehexdec($D);
$aa = $this->binarysafehexdec($a);
$bb = $this->binarysafehexdec($b);
$cc = $this->binarysafehexdec($c);
$dd = $this->binarysafehexdec($d);
$aa = $this->add($aa, $A) & $this->right32;
$bb = $this->add($bb, $B) & $this->right32;
$cc = $this->add($cc, $C) & $this->right32;
$dd = $this->add($dd, $D) & $this->right32;
$a = dechex($aa);
$b = dechex($bb);
$c = dechex($cc);
$d = dechex($dd);
}
private function leftpad($needs_padding, $alignment) {
if (strlen($needs_padding) % $alignment) {
$pad_amount = $alignment - strlen($needs_padding) % $alignment;
$left_pad = implode('', array_fill(0, $pad_amount, '0'));
$needs_padding = $left_pad . $needs_padding;
}
return $needs_padding;
}
private function binarySafeBinDec($bin)
{
$bits = array_reverse(str_split($bin, 1));
$result = 0;
foreach ($bits as $position => $bit) {
$result |= ((int) $bit) << $position;
}
return $result;
}
private function binarySafeHexDec($hex)
{
$h = str_split(substr(str_pad($hex, 8, '0', STR_PAD_LEFT), -8), 2);
return (hexdec($h[0]) << 24) | (hexdec($h[1]) << 16) | (hexdec($h[2]) << 8) | hexdec($h[3]);
}
private function leftShiftByOne($intAsStr)
{
$p = unpack('N2', $intAsStr);
return pack('N2', ($p[1] << 1) | (($p[2] >> 31) & 0x00000001), $p[2] << 1);
}
private function binarySafeAddition($a, $b)
{
// NB: we don't actually need 64 bits, but 40 bit integers are confusing
$a = "\x00\x00\x00\x00" . pack('N', $a);
$b = "\x00\x00\x00\x00" . pack('N', $b);
$carry = $a & $b;
$result = $a ^ $b;
while ($carry != "\x00\x00\x00\x00\x00\x00\x00\x00") {
$shiftedcarry = $this->leftShiftByOne($carry);
$carry = $result & $shiftedcarry;
$result ^= $shiftedcarry;
}
return current(unpack('N', substr($result, 4)));
}
private function add()
{
$result = 0;
foreach (func_get_args() as $int) {
$result = $this->binarySafeAddition($result, $int);
}
return $result;
}
}
$eahashor = new EAHashor();
$hash = $eahashor->eaEncode('test');
echo $hash;
Enable javascript to submit You have javascript disabled. You will not be able to edit any code.
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).
Version System time (s) User time (s) Memory (MiB) 8.3.7 0.015 0.006 18.37 8.3.6 0.020 0.007 18.52 8.3.5 0.009 0.011 22.10 8.3.4 0.013 0.003 19.07 8.3.3 0.020 0.003 19.34 8.3.2 0.003 0.006 20.41 8.3.1 0.004 0.004 22.00 8.3.0 0.006 0.003 22.45 8.2.19 0.010 0.007 16.75 8.2.18 0.010 0.007 16.75 8.2.17 0.012 0.012 22.96 8.2.16 0.004 0.012 20.82 8.2.15 0.004 0.004 24.18 8.2.14 0.005 0.005 24.66 8.2.13 0.003 0.006 26.16 8.2.12 0.003 0.006 19.23 8.2.11 0.000 0.011 22.23 8.2.10 0.008 0.004 19.63 8.2.9 0.008 0.003 19.60 8.2.8 0.003 0.006 18.18 8.2.7 0.003 0.007 17.88 8.2.6 0.000 0.010 18.28 8.2.5 0.005 0.005 18.07 8.2.4 0.006 0.003 18.53 8.2.3 0.000 0.009 18.28 8.2.2 0.000 0.009 18.06 8.2.1 0.003 0.007 17.90 8.2.0 0.000 0.009 17.88 8.1.28 0.004 0.012 25.92 8.1.27 0.007 0.004 22.33 8.1.26 0.006 0.003 26.35 8.1.25 0.000 0.009 28.09 8.1.24 0.010 0.000 23.76 8.1.23 0.006 0.006 19.38 8.1.22 0.007 0.003 17.89 8.1.21 0.007 0.003 18.77 8.1.20 0.004 0.008 17.72 8.1.19 0.005 0.005 17.66 8.1.18 0.006 0.003 18.10 8.1.17 0.008 0.003 18.75 8.1.16 0.003 0.006 22.30 8.1.15 0.000 0.010 18.79 8.1.14 0.003 0.006 17.77 8.1.13 0.006 0.003 18.10 8.1.12 0.003 0.006 17.63 8.1.11 0.000 0.011 17.76 8.1.10 0.000 0.009 17.73 8.1.9 0.009 0.000 17.70 8.1.8 0.003 0.006 17.81 8.1.7 0.008 0.000 17.60 8.1.6 0.003 0.007 17.88 8.1.5 0.004 0.004 17.82 8.1.4 0.003 0.006 17.68 8.1.3 0.005 0.005 17.91 8.1.2 0.007 0.003 17.94 8.1.1 0.006 0.003 17.83 8.1.0 0.004 0.004 17.80 8.0.30 0.009 0.000 18.77 8.0.29 0.003 0.006 17.43 8.0.28 0.005 0.003 18.68 8.0.27 0.006 0.003 17.52 8.0.26 0.006 0.003 17.09 8.0.25 0.000 0.009 17.13 8.0.24 0.000 0.008 17.14 8.0.23 0.004 0.004 17.21 8.0.22 0.004 0.004 17.04 8.0.21 0.000 0.008 17.16 8.0.20 0.003 0.005 17.11 8.0.19 0.007 0.003 17.20 8.0.18 0.007 0.003 17.12 8.0.17 0.003 0.007 17.18 8.0.16 0.003 0.006 17.08 8.0.15 0.000 0.009 17.14 8.0.14 0.004 0.008 17.15 8.0.13 0.000 0.008 13.53 8.0.12 0.006 0.003 17.13 8.0.11 0.003 0.007 17.18 8.0.10 0.004 0.004 16.97 8.0.9 0.000 0.010 17.20 8.0.8 0.000 0.018 17.13 8.0.7 0.006 0.003 17.21 8.0.6 0.006 0.003 17.00 8.0.5 0.000 0.009 17.08 8.0.3 0.007 0.016 17.40 8.0.2 0.019 0.003 17.40 8.0.1 0.000 0.009 17.27 8.0.0 0.013 0.008 17.07 7.4.33 0.003 0.003 15.00 7.4.32 0.000 0.009 16.78 7.4.30 0.003 0.005 16.75 7.4.29 0.003 0.006 16.80 7.4.28 0.003 0.005 16.87 7.4.27 0.004 0.004 16.85 7.4.26 0.000 0.009 16.76 7.4.25 0.003 0.007 16.65 7.4.24 0.003 0.006 16.85 7.4.23 0.005 0.005 16.81 7.4.22 0.017 0.007 16.70 7.4.21 0.012 0.009 16.84 7.4.20 0.004 0.004 16.77 7.4.19 0.009 0.000 16.78 7.4.16 0.012 0.006 16.81 7.4.15 0.008 0.013 17.40 7.4.14 0.012 0.010 17.86 7.4.13 0.010 0.011 16.85 7.4.12 0.006 0.016 16.89 7.4.11 0.009 0.018 16.69 7.4.10 0.008 0.017 16.96 7.4.9 0.014 0.015 16.94 7.4.8 0.007 0.018 19.39 7.4.7 0.008 0.012 16.94 7.4.6 0.007 0.014 16.83 7.4.5 0.006 0.003 16.70 7.4.4 0.009 0.009 22.77 7.4.3 0.009 0.012 16.86 7.4.0 0.003 0.012 15.25 7.3.33 0.000 0.007 13.48 7.3.32 0.003 0.005 13.55 7.3.31 0.003 0.005 16.52 7.3.30 0.000 0.009 16.58 7.3.29 0.006 0.013 16.59 7.3.28 0.008 0.011 16.62 7.3.27 0.009 0.012 17.40 7.3.26 0.011 0.011 16.64 7.3.25 0.011 0.014 16.58 7.3.24 0.019 0.010 16.82 7.3.23 0.009 0.012 16.63 7.3.21 0.013 0.006 16.90 7.3.20 0.012 0.009 19.39 7.3.19 0.012 0.009 16.93 7.3.18 0.004 0.014 16.55 7.3.17 0.006 0.014 16.64 7.3.16 0.013 0.007 16.88 7.3.12 0.007 0.013 15.10 7.3.1 0.003 0.012 16.65 7.3.0 0.003 0.010 16.74 7.2.33 0.006 0.015 16.85 7.2.32 0.009 0.016 17.02 7.2.31 0.003 0.019 17.09 7.2.30 0.014 0.014 16.97 7.2.29 0.007 0.013 16.77 7.2.13 0.003 0.016 17.04 7.2.12 0.006 0.010 16.96 7.2.11 0.000 0.022 16.88 7.2.10 0.006 0.013 16.82 7.2.9 0.003 0.014 16.93 7.2.8 0.010 0.007 16.63 7.2.7 0.003 0.010 16.91 7.2.6 0.009 0.009 16.99 7.2.5 0.003 0.013 16.70 7.2.4 0.004 0.008 17.16 7.2.3 0.006 0.006 16.81 7.2.2 0.008 0.008 16.97 7.2.1 0.010 0.016 16.94 7.2.0 0.006 0.010 18.09 7.1.25 0.004 0.015 16.03 7.1.10 0.003 0.014 18.43 7.1.7 0.003 0.010 17.25 7.1.6 0.013 0.016 19.82 7.1.5 0.007 0.017 17.03 7.1.0 0.000 0.077 22.35 7.0.20 0.005 0.005 16.65 7.0.14 0.010 0.067 22.08 7.0.10 0.040 0.060 20.15 7.0.9 0.033 0.060 20.21 7.0.8 0.033 0.043 20.19 7.0.7 0.047 0.077 20.42 7.0.6 0.047 0.050 20.21 7.0.5 0.043 0.087 20.52 7.0.4 0.010 0.073 20.11 7.0.3 0.013 0.077 20.04 7.0.2 0.000 0.087 20.11 7.0.1 0.003 0.080 20.09 7.0.0 0.003 0.080 20.02 5.6.28 0.007 0.077 21.06 5.6.25 0.010 0.087 20.94 5.6.24 0.013 0.077 20.75 5.6.23 0.007 0.070 20.84 5.6.22 0.013 0.083 20.82 5.6.21 0.007 0.083 20.93 5.6.20 0.010 0.080 21.19 5.6.19 0.017 0.083 21.18 5.6.18 0.003 0.083 21.26 5.6.17 0.007 0.097 21.25 5.6.16 0.003 0.090 21.27 5.6.15 0.013 0.080 21.09 5.6.14 0.010 0.080 21.24 5.6.13 0.003 0.097 21.16 5.6.12 0.010 0.083 21.20 5.6.11 0.003 0.090 21.21 5.6.10 0.003 0.090 21.15 5.6.9 0.010 0.070 21.14 5.6.8 0.010 0.070 20.57 5.6.7 0.007 0.077 20.59 5.6.6 0.010 0.080 20.54 5.6.5 0.010 0.047 20.61 5.6.4 0.010 0.040 20.55 5.6.3 0.010 0.037 20.63 5.6.2 0.000 0.047 20.50 5.6.1 0.010 0.043 20.67 5.6.0 0.007 0.043 20.45 5.5.38 0.017 0.077 20.51 5.5.37 0.010 0.040 20.53 5.5.36 0.013 0.080 20.59 5.5.35 0.013 0.067 20.58 5.5.34 0.007 0.093 21.06 5.5.33 0.013 0.087 21.05 5.5.32 0.007 0.087 21.07 5.5.31 0.013 0.073 20.95 5.5.30 0.007 0.093 21.01 5.5.29 0.020 0.070 20.95 5.5.28 0.007 0.087 20.97 5.5.27 0.010 0.080 21.04 5.5.26 0.017 0.077 21.04 5.5.25 0.010 0.080 20.69 5.5.24 0.017 0.067 20.34 5.5.23 0.013 0.073 20.31 5.5.22 0.007 0.070 20.37 5.5.21 0.017 0.080 20.45 5.5.20 0.000 0.047 20.33 5.5.19 0.003 0.043 20.43 5.5.18 0.007 0.040 20.39 5.5.16 0.010 0.033 20.40 5.5.15 0.000 0.047 20.36 5.5.14 0.003 0.067 20.40 5.5.13 0.000 0.077 20.41 5.5.12 0.003 0.060 20.38 5.5.11 0.010 0.063 20.35 5.5.10 0.007 0.043 20.22 5.5.9 0.003 0.043 20.19 5.5.8 0.007 0.037 20.27 5.5.7 0.003 0.047 20.15 5.5.6 0.013 0.030 20.21 5.5.5 0.003 0.040 20.30 5.5.4 0.003 0.040 20.09 5.5.3 0.007 0.037 20.29 5.5.2 0.003 0.043 20.29 5.5.1 0.007 0.037 20.16 5.5.0 0.000 0.047 20.18 5.4.45 0.003 0.090 19.56 5.4.44 0.007 0.090 19.29 5.4.43 0.013 0.070 19.43 5.4.42 0.007 0.053 19.61 5.4.41 0.010 0.080 19.29 5.4.40 0.007 0.070 18.94 5.4.39 0.003 0.087 19.11 5.4.38 0.013 0.080 19.11 5.4.37 0.003 0.077 19.13 5.4.36 0.010 0.050 19.14 5.4.35 0.010 0.053 19.20 5.4.34 0.003 0.040 19.07 5.4.32 0.003 0.040 19.26 5.4.31 0.000 0.043 19.19 5.4.30 0.003 0.040 18.97 5.4.29 0.007 0.070 19.29 5.4.28 0.003 0.053 19.14 5.4.27 0.010 0.037 19.10 5.4.26 0.003 0.040 19.10 5.4.25 0.007 0.070 19.11 5.4.24 0.003 0.040 18.96 5.4.23 0.003 0.050 18.91 5.4.22 0.000 0.043 19.02 5.4.21 0.003 0.057 18.93 5.4.20 0.003 0.060 18.92 5.4.19 0.003 0.047 19.19 5.4.18 0.000 0.043 19.20 5.4.17 0.000 0.047 18.95 5.4.16 0.003 0.040 19.11 5.4.15 0.007 0.040 19.21 5.4.14 0.000 0.047 16.55 5.4.13 0.000 0.043 16.38 5.4.12 0.000 0.047 16.31 5.4.11 0.003 0.043 16.50 5.4.10 0.007 0.033 16.50 5.4.9 0.003 0.037 16.48 5.4.8 0.003 0.053 16.61 5.4.7 0.000 0.033 16.55 5.4.6 0.007 0.057 16.52 5.4.5 0.003 0.043 16.39 5.4.4 0.003 0.080 16.61 5.4.3 0.010 0.030 16.38 5.4.2 0.003 0.047 16.48 5.4.1 0.013 0.070 16.39 5.4.0 0.007 0.077 15.92 5.3.29 0.010 0.037 14.97 5.3.28 0.013 0.057 14.91 5.3.27 0.010 0.033 14.96 5.3.26 0.003 0.040 14.85 5.3.25 0.010 0.043 14.92 5.3.24 0.003 0.040 14.95 5.3.23 0.003 0.043 14.86 5.3.22 0.007 0.037 14.88 5.3.21 0.010 0.073 14.87 5.3.20 0.007 0.043 14.88 5.3.19 0.003 0.040 14.84 5.3.18 0.000 0.047 14.87 5.3.17 0.003 0.040 14.84 5.3.16 0.000 0.083 14.80 5.3.15 0.003 0.043 14.77 5.3.14 0.003 0.043 14.94 5.3.13 0.007 0.033 14.72 5.3.12 0.003 0.053 14.77 5.3.11 0.000 0.043 14.79 5.3.10 0.010 0.077 14.21 5.3.9 0.003 0.070 14.25 5.3.8 0.007 0.073 14.15 5.3.7 0.010 0.077 14.40 5.3.6 0.000 0.090 14.22 5.3.5 0.003 0.083 14.25 5.3.4 0.007 0.077 14.13 5.3.3 0.007 0.077 14.28 5.3.2 0.003 0.087 14.05 5.3.1 0.003 0.077 13.79 5.3.0 0.000 0.080 13.88
preferences:dark mode live preview
69.25 ms | 401 KiB | 5 Q