nissy-core

The "engine" of nissy, including the H48 optimal solver.
git clone https://git.tronto.net/nissy-core
Download | Log | Files | Refs | README | LICENSE

commit 4e4c710131b143cfb6651d23945746f02bf2593e
parent 6184781dbc28669a52de8a3bd95e5815a09fa674
Author: Sebastiano Tronto <sebastiano@tronto.net>
Date:   Thu, 31 Jul 2025 15:59:03 +0200

Fixed bug and added tests

Diffstat:
Msrc/solvers/coord/solve.h | 57+++++++++++++++++++++++++--------------------------------
Atools/404_solvetest_opt0_DR_UD/scrambles.h | 199+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Atools/404_solvetest_opt0_DR_UD/solvetest.c | 8++++++++
Dtools/404_solvetest_opt1_DR_UD/scrambles.h | 1563-------------------------------------------------------------------------------
Dtools/404_solvetest_opt1_DR_UD/solvetest.c | 8--------
Atools/405_solvetest_opt0_DR_RL/scrambles.h | 212+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Atools/405_solvetest_opt0_DR_RL/solvetest.c | 8++++++++
Atools/406_solvetest_opt0_DR_FB/scrambles.h | 243+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Atools/406_solvetest_opt0_DR_FB/solvetest.c | 8++++++++
9 files changed, 703 insertions(+), 1603 deletions(-)

