public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
* [PATCH v2 1/2] strlen: fold strstr() even if the length isn't previously known [PR96601]
@ 2023-09-04 20:58 Hamza Mahfooz
  2023-09-04 20:58 ` [PATCH v2 2/2] strlen: call handle_builtin_strlen() from fold_strstr_to_strncmp() Hamza Mahfooz
  2023-09-05  5:14 ` [PATCH v2 1/2] strlen: fold strstr() even if the length isn't previously known [PR96601] Jeff Law
  0 siblings, 2 replies; 5+ messages in thread
From: Hamza Mahfooz @ 2023-09-04 20:58 UTC (permalink / raw)
  To: gcc-patches
  Cc: Jeff Law, Richard Biener, Jakub Jelinek, Ian Lance Taylor,
	Prathamesh Kulkarni, Aldy Hernandez, Martin Sebor, Hamza Mahfooz

Currently, we give up in fold_strstr_to_strncmp() if the length of the
the second argument to strstr() isn't known to us by the time we hit
that function. However, we can instead insert a strlen() in ourselves
and continue trying to fold strstr() into strlen()+strncmp().

	PR tree-optimization/96601

gcc/ChangeLog:

	* tree-ssa-strlen.cc (fold_strstr_to_strncmp): If arg1_len == NULL,
	insert a strlen() for strstr()'s arg1 and use it as arg1_len.

gcc/testsuite/ChangeLog:

	* gcc.dg/strlenopt-30.c: Modify test.

Signed-off-by: Hamza Mahfooz <someguy@effective-light.com>
---
Please push this for me if you think it looks good. Since, I don't have
write access to the repository.
---
 gcc/testsuite/gcc.dg/strlenopt-30.c |  5 +-
 gcc/tree-ssa-strlen.cc              | 81 ++++++++++++++++-------------
 2 files changed, 45 insertions(+), 41 deletions(-)

diff --git a/gcc/testsuite/gcc.dg/strlenopt-30.c b/gcc/testsuite/gcc.dg/strlenopt-30.c
index 2a3098ba96f..1ee814048c1 100644
--- a/gcc/testsuite/gcc.dg/strlenopt-30.c
+++ b/gcc/testsuite/gcc.dg/strlenopt-30.c
@@ -38,9 +38,6 @@ void f5(char *s)
     foo_f5();
 }
 
-/* Do not perform transform, since strlen (t)
-   is unknown.  */
-
 __attribute__((no_icf))
 _Bool f6(char *s, char *t)
 {
@@ -60,4 +57,4 @@ _Bool f7(char *s)
   return (t1 == s);
 }
 
-/* { dg-final { scan-tree-dump-times "__builtin_strncmp" 5 "strlen1" } } */
+/* { dg-final { scan-tree-dump-times "__builtin_strncmp" 6 "strlen1" } } */
diff --git a/gcc/tree-ssa-strlen.cc b/gcc/tree-ssa-strlen.cc
index 8b7ef919826..b0ebbb0db62 100644
--- a/gcc/tree-ssa-strlen.cc
+++ b/gcc/tree-ssa-strlen.cc
@@ -5273,6 +5273,7 @@ fold_strstr_to_strncmp (tree rhs1, tree rhs2, gimple *stmt)
 	  tree arg1 = gimple_call_arg (call_stmt, 1);
 	  tree arg1_len = NULL_TREE;
 	  int idx = get_stridx (arg1, call_stmt);
+	  gimple_stmt_iterator gsi = gsi_for_stmt (call_stmt);
 
 	  if (idx)
 	    {
@@ -5286,51 +5287,57 @@ fold_strstr_to_strncmp (tree rhs1, tree rhs2, gimple *stmt)
 		}
 	    }
 
-	  if (arg1_len != NULL_TREE)
+	  if (arg1_len == NULL_TREE)
 	    {
-	      gimple_stmt_iterator gsi = gsi_for_stmt (call_stmt);
-	      tree strncmp_decl = builtin_decl_explicit (BUILT_IN_STRNCMP);
+	      tree strlen_decl = builtin_decl_explicit (BUILT_IN_STRLEN);
+	      gcall *strlen_call = gimple_build_call (strlen_decl, 1, arg1);
+	      tree strlen_lhs = make_ssa_name (size_type_node, strlen_call);
+
+	      gimple_call_set_lhs (strlen_call, strlen_lhs);
+	      gimple_set_vuse (strlen_call, gimple_vuse (call_stmt));
+	      gsi_insert_before (&gsi, strlen_call, GSI_SAME_STMT);
+	      arg1_len = strlen_lhs;
+	    }
+	  else if (!is_gimple_val (arg1_len))
+	    {
+	      tree arg1_len_tmp = make_ssa_name (TREE_TYPE (arg1_len));
+	      gassign *arg1_stmt = gimple_build_assign (arg1_len_tmp,
+							arg1_len);
+	      gsi_insert_before (&gsi, arg1_stmt, GSI_SAME_STMT);
+	      arg1_len = arg1_len_tmp;
+	    }
 
-	      if (!is_gimple_val (arg1_len))
+	  tree strncmp_decl = builtin_decl_explicit (BUILT_IN_STRNCMP);
+	  gcall *strncmp_call = gimple_build_call (strncmp_decl, 3,
+						   arg0, arg1, arg1_len);
+	  tree strncmp_lhs = make_ssa_name (integer_type_node);
+	  gimple_set_vuse (strncmp_call, gimple_vuse (call_stmt));
+	  gimple_call_set_lhs (strncmp_call, strncmp_lhs);
+	  gsi_remove (&gsi, true);
+	  gsi_insert_before (&gsi, strncmp_call, GSI_SAME_STMT);
+	  tree zero = build_zero_cst (TREE_TYPE (strncmp_lhs));
+
+	  if (is_gimple_assign (stmt))
+	    {
+	      if (gimple_assign_rhs_code (stmt) == COND_EXPR)
 		{
-		  tree arg1_len_tmp = make_ssa_name (TREE_TYPE (arg1_len));
-		  gassign *arg1_stmt = gimple_build_assign (arg1_len_tmp,
-							    arg1_len);
-		  gsi_insert_before (&gsi, arg1_stmt, GSI_SAME_STMT);
-		  arg1_len = arg1_len_tmp;
-		}
-
-	      gcall *strncmp_call = gimple_build_call (strncmp_decl, 3,
-						      arg0, arg1, arg1_len);
-	      tree strncmp_lhs = make_ssa_name (integer_type_node);
-	      gimple_set_vuse (strncmp_call, gimple_vuse (call_stmt));
-	      gimple_call_set_lhs (strncmp_call, strncmp_lhs);
-	      gsi_remove (&gsi, true);
-	      gsi_insert_before (&gsi, strncmp_call, GSI_SAME_STMT);
-	      tree zero = build_zero_cst (TREE_TYPE (strncmp_lhs));
-
-	      if (is_gimple_assign (stmt))
-		{
-		  if (gimple_assign_rhs_code (stmt) == COND_EXPR)
-		    {
-		      tree cond = gimple_assign_rhs1 (stmt);
-		      TREE_OPERAND (cond, 0) = strncmp_lhs;
-		      TREE_OPERAND (cond, 1) = zero;
-		    }
-		  else
-		    {
-		      gimple_assign_set_rhs1 (stmt, strncmp_lhs);
-		      gimple_assign_set_rhs2 (stmt, zero);
-		    }
+		  tree cond = gimple_assign_rhs1 (stmt);
+		  TREE_OPERAND (cond, 0) = strncmp_lhs;
+		  TREE_OPERAND (cond, 1) = zero;
 		}
 	      else
 		{
-		  gcond *cond = as_a<gcond *> (stmt);
-		  gimple_cond_set_lhs (cond, strncmp_lhs);
-		  gimple_cond_set_rhs (cond, zero);
+		  gimple_assign_set_rhs1 (stmt, strncmp_lhs);
+		  gimple_assign_set_rhs2 (stmt, zero);
 		}
-	      update_stmt (stmt);
 	    }
+	  else
+	    {
+	      gcond *cond = as_a<gcond *> (stmt);
+	      gimple_cond_set_lhs (cond, strncmp_lhs);
+	      gimple_cond_set_rhs (cond, zero);
+	    }
+	  update_stmt (stmt);
 	}
     }
 }
-- 
2.42.0


^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH v2 2/2] strlen: call handle_builtin_strlen() from fold_strstr_to_strncmp()
  2023-09-04 20:58 [PATCH v2 1/2] strlen: fold strstr() even if the length isn't previously known [PR96601] Hamza Mahfooz
@ 2023-09-04 20:58 ` Hamza Mahfooz
  2023-09-05  5:14 ` [PATCH v2 1/2] strlen: fold strstr() even if the length isn't previously known [PR96601] Jeff Law
  1 sibling, 0 replies; 5+ messages in thread
From: Hamza Mahfooz @ 2023-09-04 20:58 UTC (permalink / raw)
  To: gcc-patches
  Cc: Jeff Law, Richard Biener, Jakub Jelinek, Ian Lance Taylor,
	Prathamesh Kulkarni, Aldy Hernandez, Martin Sebor, Hamza Mahfooz

Currently, we are not saving the strlen() call we inserted for possible
future common subexpression elimination. Also, it's possible that we can
further fold that strlen() call. So, refactor handle_builtin_strlen()
so that it can be called from fold_strstr_to_strncmp().

gcc/ChangeLog:

	* tree-ssa-strlen.cc (strlen_pass::handle_builtin_strlen):
	Remove from class and mark as static.
	(handle_builtin_strlen): Add parameter
	"gimple_stmt_iterator gsi" and replace references of m_gsi
	with gsi.
	(fold_strstr_to_strncmp): Call handle_builtin_strlen().
	(strlen_pass::check_and_optimize_call): Add m_gsi to the
	handle_builtin_strlen() call.

gcc/testsuite/ChangeLog:

	* gcc.dg/strlenopt-30.c: Add a test.

Signed-off-by: Hamza Mahfooz <someguy@effective-light.com>
---
v2: bump up the number of strncmp()s from 6 to 7 in strlenopt-30.c
---
 gcc/testsuite/gcc.dg/strlenopt-30.c |  9 ++++++++-
 gcc/tree-ssa-strlen.cc              | 23 ++++++++++++-----------
 2 files changed, 20 insertions(+), 12 deletions(-)

diff --git a/gcc/testsuite/gcc.dg/strlenopt-30.c b/gcc/testsuite/gcc.dg/strlenopt-30.c
index 1ee814048c1..d89fe83ca98 100644
--- a/gcc/testsuite/gcc.dg/strlenopt-30.c
+++ b/gcc/testsuite/gcc.dg/strlenopt-30.c
@@ -44,6 +44,12 @@ _Bool f6(char *s, char *t)
   return __builtin_strstr (s, t) == s;
 }
 
+__attribute__((no_icf))
+_Bool f6plus(char *s, char *t)
+{
+  return __builtin_strstr (s, t) == s && __builtin_strlen(t) > 10;
+}
+
 /* Do not perform transform in this case, since
    t1 doesn't have single use.  */
 
@@ -57,4 +63,5 @@ _Bool f7(char *s)
   return (t1 == s);
 }
 
-/* { dg-final { scan-tree-dump-times "__builtin_strncmp" 6 "strlen1" } } */
+/* { dg-final { scan-tree-dump-times "__builtin_strlen" 2 "strlen1" } } */
+/* { dg-final { scan-tree-dump-times "__builtin_strncmp" 7 "strlen1" } } */
diff --git a/gcc/tree-ssa-strlen.cc b/gcc/tree-ssa-strlen.cc
index b0ebbb0db62..8ec6ddbc7c0 100644
--- a/gcc/tree-ssa-strlen.cc
+++ b/gcc/tree-ssa-strlen.cc
@@ -252,7 +252,6 @@ public:
   bool handle_assign (tree lhs, bool *zero_write);
   bool handle_store (bool *zero_write);
   void handle_pointer_plus ();
-  void handle_builtin_strlen ();
   void handle_builtin_strchr ();
   void handle_builtin_strcpy (built_in_function);
   void handle_integral_assign (bool *cleanup_eh);
