cubing 0.49.3 → 0.50.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lib/cubing/chunks/{chunk-YEGDNPFQ.js → chunk-ZKAZJKI6.js} +1 -1
- package/dist/lib/cubing/chunks/{inside-GXHIRWXB.js → inside-6OZRJVRY.js} +7 -5
- package/dist/lib/cubing/chunks/inside-6OZRJVRY.js.map +7 -0
- package/dist/lib/cubing/chunks/{search-dynamic-solve-4x4x4-SYFDLGU4.js → search-dynamic-solve-4x4x4-MAI2P7G4.js} +2 -2
- package/dist/lib/cubing/chunks/search-dynamic-solve-4x4x4-MAI2P7G4.js.map +7 -0
- package/dist/lib/cubing/chunks/search-dynamic-solve-fto-UOKDYVD5.js +1405 -0
- package/dist/lib/cubing/chunks/search-dynamic-solve-fto-UOKDYVD5.js.map +7 -0
- package/dist/lib/cubing/chunks/search-worker-entry.js +1 -1
- package/dist/lib/cubing/chunks/{twsearch-XKCR3E3R.js → twsearch-MRZGOB6T.js} +38 -38
- package/dist/lib/cubing/chunks/{twsearch-XKCR3E3R.js.map → twsearch-MRZGOB6T.js.map} +2 -2
- package/dist/lib/cubing/chunks/twsearch_wasm_bg-V4F3SIUO-QGKWKUFY.js +15 -0
- package/dist/lib/cubing/chunks/twsearch_wasm_bg-V4F3SIUO-QGKWKUFY.js.map +7 -0
- package/dist/lib/cubing/scramble/index.js +1 -1
- package/dist/lib/cubing/search/index.js +1 -1
- package/package.json +1 -1
- package/dist/lib/cubing/chunks/inside-GXHIRWXB.js.map +0 -7
- package/dist/lib/cubing/chunks/search-dynamic-solve-4x4x4-SYFDLGU4.js.map +0 -7
- package/dist/lib/cubing/chunks/search-dynamic-solve-fto-EY5ZVAGO.js +0 -1781
- package/dist/lib/cubing/chunks/search-dynamic-solve-fto-EY5ZVAGO.js.map +0 -7
- package/dist/lib/cubing/chunks/twsearch_wasm_bg-BXMNNHLU-USJMMACR.js +0 -15
- package/dist/lib/cubing/chunks/twsearch_wasm_bg-BXMNNHLU-USJMMACR.js.map +0 -7
- /package/dist/lib/cubing/chunks/{chunk-YEGDNPFQ.js.map → chunk-ZKAZJKI6.js.map} +0 -0
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../src/cubing/vendor/mit/cs0x7f/fto/scramble_fto_standalone.js"],
|
|
4
|
+
"sourcesContent": ["// From https://gist.github.com/cs0x7f/1579492aa43c794d529057386c489702\n\n\"use strict\";\n\nimport { randomUIntBelow } from \"random-uint-below\";\nimport { Alg } from \"../../../../../cubing/alg\";\n\n/*\nMIT Licence\n\nCopyright (c) 2024 Chen Shuang\n\nPermission 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:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE 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.\n*/\n\n/*\n\n*/\nvar DEBUG = false;\n\nvar mathlib = (function() {\n\tvar fact = [1];\n\tfor (var i = 0; i < 32; ++i) {\n\t\tfact[i + 1] = fact[i] * (i + 1);\n\t}\n\n\tfunction circle(arr) {\n\t\tvar length = arguments.length - 1,\n\t\t\ttemp = arr[arguments[length]];\n\t\tfor (var i = length; i > 1; i--) {\n\t\t\tarr[arguments[i]] = arr[arguments[i - 1]];\n\t\t}\n\t\tarr[arguments[1]] = temp;\n\t\treturn circle;\n\t}\n\n\tfunction getPruning(table, index) {\n\t\treturn table[index >> 3] >> ((index & 7) << 2) & 15;\n\t}\n\n\tfunction setNPerm(arr, idx, n, even) {\n\t\tvar prt = 0;\n\t\tif (even < 0) {\n\t\t\tidx <<= 1;\n\t\t}\n\t\tif (n >= 16) {\n\t\t\tarr[n - 1] = 0;\n\t\t\tfor (var i = n - 2; i >= 0; i--) {\n\t\t\t\tarr[i] = idx % (n - i);\n\t\t\t\tprt ^= arr[i];\n\t\t\t\tidx = ~~(idx / (n - i));\n\t\t\t\tfor (var j = i + 1; j < n; j--) {\n\t\t\t\t\tarr[j] >= arr[i] && arr[j]++;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (even < 0 && (prt & 1) != 0) {\n\t\t\t\tvar tmp = arr[n - 1];\n\t\t\t\tarr[n - 1] = arr[n - 2];\n\t\t\t\tarr[n - 2] = tmp;\n\t\t\t}\n\t\t\treturn arr;\n\t\t}\n\t\tvar vall = 0x76543210;\n\t\tvar valh = 0xfedcba98;\n\t\tfor (var i = 0; i < n - 1; i++) {\n\t\t\tvar p = fact[n - 1 - i];\n\t\t\tvar v = idx / p;\n\t\t\tidx = idx % p;\n\t\t\tprt ^= v;\n\t\t\tv <<= 2;\n\t\t\tif (v >= 32) {\n\t\t\t\tv = v - 32;\n\t\t\t\tarr[i] = valh >> v & 0xf;\n\t\t\t\tvar m = (1 << v) - 1;\n\t\t\t\tvalh = (valh & m) + ((valh >> 4) & ~m);\n\t\t\t} else {\n\t\t\t\tarr[i] = vall >> v & 0xf;\n\t\t\t\tvar m = (1 << v) - 1;\n\t\t\t\tvall = (vall & m) + ((vall >>> 4) & ~m) + (valh << 28);\n\t\t\t\tvalh = valh >> 4;\n\t\t\t}\n\t\t}\n\t\tif (even < 0 && (prt & 1) != 0) {\n\t\t\tarr[n - 1] = arr[n - 2];\n\t\t\tarr[n - 2] = vall & 0xf;\n\t\t} else {\n\t\t\tarr[n - 1] = vall & 0xf;\n\t\t}\n\t\treturn arr;\n\t}\n\n\tfunction getNPerm(arr, n, even) {\n\t\tn = n || arr.length;\n\t\tvar idx = 0;\n\t\tif (n >= 16) {\n\t\t\tfor (var i = 0; i < n - 1; i++) {\n\t\t\t\tidx *= n - i;\n\t\t\t\tfor (var j = i + 1; j < n; j++) {\n\t\t\t\t\tarr[j] < arr[i] && idx++;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn even < 0 ? (idx >> 1) : idx;\n\t\t}\n\t\tvar vall = 0x76543210;\n\t\tvar valh = 0xfedcba98;\n\t\tfor (var i = 0; i < n - 1; i++) {\n\t\t\tvar v = arr[i] << 2;\n\t\t\tidx *= n - i;\n\t\t\tif (v >= 32) {\n\t\t\t\tidx += (valh >> (v - 32)) & 0xf;\n\t\t\t\tvalh -= 0x11111110 << (v - 32);\n\t\t\t} else {\n\t\t\t\tidx += (vall >> v) & 0xf;\n\t\t\t\tvalh -= 0x11111111;\n\t\t\t\tvall -= 0x11111110 << v;\n\t\t\t}\n\t\t}\n\t\treturn even < 0 ? (idx >> 1) : idx;\n\t}\n\n\tfunction getNParity(idx, n) {\n\t\tvar i, p;\n\t\tp = 0;\n\t\tfor (i = n - 2; i >= 0; --i) {\n\t\t\tp ^= idx % (n - i);\n\t\t\tidx = ~~(idx / (n - i));\n\t\t}\n\t\treturn p & 1;\n\t}\n\n\tfunction getNOri(arr, n, evenbase) {\n\t\tvar base = Math.abs(evenbase);\n\t\tvar idx = evenbase < 0 ? 0 : arr[0] % base;\n\t\tfor (var i = n - 1; i > 0; i--) {\n\t\t\tidx = idx * base + arr[i] % base;\n\t\t}\n\t\treturn idx;\n\t}\n\n\tfunction setNOri(arr, idx, n, evenbase) {\n\t\tvar base = Math.abs(evenbase);\n\t\tvar parity = base * n;\n\t\tfor (var i = 1; i < n; i++) {\n\t\t\tarr[i] = idx % base;\n\t\t\tparity -= arr[i];\n\t\t\tidx = ~~(idx / base);\n\t\t}\n\t\tarr[0] = (evenbase < 0 ? parity : idx) % base;\n\t\treturn arr;\n\t}\n\n\tfunction bitCount(x) {\n\t\tx -= (x >> 1) & 0x55555555;\n\t\tx = (x & 0x33333333) + ((x >> 2) & 0x33333333);\n\t\treturn ((x + (x >> 4) & 0xf0f0f0f) * 0x1010101) >> 24;\n\t}\n\n\tfunction getMPerm(arr, n, cnts, cums) {\n\t\tvar seen = ~0;\n\t\tvar idx = 0;\n\t\tvar x = 1;\n\t\tfor (var i = 0; i < n; i++) {\n\t\t\tvar pi = arr[i];\n\t\t\tidx = idx * (n - i) + bitCount(seen & ((1 << cums[pi]) - 1)) * x;\n\t\t\tx = x * cnts[pi]--;\n\t\t\tseen &= ~(1 << (cums[pi] + cnts[pi]));\n\t\t}\n\t\treturn Math.round(idx / x);\n\t}\n\n\tfunction setMPerm(arr, idx, n, cnts, x) {\n\t\tfor (var i = 0; i < n; i++) {\n\t\t\tfor (var j = 0; j < cnts.length; j++) {\n\t\t\t\tif (cnts[j] == 0) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tvar x2 = ~~(x * cnts[j] / (n - i));\n\t\t\t\tif (idx < x2) {\n\t\t\t\t\tcnts[j]--;\n\t\t\t\t\tarr[i] = j;\n\t\t\t\t\tx = x2;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tidx -= x2;\n\t\t\t}\n\t\t}\n\t\treturn arr;\n\t}\n\n\t// type: 'p' (permutation), 'o' (orientation), 'c' (combination)\n\t// evenbase: base for ori, sign for even parity, cnts for combination\n\tfunction Coord(type, length, evenbase) {\n\t\tthis.length = length;\n\t\tthis.evenbase = evenbase;\n\t\tif (type == 'p') {\n\t\t\tthis.get = function(arr) {\n\t\t\t\treturn getNPerm(arr, this.length, this.evenbase);\n\t\t\t};\n\t\t\tthis.set = function(arr, idx) {\n\t\t\t\treturn setNPerm(arr, idx, this.length, this.evenbase);\n\t\t\t};\n\t\t} else if (type == 'o') {\n\t\t\tthis.get = function(arr) {\n\t\t\t\treturn getNOri(arr, this.length, this.evenbase);\n\t\t\t};\n\t\t\tthis.set = function(arr, idx) {\n\t\t\t\treturn setNOri(arr, idx, this.length, this.evenbase);\n\t\t\t};\n\t\t} else if (type == 'c') {\n\t\t\tvar cnts = evenbase;\n\t\t\tthis.cnts = cnts.slice();\n\t\t\tthis.cntn = this.cnts.length;\n\t\t\tthis.cums = [0];\n\t\t\tfor (var i = 1; i <= this.cntn; i++) {\n\t\t\t\tthis.cums[i] = this.cums[i - 1] + cnts[i - 1];\n\t\t\t}\n\t\t\tthis.n = this.cums[this.cntn];\n\t\t\tvar n = this.n;\n\t\t\tvar x = 1;\n\t\t\tfor (var i = 0; i < this.cntn; i++) {\n\t\t\t\tfor (var j = 1; j <= cnts[i]; j++, n--) {\n\t\t\t\t\tx *= n / j;\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.x = Math.round(x);\n\t\t\tthis.get = function(arr) {\n\t\t\t\treturn getMPerm(arr, this.n, this.cnts.slice(), this.cums);\n\t\t\t};\n\t\t\tthis.set = function(arr, idx) {\n\t\t\t\treturn setMPerm(arr, idx, this.n, this.cnts.slice(), this.x);\n\t\t\t};\n\t\t} else { // invalid type\n\t\t\tdebugger;\n\t\t}\n\t}\n\n\tfunction fillFacelet(facelets, f, perm, ori, divcol) {\n\t\tfor (var i = 0; i < facelets.length; i++) {\n\t\t\tvar cubie = facelets[i];\n\t\t\tvar p = perm[i] === undefined ? i : perm[i];\n\t\t\tif (typeof(cubie) == 'number') {\n\t\t\t\tf[cubie] = ~~(facelets[p] / divcol);\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tvar o = ori[i] || 0;\n\t\t\tfor (var j = 0; j < cubie.length; j++) {\n\t\t\t\tf[cubie[(j + o) % cubie.length]] = ~~(facelets[p][j] / divcol);\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction detectFacelet(facelets, f, perm, ori, divcol) {\n\t\tfor (var i = 0; i < facelets.length; i++) {\n\t\t\tvar n_ori = facelets[i].length;\n\t\t\touter_loop: for (var j = 0; j < facelets.length + 1; j++) {\n\t\t\t\tif (j == facelets.length) { // not matched\n\t\t\t\t\treturn -1;\n\t\t\t\t} else if (facelets[j].length != n_ori) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tfor (var o = 0; o < n_ori; o++) {\n\t\t\t\t\tvar isMatch = true;\n\t\t\t\t\tfor (var t = 0; t < n_ori; t++) {\n\t\t\t\t\t\tif (~~(facelets[j][t] / divcol) != f[facelets[i][(t + o) % n_ori]]) {\n\t\t\t\t\t\t\tisMatch = false;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (isMatch) {\n\t\t\t\t\t\tperm[i] = j;\n\t\t\t\t\t\tori[i] = o;\n\t\t\t\t\t\tbreak outer_loop;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn 0;\n\t}\n\n\tfunction createMoveHash(initState, validMoves, hashFunc, moveFunc) {\n\t\tvar states = [initState];\n\t\tvar hash2idx = {};\n\t\tvar depthEnds = [];\n\t\thash2idx[hashFunc(initState)] = 0;\n\t\tdepthEnds[0] = 1;\n\t\tvar moveTable = [];\n\t\tfor (var m = 0; m < validMoves.length; m++) {\n\t\t\tmoveTable[m] = [];\n\t\t}\n\t\tvar tt = +new Date;\n\t\tfor (var i = 0; i < states.length; i++) {\n\t\t\tif (i == depthEnds[depthEnds.length - 1]) {\n\t\t\t\tdepthEnds.push(states.length);\n\t\t\t}\n\t\t\tif (i % 10000 == 9999) {\n\t\t\t\tDEBUG && console.log(i, 'states scanned, tt=', +new Date - tt);\n\t\t\t}\n\t\t\tvar curState = states[i];\n\t\t\tfor (var m = 0; m < validMoves.length; m++) {\n\t\t\t\tvar newState = moveFunc(curState, validMoves[m]);\n\t\t\t\tif (!newState) {\n\t\t\t\t\tmoveTable[m][i] = -1;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tvar newHash = hashFunc(newState);\n\t\t\t\tif (!(newHash in hash2idx)) {\n\t\t\t\t\thash2idx[newHash] = states.length;\n\t\t\t\t\tstates.push(newState);\n\t\t\t\t}\n\t\t\t\tmoveTable[m][i] = hash2idx[newHash];\n\t\t\t}\n\t\t}\n\t\tDEBUG && console.log('[move hash] ' + states.length + ' states generated, tt=', +new Date - tt, JSON.stringify(depthEnds));\n\t\treturn [moveTable, hash2idx];\n\t}\n\n\tfunction createPrun(prun, init, size, maxd, doMove, N_MOVES, N_POWER, N_INV) {\n\t\tvar isMoveTable = Array.isArray(doMove);\n\t\tN_MOVES = N_MOVES || 6;\n\t\tN_POWER = N_POWER || 3;\n\t\tN_INV = N_INV || 256;\n\t\tmaxd = maxd || 256;\n\t\tfor (var i = 0, len = (size + 7) >>> 3; i < len; i++) {\n\t\t\tprun[i] = -1;\n\t\t}\n\t\tif (!Array.isArray(init)) {\n\t\t\tinit = [init];\n\t\t}\n\t\tfor (var i = 0; i < init.length; i++) {\n\t\t\tprun[init[i] >> 3] ^= 15 << ((init[i] & 7) << 2);\n\t\t}\n\t\tvar val = 0;\n\t\t// var t = +new Date;\n\t\tfor (var l = 0; l <= maxd; l++) {\n\t\t\tvar done = 0;\n\t\t\tvar inv = l >= N_INV;\n\t\t\tvar fill = (l + 1) ^ 15;\n\t\t\tvar find = inv ? 0xf : l;\n\t\t\tvar check = inv ? l : 0xf;\n\n\t\t\touter_loop: for (var p = 0; p < size; p++, val >>= 4) {\n\t\t\t\tif ((p & 7) == 0) {\n\t\t\t\t\tval = prun[p >> 3];\n\t\t\t\t\tif (!inv && val == -1) {\n\t\t\t\t\t\tp += 7;\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif ((val & 0xf) != find) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tfor (var m = 0; m < N_MOVES; m++) {\n\t\t\t\t\tvar q = p;\n\t\t\t\t\tfor (var c = 0; c < N_POWER; c++) {\n\t\t\t\t\t\tq = isMoveTable ? doMove[m][q] : doMove(q, m);\n\t\t\t\t\t\tif (q < 0) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (getPruning(prun, q) != check) {\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t++done;\n\t\t\t\t\t\tif (inv) {\n\t\t\t\t\t\t\tprun[p >> 3] ^= fill << ((p & 7) << 2);\n\t\t\t\t\t\t\tcontinue outer_loop;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tprun[q >> 3] ^= fill << ((q & 7) << 2);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (done == 0) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tDEBUG && console.log('[prun]', done);\n\t\t}\n\t}\n\n\t// ida search algorithm\n\t// isSolved(state) -> boolean, in case isSolved = null, getPrun(idx) == 0 is used\n\t// getPrun(state) -> int\n\t// doMove(state) -> newState\n\t// if ckmv[last_move] >> cur_move & 1, cur_move is skipped\n\tfunction Searcher(isSolved, getPrun, doMove, N_AXIS, N_POWER, ckmv) {\n\t\tthis.isSolved = isSolved || function() { return true; };\n\t\tthis.getPrun = getPrun;\n\t\tthis.doMove = doMove;\n\t\tthis.N_AXIS = N_AXIS;\n\t\tthis.N_POWER = N_POWER;\n\t\tthis.ckmv = ckmv || valuedArray(N_AXIS, function(i) { return 1 << i; } );\n\t}\n\n\tvar _ = Searcher.prototype;\n\n\t_.solve = function(idx, minl, MAXL, callback) {\n\t\tvar sols = this.solveMulti([idx], minl, MAXL, callback);\n\t\treturn sols == null ? null : sols[0];\n\t};\n\n\t_.solveMulti = function(idxs, minl, MAXL, callback) {\n\t\tthis.callback = callback || function() { return true; };\n\t\tvar sol = [];\n\t\touter_loop: for (var l = minl; l <= MAXL; l++) {\n\t\t\tfor (var s = 0; s < idxs.length; s++) {\n\t\t\t\tthis.sidx = s;\n\t\t\t\tif (this.idaSearch(idxs[s], l, -1, sol) == 0) {\n\t\t\t\t\tbreak outer_loop;\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.sidx = -1;\n\t\t}\n\t\treturn this.sidx == -1 ? null : [sol, this.sidx];\n\t};\n\n\t_.idaSearch = function(idx, maxl, lm, sol) {\n\t\tvar prun = this.getPrun(idx);\n\t\tif (prun > maxl) {\n\t\t\treturn prun > maxl + 1 ? 2 : 1;\n\t\t}\n\t\tif (maxl == 0) {\n\t\t\treturn this.isSolved(idx) && this.callback(sol, this.sidx) ? 0 : 1;\n\t\t}\n\t\tif (prun == 0 && this.isSolved(idx) && maxl == 1) {\n\t\t\treturn 1;\n\t\t}\n\t\tfor (var axis = 0; axis < this.N_AXIS; axis++) {\n\t\t\tif (this.ckmv[lm] >> axis & 1) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tvar idx1 = Array.isArray(idx) ? idx.slice() : idx;\n\t\t\tfor (var pow = 0; pow < this.N_POWER; pow++) {\n\t\t\t\tidx1 = this.doMove(idx1, axis);\n\t\t\t\tif (idx1 == null) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tsol.push([axis, pow]);\n\t\t\t\tvar ret = this.idaSearch(idx1, maxl - 1, axis, sol);\n\t\t\t\tif (ret == 0) {\n\t\t\t\t\treturn 0;\n\t\t\t\t}\n\t\t\t\tsol.pop();\n\t\t\t\tif (ret == 2) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn 1;\n\t};\n\n\tfunction rn(n) {\n\t\treturn randomUIntBelow(n)\n\t}\n\n\tfunction rndPerm(n, isEven) {\n\t\tvar p = 0;\n\t\tvar arr = [];\n\t\tfor (var i = 0; i < n; i++) {\n\t\t\tarr[i] = i;\n\t\t}\n\t\tfor (var i = 0; i < n - 1; i++) {\n\t\t\tvar k = rn(n - i);\n\t\t\tcircle(arr, i, i + k);\n\t\t\tp ^= k != 0;\n\t\t}\n\t\tif (isEven && p) {\n\t\t\tcircle(arr, 0, 1);\n\t\t}\n\t\treturn arr;\n\t}\n\n\tfunction valuedArray(len, val) {\n\t\tvar ret = [];\n\t\tvar isFun = typeof val == 'function';\n\t\tfor (var i = 0; i < len; i++) {\n\t\t\tret[i] = isFun ? val(i) : val;\n\t\t}\n\t\treturn ret;\n\t}\n\n\tfunction permOriMult(p1, p2, prod, o1, o2, ori, oriMod) {\n\t\tfor (var i = 0; i < p2.length; i++) {\n\t\t\tif (oriMod) {\n\t\t\t\tori[i] = (o1[p2[i]] + o2[i]) % oriMod;\n\t\t\t}\n\t\t\tprod[i] = p1[p2[i]];\n\t\t}\n\t}\n\n\treturn {\n\t\tbitCount: bitCount,\n\t\tgetPruning: getPruning,\n\t\tsetNOri: setNOri,\n\t\tgetNOri: getNOri,\n\t\tgetNPerm: getNPerm,\n\t\tgetNParity: getNParity,\n\t\tCoord: Coord,\n\t\tcreateMoveHash: createMoveHash,\n\t\tcreatePrun: createPrun,\n\t\tfillFacelet: fillFacelet,\n\t\tdetectFacelet: detectFacelet,\n\t\trn: rn,\n\t\tvaluedArray: valuedArray,\n\t\tSearcher: Searcher,\n\t\trndPerm: rndPerm,\n\t\tpermOriMult: permOriMult,\n\t};\n})();\n\nvar ftosolver = (function() {\n\t//face-turning octahedron cube w/o identical pieces\n\tfunction FtoCubie(cp, co, ep, uf, rl) {\n\t\tthis.cp = (cp && cp.slice()) || [0, 1, 2, 3, 4, 5];\n\t\tthis.co = (co && co.slice()) || [0, 0, 0, 0, 0, 0];\n\t\tthis.ep = (ep && ep.slice()) || [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];\n\t\tthis.uf = (uf && uf.slice()) || [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];\n\t\tthis.rl = (rl && rl.slice()) || [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];\n\t}\n\n\tvar U = 0, F = 9, r = 18, l = 27, D = 36, B = 45, R = 54, L = 63;\n\n\tvar cornFacelets = [\n\t\t[U + 0, R + 0, F + 0, L + 0],\n\t\t[U + 4, B + 8, r + 4, R + 8],\n\t\t[U + 8, L + 4, l + 8, B + 4],\n\t\t[l + 0, D + 0, r + 0, B + 0],\n\t\t[F + 4, D + 8, l + 4, L + 8],\n\t\t[r + 8, D + 4, F + 8, R + 4]\n\t];\n\n\tvar edgeFacelets = [\n\t\t[U + 1, R + 3], [U + 3, L + 1], [U + 6, B + 6],\n\t\t[l + 1, D + 3], [r + 3, D + 1], [F + 6, D + 6],\n\t\t[F + 3, R + 1], [F + 1, L + 3], [l + 6, L + 6],\n\t\t[l + 3, B + 1], [r + 1, B + 3], [r + 6, R + 6]\n\t];\n\n\tvar ctufFacelets = [\n\t\tU + 2, U + 5, U + 7,\n\t\tF + 2, F + 5, F + 7,\n\t\tr + 2, r + 5, r + 7,\n\t\tl + 2, l + 5, l + 7\n\t];\n\n\tvar ctrlFacelets = [\n\t\tD + 2, D + 5, D + 7,\n\t\tB + 2, B + 5, B + 7,\n\t\tL + 2, L + 5, L + 7,\n\t\tR + 2, R + 5, R + 7\n\t];\n\n\tFtoCubie.prototype.isEqual = function(fc) {\n\t\tfor (var i = 0; i < 12; i++) {\n\t\t\tif (this.ep[i] != fc.ep[i] || this.uf[i] != fc.uf[i] || this.rl[i] != fc.rl[i]\n\t\t\t\t\t|| i < 6 && (this.cp[i] != fc.cp[i] || this.co[i] != fc.co[i])) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t\treturn true;\n\t}\n\n\tFtoCubie.prototype.toFaceCube = function(todiv) {\n\t\tvar f = [];\n\t\ttodiv = todiv || 9;\n\t\tvar co = [];\n\t\tfor (var i = 0; i < 6; i++) {\n\t\t\tco[i] = this.co[i] * 2;\n\t\t}\n\t\tmathlib.fillFacelet(cornFacelets, f, this.cp, co, todiv);\n\t\tmathlib.fillFacelet(edgeFacelets, f, this.ep, [], todiv);\n\t\tmathlib.fillFacelet(ctufFacelets, f, this.uf, null, todiv);\n\t\tmathlib.fillFacelet(ctrlFacelets, f, this.rl, null, todiv);\n\t\treturn f;\n\t}\n\n\tFtoCubie.prototype.fromFacelet = function(facelet) {\n\t\tvar count = 0;\n\t\tvar f = [];\n\t\tfor (var i = 0; i < 72; ++i) {\n\t\t\tf[i] = facelet[i];\n\t\t\tcount += Math.pow(16, f[i]);\n\t\t}\n\t\tif (count != 0x99999999) {\n\t\t\treturn -1;\n\t\t}\n\t\tvar co = [];\n\t\tif (mathlib.detectFacelet(cornFacelets, f, this.cp, co, 9) == -1\n\t\t\t\t|| mathlib.detectFacelet(edgeFacelets, f, this.ep, [], 9) == -1) {\n\t\t\treturn -1;\n\t\t}\n\t\tvar parity = 0;\n\t\tfor (var i = 0; i < 6; i++) {\n\t\t\tthis.co[i] = co[i] >> 1;\n\t\t\tparity ^= this.co[i];\n\t\t}\n\t\tif (parity != 0\n\t\t\t\t|| mathlib.getNParity(mathlib.getNPerm(this.cp, 6), 6) != 0\n\t\t\t\t|| mathlib.getNParity(mathlib.getNPerm(this.ep, 12), 12) != 0) {\n\t\t\treturn -1;\n\t\t}\n\t\tvar remainCnts = [3, 3, 3, 3];\n\t\tfor (var i = 0; i < 12; i++) {\n\t\t\tvar col = f[ctufFacelets[i]];\n\t\t\tif (!(remainCnts[col] > 0)) {\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t\tthis.uf[i] = col * 3 + 3 - remainCnts[col];\n\t\t\tremainCnts[col]--;\n\t\t}\n\t\tremainCnts = [3, 3, 3, 3];\n\t\tfor (var i = 0; i < 12; i++) {\n\t\t\tvar col = [0, 1, 3, 2][f[ctrlFacelets[i]] - 4];\n\t\t\tif (!(remainCnts[col] > 0)) {\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t\tthis.rl[i] = col * 3 + 3 - remainCnts[col];\n\t\t\tremainCnts[col]--;\n\t\t}\n\t\tif (mathlib.getNParity(mathlib.getNPerm(this.uf, 12), 12) != 0) {\n\t\t\tfor (var i = 0; i < 12; i++) { // swap 0 and 1 to fix parity\n\t\t\t\tthis.uf[i] ^= this.uf[i] < 2 ? 1 : 0;\n\t\t\t}\n\t\t}\n\t\tif (mathlib.getNParity(mathlib.getNPerm(this.rl, 12), 12) != 0) {\n\t\t\tfor (var i = 0; i < 12; i++) { // swap 0 and 1 to fix parity\n\t\t\t\tthis.rl[i] ^= this.rl[i] < 2 ? 1 : 0;\n\t\t\t}\n\t\t}\n\t\treturn this;\n\t}\n\n\tFtoCubie.prototype.toString = function(todiv) {\n\t\tvar f = this.toFaceCube(todiv);\n\t\tvar ret = '' +\n\t\t\t' U8 U7 U6 U5 U4 B8 B7 B6 B5 B4\\n' +\n\t\t\t'L4 U3 U2 U1 R8 r4 B3 B2 B1 l8\\n' +\n\t\t\t'L5 L1 U0 R3 R7 r5 r1 B0 l3 l7\\n' +\n\t\t\t'L6 L2 L0 R0 R2 R6 r6 r2 r0 l0 l2 l6\\n' +\n\t\t\t'L7 L3 F0 R1 R5 r7 r3 D0 l1 l5\\n' +\n\t\t\t'L8 F1 F2 F3 R4 r8 D1 D2 D3 l4\\n' +\n\t\t\t' F4 F5 F6 F7 F8 D4 D5 D6 D7 D8';\n\t\tret = ret.replace(/([UFrlDBRL])([0-8])/g, function(m, p1, p2) {\n\t\t\tvar i = 'UFrlDBRL'.indexOf(p1) * 9 + (~~p2);\n\t\t\treturn 'UFrlDBRL' [~~(f[i] / 9)] + (f[i] % 9);\n\t\t});\n\t\treturn ret;\n\t}\n\n\tFtoCubie.FtoMult = function() {\n\t\tvar prod = arguments[arguments.length - 1] || new FtoCubie();\n\t\tfor (var k = 0; k < arguments.length; k++) {\n\t\t\tvar a = arguments[arguments.length - 1 - k];\n\t\t\tfor (var i = 0; i < 6; i++) {\n\t\t\t\tprod.co[i] = k == 0 ? 0 : (a.co[prod.cp[i]] ^ prod.co[i]);\n\t\t\t\tprod.cp[i] = k == 0 ? i : a.cp[prod.cp[i]];\n\t\t\t}\n\t\t\tfor (var i = 0; i < 12; i++) {\n\t\t\t\tprod.ep[i] = k == 0 ? i : a.ep[prod.ep[i]];\n\t\t\t\tprod.uf[i] = k == 0 ? i : a.uf[prod.uf[i]];\n\t\t\t\tprod.rl[i] = k == 0 ? i : a.rl[prod.rl[i]];\n\t\t\t}\n\t\t}\n\t\treturn prod;\n\t}\n\n\tfunction initMoveCube() {\n\t\tvar rotU = new FtoCubie( //move[U]\n\t\t\t[1, 2, 0, 4, 5, 3], [0, 0, 0, 0, 0, 0], [2, 0, 1, 5, 3, 4, 10, 11, 6, 7, 8, 9],\n\t\t\t[1, 2, 0, 7, 8, 6, 10, 11, 9, 4, 5, 3], [2, 0, 1, 8, 6, 7, 11, 9, 10, 5, 3, 4]);\n\t\tvar rotR = new FtoCubie( //move[R]\n\t\t\t[5, 0, 4, 2, 3, 1], [1, 1, 0, 1, 1, 0], [6, 5, 7, 9, 2, 10, 11, 4, 3, 8, 1, 0],\n\t\t\t[5, 3, 4, 8, 6, 7, 2, 0, 1, 11, 9, 10], [4, 5, 3, 7, 8, 6, 1, 2, 0, 10, 11, 9]);\n\n\t\tvar rotUi = FtoCubie.FtoMult(rotU, rotU, null);\n\t\tvar rotRi = FtoCubie.FtoMult(rotR, rotR, null);\n\t\tvar rotL = FtoCubie.FtoMult(rotUi, rotR, rotU, null);\n\t\tvar rotF = FtoCubie.FtoMult(rotR, rotU, rotRi, null);\n\n\t\tvar moveCube = [];\n\t\tmoveCube[0] = new FtoCubie( //moveU\n\t\t\t[1, 2, 0, 3, 4, 5], [0, 0, 0, 0, 0, 0], [2, 0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 11],\n\t\t\t[1, 2, 0, 3, 4, 5, 6, 7, 8, 9, 10, 11], [0, 1, 2, 3, 6, 7, 11, 9, 8, 5, 10, 4]);\n\t\tmoveCube[2] = new FtoCubie( //moveF\n\t\t\t[4, 1, 2, 3, 5, 0], [1, 0, 0, 0, 1, 0], [0, 1, 2, 3, 4, 6, 7, 5, 8, 9, 10, 11],\n\t\t\t[0, 1, 2, 4, 5, 3, 6, 7, 8, 9, 10, 11], [0, 9, 10, 3, 4, 5, 2, 7, 1, 8, 6, 11]);\n\t\tmoveCube[4] = new FtoCubie( //mover\n\t\t\t[0, 5, 2, 1, 4, 3], [0, 1, 0, 0, 0, 1], [0, 1, 2, 3, 10, 5, 6, 7, 8, 9, 11, 4],\n\t\t\t[0, 1, 2, 3, 4, 5, 7, 8, 6, 9, 10, 11], [5, 3, 2, 11, 4, 10, 6, 7, 8, 9, 0, 1]);\n\t\tmoveCube[6] = new FtoCubie( //movel\n\t\t\t[0, 1, 3, 4, 2, 5], [0, 0, 1, 1, 0, 0], [0, 1, 2, 8, 4, 5, 6, 7, 9, 3, 10, 11],\n\t\t\t[0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 9], [8, 1, 7, 2, 0, 5, 6, 3, 4, 9, 10, 11]);\n\t\tmoveCube[8] = new FtoCubie( //moveD\n\t\t\t[0, 1, 2, 5, 3, 4], [0, 0, 0, 0, 0, 0], [0, 1, 2, 4, 5, 3, 6, 7, 8, 9, 10, 11],\n\t\t\t[0, 1, 2, 3, 9, 10, 5, 7, 4, 8, 6, 11], [1, 2, 0, 3, 4, 5, 6, 7, 8, 9, 10, 11]);\n\t\tmoveCube[10] = new FtoCubie( //moveB\n\t\t\t[0, 3, 1, 2, 4, 5], [0, 1, 1, 0, 0, 0], [0, 1, 10, 3, 4, 5, 6, 7, 8, 2, 9, 11],\n\t\t\t[0, 6, 7, 3, 4, 5, 11, 9, 8, 2, 10, 1], [0, 1, 2, 4, 5, 3, 6, 7, 8, 9, 10, 11]);\n\t\tmoveCube[12] = new FtoCubie( //moveR\n\t\t\t[5, 0, 2, 3, 4, 1], [1, 1, 0, 0, 0, 0], [6, 1, 2, 3, 4, 5, 11, 7, 8, 9, 10, 0],\n\t\t\t[5, 3, 2, 8, 4, 7, 6, 0, 1, 9, 10, 11], [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 9]);\n\t\tmoveCube[14] = new FtoCubie( //moveL\n\t\t\t[2, 1, 4, 3, 0, 5], [1, 0, 1, 0, 0, 0], [0, 8, 2, 3, 4, 5, 6, 1, 7, 9, 10, 11],\n\t\t\t[11, 1, 10, 2, 0, 5, 6, 7, 8, 9, 3, 4], [0, 1, 2, 3, 4, 5, 7, 8, 6, 9, 10, 11]);\n\t\tmoveCube[16] = FtoCubie.FtoMult(rotU, moveCube[8], null); // moveUw = [U] * D\n\t\tmoveCube[18] = FtoCubie.FtoMult(rotF, moveCube[10], null); // moveFw = [F] * B\n\t\tmoveCube[20] = FtoCubie.FtoMult(rotR, moveCube[6], null); // moveRw = [R] * l\n\t\tmoveCube[22] = FtoCubie.FtoMult(rotL, moveCube[4], null); // moveLw = [L] * r\n\n\t\tfor (var i = 1; i < 24; i += 2) {\n\t\t\tmoveCube[i] = new FtoCubie();\n\t\t\tFtoCubie.FtoMult(moveCube[i - 1], moveCube[i - 1], moveCube[i]);\n\t\t}\n\n\t\tvar moveHash = [];\n\t\tfor (var i = 0; i < 24; i ++) {\n\t\t\tmoveHash[i] = moveCube[i].ep.join(',');\n\t\t}\n\t\t//init sym\n\t\tvar symCube = [];\n\t\tvar symMult = [];\n\t\tvar symMulI = [];\n\t\tvar symMulM = [];\n\t\tvar symHash = [];\n\t\tvar fc = new FtoCubie();\n\t\tvar fc2 = new FtoCubie();\n\t\tvar tmp;\n\t\tfor (var s = 0; s < 12; s++) {\n\t\t\tsymCube[s] = new FtoCubie(fc.cp, fc.co, fc.ep, fc.uf, fc.rl);\n\t\t\tsymHash[s] = symCube[s].ep.join(',');\n\t\t\tsymMult[s] = [];\n\t\t\tsymMulI[s] = [];\n\t\t\tfc = FtoCubie.FtoMult(fc, rotU, null);\n\t\t\tif (s % 3 == 2) { // [F] or [R]\n\t\t\t\tfc = FtoCubie.FtoMult(fc, rotR, rotU, null);\n\t\t\t}\n\t\t\tif (s % 6 == 5) {\n\t\t\t\tfc = FtoCubie.FtoMult(fc, rotU, rotR, null);\n\t\t\t}\n\t\t}\n\t\tfor (var i = 0; i < 12; i++) {\n\t\t\tfor (var j = 0; j < 12; j++) {\n\t\t\t\tFtoCubie.FtoMult(symCube[i], symCube[j], fc);\n\t\t\t\tvar k = symHash.indexOf(fc.ep.join(','));\n\t\t\t\tsymMult[i][j] = k;\n\t\t\t\tsymMulI[k][j] = i;\n\t\t\t}\n\t\t}\n\t\tfor (var s = 0; s < 12; s++) {\n\t\t\tsymMulM[s] = [];\n\t\t\tfor (var j = 0; j < 8; j++) {\n\t\t\t\tFtoCubie.FtoMult(symCube[symMulI[0][s]], moveCube[j * 2], symCube[s], fc);\n\t\t\t\tvar k = moveHash.indexOf(fc.ep.join(','));\n\t\t\t\tsymMulM[s][j] = k >> 1;\n\t\t\t}\n\t\t}\n\t\tFtoCubie.moveCube = moveCube;\n\t\tFtoCubie.symCube = symCube;\n\t\tFtoCubie.symMult = symMult;\n\t\tFtoCubie.symMulI = symMulI;\n\t\tFtoCubie.symMulM = symMulM;\n\t};\n\n\tinitMoveCube();\n\n\tfunction ftoPermMove(key, perm, move) {\n\t\tvar ret = [];\n\t\tvar movePerm = FtoCubie.moveCube[move][key];\n\t\tfor (var i = 0; i < 12; i++) {\n\t\t\tret[i] = perm[movePerm[i]];\n\t\t}\n\t\treturn ret;\n\t}\n\n\tfunction ftoFullMove(fc, move) {\n\t\treturn FtoCubie.FtoMult(fc, FtoCubie.moveCube[move], null);\n\t}\n\n\tfunction phase1EdgeHash(ep) {\n\t\tvar ret = 0;\n\t\tvar e3fst = -1;\n\t\tfor (var i = 0; i < 12; i++) {\n\t\t\tif ((0x38 >> ep[i] & 1) == 0) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (e3fst == -1) {\n\t\t\t\te3fst = ep[i];\n\t\t\t}\n\t\t\tret += ((ep[i] - e3fst + 3) % 3 + 1) << i * 2;\n\t\t}\n\t\treturn ret;\n\t}\n\n\tfunction phase1CtrlHash(rl) {\n\t\tvar ret = 0;\n\t\tfor (var i = 0; i < 12; i++) {\n\t\t\tif (rl[i] < 3) {\n\t\t\t\tret |= 1 << i;\n\t\t\t}\n\t\t}\n\t\treturn ret;\n\t}\n\n\tfunction phase2EdgeHash(ep) {\n\t\tvar edge2group = [0, 1, 2, 3, 3, 3, 0, 1, 1, 2, 2, 0];\n\t\tvar groups = [[0, 6, 11], [1, 7, 8], [2, 9, 10], [3, 4, 5]];\n\t\tvar ret = 0;\n\t\tvar egoff = [-1, -1, -1, -1];\n\t\tfor (var i = 0; i < 12; i++) {\n\t\t\tvar g = edge2group[ep[i]];\n\t\t\tvar gidx = groups[g].indexOf(ep[i]);\n\t\t\tif (egoff[g] == -1) {\n\t\t\t\tegoff[g] = gidx;\n\t\t\t}\n\t\t\tret += (g * 4 + (gidx - egoff[g] + 3) % 3) * Math.pow(16, i);\n\t\t}\n\t\treturn ret;\n\t}\n\n\tfunction phase2CtHash(ct) {\n\t\tvar ret = 0;\n\t\tfor (var i = 0; i < 12; i++) {\n\t\t\tret |= ~~(ct[i] / 3) << (i * 2);\n\t\t}\n\t\treturn ret;\n\t}\n\n\tfunction phase3EdgeHash(ep) {\n\t\treturn String.fromCharCode.apply(null, ep);\n\t}\n\n\tfunction phase3CcufHash(fc) {\n\t\treturn String.fromCharCode.apply(null, [].concat(fc.cp, fc.co));\n\t}\n\n\tfunction randomMoves(validMoves, len) {\n\t\tvar scramble = [];\n\t\tfor (var i = 0; i < len; i++) {\n\t\t\tscramble.push(validMoves[~~(Math.random() * validMoves.length)]);\n\t\t}\n\t\tvar fc = new FtoCubie();\n\t\tfor (var i = 0; i < scramble.length; i++) {\n\t\t\tfc = FtoCubie.FtoMult(fc, FtoCubie.moveCube[scramble[i]], null);\n\t\t}\n\t\treturn [fc, scramble];\n\t}\n\n\tfunction genCkmv(moves) {\n\t\tvar ckmv = [];\n\t\tvar tmp1 = new FtoCubie();\n\t\tvar tmp2 = new FtoCubie();\n\t\tfor (var m1 = 0; m1 < moves.length; m1++) {\n\t\t\tckmv[m1] = 1 << m1;\n\t\t\tfor (var m2 = 0; m2 < m1; m2++) {\n\t\t\t\tFtoCubie.FtoMult(FtoCubie.moveCube[moves[m1]], FtoCubie.moveCube[moves[m2]], tmp1);\n\t\t\t\tFtoCubie.FtoMult(FtoCubie.moveCube[moves[m2]], FtoCubie.moveCube[moves[m1]], tmp2);\n\t\t\t\tif (tmp1.isEqual(tmp2)) {\n\t\t\t\t\tckmv[m1] |= 1 << m2;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn ckmv;\n\t}\n\n\tvar phase1Moves = [0, 2, 22, 6, 16, 10, 12, 14]; // keep the (D, DR) edge\n\tvar p1epMoves = null;\n\tvar p1rlMoves = null;\n\tvar ckmv1 = null;\n\tvar solv1 = null;\n\n\tvar pyraSymCube = [];\n\tfor (var i = 0; i < 12; i++) {\n\t\tpyraSymCube.push(new FtoCubie(\n\t\t\tFtoCubie.symCube[i].cp,\n\t\t\tFtoCubie.symCube[i].co,\n\t\t\tnull,\n\t\t\tFtoCubie.symCube[i].uf,\n\t\t\tnull\n\t\t));\n\t}\n\n\tfunction phase1Init() {\n\t\tvar fc = new FtoCubie();\n\t\tp1epMoves = mathlib.createMoveHash(fc.ep.slice(), phase1Moves, phase1EdgeHash, ftoPermMove.bind(null, 'ep'));\n\t\tp1rlMoves = mathlib.createMoveHash(fc.rl.slice(), phase1Moves, phase1CtrlHash, ftoPermMove.bind(null, 'rl'));\n\t\tvar N_P1EP = p1epMoves[0][0].length;\n\t\tvar N_P1RL = p1rlMoves[0][0].length;\n\t\tDEBUG && console.log('p1ep len=' + N_P1EP + ' p1rl len=' + N_P1RL);\n\n\t\tckmv1 = genCkmv(phase1Moves);\n\t\tvar p1eprlPrun = [];\n\t\tmathlib.createPrun(p1eprlPrun, 0, N_P1EP * N_P1RL, 14, function(idx, move) {\n\t\t\tvar rl = ~~(idx / N_P1EP);\n\t\t\tvar ep = idx % N_P1EP;\n\t\t\treturn p1rlMoves[0][move][rl] * N_P1EP + p1epMoves[0][move][ep];\n\t\t}, phase1Moves.length, 2);\n\n\t\tsolv1 = new mathlib.Searcher(null, function(idx) {\n\t\t\treturn mathlib.getPruning(p1eprlPrun, idx[1] * N_P1EP + idx[0]);\n\t\t}, function(idx, move) {\n\t\t\treturn [\n\t\t\t\tp1epMoves[0][move][idx[0]],\n\t\t\t\tp1rlMoves[0][move][idx[1]]\n\t\t\t];\n\t\t}, 8, 2, ckmv1);\n\t}\n\n\tfunction phase1GenIdxs(fc) {\n\t\tvar idxs = [];\n\t\tvar syms = [];\n\t\tvar fc2 = new FtoCubie();\n\t\tvar fc3 = new FtoCubie();\n\n\t\tfor (var sidx = 0; sidx < 12; sidx += 3) {\n\t\t\tFtoCubie.FtoMult(FtoCubie.symCube[sidx % 12], fc, fc2);\n\t\t\tvar rot;\n\t\t\tfor (rot = 0; rot < 12; rot++) {\n\t\t\t\tFtoCubie.FtoMult(fc2, FtoCubie.symCube[rot], fc3);\n\t\t\t\tif (fc3.ep[4] == 4) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tvar epidxs = [];\n\t\t\tvar rlidxs = [];\n\t\t\tidxs.push([\n\t\t\t\tp1epMoves[1][phase1EdgeHash(fc3.ep)],\n\t\t\t\tp1rlMoves[1][phase1CtrlHash(fc3.rl)]\n\t\t\t]);\n\t\t\tsyms.push([sidx, rot]);\n\t\t}\n\t\treturn [idxs, syms];\n\t}\n\n\tfunction phase1ProcSol(sol, solsym, fc) {\n\t\tfor (var i = 0; i < sol.length; i++) {\n\t\t\tsol[i] = phase1Moves[sol[i][0]] + sol[i][1];\n\t\t}\n\t\tvar std = move2std(sol);\n\t\tfor (var i = 0; i < std[0].length; i++) {\n\t\t\tvar move = std[0][i];\n\t\t\tsol[i] = FtoCubie.symMulM[FtoCubie.symMulI[0][solsym[1]]][move >> 1] * 2 + (move & 1);\n\t\t\tfc = FtoCubie.FtoMult(fc, FtoCubie.moveCube[sol[i]], null);\n\t\t}\n\t\tsolsym[1] = FtoCubie.symMulI[solsym[1]][std[1]];\n\t\tfc = FtoCubie.FtoMult(\n\t\t\tpyraSymCube[~~(solsym[0] / 12)], FtoCubie.symCube[solsym[0] % 12],\n\t\t\tfc, FtoCubie.symCube[solsym[1]], null\n\t\t);\n\t\treturn [fc, sol, solsym[0], solsym[1]];\n\t}\n\n\tvar N_PHASE1_SOLS = 1000;\n\n\tfunction solvePhase1(fc) {\n\t\tif (!solv1) {\n\t\t\tphase1Init();\n\t\t}\n\n\t\tvar tt = performance.now();\n\t\tvar idxs = phase1GenIdxs(fc);\n\t\tvar syms = idxs[1];\n\t\tidxs = idxs[0];\n\n\t\tvar p1sols = [];\n\n\t\tvar sol1s = solv1.solveMulti(idxs, 0, 12, function(sol, sidx) {\n\t\t\tvar param = phase1ProcSol(sol.slice(), syms[sidx].slice(), fc);\n\t\t\tp1sols.push(param);\n\t\t\treturn p1sols.length >= N_PHASE1_SOLS;\n\t\t});\n\n\t\ttt = performance.now() - tt;\n\t\tfor (var i = 0; i < p1sols.length; i++) {\n\t\t\tp1sols[i].push(tt);\n\t\t}\n\t\treturn p1sols;\n\t}\n\n\tvar phase2Moves = [0, 12, 14, 8, 10];\n\tvar p2epMoves = null;\n\tvar p2rlMoves = null;\n\tvar p2ccMoves = null;\n\tvar p2cc2ufBit = {};\n\tvar ckmv2 = null;\n\tvar solv2 = null;\n\tvar P2EPRL_MAXL = 11;\n\tvar p2symMap = [];\n\tvar ufStd2Raw = [];\n\tvar ufRaw2Std = [];\n\tvar p2ufCoord = new mathlib.Coord('c', 12, [3, 3, 3, 3]);\n\n\tvar cornExFacelets = [\n\t\t[U + 2, R + 2, F + 2, L + 2],\n\t\t[U + 5, B + 7, r + 5, R + 7],\n\t\t[U + 7, L + 5, l + 7, B + 5],\n\t\t[l + 2, D + 2, r + 2, B + 2],\n\t\t[F + 5, D + 7, l + 5, L + 7],\n\t\t[r + 7, D + 5, F + 7, R + 5]\n\t];\n\n\tfunction phase2CpcoHash(fc) {\n\t\tvar ret = String.fromCharCode.apply(null, [].concat(fc.cp, fc.co));\n\t\tif (!(ret in p2cc2ufBit)) {\n\t\t\tvar co = [];\n\t\t\tfor (var i = 0; i < 6; i++) {\n\t\t\t\tco[i] = fc.co[i] * 2;\n\t\t\t}\n\t\t\tvar facelet = fc.toFaceCube();\n\t\t\tmathlib.fillFacelet(cornExFacelets, facelet, fc.cp, co, 9);\n\t\t\tvar fc2 = new FtoCubie().fromFacelet(facelet);\n\t\t\tp2cc2ufBit[ret] = phase2CtHash(fc2.uf);\n\t\t}\n\t\treturn ret;\n\t}\n\n\t// re-color the cube s.t. uf is minimized in lexicographical order\n\tfunction phase2ufStd(uf, symMap) {\n\t\tvar col1 = uf[0], col2 = -1;\n\t\tfor (var i = 1; i < 12; i++) {\n\t\t\tif (uf[i] != col1) {\n\t\t\t\tcol2 = uf[i];\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tvar sym = symMap[col1 * 4 + col2];\n\t\tfor (var i = 0; i < 12; i++) {\n\t\t\tuf[i] = ~~(FtoCubie.symCube[sym].uf[uf[i] * 3] / 3);\n\t\t}\n\t\treturn sym;\n\t}\n\n\tfunction getPhase2ufIdx(uf) {\n\t\tvar ufstd = [];\n\t\tfor (var i = 0; i < 12; i++) {\n\t\t\tufstd[i] = ~~(uf[i] / 3);\n\t\t}\n\t\tvar sym = phase2ufStd(ufstd, p2symMap);\n\t\treturn ufRaw2Std[p2ufCoord.get(ufstd)] << 4 | sym;\n\t}\n\n\tfunction phase2Init() {\n\t\tvar fc = new FtoCubie();\n\t\tp2epMoves = mathlib.createMoveHash(fc.ep.slice(), phase2Moves, phase2EdgeHash, ftoPermMove.bind(null, 'ep'));\n\t\tp2rlMoves = mathlib.createMoveHash(fc.rl.slice(), phase2Moves, phase2CtHash, ftoPermMove.bind(null, 'rl'));\n\t\tp2ccMoves = mathlib.createMoveHash(fc, phase2Moves, phase2CpcoHash, ftoFullMove);\n\n\t\tvar arr = [];\n\t\tvar arr2 = [];\n\t\tvar p2ufMoveStd = [[], [], [], [], []];\n\t\tvar ufStd2Bit = [];\n\t\tvar p2ccRecol = [];\n\t\tfor (var s = 0; s < 12; s++) {\n\t\t\tvar uf = FtoCubie.symCube[s].uf;\n\t\t\tvar col1 = ~~(uf.indexOf(0) / 3);\n\t\t\tvar col2 = ~~(uf.indexOf(3) / 3);\n\t\t\tp2symMap[col1 * 4 + col2] = s;\n\t\t\tp2ccRecol[s] = [];\n\t\t}\n\t\tout: for (var i = 0; i < 42000; i++) {\n\t\t\tp2ufCoord.set(arr, i);\n\t\t\tfor (var j = 1; j < 12; j++) {\n\t\t\t\tif (arr[j] > 1) {\n\t\t\t\t\tcontinue out;\n\t\t\t\t} else if (arr[j] == 1) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tufRaw2Std[i] = ufStd2Raw.length;\n\t\t\tufStd2Raw.push(i);\n\t\t}\n\t\tfor (var i = 0; i < ufStd2Raw.length; i++) {\n\t\t\tp2ufCoord.set(arr, ufStd2Raw[i]);\n\t\t\tvar hash = 0;\n\t\t\tfor (var j = 0; j < 12; j++) {\n\t\t\t\thash |= arr[j] << (j * 2);\n\t\t\t}\n\t\t\tufStd2Bit[i] = hash;\n\t\t\tfor (var m = 0; m < phase2Moves.length; m++) {\n\t\t\t\tmathlib.permOriMult(arr, FtoCubie.moveCube[phase2Moves[m]].uf, arr2);\n\t\t\t\tvar sym = phase2ufStd(arr2, p2symMap);\n\t\t\t\tp2ufMoveStd[m][i] = ufRaw2Std[p2ufCoord.get(arr2)] << 4 | sym;\n\t\t\t}\n\t\t}\n\t\tvar cc2Bit = [];\n\t\tfor (var key in p2ccMoves[1]) {\n\t\t\tvar idx = p2ccMoves[1][key];\n\t\t\tcc2Bit[idx] = p2cc2ufBit[key];\n\t\t\tvar cpco = [];\n\t\t\tfor (var s = 0; s < 12; s++) {\n\t\t\t\tvar sc = FtoCubie.symCube[s];\n\t\t\t\tfor (var i = 0; i < 6; i++) {\n\t\t\t\t\tvar scpi = key.charCodeAt(i);\n\t\t\t\t\tcpco[i] = sc.cp[scpi];\n\t\t\t\t\tcpco[i + 6] = sc.co[scpi] ^ key.charCodeAt(i + 6);\n\t\t\t\t}\n\t\t\t\tvar hash = String.fromCharCode.apply(null, cpco);\n\t\t\t\tp2ccRecol[s][idx] = p2ccMoves[1][hash];\n\t\t\t}\n\t\t}\n\t\tvar p2necPrun = [ // idx = a * 7 + b, a: #mismatch 3 U corners, b: other corners\n\t\t\t0, 0, 3, 4, 5, 6, 8,\n\t\t\t0, 2, 3, 4, 5, 6, 8,\n\t\t\t1, 2, 4, 4, 5, 6, 8,\n\t\t\t1, 3, 4, 5, 6, 7, 8,\n\t\t\t3, 3, 4, 5, 6, 7, 9,\n\t\t\t4, 4, 5, 6, 7, 8, 9,\n\t\t\t5, 5, 6, 7, 8, 9, 10\n\t\t];\n\n\t\tvar N_P2EP = p2epMoves[0][0].length;\n\t\tvar N_P2RL = p2rlMoves[0][0].length;\n\t\tvar p2eprlPrun = [];\n\t\tmathlib.createPrun(p2eprlPrun, 0, N_P2EP * N_P2RL, P2EPRL_MAXL - 2, function(idx, move) {\n\t\t\tvar rl = ~~(idx / N_P2EP);\n\t\t\tvar ep = idx % N_P2EP;\n\t\t\treturn p2rlMoves[0][move][rl] * N_P2EP + p2epMoves[0][move][ep];\n\t\t}, phase2Moves.length, 2);\n\t\tckmv2 = genCkmv(phase2Moves);\n\n\t\tsolv2 = new mathlib.Searcher(function(idx) {\n\t\t\treturn ufStd2Bit[idx[3] >> 4] == cc2Bit[p2ccRecol[idx[3] & 0xf][idx[2]]];\n\t\t}, function(idx) {\n\t\t\tvar xors = ufStd2Bit[idx[3] >> 4] ^ cc2Bit[p2ccRecol[idx[3] & 0xf][idx[2]]];\n\t\t\txors = (xors | xors >> 1) & 0x555555;\n\t\t\tvar necIdx = mathlib.bitCount(xors & 0xc0c0ff) * 7 + mathlib.bitCount(xors & 0x3f3f00);\n\t\t\treturn Math.max(\n\t\t\t\tMath.min(P2EPRL_MAXL, mathlib.getPruning(p2eprlPrun, idx[1] * N_P2EP + idx[0])),\n\t\t\t\tp2necPrun[necIdx]\n\t\t\t);\n\t\t}, function(idx, move) {\n\t\t\tvar ufidx1 = p2ufMoveStd[move][idx[3] >> 4];\n\t\t\tvar ufcol = FtoCubie.symMult[ufidx1 & 0xf][idx[3] & 0xf];\n\t\t\treturn [\n\t\t\t\tp2epMoves[0][move][idx[0]],\n\t\t\t\tp2rlMoves[0][move][idx[1]],\n\t\t\t\tp2ccMoves[0][move][idx[2]],\n\t\t\t\tufidx1 & ~0xf | ufcol,\n\t\t\t];\n\t\t}, phase2Moves.length, 2, ckmv2);\n\t}\n\n\tfunction solvePhase2(solvInfos) {\n\t\tif (!solv2) {\n\t\t\tphase2Init();\n\t\t}\n\t\tvar tt = performance.now();\n\t\tvar idxs = [];\n\t\tfor (var i = 0; i < solvInfos.length; i++) {\n\t\t\tidxs.push([\n\t\t\t\tp2epMoves[1][phase2EdgeHash(solvInfos[i][0].ep)],\n\t\t\t\tp2rlMoves[1][phase2CtHash(solvInfos[i][0].rl)],\n\t\t\t\tp2ccMoves[1][phase2CpcoHash(solvInfos[i][0])],\n\t\t\t\tgetPhase2ufIdx(solvInfos[i][0].uf)\n\t\t\t]);\n\t\t}\n\t\tvar sol2s = solv2.solveMulti(idxs, 0, 25);\n\t\tvar sol = sol2s[0];\n\t\tvar src = sol2s[1];\n\t\tvar solvInfo = solvInfos[src];\n\t\tvar fc = solvInfo[0];\n\t\tfor (var i = 0; i < sol.length; i++) {\n\t\t\tvar move = phase2Moves[sol[i][0]] + sol[i][1];\n\t\t\tsol[i] = FtoCubie.symMulM[FtoCubie.symMulI[0][solvInfo[3]]][move >> 1] * 2 + (move & 1);\n\t\t\tfc = FtoCubie.FtoMult(fc, FtoCubie.moveCube[move], null);\n\t\t}\n\t\treturn [fc, sol, solvInfo[2], solvInfo[3], src, performance.now() - tt];\n\t}\n\n\tvar phase3Moves = [8, 10, 12, 14];\n\tvar p3epMoves = null;\n\tvar p3ufMoves = null;\n\tvar p3epPrun = null;\n\tvar p3ufPrun = null;\n\tvar ckmv3 = null;\n\tvar solv3 = null;\n\n\tfunction phase3Init() {\n\t\tvar fc = new FtoCubie();\n\t\tp3epMoves = mathlib.createMoveHash(fc.ep.slice(), phase3Moves, phase3EdgeHash, ftoPermMove.bind(null, 'ep'));\n\t\tp3ufMoves = mathlib.createMoveHash(new FtoCubie(), phase3Moves, phase3CcufHash, ftoFullMove);\n\t\tp3epPrun = [];\n\t\tp3ufPrun = [];\n\t\tmathlib.createPrun(p3epPrun, 0, 81, 14, p3epMoves[0], 4, 2);\n\t\tmathlib.createPrun(p3ufPrun, 0, 11520, 14, p3ufMoves[0], 4, 2);\n\t\tckmv3 = genCkmv(phase3Moves);\n\n\t\tsolv3 = new mathlib.Searcher(null, function(idx) {\n\t\t\treturn Math.max(\n\t\t\t\tmathlib.getPruning(p3epPrun, idx[0]),\n\t\t\t\tmathlib.getPruning(p3ufPrun, idx[1])\n\t\t\t);\n\t\t}, function(idx, move) {\n\t\t\treturn [p3epMoves[0][move][idx[0]], p3ufMoves[0][move][idx[1]]];\n\t\t}, 4, 2, ckmv3);\n\t}\n\n\tfunction solvePhase3(solvInfo) {\n\t\tvar fc = solvInfo[0];\n\t\tif (!p3epPrun) {\n\t\t\tphase3Init();\n\t\t}\n\n\t\tvar tt = performance.now();\n\t\tvar p3epidx = p3epMoves[1][phase3EdgeHash(fc.ep)];\n\t\tvar p3ufidx = p3ufMoves[1][phase3CcufHash(fc)];\n\n\t\tvar sol = solv3.solve([p3epidx, p3ufidx], 0, 25);\n\n\t\tfor (var i = 0; i < sol.length; i++) {\n\t\t\tvar move = phase3Moves[sol[i][0]] + sol[i][1];\n\t\t\tsol[i] = FtoCubie.symMulM[FtoCubie.symMulI[0][solvInfo[3]]][move >> 1] * 2 + (move & 1);\n\n\t\t\tfc = FtoCubie.FtoMult(fc, FtoCubie.moveCube[move], null);\n\t\t}\n\t\treturn [fc, sol, solvInfo[2], solvInfo[3], performance.now() - tt];\n\t}\n\n\t// convert wide moves to face moves\n\tfunction move2std(moves) {\n\t\tvar sym = 0;\n\t\tvar ret = [];\n\t\t// Uw = [U] * D, Fw = [F] * B, Rw = [R] * l, Lw = [L] * r\n\t\tvar w2axis = [4, 5, 3, 2];\n\t\tvar w2rot = [1, 10, 5, 11];\n\t\tfor (var i = 0; i < moves.length; i++) {\n\t\t\tvar rot = 0;\n\t\t\tvar axis = moves[i] >> 1;\n\t\t\tvar pow = moves[i] & 1;\n\t\t\tif (axis >= 8) {\n\t\t\t\trot = w2rot[axis - 8];\n\t\t\t\taxis = w2axis[axis - 8];\n\t\t\t}\n\t\t\tif (!pow) {\n\t\t\t\trot = FtoCubie.symMult[rot][rot];\n\t\t\t}\n\t\t\tret.push(FtoCubie.symMulM[sym][axis] * 2 + pow);\n\t\t\tsym = FtoCubie.symMult[rot][sym];\n\t\t}\n\t\treturn [ret, sym];\n\t}\n\n\tfunction applyMoves(fc, moves) {\n\t\tfor (var i = 0; i < moves.length; i++) {\n\t\t\tfc = FtoCubie.FtoMult(fc, FtoCubie.moveCube[moves[i]], null);\n\t\t}\n\t\treturn fc;\n\t}\n\n\tvar move2str = [\"U\", \"U'\", \"F\", \"F'\", \"r\", \"r'\", \"l\", \"l'\", \"D\", \"D'\", \"B\", \"B'\", \"R\", \"R'\", \"L\", \"L'\"]\n\n\tfunction prettyMoves(moves) {\n\t\tvar buf = [];\n\t\tfor (var i = 0; i < moves.length; i++) {\n\t\t\tbuf[i] = move2str[moves[i]];\n\t\t}\n\t\treturn buf.join(' ').replace(/l/g, 'BL').replace(/r/g, 'BR');\n\t}\n\n\tfunction FtoSolver() {}\n\n\tFtoSolver.prototype.solveFto = function(fc, invSol) {\n\t\tif (!solv1) {\n\t\t\tvar tt = performance.now();\n\t\t\tphase1Init();\n\t\t\tphase2Init();\n\t\t\tphase3Init();\n\t\t\tDEBUG && console.log('[ftosolver] init time:', performance.now() - tt);\n\t\t}\n\t\tvar solvInfos = solvePhase1(fc);\n\n\t\tvar solvInfo2 = solvePhase2(solvInfos);\n\n\t\tvar solvInfo1 = solvInfos[solvInfo2[4]];\n\t\tthis.sol1 = solvInfo1[1].slice();\n\t\tthis.tt1 = solvInfo1[4];\n\t\tvar sym1Idx = solvInfo1[2];\n\n\t\tthis.sol2 = solvInfo2[1].slice();\n\t\tthis.tt2 = solvInfo2[5];\n\t\tsolvInfo2[0] = FtoCubie.FtoMult(pyraSymCube[FtoCubie.symMulI[0][~~(sym1Idx / 12)]], solvInfo2[0], null);\n\n\t\tvar solvInfo3 = solvePhase3(solvInfo2);\n\t\tthis.sol3 = solvInfo3[1].slice();\n\t\tthis.tt3 = solvInfo3[4];\n\n\t\tvar sol = [].concat(this.sol1, this.sol2, this.sol3);\n\t\tif (invSol) {\n\t\t\tfor (var i = 0; i < sol.length; i++) {\n\t\t\t\tsol[i] ^= 1;\n\t\t\t}\n\t\t\tsol.reverse();\n\t\t}\n\t\treturn prettyMoves(sol);\n\t}\n\n\tvar solver = new FtoSolver();\n\n\tfunction solveTest(n_moves) {\n\t\tvar solvInfo = randomMoves([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15], n_moves);\n\n\t\tvar scramble = prettyMoves(solvInfo[1].slice());\n\t\tvar solution = solver.solveFto(solvInfo[0]);\n\n\t\tvar fc = solvInfo[0];\n\t\tDEBUG && console.log('scrambled state\\n', fc.toString(1));\n\t\tfc = applyMoves(fc, solver.sol1);\n\t\tDEBUG && console.log('after phase 1 (' + prettyMoves(solver.sol1) + '):\\n', fc.toString(1));\n\t\tfc = applyMoves(fc, solver.sol2);\n\t\tDEBUG && console.log('after phase 2 (' + prettyMoves(solver.sol2) + '):\\n', fc.toString(1));\n\t\tfc = applyMoves(fc, solver.sol3);\n\t\tDEBUG && console.log('after phase 3 (' + prettyMoves(solver.sol3) + '):\\n', fc.toString(1));\n\n\t\tvar facelets = fc.toFaceCube();\n\t\tvar isSolved = true;\n\t\touter_loop: for (var i = 0; i < 8; i++) {\n\t\t\tfor (var j = 1; j < 9; j++) {\n\t\t\t\tif (facelets[i * 9 + j] != facelets[i * 9]) {\n\t\t\t\t\tisSolved = false;\n\t\t\t\t\tbreak outer_loop;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (!isSolved) {\n\t\t\tconsole.log('error, FTO not solved!!!');\n\t\t}\n\n\t\tDEBUG && console.log(scramble, solution);\n\t\treturn [\n\t\t\tsolver.sol1.length + solver.sol2.length + solver.sol3.length,\n\t\t\tsolver.sol1.length,\n\t\t\tsolver.sol2.length,\n\t\t\tsolver.sol3.length,\n\t\t\tsolver.tt1,\n\t\t\tsolver.tt2,\n\t\t\tsolver.tt3\n\t\t];\n\t}\n\n\tfunction testbench(ntest) {\n\t\tntest = ntest || 100;\n\t\tvar cumlen = [];\n\t\tfor (var nsolv = 0; nsolv < ntest; nsolv++) {\n\t\t\tvar lengths = solveTest(200);\n\t\t\tfor (var i = 0; i < lengths.length; i++) {\n\t\t\t\tcumlen[i] = (cumlen[i] || 0) + lengths[i];\n\t\t\t}\n\t\t\tconsole.log('AvgL: ', cumlen[0] / (nsolv + 1));\n\t\t}\n\t\tconsole.log('AvgL1:', cumlen[1] / ntest);\n\t\tconsole.log('AvgL2:', cumlen[2] / ntest);\n\t\tconsole.log('AvgL3:', cumlen[3] / ntest);\n\t\tconsole.log('AvgT1:', cumlen[4] / ntest);\n\t\tconsole.log('AvgT2:', cumlen[5] / ntest);\n\t\tconsole.log('AvgT3:', cumlen[6] / ntest);\n\t}\n\n\tfunction solveFacelet(facelet, invSol) {\n\t\tvar fc = new FtoCubie();\n\t\tif (fc.fromFacelet(facelet) == -1) {\n\t\t\treturn \"FTO Solver ERROR!\";\n\t\t}\n\t\treturn solver.solveFto(fc, invSol);\n\t}\n\n\treturn {\n\t\tsolveFacelet: solveFacelet,\n\t\tFtoCubie: FtoCubie,\n\t\ttestbench: testbench\n\t};\n})();\n\nvar fto_scrambler = (function() {\n\n\tfunction getRandomScramble(solvedEdge, solvedCenter, solvedCorner) {\n\t\tvar fc = new ftosolver.FtoCubie();\n\t\tif (!solvedEdge) {\n\t\t\tfc.ep = mathlib.rndPerm(12, true);\n\t\t}\n\t\tif (!solvedCenter) {\n\t\t\tfc.uf = mathlib.rndPerm(12, true);\n\t\t\tfc.rl = mathlib.rndPerm(12, true);\n\t\t}\n\t\tif (!solvedCorner) {\n\t\t\tfc.cp = mathlib.rndPerm(6, true);\n\t\t\tmathlib.setNOri(fc.co, mathlib.rn(32), 6, -2);\n\t\t}\n\t\treturn new Alg(ftosolver.solveFacelet(fc.toFaceCube(), true));\n\t}\n\n\tfunction getLNTScramble(ufs) {\n\t\tvar solved = false;\n\t\tvar nCorn = ufs.length >> 1;\n\t\tvar fc = new ftosolver.FtoCubie();\n\t\tvar cp, co, uf;\n\t\tdo {\n\t\t\tcp = mathlib.rndPerm(nCorn, true);\n\t\t\tco = mathlib.setNOri([], mathlib.rn(1 << nCorn >> 1), nCorn, -2);\n\t\t\tuf = mathlib.rndPerm(ufs.length, true);\n\t\t\tsolved = true;\n\t\t\tfor (var i = 0; i < ufs.length; i++) {\n\t\t\t\tsolved = solved && (~~(ufs[uf[i]] / 3) == ~~(ufs[i] / 3));\n\t\t\t}\n\t\t\tfor (var i = 0; i < nCorn; i++) {\n\t\t\t\tsolved = solved && cp[i] == i && co[i] == 0;\n\t\t\t}\n\t\t} while (solved);\n\t\tfor (var i = 0; i < nCorn; i++) {\n\t\t\tfc.cp[i] = cp[i];\n\t\t\tfc.co[i] = co[i];\n\t\t}\n\t\tfor (var i = 0; i < ufs.length; i++) {\n\t\t\tfc.uf[ufs[i]] = ufs[uf[i]];\n\t\t}\n\t\treturn ftosolver.solveFacelet(fc.toFaceCube(), true);\n\t}\n\n\treturn {\n\t\tgetRandomScramble: getRandomScramble.bind(null, false, false, false)\n\t};\n})();\n\n// TODO: solve an externally generated random state\nexport function getRandomFTOScramble() {\n\treturn fto_scrambler.getRandomScramble();\n};\n\n// export function setRandomGen(gen) {\n// \tmathlib.setRandomGen(gen);\n// };\n\n// export function fto_testbench() {\n// \tftosolver.testbench();\n// };\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["i", "idx"]
|
|
7
|
+
}
|
|
@@ -9,7 +9,7 @@ import "./chunk-RDSQRW3G.js";
|
|
|
9
9
|
// src/cubing/search/worker-workarounds/search-worker-entry.js
|
|
10
10
|
if (exposeAPI.expose) {
|
|
11
11
|
(async () => {
|
|
12
|
-
await import("./inside-
|
|
12
|
+
await import("./inside-6OZRJVRY.js");
|
|
13
13
|
const messagePort = globalThis.postMessage ? globalThis : await nodeEndpointPort();
|
|
14
14
|
messagePort.postMessage("comlink-exposed");
|
|
15
15
|
})();
|
|
@@ -7,31 +7,6 @@ import {
|
|
|
7
7
|
var node_fs_promises_mangled = "node:-fs/pr-omises";
|
|
8
8
|
var node_fs_promises_unmangled = () => node_fs_promises_mangled.replace(/-/g, "");
|
|
9
9
|
var wasm;
|
|
10
|
-
var heap = new Array(128).fill(void 0);
|
|
11
|
-
heap.push(void 0, null, true, false);
|
|
12
|
-
function getObject(idx) {
|
|
13
|
-
return heap[idx];
|
|
14
|
-
}
|
|
15
|
-
var heap_next = heap.length;
|
|
16
|
-
function dropObject(idx) {
|
|
17
|
-
if (idx < 132)
|
|
18
|
-
return;
|
|
19
|
-
heap[idx] = heap_next;
|
|
20
|
-
heap_next = idx;
|
|
21
|
-
}
|
|
22
|
-
function takeObject(idx) {
|
|
23
|
-
const ret = getObject(idx);
|
|
24
|
-
dropObject(idx);
|
|
25
|
-
return ret;
|
|
26
|
-
}
|
|
27
|
-
function addHeapObject(obj) {
|
|
28
|
-
if (heap_next === heap.length)
|
|
29
|
-
heap.push(heap.length + 1);
|
|
30
|
-
const idx = heap_next;
|
|
31
|
-
heap_next = heap[idx];
|
|
32
|
-
heap[idx] = obj;
|
|
33
|
-
return idx;
|
|
34
|
-
}
|
|
35
10
|
var cachedTextDecoder = typeof TextDecoder !== "undefined" ? new TextDecoder("utf-8", { ignoreBOM: true, fatal: true }) : { decode: () => {
|
|
36
11
|
throw Error("TextDecoder not available");
|
|
37
12
|
} };
|
|
@@ -49,6 +24,31 @@ function getStringFromWasm0(ptr, len) {
|
|
|
49
24
|
ptr = ptr >>> 0;
|
|
50
25
|
return cachedTextDecoder.decode(getUint8Memory0().subarray(ptr, ptr + len));
|
|
51
26
|
}
|
|
27
|
+
var heap = new Array(128).fill(void 0);
|
|
28
|
+
heap.push(void 0, null, true, false);
|
|
29
|
+
var heap_next = heap.length;
|
|
30
|
+
function addHeapObject(obj) {
|
|
31
|
+
if (heap_next === heap.length)
|
|
32
|
+
heap.push(heap.length + 1);
|
|
33
|
+
const idx = heap_next;
|
|
34
|
+
heap_next = heap[idx];
|
|
35
|
+
heap[idx] = obj;
|
|
36
|
+
return idx;
|
|
37
|
+
}
|
|
38
|
+
function getObject(idx) {
|
|
39
|
+
return heap[idx];
|
|
40
|
+
}
|
|
41
|
+
function dropObject(idx) {
|
|
42
|
+
if (idx < 132)
|
|
43
|
+
return;
|
|
44
|
+
heap[idx] = heap_next;
|
|
45
|
+
heap_next = idx;
|
|
46
|
+
}
|
|
47
|
+
function takeObject(idx) {
|
|
48
|
+
const ret = getObject(idx);
|
|
49
|
+
dropObject(idx);
|
|
50
|
+
return ret;
|
|
51
|
+
}
|
|
52
52
|
function debugString(val) {
|
|
53
53
|
const type = typeof val;
|
|
54
54
|
if (type == "number" || type == "boolean" || val == null) {
|
|
@@ -156,13 +156,6 @@ function getInt32Memory0() {
|
|
|
156
156
|
}
|
|
157
157
|
return cachedInt32Memory0;
|
|
158
158
|
}
|
|
159
|
-
function handleError(f, args) {
|
|
160
|
-
try {
|
|
161
|
-
return f.apply(this, args);
|
|
162
|
-
} catch (e) {
|
|
163
|
-
wasm.__wbindgen_export_3(addHeapObject(e));
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
159
|
function wasmTwsearch(kpuzzle_json, search_pattern_json, options_json) {
|
|
167
160
|
let deferred5_0;
|
|
168
161
|
let deferred5_1;
|
|
@@ -221,6 +214,13 @@ function wasmRandomScrambleForEvent(event_str) {
|
|
|
221
214
|
wasm.__wbindgen_export_2(deferred3_0, deferred3_1, 1);
|
|
222
215
|
}
|
|
223
216
|
}
|
|
217
|
+
function handleError(f, args) {
|
|
218
|
+
try {
|
|
219
|
+
return f.apply(this, args);
|
|
220
|
+
} catch (e) {
|
|
221
|
+
wasm.__wbindgen_export_3(addHeapObject(e));
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
224
|
async function __wbg_load(module2, imports) {
|
|
225
225
|
if (typeof Response === "function" && module2 instanceof Response) {
|
|
226
226
|
if (typeof WebAssembly.instantiateStreaming === "function") {
|
|
@@ -248,6 +248,10 @@ async function __wbg_load(module2, imports) {
|
|
|
248
248
|
function __wbg_get_imports() {
|
|
249
249
|
const imports = {};
|
|
250
250
|
imports.wbg = {};
|
|
251
|
+
imports.wbg.__wbindgen_string_new = function(arg0, arg1) {
|
|
252
|
+
const ret = getStringFromWasm0(arg0, arg1);
|
|
253
|
+
return addHeapObject(ret);
|
|
254
|
+
};
|
|
251
255
|
imports.wbg.__wbg_new_abda76e883ba8a5f = function() {
|
|
252
256
|
const ret = new Error();
|
|
253
257
|
return addHeapObject(ret);
|
|
@@ -312,10 +316,6 @@ function __wbg_get_imports() {
|
|
|
312
316
|
const ret = typeof getObject(arg0) === "function";
|
|
313
317
|
return ret;
|
|
314
318
|
};
|
|
315
|
-
imports.wbg.__wbindgen_string_new = function(arg0, arg1) {
|
|
316
|
-
const ret = getStringFromWasm0(arg0, arg1);
|
|
317
|
-
return addHeapObject(ret);
|
|
318
|
-
};
|
|
319
319
|
imports.wbg.__wbg_call_01734de55d61e11d = function() {
|
|
320
320
|
return handleError(function(arg0, arg1, arg2) {
|
|
321
321
|
const ret = getObject(arg0).call(getObject(arg1), getObject(arg2));
|
|
@@ -457,7 +457,7 @@ var twsearch_wasm_default = __wbg_init;
|
|
|
457
457
|
var cachedInitWrapper;
|
|
458
458
|
async function initWrapper() {
|
|
459
459
|
await (cachedInitWrapper ??= (async () => {
|
|
460
|
-
const wasmUint8Array = (await import("./twsearch_wasm_bg-
|
|
460
|
+
const wasmUint8Array = (await import("./twsearch_wasm_bg-V4F3SIUO-QGKWKUFY.js")).default;
|
|
461
461
|
await twsearch_wasm_default(wasmUint8Array.buffer);
|
|
462
462
|
})());
|
|
463
463
|
}
|
|
@@ -479,4 +479,4 @@ export {
|
|
|
479
479
|
wasmRandomScrambleForEvent2 as wasmRandomScrambleForEvent,
|
|
480
480
|
wasmTwsearch2 as wasmTwsearch
|
|
481
481
|
};
|
|
482
|
-
//# sourceMappingURL=twsearch-
|
|
482
|
+
//# sourceMappingURL=twsearch-MRZGOB6T.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/cubing/vendor/mpl/twsearch/index.js"],
|
|
4
|
-
"sourcesContent": ["// Generated from `twsearch` [object Promise]\nimport \"./chunk-FTOVDLBG.js\";\n\n// src/wasm-package/index.ts\nimport { Alg } from \"../../../alg\";\n\n// .temp/rust-wasm/twsearch_wasm.js\nvar node_fs_promises_mangled = \"node:-fs/pr-omises\";\nvar node_fs_promises_unmangled = () => node_fs_promises_mangled.replace(/-/g, \"\");\nvar wasm;\nvar heap = new Array(128).fill(void 0);\nheap.push(void 0, null, true, false);\nfunction getObject(idx) {\n return heap[idx];\n}\nvar heap_next = heap.length;\nfunction dropObject(idx) {\n if (idx < 132)\n return;\n heap[idx] = heap_next;\n heap_next = idx;\n}\nfunction takeObject(idx) {\n const ret = getObject(idx);\n dropObject(idx);\n return ret;\n}\nfunction addHeapObject(obj) {\n if (heap_next === heap.length)\n heap.push(heap.length + 1);\n const idx = heap_next;\n heap_next = heap[idx];\n heap[idx] = obj;\n return idx;\n}\nvar cachedTextDecoder = typeof TextDecoder !== \"undefined\" ? new TextDecoder(\"utf-8\", { ignoreBOM: true, fatal: true }) : { decode: () => {\n throw Error(\"TextDecoder not available\");\n} };\nif (typeof TextDecoder !== \"undefined\") {\n cachedTextDecoder.decode();\n}\nvar cachedUint8Memory0 = null;\nfunction getUint8Memory0() {\n if (cachedUint8Memory0 === null || cachedUint8Memory0.byteLength === 0) {\n cachedUint8Memory0 = new Uint8Array(wasm.memory.buffer);\n }\n return cachedUint8Memory0;\n}\nfunction getStringFromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return cachedTextDecoder.decode(getUint8Memory0().subarray(ptr, ptr + len));\n}\nfunction debugString(val) {\n const type = typeof val;\n if (type == \"number\" || type == \"boolean\" || val == null) {\n return `${val}`;\n }\n if (type == \"string\") {\n return `\"${val}\"`;\n }\n if (type == \"symbol\") {\n const description = val.description;\n if (description == null) {\n return \"Symbol\";\n } else {\n return `Symbol(${description})`;\n }\n }\n if (type == \"function\") {\n const name = val.name;\n if (typeof name == \"string\" && name.length > 0) {\n return `Function(${name})`;\n } else {\n return \"Function\";\n }\n }\n if (Array.isArray(val)) {\n const length = val.length;\n let debug = \"[\";\n if (length > 0) {\n debug += debugString(val[0]);\n }\n for (let i = 1; i < length; i++) {\n debug += \", \" + debugString(val[i]);\n }\n debug += \"]\";\n return debug;\n }\n const builtInMatches = /\\[object ([^\\]]+)\\]/.exec(toString.call(val));\n let className;\n if (builtInMatches.length > 1) {\n className = builtInMatches[1];\n } else {\n return toString.call(val);\n }\n if (className == \"Object\") {\n try {\n return \"Object(\" + JSON.stringify(val) + \")\";\n } catch (_) {\n return \"Object\";\n }\n }\n if (val instanceof Error) {\n return `${val.name}: ${val.message}\n${val.stack}`;\n }\n return className;\n}\nvar WASM_VECTOR_LEN = 0;\nvar cachedTextEncoder = typeof TextEncoder !== \"undefined\" ? new TextEncoder(\"utf-8\") : { encode: () => {\n throw Error(\"TextEncoder not available\");\n} };\nvar encodeString = typeof cachedTextEncoder.encodeInto === \"function\" ? function(arg, view) {\n return cachedTextEncoder.encodeInto(arg, view);\n} : function(arg, view) {\n const buf = cachedTextEncoder.encode(arg);\n view.set(buf);\n return {\n read: arg.length,\n written: buf.length\n };\n};\nfunction passStringToWasm0(arg, malloc, realloc) {\n if (realloc === void 0) {\n const buf = cachedTextEncoder.encode(arg);\n const ptr2 = malloc(buf.length, 1) >>> 0;\n getUint8Memory0().subarray(ptr2, ptr2 + buf.length).set(buf);\n WASM_VECTOR_LEN = buf.length;\n return ptr2;\n }\n let len = arg.length;\n let ptr = malloc(len, 1) >>> 0;\n const mem = getUint8Memory0();\n let offset = 0;\n for (; offset < len; offset++) {\n const code = arg.charCodeAt(offset);\n if (code > 127)\n break;\n mem[ptr + offset] = code;\n }\n if (offset !== len) {\n if (offset !== 0) {\n arg = arg.slice(offset);\n }\n ptr = realloc(ptr, len, len = offset + arg.length * 3, 1) >>> 0;\n const view = getUint8Memory0().subarray(ptr + offset, ptr + len);\n const ret = encodeString(arg, view);\n offset += ret.written;\n }\n WASM_VECTOR_LEN = offset;\n return ptr;\n}\nvar cachedInt32Memory0 = null;\nfunction getInt32Memory0() {\n if (cachedInt32Memory0 === null || cachedInt32Memory0.byteLength === 0) {\n cachedInt32Memory0 = new Int32Array(wasm.memory.buffer);\n }\n return cachedInt32Memory0;\n}\nfunction handleError(f, args) {\n try {\n return f.apply(this, args);\n } catch (e) {\n wasm.__wbindgen_export_3(addHeapObject(e));\n }\n}\nfunction wasmTwsearch(kpuzzle_json, search_pattern_json, options_json) {\n let deferred5_0;\n let deferred5_1;\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n const ptr0 = passStringToWasm0(kpuzzle_json, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passStringToWasm0(search_pattern_json, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);\n const len1 = WASM_VECTOR_LEN;\n const ptr2 = passStringToWasm0(options_json, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);\n const len2 = WASM_VECTOR_LEN;\n wasm.wasmTwsearch(retptr, ptr0, len0, ptr1, len1, ptr2, len2);\n var r0 = getInt32Memory0()[retptr / 4 + 0];\n var r1 = getInt32Memory0()[retptr / 4 + 1];\n var r2 = getInt32Memory0()[retptr / 4 + 2];\n var r3 = getInt32Memory0()[retptr / 4 + 3];\n var ptr4 = r0;\n var len4 = r1;\n if (r3) {\n ptr4 = 0;\n len4 = 0;\n throw takeObject(r2);\n }\n deferred5_0 = ptr4;\n deferred5_1 = len4;\n return getStringFromWasm0(ptr4, len4);\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n wasm.__wbindgen_export_2(deferred5_0, deferred5_1, 1);\n }\n}\nfunction wasmRandomScrambleForEvent(event_str) {\n let deferred3_0;\n let deferred3_1;\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n const ptr0 = passStringToWasm0(event_str, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);\n const len0 = WASM_VECTOR_LEN;\n wasm.wasmRandomScrambleForEvent(retptr, ptr0, len0);\n var r0 = getInt32Memory0()[retptr / 4 + 0];\n var r1 = getInt32Memory0()[retptr / 4 + 1];\n var r2 = getInt32Memory0()[retptr / 4 + 2];\n var r3 = getInt32Memory0()[retptr / 4 + 3];\n var ptr2 = r0;\n var len2 = r1;\n if (r3) {\n ptr2 = 0;\n len2 = 0;\n throw takeObject(r2);\n }\n deferred3_0 = ptr2;\n deferred3_1 = len2;\n return getStringFromWasm0(ptr2, len2);\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n wasm.__wbindgen_export_2(deferred3_0, deferred3_1, 1);\n }\n}\nasync function __wbg_load(module2, imports) {\n if (typeof Response === \"function\" && module2 instanceof Response) {\n if (typeof WebAssembly.instantiateStreaming === \"function\") {\n try {\n return await WebAssembly.instantiateStreaming(module2, imports);\n } catch (e) {\n if (module2.headers.get(\"Content-Type\") != \"application/wasm\") {\n console.warn(\"`WebAssembly.instantiateStreaming` failed because your server does not serve wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\\n\", e);\n } else {\n throw e;\n }\n }\n }\n const bytes = await module2.arrayBuffer();\n return await WebAssembly.instantiate(bytes, imports);\n } else {\n const instance = await WebAssembly.instantiate(module2, imports);\n if (instance instanceof WebAssembly.Instance) {\n return { instance, module: module2 };\n } else {\n return instance;\n }\n }\n}\nfunction __wbg_get_imports() {\n const imports = {};\n imports.wbg = {};\n imports.wbg.__wbg_new_abda76e883ba8a5f = function() {\n const ret = new Error();\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_stack_658279fe44541cf6 = function(arg0, arg1) {\n const ret = getObject(arg1).stack;\n const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);\n const len1 = WASM_VECTOR_LEN;\n getInt32Memory0()[arg0 / 4 + 1] = len1;\n getInt32Memory0()[arg0 / 4 + 0] = ptr1;\n };\n imports.wbg.__wbg_error_f851667af71bcfc6 = function(arg0, arg1) {\n let deferred0_0;\n let deferred0_1;\n try {\n deferred0_0 = arg0;\n deferred0_1 = arg1;\n console.error(getStringFromWasm0(arg0, arg1));\n } finally {\n wasm.__wbindgen_export_2(deferred0_0, deferred0_1, 1);\n }\n };\n imports.wbg.__wbindgen_object_drop_ref = function(arg0) {\n takeObject(arg0);\n };\n imports.wbg.__wbindgen_object_clone_ref = function(arg0) {\n const ret = getObject(arg0);\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_crypto_c48a774b022d20ac = function(arg0) {\n const ret = getObject(arg0).crypto;\n return addHeapObject(ret);\n };\n imports.wbg.__wbindgen_is_object = function(arg0) {\n const val = getObject(arg0);\n const ret = typeof val === \"object\" && val !== null;\n return ret;\n };\n imports.wbg.__wbg_process_298734cf255a885d = function(arg0) {\n const ret = getObject(arg0).process;\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_versions_e2e78e134e3e5d01 = function(arg0) {\n const ret = getObject(arg0).versions;\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_node_1cd7a5d853dbea79 = function(arg0) {\n const ret = getObject(arg0).node;\n return addHeapObject(ret);\n };\n imports.wbg.__wbindgen_is_string = function(arg0) {\n const ret = typeof getObject(arg0) === \"string\";\n return ret;\n };\n imports.wbg.__wbg_require_8f08ceecec0f4fee = function() {\n return handleError(function() {\n const ret = module.require;\n return addHeapObject(ret);\n }, arguments);\n };\n imports.wbg.__wbindgen_is_function = function(arg0) {\n const ret = typeof getObject(arg0) === \"function\";\n return ret;\n };\n imports.wbg.__wbindgen_string_new = function(arg0, arg1) {\n const ret = getStringFromWasm0(arg0, arg1);\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_call_01734de55d61e11d = function() {\n return handleError(function(arg0, arg1, arg2) {\n const ret = getObject(arg0).call(getObject(arg1), getObject(arg2));\n return addHeapObject(ret);\n }, arguments);\n };\n imports.wbg.__wbg_msCrypto_bcb970640f50a1e8 = function(arg0) {\n const ret = getObject(arg0).msCrypto;\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_newwithlength_e5d69174d6984cd7 = function(arg0) {\n const ret = new Uint8Array(arg0 >>> 0);\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_get_97b561fb56f034b5 = function() {\n return handleError(function(arg0, arg1) {\n const ret = Reflect.get(getObject(arg0), getObject(arg1));\n return addHeapObject(ret);\n }, arguments);\n };\n imports.wbg.__wbg_now_0cfdc90c97d0c24b = function(arg0) {\n const ret = getObject(arg0).now();\n return ret;\n };\n imports.wbg.__wbg_self_1ff1d729e9aae938 = function() {\n return handleError(function() {\n const ret = self.self;\n return addHeapObject(ret);\n }, arguments);\n };\n imports.wbg.__wbg_window_5f4faef6c12b79ec = function() {\n return handleError(function() {\n const ret = window.window;\n return addHeapObject(ret);\n }, arguments);\n };\n imports.wbg.__wbg_globalThis_1d39714405582d3c = function() {\n return handleError(function() {\n const ret = globalThis.globalThis;\n return addHeapObject(ret);\n }, arguments);\n };\n imports.wbg.__wbg_global_651f05c6a0944d1c = function() {\n return handleError(function() {\n const ret = global.global;\n return addHeapObject(ret);\n }, arguments);\n };\n imports.wbg.__wbindgen_is_undefined = function(arg0) {\n const ret = getObject(arg0) === void 0;\n return ret;\n };\n imports.wbg.__wbg_newnoargs_581967eacc0e2604 = function(arg0, arg1) {\n const ret = new Function(getStringFromWasm0(arg0, arg1));\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_call_cb65541d95d71282 = function() {\n return handleError(function(arg0, arg1) {\n const ret = getObject(arg0).call(getObject(arg1));\n return addHeapObject(ret);\n }, arguments);\n };\n imports.wbg.__wbindgen_memory = function() {\n const ret = wasm.memory;\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_buffer_085ec1f694018c4f = function(arg0) {\n const ret = getObject(arg0).buffer;\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_newwithbyteoffsetandlength_6da8e527659b86aa = function(arg0, arg1, arg2) {\n const ret = new Uint8Array(getObject(arg0), arg1 >>> 0, arg2 >>> 0);\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_randomFillSync_dc1e9a60c158336d = function() {\n return handleError(function(arg0, arg1) {\n getObject(arg0).randomFillSync(takeObject(arg1));\n }, arguments);\n };\n imports.wbg.__wbg_subarray_13db269f57aa838d = function(arg0, arg1, arg2) {\n const ret = getObject(arg0).subarray(arg1 >>> 0, arg2 >>> 0);\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_getRandomValues_37fa2ca9e4e07fab = function() {\n return handleError(function(arg0, arg1) {\n getObject(arg0).getRandomValues(getObject(arg1));\n }, arguments);\n };\n imports.wbg.__wbg_new_8125e318e6245eed = function(arg0) {\n const ret = new Uint8Array(getObject(arg0));\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_set_5cf90238115182c3 = function(arg0, arg1, arg2) {\n getObject(arg0).set(getObject(arg1), arg2 >>> 0);\n };\n imports.wbg.__wbindgen_debug_string = function(arg0, arg1) {\n const ret = debugString(getObject(arg1));\n const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);\n const len1 = WASM_VECTOR_LEN;\n getInt32Memory0()[arg0 / 4 + 1] = len1;\n getInt32Memory0()[arg0 / 4 + 0] = ptr1;\n };\n imports.wbg.__wbindgen_throw = function(arg0, arg1) {\n throw new Error(getStringFromWasm0(arg0, arg1));\n };\n return imports;\n}\nfunction __wbg_init_memory(imports, maybe_memory) {\n}\nfunction __wbg_finalize_init(instance, module2) {\n wasm = instance.exports;\n __wbg_init.__wbindgen_wasm_module = module2;\n cachedInt32Memory0 = null;\n cachedUint8Memory0 = null;\n return wasm;\n}\nasync function __wbg_init(input) {\n if (wasm !== void 0)\n return wasm;\n if (typeof input === \"undefined\") {\n throw new Error(\"Default `wasm-pack` WASM loading code path triggered! This is currently not supported for `twsearch` due to incompatibility with some bundlers.\");\n }\n const imports = __wbg_get_imports();\n if (typeof input === \"string\" || typeof Request === \"function\" && input instanceof Request || typeof URL === \"function\" && input instanceof URL) {\n try {\n input = await fetch(input);\n } catch (e) {\n if (!(e instanceof TypeError)) {\n throw e;\n }\n input = await (await import(node_fs_promises_unmangled())).readFile(input);\n }\n }\n __wbg_init_memory(imports);\n const { instance, module: module2 } = await __wbg_load(await input, imports);\n return __wbg_finalize_init(instance, module2);\n}\nvar twsearch_wasm_default = __wbg_init;\n\n// src/wasm-package/index.ts\nvar cachedInitWrapper;\nasync function initWrapper() {\n await (cachedInitWrapper ??= (async () => {\n const wasmUint8Array = (await import(\"./twsearch_wasm_bg-BXMNNHLU.js\")).default;\n await twsearch_wasm_default(wasmUint8Array.buffer);\n })());\n}\nasync function wasmRandomScrambleForEvent2(eventId) {\n await initWrapper();\n return new Alg(wasmRandomScrambleForEvent(eventId));\n}\nasync function wasmTwsearch2(kpuzzleDefinition, searchPattern, options) {\n await initWrapper();\n return new Alg(\n wasmTwsearch(\n JSON.stringify(kpuzzleDefinition),\n JSON.stringify(searchPattern.toJSON()[\"patternData\"]),\n JSON.stringify(options)\n )\n );\n}\nexport {\n wasmRandomScrambleForEvent2 as wasmRandomScrambleForEvent,\n wasmTwsearch2 as wasmTwsearch\n};\n"],
|
|
5
|
-
"mappings": "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",
|
|
4
|
+
"sourcesContent": ["// Generated from `twsearch` [object Promise]\nimport \"./chunk-FTOVDLBG.js\";\n\n// src/wasm-package/index.ts\nimport { Alg } from \"../../../alg\";\n\n// .temp/rust-wasm/twsearch_wasm.js\nvar node_fs_promises_mangled = \"node:-fs/pr-omises\";\nvar node_fs_promises_unmangled = () => node_fs_promises_mangled.replace(/-/g, \"\");\nvar wasm;\nvar cachedTextDecoder = typeof TextDecoder !== \"undefined\" ? new TextDecoder(\"utf-8\", { ignoreBOM: true, fatal: true }) : { decode: () => {\n throw Error(\"TextDecoder not available\");\n} };\nif (typeof TextDecoder !== \"undefined\") {\n cachedTextDecoder.decode();\n}\nvar cachedUint8Memory0 = null;\nfunction getUint8Memory0() {\n if (cachedUint8Memory0 === null || cachedUint8Memory0.byteLength === 0) {\n cachedUint8Memory0 = new Uint8Array(wasm.memory.buffer);\n }\n return cachedUint8Memory0;\n}\nfunction getStringFromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return cachedTextDecoder.decode(getUint8Memory0().subarray(ptr, ptr + len));\n}\nvar heap = new Array(128).fill(void 0);\nheap.push(void 0, null, true, false);\nvar heap_next = heap.length;\nfunction addHeapObject(obj) {\n if (heap_next === heap.length)\n heap.push(heap.length + 1);\n const idx = heap_next;\n heap_next = heap[idx];\n heap[idx] = obj;\n return idx;\n}\nfunction getObject(idx) {\n return heap[idx];\n}\nfunction dropObject(idx) {\n if (idx < 132)\n return;\n heap[idx] = heap_next;\n heap_next = idx;\n}\nfunction takeObject(idx) {\n const ret = getObject(idx);\n dropObject(idx);\n return ret;\n}\nfunction debugString(val) {\n const type = typeof val;\n if (type == \"number\" || type == \"boolean\" || val == null) {\n return `${val}`;\n }\n if (type == \"string\") {\n return `\"${val}\"`;\n }\n if (type == \"symbol\") {\n const description = val.description;\n if (description == null) {\n return \"Symbol\";\n } else {\n return `Symbol(${description})`;\n }\n }\n if (type == \"function\") {\n const name = val.name;\n if (typeof name == \"string\" && name.length > 0) {\n return `Function(${name})`;\n } else {\n return \"Function\";\n }\n }\n if (Array.isArray(val)) {\n const length = val.length;\n let debug = \"[\";\n if (length > 0) {\n debug += debugString(val[0]);\n }\n for (let i = 1; i < length; i++) {\n debug += \", \" + debugString(val[i]);\n }\n debug += \"]\";\n return debug;\n }\n const builtInMatches = /\\[object ([^\\]]+)\\]/.exec(toString.call(val));\n let className;\n if (builtInMatches.length > 1) {\n className = builtInMatches[1];\n } else {\n return toString.call(val);\n }\n if (className == \"Object\") {\n try {\n return \"Object(\" + JSON.stringify(val) + \")\";\n } catch (_) {\n return \"Object\";\n }\n }\n if (val instanceof Error) {\n return `${val.name}: ${val.message}\n${val.stack}`;\n }\n return className;\n}\nvar WASM_VECTOR_LEN = 0;\nvar cachedTextEncoder = typeof TextEncoder !== \"undefined\" ? new TextEncoder(\"utf-8\") : { encode: () => {\n throw Error(\"TextEncoder not available\");\n} };\nvar encodeString = typeof cachedTextEncoder.encodeInto === \"function\" ? function(arg, view) {\n return cachedTextEncoder.encodeInto(arg, view);\n} : function(arg, view) {\n const buf = cachedTextEncoder.encode(arg);\n view.set(buf);\n return {\n read: arg.length,\n written: buf.length\n };\n};\nfunction passStringToWasm0(arg, malloc, realloc) {\n if (realloc === void 0) {\n const buf = cachedTextEncoder.encode(arg);\n const ptr2 = malloc(buf.length, 1) >>> 0;\n getUint8Memory0().subarray(ptr2, ptr2 + buf.length).set(buf);\n WASM_VECTOR_LEN = buf.length;\n return ptr2;\n }\n let len = arg.length;\n let ptr = malloc(len, 1) >>> 0;\n const mem = getUint8Memory0();\n let offset = 0;\n for (; offset < len; offset++) {\n const code = arg.charCodeAt(offset);\n if (code > 127)\n break;\n mem[ptr + offset] = code;\n }\n if (offset !== len) {\n if (offset !== 0) {\n arg = arg.slice(offset);\n }\n ptr = realloc(ptr, len, len = offset + arg.length * 3, 1) >>> 0;\n const view = getUint8Memory0().subarray(ptr + offset, ptr + len);\n const ret = encodeString(arg, view);\n offset += ret.written;\n }\n WASM_VECTOR_LEN = offset;\n return ptr;\n}\nvar cachedInt32Memory0 = null;\nfunction getInt32Memory0() {\n if (cachedInt32Memory0 === null || cachedInt32Memory0.byteLength === 0) {\n cachedInt32Memory0 = new Int32Array(wasm.memory.buffer);\n }\n return cachedInt32Memory0;\n}\nfunction wasmTwsearch(kpuzzle_json, search_pattern_json, options_json) {\n let deferred5_0;\n let deferred5_1;\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n const ptr0 = passStringToWasm0(kpuzzle_json, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passStringToWasm0(search_pattern_json, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);\n const len1 = WASM_VECTOR_LEN;\n const ptr2 = passStringToWasm0(options_json, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);\n const len2 = WASM_VECTOR_LEN;\n wasm.wasmTwsearch(retptr, ptr0, len0, ptr1, len1, ptr2, len2);\n var r0 = getInt32Memory0()[retptr / 4 + 0];\n var r1 = getInt32Memory0()[retptr / 4 + 1];\n var r2 = getInt32Memory0()[retptr / 4 + 2];\n var r3 = getInt32Memory0()[retptr / 4 + 3];\n var ptr4 = r0;\n var len4 = r1;\n if (r3) {\n ptr4 = 0;\n len4 = 0;\n throw takeObject(r2);\n }\n deferred5_0 = ptr4;\n deferred5_1 = len4;\n return getStringFromWasm0(ptr4, len4);\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n wasm.__wbindgen_export_2(deferred5_0, deferred5_1, 1);\n }\n}\nfunction wasmRandomScrambleForEvent(event_str) {\n let deferred3_0;\n let deferred3_1;\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n const ptr0 = passStringToWasm0(event_str, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);\n const len0 = WASM_VECTOR_LEN;\n wasm.wasmRandomScrambleForEvent(retptr, ptr0, len0);\n var r0 = getInt32Memory0()[retptr / 4 + 0];\n var r1 = getInt32Memory0()[retptr / 4 + 1];\n var r2 = getInt32Memory0()[retptr / 4 + 2];\n var r3 = getInt32Memory0()[retptr / 4 + 3];\n var ptr2 = r0;\n var len2 = r1;\n if (r3) {\n ptr2 = 0;\n len2 = 0;\n throw takeObject(r2);\n }\n deferred3_0 = ptr2;\n deferred3_1 = len2;\n return getStringFromWasm0(ptr2, len2);\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n wasm.__wbindgen_export_2(deferred3_0, deferred3_1, 1);\n }\n}\nfunction handleError(f, args) {\n try {\n return f.apply(this, args);\n } catch (e) {\n wasm.__wbindgen_export_3(addHeapObject(e));\n }\n}\nasync function __wbg_load(module2, imports) {\n if (typeof Response === \"function\" && module2 instanceof Response) {\n if (typeof WebAssembly.instantiateStreaming === \"function\") {\n try {\n return await WebAssembly.instantiateStreaming(module2, imports);\n } catch (e) {\n if (module2.headers.get(\"Content-Type\") != \"application/wasm\") {\n console.warn(\"`WebAssembly.instantiateStreaming` failed because your server does not serve wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\\n\", e);\n } else {\n throw e;\n }\n }\n }\n const bytes = await module2.arrayBuffer();\n return await WebAssembly.instantiate(bytes, imports);\n } else {\n const instance = await WebAssembly.instantiate(module2, imports);\n if (instance instanceof WebAssembly.Instance) {\n return { instance, module: module2 };\n } else {\n return instance;\n }\n }\n}\nfunction __wbg_get_imports() {\n const imports = {};\n imports.wbg = {};\n imports.wbg.__wbindgen_string_new = function(arg0, arg1) {\n const ret = getStringFromWasm0(arg0, arg1);\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_new_abda76e883ba8a5f = function() {\n const ret = new Error();\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_stack_658279fe44541cf6 = function(arg0, arg1) {\n const ret = getObject(arg1).stack;\n const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);\n const len1 = WASM_VECTOR_LEN;\n getInt32Memory0()[arg0 / 4 + 1] = len1;\n getInt32Memory0()[arg0 / 4 + 0] = ptr1;\n };\n imports.wbg.__wbg_error_f851667af71bcfc6 = function(arg0, arg1) {\n let deferred0_0;\n let deferred0_1;\n try {\n deferred0_0 = arg0;\n deferred0_1 = arg1;\n console.error(getStringFromWasm0(arg0, arg1));\n } finally {\n wasm.__wbindgen_export_2(deferred0_0, deferred0_1, 1);\n }\n };\n imports.wbg.__wbindgen_object_drop_ref = function(arg0) {\n takeObject(arg0);\n };\n imports.wbg.__wbindgen_object_clone_ref = function(arg0) {\n const ret = getObject(arg0);\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_crypto_c48a774b022d20ac = function(arg0) {\n const ret = getObject(arg0).crypto;\n return addHeapObject(ret);\n };\n imports.wbg.__wbindgen_is_object = function(arg0) {\n const val = getObject(arg0);\n const ret = typeof val === \"object\" && val !== null;\n return ret;\n };\n imports.wbg.__wbg_process_298734cf255a885d = function(arg0) {\n const ret = getObject(arg0).process;\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_versions_e2e78e134e3e5d01 = function(arg0) {\n const ret = getObject(arg0).versions;\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_node_1cd7a5d853dbea79 = function(arg0) {\n const ret = getObject(arg0).node;\n return addHeapObject(ret);\n };\n imports.wbg.__wbindgen_is_string = function(arg0) {\n const ret = typeof getObject(arg0) === \"string\";\n return ret;\n };\n imports.wbg.__wbg_require_8f08ceecec0f4fee = function() {\n return handleError(function() {\n const ret = module.require;\n return addHeapObject(ret);\n }, arguments);\n };\n imports.wbg.__wbindgen_is_function = function(arg0) {\n const ret = typeof getObject(arg0) === \"function\";\n return ret;\n };\n imports.wbg.__wbg_call_01734de55d61e11d = function() {\n return handleError(function(arg0, arg1, arg2) {\n const ret = getObject(arg0).call(getObject(arg1), getObject(arg2));\n return addHeapObject(ret);\n }, arguments);\n };\n imports.wbg.__wbg_msCrypto_bcb970640f50a1e8 = function(arg0) {\n const ret = getObject(arg0).msCrypto;\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_newwithlength_e5d69174d6984cd7 = function(arg0) {\n const ret = new Uint8Array(arg0 >>> 0);\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_get_97b561fb56f034b5 = function() {\n return handleError(function(arg0, arg1) {\n const ret = Reflect.get(getObject(arg0), getObject(arg1));\n return addHeapObject(ret);\n }, arguments);\n };\n imports.wbg.__wbg_now_0cfdc90c97d0c24b = function(arg0) {\n const ret = getObject(arg0).now();\n return ret;\n };\n imports.wbg.__wbg_self_1ff1d729e9aae938 = function() {\n return handleError(function() {\n const ret = self.self;\n return addHeapObject(ret);\n }, arguments);\n };\n imports.wbg.__wbg_window_5f4faef6c12b79ec = function() {\n return handleError(function() {\n const ret = window.window;\n return addHeapObject(ret);\n }, arguments);\n };\n imports.wbg.__wbg_globalThis_1d39714405582d3c = function() {\n return handleError(function() {\n const ret = globalThis.globalThis;\n return addHeapObject(ret);\n }, arguments);\n };\n imports.wbg.__wbg_global_651f05c6a0944d1c = function() {\n return handleError(function() {\n const ret = global.global;\n return addHeapObject(ret);\n }, arguments);\n };\n imports.wbg.__wbindgen_is_undefined = function(arg0) {\n const ret = getObject(arg0) === void 0;\n return ret;\n };\n imports.wbg.__wbg_newnoargs_581967eacc0e2604 = function(arg0, arg1) {\n const ret = new Function(getStringFromWasm0(arg0, arg1));\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_call_cb65541d95d71282 = function() {\n return handleError(function(arg0, arg1) {\n const ret = getObject(arg0).call(getObject(arg1));\n return addHeapObject(ret);\n }, arguments);\n };\n imports.wbg.__wbindgen_memory = function() {\n const ret = wasm.memory;\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_buffer_085ec1f694018c4f = function(arg0) {\n const ret = getObject(arg0).buffer;\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_newwithbyteoffsetandlength_6da8e527659b86aa = function(arg0, arg1, arg2) {\n const ret = new Uint8Array(getObject(arg0), arg1 >>> 0, arg2 >>> 0);\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_randomFillSync_dc1e9a60c158336d = function() {\n return handleError(function(arg0, arg1) {\n getObject(arg0).randomFillSync(takeObject(arg1));\n }, arguments);\n };\n imports.wbg.__wbg_subarray_13db269f57aa838d = function(arg0, arg1, arg2) {\n const ret = getObject(arg0).subarray(arg1 >>> 0, arg2 >>> 0);\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_getRandomValues_37fa2ca9e4e07fab = function() {\n return handleError(function(arg0, arg1) {\n getObject(arg0).getRandomValues(getObject(arg1));\n }, arguments);\n };\n imports.wbg.__wbg_new_8125e318e6245eed = function(arg0) {\n const ret = new Uint8Array(getObject(arg0));\n return addHeapObject(ret);\n };\n imports.wbg.__wbg_set_5cf90238115182c3 = function(arg0, arg1, arg2) {\n getObject(arg0).set(getObject(arg1), arg2 >>> 0);\n };\n imports.wbg.__wbindgen_debug_string = function(arg0, arg1) {\n const ret = debugString(getObject(arg1));\n const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);\n const len1 = WASM_VECTOR_LEN;\n getInt32Memory0()[arg0 / 4 + 1] = len1;\n getInt32Memory0()[arg0 / 4 + 0] = ptr1;\n };\n imports.wbg.__wbindgen_throw = function(arg0, arg1) {\n throw new Error(getStringFromWasm0(arg0, arg1));\n };\n return imports;\n}\nfunction __wbg_init_memory(imports, maybe_memory) {\n}\nfunction __wbg_finalize_init(instance, module2) {\n wasm = instance.exports;\n __wbg_init.__wbindgen_wasm_module = module2;\n cachedInt32Memory0 = null;\n cachedUint8Memory0 = null;\n return wasm;\n}\nasync function __wbg_init(input) {\n if (wasm !== void 0)\n return wasm;\n if (typeof input === \"undefined\") {\n throw new Error(\"Default `wasm-pack` WASM loading code path triggered! This is currently not supported for `twsearch` due to incompatibility with some bundlers.\");\n }\n const imports = __wbg_get_imports();\n if (typeof input === \"string\" || typeof Request === \"function\" && input instanceof Request || typeof URL === \"function\" && input instanceof URL) {\n try {\n input = await fetch(input);\n } catch (e) {\n if (!(e instanceof TypeError)) {\n throw e;\n }\n input = await (await import(node_fs_promises_unmangled())).readFile(input);\n }\n }\n __wbg_init_memory(imports);\n const { instance, module: module2 } = await __wbg_load(await input, imports);\n return __wbg_finalize_init(instance, module2);\n}\nvar twsearch_wasm_default = __wbg_init;\n\n// src/wasm-package/index.ts\nvar cachedInitWrapper;\nasync function initWrapper() {\n await (cachedInitWrapper ??= (async () => {\n const wasmUint8Array = (await import(\"./twsearch_wasm_bg-V4F3SIUO.js\")).default;\n await twsearch_wasm_default(wasmUint8Array.buffer);\n })());\n}\nasync function wasmRandomScrambleForEvent2(eventId) {\n await initWrapper();\n return new Alg(wasmRandomScrambleForEvent(eventId));\n}\nasync function wasmTwsearch2(kpuzzleDefinition, searchPattern, options) {\n await initWrapper();\n return new Alg(\n wasmTwsearch(\n JSON.stringify(kpuzzleDefinition),\n JSON.stringify(searchPattern.toJSON()[\"patternData\"]),\n JSON.stringify(options)\n )\n );\n}\nexport {\n wasmRandomScrambleForEvent2 as wasmRandomScrambleForEvent,\n wasmTwsearch2 as wasmTwsearch\n};\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|