function forEachMarkov($func, $params, $lvl, $incfilter = array(), $excfilter = array("ZZZZ"))
{
    forEachFile($func, $params, "build/markovlists/" . $lvl, $incfilter, $excfilter);
}
        echo "Run phases 5.1 (markov-185-rules), 5.2 (rockyou-rules), 5.3 (allcategorizedwordlists-rules), 5.4 (nsfw-ascii-rules)\n";
        break;
    case 5.1:
        if ($app != "cudahashcat+-7zwordlist") {
            die("You really only want to run this phase with cudahashcat+-7zwordlist.\n");
        }
        $params = array();
        $params["rules"] = 1;
        $params["wordlist-flags"] = CUDAHASHCAT_WL_238K;
        $func = create_function('$filename, $params', '
			global $wordlist_stamped, $app;
			$wordlist_stamped = copyfile($filename, "wl");
			$params["wordlist"] = $filename;
			writeJob($params);
			');
        forEachFile($func, $params, "build/markovlists/lvl185-compressed/", $wordlist_inc_filter, $wordlist_exc_filter);
        break;
    case 5.2:
        $params = array();
        $params["rules"] = 1;
        $params['wordlist'] = 'build/wordlists/extralarge/rockyou-uniqed.txt';
        if (getAppZip()) {
            $params['wordlist'] .= ".xz";
        }
        $params["wordlist-flags"] = JOHN_WL_FORLOWERCASE | HASHCAT_WL_238K | CUDAHASHCAT_WL_238K;
        $func = create_function('$filename, $params', '
			global $wordlist_stamped, $app;
			$wordlist_stamped = copyfile($filename, "wl");
			$params["wordlist"] = $filename;
			writeJob($params);
			');