[Pkg-javascript-commits] [node-arr-diff] 01/07: Import Upstream version 3.0.0

Sruthi Chandran srud-guest at moszumanska.debian.org
Fri Oct 28 05:51:43 UTC 2016


This is an automated email from the git hooks/post-receive script.

srud-guest pushed a commit to branch master
in repository node-arr-diff.

commit b946203140a9d8be717be5ed200a90b5b262446e
Author: Sruthi <srud at disroot.org>
Date:   Thu Oct 27 20:32:11 2016 +0530

    Import Upstream version 3.0.0
---
 .editorconfig                              |   22 +
 .eslintrc.json                             |  275 +++
 .gitattributes                             |   14 +
 .gitignore                                 |   52 +
 .travis.yml                                |    9 +
 .verb.md                                   |   23 +
 LICENSE                                    |   21 +
 README.md                                  |   99 +
 benchmark/README.md                        |   13 +
 benchmark/check.js                         |   22 +
 benchmark/code/array-differ.js             |    3 +
 benchmark/code/current.js                  |    3 +
 benchmark/code/filter.js                   |    8 +
 benchmark/code/for-negative.js             |   16 +
 benchmark/code/for.js                      |   16 +
 benchmark/code/forEach.js                  |   15 +
 benchmark/code/reduce-concat.js            |   12 +
 benchmark/code/reduce-push.js              |   12 +
 benchmark/code/while-indexof.js            |   17 +
 benchmark/code/while-multi-unshift.js      |   25 +
 benchmark/code/while-multi.js              |   25 +
 benchmark/code/while-push.js               |   16 +
 benchmark/code/while-splice-for.js         |   20 +
 benchmark/code/while-splice-pop-flatten.js |   23 +
 benchmark/code/while-splice-pop.js         |   21 +
 benchmark/code/while-splice-recurse.js     |   23 +
 benchmark/code/while-splice.js             |   15 +
 benchmark/code/while-unshift.js            |   15 +
 benchmark/fixtures/long.js                 | 2760 ++++++++++++++++++++++++++++
 benchmark/fixtures/med.js                  |    2 +
 benchmark/fixtures/short.js                |    1 +
 benchmark/index.js                         |   14 +
 benchmark/last.md                          |   11 +
 bower.json                                 |   35 +
 index.js                                   |   28 +
 package.json                               |   66 +
 test.js                                    |   38 +
 37 files changed, 3790 insertions(+)