diff --git a/src/solvers/coord/solve.h b/src/solvers/coord/solve.h @@ -20,7 +20,6 @@ STATIC long long solve_coord_dispatch(oriented_cube_t, const char *, unsigned, const unsigned char *, unsigned, char *, long long [static NISSY_SIZE_SOLVE_STATS], int (*)(void *), void *); STATIC bool coord_solution_admissible(const dfsarg_solve_coord_t [static 1]); -STATIC bool solve_coord_dfs_stop(const dfsarg_solve_coord_t [static 1]); STATIC bool coord_continue_onnormal(const dfsarg_solve_coord_t [static 1]); STATIC bool coord_continue_oninverse(const dfsarg_solve_coord_t [static 1]); STATIC int64_t solve_coord_dfs(dfsarg_solve_coord_t [static 1]); @@ -39,34 +38,10 @@ coord_solution_admissible(const dfsarg_solve_coord_t arg[static 1]) } STATIC bool -solve_coord_dfs_stop(const dfsarg_solve_coord_t arg[static 1]) -{ - bool hasnissed; - uint8_t n, pval; - uint64_t coord; - const cube_t *c; - - n = arg->solution_moves->nmoves + arg->solution_moves->npremoves; - if (n >= arg->target_depth) - return true; - - hasnissed = arg->solution_moves->nmoves > 0 && - arg->solution_moves->npremoves > 0; - if (!hasnissed && (arg->nissflag & NISSY_NISSFLAG_MIXED)) - return false; - - c = arg->lastisnormal ? &arg->cube : &arg->inverse; - - coord = arg->coord->coord(*c, arg->coord_data); - pval = get_coord_pval(arg->coord, arg->ptable, coord); - - return n + pval > arg->target_depth; -} - -STATIC bool coord_continue_onnormal(const dfsarg_solve_coord_t arg[static 1]) { - uint8_t flag, nn, ni, swbound_n, swbound_i; + uint8_t flag, nn, ni, swbound_n, swbound_i, pval; + uint64_t coord; flag = arg->nissflag; nn = arg->solution_moves->nmoves; @@ -82,6 +57,14 @@ coord_continue_onnormal(const dfsarg_solve_coord_t arg[static 1]) if (nn + ni == 0) return true; + /* Pruning table check */ + if (!(flag & NISSY_NISSFLAG_MIXED) || ni != 0) { + coord = arg->coord->coord(arg->cube, arg->coord_data); + pval = get_coord_pval(arg->coord, arg->ptable, coord); + if (nn + ni + pval > arg->target_depth) + return false; + } + if (arg->lastisnormal) { /* Can continue if we have already switched */ if (ni > 0) @@ -111,7 +94,8 @@ coord_continue_onnormal(const dfsarg_solve_coord_t arg[static 1]) STATIC bool coord_continue_oninverse(const dfsarg_solve_coord_t arg[static 1]) { - uint8_t flag, nn, ni, swbound_n, swbound_i; + uint8_t flag, nn, ni, swbound_n, swbound_i, pval; + uint64_t coord; flag = arg->nissflag; nn = arg->solution_moves->nmoves; @@ -127,6 +111,14 @@ coord_continue_oninverse(const dfsarg_solve_coord_t arg[static 1]) if (nn + ni == 0) return true; + /* Pruning table check */ + if (!(flag & NISSY_NISSFLAG_MIXED) || nn != 0) { + coord = arg->coord->coord(arg->inverse, arg->coord_data); + pval = get_coord_pval(arg->coord, arg->ptable, coord); + if (nn + ni + pval > arg->target_depth) + return false; + } + if (!arg->lastisnormal) { /* Can continue if we have already switched */ if (nn > 0) @@ -157,7 +149,7 @@ STATIC int64_t solve_coord_dfs(dfsarg_solve_coord_t arg[static 1]) { bool lastbackup; - uint8_t m, l, nnbackup, nibackup; + uint8_t m, l, nnbackup, nibackup, nmoves; uint32_t mm; uint64_t coord; int64_t n, ret; @@ -171,14 +163,15 @@ solve_coord_dfs(dfsarg_solve_coord_t arg[static 1]) arg->solution_settings, arg->solution_list); } - if (solve_coord_dfs_stop(arg)) - return 0; - backup_cube = arg->cube; backup_inverse = arg->inverse; lastbackup = arg->lastisnormal; nnbackup = arg->solution_moves->nmoves; nibackup = arg->solution_moves->npremoves; + nmoves = nnbackup + nibackup; + + if (nmoves >= arg->target_depth) + return 0; ret = 0; if (coord_continue_onnormal(arg)) { diff --git a/tools/404_solvetest_opt0_DR_UD/scrambles.h b/tools/404_solvetest_opt0_DR_UD/scrambles.h @@ -0,0 +1,199 @@ +struct { + char *scramble; + char *solutions; +} s[] = { +[0] = { + .scramble = "F2 D' F2 U2 R F2 R2 B' L U' L2 U' L2 U R2 U F2 U B2 R2 F2 D2", + .solutions = + "(F2 D' F2 U2 R F2 R2 B' L)\n" + "(F2 D' F2 U2 R' B2 L2 B L)\n" +}, +[1] = { + .scramble = "L2 U' B' R2 D2 L U R' F U2 B' L2 U2 B L2 F' D2 F U2 L2 D2", + .solutions = + "F2 D2 F B' L D' R' L2 B\n" + "F2 R2 F D B R' L' U' B\n" + "F' R D L D' L' B L' B\n" + "F' R D B L' U' F2 U B\n" + "F' R' D L D' L' B L' B\n" + "F' R' D B L' U' F2 U B\n" + "U2 R2 D B U2 R' L2 B L\n" + "F' R B L' B D L' U' L\n" + "F' R' B L' B D L' U' L\n" + "F' L B U2 D' R D' F' L\n" + "(F2 B D R' L D2 B' L2 F)\n" + "(F2 B D F2 R L' B' U2 F)\n" + "(F2 B D R' L D2 F' D2 B)\n" + "(F2 B D F2 R L' F' L2 B)\n" +}, +[2] = { + .scramble = "R F2 D2 R2 U' F B2 D' F2 R F2 R F2 U2 R U2 R' U2 B2 L D2 R", + .solutions = + "R U B D2 F2 L' D R L\n" + "R U B D2 F2 L' D' R L\n" + "(U2 F2 R' F2 R2 U' D2 F' R)\n" +}, +[3] = { + .scramble = "R2 U2 L2 U L2 F D' L2 U' R D R2 U' R2 D R2 B2 U B2 L2 D'", + .solutions = + "U2 R2 F' U' R' U F2 U' F\n" + "R2 F D' B2 L' D F2 D' F\n" + "L' F' U2 R' U' F' U2 D2 R\n" +}, +[4] = { + .scramble = "U2 F' U B R2 U2 D' L' D R' F' L2 B' R2 D2 R2 U2 B2 R2 F' L2 B' L2", + .solutions = + "(R2 F' R' D2 B2 U F' B D R)\n" + "(U L' F' U' L' B' R F U' L)\n" +}, +[5] = { + .scramble = "U D R' F2 B2 D L F D' B U B2 L2 U2 R2 U' B2 D2 B2 L2 F2", + .solutions = + "U' D' F' D' F' L2 F B' R\n" + "U D B' D' B' R2 F' B L\n" +}, +[6] = { + .scramble = "R' F2 R' U' F2 D2 F2 D B' R' F2 R D2 L2 B2 L2 B2 D2 L U2 L'", + .solutions = + "D' L U' L' D' R2 F2 D' F\n" + "L U' L B' U D2 F R2 F\n" + "F U D2 R B2 R' U2 R2 F\n" + "F U R L' F2 R D2 L F\n" + "L U' L B' U D2 B U2 B\n" + "F U D2 R B2 R' D2 L2 B\n" +}, +[7] = { + .scramble = "D' B2 U' L B' D R2 F' R2 D2 R D2 L2 F2 U2 F2 U2 R' D2 F2 L2 F2", + .solutions = + "U' D F U2 D F B2 L F\n" + "R2 U' L B L' D' R' D2 F\n" + "U' D' F' R' F2 L2 B2 D B\n" + "L2 D' L F L' U' R' U2 B\n" +}, +[8] = { + .scramble = "R' B U2 D F L' D' F' L U R2 B2 U2 F2 L2 U' B2 U2 B2 U' R2 D'", + .solutions = + "(R' B U2 D F L' D' F' L)\n" +}, +[9] = { + .scramble = "U' B R2 U2 R U' F2 D' L2 F' U2 L2 B2 R2 F2 U' D2 F2 U' L2 D", + .solutions = + "F L' F' B R2 B2 D B L\n" + "(U' B' U2 R U2 B2 R U' F)\n" + "(U' B' U2 L F2 U2 L D' B)\n" +}, +[10] = { + .scramble = "D' L2 F2 R L' F D R L U' F2 U L2 U L2 F2 U2 B2 D' B2 U2", + .solutions = + "R2 F2 D' L B R2 B2 D2 R\n" + "R2 F2 D' L B L2 F2 U2 R\n" + "R2 F2 D R F' U2 R F' L\n" + "R2 F2 D' L B R2 F2 U2 L\n" + "R2 F2 D' L B L2 B2 D2 L\n" + "L' B2 D2 F L2 F2 R2 U' L\n" + "(R B2 U' R' F2 R U' F L)\n" + "(D' L2 F2 R L' F D R L)\n" + "(D' L2 F2 R L' F D' R L)\n" +}, +[11] = { + .scramble = "L' D B2 D' L' B R L' B L2 U2 F2 U R2 L2 F2 D F2 U' F2 U' R2", + .solutions = + "(L' D B2 D' L' B R L' B)\n" +}, +[12] = { + .scramble = "D F D' L2 U L B' U2 R F2 L2 B2 D' B2 D' L2 D' F2 B2 U' L2", + .solutions = + "(D F D' L2 U L B' U2 R)\n" + "(L B L2 D F' L2 D F' L)\n" +}, +[13] = { + .scramble = "F2 D2 L F2 R' L' F2 B R' U2 R2 U' R2 D B2 D' L2 U' R2 D2", + .solutions = + "R L B' R B' R2 B2 U F\n" + "R2 L B R' B2 R' B2 U F\n" + "R U' L B' U' R F2 U2 B\n" + "R U' L B' U' R B2 D2 B\n" + "U2 F2 R' D F U2 L' F2 R\n" + "U' L' F U F2 D R' F2 R\n" + "U2 F2 R' D F U2 R' D2 L\n" + "U' D2 F' R' B2 D R' B' L\n" + "U' L' F U F2 D L' U2 L\n" + "F' L F U2 L2 U' F' U2 L\n" + "F' L F D2 R2 U' B D2 L\n" + "(F2 U2 B D2 R B' D2 L' F)\n" + "(L U2 D' B R B2 U2 R' B)\n" + "(F2 D2 L F2 R' L' F2 B R)\n" + "(R' U2 L2 F2 L U2 F' B2 L)\n" +}, +[14] = { + .scramble = "D' B' U' R' L' D L' U' B' D F R2 D2 L2 F' R2 B U2 D2 B2 D2", + .solutions = + "L2 U B2 R L' F U2 L D' F\n" + "F' L2 B' R B2 L2 D' L U2 F\n" + "D' L B U L' D' L' U F B\n" + "D' L B U L' D' L' U' F B\n" + "U F R U' L B' R2 L2 B' R\n" + "U' D L' F R U' D2 F' D2 R\n" + "D2 F' D R F U' L' F U R\n" + "B2 R' D B R F U' D2 F R\n" + "U F R U' L F' U2 D2 F' L\n" + "L U L' F R L U D2 F' L\n" + "F2 L' U B L F U2 D' F L\n" + "(U R' L' U2 D2 F' R U' D2 F)\n" + "(R' B U F2 U R' U' R' L' F)\n" + "(R' B U' L2 U2 F2 R' B2 L' F)\n" + "(U' R' L B U2 F D2 R U B)\n" + "(D2 B L2 U' D B' L B2 R' B)\n" + "(D2 B L2 U' D2 B R' B2 L B)\n" + "(R2 B R U B2 L D2 R U2 B)\n" + "(R' B U' R2 D2 B2 R' F2 L' B)\n" + "(U B' R B2 R L2 U' F' B2 L)\n" + "(F2 B' R2 L D' R2 B' U2 B' L)\n" +}, +[15] = { + .scramble = "F2 D' F2 R2 F' U R D' F B2 L D2 R' D2 R' B2 L F2 L' D2 B2", + .solutions = + "L' U' R D' F D' L2 D B\n" +}, +[16] = { + .scramble = "U' F2 L F D' B2 U' R U L2 F U2 F L2 F2 U2 B' R2 L2 D2 F2", + .solutions = + "R2 U' L' B' D' B R2 D' B\n" + "F' B U' R2 B2 U F' D2 R\n" +}, +[17] = { + .scramble = "F R L2 U B' D2 F' L2 U2 D' F2 U2 R2 F U2 R2 B U2 D2", + .solutions = + "(L2 F R' U D2 L2 F' R2 F)\n" + "(L2 F R' U D2 L2 B' D2 B)\n" +}, +[18] = { + .scramble = "F' U' L' F L' D2 F U' F B2 R D2 B2 L' F2 L U2 D2 F2 R B2", + .solutions = + "D2 L' B R U D2 B' D R\n" + "B U F' U' R U F2 B R\n" +}, +[19] = { + .scramble = "U2 R2 L D2 B' U' B2 R2 F R2 L U' F2 U2 B2 U L2 D2 L2 U B2", + .solutions = + "(D' R2 U' B' L' U L' F R F)\n" + "(L F B D' R' F' U' L2 D F)\n" + "(L' D F R' B2 U F' L' U' F)\n" + "(L' B' L2 B' U L2 F' U2 L' F)\n" + "(D2 F' R L U' B2 L2 F' U' R)\n" + "(R2 U' B2 R F D F B' D R)\n" + "(L2 D' F2 R B U F' B U R)\n" + "(B D F' U2 L U2 R' U2 F' R)\n" + "(U2 R2 L D2 B' U' B2 R2 F L)\n" + "(D R U' B' U' D2 F2 R' B L)\n" + "(R B R2 U2 F2 R' D' B D2 L)\n" + "(B U L' F' U' R D' R B' L)\n" + "(B D R' L2 B' R' B R F' L)\n" + "(B D F' R' D' R D' R B' L)\n" + "(B' U2 F' L F2 U2 B D F' L)\n" + "(B' U2 F' L B U2 F2 D F' L)\n" +}, +{ + .scramble = "", /* End-of-list signal */ +} +}; diff --git a/tools/404_solvetest_opt0_DR_UD/solvetest.c b/tools/404_solvetest_opt0_DR_UD/solvetest.c @@ -0,0 +1,8 @@ +#define NISSFLAG NISSY_NISSFLAG_LINEAR +#define MINMOVES 0 +#define MAXMOVES 20 +#define MAXSOLUTIONS 500 +#define OPTIMAL 0 + +#include "scrambles.h" +#include "../solvetest.h" diff --git a/tools/404_solvetest_opt1_DR_UD/scrambles.h b/tools/404_solvetest_opt1_DR_UD/scrambles.h @@ -1,1563 +0,0 @@ -struct { - char *scramble; - char *solutions; -} s[] = { -[0] = { - .scramble = "U2 D' B U B' R L2 F L F2 R2 B U2 L2 F' U2 R2 B2 L2 B2 L2", - .solutions = - "R' D F' R2 L' D2 F' U R\n" - "R' U2 L' F L2 B' R L' U F\n" - "U F D2 R U B U2 F L B\n" - "D F' D' F2 B' R D R2 L B\n" - "D2 L F' R' B L B' U D2 B\n" - "R' D2 R' B R2 F' R' L U B\n" - "B' D2 F' R' L' D' B L2 U' B\n" - "U R L' U' B' D2 F' L' F2 R\n" - "D L' F B D B D' L' B' R\n" - "F D' R' F2 B L2 D2 F U' R\n" - "F' L' D' R' F' R D' F' U R\n" - "U R L' U' B' D2 F' R' D2 L\n" - "R U2 L' B L U2 B2 D F L\n" - "R' U2 D' B' R' L2 D2 B' U L\n" - "L2 D2 F' U2 L2 U2 R' U' F' L\n" - "F D' R' F B2 D2 R2 B D' L\n" - "(F2 U' D' R D' B L B D' F)\n" - "(D L' B R' U B2 U F D2 R)\n" - "(L2 D R F L' U2 F B D' R)\n" - "(D L' B R' U2 F D F2 U L)\n" - "(D L' B R' U2 F' U L2 D L)\n" -}, -[1] = { - .scramble = "B' R D2 L2 B' D2 F U' L' B U R2 D' F2 L2 D2 F2 D' B2 U' B2 D'", - .solutions = - "(B' R F' D2 B L2 U R' F)\n" - "R' B' U2 R B R' L B' D' F\n" - "L U2 L2 D2 L2 B' R U L2 F\n" - "L' U' F2 B' U2 B2 L B2 D F\n" - "B L U' F B D' B2 D2 R' F\n" - "R L F R F U2 F2 R' U' B\n" - "R2 L' F L2 U2 R U' R2 U' B\n" - "B' R' F2 D L F' R' F' L B\n" - "L' F B' R2 D R2 L2 B D R\n" - "(B' R U2 R2 F' D2 B U' R' F)\n" - "(U' B U2 R L2 D' F L U' B)\n" - "(B' R D2 L2 B' D2 F U' L' B)\n" - "(L U2 B' U' F' R B' U' F' R)\n" -}, -[2] = { - .scramble = "F2 L U' F U' L' U' F R D L2 F2 U B2 D R2 U F2 U F2 B2 D2", - .solutions = - "F R' D R F' U' L' D' R\n" - "F' L' F B2 L' F2 U D' R\n" - "F' L' F B2 L' B2 U' D L\n" - "(F2 L U' F U' L' U' F R)\n" - "(R L U2 B2 U B L2 B L)\n" - "(F2 U2 F2 R' D F D2 F L)\n" - "D L D F' U F' R' U' R2 F\n" - "D2 F' U R' U L' D' L D2 B\n" - "R D' R' L U' L2 B' U' L' B\n" - "U' L' F B2 U F D2 R B2 R\n" - "U' F2 D F' R' F' R' L U' R\n" - "U' F2 L' U' D' F U2 F' U' R\n" - "U' F2 L' U' D' B L2 B' U' R\n" - "D F2 R F U F L F' D R\n" - "D' R D' F R F D' B2 D' R\n" - "R' F D R F U' L U D' R\n" - "L U F' B' U B U' F' D' R\n" - "F U' R2 D2 B2 R U2 D F' R\n" - "F U' R2 B2 R U2 F2 D F' R\n" - "F U' R2 B2 R' L2 U D2 B' R\n" - "F R' D R F' B2 U' L' D' R\n" - "F B2 R' D R F' U' L' D' R\n" - "F2 U' F L' F' U R' U D' R\n" - "F' U' L U L2 F U2 F2 D' R\n" - "F' L' F U2 F2 R B2 U D R\n" - "F' L' F B2 L' U D F2 D2 R\n" - "F' L' F B2 L' U' D' F2 U2 R\n" - "F' L' F' D F2 U' R' L U' R\n" - "F' B2 L' F B2 L' F2 U D' R\n" - "U2 D2 B' R' F2 B R' U D' L\n" - "U' L' F B2 U F D2 L U2 L\n" - "R' F D R F' D' R U' D L\n" - "L D' F' D2 R2 U2 B' U F2 L\n" - "L D' B' L2 D2 R2 F' U F2 L\n" - "F U' L' D2 R' D2 B2 U' F' L\n" - "F R' D R F' U D2 R' D' L\n" - "F2 D2 B R' B' D' R F2 U' L\n" - "F' U' L U L2 F D2 B2 D' L\n" - "F' L' F U2 F2 R F2 U D L\n" - "F' L' F U' L U L2 B2 U' L\n" - "F' L' F B2 L' U D B2 U2 L\n" - "F' L' F B2 L' U' D' B2 D2 L\n" - "F' L' F' U L2 D' R L' U' L\n" - "F' B2 L' F B2 L' B2 U' D L\n" - "(U R' U2 F' U' D2 L' U D2 F)\n" - "(U2 R' B D F' B' L' B2 U' F)\n" - "(F' L U2 D2 L' U' F R D2 F)\n" - "(F' R D F U' F' B D L B)\n" - "(D R B2 R B U B' U D' R)\n" - "(D' L U2 L F D F' U' D R)\n" - "(R L U2 B2 U D2 F U2 F R)\n" - "(R L D2 F D B2 U D' F R)\n" - "(R2 B2 D2 B L' D' B L D2 R)\n" - "(R' L' U D' B D2 B D' F2 R)\n" - "(F2 U2 F2 R' U2 D B R2 B R)\n" - "(F2 U2 F2 R' D F' B2 U2 F R)\n" - "(F2 L' B' U B L' U' L' F2 R)\n" - "(F' U' F D2 L B2 D' B2 U R)\n" - "(F' U' F' U2 R' F2 D B2 U R)\n" - "(F' U' F' R L' U F2 L2 D R)\n" - "(F' U' F' L' F2 D R' U D' R)\n" - "(F' L D2 R D' B2 U D' F R)\n" - "(F' B' R' U2 R' U B U' F R)\n" - "(U' D R' U R F' U' F' D L)\n" - "(D F2 R' U R F U2 F' D L)\n" - "(D F' U' R' U R U' F' D L)\n" - "(D' F2 R2 B2 R' F' L D F' L)\n" - "(R U2 R2 D' L2 F L' F' U L)\n" - "(R L U' B R B2 R' L2 B L)\n" - "(R L' U2 B' U2 L2 U' L2 B L)\n" - "(R F2 L U2 B2 U B L2 B L)\n" - "(R B2 R' D2 F2 U B L2 B L)\n" - "(R2 B2 D2 B L' D' B R F2 L)\n" - "(R2 B2 R L' F2 D F L2 F L)\n" - "(R' U L B L2 B2 R' B D2 L)\n" - "(L U R' D2 F' D F U D L)\n" - "(L D2 R U2 B2 U B L2 B L)\n" - "(L2 U2 F B2 D' R' D' R F' L)\n" - "(L2 F2 U2 R L' U B L2 B L)\n" - "(F2 U2 F2 D F R' D' F D2 L)\n" - "(F2 U2 F2 B2 R' D F D2 F L)\n" - "(F2 L U R' U F' D F D L)\n" - "(F2 L' B' U B L' U' R' D2 L)\n" - "(F' U2 B2 R U R2 F' L2 U' L)\n" - "(F' U' F R2 L2 U R' B2 U L)\n" - "(F' U' F R' D' L2 U' R2 B2 L)\n" - "(F' U' F R' D' L2 U' L2 F2 L)\n" -}, -[3] = { - .scramble = "B U R' U F' B2 R F2 L F2 L2 U D2 R2 F2 D L2 U R2 D2 L2 U'", - .solutions = - "U F2 R' D L F' U2 L2 F\n" - "U F2 R' D L B' L2 D2 F\n" - "U F2 R' D L F' D2 R2 B\n" - "U F2 R' D L B' R2 U2 B\n" - "(B R2 U2 R U' F U2 L F)\n" - "(B L2 D2 R D' B D2 L B)\n" - "(B U R' U F' B2 L D2 R)\n" - "(B U R' U F' B2 R F2 L)\n" - "U F2 R' D L F B2 D2 R2 F\n" - "U F2 R' D L F2 B R2 U2 F\n" - "U2 B U D' B D B' R' L F\n" - "U' D2 B2 L' D R F' L2 U2 F\n" - "U' D2 B2 L' D R B' D2 L2 F\n" - "U' L F R U2 F2 D F' L' F\n" - "U' L F R' U2 B2 U F' R' F\n" - "U' L' U2 D L U2 D' R' L2 F\n" - "L2 U2 L' U' F2 R' D L' D2 F\n" - "F D B2 D2 F' U' F2 R L' F\n" - "F D' F2 U2 F U' R L' U2 F\n" - "F2 L2 B L2 U' R2 D' R L F\n" - "F2 L2 B L2 D' F2 U' R L F\n" - "B L U F2 R D2 R2 D' L' F\n" - "B2 R2 B' L2 U F2 D R' L' F\n" - "B2 R2 B' L2 D R2 U R' L' F\n" - "B' L B' L U F2 R' D L' F\n" - "U F2 R' D L F B2 U2 L2 B\n" - "U F2 R' D L F2 B L2 D2 B\n" - "U' D2 B2 L' D R F' R2 D2 B\n" - "U' D2 B2 L' D R B' U2 R2 B\n" - "U' L F' R U2 L2 U' B' L' B\n" - "U' F2 R D L' U2 B L2 D B\n" - "D2 F U D' F D F' R L' B\n" - "D' R U D' L' B2 R B2 R B\n" - "L B U' D' R D' L' U R2 B\n" - "L2 D2 R' U' B2 L' D R' D2 B\n" - "F D' F2 U2 F U' R' L D2 B\n" - "U' F' L' F' D R D L2 F L\n" - "B L U R F' D2 R2 F D L\n" - "(U2 F' L' D2 R' D R F R F)\n" - "(D' L B U2 R' F' L' B2 U F)\n" - "(L' U2 B D F R D' B L' F)\n" - "(B R2 U2 B2 R U' F U2 L F)\n" - "(U2 L F U D' B U R L B)\n" - "(D' B L2 B2 U2 L B R U B)\n" - "(R L2 D' B' L' U L2 U R B)\n" - "(B L2 D2 F2 R D' B D2 L B)\n" - "(B' L2 B' L U2 B' D' F2 L B)\n" - "(U2 R L F D R L F' U2 R)\n" - "(D' R D2 B L2 D F2 B U' R)\n" - "(D' R' F2 R2 D' B' R' B2 U2 R)\n" - "(D' R' F2 R2 D' B' L' U2 F2 R)\n" - "(R L2 D' B L' B U L2 B' R)\n" - "(L U D' R L B R' L U' R)\n" - "(L F B L F B' D F2 D2 R)\n" - "(F U' R' D R' U B' L' D R)\n" - "(F U' L2 F2 D F U' L' U' R)\n" - "(F L F U2 F2 R' U2 F' D' R)\n" - "(F L F B2 L D2 F' B2 D' R)\n" - "(F B' R F2 D R' L' D F R)\n" - "(B U R' U F' B2 R2 L' U2 R)\n" - "(D' R D B U2 R2 F R2 U2 L)\n" - "(D' R D B U2 R2 F L2 D2 L)\n" - "(D' R D B R' L2 D2 R B' L)\n" - "(D' R D' L2 U2 F' R2 U2 B' L)\n" - "(D' R' F2 R2 D' B' R' F2 D2 L)\n" - "(D' R' F2 R2 D' B' L' D2 B2 L)\n" - "(D' B2 L2 U B L2 F2 R' D' L)\n" - "(D' B2 L2 U B' L2 F2 R D' L)\n" - "(R B R2 U2 F' U' R F2 U' L)\n" - "(L D' R L B L' B L' B L)\n" - "(L F B L F B' D B2 U2 L)\n" - "(F' D' B2 L' U L' B' R' U L)\n" - "(B U R2 F U F' R U F L)\n" - "(B U R' U F' B2 R' L2 B2 L)\n" - "(B' L' D2 R' B' L' D2 B' D' L)\n" -}, -[4] = { - .scramble = "U' D2 B2 L2 D F2 R' D B D2 R' D2 B2 L2 F2 R' D2 L D2 F2 U2 L", - .solutions = - "R D' F R D2 L B2 U2 L' F\n" - "R2 L' D2 L2 B2 D R D' L' F\n" - "R' B R' U2 B U R' U' D F\n" - "L' F2 R L B2 U2 R' U' R' F\n" - "F2 L D2 L F2 D2 R2 U' R' F\n" - "B2 L' U R U' R2 D2 L D F\n" - "R D' F2 U R' D2 F2 U2 L B\n" - "R L B U B2 U' L F2 D2 B\n" - "R L B U B2 U' L B2 U2 B\n" - "R L B' U' L' B U' F2 R2 B\n" - "R L B' U' L' B U' B2 L2 B\n" - "L U2 R2 B2 L2 B2 L' D' R' B\n" - "L F2 R2 B2 D2 F2 R' U' L' B\n" - "L B2 R U' L U' F2 D R2 B\n" - "L B2 R U' L D F2 U' R2 B\n" - "L B2 L2 F2 D2 B2 L' D' R' B\n" - "F2 R L U' D B L2 D L' B\n" - "U' R2 D' F' R D2 F B2 D' R\n" - "R' D2 R F R' B2 U2 F2 U' R\n" - "R' D2 R2 B2 R' F U F2 U' R\n" - "R' D2 L2 F2 U2 R' D2 B' D' R\n" - "L U2 R2 B2 L B D B2 D' R\n" - "L D2 L2 D' F2 L' F L2 D R\n" - "L2 D2 B2 R' F R' L F U' R\n" - "F2 D2 L2 F D2 L' F R2 U' R\n" - "F2 R2 B' U2 R2 L' F R2 U' R\n" - "F' L U2 R2 B L D2 L2 D R\n" - "R' D2 R F R' B2 D2 B2 U' L\n" - "R' D' R F R2 U2 F' D2 F' L\n" - "F' L D2 L2 F R D2 L2 U L\n" - "(R2 B2 U2 F' L' F2 D2 R2 U R)\n" - "(R' L2 D R2 U R L' D F' R)\n" - "(L U' F2 R L' D' R F' B2 R)\n" - "(L U' B' R' L D2 R F2 B' R)\n" - "(L B' L D2 B D2 L' U' B2 R)\n" - "(L2 U' R' D2 R F' B' R2 F' R)\n" - "(F2 L U' B' R2 D B2 R2 B R)\n" - "(B2 R D' B' L2 U B2 L2 B L)\n" - "(B' L B' D2 R' B' U F2 B2 L)\n" - "U B2 R U B2 R2 B2 U2 R D F\n" - "U B2 R U' R2 B U2 B R' D F\n" - "U2 L2 U' R B2 U' L D' R2 D' F\n" - "U2 L2 B2 L' F2 L U' D2 R2 L F\n" - "U2 B R' U2 F R' F' D' R D2 F\n" - "U2 B2 R' U D' B2 D' R U2 R2 F\n" - "U2 B2 R' B R' U2 D R F2 L' F\n" - "D2 R2 U R D' L2 D B2 R2 L F\n" - "D2 R' L D2 R U' F2 U D' R F\n" - "D2 F2 R2 L' B R2 F D' R L2 F\n" - "D2 F2 L' D2 F2 D2 R2 B2 U R' F\n" - "D2 F2 L' D' L2 F L2 F D R F\n" - "D2 F2 L' D' F2 R2 B2 R2 D R F\n" - "D2 F2 L' F' R2 B' L2 B' U R' F\n" - "D' B' R D L2 U2 R2 F B R F\n" - "D' B' R L2 D B' L2 D2 B2 L F\n" - "R U' L' D2 F2 D F' L2 U L' F\n" - "R D2 R2 L' D' L U F2 U' L2 F\n" - "R D2 L2 U' L D' L' F L2 U F\n" - "R D' F R2 L' F2 L D2 B2 R' F\n" - "R D' F L B2 L U2 F2 R L2 F\n" - "R L U' L2 D L' F2 L2 U D F\n" - "R L B U B2 U' L F B R2 F\n" - "R L B U B2 U' L F' B' L2 F\n" - "R L B U B2 D R2 U' D' L' F\n" - "R L B' U' L' B U' F B U2 F\n" - "R L B' U' L' B U' F' B' D2 F\n" - "R L2 U L D L U2 F2 L2 U' F\n" - "R L2 U L D L' U2 F2 L2 U F\n" - "R L2 U2 L D L' U F2 L2 U F\n" - "R L' U L2 U' D L U' F2 L2 F\n" - "R L' U L2 U' D L U' B2 R2 F\n" - "R L' D L' F U L2 U2 F2 L2 F\n" - "R L' D L' F U L2 U2 B2 R2 F\n" - "R L' D2 R2 D' L' D' F' L2 D F\n" - "R F B2 U F' B' R B R D F\n" - "R F' B2 R2 F2 U R' F2 R' D F\n" - "R B U2 R D' R' B U F U' F\n" - "R B U2 R D' R' B' U F U' F\n" - "R2 D' R L' D' L' F D' F2 L2 F\n" - "R2 D' R L' D' L' F D' B2 R2 F\n" - "R2 D' B2 L' B' D B' D2 R L F\n" - "R2 L B2 D2 R U' L F2 U D' F\n" - "R2 L' D2 L2 B2 R2 F2 L' U' R' F\n" - "R2 L' F2 U2 R2 F2 D' R D' L' F\n" - "R2 B2 D2 R U B2 D2 R' U' D' F\n" - "R' U2 R2 B R' U2 R2 D' R D2 F\n" - "R' D F' R2 B2 R D2 R' F R2 F\n" - "R' D F' R2 B2 L B2 L' F R2 F\n" - "R' D2 R2 B U' B' L F U L' F\n" - "R' D2 R2 B2 R L D R D' L' F\n" - "R' D2 R2 B2 R' L F2 L' U' R' F\n" - "R' D2 R' L D2 L2 D' R D' L' F\n" - "R' D2 L U2 R U2 F2 L' U' R' F\n" - "R' D2 L2 D' L2 F2 U' L U L F\n" - "R' D2 F2 R2 U R2 U' L U L F\n" - "R' D' L' F' D' F L' D' F2 L2 F\n" - "R' D' L' F' D' F L' D' B2 R2 F\n" - "R' D' B R' U2 B U2 R F U2 F\n" - "R' L' D' F2 U2 B2 R B2 L2 U F\n" - "R' L' D' B2 D2 B2 L B2 R2 D F\n" - "R' B R D' R U F U B' D2 F\n" - "R' B2 U' R' U2 R' B2 D F2 D2 F\n" - "R' B2 U' R' U2 R' B2 D B2 U2 F\n" - "R' B2 U' R' U2 R' B2 D' F2 D2 F\n" - "R' B2 U' R' U2 R' B2 D' B2 U2 F\n" - "R' B2 R2 F2 U B2 R' F2 R D F\n" - "R' B2 R' U R' F B2 D B2 U' F\n" - "R' B2 R' B' R2 D' R U2 B' D2 F\n" - "R' B' L U' L' B' U R2 B2 D F\n" - "L U2 L' B' R' D' B2 R U2 D2 F\n" - "L U2 F2 R2 L' D' R' U2 R2 D2 F\n" - "L U2 F2 R2 L' D' R' D2 R2 U2 F\n" - "L D F2 R2 D L2 D' L' U' R' F\n" - "L F2 D2 F2 L2 D2 R2 L' U' R' F\n" - "L B2 R U' R2 L' U B2 D' R2 F\n" - "L B2 R U' R2 L' D' B2 U R2 F\n" - "L B2 R U' L U' F2 U2 D' L2 F\n" - "L B2 R U' L D F2 U D2 L2 F\n" - "L B2 R U' L' U' F2 U2 L2 D' F\n" - "L B2 R U' L' D F2 D2 L2 U F\n" - "L2 D2 B2 R' F R' U' L F2 R' F\n" - "L2 F2 L F' D' F R L F2 D F\n" - "L2 B2 R L U' D' F L2 U L' F\n" - "L' D F D F' R2 B2 R' L D F\n" - "L' F2 R D L B2 R2 D' B2 U F\n" - "L' F2 R2 L F' R' F B2 U R' F\n" - "L' F2 L U R' F2 D L2 D2 L F\n" - "L' F2 L U2 F2 D' L' F2 U' R F\n" - "L' F2 L U2 B2 U' R' F2 D' L F\n" - "L' F' D' F R L' U' F' L2 U F\n" - "F U2 L2 B2 U' R L' F' R L2 F\n" - "F D R2 D F2 L' F D' B2 R' F\n" - "F B2 R F2 B D F' U2 R2 L' F\n" - "F2 R2 L' U2 L B2 U2 L2 U' R' F\n" - "F2 R' L U' F2 D L' D F2 L' F\n" - "F2 R' L F2 R' D' B2 R D' L2 F\n" - "F2 R' L' U D' F' B2 R2 D R' F\n" - "F2 R' F' D F2 L' F D2 F L' F\n" - "F2 L U2 D2 L F2 D2 R' U' R' F\n" - "F2 L U' D' L2 U' L' F2 U' R F\n" - "F2 L D2 L F' D R' D R2 U' F\n" - "F2 L D2 L' U2 L2 F2 U' D2 R' F\n" - "F' D2 R2 F2 U R L' F' R L2 F\n" - "B D2 R' B L2 B D' L' D R2 F\n" - "B2 U R U' L U2 L' U2 R2 D F\n" - "B2 U' L F U' L' F' U2 R' D F\n" - "B2 D2 R2 U2 R' B2 R U' D2 R' F\n" - "B2 R U2 D L U L' F L2 U F\n" - "B2 R D L U' L' U' F U2 L2 F\n" - "B2 R D L U' L' U' B R2 U2 F\n" - "B2 R D L U' L' F2 U L2 D F\n" - "B2 R L' F2 R D2 L U D2 R' F\n" - "B2 R2 U R' B2 D2 R' U' R D' F\n" - "B2 R2 F R F' D B2 D' R D F\n" - "B2 R2 F' D' B2 D' R F' U2 L F\n" - "B2 R' D R2 U B' R B' R U' F\n" - "B2 L U2 L U2 L F2 L U R' F\n" - "B2 L' U R U' R L B2 R D F\n" - "B' D' L2 B2 R D B' L2 D2 L F\n" - "B' R B U2 R2 D' B2 R' B D2 F\n" - "B' R' D L B' D2 F2 R' B L2 F\n" - "U B2 R U' F L2 D2 F2 R' U B\n" - "U2 L2 U2 B2 L' F2 L U' D2 L' B\n" - "U2 L' F' D' F' R2 L' D2 R D B\n" - "U2 L' F' D' F' R' L2 F2 L D B\n" - "U2 F2 R2 D L U' D2 R U R' B\n" - "U2 B2 R' U D' B2 D' R D2 L2 B\n" - "D R' D L2 F' U' R2 U' D R' B\n" - "D2 R' D2 R D' L2 U2 D2 B2 L B\n" - "D2 R' B2 U R2 F2 U L' D' R2 B\n" - "D' B' R D L2 D2 L2 F B L B\n" - "D' B' R L2 D B' R2 U2 F2 L B\n" - "R U2 D B2 U L D2 F2 U2 R' B\n" - "R D2 L' F' L B2 L2 U2 D R' B\n" - "R D' F2 U R2 L B2 D2 F2 R B\n" - "R D' F2 U L' F2 U2 B2 R' L2 B\n" - "R D' F' D2 L U2 D2 R F2 R B\n" - "R L U L2 D L' F R2 U D2 B\n" - "R L U L' U2 B' L U' L U B\n" - "R L U' L2 D L U' D' F2 R2 B\n" - "R L U' L2 D L U' D' B2 L2 B\n" - "R L U' L2 D L' F2 R2 U D B\n" - "R L B U B2 U' L U2 F2 D2 B\n" - "R L B U B2 U' L U2 B2 U2 B\n" - "R L B U B2 U' L D F2 D2 B\n" - "R L B U B2 U' L D B2 U2 B\n" - "R L B U B2 U' L D2 F2 D2 B\n" - "R L B U B2 U' L D2 B2 U2 B\n" - "R L B U B2 U' L D' F2 D2 B\n" - "R L B U B2 U' L D' B2 U2 B\n" - "R L B U' F D2 F2 U' F' R' B\n" - "R L B' U' L' F2 B R2 B2 D B\n" - "R L B' U' L' B U' R2 F2 R2 B\n" - "R L B' U' L' B U' R2 B2 L2 B\n" - "R L B' U' L' B U' L2 F2 R2 B\n" - "R L B' U' L' B U' L2 B2 L2 B\n" - "R L B' U' L' B R2 B2 L2 D B\n" - "R L' U2 D' F2 B2 R F2 L2 U' B\n" - "R L' D L' F U R2 D2 F2 R2 B\n" - "R L' D L' F U R2 D2 B2 L2 B\n" - "R B2 U2 D L2 D2 R' U' R U B\n" - "R B' L U' R2 L' D' F R2 U' B\n" - "R2 D' B2 L' B' D B' U2 R L B\n" - "R2 L B2 U2 R2 F2 D' L D' R' B\n" - "R2 L B2 R' U' L' B' U' F2 R2 B\n" - "R2 L B2 R' U' L' B' U' B2 L2 B\n" - "R2 L' U D B2 R2 U L D' R' B\n" - "R2 B2 L2 D' R' D' F2 U D2 R B\n" - "R' D F' R2 B2 R D2 R' B U2 B\n" - "R' D F' R2 B2 L B2 L' B U2 B\n" - "R' D2 F D2 B D' F R F R B\n" - "R' D' B R' U2 B U2 R B L2 B\n" - "R' F' R2 L' D L D2 B' U2 D B\n" - "R' B U' R2 U F' D' R F R B\n" - "R' B D' B' R' B R' U2 F2 R2 B\n" - "R' B D' B' R' B R' U2 B2 L2 B\n" - "R' B R D' R U F U F' R2 B\n" - "R' B R' U2 B U R L2 U D' B\n" - "R' B2 U' L' B2 L' F2 U F2 D2 B\n" - "R' B2 U' L' B2 L' F2 U B2 U2 B\n" - "R' B2 U' L' B2 L' F2 U' F2 D2 B\n" - "R' B2 U' L' B2 L' F2 U' B2 U2 B\n" - "R' B2 D' R2 U2 R L2 U' R U B\n" - "R' B2 R' B' R2 D' R U2 F' R2 B\n" - "L U L2 F2 U R2 D' R' U' L' B\n" - "L U2 R2 B2 R2 L2 U R U' L' B\n" - "L U2 R' L' D2 L2 D2 R' D' R' B\n" - "L U2 L2 F2 L2 F2 R2 L D' R' B\n" - "L U2 F2 R2 L' U D' L2 U' R' B\n" - "L U2 F2 R2 L' D' R' U2 L2 U2 B\n" - "L U2 F2 R2 L' D' R' D2 L2 D2 B\n" - "L U2 F2 L2 B2 L U R L2 U B\n" - "L U2 F2 L' U2 D2 L2 U2 D R' B\n" - "L U' R2 B2 L2 D B2 L' D' R' B\n" - "L F2 D' L D R U2 B' U' L B\n" - "L F2 D' L D R' U2 B' U' L B\n" - "L F2 R L U2 B2 D2 L' U' L' B\n" - "L F2 L2 F2 U2 B2 R L2 U' L' B\n" - "L B R' B2 U F2 D' B R' U B\n" - "L B2 R U' L U' R2 B2 U' L2 B\n" - "L B2 R U' L U' L2 F2 D R2 B\n" - "L B2 R U' L D R2 B2 D L2 B\n" - "L B2 R U' L D L2 F2 U' R2 B\n" - "L B2 R U' L' U' F2 D2 R2 D' B\n" - "L B2 R U' L' D F2 U2 R2 U B\n" - "L B2 R L U2 F2 D2 R' D' R' B\n" - "L B2 R2 U B2 R' U L D R2 B\n" - "L B2 R2 B2 U2 F2 R2 L D' R' B\n" - "L B2 L2 F2 D2 R2 U R U' L' B\n" - "L2 D2 R' D2 R U2 B2 L2 U' L' B\n" - "L' F2 U2 F2 L2 U2 R2 L' D' R' B\n" - "L' F2 R D L B2 L2 U' F2 D B\n" - "L' F2 L U R' F2 D R2 U2 L B\n" - "L' F' D' F' R' L D B' L2 D B\n" - "F R F2 D' B L2 F B R' L2 B\n" - "F2 U2 R2 D' L D' B2 D R' U' B\n" - "F2 R F2 L U2 F2 R' L' D' R' B\n" - "F2 R F2 B2 R B2 U2 R' D' R' B\n" - "F2 R' L U' F2 U B' U B2 R' B\n" - "F2 L U' D' R2 D' L' B2 D' R B\n" - "F2 L' F R' L2 U' R2 F2 B R B\n" - "F2 L' B R' U2 F U' B R' D2 B\n" - "F2 B' U2 R2 L' F R U' B R' B\n" - "F' U D F D2 R' B2 U2 D R B\n" - "F' B2 U' L2 U' R' L B' U2 R' B\n" - "B2 U R U' L U2 L' D2 L2 D B\n" - "B2 U2 L2 B2 R' D2 R U D2 L' B\n" - "B2 U' B2 D2 L' U2 D R' U R2 B\n" - "B2 D2 R B2 L2 D2 R' U2 D R' B\n" - "B2 R D L U' L' U' F D2 R2 B\n" - "B2 R D L U' L' U' B L2 D2 B\n" - "B2 R2 F2 D2 R D2 R U' D2 L' B\n" - "B2 R' B2 L2 D F2 R D2 R' U B\n" - "B2 L2 U2 L F2 L' D2 B2 U' L' B\n" - "B' D' L2 B2 R D B' R2 U2 L B\n" - "B' R B U2 R2 D' B2 R' F L2 B\n" - "B' R' D L B' D2 F2 R' F U2 B\n" - "U2 L2 U2 R U2 F2 B' D' B2 U R\n" - "U2 F2 R2 L B U2 D2 R U2 D R\n" - "U2 B' L2 F2 B L' U' B' U B R\n" - "U' R2 D' F' R F B' L2 B' D' R\n" - "U' L U' R2 B2 L B D' B2 D' R\n" - "U' B R B' D' R2 B' L2 B' D' R\n" - "D R U' L' F R' F D' L F' R\n" - "D B U2 B' D R F' D2 L' U' R\n" - "D2 R U2 L' U2 F2 B2 R' F U' R\n" - "D2 R F B2 U F2 U2 R U D2 R\n" - "D2 R2 B2 U2 F R2 L' D2 B D' R\n" - "D2 L U2 F2 B2 R' U2 L B' D' R\n" - "D2 F2 U2 D2 R' B R' L B D' R\n" - "D' F R' B' U2 R2 F R' F2 D R\n" - "D' B R2 D R F' D F' D2 B' R\n" - "R U' B2 R2 D2 R' D' L2 B' D' R\n" - "R D F R F' D2 R D2 F B2 R\n" - "R D2 L2 U2 D F' R2 B R' F' R\n" - "R D2 L2 U2 F' R' B R2 F' U R\n" - "R D' B D' L2 U2 R' B R2 F' R\n" - "R L2 U2 R2 F2 R' B U R2 U' R\n" - "R F2 R2 B' D2 B2 R' B L2 U R\n" - "R B U2 R2 D2 R' B R2 F' U R\n" - "R B R2 D2 R' L2 B R2 F' U R\n" - "R B2 D2 B2 D' B' U2 B' R F R\n" - "R2 U2 R' D F L' U2 F R' F2 R\n" - "R2 U' L B' U' L B' U B2 U R\n" - "R2 L B2 L2 D2 F2 L' D2 B' D' R\n" - "R2 L2 B2 L2 B U2 L B R2 D' R\n" - "R2 L' D2 R2 F2 L F D R2 D' R\n" - "R' D2 R F R B2 D2 F2 L2 D' R\n" - "R' D2 R F B2 R' B2 U2 F2 U' R\n" - "R' D2 L2 D' L2 F' U2 B' R B' R\n" - "R' D2 L2 F2 R L2 F D R2 D' R\n" - "R' D2 F2 R L2 F2 R' F' R' D R\n" - "R' D2 F2 L2 F2 R F U F2 U' R\n" - "R' D2 F2 L2 F' U F' R F' U' R\n" - "R' D2 B2 R F R2 U2 R F2 U' R\n" - "R' D' R F R2 U2 F B2 U2 F' R\n" - "R' D' R' F D' R2 D B2 U F' R\n" - "R' D' B D' F U2 F R L2 F R\n" - "R' L2 F2 R2 U2 B R D2 B' D' R\n" - "R' F L2 F2 R2 U2 R B' D' B2 R\n" - "R' B D' B' R2 U2 L2 D' R' B R\n" - "R' B2 R2 B2 D2 R F U F2 U' R\n" - "L U B' U' F2 B' U2 R2 L' F R\n" - "L U2 R2 D' R' B U D' F2 U R\n" - "L U2 L2 F2 R2 L' B U R2 U' R\n" - "L F2 R2 B' U2 F2 R2 D L' F' R\n" - "L B2 L2 F2 D2 L' B D B2 D' R\n" - "L2 U2 R B' R2 L' U D' R F2 R\n" - "L2 U2 R B' L' U D F2 R' D2 R\n" - "L2 U2 R B' L' F2 U D R' D2 R\n" - "L2 U2 R B' L' B2 U D R' F2 R\n" - "L' U2 B2 R' D F' U2 B2 D F R\n" - "L' F2 L F2 D' L' D' L F' D R\n" - "L' F2 L2 U2 B2 R2 L D2 B' D' R\n" - "L' F' D F' B' U' L F U B R\n" - "L' F' L D2 F' L2 F2 D L' D' R\n" - "F D' R' U' F2 U2 B2 R2 D' B R\n" - "F R U' B2 R2 D R' D2 L2 B' R\n" - "F R2 D2 B2 R2 F U' L U2 F' R\n" - "F R2 D2 B2 L2 B D' L D2 B' R\n" - "F2 U2 R' D2 F2 R' U2 L B' D' R\n" - "F2 R F2 L U2 R' B2 L' B' D' R\n" - "F2 R' L F2 D' R L2 F' R2 D R\n" - "F2 L F' L2 F2 R' D' R L2 F R\n" - "F2 B L' F R2 L B' U L' U' R\n" - "F' U D' R' U B2 R' B U2 D R\n" - "F' D L' F U D R U' L D2 R\n" - "F' D L' F' U L' U' L' F2 D' R\n" - "F' D' L F' D' L2 F D' L F R\n" - "F' R2 L' D2 R2 F L U2 L2 U R\n" - "F' R' U' F2 R U' B2 R2 D' B' R\n" - "F' L U2 R2 B U2 L D2 L2 D R\n" - "F' L U2 R2 B R2 L U2 R2 D' R\n" - "F' L U2 R2 B L U2 R2 U2 D' R\n" - "F' L D2 L2 F D2 L' D2 R2 U' R\n" - "B U2 R2 B2 D2 F D' L D2 B' R\n" - "B U' D' F' R' D' F U D B' R\n" - "B D2 F D R' F U2 F B' U' R\n" - "B D2 F D R' B L2 F2 B2 U' R\n" - "B R U' D' F U' R2 B R' F R\n" - "B R U' D' F U' R2 B' R' F R\n" - "B R U' F L2 U F' D' R' B R\n" - "B R U' F L2 U' F' D' R' B R\n" - "B2 R2 U2 R' B2 D2 R F U2 D R\n" - "B' L2 F D F' D B L F' D R\n" - "B' L' B D2 F L2 F L' F D R\n" - "B' L' B' R2 B2 D2 F2 L F D R\n" - "U L2 U2 L U2 R U B' L2 U' L\n" - "U B2 D' L' U B D B' R B L\n" - "U2 R2 U2 L U2 B2 L F2 B U' L\n" - "U2 R2 U2 B U2 B' D' R D2 F' L\n" - "U2 F' R B' D' B' R' B D2 F' L\n" - "U2 B2 R' B R' U2 D2 R F D' L\n" - "D B U2 B' D R F' U2 R' U' L\n" - "D2 L2 F2 D R' U2 B U2 L2 U L\n" - "D2 F D' L U2 B D2 B L2 U' L\n" - "D2 F2 R L B2 U L F D' F2 L\n" - "D2 F2 L' F2 L F' R L' F D' L\n" - "D' R D2 F R B2 L F2 R U' L\n" - "D' R D2 F L U2 L D2 L D' L\n" - "D' F D' R' L' U R2 U2 F D' L\n" - "D' B L F' B L F' R' B' U L\n" - "R U' F2 L2 U2 L' U' R2 B' U' L\n" - "R D2 L2 U2 D B' D2 F L' F' L\n" - "R L' D F2 L2 U2 L' U F' U L\n" - "R L' D' R2 D2 F2 L U F' U L\n" - "R L' F' D L2 B2 D L F D L\n" - "R L' B2 U' R2 F' D L D2 F' L\n" - "R F2 R2 D' L D B2 D' B U' L\n" - "R B2 L2 B' U B2 L' B R2 D L\n" - "R2 U2 R' D F L' U2 F L' U2 L\n" - "R2 U2 B2 L2 F2 U2 R U2 B U' L\n" - "R2 D2 F2 R L U L F D' F2 L\n" - "R2 D2 F2 R2 B2 D2 R U2 B U' L\n" - "R2 L' D2 L2 D R L2 F R2 U L\n" - "R' D2 R F R B2 U2 B2 R2 D' L\n" - "R' D2 R F B2 R' B2 D2 B2 U' L\n" - "R' D2 R2 B2 R' F U' D2 B2 U' L\n" - "R' D2 F2 R L2 F2 R' F L' U L\n" - "R' D2 F2 L2 F' U D' F L' F' L\n" - "R' D2 B2 L2 D2 B' L U2 B' U' L\n" - "R' D' R' L2 B R2 D2 B' U2 B' L\n" - "R' L2 F L F2 B' L' F B D' L\n" - "R' F D2 F2 D2 L' F D' F2 D' L\n" - "R' F' R2 U B' D' L' B R2 D L\n" - "R' B D' B' R2 U2 L2 B2 L B L\n" - "R' B D' B' L2 D2 B2 R2 L' F L\n" - "R' B R2 D F' B2 L2 U L' B L\n" - "R' B R2 B2 D F D' F2 L B L\n" - "R' B2 D2 L2 F2 R' D2 F2 B U' L\n" - "R' B2 R D2 L2 F2 R' D2 B U' L\n" - "L U2 R L' D2 R U2 F B2 D' L\n" - "L U2 R2 D' R' B U' D B2 U L\n" - "L U2 R2 B2 L B U2 D' F2 D' L\n" - "L U2 B2 R F2 R' L F2 B U' L\n" - "L F2 U2 R2 B D2 R' B R2 D' L\n" - "L2 U2 R B' R2 L' U D' L D2 L\n" - "L2 U2 R B' L' U D F2 L' F2 L\n" - "L2 U2 R B' L' F2 U D L' F2 L\n" - "L2 U2 R B' L' B2 U D L' U2 L\n" - "L2 D2 R' F2 L F2 L F B2 D' L\n" - "L2 D2 L2 B2 R' F2 L' F' B2 D' L\n" - "L' U' R2 D' B2 R F U F2 D L\n" - "L' D2 L' F2 R2 U2 R D2 B U' L\n" - "L' F2 L F2 D2 F' D R L' D' L\n" - "F R U2 B2 D R' D2 L2 F2 B L\n" - "F B2 U F' R' D F R2 L U L\n" - "F B2 R2 D2 B R' L2 B' R2 D L\n" - "F B2 L2 U2 F R' L2 F' R2 U L\n" - "F2 U2 D B' L' F2 D F' L B L\n" - "F2 R U2 F2 L U2 F2 R2 B' U' L\n" - "F' D L' F U D R U' R F2 L\n" - "F' D F2 D R F D' L U2 D L\n" - "F' R2 L' U2 L2 B R U2 L2 D L\n" - "F' L U2 R2 B D2 R D2 R2 D L\n" - "F' L D2 L2 F U2 R' D2 L2 U' L\n" - "F' L D2 L2 F R U2 R2 U' D2 L\n" - "F' L D2 L2 F R L2 U2 R2 U' L\n" - "F' L D2 L2 F L B2 R L U L\n" - "F' L D2 L2 F L' F2 R L D' L\n" - "B U2 R2 B2 U2 B D' R D2 F' L\n" - "B U2 B' U R' D' R U' D2 F' L\n" - "B D2 R L2 U' B' U F B D' L\n" - "B D2 R L2 F U' B' U B D' L\n" - "B D2 R L2 F D' L2 B L2 B' L\n" - "B R U' F L2 U F' B2 L B L\n" - "B R U' F L2 U' F' B2 L B L\n" - "B R D R U2 F D2 R' F2 B' L\n" - "B2 D' B R U' F2 L U D2 F L\n" - "B2 R L F2 D2 R' F2 B U2 D L\n" - "B2 R F2 D' B R2 F2 L B' U' L\n" - "B2 R2 U2 F2 L' U2 F B2 U D2 L\n" - "B2 R' L' F2 U' L F' B2 U B2 L\n" - "B' L' F2 B L2 F2 D2 R F U L\n" - "B' L' F2 B' U2 L2 F2 R' F U L\n" - "U2 R' B2 L' D2 F U' L F R L\n" - "U2 R' B2 L' D2 F U' L F' R L\n" - "(U2 F2 U F2 B' R D' F U' L F)\n" - "(U2 F2 U B R L2 U F' D L' F)\n" - "(U' R' U' D2 F' D2 B2 D' R D F)\n" - "(U' R' U' B' R2 B U B2 U R' F)\n" - "(U' F B2 R' D F R' L2 B' R F)\n" - "(D2 R' F' L' D2 F2 R' F2 U' R' F)\n" - "(D2 F' R2 U2 L B' U2 D B2 L' F)\n" - "(D2 F' B L' D2 F' R U' F2 R' F)\n" - "(D2 B2 D2 R B' D F' L D L2 F)\n" - "(R U2 R' B U2 R' B2 U R' U F)\n" - "(R U2 F R2 B L B2 R' U' L F)\n" - "(R U2 F R2 B' L U R' U L F)\n" - "(R U' F B' L B' R U' L U2 F)\n" - "(R2 U' F D' R L U' L' F' U2 F)\n" - "(R2 F D R' L' F' D' L' B2 L F)\n" - "(R' U F' L D F2 R2 U' F L' F)\n" - "(R' U' F2 B' D' B2 L D' F2 R F)\n" - "(L U2 L' B U2 R' F2 L' D L' F)\n" - "(L U2 L' B U2 R' B2 R' U R' F)\n" - "(L2 F' L' D R F' B2 R U' L' F)\n" - "(L' U' R U' D2 F2 R' F D2 R F)\n" - "(L' U' R U' D2 B2 L' F U2 L F)\n" - "(F2 L B2 U L2 F' R U D R2 F)\n" - "(F2 L' F2 R2 F D' R U2 F' U' F)\n" - "(B U R F2 B D2 L' B2 D L' F)\n" - "(B U2 R' U' F2 L' B' L' B D2 F)\n" - "(B R' F2 B D' B2 L' F D2 R2 F)\n" - "(B R' F2 B D' B2 L' B L2 D2 F)\n" - "(B L' U' R U B' L U2 B' R2 F)\n" - "(B L' U' R' U B' L U2 B' R2 F)\n" - "(B L' D2 B2 R U L F' U R' F)\n" - "(B L' D2 B2 R U L' F' U R' F)\n" - "(B2 R B2 D R2 F' L U D L2 F)\n" - "(B2 R' F2 L2 F U' L D2 F' D' F)\n" - "(B' U L U R L' D2 F' L' D2 F)\n" - "(B' D2 B R2 L U' F2 D2 F' R F)\n" - "(U F' R2 F B2 L' B' L' D' R' B)\n" - "(U B' R F L D2 R2 B2 D' R' B)\n" - "(U2 L' B' R' D2 B2 L' B2 U' L' B)\n" - "(U2 F B' R' D2 B' L U' B2 L' B)\n" - "(U2 F2 D2 L F' D B' R D R2 B)\n" - "(U2 B' L2 U2 R F' U2 D F2 R' B)\n" - "(U' R2 B2 U' F R L2 U' B L B)\n" - "(D2 B2 U F R2 L U B' D R' B)\n" - "(D2 B2 U F' B2 L D' B U' R B)\n" - "(D' R2 U2 D F R L2 U' B L B)\n" - "(R F U2 L' D' R D' L U' R2 B)\n" - "(R2 U' F D' R L U' L' B' R2 B)\n" - "(R2 F D R L B' U' L' F2 L B)\n" - "(R' U F' L U L2 F2 D' B R' B)\n" - "(R' F' L U2 L' D' B D2 L D' B)\n" - "(R' B' R2 U R' U2 F B2 R' D B)\n" - "(R' B' R' U' F R' L' B2 D L B)\n" - "(R' B' R' U' F' R' L' F2 U R B)\n" - "(L U F' L2 F' L F' B U2 R B)\n" - "(L' D' B' D' L' B' U' D2 B R' B)\n" - "(F2 R2 L F L2 D2 L' U2 D' L B)\n" - "(F2 L B2 U L2 F' R U' D' L2 B)\n" - "(B U L2 U R' F B R D2 R B)\n" - "(B U2 R' U' F2 L' B' L' F L2 B)\n" - "(B U' R' L2 B' L U L F2 U2 B)\n" - "(B U' R' L2 B' L U L B2 D2 B)\n" - "(B R' F U2 B R' D' R D2 R' B)\n" - "(B R' F2 B D' B2 L' F U2 L2 B)\n" - "(B R' F2 B D' B2 L' B R2 U2 B)\n" - "(B L' U' R U B' L U2 F' U2 B)\n" - "(B L' U' R' U B' L U2 F' U2 B)\n" - "(B2 R L2 F R2 U2 R' U' D2 R B)\n" - "(B2 R B2 D R2 F' L U' D' R2 B)\n" - "(B' U2 F R L2 U' B2 D2 B' L B)\n" - "(B' R' U' F2 D' L F' R B' R B)\n" - "(U L2 U' R' B2 U' L' D2 B' U' R)\n" - "(U B' R U2 R F' D2 F2 D B2 R)\n" - "(U2 R L' U' F' R D L' D' F' R)\n" - "(U2 R2 B2 D2 R F2 R U' L' B' R)\n" - "(U2 R' U' R2 U2 B2 U R' U' F R)\n" - "(U2 L F2 L U2 B L' U L U2 R)\n" - "(U2 F' U2 L2 B L' U2 L2 F2 U R)\n" - "(U2 F' L U2 L B' R' U B2 U2 R)\n" - "(U' D' R' D' L2 U' F2 B' L2 D R)\n" - "(U' R2 U' F' R' F2 U B R2 B R)\n" - "(U' F B2 D R' D B' U R D2 R)\n" - "(U' F2 R D R2 L' D' R F' B2 R)\n" - "(U' F2 R' D R2 L' D' R F' B2 R)\n" - "(D R2 U R2 L U2 D' B' U' B2 R)\n" - "(D R2 U2 R2 L' D L' U D' B' R)\n" - "(D R2 U2 L U' R2 L U D' B' R)\n" - "(D R2 F D B2 U F' U' L D2 R)\n" - "(D L2 D R2 L U' D2 F' D' F2 R)\n" - "(D L2 D2 R2 L' U L' U' D F' R)\n" - "(D L2 D2 L D' R2 L U' D F' R)\n" - "(D L2 B U F2 D B' D' L U2 R)\n" - "(D L' D L' U B L D' R' D' R)\n" - "(D L' D' R' U R2 U' R' U' F R)\n" - "(D2 R B2 R U2 F R' U L F2 R)\n" - "(D2 L U F' L B' L U2 D2 B' R)\n" - "(D2 B' R U2 R F' L' U B2 D2 R)\n" - "(R U2 D' R' L2 F2 U2 B2 U' B R)\n" - "(R U2 D' L' D R' L' F2 U B R)\n" - "(R U2 D' B2 L' F' D' F2 L F R)\n" - "(R U' R' U R2 B' R2 B' U2 F R)\n" - "(R U' R' U' F B2 L' U2 L' F R)\n" - "(R D B2 U L' U2 D' R' U' F R)\n" - "(R D' R L U2 R2 L U D2 B R)\n" - "(R D' F2 B2 D2 L' D' F' U2 F2 R)\n" - "(R D' B2 U2 R F2 D2 B2 D' F R)\n" - "(R2 U R U F2 D' B2 L' D' F' R)\n" - "(R2 U R U2 F2 D' B2 L D' F' R)\n" - "(R2 U2 F2 D2 F L' F2 D2 R2 U R)\n" - "(R2 U' F2 D2 L' D B2 L D' F' R)\n" - "(R2 D2 B2 U2 F L' F2 D2 R2 U R)\n" - "(R2 L U' B2 L' U2 F' L' D' F2 R)\n" - "(R2 L B2 R2 L D2 B L' U' B2 R)\n" - "(R2 L' F D' R' D B U2 R B' R)\n" - "(R2 L' B2 L U2 F U R U B2 R)\n" - "(R2 F U2 R L B R B U D2 R)\n" - "(R2 F R B2 R' F D F2 U2 F R)\n" - "(R2 F R2 L' D B L U B' D' R)\n" - "(R2 F2 D2 F B2 L' F2 D2 R2 U R)\n" - "(R2 F' D' F' D' F B2 D2 L' F2 R)\n" - "(R2 F' L U B D' R' B' L2 U' R)\n" - "(R2 B2 U B2 U F' L' U F2 D' R)\n" - "(R2 B2 U2 F U R U R B2 U2 R)\n" - "(R2 B2 U2 F U R U L D2 B2 R)\n" - "(R2 B2 U2 F U' D2 L U L D2 R)\n" - "(R2 B2 U2 F R' B2 L' D' F2 U2 R)\n" - "(R2 B2 U2 F L D2 L U2 L' U' R)\n" - "(R2 B2 U2 F' R2 L' U2 L2 B2 U' R)\n" - "(R2 B2 U2 F' L' F2 U2 L2 U' D2 R)\n" - "(R2 B2 U2 F' L' F2 R2 U2 L2 U' R)\n" - "(R2 B2 U' F2 D' B2 L D F' D2 R)\n" - "(R' U' F' D' F R U2 F U B2 R)\n" - "(R' D2 L2 D2 B2 L' U' D2 L' B' R)\n" - "(R' F U2 L B2 U2 F' L' U' D2 R)\n" - "(R' F B2 R' D' L' U2 F' D2 F2 R)\n" - "(R' B R' B U2 L' B2 L F D' R)\n" - "(R' B2 U R' U2 L2 D2 R2 B' U' R)\n" - "(R' B2 D' L2 U R D2 B2 U2 B' R)\n" - "(R' B2 R' U2 F D' L2 D' R2 U R)\n" - "(R' B2 R' U2 F R2 L U' L U' R)\n" - "(R' B2 R' L' F' L' U R D2 B R)\n" - "(R' B2 L2 U' R' U R' L2 U2 F R)\n" - "(R' B2 L2 U' L' B R2 L' U2 F R)\n" - "(L U2 L' B' R2 U2 F' L' F2 D R)\n" - "(L U' F2 B R L' D2 R F' B2 R)\n" - "(L U' B2 R' L U D2 R F2 B' R)\n" - "(L F2 U2 L B R' B2 R F2 U' R)\n" - "(L F2 D2 R L D' L' F L F2 R)\n" - "(L F2 D2 R L F2 R F R' D' R)\n" - "(L F2 R D R U2 D' R' L B R)\n" - "(L F2 R D R D R L' F' B2 R)\n" - "(L B' R' U R' U2 L D2 R2 B' R)\n" - "(L B' R' U L' B2 R' F R2 U2 R)\n" - "(L B' R' U L' B2 R' F L2 D2 R)\n" - "(L2 U' R' D2 R D2 B2 D2 F2 B' R)\n" - "(L2 U' R' D2 R F B L2 F B2 R)\n" - "(L2 U' R' D2 R F2 U2 B U2 B2 R)\n" - "(L2 U' R' D2 R F' L2 B' R2 F' R)\n" - "(L2 U' R' D2 R B2 D2 B D2 F2 R)\n" - "(L2 F L' F R2 L D2 L2 F' D' R)\n" - "(L2 F2 U2 B R' D F2 R U' F2 R)\n" - "(L2 F2 L D' R' F2 L' U' D2 B' R)\n" - "(L' D2 B2 R' L' D2 R' B R' U' R)\n" - "(L' D2 B' L' D2 R2 U' R2 U B R)\n" - "(L' F2 U R U' D' B2 R L F' R)\n" - "(L' F2 D' R2 F B2 L D R' F R)\n" - "(L' F2 D' B2 L2 F L' U' R F' R)\n" - "(L' F2 L' D2 R2 L2 F L' D' F2 R)\n" - "(F2 D2 F2 R2 F' R B2 R2 L' U R)\n" - "(F2 D2 F2 R2 F' L U2 D2 R D R)\n" - "(F2 D2 F2 R' B2 R' F' R' L' U R)\n" - "(F2 D2 B2 L2 F' R' B2 L' U2 D' R)\n" - "(F2 D' B2 L2 D' F' R2 L' U2 D' R)\n" - "(F2 R U2 D R U2 L' D2 R' F' R)\n" - "(F2 R2 L B U2 B D F' U2 F R)\n" - "(F2 R' F' D' F R' B2 L' D F' R)\n" - "(F2 L U' B' R2 D L2 F2 L2 B' R)\n" - "(F2 L U' B' R2 D F2 L2 F2 B' R)\n" - "(F2 L' D' R2 D2 F2 U R2 F D' R)\n" - "(F2 B R B' U2 L' B' D F2 B2 R)\n" - "(F' U2 L' D2 L' D2 B L2 D' F2 R)\n" - "(F' U2 L' D2 L' D2 B' R2 U B2 R)\n" - "(B D L' D' B2 U' F2 L F' B2 R)\n" - "(B R L2 U' L2 B' R2 B2 U2 F R)\n" - "(B R B L2 D' F2 D L2 U2 F R)\n" - "(B R' F2 L2 U F2 U' D2 F' B2 R)\n" - "(B R' F2 L2 D F2 L' B2 U' F R)\n" - "(B R' B2 R2 U2 F D' R2 L2 U R)\n" - "(B L' B2 L2 U' F2 L B2 R2 F' R)\n" - "(B2 R U L D2 R' U B2 R2 B R)\n" - "(B2 R U2 F2 L2 F' R' D' R' U R)\n" - "(B2 R L2 F L2 F D F' U2 F R)\n" - "(B2 R' L U' R' U2 R' L' U2 F R)\n" - "(B' U' F2 D' B' L' D B' L2 F' R)\n" - "(B' D' R' U2 B2 D F2 B2 L F' R)\n" - "(B' R' U F2 D' R' B2 L' D' F' R)\n" - "(B' R' U F2 D' L' B2 R' D' F' R)\n" - "(U D L' D' R2 U' F' B2 R2 D L)\n" - "(U R' U2 B2 U2 R' F B2 D F2 L)\n" - "(U L' B2 D2 B2 L' F2 B U B2 L)\n" - "(U F' U L' U B' U' R' U' D2 L)\n" - "(U2 R U B' R F' R U2 D2 F' L)\n" - "(U2 L F2 L U2 B L' U R B2 L)\n" - "(U2 F' L U2 L B' R' U F2 D2 L)\n" - "(U' R2 U' F' R' F2 U' F D2 F L)\n" - "(U' F B2 D R' D B' U L B2 L)\n" - "(U' B' R U2 R F' U R' U D2 L)\n" - "(D R D2 F2 L' D' B2 U' F U2 L)\n" - "(D R2 U2 L U' L' U' D F B2 L)\n" - "(D R2 F D B2 U F' U' R F2 L)\n" - "(D L D2 R L2 D' B2 U' F U2 L)\n" - "(D L2 D2 L D' L' U D' F2 B L)\n" - "(D L2 B U F2 D B' D' R B2 L)\n" - "(D2 R B2 R U2 F R' U R U2 L)\n" - "(D2 R' L U' B' L D R' D' B' L)\n" - "(D2 L2 F2 D2 L B2 L U' R' F' L)\n" - "(D2 L' U' L2 U2 F2 U L' U' B L)\n" - "(D2 B' U2 R2 F R' U2 R2 B2 U L)\n" - "(D2 B' R U2 R F' L' U F2 U2 L)\n" - "(R U' D2 F' D2 R F D L U L)\n" - "(R U' F' B2 R' F L2 D2 B U L)\n" - "(R U' F' B2 R' B D2 R2 F U L)\n" - "(R D' F2 B2 D2 L' D' F' D2 B2 L)\n" - "(R F2 D2 B2 L' F' R2 F2 B2 D L)\n" - "(R F2 D2 B2 L' B' D2 F B' D L)\n" - "(R2 U R U2 F2 D' F2 R U' F' L)\n" - "(R2 U R L2 D R2 U' R' D' B' L)\n" - "(R2 U F2 D L' D2 F2 U' F' B2 L)\n" - "(R2 U2 D L' F' U' D' F' B2 D L)\n" - "(R2 U' F2 D2 L' D F2 R U' F' L)\n" - "(R2 D2 F U2 F2 R D' F' D' F' L)\n" - "(R2 D' R D B2 U F' D' B2 D L)\n" - "(R2 L' B L' B L U L2 U F' L)\n" - "(R2 L' B2 U L' U' L' U2 L2 F' L)\n" - "(R2 L' B2 L U2 F U' L U F2 L)\n" - "(R2 L' B2 L U' L' U2 L2 U F' L)\n" - "(R2 F U D' R' U' R F D' F L)\n" - "(R2 F R B2 R2 B' R' F2 B' D L)\n" - "(R2 F R B2 R' F D B2 D2 F L)\n" - "(R2 F' D' F' D' F B2 D2 R' D2 L)\n" - "(R2 B R' B U2 R F' U' L2 U' L)\n" - "(R2 B2 U2 F U R U R F2 D2 L)\n" - "(R2 B2 U2 F U R U L U2 F2 L)\n" - "(R2 B2 U2 F U' D2 L U R F2 L)\n" - "(R2 B2 U2 F R' B2 L' D' B2 D2 L)\n" - "(R2 B2 U2 F L D2 L D2 R' U' L)\n" - "(R2 B2 L' U2 F2 D' R' B2 D F L)\n" - "(R' F U2 L F2 D2 F' R' U2 D' L)\n" - "(R' F R F2 U2 L' B' R' U' D2 L)\n" - "(R' F B2 R' D' L' U2 F' U2 B2 L)\n" - "(R' F B2 R' D' L' F' B L2 B L)\n" - "(R' F2 U2 D2 L' U2 L2 F L2 D L)\n" - "(R' F' D2 F2 B2 R' D' L' F' B2 L)\n" - "(R' B2 U R' F D2 R2 F2 B2 D L)\n" - "(R' B2 U R' F R D' B2 D F2 L)\n" - "(R' B2 D' L2 U R D2 F2 D2 B' L)\n" - "(R' B2 R2 U2 R F' D R2 L' U' L)\n" - "(R' B2 R' U2 F U' F2 D' B2 D L)\n" - "(R' B2 R' U2 F R2 L U R U' L)\n" - "(L U' F2 D' B L2 D' R F U2 L)\n" - "(L D' F D2 F L' D' R2 U F' L)\n" - "(L F2 D2 R L D' L' F R U2 L)\n" - "(L B' L D2 B D2 L' U D2 F2 L)\n" - "(L B' L D2 B L D2 L' U F2 L)\n" - "(L2 U B R2 L' U2 F L' F B2 L)\n" - "(L2 U' R' D2 R D2 F2 U2 F2 B' L)\n" - "(L2 U' R' D2 R F2 U2 B D2 F2 L)\n" - "(L2 U' R' D2 R B2 D2 B U2 B2 L)\n" - "(L2 U' R' D2 R B' U2 B' D2 B' L)\n" - "(L2 B2 R' D2 R B D' L' U D' L)\n" - "(L' F2 U R U D F2 R L B' L)\n" - "(L' B' D2 F L' D2 B' L F' U L)\n" - "(F2 R L' D' L' D2 R' L' D2 F L)\n" - "(F2 R2 L F R2 F U F' D2 F L)\n" - "(F2 L D R U2 L' D B2 L2 B L)\n" - "(F2 L D2 F2 R2 F' L' U' L' D L)\n" - "(F' U2 B L' B' L' B' R' U' D2 L)\n" - "(F' U' R' D' L2 U2 L U' D' F L)\n" - "(F' U' B' D' L2 U' L' D' B U2 L)\n" - "(B R U F2 L' D L' F U' B2 L)\n" - "(B R U B2 R2 L U2 L' F' D L)\n" - "(B R L2 U' L2 B' R2 F2 D2 F L)\n" - "(B R' B2 R2 U2 F U' F2 B2 D L)\n" - "(B2 U2 F2 L2 F' R U2 D2 L U L)\n" - "(B2 U2 F2 L2 F' L B2 R' L2 D L)\n" - "(B2 U2 F2 L' B2 L' F' R' L' D L)\n" - "(B2 U2 B2 R2 F' L' B2 R' U' D2 L)\n" - "(B2 U' B2 R2 U' F' R' L2 U' D2 L)\n" - "(B2 R D' B' L2 U R2 F2 R2 B' L)\n" - "(B2 R D' B' L2 U F2 R2 F2 B' L)\n" - "(B2 R L2 B D2 B U F' D2 F L)\n" - "(B2 R' U' L2 U2 F2 D L2 F U' L)\n" - "(B2 L U D2 L D2 R' U2 L' F' L)\n" - "(B2 L' F' U' F L' B2 R' U F' L)\n" - "(B' D' B' L' D' L' U R F2 B' L)\n" - "(B' R2 U2 F' D R2 U R U' D2 L)\n" - "(B' R2 L U2 L2 U' F2 R' F B2 L)\n" - "(B' R' D2 B2 D R L F2 D' B' L)\n" - "(B' R' B2 R' U F2 D B2 D F L)\n" - "(B' L B' D2 R' B' U R2 F2 B2 L)\n" - "(B' L B' D2 R' B' U L2 F2 B2 L)\n" -}, -[5] = { - .scramble = "R F D' R2 F' L U L B' D' F2 R B2 U2 F2 L2 U2 R L2 F2 L2 B2 D2", - .solutions = - "U2 B2 R' U' L' F U R2 D F\n" - "U' F' R' B2 U' D2 R B' L' F\n" - "D2 L' F' U' R B2 U B' D' F\n" - "U B' U' R2 L' F' D' F R B\n" - "L F R' B2 R U F' R' U' B\n" - "L2 B2 L' U R D2 F' B D B\n" - "L2 B2 L' U R F B' L2 U B\n" - "R' D' L' F' U F' U' B U' R\n" - "R' B2 D L' F U L' D F' R\n" - "L' D F2 D2 B U F2 R2 F R\n" - "L' F' R2 D' F' B2 U' F2 B' R\n" - "(L U' D B R' D' L F' L2 F)\n" - "(L U' D B R' D' L B' U2 B)\n" - "(R2 B L U' D R2 B' L F' R)\n" - "(F2 U D' F D L' D R2 F R)\n" - "(F2 U L' D F D2 B' D2 B R)\n" - "(F2 U L' D B R2 B' R2 F R)\n" - "(B2 D R' U' F R2 B' R2 U2 L)\n" - "(B2 D R' U' F R2 B' L2 D2 L)\n" - "U D2 B2 R' B' R F2 U R L' F\n" - "U2 D2 R' U L B' L D' L D2 F\n" - "U2 D2 R' F U L F' D B' L2 F\n" - "U2 R D' B' U2 F' R2 U2 D' L' F\n" - "U2 B2 R' U' L' F' B2 D L2 U F\n" - "U' F U2 B2 L F2 U' R B' L' F\n" - "U' F2 U L2 D L B U R D2 F\n" - "U' F2 D F2 U L B U R D2 F\n" - "U' F' R' U2 F2 B2 U' R B' L' F\n" - "U' F' R' F2 B2 U' D2 R B' L' F\n" - "U' F' R' B2 U' R2 D2 R B' L' F\n" - "U' B2 U D2 R L' F D L2 U2 F\n" - "U' B2 U D2 R' L B U R2 U2 F\n" - "U' B2 U R' B D B2 L2 F L' F\n" - "U' B2 U R' B' L2 F2 U' F' L' F\n" - "U' B2 U' R L' F' B2 D L2 U2 F\n" - "U' B2 U' R' L F2 B' U R2 U2 F\n" - "U' B2 R' U2 D2 B' L' U R L' F\n" - "D L D L2 U2 R' U B' L2 D F\n" - "D L' F U' B U' B2 D' L' D' F\n" - "D' R L' U' B' D' R2 U2 L' U F\n" - "D' R2 U2 D R L' F U R2 D2 F\n" - "D' R2 U2 D R' L B D L2 D2 F\n" - "D' R2 D F2 R' L F' U2 B D F\n" - "D' R2 D' R L' F' B2 U R2 D2 F\n" - "D' R2 D' R' L F2 B' D L2 D2 F\n" - "D' L2 D L2 D L B U R D2 F\n" - "D' L' B U R' L' U' F U L F\n" - "R2 U2 L' D' R F R2 F D' L2 F\n" - "R2 U2 L' D' R B U2 B U' R2 F\n" - "R2 L' D2 R' F' D' B R U R' F\n" - "R' D2 R2 B' R B R' D' L U F\n" - "L D' F B U' D2 B' L' F' U2 F\n" - "L2 B2 L' U R D2 B D2 B' D F\n" - "L2 B2 L' U R' L2 U2 F B' U F\n" - "L2 B2 L' U R' L2 F' B L2 D F\n" - "L' F' R2 U' L2 D' B' R' F2 D' F\n" - "L' F' R2 D' B2 U' B' R' F2 D' F\n" - "L' B U R' F' B' R2 D' B' L2 F\n" - "L' B2 U' B' U' B U2 B' R D' F\n" - "F U' F R' L' B R D' R' U F\n" - "F U' F' B2 R' B' U' B2 L' D F\n" - "F D2 F L' B L2 U R D L2 F\n" - "F2 D' R2 D F2 R' L F' B D F\n" - "F2 D' R2 D F2 R' L' F B' U' F\n" - "F2 R2 D' R D L' B R2 U D' F\n" - "F2 R2 L' D' R D B R2 U D' F\n" - "F2 R2 L' D' R' U F L2 U D' F\n" - "F' U R2 U' F D' B' L U R' F\n" - "B2 R' L U' B' L F2 L' U' R2 F\n" - "B2 L U' L' F2 B' L B U2 R F\n" - "B2 L2 U' L U' R' B L2 U' D F\n" - "B2 L' U R B D' L2 U2 B' D2 F\n" - "B' R L' B R' U2 B2 U' R D F\n" - "B' R' B D2 R' D' L U2 R2 U' F\n" - "B' L' F B2 U' F D B' L' U2 F\n" - "U2 D2 R' F U L F' D F' D2 B\n" - "U2 R U2 F L' D2 R2 D' F' L' B\n" - "U2 R D F' U D' F2 L2 D L' B\n" - "U2 R' D F U L' B U' B U' B\n" - "U2 R' B' U' L F2 U F B2 U' B\n" - "U2 B2 R' U' L' F U' D2 L2 D B\n" - "U' F' R' U D' R2 D L F' R' B\n" - "U' F' R' U' L2 D' R2 L F' R' B\n" - "U' B D' B U B D B R' L' B\n" - "U' B D' B U B D B' R' L' B\n" - "U' B2 U D2 R L' F D R2 D2 B\n" - "U' B2 U D2 R' L B U L2 D2 B\n" - "U' B2 U' R L' F' B2 D R2 D2 B\n" - "U' B2 U' R' L F2 B' U L2 D2 B\n" - "D2 L' F' U' R B2 U' D2 F' D' B\n" - "D' R2 U2 D R L' F U L2 U2 B\n" - "D' R2 U2 D R' L B D R2 U2 B\n" - "D' R2 D F2 R' L F' D2 F D B\n" - "D' R2 D' R L' F' B2 U L2 U2 B\n" - "D' R2 D' R' L F2 B' D R2 U2 B\n" - "R2 U2 L' D' R' D2 F' B D' R2 B\n" - "R2 L' D F' D2 F R D B2 U' B\n" - "R' L B' U' L' F D' F' R2 L' B\n" - "R' L' F B R D R B' D L2 B\n" - "R' L' F' B' U' R2 D' L' D' L' B\n" - "L D' F B U' D2 B' L' B' R2 B\n" - "L F R' B2 R U L2 F' R' U' B\n" - "L F2 R' B2 R F' U F' R' U' B\n" - "L2 B2 L' U R D2 B U2 F' D B\n" - "L' D' R2 F' D' L2 F D R' D B\n" - "L' B U R' F' B' R2 D' F' D2 B\n" - "L' B' D' F' U' R D' L' D' L' B\n" - "F2 R2 U2 L' D' R' U2 F D R2 B\n" - "F2 R2 D' R D L' B L2 U' D B\n" - "F2 R2 L' U D' R2 F D R' U' B\n" - "F2 R2 L' D' R D B L2 U' D B\n" - "F2 R2 L' D' R' U F R2 U' D B\n" - "B2 U' L U' R' B' U B2 R2 U B\n" - "B2 D F L2 U D L F' R' D' B\n" - "B2 L2 U' L U' R' B R2 U D' B\n" - "B2 L' U R B D' L2 U2 F' R2 B\n" - "B' R' B D2 R' D' L D2 L2 U' B\n" - "B' L F' R2 D' F B' R U D2 B\n" - "D2 R2 L D R' U' R2 F U F B\n" - "D2 R2 L D R' U' R2 F U' F B\n" - "L2 U D2 F U' L F' R D F B\n" - "L2 U D2 F U' L F' R D' F B\n" - "L' D R2 F2 U2 L B' D L F B\n" - "L' D R2 F2 U2 L B' D L' F B\n" - "U' D B' U' L' F' R' L2 F D' R\n" - "U' R' L' D' B D' R2 D' F D2 R\n" - "U' L' B R' D' R' B2 R' D' F R\n" - "D B' U' L U' R2 U' R F' D' R\n" - "D2 L D' B' L2 B2 U2 R2 U' F' R\n" - "D' F U L F U' L' B U F2 R\n" - "D' B' L' D' L' U R' D F' B2 R\n" - "R D' L' U2 F U2 B L2 U F2 R\n" - "R D' L' U2 F U2 B' R2 D' B2 R\n" - "R D' L' U2 B L2 F L2 U F2 R\n" - "R D' L' U2 B L2 F' L2 U F2 R\n" - "R2 F D' F L' D R D' B U2 R\n" - "R' D L' B' U L2 F' U R U2 R\n" - "R' D' B D2 L U F U D F2 R\n" - "R' L F R D2 B R' U D F' R\n" - "R' F' L U2 L2 F' B2 U D' B' R\n" - "L U L F D R' F' L' U' B R\n" - "L U2 L' D' B' U' R2 D' L' F R\n" - "L U' D L2 F' U2 D' B' D' F' R\n" - "L D L2 D2 R B U R2 U F' R\n" - "L F2 R' U2 D' F' U' R2 L2 F' R\n" - "L F2 L2 D' L2 B U F2 R2 F R\n" - "L B' U2 D' L2 F' B2 R2 D F R\n" - "L2 U F' D' L B U B2 L F' R\n" - "L' U2 D R2 F' U2 D2 L2 U F' R\n" - "L' D F U D2 F U' B U F2 R\n" - "L' D F L2 B U F' U R2 U' R\n" - "L' D F B' D2 B2 R2 L2 D B' R\n" - "L' D F2 D2 B U L2 B2 L2 F' R\n" - "L' D F2 D2 B U B2 L2 F' B2 R\n" - "L' D B2 L2 B' U2 R2 F U' F' R\n" - "L' D B2 L2 B' U2 L2 B D' B' R\n" - "L' D2 R L2 B U2 D L2 U' B' R\n" - "L' D2 R L2 B D2 L2 U D' B R\n" - "L' D' F' R2 F' B' R2 U' F2 B R\n" - "L' D' B' L2 F B2 U F2 R2 F R\n" - "L' B2 U B' R D' F' U2 R U' R\n" - "F2 L U' D' B' U2 B2 U R2 F' R\n" - "F2 L' U' D B' L' D' B' U B' R\n" - "B L' D' R2 F U L D' L F R\n" - "D L2 D' B L U' R' F2 B' D' L\n" - "D2 B' D L' B R' U2 L' F D' L\n" - "D' L' B U R' U F L F' D' L\n" - "D' L' B' R2 D' L B D2 B U2 L\n" - "R B U B' R' L' D L2 B' D L\n" - "R2 L' D F R F U2 F U B L\n" - "R' D L' B' U L2 F' U L F2 L\n" - "R' D' L' F' U' D2 B' U' F U' L\n" - "R' D' B D2 L U F U' D' B2 L\n" - "R' F' L D2 R2 F2 B' U D' F' L\n" - "R' B R D F U L' F B U' L\n" - "R' B2 D L' F U' D2 R' D B' L\n" - "L U D R2 F B2 L2 D B D2 L\n" - "L U D' B U F U D2 B' U L\n" - "L D2 B U' F2 L2 F2 L2 D' B' L\n" - "L' U2 D R2 F' R2 U2 F2 U' B' L\n" - "L' D F U F U' B' U' L2 D L\n" - "L' D F U' B' L B2 L' U' F L\n" - "L' D F2 B U F U2 B L2 B L\n" - "L' D B2 U2 B' R2 F2 U' F B2 L\n" - "L' D' R' F R2 D B' D L D L\n" - "L' D' F2 B' R2 U2 F2 D F2 B L\n" - "L' D' B' L2 U2 D2 F2 R2 U B' L\n" - "L' D' B' L2 B2 L2 D2 F2 U' B' L\n" - "L' B D' R2 U2 R B2 U F D' L\n" - "F B U F' B' R' D' L' B' D2 L\n" - "B U2 R' F' L' U' R2 F B' U' L\n" - "B2 U B' U2 R' L B' D' F2 D' L\n" - "B2 R' B U2 D' R U' B' U' D2 L\n" - "D' L' U2 R2 F U2 R B' D R L\n" - "D' L' U2 R2 F U2 R B' D' R L\n" - "(D F' B' R' U L2 U2 L' U2 D F)\n" - "(R2 U' D R2 B D' R' F L' U' F)\n" - "(L U' D B D R' D L F R2 F)\n" - "(L U' D B R' D' L F B2 R2 F)\n" - "(L D B R' U D' L U' L2 D F)\n" - "(L D2 B R U L' F' D' B' U2 F)\n" - "(F2 U L' D B R2 U' B' R' U F)\n" - "(F' L F R' B' U' R D B' R' F)\n" - "(B' U F R U L' F U' L' D' F)\n" - "(U D' R2 F L F2 B U F2 R B)\n" - "(U2 R2 F2 D F' B2 R D L' U B)\n" - "(U2 R' F' L B2 R' D' F R U B)\n" - "(U2 L2 F2 R U' L2 F' R' L' D B)\n" - "(D2 R2 F2 U F B2 R' U' L D' B)\n" - "(R D L' U' D L' F B R' U' B)\n" - "(R2 L F U D' L F D' R' L' B)\n" - "(R2 F2 D F B' R' U' D R2 L B)\n" - "(R2 F' R U' L' D' B' R2 L2 D' B)\n" - "(L U' D B D R' D L B U2 B)\n" - "(L U' D B R' D' L F2 B D2 B)\n" - "(L U' L' D2 R D' F' U B R B)\n" - "(L D B' D F R' U F D L' B)\n" - "(L D2 B R U L' F' D' F' L2 B)\n" - "(F2 U L D' F R' U B2 U L' B)\n" - "(F' R2 L F R D' F R U R' B)\n" - "(B' D2 R F' D L' U' F L U2 B)\n" - "(U2 D' F L2 F' L2 U B' L D R)\n" - "(U2 R F L U F D F R2 B R)\n" - "(U2 L' F2 D' B L U' F R' F2 R)\n" - "(D B' U' D2 L2 B R2 U' L' U' R)\n" - "(D' B U F2 L2 F R L U' D' R)\n" - "(D' B U F2 L2 F R L' U' D' R)\n" - "(D' B U F2 L2 F R' L U' D' R)\n" - "(D' B U F2 L2 F R' L' U' D' R)\n" - "(D' B U B2 R2 F R L U D R)\n" - "(D' B U B2 R2 F R L' U D R)\n" - "(D' B U B2 R2 F R' L U D R)\n" - "(D' B U B2 R2 F R' L' U D R)\n" - "(D' B' U' F L F' D2 L2 B' D' R)\n" - "(R D L U L' F' D' L2 D B R)\n" - "(R2 U2 F U R' F' D F' B' U R)\n" - "(L2 F2 U' R' B U2 D L' F2 B' R)\n" - "(L' D' F R2 L' F2 B' R D' F R)\n" - "(F U F' U2 L B' U D B U R)\n" - "(F2 U L' D R2 F R2 B R2 B' R)\n" - "(B D B U B2 R2 F' B2 L D' R)\n" - "(B2 D R' U' F R2 B' R L F2 R)\n" - "(B2 D R' U' F R2 B' R' L' B2 R)\n" - "(B2 D R' U' F' B2 L2 B' R2 U2 R)\n" - "(B2 D R' U' F' B2 L2 B' L2 D2 R)\n" - "(B2 D R' F U' R2 B D2 F2 U R)\n" - "(B' R2 D' R U F' U2 B' L D2 R)\n" - "(U2 L' F2 D' B L U' F L' U2 L)\n" - "(U' D2 B2 D' B' R F2 D' F' D2 L)\n" - "(D F2 B' L' F2 U R2 F R D' L)\n" - "(D B U2 L2 F L2 U' F' R D L)\n" - "(D B U2 F L U' F' R' D F2 L)\n" - "(D B2 U2 F' U R' B2 L' U' B' L)\n" - "(D2 L2 U D2 B D R2 F' R D' L)\n" - "(D2 F' U2 L' D R' U R F' B' L)\n" - "(D2 F' U2 L' D R' U R' F' B' L)\n" - "(R U D L2 B R F U L2 F' L)\n" - "(R2 L' U' F' R2 B' D' R B D' L)\n" - "(R2 F' U' D' B U2 F D R' U L)\n" - "(R2 F' U' D' B U2 F D' R' U L)\n" - "(R2 B L F2 R2 U D F R B' L)\n" - "(R2 B L F2 R2 U D' F R B' L)\n" - "(R2 B L' U D' B2 L2 F' R B' L)\n" - "(R2 B' R L F2 U D' B R F' L)\n" - "(R2 B' R L F2 U' D' B R F' L)\n" - "(L D R U R F2 B' R D2 F' L)\n" - "(L' U' B2 R F' D2 F D' L2 F' L)\n" - "(L' B' D L2 B' R D R2 U F L)\n" - "(F U2 L D2 R2 U' B' D F U2 L)\n" - "(F2 U L' D F D2 F2 B U2 B L)\n" - "(B2 D R' U' F R2 B' U R2 U2 L)\n" - "(B2 D R' U' F R2 B' U L2 D2 L)\n" - "(B2 D R' U' F R2 B' U2 R2 U2 L)\n" - "(B2 D R' U' F R2 B' U2 L2 D2 L)\n" - "(B2 D R' U' F R2 B' U' R2 U2 L)\n" - "(B2 D R' U' F R2 B' U' L2 D2 L)\n" - "(B2 D R' U' F R2 B' D2 R2 U2 L)\n" - "(B2 D R' U' F R2 B' D2 L2 D2 L)\n" - "(B2 D R' F U' R2 B U2 B2 U L)\n" - "(B2 D R' B' U' D2 B' U2 F' D2 L)\n" - "(B2 L2 D R' U' F' R2 B' R2 U2 L)\n" - "(B2 L2 D R' U' F' R2 B' L2 D2 L)\n" - "(B' U F D' B' R' F' D R' F L)\n" - "(B' R2 D' R U F' U2 B' R F2 L)\n" - "(R2 U' R' F' D F B R D R L)\n" - "(R2 U' R' F' D F B R D' R L)\n" -}, -[6] = { - .scramble = "U B2 U F L F' B' D L' B2 L2 B L2 U2 D2 B' U2 B L2 F U2", - .solutions = - "(D R L' F2 L2 U' B' R F)\n" - "(D' L2 D2 L' F2 U' B' R F)\n" - "(D2 R' L B L2 D' F' R B)\n" - "R D2 L' D2 B2 R U' B L F\n" - "R' L F' B' D' F L' B U2 F\n" - "L F2 D' L' B2 D2 L' B R' F\n" - "F' D R B' U2 F L' B2 U' F\n" - "R' L F' B' D' F L' F R2 B\n" - "L B' L' U F B' U' B2 R' B\n" - "B2 D2 R2 U' R L' U F R' B\n" - "F B' U' B' R2 U2 L' U2 B' R\n" - "F B' U' B' R2 U' L' B' U2 R\n" - "R B' U F' R' F2 B2 R' U L\n" - "R B' U F' L' U2 D2 L' D L\n" - "F2 D2 R2 U R' U F D' B' L\n" - "(U L2 U' D' R L' U' B' R F)\n" - "(U2 D' R2 B2 R' L U B' R F)\n" - "(U2 R L' F' B2 L2 U' B' R F)\n" - "(U2 L' B2 R F' L2 U' B' R F)\n" - "(U' B2 U' D' R F2 D' B R' F)\n" - "(D' R U2 F2 D2 L' D B R' F)\n" - "(D' R U2 B2 U2 R' U B L' F)\n" - "(D' R' L U' D' R2 D B' R F)\n" - "(D' L U2 B2 U2 R U' B' R F)\n" - "(D' L D2 F2 D2 R U' B' R F)\n" - "(D' L F2 D2 F2 R U' B' R F)\n" - "(D' L2 D2 R L' F2 U' B' R F)\n" - "(D' L2 D2 R2 L' F2 U' B' R F)\n" - "(D' L2 D2 R' L' F2 U' B' R F)\n" - "(R' L' F' L2 U2 B U B' R F)\n" - "(U2 D' R' L F2 L2 D' F' R B)\n" - "(D' R2 L' D F' L B' L' D B)\n" - "(D' R' U2 L F2 L2 D' F' R B)\n" - "(D' R' L U2 B2 U' D2 F' L B)\n" - "(D' R' F2 U2 F2 L' D' F' R B)\n" - "(D' R' F2 U2 B2 R' U' F' L B)\n" - "(D' R' B2 D2 F2 R' U' F' L B)\n" - "(D' R' B2 D2 B2 L' D' F' R B)\n" - "(D' L U F' U B2 L' U' L B)\n" - "(D' L U2 B2 D2 L U' F' L B)\n" - "(D' L D2 F2 U2 L U' F' L B)\n" - "(D' L F2 U2 B2 L U' F' L B)\n" - "(D' L2 U2 R' L F2 D' F' R B)\n" - "(D' L2 D' R' L B D' F' R B)\n" - "(D' B2 D2 F2 R' L U' F' L B)\n" - "(L2 U' B' D L' U' L' F' R' B)\n" - "(F2 D R2 D2 L' U' F D' R B)\n" -}, -[7] = { - .scramble = "D2 B' D2 F' L' U' F L2 U' B' U B2 R2 U' R2 B2 D' B2 U B2 U", - .solutions = - "(R2 B' U F' L2 U B' D2 R)\n" - "(F' B' U2 D L2 D2 B D' R)\n" - "U' B' R' F2 R' F' B2 D' L' B\n" - "F' L2 D B' U' R U' F' U' B\n" - "(L U D F D' B D' L' D2 F)\n" - "(L B U' B2 D F' R2 F2 R' F)\n" - "(L B2 D2 B U B2 D2 F L' F)\n" - "(L' U' D' B D2 F R L2 U' F)\n" - "(F2 L2 F L D2 R U2 R U F)\n" - "(F' L D' B R' L2 D2 R D' F)\n" - "(B R2 F' U' L' U' F2 U2 L' F)\n" - "(B' U' R' L' F' R L D R2 F)\n" - "(B' L' U L2 F B L F2 R2 F)\n" - "(B' L' U L2 F B L B2 L2 F)\n" - "(B' L' U L2 F B L' F2 R2 F)\n" - "(B' L' U L2 F B L' B2 L2 F)\n" - "(B' L' U F B L F2 D2 R2 F)\n" - "(B' L' U F B L B2 U2 L2 F)\n" - "(B' L' U F B L' F2 D2 R2 F)\n" - "(B' L' U F B L' B2 U2 L2 F)\n" - "(D2 B' D2 F' L' U' F L2 U' B)\n" - "(R D2 R' B2 R2 F' B L D' B)\n" - "(R2 F L U' R L2 U' R L2 B)\n" - "(L F B2 L2 D F D' L' D2 B)\n" - "(L B U L' D' B' L2 B2 L' B)\n" - "(L' U D F D2 B R2 L U' B)\n" - "(F2 L' D2 F' B U2 F2 R' U' B)\n" - "(F' B' U2 D L2 D B2 R' U' B)\n" - "(B D' F' B' L' U' F U' L2 B)\n" - "(B' D' F' B' L' F B U L2 B)\n" - "(B' L' U R2 F B L F2 L2 B)\n" - "(B' L' U R2 F B L B2 R2 B)\n" - "(B' L' U R2 F B L' F2 L2 B)\n" - "(B' L' U R2 F B L' B2 R2 B)\n" - "(B' L' U F B L F2 U2 L2 B)\n" - "(B' L' U F B L B2 D2 R2 B)\n" - "(B' L' U F B L' F2 U2 L2 B)\n" - "(B' L' U F B L' B2 D2 R2 B)\n" - "(R2 L2 F' B' U' R2 D2 F U' R)\n" - "(R2 F' L U D2 R' D2 B' D' R)\n" - "(L U' F2 U2 B R' F L' F' R)\n" - "(L B U D R' D2 B' L D2 R)\n" - "(L B U D2 R' B' D2 L D2 R)\n" - "(F2 B2 L' F L D' B R U2 R)\n" - "(B U' D2 R2 B' U' L2 F2 B' R)\n" - "(B D2 F U R U' B U2 F R)\n" - "(B' L' U R2 U2 B D2 F B R)\n" - "(B' L' U R2 U2 B' D2 F B R)\n" - "(B' L' U L2 D2 F U2 F B R)\n" - "(B' L' U L2 D2 F' U2 F B R)\n" - "(D2 B' R2 U F D F2 L2 U' L)\n" - "(R2 B' U F' L2 U F2 B U2 L)\n" - "(L U' D' B' L' D L2 U2 B L)\n" - "(L B U D R' D2 B' R F2 L)\n" - "(L B U D2 R' B' D2 R F2 L)\n" - "(L B U2 D' B' L U' B U' L)\n" - "(L B L' D' R2 B' L2 U B L)\n" - "(L2 F U' B L2 F L F2 U L)\n" - "(L2 B L U2 F L' U F' U2 L)\n" - "(L' F' U L D' F' B D' F' L)\n" - "(F U B L' F2 D F' L' D' L)\n" - "(F2 L2 F2 B U B U2 F U2 L)\n" - "(F2 L2 F' B U' R2 U2 B U' L)\n" - "(F2 B2 L' F L D' B L F2 L)\n" - "(B2 R2 L2 B' U B U2 F U2 L)\n" - "(B' L' U R2 U2 B U2 F B L)\n" - "(B' L' U R2 U2 B' U2 F B L)\n" - "(B' L' U L2 D2 F D2 F B L)\n" - "(B' L' U L2 D2 F' D2 F B L)\n" -}, -[8] = { - .scramble = "R' B' D2 L U' F2 B' L' D' F' B2 U R2 U2 F2 R2 U' F2 U' F2 L2 D'", - .solutions = - "R D' R' L D' L2 F2 B' D F\n" - "B U2 F2 R' U' F' D' R' U F\n" - "B D R2 B' R' B2 L' U R2 B\n" - "B D2 R D' R B L' U R2 B\n" - "D R2 L U B R' D F D R\n" - "D R2 L U B' R' D F D R\n" - "(R' B' D2 L U' F2 B' L' D' F)\n" - "(R' B' U2 R U' F' B2 R' D' B)\n" - "(B2 U R F' B2 D' R' F U' B)\n" - "(D2 R2 U F' B U L' U2 D' R)\n" - "U D L U F2 R B U' F2 D F\n" - "U2 F B L2 U F' L' D' F2 R' F\n" - "D R2 B' L D' L2 B' D2 R' U F\n" - "D R' U L' U B2 R U2 B D F\n" - "D F2 R' U B' R2 U D2 R D F\n" - "D' L B2 L2 U R F2 R B' D F\n" - "D' F2 L F B L2 D' F B L F\n" - "R D F2 R L' B2 U' R2 B D F\n" - "R D B2 R' L B2 D' L2 B U F\n" - "R D' R L B2 L2 U R2 B' D F\n" - "R D' R' L D' R2 L2 F2 B' D F\n" - "R D' R' L D' L2 F2 U2 B' D F\n" - "R D' R' L F D' B2 U B' U F\n" - "R D' R' L F2 U R2 D' B U F\n" - "R D' F2 R L B2 U' R2 B' D F\n" - "R D' F2 R' L D L2 F2 B' D F\n" - "R D' B2 R L B2 D' L2 B' U F\n" - "R D' B2 R L' U R2 F2 B' U F\n" - "L' F U B' D L F L2 U D2 F\n" - "F D' L U F U L2 F2 U R F\n" - "F2 R' F2 L U F' B U D' R F\n" - "F' U B R2 L2 U' D' L U2 R' F\n" - "B D R2 B' R2 L U2 R' D R2 F\n" - "B D R2 B' R' B2 L' U' D2 L2 F\n" - "B D2 R D' R B L' U' D2 L2 F\n" - "B2 L' U B2 U' B' U' D' B2 L' F\n" - "U2 B L2 U L' D' L F R U B\n" - "U' D' F R2 U L B2 U F2 L' B\n" - "D R F' L' B U D F B' R B\n" - "D R' U L' U B2 R D2 F D B\n" - "D R' U2 L' B2 R D F' B2 U B\n" - "D F2 L' F D2 F2 D F B2 L' B\n" - "D F' L' B U2 D F L2 B R B\n" - "D B' R' B' R' L B D' L2 U' B\n" - "D' R' U2 L' B2 R F' U F2 D' B\n" - "D' F R U2 F2 L U F D2 R' B\n" - "R U D2 L' U D R' L F' D B\n" - "R U D2 L' U' D R' L F D B\n" - "R D R L U F B D' L2 U' B\n" - "R D R L U F' B' U' R2 D' B\n" - "R D F2 U2 R' L D' R2 F U B\n" - "R D B2 D2 R L' U' L2 F D B\n" - "R D' R L U' F' B' U R2 D' B\n" - "R D' R' L U2 D R2 F' B2 D B\n" - "R D' R' L D' L2 F2 D2 F' D B\n" - "R D' R' L F U' L2 D F' U B\n" - "R D' R' L F U' L2 D' F' U B\n" - "R D' R' L F D' B2 U' F' U B\n" - "R D' R' L F2 U' L2 D' F U B\n" - "R D' R' L F2 D B2 U' F U B\n" - "R D' R' L F2 D' B2 U' F U B\n" - "R D' L2 U2 R' L' D R2 F' U B\n" - "R' D L B L D2 L U R' D' B\n" - "F U B' D R' F2 L' U R' L2 B\n" - "F D' B' U B R' F2 B2 U2 R' B\n" - "F2 D' F D B R' D F2 B L' B\n" - "B U' B2 L D' R2 F' U' L U' B\n" - "B D R2 B' R L2 F2 L' D' L2 B\n" - "B D R2 B' L' D2 R L2 D' L2 B\n" - "B D F2 R B2 L2 B' L U' R2 B\n" - "U' D' F R' U D' B R' U2 D' R\n" - "D R2 L B2 U B R' D F D R\n" - "D R2 L B2 U B' R' D F D R\n" - "D R2 L' U B R' D F L2 D R\n" - "D2 F U L F' U F' R B D' R\n" - "R2 D L D' R B U' R F' U2 R\n" - "R2 D' L D' R B U' R F' U2 R\n" - "R2 F U F2 B R' F D L' U2 R\n" - "R2 F2 R2 B' D L D2 F R U R\n" - "L2 B2 L F' B' D F' R D2 F R\n" - "F2 U2 L' B' D L' F R B' D R\n" - "F2 D2 F D' B2 L' B' R' L2 D' R\n" - "F' R2 L2 B U R' D F U' F2 R\n" - "B L D' L B2 L' B' U2 F B2 R\n" - "B' L D2 B2 D F' R' L2 B' U2 R\n" - "B' L F2 R F' U D L' F D' R\n" - "U2 R' F' B2 D B' U' R' D F2 L\n" - "U2 F D R L U B L2 U F2 L\n" - "U2 F D R L U B' L2 U F2 L\n" - "U2 F2 R F' U' B' L U' L2 U' L\n" - "U2 F2 R F' U' B' L' U' L2 U' L\n" - "U' F D R' B U D' R B' D2 L\n" - "D R2 L U F2 B L' U F U L\n" - "D R2 L U F2 B' L' U F U L\n" - "D2 R' U2 R' B2 R2 F D' B U L\n" - "D2 R' L' U2 R' F B2 D' B U L\n" - "R2 F U F2 B R' F D R' F2 L\n" - "R' B R U' F L D' R' F2 D' L\n" - "F2 U2 R' U2 B' D' F' L U' D2 L\n" - "F2 U' B L2 D F R F2 B U L\n" - "B R' U' R2 L' F L2 D R' F' L\n" - "B' U2 D2 F D L' U F D' F2 L\n" - "(U D2 R B L' U2 F D' R' L F)\n" - "(U2 F' U L2 B L' U' R' L' D F)\n" - "(U' F' R2 B' D R L' U B2 R F)\n" - "(D2 F L2 D F' B2 L' U2 D R' F)\n" - "(R D L2 F2 R' B2 D' L' B' L' F)\n" - "(R D L2 B2 L' B2 U' R' B' R' F)\n" - "(R' F2 B U2 R D' F2 B' R' U' F)\n" - "(F2 D F' L' B2 L U' L' D R2 F)\n" - "(B2 U R F' B2 D' R' U2 B U' F)\n" - "(B2 U R' L2 F2 B' U' R' B D' F)\n" - "(B2 L' D' B2 L' B U' R D R' F)\n" - "(U2 R' B' U F R' F2 B2 R D' B)\n" - "(U2 F' U R2 F L' D' R' L' U B)\n" - "(U' L' F' D' R2 D R D' L' U' B)\n" - "(D2 L' D F2 B' D' F' B U2 R B)\n" - "(D' B' D R' B' R' U F U' L' B)\n" - "(D' B' D' R' B' R' U F U' L' B)\n" - "(R' F2 B D2 L D' F' B2 L' U' B)\n" - "(R' B R' U2 R' F' D' R F2 U2 B)\n" - "(R' B R' U2 R' F' D' R B2 D2 B)\n" - "(L F' R D B' U' F B' L D2 B)\n" - "(L2 D' F2 D' R U' F' D' R' D2 B)\n" - "(L2 F' R' F2 U' B' U R2 U L B)\n" - "(F' B R' D' B D2 F2 L' D' R2 B)\n" - "(B2 U R F' B2 D' R' D2 F U' B)\n" - "(B2 U R B2 D2 F' D' R' F U' B)\n" - "(U2 L2 D R' F2 U' D' F' B U' R)\n" - "(U' D2 B' L2 D2 B L' D F U' R)\n" - "(D R L' U' F R' D' B U B2 R)\n" - "(D2 R2 U R2 F' B U' L' U2 D' R)\n" - "(D2 R2 U' L2 F B D' L' U' D2 R)\n" - "(D2 R2 U' F' B L' U L' U2 D' R)\n" - "(D' L F' B2 L F D B U' F' R)\n" - "(D' L F' B2 L F' D B U' F' R)\n" - "(R D2 R2 B R' U2 F' U' D' B' R)\n" - "(R L2 F2 U' F D2 R F' D' B' R)\n" - "(R2 L U R2 B L' U' F' L D' R)\n" - "(R' D' B' D B2 U R' F' D' B' R)\n" - "(L F' B R B2 U L D' F2 B R)\n" - "(L2 B2 L D' F' B' U' D F' U' R)\n" - "(B L' F D L U' F' D L' D2 R)\n" - "(B2 D' R2 L B' D2 F' U' D' F' R)\n" - "(U2 D F2 R' B2 D F U' B' D L)\n" - "(U' F2 L' F B2 U R D' B D L)\n" - "(D2 R2 U' D2 F B' U R' U2 D' L)\n" - "(R L2 B2 D' F U2 L F' U' B' L)\n" - "(R' D' B' D F2 D L' F' U' B' L)\n" - "(B L' F D L U' F' D R' B2 L)\n" -}, -[9] = { - .scramble = "D F' L' D' B' R' U F' L' F' R2 U' B2 D2 L2 D' B2 U' L2 U", - .solutions = - "L' D2 F2 B U' L F2 U F\n" - "L F2 B2 R2 U2 D L B' L2 F\n" - "L' D' L2 D' R2 B U' F2 L F\n" - "B2 U2 B D L D R' B L F\n" - "L F2 B2 R2 U2 D L F' D2 B\n" - "R L' F L F U' L D2 F R\n" - "L2 U' L2 F' D2 R L F D' R\n" - "L2 B L' D F2 R2 B2 U' B' L\n" - "(D F' L' D' B' R' U F' L' F)\n" -}, -{ - .scramble = "", /* End-of-list signal */ -} -}; diff --git a/tools/404_solvetest_opt1_DR_UD/solvetest.c b/tools/404_solvetest_opt1_DR_UD/solvetest.c @@ -1,8 +0,0 @@ -#define NISSFLAG NISSY_NISSFLAG_LINEAR -#define MINMOVES 0 -#define MAXMOVES 20 -#define MAXSOLUTIONS 500 -#define OPTIMAL 1 - -#include "scrambles.h" -#include "../solvetest.h" diff --git a/tools/405_solvetest_opt0_DR_RL/scrambles.h b/tools/405_solvetest_opt0_DR_RL/scrambles.h @@ -0,0 +1,212 @@ +struct { + char *scramble; + char *solutions; +} s[] = { +[0] = { + .scramble = "F' R B2 U2 L' D R L F2 U' F D2 R2 U2 B' D2 F R2 F R2 U2 L2", + .solutions = + "D' B' D U' R' U2 F2 D' U F\n" + "D' B' D U' R' D2 B2 D U' F\n" + "D' F' R L' U' R2 B2 R L' B\n" + "D' F' R L' U' L2 F2 R' L B\n" + "R2 F U R' U' F' D' R2 L2 B\n" +}, +[1] = { + .scramble = "B2 R D B' D L' F B' R' L2 F2 L2 D' F2 U' R2 F2 D' R2 D F2", + .solutions = + "(R' L' B R2 L' F' L' D)\n" +}, +[2] = { + .scramble = "F R B2 R2 B' L' F2 B' U' R' L2 F2 L2 F L2 F R2 F' R2 B' D2 B2", + .solutions = + "U2 F' U2 B R F L D F\n" + "F2 L' F D' U2 L2 B R F\n" + "F' U L U' L D' B' R F\n" + "F2 L' F D' U2 R2 F R B\n" + "B D' L' B2 R2 U' F L U\n" + "(R F' U B R' F L2 B' D)\n" +}, +[3] = { + .scramble = "F R L' F2 L U' F' D' L' U' L2 B2 U2 R2 F2 U2 R2 U R2 U B2 D", + .solutions = + "U' R2 B' D B' U2 L' U R F\n" + "U' R' L2 D R B' U' B L F\n" + "D L F R2 D' R' B2 L' D2 F\n" + "F2 D F R2 D' B2 L U' R B\n" + "R U' R D U' R F2 R F' U\n" + "R D U L U R F D R2 U\n" + "R D' U' R U L B D L2 U\n" + "R2 D R' D2 U L U' L2 B' U\n" + "R2 D' L' D2 U R U' R2 F' U\n" + "R D U L U R F U F2 D\n" + "R D' U' R U L B U B2 D\n" + "R L' F U' R L2 F L' F' D\n" + "R2 D R D' F2 L D2 R' B D\n" + "R2 D' L D' B2 R D2 L' F D\n" + "(F D2 R' F2 B2 D2 U R2 B' D)\n" +}, +[4] = { + .scramble = "F D R L B' U' D2 R B' D B2 R2 L2 D2 B2 L2 B2 L2 B' R2", + .solutions = + "U2 R' U2 B D' R' U R2 B\n" +}, +[5] = { + .scramble = "U D L' D' R' B L' U B U F2 U2 B2 R2 U2 B2 U B2 D' F2 B2", + .solutions = + "U' F2 U2 L' U F R' B2 U\n" + "D U2 R' D B2 D' F' B2 U\n" + "R F U F' D R' U2 F' U\n" + "F2 R2 D' L' B' R2 D2 R' U\n" + "L2 B2 U L B D R' L2 D\n" + "B2 D2 U' R F D R2 L' D\n" +}, +[6] = { + .scramble = "L' U D R' D2 F U' L' D2 B L2 D' R2 D2 R2 F2 D' R2 D F2 B2 U'", + .solutions = + "D U2 R2 B' U' L' D L2 D B\n" + "F2 L' F D' U R F R2 L B\n" + "(B' R2 D F2 R' L2 U2 B D' F)\n" +}, +[7] = { + .scramble = "D2 L2 B U2 F U2 R' U2 L' F2 D' F2 U' F2 R2 U' F2 U2 B2 U' B2", + .solutions = + "R2 F D U R2 U R F B\n" + "R2 F D U R2 U R' F B\n" + "(F L' F2 D R U2 F2 L' F)\n" + "(D2 L2 F R2 B' D2 U2 L' U)\n" + "(D2 R2 B D2 B' L2 B L D)\n" + "(F' D2 B R2 U2 F D2 L D)\n" + "(B' L2 B D2 R2 B D2 L D)\n" +}, +[8] = { + .scramble = "U' F' D B2 L U' L F L B' L2 U D2 B2 D F2 L2 U B2 D L2", + .solutions = + "L' F D B U R' D F' R F\n" + "L' F D B U' R' D F' R F\n" + "B U F' D2 F2 D L B U2 F\n" + "U L U' B U F D R2 L' B\n" + "L B L' U L F D R2 L' B\n" + "L' F D B U R' D' B' L B\n" + "L' F D B U' R' D' B' L B\n" + "B U F' D2 F2 D L F R2 B\n" + "U2 B D' L F U' R B R' D\n" + "U2 B R F D' U L' U2 B' D\n" + "B' R2 L U' B R' U F' R D\n" + "(R F U2 F R' D2 U B' D' F)\n" + "(R B L2 B L' D U2 B' U' F)\n" + "(U2 L' F R L D U2 F U' B)\n" + "(D2 R B L2 B L' D' F' U' B)\n" +}, +[9] = { + .scramble = "U' B2 R2 L2 F' R U2 L' U F L2 U L2 F2 R2 B2 U R2 D B2 R2", + .solutions = + "U' F L D B2 R' F2 B' D\n" +}, +[10] = { + .scramble = "U F2 R' D2 R F R L2 B' U R2 D R2 B2 D2 R2 F2 U' R2 F2 B2 U B2", + .solutions = + "(U F L' F D2 R L2 B)\n" +}, +[11] = { + .scramble = "U' R L' F2 B' L D' L D2 L' U R2 U2 F2 D2 F2 D R2 B2 D F2", + .solutions = + "D' L' D' F D2 U R U' F\n" + "D2 L' D B' R2 F' B' L' U\n" + "L F2 U' R F R2 U' L' U\n" + "D2 L' D F B2 D2 B2 R' D\n" + "D2 L' D F' B2 L U2 F2 D\n" + "D2 L' D F' B2 L D2 B2 D\n" + "(B D2 F' U' L U R' F' U)\n" +}, +[12] = { + .scramble = "R' B2 U L' B D' F R2 L' F D2 R2 L2 U' R2 D' R2 L2 B2 D L2 D", + .solutions = + "D U B R F2 B U' R L B\n" + "D F2 L B L2 B' U' R U2 B\n" + "R' L2 D' B' R2 D' R D' L' B\n" + "L' D R2 L' B' D' F2 R2 L' B\n" + "D R' F D2 B L' F R' B' U\n" + "R2 B' L2 D' R L' B' U B2 U\n" + "L2 D R B' L B U R' F' U\n" + "L2 D R B' L' B U R' F' U\n" + "R2 B' L2 D' R L' B' D L2 D\n" + "F' R' L' B R U' F' L F2 D\n" + "(L' F' L D B D U B' R U)\n" + "(B2 L F' D' B U B D2 R U)\n" +}, +[13] = { + .scramble = "U L' F U R' F2 D B' U L U R2 F2 B2 U' L2 U2 R2 D R2 D2", + .solutions = + "L F2 R U' F' B L' D F\n" +}, +[14] = { + .scramble = "L F' D B L F D' R F' R2 U' L2 U' B2 D' F2 R2 D2 F2", + .solutions = + "(L2 B2 U R U2 R U' B)\n" + "(D U' F2 L' U' B L' D)\n" +}, +[15] = { + .scramble = "R B' D F U' F L2 B U' R D F2 L2 B2 L2 U2 D R2 L2 B2 U2", + .solutions = + "L2 D2 U2 R' F U B D U\n" + "L2 D2 U2 R' F U B' D U\n" +}, +[16] = { + .scramble = "B' L U2 F L' B U F2 U' F2 D2 B R2 B U2 D2 R2 U2 B2 L2 F2", + .solutions = + "U2 L B' U2 L' D B R D F\n" + "R' F' U B2 R D2 B U' R2 F\n" + "L2 B L2 U' F2 U R L U2 F\n" + "L2 B L2 D' L2 D R L U2 F\n" + "B L B R F U L' D2 U F\n" + "R D' L2 D B' R2 L' F2 U2 B\n" + "R D' L2 D B' R2 L' B2 D2 B\n" + "L2 B L2 U' F2 U R' L' D2 B\n" + "L2 B L2 D' L2 D R' L' D2 B\n" + "B R' U' F2 U' F' B2 D2 R B\n" + "F2 L D F L D' R' F2 B D\n" + "(F' R' F D F2 B2 R2 L' U' F)\n" +}, +[17] = { + .scramble = "U' D2 L' U2 F L B U R' B' U' L2 D R2 U' F2 D R2 D R2 F2 D'", + .solutions = + "F' D2 R' D' R' L' F B' D' F\n" + "U L' D B' U2 R2 B2 R U B\n" + "L B2 L' D' R' L F' R' U' B\n" + "F2 B' U' B2 R2 F' L' U' R' B\n" + "F' L D B D' U B2 R F' U\n" + "L2 B2 L U' F2 R' F B' R' D\n" + "F' R2 U F D U' R L' B' D\n" + "(D' F2 B2 R L2 D2 F B2 U B)\n" + "(D2 L F B D U2 R2 L' B U)\n" + "(L D' L2 B2 R U' F B' R' U)\n" + "(L D' R2 F2 R D F' B R D)\n" +}, +[18] = { + .scramble = "U B2 L B2 R B R' D L2 B U' R2 U' L2 B2 D L2 D' R2 F2 D' B2 D", + .solutions = + "L F' R F' D R U R D2 B\n" + "(B2 U' L F R2 F D' U L2 F)\n" + "(B2 U' L B U2 B D' U' R2 F)\n" + "(B2 L' D' R' L2 F L2 U R' F)\n" + "(B' U L' D' B2 R' B' U R2 F)\n" + "(B' U L' B D R' U' F' D2 F)\n" + "(B' U B' L' B2 D' R' U R2 F)\n" + "(B2 U' L F R2 F D U' R2 B)\n" + "(B2 U' L B U2 B D U L2 B)\n" + "(B' U L' B D R' U' B' L2 B)\n" + "(R' B D' B' L' U2 B U' R D)\n" + "(L' D F' D' R' U2 B U' R D)\n" + "(F' L F' L D' R U' F' L D)\n" +}, +[19] = { + .scramble = "R B2 D' B U' B' L2 F2 B D F2 U' B2 D' F2 U2 F2 R2 D' B2 U B2", + .solutions = + "R2 D' B D' L2 F' R2 D' F\n" + "R B2 D' B2 R U' F2 B' U\n" + "U2 R' F2 U' F2 R' U' B D\n" +}, +{ + .scramble = "", /* End-of-list signal */ +} +}; diff --git a/tools/405_solvetest_opt0_DR_RL/solvetest.c b/tools/405_solvetest_opt0_DR_RL/solvetest.c @@ -0,0 +1,8 @@ +#define NISSFLAG NISSY_NISSFLAG_LINEAR +#define MINMOVES 0 +#define MAXMOVES 20 +#define MAXSOLUTIONS 500 +#define OPTIMAL 0 + +#include "scrambles.h" +#include "../solvetest.h" diff --git a/tools/406_solvetest_opt0_DR_FB/scrambles.h b/tools/406_solvetest_opt0_DR_FB/scrambles.h @@ -0,0 +1,243 @@ +struct { + char *scramble; + char *solutions; +} s[] = { +[0] = { + .scramble = "L D' F R' F' B L F U2 R2 D2 R2 F2 R2 L U2 F2 R U2", + .solutions = + "(L D F' D2 L U2 F' R)\n" + "(L D F' U2 R U2 B' L)\n" +}, +[1] = { + .scramble = "L F R B2 L2 D B R2 L F L2 D2 B R2 F2 U2 D2 F U2 F2 R2", + .solutions = + "(L F R B2 L2 D B L)\n" +}, +[2] = { + .scramble = "F U' F2 R2 L' F' U' D2 L' D2 B2 R2 D2 B2 L2 U2 B2 D' F2 B2 R2", + .solutions = + "(U2 R L U R F B' D)\n" +}, +[3] = { + .scramble = "D R L2 F' B R D2 B' U' R D2 R B2 D2 L' F2 U2 R2 L", + .solutions = + "R' L B L' D L2 D' B2 R\n" + "D' U2 R' U' R U' B' D' L\n" + "B' U' L F2 U2 R' B' R2 U\n" + "(L2 D' F' U2 F2 D' R2 F2 R)\n" + "(L2 D' F' U2 F2 D' L2 B2 R)\n" +}, +[4] = { + .scramble = "D' B L' F2 L' F' B U' R' F2 B' U2 F2 U L2 B2 D' F2 D2 L2 U L2", + .solutions = + "(B D R2 D2 U' R F2 B' D)\n" +}, +[5] = { + .scramble = "U' B R U2 F' D2 L U B2 L D2 L2 U2 R2 F2 U R2 D' F2 U' B2", + .solutions = + "L' B' D' F B' L D2 U' R\n" + "D' F R' B' U F' U B' L\n" + "(F D U R' B2 R2 F R' D)\n" +}, +[6] = { + .scramble = "U' D' F' R B' L2 F2 U B' R' L F2 U2 D2 R' B2 U2 R U2 L", + .solutions = + "R2 L' D' B' U L D' L F2 R\n" + "B R2 B' D2 L' D B' U F' R\n" + "U' R' U F2 B D R D2 U' L\n" + "R2 L' D' B' U L D' R U2 L\n" + "R2 F2 R B' D U' B' L B' L\n" + "R2 B2 L B D2 L B2 D' L' U\n" + "D U2 B' L2 F' U L' D' B' D\n" + "D2 L2 B' R2 U R' B R2 F' D\n" + "D' F R2 B' L2 U' F' R' F' D\n" + "R' F' R F' R B' L2 U' R' D\n" + "(F2 B' U2 R B D' U F' D2 R)\n" + "(U F' D' F B2 L' F' U B U)\n" + "(U F' R2 D2 F2 R2 B' D2 L U)\n" + "(U' R D' B L' F2 B2 D2 R U)\n" + "(U' F2 R D F' B2 U R2 F' U)\n" + "(U' F2 R F U2 B' U2 B' L2 U)\n" + "(D R2 D' R2 F L2 F D R U)\n" + "(D2 U B2 L U' B' L2 D B U)\n" + "(F R' F2 L2 B2 R D R F U)\n" + "(F B2 U' B2 R' F L2 F R2 U)\n" + "(F2 B R2 D F R2 B' R F2 U)\n" + "(B' U2 L2 U F' L2 F2 B R U)\n" + "(U R' L2 D2 B L2 B U2 R D)\n" + "(U' F2 R B L2 B' L2 F' R2 D)\n" + "(U' F' D' F' D2 R' F' D B D)\n" + "(U' B D2 U2 B2 U2 B U2 L D)\n" + "(D2 R2 F U' F D2 F2 B R D)\n" + "(R F D2 R' B' U L' B' L' D)\n" + "(R2 F R F' L2 B2 U' R F' D)\n" + "(F R2 F' R' F L2 U' R F' D)\n" + "(B' L2 U B D2 F B2 L F2 D)\n" +}, +[7] = { + .scramble = "F U B' R2 D' L' F2 U R' L' D B2 D F2 U2 F2 L2 D B2 U' B2 D", + .solutions = + "(D' L D2 F U R F D)\n" +}, +[8] = { + .scramble = "F' B R2 L' F' U2 B' L' U R B2 U2 R2 U D2 L2 U L2 F2 L2", + .solutions = + "R B2 U2 F' R L2 F2 U' L\n" + "U R' D L2 U B' R L U\n" + "F R' D' F2 U2 B2 R' B' D\n" + "(F' U2 L' U B U' F' U R)\n" + "(B L B' D2 R' F' L D R)\n" + "(R2 B2 D2 B' R2 B' R' U L)\n" + "(F' U F2 R2 D2 F' R D L)\n" + "(B R' B' R D2 B2 R U L)\n" + "(D R D B' D2 B' U R L)\n" + "(D R D B' D2 B' U' R L)\n" +}, +[9] = { + .scramble = "D B U2 B2 R' L' D' R' U F B2 R2 D2 L2 F R2 F2 B L2 F R2", + .solutions = + "(D F2 B' U2 R' L D R' U)\n" + "(D B U2 B2 R' L' D' R' U)\n" + "(D B' R' L D2 F2 D R' U)\n" + "(R F2 D U2 B L2 U2 R' D)\n" +}, +[10] = { + .scramble = "R' L2 D' F' L B L F' U2 L' D2 B2 D2 F2 R2 D' R2 D B2 D F2", + .solutions = + "(U2 R' F' B L' U' B2 D' R)\n" +}, +[11] = { + .scramble = "F' U' R2 F U' B U' R D' B U2 D2 F2 R2 F U2 F' L2 B' L2 D2", + .solutions = + "D2 F' L2 D R' U F B D\n" + "D2 F' L2 D R' U' F B D\n" + "(U' B' D' F2 D' L' D' F U)\n" + "(F' U' R2 F U' B U' R D)\n" + "(B L2 D F' U' L2 D R D)\n" +}, +[12] = { + .scramble = "U2 R' U2 D2 B' L D B2 R B L2 B2 U2 B2 U D2 B2 D B2 D'", + .solutions = + "(D2 U L2 D R F L' U2 R)\n" + "(U2 F2 U B R B' D B L)\n" + "(D2 U L2 D R F R' F2 L)\n" + "(L2 D R' B2 U2 F' B2 L' U)\n" +}, +[13] = { + .scramble = "L' U2 F2 B' U' R D B' U' F2 U2 F' R2 U2 F L2 F U2 B2 L2 U2 D2", + .solutions = + "(B2 L' F R F2 D F' U' R)\n" + "(L' U2 F2 B' U' R D B' U)\n" +}, +[14] = { + .scramble = "B2 U' B D R U2 F R' D2 F R B2 U2 L U2 R' B2 U2 R F2 R U2", + .solutions = + "R2 D' B R L2 B' L' U' F L\n" + "F D2 U' F R' B L D L2 U\n" + "F D2 L2 F R B L' D' F' U\n" + "F D2 U' F R' B L U B2 D\n" + "(U L' F' L2 D' F' B2 L U' R)\n" + "(F B' L2 F D B' U' L' B' R)\n" + "(F2 D R B R2 U' R' D2 F2 R)\n" + "(F2 D R B R2 U' L' B2 D2 R)\n" + "(F2 L2 B U' B' D' F L' F' R)\n" + "(F2 B2 U2 B D B' U L' B' R)\n" + "(F2 B' D B' U' L' B2 L2 B R)\n" + "(U F R2 U F' D U R B L)\n" + "(R2 D U2 F' U' L F R B' L)\n" + "(R2 D U2 F' U' L F' R B' L)\n" + "(R2 D' U2 F' U B' R' F B' L)\n" + "(L' D2 B2 L' D U R F' D L)\n" + "(F2 D R B U B2 U' R2 U L)\n" + "(F2 D R B R2 U' R' U2 B2 L)\n" + "(F2 D R B R2 U' L' F2 U2 L)\n" + "(D R B' U L' B' D2 B' L2 U)\n" + "(D B2 L B' R L' U L B U)\n" + "(B' D R L F U B U2 R U)\n" + "(D R B U B2 L' F' D' F' D)\n" + "(F L' B' R F B' U R L' D)\n" + "(F2 R B D U' F2 R F' B2 D)\n" + "(B2 U R' L' D' B2 U2 B L D)\n" +}, +[15] = { + .scramble = "U2 F U2 L F2 U2 R2 D L F2 D2 F R2 U2 L2 U2 B U2 B U2 L2", + .solutions = + "R' F' L U' L D2 R\n" + "R' F' L U' R F2 L\n" +}, +[16] = { + .scramble = "L' F U' R2 F U2 B U2 L' U' F2 U2 L2 D2 R U2 B2 D2 L2 D2", + .solutions = + "U R' U' F L' F' D' R' F2 R\n" + "R' F D U L F' B2 L2 D' R\n" + "R' F2 R2 L' F D U2 R2 U' R\n" + "R' F2 R2 L' F D' L2 D2 U R\n" + "L' U2 F R' D2 L2 D' B2 U R\n" + "U R' U' F L' F' D' L' U2 L\n" + "R' L' F' D R2 F R' U R' U\n" + "L B R U' F' D2 F2 L B' U\n" + "R' B2 L' F U L D B2 L' D\n" + "L' F R F' U R2 U' F' R D\n" + "(D2 F L B D' L' F R' D' L)\n" + "(F L B L' D L2 U' R U' L)\n" + "(D U' L F R' U' B D' L U)\n" + "(F2 L D F B' R' L' F L' U)\n" + "(L B L' F' D' F2 L D R' D)\n" + "(L B L' F' D' F2 L' D R' D)\n" +}, +[17] = { + .scramble = "D F' B D' B' U' L2 B' U' R' L2 B2 U' B2 D F2 U' L2 F2 U2 B2 D'", + .solutions = + "D' F' R B' R2 U R' D B2 U\n" + "R F L2 B' L2 D R2 B2 R' U\n" + "R F2 U2 F' D' L' D L2 B U\n" + "R B2 D' R' D2 R2 F D' B' U\n" + "L2 U' B2 D L' F' B' D F2 U\n" + "L2 F' D' R B' D2 R' F2 R2 U\n" + "D' R2 D2 F U' F L' F' B D\n" + "D' F' R B' R2 U R' U R2 D\n" + "R F L2 B' L2 D L2 F2 R' D\n" + "R B2 D' R' F D2 B U' F' D\n" + "R B2 D' R' B R2 F U' F' D\n" + "R B' D' F2 U F' D F2 R' D\n" + "R2 U B2 R' U' F U B' R2 D\n" + "L2 U' B2 D L' F' B' U L2 D\n" + "L2 F' D' R B' D2 R' B2 L2 D\n" + "B D U2 F' L U2 B' L2 B D\n" + "(L' F2 D' U2 B R2 U R' B' R)\n" + "(U R2 F' D' L' D' L' D2 U' L)\n" + "(U R' D2 U R F' L F R2 U)\n" + "(U' R2 F' U' L' D2 B R2 B2 U)\n" + "(D F' L B2 D2 R B D' F' U)\n" + "(D' R2 B D F2 B' D F L' U)\n" + "(D' F2 R2 D L2 B' L' F' B U)\n" + "(R2 B2 D' F D' F2 U2 R' F U)\n" + "(F U' F' U' L' D2 B D R2 U)\n" + "(U F2 R2 U' R2 F L' F B' D)\n" + "(U' R2 F' U' L' D2 B L2 F2 D)\n" + "(D L F U2 L' D' B U' F D)\n" + "(D L F U2 L' D' B' U' F D)\n" + "(D L2 U2 L2 F L' F' U' B' D)\n" + "(D F' L F2 U2 L B U' F' D)\n" + "(D' R2 D2 F L' F' R2 U' B' D)\n" + "(F U' F' U' L' D2 B U F2 D)\n" +}, +[18] = { + .scramble = "D' R D2 F' R2 B2 R B U' R2 L2 F U2 D2 F L2 U2 B' D2", + .solutions = + "(D' R B D2 F' R2 U F R)\n" + "(D R' F D' B' L2 D' B L)\n" + "(D' R D2 F' R2 B2 R B U)\n" + "(D' R F' D2 R2 B2 R B U)\n" + "(D' R B D2 F' B' R' B U)\n" +}, +[19] = { + .scramble = "R2 B U F D R' F2 B D B U2 R2 B2 R2 U' R2 F2 U D2 B2 U'", + .solutions = + "L' U F' U L F L' D\n" + "F D' F' L' B' R2 B D\n" +}, +{ + .scramble = "", /* End-of-list signal */ +} +}; diff --git a/tools/406_solvetest_opt0_DR_FB/solvetest.c b/tools/406_solvetest_opt0_DR_FB/solvetest.c @@ -0,0 +1,8 @@ +#define NISSFLAG NISSY_NISSFLAG_LINEAR +#define MINMOVES 0 +#define MAXMOVES 20 +#define MAXSOLUTIONS 500 +#define OPTIMAL 0 + +#include "scrambles.h" +#include "../solvetest.h"