@@ -2211,10 +2210,10 @@ strlen_pass::maybe_warn_overflow (gimple *stmt, bool call_lhs,
    the strlen call with the known value, otherwise remember that strlen
    of the argument is stored in the lhs SSA_NAME.  */
 
-void
-strlen_pass::handle_builtin_strlen ()
+static void
+handle_builtin_strlen (gimple_stmt_iterator gsi)
 {
-  gimple *stmt = gsi_stmt (m_gsi);
+  gimple *stmt = gsi_stmt (gsi);
   tree lhs = gimple_call_lhs (stmt);
 
   if (lhs == NULL_TREE)
@@ -2268,8 +2267,8 @@ strlen_pass::handle_builtin_strlen ()
 	  if (bound)
 	    rhs = fold_build2_loc (loc, MIN_EXPR, TREE_TYPE (rhs), rhs, bound);
 
-	  gimplify_and_update_call_from_tree (&m_gsi, rhs);
-	  stmt = gsi_stmt (m_gsi);
+	  gimplify_and_update_call_from_tree (&gsi, rhs);
+	  stmt = gsi_stmt (gsi);
 	  update_stmt (stmt);
 	  if (dump_file && (dump_flags & TDF_DETAILS) != 0)
 	    {
@@ -2367,8 +2366,8 @@ strlen_pass::handle_builtin_strlen ()
 	      }
 	    if (!useless_type_conversion_p (TREE_TYPE (lhs), TREE_TYPE (ret)))
 	      ret = fold_convert_loc (loc, TREE_TYPE (lhs), ret);
-	    gimplify_and_update_call_from_tree (&m_gsi, ret);
-	    stmt = gsi_stmt (m_gsi);
+	    gimplify_and_update_call_from_tree (&gsi, ret);
+	    stmt = gsi_stmt (gsi);
 	    update_stmt (stmt);
 	    if (dump_file && (dump_flags & TDF_DETAILS) != 0)
 	      {
@@ -5272,8 +5271,9 @@ fold_strstr_to_strncmp (tree rhs1, tree rhs2, gimple *stmt)
 	{
 	  tree arg1 = gimple_call_arg (call_stmt, 1);
 	  tree arg1_len = NULL_TREE;
-	  int idx = get_stridx (arg1, call_stmt);
 	  gimple_stmt_iterator gsi = gsi_for_stmt (call_stmt);
+again:
+	  int idx = get_stridx (arg1, call_stmt);
 
 	  if (idx)
 	    {
@@ -5296,7 +5296,8 @@ fold_strstr_to_strncmp (tree rhs1, tree rhs2, gimple *stmt)
 	      gimple_call_set_lhs (strlen_call, strlen_lhs);
 	      gimple_set_vuse (strlen_call, gimple_vuse (call_stmt));
 	      gsi_insert_before (&gsi, strlen_call, GSI_SAME_STMT);
-	      arg1_len = strlen_lhs;
+	      handle_builtin_strlen (gsi_for_stmt (strlen_call));
+	      goto again;
 	    }
 	  else if (!is_gimple_val (arg1_len))
 	    {
@@ -5393,7 +5394,7 @@ strlen_pass::check_and_optimize_call (bool *zero_write)
     {
     case BUILT_IN_STRLEN:
     case BUILT_IN_STRNLEN:
-      handle_builtin_strlen ();
+      handle_builtin_strlen (m_gsi);
       break;
     case BUILT_IN_STRCHR:
       handle_builtin_strchr ();
-- 
2.42.0


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH v2 1/2] strlen: fold strstr() even if the length isn't previously known [PR96601]
  2023-09-04 20:58 [PATCH v2 1/2] strlen: fold strstr() even if the length isn't previously known [PR96601] Hamza Mahfooz
  2023-09-04 20:58 ` [PATCH v2 2/2] strlen: call handle_builtin_strlen() from fold_strstr_to_strncmp() Hamza Mahfooz
@ 2023-09-05  5:14 ` Jeff Law
  2023-09-05  9:04   ` Jakub Jelinek
  2023-09-06  4:15   ` Hamza Mahfooz
  1 sibling, 2 replies; 5+ messages in thread
From: Jeff Law @ 2023-09-05  5:14 UTC (permalink / raw)
  To: Hamza Mahfooz, gcc-patches
  Cc: Richard Biener, Jakub Jelinek, Ian Lance Taylor,
	Prathamesh Kulkarni, Aldy Hernandez, Martin Sebor



On 9/4/23 14:58, Hamza Mahfooz wrote:
> Currently, we give up in fold_strstr_to_strncmp() if the length of the
> the second argument to strstr() isn't known to us by the time we hit
> that function. However, we can instead insert a strlen() in ourselves
> and continue trying to fold strstr() into strlen()+strncmp().
> 
> 	PR tree-optimization/96601
> 
> gcc/ChangeLog:
> 
> 	* tree-ssa-strlen.cc (fold_strstr_to_strncmp): If arg1_len == NULL,
> 	insert a strlen() for strstr()'s arg1 and use it as arg1_len.
> 
> gcc/testsuite/ChangeLog:
> 
> 	* gcc.dg/strlenopt-30.c: Modify test.
I'm not sure it's necessarily a win to convert to strncmp as 
aggressively as this patch would do.  Essentially when you have large 
needles that are partially matched repeatedly, performance can 
significantly suffer.

If we're going to seriously consider this path, then I'd like to see how 
it performs in general.  The glibc testsuite I think has some 
performance coverage for strstr.

jeff

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH v2 1/2] strlen: fold strstr() even if the length isn't previously known [PR96601]
  2023-09-05  5:14 ` [PATCH v2 1/2] strlen: fold strstr() even if the length isn't previously known [PR96601] Jeff Law
@ 2023-09-05  9:04   ` Jakub Jelinek
  2023-09-06  4:15   ` Hamza Mahfooz
  1 sibling, 0 replies; 5+ messages in thread
From: Jakub Jelinek @ 2023-09-05  9:04 UTC (permalink / raw)
  To: Jeff Law
  Cc: Hamza Mahfooz, gcc-patches, Richard Biener, Ian Lance Taylor,
	Prathamesh Kulkarni, Aldy Hernandez, Martin Sebor

On Mon, Sep 04, 2023 at 11:14:41PM -0600, Jeff Law wrote:
> 
> 
> On 9/4/23 14:58, Hamza Mahfooz wrote:
> > Currently, we give up in fold_strstr_to_strncmp() if the length of the
> > the second argument to strstr() isn't known to us by the time we hit
> > that function. However, we can instead insert a strlen() in ourselves
> > and continue trying to fold strstr() into strlen()+strncmp().
> > 
> > 	PR tree-optimization/96601
> > 
> > gcc/ChangeLog:
> > 
> > 	* tree-ssa-strlen.cc (fold_strstr_to_strncmp): If arg1_len == NULL,
> > 	insert a strlen() for strstr()'s arg1 and use it as arg1_len.
> > 
> > gcc/testsuite/ChangeLog:
> > 
> > 	* gcc.dg/strlenopt-30.c: Modify test.
> I'm not sure it's necessarily a win to convert to strncmp as aggressively as
> this patch would do.  Essentially when you have large needles that are
> partially matched repeatedly, performance can significantly suffer.

For -Os/-Oz I think this is never a desirable optimization, turning one call
into 2 with all the argument setup etc. (unless we have the length constant
or already computed).

Otherwise, consider say 2GB long needle, it will take quite long to even
compute strlen of that.
Now, looking at current glibc strstr implementation, it starts with
  /* Handle short needle special cases first.  */
  if (ne[0] == '\0')
    return (char *)hs;
  hs = (const unsigned char *)strchr ((const char*)hs, ne[0]);
  if (hs == NULL || ne[1] == '\0')
    return (char*)hs;
  if (ne[2] == '\0')
    return strstr2 (hs, ne);
  if (ne[3] == '\0')
    return strstr3 (hs, ne);

  /* Ensure haystack length is at least as long as needle length.
     Since a match may occur early on in a huge haystack, use strnlen
     and read ahead a few cachelines for improved performance.  */
  size_t ne_len = strlen ((const char*)ne);
  size_t hs_len = __strnlen ((const char*)hs, ne_len | 512);
So, if needle is very long but first character of the needle doesn't
appear in haystack at all and haystack is shorter than needle, this will also
not be desirable optimization, because strstr would just return NULL after
walking haystack, while with the optimization you need to compute the
length.  Otherwise I think the optimization is desirable, because typically
haystack is longer than needle and walking it completely using strchr will
be already more expensive than strlen on needle and otherwise strstr
computes the strlen anyway later.  But perhaps if strlen isn't known it
might be better to guard the strlen + strncmp on inline comparison of the
first character, so that one rules out the above mentioned special case,
so that we won't compute the strlen unnecessarily at least in that case.
Still strstr (32b_string, 2147483647b_string) == 32b_string will be
serious slowdown if 32b_string[0] == 2147483647b_string[0], but perhaps the
common case is more important.

Or do we want to add to the C library some kind of asymetric strcmp,
which will be equivalent to strncmp (p1, p2, strlen (p2)) but will actually
not compute the strlen but only compare the characters and just handle the
case where p2 has as the first different character '\0' as return 0 rather
than difference?

	Jakub


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH v2 1/2] strlen: fold strstr() even if the length isn't previously known [PR96601]
  2023-09-05  5:14 ` [PATCH v2 1/2] strlen: fold strstr() even if the length isn't previously known [PR96601] Jeff Law
  2023-09-05  9:04   ` Jakub Jelinek
@ 2023-09-06  4:15   ` Hamza Mahfooz
  1 sibling, 0 replies; 5+ messages in thread
From: Hamza Mahfooz @ 2023-09-06  4:15 UTC (permalink / raw)
  To: Jeff Law
  Cc: gcc-patches, Richard Biener, Jakub Jelinek, Ian Lance Taylor,
	Prathamesh Kulkarni, Aldy Hernandez, Martin Sebor

[-- Attachment #1: Type: text/plain, Size: 1931 bytes --]



On Mon, Sep 4 2023 at 11:14:41 PM -06:00:00, Jeff Law 
<jeffreyalaw@gmail.com> wrote:
> 
> 
> On 9/4/23 14:58, Hamza Mahfooz wrote:
>> Currently, we give up in fold_strstr_to_strncmp() if the length of 
>> the
>> the second argument to strstr() isn't known to us by the time we hit
>> that function. However, we can instead insert a strlen() in ourselves
>> and continue trying to fold strstr() into strlen()+strncmp().
>> 
>> 	PR tree-optimization/96601
>> 
>> gcc/ChangeLog:
>> 
>> 	* tree-ssa-strlen.cc (fold_strstr_to_strncmp): If arg1_len == NULL,
>> 	insert a strlen() for strstr()'s arg1 and use it as arg1_len.
>> 
>> gcc/testsuite/ChangeLog:
>> 
>> 	* gcc.dg/strlenopt-30.c: Modify test.
> I'm not sure it's necessarily a win to convert to strncmp as 
> aggressively as this patch would do.  Essentially when you have large 
> needles that are partially matched repeatedly, performance can 
> significantly suffer.
> 
> If we're going to seriously consider this path, then I'd like to see 
> how it performs in general.  The glibc testsuite I think has some 
> performance coverage for strstr.
> 

Setup:

glibc as of commit 807690610916 ("htl: Fix stack information for main
thread") to the master branch.
gcc as of commit 102dd3e8067f ("riscv: Synthesize all 11-bit-rotate
constants with rori") to the trunk branch.
On zen 4 (7950x3D)


Without the series applied:

$ ./scripts/compare_strings.py --schema 
scripts/benchout_strings.schema.json -a timings -i 
bench-strstr-baseline.out --gmean
...
Geo-mean (for 533 inputs)     3582.54     2613.90      388.37      
582.71     1055.80

With the series applied:

$ ./scripts/compare_strings.py --schema 
scripts/benchout_strings.schema.json -a timings -i bench-strstr.out 
--gmean
...
Geo-mean (for 533 inputs)     3337.55     2403.50      348.40      
525.53      967.48

Also, I have attached the raw data for both runs, if you want to do 
your own analysis.

> jeff


[-- Attachment #2.1: bench-strstr-baseline.out --]
[-- Type: text/plain, Size: 101806 bytes --]

{
 "timing_type": "hp_timing",
 "functions": {
  "strstr": {
   "bench-variant": "",
   "ifuncs": ["basic_strstr", "twoway_strstr", "__strstr_avx512", "__strstr_sse2_unaligned", "__strstr_generic"],
   "results": [
    {
     "len_haystack": 8,
     "len_needle": 1,
     "align_haystack": 1,
     "align_needle": 3,
     "fail": 0,
     "timings": [38.0625, 203.438, 504, 44.625, 44.625]
    },
    {
     "len_haystack": 8,
     "len_needle": 1,
     "align_haystack": 0,
     "align_needle": 9,
     "fail": 1,
     "timings": [38.0625, 36.75, 22.3125, 21, 38.0625]
    },
    {
     "len_haystack": 9,
     "len_needle": 1,
     "align_haystack": 1,
     "align_needle": 3,
     "fail": 0,
     "timings": [38.0625, 36.75, 31.5, 18.375, 30.1875]
    },
    {
     "len_haystack": 9,
     "len_needle": 1,
     "align_haystack": 0,
     "align_needle": 9,
     "fail": 1,
     "timings": [30.1875, 36.75, 24.9375, 19.6875, 27.5625]
    },
    {
     "len_haystack": 8,
     "len_needle": 1,
     "align_haystack": 4081,
     "align_needle": 9,
     "fail": 1,
     "timings": [27.5625, 32.8125, 23.625, 31.5, 26.25]
    },
    {
     "len_haystack": 16,
     "len_needle": 2,
     "align_haystack": 1,
     "align_needle": 3,
     "fail": 0,
     "timings": [43.3125, 408.188, 36.75, 24.9375, 39.375]
    },
    {
     "len_haystack": 16,
     "len_needle": 2,
     "align_haystack": 0,
     "align_needle": 9,
     "fail": 1,
     "timings": [61.6875, 39.375, 38.0625, 26.25, 28.875]
    },
    {
     "len_haystack": 17,
     "len_needle": 2,
     "align_haystack": 1,
     "align_needle": 3,
     "fail": 0,
     "timings": [45.9375, 80.0625, 38.0625, 28.875, 32.8125]
    },
    {
     "len_haystack": 17,
     "len_needle": 2,
     "align_haystack": 0,
     "align_needle": 9,
     "fail": 1,
     "timings": [48.5625, 34.125, 34.125, 26.25, 26.25]
    },
    {
     "len_haystack": 16,
     "len_needle": 2,
     "align_haystack": 4081,
     "align_needle": 9,
     "fail": 1,
     "timings": [57.75, 38.0625, 42, 51.1875, 31.5]
    },
    {
     "len_haystack": 24,
     "len_needle": 3,
     "align_haystack": 1,
     "align_needle": 3,
     "fail": 0,
     "timings": [82.6875, 212.625, 38.0625, 31.5, 99.75]
    },
    {
     "len_haystack": 24,
     "len_needle": 3,
     "align_haystack": 0,
     "align_needle": 9,
     "fail": 1,
     "timings": [61.6875, 162.75, 36.75, 30.1875, 95.8125]
    },
    {
     "len_haystack": 25,
     "len_needle": 3,
     "align_haystack": 1,
     "align_needle": 3,
     "fail": 0,
     "timings": [69.5625, 177.188, 30.1875, 30.1875, 44.625]
    },
    {
     "len_haystack": 25,
     "len_needle": 3,
     "align_haystack": 0,
     "align_needle": 9,
     "fail": 1,
     "timings": [65.625, 149.625, 30.1875, 24.9375, 51.1875]
    },
    {
     "len_haystack": 24,
     "len_needle": 3,
     "align_haystack": 4081,
     "align_needle": 9,
     "fail": 1,
     "timings": [64.3125, 194.25, 38.0625, 47.25, 94.5]
    },
    {
     "len_haystack": 32,
     "len_needle": 4,
     "align_haystack": 1,
     "align_needle": 3,
     "fail": 0,
     "timings": [84, 241.5, 31.5, 28.875, 171.938]
    },
    {
     "len_haystack": 32,
     "len_needle": 4,
     "align_haystack": 0,
     "align_needle": 9,
     "fail": 1,
     "timings": [74.8125, 216.562, 30.1875, 34.125, 148.312]
    },
    {
     "len_haystack": 33,
     "len_needle": 4,
     "align_haystack": 1,
     "align_needle": 3,
     "fail": 0,
     "timings": [72.1875, 82.6875, 30.1875, 34.125, 59.0625]
    },
    {
     "len_haystack": 33,
     "len_needle": 4,
     "align_haystack": 0,
     "align_needle": 9,
     "fail": 1,
     "timings": [77.4375, 39.375, 27.5625, 31.5, 35.4375]
    },
    {
     "len_haystack": 32,
     "len_needle": 4,
     "align_haystack": 4081,
     "align_needle": 9,
     "fail": 1,
     "timings": [68.25, 236.25, 36.75, 44.625, 153.562]
    },
    {
     "len_haystack": 40,
     "len_needle": 5,
     "align_haystack": 1,
     "align_needle": 3,
     "fail": 0,
     "timings": [94.5, 181.125, 28.875, 47.25, 160.125]
    },
    {
     "len_haystack": 40,
     "len_needle": 5,
     "align_haystack": 0,
     "align_needle": 9,
     "fail": 1,
     "timings": [94.5, 154.875, 31.5, 34.125, 156.188]
    },
    {
     "len_haystack": 41,
     "len_needle": 5,
     "align_haystack": 1,
     "align_needle": 3,
     "fail": 0,
     "timings": [103.688, 177.188, 34.125, 32.8125, 137.812]
    },
    {
     "len_haystack": 41,
     "len_needle": 5,
     "align_haystack": 0,
     "align_needle": 9,
     "fail": 1,
     "timings": [97.125, 147, 30.1875, 28.875, 140.438]
    },
    {
     "len_haystack": 40,
     "len_needle": 5,
     "align_haystack": 4081,
     "align_needle": 9,
     "fail": 1,
     "timings": [94.5, 169.312, 35.4375, 44.625, 150.938]
    },
    {
     "len_haystack": 48,
     "len_needle": 6,
     "align_haystack": 1,
     "align_needle": 3,
     "fail": 0,
     "timings": [118.125, 245.438, 44.625, 49.875, 165.375]
    },
    {
     "len_haystack": 48,
     "len_needle": 6,
     "align_haystack": 0,
     "align_needle": 9,
     "fail": 1,
     "timings": [111.562, 262.5, 38.0625, 35.4375, 145.688]
    },
    {
     "len_haystack": 49,
     "len_needle": 6,
     "align_haystack": 1,
     "align_needle": 3,
     "fail": 0,
     "timings": [137.812, 279.562, 43.3125, 42, 161.438]
    },
    {
     "len_haystack": 49,
     "len_needle": 6,
     "align_haystack": 0,
     "align_needle": 9,
     "fail": 1,
     "timings": [128.625, 301.875, 36.75, 34.125, 158.812]
    },
    {
     "len_haystack": 48,
     "len_needle": 6,
     "align_haystack": 4081,
     "align_needle": 9,
     "fail": 1,
     "timings": [102.375, 265.125, 48.5625, 63, 148.312]
    },
    {
     "len_haystack": 56,
     "len_needle": 7,
     "align_haystack": 1,
     "align_needle": 3,
     "fail": 0,
     "timings": [143.062, 187.688, 39.375, 48.5625, 154.875]
    },
    {
     "len_haystack": 56,
     "len_needle": 7,
     "align_haystack": 0,
     "align_needle": 9,
     "fail": 1,
     "timings": [140.438, 160.125, 34.125, 36.75, 147]
    },
    {
     "len_haystack": 57,
     "len_needle": 7,
     "align_haystack": 1,
     "align_needle": 3,
     "fail": 0,
     "timings": [136.5, 241.5, 39.375, 42, 171.938]
    },
    {
     "len_haystack": 57,
     "len_needle": 7,
     "align_haystack": 0,
     "align_needle": 9,
     "fail": 1,
     "timings": [144.375, 208.688, 31.5, 27.5625, 168]
    },
    {
     "len_haystack": 56,
     "len_needle": 7,
     "align_haystack": 4081,
     "align_needle": 9,
     "fail": 1,
     "timings": [135.188, 160.125, 43.3125, 55.125, 157.5]
    },
    {
     "len_haystack": 64,
     "len_needle": 8,
     "align_haystack": 1,
     "align_needle": 3,
     "fail": 0,
     "timings": [140.438, 404.25, 39.375, 45.9375, 153.562]
    },
    {
     "len_haystack": 64,
     "len_needle": 8,
     "align_haystack": 0,
     "align_needle": 9,
     "fail": 1,
     "timings": [157.5, 372.75, 63, 52.5, 153.562]
    },
    {
     "len_haystack": 65,
     "len_needle": 8,
     "align_haystack": 1,
     "align_needle": 3,
     "fail": 0,
     "timings": [154.875, 215.25, 38.0625, 48.5625, 168]
    },
    {
     "len_haystack": 65,
     "len_needle": 8,
     "align_haystack": 0,
     "align_needle": 9,
     "fail": 1,
     "timings": [95.8125, 106.312, 22.3125, 27.5625, 90.5625]
    },
    {
     "len_haystack": 64,
     "len_needle": 8,
     "align_haystack": 4081,
     "align_needle": 9,
     "fail": 1,
     "timings": [85.3125, 207.375, 31.5, 32.8125, 90.5625]
    },
    {
     "len_haystack": 96,
     "len_needle": 9,
     "align_haystack": 1,
     "align_needle": 3,
     "fail": 0,
     "timings": [128.625, 147, 35.4375, 47.25, 105]
    },
    {
     "len_haystack": 96,
     "len_needle": 9,
     "align_haystack": 0,
     "align_needle": 9,
     "fail": 1,
     "timings": [136.5, 126, 26.25, 30.1875, 97.125]
    },
    {
     "len_haystack": 97,
     "len_needle": 9,
     "align_haystack": 1,
     "align_needle": 3,
     "fail": 0,
     "timings": [128.625, 189, 24.9375, 38.0625, 101.062]
    },
    {
     "len_haystack": 97,
     "len_needle": 9,
     "align_haystack": 0,
     "align_needle": 9,
     "fail": 1,
     "timings": [189, 179.812, 22.3125, 27.5625, 98.4375]
    },
    {
     "len_haystack": 96,
     "len_needle": 9,
     "align_haystack": 4081,
     "align_needle": 9,
     "fail": 1,
     "timings": [136.5, 139.125, 34.125, 40.6875, 103.688]
    },
    {
     "len_haystack": 128,
     "len_needle": 10,
     "align_haystack": 1,
     "align_needle": 3,
     "fail": 0,
     "timings": [145.688, 321.562, 30.1875, 39.375, 102.375]
    },
    {
     "len_haystack": 128,
     "len_needle": 10,
     "align_haystack": 0,
     "align_needle": 9,
     "fail": 1,
     "timings": [228.375, 316.312, 35.4375, 35.4375, 98.4375]
    },
    {
     "len_haystack": 129,
     "len_needle": 10,
     "align_haystack": 1,
     "align_needle": 3,
     "fail": 0,
     "timings": [175.875, 437.062, 27.5625, 42, 122.062]
    },
    {
     "len_haystack": 129,
     "len_needle": 10,
     "align_haystack": 0,
     "align_needle": 9,
     "fail": 1,
     "timings": [158.812, 423.938, 27.5625, 35.4375, 115.5]
    },
    {
     "len_haystack": 128,
     "len_needle": 10,
     "align_haystack": 4081,
     "align_needle": 9,
     "fail": 1,
     "timings": [141.75, 321.562, 32.8125, 40.6875, 101.062]
    },
    {
     "len_haystack": 160,
     "len_needle": 11,
     "align_haystack": 1,
     "align_needle": 3,
     "fail": 0,
     "timings": [219.188, 502.688, 28.875, 48.5625, 116.812]
    },
    {
     "len_haystack": 160,
     "len_needle": 11,
     "align_haystack": 0,
     "align_needle": 9,
     "fail": 1,
     "timings": [212.625, 441, 24.9375, 30.1875, 108.938]
    },
    {
     "len_haystack": 161,
     "len_needle": 11,
     "align_haystack": 1,
     "align_needle": 3,
     "fail": 0,
     "timings": [175.875, 400.312, 28.875, 43.3125, 108.938]
    },
    {
     "len_haystack": 161,
     "len_needle": 11,
     "align_haystack": 0,
     "align_needle": 9,
     "fail": 1,
     "timings": [179.812, 338.625, 23.625, 30.1875, 106.312]
    },
    {
     "len_haystack": 160,
     "len_needle": 11,
     "align_haystack": 4081,
     "align_needle": 9,
     "fail": 1,
     "timings": [207.375, 443.625, 34.125, 39.375, 112.875]
    },
    {
     "len_haystack": 192,
     "len_needle": 12,
     "align_haystack": 1,
     "align_needle": 3,
     "fail": 0,
     "timings": [271.688, 346.5, 38.0625, 56.4375, 128.625]
    },
    {
     "len_haystack": 192,
     "len_needle": 12,
     "align_haystack": 0,
     "align_needle": 9,
     "fail": 1,
     "timings": [286.125, 317.625, 36.75, 49.875, 124.688]
    },
    {
     "len_haystack": 193,
     "len_needle": 12,
     "align_haystack": 1,
     "align_needle": 3,
     "fail": 0,
     "timings": [229.688, 181.125, 27.5625, 45.9375, 112.875]
    },
    {
     "len_haystack": 193,
     "len_needle": 12,
     "align_haystack": 0,
     "align_needle": 9,
     "fail": 1,
     "timings": [220.5, 164.062, 34.125, 38.0625, 102.375]
    },
    {
     "len_haystack": 192,
     "len_needle": 12,
     "align_haystack": 4081,
     "align_needle": 9,
     "fail": 1,
     "timings": [273, 334.688, 40.6875, 44.625, 131.25]
    },
    {
     "len_haystack": 224,
     "len_needle": 13,
     "align_haystack": 1,
     "align_needle": 3,
     "fail": 0,
     "timings": [291.375, 53.8125, 31.5, 53.8125, 42]
    },
    {
     "len_haystack": 224,
     "len_needle": 13,
     "align_haystack": 0,
     "align_needle": 9,
     "fail": 1,
     "timings": [224.438, 44.625, 26.25, 42, 35.4375]
    },
    {
     "len_haystack": 225,
     "len_needle": 13,
     "align_haystack": 1,
     "align_needle": 3,
     "fail": 0,
     "timings": [223.125, 47.25, 28.875, 48.5625, 38.0625]
    },
    {
     "len_haystack": 225,
     "len_needle": 13,
     "align_haystack": 0,
     "align_needle": 9,
     "fail": 1,
     "timings": [224.438, 43.3125, 24.9375, 35.4375, 36.75]
    },
    {
     "len_haystack": 224,
     "len_needle": 13,
     "align_haystack": 4081,
     "align_needle": 9,
     "fail": 1,
     "timings": [223.125, 43.3125, 36.75, 49.875, 38.0625]
    },
    {
     "len_haystack": 256,
     "len_needle": 14,
     "align_haystack": 1,
     "align_needle": 3,
     "fail": 0,
     "timings": [301.875, 198.188, 31.5, 49.875, 127.312]
    },
    {
     "len_haystack": 256,
     "len_needle": 14,
     "align_haystack": 0,
     "align_needle": 9,
     "fail": 1,
     "timings": [296.625, 160.125, 31.5, 43.3125, 112.875]
    },
    {
     "len_haystack": 257,
     "len_needle": 14,
     "align_haystack": 1,
     "align_needle": 3,
     "fail": 0,
     "timings": [278.25, 183.75, 28.875, 49.875, 112.875]
    },
    {
     "len_haystack": 257,
     "len_needle": 14,
     "align_haystack": 0,
     "align_needle": 9,
     "fail": 1,
     "timings": [275.625, 158.812, 28.875, 40.6875, 114.188]
    },
    {
     "len_haystack": 256,
     "len_needle": 14,
     "align_haystack": 4081,
     "align_needle": 9,
     "fail": 1,
     "timings": [292.688, 164.062, 28.875, 40.6875, 114.188]
    },
    {
     "len_haystack": 288,
     "len_needle": 15,
     "align_haystack": 1,
     "align_needle": 3,
     "fail": 0,
     "timings": [349.125, 195.562, 40.6875, 61.6875, 152.25]
    },
    {
     "len_haystack": 288,
     "len_needle": 15,
     "align_haystack": 0,
     "align_needle": 9,
     "fail": 1,
     "timings": [333.375, 164.062, 32.8125, 42, 136.5]
    },
    {
     "len_haystack": 289,
     "len_needle": 15,
     "align_haystack": 1,
     "align_needle": 3,
     "fail": 0,
     "timings": [347.812, 187.688, 35.4375, 57.75, 137.812]
    },
    {
     "len_haystack": 289,
     "len_needle": 15,
     "align_haystack": 0,
     "align_needle": 9,
     "fail": 1,
     "timings": [357, 160.125, 31.5, 39.375, 132.562]
    },
    {
     "len_haystack": 288,
     "len_needle": 15,
     "align_haystack": 4081,
     "align_needle": 9,
     "fail": 1,
     "timings": [338.625, 169.312, 36.75, 49.875, 145.688]
    },
    {
     "len_haystack": 320,
     "len_needle": 16,
     "align_haystack": 1,
     "align_needle": 3,
     "fail": 0,
     "timings": [366.188, 891.188, 34.125, 60.375, 157.5]
    },
    {
     "len_haystack": 320,
     "len_needle": 16,
     "align_haystack": 0,
     "align_needle": 9,
     "fail": 1,
     "timings": [355.688, 819, 35.4375, 51.1875, 148.312]
    },
    {
     "len_haystack": 321,
     "len_needle": 16,
     "align_haystack": 1,
     "align_needle": 3,
     "fail": 0,
     "timings": [371.438, 759.938, 34.125, 60.375, 135.188]
    },
    {
     "len_haystack": 321,
     "len_needle": 16,
     "align_haystack": 0,
     "align_needle": 9,
     "fail": 1,
     "timings": [357, 732.375, 32.8125, 45.9375, 133.875]
    },
    {
     "len_haystack": 320,
     "len_needle": 16,
     "align_haystack": 4081,
     "align_needle": 9,
     "fail": 1,
     "timings": [354.375, 834.75, 31.5, 47.25, 144.375]
    },
    {
     "len_haystack": 256,
     "len_needle": 4,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [409.5, 203.438, 39.375, 45.9375, 266.438]
    },
    {
     "len_haystack": 256,
     "len_needle": 4,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [395.062, 177.188, 43.3125, 48.5625, 241.5]
    },
    {
     "len_haystack": 257,
     "len_needle": 5,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [304.5, 253.312, 43.3125, 47.25, 220.5]
    },
    {
     "len_haystack": 257,
     "len_needle": 5,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [300.562, 203.438, 51.1875, 44.625, 204.75]
    },
    {
     "len_haystack": 257,
     "len_needle": 4,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [333.375, 771.75, 40.6875, 49.875, 271.688]
    },
    {
     "len_haystack": 257,
     "len_needle": 4,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [322.875, 735, 43.3125, 48.5625, 248.062]
    },
    {
     "len_haystack": 257,
     "len_needle": 4,
     "align_haystack": 4081,
     "align_needle": 5,
     "fail": 1,
     "timings": [431.812, 1001.44, 63, 60.375, 262.5]
    },
    {
     "len_haystack": 256,
     "len_needle": 8,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [345.188, 139.125, 55.125, 73.5, 165.375]
    },
    {
     "len_haystack": 256,
     "len_needle": 8,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [337.312, 116.812, 52.5, 72.1875, 161.438]
    },
    {
     "len_haystack": 257,
     "len_needle": 9,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [316.312, 127.312, 43.3125, 53.8125, 164.062]
    },
    {
     "len_haystack": 257,
     "len_needle": 9,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [307.125, 110.25, 42, 53.8125, 161.438]
    },
    {
     "len_haystack": 257,
     "len_needle": 8,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [308.438, 124.688, 39.375, 55.125, 165.375]
    },
    {
     "len_haystack": 257,
     "len_needle": 8,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [311.062, 106.312, 42, 47.25, 149.625]
    },
    {
     "len_haystack": 257,
     "len_needle": 8,
     "align_haystack": 4081,
     "align_needle": 5,
     "fail": 1,
     "timings": [312.375, 108.938, 45.9375, 61.6875, 154.875]
    },
    {
     "len_haystack": 256,
     "len_needle": 16,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [257.25, 51.1875, 40.6875, 63, 44.625]
    },
    {
     "len_haystack": 256,
     "len_needle": 16,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [244.125, 34.125, 38.0625, 48.5625, 31.5]
    },
    {
     "len_haystack": 257,
     "len_needle": 17,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [375.375, 334.688, 35.4375, 70.875, 148.312]
    },
    {
     "len_haystack": 257,
     "len_needle": 17,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [597.188, 460.688, 77.4375, 86.625, 213.938]
    },
    {
     "len_haystack": 257,
     "len_needle": 16,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [626.062, 649.688, 86.625, 124.688, 215.25]
    },
    {
     "len_haystack": 257,
     "len_needle": 16,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [578.812, 548.625, 74.8125, 97.125, 258.562]
    },
    {
     "len_haystack": 257,
     "len_needle": 16,
     "align_haystack": 4081,
     "align_needle": 5,
     "fail": 1,
     "timings": [532.875, 581.438, 68.25, 120.75, 262.5]
    },
    {
     "len_haystack": 256,
     "len_needle": 32,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [488.25, 775.688, 65.625, 170.625, 305.812]
    },
    {
     "len_haystack": 256,
     "len_needle": 32,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [443.625, 594.562, 65.625, 90.5625, 278.25]
    },
    {
     "len_haystack": 257,
     "len_needle": 33,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [527.625, 829.5, 97.125, 210, 328.125]
    },
    {
     "len_haystack": 257,
     "len_needle": 33,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [556.5, 672, 85.3125, 124.688, 254.625]
    },
    {
     "len_haystack": 257,
     "len_needle": 32,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [477.75, 686.438, 78.75, 183.75, 269.062]
    },
    {
     "len_haystack": 257,
     "len_needle": 32,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [464.625, 636.562, 87.9375, 126, 262.5]
    },
    {
     "len_haystack": 257,
     "len_needle": 32,
     "align_haystack": 4081,
     "align_needle": 5,
     "fail": 1,
     "timings": [513.188, 689.062, 108.938, 140.438, 295.312]
    },
    {
     "len_haystack": 256,
     "len_needle": 64,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [547.312, 1042.12, 74.8125, 305.812, 421.312]
    },
    {
     "len_haystack": 256,
     "len_needle": 64,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [557.812, 998.812, 98.4375, 132.562, 409.5]
    },
    {
     "len_haystack": 257,
     "len_needle": 65,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [581.438, 1203.56, 90.5625, 307.125, 429.188]
    },
    {
     "len_haystack": 257,
     "len_needle": 65,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [534.188, 1055.25, 80.0625, 129.938, 409.5]
    },
    {
     "len_haystack": 257,
     "len_needle": 64,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [660.188, 1176, 78.75, 297.938, 405.562]
    },
    {
     "len_haystack": 257,
     "len_needle": 64,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [535.5, 1014.56, 82.6875, 115.5, 414.75]
    },
    {
     "len_haystack": 257,
     "len_needle": 64,
     "align_haystack": 4081,
     "align_needle": 5,
     "fail": 1,
     "timings": [490.875, 912.188, 76.125, 112.875, 383.25]
    },
    {
     "len_haystack": 256,
     "len_needle": 128,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [504, 1584.19, 227.062, 303.188, 475.125]
    },
    {
     "len_haystack": 256,
     "len_needle": 128,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [511.875, 1346.62, 60.375, 45.9375, 308.438]
    },
    {
     "len_haystack": 257,
     "len_needle": 129,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [349.125, 1021.12, 165.375, 231, 321.562]
    },
    {
     "len_haystack": 257,
     "len_needle": 129,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [351.75, 832.125, 60.375, 68.25, 308.438]
    },
    {
     "len_haystack": 257,
     "len_needle": 128,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [337.312, 1005.38, 132.562, 225.75, 311.062]
    },
    {
     "len_haystack": 257,
     "len_needle": 128,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [284.812, 821.625, 51.1875, 57.75, 303.188]
    },
    {
     "len_haystack": 257,
     "len_needle": 128,
     "align_haystack": 4081,
     "align_needle": 5,
     "fail": 1,
     "timings": [280.875, 815.062, 48.5625, 56.4375, 301.875]
    },
    {
     "len_haystack": 256,
     "len_needle": 256,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [248.062, 66.9375, 228.375, 257.25, 57.75]
    },
    {
     "len_haystack": 256,
     "len_needle": 256,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [315, 47.25, 45.9375, 55.125, 44.625]
    },
    {
     "len_haystack": 257,
     "len_needle": 257,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [252, 65.625, 229.688, 259.875, 61.6875]
    },
    {
     "len_haystack": 257,
     "len_needle": 257,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [355.688, 47.25, 51.1875, 63, 44.625]
    },
    {
     "len_haystack": 257,
     "len_needle": 256,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [308.438, 61.6875, 228.375, 259.875, 53.8125]
    },
    {
     "len_haystack": 257,
     "len_needle": 256,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [286.125, 45.9375, 47.25, 52.5, 39.375]
    },
    {
     "len_haystack": 257,
     "len_needle": 256,
     "align_haystack": 4081,
     "align_needle": 5,
     "fail": 1,
     "timings": [284.812, 52.5, 45.9375, 49.875, 44.625]
    },
    {
     "len_haystack": 512,
     "len_needle": 4,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [628.688, 1273.12, 72.1875, 91.875, 501.375]
    },
    {
     "len_haystack": 512,
     "len_needle": 4,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [624.75, 1231.12, 68.25, 91.875, 475.125]
    },
    {
     "len_haystack": 513,
     "len_needle": 5,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [644.438, 223.125, 90.5625, 102.375, 399]
    },
    {
     "len_haystack": 513,
     "len_needle": 5,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [624.75, 202.125, 102.375, 107.625, 367.5]
    },
    {
     "len_haystack": 513,
     "len_needle": 4,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [636.562, 204.75, 81.375, 93.1875, 485.625]
    },
    {
     "len_haystack": 513,
     "len_needle": 4,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [615.562, 183.75, 77.4375, 95.8125, 476.438]
    },
    {
     "len_haystack": 513,
     "len_needle": 4,
     "align_haystack": 4081,
     "align_needle": 5,
     "fail": 1,
     "timings": [611.625, 202.125, 70.875, 94.5, 477.75]
    },
    {
     "len_haystack": 512,
     "len_needle": 8,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [553.875, 338.625, 81.375, 94.5, 210]
    },
    {
     "len_haystack": 512,
     "len_needle": 8,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [543.375, 312.375, 77.4375, 84, 191.625]
    },
    {
     "len_haystack": 513,
     "len_needle": 9,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [479.062, 59.0625, 49.875, 68.25, 51.1875]
    },
    {
     "len_haystack": 513,
     "len_needle": 9,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [471.188, 36.75, 49.875, 69.5625, 34.125]
    },
    {
     "len_haystack": 513,
     "len_needle": 8,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [549.938, 177.188, 48.5625, 66.9375, 177.188]
    },
    {
     "len_haystack": 513,
     "len_needle": 8,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [538.125, 150.938, 45.9375, 61.6875, 175.875]
    },
    {
     "len_haystack": 513,
     "len_needle": 8,
     "align_haystack": 4081,
     "align_needle": 5,
     "fail": 1,
     "timings": [538.125, 160.125, 45.9375, 66.9375, 181.125]
    },
    {
     "len_haystack": 512,
     "len_needle": 16,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [556.5, 1193.06, 47.25, 77.4375, 241.5]
    },
    {
     "len_haystack": 512,
     "len_needle": 16,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [548.625, 1141.88, 44.625, 60.375, 231]
    },
    {
     "len_haystack": 513,
     "len_needle": 17,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [951.562, 954.188, 68.25, 94.5, 158.812]
    },
    {
     "len_haystack": 513,
     "len_needle": 17,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [535.5, 910.875, 64.3125, 74.8125, 149.625]
    },
    {
     "len_haystack": 513,
     "len_needle": 16,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [591.938, 1615.69, 49.875, 69.5625, 203.438]
    },
    {
     "len_haystack": 513,
     "len_needle": 16,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [576.188, 1573.69, 44.625, 59.0625, 196.875]
    },
    {
     "len_haystack": 513,
     "len_needle": 16,
     "align_haystack": 4081,
     "align_needle": 5,
     "fail": 1,
     "timings": [573.562, 1598.62, 45.9375, 63, 196.875]
    },
    {
     "len_haystack": 512,
     "len_needle": 32,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [632.625, 653.625, 65.625, 128.625, 168]
    },
    {
     "len_haystack": 512,
     "len_needle": 32,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [610.312, 601.125, 63, 86.625, 160.125]
    },
    {
     "len_haystack": 513,
     "len_needle": 33,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [643.125, 616.875, 76.125, 152.25, 173.25]
    },
    {
     "len_haystack": 513,
     "len_needle": 33,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [626.062, 526.312, 69.5625, 102.375, 166.688]
    },
    {
     "len_haystack": 513,
     "len_needle": 32,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [586.688, 584.062, 57.75, 124.688, 203.438]
    },
    {
     "len_haystack": 513,
     "len_needle": 32,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [561.75, 543.375, 57.75, 80.0625, 186.375]
    },
    {
     "len_haystack": 513,
     "len_needle": 32,
     "align_haystack": 4081,
     "align_needle": 5,
     "fail": 1,
     "timings": [553.875, 544.688, 63, 85.3125, 185.062]
    },
    {
     "len_haystack": 512,
     "len_needle": 64,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [665.438, 749.438, 72.1875, 210, 213.938]
    },
    {
     "len_haystack": 512,
     "len_needle": 64,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [609, 547.312, 73.5, 86.625, 210]
    },
    {
     "len_haystack": 513,
     "len_needle": 65,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [732.375, 811.125, 73.5, 191.625, 228.375]
    },
    {
     "len_haystack": 513,
     "len_needle": 65,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [703.5, 678.562, 66.9375, 78.75, 216.562]
    },
    {
     "len_haystack": 513,
     "len_needle": 64,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [913.5, 888.562, 80.0625, 217.875, 238.875]
    },
    {
     "len_haystack": 513,
     "len_needle": 64,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [586.688, 509.25, 73.5, 98.4375, 223.125]
    },
    {
     "len_haystack": 513,
     "len_needle": 64,
     "align_haystack": 4081,
     "align_needle": 5,
     "fail": 1,
     "timings": [584.062, 513.188, 78.75, 98.4375, 229.688]
    },
    {
     "len_haystack": 512,
     "len_needle": 128,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [623.438, 1063.12, 154.875, 236.25, 332.062]
    },
    {
     "len_haystack": 512,
     "len_needle": 128,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [584.062, 910.875, 119.438, 106.312, 311.062]
    },
    {
     "len_haystack": 513,
     "len_needle": 129,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [648.375, 993.562, 152.25, 252, 325.5]
    },
    {
     "len_haystack": 513,
     "len_needle": 129,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [607.688, 816.375, 74.8125, 93.1875, 320.25]
    },
    {
     "len_haystack": 513,
     "len_needle": 128,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [610.312, 1006.69, 153.562, 241.5, 329.438]
    },
    {
     "len_haystack": 513,
     "len_needle": 128,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [560.438, 870.188, 70.875, 80.0625, 311.062]
    },
    {
     "len_haystack": 513,
     "len_needle": 128,
     "align_haystack": 4081,
     "align_needle": 5,
     "fail": 1,
     "timings": [552.562, 864.938, 64.3125, 86.625, 313.688]
    },
    {
     "len_haystack": 512,
     "len_needle": 256,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [574.875, 1870.31, 253.312, 362.25, 526.312]
    },
    {
     "len_haystack": 512,
     "len_needle": 256,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [624.75, 1472.62, 78.75, 108.938, 509.25]
    },
    {
     "len_haystack": 513,
     "len_needle": 257,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [593.25, 1728.56, 248.062, 350.438, 1825.69]
    },
    {
     "len_haystack": 513,
     "len_needle": 257,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [553.875, 1510.69, 66.9375, 86.625, 1492.31]
    },
    {
     "len_haystack": 513,
     "len_needle": 256,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [618.188, 1750.88, 248.062, 364.875, 509.25]
    },
    {
     "len_haystack": 513,
     "len_needle": 256,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [616.875, 1464.75, 69.5625, 85.3125, 509.25]
    },
    {
     "len_haystack": 513,
     "len_needle": 256,
     "align_haystack": 4081,
     "align_needle": 5,
     "fail": 1,
     "timings": [610.312, 1447.69, 73.5, 87.9375, 518.438]
    },
    {
     "len_haystack": 1024,
     "len_needle": 4,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [1473.94, 1757.44, 120.75, 140.438, 876.75]
    },
    {
     "len_haystack": 1024,
     "len_needle": 4,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [1443.75, 1697.06, 106.312, 124.688, 828.188]
    },
    {
     "len_haystack": 1025,
     "len_needle": 5,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [1178.62, 3125.06, 105, 133.875, 682.5]
    },
    {
     "len_haystack": 1025,
     "len_needle": 5,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [1174.69, 3223.5, 211.312, 126, 656.25]
    },
    {
     "len_haystack": 1025,
     "len_needle": 4,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [1232.44, 820.312, 133.875, 150.938, 796.688]
    },
    {
     "len_haystack": 1025,
     "len_needle": 4,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [1204.88, 796.688, 135.188, 157.5, 794.062]
    },
    {
     "len_haystack": 1025,
     "len_needle": 4,
     "align_haystack": 4081,
     "align_needle": 5,
     "fail": 1,
     "timings": [1206.19, 798, 123.375, 154.875, 792.75]
    },
    {
     "len_haystack": 1024,
     "len_needle": 8,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [1158.94, 219.188, 118.125, 143.062, 469.875]
    },
    {
     "len_haystack": 1024,
     "len_needle": 8,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [1130.06, 191.625, 110.25, 133.875, 455.438]
    },
    {
     "len_haystack": 1025,
     "len_needle": 9,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [1221.94, 456.75, 147, 203.438, 414.75]
    },
    {
     "len_haystack": 1025,
     "len_needle": 9,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [1214.06, 426.562, 135.188, 181.125, 400.312]
    },
    {
     "len_haystack": 1025,
     "len_needle": 8,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [1536.94, 219.188, 157.5, 223.125, 518.438]
    },
    {
     "len_haystack": 1025,
     "len_needle": 8,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [1533, 194.25, 154.875, 215.25, 502.688]
    },
    {
     "len_haystack": 1025,
     "len_needle": 8,
     "align_haystack": 4081,
     "align_needle": 5,
     "fail": 1,
     "timings": [1526.44, 204.75, 161.438, 204.75, 505.312]
    },
    {
     "len_haystack": 1024,
     "len_needle": 16,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [1232.44, 3220.88, 147, 192.938, 330.75]
    },
    {
     "len_haystack": 1024,
     "len_needle": 16,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [1219.31, 3139.5, 144.375, 169.312, 316.312]
    },
    {
     "len_haystack": 1025,
     "len_needle": 17,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [1160.25, 3207.75, 120.75, 164.062, 341.25]
    },
    {
     "len_haystack": 1025,
     "len_needle": 17,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [1131.38, 3136.88, 122.062, 150.938, 308.438]
    },
    {
     "len_haystack": 1025,
     "len_needle": 16,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [1107.75, 3205.12, 111.562, 154.875, 431.812]
    },
    {
     "len_haystack": 1025,
     "len_needle": 16,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [1878.19, 3150, 99.75, 136.5, 417.375]
    },
    {
     "len_haystack": 1025,
     "len_needle": 16,
     "align_haystack": 4081,
     "align_needle": 5,
     "fail": 1,
     "timings": [1097.25, 3163.12, 112.875, 141.75, 417.375]
    },
    {
     "len_haystack": 1024,
     "len_needle": 32,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [1463.44, 1001.44, 106.312, 190.312, 318.938]
    },
    {
     "len_haystack": 1024,
     "len_needle": 32,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [1447.69, 914.812, 103.688, 147, 305.812]
    },
    {
     "len_haystack": 1025,
     "len_needle": 33,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [1005.38, 786.188, 97.125, 152.25, 248.062]
    },
    {
     "len_haystack": 1025,
     "len_needle": 33,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [969.938, 756, 81.375, 108.938, 229.688]
    },
    {
     "len_haystack": 1025,
     "len_needle": 32,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [1451.62, 1040.81, 105, 164.062, 252]
    },
    {
     "len_haystack": 1025,
     "len_needle": 32,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [1438.5, 952.875, 102.375, 128.625, 245.438]
    },
    {
     "len_haystack": 1025,
     "len_needle": 32,
     "align_haystack": 4081,
     "align_needle": 5,
     "fail": 1,
     "timings": [1438.5, 955.5, 102.375, 131.25, 257.25]
    },
    {
     "len_haystack": 1024,
     "len_needle": 64,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [1308.56, 1118.25, 178.5, 315, 290.062]
    },
    {
     "len_haystack": 1024,
     "len_needle": 64,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [1275.75, 1002.75, 179.812, 210, 287.438]
    },
    {
     "len_haystack": 1025,
     "len_needle": 65,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [1211.44, 980.438, 107.625, 249.375, 283.5]
    },
    {
     "len_haystack": 1025,
     "len_needle": 65,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [1139.25, 887.25, 102.375, 131.25, 255.938]
    },
    {
     "len_haystack": 1025,
     "len_needle": 64,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [1487.06, 1060.5, 110.25, 245.438, 322.875]
    },
    {
     "len_haystack": 1025,
     "len_needle": 64,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [1460.81, 967.312, 106.312, 132.562, 304.5]
    },
    {
     "len_haystack": 1025,
     "len_needle": 64,
     "align_haystack": 4081,
     "align_needle": 5,
     "fail": 1,
     "timings": [1462.12, 962.062, 95.8125, 132.562, 312.375]
    },
    {
     "len_haystack": 1024,
     "len_needle": 128,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [1151.06, 1480.5, 192.938, 292.688, 370.125]
    },
    {
     "len_haystack": 1024,
     "len_needle": 128,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [1097.25, 1239, 200.812, 249.375, 339.938]
    },
    {
     "len_haystack": 1025,
     "len_needle": 129,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [1485.75, 1273.12, 219.188, 349.125, 354.375]
    },
    {
     "len_haystack": 1025,
     "len_needle": 129,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [1578.94, 1592.06, 166.688, 307.125, 501.375]
    },
    {
     "len_haystack": 1025,
     "len_needle": 128,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [1191.75, 1347.94, 210, 311.062, 402.938]
    },
    {
     "len_haystack": 1025,
     "len_needle": 128,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [1136.62, 1144.5, 122.062, 143.062, 376.688]
    },
    {
     "len_haystack": 1025,
     "len_needle": 128,
     "align_haystack": 4081,
     "align_needle": 5,
     "fail": 1,
     "timings": [1132.69, 1137.94, 123.375, 147, 378]
    },
    {
     "len_haystack": 1024,
     "len_needle": 256,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [1206.19, 1841.44, 313.688, 413.438, 552.562]
    },
    {
     "len_haystack": 1024,
     "len_needle": 256,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [1193.06, 1481.81, 122.062, 145.688, 530.25]
    },
    {
     "len_haystack": 1025,
     "len_needle": 257,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [2101.31, 2837.62, 463.312, 872.812, 2617.12]
    },
    {
     "len_haystack": 1025,
     "len_needle": 257,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [2126.25, 2313.94, 249.375, 391.125, 2403.19]
    },
    {
     "len_haystack": 1025,
     "len_needle": 256,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [1942.5, 3058.12, 518.438, 837.375, 878.062]
    },
    {
     "len_haystack": 1025,
     "len_needle": 256,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [2008.12, 2495.06, 237.562, 464.625, 748.125]
    },
    {
     "len_haystack": 1025,
     "len_needle": 256,
     "align_haystack": 4081,
     "align_needle": 5,
     "fail": 1,
     "timings": [1918.88, 2362.5, 263.812, 462, 842.625]
    },
    {
     "len_haystack": 2048,
     "len_needle": 4,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [3723.56, 5855.06, 240.188, 363.562, 2257.5]
    },
    {
     "len_haystack": 2048,
     "len_needle": 4,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [3698.62, 5642.44, 248.062, 337.312, 2300.81]
    },
    {
     "len_haystack": 2049,
     "len_needle": 5,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [3807.56, 2987.25, 439.688, 669.375, 2281.12]
    },
    {
     "len_haystack": 2049,
     "len_needle": 5,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [3871.88, 2921.62, 444.938, 682.5, 2155.12]
    },
    {
     "len_haystack": 2049,
     "len_needle": 4,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [3608.06, 6729.19, 204.75, 339.938, 2236.5]
    },
    {
     "len_haystack": 2049,
     "len_needle": 4,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [2187.94, 6452.25, 150.938, 189, 1536.94]
    },
    {
     "len_haystack": 2049,
     "len_needle": 4,
     "align_haystack": 4081,
     "align_needle": 5,
     "fail": 1,
     "timings": [2117.06, 6445.69, 141.75, 191.625, 1559.25]
    },
    {
     "len_haystack": 2048,
     "len_needle": 8,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [2576.44, 7113.75, 334.688, 451.5, 943.688]
    },
    {
     "len_haystack": 2048,
     "len_needle": 8,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [2522.62, 6554.62, 313.688, 426.562, 887.25]
    },
    {
     "len_haystack": 2049,
     "len_needle": 9,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [2563.31, 6626.81, 329.438, 391.125, 805.875]
    },
    {
     "len_haystack": 2049,
     "len_needle": 9,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [2531.81, 6549.38, 317.625, 399, 766.5]
    },
    {
     "len_haystack": 2049,
     "len_needle": 8,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [2568.56, 1976.62, 295.312, 405.562, 1097.25]
    },
    {
     "len_haystack": 2049,
     "len_needle": 8,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [3690.75, 2047.5, 299.25, 439.688, 913.5]
    },
    {
     "len_haystack": 2049,
     "len_needle": 8,
     "align_haystack": 4081,
     "align_needle": 5,
     "fail": 1,
     "timings": [2471.44, 1928.06, 297.938, 401.625, 871.5]
    },
    {
     "len_haystack": 2048,
     "len_needle": 16,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [2999.06, 6595.31, 232.312, 278.25, 690.375]
    },
    {
     "len_haystack": 2048,
     "len_needle": 16,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [2978.06, 6492.94, 194.25, 275.625, 645.75]
    },
    {
     "len_haystack": 2049,
     "len_needle": 17,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [2400.56, 6609.75, 164.062, 216.562, 795.375]
    },
    {
     "len_haystack": 2049,
     "len_needle": 17,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [3701.25, 6584.81, 148.312, 198.188, 724.5]
    },
    {
     "len_haystack": 2049,
     "len_needle": 16,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [2304.75, 6229.12, 185.062, 265.125, 637.875]
    },
    {
     "len_haystack": 2049,
     "len_needle": 16,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [2252.25, 6164.81, 187.688, 253.312, 609]
    },
    {
     "len_haystack": 2049,
     "len_needle": 16,
     "align_haystack": 4081,
     "align_needle": 5,
     "fail": 1,
     "timings": [2252.25, 6175.31, 190.312, 245.438, 1312.5]
    },
    {
     "len_haystack": 2048,
     "len_needle": 32,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [2996.44, 1586.81, 175.875, 345.188, 504]
    },
    {
     "len_haystack": 2048,
     "len_needle": 32,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [2971.5, 1446.38, 175.875, 301.875, 481.688]
    },
    {
     "len_haystack": 2049,
     "len_needle": 33,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [2534.44, 1729.88, 229.688, 422.625, 505.312]
    },
    {
     "len_haystack": 2049,
     "len_needle": 33,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [2517.38, 1682.62, 231, 357, 501.375]
    },
    {
     "len_haystack": 2049,
     "len_needle": 32,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [2632.88, 1661.62, 313.688, 534.188, 484.312]
    },
    {
     "len_haystack": 2049,
     "len_needle": 32,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [2530.5, 1585.5, 307.125, 468.562, 451.5]
    },
    {
     "len_haystack": 2049,
     "len_needle": 32,
     "align_haystack": 4081,
     "align_needle": 5,
     "fail": 1,
     "timings": [2522.62, 1582.88, 291.375, 475.125, 460.688]
    },
    {
     "len_haystack": 2048,
     "len_needle": 64,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [2365.12, 1567.12, 199.5, 391.125, 513.188]
    },
    {
     "len_haystack": 2048,
     "len_needle": 64,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [2283.75, 1350.56, 200.812, 284.812, 465.938]
    },
    {
     "len_haystack": 2049,
     "len_needle": 65,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [2542.31, 1799.44, 241.5, 481.688, 485.625]
    },
    {
     "len_haystack": 2049,
     "len_needle": 65,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [2439.94, 1609.12, 234.938, 349.125, 456.75]
    },
    {
     "len_haystack": 2049,
     "len_needle": 64,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [2656.5, 1510.69, 288.75, 548.625, 455.438]
    },
    {
     "len_haystack": 2049,
     "len_needle": 64,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [2584.31, 1320.38, 269.062, 410.812, 427.875]
    },
    {
     "len_haystack": 2049,
     "len_needle": 64,
     "align_haystack": 4081,
     "align_needle": 5,
     "fail": 1,
     "timings": [2581.69, 1324.31, 280.875, 433.125, 435.75]
    },
    {
     "len_haystack": 2048,
     "len_needle": 128,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [2628.94, 1991.06, 337.312, 619.5, 526.312]
    },
    {
     "len_haystack": 2048,
     "len_needle": 128,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [2594.81, 1823.06, 257.25, 439.688, 517.125]
    },
    {
     "len_haystack": 2049,
     "len_needle": 129,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [2531.81, 1903.12, 282.188, 500.062, 532.875]
    },
    {
     "len_haystack": 2049,
     "len_needle": 129,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [2475.38, 1664.25, 194.25, 347.812, 506.625]
    },
    {
     "len_haystack": 2049,
     "len_needle": 128,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [2512.12, 2265.38, 262.5, 479.062, 475.125]
    },
    {
     "len_haystack": 2049,
     "len_needle": 128,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [2436, 1991.06, 162.75, 309.75, 455.438]
    },
    {
     "len_haystack": 2049,
     "len_needle": 128,
     "align_haystack": 4081,
     "align_needle": 5,
     "fail": 1,
     "timings": [2439.94, 1993.69, 157.5, 304.5, 454.125]
    },
    {
     "len_haystack": 2048,
     "len_needle": 256,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [2580.38, 2617.12, 469.875, 679.875, 703.5]
    },
    {
     "len_haystack": 2048,
     "len_needle": 256,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [3929.62, 2271.94, 305.812, 442.312, 636.562]
    },
    {
     "len_haystack": 2049,
     "len_needle": 257,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [2593.5, 2404.5, 475.125, 694.312, 2430.75]
    },
    {
     "len_haystack": 2049,
     "len_needle": 257,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [2552.81, 2121, 270.375, 421.312, 2051.44]
    },
    {
     "len_haystack": 2049,
     "len_needle": 256,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [2618.44, 2177.44, 526.312, 746.812, 614.25]
    },
    {
     "len_haystack": 2049,
     "len_needle": 256,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [2610.56, 1762.69, 328.125, 484.312, 593.25]
    },
    {
     "len_haystack": 2049,
     "len_needle": 256,
     "align_haystack": 4081,
     "align_needle": 5,
     "fail": 1,
     "timings": [2555.44, 1770.56, 354.375, 496.125, 598.5]
    },
    {
     "len_haystack": 4096,
     "len_needle": 4,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [4601.62, 6049.31, 339.938, 396.375, 3135.56]
    },
    {
     "len_haystack": 4096,
     "len_needle": 4,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [4557, 6011.25, 299.25, 383.25, 3024]
    },
    {
     "len_haystack": 4097,
     "len_needle": 5,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [4574.06, 5307.75, 364.875, 463.312, 2527.88]
    },
    {
     "len_haystack": 4097,
     "len_needle": 5,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [4578, 5247.38, 355.688, 455.438, 2501.62]
    },
    {
     "len_haystack": 4097,
     "len_needle": 4,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [4630.5, 1354.5, 329.438, 422.625, 2955.75]
    },
    {
     "len_haystack": 4097,
     "len_needle": 4,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [4597.69, 1317.75, 322.875, 414.75, 2954.44]
    },
    {
     "len_haystack": 4097,
     "len_needle": 4,
     "align_haystack": 4081,
     "align_needle": 5,
     "fail": 1,
     "timings": [4595.06, 1316.44, 312.375, 405.562, 2945.25]
    },
    {
     "len_haystack": 4096,
     "len_needle": 8,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [4352.25, 13757.6, 489.562, 719.25, 2010.75]
    },
    {
     "len_haystack": 4096,
     "len_needle": 8,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [4341.75, 13701.2, 354.375, 459.375, 1832.25]
    },
    {
     "len_haystack": 4097,
     "len_needle": 9,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [4780.12, 13839, 464.625, 601.125, 1661.62]
    },
    {
     "len_haystack": 4097,
     "len_needle": 9,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [4757.81, 13777.3, 448.875, 578.812, 1623.56]
    },
    {
     "len_haystack": 4097,
     "len_needle": 8,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [4650.19, 13967.6, 525, 752.062, 2082.94]
    },
    {
     "len_haystack": 4097,
     "len_needle": 8,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [8049.56, 14751.2, 564.375, 933.188, 2341.5]
    },
    {
     "len_haystack": 4097,
     "len_needle": 8,
     "align_haystack": 4081,
     "align_needle": 5,
     "fail": 1,
     "timings": [7800.19, 14877.2, 574.875, 927.938, 2250.94]
    },
    {
     "len_haystack": 4096,
     "len_needle": 16,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [7179.38, 13920.4, 691.688, 1304.62, 1599.94]
    },
    {
     "len_haystack": 4096,
     "len_needle": 16,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [7581, 13789.1, 649.688, 1281, 1505.44]
    },
    {
     "len_haystack": 4097,
     "len_needle": 17,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [6962.81, 13978.1, 421.312, 535.5, 1323]
    },
    {
     "len_haystack": 4097,
     "len_needle": 17,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [4704, 14331.2, 342.562, 507.938, 1257.38]
    },
    {
     "len_haystack": 4097,
     "len_needle": 16,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [4921.88, 13279.9, 443.625, 598.5, 1081.5]
    },
    {
     "len_haystack": 4097,
     "len_needle": 16,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [4921.88, 13223.4, 393.75, 560.438, 1021.12]
    },
    {
     "len_haystack": 4097,
     "len_needle": 16,
     "align_haystack": 4081,
     "align_needle": 5,
     "fail": 1,
     "timings": [4914, 13295.6, 404.25, 569.625, 1032.94]
    },
    {
     "len_haystack": 4096,
     "len_needle": 32,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [6100.5, 3510.94, 465.938, 749.438, 1029]
    },
    {
     "len_haystack": 4096,
     "len_needle": 32,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [6100.5, 3310.12, 393.75, 664.125, 979.125]
    },
    {
     "len_haystack": 4097,
     "len_needle": 33,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [4568.81, 3415.12, 450.188, 673.312, 675.938]
    },
    {
     "len_haystack": 4097,
     "len_needle": 33,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [5725.12, 3314.06, 389.812, 619.5, 640.5]
    },
    {
     "len_haystack": 4097,
     "len_needle": 32,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [4914, 2911.12, 427.875, 691.688, 765.188]
    },
    {
     "len_haystack": 4097,
     "len_needle": 32,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [4886.44, 2810.06, 389.812, 631.312, 745.5]
    },
    {
     "len_haystack": 4097,
     "len_needle": 32,
     "align_haystack": 4081,
     "align_needle": 5,
     "fail": 1,
     "timings": [4819.5, 2811.38, 391.125, 633.938, 728.438]
    },
    {
     "len_haystack": 4096,
     "len_needle": 64,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [7162.31, 2590.88, 480.375, 825.562, 761.25]
    },
    {
     "len_haystack": 4096,
     "len_needle": 64,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [4861.5, 2470.12, 388.5, 700.875, 711.375]
    },
    {
     "len_haystack": 4097,
     "len_needle": 65,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [4886.44, 2260.12, 454.125, 737.625, 643.125]
    },
    {
     "len_haystack": 4097,
     "len_needle": 65,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [4811.62, 2105.25, 347.812, 599.812, 601.125]
    },
    {
     "len_haystack": 4097,
     "len_needle": 64,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [4654.12, 3013.5, 479.062, 800.625, 892.5]
    },
    {
     "len_haystack": 4097,
     "len_needle": 64,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [4588.5, 2911.12, 388.5, 675.938, 846.562]
    },
    {
     "len_haystack": 4097,
     "len_needle": 64,
     "align_haystack": 4081,
     "align_needle": 5,
     "fail": 1,
     "timings": [4591.12, 2915.06, 405.562, 681.188, 861]
    },
    {
     "len_haystack": 4096,
     "len_needle": 128,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [7607.25, 2415, 405.562, 874.125, 636.562]
    },
    {
     "len_haystack": 4096,
     "len_needle": 128,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [4651.5, 2134.12, 303.188, 699.562, 615.562]
    },
    {
     "len_haystack": 4097,
     "len_needle": 129,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [6159.56, 2174.81, 494.812, 1009.31, 968.625]
    },
    {
     "len_haystack": 4097,
     "len_needle": 129,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [6146.44, 1951.69, 379.312, 822.938, 930.562]
    },
    {
     "len_haystack": 4097,
     "len_needle": 128,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [4950.75, 2590.88, 542.062, 1071, 836.062]
    },
    {
     "len_haystack": 4097,
     "len_needle": 128,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [4870.69, 2421.56, 456.75, 901.688, 811.125]
    },
    {
     "len_haystack": 4097,
     "len_needle": 128,
     "align_haystack": 4081,
     "align_needle": 5,
     "fail": 1,
     "timings": [4870.69, 2400.56, 469.875, 929.25, 795.375]
    },
    {
     "len_haystack": 4096,
     "len_needle": 256,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [5148.94, 3222.19, 864.938, 1379.44, 1019.81]
    },
    {
     "len_haystack": 4096,
     "len_needle": 256,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [5114.81, 2937.38, 670.688, 1101.19, 997.5]
    },
    {
     "len_haystack": 4097,
     "len_needle": 257,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [5085.94, 3249.75, 897.75, 1421.44, 3177.56]
    },
    {
     "len_haystack": 4097,
     "len_needle": 257,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [5063.62, 2863.88, 700.875, 1123.5, 2691.94]
    },
    {
     "len_haystack": 4097,
     "len_needle": 256,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [5425.88, 3340.31, 899.062, 1501.5, 1052.62]
    },
    {
     "len_haystack": 4097,
     "len_needle": 256,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [5390.44, 3010.88, 714, 1194.38, 969.938]
    },
    {
     "len_haystack": 4097,
     "len_needle": 256,
     "align_haystack": 4081,
     "align_needle": 5,
     "fail": 1,
     "timings": [5378.62, 3022.69, 720.562, 1177.31, 973.875]
    },
    {
     "len_haystack": 8192,
     "len_needle": 4,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [8751.75, 2891.44, 765.188, 977.812, 6171.38]
    },
    {
     "len_haystack": 8192,
     "len_needle": 4,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [8789.81, 2846.81, 762.562, 972.562, 5500.69]
    },
    {
     "len_haystack": 8193,
     "len_needle": 5,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [8881.69, 12891.4, 675.938, 892.5, 5072.81]
    },
    {
     "len_haystack": 8193,
     "len_needle": 5,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [9814.88, 12634.1, 922.688, 1551.38, 6709.5]
    },
    {
     "len_haystack": 8193,
     "len_needle": 4,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [20148.2, 12731.2, 996.188, 1431.94, 8578.5]
    },
    {
     "len_haystack": 8193,
     "len_needle": 4,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [14630.4, 12160.3, 1014.56, 1622.25, 8418.38]
    },
    {
     "len_haystack": 8193,
     "len_needle": 4,
     "align_haystack": 4081,
     "align_needle": 5,
     "fail": 1,
     "timings": [14643.6, 11778.4, 929.25, 1547.44, 6720]
    },
    {
     "len_haystack": 8192,
     "len_needle": 8,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [9241.31, 27927.4, 794.062, 1017.19, 3176.25]
    },
    {
     "len_haystack": 8192,
     "len_needle": 8,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [9222.94, 27321, 763.875, 1008, 3083.06]
    },
    {
     "len_haystack": 8193,
     "len_needle": 9,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [9086.44, 9705.94, 717.938, 929.25, 2815.31]
    },
    {
     "len_haystack": 8193,
     "len_needle": 9,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [9074.62, 9602.25, 694.312, 918.75, 2774.62]
    },
    {
     "len_haystack": 8193,
     "len_needle": 8,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [9024.75, 7650.56, 714, 775.688, 3122.44]
    },
    {
     "len_haystack": 8193,
     "len_needle": 8,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [9015.56, 7573.12, 686.438, 773.062, 3043.69]
    },
    {
     "len_haystack": 8193,
     "len_needle": 8,
     "align_haystack": 4081,
     "align_needle": 5,
     "fail": 1,
     "timings": [9011.62, 7607.25, 710.062, 774.375, 3047.62]
    },
    {
     "len_haystack": 8192,
     "len_needle": 16,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [9333.19, 28088.8, 855.75, 1124.81, 1815.19]
    },
    {
     "len_haystack": 8192,
     "len_needle": 16,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [9842.44, 27318.4, 825.562, 1111.69, 1756.12]
    },
    {
     "len_haystack": 8193,
     "len_needle": 17,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [8816.06, 27051.9, 639.188, 849.188, 1809.94]
    },
    {
     "len_haystack": 8193,
     "len_needle": 17,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [8801.62, 26995.5, 598.5, 817.688, 1765.31]
    },
    {
     "len_haystack": 8193,
     "len_needle": 16,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [9334.5, 27401.1, 664.125, 872.812, 1746.94]
    },
    {
     "len_haystack": 8193,
     "len_needle": 16,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [9363.38, 27419.4, 630, 861, 1693.12]
    },
    {
     "len_haystack": 8193,
     "len_needle": 16,
     "align_haystack": 4081,
     "align_needle": 5,
     "fail": 1,
     "timings": [9338.44, 27426, 645.75, 884.625, 1704.94]
    },
    {
     "len_haystack": 8192,
     "len_needle": 32,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [14593.7, 6237, 711.375, 1002.75, 1437.19]
    },
    {
     "len_haystack": 8192,
     "len_needle": 32,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [9275.44, 6051.94, 673.312, 975.188, 1395.19]
    },
    {
     "len_haystack": 8193,
     "len_needle": 33,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [9417.19, 5151.56, 903, 1287.56, 1389.94]
    },
    {
     "len_haystack": 8193,
     "len_needle": 33,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [9404.06, 4979.62, 825.562, 1218, 1349.25]
    },
    {
     "len_haystack": 8193,
     "len_needle": 32,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [8901.38, 5613.56, 661.5, 951.562, 1371.56]
    },
    {
     "len_haystack": 8193,
     "len_needle": 32,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [8925, 5469.19, 609, 895.125, 1313.81]
    },
    {
     "len_haystack": 8193,
     "len_needle": 32,
     "align_haystack": 4081,
     "align_needle": 5,
     "fail": 1,
     "timings": [8925, 5462.62, 599.812, 889.875, 1319.06]
    },
    {
     "len_haystack": 8192,
     "len_needle": 64,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [9594.38, 3849.56, 895.125, 1382.06, 1098.56]
    },
    {
     "len_haystack": 8192,
     "len_needle": 64,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [9556.31, 3648.75, 803.25, 1236.38, 1027.69]
    },
    {
     "len_haystack": 8193,
     "len_needle": 65,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [13022.6, 4621.31, 1389.94, 2887.5, 1811.25]
    },
    {
     "len_haystack": 8193,
     "len_needle": 65,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [14171.1, 4553.06, 1359.75, 2836.31, 1716.75]
    },
    {
     "len_haystack": 8193,
     "len_needle": 64,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [14709.2, 4406.06, 1025.06, 2157.75, 1506.75]
    },
    {
     "len_haystack": 8193,
     "len_needle": 64,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [15151.5, 4302.38, 870.188, 1959.56, 1484.44]
    },
    {
     "len_haystack": 8193,
     "len_needle": 64,
     "align_haystack": 4081,
     "align_needle": 5,
     "fail": 1,
     "timings": [15001.9, 4273.5, 829.5, 2014.69, 1497.56]
    },
    {
     "len_haystack": 8192,
     "len_needle": 128,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [14637, 4963.88, 817.688, 1968.75, 1430.62]
    },
    {
     "len_haystack": 8192,
     "len_needle": 128,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [12504.2, 4776.19, 696.938, 1584.19, 1269.19]
    },
    {
     "len_haystack": 8193,
     "len_needle": 129,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [10120.7, 4354.88, 815.062, 1743, 1290.19]
    },
    {
     "len_haystack": 8193,
     "len_needle": 129,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [10047.2, 4000.5, 710.062, 1569.75, 1260]
    },
    {
     "len_haystack": 8193,
     "len_needle": 128,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [9444.75, 4289.25, 805.875, 1733.81, 1050]
    },
    {
     "len_haystack": 8193,
     "len_needle": 128,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [9658.69, 4037.25, 683.812, 1556.62, 1021.12]
    },
    {
     "len_haystack": 8193,
     "len_needle": 128,
     "align_haystack": 4081,
     "align_needle": 5,
     "fail": 1,
     "timings": [10204.7, 3988.69, 662.812, 1522.5, 998.812]
    },
    {
     "len_haystack": 8192,
     "len_needle": 256,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [10305.8, 4778.81, 1534.31, 2596.12, 1682.62]
    },
    {
     "len_haystack": 8192,
     "len_needle": 256,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [10622.1, 4335.19, 1329.56, 2186.62, 1618.31]
    },
    {
     "len_haystack": 8193,
     "len_needle": 257,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [10107.6, 5592.56, 1372.88, 2258.81, 5482.31]
    },
    {
     "len_haystack": 8193,
     "len_needle": 257,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [10414.7, 5133.19, 1183.88, 1862.44, 4946.81]
    },
    {
     "len_haystack": 8193,
     "len_needle": 256,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [10542, 6378.75, 1548.75, 2531.81, 1224.56]
    },
    {
     "len_haystack": 8193,
     "len_needle": 256,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [10471.1, 6015.19, 1328.25, 2135.44, 1156.31]
    },
    {
     "len_haystack": 8193,
     "len_needle": 256,
     "align_haystack": 4081,
     "align_needle": 5,
     "fail": 1,
     "timings": [10493.4, 6027, 1344, 2379.56, 1155]
    },
    {
     "len_haystack": 16384,
     "len_needle": 4,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [23243.1, 9241.31, 1466.06, 1837.5, 12951.8]
    },
    {
     "len_haystack": 16384,
     "len_needle": 4,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [23231.2, 9237.38, 1413.56, 1851.94, 12997.7]
    },
    {
     "len_haystack": 16385,
     "len_needle": 5,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [23455.7, 11795.4, 1308.56, 1703.62, 10002.6]
    },
    {
     "len_haystack": 16385,
     "len_needle": 5,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [23493.8, 11658.9, 1299.38, 1733.81, 9642.94]
    },
    {
     "len_haystack": 16385,
     "len_needle": 4,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [15554.4, 20284.7, 1366.31, 1736.44, 12789]
    },
    {
     "len_haystack": 16385,
     "len_needle": 4,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [15547.9, 20678.4, 1351.88, 1732.5, 13149.9]
    },
    {
     "len_haystack": 16385,
     "len_needle": 4,
     "align_haystack": 4081,
     "align_needle": 5,
     "fail": 1,
     "timings": [15620.1, 20240.1, 1388.62, 1767.94, 12715.5]
    },
    {
     "len_haystack": 16384,
     "len_needle": 8,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [29250.4, 4117.31, 1859.81, 2832.38, 7598.06]
    },
    {
     "len_haystack": 16384,
     "len_needle": 8,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [27784.3, 4462.5, 1942.5, 2892.75, 8547]
    },
    {
     "len_haystack": 16385,
     "len_needle": 9,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [31800.6, 55231.3, 1519.88, 1979.25, 5617.5]
    },
    {
     "len_haystack": 16385,
     "len_needle": 9,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [18938.1, 53811.2, 1446.38, 1938.56, 5587.31]
    },
    {
     "len_haystack": 16385,
     "len_needle": 8,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [29109.9, 29196.6, 2312.62, 3122.44, 6979.88]
    },
    {
     "len_haystack": 16385,
     "len_needle": 8,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [18693.9, 28623, 1617, 2147.25, 6221.25]
    },
    {
     "len_haystack": 16385,
     "len_needle": 8,
     "align_haystack": 4081,
     "align_needle": 5,
     "fail": 1,
     "timings": [18726.8, 28458.9, 1666.88, 2145.94, 6172.69]
    },
    {
     "len_haystack": 16384,
     "len_needle": 16,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [30581.2, 1995, 1640.62, 2215.5, 3749.81]
    },
    {
     "len_haystack": 16384,
     "len_needle": 16,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [23653.9, 1869, 1590.75, 2215.5, 3661.88]
    },
    {
     "len_haystack": 16385,
     "len_needle": 17,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [19364.6, 1962.19, 2046.19, 2596.12, 4151.44]
    },
    {
     "len_haystack": 16385,
     "len_needle": 17,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [19405.3, 1869, 1989.75, 2642.06, 4063.5]
    },
    {
     "len_haystack": 16385,
     "len_needle": 16,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [18843.6, 1921.5, 1580.25, 2131.5, 2963.62]
    },
    {
     "len_haystack": 16385,
     "len_needle": 16,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [18842.2, 1848, 1527.75, 2107.88, 2883.56]
    },
    {
     "len_haystack": 16385,
     "len_needle": 16,
     "align_haystack": 4081,
     "align_needle": 5,
     "fail": 1,
     "timings": [18847.5, 1913.62, 1546.12, 2102.62, 2863.88]
    },
    {
     "len_haystack": 16384,
     "len_needle": 32,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [15761.8, 11300.6, 1344, 1917.56, 3362.62]
    },
    {
     "len_haystack": 16384,
     "len_needle": 32,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [15713.2, 11064.4, 1281, 1911, 2899.31]
    },
    {
     "len_haystack": 16385,
     "len_needle": 33,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [20421.2, 12866.4, 2480.62, 3541.12, 2863.88]
    },
    {
     "len_haystack": 16385,
     "len_needle": 33,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [20440.9, 12015.9, 2375.62, 3538.5, 2782.5]
    },
    {
     "len_haystack": 16385,
     "len_needle": 32,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [19780.7, 12299.4, 2223.38, 6042.75, 4305]
    },
    {
     "len_haystack": 16385,
     "len_needle": 32,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [40482.8, 13647.4, 3300.94, 6714.75, 4760.44]
    },
    {
     "len_haystack": 16385,
     "len_needle": 32,
     "align_haystack": 4081,
     "align_needle": 5,
     "fail": 1,
     "timings": [31728.4, 13341.6, 3329.81, 5820.94, 4348.31]
    },
    {
     "len_haystack": 16384,
     "len_needle": 64,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [19675.7, 8015.44, 1821.75, 2856, 2920.31]
    },
    {
     "len_haystack": 16384,
     "len_needle": 64,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [19095.6, 7679.44, 1632.75, 2716.88, 2811.38]
    },
    {
     "len_haystack": 16385,
     "len_needle": 65,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [24321.9, 8556.19, 1333.5, 2268, 2744.44]
    },
    {
     "len_haystack": 16385,
     "len_needle": 65,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [23800.9, 8275.31, 1242.94, 2119.69, 2665.69]
    },
    {
     "len_haystack": 16385,
     "len_needle": 64,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [19505.1, 8547, 1554, 2476.69, 2859.94]
    },
    {
     "len_haystack": 16385,
     "len_needle": 64,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [19472.2, 8314.69, 1460.81, 2304.75, 2779.88]
    },
    {
     "len_haystack": 16385,
     "len_needle": 64,
     "align_haystack": 4081,
     "align_needle": 5,
     "fail": 1,
     "timings": [20047.1, 8327.81, 1446.38, 2336.25, 2773.31]
    },
    {
     "len_haystack": 16384,
     "len_needle": 128,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [19014.2, 6702.94, 1358.44, 3172.31, 2936.06]
    },
    {
     "len_haystack": 16384,
     "len_needle": 128,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [18974.8, 6443.06, 1240.31, 3006.94, 2905.88]
    },
    {
     "len_haystack": 16385,
     "len_needle": 129,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [20146.9, 9635.06, 1854.56, 3823.31, 1892.62]
    },
    {
     "len_haystack": 16385,
     "len_needle": 129,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [20110.1, 9325.31, 1728.56, 3556.88, 1812.56]
    },
    {
     "len_haystack": 16385,
     "len_needle": 128,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [19922.4, 9499.88, 1375.5, 3216.94, 1823.06]
    },
    {
     "len_haystack": 16385,
     "len_needle": 128,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [19778.1, 9240, 1311.19, 3047.62, 1781.06]
    },
    {
     "len_haystack": 16385,
     "len_needle": 128,
     "align_haystack": 4081,
     "align_needle": 5,
     "fail": 1,
     "timings": [20213.8, 9267.56, 1250.81, 2991.19, 1790.25]
    },
    {
     "len_haystack": 16384,
     "len_needle": 256,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [21014.4, 6717.38, 2686.69, 4268.25, 2983.31]
    },
    {
     "len_haystack": 16384,
     "len_needle": 256,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [20779.5, 6246.19, 2458.31, 4039.88, 2849.44]
    },
    {
     "len_haystack": 16385,
     "len_needle": 257,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [19288.5, 7006.12, 2779.88, 4420.5, 6907.69]
    },
    {
     "len_haystack": 16385,
     "len_needle": 257,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [19260.9, 6763.31, 2559.38, 4051.69, 6562.5]
    },
    {
     "len_haystack": 16385,
     "len_needle": 256,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [21573.6, 9595.69, 3409.88, 7524.56, 3748.5]
    },
    {
     "len_haystack": 16385,
     "len_needle": 256,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [40506.4, 9604.88, 3297, 6739.69, 3816.75]
    },
    {
     "len_haystack": 16385,
     "len_needle": 256,
     "align_haystack": 4081,
     "align_needle": 5,
     "fail": 1,
     "timings": [32349.2, 10009.1, 2762.81, 6258, 2782.5]
    },
    {
     "len_haystack": 32768,
     "len_needle": 4,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [37167.4, 109354, 3311.44, 4197.38, 23656.5]
    },
    {
     "len_haystack": 32768,
     "len_needle": 4,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [37364.2, 109928, 3129, 4207.88, 23155.1]
    },
    {
     "len_haystack": 32769,
     "len_needle": 5,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [47618.8, 2355.94, 2760.19, 3522.75, 18061.3]
    },
    {
     "len_haystack": 32769,
     "len_needle": 5,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [48120.2, 2315.25, 2716.88, 4020.19, 18179.4]
    },
    {
     "len_haystack": 32769,
     "len_needle": 4,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [35892.9, 3327.19, 3409.88, 4469.06, 23782.5]
    },
    {
     "len_haystack": 32769,
     "len_needle": 4,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [36280.1, 3299.62, 3342.94, 4403.44, 23571.2]
    },
    {
     "len_haystack": 32769,
     "len_needle": 4,
     "align_haystack": 4081,
     "align_needle": 5,
     "fail": 1,
     "timings": [35529.4, 3218.25, 3390.19, 4491.38, 23510.8]
    },
    {
     "len_haystack": 32768,
     "len_needle": 8,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [48053.2, 63620.8, 3794.44, 6151.69, 18300.2]
    },
    {
     "len_haystack": 32768,
     "len_needle": 8,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [34884.9, 57656.8, 2467.5, 3108, 11689.1]
    },
    {
     "len_haystack": 32769,
     "len_needle": 9,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [58101.8, 41517, 2647.31, 3366.56, 15179.1]
    },
    {
     "len_haystack": 32769,
     "len_needle": 9,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [56362.7, 41343.8, 2642.06, 3348.19, 15133.1]
    },
    {
     "len_haystack": 32769,
     "len_needle": 8,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [37621.5, 31292.6, 3034.5, 4319.44, 13758.9]
    },
    {
     "len_haystack": 32769,
     "len_needle": 8,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [36932.4, 31156.1, 2995.12, 3857.44, 13786.5]
    },
    {
     "len_haystack": 32769,
     "len_needle": 8,
     "align_haystack": 4081,
     "align_needle": 5,
     "fail": 1,
     "timings": [36925.9, 31091.8, 3059.44, 3856.12, 13804.9]
    },
    {
     "len_haystack": 32768,
     "len_needle": 16,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [41002.5, 110722, 6935.25, 13321.9, 11174.6]
    },
    {
     "len_haystack": 32768,
     "len_needle": 16,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [67785.4, 111434, 4563.56, 7088.81, 9331.88]
    },
    {
     "len_haystack": 32769,
     "len_needle": 17,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [41702.1, 6655.69, 4903.5, 6721.31, 9351.56]
    },
    {
     "len_haystack": 32769,
     "len_needle": 17,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [41573.4, 6599.25, 4812.94, 6626.81, 9213.75]
    },
    {
     "len_haystack": 32769,
     "len_needle": 16,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [39869.8, 5400.94, 4327.31, 6562.5, 8470.88]
    },
    {
     "len_haystack": 32769,
     "len_needle": 16,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [39914.4, 5813.06, 4232.81, 6525.75, 8365.88]
    },
    {
     "len_haystack": 32769,
     "len_needle": 16,
     "align_haystack": 4081,
     "align_needle": 5,
     "fail": 1,
     "timings": [39855.4, 5318.25, 4240.69, 6458.81, 8453.81]
    },
    {
     "len_haystack": 32768,
     "len_needle": 32,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [35325.9, 26173.9, 3129, 4354.88, 6832.88]
    },
    {
     "len_haystack": 32768,
     "len_needle": 32,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [33554.1, 25853.6, 3005.62, 4877.25, 6838.12]
    },
    {
     "len_haystack": 32769,
     "len_needle": 33,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [30060.2, 26158.1, 2400.56, 3487.31, 6105.75]
    },
    {
     "len_haystack": 32769,
     "len_needle": 33,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [29789.8, 26746.1, 3214.31, 5853.75, 7605.94]
    },
    {
     "len_haystack": 32769,
     "len_needle": 32,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [58838.1, 26796, 3558.19, 6765.94, 8355.38]
    },
    {
     "len_haystack": 32769,
     "len_needle": 32,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [35087.1, 24298.3, 2354.62, 3426.94, 6465.38]
    },
    {
     "len_haystack": 32769,
     "len_needle": 32,
     "align_haystack": 4081,
     "align_needle": 5,
     "fail": 1,
     "timings": [31619.4, 24085.7, 2350.69, 4686.94, 6419.44]
    },
    {
     "len_haystack": 32768,
     "len_needle": 64,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [60552.2, 19964.4, 4238.06, 6288.19, 4609.5]
    },
    {
     "len_haystack": 32768,
     "len_needle": 64,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [60705.8, 19649.4, 3995.25, 6667.5, 4494]
    },
    {
     "len_haystack": 32769,
     "len_needle": 65,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [38181.9, 18079.7, 2908.5, 4780.12, 5016.38]
    },
    {
     "len_haystack": 32769,
     "len_needle": 65,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [37899.8, 17758.1, 2777.25, 4675.12, 4899.56]
    },
    {
     "len_haystack": 32769,
     "len_needle": 64,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [50050.9, 22854.6, 3761.62, 5929.88, 5113.5]
    },
    {
     "len_haystack": 32769,
     "len_needle": 64,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [51011.6, 24467.6, 5571.56, 11299.3, 6288.19]
    },
    {
     "len_haystack": 32769,
     "len_needle": 64,
     "align_haystack": 4081,
     "align_needle": 5,
     "fail": 1,
     "timings": [69957.6, 26028.2, 5400.94, 10479, 6252.75]
    },
    {
     "len_haystack": 32768,
     "len_needle": 128,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [59780.4, 24541.1, 3684.19, 11417.4, 6603.19]
    },
    {
     "len_haystack": 32768,
     "len_needle": 128,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [58369.5, 25097.6, 3449.25, 10591.9, 7129.5]
    },
    {
     "len_haystack": 32769,
     "len_needle": 129,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [53964.8, 22173.4, 5087.25, 12831, 9435.56]
    },
    {
     "len_haystack": 32769,
     "len_needle": 129,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [55785.2, 22034.2, 4579.31, 12987.2, 9417.19]
    },
    {
     "len_haystack": 32769,
     "len_needle": 128,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [68248.7, 15276.2, 2580.38, 6273.75, 3950.62]
    },
    {
     "len_haystack": 32769,
     "len_needle": 128,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [63859.7, 14450.6, 2378.25, 5445.56, 3710.44]
    },
    {
     "len_haystack": 32769,
     "len_needle": 128,
     "align_haystack": 4081,
     "align_needle": 5,
     "fail": 1,
     "timings": [39375, 14424.4, 2387.44, 6414.19, 3667.12]
    },
    {
     "len_haystack": 32768,
     "len_needle": 256,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [59158.3, 20137.7, 7969.5, 16718.6, 6525.75]
    },
    {
     "len_haystack": 32768,
     "len_needle": 256,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [67933.7, 17069.1, 5003.25, 9589.12, 4988.81]
    },
    {
     "len_haystack": 32769,
     "len_needle": 257,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [44332.3, 16139.8, 4959.94, 8789.81, 15315.6]
    },
    {
     "len_haystack": 32769,
     "len_needle": 257,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [43596, 16170, 4690.88, 8330.44, 14722.3]
    },
    {
     "len_haystack": 32769,
     "len_needle": 256,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [42441, 15693.6, 4710.56, 9061.5, 3982.12]
    },
    {
     "len_haystack": 32769,
     "len_needle": 256,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [42633.9, 15267, 4505.81, 8154.56, 3841.69]
    },
    {
     "len_haystack": 32769,
     "len_needle": 256,
     "align_haystack": 4081,
     "align_needle": 5,
     "fail": 1,
     "timings": [42462, 15324.8, 4497.94, 9019.5, 3819.38]
    },
    {
     "len_haystack": 65536,
     "len_needle": 4,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [75649.9, 20536.7, 6633.38, 8766.19, 48658.3]
    },
    {
     "len_haystack": 65536,
     "len_needle": 4,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [75250.9, 20282.1, 6424.69, 14094.9, 69134.6]
    },
    {
     "len_haystack": 65537,
     "len_needle": 5,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [125936, 20821.5, 6210.75, 8163.75, 38657.1]
    },
    {
     "len_haystack": 65537,
     "len_needle": 5,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [97241.8, 20708.6, 5949.56, 8022, 39377.6]
    },
    {
     "len_haystack": 65537,
     "len_needle": 4,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [72350.2, 19128.4, 5662.12, 7065.19, 50753.1]
    },
    {
     "len_haystack": 65537,
     "len_needle": 4,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [72749.2, 18968.2, 5521.69, 7311.94, 50074.5]
    },
    {
     "len_haystack": 65537,
     "len_needle": 4,
     "align_haystack": 4081,
     "align_needle": 5,
     "fail": 1,
     "timings": [72723, 19536.6, 5990.25, 6951, 61758.4]
    },
    {
     "len_haystack": 65536,
     "len_needle": 8,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [114159, 199676, 6691.12, 8589, 26330.1]
    },
    {
     "len_haystack": 65536,
     "len_needle": 8,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [116835, 199100, 6437.81, 8956.5, 25641]
    },
    {
     "len_haystack": 65537,
     "len_needle": 9,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [73242.8, 47835.4, 5918.06, 7584.94, 27789.6]
    },
    {
     "len_haystack": 65537,
     "len_needle": 9,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [130350, 51842.4, 8826.56, 15814.3, 34006.9]
    },
    {
     "len_haystack": 65537,
     "len_needle": 8,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [106381, 215140, 5843.25, 7046.81, 28733.2]
    },
    {
     "len_haystack": 65537,
     "len_needle": 8,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [75659.1, 217343, 8537.81, 13206.4, 37748.8]
    },
    {
     "len_haystack": 65537,
     "len_needle": 8,
     "align_haystack": 4081,
     "align_needle": 5,
     "fail": 1,
     "timings": [108770, 217103, 5882.62, 7241.06, 28848.8]
    },
    {
     "len_haystack": 65536,
     "len_needle": 16,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [67961.2, 223340, 4591.12, 5852.44, 18410.4]
    },
    {
     "len_haystack": 65536,
     "len_needle": 16,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [93600.9, 228416, 5887.88, 6082.12, 18927.6]
    },
    {
     "len_haystack": 65537,
     "len_needle": 17,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [91815.9, 7184.62, 10421.2, 12535.7, 15377.2]
    },
    {
     "len_haystack": 65537,
     "len_needle": 17,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [82175.6, 7088.81, 9460.5, 12416.2, 15106.9]
    },
    {
     "len_haystack": 65537,
     "len_needle": 16,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [76260.2, 211883, 5923.31, 8037.75, 19514.2]
    },
    {
     "len_haystack": 65537,
     "len_needle": 16,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [76226.1, 218183, 9094.31, 15923.2, 25158]
    },
    {
     "len_haystack": 65537,
     "len_needle": 16,
     "align_haystack": 4081,
     "align_needle": 5,
     "fail": 1,
     "timings": [81205.7, 211104, 5868.19, 8049.56, 19499.8]
    },
    {
     "len_haystack": 65536,
     "len_needle": 32,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [77379.8, 46554.4, 4982.25, 7184.62, 9278.06]
    },
    {
     "len_haystack": 65536,
     "len_needle": 32,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [76716.9, 46265.6, 4841.81, 7090.12, 9007.69]
    },
    {
     "len_haystack": 65537,
     "len_needle": 33,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [102778, 47437.7, 8262.19, 14199.9, 15752.6]
    },
    {
     "len_haystack": 65537,
     "len_needle": 33,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [109281, 44352, 5551.88, 8102.06, 11795.4]
    },
    {
     "len_haystack": 65537,
     "len_needle": 32,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [67873.3, 43760.1, 4853.62, 6817.12, 11265.2]
    },
    {
     "len_haystack": 65537,
     "len_needle": 32,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [67872, 43596, 4784.06, 6754.12, 10997.4]
    },
    {
     "len_haystack": 65537,
     "len_needle": 32,
     "align_haystack": 4081,
     "align_needle": 5,
     "fail": 1,
     "timings": [61694.1, 43836.2, 4735.5, 6788.25, 11126.1]
    },
    {
     "len_haystack": 65536,
     "len_needle": 64,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [115235, 46966.5, 10880.6, 21967.3, 11939.8]
    },
    {
     "len_haystack": 65536,
     "len_needle": 64,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [96684, 42493.5, 6937.88, 10820.2, 9371.25]
    },
    {
     "len_haystack": 65537,
     "len_needle": 65,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [113945, 32594.6, 6328.88, 10493.4, 11106.4]
    },
    {
     "len_haystack": 65537,
     "len_needle": 65,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [77049, 32582.8, 6838.12, 10307.1, 11110.3]
    },
    {
     "len_haystack": 65537,
     "len_needle": 64,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [72379.1, 29305.5, 5541.38, 9410.62, 13148.6]
    },
    {
     "len_haystack": 65537,
     "len_needle": 64,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [71844.9, 30699.4, 7881.56, 17703, 14814.2]
    },
    {
     "len_haystack": 65537,
     "len_needle": 64,
     "align_haystack": 4081,
     "align_needle": 5,
     "fail": 1,
     "timings": [120519, 32991, 8515.5, 17836.9, 13403.2]
    },
    {
     "len_haystack": 65536,
     "len_needle": 128,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [83069.4, 23691.9, 6399.75, 13370.4, 9376.5]
    },
    {
     "len_haystack": 65536,
     "len_needle": 128,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [123823, 23471.4, 6054.56, 13143.4, 8779.31]
    },
    {
     "len_haystack": 65537,
     "len_needle": 129,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [81995.8, 26953.5, 6918.19, 15387.8, 10061.6]
    },
    {
     "len_haystack": 65537,
     "len_needle": 129,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [119729, 26460, 6769.88, 14913.9, 10380.6]
    },
    {
     "len_haystack": 65537,
     "len_needle": 128,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [137655, 21261.2, 8615.25, 24235.3, 9048.38]
    },
    {
     "len_haystack": 65537,
     "len_needle": 128,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [93723, 16050.6, 5542.69, 13261.5, 6389.25]
    },
    {
     "len_haystack": 65537,
     "len_needle": 128,
     "align_haystack": 4081,
     "align_needle": 5,
     "fail": 1,
     "timings": [81430.1, 15624, 5446.88, 13069.9, 6187.12]
    },
    {
     "len_haystack": 65536,
     "len_needle": 256,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [106049, 20797.9, 12424.1, 22256.1, 6970.69]
    },
    {
     "len_haystack": 65536,
     "len_needle": 256,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [104634, 20414.6, 12470.1, 20507.8, 6557.25]
    },
    {
     "len_haystack": 65537,
     "len_needle": 257,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [90537.6, 24891.6, 13262.8, 30888.4, 23068.5]
    },
    {
     "len_haystack": 65537,
     "len_needle": 257,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [137496, 21580.1, 8123.06, 16979.8, 19847.6]
    },
    {
     "len_haystack": 65537,
     "len_needle": 256,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [82095.6, 24938.8, 8363.25, 17502.2, 10072.1]
    },
    {
     "len_haystack": 65537,
     "len_needle": 256,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [84526.3, 24307.5, 8138.81, 17134.7, 9746.62]
    },
    {
     "len_haystack": 65537,
     "len_needle": 256,
     "align_haystack": 4081,
     "align_needle": 5,
     "fail": 1,
     "timings": [83166.6, 24366.6, 8192.62, 17149.1, 9804.38]
    },
    {
     "len_haystack": 65536,
     "len_needle": 64,
     "align_haystack": 0,
     "align_needle": 0,
     "fail": 1,
     "desc": "Difficult skiptable(0)",
     "timings": [1.95289e+06, 26490.2, 12204.9, 704251, 700357]
    },
    {
     "len_haystack": 65536,
     "len_needle": 64,
     "align_haystack": 0,
     "align_needle": 0,
     "fail": 1,
     "desc": "Difficult skiptable(1)",
     "timings": [2.44996e+06, 246199, 9098.25, 821012, 808840]
    },
    {
     "len_haystack": 65536,
     "len_needle": 64,
     "align_haystack": 0,
     "align_needle": 0,
     "fail": 1,
     "desc": "Difficult 2-way",
     "timings": [483824, 1.14695e+06, 67100.2, 95595.9, 14398.1]
    },
    {
     "len_haystack": 65536,
     "len_needle": 64,
     "align_haystack": 0,
     "align_needle": 0,
     "fail": 1,
     "desc": "Difficult testing first 2",
     "timings": [499754, 657686, 74834.8, 77776.1, 7705.69]
    },
    {
     "len_haystack": 65536,
     "len_needle": 256,
     "align_haystack": 0,
     "align_needle": 0,
     "fail": 1,
     "desc": "Difficult skiptable(0)",
     "timings": [6.75131e+06, 21246.8, 42458.1, 833724, 819798]
    },
    {
     "len_haystack": 65536,
     "len_needle": 256,
     "align_haystack": 0,
     "align_needle": 0,
     "fail": 1,
     "desc": "Difficult skiptable(1)",
     "timings": [1.02182e+07, 292579, 67109.4, 866073, 821765]
    },
    {
     "len_haystack": 65536,
     "len_needle": 256,
     "align_haystack": 0,
     "align_needle": 0,
     "fail": 1,
     "desc": "Difficult 2-way",
     "timings": [539338, 1.29308e+06, 100099, 138050, 6776.44]
    },
    {
     "len_haystack": 65536,
     "len_needle": 256,
     "align_haystack": 0,
     "align_needle": 0,
     "fail": 1,
     "desc": "Difficult testing first 2",
     "timings": [765030, 723020, 105524, 104966, 5639.81]
    },
    {
     "len_haystack": 65536,
     "len_needle": 1024,
     "align_haystack": 0,
     "align_needle": 0,
     "fail": 1,
     "desc": "Difficult skiptable(0)",
     "timings": [3.20304e+07, 16945.7, 75837.6, 130767, 12509.4]
    },
    {
     "len_haystack": 65536,
     "len_needle": 1024,
     "align_haystack": 0,
     "align_needle": 0,
     "fail": 1,
     "desc": "Difficult skiptable(1)",
     "timings": [3.42159e+07, 254174, 81856.7, 285239, 197655]
    },
    {
     "len_haystack": 65536,
     "len_needle": 1024,
     "align_haystack": 0,
     "align_needle": 0,
     "fail": 1,
     "desc": "Difficult 2-way",
     "timings": [553841, 1.09693e+06, 72142.9, 96245.6, 1.07232e+06]
    },
    {
     "len_haystack": 65536,
     "len_needle": 1024,
     "align_haystack": 0,
     "align_needle": 0,
     "fail": 1,
     "desc": "Difficult testing first 2",
     "timings": [627232, 631232, 73417.3, 73800.6, 602275]
    }]
  }
 }
}

[-- Attachment #2.2: bench-strstr.out --]
[-- Type: text/plain, Size: 101732 bytes --]

{
 "timing_type": "hp_timing",
 "functions": {
  "strstr": {
   "bench-variant": "",
   "ifuncs": ["basic_strstr", "twoway_strstr", "__strstr_avx512", "__strstr_sse2_unaligned", "__strstr_generic"],
   "results": [
    {
     "len_haystack": 8,
     "len_needle": 1,
     "align_haystack": 1,
     "align_needle": 3,
     "fail": 0,
     "timings": [19.6875, 89.25, 307.125, 65.625, 30.1875]
    },
    {
     "len_haystack": 8,
     "len_needle": 1,
     "align_haystack": 0,
     "align_needle": 9,
     "fail": 1,
     "timings": [21, 21, 13.125, 11.8125, 18.375]
    },
    {
     "len_haystack": 9,
     "len_needle": 1,
     "align_haystack": 1,
     "align_needle": 3,
     "fail": 0,
     "timings": [21, 22.3125, 10.5, 11.8125, 18.375]
    },
    {
     "len_haystack": 9,
     "len_needle": 1,
     "align_haystack": 0,
     "align_needle": 9,
     "fail": 1,
     "timings": [23.625, 21, 13.125, 10.5, 18.375]
    },
    {
     "len_haystack": 8,
     "len_needle": 1,
     "align_haystack": 4081,
     "align_needle": 9,
     "fail": 1,
     "timings": [15.75, 18.375, 14.4375, 17.0625, 17.0625]
    },
    {
     "len_haystack": 16,
     "len_needle": 2,
     "align_haystack": 1,
     "align_needle": 3,
     "fail": 0,
     "timings": [24.9375, 200.812, 26.25, 14.4375, 26.25]
    },
    {
     "len_haystack": 16,
     "len_needle": 2,
     "align_haystack": 0,
     "align_needle": 9,
     "fail": 1,
     "timings": [28.875, 22.3125, 22.3125, 17.0625, 21]
    },
    {
     "len_haystack": 17,
     "len_needle": 2,
     "align_haystack": 1,
     "align_needle": 3,
     "fail": 0,
     "timings": [26.25, 44.625, 22.3125, 17.0625, 21]
    },
    {
     "len_haystack": 17,
     "len_needle": 2,
     "align_haystack": 0,
     "align_needle": 9,
     "fail": 1,
     "timings": [31.5, 21, 22.3125, 17.0625, 17.0625]
    },
    {
     "len_haystack": 16,
     "len_needle": 2,
     "align_haystack": 4081,
     "align_needle": 9,
     "fail": 1,
     "timings": [26.25, 22.3125, 27.5625, 32.8125, 21]
    },
    {
     "len_haystack": 24,
     "len_needle": 3,
     "align_haystack": 1,
     "align_needle": 3,
     "fail": 0,
     "timings": [36.75, 118.125, 23.625, 19.6875, 60.375]
    },
    {
     "len_haystack": 24,
     "len_needle": 3,
     "align_haystack": 0,
     "align_needle": 9,
     "fail": 1,
     "timings": [34.125, 93.1875, 23.625, 17.0625, 61.6875]
    },
    {
     "len_haystack": 25,
     "len_needle": 3,
     "align_haystack": 1,
     "align_needle": 3,
     "fail": 0,
     "timings": [40.6875, 99.75, 19.6875, 14.4375, 31.5]
    },
    {
     "len_haystack": 25,
     "len_needle": 3,
     "align_haystack": 0,
     "align_needle": 9,
     "fail": 1,
     "timings": [38.0625, 82.6875, 19.6875, 14.4375, 31.5]
    },
    {
     "len_haystack": 24,
     "len_needle": 3,
     "align_haystack": 4081,
     "align_needle": 9,
     "fail": 1,
     "timings": [49.875, 110.25, 26.25, 30.1875, 59.0625]
    },
    {
     "len_haystack": 32,
     "len_needle": 4,
     "align_haystack": 1,
     "align_needle": 3,
     "fail": 0,
     "timings": [44.625, 144.375, 19.6875, 18.375, 110.25]
    },
    {
     "len_haystack": 32,
     "len_needle": 4,
     "align_haystack": 0,
     "align_needle": 9,
     "fail": 1,
     "timings": [43.3125, 122.062, 19.6875, 21, 87.9375]
    },
    {
     "len_haystack": 33,
     "len_needle": 4,
     "align_haystack": 1,
     "align_needle": 3,
     "fail": 0,
     "timings": [42, 47.25, 21, 18.375, 34.125]
    },
    {
     "len_haystack": 33,
     "len_needle": 4,
     "align_haystack": 0,
     "align_needle": 9,
     "fail": 1,
     "timings": [47.25, 21, 18.375, 19.6875, 19.6875]
    },
    {
     "len_haystack": 32,
     "len_needle": 4,
     "align_haystack": 4081,
     "align_needle": 9,
     "fail": 1,
     "timings": [39.375, 137.812, 23.625, 27.5625, 97.125]
    },
    {
     "len_haystack": 40,
     "len_needle": 5,
     "align_haystack": 1,
     "align_needle": 3,
     "fail": 0,
     "timings": [57.75, 102.375, 21, 30.1875, 102.375]
    },
    {
     "len_haystack": 40,
     "len_needle": 5,
     "align_haystack": 0,
     "align_needle": 9,
     "fail": 1,
     "timings": [55.125, 85.3125, 21, 23.625, 91.875]
    },
    {
     "len_haystack": 41,
     "len_needle": 5,
     "align_haystack": 1,
     "align_needle": 3,
     "fail": 0,
     "timings": [55.125, 102.375, 21, 22.3125, 89.25]
    },
    {
     "len_haystack": 41,
     "len_needle": 5,
     "align_haystack": 0,
     "align_needle": 9,
     "fail": 1,
     "timings": [53.8125, 84, 19.6875, 17.0625, 86.625]
    },
    {
     "len_haystack": 40,
     "len_needle": 5,
     "align_haystack": 4081,
     "align_needle": 9,
     "fail": 1,
     "timings": [74.8125, 97.125, 23.625, 27.5625, 97.125]
    },
    {
     "len_haystack": 48,
     "len_needle": 6,
     "align_haystack": 1,
     "align_needle": 3,
     "fail": 0,
     "timings": [69.5625, 143.062, 26.25, 28.875, 102.375]
    },
    {
     "len_haystack": 48,
     "len_needle": 6,
     "align_haystack": 0,
     "align_needle": 9,
     "fail": 1,
     "timings": [64.3125, 152.25, 26.25, 26.25, 87.9375]
    },
    {
     "len_haystack": 49,
     "len_needle": 6,
     "align_haystack": 1,
     "align_needle": 3,
     "fail": 0,
     "timings": [76.125, 156.188, 27.5625, 26.25, 99.75]
    },
    {
     "len_haystack": 49,
     "len_needle": 6,
     "align_haystack": 0,
     "align_needle": 9,
     "fail": 1,
     "timings": [74.8125, 173.25, 23.625, 22.3125, 95.8125]
    },
    {
     "len_haystack": 48,
     "len_needle": 6,
     "align_haystack": 4081,
     "align_needle": 9,
     "fail": 1,
     "timings": [59.0625, 148.312, 30.1875, 38.0625, 87.9375]
    },
    {
     "len_haystack": 56,
     "len_needle": 7,
     "align_haystack": 1,
     "align_needle": 3,
     "fail": 0,
     "timings": [81.375, 107.625, 24.9375, 34.125, 95.8125]
    },
    {
     "len_haystack": 56,
     "len_needle": 7,
     "align_haystack": 0,
     "align_needle": 9,
     "fail": 1,
     "timings": [78.75, 90.5625, 22.3125, 23.625, 94.5]
    },
    {
     "len_haystack": 57,
     "len_needle": 7,
     "align_haystack": 1,
     "align_needle": 3,
     "fail": 0,
     "timings": [80.0625, 139.125, 24.9375, 28.875, 106.312]
    },
    {
     "len_haystack": 57,
     "len_needle": 7,
     "align_haystack": 0,
     "align_needle": 9,
     "fail": 1,
     "timings": [81.375, 119.438, 21, 21, 106.312]
    },
    {
     "len_haystack": 56,
     "len_needle": 7,
     "align_haystack": 4081,
     "align_needle": 9,
     "fail": 1,
     "timings": [72.1875, 93.1875, 27.5625, 34.125, 99.75]
    },
    {
     "len_haystack": 64,
     "len_needle": 8,
     "align_haystack": 1,
     "align_needle": 3,
     "fail": 0,
     "timings": [78.75, 229.688, 26.25, 30.1875, 98.4375]
    },
    {
     "len_haystack": 64,
     "len_needle": 8,
     "align_haystack": 0,
     "align_needle": 9,
     "fail": 1,
     "timings": [90.5625, 217.875, 35.4375, 34.125, 90.5625]
    },
    {
     "len_haystack": 65,
     "len_needle": 8,
     "align_haystack": 1,
     "align_needle": 3,
     "fail": 0,
     "timings": [89.25, 123.375, 22.3125, 27.5625, 95.8125]
    },
    {
     "len_haystack": 65,
     "len_needle": 8,
     "align_haystack": 0,
     "align_needle": 9,
     "fail": 1,
     "timings": [128.625, 107.625, 24.9375, 27.5625, 93.1875]
    },
    {
     "len_haystack": 64,
     "len_needle": 8,
     "align_haystack": 4081,
     "align_needle": 9,
     "fail": 1,
     "timings": [124.688, 212.625, 34.125, 34.125, 91.875]
    },
    {
     "len_haystack": 96,
     "len_needle": 9,
     "align_haystack": 1,
     "align_needle": 3,
     "fail": 0,
     "timings": [171.938, 149.625, 35.4375, 49.875, 106.312]
    },
    {
     "len_haystack": 96,
     "len_needle": 9,
     "align_haystack": 0,
     "align_needle": 9,
     "fail": 1,
     "timings": [182.438, 128.625, 28.875, 30.1875, 101.062]
    },
    {
     "len_haystack": 97,
     "len_needle": 9,
     "align_haystack": 1,
     "align_needle": 3,
     "fail": 0,
     "timings": [192.938, 199.5, 30.1875, 39.375, 103.688]
    },
    {
     "len_haystack": 97,
     "len_needle": 9,
     "align_haystack": 0,
     "align_needle": 9,
     "fail": 1,
     "timings": [126, 175.875, 21, 30.1875, 103.688]
    },
    {
     "len_haystack": 96,
     "len_needle": 9,
     "align_haystack": 4081,
     "align_needle": 9,
     "fail": 1,
     "timings": [135.188, 140.438, 35.4375, 44.625, 105]
    },
    {
     "len_haystack": 128,
     "len_needle": 10,
     "align_haystack": 1,
     "align_needle": 3,
     "fail": 0,
     "timings": [149.625, 325.5, 32.8125, 42, 107.625]
    },
    {
     "len_haystack": 128,
     "len_needle": 10,
     "align_haystack": 0,
     "align_needle": 9,
     "fail": 1,
     "timings": [231, 316.312, 31.5, 36.75, 102.375]
    },
    {
     "len_haystack": 129,
     "len_needle": 10,
     "align_haystack": 1,
     "align_needle": 3,
     "fail": 0,
     "timings": [248.062, 442.312, 27.5625, 44.625, 119.438]
    },
    {
     "len_haystack": 129,
     "len_needle": 10,
     "align_haystack": 0,
     "align_needle": 9,
     "fail": 1,
     "timings": [158.812, 426.562, 27.5625, 38.0625, 115.5]
    },
    {
     "len_haystack": 128,
     "len_needle": 10,
     "align_haystack": 4081,
     "align_needle": 9,
     "fail": 1,
     "timings": [144.375, 326.812, 32.8125, 43.3125, 105]
    },
    {
     "len_haystack": 160,
     "len_needle": 11,
     "align_haystack": 1,
     "align_needle": 3,
     "fail": 0,
     "timings": [223.125, 511.875, 32.8125, 49.875, 124.688]
    },
    {
     "len_haystack": 160,
     "len_needle": 11,
     "align_haystack": 0,
     "align_needle": 9,
     "fail": 1,
     "timings": [216.562, 444.938, 26.25, 34.125, 115.5]
    },
    {
     "len_haystack": 161,
     "len_needle": 11,
     "align_haystack": 1,
     "align_needle": 3,
     "fail": 0,
     "timings": [177.188, 406.875, 30.1875, 44.625, 112.875]
    },
    {
     "len_haystack": 161,
     "len_needle": 11,
     "align_haystack": 0,
     "align_needle": 9,
     "fail": 1,
     "timings": [196.875, 345.188, 24.9375, 31.5, 110.25]
    },
    {
     "len_haystack": 160,
     "len_needle": 11,
     "align_haystack": 4081,
     "align_needle": 9,
     "fail": 1,
     "timings": [213.938, 452.812, 38.0625, 43.3125, 116.812]
    },
    {
     "len_haystack": 192,
     "len_needle": 12,
     "align_haystack": 1,
     "align_needle": 3,
     "fail": 0,
     "timings": [284.812, 350.438, 38.0625, 57.75, 132.562]
    },
    {
     "len_haystack": 192,
     "len_needle": 12,
     "align_haystack": 0,
     "align_needle": 9,
     "fail": 1,
     "timings": [275.625, 325.5, 39.375, 53.8125, 128.625]
    },
    {
     "len_haystack": 193,
     "len_needle": 12,
     "align_haystack": 1,
     "align_needle": 3,
     "fail": 0,
     "timings": [228.375, 179.812, 27.5625, 48.5625, 116.812]
    },
    {
     "len_haystack": 193,
     "len_needle": 12,
     "align_haystack": 0,
     "align_needle": 9,
     "fail": 1,
     "timings": [223.125, 165.375, 30.1875, 40.6875, 107.625]
    },
    {
     "len_haystack": 192,
     "len_needle": 12,
     "align_haystack": 4081,
     "align_needle": 9,
     "fail": 1,
     "timings": [274.312, 333.375, 39.375, 47.25, 124.688]
    },
    {
     "len_haystack": 224,
     "len_needle": 13,
     "align_haystack": 1,
     "align_needle": 3,
     "fail": 0,
     "timings": [228.375, 52.5, 35.4375, 55.125, 42]
    },
    {
     "len_haystack": 224,
     "len_needle": 13,
     "align_haystack": 0,
     "align_needle": 9,
     "fail": 1,
     "timings": [225.75, 44.625, 26.25, 35.4375, 32.8125]
    },
    {
     "len_haystack": 225,
     "len_needle": 13,
     "align_haystack": 1,
     "align_needle": 3,
     "fail": 0,
     "timings": [228.375, 47.25, 31.5, 45.9375, 35.4375]
    },
    {
     "len_haystack": 225,
     "len_needle": 13,
     "align_haystack": 0,
     "align_needle": 9,
     "fail": 1,
     "timings": [227.062, 42, 24.9375, 34.125, 34.125]
    },
    {
     "len_haystack": 224,
     "len_needle": 13,
     "align_haystack": 4081,
     "align_needle": 9,
     "fail": 1,
     "timings": [224.438, 45.9375, 32.8125, 45.9375, 35.4375]
    },
    {
     "len_haystack": 256,
     "len_needle": 14,
     "align_haystack": 1,
     "align_needle": 3,
     "fail": 0,
     "timings": [300.562, 196.875, 28.875, 49.875, 122.062]
    },
    {
     "len_haystack": 256,
     "len_needle": 14,
     "align_haystack": 0,
     "align_needle": 9,
     "fail": 1,
     "timings": [299.25, 160.125, 31.5, 40.6875, 112.875]
    },
    {
     "len_haystack": 257,
     "len_needle": 14,
     "align_haystack": 1,
     "align_needle": 3,
     "fail": 0,
     "timings": [276.938, 186.375, 27.5625, 49.875, 111.562]
    },
    {
     "len_haystack": 257,
     "len_needle": 14,
     "align_haystack": 0,
     "align_needle": 9,
     "fail": 1,
     "timings": [274.312, 157.5, 28.875, 38.0625, 110.25]
    },
    {
     "len_haystack": 256,
     "len_needle": 14,
     "align_haystack": 4081,
     "align_needle": 9,
     "fail": 1,
     "timings": [291.375, 162.75, 28.875, 40.6875, 116.812]
    },
    {
     "len_haystack": 288,
     "len_needle": 15,
     "align_haystack": 1,
     "align_needle": 3,
     "fail": 0,
     "timings": [351.75, 196.875, 39.375, 60.375, 149.625]
    },
    {
     "len_haystack": 288,
     "len_needle": 15,
     "align_haystack": 0,
     "align_needle": 9,
     "fail": 1,
     "timings": [332.062, 164.062, 32.8125, 40.6875, 136.5]
    },
    {
     "len_haystack": 289,
     "len_needle": 15,
     "align_haystack": 1,
     "align_needle": 3,
     "fail": 0,
     "timings": [343.875, 185.062, 35.4375, 53.8125, 139.125]
    },
    {
     "len_haystack": 289,
     "len_needle": 15,
     "align_haystack": 0,
     "align_needle": 9,
     "fail": 1,
     "timings": [357, 160.125, 30.1875, 38.0625, 133.875]
    },
    {
     "len_haystack": 288,
     "len_needle": 15,
     "align_haystack": 4081,
     "align_needle": 9,
     "fail": 1,
     "timings": [341.25, 170.625, 35.4375, 48.5625, 145.688]
    },
    {
     "len_haystack": 320,
     "len_needle": 16,
     "align_haystack": 1,
     "align_needle": 3,
     "fail": 0,
     "timings": [364.875, 887.25, 34.125, 59.0625, 165.375]
    },
    {
     "len_haystack": 320,
     "len_needle": 16,
     "align_haystack": 0,
     "align_needle": 9,
     "fail": 1,
     "timings": [354.375, 820.312, 34.125, 47.25, 150.938]
    },
    {
     "len_haystack": 321,
     "len_needle": 16,
     "align_haystack": 1,
     "align_needle": 3,
     "fail": 0,
     "timings": [379.312, 770.438, 32.8125, 57.75, 137.812]
    },
    {
     "len_haystack": 321,
     "len_needle": 16,
     "align_haystack": 0,
     "align_needle": 9,
     "fail": 1,
     "timings": [355.688, 737.625, 31.5, 44.625, 131.25]
    },
    {
     "len_haystack": 320,
     "len_needle": 16,
     "align_haystack": 4081,
     "align_needle": 9,
     "fail": 1,
     "timings": [355.688, 834.75, 31.5, 44.625, 152.25]
    },
    {
     "len_haystack": 256,
     "len_needle": 4,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [402.938, 207.375, 40.6875, 45.9375, 266.438]
    },
    {
     "len_haystack": 256,
     "len_needle": 4,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [393.75, 177.188, 43.3125, 45.9375, 246.75]
    },
    {
     "len_haystack": 257,
     "len_needle": 5,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [308.438, 253.312, 42, 44.625, 217.875]
    },
    {
     "len_haystack": 257,
     "len_needle": 5,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [303.188, 204.75, 49.875, 44.625, 206.062]
    },
    {
     "len_haystack": 257,
     "len_needle": 4,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [475.125, 777, 42, 80.0625, 391.125]
    },
    {
     "len_haystack": 257,
     "len_needle": 4,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [321.562, 737.625, 40.6875, 51.1875, 252]
    },
    {
     "len_haystack": 257,
     "len_needle": 4,
     "align_haystack": 4081,
     "align_needle": 5,
     "fail": 1,
     "timings": [318.938, 754.688, 52.5, 60.375, 269.062]
    },
    {
     "len_haystack": 256,
     "len_needle": 8,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [343.875, 143.062, 49.875, 69.5625, 170.625]
    },
    {
     "len_haystack": 256,
     "len_needle": 8,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [337.312, 119.438, 49.875, 68.25, 162.75]
    },
    {
     "len_haystack": 257,
     "len_needle": 9,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [316.312, 128.625, 38.0625, 51.1875, 179.812]
    },
    {
     "len_haystack": 257,
     "len_needle": 9,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [300.562, 107.625, 42, 52.5, 164.062]
    },
    {
     "len_haystack": 257,
     "len_needle": 8,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [303.188, 126, 39.375, 49.875, 162.75]
    },
    {
     "len_haystack": 257,
     "len_needle": 8,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [297.938, 103.688, 42, 45.9375, 148.312]
    },
    {
     "len_haystack": 257,
     "len_needle": 8,
     "align_haystack": 4081,
     "align_needle": 5,
     "fail": 1,
     "timings": [299.25, 108.938, 43.3125, 59.0625, 154.875]
    },
    {
     "len_haystack": 256,
     "len_needle": 16,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [257.25, 51.1875, 36.75, 59.0625, 40.6875]
    },
    {
     "len_haystack": 256,
     "len_needle": 16,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [242.812, 34.125, 35.4375, 43.3125, 28.875]
    },
    {
     "len_haystack": 257,
     "len_needle": 17,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [371.438, 342.562, 35.4375, 68.25, 157.5]
    },
    {
     "len_haystack": 257,
     "len_needle": 17,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [391.125, 291.375, 36.75, 57.75, 135.188]
    },
    {
     "len_haystack": 257,
     "len_needle": 16,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [391.125, 402.938, 39.375, 73.5, 141.75]
    },
    {
     "len_haystack": 257,
     "len_needle": 16,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [392.438, 379.312, 36.75, 47.25, 132.562]
    },
    {
     "len_haystack": 257,
     "len_needle": 16,
     "align_haystack": 4081,
     "align_needle": 5,
     "fail": 1,
     "timings": [389.812, 375.375, 35.4375, 56.4375, 136.5]
    },
    {
     "len_haystack": 256,
     "len_needle": 32,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [280.875, 427.875, 30.1875, 86.625, 148.312]
    },
    {
     "len_haystack": 256,
     "len_needle": 32,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [274.312, 311.062, 30.1875, 40.6875, 143.062]
    },
    {
     "len_haystack": 257,
     "len_needle": 33,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [355.688, 488.25, 61.6875, 103.688, 171.938]
    },
    {
     "len_haystack": 257,
     "len_needle": 33,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [341.25, 410.812, 51.1875, 69.5625, 149.625]
    },
    {
     "len_haystack": 257,
     "len_needle": 32,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [296.625, 406.875, 47.25, 97.125, 154.875]
    },
    {
     "len_haystack": 257,
     "len_needle": 32,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [288.75, 341.25, 53.8125, 69.5625, 135.188]
    },
    {
     "len_haystack": 257,
     "len_needle": 32,
     "align_haystack": 4081,
     "align_needle": 5,
     "fail": 1,
     "timings": [447.562, 338.625, 57.75, 63, 143.062]
    },
    {
     "len_haystack": 256,
     "len_needle": 64,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [467.25, 641.812, 43.3125, 166.688, 199.5]
    },
    {
     "len_haystack": 256,
     "len_needle": 64,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [397.688, 469.875, 44.625, 53.8125, 187.688]
    },
    {
     "len_haystack": 257,
     "len_needle": 65,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [378, 652.312, 45.9375, 165.375, 204.75]
    },
    {
     "len_haystack": 257,
     "len_needle": 65,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [324.188, 563.062, 43.3125, 52.5, 192.938]
    },
    {
     "len_haystack": 257,
     "len_needle": 64,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [328.125, 595.875, 39.375, 164.062, 196.875]
    },
    {
     "len_haystack": 257,
     "len_needle": 64,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [312.375, 469.875, 40.6875, 45.9375, 187.688]
    },
    {
     "len_haystack": 257,
     "len_needle": 64,
     "align_haystack": 4081,
     "align_needle": 5,
     "fail": 1,
     "timings": [308.438, 481.688, 44.625, 48.5625, 191.625]
    },
    {
     "len_haystack": 256,
     "len_needle": 128,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [325.5, 997.5, 145.688, 213.938, 317.625]
    },
    {
     "len_haystack": 256,
     "len_needle": 128,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [280.875, 812.438, 39.375, 42, 297.938]
    },
    {
     "len_haystack": 257,
     "len_needle": 129,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [375.375, 1001.44, 136.5, 231, 318.938]
    },
    {
     "len_haystack": 257,
     "len_needle": 129,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [397.688, 812.438, 57.75, 68.25, 301.875]
    },
    {
     "len_haystack": 257,
     "len_needle": 128,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [336, 993.562, 132.562, 221.812, 307.125]
    },
    {
     "len_haystack": 257,
     "len_needle": 128,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [284.812, 815.062, 48.5625, 59.0625, 299.25]
    },
    {
     "len_haystack": 257,
     "len_needle": 128,
     "align_haystack": 4081,
     "align_needle": 5,
     "fail": 1,
     "timings": [280.875, 812.438, 49.875, 56.4375, 307.125]
    },
    {
     "len_haystack": 256,
     "len_needle": 256,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [245.438, 61.6875, 224.438, 303.188, 56.4375]
    },
    {
     "len_haystack": 256,
     "len_needle": 256,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [307.125, 44.625, 39.375, 60.375, 45.9375]
    },
    {
     "len_haystack": 257,
     "len_needle": 257,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [242.812, 61.6875, 224.438, 250.688, 56.4375]
    },
    {
     "len_haystack": 257,
     "len_needle": 257,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [395.062, 45.9375, 48.5625, 52.5, 44.625]
    },
    {
     "len_haystack": 257,
     "len_needle": 256,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [248.062, 57.75, 220.5, 252, 52.5]
    },
    {
     "len_haystack": 257,
     "len_needle": 256,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [290.062, 44.625, 44.625, 52.5, 42]
    },
    {
     "len_haystack": 257,
     "len_needle": 256,
     "align_haystack": 4081,
     "align_needle": 5,
     "fail": 1,
     "timings": [287.438, 48.5625, 43.3125, 52.5, 47.25]
    },
    {
     "len_haystack": 512,
     "len_needle": 4,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [724.5, 1510.69, 72.1875, 91.875, 493.5]
    },
    {
     "len_haystack": 512,
     "len_needle": 4,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [656.25, 1168.12, 65.625, 97.125, 455.438]
    },
    {
     "len_haystack": 513,
     "len_needle": 5,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [672, 208.688, 84, 103.688, 788.812]
    },
    {
     "len_haystack": 513,
     "len_needle": 5,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [658.875, 194.25, 90.5625, 111.562, 376.688]
    },
    {
     "len_haystack": 513,
     "len_needle": 4,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [626.062, 199.5, 72.1875, 93.1875, 485.625]
    },
    {
     "len_haystack": 513,
     "len_needle": 4,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [611.625, 179.812, 74.8125, 101.062, 473.812]
    },
    {
     "len_haystack": 513,
     "len_needle": 4,
     "align_haystack": 4081,
     "align_needle": 5,
     "fail": 1,
     "timings": [606.375, 194.25, 66.9375, 98.4375, 476.438]
    },
    {
     "len_haystack": 512,
     "len_needle": 8,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [538.125, 332.062, 76.125, 99.75, 199.5]
    },
    {
     "len_haystack": 512,
     "len_needle": 8,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [522.375, 294, 76.125, 91.875, 187.688]
    },
    {
     "len_haystack": 513,
     "len_needle": 9,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [465.938, 60.375, 61.6875, 74.8125, 55.125]
    },
    {
     "len_haystack": 513,
     "len_needle": 9,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [456.75, 40.6875, 48.5625, 69.5625, 38.0625]
    },
    {
     "len_haystack": 513,
     "len_needle": 8,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [532.875, 179.812, 44.625, 70.875, 174.562]
    },
    {
     "len_haystack": 513,
     "len_needle": 8,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [523.688, 148.312, 44.625, 64.3125, 170.625]
    },
    {
     "len_haystack": 513,
     "len_needle": 8,
     "align_haystack": 4081,
     "align_needle": 5,
     "fail": 1,
     "timings": [522.375, 156.188, 44.625, 68.25, 171.938]
    },
    {
     "len_haystack": 512,
     "len_needle": 16,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [536.812, 1153.69, 44.625, 80.0625, 237.562]
    },
    {
     "len_haystack": 512,
     "len_needle": 16,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [527.625, 1101.19, 43.3125, 63, 219.188]
    },
    {
     "len_haystack": 513,
     "len_needle": 17,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [535.5, 939.75, 64.3125, 99.75, 149.625]
    },
    {
     "len_haystack": 513,
     "len_needle": 17,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [522.375, 892.5, 65.625, 80.0625, 143.062]
    },
    {
     "len_haystack": 513,
     "len_needle": 16,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [615.562, 1581.56, 45.9375, 77.4375, 202.125]
    },
    {
     "len_haystack": 513,
     "len_needle": 16,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [602.438, 1546.12, 45.9375, 60.375, 202.125]
    },
    {
     "len_haystack": 513,
     "len_needle": 16,
     "align_haystack": 4081,
     "align_needle": 5,
     "fail": 1,
     "timings": [901.688, 1571.06, 44.625, 63, 195.562]
    },
    {
     "len_haystack": 512,
     "len_needle": 32,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [653.625, 645.75, 64.3125, 127.312, 174.562]
    },
    {
     "len_haystack": 512,
     "len_needle": 32,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [666.75, 594.562, 61.6875, 87.9375, 164.062]
    },
    {
     "len_haystack": 513,
     "len_needle": 33,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [694.312, 607.688, 68.25, 148.312, 168]
    },
    {
     "len_haystack": 513,
     "len_needle": 33,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [657.562, 522.375, 69.5625, 107.625, 166.688]
    },
    {
     "len_haystack": 513,
     "len_needle": 32,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [572.25, 585.375, 59.0625, 127.312, 202.125]
    },
    {
     "len_haystack": 513,
     "len_needle": 32,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [555.188, 540.75, 59.0625, 85.3125, 189]
    },
    {
     "len_haystack": 513,
     "len_needle": 32,
     "align_haystack": 4081,
     "align_needle": 5,
     "fail": 1,
     "timings": [552.562, 543.375, 61.6875, 90.5625, 190.312]
    },
    {
     "len_haystack": 512,
     "len_needle": 64,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [682.5, 727.125, 73.5, 200.812, 219.188]
    },
    {
     "len_haystack": 512,
     "len_needle": 64,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [602.438, 551.25, 73.5, 93.1875, 204.75]
    },
    {
     "len_haystack": 513,
     "len_needle": 65,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [813.75, 820.312, 68.25, 194.25, 224.438]
    },
    {
     "len_haystack": 513,
     "len_needle": 65,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [791.438, 686.438, 66.9375, 81.375, 210]
    },
    {
     "len_haystack": 513,
     "len_needle": 64,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [627.375, 605.062, 77.4375, 211.312, 240.188]
    },
    {
     "len_haystack": 513,
     "len_needle": 64,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [585.375, 518.438, 73.5, 105, 220.5]
    },
    {
     "len_haystack": 513,
     "len_needle": 64,
     "align_haystack": 4081,
     "align_needle": 5,
     "fail": 1,
     "timings": [576.188, 522.375, 73.5, 99.75, 224.438]
    },
    {
     "len_haystack": 512,
     "len_needle": 128,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [627.375, 1046.06, 149.625, 234.938, 332.062]
    },
    {
     "len_haystack": 512,
     "len_needle": 128,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [577.5, 826.875, 63, 85.3125, 313.688]
    },
    {
     "len_haystack": 513,
     "len_needle": 129,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [672, 1004.06, 152.25, 246.75, 328.125]
    },
    {
     "len_haystack": 513,
     "len_needle": 129,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [657.562, 816.375, 74.8125, 102.375, 311.062]
    },
    {
     "len_haystack": 513,
     "len_needle": 128,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [614.25, 1005.38, 158.812, 242.812, 330.75]
    },
    {
     "len_haystack": 513,
     "len_needle": 128,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [548.625, 874.125, 63, 87.9375, 312.375]
    },
    {
     "len_haystack": 513,
     "len_needle": 128,
     "align_haystack": 4081,
     "align_needle": 5,
     "fail": 1,
     "timings": [547.312, 871.5, 63, 89.25, 312.375]
    },
    {
     "len_haystack": 512,
     "len_needle": 256,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [580.125, 1863.75, 246.75, 357, 519.75]
    },
    {
     "len_haystack": 512,
     "len_needle": 256,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [666.75, 1468.69, 84, 112.875, 504]
    },
    {
     "len_haystack": 513,
     "len_needle": 257,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [540.75, 1711.5, 242.812, 345.188, 2054.06]
    },
    {
     "len_haystack": 513,
     "len_needle": 257,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [546, 1498.88, 68.25, 84, 1539.56]
    },
    {
     "len_haystack": 513,
     "len_needle": 256,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [612.938, 1733.81, 240.188, 351.75, 506.625]
    },
    {
     "len_haystack": 513,
     "len_needle": 256,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [619.5, 1454.25, 69.5625, 91.875, 497.438]
    },
    {
     "len_haystack": 513,
     "len_needle": 256,
     "align_haystack": 4081,
     "align_needle": 5,
     "fail": 1,
     "timings": [599.812, 1446.38, 74.8125, 90.5625, 504]
    },
    {
     "len_haystack": 1024,
     "len_needle": 4,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [1624.88, 1714.12, 110.25, 133.875, 874.125]
    },
    {
     "len_haystack": 1024,
     "len_needle": 4,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [1603.88, 1666.88, 99.75, 128.625, 861]
    },
    {
     "len_haystack": 1025,
     "len_needle": 5,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [1284.94, 3060.75, 102.375, 135.188, 696.938]
    },
    {
     "len_haystack": 1025,
     "len_needle": 5,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [1278.38, 3030.56, 102.375, 129.938, 672]
    },
    {
     "len_haystack": 1025,
     "len_needle": 4,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [1319.06, 804.562, 127.312, 156.188, 830.812]
    },
    {
     "len_haystack": 1025,
     "len_needle": 4,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [1295.44, 773.062, 127.312, 166.688, 821.625]
    },
    {
     "len_haystack": 1025,
     "len_needle": 4,
     "align_haystack": 4081,
     "align_needle": 5,
     "fail": 1,
     "timings": [1298.06, 775.688, 116.812, 160.125, 830.812]
    },
    {
     "len_haystack": 1024,
     "len_needle": 8,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [1212.75, 221.812, 114.188, 149.625, 467.25]
    },
    {
     "len_haystack": 1024,
     "len_needle": 8,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [1148.44, 190.312, 106.312, 136.5, 450.188]
    },
    {
     "len_haystack": 1025,
     "len_needle": 9,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [1355.81, 442.312, 140.438, 216.562, 405.562]
    },
    {
     "len_haystack": 1025,
     "len_needle": 9,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [1328.25, 417.375, 132.562, 196.875, 388.5]
    },
    {
     "len_haystack": 1025,
     "len_needle": 8,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [1682.62, 225.75, 156.188, 231, 517.125]
    },
    {
     "len_haystack": 1025,
     "len_needle": 8,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [1664.25, 195.562, 154.875, 233.625, 500.062]
    },
    {
     "len_haystack": 1025,
     "len_needle": 8,
     "align_haystack": 4081,
     "align_needle": 5,
     "fail": 1,
     "timings": [1657.69, 204.75, 156.188, 220.5, 507.938]
    },
    {
     "len_haystack": 1024,
     "len_needle": 16,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [1340.06, 3140.81, 145.688, 200.812, 330.75]
    },
    {
     "len_haystack": 1024,
     "len_needle": 16,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [1311.19, 3073.88, 141.75, 179.812, 309.75]
    },
    {
     "len_haystack": 1025,
     "len_needle": 17,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [1140.56, 3156.56, 122.062, 168, 324.188]
    },
    {
     "len_haystack": 1025,
     "len_needle": 17,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [1102.5, 3084.38, 119.438, 158.812, 307.125]
    },
    {
     "len_haystack": 1025,
     "len_needle": 16,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [1219.31, 3151.31, 110.25, 156.188, 416.062]
    },
    {
     "len_haystack": 1025,
     "len_needle": 16,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [1199.62, 3088.31, 98.4375, 135.188, 396.375]
    },
    {
     "len_haystack": 1025,
     "len_needle": 16,
     "align_haystack": 4081,
     "align_needle": 5,
     "fail": 1,
     "timings": [1187.81, 3092.25, 107.625, 143.062, 400.312]
    },
    {
     "len_haystack": 1024,
     "len_needle": 32,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [1618.31, 998.812, 107.625, 189, 307.125]
    },
    {
     "len_haystack": 1024,
     "len_needle": 32,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [1613.06, 909.562, 105, 149.625, 303.188]
    },
    {
     "len_haystack": 1025,
     "len_needle": 33,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [988.312, 787.5, 94.5, 154.875, 238.875]
    },
    {
     "len_haystack": 1025,
     "len_needle": 33,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [954.188, 738.938, 77.4375, 114.188, 221.812]
    },
    {
     "len_haystack": 1025,
     "len_needle": 32,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [1624.88, 1029, 99.75, 169.312, 254.625]
    },
    {
     "len_haystack": 1025,
     "len_needle": 32,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [1615.69, 947.625, 101.062, 132.562, 240.188]
    },
    {
     "len_haystack": 1025,
     "len_needle": 32,
     "align_haystack": 4081,
     "align_needle": 5,
     "fail": 1,
     "timings": [1610.44, 958.125, 102.375, 129.938, 252]
    },
    {
     "len_haystack": 1024,
     "len_needle": 64,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [1384.69, 1128.75, 178.5, 332.062, 279.562]
    },
    {
     "len_haystack": 1024,
     "len_needle": 64,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [1379.44, 1008, 183.75, 224.438, 274.312]
    },
    {
     "len_haystack": 1025,
     "len_needle": 65,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [1195.69, 990.938, 107.625, 252, 273]
    },
    {
     "len_haystack": 1025,
     "len_needle": 65,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [1127.44, 888.562, 99.75, 131.25, 250.688]
    },
    {
     "len_haystack": 1025,
     "len_needle": 64,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [1624.88, 1067.06, 105, 257.25, 316.312]
    },
    {
     "len_haystack": 1025,
     "len_needle": 64,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [1619.62, 968.625, 107.625, 137.812, 301.875]
    },
    {
     "len_haystack": 1025,
     "len_needle": 64,
     "align_haystack": 4081,
     "align_needle": 5,
     "fail": 1,
     "timings": [1615.69, 960.75, 97.125, 139.125, 304.5]
    },
    {
     "len_haystack": 1024,
     "len_needle": 128,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [1244.25, 1470, 192.938, 286.125, 367.5]
    },
    {
     "len_haystack": 1024,
     "len_needle": 128,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [1190.44, 1218, 98.4375, 129.938, 345.188]
    },
    {
     "len_haystack": 1025,
     "len_needle": 129,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [1622.25, 1281, 212.625, 351.75, 353.062]
    },
    {
     "len_haystack": 1025,
     "len_needle": 129,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [1638, 1063.12, 129.938, 189, 343.875]
    },
    {
     "len_haystack": 1025,
     "len_needle": 128,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [1181.25, 1341.38, 213.938, 315, 393.75]
    },
    {
     "len_haystack": 1025,
     "len_needle": 128,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [1124.81, 1143.19, 119.438, 147, 367.5]
    },
    {
     "len_haystack": 1025,
     "len_needle": 128,
     "align_haystack": 4081,
     "align_needle": 5,
     "fail": 1,
     "timings": [1119.56, 1164.19, 242.812, 254.625, 376.688]
    },
    {
     "len_haystack": 1024,
     "len_needle": 256,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [1660.31, 1817.81, 309.75, 425.25, 542.062]
    },
    {
     "len_haystack": 1024,
     "len_needle": 256,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [1265.25, 1470, 119.438, 157.5, 518.438]
    },
    {
     "len_haystack": 1025,
     "len_needle": 257,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [1258.69, 1795.5, 332.062, 459.375, 1933.31]
    },
    {
     "len_haystack": 1025,
     "len_needle": 257,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [1326.94, 1485.75, 160.125, 236.25, 1466.06]
    },
    {
     "len_haystack": 1025,
     "len_needle": 256,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [1535.62, 1854.56, 315, 476.438, 526.312]
    },
    {
     "len_haystack": 1025,
     "len_needle": 256,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [1691.81, 1505.44, 162.75, 262.5, 522.375]
    },
    {
     "len_haystack": 1025,
     "len_needle": 256,
     "align_haystack": 4081,
     "align_needle": 5,
     "fail": 1,
     "timings": [1682.62, 1505.44, 173.25, 262.5, 523.688]
    },
    {
     "len_haystack": 2048,
     "len_needle": 4,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [2500.31, 4701.38, 171.938, 220.5, 1526.44]
    },
    {
     "len_haystack": 2048,
     "len_needle": 4,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [2424.19, 4616.06, 152.25, 210, 1493.62]
    },
    {
     "len_haystack": 2049,
     "len_needle": 5,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [2548.88, 2606.62, 292.688, 383.25, 1594.69]
    },
    {
     "len_haystack": 2049,
     "len_needle": 5,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [2476.69, 2525.25, 284.812, 367.5, 1564.5]
    },
    {
     "len_haystack": 2049,
     "len_needle": 4,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [2114.44, 6909, 158.812, 198.188, 1571.06]
    },
    {
     "len_haystack": 2049,
     "len_needle": 4,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [2111.81, 6321, 144.375, 199.5, 1544.81]
    },
    {
     "len_haystack": 2049,
     "len_needle": 4,
     "align_haystack": 4081,
     "align_needle": 5,
     "fail": 1,
     "timings": [2103.94, 6365.62, 141.75, 204.75, 1576.31]
    },
    {
     "len_haystack": 2048,
     "len_needle": 8,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [2715.56, 6437.81, 304.5, 467.25, 910.875]
    },
    {
     "len_haystack": 2048,
     "len_needle": 8,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [2680.12, 6384, 295.312, 451.5, 872.812]
    },
    {
     "len_haystack": 2049,
     "len_needle": 9,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [2724.75, 6502.12, 312.375, 414.75, 786.188]
    },
    {
     "len_haystack": 2049,
     "len_needle": 9,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [2716.88, 6429.94, 312.375, 418.688, 761.25]
    },
    {
     "len_haystack": 2049,
     "len_needle": 8,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [2564.62, 2399.25, 301.875, 431.812, 901.688]
    },
    {
     "len_haystack": 2049,
     "len_needle": 8,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [2513.44, 1886.06, 301.875, 423.938, 866.25]
    },
    {
     "len_haystack": 2049,
     "len_needle": 8,
     "align_haystack": 4081,
     "align_needle": 5,
     "fail": 1,
     "timings": [3761.62, 1893.94, 297.938, 416.062, 870.188]
    },
    {
     "len_haystack": 2048,
     "len_needle": 16,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [4269.56, 6436.5, 206.062, 315, 666.75]
    },
    {
     "len_haystack": 2048,
     "len_needle": 16,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [3732.75, 6349.88, 199.5, 300.562, 633.938]
    },
    {
     "len_haystack": 2049,
     "len_needle": 17,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [2601.38, 6449.62, 152.25, 238.875, 753.375]
    },
    {
     "len_haystack": 2049,
     "len_needle": 17,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [2526.56, 6432.56, 143.062, 220.5, 721.875]
    },
    {
     "len_haystack": 2049,
     "len_needle": 16,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [2337.56, 6050.62, 190.312, 284.812, 620.812]
    },
    {
     "len_haystack": 2049,
     "len_needle": 16,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [2257.5, 6012.56, 187.688, 275.625, 591.938]
    },
    {
     "len_haystack": 2049,
     "len_needle": 16,
     "align_haystack": 4081,
     "align_needle": 5,
     "fail": 1,
     "timings": [2252.25, 6017.81, 186.375, 266.438, 594.562]
    },
    {
     "len_haystack": 2048,
     "len_needle": 32,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [3248.44, 1535.62, 178.5, 355.688, 493.5]
    },
    {
     "len_haystack": 2048,
     "len_needle": 32,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [3237.94, 1426.69, 169.312, 315, 471.188]
    },
    {
     "len_haystack": 2049,
     "len_needle": 33,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [3096.19, 1764, 221.812, 427.875, 511.875]
    },
    {
     "len_haystack": 2049,
     "len_needle": 33,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [2766.75, 1660.31, 216.562, 378, 484.312]
    },
    {
     "len_haystack": 2049,
     "len_needle": 32,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [2606.62, 1651.12, 275.625, 528.938, 479.062]
    },
    {
     "len_haystack": 2049,
     "len_needle": 32,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [2565.94, 1571.06, 269.062, 481.688, 444.938]
    },
    {
     "len_haystack": 2049,
     "len_needle": 32,
     "align_haystack": 4081,
     "align_needle": 5,
     "fail": 1,
     "timings": [2514.75, 1576.31, 274.312, 486.938, 464.625]
    },
    {
     "len_haystack": 2048,
     "len_needle": 64,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [3615.94, 1564.5, 183.75, 399, 493.5]
    },
    {
     "len_haystack": 2048,
     "len_needle": 64,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [2340.19, 1345.31, 186.375, 286.125, 458.062]
    },
    {
     "len_haystack": 2049,
     "len_needle": 65,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [2581.69, 1766.62, 234.938, 486.938, 469.875]
    },
    {
     "len_haystack": 2049,
     "len_needle": 65,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [2500.31, 1596, 231, 353.062, 447.562]
    },
    {
     "len_haystack": 2049,
     "len_needle": 64,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [3369.19, 1513.31, 283.5, 950.25, 528.938]
    },
    {
     "len_haystack": 2049,
     "len_needle": 64,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [2697.19, 1309.88, 266.438, 431.812, 422.625]
    },
    {
     "len_haystack": 2049,
     "len_needle": 64,
     "align_haystack": 4081,
     "align_needle": 5,
     "fail": 1,
     "timings": [2702.44, 1316.44, 280.875, 459.375, 430.5]
    },
    {
     "len_haystack": 2048,
     "len_needle": 128,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [2812.69, 1972.69, 338.625, 640.5, 542.062]
    },
    {
     "len_haystack": 2048,
     "len_needle": 128,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [2785.12, 1817.81, 252, 455.438, 515.812]
    },
    {
     "len_haystack": 2049,
     "len_needle": 129,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [2607.94, 1862.44, 279.562, 509.25, 525]
    },
    {
     "len_haystack": 2049,
     "len_needle": 129,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [2647.31, 1641.94, 189, 360.938, 494.812]
    },
    {
     "len_haystack": 2049,
     "len_needle": 128,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [2607.94, 2243.06, 266.438, 476.438, 471.188]
    },
    {
     "len_haystack": 2049,
     "len_needle": 128,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [2590.88, 1972.69, 165.375, 317.625, 443.625]
    },
    {
     "len_haystack": 2049,
     "len_needle": 128,
     "align_haystack": 4081,
     "align_needle": 5,
     "fail": 1,
     "timings": [2589.56, 1977.94, 149.625, 313.688, 454.125]
    },
    {
     "len_haystack": 2048,
     "len_needle": 256,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [2661.75, 2596.12, 468.562, 686.438, 695.625]
    },
    {
     "len_haystack": 2048,
     "len_needle": 256,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [2571.19, 2256.19, 307.125, 452.812, 641.812]
    },
    {
     "len_haystack": 2049,
     "len_needle": 257,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [2760.19, 2371.69, 462, 698.25, 2531.81]
    },
    {
     "len_haystack": 2049,
     "len_needle": 257,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [2719.5, 2115.75, 266.438, 421.312, 2089.5]
    },
    {
     "len_haystack": 2049,
     "len_needle": 256,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [2639.44, 2161.69, 519.75, 759.938, 612.938]
    },
    {
     "len_haystack": 2049,
     "len_needle": 256,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [2745.75, 1757.44, 336, 498.75, 578.812]
    },
    {
     "len_haystack": 2049,
     "len_needle": 256,
     "align_haystack": 4081,
     "align_needle": 5,
     "fail": 1,
     "timings": [2744.44, 1779.75, 341.25, 531.562, 593.25]
    },
    {
     "len_haystack": 4096,
     "len_needle": 4,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [4725, 6314.44, 330.75, 433.125, 3085.69]
    },
    {
     "len_haystack": 4096,
     "len_needle": 4,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [4613.44, 5929.88, 299.25, 418.688, 3051.56]
    },
    {
     "len_haystack": 4097,
     "len_needle": 5,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [4641, 5223.75, 366.188, 500.062, 2564.62]
    },
    {
     "len_haystack": 4097,
     "len_needle": 5,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [4617.38, 5162.06, 346.5, 492.188, 2489.81]
    },
    {
     "len_haystack": 4097,
     "len_needle": 4,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [4982.25, 1347.94, 324.188, 446.25, 2955.75]
    },
    {
     "len_haystack": 4097,
     "len_needle": 4,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [4950.75, 1300.69, 311.062, 443.625, 2937.38]
    },
    {
     "len_haystack": 4097,
     "len_needle": 4,
     "align_haystack": 4081,
     "align_needle": 5,
     "fail": 1,
     "timings": [4949.44, 1278.38, 307.125, 442.312, 2937.38]
    },
    {
     "len_haystack": 4096,
     "len_needle": 8,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [4328.62, 13560.8, 362.25, 517.125, 1861.12]
    },
    {
     "len_haystack": 4096,
     "len_needle": 8,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [4318.12, 13503, 345.188, 507.938, 1807.31]
    },
    {
     "len_haystack": 4097,
     "len_needle": 9,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [5302.5, 13621.1, 455.438, 669.375, 1655.06]
    },
    {
     "len_haystack": 4097,
     "len_needle": 9,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [5261.81, 13571.2, 441, 644.438, 1605.19]
    },
    {
     "len_haystack": 4097,
     "len_needle": 8,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [4713.19, 13632.9, 381.938, 576.188, 1744.31]
    },
    {
     "len_haystack": 4097,
     "len_needle": 8,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [5238.19, 13506.9, 364.875, 544.688, 1666.88]
    },
    {
     "len_haystack": 4097,
     "len_needle": 8,
     "align_haystack": 4081,
     "align_needle": 5,
     "fail": 1,
     "timings": [4672.5, 13562.1, 364.875, 555.188, 1687.88]
    },
    {
     "len_haystack": 4096,
     "len_needle": 16,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [5256.56, 12995.1, 459.375, 742.875, 1137.94]
    },
    {
     "len_haystack": 4096,
     "len_needle": 16,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [5248.69, 12949.1, 401.625, 693, 1093.31]
    },
    {
     "len_haystack": 4097,
     "len_needle": 17,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [5129.25, 13500.4, 374.062, 572.25, 1263.94]
    },
    {
     "len_haystack": 4097,
     "len_needle": 17,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [5101.69, 13984.7, 336, 544.688, 1224.56]
    },
    {
     "len_haystack": 4097,
     "len_needle": 16,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [4797.19, 13097.4, 441, 657.562, 1068.38]
    },
    {
     "len_haystack": 4097,
     "len_needle": 16,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [4786.69, 13463.6, 388.5, 632.625, 1027.69]
    },
    {
     "len_haystack": 4097,
     "len_needle": 16,
     "align_haystack": 4081,
     "align_needle": 5,
     "fail": 1,
     "timings": [4795.88, 13101.4, 388.5, 633.938, 1035.56]
    },
    {
     "len_haystack": 4096,
     "len_needle": 32,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [6653.06, 3382.31, 446.25, 801.938, 1010.62]
    },
    {
     "len_haystack": 4096,
     "len_needle": 32,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [6646.5, 3252.38, 389.812, 735, 964.688]
    },
    {
     "len_haystack": 4097,
     "len_needle": 33,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [4950.75, 3411.19, 437.062, 716.625, 669.375]
    },
    {
     "len_haystack": 4097,
     "len_needle": 33,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [4933.69, 3307.5, 383.25, 681.188, 632.625]
    },
    {
     "len_haystack": 4097,
     "len_needle": 32,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [6960.19, 2879.62, 418.688, 736.312, 765.188]
    },
    {
     "len_haystack": 4097,
     "len_needle": 32,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [4765.69, 2787.75, 379.312, 687.75, 732.375]
    },
    {
     "len_haystack": 4097,
     "len_needle": 32,
     "align_haystack": 4081,
     "align_needle": 5,
     "fail": 1,
     "timings": [7062.56, 2791.69, 385.875, 686.438, 736.312]
    },
    {
     "len_haystack": 4096,
     "len_needle": 64,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [4953.38, 2568.56, 469.875, 862.312, 733.688]
    },
    {
     "len_haystack": 4096,
     "len_needle": 64,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [4858.88, 2462.25, 380.625, 738.938, 699.562]
    },
    {
     "len_haystack": 4097,
     "len_needle": 65,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [5198.81, 2243.06, 446.25, 769.125, 627.375]
    },
    {
     "len_haystack": 4097,
     "len_needle": 65,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [5159.44, 2086.88, 343.875, 637.875, 601.125]
    },
    {
     "len_haystack": 4097,
     "len_needle": 64,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [5600.44, 3003, 494.812, 828.188, 883.312]
    },
    {
     "len_haystack": 4097,
     "len_needle": 64,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [5028.19, 2891.44, 385.875, 702.188, 846.562]
    },
    {
     "len_haystack": 4097,
     "len_needle": 64,
     "align_haystack": 4081,
     "align_needle": 5,
     "fail": 1,
     "timings": [7355.25, 2894.06, 400.312, 710.062, 857.062]
    },
    {
     "len_haystack": 4096,
     "len_needle": 128,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [5152.88, 2460.94, 408.188, 893.812, 651]
    },
    {
     "len_haystack": 4096,
     "len_needle": 128,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [4994.06, 2156.44, 299.25, 715.312, 614.25]
    },
    {
     "len_haystack": 4097,
     "len_needle": 129,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [6735.75, 2270.62, 509.25, 1010.62, 962.062]
    },
    {
     "len_haystack": 4097,
     "len_needle": 129,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [6743.62, 2040.94, 375.375, 834.75, 934.5]
    },
    {
     "len_haystack": 4097,
     "len_needle": 128,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [5046.56, 2695.88, 535.5, 1089.38, 832.125]
    },
    {
     "len_haystack": 4097,
     "len_needle": 128,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [4979.62, 2487.19, 447.562, 931.875, 1038.19]
    },
    {
     "len_haystack": 4097,
     "len_needle": 128,
     "align_haystack": 4081,
     "align_needle": 5,
     "fail": 1,
     "timings": [4950.75, 2451.75, 454.125, 947.625, 792.75]
    },
    {
     "len_haystack": 4096,
     "len_needle": 256,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [5164.69, 3182.81, 847.875, 1367.62, 1009.31]
    },
    {
     "len_haystack": 4096,
     "len_needle": 256,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [5131.88, 2930.81, 657.562, 1101.19, 998.812]
    },
    {
     "len_haystack": 4097,
     "len_needle": 257,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [5467.88, 3243.19, 913.5, 1435.88, 3507]
    },
    {
     "len_haystack": 4097,
     "len_needle": 257,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [5483.62, 2831.06, 700.875, 1145.81, 2929.5]
    },
    {
     "len_haystack": 4097,
     "len_needle": 256,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [5743.5, 3323.25, 903, 1509.38, 1043.44]
    },
    {
     "len_haystack": 4097,
     "len_needle": 256,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [5697.56, 3059.44, 724.5, 1203.56, 966]
    },
    {
     "len_haystack": 4097,
     "len_needle": 256,
     "align_haystack": 4081,
     "align_needle": 5,
     "fail": 1,
     "timings": [5687.06, 3542.44, 702.188, 1228.5, 980.438]
    },
    {
     "len_haystack": 8192,
     "len_needle": 4,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [9736.12, 2858.62, 754.688, 1015.88, 5582.06]
    },
    {
     "len_haystack": 8192,
     "len_needle": 4,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [9629.81, 2814, 757.312, 1032.94, 5571.56]
    },
    {
     "len_haystack": 8193,
     "len_needle": 5,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [8940.75, 12302.1, 672, 918.75, 5026.88]
    },
    {
     "len_haystack": 8193,
     "len_needle": 5,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [8893.5, 12199.7, 664.125, 921.375, 5055.75]
    },
    {
     "len_haystack": 8193,
     "len_needle": 4,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [10586.6, 10843.9, 649.688, 879.375, 5735.62]
    },
    {
     "len_haystack": 8193,
     "len_needle": 4,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [9952.69, 10759.9, 643.125, 859.688, 5723.81]
    },
    {
     "len_haystack": 8193,
     "len_needle": 4,
     "align_haystack": 4081,
     "align_needle": 5,
     "fail": 1,
     "timings": [9967.12, 10754.6, 672, 849.188, 5864.25]
    },
    {
     "len_haystack": 8192,
     "len_needle": 8,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [10433.1, 27020.4, 792.75, 1025.06, 3143.44]
    },
    {
     "len_haystack": 8192,
     "len_needle": 8,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [10402.9, 26919.4, 766.5, 1274.44, 3324.56]
    },
    {
     "len_haystack": 8193,
     "len_needle": 9,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [9171.75, 9566.81, 706.125, 947.625, 2832.38]
    },
    {
     "len_haystack": 8193,
     "len_needle": 9,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [9133.69, 9484.12, 691.688, 942.375, 2785.12]
    },
    {
     "len_haystack": 8193,
     "len_needle": 8,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [9149.44, 7570.5, 1093.31, 842.625, 3235.31]
    },
    {
     "len_haystack": 8193,
     "len_needle": 8,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [9704.62, 7511.44, 685.125, 829.5, 3213]
    },
    {
     "len_haystack": 8193,
     "len_needle": 8,
     "align_haystack": 4081,
     "align_needle": 5,
     "fail": 1,
     "timings": [9266.25, 7525.88, 702.188, 819, 3171]
    },
    {
     "len_haystack": 8192,
     "len_needle": 16,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [10057.7, 27328.9, 838.688, 1183.88, 1796.81]
    },
    {
     "len_haystack": 8192,
     "len_needle": 16,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [10015.7, 27185.8, 824.25, 1157.62, 1761.38]
    },
    {
     "len_haystack": 8193,
     "len_needle": 17,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [8875.12, 26949.6, 651, 887.25, 1834.88]
    },
    {
     "len_haystack": 8193,
     "len_needle": 17,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [8829.19, 26872.1, 589.312, 849.188, 1795.5]
    },
    {
     "len_haystack": 8193,
     "len_needle": 16,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [9906.75, 27322.3, 669.375, 913.5, 1753.5]
    },
    {
     "len_haystack": 8193,
     "len_needle": 16,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [9889.69, 27275.1, 631.312, 882, 1714.12]
    },
    {
     "len_haystack": 8193,
     "len_needle": 16,
     "align_haystack": 4081,
     "align_needle": 5,
     "fail": 1,
     "timings": [9873.94, 27305.2, 635.25, 903, 1714.12]
    },
    {
     "len_haystack": 8192,
     "len_needle": 32,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [10472.4, 6156.94, 714, 1617, 1413.56]
    },
    {
     "len_haystack": 8192,
     "len_needle": 32,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [10408.1, 5986.31, 658.875, 1022.44, 1374.19]
    },
    {
     "len_haystack": 8193,
     "len_needle": 33,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [10501.3, 5122.69, 882, 1396.5, 1383.38]
    },
    {
     "len_haystack": 8193,
     "len_needle": 33,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [10855.7, 4967.81, 817.688, 1326.94, 1344]
    },
    {
     "len_haystack": 8193,
     "len_needle": 32,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [8949.94, 5550.56, 654.938, 1017.19, 1361.06]
    },
    {
     "len_haystack": 8193,
     "len_needle": 32,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [8897.44, 5440.31, 586.688, 962.062, 1302]
    },
    {
     "len_haystack": 8193,
     "len_needle": 32,
     "align_haystack": 4081,
     "align_needle": 5,
     "fail": 1,
     "timings": [8921.06, 5429.81, 588, 969.938, 1302]
    },
    {
     "len_haystack": 8192,
     "len_needle": 64,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [10347.8, 3786.56, 887.25, 1481.81, 1076.25]
    },
    {
     "len_haystack": 8192,
     "len_needle": 64,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [10303.1, 3621.19, 798, 1350.56, 1040.81]
    },
    {
     "len_haystack": 8193,
     "len_needle": 65,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [10744.1, 3808.88, 963.375, 1610.44, 1413.56]
    },
    {
     "len_haystack": 8193,
     "len_needle": 65,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [10673.2, 3654, 861, 1497.56, 1365]
    },
    {
     "len_haystack": 8193,
     "len_needle": 64,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [8982.75, 3529.31, 679.875, 1130.06, 1086.75]
    },
    {
     "len_haystack": 8193,
     "len_needle": 64,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [9070.69, 3348.19, 560.438, 956.812, 1056.56]
    },
    {
     "len_haystack": 8193,
     "len_needle": 64,
     "align_haystack": 4081,
     "align_needle": 5,
     "fail": 1,
     "timings": [9116.62, 3336.38, 552.562, 956.812, 1052.62]
    },
    {
     "len_haystack": 8192,
     "len_needle": 128,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [13419, 4931.06, 788.812, 1741.69, 1262.62]
    },
    {
     "len_haystack": 8192,
     "len_needle": 128,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [13686.8, 4641, 687.75, 1598.62, 1232.44]
    },
    {
     "len_haystack": 8193,
     "len_needle": 129,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [10864.9, 4202.62, 795.375, 1746.94, 1271.81]
    },
    {
     "len_haystack": 8193,
     "len_needle": 129,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [10838.6, 3957.19, 668.062, 1576.31, 1239]
    },
    {
     "len_haystack": 8193,
     "len_needle": 128,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [9954, 4299.75, 770.438, 1706.25, 1048.69]
    },
    {
     "len_haystack": 8193,
     "len_needle": 128,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [9646.88, 4062.19, 670.688, 1559.25, 1004.06]
    },
    {
     "len_haystack": 8193,
     "len_needle": 128,
     "align_haystack": 4081,
     "align_needle": 5,
     "fail": 1,
     "timings": [9646.88, 4011, 662.812, 1538.25, 989.625]
    },
    {
     "len_haystack": 8192,
     "len_needle": 256,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [11619.6, 4744.69, 1491, 2487.19, 1664.25]
    },
    {
     "len_haystack": 8192,
     "len_needle": 256,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [11657.6, 4340.44, 1324.31, 2215.5, 1619.62]
    },
    {
     "len_haystack": 8193,
     "len_needle": 257,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [11571, 5601.75, 1367.62, 2207.62, 5981.06]
    },
    {
     "len_haystack": 8193,
     "len_needle": 257,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [11064.4, 5151.56, 1176, 1892.62, 5309.06]
    },
    {
     "len_haystack": 8193,
     "len_needle": 256,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [11202.2, 6391.88, 1539.56, 2474.06, 1212.75]
    },
    {
     "len_haystack": 8193,
     "len_needle": 256,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [11216.6, 6074.25, 1341.38, 2190.56, 1149.75]
    },
    {
     "len_haystack": 8193,
     "len_needle": 256,
     "align_haystack": 4081,
     "align_needle": 5,
     "fail": 1,
     "timings": [11214, 6057.19, 1371.56, 2227.31, 1153.69]
    },
    {
     "len_haystack": 16384,
     "len_needle": 4,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [25730.2, 9111.38, 1431.94, 1907.06, 13109.2]
    },
    {
     "len_haystack": 16384,
     "len_needle": 4,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [25725, 9057.56, 1408.31, 1921.5, 13092.2]
    },
    {
     "len_haystack": 16385,
     "len_needle": 5,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [26631.9, 11636.6, 1296.75, 1790.25, 9846.38]
    },
    {
     "len_haystack": 16385,
     "len_needle": 5,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [26043.9, 11538.2, 1298.06, 1824.38, 9915.94]
    },
    {
     "len_haystack": 16385,
     "len_needle": 4,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [15425.8, 20362.1, 1365, 1790.25, 13428.2]
    },
    {
     "len_haystack": 16385,
     "len_needle": 4,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [15424.5, 20006.4, 1338.75, 1765.31, 13156.5]
    },
    {
     "len_haystack": 16385,
     "len_needle": 4,
     "align_haystack": 4081,
     "align_needle": 5,
     "fail": 1,
     "timings": [15416.6, 19904.1, 1363.69, 1820.44, 13621.1]
    },
    {
     "len_haystack": 16384,
     "len_needle": 8,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [20779.5, 3589.69, 1370.25, 1766.62, 5956.12]
    },
    {
     "len_haystack": 16384,
     "len_needle": 8,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [20767.7, 3521.44, 1320.38, 1761.38, 5799.94]
    },
    {
     "len_haystack": 16385,
     "len_needle": 9,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [30182.2, 55029.2, 1484.44, 1933.31, 5528.25]
    },
    {
     "len_haystack": 16385,
     "len_needle": 9,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [19317.4, 54187.9, 1452.94, 1893.94, 5386.5]
    },
    {
     "len_haystack": 16385,
     "len_needle": 8,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [20733.6, 29022, 1660.31, 2157.75, 6279]
    },
    {
     "len_haystack": 16385,
     "len_needle": 8,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [20723.1, 28476, 1627.5, 2132.81, 6219.94]
    },
    {
     "len_haystack": 16385,
     "len_needle": 8,
     "align_haystack": 4081,
     "align_needle": 5,
     "fail": 1,
     "timings": [20724.4, 28498.3, 1652.44, 2136.75, 6225.19]
    },
    {
     "len_haystack": 16384,
     "len_needle": 16,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [26570.2, 1962.19, 1631.44, 2201.06, 3772.12]
    },
    {
     "len_haystack": 16384,
     "len_needle": 16,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [30414.6, 1914.94, 1602.56, 2232.56, 3715.69]
    },
    {
     "len_haystack": 16385,
     "len_needle": 17,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [20006.4, 1979.25, 2027.81, 2668.31, 4119.94]
    },
    {
     "len_haystack": 16385,
     "len_needle": 17,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [20162.6, 1943.81, 1979.25, 2682.75, 4060.88]
    },
    {
     "len_haystack": 16385,
     "len_needle": 16,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [21158.8, 1933.31, 1589.44, 2185.31, 3033.19]
    },
    {
     "len_haystack": 16385,
     "len_needle": 16,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [21269.1, 1916.25, 1526.44, 2128.88, 2947.88]
    },
    {
     "len_haystack": 16385,
     "len_needle": 16,
     "align_haystack": 4081,
     "align_needle": 5,
     "fail": 1,
     "timings": [21177.2, 1920.19, 1540.88, 2147.25, 2898]
    },
    {
     "len_haystack": 16384,
     "len_needle": 32,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [15792, 11500.1, 1346.62, 1900.5, 2975.44]
    },
    {
     "len_haystack": 16384,
     "len_needle": 32,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [16343.2, 11013.2, 1295.44, 1903.12, 2903.25]
    },
    {
     "len_haystack": 16385,
     "len_needle": 33,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [22777.1, 12294.2, 2471.44, 3542.44, 2845.5]
    },
    {
     "len_haystack": 16385,
     "len_needle": 33,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [22420.1, 12021.2, 2376.94, 3537.19, 2752.31]
    },
    {
     "len_haystack": 16385,
     "len_needle": 32,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [21002.6, 12172.1, 2176.12, 3504.38, 3605.44]
    },
    {
     "len_haystack": 16385,
     "len_needle": 32,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [20368.7, 11963.4, 2080.31, 3396.75, 3542.44]
    },
    {
     "len_haystack": 16385,
     "len_needle": 32,
     "align_haystack": 4081,
     "align_needle": 5,
     "fail": 1,
     "timings": [20314.9, 11977.9, 2121, 3391.5, 3563.44]
    },
    {
     "len_haystack": 16384,
     "len_needle": 64,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [21257.2, 7927.5, 1737.75, 2821.88, 2880.94]
    },
    {
     "len_haystack": 16384,
     "len_needle": 64,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [21212.6, 7679.44, 1618.31, 2686.69, 2820.56]
    },
    {
     "len_haystack": 16385,
     "len_needle": 65,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [26551.9, 8558.81, 1328.25, 2265.38, 2726.06]
    },
    {
     "len_haystack": 16385,
     "len_needle": 65,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [26994.2, 8271.38, 1239, 2105.25, 2667]
    },
    {
     "len_haystack": 16385,
     "len_needle": 64,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [19549.7, 8528.62, 1578.94, 2457, 3058.12]
    },
    {
     "len_haystack": 16385,
     "len_needle": 64,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [30411.9, 8289.75, 1441.12, 2277.19, 2772]
    },
    {
     "len_haystack": 16385,
     "len_needle": 64,
     "align_haystack": 4081,
     "align_needle": 5,
     "fail": 1,
     "timings": [19460.4, 8359.31, 1437.19, 2328.38, 2775.94]
    },
    {
     "len_haystack": 16384,
     "len_needle": 128,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [19212.4, 6777.75, 1326.94, 3165.75, 2943.94]
    },
    {
     "len_haystack": 16384,
     "len_needle": 128,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [19243.9, 6533.62, 1239, 2996.44, 2920.31]
    },
    {
     "len_haystack": 16385,
     "len_needle": 129,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [23130.2, 9738.75, 1848, 3835.12, 1895.25]
    },
    {
     "len_haystack": 16385,
     "len_needle": 129,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [22392.6, 9425.06, 1719.38, 3592.31, 1812.56]
    },
    {
     "len_haystack": 16385,
     "len_needle": 128,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [31014.4, 9582.56, 1896.56, 3203.81, 1859.81]
    },
    {
     "len_haystack": 16385,
     "len_needle": 128,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [19913.2, 9250.5, 1307.25, 3052.88, 1783.69]
    },
    {
     "len_haystack": 16385,
     "len_needle": 128,
     "align_haystack": 4081,
     "align_needle": 5,
     "fail": 1,
     "timings": [20582.6, 9312.19, 1241.62, 3038.44, 1790.25]
    },
    {
     "len_haystack": 16384,
     "len_needle": 256,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [20628.6, 6760.69, 2695.88, 4298.44, 2967.56]
    },
    {
     "len_haystack": 16384,
     "len_needle": 256,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [21336, 6294.75, 2523.94, 4039.88, 2878.31]
    },
    {
     "len_haystack": 16385,
     "len_needle": 257,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [19186.1, 7041.56, 2793, 4379.81, 7851.38]
    },
    {
     "len_haystack": 16385,
     "len_needle": 257,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [19170.4, 6783, 2543.62, 4032, 7930.12]
    },
    {
     "len_haystack": 16385,
     "len_needle": 256,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [23283.8, 7071.75, 2488.5, 3873.19, 2795.62]
    },
    {
     "len_haystack": 16385,
     "len_needle": 256,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [23391.4, 6693.75, 2258.81, 3576.56, 2766.75]
    },
    {
     "len_haystack": 16385,
     "len_needle": 256,
     "align_haystack": 4081,
     "align_needle": 5,
     "fail": 1,
     "timings": [22640.6, 6710.81, 2199.75, 4064.81, 2748.38]
    },
    {
     "len_haystack": 32768,
     "len_needle": 4,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [39632.2, 110709, 3234, 4206.56, 23963.6]
    },
    {
     "len_haystack": 32768,
     "len_needle": 4,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [39890.8, 110250, 3130.31, 4228.88, 24109.3]
    },
    {
     "len_haystack": 32769,
     "len_needle": 5,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [52085.2, 2340.19, 2761.5, 3552.94, 18522]
    },
    {
     "len_haystack": 32769,
     "len_needle": 5,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [52549.9, 2345.44, 2727.38, 3615.94, 19018.1]
    },
    {
     "len_haystack": 32769,
     "len_needle": 4,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [39382.9, 3379.69, 3411.19, 4713.19, 23890.1]
    },
    {
     "len_haystack": 32769,
     "len_needle": 4,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [39792.4, 3328.5, 3349.5, 4344.38, 24980.8]
    },
    {
     "len_haystack": 32769,
     "len_needle": 4,
     "align_haystack": 4081,
     "align_needle": 5,
     "fail": 1,
     "timings": [39172.9, 3224.81, 3417.75, 4492.69, 24223.5]
    },
    {
     "len_haystack": 32768,
     "len_needle": 8,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [29466.9, 56483.4, 2404.5, 3005.62, 11408.2]
    },
    {
     "len_haystack": 32768,
     "len_needle": 8,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [29419.7, 56643.6, 2378.25, 3161.81, 11477.8]
    },
    {
     "len_haystack": 32769,
     "len_needle": 9,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [37244.8, 40992, 2601.38, 3302.25, 15039.9]
    },
    {
     "len_haystack": 32769,
     "len_needle": 9,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [36525.6, 40905.4, 2596.12, 3261.56, 14954.6]
    },
    {
     "len_haystack": 32769,
     "len_needle": 8,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [41496, 31139.1, 3013.5, 3768.19, 13748.4]
    },
    {
     "len_haystack": 32769,
     "len_needle": 8,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [41523.6, 31078.7, 2934.75, 3815.44, 14072.6]
    },
    {
     "len_haystack": 32769,
     "len_needle": 8,
     "align_haystack": 4081,
     "align_needle": 5,
     "fail": 1,
     "timings": [41528.8, 30921.2, 2993.81, 3749.81, 13653.9]
    },
    {
     "len_haystack": 32768,
     "len_needle": 16,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [43308.6, 109443, 4453.31, 7111.12, 8804.25]
    },
    {
     "len_haystack": 32768,
     "len_needle": 16,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [43296.8, 109797, 4392.94, 7275.19, 8697.94]
    },
    {
     "len_haystack": 32769,
     "len_needle": 17,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [44316.6, 6575.62, 4811.62, 7087.5, 9123.19]
    },
    {
     "len_haystack": 32769,
     "len_needle": 17,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [43774.5, 6511.31, 4769.62, 6729.19, 9019.5]
    },
    {
     "len_haystack": 32769,
     "len_needle": 16,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [41171.8, 5398.31, 4265.62, 7487.81, 8914.5]
    },
    {
     "len_haystack": 32769,
     "len_needle": 16,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [40434.2, 5313, 4173.75, 6898.5, 8401.31]
    },
    {
     "len_haystack": 32769,
     "len_needle": 16,
     "align_haystack": 4081,
     "align_needle": 5,
     "fail": 1,
     "timings": [62202, 5260.5, 4203.94, 6882.75, 8459.06]
    },
    {
     "len_haystack": 32768,
     "len_needle": 32,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [33535.7, 25904.8, 3093.56, 4530.75, 6895.88]
    },
    {
     "len_haystack": 32768,
     "len_needle": 32,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [34072.5, 25776.2, 3041.06, 4332.56, 6910.31]
    },
    {
     "len_haystack": 32769,
     "len_needle": 33,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [29991.9, 26205.4, 2615.81, 3521.44, 6097.88]
    },
    {
     "len_haystack": 32769,
     "len_needle": 33,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [29788.5, 25648.9, 2371.69, 3479.44, 5973.19]
    },
    {
     "len_haystack": 32769,
     "len_needle": 32,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [33161.6, 24533.2, 2369.06, 3520.12, 6527.06]
    },
    {
     "len_haystack": 32769,
     "len_needle": 32,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [33149.8, 24230.1, 2342.81, 3487.31, 6418.12]
    },
    {
     "len_haystack": 32769,
     "len_needle": 32,
     "align_haystack": 4081,
     "align_needle": 5,
     "fail": 1,
     "timings": [33157.7, 24224.8, 2362.5, 3503.06, 6432.56]
    },
    {
     "len_haystack": 32768,
     "len_needle": 64,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [41509.1, 20073.4, 4137, 7004.81, 4599]
    },
    {
     "len_haystack": 32768,
     "len_needle": 64,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [41040.6, 19594.3, 3955.88, 6200.25, 4497.94]
    },
    {
     "len_haystack": 32769,
     "len_needle": 65,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [37755.4, 18019.3, 2911.12, 4772.25, 5082]
    },
    {
     "len_haystack": 32769,
     "len_needle": 65,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [38049.4, 17789.6, 2765.44, 4675.12, 4975.69]
    },
    {
     "len_haystack": 32769,
     "len_needle": 64,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [55345.5, 22803.4, 3749.81, 5840.62, 5104.31]
    },
    {
     "len_haystack": 32769,
     "len_needle": 64,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [54997.7, 22462.1, 3573.94, 5744.81, 4990.12]
    },
    {
     "len_haystack": 32769,
     "len_needle": 64,
     "align_haystack": 4081,
     "align_needle": 5,
     "fail": 1,
     "timings": [54198.4, 22533, 3570, 5868.19, 5033.44]
    },
    {
     "len_haystack": 32768,
     "len_needle": 128,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [36701.4, 21627.4, 2479.31, 6132, 5612.25]
    },
    {
     "len_haystack": 32768,
     "len_needle": 128,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [37149, 21973.9, 2373, 6150.38, 5583.38]
    },
    {
     "len_haystack": 32769,
     "len_needle": 129,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [35749.9, 19178.2, 3110.62, 7479.94, 7889.44]
    },
    {
     "len_haystack": 32769,
     "len_needle": 129,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [36697.5, 19116.6, 3045, 7082.25, 7865.81]
    },
    {
     "len_haystack": 32769,
     "len_needle": 128,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [40889.6, 14858.8, 2487.19, 6218.62, 4375.88]
    },
    {
     "len_haystack": 32769,
     "len_needle": 128,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [40099.5, 14251.1, 2353.31, 5836.69, 3665.81]
    },
    {
     "len_haystack": 32769,
     "len_needle": 128,
     "align_haystack": 4081,
     "align_needle": 5,
     "fail": 1,
     "timings": [40081.1, 14343, 2354.62, 5859, 3660.56]
    },
    {
     "len_haystack": 32768,
     "len_needle": 256,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [46135.7, 16009.9, 5457.38, 8745.19, 5314.31]
    },
    {
     "len_haystack": 32768,
     "len_needle": 256,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [45954.6, 15635.8, 5425.88, 8607.38, 4843.12]
    },
    {
     "len_haystack": 32769,
     "len_needle": 257,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [47553.2, 16500.8, 5471.81, 8573.25, 16918.1]
    },
    {
     "len_haystack": 32769,
     "len_needle": 257,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [47099.1, 15994.1, 5255.25, 8255.62, 16254]
    },
    {
     "len_haystack": 32769,
     "len_needle": 256,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [41645.6, 16133.2, 5339.25, 8279.25, 3909.94]
    },
    {
     "len_haystack": 32769,
     "len_needle": 256,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [42022.3, 16352.4, 5440.31, 8149.31, 3807.56]
    },
    {
     "len_haystack": 32769,
     "len_needle": 256,
     "align_haystack": 4081,
     "align_needle": 5,
     "fail": 1,
     "timings": [42200.8, 15900.9, 5087.25, 8154.56, 3839.06]
    },
    {
     "len_haystack": 65536,
     "len_needle": 4,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [82162.5, 20148.2, 6557.25, 8682.19, 47705.4]
    },
    {
     "len_haystack": 65536,
     "len_needle": 4,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [81048.2, 20620.7, 6420.75, 8913.19, 50002.3]
    },
    {
     "len_haystack": 65537,
     "len_needle": 5,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [103922, 20577.4, 6049.31, 8312.06, 40595.6]
    },
    {
     "len_haystack": 65537,
     "len_needle": 5,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [103523, 20419.9, 5914.12, 8221.5, 40141.5]
    },
    {
     "len_haystack": 65537,
     "len_needle": 4,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [72939.6, 19096.9, 5645.06, 7729.31, 50474.8]
    },
    {
     "len_haystack": 65537,
     "len_needle": 4,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [73303.1, 19182.2, 5555.81, 7329, 50537.8]
    },
    {
     "len_haystack": 65537,
     "len_needle": 4,
     "align_haystack": 4081,
     "align_needle": 5,
     "fail": 1,
     "timings": [73129.9, 19144.1, 5589.94, 7342.12, 51544.5]
    },
    {
     "len_haystack": 65536,
     "len_needle": 8,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [83667.9, 201838, 6554.62, 8581.12, 25870.7]
    },
    {
     "len_haystack": 65536,
     "len_needle": 8,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [83664, 202361, 6465.38, 8864.62, 26042.6]
    },
    {
     "len_haystack": 65537,
     "len_needle": 9,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [75955.7, 48055.9, 5822.25, 7730.62, 24205.1]
    },
    {
     "len_haystack": 65537,
     "len_needle": 9,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [76988.6, 46869.4, 5775, 7642.69, 23946.6]
    },
    {
     "len_haystack": 65537,
     "len_needle": 8,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [79880.1, 218451, 5742.19, 7218.75, 28633.5]
    },
    {
     "len_haystack": 65537,
     "len_needle": 8,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [79876.1, 219008, 5752.69, 7243.69, 29113.9]
    },
    {
     "len_haystack": 65537,
     "len_needle": 8,
     "align_haystack": 4081,
     "align_needle": 5,
     "fail": 1,
     "timings": [103162, 219521, 5773.69, 7206.94, 28518]
    },
    {
     "len_haystack": 65536,
     "len_needle": 16,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [68078.1, 226715, 4630.5, 5874.75, 18595.5]
    },
    {
     "len_haystack": 65536,
     "len_needle": 16,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [69709.5, 226400, 4658.06, 5929.88, 19056.2]
    },
    {
     "len_haystack": 65537,
     "len_needle": 17,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [89131.9, 6658.31, 9755.81, 12459.6, 15515.1]
    },
    {
     "len_haystack": 65537,
     "len_needle": 17,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [89125.3, 6500.81, 9573.38, 12282.4, 15354.9]
    },
    {
     "len_haystack": 65537,
     "len_needle": 16,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [78862.9, 214053, 5971.88, 8098.12, 19943.4]
    },
    {
     "len_haystack": 65537,
     "len_needle": 16,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [120976, 214708, 5857.69, 7955.06, 19795.1]
    },
    {
     "len_haystack": 65537,
     "len_needle": 16,
     "align_haystack": 4081,
     "align_needle": 5,
     "fail": 1,
     "timings": [78083.2, 212797, 5809.12, 8033.81, 19797.8]
    },
    {
     "len_haystack": 65536,
     "len_needle": 32,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [86589.6, 46265.6, 5059.69, 7321.12, 9278.06]
    },
    {
     "len_haystack": 65536,
     "len_needle": 32,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [87115.9, 45698.6, 5305.12, 7086.19, 9099.56]
    },
    {
     "len_haystack": 65537,
     "len_needle": 33,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [117671, 44270.6, 5580.75, 8061.38, 11846.6]
    },
    {
     "len_haystack": 65537,
     "len_needle": 33,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [84049.9, 44109.2, 5435.06, 7944.56, 11676]
    },
    {
     "len_haystack": 65537,
     "len_needle": 32,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [60739.9, 43949.1, 4849.69, 6844.69, 11283.6]
    },
    {
     "len_haystack": 65537,
     "len_needle": 32,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [60217.5, 43141.9, 4809, 7025.81, 11110.3]
    },
    {
     "len_haystack": 65537,
     "len_needle": 32,
     "align_haystack": 4081,
     "align_needle": 5,
     "fail": 1,
     "timings": [60581.1, 43098.6, 4761.75, 7066.5, 11119.5]
    },
    {
     "len_haystack": 65536,
     "len_needle": 64,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [87988.7, 42925.3, 7041.56, 10938.4, 9326.62]
    },
    {
     "len_haystack": 65536,
     "len_needle": 64,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [86774.6, 42261.2, 6853.88, 10757.2, 9220.31]
    },
    {
     "len_haystack": 65537,
     "len_needle": 65,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [75159, 32295.4, 6307.88, 10136.4, 11141.8]
    },
    {
     "len_haystack": 65537,
     "len_needle": 65,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [76068.6, 32097.2, 6124.12, 9967.12, 11606.4]
    },
    {
     "len_haystack": 65537,
     "len_needle": 64,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [80124.2, 29384.2, 5625.38, 9967.12, 12777.2]
    },
    {
     "len_haystack": 65537,
     "len_needle": 64,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [79051.9, 28927.5, 5361.56, 9049.69, 12586.9]
    },
    {
     "len_haystack": 65537,
     "len_needle": 64,
     "align_haystack": 4081,
     "align_needle": 5,
     "fail": 1,
     "timings": [80874.9, 29006.2, 5381.25, 8990.62, 12615.8]
    },
    {
     "len_haystack": 65536,
     "len_needle": 128,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [82497.2, 23859.9, 6302.62, 14319.4, 8968.31]
    },
    {
     "len_haystack": 65536,
     "len_needle": 128,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [82427.6, 23160.4, 6095.25, 14256.4, 8820]
    },
    {
     "len_haystack": 65537,
     "len_needle": 129,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [97828.5, 27229.1, 7024.5, 15351, 10154.8]
    },
    {
     "len_haystack": 65537,
     "len_needle": 129,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [90045.4, 26502, 6751.5, 15088.5, 9999.94]
    },
    {
     "len_haystack": 65537,
     "len_needle": 128,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [88126.5, 17468.1, 5524.31, 13220.8, 6835.5]
    },
    {
     "len_haystack": 65537,
     "len_needle": 128,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [89034.8, 16785.6, 5467.88, 13114.5, 6187.12]
    },
    {
     "len_haystack": 65537,
     "len_needle": 128,
     "align_haystack": 4081,
     "align_needle": 5,
     "fail": 1,
     "timings": [88694.8, 17201.6, 5431.12, 13065.9, 6214.69]
    },
    {
     "len_haystack": 65536,
     "len_needle": 256,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [116133, 20901.6, 13588.3, 20692.9, 6658.31]
    },
    {
     "len_haystack": 65536,
     "len_needle": 256,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [116639, 20460.6, 13483.3, 20456.6, 6524.44]
    },
    {
     "len_haystack": 65537,
     "len_needle": 257,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [88294.5, 21070.9, 9291.19, 16240.9, 20045.8]
    },
    {
     "len_haystack": 65537,
     "len_needle": 257,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [88516.3, 21758.6, 9066.75, 15374.6, 19263.6]
    },
    {
     "len_haystack": 65537,
     "len_needle": 256,
     "align_haystack": 1,
     "align_needle": 11,
     "fail": 0,
     "timings": [88411.3, 24576.6, 9282, 15672.6, 9792.56]
    },
    {
     "len_haystack": 65537,
     "len_needle": 256,
     "align_haystack": 14,
     "align_needle": 5,
     "fail": 1,
     "timings": [89176.5, 24279.9, 9200.62, 15659.4, 9696.75]
    },
    {
     "len_haystack": 65537,
     "len_needle": 256,
     "align_haystack": 4081,
     "align_needle": 5,
     "fail": 1,
     "timings": [89466.6, 24140.8, 9229.5, 15568.9, 9678.38]
    },
    {
     "len_haystack": 65536,
     "len_needle": 64,
     "align_haystack": 0,
     "align_needle": 0,
     "fail": 1,
     "desc": "Difficult skiptable(0)",
     "timings": [1.76204e+06, 36026.8, 12487.1, 692710, 683370]
    },
    {
     "len_haystack": 65536,
     "len_needle": 64,
     "align_haystack": 0,
     "align_needle": 0,
     "fail": 1,
     "desc": "Difficult skiptable(1)",
     "timings": [2.21151e+06, 239800, 9684.94, 808613, 790842]
    },
    {
     "len_haystack": 65536,
     "len_needle": 64,
     "align_haystack": 0,
     "align_needle": 0,
     "fail": 1,
     "desc": "Difficult 2-way",
     "timings": [536008, 1.10307e+06, 71507.6, 91894.7, 14564.8]
    },
    {
     "len_haystack": 65536,
     "len_needle": 64,
     "align_haystack": 0,
     "align_needle": 0,
     "fail": 1,
     "desc": "Difficult testing first 2",
     "timings": [637276, 639964, 73943.6, 76635.6, 7570.5]
    },
    {
     "len_haystack": 65536,
     "len_needle": 256,
     "align_haystack": 0,
     "align_needle": 0,
     "fail": 1,
     "desc": "Difficult skiptable(0)",
     "timings": [6.03559e+06, 27452.2, 44753.6, 817474, 804981]
    },
    {
     "len_haystack": 65536,
     "len_needle": 256,
     "align_haystack": 0,
     "align_needle": 0,
     "fail": 1,
     "desc": "Difficult skiptable(1)",
     "timings": [8.99614e+06, 247089, 63677.2, 845799, 818552]
    },
    {
     "len_haystack": 65536,
     "len_needle": 256,
     "align_haystack": 0,
     "align_needle": 0,
     "fail": 1,
     "desc": "Difficult 2-way",
     "timings": [535486, 1.08964e+06, 72246.6, 89264.4, 4852.31]
    },
    {
     "len_haystack": 65536,
     "len_needle": 256,
     "align_haystack": 0,
     "align_needle": 0,
     "fail": 1,
     "desc": "Difficult testing first 2",
     "timings": [633654, 627027, 73416, 53585.4, 3747.19]
    },
    {
     "len_haystack": 65536,
     "len_needle": 1024,
     "align_haystack": 0,
     "align_needle": 0,
     "fail": 1,
     "desc": "Difficult skiptable(0)",
     "timings": [2.96089e+07, 16007.2, 66312.8, 182770, 15939]
    },
    {
     "len_haystack": 65536,
     "len_needle": 1024,
     "align_haystack": 0,
     "align_needle": 0,
     "fail": 1,
     "desc": "Difficult skiptable(1)",
     "timings": [3.32238e+07, 251483, 78528.2, 292634, 205612]
    },
    {
     "len_haystack": 65536,
     "len_needle": 1024,
     "align_haystack": 0,
     "align_needle": 0,
     "fail": 1,
     "desc": "Difficult 2-way",
     "timings": [577714, 1.10454e+06, 73494.8, 92035.1, 1.07043e+06]
    },
    {
     "len_haystack": 65536,
     "len_needle": 1024,
     "align_haystack": 0,
     "align_needle": 0,
     "fail": 1,
     "desc": "Difficult testing first 2",
     "timings": [650986, 638728, 71989.3, 77936.2, 552148]
    }]
  }
 }
}

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2023-09-06  4:15 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-09-04 20:58 [PATCH v2 1/2] strlen: fold strstr() even if the length isn't previously known [PR96601] Hamza Mahfooz
2023-09-04 20:58 ` [PATCH v2 2/2] strlen: call handle_builtin_strlen() from fold_strstr_to_strncmp() Hamza Mahfooz
2023-09-05  5:14 ` [PATCH v2 1/2] strlen: fold strstr() even if the length isn't previously known [PR96601] Jeff Law
2023-09-05  9:04   ` Jakub Jelinek
2023-09-06  4:15   ` Hamza Mahfooz

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).