diff --git a/.editorconfig b/.editorconfig
new file mode 100644
index 0000000..991900b
--- /dev/null
+++ b/.editorconfig
@@ -0,0 +1,22 @@
+# http://editorconfig.org
+root = true
+
+[*]
+indent_style = space
+end_of_line = lf
+charset = utf-8
+indent_size = 2
+trim_trailing_whitespace = true
+insert_final_newline = true
+
+[*.md]
+trim_trailing_whitespace = false
+insert_final_newline = false
+
+[test/**]
+trim_trailing_whitespace = false
+insert_final_newline = false
+
+[templates/**]
+trim_trailing_whitespace = false
+insert_final_newline = false
diff --git a/.eslintrc.json b/.eslintrc.json
new file mode 100644
index 0000000..5b78706
--- /dev/null
+++ b/.eslintrc.json
@@ -0,0 +1,275 @@
+{
+  "ecmaFeatures": {
+    "modules": true,
+    "experimentalObjectRestSpread": true
+  },
+  "env": {
+    "browser": false,
+    "es6": true,
+    "node": true,
+    "mocha": true
+  },
+  "globals": {
+    "document": false,
+    "navigator": false,
+    "window": false
+  },
+  "rules": {
+    "accessor-pairs": 2,
+    "arrow-spacing": [
+      2,
+      {
+        "before": true,
+        "after": true
+      }
+    ],
+    "block-spacing": [
+      2,
+      "always"
+    ],
+    "brace-style": [
+      2,
+      "1tbs",
+      {
+        "allowSingleLine": true
+      }
+    ],
+    "comma-dangle": [
+      2,
+      "never"
+    ],
+    "comma-spacing": [
+      2,
+      {
+        "before": false,
+        "after": true
+      }
+    ],
+    "comma-style": [
+      2,
+      "last"
+    ],
+    "constructor-super": 2,
+    "curly": [
+      2,
+      "multi-line"
+    ],
+    "dot-location": [
+      2,
+      "property"
+    ],
+    "eol-last": 2,
+    "eqeqeq": [
+      2,
+      "allow-null"
+    ],
+    "generator-star-spacing": [
+      2,
+      {
+        "before": true,
+        "after": true
+      }
+    ],
+    "handle-callback-err": [
+      2,
+      "^(err|error)$"
+    ],
+    "indent": [
+      2,
+      2,
+      {
+        "SwitchCase": 1
+      }
+    ],
+    "key-spacing": [
+      2,
+      {
+        "beforeColon": false,
+        "afterColon": true
+      }
+    ],
+    "keyword-spacing": [
+      2,
+      {
+        "before": true,
+        "after": true
+      }
+    ],
+    "new-cap": [
+      2,
+      {
+        "newIsCap": true,
+        "capIsNew": false
+      }
+    ],
+    "new-parens": 2,
+    "no-array-constructor": 2,
+    "no-caller": 2,
+    "no-class-assign": 2,
+    "no-cond-assign": 2,
+    "no-const-assign": 2,
+    "no-control-regex": 2,
+    "no-debugger": 2,
+    "no-delete-var": 2,
+    "no-dupe-args": 2,
+    "no-dupe-class-members": 2,
+    "no-dupe-keys": 2,
+    "no-duplicate-case": 2,
+    "no-empty-character-class": 2,
+    "no-eval": 2,
+    "no-ex-assign": 2,
+    "no-extend-native": 2,
+    "no-extra-bind": 2,
+    "no-extra-boolean-cast": 2,
+    "no-extra-parens": [
+      2,
+      "functions"
+    ],
+    "no-fallthrough": 2,
+    "no-floating-decimal": 2,
+    "no-func-assign": 2,
+    "no-implied-eval": 2,
+    "no-inner-declarations": [
+      2,
+      "functions"
+    ],
+    "no-invalid-regexp": 2,
+    "no-irregular-whitespace": 2,
+    "no-iterator": 2,
+    "no-label-var": 2,
+    "no-labels": 2,
+    "no-lone-blocks": 2,
+    "no-mixed-spaces-and-tabs": 2,
+    "no-multi-spaces": 2,
+    "no-multi-str": 2,
+    "no-multiple-empty-lines": [
+      2,
+      {
+        "max": 1
+      }
+    ],
+    "no-native-reassign": 0,
+    "no-negated-in-lhs": 2,
+    "no-new": 2,
+    "no-new-func": 2,
+    "no-new-object": 2,
+    "no-new-require": 2,
+    "no-new-wrappers": 2,
+    "no-obj-calls": 2,
+    "no-octal": 2,
+    "no-octal-escape": 2,
+    "no-proto": 0,
+    "no-redeclare": 2,
+    "no-regex-spaces": 2,
+    "no-return-assign": 2,
+    "no-self-compare": 2,
+    "no-sequences": 2,
+    "no-shadow-restricted-names": 2,
+    "no-spaced-func": 2,
+    "no-sparse-arrays": 2,
+    "no-this-before-super": 2,
+    "no-throw-literal": 2,
+    "no-trailing-spaces": 0,
+    "no-undef": 2,
+    "no-undef-init": 2,
+    "no-unexpected-multiline": 2,
+    "no-unneeded-ternary": [
+      2,
+      {
+        "defaultAssignment": false
+      }
+    ],
+    "no-unreachable": 2,
+    "no-unused-vars": [
+      2,
+      {
+        "vars": "all",
+        "args": "none"
+      }
+    ],
+    "no-useless-call": 0,
+    "no-with": 2,
+    "one-var": [
+      0,
+      {
+        "initialized": "never"
+      }
+    ],
+    "operator-linebreak": [
+      0,
+      "after",
+      {
+        "overrides": {
+          "?": "before",
+          ":": "before"
+        }
+      }
+    ],
+    "padded-blocks": [
+      0,
+      "never"
+    ],
+    "quotes": [
+      2,
+      "single",
+      "avoid-escape"
+    ],
+    "radix": 2,
+    "semi": [
+      2,
+      "always"
+    ],
+    "semi-spacing": [
+      2,
+      {
+        "before": false,
+        "after": true
+      }
+    ],
+    "space-before-blocks": [
+      2,
+      "always"
+    ],
+    "space-before-function-paren": [
+      2,
+      "never"
+    ],
+    "space-in-parens": [
+      2,
+      "never"
+    ],
+    "space-infix-ops": 2,
+    "space-unary-ops": [
+      2,
+      {
+        "words": true,
+        "nonwords": false
+      }
+    ],
+    "spaced-comment": [
+      0,
+      "always",
+      {
+        "markers": [
+          "global",
+          "globals",
+          "eslint",
+          "eslint-disable",
+          "*package",
+          "!",
+          ","
+        ]
+      }
+    ],
+    "use-isnan": 2,
+    "valid-typeof": 2,
+    "wrap-iife": [
+      2,
+      "any"
+    ],
+    "yoda": [
+      2,
+      "never"
+    ]
+  }
+}
diff --git a/.gitattributes b/.gitattributes
new file mode 100644
index 0000000..759c2c5
--- /dev/null
+++ b/.gitattributes
@@ -0,0 +1,14 @@
+# Enforce Unix newlines
+*.*     text eol=lf
+*.css   text eol=lf
+*.html  text eol=lf
+*.js    text eol=lf
+*.json  text eol=lf
+*.less  text eol=lf
+*.md    text eol=lf
+*.yml   text eol=lf
+
+*.jpg binary
+*.gif binary
+*.png binary
+*.jpeg binary
\ No newline at end of file
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..096c55d
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,52 @@
+# Numerous always-ignore extensions
+*.csv
+*.dat
+*.diff
+*.err
+*.gz
+*.log
+*.orig
+*.out
+*.pid
+*.rar
+*.rej
+*.seed
+*.swo
+*.swp
+*.vi
+*.yo-rc.json
+*.zip
+*~
+.ruby-version
+lib-cov
+npm-debug.log
+
+# Always-ignore dirs
+/bower_components/
+/node_modules/
+/temp/
+/tmp/
+/vendor/
+_gh_pages
+
+# OS or Editor folders
+*.esproj
+*.komodoproject
+.komodotools
+*.sublime-*
+._*
+.cache
+.DS_Store
+.idea
+.project
+.settings
+.tmproj
+nbproject
+Thumbs.db
+
+# grunt-html-validation
+validation-status.json
+validation-report.json
+
+# misc
+TODO.md
\ No newline at end of file
diff --git a/.travis.yml b/.travis.yml
new file mode 100644
index 0000000..7362f13
--- /dev/null
+++ b/.travis.yml
@@ -0,0 +1,9 @@
+sudo: false
+language: node_js
+node_js:
+  - '5'
+  - '4'
+  - '0.12'
+  - '0.10'
+matrix:
+  fast_finish: true
diff --git a/.verb.md b/.verb.md
new file mode 100644
index 0000000..7bfdfc9
--- /dev/null
+++ b/.verb.md
@@ -0,0 +1,23 @@
+{%= include("install-bower", {save: true}) %}
+
+## Usage
+
+Returns the difference between the first array and additional arrays.
+
+```js
+var diff = require('{%= name %}');
+
+var a = ['a', 'b', 'c', 'd'];
+var b = ['b', 'c'];
+
+console.log(diff(a, b))
+//=> ['a', 'd']
+```
+
+## Benchmarks
+
+This library versus [array-differ][], on {%= date() %}:
+
+```
+{%= docs("benchmark/last.md") %}
+```
\ No newline at end of file
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000..39245ac
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) 2014-2016, Jon Schlinkert.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..114f926
--- /dev/null
+++ b/README.md
@@ -0,0 +1,99 @@
+# arr-diff [![NPM version](https://img.shields.io/npm/v/arr-diff.svg?style=flat)](https://www.npmjs.com/package/arr-diff) [![NPM downloads](https://img.shields.io/npm/dm/arr-diff.svg?style=flat)](https://npmjs.org/package/arr-diff) [![Build Status](https://img.shields.io/travis/jonschlinkert/arr-diff.svg?style=flat)](https://travis-ci.org/jonschlinkert/arr-diff)
+
+Returns an array with only the unique values from the first array, by excluding all values from additional arrays using strict equality for comparisons.
+
+## Install
+
+Install with [npm](https://www.npmjs.com/):
+
+```sh
+$ npm install arr-diff --save
+```
+
+Install with [bower](http://bower.io/)
+
+```sh
+$ bower install arr-diff --save
+```
+
+## Usage
+
+Returns the difference between the first array and additional arrays.
+
+```js
+var diff = require('arr-diff');
+
+var a = ['a', 'b', 'c', 'd'];
+var b = ['b', 'c'];
+
+console.log(diff(a, b))
+//=> ['a', 'd']
+```
+
+## Benchmarks
+
+This library versus [array-differ](https://github.com/sindresorhus/array-differ), on May 07, 2016:
+
+```
+# benchmark/fixtures/long.js (94529 bytes)
+  current x 1,246 ops/sec ±0.98% (85 runs sampled)
+  array-differ x 993 ops/sec ±1.35% (87 runs sampled)
+
+# benchmark/fixtures/med.js (708 bytes)
+  current x 583,612 ops/sec ±1.24% (87 runs sampled)
+  array-differ x 464,480 ops/sec ±1.42% (85 runs sampled)
+
+# benchmark/fixtures/short.js (60 bytes)
+  current x 788,823 ops/sec ±0.95% (89 runs sampled)
+  array-differ x 521,483 ops/sec ±1.65% (86 runs sampled)
+```
+
+## Related projects
+
+You might also be interested in these projects:
+
+* [arr-flatten](https://www.npmjs.com/package/arr-flatten): Recursively flatten an array or arrays. This is the fastest implementation of array flatten. | [homepage](https://github.com/jonschlinkert/arr-flatten)
+* [array-filter](https://www.npmjs.com/package/array-filter): Array#filter for older browsers. | [homepage](https://github.com/juliangruber/array-filter)
+* [array-intersection](https://www.npmjs.com/package/array-intersection): Return an array with the unique values present in _all_ given arrays using strict equality… [more](https://www.npmjs.com/package/array-intersection) | [homepage](https://github.com/jonschlinkert/array-intersection)
+
+## Contributing
+
+Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](https://github.com/jonschlinkert/arr-diff/issues/new).
+
+## Building docs
+
+Generate readme and API documentation with [verb](https://github.com/verbose/verb):
+
+```sh
+$ npm install verb && npm run docs
+```
+
+Or, if [verb](https://github.com/verbose/verb) is installed globally:
+
+```sh
+$ verb
+```
+
+## Running tests
+
+Install dev dependencies:
+
+```sh
+$ npm install -d && npm test
+```
+
+## Author
+
+**Jon Schlinkert**
+
+* [github/jonschlinkert](https://github.com/jonschlinkert)
+* [twitter/jonschlinkert](http://twitter.com/jonschlinkert)
+
+## License
+
+Copyright © 2016, [Jon Schlinkert](https://github.com/jonschlinkert).
+Released under the [MIT license](https://github.com/jonschlinkert/arr-diff/blob/master/LICENSE).
+
+***
+
+_This file was generated by [verb](https://github.com/verbose/verb), v0.9.0, on May 07, 2016._
\ No newline at end of file
diff --git a/benchmark/README.md b/benchmark/README.md
new file mode 100644
index 0000000..33fdfa3
--- /dev/null
+++ b/benchmark/README.md
@@ -0,0 +1,13 @@
+# benchmarks
+
+Run the benchmarks:
+
+```sh
+$ node benchmark
+```
+
+Do a dry run to check results of functions:
+
+```sh
+$ node benchmark/check.js
+```
diff --git a/benchmark/check.js b/benchmark/check.js
new file mode 100644
index 0000000..2e75b55
--- /dev/null
+++ b/benchmark/check.js
@@ -0,0 +1,22 @@
+'use strict';
+
+var fs = require('fs');
+var bold = require('ansi-bold');
+var path = require('path');
+
+/**
+ * Sanity check. run to ensure that all fns return a correct
+ * result. Otherwise benchmarks are (even more) useless
+ */
+
+fs.readdirSync(__dirname + '/code').forEach(function(fp) {
+  var fn = require(path.resolve(__dirname, 'code', fp));
+  var name = path.basename(fp, path.extname(fp));
+
+  fs.readdirSync(__dirname + '/fixtures').forEach(function(fixture) {
+    fixture = path.resolve(__dirname, 'fixtures', fixture);
+    if (/\.js$/.test(fixture)) {
+      console.log(bold(name) + ':', fn.apply(null, require(fixture)).length);
+    }
+  });
+});
diff --git a/benchmark/code/array-differ.js b/benchmark/code/array-differ.js
new file mode 100644
index 0000000..bec5d96
--- /dev/null
+++ b/benchmark/code/array-differ.js
@@ -0,0 +1,3 @@
+'use strict';
+
+module.exports = require('array-differ');
diff --git a/benchmark/code/current.js b/benchmark/code/current.js
new file mode 100644
index 0000000..3e20024
--- /dev/null
+++ b/benchmark/code/current.js
@@ -0,0 +1,3 @@
+'use strict';
+
+module.exports = require('../..');
diff --git a/benchmark/code/filter.js b/benchmark/code/filter.js
new file mode 100644
index 0000000..e768cda
--- /dev/null
+++ b/benchmark/code/filter.js
@@ -0,0 +1,8 @@
+'use strict';
+
+module.exports = function diff(arr, arrays) {
+  arrays = [].concat.apply([], [].slice.call(arguments, 1));
+  return arr.filter(function(ele) {
+    return arrays.indexOf(ele) === -1;
+  });
+};
diff --git a/benchmark/code/for-negative.js b/benchmark/code/for-negative.js
new file mode 100644
index 0000000..cd8fa7c
--- /dev/null
+++ b/benchmark/code/for-negative.js
@@ -0,0 +1,16 @@
+'use strict';
+
+module.exports = function diff(arr, arrays) {
+  arrays = [].concat.apply([], [].slice.call(arguments, 1));
+
+  var len = arr.length - 1;
+  var result = [];
+
+  for (var i = len; i >= 0; i--) {
+    var ele = arr[i];
+    if (arrays.indexOf(ele) === -1) {
+      result.push(ele);
+    }
+  }
+  return result;
+};
diff --git a/benchmark/code/for.js b/benchmark/code/for.js
new file mode 100644
index 0000000..060d859
--- /dev/null
+++ b/benchmark/code/for.js
@@ -0,0 +1,16 @@
+'use strict';
+
+module.exports = function diff(arr, arrays) {
+  arrays = [].concat.apply([], [].slice.call(arguments, 1));
+
+  var len = arr.length;
+  var result = [];
+
+  for (var i = 0; i < len; i++) {
+    var ele = arr[i];
+    if (arrays.indexOf(ele) === -1) {
+      result.push(ele);
+    }
+  }
+  return result;
+};
diff --git a/benchmark/code/forEach.js b/benchmark/code/forEach.js
new file mode 100644
index 0000000..3268f25
--- /dev/null
+++ b/benchmark/code/forEach.js
@@ -0,0 +1,15 @@
+'use strict';
+
+module.exports = function diff(arr, arrays) {
+  arrays = [].concat.apply([], [].slice.call(arguments, 1));
+
+  var result = [];
+
+  arr.forEach(function(key) {
+    if (arrays.indexOf(key) === -1) {
+      result.push(key);
+    }
+  });
+
+  return result;
+};
diff --git a/benchmark/code/reduce-concat.js b/benchmark/code/reduce-concat.js
new file mode 100644
index 0000000..b5352a9
--- /dev/null
+++ b/benchmark/code/reduce-concat.js
@@ -0,0 +1,12 @@
+'use strict';
+
+module.exports = function diff(arr, arrays) {
+  arrays = [].concat.apply([], [].slice.call(arguments, 1));
+
+  return arr.reduce(function(acc, ele, i) {
+    if (arrays.indexOf(ele) === -1) {
+      return acc.concat(ele);
+    }
+    return acc;
+  }, []);
+};
diff --git a/benchmark/code/reduce-push.js b/benchmark/code/reduce-push.js
new file mode 100644
index 0000000..89fd904
--- /dev/null
+++ b/benchmark/code/reduce-push.js
@@ -0,0 +1,12 @@
+'use strict';
+
+module.exports = function diff(arr, arrays) {
+  arrays = [].concat.apply([], [].slice.call(arguments, 1));
+
+  return arr.reduce(function(acc, ele, i) {
+    if (arrays.indexOf(ele) === -1) {
+      acc.push(ele);
+    }
+    return acc;
+  }, []);
+};
diff --git a/benchmark/code/while-indexof.js b/benchmark/code/while-indexof.js
new file mode 100644
index 0000000..c6c861f
--- /dev/null
+++ b/benchmark/code/while-indexof.js
@@ -0,0 +1,17 @@
+'use strict';
+
+module.exports = function diff(arr, arrays) {
+  arrays = [].concat.apply([], [].slice.call(arguments, 1));
+
+  var len = arr.length;
+  var idx = -1;
+  var result = [];
+
+  while (++idx < len) {
+    var ele = arr[idx];
+    if (arrays.indexOf(ele) === -1) {
+      result.push(ele);
+    }
+  }
+  return result;
+};
diff --git a/benchmark/code/while-multi-unshift.js b/benchmark/code/while-multi-unshift.js
new file mode 100644
index 0000000..c6d6c31
--- /dev/null
+++ b/benchmark/code/while-multi-unshift.js
@@ -0,0 +1,25 @@
+'use strict';
+
+module.exports = function diff(a, b, c) {
+  var len = a.length;
+  var arr = [];
+  var rest;
+
+  if (!b) {
+    return a;
+  }
+
+  if (!c) {
+    rest = b;
+  } else {
+    rest = [].concat.apply([], [].slice.call(arguments, 1));
+  }
+
+  while (len--) {
+    var ele = arr[len];
+    if (rest.indexOf(ele) === -1) {
+      arr.unshift(ele);
+    }
+  }
+  return arr;
+};
diff --git a/benchmark/code/while-multi.js b/benchmark/code/while-multi.js
new file mode 100644
index 0000000..1cd1b71
--- /dev/null
+++ b/benchmark/code/while-multi.js
@@ -0,0 +1,25 @@
+'use strict';
+
+module.exports = function diff(a, b, c) {
+  var len = a.length;
+  var rest = [];
+  var arr = [];
+
+  if (!b) {
+    return a;
+  }
+
+  if (!c) {
+    rest = b;
+  } else {
+    rest = [].concat.apply([], [].slice.call(arguments, 1));
+  }
+
+  while (len--) {
+    var ele = a[len];
+    if (rest.indexOf(ele) === -1) {
+      arr.push(ele);
+    }
+  }
+  return arr;
+};
diff --git a/benchmark/code/while-push.js b/benchmark/code/while-push.js
new file mode 100644
index 0000000..e9fc6a2
--- /dev/null
+++ b/benchmark/code/while-push.js
@@ -0,0 +1,16 @@
+'use strict';
+
+module.exports = function diff(arr, arrays) {
+  arrays = [].concat.apply([], [].slice.call(arguments, 1));
+
+  var len = arr.length;
+  var result = [];
+
+  while (len--) {
+    var ele = arr[len];
+    if (arrays.indexOf(ele) === -1) {
+      result.push(ele);
+    }
+  }
+  return result;
+};
diff --git a/benchmark/code/while-splice-for.js b/benchmark/code/while-splice-for.js
new file mode 100644
index 0000000..7b02730
--- /dev/null
+++ b/benchmark/code/while-splice-for.js
@@ -0,0 +1,20 @@
+'use strict';
+
+var flatten = require('arr-flatten');
+
+module.exports = function diff(arr, arrays) {
+  arrays = flatten([].slice.call(arguments, 1));
+  var len = arrays.length;
+  for (var i = 0; i < len; i++) {
+    remove(arr, arrays[i]);
+  }
+  return arr;
+};
+
+function remove(arr, ele) {
+  var idx = arr.indexOf(ele);
+  while (idx !== -1) {
+    arr.splice(idx, 1);
+    idx = arr.indexOf(ele);
+  }
+}
diff --git a/benchmark/code/while-splice-pop-flatten.js b/benchmark/code/while-splice-pop-flatten.js
new file mode 100644
index 0000000..e58960c
--- /dev/null
+++ b/benchmark/code/while-splice-pop-flatten.js
@@ -0,0 +1,23 @@
+'use strict';
+
+var flatten = require('arr-flatten');
+
+module.exports = function diff(arr, arrays) {
+  arrays = flatten([].slice.call(arguments, 1));
+  var len = arrays.length;
+  for (var i = 0; i < len; i++) {
+    remove(arr, arrays[i]);
+  }
+  return arr;
+};
+
+function remove(arr, ele) {
+  var idx = arr.indexOf(ele);
+  while (idx !== -1) {
+    var val = arr.pop();
+    if (ele !== val) {
+      arr[idx] = val;
+    }
+    idx = arr.indexOf(ele);
+  }
+}
diff --git a/benchmark/code/while-splice-pop.js b/benchmark/code/while-splice-pop.js
new file mode 100644
index 0000000..6181a59
--- /dev/null
+++ b/benchmark/code/while-splice-pop.js
@@ -0,0 +1,21 @@
+'use strict';
+
+module.exports = function diff(arr, arrays) {
+  arrays = [].concat.apply([], [].slice.call(arguments, 1));
+  var len = arrays.length;
+  for (var i = 0; i < len; i++) {
+    remove(arr, arrays[i]);
+  }
+  return arr;
+};
+
+function remove(arr, ele) {
+  var idx = arr.indexOf(ele);
+  while (idx !== -1) {
+    var val = arr.pop();
+    if (ele !== val) {
+      arr[idx] = val;
+    }
+    idx = arr.indexOf(ele);
+  }
+}
diff --git a/benchmark/code/while-splice-recurse.js b/benchmark/code/while-splice-recurse.js
new file mode 100644
index 0000000..8a94197
--- /dev/null
+++ b/benchmark/code/while-splice-recurse.js
@@ -0,0 +1,23 @@
+'use strict';
+
+module.exports = function diff(arr, arrays) {
+  arrays = [].concat.apply([], [].slice.call(arguments, 1));
+  var len = arrays.length;
+  for (var i = 0; i < len; i++) {
+    remove(arr, arrays[i]);
+  }
+  return arr;
+};
+
+function remove(arr, ele) {
+  var idx = arr.indexOf(ele);
+  if (idx === -1) {
+    return;
+  }
+  var val = arr.pop();
+  if (val === ele) {
+    return;
+  }
+  arr[idx] = val;
+  return remove(arr, ele);
+}
diff --git a/benchmark/code/while-splice.js b/benchmark/code/while-splice.js
new file mode 100644
index 0000000..859e718
--- /dev/null
+++ b/benchmark/code/while-splice.js
@@ -0,0 +1,15 @@
+'use strict';
+
+module.exports = function diff(arr, arrays) {
+  arrays = [].concat.apply([], [].slice.call(arguments, 1));
+
+  arrays.forEach(function(value) {
+    var idx = arr.indexOf(value);
+    while (idx !== -1) {
+      arr.splice(idx, 1);
+      idx = arr.indexOf(value);
+    }
+  });
+
+  return arr;
+};
diff --git a/benchmark/code/while-unshift.js b/benchmark/code/while-unshift.js
new file mode 100644
index 0000000..65a5e59
--- /dev/null
+++ b/benchmark/code/while-unshift.js
@@ -0,0 +1,15 @@
+'use strict';
+
+module.exports = function diff(arr, arrays) {
+  arrays = [].concat.apply([], [].slice.call(arguments, 1));
+
+  var len = arr.length;
+  var result = [];
+
+  while (len--) {
+    if (arrays.indexOf(arr[len]) === -1) {
+      result.unshift(arr[len]);
+    }
+  }
+  return result;
+};
diff --git a/benchmark/fixtures/long.js b/benchmark/fixtures/long.js
new file mode 100644
index 0000000..881fccc
--- /dev/null
+++ b/benchmark/fixtures/long.js
@@ -0,0 +1,2760 @@
+module.exports = [
+  [
+    "a/b/h/klmnop/foo01.js",
+    "a/ca/f/g/h/klmnop/foo01.js",
+    "a/e/d/f/g/h/klmnop/foo01.js",
+    "a/da/f/g/h/klmnop/foo01.js",
+    "a/cb/f/g/h/klmnop/foo01.js",
+    "a/db/f/g/h/klmnop/foo01.js",
+    "a/cc/f/g/h/klmnop/foo01.js",
+    "a/dc/f/g/h/klmnop/foo01.js",
+    "a/cd/f/g/h/klmnop/foo01.js",
+    "a/dd/f/g/h/klmnop/foo01.js",
+    "a/ce/f/g/h/klmnop/foo01.js",
+    "a/de/f/g/h/klmnop/foo01.js",
+    "a/cf/f/g/h/klmnop/foo01.js",
+    "a/df/f/g/h/klmnop/foo01.js",
+    "a/cg/f/g/h/klmnop/foo01.js",
+    "a/dg/f/g/h/klmnop/foo01.js",
+    "a/ch/f/g/h/klmnop/foo01.js",
+    "a/dh/f/g/h/klmnop/foo01.js",
+    "a/ci/f/g/h/klmnop/foo01.js",
+    "a/di/f/g/h/klmnop/foo01.js",
+    "a/cj/f/g/h/klmnop/foo01.js",
+    "a/dj/f/g/h/klmnop/foo01.js",
+    "a/b/i/klmnop/foo01.js",
+    "a/ca/f/g/i/klmnop/foo01.js",
+    "a/e/d/f/g/i/klmnop/foo01.js",
+    "a/da/f/g/i/klmnop/foo01.js",
+    "a/cb/f/g/i/klmnop/foo01.js",
+    "a/db/f/g/i/klmnop/foo01.js",
+    "a/cc/f/g/i/klmnop/foo01.js",
+    "a/dc/f/g/i/klmnop/foo01.js",
+    "a/cd/f/g/i/klmnop/foo01.js",
+    "a/dd/f/g/i/klmnop/foo01.js",
+    "a/ce/f/g/i/klmnop/foo01.js",
+    "a/de/f/g/i/klmnop/foo01.js",
+    "a/cf/f/g/i/klmnop/foo01.js",
+    "a/df/f/g/i/klmnop/foo01.js",
+    "a/cg/f/g/i/klmnop/foo01.js",
+    "a/dg/f/g/i/klmnop/foo01.js",
+    "a/ch/f/g/i/klmnop/foo01.js",
+    "a/dh/f/g/i/klmnop/foo01.js",
+    "a/ci/f/g/i/klmnop/foo01.js",
+    "a/di/f/g/i/klmnop/foo01.js",
+    "a/cj/f/g/i/klmnop/foo01.js",
+    "a/dj/f/g/i/klmnop/foo01.js",
+    "a/b/j/klmnop/foo01.js",
+    "a/ca/f/g/j/klmnop/foo01.js",
+    "a/e/d/f/g/j/klmnop/foo01.js",
+    "a/da/f/g/j/klmnop/foo01.js",
+    "a/cb/f/g/j/klmnop/foo01.js",
+    "a/db/f/g/j/klmnop/foo01.js",
+    "a/cc/f/g/j/klmnop/foo01.js",
+    "a/dc/f/g/j/klmnop/foo01.js",
+    "a/cd/f/g/j/klmnop/foo01.js",
+    "a/dd/f/g/j/klmnop/foo01.js",
+    "a/ce/f/g/j/klmnop/foo01.js",
+    "a/de/f/g/j/klmnop/foo01.js",
+    "a/cf/f/g/j/klmnop/foo01.js",
+    "a/df/f/g/j/klmnop/foo01.js",
+    "a/cg/f/g/j/klmnop/foo01.js",
+    "a/dg/f/g/j/klmnop/foo01.js",
+    "a/ch/f/g/j/klmnop/foo01.js",
+    "a/dh/f/g/j/klmnop/foo01.js",
+    "a/ci/f/g/j/klmnop/foo01.js",
+    "a/di/f/g/j/klmnop/foo01.js",
+    "a/cj/f/g/j/klmnop/foo01.js",
+    "a/dj/f/g/j/klmnop/foo01.js",
+    "a/b/h/klmnop/foo02.js",
+    "a/ca/f/g/h/klmnop/foo02.js",
+    "a/e/d/f/g/h/klmnop/foo02.js",
+    "a/da/f/g/h/klmnop/foo02.js",
+    "a/cb/f/g/h/klmnop/foo02.js",
+    "a/db/f/g/h/klmnop/foo02.js",
+    "a/cc/f/g/h/klmnop/foo02.js",
+    "a/dc/f/g/h/klmnop/foo02.js",
+    "a/cd/f/g/h/klmnop/foo02.js",
+    "a/dd/f/g/h/klmnop/foo02.js",
+    "a/ce/f/g/h/klmnop/foo02.js",
+    "a/de/f/g/h/klmnop/foo02.js",
+    "a/cf/f/g/h/klmnop/foo02.js",
+    "a/df/f/g/h/klmnop/foo02.js",
+    "a/cg/f/g/h/klmnop/foo02.js",
+    "a/dg/f/g/h/klmnop/foo02.js",
+    "a/ch/f/g/h/klmnop/foo02.js",
+    "a/dh/f/g/h/klmnop/foo02.js",
+    "a/ci/f/g/h/klmnop/foo02.js",
+    "a/di/f/g/h/klmnop/foo02.js",
+    "a/cj/f/g/h/klmnop/foo02.js",
+    "a/dj/f/g/h/klmnop/foo02.js",
+    "a/b/i/klmnop/foo02.js",
+    "a/ca/f/g/i/klmnop/foo02.js",
+    "a/e/d/f/g/i/klmnop/foo02.js",
+    "a/da/f/g/i/klmnop/foo02.js",
+    "a/cb/f/g/i/klmnop/foo02.js",
+    "a/db/f/g/i/klmnop/foo02.js",
+    "a/cc/f/g/i/klmnop/foo02.js",
+    "a/dc/f/g/i/klmnop/foo02.js",
+    "a/cd/f/g/i/klmnop/foo02.js",
+    "a/dd/f/g/i/klmnop/foo02.js",
+    "a/ce/f/g/i/klmnop/foo02.js",
+    "a/de/f/g/i/klmnop/foo02.js",
+    "a/cf/f/g/i/klmnop/foo02.js",
+    "a/df/f/g/i/klmnop/foo02.js",
+    "a/cg/f/g/i/klmnop/foo02.js",
+    "a/dg/f/g/i/klmnop/foo02.js",
+    "a/ch/f/g/i/klmnop/foo02.js",
+    "a/dh/f/g/i/klmnop/foo02.js",
+    "a/ci/f/g/i/klmnop/foo02.js",
+    "a/di/f/g/i/klmnop/foo02.js",
+    "a/cj/f/g/i/klmnop/foo02.js",
+    "a/dj/f/g/i/klmnop/foo02.js",
+    "a/b/j/klmnop/foo02.js",
+    "a/ca/f/g/j/klmnop/foo02.js",
+    "a/e/d/f/g/j/klmnop/foo02.js",
+    "a/da/f/g/j/klmnop/foo02.js",
+    "a/cb/f/g/j/klmnop/foo02.js",
+    "a/db/f/g/j/klmnop/foo02.js",
+    "a/cc/f/g/j/klmnop/foo02.js",
+    "a/dc/f/g/j/klmnop/foo02.js",
+    "a/cd/f/g/j/klmnop/foo02.js",
+    "a/dd/f/g/j/klmnop/foo02.js",
+    "a/ce/f/g/j/klmnop/foo02.js",
+    "a/de/f/g/j/klmnop/foo02.js",
+    "a/cf/f/g/j/klmnop/foo02.js",
+    "a/df/f/g/j/klmnop/foo02.js",
+    "a/cg/f/g/j/klmnop/foo02.js",
+    "a/dg/f/g/j/klmnop/foo02.js",
+    "a/ch/f/g/j/klmnop/foo02.js",
+    "a/dh/f/g/j/klmnop/foo02.js",
+    "a/ci/f/g/j/klmnop/foo02.js",
+    "a/di/f/g/j/klmnop/foo02.js",
+    "a/cj/f/g/j/klmnop/foo02.js",
+    "a/dj/f/g/j/klmnop/foo02.js",
+    "a/b/h/klmnop/foo03.js",
+    "a/ca/f/g/h/klmnop/foo03.js",
+    "a/e/d/f/g/h/klmnop/foo03.js",
+    "a/da/f/g/h/klmnop/foo03.js",
+    "a/cb/f/g/h/klmnop/foo03.js",
+    "a/db/f/g/h/klmnop/foo03.js",
+    "a/cc/f/g/h/klmnop/foo03.js",
+    "a/dc/f/g/h/klmnop/foo03.js",
+    "a/cd/f/g/h/klmnop/foo03.js",
+    "a/dd/f/g/h/klmnop/foo03.js",
+    "a/ce/f/g/h/klmnop/foo03.js",
+    "a/de/f/g/h/klmnop/foo03.js",
+    "a/cf/f/g/h/klmnop/foo03.js",
+    "a/df/f/g/h/klmnop/foo03.js",
+    "a/cg/f/g/h/klmnop/foo03.js",
+    "a/dg/f/g/h/klmnop/foo03.js",
+    "a/ch/f/g/h/klmnop/foo03.js",
+    "a/dh/f/g/h/klmnop/foo03.js",
+    "a/ci/f/g/h/klmnop/foo03.js",
+    "a/di/f/g/h/klmnop/foo03.js",
+    "a/cj/f/g/h/klmnop/foo03.js",
+    "a/dj/f/g/h/klmnop/foo03.js",
+    "a/b/i/klmnop/foo03.js",
+    "a/ca/f/g/i/klmnop/foo03.js",
+    "a/e/d/f/g/i/klmnop/foo03.js",
+    "a/da/f/g/i/klmnop/foo03.js",
+    "a/cb/f/g/i/klmnop/foo03.js",
+    "a/db/f/g/i/klmnop/foo03.js",
+    "a/cc/f/g/i/klmnop/foo03.js",
+    "a/dc/f/g/i/klmnop/foo03.js",
+    "a/cd/f/g/i/klmnop/foo03.js",
+    "a/dd/f/g/i/klmnop/foo03.js",
+    "a/ce/f/g/i/klmnop/foo03.js",
+    "a/de/f/g/i/klmnop/foo03.js",
+    "a/cf/f/g/i/klmnop/foo03.js",
+    "a/df/f/g/i/klmnop/foo03.js",
+    "a/cg/f/g/i/klmnop/foo03.js",
+    "a/dg/f/g/i/klmnop/foo03.js",
+    "a/ch/f/g/i/klmnop/foo03.js",
+    "a/dh/f/g/i/klmnop/foo03.js",
+    "a/ci/f/g/i/klmnop/foo03.js",
+    "a/di/f/g/i/klmnop/foo03.js",
+    "a/cj/f/g/i/klmnop/foo03.js",
+    "a/dj/f/g/i/klmnop/foo03.js",
+    "a/b/j/klmnop/foo03.js",
+    "a/ca/f/g/j/klmnop/foo03.js",
+    "a/e/d/f/g/j/klmnop/foo03.js",
+    "a/da/f/g/j/klmnop/foo03.js",
+    "a/cb/f/g/j/klmnop/foo03.js",
+    "a/db/f/g/j/klmnop/foo03.js",
+    "a/cc/f/g/j/klmnop/foo03.js",
+    "a/dc/f/g/j/klmnop/foo03.js",
+    "a/cd/f/g/j/klmnop/foo03.js",
+    "a/dd/f/g/j/klmnop/foo03.js",
+    "a/ce/f/g/j/klmnop/foo03.js",
+    "a/de/f/g/j/klmnop/foo03.js",
+    "a/cf/f/g/j/klmnop/foo03.js",
+    "a/df/f/g/j/klmnop/foo03.js",
+    "a/cg/f/g/j/klmnop/foo03.js",
+    "a/dg/f/g/j/klmnop/foo03.js",
+    "a/ch/f/g/j/klmnop/foo03.js",
+    "a/dh/f/g/j/klmnop/foo03.js",
+    "a/ci/f/g/j/klmnop/foo03.js",
+    "a/di/f/g/j/klmnop/foo03.js",
+    "a/cj/f/g/j/klmnop/foo03.js",
+    "a/dj/f/g/j/klmnop/foo03.js",
+    "a/b/h/klmnop/foo04.js",
+    "a/ca/f/g/h/klmnop/foo04.js",
+    "a/e/d/f/g/h/klmnop/foo04.js",
+    "a/da/f/g/h/klmnop/foo04.js",
+    "a/cb/f/g/h/klmnop/foo04.js",
+    "a/db/f/g/h/klmnop/foo04.js",
+    "a/cc/f/g/h/klmnop/foo04.js",
+    "a/dc/f/g/h/klmnop/foo04.js",
+    "a/cd/f/g/h/klmnop/foo04.js",
+    "a/dd/f/g/h/klmnop/foo04.js",
+    "a/ce/f/g/h/klmnop/foo04.js",
+    "a/de/f/g/h/klmnop/foo04.js",
+    "a/cf/f/g/h/klmnop/foo04.js",
+    "a/df/f/g/h/klmnop/foo04.js",
+    "a/cg/f/g/h/klmnop/foo04.js",
+    "a/dg/f/g/h/klmnop/foo04.js",
+    "a/ch/f/g/h/klmnop/foo04.js",
+    "a/dh/f/g/h/klmnop/foo04.js",
+    "a/ci/f/g/h/klmnop/foo04.js",
+    "a/di/f/g/h/klmnop/foo04.js",
+    "a/cj/f/g/h/klmnop/foo04.js",
+    "a/dj/f/g/h/klmnop/foo04.js",
+    "a/b/i/klmnop/foo04.js",
+    "a/ca/f/g/i/klmnop/foo04.js",
+    "a/e/d/f/g/i/klmnop/foo04.js",
+    "a/da/f/g/i/klmnop/foo04.js",
+    "a/cb/f/g/i/klmnop/foo04.js",
+    "a/db/f/g/i/klmnop/foo04.js",
+    "a/cc/f/g/i/klmnop/foo04.js",
+    "a/dc/f/g/i/klmnop/foo04.js",
+    "a/cd/f/g/i/klmnop/foo04.js",
+    "a/dd/f/g/i/klmnop/foo04.js",
+    "a/ce/f/g/i/klmnop/foo04.js",
+    "a/de/f/g/i/klmnop/foo04.js",
+    "a/cf/f/g/i/klmnop/foo04.js",
+    "a/df/f/g/i/klmnop/foo04.js",
+    "a/cg/f/g/i/klmnop/foo04.js",
+    "a/dg/f/g/i/klmnop/foo04.js",
+    "a/ch/f/g/i/klmnop/foo04.js",
+    "a/dh/f/g/i/klmnop/foo04.js",
+    "a/ci/f/g/i/klmnop/foo04.js",
+    "a/di/f/g/i/klmnop/foo04.js",
+    "a/cj/f/g/i/klmnop/foo04.js",
+    "a/dj/f/g/i/klmnop/foo04.js",
+    "a/b/j/klmnop/foo04.js",
+    "a/ca/f/g/j/klmnop/foo04.js",
+    "a/e/d/f/g/j/klmnop/foo04.js",
+    "a/da/f/g/j/klmnop/foo04.js",
+    "a/cb/f/g/j/klmnop/foo04.js",
+    "a/db/f/g/j/klmnop/foo04.js",
+    "a/cc/f/g/j/klmnop/foo04.js",
+    "a/dc/f/g/j/klmnop/foo04.js",
+    "a/cd/f/g/j/klmnop/foo04.js",
+    "a/dd/f/g/j/klmnop/foo04.js",
+    "a/ce/f/g/j/klmnop/foo04.js",
+    "a/de/f/g/j/klmnop/foo04.js",
+    "a/cf/f/g/j/klmnop/foo04.js",
+    "a/df/f/g/j/klmnop/foo04.js",
+    "a/cg/f/g/j/klmnop/foo04.js",
+    "a/dg/f/g/j/klmnop/foo04.js",
+    "a/ch/f/g/j/klmnop/foo04.js",
+    "a/dh/f/g/j/klmnop/foo04.js",
+    "a/ci/f/g/j/klmnop/foo04.js",
+    "a/di/f/g/j/klmnop/foo04.js",
+    "a/cj/f/g/j/klmnop/foo04.js",
+    "a/dj/f/g/j/klmnop/foo04.js",
+    "a/b/h/klmnop/foo05.js",
+    "a/ca/f/g/h/klmnop/foo05.js",
+    "a/e/d/f/g/h/klmnop/foo05.js",
+    "a/da/f/g/h/klmnop/foo05.js",
+    "a/cb/f/g/h/klmnop/foo05.js",
+    "a/db/f/g/h/klmnop/foo05.js",
+    "a/cc/f/g/h/klmnop/foo05.js",
+    "a/dc/f/g/h/klmnop/foo05.js",
+    "a/cd/f/g/h/klmnop/foo05.js",
+    "a/dd/f/g/h/klmnop/foo05.js",
+    "a/ce/f/g/h/klmnop/foo05.js",
+    "a/de/f/g/h/klmnop/foo05.js",
+    "a/cf/f/g/h/klmnop/foo05.js",
+    "a/df/f/g/h/klmnop/foo05.js",
+    "a/cg/f/g/h/klmnop/foo05.js",
+    "a/dg/f/g/h/klmnop/foo05.js",
+    "a/ch/f/g/h/klmnop/foo05.js",
+    "a/dh/f/g/h/klmnop/foo05.js",
+    "a/ci/f/g/h/klmnop/foo05.js",
+    "a/di/f/g/h/klmnop/foo05.js",
+    "a/cj/f/g/h/klmnop/foo05.js",
+    "a/dj/f/g/h/klmnop/foo05.js",
+    "a/b/i/klmnop/foo05.js",
+    "a/ca/f/g/i/klmnop/foo05.js",
+    "a/e/d/f/g/i/klmnop/foo05.js",
+    "a/da/f/g/i/klmnop/foo05.js",
+    "a/cb/f/g/i/klmnop/foo05.js",
+    "a/db/f/g/i/klmnop/foo05.js",
+    "a/cc/f/g/i/klmnop/foo05.js",
+    "a/dc/f/g/i/klmnop/foo05.js",
+    "a/cd/f/g/i/klmnop/foo05.js",
+    "a/dd/f/g/i/klmnop/foo05.js",
+    "a/ce/f/g/i/klmnop/foo05.js",
+    "a/de/f/g/i/klmnop/foo05.js",
+    "a/cf/f/g/i/klmnop/foo05.js",
+    "a/df/f/g/i/klmnop/foo05.js",
+    "a/cg/f/g/i/klmnop/foo05.js",
+    "a/dg/f/g/i/klmnop/foo05.js",
+    "a/ch/f/g/i/klmnop/foo05.js",
+    "a/dh/f/g/i/klmnop/foo05.js",
+    "a/ci/f/g/i/klmnop/foo05.js",
+    "a/di/f/g/i/klmnop/foo05.js",
+    "a/cj/f/g/i/klmnop/foo05.js",
+    "a/dj/f/g/i/klmnop/foo05.js",
+    "a/b/j/klmnop/foo05.js",
+    "a/ca/f/g/j/klmnop/foo05.js",
+    "a/e/d/f/g/j/klmnop/foo05.js",
+    "a/da/f/g/j/klmnop/foo05.js",
+    "a/cb/f/g/j/klmnop/foo05.js",
+    "a/db/f/g/j/klmnop/foo05.js",
+    "a/cc/f/g/j/klmnop/foo05.js",
+    "a/dc/f/g/j/klmnop/foo05.js",
+    "a/cd/f/g/j/klmnop/foo05.js",
+    "a/dd/f/g/j/klmnop/foo05.js",
+    "a/ce/f/g/j/klmnop/foo05.js",
+    "a/de/f/g/j/klmnop/foo05.js",
+    "a/cf/f/g/j/klmnop/foo05.js",
+    "a/df/f/g/j/klmnop/foo05.js",
+    "a/cg/f/g/j/klmnop/foo05.js",
+    "a/dg/f/g/j/klmnop/foo05.js",
+    "a/ch/f/g/j/klmnop/foo05.js",
+    "a/dh/f/g/j/klmnop/foo05.js",
+    "a/ci/f/g/j/klmnop/foo05.js",
+    "a/di/f/g/j/klmnop/foo05.js",
+    "a/cj/f/g/j/klmnop/foo05.js",
+    "a/dj/f/g/j/klmnop/foo05.js",
+    "a/b/h/klmnop/foo06.js",
+    "a/ca/f/g/h/klmnop/foo06.js",
+    "a/e/d/f/g/h/klmnop/foo06.js",
+    "a/da/f/g/h/klmnop/foo06.js",
+    "a/cb/f/g/h/klmnop/foo06.js",
+    "a/db/f/g/h/klmnop/foo06.js",
+    "a/cc/f/g/h/klmnop/foo06.js",
+    "a/dc/f/g/h/klmnop/foo06.js",
+    "a/cd/f/g/h/klmnop/foo06.js",
+    "a/dd/f/g/h/klmnop/foo06.js",
+    "a/ce/f/g/h/klmnop/foo06.js",
+    "a/de/f/g/h/klmnop/foo06.js",
+    "a/cf/f/g/h/klmnop/foo06.js",
+    "a/df/f/g/h/klmnop/foo06.js",
+    "a/cg/f/g/h/klmnop/foo06.js",
+    "a/dg/f/g/h/klmnop/foo06.js",
+    "a/ch/f/g/h/klmnop/foo06.js",
+    "a/dh/f/g/h/klmnop/foo06.js",
+    "a/ci/f/g/h/klmnop/foo06.js",
+    "a/di/f/g/h/klmnop/foo06.js",
+    "a/cj/f/g/h/klmnop/foo06.js",
+    "a/dj/f/g/h/klmnop/foo06.js",
+    "a/b/i/klmnop/foo06.js",
+    "a/ca/f/g/i/klmnop/foo06.js",
+    "a/e/d/f/g/i/klmnop/foo06.js",
+    "a/da/f/g/i/klmnop/foo06.js",
+    "a/cb/f/g/i/klmnop/foo06.js",
+    "a/db/f/g/i/klmnop/foo06.js",
+    "a/cc/f/g/i/klmnop/foo06.js",
+    "a/dc/f/g/i/klmnop/foo06.js",
+    "a/cd/f/g/i/klmnop/foo06.js",
+    "a/dd/f/g/i/klmnop/foo06.js",
+    "a/ce/f/g/i/klmnop/foo06.js",
+    "a/de/f/g/i/klmnop/foo06.js",
+    "a/cf/f/g/i/klmnop/foo06.js",
+    "a/df/f/g/i/klmnop/foo06.js",
+    "a/cg/f/g/i/klmnop/foo06.js",
+    "a/dg/f/g/i/klmnop/foo06.js",
+    "a/ch/f/g/i/klmnop/foo06.js",
+    "a/dh/f/g/i/klmnop/foo06.js",
+    "a/ci/f/g/i/klmnop/foo06.js",
+    "a/di/f/g/i/klmnop/foo06.js",
+    "a/cj/f/g/i/klmnop/foo06.js",
+    "a/dj/f/g/i/klmnop/foo06.js",
+    "a/b/j/klmnop/foo06.js",
+    "a/ca/f/g/j/klmnop/foo06.js",
+    "a/e/d/f/g/j/klmnop/foo06.js",
+    "a/da/f/g/j/klmnop/foo06.js",
+    "a/cb/f/g/j/klmnop/foo06.js",
+    "a/db/f/g/j/klmnop/foo06.js",
+    "a/cc/f/g/j/klmnop/foo06.js",
+    "a/dc/f/g/j/klmnop/foo06.js",
+    "a/cd/f/g/j/klmnop/foo06.js",
+    "a/dd/f/g/j/klmnop/foo06.js",
+    "a/ce/f/g/j/klmnop/foo06.js",
+    "a/de/f/g/j/klmnop/foo06.js",
+    "a/cf/f/g/j/klmnop/foo06.js",
+    "a/df/f/g/j/klmnop/foo06.js",
+    "a/cg/f/g/j/klmnop/foo06.js",
+    "a/dg/f/g/j/klmnop/foo06.js",
+    "a/ch/f/g/j/klmnop/foo06.js",
+    "a/dh/f/g/j/klmnop/foo06.js",
+    "a/ci/f/g/j/klmnop/foo06.js",
+    "a/di/f/g/j/klmnop/foo06.js",
+    "a/cj/f/g/j/klmnop/foo06.js",
+    "a/dj/f/g/j/klmnop/foo06.js",
+    "a/b/h/klmnop/foo07.js",
+    "a/ca/f/g/h/klmnop/foo07.js",
+    "a/e/d/f/g/h/klmnop/foo07.js",
+    "a/da/f/g/h/klmnop/foo07.js",
+    "a/cb/f/g/h/klmnop/foo07.js",
+    "a/db/f/g/h/klmnop/foo07.js",
+    "a/cc/f/g/h/klmnop/foo07.js",
+    "a/dc/f/g/h/klmnop/foo07.js",
+    "a/cd/f/g/h/klmnop/foo07.js",
+    "a/dd/f/g/h/klmnop/foo07.js",
+    "a/ce/f/g/h/klmnop/foo07.js",
+    "a/de/f/g/h/klmnop/foo07.js",
+    "a/cf/f/g/h/klmnop/foo07.js",
+    "a/df/f/g/h/klmnop/foo07.js",
+    "a/cg/f/g/h/klmnop/foo07.js",
+    "a/dg/f/g/h/klmnop/foo07.js",
+    "a/ch/f/g/h/klmnop/foo07.js",
+    "a/dh/f/g/h/klmnop/foo07.js",
+    "a/ci/f/g/h/klmnop/foo07.js",
+    "a/di/f/g/h/klmnop/foo07.js",
+    "a/cj/f/g/h/klmnop/foo07.js",
+    "a/dj/f/g/h/klmnop/foo07.js",
+    "a/b/i/klmnop/foo07.js",
+    "a/ca/f/g/i/klmnop/foo07.js",
+    "a/e/d/f/g/i/klmnop/foo07.js",
+    "a/da/f/g/i/klmnop/foo07.js",
+    "a/cb/f/g/i/klmnop/foo07.js",
+    "a/db/f/g/i/klmnop/foo07.js",
+    "a/cc/f/g/i/klmnop/foo07.js",
+    "a/dc/f/g/i/klmnop/foo07.js",
+    "a/cd/f/g/i/klmnop/foo07.js",
+    "a/dd/f/g/i/klmnop/foo07.js",
+    "a/ce/f/g/i/klmnop/foo07.js",
+    "a/de/f/g/i/klmnop/foo07.js",
+    "a/cf/f/g/i/klmnop/foo07.js",
+    "a/df/f/g/i/klmnop/foo07.js",
+    "a/cg/f/g/i/klmnop/foo07.js",
+    "a/dg/f/g/i/klmnop/foo07.js",
+    "a/ch/f/g/i/klmnop/foo07.js",
+    "a/dh/f/g/i/klmnop/foo07.js",
+    "a/ci/f/g/i/klmnop/foo07.js",
+    "a/di/f/g/i/klmnop/foo07.js",
+    "a/cj/f/g/i/klmnop/foo07.js",
+    "a/dj/f/g/i/klmnop/foo07.js",
+    "a/b/j/klmnop/foo07.js",
+    "a/ca/f/g/j/klmnop/foo07.js",
+    "a/e/d/f/g/j/klmnop/foo07.js",
+    "a/da/f/g/j/klmnop/foo07.js",
+    "a/cb/f/g/j/klmnop/foo07.js",
+    "a/db/f/g/j/klmnop/foo07.js",
+    "a/cc/f/g/j/klmnop/foo07.js",
+    "a/dc/f/g/j/klmnop/foo07.js",
+    "a/cd/f/g/j/klmnop/foo07.js",
+    "a/dd/f/g/j/klmnop/foo07.js",
+    "a/ce/f/g/j/klmnop/foo07.js",
+    "a/de/f/g/j/klmnop/foo07.js",
+    "a/cf/f/g/j/klmnop/foo07.js",
+    "a/df/f/g/j/klmnop/foo07.js",
+    "a/cg/f/g/j/klmnop/foo07.js",
+    "a/dg/f/g/j/klmnop/foo07.js",
+    "a/ch/f/g/j/klmnop/foo07.js",
+    "a/dh/f/g/j/klmnop/foo07.js",
+    "a/ci/f/g/j/klmnop/foo07.js",
+    "a/di/f/g/j/klmnop/foo07.js",
+    "a/cj/f/g/j/klmnop/foo07.js",
+    "a/dj/f/g/j/klmnop/foo07.js",
+    "a/b/h/klmnop/foo08.js",
+    "a/ca/f/g/h/klmnop/foo08.js",
+    "a/e/d/f/g/h/klmnop/foo08.js",
+    "a/da/f/g/h/klmnop/foo08.js",
+    "a/cb/f/g/h/klmnop/foo08.js",
+    "a/db/f/g/h/klmnop/foo08.js",
+    "a/cc/f/g/h/klmnop/foo08.js",
+    "a/dc/f/g/h/klmnop/foo08.js",
+    "a/cd/f/g/h/klmnop/foo08.js",
+    "a/dd/f/g/h/klmnop/foo08.js",
+    "a/ce/f/g/h/klmnop/foo08.js",
+    "a/de/f/g/h/klmnop/foo08.js",
+    "a/cf/f/g/h/klmnop/foo08.js",
+    "a/df/f/g/h/klmnop/foo08.js",
+    "a/cg/f/g/h/klmnop/foo08.js",
+    "a/dg/f/g/h/klmnop/foo08.js",
+    "a/ch/f/g/h/klmnop/foo08.js",
+    "a/dh/f/g/h/klmnop/foo08.js",
+    "a/ci/f/g/h/klmnop/foo08.js",
+    "a/di/f/g/h/klmnop/foo08.js",
+    "a/cj/f/g/h/klmnop/foo08.js",
+    "a/dj/f/g/h/klmnop/foo08.js",
+    "a/b/i/klmnop/foo08.js",
+    "a/ca/f/g/i/klmnop/foo08.js",
+    "a/e/d/f/g/i/klmnop/foo08.js",
+    "a/da/f/g/i/klmnop/foo08.js",
+    "a/cb/f/g/i/klmnop/foo08.js",
+    "a/db/f/g/i/klmnop/foo08.js",
+    "a/cc/f/g/i/klmnop/foo08.js",
+    "a/dc/f/g/i/klmnop/foo08.js",
+    "a/cd/f/g/i/klmnop/foo08.js",
+    "a/dd/f/g/i/klmnop/foo08.js",
+    "a/ce/f/g/i/klmnop/foo08.js",
+    "a/de/f/g/i/klmnop/foo08.js",
+    "a/cf/f/g/i/klmnop/foo08.js",
+    "a/df/f/g/i/klmnop/foo08.js",
+    "a/cg/f/g/i/klmnop/foo08.js",
+    "a/dg/f/g/i/klmnop/foo08.js",
+    "a/ch/f/g/i/klmnop/foo08.js",
+    "a/dh/f/g/i/klmnop/foo08.js",
+    "a/ci/f/g/i/klmnop/foo08.js",
+    "a/di/f/g/i/klmnop/foo08.js",
+    "a/cj/f/g/i/klmnop/foo08.js",
+    "a/dj/f/g/i/klmnop/foo08.js",
+    "a/b/j/klmnop/foo08.js",
+    "a/ca/f/g/j/klmnop/foo08.js",
+    "a/e/d/f/g/j/klmnop/foo08.js",
+    "a/da/f/g/j/klmnop/foo08.js",
+    "a/cb/f/g/j/klmnop/foo08.js",
+    "a/db/f/g/j/klmnop/foo08.js",
+    "a/cc/f/g/j/klmnop/foo08.js",
+    "a/dc/f/g/j/klmnop/foo08.js",
+    "a/cd/f/g/j/klmnop/foo08.js",
+    "a/dd/f/g/j/klmnop/foo08.js",
+    "a/ce/f/g/j/klmnop/foo08.js",
+    "a/de/f/g/j/klmnop/foo08.js",
+    "a/cf/f/g/j/klmnop/foo08.js",
+    "a/df/f/g/j/klmnop/foo08.js",
+    "a/cg/f/g/j/klmnop/foo08.js",
+    "a/dg/f/g/j/klmnop/foo08.js",
+    "a/ch/f/g/j/klmnop/foo08.js",
+    "a/dh/f/g/j/klmnop/foo08.js",
+    "a/ci/f/g/j/klmnop/foo08.js",
+    "a/di/f/g/j/klmnop/foo08.js",
+    "a/cj/f/g/j/klmnop/foo08.js",
+    "a/dj/f/g/j/klmnop/foo08.js",
+    "a/b/h/klmnop/foo09.js",
+    "a/ca/f/g/h/klmnop/foo09.js",
+    "a/e/d/f/g/h/klmnop/foo09.js",
+    "a/da/f/g/h/klmnop/foo09.js",
+    "a/cb/f/g/h/klmnop/foo09.js",
+    "a/db/f/g/h/klmnop/foo09.js",
+    "a/cc/f/g/h/klmnop/foo09.js",
+    "a/dc/f/g/h/klmnop/foo09.js",
+    "a/cd/f/g/h/klmnop/foo09.js",
+    "a/dd/f/g/h/klmnop/foo09.js",
+    "a/ce/f/g/h/klmnop/foo09.js",
+    "a/de/f/g/h/klmnop/foo09.js",
+    "a/cf/f/g/h/klmnop/foo09.js",
+    "a/df/f/g/h/klmnop/foo09.js",
+    "a/cg/f/g/h/klmnop/foo09.js",
+    "a/dg/f/g/h/klmnop/foo09.js",
+    "a/ch/f/g/h/klmnop/foo09.js",
+    "a/dh/f/g/h/klmnop/foo09.js",
+    "a/ci/f/g/h/klmnop/foo09.js",
+    "a/di/f/g/h/klmnop/foo09.js",
+    "a/cj/f/g/h/klmnop/foo09.js",
+    "a/dj/f/g/h/klmnop/foo09.js",
+    "a/b/i/klmnop/foo09.js",
+    "a/ca/f/g/i/klmnop/foo09.js",
+    "a/e/d/f/g/i/klmnop/foo09.js",
+    "a/da/f/g/i/klmnop/foo09.js",
+    "a/cb/f/g/i/klmnop/foo09.js",
+    "a/db/f/g/i/klmnop/foo09.js",
+    "a/cc/f/g/i/klmnop/foo09.js",
+    "a/dc/f/g/i/klmnop/foo09.js",
+    "a/cd/f/g/i/klmnop/foo09.js",
+    "a/dd/f/g/i/klmnop/foo09.js",
+    "a/ce/f/g/i/klmnop/foo09.js",
+    "a/de/f/g/i/klmnop/foo09.js",
+    "a/cf/f/g/i/klmnop/foo09.js",
+    "a/df/f/g/i/klmnop/foo09.js",
+    "a/cg/f/g/i/klmnop/foo09.js",
+    "a/dg/f/g/i/klmnop/foo09.js",
+    "a/ch/f/g/i/klmnop/foo09.js",
+    "a/dh/f/g/i/klmnop/foo09.js",
+    "a/ci/f/g/i/klmnop/foo09.js",
+    "a/di/f/g/i/klmnop/foo09.js",
+    "a/cj/f/g/i/klmnop/foo09.js",
+    "a/dj/f/g/i/klmnop/foo09.js",
+    "a/b/j/klmnop/foo09.js",
+    "a/ca/f/g/j/klmnop/foo09.js",
+    "a/e/d/f/g/j/klmnop/foo09.js",
+    "a/da/f/g/j/klmnop/foo09.js",
+    "a/cb/f/g/j/klmnop/foo09.js",
+    "a/db/f/g/j/klmnop/foo09.js",
+    "a/cc/f/g/j/klmnop/foo09.js",
+    "a/dc/f/g/j/klmnop/foo09.js",
+    "a/cd/f/g/j/klmnop/foo09.js",
+    "a/dd/f/g/j/klmnop/foo09.js",
+    "a/ce/f/g/j/klmnop/foo09.js",
+    "a/de/f/g/j/klmnop/foo09.js",
+    "a/cf/f/g/j/klmnop/foo09.js",
+    "a/df/f/g/j/klmnop/foo09.js",
+    "a/cg/f/g/j/klmnop/foo09.js",
+    "a/dg/f/g/j/klmnop/foo09.js",
+    "a/ch/f/g/j/klmnop/foo09.js",
+    "a/dh/f/g/j/klmnop/foo09.js",
+    "a/ci/f/g/j/klmnop/foo09.js",
+    "a/di/f/g/j/klmnop/foo09.js",
+    "a/cj/f/g/j/klmnop/foo09.js",
+    "a/dj/f/g/j/klmnop/foo09.js",
+    "a/b/h/klmnop/foo10.js",
+    "a/ca/f/g/h/klmnop/foo10.js",
+    "a/e/d/f/g/h/klmnop/foo10.js",
+    "a/da/f/g/h/klmnop/foo10.js",
+    "a/cb/f/g/h/klmnop/foo10.js",
+    "a/db/f/g/h/klmnop/foo10.js",
+    "a/cc/f/g/h/klmnop/foo10.js",
+    "a/dc/f/g/h/klmnop/foo10.js",
+    "a/cd/f/g/h/klmnop/foo10.js",
+    "a/dd/f/g/h/klmnop/foo10.js",
+    "a/ce/f/g/h/klmnop/foo10.js",
+    "a/de/f/g/h/klmnop/foo10.js",
+    "a/cf/f/g/h/klmnop/foo10.js",
+    "a/df/f/g/h/klmnop/foo10.js",
+    "a/cg/f/g/h/klmnop/foo10.js",
+    "a/dg/f/g/h/klmnop/foo10.js",
+    "a/ch/f/g/h/klmnop/foo10.js",
+    "a/dh/f/g/h/klmnop/foo10.js",
+    "a/ci/f/g/h/klmnop/foo10.js",
+    "a/di/f/g/h/klmnop/foo10.js",
+    "a/cj/f/g/h/klmnop/foo10.js",
+    "a/dj/f/g/h/klmnop/foo10.js",
+    "a/b/i/klmnop/foo10.js",
+    "a/ca/f/g/i/klmnop/foo10.js",
+    "a/e/d/f/g/i/klmnop/foo10.js",
+    "a/da/f/g/i/klmnop/foo10.js",
+    "a/cb/f/g/i/klmnop/foo10.js",
+    "a/db/f/g/i/klmnop/foo10.js",
+    "a/cc/f/g/i/klmnop/foo10.js",
+    "a/dc/f/g/i/klmnop/foo10.js",
+    "a/cd/f/g/i/klmnop/foo10.js",
+    "a/dd/f/g/i/klmnop/foo10.js",
+    "a/ce/f/g/i/klmnop/foo10.js",
+    "a/de/f/g/i/klmnop/foo10.js",
+    "a/cf/f/g/i/klmnop/foo10.js",
+    "a/df/f/g/i/klmnop/foo10.js",
+    "a/cg/f/g/i/klmnop/foo10.js",
+    "a/dg/f/g/i/klmnop/foo10.js",
+    "a/ch/f/g/i/klmnop/foo10.js",
+    "a/dh/f/g/i/klmnop/foo10.js",
+    "a/ci/f/g/i/klmnop/foo10.js",
+    "a/di/f/g/i/klmnop/foo10.js",
+    "a/cj/f/g/i/klmnop/foo10.js",
+    "a/dj/f/g/i/klmnop/foo10.js",
+    "a/b/j/klmnop/foo10.js",
+    "a/ca/f/g/j/klmnop/foo10.js",
+    "a/e/d/f/g/j/klmnop/foo10.js",
+    "a/da/f/g/j/klmnop/foo10.js",
+    "a/cb/f/g/j/klmnop/foo10.js",
+    "a/db/f/g/j/klmnop/foo10.js",
+    "a/cc/f/g/j/klmnop/foo10.js",
+    "a/dc/f/g/j/klmnop/foo10.js",
+    "a/cd/f/g/j/klmnop/foo10.js",
+    "a/dd/f/g/j/klmnop/foo10.js",
+    "a/ce/f/g/j/klmnop/foo10.js",
+    "a/de/f/g/j/klmnop/foo10.js",
+    "a/cf/f/g/j/klmnop/foo10.js",
+    "a/df/f/g/j/klmnop/foo10.js",
+    "a/cg/f/g/j/klmnop/foo10.js",
+    "a/dg/f/g/j/klmnop/foo10.js",
+    "a/ch/f/g/j/klmnop/foo10.js",
+    "a/dh/f/g/j/klmnop/foo10.js",
+    "a/ci/f/g/j/klmnop/foo10.js",
+    "a/di/f/g/j/klmnop/foo10.js",
+    "a/cj/f/g/j/klmnop/foo10.js",
+    "a/dj/f/g/j/klmnop/foo10.js",
+    "a/b/h/klmnop/foo01.md",
+    "a/ca/f/g/h/klmnop/foo01.md",
+    "a/e/d/f/g/h/klmnop/foo01.md",
+    "a/da/f/g/h/klmnop/foo01.md",
+    "a/cb/f/g/h/klmnop/foo01.md",
+    "a/db/f/g/h/klmnop/foo01.md",
+    "a/cc/f/g/h/klmnop/foo01.md",
+    "a/dc/f/g/h/klmnop/foo01.md",
+    "a/cd/f/g/h/klmnop/foo01.md",
+    "a/dd/f/g/h/klmnop/foo01.md",
+    "a/ce/f/g/h/klmnop/foo01.md",
+    "a/de/f/g/h/klmnop/foo01.md",
+    "a/cf/f/g/h/klmnop/foo01.md",
+    "a/df/f/g/h/klmnop/foo01.md",
+    "a/cg/f/g/h/klmnop/foo01.md",
+    "a/dg/f/g/h/klmnop/foo01.md",
+    "a/ch/f/g/h/klmnop/foo01.md",
+    "a/dh/f/g/h/klmnop/foo01.md",
+    "a/ci/f/g/h/klmnop/foo01.md",
+    "a/di/f/g/h/klmnop/foo01.md",
+    "a/cj/f/g/h/klmnop/foo01.md",
+    "a/dj/f/g/h/klmnop/foo01.md",
+    "a/b/i/klmnop/foo01.md",
+    "a/ca/f/g/i/klmnop/foo01.md",
+    "a/e/d/f/g/i/klmnop/foo01.md",
+    "a/da/f/g/i/klmnop/foo01.md",
+    "a/cb/f/g/i/klmnop/foo01.md",
+    "a/db/f/g/i/klmnop/foo01.md",
+    "a/cc/f/g/i/klmnop/foo01.md",
+    "a/dc/f/g/i/klmnop/foo01.md",
+    "a/cd/f/g/i/klmnop/foo01.md",
+    "a/dd/f/g/i/klmnop/foo01.md",
+    "a/ce/f/g/i/klmnop/foo01.md",
+    "a/de/f/g/i/klmnop/foo01.md",
+    "a/cf/f/g/i/klmnop/foo01.md",
+    "a/df/f/g/i/klmnop/foo01.md",
+    "a/cg/f/g/i/klmnop/foo01.md",
+    "a/dg/f/g/i/klmnop/foo01.md",
+    "a/ch/f/g/i/klmnop/foo01.md",
+    "a/dh/f/g/i/klmnop/foo01.md",
+    "a/ci/f/g/i/klmnop/foo01.md",
+    "a/di/f/g/i/klmnop/foo01.md",
+    "a/cj/f/g/i/klmnop/foo01.md",
+    "a/dj/f/g/i/klmnop/foo01.md",
+    "a/b/j/klmnop/foo01.md",
+    "a/ca/f/g/j/klmnop/foo01.md",
+    "a/e/d/f/g/j/klmnop/foo01.md",
+    "a/da/f/g/j/klmnop/foo01.md",
+    "a/cb/f/g/j/klmnop/foo01.md",
+    "a/db/f/g/j/klmnop/foo01.md",
+    "a/cc/f/g/j/klmnop/foo01.md",
+    "a/dc/f/g/j/klmnop/foo01.md",
+    "a/cd/f/g/j/klmnop/foo01.md",
+    "a/dd/f/g/j/klmnop/foo01.md",
+    "a/ce/f/g/j/klmnop/foo01.md",
+    "a/de/f/g/j/klmnop/foo01.md",
+    "a/cf/f/g/j/klmnop/foo01.md",
+    "a/df/f/g/j/klmnop/foo01.md",
+    "a/cg/f/g/j/klmnop/foo01.md",
+    "a/dg/f/g/j/klmnop/foo01.md",
+    "a/ch/f/g/j/klmnop/foo01.md",
+    "a/dh/f/g/j/klmnop/foo01.md",
+    "a/ci/f/g/j/klmnop/foo01.md",
+    "a/di/f/g/j/klmnop/foo01.md",
+    "a/cj/f/g/j/klmnop/foo01.md",
+    "a/dj/f/g/j/klmnop/foo01.md",
+    "a/b/h/klmnop/foo02.md",
+    "a/ca/f/g/h/klmnop/foo02.md",
+    "a/e/d/f/g/h/klmnop/foo02.md",
+    "a/da/f/g/h/klmnop/foo02.md",
+    "a/cb/f/g/h/klmnop/foo02.md",
+    "a/db/f/g/h/klmnop/foo02.md",
+    "a/cc/f/g/h/klmnop/foo02.md",
+    "a/dc/f/g/h/klmnop/foo02.md",
+    "a/cd/f/g/h/klmnop/foo02.md",
+    "a/dd/f/g/h/klmnop/foo02.md",
+    "a/ce/f/g/h/klmnop/foo02.md",
+    "a/de/f/g/h/klmnop/foo02.md",
+    "a/cf/f/g/h/klmnop/foo02.md",
+    "a/df/f/g/h/klmnop/foo02.md",
+    "a/cg/f/g/h/klmnop/foo02.md",
+    "a/dg/f/g/h/klmnop/foo02.md",
+    "a/ch/f/g/h/klmnop/foo02.md",
+    "a/dh/f/g/h/klmnop/foo02.md",
+    "a/ci/f/g/h/klmnop/foo02.md",
+    "a/di/f/g/h/klmnop/foo02.md",
+    "a/cj/f/g/h/klmnop/foo02.md",
+    "a/dj/f/g/h/klmnop/foo02.md",
+    "a/b/i/klmnop/foo02.md",
+    "a/ca/f/g/i/klmnop/foo02.md",
+    "a/e/d/f/g/i/klmnop/foo02.md",
+    "a/da/f/g/i/klmnop/foo02.md",
+    "a/cb/f/g/i/klmnop/foo02.md",
+    "a/db/f/g/i/klmnop/foo02.md",
+    "a/cc/f/g/i/klmnop/foo02.md",
+    "a/dc/f/g/i/klmnop/foo02.md",
+    "a/cd/f/g/i/klmnop/foo02.md",
+    "a/dd/f/g/i/klmnop/foo02.md",
+    "a/ce/f/g/i/klmnop/foo02.md",
+    "a/de/f/g/i/klmnop/foo02.md",
+    "a/cf/f/g/i/klmnop/foo02.md",
+    "a/df/f/g/i/klmnop/foo02.md",
+    "a/cg/f/g/i/klmnop/foo02.md",
+    "a/dg/f/g/i/klmnop/foo02.md",
+    "a/ch/f/g/i/klmnop/foo02.md",
+    "a/dh/f/g/i/klmnop/foo02.md",
+    "a/ci/f/g/i/klmnop/foo02.md",
+    "a/di/f/g/i/klmnop/foo02.md",
+    "a/cj/f/g/i/klmnop/foo02.md",
+    "a/dj/f/g/i/klmnop/foo02.md",
+    "a/b/j/klmnop/foo02.md",
+    "a/ca/f/g/j/klmnop/foo02.md",
+    "a/e/d/f/g/j/klmnop/foo02.md",
+    "a/da/f/g/j/klmnop/foo02.md",
+    "a/cb/f/g/j/klmnop/foo02.md",
+    "a/db/f/g/j/klmnop/foo02.md",
+    "a/cc/f/g/j/klmnop/foo02.md",
+    "a/dc/f/g/j/klmnop/foo02.md",
+    "a/cd/f/g/j/klmnop/foo02.md",
+    "a/dd/f/g/j/klmnop/foo02.md",
+    "a/ce/f/g/j/klmnop/foo02.md",
+    "a/de/f/g/j/klmnop/foo02.md",
+    "a/cf/f/g/j/klmnop/foo02.md",
+    "a/df/f/g/j/klmnop/foo02.md",
+    "a/cg/f/g/j/klmnop/foo02.md",
+    "a/dg/f/g/j/klmnop/foo02.md",
+    "a/ch/f/g/j/klmnop/foo02.md",
+    "a/dh/f/g/j/klmnop/foo02.md",
+    "a/ci/f/g/j/klmnop/foo02.md",
+    "a/di/f/g/j/klmnop/foo02.md",
+    "a/cj/f/g/j/klmnop/foo02.md",
+    "a/dj/f/g/j/klmnop/foo02.md",
+    "a/b/h/klmnop/foo03.md",
+    "a/ca/f/g/h/klmnop/foo03.md",
+    "a/e/d/f/g/h/klmnop/foo03.md",
+    "a/da/f/g/h/klmnop/foo03.md",
+    "a/cb/f/g/h/klmnop/foo03.md",
+    "a/db/f/g/h/klmnop/foo03.md",
+    "a/cc/f/g/h/klmnop/foo03.md",
+    "a/dc/f/g/h/klmnop/foo03.md",
+    "a/cd/f/g/h/klmnop/foo03.md",
+    "a/dd/f/g/h/klmnop/foo03.md",
+    "a/ce/f/g/h/klmnop/foo03.md",
+    "a/de/f/g/h/klmnop/foo03.md",
+    "a/cf/f/g/h/klmnop/foo03.md",
+    "a/df/f/g/h/klmnop/foo03.md",
+    "a/cg/f/g/h/klmnop/foo03.md",
+    "a/dg/f/g/h/klmnop/foo03.md",
+    "a/ch/f/g/h/klmnop/foo03.md",
+    "a/dh/f/g/h/klmnop/foo03.md",
+    "a/ci/f/g/h/klmnop/foo03.md",
+    "a/di/f/g/h/klmnop/foo03.md",
+    "a/cj/f/g/h/klmnop/foo03.md",
+    "a/dj/f/g/h/klmnop/foo03.md",
+    "a/b/i/klmnop/foo03.md",
+    "a/ca/f/g/i/klmnop/foo03.md",
+    "a/e/d/f/g/i/klmnop/foo03.md",
+    "a/da/f/g/i/klmnop/foo03.md",
+    "a/cb/f/g/i/klmnop/foo03.md",
+    "a/db/f/g/i/klmnop/foo03.md",
+    "a/cc/f/g/i/klmnop/foo03.md",
+    "a/dc/f/g/i/klmnop/foo03.md",
+    "a/cd/f/g/i/klmnop/foo03.md",
+    "a/dd/f/g/i/klmnop/foo03.md",
+    "a/ce/f/g/i/klmnop/foo03.md",
+    "a/de/f/g/i/klmnop/foo03.md",
+    "a/cf/f/g/i/klmnop/foo03.md",
+    "a/df/f/g/i/klmnop/foo03.md",
+    "a/cg/f/g/i/klmnop/foo03.md",
+    "a/dg/f/g/i/klmnop/foo03.md",
+    "a/ch/f/g/i/klmnop/foo03.md",
+    "a/dh/f/g/i/klmnop/foo03.md",
+    "a/ci/f/g/i/klmnop/foo03.md",
+    "a/di/f/g/i/klmnop/foo03.md",
+    "a/cj/f/g/i/klmnop/foo03.md",
+    "a/dj/f/g/i/klmnop/foo03.md",
+    "a/b/j/klmnop/foo03.md",
+    "a/ca/f/g/j/klmnop/foo03.md",
+    "a/e/d/f/g/j/klmnop/foo03.md",
+    "a/da/f/g/j/klmnop/foo03.md",
+    "a/cb/f/g/j/klmnop/foo03.md",
+    "a/db/f/g/j/klmnop/foo03.md",
+    "a/cc/f/g/j/klmnop/foo03.md",
+    "a/dc/f/g/j/klmnop/foo03.md",
+    "a/cd/f/g/j/klmnop/foo03.md",
+    "a/dd/f/g/j/klmnop/foo03.md",
+    "a/ce/f/g/j/klmnop/foo03.md",
+    "a/de/f/g/j/klmnop/foo03.md",
+    "a/cf/f/g/j/klmnop/foo03.md",
+    "a/df/f/g/j/klmnop/foo03.md",
+    "a/cg/f/g/j/klmnop/foo03.md",
+    "a/dg/f/g/j/klmnop/foo03.md",
+    "a/ch/f/g/j/klmnop/foo03.md",
+    "a/dh/f/g/j/klmnop/foo03.md",
+    "a/ci/f/g/j/klmnop/foo03.md",
+    "a/di/f/g/j/klmnop/foo03.md",
+    "a/cj/f/g/j/klmnop/foo03.md",
+    "a/dj/f/g/j/klmnop/foo03.md",
+    "a/b/h/klmnop/foo04.md",
+    "a/ca/f/g/h/klmnop/foo04.md",
+    "a/e/d/f/g/h/klmnop/foo04.md",
+    "a/da/f/g/h/klmnop/foo04.md",
+    "a/cb/f/g/h/klmnop/foo04.md",
+    "a/db/f/g/h/klmnop/foo04.md",
+    "a/cc/f/g/h/klmnop/foo04.md",
+    "a/dc/f/g/h/klmnop/foo04.md",
+    "a/cd/f/g/h/klmnop/foo04.md",
+    "a/dd/f/g/h/klmnop/foo04.md",
+    "a/ce/f/g/h/klmnop/foo04.md",
+    "a/de/f/g/h/klmnop/foo04.md",
+    "a/cf/f/g/h/klmnop/foo04.md",
+    "a/df/f/g/h/klmnop/foo04.md",
+    "a/cg/f/g/h/klmnop/foo04.md",
+    "a/dg/f/g/h/klmnop/foo04.md",
+    "a/ch/f/g/h/klmnop/foo04.md",
+    "a/dh/f/g/h/klmnop/foo04.md",
+    "a/ci/f/g/h/klmnop/foo04.md",
+    "a/di/f/g/h/klmnop/foo04.md",
+    "a/cj/f/g/h/klmnop/foo04.md",
+    "a/dj/f/g/h/klmnop/foo04.md",
+    "a/b/i/klmnop/foo04.md",
+    "a/ca/f/g/i/klmnop/foo04.md",
+    "a/e/d/f/g/i/klmnop/foo04.md",
+    "a/da/f/g/i/klmnop/foo04.md",
+    "a/cb/f/g/i/klmnop/foo04.md",
+    "a/db/f/g/i/klmnop/foo04.md",
+    "a/cc/f/g/i/klmnop/foo04.md",
+    "a/dc/f/g/i/klmnop/foo04.md",
+    "a/cd/f/g/i/klmnop/foo04.md",
+    "a/dd/f/g/i/klmnop/foo04.md",
+    "a/ce/f/g/i/klmnop/foo04.md",
+    "a/de/f/g/i/klmnop/foo04.md",
+    "a/cf/f/g/i/klmnop/foo04.md",
+    "a/df/f/g/i/klmnop/foo04.md",
+    "a/cg/f/g/i/klmnop/foo04.md",
+    "a/dg/f/g/i/klmnop/foo04.md",
+    "a/ch/f/g/i/klmnop/foo04.md",
+    "a/dh/f/g/i/klmnop/foo04.md",
+    "a/ci/f/g/i/klmnop/foo04.md",
+    "a/di/f/g/i/klmnop/foo04.md",
+    "a/cj/f/g/i/klmnop/foo04.md",
+    "a/dj/f/g/i/klmnop/foo04.md",
+    "a/b/j/klmnop/foo04.md",
+    "a/ca/f/g/j/klmnop/foo04.md",
+    "a/e/d/f/g/j/klmnop/foo04.md",
+    "a/da/f/g/j/klmnop/foo04.md",
+    "a/cb/f/g/j/klmnop/foo04.md",
+    "a/db/f/g/j/klmnop/foo04.md",
+    "a/cc/f/g/j/klmnop/foo04.md",
+    "a/dc/f/g/j/klmnop/foo04.md",
+    "a/cd/f/g/j/klmnop/foo04.md",
+    "a/dd/f/g/j/klmnop/foo04.md",
+    "a/ce/f/g/j/klmnop/foo04.md",
+    "a/de/f/g/j/klmnop/foo04.md",
+    "a/cf/f/g/j/klmnop/foo04.md",
+    "a/df/f/g/j/klmnop/foo04.md",
+    "a/cg/f/g/j/klmnop/foo04.md",
+    "a/dg/f/g/j/klmnop/foo04.md",
+    "a/ch/f/g/j/klmnop/foo04.md",
+    "a/dh/f/g/j/klmnop/foo04.md",
+    "a/ci/f/g/j/klmnop/foo04.md",
+    "a/di/f/g/j/klmnop/foo04.md",
+    "a/cj/f/g/j/klmnop/foo04.md",
+    "a/dj/f/g/j/klmnop/foo04.md",
+    "a/b/h/klmnop/foo05.md",
+    "a/ca/f/g/h/klmnop/foo05.md",
+    "a/e/d/f/g/h/klmnop/foo05.md",
+    "a/da/f/g/h/klmnop/foo05.md",
+    "a/cb/f/g/h/klmnop/foo05.md",
+    "a/db/f/g/h/klmnop/foo05.md",
+    "a/cc/f/g/h/klmnop/foo05.md",
+    "a/dc/f/g/h/klmnop/foo05.md",
+    "a/cd/f/g/h/klmnop/foo05.md",
+    "a/dd/f/g/h/klmnop/foo05.md",
+    "a/ce/f/g/h/klmnop/foo05.md",
+    "a/de/f/g/h/klmnop/foo05.md",
+    "a/cf/f/g/h/klmnop/foo05.md",
+    "a/df/f/g/h/klmnop/foo05.md",
+    "a/cg/f/g/h/klmnop/foo05.md",
+    "a/dg/f/g/h/klmnop/foo05.md",
+    "a/ch/f/g/h/klmnop/foo05.md",
+    "a/dh/f/g/h/klmnop/foo05.md",
+    "a/ci/f/g/h/klmnop/foo05.md",
+    "a/di/f/g/h/klmnop/foo05.md",
+    "a/cj/f/g/h/klmnop/foo05.md",
+    "a/dj/f/g/h/klmnop/foo05.md",
+    "a/b/i/klmnop/foo05.md",
+    "a/ca/f/g/i/klmnop/foo05.md",
+    "a/e/d/f/g/i/klmnop/foo05.md",
+    "a/da/f/g/i/klmnop/foo05.md",
+    "a/cb/f/g/i/klmnop/foo05.md",
+    "a/db/f/g/i/klmnop/foo05.md",
+    "a/cc/f/g/i/klmnop/foo05.md",
+    "a/dc/f/g/i/klmnop/foo05.md",
+    "a/cd/f/g/i/klmnop/foo05.md",
+    "a/dd/f/g/i/klmnop/foo05.md",
+    "a/ce/f/g/i/klmnop/foo05.md",
+    "a/de/f/g/i/klmnop/foo05.md",
+    "a/cf/f/g/i/klmnop/foo05.md",
+    "a/df/f/g/i/klmnop/foo05.md",
+    "a/cg/f/g/i/klmnop/foo05.md",
+    "a/dg/f/g/i/klmnop/foo05.md",
+    "a/ch/f/g/i/klmnop/foo05.md",
+    "a/dh/f/g/i/klmnop/foo05.md",
+    "a/ci/f/g/i/klmnop/foo05.md",
+    "a/di/f/g/i/klmnop/foo05.md",
+    "a/cj/f/g/i/klmnop/foo05.md",
+    "a/dj/f/g/i/klmnop/foo05.md",
+    "a/b/j/klmnop/foo05.md",
+    "a/ca/f/g/j/klmnop/foo05.md",
+    "a/e/d/f/g/j/klmnop/foo05.md",
+    "a/da/f/g/j/klmnop/foo05.md",
+    "a/cb/f/g/j/klmnop/foo05.md",
+    "a/db/f/g/j/klmnop/foo05.md",
+    "a/cc/f/g/j/klmnop/foo05.md",
+    "a/dc/f/g/j/klmnop/foo05.md",
+    "a/cd/f/g/j/klmnop/foo05.md",
+    "a/dd/f/g/j/klmnop/foo05.md",
+    "a/ce/f/g/j/klmnop/foo05.md",
+    "a/de/f/g/j/klmnop/foo05.md",
+    "a/cf/f/g/j/klmnop/foo05.md",
+    "a/df/f/g/j/klmnop/foo05.md",
+    "a/cg/f/g/j/klmnop/foo05.md",
+    "a/dg/f/g/j/klmnop/foo05.md",
+    "a/ch/f/g/j/klmnop/foo05.md",
+    "a/dh/f/g/j/klmnop/foo05.md",
+    "a/ci/f/g/j/klmnop/foo05.md",
+    "a/di/f/g/j/klmnop/foo05.md",
+    "a/cj/f/g/j/klmnop/foo05.md",
+    "a/dj/f/g/j/klmnop/foo05.md",
+    "a/b/h/klmnop/foo06.md",
+    "a/ca/f/g/h/klmnop/foo06.md",
+    "a/e/d/f/g/h/klmnop/foo06.md",
+    "a/da/f/g/h/klmnop/foo06.md",
+    "a/cb/f/g/h/klmnop/foo06.md",
+    "a/db/f/g/h/klmnop/foo06.md",
+    "a/cc/f/g/h/klmnop/foo06.md",
+    "a/dc/f/g/h/klmnop/foo06.md",
+    "a/cd/f/g/h/klmnop/foo06.md",
+    "a/dd/f/g/h/klmnop/foo06.md",
+    "a/ce/f/g/h/klmnop/foo06.md",
+    "a/de/f/g/h/klmnop/foo06.md",
+    "a/cf/f/g/h/klmnop/foo06.md",
+    "a/df/f/g/h/klmnop/foo06.md",
+    "a/cg/f/g/h/klmnop/foo06.md",
+    "a/dg/f/g/h/klmnop/foo06.md",
+    "a/ch/f/g/h/klmnop/foo06.md",
+    "a/dh/f/g/h/klmnop/foo06.md",
+    "a/ci/f/g/h/klmnop/foo06.md",
+    "a/di/f/g/h/klmnop/foo06.md",
+    "a/cj/f/g/h/klmnop/foo06.md",
+    "a/dj/f/g/h/klmnop/foo06.md",
+    "a/b/i/klmnop/foo06.md",
+    "a/ca/f/g/i/klmnop/foo06.md",
+    "a/e/d/f/g/i/klmnop/foo06.md",
+    "a/da/f/g/i/klmnop/foo06.md",
+    "a/cb/f/g/i/klmnop/foo06.md",
+    "a/db/f/g/i/klmnop/foo06.md",
+    "a/cc/f/g/i/klmnop/foo06.md",
+    "a/dc/f/g/i/klmnop/foo06.md",
+    "a/cd/f/g/i/klmnop/foo06.md",
+    "a/dd/f/g/i/klmnop/foo06.md",
+    "a/ce/f/g/i/klmnop/foo06.md",
+    "a/de/f/g/i/klmnop/foo06.md",
+    "a/cf/f/g/i/klmnop/foo06.md",
+    "a/df/f/g/i/klmnop/foo06.md",
+    "a/cg/f/g/i/klmnop/foo06.md",
+    "a/dg/f/g/i/klmnop/foo06.md",
+    "a/ch/f/g/i/klmnop/foo06.md",
+    "a/dh/f/g/i/klmnop/foo06.md",
+    "a/ci/f/g/i/klmnop/foo06.md",
+    "a/di/f/g/i/klmnop/foo06.md",
+    "a/cj/f/g/i/klmnop/foo06.md",
+    "a/dj/f/g/i/klmnop/foo06.md",
+    "a/b/j/klmnop/foo06.md",
+    "a/ca/f/g/j/klmnop/foo06.md",
+    "a/e/d/f/g/j/klmnop/foo06.md",
+    "a/da/f/g/j/klmnop/foo06.md",
+    "a/cb/f/g/j/klmnop/foo06.md",
+    "a/db/f/g/j/klmnop/foo06.md",
+    "a/cc/f/g/j/klmnop/foo06.md",
+    "a/dc/f/g/j/klmnop/foo06.md",
+    "a/cd/f/g/j/klmnop/foo06.md",
+    "a/dd/f/g/j/klmnop/foo06.md",
+    "a/ce/f/g/j/klmnop/foo06.md",
+    "a/de/f/g/j/klmnop/foo06.md",
+    "a/cf/f/g/j/klmnop/foo06.md",
+    "a/df/f/g/j/klmnop/foo06.md",
+    "a/cg/f/g/j/klmnop/foo06.md",
+    "a/dg/f/g/j/klmnop/foo06.md",
+    "a/ch/f/g/j/klmnop/foo06.md",
+    "a/dh/f/g/j/klmnop/foo06.md",
+    "a/ci/f/g/j/klmnop/foo06.md",
+    "a/di/f/g/j/klmnop/foo06.md",
+    "a/cj/f/g/j/klmnop/foo06.md",
+    "a/dj/f/g/j/klmnop/foo06.md",
+    "a/b/h/klmnop/foo07.md",
+    "a/ca/f/g/h/klmnop/foo07.md",
+    "a/e/d/f/g/h/klmnop/foo07.md",
+    "a/da/f/g/h/klmnop/foo07.md",
+    "a/cb/f/g/h/klmnop/foo07.md",
+    "a/db/f/g/h/klmnop/foo07.md",
+    "a/cc/f/g/h/klmnop/foo07.md",
+    "a/dc/f/g/h/klmnop/foo07.md",
+    "a/cd/f/g/h/klmnop/foo07.md",
+    "a/dd/f/g/h/klmnop/foo07.md",
+    "a/ce/f/g/h/klmnop/foo07.md",
+    "a/de/f/g/h/klmnop/foo07.md",
+    "a/cf/f/g/h/klmnop/foo07.md",
+    "a/df/f/g/h/klmnop/foo07.md",
+    "a/cg/f/g/h/klmnop/foo07.md",
+    "a/dg/f/g/h/klmnop/foo07.md",
+    "a/ch/f/g/h/klmnop/foo07.md",
+    "a/dh/f/g/h/klmnop/foo07.md",
+    "a/ci/f/g/h/klmnop/foo07.md",
+    "a/di/f/g/h/klmnop/foo07.md",
+    "a/cj/f/g/h/klmnop/foo07.md",
+    "a/dj/f/g/h/klmnop/foo07.md",
+    "a/b/i/klmnop/foo07.md",
+    "a/ca/f/g/i/klmnop/foo07.md",
+    "a/e/d/f/g/i/klmnop/foo07.md",
+    "a/da/f/g/i/klmnop/foo07.md",
+    "a/cb/f/g/i/klmnop/foo07.md",
+    "a/db/f/g/i/klmnop/foo07.md",
+    "a/cc/f/g/i/klmnop/foo07.md",
+    "a/dc/f/g/i/klmnop/foo07.md",
+    "a/cd/f/g/i/klmnop/foo07.md",
+    "a/dd/f/g/i/klmnop/foo07.md",
+    "a/ce/f/g/i/klmnop/foo07.md",
+    "a/de/f/g/i/klmnop/foo07.md",
+    "a/cf/f/g/i/klmnop/foo07.md",
+    "a/df/f/g/i/klmnop/foo07.md",
+    "a/cg/f/g/i/klmnop/foo07.md",
+    "a/dg/f/g/i/klmnop/foo07.md",
+    "a/ch/f/g/i/klmnop/foo07.md",
+    "a/dh/f/g/i/klmnop/foo07.md",
+    "a/ci/f/g/i/klmnop/foo07.md",
+    "a/di/f/g/i/klmnop/foo07.md",
+    "a/cj/f/g/i/klmnop/foo07.md",
+    "a/dj/f/g/i/klmnop/foo07.md",
+    "a/b/j/klmnop/foo07.md",
+    "a/ca/f/g/j/klmnop/foo07.md",
+    "a/e/d/f/g/j/klmnop/foo07.md",
+    "a/da/f/g/j/klmnop/foo07.md",
+    "a/cb/f/g/j/klmnop/foo07.md",
+    "a/db/f/g/j/klmnop/foo07.md",
+    "a/cc/f/g/j/klmnop/foo07.md",
+    "a/dc/f/g/j/klmnop/foo07.md",
+    "a/cd/f/g/j/klmnop/foo07.md",
+    "a/dd/f/g/j/klmnop/foo07.md",
+    "a/ce/f/g/j/klmnop/foo07.md",
+    "a/de/f/g/j/klmnop/foo07.md",
+    "a/cf/f/g/j/klmnop/foo07.md",
+    "a/df/f/g/j/klmnop/foo07.md",
+    "a/cg/f/g/j/klmnop/foo07.md",
+    "a/dg/f/g/j/klmnop/foo07.md",
+    "a/ch/f/g/j/klmnop/foo07.md",
+    "a/dh/f/g/j/klmnop/foo07.md",
+    "a/ci/f/g/j/klmnop/foo07.md",
+    "a/di/f/g/j/klmnop/foo07.md",
+    "a/cj/f/g/j/klmnop/foo07.md",
+    "a/dj/f/g/j/klmnop/foo07.md",
+    "a/b/h/klmnop/foo08.md",
+    "a/ca/f/g/h/klmnop/foo08.md",
+    "a/e/d/f/g/h/klmnop/foo08.md",
+    "a/da/f/g/h/klmnop/foo08.md",
+    "a/cb/f/g/h/klmnop/foo08.md",
+    "a/db/f/g/h/klmnop/foo08.md",
+    "a/cc/f/g/h/klmnop/foo08.md",
+    "a/dc/f/g/h/klmnop/foo08.md",
+    "a/cd/f/g/h/klmnop/foo08.md",
+    "a/dd/f/g/h/klmnop/foo08.md",
+    "a/ce/f/g/h/klmnop/foo08.md",
+    "a/de/f/g/h/klmnop/foo08.md",
+    "a/cf/f/g/h/klmnop/foo08.md",
+    "a/df/f/g/h/klmnop/foo08.md",
+    "a/cg/f/g/h/klmnop/foo08.md",
+    "a/dg/f/g/h/klmnop/foo08.md",
+    "a/ch/f/g/h/klmnop/foo08.md",
+    "a/dh/f/g/h/klmnop/foo08.md",
+    "a/ci/f/g/h/klmnop/foo08.md",
+    "a/di/f/g/h/klmnop/foo08.md",
+    "a/cj/f/g/h/klmnop/foo08.md",
+    "a/dj/f/g/h/klmnop/foo08.md",
+    "a/b/i/klmnop/foo08.md",
+    "a/ca/f/g/i/klmnop/foo08.md",
+    "a/e/d/f/g/i/klmnop/foo08.md",
+    "a/da/f/g/i/klmnop/foo08.md",
+    "a/cb/f/g/i/klmnop/foo08.md",
+    "a/db/f/g/i/klmnop/foo08.md",
+    "a/cc/f/g/i/klmnop/foo08.md",
+    "a/dc/f/g/i/klmnop/foo08.md",
+    "a/cd/f/g/i/klmnop/foo08.md",
+    "a/dd/f/g/i/klmnop/foo08.md",
+    "a/ce/f/g/i/klmnop/foo08.md",
+    "a/de/f/g/i/klmnop/foo08.md",
+    "a/cf/f/g/i/klmnop/foo08.md",
+    "a/df/f/g/i/klmnop/foo08.md",
+    "a/cg/f/g/i/klmnop/foo08.md",
+    "a/dg/f/g/i/klmnop/foo08.md",
+    "a/ch/f/g/i/klmnop/foo08.md",
+    "a/dh/f/g/i/klmnop/foo08.md",
+    "a/ci/f/g/i/klmnop/foo08.md",
+    "a/di/f/g/i/klmnop/foo08.md",
+    "a/cj/f/g/i/klmnop/foo08.md",
+    "a/dj/f/g/i/klmnop/foo08.md",
+    "a/b/j/klmnop/foo08.md",
+    "a/ca/f/g/j/klmnop/foo08.md",
+    "a/e/d/f/g/j/klmnop/foo08.md",
+    "a/da/f/g/j/klmnop/foo08.md",
+    "a/cb/f/g/j/klmnop/foo08.md",
+    "a/db/f/g/j/klmnop/foo08.md",
+    "a/cc/f/g/j/klmnop/foo08.md",
+    "a/dc/f/g/j/klmnop/foo08.md",
+    "a/cd/f/g/j/klmnop/foo08.md",
+    "a/dd/f/g/j/klmnop/foo08.md",
+    "a/ce/f/g/j/klmnop/foo08.md",
+    "a/de/f/g/j/klmnop/foo08.md",
+    "a/cf/f/g/j/klmnop/foo08.md",
+    "a/df/f/g/j/klmnop/foo08.md",
+    "a/cg/f/g/j/klmnop/foo08.md",
+    "a/dg/f/g/j/klmnop/foo08.md",
+    "a/ch/f/g/j/klmnop/foo08.md",
+    "a/dh/f/g/j/klmnop/foo08.md",
+    "a/ci/f/g/j/klmnop/foo08.md",
+    "a/di/f/g/j/klmnop/foo08.md",
+    "a/cj/f/g/j/klmnop/foo08.md",
+    "a/dj/f/g/j/klmnop/foo08.md",
+    "a/b/h/klmnop/foo09.md",
+    "a/ca/f/g/h/klmnop/foo09.md",
+    "a/e/d/f/g/h/klmnop/foo09.md",
+    "a/da/f/g/h/klmnop/foo09.md",
+    "a/cb/f/g/h/klmnop/foo09.md",
+    "a/db/f/g/h/klmnop/foo09.md",
+    "a/cc/f/g/h/klmnop/foo09.md",
+    "a/dc/f/g/h/klmnop/foo09.md",
+    "a/cd/f/g/h/klmnop/foo09.md",
+    "a/dd/f/g/h/klmnop/foo09.md",
+    "a/ce/f/g/h/klmnop/foo09.md",
+    "a/de/f/g/h/klmnop/foo09.md",
+    "a/cf/f/g/h/klmnop/foo09.md",
+    "a/df/f/g/h/klmnop/foo09.md",
+    "a/cg/f/g/h/klmnop/foo09.md",
+    "a/dg/f/g/h/klmnop/foo09.md",
+    "a/ch/f/g/h/klmnop/foo09.md",
+    "a/dh/f/g/h/klmnop/foo09.md",
+    "a/ci/f/g/h/klmnop/foo09.md",
+    "a/di/f/g/h/klmnop/foo09.md",
+    "a/cj/f/g/h/klmnop/foo09.md",
+    "a/dj/f/g/h/klmnop/foo09.md",
+    "a/b/i/klmnop/foo09.md",
+    "a/ca/f/g/i/klmnop/foo09.md",
+    "a/e/d/f/g/i/klmnop/foo09.md",
+    "a/da/f/g/i/klmnop/foo09.md",
+    "a/cb/f/g/i/klmnop/foo09.md",
+    "a/db/f/g/i/klmnop/foo09.md",
+    "a/cc/f/g/i/klmnop/foo09.md",
+    "a/dc/f/g/i/klmnop/foo09.md",
+    "a/cd/f/g/i/klmnop/foo09.md",
+    "a/dd/f/g/i/klmnop/foo09.md",
+    "a/ce/f/g/i/klmnop/foo09.md",
+    "a/de/f/g/i/klmnop/foo09.md",
+    "a/cf/f/g/i/klmnop/foo09.md",
+    "a/df/f/g/i/klmnop/foo09.md",
+    "a/cg/f/g/i/klmnop/foo09.md",
+    "a/dg/f/g/i/klmnop/foo09.md",
+    "a/ch/f/g/i/klmnop/foo09.md",
+    "a/dh/f/g/i/klmnop/foo09.md",
+    "a/ci/f/g/i/klmnop/foo09.md",
+    "a/di/f/g/i/klmnop/foo09.md",
+    "a/cj/f/g/i/klmnop/foo09.md",
+    "a/dj/f/g/i/klmnop/foo09.md",
+    "a/b/j/klmnop/foo09.md",
+    "a/ca/f/g/j/klmnop/foo09.md",
+    "a/e/d/f/g/j/klmnop/foo09.md",
+    "a/da/f/g/j/klmnop/foo09.md",
+    "a/cb/f/g/j/klmnop/foo09.md",
+    "a/db/f/g/j/klmnop/foo09.md",
+    "a/cc/f/g/j/klmnop/foo09.md",
+    "a/dc/f/g/j/klmnop/foo09.md",
+    "a/cd/f/g/j/klmnop/foo09.md",
+    "a/dd/f/g/j/klmnop/foo09.md",
+    "a/ce/f/g/j/klmnop/foo09.md",
+    "a/de/f/g/j/klmnop/foo09.md",
+    "a/cf/f/g/j/klmnop/foo09.md",
+    "a/df/f/g/j/klmnop/foo09.md",
+    "a/cg/f/g/j/klmnop/foo09.md",
+    "a/dg/f/g/j/klmnop/foo09.md",
+    "a/ch/f/g/j/klmnop/foo09.md",
+    "a/dh/f/g/j/klmnop/foo09.md",
+    "a/ci/f/g/j/klmnop/foo09.md",
+    "a/di/f/g/j/klmnop/foo09.md",
+    "a/cj/f/g/j/klmnop/foo09.md",
+    "a/dj/f/g/j/klmnop/foo09.md",
+    "a/b/h/klmnop/foo10.md",
+    "a/ca/f/g/h/klmnop/foo10.md",
+    "a/e/d/f/g/h/klmnop/foo10.md",
+    "a/da/f/g/h/klmnop/foo10.md",
+    "a/cb/f/g/h/klmnop/foo10.md",
+    "a/db/f/g/h/klmnop/foo10.md",
+    "a/cc/f/g/h/klmnop/foo10.md",
+    "a/dc/f/g/h/klmnop/foo10.md",
+    "a/cd/f/g/h/klmnop/foo10.md",
+    "a/dd/f/g/h/klmnop/foo10.md",
+    "a/ce/f/g/h/klmnop/foo10.md",
+    "a/de/f/g/h/klmnop/foo10.md",
+    "a/cf/f/g/h/klmnop/foo10.md",
+    "a/df/f/g/h/klmnop/foo10.md",
+    "a/cg/f/g/h/klmnop/foo10.md",
+    "a/dg/f/g/h/klmnop/foo10.md",
+    "a/ch/f/g/h/klmnop/foo10.md",
+    "a/dh/f/g/h/klmnop/foo10.md",
+    "a/ci/f/g/h/klmnop/foo10.md",
+    "a/di/f/g/h/klmnop/foo10.md",
+    "a/cj/f/g/h/klmnop/foo10.md",
+    "a/dj/f/g/h/klmnop/foo10.md",
+    "a/b/i/klmnop/foo10.md",
+    "a/ca/f/g/i/klmnop/foo10.md",
+    "a/e/d/f/g/i/klmnop/foo10.md",
+    "a/da/f/g/i/klmnop/foo10.md",
+    "a/cb/f/g/i/klmnop/foo10.md",
+    "a/db/f/g/i/klmnop/foo10.md",
+    "a/cc/f/g/i/klmnop/foo10.md",
+    "a/dc/f/g/i/klmnop/foo10.md",
+    "a/cd/f/g/i/klmnop/foo10.md",
+    "a/dd/f/g/i/klmnop/foo10.md",
+    "a/ce/f/g/i/klmnop/foo10.md",
+    "a/de/f/g/i/klmnop/foo10.md",
+    "a/cf/f/g/i/klmnop/foo10.md",
+    "a/df/f/g/i/klmnop/foo10.md",
+    "a/cg/f/g/i/klmnop/foo10.md",
+    "a/dg/f/g/i/klmnop/foo10.md",
+    "a/ch/f/g/i/klmnop/foo10.md",
+    "a/dh/f/g/i/klmnop/foo10.md",
+    "a/ci/f/g/i/klmnop/foo10.md",
+    "a/di/f/g/i/klmnop/foo10.md",
+    "a/cj/f/g/i/klmnop/foo10.md",
+    "a/dj/f/g/i/klmnop/foo10.md",
+    "a/b/j/klmnop/foo10.md",
+    "a/ca/f/g/j/klmnop/foo10.md",
+    "a/e/d/f/g/j/klmnop/foo10.md",
+    "a/da/f/g/j/klmnop/foo10.md",
+    "a/cb/f/g/j/klmnop/foo10.md",
+    "a/db/f/g/j/klmnop/foo10.md",
+    "a/cc/f/g/j/klmnop/foo10.md",
+    "a/dc/f/g/j/klmnop/foo10.md",
+    "a/cd/f/g/j/klmnop/foo10.md",
+    "a/dd/f/g/j/klmnop/foo10.md",
+    "a/ce/f/g/j/klmnop/foo10.md",
+    "a/de/f/g/j/klmnop/foo10.md",
+    "a/cf/f/g/j/klmnop/foo10.md",
+    "a/df/f/g/j/klmnop/foo10.md",
+    "a/cg/f/g/j/klmnop/foo10.md",
+    "a/dg/f/g/j/klmnop/foo10.md",
+    "a/ch/f/g/j/klmnop/foo10.md",
+    "a/dh/f/g/j/klmnop/foo10.md",
+    "a/ci/f/g/j/klmnop/foo10.md",
+    "a/di/f/g/j/klmnop/foo10.md",
+    "a/cj/f/g/j/klmnop/foo10.md",
+    "a/dj/f/g/j/klmnop/foo10.md",
+    "a/b/h/klmnop/foo01.txt",
+    "a/ca/f/g/h/klmnop/foo01.txt",
+    "a/e/d/f/g/h/klmnop/foo01.txt",
+    "a/da/f/g/h/klmnop/foo01.txt",
+    "a/cb/f/g/h/klmnop/foo01.txt",
+    "a/db/f/g/h/klmnop/foo01.txt",
+    "a/cc/f/g/h/klmnop/foo01.txt",
+    "a/dc/f/g/h/klmnop/foo01.txt",
+    "a/cd/f/g/h/klmnop/foo01.txt",
+    "a/dd/f/g/h/klmnop/foo01.txt",
+    "a/ce/f/g/h/klmnop/foo01.txt",
+    "a/de/f/g/h/klmnop/foo01.txt",
+    "a/cf/f/g/h/klmnop/foo01.txt",
+    "a/df/f/g/h/klmnop/foo01.txt",
+    "a/cg/f/g/h/klmnop/foo01.txt",
+    "a/dg/f/g/h/klmnop/foo01.txt",
+    "a/ch/f/g/h/klmnop/foo01.txt",
+    "a/dh/f/g/h/klmnop/foo01.txt",
+    "a/ci/f/g/h/klmnop/foo01.txt",
+    "a/di/f/g/h/klmnop/foo01.txt",
+    "a/cj/f/g/h/klmnop/foo01.txt",
+    "a/dj/f/g/h/klmnop/foo01.txt",
+    "a/b/i/klmnop/foo01.txt",
+    "a/ca/f/g/i/klmnop/foo01.txt",
+    "a/e/d/f/g/i/klmnop/foo01.txt",
+    "a/da/f/g/i/klmnop/foo01.txt",
+    "a/cb/f/g/i/klmnop/foo01.txt",
+    "a/db/f/g/i/klmnop/foo01.txt",
+    "a/cc/f/g/i/klmnop/foo01.txt",
+    "a/dc/f/g/i/klmnop/foo01.txt",
+    "a/cd/f/g/i/klmnop/foo01.txt",
+    "a/dd/f/g/i/klmnop/foo01.txt",
+    "a/ce/f/g/i/klmnop/foo01.txt",
+    "a/de/f/g/i/klmnop/foo01.txt",
+    "a/cf/f/g/i/klmnop/foo01.txt",
+    "a/df/f/g/i/klmnop/foo01.txt",
+    "a/cg/f/g/i/klmnop/foo01.txt",
+    "a/dg/f/g/i/klmnop/foo01.txt",
+    "a/ch/f/g/i/klmnop/foo01.txt",
+    "a/dh/f/g/i/klmnop/foo01.txt",
+    "a/ci/f/g/i/klmnop/foo01.txt",
+    "a/di/f/g/i/klmnop/foo01.txt",
+    "a/cj/f/g/i/klmnop/foo01.txt",
+    "a/dj/f/g/i/klmnop/foo01.txt",
+    "a/b/j/klmnop/foo01.txt",
+    "a/ca/f/g/j/klmnop/foo01.txt",
+    "a/e/d/f/g/j/klmnop/foo01.txt",
+    "a/da/f/g/j/klmnop/foo01.txt",
+    "a/cb/f/g/j/klmnop/foo01.txt",
+    "a/db/f/g/j/klmnop/foo01.txt",
+    "a/cc/f/g/j/klmnop/foo01.txt",
+    "a/dc/f/g/j/klmnop/foo01.txt",
+    "a/cd/f/g/j/klmnop/foo01.txt",
+    "a/dd/f/g/j/klmnop/foo01.txt",
+    "a/ce/f/g/j/klmnop/foo01.txt",
+    "a/de/f/g/j/klmnop/foo01.txt",
+    "a/cf/f/g/j/klmnop/foo01.txt",
+    "a/df/f/g/j/klmnop/foo01.txt",
+    "a/cg/f/g/j/klmnop/foo01.txt",
+    "a/dg/f/g/j/klmnop/foo01.txt",
+    "a/ch/f/g/j/klmnop/foo01.txt",
+    "a/dh/f/g/j/klmnop/foo01.txt",
+    "a/ci/f/g/j/klmnop/foo01.txt",
+    "a/di/f/g/j/klmnop/foo01.txt",
+    "a/cj/f/g/j/klmnop/foo01.txt",
+    "a/dj/f/g/j/klmnop/foo01.txt",
+    "a/b/h/klmnop/foo02.txt",
+    "a/ca/f/g/h/klmnop/foo02.txt",
+    "a/e/d/f/g/h/klmnop/foo02.txt",
+    "a/da/f/g/h/klmnop/foo02.txt",
+    "a/cb/f/g/h/klmnop/foo02.txt",
+    "a/db/f/g/h/klmnop/foo02.txt",
+    "a/cc/f/g/h/klmnop/foo02.txt",
+    "a/dc/f/g/h/klmnop/foo02.txt",
+    "a/cd/f/g/h/klmnop/foo02.txt",
+    "a/dd/f/g/h/klmnop/foo02.txt",
+    "a/ce/f/g/h/klmnop/foo02.txt",
+    "a/de/f/g/h/klmnop/foo02.txt",
+    "a/cf/f/g/h/klmnop/foo02.txt",
+    "a/df/f/g/h/klmnop/foo02.txt",
+    "a/cg/f/g/h/klmnop/foo02.txt",
+    "a/dg/f/g/h/klmnop/foo02.txt",
+    "a/ch/f/g/h/klmnop/foo02.txt",
+    "a/dh/f/g/h/klmnop/foo02.txt",
+    "a/ci/f/g/h/klmnop/foo02.txt",
+    "a/di/f/g/h/klmnop/foo02.txt",
+    "a/cj/f/g/h/klmnop/foo02.txt",
+    "a/dj/f/g/h/klmnop/foo02.txt",
+    "a/b/i/klmnop/foo02.txt",
+    "a/ca/f/g/i/klmnop/foo02.txt",
+    "a/e/d/f/g/i/klmnop/foo02.txt",
+    "a/da/f/g/i/klmnop/foo02.txt",
+    "a/cb/f/g/i/klmnop/foo02.txt",
+    "a/db/f/g/i/klmnop/foo02.txt",
+    "a/cc/f/g/i/klmnop/foo02.txt",
+    "a/dc/f/g/i/klmnop/foo02.txt",
+    "a/cd/f/g/i/klmnop/foo02.txt",
+    "a/dd/f/g/i/klmnop/foo02.txt",
+    "a/ce/f/g/i/klmnop/foo02.txt",
+    "a/de/f/g/i/klmnop/foo02.txt",
+    "a/cf/f/g/i/klmnop/foo02.txt",
+    "a/df/f/g/i/klmnop/foo02.txt",
+    "a/cg/f/g/i/klmnop/foo02.txt",
+    "a/dg/f/g/i/klmnop/foo02.txt",
+    "a/ch/f/g/i/klmnop/foo02.txt",
+    "a/dh/f/g/i/klmnop/foo02.txt",
+    "a/ci/f/g/i/klmnop/foo02.txt",
+    "a/di/f/g/i/klmnop/foo02.txt",
+    "a/cj/f/g/i/klmnop/foo02.txt",
+    "a/dj/f/g/i/klmnop/foo02.txt",
+    "a/b/j/klmnop/foo02.txt",
+    "a/ca/f/g/j/klmnop/foo02.txt",
+    "a/e/d/f/g/j/klmnop/foo02.txt",
+    "a/da/f/g/j/klmnop/foo02.txt",
+    "a/cb/f/g/j/klmnop/foo02.txt",
+    "a/db/f/g/j/klmnop/foo02.txt",
+    "a/cc/f/g/j/klmnop/foo02.txt",
+    "a/dc/f/g/j/klmnop/foo02.txt",
+    "a/cd/f/g/j/klmnop/foo02.txt",
+    "a/dd/f/g/j/klmnop/foo02.txt",
+    "a/ce/f/g/j/klmnop/foo02.txt",
+    "a/de/f/g/j/klmnop/foo02.txt",
+    "a/cf/f/g/j/klmnop/foo02.txt",
+    "a/df/f/g/j/klmnop/foo02.txt",
+    "a/cg/f/g/j/klmnop/foo02.txt",
+    "a/dg/f/g/j/klmnop/foo02.txt",
+    "a/ch/f/g/j/klmnop/foo02.txt",
+    "a/dh/f/g/j/klmnop/foo02.txt",
+    "a/ci/f/g/j/klmnop/foo02.txt",
+    "a/di/f/g/j/klmnop/foo02.txt",
+    "a/cj/f/g/j/klmnop/foo02.txt",
+    "a/dj/f/g/j/klmnop/foo02.txt",
+    "a/b/h/klmnop/foo03.txt",
+    "a/ca/f/g/h/klmnop/foo03.txt",
+    "a/e/d/f/g/h/klmnop/foo03.txt",
+    "a/da/f/g/h/klmnop/foo03.txt",
+    "a/cb/f/g/h/klmnop/foo03.txt",
+    "a/db/f/g/h/klmnop/foo03.txt",
+    "a/cc/f/g/h/klmnop/foo03.txt",
+    "a/dc/f/g/h/klmnop/foo03.txt",
+    "a/cd/f/g/h/klmnop/foo03.txt",
+    "a/dd/f/g/h/klmnop/foo03.txt",
+    "a/ce/f/g/h/klmnop/foo03.txt",
+    "a/de/f/g/h/klmnop/foo03.txt",
+    "a/cf/f/g/h/klmnop/foo03.txt",
+    "a/df/f/g/h/klmnop/foo03.txt",
+    "a/cg/f/g/h/klmnop/foo03.txt",
+    "a/dg/f/g/h/klmnop/foo03.txt",
+    "a/ch/f/g/h/klmnop/foo03.txt",
+    "a/dh/f/g/h/klmnop/foo03.txt",
+    "a/ci/f/g/h/klmnop/foo03.txt",
+    "a/di/f/g/h/klmnop/foo03.txt",
+    "a/cj/f/g/h/klmnop/foo03.txt",
+    "a/dj/f/g/h/klmnop/foo03.txt",
+    "a/b/i/klmnop/foo03.txt",
+    "a/ca/f/g/i/klmnop/foo03.txt",
+    "a/e/d/f/g/i/klmnop/foo03.txt",
+    "a/da/f/g/i/klmnop/foo03.txt",
+    "a/cb/f/g/i/klmnop/foo03.txt",
+    "a/db/f/g/i/klmnop/foo03.txt",
+    "a/cc/f/g/i/klmnop/foo03.txt",
+    "a/dc/f/g/i/klmnop/foo03.txt",
+    "a/cd/f/g/i/klmnop/foo03.txt",
+    "a/dd/f/g/i/klmnop/foo03.txt",
+    "a/ce/f/g/i/klmnop/foo03.txt",
+    "a/de/f/g/i/klmnop/foo03.txt",
+    "a/cf/f/g/i/klmnop/foo03.txt",
+    "a/df/f/g/i/klmnop/foo03.txt",
+    "a/cg/f/g/i/klmnop/foo03.txt",
+    "a/dg/f/g/i/klmnop/foo03.txt",
+    "a/ch/f/g/i/klmnop/foo03.txt",
+    "a/dh/f/g/i/klmnop/foo03.txt",
+    "a/ci/f/g/i/klmnop/foo03.txt",
+    "a/di/f/g/i/klmnop/foo03.txt",
+    "a/cj/f/g/i/klmnop/foo03.txt",
+    "a/dj/f/g/i/klmnop/foo03.txt",
+    "a/b/j/klmnop/foo03.txt",
+    "a/ca/f/g/j/klmnop/foo03.txt",
+    "a/e/d/f/g/j/klmnop/foo03.txt",
+    "a/da/f/g/j/klmnop/foo03.txt",
+    "a/cb/f/g/j/klmnop/foo03.txt",
+    "a/db/f/g/j/klmnop/foo03.txt",
+    "a/cc/f/g/j/klmnop/foo03.txt",
+    "a/dc/f/g/j/klmnop/foo03.txt",
+    "a/cd/f/g/j/klmnop/foo03.txt",
+    "a/dd/f/g/j/klmnop/foo03.txt",
+    "a/ce/f/g/j/klmnop/foo03.txt",
+    "a/de/f/g/j/klmnop/foo03.txt",
+    "a/cf/f/g/j/klmnop/foo03.txt",
+    "a/df/f/g/j/klmnop/foo03.txt",
+    "a/cg/f/g/j/klmnop/foo03.txt",
+    "a/dg/f/g/j/klmnop/foo03.txt",
+    "a/ch/f/g/j/klmnop/foo03.txt",
+    "a/dh/f/g/j/klmnop/foo03.txt",
+    "a/ci/f/g/j/klmnop/foo03.txt",
+    "a/di/f/g/j/klmnop/foo03.txt",
+    "a/cj/f/g/j/klmnop/foo03.txt",
+    "a/dj/f/g/j/klmnop/foo03.txt",
+    "a/b/h/klmnop/foo04.txt",
+    "a/ca/f/g/h/klmnop/foo04.txt",
+    "a/e/d/f/g/h/klmnop/foo04.txt",
+    "a/da/f/g/h/klmnop/foo04.txt",
+    "a/cb/f/g/h/klmnop/foo04.txt",
+    "a/db/f/g/h/klmnop/foo04.txt",
+    "a/cc/f/g/h/klmnop/foo04.txt",
+    "a/dc/f/g/h/klmnop/foo04.txt",
+    "a/cd/f/g/h/klmnop/foo04.txt",
+    "a/dd/f/g/h/klmnop/foo04.txt",
+    "a/ce/f/g/h/klmnop/foo04.txt",
+    "a/de/f/g/h/klmnop/foo04.txt",
+    "a/cf/f/g/h/klmnop/foo04.txt",
+    "a/df/f/g/h/klmnop/foo04.txt",
+    "a/cg/f/g/h/klmnop/foo04.txt",
+    "a/dg/f/g/h/klmnop/foo04.txt",
+    "a/ch/f/g/h/klmnop/foo04.txt",
+    "a/dh/f/g/h/klmnop/foo04.txt",
+    "a/ci/f/g/h/klmnop/foo04.txt",
+    "a/di/f/g/h/klmnop/foo04.txt",
+    "a/cj/f/g/h/klmnop/foo04.txt",
+    "a/dj/f/g/h/klmnop/foo04.txt",
+    "a/b/i/klmnop/foo04.txt",
+    "a/ca/f/g/i/klmnop/foo04.txt",
+    "a/e/d/f/g/i/klmnop/foo04.txt",
+    "a/da/f/g/i/klmnop/foo04.txt",
+    "a/cb/f/g/i/klmnop/foo04.txt",
+    "a/db/f/g/i/klmnop/foo04.txt",
+    "a/cc/f/g/i/klmnop/foo04.txt",
+    "a/dc/f/g/i/klmnop/foo04.txt",
+    "a/cd/f/g/i/klmnop/foo04.txt",
+    "a/dd/f/g/i/klmnop/foo04.txt",
+    "a/ce/f/g/i/klmnop/foo04.txt",
+    "a/de/f/g/i/klmnop/foo04.txt",
+    "a/cf/f/g/i/klmnop/foo04.txt",
+    "a/df/f/g/i/klmnop/foo04.txt",
+    "a/cg/f/g/i/klmnop/foo04.txt",
+    "a/dg/f/g/i/klmnop/foo04.txt",
+    "a/ch/f/g/i/klmnop/foo04.txt",
+    "a/dh/f/g/i/klmnop/foo04.txt",
+    "a/ci/f/g/i/klmnop/foo04.txt",
+    "a/di/f/g/i/klmnop/foo04.txt",
+    "a/cj/f/g/i/klmnop/foo04.txt",
+    "a/dj/f/g/i/klmnop/foo04.txt",
+    "a/b/j/klmnop/foo04.txt",
+    "a/ca/f/g/j/klmnop/foo04.txt",
+    "a/e/d/f/g/j/klmnop/foo04.txt",
+    "a/da/f/g/j/klmnop/foo04.txt",
+    "a/cb/f/g/j/klmnop/foo04.txt",
+    "a/db/f/g/j/klmnop/foo04.txt",
+    "a/cc/f/g/j/klmnop/foo04.txt",
+    "a/dc/f/g/j/klmnop/foo04.txt",
+    "a/cd/f/g/j/klmnop/foo04.txt",
+    "a/dd/f/g/j/klmnop/foo04.txt",
+    "a/ce/f/g/j/klmnop/foo04.txt",
+    "a/de/f/g/j/klmnop/foo04.txt",
+    "a/cf/f/g/j/klmnop/foo04.txt",
+    "a/df/f/g/j/klmnop/foo04.txt",
+    "a/cg/f/g/j/klmnop/foo04.txt",
+    "a/dg/f/g/j/klmnop/foo04.txt",
+    "a/ch/f/g/j/klmnop/foo04.txt",
+    "a/dh/f/g/j/klmnop/foo04.txt",
+    "a/ci/f/g/j/klmnop/foo04.txt",
+    "a/di/f/g/j/klmnop/foo04.txt",
+    "a/cj/f/g/j/klmnop/foo04.txt",
+    "a/dj/f/g/j/klmnop/foo04.txt",
+    "a/b/h/klmnop/foo05.txt",
+    "a/ca/f/g/h/klmnop/foo05.txt",
+    "a/e/d/f/g/h/klmnop/foo05.txt",
+    "a/da/f/g/h/klmnop/foo05.txt",
+    "a/cb/f/g/h/klmnop/foo05.txt",
+    "a/db/f/g/h/klmnop/foo05.txt",
+    "a/cc/f/g/h/klmnop/foo05.txt",
+    "a/dc/f/g/h/klmnop/foo05.txt",
+    "a/cd/f/g/h/klmnop/foo05.txt",
+    "a/dd/f/g/h/klmnop/foo05.txt",
+    "a/ce/f/g/h/klmnop/foo05.txt",
+    "a/de/f/g/h/klmnop/foo05.txt",
+    "a/cf/f/g/h/klmnop/foo05.txt",
+    "a/df/f/g/h/klmnop/foo05.txt",
+    "a/cg/f/g/h/klmnop/foo05.txt",
+    "a/dg/f/g/h/klmnop/foo05.txt",
+    "a/ch/f/g/h/klmnop/foo05.txt",
+    "a/dh/f/g/h/klmnop/foo05.txt",
+    "a/ci/f/g/h/klmnop/foo05.txt",
+    "a/di/f/g/h/klmnop/foo05.txt",
+    "a/cj/f/g/h/klmnop/foo05.txt",
+    "a/dj/f/g/h/klmnop/foo05.txt",
+    "a/b/i/klmnop/foo05.txt",
+    "a/ca/f/g/i/klmnop/foo05.txt",
+    "a/e/d/f/g/i/klmnop/foo05.txt",
+    "a/da/f/g/i/klmnop/foo05.txt",
+    "a/cb/f/g/i/klmnop/foo05.txt",
+    "a/db/f/g/i/klmnop/foo05.txt",
+    "a/cc/f/g/i/klmnop/foo05.txt",
+    "a/dc/f/g/i/klmnop/foo05.txt",
+    "a/cd/f/g/i/klmnop/foo05.txt",
+    "a/dd/f/g/i/klmnop/foo05.txt",
+    "a/ce/f/g/i/klmnop/foo05.txt",
+    "a/de/f/g/i/klmnop/foo05.txt",
+    "a/cf/f/g/i/klmnop/foo05.txt",
+    "a/df/f/g/i/klmnop/foo05.txt",
+    "a/cg/f/g/i/klmnop/foo05.txt",
+    "a/dg/f/g/i/klmnop/foo05.txt",
+    "a/ch/f/g/i/klmnop/foo05.txt",
+    "a/dh/f/g/i/klmnop/foo05.txt",
+    "a/ci/f/g/i/klmnop/foo05.txt",
+    "a/di/f/g/i/klmnop/foo05.txt",
+    "a/cj/f/g/i/klmnop/foo05.txt",
+    "a/dj/f/g/i/klmnop/foo05.txt",
+    "a/b/j/klmnop/foo05.txt",
+    "a/ca/f/g/j/klmnop/foo05.txt",
+    "a/e/d/f/g/j/klmnop/foo05.txt",
+    "a/da/f/g/j/klmnop/foo05.txt",
+    "a/cb/f/g/j/klmnop/foo05.txt",
+    "a/db/f/g/j/klmnop/foo05.txt",
+    "a/cc/f/g/j/klmnop/foo05.txt",
+    "a/dc/f/g/j/klmnop/foo05.txt",
+    "a/cd/f/g/j/klmnop/foo05.txt",
+    "a/dd/f/g/j/klmnop/foo05.txt",
+    "a/ce/f/g/j/klmnop/foo05.txt",
+    "a/de/f/g/j/klmnop/foo05.txt",
+    "a/cf/f/g/j/klmnop/foo05.txt",
+    "a/df/f/g/j/klmnop/foo05.txt",
+    "a/cg/f/g/j/klmnop/foo05.txt",
+    "a/dg/f/g/j/klmnop/foo05.txt",
+    "a/ch/f/g/j/klmnop/foo05.txt",
+    "a/dh/f/g/j/klmnop/foo05.txt",
+    "a/ci/f/g/j/klmnop/foo05.txt",
+    "a/di/f/g/j/klmnop/foo05.txt",
+    "a/cj/f/g/j/klmnop/foo05.txt",
+    "a/dj/f/g/j/klmnop/foo05.txt",
+    "a/b/h/klmnop/foo06.txt",
+    "a/ca/f/g/h/klmnop/foo06.txt",
+    "a/e/d/f/g/h/klmnop/foo06.txt",
+    "a/da/f/g/h/klmnop/foo06.txt",
+    "a/cb/f/g/h/klmnop/foo06.txt",
+    "a/db/f/g/h/klmnop/foo06.txt",
+    "a/cc/f/g/h/klmnop/foo06.txt",
+    "a/dc/f/g/h/klmnop/foo06.txt",
+    "a/cd/f/g/h/klmnop/foo06.txt",
+    "a/dd/f/g/h/klmnop/foo06.txt",
+    "a/ce/f/g/h/klmnop/foo06.txt",
+    "a/de/f/g/h/klmnop/foo06.txt",
+    "a/cf/f/g/h/klmnop/foo06.txt",
+    "a/df/f/g/h/klmnop/foo06.txt",
+    "a/cg/f/g/h/klmnop/foo06.txt",
+    "a/dg/f/g/h/klmnop/foo06.txt",
+    "a/ch/f/g/h/klmnop/foo06.txt",
+    "a/dh/f/g/h/klmnop/foo06.txt",
+    "a/ci/f/g/h/klmnop/foo06.txt",
+    "a/di/f/g/h/klmnop/foo06.txt",
+    "a/cj/f/g/h/klmnop/foo06.txt",
+    "a/dj/f/g/h/klmnop/foo06.txt",
+    "a/b/i/klmnop/foo06.txt",
+    "a/ca/f/g/i/klmnop/foo06.txt",
+    "a/e/d/f/g/i/klmnop/foo06.txt",
+    "a/da/f/g/i/klmnop/foo06.txt",
+    "a/cb/f/g/i/klmnop/foo06.txt",
+    "a/db/f/g/i/klmnop/foo06.txt",
+    "a/cc/f/g/i/klmnop/foo06.txt",
+    "a/dc/f/g/i/klmnop/foo06.txt",
+    "a/cd/f/g/i/klmnop/foo06.txt",
+    "a/dd/f/g/i/klmnop/foo06.txt",
+    "a/ce/f/g/i/klmnop/foo06.txt",
+    "a/de/f/g/i/klmnop/foo06.txt",
+    "a/cf/f/g/i/klmnop/foo06.txt",
+    "a/df/f/g/i/klmnop/foo06.txt",
+    "a/cg/f/g/i/klmnop/foo06.txt",
+    "a/dg/f/g/i/klmnop/foo06.txt",
+    "a/ch/f/g/i/klmnop/foo06.txt",
+    "a/dh/f/g/i/klmnop/foo06.txt",
+    "a/ci/f/g/i/klmnop/foo06.txt",
+    "a/di/f/g/i/klmnop/foo06.txt",
+    "a/cj/f/g/i/klmnop/foo06.txt",
+    "a/dj/f/g/i/klmnop/foo06.txt",
+    "a/b/j/klmnop/foo06.txt",
+    "a/ca/f/g/j/klmnop/foo06.txt",
+    "a/e/d/f/g/j/klmnop/foo06.txt",
+    "a/da/f/g/j/klmnop/foo06.txt",
+    "a/cb/f/g/j/klmnop/foo06.txt",
+    "a/db/f/g/j/klmnop/foo06.txt",
+    "a/cc/f/g/j/klmnop/foo06.txt",
+    "a/dc/f/g/j/klmnop/foo06.txt",
+    "a/cd/f/g/j/klmnop/foo06.txt",
+    "a/dd/f/g/j/klmnop/foo06.txt",
+    "a/ce/f/g/j/klmnop/foo06.txt",
+    "a/de/f/g/j/klmnop/foo06.txt",
+    "a/cf/f/g/j/klmnop/foo06.txt",
+    "a/df/f/g/j/klmnop/foo06.txt",
+    "a/cg/f/g/j/klmnop/foo06.txt",
+    "a/dg/f/g/j/klmnop/foo06.txt",
+    "a/ch/f/g/j/klmnop/foo06.txt",
+    "a/dh/f/g/j/klmnop/foo06.txt",
+    "a/ci/f/g/j/klmnop/foo06.txt",
+    "a/di/f/g/j/klmnop/foo06.txt",
+    "a/cj/f/g/j/klmnop/foo06.txt",
+    "a/dj/f/g/j/klmnop/foo06.txt",
+    "a/b/h/klmnop/foo07.txt",
+    "a/ca/f/g/h/klmnop/foo07.txt",
+    "a/e/d/f/g/h/klmnop/foo07.txt",
+    "a/da/f/g/h/klmnop/foo07.txt",
+    "a/cb/f/g/h/klmnop/foo07.txt",
+    "a/db/f/g/h/klmnop/foo07.txt",
+    "a/cc/f/g/h/klmnop/foo07.txt",
+    "a/dc/f/g/h/klmnop/foo07.txt",
+    "a/cd/f/g/h/klmnop/foo07.txt",
+    "a/dd/f/g/h/klmnop/foo07.txt",
+    "a/ce/f/g/h/klmnop/foo07.txt",
+    "a/de/f/g/h/klmnop/foo07.txt",
+    "a/cf/f/g/h/klmnop/foo07.txt",
+    "a/df/f/g/h/klmnop/foo07.txt",
+    "a/cg/f/g/h/klmnop/foo07.txt",
+    "a/dg/f/g/h/klmnop/foo07.txt",
+    "a/ch/f/g/h/klmnop/foo07.txt",
+    "a/dh/f/g/h/klmnop/foo07.txt",
+    "a/ci/f/g/h/klmnop/foo07.txt",
+    "a/di/f/g/h/klmnop/foo07.txt",
+    "a/cj/f/g/h/klmnop/foo07.txt",
+    "a/dj/f/g/h/klmnop/foo07.txt",
+    "a/b/i/klmnop/foo07.txt",
+    "a/ca/f/g/i/klmnop/foo07.txt",
+    "a/e/d/f/g/i/klmnop/foo07.txt",
+    "a/da/f/g/i/klmnop/foo07.txt",
+    "a/cb/f/g/i/klmnop/foo07.txt",
+    "a/db/f/g/i/klmnop/foo07.txt",
+    "a/cc/f/g/i/klmnop/foo07.txt",
+    "a/dc/f/g/i/klmnop/foo07.txt",
+    "a/cd/f/g/i/klmnop/foo07.txt",
+    "a/dd/f/g/i/klmnop/foo07.txt",
+    "a/ce/f/g/i/klmnop/foo07.txt",
+    "a/de/f/g/i/klmnop/foo07.txt",
+    "a/cf/f/g/i/klmnop/foo07.txt",
+    "a/df/f/g/i/klmnop/foo07.txt",
+    "a/cg/f/g/i/klmnop/foo07.txt",
+    "a/dg/f/g/i/klmnop/foo07.txt",
+    "a/ch/f/g/i/klmnop/foo07.txt",
+    "a/dh/f/g/i/klmnop/foo07.txt",
+    "a/ci/f/g/i/klmnop/foo07.txt",
+    "a/di/f/g/i/klmnop/foo07.txt",
+    "a/cj/f/g/i/klmnop/foo07.txt",
+    "a/dj/f/g/i/klmnop/foo07.txt",
+    "a/b/j/klmnop/foo07.txt",
+    "a/ca/f/g/j/klmnop/foo07.txt",
+    "a/e/d/f/g/j/klmnop/foo07.txt",
+    "a/da/f/g/j/klmnop/foo07.txt",
+    "a/cb/f/g/j/klmnop/foo07.txt",
+    "a/db/f/g/j/klmnop/foo07.txt",
+    "a/cc/f/g/j/klmnop/foo07.txt",
+    "a/dc/f/g/j/klmnop/foo07.txt",
+    "a/cd/f/g/j/klmnop/foo07.txt",
+    "a/dd/f/g/j/klmnop/foo07.txt",
+    "a/ce/f/g/j/klmnop/foo07.txt",
+    "a/de/f/g/j/klmnop/foo07.txt",
+    "a/cf/f/g/j/klmnop/foo07.txt",
+    "a/df/f/g/j/klmnop/foo07.txt",
+    "a/cg/f/g/j/klmnop/foo07.txt",
+    "a/dg/f/g/j/klmnop/foo07.txt",
+    "a/ch/f/g/j/klmnop/foo07.txt",
+    "a/dh/f/g/j/klmnop/foo07.txt",
+    "a/ci/f/g/j/klmnop/foo07.txt",
+    "a/di/f/g/j/klmnop/foo07.txt",
+    "a/cj/f/g/j/klmnop/foo07.txt",
+    "a/dj/f/g/j/klmnop/foo07.txt",
+    "a/b/h/klmnop/foo08.txt",
+    "a/ca/f/g/h/klmnop/foo08.txt",
+    "a/e/d/f/g/h/klmnop/foo08.txt",
+    "a/da/f/g/h/klmnop/foo08.txt",
+    "a/cb/f/g/h/klmnop/foo08.txt",
+    "a/db/f/g/h/klmnop/foo08.txt",
+    "a/cc/f/g/h/klmnop/foo08.txt",
+    "a/dc/f/g/h/klmnop/foo08.txt",
+    "a/cd/f/g/h/klmnop/foo08.txt",
+    "a/dd/f/g/h/klmnop/foo08.txt",
+    "a/ce/f/g/h/klmnop/foo08.txt",
+    "a/de/f/g/h/klmnop/foo08.txt",
+    "a/cf/f/g/h/klmnop/foo08.txt",
+    "a/df/f/g/h/klmnop/foo08.txt",
+    "a/cg/f/g/h/klmnop/foo08.txt",
+    "a/dg/f/g/h/klmnop/foo08.txt",
+    "a/ch/f/g/h/klmnop/foo08.txt",
+    "a/dh/f/g/h/klmnop/foo08.txt",
+    "a/ci/f/g/h/klmnop/foo08.txt",
+    "a/di/f/g/h/klmnop/foo08.txt",
+    "a/cj/f/g/h/klmnop/foo08.txt",
+    "a/dj/f/g/h/klmnop/foo08.txt",
+    "a/b/i/klmnop/foo08.txt",
+    "a/ca/f/g/i/klmnop/foo08.txt",
+    "a/e/d/f/g/i/klmnop/foo08.txt",
+    "a/da/f/g/i/klmnop/foo08.txt",
+    "a/cb/f/g/i/klmnop/foo08.txt",
+    "a/db/f/g/i/klmnop/foo08.txt",
+    "a/cc/f/g/i/klmnop/foo08.txt",
+    "a/dc/f/g/i/klmnop/foo08.txt",
+    "a/cd/f/g/i/klmnop/foo08.txt",
+    "a/dd/f/g/i/klmnop/foo08.txt",
+    "a/ce/f/g/i/klmnop/foo08.txt",
+    "a/de/f/g/i/klmnop/foo08.txt",
+    "a/cf/f/g/i/klmnop/foo08.txt",
+    "a/df/f/g/i/klmnop/foo08.txt",
+    "a/cg/f/g/i/klmnop/foo08.txt",
+    "a/dg/f/g/i/klmnop/foo08.txt",
+    "a/ch/f/g/i/klmnop/foo08.txt",
+    "a/dh/f/g/i/klmnop/foo08.txt",
+    "a/ci/f/g/i/klmnop/foo08.txt",
+    "a/di/f/g/i/klmnop/foo08.txt",
+    "a/cj/f/g/i/klmnop/foo08.txt",
+    "a/dj/f/g/i/klmnop/foo08.txt",
+    "a/b/j/klmnop/foo08.txt",
+    "a/ca/f/g/j/klmnop/foo08.txt",
+    "a/e/d/f/g/j/klmnop/foo08.txt",
+    "a/da/f/g/j/klmnop/foo08.txt",
+    "a/cb/f/g/j/klmnop/foo08.txt",
+    "a/db/f/g/j/klmnop/foo08.txt",
+    "a/cc/f/g/j/klmnop/foo08.txt",
+    "a/dc/f/g/j/klmnop/foo08.txt",
+    "a/cd/f/g/j/klmnop/foo08.txt",
+    "a/dd/f/g/j/klmnop/foo08.txt",
+    "a/ce/f/g/j/klmnop/foo08.txt",
+    "a/de/f/g/j/klmnop/foo08.txt",
+    "a/cf/f/g/j/klmnop/foo08.txt",
+    "a/df/f/g/j/klmnop/foo08.txt",
+    "a/cg/f/g/j/klmnop/foo08.txt",
+    "a/dg/f/g/j/klmnop/foo08.txt",
+    "a/ch/f/g/j/klmnop/foo08.txt",
+    "a/dh/f/g/j/klmnop/foo08.txt",
+    "a/ci/f/g/j/klmnop/foo08.txt",
+    "a/di/f/g/j/klmnop/foo08.txt",
+    "a/cj/f/g/j/klmnop/foo08.txt",
+    "a/dj/f/g/j/klmnop/foo08.txt",
+    "a/b/h/klmnop/foo09.txt",
+    "a/ca/f/g/h/klmnop/foo09.txt",
+    "a/e/d/f/g/h/klmnop/foo09.txt",
+    "a/da/f/g/h/klmnop/foo09.txt",
+    "a/cb/f/g/h/klmnop/foo09.txt",
+    "a/db/f/g/h/klmnop/foo09.txt",
+    "a/cc/f/g/h/klmnop/foo09.txt",
+    "a/dc/f/g/h/klmnop/foo09.txt",
+    "a/cd/f/g/h/klmnop/foo09.txt",
+    "a/dd/f/g/h/klmnop/foo09.txt",
+    "a/ce/f/g/h/klmnop/foo09.txt",
+    "a/de/f/g/h/klmnop/foo09.txt",
+    "a/cf/f/g/h/klmnop/foo09.txt",
+    "a/df/f/g/h/klmnop/foo09.txt",
+    "a/cg/f/g/h/klmnop/foo09.txt",
+    "a/dg/f/g/h/klmnop/foo09.txt",
+    "a/ch/f/g/h/klmnop/foo09.txt",
+    "a/dh/f/g/h/klmnop/foo09.txt",
+    "a/ci/f/g/h/klmnop/foo09.txt",
+    "a/di/f/g/h/klmnop/foo09.txt",
+    "a/cj/f/g/h/klmnop/foo09.txt",
+    "a/dj/f/g/h/klmnop/foo09.txt",
+    "a/b/i/klmnop/foo09.txt",
+    "a/ca/f/g/i/klmnop/foo09.txt",
+    "a/e/d/f/g/i/klmnop/foo09.txt",
+    "a/da/f/g/i/klmnop/foo09.txt",
+    "a/cb/f/g/i/klmnop/foo09.txt",
+    "a/db/f/g/i/klmnop/foo09.txt",
+    "a/cc/f/g/i/klmnop/foo09.txt",
+    "a/dc/f/g/i/klmnop/foo09.txt",
+    "a/cd/f/g/i/klmnop/foo09.txt",
+    "a/dd/f/g/i/klmnop/foo09.txt",
+    "a/ce/f/g/i/klmnop/foo09.txt",
+    "a/de/f/g/i/klmnop/foo09.txt",
+    "a/cf/f/g/i/klmnop/foo09.txt",
+    "a/df/f/g/i/klmnop/foo09.txt",
+    "a/cg/f/g/i/klmnop/foo09.txt",
+    "a/dg/f/g/i/klmnop/foo09.txt",
+    "a/ch/f/g/i/klmnop/foo09.txt",
+    "a/dh/f/g/i/klmnop/foo09.txt",
+    "a/ci/f/g/i/klmnop/foo09.txt",
+    "a/di/f/g/i/klmnop/foo09.txt",
+    "a/cj/f/g/i/klmnop/foo09.txt",
+    "a/dj/f/g/i/klmnop/foo09.txt",
+    "a/b/j/klmnop/foo09.txt",
+    "a/ca/f/g/j/klmnop/foo09.txt",
+    "a/e/d/f/g/j/klmnop/foo09.txt",
+    "a/da/f/g/j/klmnop/foo09.txt",
+    "a/cb/f/g/j/klmnop/foo09.txt",
+    "a/db/f/g/j/klmnop/foo09.txt",
+    "a/cc/f/g/j/klmnop/foo09.txt",
+    "a/dc/f/g/j/klmnop/foo09.txt",
+    "a/cd/f/g/j/klmnop/foo09.txt",
+    "a/dd/f/g/j/klmnop/foo09.txt",
+    "a/ce/f/g/j/klmnop/foo09.txt",
+    "a/de/f/g/j/klmnop/foo09.txt",
+    "a/cf/f/g/j/klmnop/foo09.txt",
+    "a/df/f/g/j/klmnop/foo09.txt",
+    "a/cg/f/g/j/klmnop/foo09.txt",
+    "a/dg/f/g/j/klmnop/foo09.txt",
+    "a/ch/f/g/j/klmnop/foo09.txt",
+    "a/dh/f/g/j/klmnop/foo09.txt",
+    "a/ci/f/g/j/klmnop/foo09.txt",
+    "a/di/f/g/j/klmnop/foo09.txt",
+    "a/cj/f/g/j/klmnop/foo09.txt",
+    "a/dj/f/g/j/klmnop/foo09.txt",
+    "a/b/h/klmnop/foo10.txt",
+    "a/ca/f/g/h/klmnop/foo10.txt",
+    "a/e/d/f/g/h/klmnop/foo10.txt",
+    "a/da/f/g/h/klmnop/foo10.txt",
+    "a/cb/f/g/h/klmnop/foo10.txt",
+    "a/db/f/g/h/klmnop/foo10.txt",
+    "a/cc/f/g/h/klmnop/foo10.txt",
+    "a/dc/f/g/h/klmnop/foo10.txt",
+    "a/cd/f/g/h/klmnop/foo10.txt",
+    "a/dd/f/g/h/klmnop/foo10.txt",
+    "a/ce/f/g/h/klmnop/foo10.txt",
+    "a/de/f/g/h/klmnop/foo10.txt",
+    "a/cf/f/g/h/klmnop/foo10.txt",
+    "a/df/f/g/h/klmnop/foo10.txt",
+    "a/cg/f/g/h/klmnop/foo10.txt",
+    "a/dg/f/g/h/klmnop/foo10.txt",
+    "a/ch/f/g/h/klmnop/foo10.txt",
+    "a/dh/f/g/h/klmnop/foo10.txt",
+    "a/ci/f/g/h/klmnop/foo10.txt",
+    "a/di/f/g/h/klmnop/foo10.txt",
+    "a/cj/f/g/h/klmnop/foo10.txt",
+    "a/dj/f/g/h/klmnop/foo10.txt",
+    "a/b/i/klmnop/foo10.txt",
+    "a/ca/f/g/i/klmnop/foo10.txt",
+    "a/e/d/f/g/i/klmnop/foo10.txt",
+    "a/da/f/g/i/klmnop/foo10.txt",
+    "a/cb/f/g/i/klmnop/foo10.txt",
+    "a/db/f/g/i/klmnop/foo10.txt",
+    "a/cc/f/g/i/klmnop/foo10.txt",
+    "a/dc/f/g/i/klmnop/foo10.txt",
+    "a/cd/f/g/i/klmnop/foo10.txt",
+    "a/dd/f/g/i/klmnop/foo10.txt",
+    "a/ce/f/g/i/klmnop/foo10.txt",
+    "a/de/f/g/i/klmnop/foo10.txt",
+    "a/cf/f/g/i/klmnop/foo10.txt",
+    "a/df/f/g/i/klmnop/foo10.txt",
+    "a/cg/f/g/i/klmnop/foo10.txt",
+    "a/dg/f/g/i/klmnop/foo10.txt",
+    "a/ch/f/g/i/klmnop/foo10.txt",
+    "a/dh/f/g/i/klmnop/foo10.txt",
+    "a/ci/f/g/i/klmnop/foo10.txt",
+    "a/di/f/g/i/klmnop/foo10.txt",
+    "a/cj/f/g/i/klmnop/foo10.txt",
+    "a/dj/f/g/i/klmnop/foo10.txt",
+    "a/b/j/klmnop/foo10.txt",
+    "a/ca/f/g/j/klmnop/foo10.txt",
+    "a/e/d/f/g/j/klmnop/foo10.txt",
+    "a/da/f/g/j/klmnop/foo10.txt",
+    "a/cb/f/g/j/klmnop/foo10.txt",
+    "a/db/f/g/j/klmnop/foo10.txt",
+    "a/cc/f/g/j/klmnop/foo10.txt",
+    "a/dc/f/g/j/klmnop/foo10.txt",
+    "a/cd/f/g/j/klmnop/foo10.txt",
+    "a/dd/f/g/j/klmnop/foo10.txt",
+    "a/ce/f/g/j/klmnop/foo10.txt",
+    "a/de/f/g/j/klmnop/foo10.txt",
+    "a/cf/f/g/j/klmnop/foo10.txt",
+    "a/df/f/g/j/klmnop/foo10.txt",
+    "a/cg/f/g/j/klmnop/foo10.txt",
+    "a/dg/f/g/j/klmnop/foo10.txt",
+    "a/ch/f/g/j/klmnop/foo10.txt",
+    "a/dh/f/g/j/klmnop/foo10.txt",
+    "a/ci/f/g/j/klmnop/foo10.txt",
+    "a/di/f/g/j/klmnop/foo10.txt",
+    "a/cj/f/g/j/klmnop/foo10.txt",
+    "a/dj/f/g/j/klmnop/foo10.txt",
+    "a/b/h/klmnop/foo01.hbs",
+    "a/ca/f/g/h/klmnop/foo01.hbs",
+    "a/e/d/f/g/h/klmnop/foo01.hbs",
+    "a/da/f/g/h/klmnop/foo01.hbs",
+    "a/cb/f/g/h/klmnop/foo01.hbs",
+    "a/db/f/g/h/klmnop/foo01.hbs",
+    "a/cc/f/g/h/klmnop/foo01.hbs",
+    "a/dc/f/g/h/klmnop/foo01.hbs",
+    "a/cd/f/g/h/klmnop/foo01.hbs",
+    "a/dd/f/g/h/klmnop/foo01.hbs",
+    "a/ce/f/g/h/klmnop/foo01.hbs",
+    "a/de/f/g/h/klmnop/foo01.hbs",
+    "a/cf/f/g/h/klmnop/foo01.hbs",
+    "a/df/f/g/h/klmnop/foo01.hbs",
+    "a/cg/f/g/h/klmnop/foo01.hbs",
+    "a/dg/f/g/h/klmnop/foo01.hbs",
+    "a/ch/f/g/h/klmnop/foo01.hbs",
+    "a/dh/f/g/h/klmnop/foo01.hbs",
+    "a/ci/f/g/h/klmnop/foo01.hbs",
+    "a/di/f/g/h/klmnop/foo01.hbs",
+    "a/cj/f/g/h/klmnop/foo01.hbs",
+    "a/dj/f/g/h/klmnop/foo01.hbs",
+    "a/b/i/klmnop/foo01.hbs",
+    "a/ca/f/g/i/klmnop/foo01.hbs",
+    "a/e/d/f/g/i/klmnop/foo01.hbs",
+    "a/da/f/g/i/klmnop/foo01.hbs",
+    "a/cb/f/g/i/klmnop/foo01.hbs",
+    "a/db/f/g/i/klmnop/foo01.hbs",
+    "a/cc/f/g/i/klmnop/foo01.hbs",
+    "a/dc/f/g/i/klmnop/foo01.hbs",
+    "a/cd/f/g/i/klmnop/foo01.hbs",
+    "a/dd/f/g/i/klmnop/foo01.hbs",
+    "a/ce/f/g/i/klmnop/foo01.hbs",
+    "a/de/f/g/i/klmnop/foo01.hbs",
+    "a/cf/f/g/i/klmnop/foo01.hbs",
+    "a/df/f/g/i/klmnop/foo01.hbs",
+    "a/cg/f/g/i/klmnop/foo01.hbs",
+    "a/dg/f/g/i/klmnop/foo01.hbs",
+    "a/ch/f/g/i/klmnop/foo01.hbs",
+    "a/dh/f/g/i/klmnop/foo01.hbs",
+    "a/ci/f/g/i/klmnop/foo01.hbs",
+    "a/di/f/g/i/klmnop/foo01.hbs",
+    "a/cj/f/g/i/klmnop/foo01.hbs",
+    "a/dj/f/g/i/klmnop/foo01.hbs",
+    "a/b/j/klmnop/foo01.hbs",
+    "a/ca/f/g/j/klmnop/foo01.hbs",
+    "a/e/d/f/g/j/klmnop/foo01.hbs",
+    "a/da/f/g/j/klmnop/foo01.hbs",
+    "a/cb/f/g/j/klmnop/foo01.hbs",
+    "a/db/f/g/j/klmnop/foo01.hbs",
+    "a/cc/f/g/j/klmnop/foo01.hbs",
+    "a/dc/f/g/j/klmnop/foo01.hbs",
+    "a/cd/f/g/j/klmnop/foo01.hbs",
+    "a/dd/f/g/j/klmnop/foo01.hbs",
+    "a/ce/f/g/j/klmnop/foo01.hbs",
+    "a/de/f/g/j/klmnop/foo01.hbs",
+    "a/cf/f/g/j/klmnop/foo01.hbs",
+    "a/df/f/g/j/klmnop/foo01.hbs",
+    "a/cg/f/g/j/klmnop/foo01.hbs",
+    "a/dg/f/g/j/klmnop/foo01.hbs",
+    "a/ch/f/g/j/klmnop/foo01.hbs",
+    "a/dh/f/g/j/klmnop/foo01.hbs",
+    "a/ci/f/g/j/klmnop/foo01.hbs",
+    "a/di/f/g/j/klmnop/foo01.hbs",
+    "a/cj/f/g/j/klmnop/foo01.hbs",
+    "a/dj/f/g/j/klmnop/foo01.hbs",
+    "a/b/h/klmnop/foo02.hbs",
+    "a/ca/f/g/h/klmnop/foo02.hbs",
+    "a/e/d/f/g/h/klmnop/foo02.hbs",
+    "a/da/f/g/h/klmnop/foo02.hbs",
+    "a/cb/f/g/h/klmnop/foo02.hbs",
+    "a/db/f/g/h/klmnop/foo02.hbs",
+    "a/cc/f/g/h/klmnop/foo02.hbs",
+    "a/dc/f/g/h/klmnop/foo02.hbs",
+    "a/cd/f/g/h/klmnop/foo02.hbs",
+    "a/dd/f/g/h/klmnop/foo02.hbs",
+    "a/ce/f/g/h/klmnop/foo02.hbs",
+    "a/de/f/g/h/klmnop/foo02.hbs",
+    "a/cf/f/g/h/klmnop/foo02.hbs",
+    "a/df/f/g/h/klmnop/foo02.hbs",
+    "a/cg/f/g/h/klmnop/foo02.hbs",
+    "a/dg/f/g/h/klmnop/foo02.hbs",
+    "a/ch/f/g/h/klmnop/foo02.hbs",
+    "a/dh/f/g/h/klmnop/foo02.hbs",
+    "a/ci/f/g/h/klmnop/foo02.hbs",
+    "a/di/f/g/h/klmnop/foo02.hbs",
+    "a/cj/f/g/h/klmnop/foo02.hbs",
+    "a/dj/f/g/h/klmnop/foo02.hbs",
+    "a/b/i/klmnop/foo02.hbs",
+    "a/ca/f/g/i/klmnop/foo02.hbs",
+    "a/e/d/f/g/i/klmnop/foo02.hbs",
+    "a/da/f/g/i/klmnop/foo02.hbs",
+    "a/cb/f/g/i/klmnop/foo02.hbs",
+    "a/db/f/g/i/klmnop/foo02.hbs",
+    "a/cc/f/g/i/klmnop/foo02.hbs",
+    "a/dc/f/g/i/klmnop/foo02.hbs",
+    "a/cd/f/g/i/klmnop/foo02.hbs",
+    "a/dd/f/g/i/klmnop/foo02.hbs",
+    "a/ce/f/g/i/klmnop/foo02.hbs",
+    "a/de/f/g/i/klmnop/foo02.hbs",
+    "a/cf/f/g/i/klmnop/foo02.hbs",
+    "a/df/f/g/i/klmnop/foo02.hbs",
+    "a/cg/f/g/i/klmnop/foo02.hbs",
+    "a/dg/f/g/i/klmnop/foo02.hbs",
+    "a/ch/f/g/i/klmnop/foo02.hbs",
+    "a/dh/f/g/i/klmnop/foo02.hbs",
+    "a/ci/f/g/i/klmnop/foo02.hbs",
+    "a/di/f/g/i/klmnop/foo02.hbs",
+    "a/cj/f/g/i/klmnop/foo02.hbs",
+    "a/dj/f/g/i/klmnop/foo02.hbs",
+    "a/b/j/klmnop/foo02.hbs",
+    "a/ca/f/g/j/klmnop/foo02.hbs",
+    "a/e/d/f/g/j/klmnop/foo02.hbs",
+    "a/da/f/g/j/klmnop/foo02.hbs",
+    "a/cb/f/g/j/klmnop/foo02.hbs",
+    "a/db/f/g/j/klmnop/foo02.hbs",
+    "a/cc/f/g/j/klmnop/foo02.hbs",
+    "a/dc/f/g/j/klmnop/foo02.hbs",
+    "a/cd/f/g/j/klmnop/foo02.hbs",
+    "a/dd/f/g/j/klmnop/foo02.hbs",
+    "a/ce/f/g/j/klmnop/foo02.hbs",
+    "a/de/f/g/j/klmnop/foo02.hbs",
+    "a/cf/f/g/j/klmnop/foo02.hbs",
+    "a/df/f/g/j/klmnop/foo02.hbs",
+    "a/cg/f/g/j/klmnop/foo02.hbs",
+    "a/dg/f/g/j/klmnop/foo02.hbs",
+    "a/ch/f/g/j/klmnop/foo02.hbs",
+    "a/dh/f/g/j/klmnop/foo02.hbs",
+    "a/ci/f/g/j/klmnop/foo02.hbs",
+    "a/di/f/g/j/klmnop/foo02.hbs",
+    "a/cj/f/g/j/klmnop/foo02.hbs",
+    "a/dj/f/g/j/klmnop/foo02.hbs",
+    "a/b/h/klmnop/foo03.hbs",
+    "a/ca/f/g/h/klmnop/foo03.hbs",
+    "a/e/d/f/g/h/klmnop/foo03.hbs",
+    "a/da/f/g/h/klmnop/foo03.hbs",
+    "a/cb/f/g/h/klmnop/foo03.hbs",
+    "a/db/f/g/h/klmnop/foo03.hbs",
+    "a/cc/f/g/h/klmnop/foo03.hbs",
+    "a/dc/f/g/h/klmnop/foo03.hbs",
+    "a/cd/f/g/h/klmnop/foo03.hbs",
+    "a/dd/f/g/h/klmnop/foo03.hbs",
+    "a/ce/f/g/h/klmnop/foo03.hbs",
+    "a/de/f/g/h/klmnop/foo03.hbs",
+    "a/cf/f/g/h/klmnop/foo03.hbs",
+    "a/df/f/g/h/klmnop/foo03.hbs",
+    "a/cg/f/g/h/klmnop/foo03.hbs",
+    "a/dg/f/g/h/klmnop/foo03.hbs",
+    "a/ch/f/g/h/klmnop/foo03.hbs",
+    "a/dh/f/g/h/klmnop/foo03.hbs",
+    "a/ci/f/g/h/klmnop/foo03.hbs",
+    "a/di/f/g/h/klmnop/foo03.hbs",
+    "a/cj/f/g/h/klmnop/foo03.hbs",
+    "a/dj/f/g/h/klmnop/foo03.hbs",
+    "a/b/i/klmnop/foo03.hbs",
+    "a/ca/f/g/i/klmnop/foo03.hbs",
+    "a/e/d/f/g/i/klmnop/foo03.hbs",
+    "a/da/f/g/i/klmnop/foo03.hbs",
+    "a/cb/f/g/i/klmnop/foo03.hbs",
+    "a/db/f/g/i/klmnop/foo03.hbs",
+    "a/cc/f/g/i/klmnop/foo03.hbs",
+    "a/dc/f/g/i/klmnop/foo03.hbs",
+    "a/cd/f/g/i/klmnop/foo03.hbs",
+    "a/dd/f/g/i/klmnop/foo03.hbs",
+    "a/ce/f/g/i/klmnop/foo03.hbs",
+    "a/de/f/g/i/klmnop/foo03.hbs",
+    "a/cf/f/g/i/klmnop/foo03.hbs",
+    "a/df/f/g/i/klmnop/foo03.hbs",
+    "a/cg/f/g/i/klmnop/foo03.hbs",
+    "a/dg/f/g/i/klmnop/foo03.hbs",
+    "a/ch/f/g/i/klmnop/foo03.hbs",
+    "a/dh/f/g/i/klmnop/foo03.hbs",
+    "a/ci/f/g/i/klmnop/foo03.hbs",
+    "a/di/f/g/i/klmnop/foo03.hbs",
+    "a/cj/f/g/i/klmnop/foo03.hbs",
+    "a/dj/f/g/i/klmnop/foo03.hbs",
+    "a/b/j/klmnop/foo03.hbs",
+    "a/ca/f/g/j/klmnop/foo03.hbs",
+    "a/e/d/f/g/j/klmnop/foo03.hbs",
+    "a/da/f/g/j/klmnop/foo03.hbs",
+    "a/cb/f/g/j/klmnop/foo03.hbs",
+    "a/db/f/g/j/klmnop/foo03.hbs",
+    "a/cc/f/g/j/klmnop/foo03.hbs",
+    "a/dc/f/g/j/klmnop/foo03.hbs",
+    "a/cd/f/g/j/klmnop/foo03.hbs",
+    "a/dd/f/g/j/klmnop/foo03.hbs",
+    "a/ce/f/g/j/klmnop/foo03.hbs",
+    "a/de/f/g/j/klmnop/foo03.hbs",
+    "a/cf/f/g/j/klmnop/foo03.hbs",
+    "a/df/f/g/j/klmnop/foo03.hbs",
+    "a/cg/f/g/j/klmnop/foo03.hbs",
+    "a/dg/f/g/j/klmnop/foo03.hbs",
+    "a/ch/f/g/j/klmnop/foo03.hbs",
+    "a/dh/f/g/j/klmnop/foo03.hbs",
+    "a/ci/f/g/j/klmnop/foo03.hbs",
+    "a/di/f/g/j/klmnop/foo03.hbs",
+    "a/cj/f/g/j/klmnop/foo03.hbs",
+    "a/dj/f/g/j/klmnop/foo03.hbs",
+    "a/b/h/klmnop/foo04.hbs",
+    "a/ca/f/g/h/klmnop/foo04.hbs",
+    "a/e/d/f/g/h/klmnop/foo04.hbs",
+    "a/da/f/g/h/klmnop/foo04.hbs",
+    "a/cb/f/g/h/klmnop/foo04.hbs",
+    "a/db/f/g/h/klmnop/foo04.hbs",
+    "a/cc/f/g/h/klmnop/foo04.hbs",
+    "a/dc/f/g/h/klmnop/foo04.hbs",
+    "a/cd/f/g/h/klmnop/foo04.hbs",
+    "a/dd/f/g/h/klmnop/foo04.hbs",
+    "a/ce/f/g/h/klmnop/foo04.hbs",
+    "a/de/f/g/h/klmnop/foo04.hbs",
+    "a/cf/f/g/h/klmnop/foo04.hbs",
+    "a/df/f/g/h/klmnop/foo04.hbs",
+    "a/cg/f/g/h/klmnop/foo04.hbs",
+    "a/dg/f/g/h/klmnop/foo04.hbs",
+    "a/ch/f/g/h/klmnop/foo04.hbs",
+    "a/dh/f/g/h/klmnop/foo04.hbs",
+    "a/ci/f/g/h/klmnop/foo04.hbs",
+    "a/di/f/g/h/klmnop/foo04.hbs",
+    "a/cj/f/g/h/klmnop/foo04.hbs",
+    "a/dj/f/g/h/klmnop/foo04.hbs",
+    "a/b/i/klmnop/foo04.hbs",
+    "a/ca/f/g/i/klmnop/foo04.hbs",
+    "a/e/d/f/g/i/klmnop/foo04.hbs",
+    "a/da/f/g/i/klmnop/foo04.hbs",
+    "a/cb/f/g/i/klmnop/foo04.hbs",
+    "a/db/f/g/i/klmnop/foo04.hbs",
+    "a/cc/f/g/i/klmnop/foo04.hbs",
+    "a/dc/f/g/i/klmnop/foo04.hbs",
+    "a/cd/f/g/i/klmnop/foo04.hbs",
+    "a/dd/f/g/i/klmnop/foo04.hbs",
+    "a/ce/f/g/i/klmnop/foo04.hbs",
+    "a/de/f/g/i/klmnop/foo04.hbs",
+    "a/cf/f/g/i/klmnop/foo04.hbs",
+    "a/df/f/g/i/klmnop/foo04.hbs",
+    "a/cg/f/g/i/klmnop/foo04.hbs",
+    "a/dg/f/g/i/klmnop/foo04.hbs",
+    "a/ch/f/g/i/klmnop/foo04.hbs",
+    "a/dh/f/g/i/klmnop/foo04.hbs",
+    "a/ci/f/g/i/klmnop/foo04.hbs",
+    "a/di/f/g/i/klmnop/foo04.hbs",
+    "a/cj/f/g/i/klmnop/foo04.hbs",
+    "a/dj/f/g/i/klmnop/foo04.hbs",
+    "a/b/j/klmnop/foo04.hbs",
+    "a/ca/f/g/j/klmnop/foo04.hbs",
+    "a/e/d/f/g/j/klmnop/foo04.hbs",
+    "a/da/f/g/j/klmnop/foo04.hbs",
+    "a/cb/f/g/j/klmnop/foo04.hbs",
+    "a/db/f/g/j/klmnop/foo04.hbs",
+    "a/cc/f/g/j/klmnop/foo04.hbs",
+    "a/dc/f/g/j/klmnop/foo04.hbs",
+    "a/cd/f/g/j/klmnop/foo04.hbs",
+    "a/dd/f/g/j/klmnop/foo04.hbs",
+    "a/ce/f/g/j/klmnop/foo04.hbs",
+    "a/de/f/g/j/klmnop/foo04.hbs",
+    "a/cf/f/g/j/klmnop/foo04.hbs",
+    "a/df/f/g/j/klmnop/foo04.hbs",
+    "a/cg/f/g/j/klmnop/foo04.hbs",
+    "a/dg/f/g/j/klmnop/foo04.hbs",
+    "a/ch/f/g/j/klmnop/foo04.hbs",
+    "a/dh/f/g/j/klmnop/foo04.hbs",
+    "a/ci/f/g/j/klmnop/foo04.hbs",
+    "a/di/f/g/j/klmnop/foo04.hbs",
+    "a/cj/f/g/j/klmnop/foo04.hbs",
+    "a/dj/f/g/j/klmnop/foo04.hbs",
+    "a/b/h/klmnop/foo05.hbs",
+    "a/ca/f/g/h/klmnop/foo05.hbs",
+    "a/e/d/f/g/h/klmnop/foo05.hbs",
+    "a/da/f/g/h/klmnop/foo05.hbs",
+    "a/cb/f/g/h/klmnop/foo05.hbs",
+    "a/db/f/g/h/klmnop/foo05.hbs",
+    "a/cc/f/g/h/klmnop/foo05.hbs",
+    "a/dc/f/g/h/klmnop/foo05.hbs",
+    "a/cd/f/g/h/klmnop/foo05.hbs",
+    "a/dd/f/g/h/klmnop/foo05.hbs",
+    "a/ce/f/g/h/klmnop/foo05.hbs",
+    "a/de/f/g/h/klmnop/foo05.hbs",
+    "a/cf/f/g/h/klmnop/foo05.hbs",
+    "a/df/f/g/h/klmnop/foo05.hbs",
+    "a/cg/f/g/h/klmnop/foo05.hbs",
+    "a/dg/f/g/h/klmnop/foo05.hbs",
+    "a/ch/f/g/h/klmnop/foo05.hbs",
+    "a/dh/f/g/h/klmnop/foo05.hbs",
+    "a/ci/f/g/h/klmnop/foo05.hbs",
+    "a/di/f/g/h/klmnop/foo05.hbs",
+    "a/cj/f/g/h/klmnop/foo05.hbs",
+    "a/dj/f/g/h/klmnop/foo05.hbs",
+    "a/b/i/klmnop/foo05.hbs",
+    "a/ca/f/g/i/klmnop/foo05.hbs",
+    "a/e/d/f/g/i/klmnop/foo05.hbs",
+    "a/da/f/g/i/klmnop/foo05.hbs",
+    "a/cb/f/g/i/klmnop/foo05.hbs",
+    "a/db/f/g/i/klmnop/foo05.hbs",
+    "a/cc/f/g/i/klmnop/foo05.hbs",
+    "a/dc/f/g/i/klmnop/foo05.hbs",
+    "a/cd/f/g/i/klmnop/foo05.hbs",
+    "a/dd/f/g/i/klmnop/foo05.hbs",
+    "a/ce/f/g/i/klmnop/foo05.hbs",
+    "a/de/f/g/i/klmnop/foo05.hbs",
+    "a/cf/f/g/i/klmnop/foo05.hbs",
+    "a/df/f/g/i/klmnop/foo05.hbs",
+    "a/cg/f/g/i/klmnop/foo05.hbs",
+    "a/dg/f/g/i/klmnop/foo05.hbs",
+    "a/ch/f/g/i/klmnop/foo05.hbs",
+    "a/dh/f/g/i/klmnop/foo05.hbs",
+    "a/ci/f/g/i/klmnop/foo05.hbs",
+    "a/di/f/g/i/klmnop/foo05.hbs",
+    "a/cj/f/g/i/klmnop/foo05.hbs",
+    "a/dj/f/g/i/klmnop/foo05.hbs",
+    "a/b/j/klmnop/foo05.hbs",
+    "a/ca/f/g/j/klmnop/foo05.hbs",
+    "a/e/d/f/g/j/klmnop/foo05.hbs",
+    "a/da/f/g/j/klmnop/foo05.hbs",
+    "a/cb/f/g/j/klmnop/foo05.hbs",
+    "a/db/f/g/j/klmnop/foo05.hbs",
+    "a/cc/f/g/j/klmnop/foo05.hbs",
+    "a/dc/f/g/j/klmnop/foo05.hbs",
+    "a/cd/f/g/j/klmnop/foo05.hbs",
+    "a/dd/f/g/j/klmnop/foo05.hbs",
+    "a/ce/f/g/j/klmnop/foo05.hbs",
+    "a/de/f/g/j/klmnop/foo05.hbs",
+    "a/cf/f/g/j/klmnop/foo05.hbs",
+    "a/df/f/g/j/klmnop/foo05.hbs",
+    "a/cg/f/g/j/klmnop/foo05.hbs",
+    "a/dg/f/g/j/klmnop/foo05.hbs",
+    "a/ch/f/g/j/klmnop/foo05.hbs",
+    "a/dh/f/g/j/klmnop/foo05.hbs",
+    "a/ci/f/g/j/klmnop/foo05.hbs",
+    "a/di/f/g/j/klmnop/foo05.hbs",
+    "a/cj/f/g/j/klmnop/foo05.hbs",
+    "a/dj/f/g/j/klmnop/foo05.hbs",
+    "a/b/h/klmnop/foo06.hbs",
+    "a/ca/f/g/h/klmnop/foo06.hbs",
+    "a/e/d/f/g/h/klmnop/foo06.hbs",
+    "a/da/f/g/h/klmnop/foo06.hbs",
+    "a/cb/f/g/h/klmnop/foo06.hbs",
+    "a/db/f/g/h/klmnop/foo06.hbs",
+    "a/cc/f/g/h/klmnop/foo06.hbs",
+    "a/dc/f/g/h/klmnop/foo06.hbs",
+    "a/cd/f/g/h/klmnop/foo06.hbs",
+    "a/dd/f/g/h/klmnop/foo06.hbs",
+    "a/ce/f/g/h/klmnop/foo06.hbs",
+    "a/de/f/g/h/klmnop/foo06.hbs",
+    "a/cf/f/g/h/klmnop/foo06.hbs",
+    "a/df/f/g/h/klmnop/foo06.hbs",
+    "a/cg/f/g/h/klmnop/foo06.hbs",
+    "a/dg/f/g/h/klmnop/foo06.hbs",
+    "a/ch/f/g/h/klmnop/foo06.hbs",
+    "a/dh/f/g/h/klmnop/foo06.hbs",
+    "a/ci/f/g/h/klmnop/foo06.hbs",
+    "a/di/f/g/h/klmnop/foo06.hbs",
+    "a/cj/f/g/h/klmnop/foo06.hbs",
+    "a/dj/f/g/h/klmnop/foo06.hbs",
+    "a/b/i/klmnop/foo06.hbs",
+    "a/ca/f/g/i/klmnop/foo06.hbs",
+    "a/e/d/f/g/i/klmnop/foo06.hbs",
+    "a/da/f/g/i/klmnop/foo06.hbs",
+    "a/cb/f/g/i/klmnop/foo06.hbs",
+    "a/db/f/g/i/klmnop/foo06.hbs",
+    "a/cc/f/g/i/klmnop/foo06.hbs",
+    "a/dc/f/g/i/klmnop/foo06.hbs",
+    "a/cd/f/g/i/klmnop/foo06.hbs",
+    "a/dd/f/g/i/klmnop/foo06.hbs",
+    "a/ce/f/g/i/klmnop/foo06.hbs",
+    "a/de/f/g/i/klmnop/foo06.hbs",
+    "a/cf/f/g/i/klmnop/foo06.hbs",
+    "a/df/f/g/i/klmnop/foo06.hbs",
+    "a/cg/f/g/i/klmnop/foo06.hbs",
+    "a/dg/f/g/i/klmnop/foo06.hbs",
+    "a/ch/f/g/i/klmnop/foo06.hbs",
+    "a/dh/f/g/i/klmnop/foo06.hbs",
+    "a/ci/f/g/i/klmnop/foo06.hbs",
+    "a/di/f/g/i/klmnop/foo06.hbs",
+    "a/cj/f/g/i/klmnop/foo06.hbs",
+    "a/dj/f/g/i/klmnop/foo06.hbs",
+    "a/b/j/klmnop/foo06.hbs",
+    "a/ca/f/g/j/klmnop/foo06.hbs",
+    "a/e/d/f/g/j/klmnop/foo06.hbs",
+    "a/da/f/g/j/klmnop/foo06.hbs",
+    "a/cb/f/g/j/klmnop/foo06.hbs",
+    "a/db/f/g/j/klmnop/foo06.hbs",
+    "a/cc/f/g/j/klmnop/foo06.hbs",
+    "a/dc/f/g/j/klmnop/foo06.hbs",
+    "a/cd/f/g/j/klmnop/foo06.hbs",
+    "a/dd/f/g/j/klmnop/foo06.hbs",
+    "a/ce/f/g/j/klmnop/foo06.hbs",
+    "a/de/f/g/j/klmnop/foo06.hbs",
+    "a/cf/f/g/j/klmnop/foo06.hbs",
+    "a/df/f/g/j/klmnop/foo06.hbs",
+    "a/cg/f/g/j/klmnop/foo06.hbs",
+    "a/dg/f/g/j/klmnop/foo06.hbs",
+    "a/ch/f/g/j/klmnop/foo06.hbs",
+    "a/dh/f/g/j/klmnop/foo06.hbs",
+    "a/ci/f/g/j/klmnop/foo06.hbs",
+    "a/di/f/g/j/klmnop/foo06.hbs",
+    "a/cj/f/g/j/klmnop/foo06.hbs",
+    "a/dj/f/g/j/klmnop/foo06.hbs",
+    "a/b/h/klmnop/foo07.hbs",
+    "a/ca/f/g/h/klmnop/foo07.hbs",
+    "a/e/d/f/g/h/klmnop/foo07.hbs",
+    "a/da/f/g/h/klmnop/foo07.hbs",
+    "a/cb/f/g/h/klmnop/foo07.hbs",
+    "a/db/f/g/h/klmnop/foo07.hbs",
+    "a/cc/f/g/h/klmnop/foo07.hbs",
+    "a/dc/f/g/h/klmnop/foo07.hbs",
+    "a/cd/f/g/h/klmnop/foo07.hbs",
+    "a/dd/f/g/h/klmnop/foo07.hbs",
+    "a/ce/f/g/h/klmnop/foo07.hbs",
+    "a/de/f/g/h/klmnop/foo07.hbs",
+    "a/cf/f/g/h/klmnop/foo07.hbs",
+    "a/df/f/g/h/klmnop/foo07.hbs",
+    "a/cg/f/g/h/klmnop/foo07.hbs",
+    "a/dg/f/g/h/klmnop/foo07.hbs",
+    "a/ch/f/g/h/klmnop/foo07.hbs",
+    "a/dh/f/g/h/klmnop/foo07.hbs",
+    "a/ci/f/g/h/klmnop/foo07.hbs",
+    "a/di/f/g/h/klmnop/foo07.hbs",
+    "a/cj/f/g/h/klmnop/foo07.hbs",
+    "a/dj/f/g/h/klmnop/foo07.hbs",
+    "a/b/i/klmnop/foo07.hbs",
+    "a/ca/f/g/i/klmnop/foo07.hbs",
+    "a/e/d/f/g/i/klmnop/foo07.hbs",
+    "a/da/f/g/i/klmnop/foo07.hbs",
+    "a/cb/f/g/i/klmnop/foo07.hbs",
+    "a/db/f/g/i/klmnop/foo07.hbs",
+    "a/cc/f/g/i/klmnop/foo07.hbs",
+    "a/dc/f/g/i/klmnop/foo07.hbs",
+    "a/cd/f/g/i/klmnop/foo07.hbs",
+    "a/dd/f/g/i/klmnop/foo07.hbs",
+    "a/ce/f/g/i/klmnop/foo07.hbs",
+    "a/de/f/g/i/klmnop/foo07.hbs",
+    "a/cf/f/g/i/klmnop/foo07.hbs",
+    "a/df/f/g/i/klmnop/foo07.hbs",
+    "a/cg/f/g/i/klmnop/foo07.hbs",
+    "a/dg/f/g/i/klmnop/foo07.hbs",
+    "a/ch/f/g/i/klmnop/foo07.hbs",
+    "a/dh/f/g/i/klmnop/foo07.hbs",
+    "a/ci/f/g/i/klmnop/foo07.hbs",
+    "a/di/f/g/i/klmnop/foo07.hbs",
+    "a/cj/f/g/i/klmnop/foo07.hbs",
+    "a/dj/f/g/i/klmnop/foo07.hbs",
+    "a/b/j/klmnop/foo07.hbs",
+    "a/ca/f/g/j/klmnop/foo07.hbs",
+    "a/e/d/f/g/j/klmnop/foo07.hbs",
+    "a/da/f/g/j/klmnop/foo07.hbs",
+    "a/cb/f/g/j/klmnop/foo07.hbs",
+    "a/db/f/g/j/klmnop/foo07.hbs",
+    "a/cc/f/g/j/klmnop/foo07.hbs",
+    "a/dc/f/g/j/klmnop/foo07.hbs",
+    "a/cd/f/g/j/klmnop/foo07.hbs",
+    "a/dd/f/g/j/klmnop/foo07.hbs",
+    "a/ce/f/g/j/klmnop/foo07.hbs",
+    "a/de/f/g/j/klmnop/foo07.hbs",
+    "a/cf/f/g/j/klmnop/foo07.hbs",
+    "a/df/f/g/j/klmnop/foo07.hbs",
+    "a/cg/f/g/j/klmnop/foo07.hbs",
+    "a/dg/f/g/j/klmnop/foo07.hbs",
+    "a/ch/f/g/j/klmnop/foo07.hbs",
+    "a/dh/f/g/j/klmnop/foo07.hbs",
+    "a/ci/f/g/j/klmnop/foo07.hbs",
+    "a/di/f/g/j/klmnop/foo07.hbs",
+    "a/cj/f/g/j/klmnop/foo07.hbs",
+    "a/dj/f/g/j/klmnop/foo07.hbs",
+    "a/b/h/klmnop/foo08.hbs",
+    "a/ca/f/g/h/klmnop/foo08.hbs",
+    "a/e/d/f/g/h/klmnop/foo08.hbs",
+    "a/da/f/g/h/klmnop/foo08.hbs",
+    "a/cb/f/g/h/klmnop/foo08.hbs",
+    "a/db/f/g/h/klmnop/foo08.hbs",
+    "a/cc/f/g/h/klmnop/foo08.hbs",
+    "a/dc/f/g/h/klmnop/foo08.hbs",
+    "a/cd/f/g/h/klmnop/foo08.hbs",
+    "a/dd/f/g/h/klmnop/foo08.hbs",
+    "a/ce/f/g/h/klmnop/foo08.hbs",
+    "a/de/f/g/h/klmnop/foo08.hbs",
+    "a/cf/f/g/h/klmnop/foo08.hbs",
+    "a/df/f/g/h/klmnop/foo08.hbs",
+    "a/cg/f/g/h/klmnop/foo08.hbs",
+    "a/dg/f/g/h/klmnop/foo08.hbs",
+    "a/ch/f/g/h/klmnop/foo08.hbs",
+    "a/dh/f/g/h/klmnop/foo08.hbs",
+    "a/ci/f/g/h/klmnop/foo08.hbs",
+    "a/di/f/g/h/klmnop/foo08.hbs",
+    "a/cj/f/g/h/klmnop/foo08.hbs",
+    "a/dj/f/g/h/klmnop/foo08.hbs",
+    "a/b/i/klmnop/foo08.hbs",
+    "a/ca/f/g/i/klmnop/foo08.hbs",
+    "a/e/d/f/g/i/klmnop/foo08.hbs",
+    "a/da/f/g/i/klmnop/foo08.hbs",
+    "a/cb/f/g/i/klmnop/foo08.hbs",
+    "a/db/f/g/i/klmnop/foo08.hbs",
+    "a/cc/f/g/i/klmnop/foo08.hbs",
+    "a/dc/f/g/i/klmnop/foo08.hbs",
+    "a/cd/f/g/i/klmnop/foo08.hbs",
+    "a/dd/f/g/i/klmnop/foo08.hbs",
+    "a/ce/f/g/i/klmnop/foo08.hbs",
+    "a/de/f/g/i/klmnop/foo08.hbs",
+    "a/cf/f/g/i/klmnop/foo08.hbs",
+    "a/df/f/g/i/klmnop/foo08.hbs",
+    "a/cg/f/g/i/klmnop/foo08.hbs",
+    "a/dg/f/g/i/klmnop/foo08.hbs",
+    "a/ch/f/g/i/klmnop/foo08.hbs",
+    "a/dh/f/g/i/klmnop/foo08.hbs",
+    "a/ci/f/g/i/klmnop/foo08.hbs",
+    "a/di/f/g/i/klmnop/foo08.hbs",
+    "a/cj/f/g/i/klmnop/foo08.hbs",
+    "a/dj/f/g/i/klmnop/foo08.hbs",
+    "a/b/j/klmnop/foo08.hbs",
+    "a/ca/f/g/j/klmnop/foo08.hbs",
+    "a/e/d/f/g/j/klmnop/foo08.hbs",
+    "a/da/f/g/j/klmnop/foo08.hbs",
+    "a/cb/f/g/j/klmnop/foo08.hbs",
+    "a/db/f/g/j/klmnop/foo08.hbs",
+    "a/cc/f/g/j/klmnop/foo08.hbs",
+    "a/dc/f/g/j/klmnop/foo08.hbs",
+    "a/cd/f/g/j/klmnop/foo08.hbs",
+    "a/dd/f/g/j/klmnop/foo08.hbs",
+    "a/ce/f/g/j/klmnop/foo08.hbs",
+    "a/de/f/g/j/klmnop/foo08.hbs",
+    "a/cf/f/g/j/klmnop/foo08.hbs",
+    "a/df/f/g/j/klmnop/foo08.hbs",
+    "a/cg/f/g/j/klmnop/foo08.hbs",
+    "a/dg/f/g/j/klmnop/foo08.hbs",
+    "a/ch/f/g/j/klmnop/foo08.hbs",
+    "a/dh/f/g/j/klmnop/foo08.hbs",
+    "a/ci/f/g/j/klmnop/foo08.hbs",
+    "a/di/f/g/j/klmnop/foo08.hbs",
+    "a/cj/f/g/j/klmnop/foo08.hbs",
+    "a/dj/f/g/j/klmnop/foo08.hbs",
+    "a/b/h/klmnop/foo09.hbs",
+    "a/ca/f/g/h/klmnop/foo09.hbs",
+    "a/e/d/f/g/h/klmnop/foo09.hbs",
+    "a/da/f/g/h/klmnop/foo09.hbs",
+    "a/cb/f/g/h/klmnop/foo09.hbs",
+    "a/db/f/g/h/klmnop/foo09.hbs",
+    "a/cc/f/g/h/klmnop/foo09.hbs",
+    "a/dc/f/g/h/klmnop/foo09.hbs",
+    "a/cd/f/g/h/klmnop/foo09.hbs",
+    "a/dd/f/g/h/klmnop/foo09.hbs",
+    "a/ce/f/g/h/klmnop/foo09.hbs",
+    "a/de/f/g/h/klmnop/foo09.hbs",
+    "a/cf/f/g/h/klmnop/foo09.hbs",
+    "a/df/f/g/h/klmnop/foo09.hbs",
+    "a/cg/f/g/h/klmnop/foo09.hbs",
+    "a/dg/f/g/h/klmnop/foo09.hbs",
+    "a/ch/f/g/h/klmnop/foo09.hbs",
+    "a/dh/f/g/h/klmnop/foo09.hbs",
+    "a/ci/f/g/h/klmnop/foo09.hbs",
+    "a/di/f/g/h/klmnop/foo09.hbs",
+    "a/cj/f/g/h/klmnop/foo09.hbs",
+    "a/dj/f/g/h/klmnop/foo09.hbs",
+    "a/b/i/klmnop/foo09.hbs",
+    "a/ca/f/g/i/klmnop/foo09.hbs",
+    "a/e/d/f/g/i/klmnop/foo09.hbs",
+    "a/da/f/g/i/klmnop/foo09.hbs",
+    "a/cb/f/g/i/klmnop/foo09.hbs",
+    "a/db/f/g/i/klmnop/foo09.hbs",
+    "a/cc/f/g/i/klmnop/foo09.hbs",
+    "a/dc/f/g/i/klmnop/foo09.hbs",
+    "a/cd/f/g/i/klmnop/foo09.hbs",
+    "a/dd/f/g/i/klmnop/foo09.hbs",
+    "a/ce/f/g/i/klmnop/foo09.hbs",
+    "a/de/f/g/i/klmnop/foo09.hbs",
+    "a/cf/f/g/i/klmnop/foo09.hbs",
+    "a/df/f/g/i/klmnop/foo09.hbs",
+    "a/cg/f/g/i/klmnop/foo09.hbs",
+    "a/dg/f/g/i/klmnop/foo09.hbs",
+    "a/ch/f/g/i/klmnop/foo09.hbs",
+    "a/dh/f/g/i/klmnop/foo09.hbs",
+    "a/ci/f/g/i/klmnop/foo09.hbs",
+    "a/di/f/g/i/klmnop/foo09.hbs",
+    "a/cj/f/g/i/klmnop/foo09.hbs",
+    "a/dj/f/g/i/klmnop/foo09.hbs",
+    "a/b/j/klmnop/foo09.hbs",
+    "a/ca/f/g/j/klmnop/foo09.hbs",
+    "a/e/d/f/g/j/klmnop/foo09.hbs",
+    "a/da/f/g/j/klmnop/foo09.hbs",
+    "a/cb/f/g/j/klmnop/foo09.hbs",
+    "a/db/f/g/j/klmnop/foo09.hbs",
+    "a/cc/f/g/j/klmnop/foo09.hbs",
+    "a/dc/f/g/j/klmnop/foo09.hbs",
+    "a/cd/f/g/j/klmnop/foo09.hbs",
+    "a/dd/f/g/j/klmnop/foo09.hbs",
+    "a/ce/f/g/j/klmnop/foo09.hbs",
+    "a/de/f/g/j/klmnop/foo09.hbs",
+    "a/cf/f/g/j/klmnop/foo09.hbs",
+    "a/df/f/g/j/klmnop/foo09.hbs",
+    "a/cg/f/g/j/klmnop/foo09.hbs",
+    "a/dg/f/g/j/klmnop/foo09.hbs",
+    "a/ch/f/g/j/klmnop/foo09.hbs",
+    "a/dh/f/g/j/klmnop/foo09.hbs",
+    "a/ci/f/g/j/klmnop/foo09.hbs",
+    "a/di/f/g/j/klmnop/foo09.hbs",
+    "a/cj/f/g/j/klmnop/foo09.hbs",
+    "a/dj/f/g/j/klmnop/foo09.hbs",
+    "a/b/h/klmnop/foo10.hbs",
+    "a/ca/f/g/h/klmnop/foo10.hbs",
+    "a/e/d/f/g/h/klmnop/foo10.hbs",
+    "a/da/f/g/h/klmnop/foo10.hbs",
+    "a/cb/f/g/h/klmnop/foo10.hbs",
+    "a/db/f/g/h/klmnop/foo10.hbs",
+    "a/cc/f/g/h/klmnop/foo10.hbs",
+    "a/dc/f/g/h/klmnop/foo10.hbs",
+    "a/cd/f/g/h/klmnop/foo10.hbs",
+    "a/dd/f/g/h/klmnop/foo10.hbs",
+    "a/ce/f/g/h/klmnop/foo10.hbs",
+    "a/de/f/g/h/klmnop/foo10.hbs",
+    "a/cf/f/g/h/klmnop/foo10.hbs",
+    "a/df/f/g/h/klmnop/foo10.hbs",
+    "a/cg/f/g/h/klmnop/foo10.hbs",
+    "a/dg/f/g/h/klmnop/foo10.hbs",
+    "a/ch/f/g/h/klmnop/foo10.hbs",
+    "a/dh/f/g/h/klmnop/foo10.hbs",
+    "a/ci/f/g/h/klmnop/foo10.hbs",
+    "a/di/f/g/h/klmnop/foo10.hbs",
+    "a/cj/f/g/h/klmnop/foo10.hbs",
+    "a/dj/f/g/h/klmnop/foo10.hbs",
+    "a/b/i/klmnop/foo10.hbs",
+    "a/ca/f/g/i/klmnop/foo10.hbs",
+    "a/e/d/f/g/i/klmnop/foo10.hbs",
+    "a/da/f/g/i/klmnop/foo10.hbs",
+    "a/cb/f/g/i/klmnop/foo10.hbs",
+    "a/db/f/g/i/klmnop/foo10.hbs",
+    "a/cc/f/g/i/klmnop/foo10.hbs",
+    "a/dc/f/g/i/klmnop/foo10.hbs",
+    "a/cd/f/g/i/klmnop/foo10.hbs",
+    "a/dd/f/g/i/klmnop/foo10.hbs",
+    "a/ce/f/g/i/klmnop/foo10.hbs",
+    "a/de/f/g/i/klmnop/foo10.hbs",
+    "a/cf/f/g/i/klmnop/foo10.hbs",
+    "a/df/f/g/i/klmnop/foo10.hbs",
+    "a/cg/f/g/i/klmnop/foo10.hbs",
+    "a/dg/f/g/i/klmnop/foo10.hbs",
+    "a/ch/f/g/i/klmnop/foo10.hbs",
+    "a/dh/f/g/i/klmnop/foo10.hbs",
+    "a/ci/f/g/i/klmnop/foo10.hbs",
+    "a/di/f/g/i/klmnop/foo10.hbs",
+    "a/cj/f/g/i/klmnop/foo10.hbs",
+    "a/dj/f/g/i/klmnop/foo10.hbs",
+    "a/b/j/klmnop/foo10.hbs",
+    "a/ca/f/g/j/klmnop/foo10.hbs",
+    "a/e/d/f/g/j/klmnop/foo10.hbs",
+    "a/da/f/g/j/klmnop/foo10.hbs",
+    "a/cb/f/g/j/klmnop/foo10.hbs",
+    "a/db/f/g/j/klmnop/foo10.hbs",
+    "a/cc/f/g/j/klmnop/foo10.hbs",
+    "a/dc/f/g/j/klmnop/foo10.hbs",
+    "a/cd/f/g/j/klmnop/foo10.hbs",
+    "a/dd/f/g/j/klmnop/foo10.hbs",
+    "a/ce/f/g/j/klmnop/foo10.hbs",
+    "a/de/f/g/j/klmnop/foo10.hbs",
+    "a/cf/f/g/j/klmnop/foo10.hbs",
+    "a/df/f/g/j/klmnop/foo10.hbs",
+    "a/cg/f/g/j/klmnop/foo10.hbs",
+    "a/dg/f/g/j/klmnop/foo10.hbs",
+    "a/ch/f/g/j/klmnop/foo10.hbs",
+    "a/dh/f/g/j/klmnop/foo10.hbs",
+    "a/ci/f/g/j/klmnop/foo10.hbs",
+    "a/di/f/g/j/klmnop/foo10.hbs",
+    "a/cj/f/g/j/klmnop/foo10.hbs",
+    "a/dj/f/g/j/klmnop/foo10.hbs"
+  ],
+  [
+    "a/ce/f/g/i/klmnop/foo09.hbs",
+    "a/de/f/g/i/klmnop/foo09.hbs",
+    "a/cf/f/g/i/klmnop/foo09.hbs",
+    "a/df/f/g/i/klmnop/foo09.hbs",
+    "a/cg/f/g/i/klmnop/foo09.hbs",
+    "a/dg/f/g/i/klmnop/foo09.hbs",
+    "a/ch/f/g/i/klmnop/foo09.hbs",
+    "a/dh/f/g/i/klmnop/foo09.hbs",
+    "a/ci/f/g/i/klmnop/foo09.hbs",
+    "a/di/f/g/i/klmnop/foo09.hbs",
+    "a/cj/f/g/i/klmnop/foo09.hbs",
+    "a/dj/f/g/i/klmnop/foo09.hbs",
+    "a/b/j/klmnop/foo09.hbs",
+    "a/ca/f/g/j/klmnop/foo09.hbs",
+    "a/e/d/f/g/j/klmnop/foo09.hbs",
+    "a/da/f/g/j/klmnop/foo09.hbs",
+    "a/cb/f/g/j/klmnop/foo09.hbs",
+    "a/db/f/g/j/klmnop/foo09.hbs",
+    "a/cc/f/g/j/klmnop/foo09.hbs",
+    "a/dc/f/g/j/klmnop/foo09.hbs",
+    "a/cd/f/g/j/klmnop/foo09.hbs",
+    "a/dd/f/g/j/klmnop/foo09.hbs",
+    "a/ce/f/g/j/klmnop/foo09.hbs",
+    "a/de/f/g/j/klmnop/foo09.hbs",
+    "a/cf/f/g/j/klmnop/foo09.hbs",
+    "a/df/f/g/j/klmnop/foo09.hbs",
+    "a/cg/f/g/j/klmnop/foo09.hbs",
+    "a/dg/f/g/j/klmnop/foo09.hbs",
+    "a/ch/f/g/j/klmnop/foo09.hbs",
+    "a/dh/f/g/j/klmnop/foo09.hbs",
+    "a/ci/f/g/j/klmnop/foo09.hbs",
+    "a/di/f/g/j/klmnop/foo09.hbs",
+    "a/cj/f/g/j/klmnop/foo09.hbs",
+    "a/dj/f/g/j/klmnop/foo09.hbs",
+    "a/b/h/klmnop/foo10.hbs",
+    "a/ca/f/g/h/klmnop/foo10.hbs",
+    "a/e/d/f/g/h/klmnop/foo10.hbs",
+    "a/da/f/g/h/klmnop/foo10.hbs",
+    "a/cb/f/g/h/klmnop/foo10.hbs",
+    "a/db/f/g/h/klmnop/foo10.hbs",
+    "a/cc/f/g/h/klmnop/foo10.hbs",
+    "a/dc/f/g/h/klmnop/foo10.hbs",
+    "a/cd/f/g/h/klmnop/foo10.hbs",
+    "a/dd/f/g/h/klmnop/foo10.hbs",
+    "a/ce/f/g/h/klmnop/foo10.hbs",
+    "a/de/f/g/h/klmnop/foo10.hbs",
+    "a/cf/f/g/h/klmnop/foo10.hbs",
+    "a/df/f/g/h/klmnop/foo10.hbs",
+    "a/cg/f/g/h/klmnop/foo10.hbs",
+    "a/dg/f/g/h/klmnop/foo10.hbs",
+    "a/ch/f/g/h/klmnop/foo10.hbs",
+    "a/dh/f/g/h/klmnop/foo10.hbs",
+    "a/ci/f/g/h/klmnop/foo10.hbs",
+    "a/di/f/g/h/klmnop/foo10.hbs",
+    "a/cj/f/g/h/klmnop/foo10.hbs",
+    "a/dj/f/g/h/klmnop/foo10.hbs",
+    "a/b/i/klmnop/foo10.hbs",
+    "a/ca/f/g/i/klmnop/foo10.hbs",
+    "a/e/d/f/g/i/klmnop/foo10.hbs",
+    "a/da/f/g/i/klmnop/foo10.hbs",
+    "a/cb/f/g/i/klmnop/foo10.hbs",
+    "a/db/f/g/i/klmnop/foo10.hbs",
+    "a/cc/f/g/i/klmnop/foo10.hbs",
+    "a/dc/f/g/i/klmnop/foo10.hbs",
+    "a/cd/f/g/i/klmnop/foo10.hbs",
+    "a/dd/f/g/i/klmnop/foo10.hbs",
+    "a/ce/f/g/i/klmnop/foo10.hbs",
+    "a/de/f/g/i/klmnop/foo10.hbs",
+    "a/cf/f/g/i/klmnop/foo10.hbs",
+    "a/df/f/g/i/klmnop/foo10.hbs",
+    "a/cg/f/g/i/klmnop/foo10.hbs",
+    "a/dg/f/g/i/klmnop/foo10.hbs",
+    "a/ch/f/g/i/klmnop/foo10.hbs",
+    "a/dh/f/g/i/klmnop/foo10.hbs",
+    "a/ci/f/g/i/klmnop/foo10.hbs",
+    "a/di/f/g/i/klmnop/foo10.hbs",
+    "a/cj/f/g/i/klmnop/foo10.hbs",
+    "a/dj/f/g/i/klmnop/foo10.hbs",
+    "a/b/j/klmnop/foo10.hbs",
+    "a/ca/f/g/j/klmnop/foo10.hbs",
+    "a/e/d/f/g/j/klmnop/foo10.hbs",
+    "a/da/f/g/j/klmnop/foo10.hbs",
+    "a/cb/f/g/j/klmnop/foo10.hbs",
+    "a/db/f/g/j/klmnop/foo10.hbs",
+    "a/cc/f/g/j/klmnop/foo10.hbs",
+    "a/dc/f/g/j/klmnop/foo10.hbs",
+    "a/cd/f/g/j/klmnop/foo10.hbs",
+    "a/dd/f/g/j/klmnop/foo10.hbs",
+    "a/ce/f/g/j/klmnop/foo10.hbs",
+    "a/de/f/g/j/klmnop/foo10.hbs",
+    "a/cf/f/g/j/klmnop/foo10.hbs",
+    "a/df/f/g/j/klmnop/foo10.hbs",
+    "a/cg/f/g/j/klmnop/foo10.hbs",
+    "a/dg/f/g/j/klmnop/foo10.hbs",
+    "a/ch/f/g/j/klmnop/foo10.hbs"
+  ],
+  [
+    "a/cj/f/g/i/klmnop/foo08.js",
+    "a/dj/f/g/i/klmnop/foo08.js",
+    "a/b/j/klmnop/foo08.js",
+    "a/ca/f/g/j/klmnop/foo08.js",
+    "a/e/d/f/g/j/klmnop/foo08.js",
+    "a/da/f/g/j/klmnop/foo08.js",
+    "a/cb/f/g/j/klmnop/foo08.js",
+    "a/db/f/g/j/klmnop/foo08.js",
+    "a/cc/f/g/j/klmnop/foo08.js",
+    "a/dc/f/g/j/klmnop/foo08.js",
+    "a/cd/f/g/j/klmnop/foo08.js",
+    "a/dd/f/g/j/klmnop/foo08.js",
+    "a/ce/f/g/j/klmnop/foo08.js",
+    "a/de/f/g/j/klmnop/foo08.js",
+    "a/cf/f/g/j/klmnop/foo08.js",
+    "a/df/f/g/j/klmnop/foo08.js",
+    "a/cg/f/g/j/klmnop/foo08.js",
+  ]
+];
diff --git a/benchmark/fixtures/med.js b/benchmark/fixtures/med.js
new file mode 100644
index 0000000..891f9d2
--- /dev/null
+++ b/benchmark/fixtures/med.js
@@ -0,0 +1,2 @@
+module.exports = [['aaaaa', 'bbbbb', 'ccccc', 'ddddd', 'eeeee', 'fffff', 'ggggg', 'hhhhh', 'iiiii', 'jjjjj', 'kkkkk', 'lllll', 'mmmmm', 'nnnnn', 'ooooo', 'ppppp', 'qqqqq', 'rrrrr', 'sssss', 'ttttt', 'uuuuu', 'vvvvv', 'wwwww', 'xxxxx', 'yyyyy', 'zzzzz', 'aaaaa', 'bbbbb', 'ccccc', 'ddddd', 'eeeee', 'fffff', 'ggggg', 'hhhhh', 'iiiii', 'jjjjj', 'kkkkk', 'lllll', 'mmmmm', 'nnnnn', 'ooooo', 'ppppp', 'qqqqq', 'rrrrr', 'sssss', 'ttttt', 'uuuuu', 'vvvvv', 'wwwww', 'xxxxx', 'yyyyy', 'zzzzz'], ['cc [...]
+
diff --git a/benchmark/fixtures/short.js b/benchmark/fixtures/short.js
new file mode 100644
index 0000000..877ffee
--- /dev/null
+++ b/benchmark/fixtures/short.js
@@ -0,0 +1 @@
+module.exports = [['a', 'b', 'c', 'd'], ['a', 'b'], ['d']];
diff --git a/benchmark/index.js b/benchmark/index.js
new file mode 100644
index 0000000..cdc3c00
--- /dev/null
+++ b/benchmark/index.js
@@ -0,0 +1,14 @@
+'use strict';
+
+var opts = {alias: {fixtures: 'f', code: 'c'}};
+var argv = require('minimist')(process.argv.slice(2), opts);
+var path = require('path');
+var Suite = require('benchmarked');
+
+var suite = new Suite({
+  fixtures: path.resolve(__dirname, 'fixtures', argv.f || '*.js'),
+  code: path.resolve(__dirname, 'code', argv.c || '*.js'),
+  cwd: __dirname
+});
+
+suite.run();
diff --git a/benchmark/last.md b/benchmark/last.md
new file mode 100644
index 0000000..472d19b
--- /dev/null
+++ b/benchmark/last.md
@@ -0,0 +1,11 @@
+# benchmark/fixtures/long.js (94529 bytes)
+  current x 1,246 ops/sec ±0.98% (85 runs sampled)
+  array-differ x 993 ops/sec ±1.35% (87 runs sampled)
+
+# benchmark/fixtures/med.js (708 bytes)
+  current x 583,612 ops/sec ±1.24% (87 runs sampled)
+  array-differ x 464,480 ops/sec ±1.42% (85 runs sampled)
+
+# benchmark/fixtures/short.js (60 bytes)
+  current x 788,823 ops/sec ±0.95% (89 runs sampled)
+  array-differ x 521,483 ops/sec ±1.65% (86 runs sampled)
\ No newline at end of file
diff --git a/bower.json b/bower.json
new file mode 100644
index 0000000..8750c54
--- /dev/null
+++ b/bower.json
@@ -0,0 +1,35 @@
+{
+  "name": "arr-diff",
+  "description": "Returns an array with only the unique values from the first array, by excluding all values from additional arrays using strict equality for comparisons.",
+  "repository": "jonschlinkert/arr-diff",
+  "license": "MIT",
+  "homepage": "https://github.com/jonschlinkert/arr-diff",
+  "authors": [
+    "Jon Schlinkert (https://github.com/jonschlinkert)"
+  ],
+  "main": [
+    "index.js"
+  ],
+  "dependencies": {
+    "arr-flatten": "^1.0.1"
+  },
+  "devDependencies": {
+    "ansi-bold": "^0.1.1",
+    "array-differ": "^1.0.0",
+    "array-slice": "^0.2.3",
+    "benchmarked": "^0.2.4",
+    "gulp-format-md": "^0.1.9",
+    "minimist": "^1.2.0",
+    "mocha": "^2.4.5",
+    "should": "^8.3.1"
+  },
+  "keywords": [
+    "arr",
+    "array",
+    "array differ",
+    "array-differ",
+    "diff",
+    "differ",
+    "difference"
+  ]
+}
\ No newline at end of file
diff --git a/index.js b/index.js
new file mode 100644
index 0000000..1c99a79
--- /dev/null
+++ b/index.js
@@ -0,0 +1,28 @@
+/*!
+ * arr-diff <https://github.com/jonschlinkert/arr-diff>
+ *
+ * Copyright (c) 2014-2016, Jon Schlinkert.
+ * Licensed under the MIT License
+ */
+
+'use strict';
+
+var flatten = require('arr-flatten');
+var slice = [].slice;
+
+module.exports = function(arr, arrays) {
+  arrays = flatten(slice.call(arguments, 1));
+  var len = arrays.length;
+  for (var i = 0; i < len; i++) {
+    remove(arr, arrays[i]);
+  }
+  return arr;
+};
+
+function remove(arr, ele) {
+  var idx = arr.indexOf(ele);
+  while (idx !== -1) {
+    arr.splice(idx, 1);
+    idx = arr.indexOf(ele);
+  }
+}
diff --git a/package.json b/package.json
new file mode 100644
index 0000000..295710e
--- /dev/null
+++ b/package.json
@@ -0,0 +1,66 @@
+{
+  "name": "arr-diff",
+  "description": "Returns an array with only the unique values from the first array, by excluding all values from additional arrays using strict equality for comparisons.",
+  "version": "3.0.0",
+  "homepage": "https://github.com/jonschlinkert/arr-diff",
+  "author": "Jon Schlinkert (https://github.com/jonschlinkert)",
+  "repository": "jonschlinkert/arr-diff",
+  "bugs": {
+    "url": "https://github.com/jonschlinkert/arr-diff/issues"
+  },
+  "license": "MIT",
+  "files": [
+    "index.js"
+  ],
+  "main": "index.js",
+  "engines": {
+    "node": ">=0.10.0"
+  },
+  "scripts": {
+    "test": "mocha"
+  },
+  "dependencies": {
+    "arr-flatten": "^1.0.1"
+  },
+  "devDependencies": {
+    "ansi-bold": "^0.1.1",
+    "array-differ": "^1.0.0",
+    "benchmarked": "^0.2.4",
+    "gulp-format-md": "^0.1.9",
+    "minimist": "^1.2.0",
+    "mocha": "^2.4.5"
+  },
+  "keywords": [
+    "arr",
+    "array",
+    "array differ",
+    "array-differ",
+    "diff",
+    "differ",
+    "difference"
+  ],
+  "verb": {
+    "related": {
+      "list": [
+        "arr-flatten",
+        "array-filter",
+        "array-intersection"
+      ]
+    },
+    "toc": false,
+    "layout": "default",
+    "tasks": [
+      "readme"
+    ],
+    "plugins": [
+      "gulp-format-md"
+    ],
+    "lint": {
+      "reflinks": true
+    },
+    "reflinks": [
+      "verb",
+      "array-differ"
+    ]
+  }
+}
diff --git a/test.js b/test.js
new file mode 100644
index 0000000..f0e6e04
--- /dev/null
+++ b/test.js
@@ -0,0 +1,38 @@
+'use strict';
+
+require('mocha');
+var assert = require('assert');
+var diff = require('./');
+
+describe('diff', function() {
+  it('should diff array:', function() {
+    assert.deepEqual(diff(['a', 'b', 'c'], ['b', 'c', 'e']), ['a']);
+    assert.deepEqual(diff(['x', 'b', 'c', 'e', 'y'], ['b', 'x', 'e']), ['c', 'y']);
+    assert.deepEqual(diff(['x', 'x'], ['a', 'b', 'c']), ['x', 'x']);
+    assert.deepEqual(diff(['x'], ['a', 'b', 'c']), ['x']);
+  });
+
+  it('should include duplicates:', function() {
+    assert.deepEqual(diff(['x', 'b', 'b', 'b', 'c', 'e', 'y'], ['x', 'e']), ['b', 'b', 'b', 'c', 'y']);
+  });
+
+  it('should diff elements from multiple arrays:', function() {
+    assert.deepEqual(diff(['a', 'b', 'c'], ['a'], ['b']), ['c']);
+  });
+
+  it('should return an empty array if no unique elements are in the first array:', function() {
+    assert.deepEqual(diff(['a'], ['a', 'b', 'c']), []);
+  });
+
+  it('should return the first array if the second array is empty:', function() {
+    assert.deepEqual(diff(['a', 'b', 'c'], []), ['a', 'b', 'c']);
+  });
+
+  it('should return the first array if no other args are passed:', function() {
+    assert.deepEqual(diff(['a', 'b', 'c']), ['a', 'b', 'c']);
+  });
+
+  it('should iterate over sparse arguments:', function() {
+    assert.deepEqual(diff(['a', 'b', 'c'], null, ['a', 'b']), ['c']);
+  });
+});

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-javascript/node-arr-diff.git



More information about the Pkg-javascript-commits mailing list