UNPKG

deltascrambler

Version:

Scramble and scramble image generator for all WCA and lots of non-WCA puzzles

7 lines 525 kB
var scrambler=function(){function e(y){return y}function t(y,I,A,W,T){var P={"222":[e,o],"333":[e,o],"444":[e,u],"555":[e,u],"666":[e,u],"777":[e,u],megam:[e,a,r,l],clock:[e],sq1:[e,s]};return P[W]&&P[W][T.notationStyle]?P[W][T.notationStyle](y):y}function r(y){y=y.join(" ").split(` `).join(" ").split(" ");for(var I=[],A=0;A<y.length;++A)y[A][0]=="R"?(I.push(y[A][1]+y[A+1][1]),++A):y[A][0]=="U"&&I.push(y[A]+` `);return I}function a(y){return y.join(" ").split(` `).join(" ").split(" ")}function l(y){var I=[],A=["U","F","R","D","B","L","DR","DL","DBR","DBL","BR","BL"];function W(ne){return[ne[7],ne[9],ne[3],ne[10],ne[0],ne[5],ne[8],ne[4],ne[11],ne[2],ne[6],ne[1]]}function T(ne){return W(W(W(W(ne))))}function P(ne){return[ne[0],ne[11],ne[5],ne[3],ne[6],ne[10],ne[9],ne[8],ne[7],ne[4],ne[1],ne[2]]}function w(ne){return P(P(P(P(ne))))}for(var K=0;K<y.length;++K)switch(y[K]){case"R++":A=W(A),I.push(A[5]+"2-");break;case"R--":A=T(A),I.push(A[5]+"2+");break;case"D++":A=P(A),I.push(A[0]+"2-");break;case"D--":A=w(A),I.push(A[0]+"2+");break;case"U":I.push(A[0]);break;case"U'":I.push(A[0]+"-");break}return I}function o(y){for(var I=[],A=0;A<y.length;++A)I.push({U:"A","U'":"B",U2:"C",D:"D","D'":"E",D2:"F",L:"G","L'":"H",L2:"I",R:"J","R'":"K",R2:"L",M:"M","M'":"N",M2:"O",E:"P","E'":"Q",E2:"R",S:"S","S'":"T",S2:"U",F:"V","F'":"W",F2:"X",B:"Y","B'":"Z",B2:"YY"}[y[A]]||y[A]);return I}function u(y){return y.join(" ").split("Fw").join("f").split("Bw").join("b").split("Rw").join("r").split("Lw").join("l").split("Uw").join("u").split("Dw").join("d").split(" ")}function s(y){return y.join(" ").split("3,0").join("U").split("-3,0").join("U'").split("0,3").join("D").split("0,-3").join("D'").split("2,1").join("u").split("-2,1").join("u'").split("-1,2").join("d").split("1,-2").join("d'").split("(").join("").split(")").join("").split(" ")}function m(y){var I=[];y%2==1&&--y,y/=2;for(var A=0;A<y;++A)I.push(A==0?"R":A+1+"R"),I.push(A==0?"D":A+1+"D");return I}function c(y,I,A,W){var T,P,w=[],K=0;for(T=0;T<W;++T){for(P=0;P<A;++P)w.push(y[K++]+$(["++","--"])),K>y.length-1&&(K=0);w.push($(I)+"<br/>"),K=v(y.length)}return w}function f(y,I,A){var W=[],T;if(A==2)return[y];for(T=0;T<(A%2==0?A/2:(A-1)/2);++T)W.push(T==0?y:T+1+y),A%2!=0&&W.push(T==0?I:T+1+I);return W}function $(y){return y[~~(Math.random()*y.length)]}function v(y){return~~(Math.random()*y)}function z(y){return M(y.l,y.n,y.m,y.lgth)}function M(y,I,A,W){for(var T,P,w,K=[],ne="",O=[],ge="_";K.length<W;)T=$(["U","D","R","L","F","B"]),P=v(Math.ceil({U:y,D:y,R:I,L:I,F:A,B:A}[T]/2-.5))+1,w=(T=="U"||T=="D")&&A==I?$(["","2","'"]):$(["2"]),ne!=T?ne=={R:"L",L:"R",U:"D",D:"U",F:"B",B:"F"}[T]&&ge==T||(ge=ne,ne=T,O=[P],K.push((P==1?"":P)+T+w)):O.indexOf(P)==-1&&(O.push(P),K.push((P==1?"":P)+T+w));return K}function E(y,I,A,W){var T,P,w=[],K=[];if(W||(W={}),!(y.length<2&&A>1||I.length<1)){for(T=0;T<y.length;++T)for(P=0;P<I.length;++P)w.push(""+y[T]+I[P]);for(;K.length<A;)K.push($(w)),K.length>1&&K[K.length-1][0]==K[K.length-2][0]&&K.pop(),K.length>1&&W[K[K.length-1][0]]==K[K.length-2][0]&&K.pop();return K}}function H(y,I){for(var A=[],W=0;W<I;++W)A.push($(y));return A}function re(){for(var y="",I=20,A=0;A<I;A++)y+=String.fromCharCode(32+v(224));return y}function J(y){for(var I=0,A=[];I<y;){var W=v(12)-5,T=v(12)-5;(W!=0||T!=0)&&(I++,A.push("("+W+","+T+") / "))}return A}function se(){return $(["R2","R2 U2","R2 U2 R2","U2 R2","U2"]).split(" ")}function oe(){return $(["R2","R2 U2","R2 U2 R2","U2 R2","U2","U2 R2 U2 R2 U2","U2 R2 U2 R2","U2 R2 U2","R2 U2 R2 U2","R2 U2 R2 U2 R2","R2 U2 R2 U2 R2"]).split(" ")}function te(){return $(["y","y2","y'","x","x2","x'","z","z'","z y","z y2","z y''","z' y","z' y2","z' y'","z2 y","z2 y2","z2 y'","x y","x y2","x y'","x' y","x' y2","x' y'"]).split(" ")}function Ce(){for(var y=[],I=Math.random()<.5?0:1,A=0;A<9+Math.random()*2;++A)A%2==I?y.push("R2"):Math.random()<.5?(y.push("U2"),Math.random()<.5&&y.push("D2")):y.push("D2");return y}function j(){for(var y="",I=0;I<12;++I)y+=" "+$(["R U R'","R U' R'","R U2 R'","R U2' R'","F' U' F","F' U F","F' U2 F","F' U2' F","R U2' R'","R' F R F'"]),y+=" "+$(["U","U2","U2'","U'"]);return y.split(" ")}function de(y){switch(y.type){case"1x1x1":return E(["x","y","z"],["","2","'"],20,{});case"1x1x1optrs":return te();case"cs-1x-1x-1":return[re(),$(["Error: subscript out of range","Error: superscript out of range"])];case"1x1x2R":return H(["R","R2","R'"],10);case"1x1x2U":return H(["U","U2","U'"],10);case"1x2x2rs":return se();case"1x2x3rsru":return oe();case"1x2x3":case"1x2x3rs":return Ce();case"megaLSLL":return j();case"csLOL":return[$(["LOLOLOLOLOLOLOLOLOLOLOLOL","OLOLOLOLOLOLOLOLOLOLOLOLO"])];case"2RU":return E(["R","U"],["","2","'"],15,{});case"3RU":return E(["R","U"],["","2","'"],25,{});case"3RUF":return E(["R","U","F"],["","2","'"],25,{});case"3RUL":return E(["R","U","L"],["","2","'"],25,{R:"L",L:"R"});case"3UL":return E(["U","L"],["","2","'"],25,{});case"3MU":return E(["M","U"],["","2","'"],25,{});case"3RUFL":return E(["R","U","F","L"],["","2","'"],25,{R:"L",L:"R"});case"3URr":return E(["R","U","r"],["","2","'"],30,{R:"r",r:"R"});case"4URr":return E(["R","U","r"],["","2","'"],40,{R:"r",r:"R"});case"2half":return E(ce(2),[""],12,{});case"3half":return E(ce(3),[""],22,{});case"4half":return E(ce(4),[""],38,{});case"5half":return E(ce(5),[""],50,{});case"pyr4tips":return[...puzzles.pyram.generateScramble().split(" ").filter(function(I){return I.toUpperCase()==I}),$(["r","r'"]),$(["l","l'"]),$(["u","u'"]),$(["b","b'"])];case"pyr0tips":return puzzles.pyram.generateScramble().split(" ").filter(function(I){return I.toUpperCase()==I});case"MegaRU":return E(["R","U"],["","2","2'","'"],35,{});case"Heli":return E(["UL","UR","UF","UB","DL","DR","DF","DB","FR","FL","BR","BL"],[""],30,{});case"sq2":return J(30);case"rainbow":return E(["R","U","F","D","B","L","P","Q"],["","'"],30,{});default:return["unknown code"]}}function ce(y){if(y==2)return["R2","F2","U2"];for(var I=["R2","F2","U2","D2","L2","B2"],A=2;A<Math.ceil(y/2);++A)I.push(A+"R2"),I.push(A+"U2"),I.push(A+"F2"),I.push(A+"D2"),I.push(A+"B2"),I.push(A+"L2");return y%2==0&&(A=y/2,I.push(A+"R2"),I.push(A+"U2"),I.push(A+"F2")),I}function pe(y,I,A){var W=3;switch(A.type){case"2RU":case"2half":W=2;break;case"3RU":case"3RUF":case"3RUL":case"3MU":case"3RUFL":case"3URr":case"3half":W=3;break;case"4URr":case"4half":W=4;break;case"5half":W=5;break;case"pyr0tips":case"pyr4tips":return Ln("test","pyram",y,A);case"1x1x2R":case"1x1x2U":case"1x2x2rs":case"1x2x3rs":case"1x1x1":case"-cs-1x-1x-1":case"1x1x1optrs":case"sq2":case"rainbow":case"Heli":case"MegaRU":case"megaLSLL":return}return Le.draw("test",Le.moves(Le.init_cube(W),Le.apply_alg(y),W),W,A)}function Me(y,I){var A=["#ff0000","#ffffff","#00ff00","#ffff00","#ff8000","#0000ff"],W=["#R","#U","#F","#D","#B","#L"],T=I.colorScheme,P;for(P=0;P<A.length;++P)y=y.replace(new RegExp(A[P],"g"),W[P]);for(P=0;P<A.length;++P)y=y.replace(new RegExp(W[P],"g"),T[P]);return y}function Qe(y,I){var A=["#000000","#55ccff","#3375b2","#ffff00","#ff0000"],W=["#Border","#Background","#Foreground","#Pins","#Arrows"],T=I.clockColorScheme,P;for(P=0;P<A.length;++P)y=y.replace(new RegExp(A[P],"g"),W[P]);for(P=0;P<A.length;++P)y=y.replace(new RegExp(W[P],"g"),T[P]);return y}function $e(y,I){return"<span style='color:"+y+"'>"+I+"</span>"}function xe(y,I,A){for(var W=[],T=A.colorScheme,P=0;P<y.length;++P){var w=0;switch((y[P][0]=="2"||y[P][0]=="3")&&(w=1),y[P][w]){case"R":W[P]=$e(T[0],I[P]);break;case"U":W[P]=$e(T[1]=="#ffffff"?"#dddddd":T[1],I[P]);break;case"F":W[P]=$e(T[2],I[P]);break;case"D":W[P]=$e(T[3],I[P]);break;case"B":W[P]=$e(T[4],I[P]);break;case"L":W[P]=$e(T[5],I[P]);break;default:W[P]=I[P]}}return W}function Ne(y,I,A){for(var W=[],T=A.colorScheme,P=0;P<y.length;++P){var w=0;switch(y[P][w]){case"R":W[P]=$e(T[0],I[P]);break;case"D":W[P]=$e(T[3],I[P]);break;case"U":W[P]=$e(T[1]=="#ffffff"?"#dddddd":T[1],I[P]);break;default:W[P]=I[P]}}return W}function cn(y,I,A,W){for(var T=[],P=W.colorScheme,w=0;w<y.length;++w)if(A==0)switch(y[w][y[w].length-2]){case"1":T[w]=$e(P[0],I[w]);break;case"2":T[w]=$e(P[1]=="#ffffff"?"#dddddd":P[1],I[w]);break;case"3":T[w]=$e(P[2],I[w]);break;case"4":T[w]=$e(P[3],I[w]);break;case"5":T[w]=$e(P[4],I[w]);break;case"6":T[w]=$e(P[5],I[w]);break;default:T[w]=I[w]}else if(A==1)switch(y[w][y[w].length-2]){case"1":T[w]=$e("#222222",I[w]);break;case"2":T[w]=$e("#444444",I[w]);break;case"3":T[w]=$e("#666666",I[w]);break;case"4":T[w]=$e("#888888",I[w]);break;case"5":T[w]=$e("#aaaaaa",I[w]);break;case"6":T[w]=$e("#cccccc",I[w]);break;default:T[w]=I[w]}else switch(y[w][y[w].length-2]){case"y":T[w]=$e("#777777",I[w]);break;default:T[w]=I[w]}return T}var Xe=function(){var y=[[0,0,0,0],[0,0,0,0],[1,1,1],[2,2,2],[3,3,3],[4,4,4]];function I(w){return[[(w[0][0]+1)%3,w[0][1],w[0][2],w[0][3]],[(w[1][0]+1)%3,w[1][1],w[1][2],w[1][3]],[w[4][0],w[2][1],w[2][2]],[w[2][0],w[3][1],w[3][2]],[w[3][0],w[4][1],w[4][2]],w[5]]}function A(w,K,ne){return w[0][K]=(w[0][K]+ne)%3,w}function W(w,K,ne){return w[1][K]=(w[0][K]+ne)%3,w}function T(w){return[[(w[0][0]+1)%3,w[0][3],w[0][1],w[0][2]],[(w[1][0]+1)%3,w[1][3],w[1][1],w[1][2]],w[4],w[2],w[3],[w[5][2],w[5][0],w[5][1]]]}function P(w){return[[w[0][0],(w[0][1]+1)%3,w[0][2],w[0][3]],[w[1][0],(w[1][1]+1)%3,w[1][2],w[1][3]],[w[5][0],w[5][1],w[2][2]],w[3],[w[4][0],w[0][0],w[0][1]],[w[3][1],w[3][0],w[5][2]]]}}(),Le=function(){function y(O){for(var ge,V=O.length,Z=0;Z<V/2;Z++)for(var N=Z;N<V-Z-1;N++)ge=O[Z][N],O[Z][N]=O[N][V-Z-1],O[N][V-Z-1]=O[V-Z-1][V-N-1],O[V-Z-1][V-N-1]=O[V-N-1][Z],O[V-N-1][Z]=ge;return O}function I(O,ge,V,Z,N=0){var le=Math.floor(V/2)-N,ae=le+N+N,ke=V-1-Z,Se=Z;V%2==0&&--ae;var Fe=[[1,2,3,4],[0,4,5,2],[1,5,3,0],[0,2,5,4],[1,0,3,5],[1,4,3,2]][ge],ye=[[le,le,le,ae],[Se,Se,Se,Se],[ke,le,Se,ae],[ke,ke,ke,ke],[Se,le,ke,ae],[ae,le,ae,ae]][ge],ze=[[ke,ke,ke,Se],[le,le,le,le],[ae,ke,le,Se],[ae,ae,ae,ae],[le,ke,ae,Se],[Se,ke,Se,Se]][ge],fe=O[Fe[0]][ye[0]][ze[0]];return O[Fe[0]][ye[0]][ze[0]]=O[Fe[1]][ye[1]][ze[1]],O[Fe[1]][ye[1]][ze[1]]=O[Fe[2]][ye[2]][ze[2]],O[Fe[2]][ye[2]][ze[2]]=O[Fe[3]][ye[3]][ze[3]],O[Fe[3]][ye[3]][ze[3]]=fe,O}function A(O){for(var ge=[[],[],[],[],[],[]],V=0;V<6;++V)for(var Z=0;Z<O;++Z){ge[V][Z]=[];for(var N=0;N<O;++N)ge[V][Z][N]=V*O*O+Z*O+N}return ge}function W(O,ge,V,Z){var N=document.getElementById(O),le=N.getContext("2d"),ae=N.width,ke=N.height;le.clearRect(0,0,ae,ke),le.font="12px Arial",le.strokeStyle=Z.baseColor,le.lineWidth=2;for(var Se=0;Se<6;++Se)for(var Fe=0;Fe<V;++Fe)for(var ye=0;ye<V;++ye)T(ge,V,le,Se,Fe,ye,ae,ke,Z)}function T(O,ge,V,Z,N,le,ae,ke,Se){var Fe=Math.min(ae/4,ke/3)-5,ye=Math.round(Fe/ge);Fe+=5;var ze=[1,0,1,2,1,1][Z]*Fe+1,fe=[2,1,1,1,3,0][Z]*Fe+1,rn=Se.colorScheme;V.fillStyle=rn[Math.floor(O[Z][N][le]/ge/ge)],V.fillRect(fe+le*ye,ze+N*ye,ye,ye),Se.baseColor!="stickerless"&&V.strokeRect(fe+le*ye,ze+N*ye,ye,ye)}function P(O,ge,V,Z){var N=V-1;function le(he,be,we,ve){return be==0&&we==0?he[1][N-ve][N]:be==0&&we==N?he[3][ve][N]:be==1&&we==0?he[4][0][N-ve]:be==1&&we==N?he[2][0][ve]:be==2&&we==0?he[1][N][ve]:be==2&&we==N?he[3][0][ve]:be==3&&we==0?he[2][N][ve]:be==3&&we==N?he[4][N][N-ve]:be==4&&we==0?he[1][0][N-ve]:be==4&&we==N?he[3][0][N-ve]:be==5&&we==0?he[1][ve][0]:be==5&&we==N?he[3][N-ve][0]:he[be][we][ve]}function ae(he,be,we,ve){return be==0&&ve==0?he[2][we][N]:be==0&&ve==N?he[4][we][0]:be==1&&ve==0?he[5][0][we]:be==1&&ve==N?he[0][0][N-we]:be==2&&ve==0?he[5][we][N]:be==2&&ve==N?he[0][we][0]:be==3&&ve==0?he[5][N][N-we]:be==3&&ve==N?he[0][N][we]:be==4&&ve==0?he[0][we][N]:be==4&&ve==N?he[5][we][0]:be==5&&ve==0?he[4][we][N]:be==5&&ve==N?he[2][we][0]:he[be][we][ve]}var ke=document.getElementById(O),Se=ke.getContext("2d"),Fe=ke.width,ye=ke.height;Se.clearRect(0,0,Fe,ye),Se.font="12px Arial",Se.strokeStyle=Z.baseColor,Se.lineWidth=1;var ze=Math.min(Fe/4,ye/3)-5,fe=Math.floor(ze/V),rn,dn,$n=JSON.parse(JSON.stringify(ge));ge=K(ge,ne("U R2 F B R B2 R U2 L B2 R U' D' R2 F R' L B2 U2 F2".split(" ")),3);for(var He=0;He<6;++He)for(var An=[1,0,1,2,1,1][He]*(fe*V+5)+1,Be=[2,1,1,1,3,0][He]*(fe*V+5)+1,ue=0;ue<V;++ue)for(var De=0;De<V;++De){if(Se.fillStyle=Z.colorScheme[Math.floor($n[He][ue][De]/V/V)],De!=1&&ue!=1?(rn=[6,2,4,7,5,3][Math.floor(le(ge,He,ue,De)/V/V)]/7*fe,dn=[6,2,4,7,5,3][Math.floor(ae(ge,He,ue,De)/V/V)]/7*fe):rn=dn=[6,2,4,7,5,3][Math.floor(ge[He][ue][De]/V/V)]/7*fe,rn=Math.round(rn),dn=Math.round(dn),ue==0)var Ke=fe-rn;else Ke=0;if(De==0)var an=fe-dn;else an=0;if(ue==V-1)var nn=fe-rn;else nn=0;if(De==V-1)var mn=fe-dn;else mn=0;Se.fillRect(Be+an+De*fe,An+Ke+ue*fe,fe-an-mn,fe-Ke-nn),Z.baseColor!="stickerless"&&Se.strokeRect(Be+De*fe,An+ue*fe,fe,fe)}}function w(O,ge,V,Z){for(var N=0;N<V;++N){O=I(O,ge,Z,N);for(var le=1;le<Math.floor(Z/2)+1;++le)O=I(O,ge,Z,N,le),(Z%2!=0||le<Z/2)&&(O=I(O,ge,Z,N,-le))}return O[ge]=y(y(y(O[ge]))),O}function K(O,ge,V){for(var Z=0;Z<ge.length;++Z)O=w(O,ge[Z][0],ge[Z][1],V);return O}function ne(O){for(var ge=[],V=0;V<O.length;++V){var Z=O[V].indexOf("w")>-1,N=O[V].replace(/[0-9w]/g,"");O[V]=O[V].toUpperCase(),O[V]=O[V].split("W").join(""),O[V]=O[V].replace(/[RUFDBL]/i,"#").split("#"),O[V][0]==""&&(O[V][0]=Z?2:1);var le=O[V][1]==""?1:O[V][1]=="'"?3:O[V][1]=="2"?2:0;N=N.split("'").join(""),N={R:0,U:1,F:2,D:3,B:4,L:5}[N];for(var ae=0;ae<le;++ae)ge.push([N,+O[V][0]])}return ge}return{draw:W,draw_mir:P,move:w,moves:K,init_cube:A,apply_alg:ne}}(),vn=function(){var ne=[0,1,2,3,4,5,6,7],O=[0,0,0,0,0,0,0,0];const ge=0,V=1,Z=2,N=3,le=4,ae=5,ke=6,Se=7,Fe=8,ye=9,ze=10,fe=11,rn=[[3,0,1,2,4,5,6,7],[1,2,3,0,4,5,6,7],[2,3,0,1,4,5,6,7],[0,2,6,3,4,1,5,7],[0,5,1,3,4,6,2,7],[0,6,5,3,4,2,1,7],[0,1,3,7,4,5,2,6],[0,1,6,2,4,5,7,3],[0,1,7,6,4,5,3,2],[3,0,1,2,7,4,5,6],[1,2,3,0,5,6,7,4],[2,3,0,1,6,7,4,5]],dn=[[0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0],[0,2,1,0,0,1,2,0],[0,2,1,0,0,1,2,0],[0,0,0,0,0,0,0,0],[0,0,2,1,0,0,1,2],[0,0,2,1,0,0,1,2],[0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0]],$n=[1,0,2,4,3,5,7,6,8];function He(Q,q){return[Q[q[0]],Q[q[1]],Q[q[2]],Q[q[3]],Q[q[4]],Q[q[5]],Q[q[6]],Q[q[7]]]}function An(Q,q){return[(Q[0]+q[0])%3,(Q[1]+q[1])%3,(Q[2]+q[2])%3,(Q[3]+q[3])%3,(Q[4]+q[4])%(2+1),(Q[5]+q[5])%3,(Q[6]+q[6])%3,(Q[7]+q[7])%3]}function Be(Q,q,ie){return[An(He(Q,rn[ie]),dn[ie]),He(q,rn[ie])]}function ue(Q,q,ie){var Ee,We;for(Ee=0;Ee<Q.length;++Ee)We=Be(q,ie,Q[Ee]),ie=We[1],q=We[0];return[q,ie]}function De(Q){return[Q,ue([N,fe,le,fe],...Q),ue([le,fe,N,fe],...Q),ue([ye],...Q),ue([ze],...Q),ue([fe],...Q),ue([ke,fe,Se,fe],...Q),ue([Se,fe,ke,fe],...Q),ue([ae,fe,ae],...Q),ue([ae,fe,ae,ye],...Q),ue([ae,fe,ae,fe],...Q),ue([ae,fe,ae,ze],...Q),ue([ke,fe,Se],...Q),ue([ke,fe,Se,ze],...Q),ue([ke,fe,Se,ye],...Q),ue([Se,fe,ke,ze],...Q),ue([Se,fe,ke,ye],...Q),ue([Se,fe,ke],...Q),ue([N,fe,le,ye],...Q),ue([le,fe,N,ye],...Q),ue([N,fe,le],...Q),ue([le,fe,N],...Q),ue([N,fe,le,ze],...Q),ue([le,fe,N,ze],...Q)]}function Ke(Q,q){for(var ie=De(Q),Ee=0;Ee<ie.length;++Ee){var We=ie[Ee];if(q(...We))return!0}return!1}function an(Q,q){return be(q[7])[(Q[7]+0)%3]==be(q[4])[(Q[4]+0)%3]}function nn(Q,q){return an(Q,q)&&be(q[4])[(Q[4]+2)%3]==be(q[7])[(Q[7]+1)%3]}function mn(Q){return Q.split(" ").map(function(q){return{U:0,"U'":1,U2:2,R:3,"R'":4,R2:5,F:6,"F'":7,F2:8}[q]})}function he(Q){return Q.map(function(q){return["U","U'","U2","R","R'","R2","F","F'","F2"][q]}).join(" ")}function be(Q){return["WOB","WBR","WRG","WGO","YBO","YRB","YGR","YOG"][Q]}function we(Q){return Q.split("R R'").join("").split("F F'").join("").split("U U'").join("").split("R2 R2").join("").split("F2 F2").join("").split("U2 U2").join("").split("R' R").join("").split("F' F").join("").split("U' U").join("")}function ve(){var Q=puzzles["222"].generateScramble();Q=mn(Q);var q=ue(Q,O,ne);if(Ke(q,nn))return he(Q).split(" ");for(var ie=0;ie<9;++ie)if(Math.floor(Q[Q.length-1]/3)!=Math.floor(ie/3)||Q[Q.length-1]==ie){if(q=Be(q[0],q[1],ie),Ke(q,nn))return we(he([...Q,ie])).split(" ");q=Be(q[0],q[1],$n[ie])}return ve()}function bn(){var Q=puzzles["222"].generateScramble();Q=mn(Q);var q=ue(Q,O,ne);if(!Ke(q,nn))return he(Q).split(" ");for(var ie=0;ie<9;++ie)if(Math.floor(Q[Q.length-1]/3)!=Math.floor(ie/3)||Q[Q.length-1]==ie){if(q=Be(q[0],q[1],ie),!Ke(q,nn))return we(he([...Q,ie])).split(" ");q=Be(q[0],q[1],$n[ie])}return ve()}function Qn(){var Q=puzzles["222"].generateScramble();Q=mn(Q);var q=ue(Q,O,ne);if(Ke(q,an))return he(Q).split(" ");for(var ie=0;ie<9;++ie)if(Math.floor(Q[Q.length-1]/3)!=Math.floor(ie/3)||Q[Q.length-1]==ie){if(q=Be(q[0],q[1],ie),Ke(q,an))return we(he([...Q,ie])).split(" ");q=Be(q[0],q[1],$n[ie])}return Qn()}function wn(Q){return Q.type=="112Block"?ve():Q.type=="SideBlock"?Qn():Q.type=="NoBar"?bn():Q.type=="Any"?xn():Qn()}function kn(Q,q){Q.join&&(Q=Q.join(" "));var ie=tnoodlejs.scrambleToSvg(Q,puzzles["222"],0,0);return scramble_colors.changeImageColors(ie)}var ln={};function Pn(Q,q,ie,Ee){for(var We=Ee[Ee.length-1],Ve=0;Ve<9;++Ve)(Ee.length==0||Math.floor(We/3)!=Math.floor(Ve/3))&&(Q=Be(Q[0],Q[1],Ve),ln[Q[0].join("")+Q[1].join("")]=[...Ee,Ve].join(""),q<ie&&Pn(Q,q+1,ie,[...Ee,Ve]),Q=Be(Q[0],Q[1],$n[Ve]))}function En(){Pn([O,ne],1-1,6-1,[])}function Ue(Q,q,ie,Ee){var We=Ee[Ee.length-1],Ve,tn;for(tn=0;tn<9;++tn)if(Ee.length==0||Math.floor(We/3)!=Math.floor(tn/3)){if(Q=Be(Q[0],Q[1],tn),ln[Q[0].join("")+Q[1].join("")])return[ln[Q[0].join("")+Q[1].join("")].split(""),[...Ee,tn]];if(q<ie&&(Ve=Ue(Q,q+1,ie,[...Ee,tn])),Ve!="no"&&Ve!==void 0)return Ve;Q=Be(Q[0],Q[1],$n[tn])}return"no"}function je(Q){Object.keys(ln).length==0&&En(),Q=mn(Q);var q=ue(Q,O,ne),ie=Ue([O,ne],1-1,5-1,[]);return yn(ie[0],ie[1])}function xn(){Object.keys(ln).length==0&&En();function Q(Cn){var zn,gn;for(zn=Cn.length-1;zn>0;--zn)gn=Math.floor(Math.random()*(zn+1)),[Cn[zn],Cn[gn]]=[Cn[gn],Cn[zn]];return Cn}var q=Q([0,1,2,3,5,6,7]);q=[q[0],q[1],q[2],q[3],4,q[4],q[5],q[6]];for(var ie=[0,0,0,0,0,0,0,0],Ee=0,We=0;We<7;++We){var Ve=Math.floor(Math.random()*3);We==4&&(Ve=0),ie[We]=Ve,Ee+=Ve}ie[7]=[0,2,1][Ee%3];var tn=Ue([ie,q],1-1,5-1,[]);return yn(tn[0],tn[1])}function Nn(Q){for(var q=[],ie=0;ie<Q.length;++ie)if(ie<Q.length&&Q[ie+1]===void 0||Math.floor(Q[ie]/3)!=Math.floor(Q[ie+1]/3))q.push(Q[ie]);else{var Ee=[1,-1,2][Q[ie]%3]+[1,-1,2][Q[ie+1]%3];++ie,Ee==1?q.push(Math.floor(Q[ie]/3)*3):Ee==2?q.push(Math.floor(Q[ie]/3)*3+2):Ee==3&&q.push(Math.floor(Q[ie]/3)*3+1)}return q}function yn(Q,q){return q=q.reverse(),q=q.map(function(ie){return $n[ie]}),q=[...Q,...q],q=Nn(q),he(q).split(" ")}return{genMoves:wn,genImage:kn,solve:je,statesfound:ln,randomScramble:xn}}(),un=function(){function y(w){return[!1,!1,0,1,2,3]}function I(w,K,ne,O){var ge=document.getElementById(w),V=ge.getContext("2d"),Z=ge.width,N=ge.height;V.clearRect(0,0,Z,N),V.font="12px Arial",V.strokeStyle=O.baseColor,V.lineWidth=2,A(V,0,1,K[2]<2?"blue":"green",Z,N,O),A(V,0,2,K[3]<2?"blue":"green",Z,N,O),A(V,1,0,K[2]==0||K[2]==3?"orange":"red",Z,N,O),A(V,1,1,K[2]==0||K[2]==2?"white":"yellow",Z,N,O),A(V,1,2,K[3]==1||K[3]==3?"white":"yellow",Z,N,O),A(V,1,3,K[3]==0||K[3]==3?"orange":"red",Z,N,O),A(V,2,0,"orange",Z,N,O),A(V,2,1,K[0]?"yellow":"white",Z,N,O),A(V,2,2,K[1]?"yellow":"white",Z,N,O),A(V,2,3,"red",Z,N,O),A(V,3,0,K[5]==0||K[5]==3?"orange":"red",Z,N,O),A(V,3,1,K[5]==1||K[5]==3?"white":"yellow",Z,N,O),A(V,3,2,K[4]==0||K[4]==2?"white":"yellow",Z,N,O),A(V,3,3,K[4]==0||K[4]==3?"orange":"red",Z,N,O),A(V,4,1,K[2]>1?"blue":"green",Z,N,O),A(V,4,2,K[3]>1?"blue":"green",Z,N,O)}function A(w,K,ne,O,ge,V,Z){var N=Math.min(ge/3,V/5)-5,le=N,ae=5;w.fillStyle=O,w.fillRect(ae+ne*le,ae+K*le,le,le),Z.baseColor!="stickerless"&&w.strokeRect(ae+ne*le,ae+K*le,le,le)}function W(w,K,ne){if(K==0){w[1]=!w[1];var O=w[4];w[4]=w[3],w[3]=O}else if(K==1){var O=w[2];w[2]=w[3],w[3]=O}else if(K==2){var O=w[4];w[4]=w[5],w[5]=O}return w}function T(w,K){for(var ne=0;ne<K.length;++ne)w=W(w,K[ne][0],K[ne][1]);return w}function P(w){for(var K=[],ne=0;ne<w.length;++ne)face={R:0,U:1,D:2}[w[ne][0]],K.push([face,2]);return K}return{draw:I,move:W,moves:T,init_cube:y,apply_alg:P}}();function Ln(y,I,A,W){var T=document.getElementById(y),P=T.getContext("2d"),w=T.width,K=T.height,ne=tnoodlejs.scrambleToSvg(A.join(" "),puzzles[I],0,0);I=="clock"&&(ne=Qe(ne,W));var O=+ne.substr(12,3),ge=+ne.substr(27,3);ne="data:image/svg+xml;charset=utf-8,"+encodeURIComponent(ne);var V=new Image;V.src=ne,w/O>=K/ge?V.onload=function(){P.clearRect(0,0,w,K),P.drawImage(V,0,0,O*K/ge,K)}:V.onload=function(){P.clearRect(0,0,w,K),P.drawImage(V,0,0,w,ge*w/O)}}var en=function(){function y(P){return P[~~(Math.random()*P.length)]}function I(P){return~~(Math.random()*P)}function A(P){P.lgth||(P.lgth=-1);var w=P.lgth==-1?Math.ceil(2*P.n*P.n-5*P.n+13):P.lgth;return W(P.n,w)}function W(P,w){for(var K,ne,O,ge,V=[],Z="",N=[],le="_";V.length<w;)K=y(["R","U","F","D","B","L"]),P%2==1?O=I(P/2-.5)+1:K=="R"||K=="F"||K=="U"?O=I(P/2)+1:O=I(P/2-1)+1,ge=y(["","2","'"]),Z!=K?Z=={R:"L",L:"R",U:"D",D:"U",F:"B",B:"F"}[K]&&le==K||(le=Z,Z=K,N=[O],V.push((O<3?"":O)+K+(O==1?"":"w")+ge)):N.indexOf(O)==-1&&(N.push(O),V.push((O<3?"":O)+K+(O==1?"":"w")+ge));return V}function T(P,w){return w.n>=2&&w.n<=5?scramble_colors.changeImageColors(scrambler_wca.genImage(P.join(" "),111*w.n)):""}return{genMoves:A,genImage:T}}();function pn(y,I,A,W){switch(y){case"wca":return puzzles[W.type].generateScramble().split(" ");case"special_222":return vn.genMoves(W);case"NNN_moves":return en.genMoves(W);case"subset":scramble_subset.setRandomSource(Math),scramble_subset.initialize(),scramble_subset.setRandomSource(Math);var T=scramble_subset["get"+W.type+"Scramble"]().split(" ").join(" ").split(" ");return T[T.length-1]==""&&T.pop(),T;case"minx":return c(m(W.n),["U","U'"],W.movesPerRow,W.moves);case"cuboid":return z(W);case"other":return de(W)}}function Mn(y,I,A,W,T){switch(I){case"wca":return[222,333,444,"444fast",555,666,777].indexOf(T.type)>-1?A=="mirror"?Le.draw_mir("test",Le.moves(Le.init_cube(([]+T.type)[0]),Le.apply_alg(y),([]+T.type)[0]),([]+T.type)[0],T):Le.draw("test",Le.moves(Le.init_cube(([]+T.type)[0]),Le.apply_alg(y),([]+T.type)[0]),([]+T.type)[0],T):Ln("test",T.type,y,T);case"special_222":return Le.draw("test",Le.moves(Le.init_cube(2),Le.apply_alg(y),2),2,T);case"subset":return Le.draw("test",Le.moves(Le.init_cube(3),Le.apply_alg(y),3),3,T);case"NNN_moves":case"cubicWCA":if(A=="normal")return Le.draw("test",Le.moves(Le.init_cube(T.n),Le.apply_alg(y),T.n),T.n,T);if(A=="mirror")return Le.draw_mir("test",Le.moves(Le.init_cube(T.n),Le.apply_alg(y),T.n),T.n,T);case"minx":return;case"cuboid":return;case"other":return T.type=="1x2x3"||T.type=="1x2x3rsru"||T.type=="1x2x3rs"?un.draw("test",un.moves(un.init_cube(T.n),un.apply_alg(y),T.n),T.n,T):pe(y,A,T)}}function Ge(y,I,A,W,T){return y.join(" ")}function Dn(y,I,A,W,T,P){return A=="NNN_moves"||A=="wca"&&[222,333,444,"444fast",555,666,777,"333ni","444ni","555ni","333fm"].indexOf(P.type)>-1?xe(y,I,P):A=="wca"&&P.type=="clock"?cn(y,I,1,P):A=="wca"&&P.type=="minx"&&(P.notationStyle==0||P.notationStyle==1)?Ne(y,I,P):JSON.parse(JSON.stringify(I))}return{getMoves:pn,getImage:Mn,joinMoves:Ge,change_notation:t,changeColor:Dn}}(),window=self,document={};window.document=document,document.write=function(){},window.write=document.write,document.getElementById=function(){},document.getElementsByTagName=function(){return[]},document.readyState="loaded",window.location||(window.location={href:"",search:""}),document.location=window.location;var puzzles;function puzzlesLoaded(e){window.puzzles=e,self.puzzles=e,puzzles=e}onmessage=function(e){if(console.log(e.data),e.data.fn=="setpuzzles"){puzzles=window.puzzles={"333":e.data.p333};return}var t=scrambler[e.data.fn](...e.data.args);console.log(t),postMessage(t)};function TNOODLEJS_GWT(){function tnoodlejs(){var $wnd_0=window,$doc_0=document,gwtOnLoad,bodyDone,base="",metaProps={},values=[],providers=[],answers=[],softPermutationId=0,onLoadErrorFunc,propertyErrorFunc;$wnd_0.__gwt_stylesLoaded||($wnd_0.__gwt_stylesLoaded={}),$wnd_0.__gwt_scriptsLoaded||($wnd_0.__gwt_scriptsLoaded={});function isHostedMode(){var e=!1;try{var t=$wnd_0.location.search;return(t.indexOf("gwt.codesvr=")!=-1||t.indexOf("gwt.hosted=")!=-1||$wnd_0.external&&$wnd_0.external.gwtOnLoad)&&t.indexOf("gwt.hybrid")==-1}catch(r){}return isHostedMode=function(){return e},e}function maybeStartModule(){gwtOnLoad&&bodyDone&&gwtOnLoad(onLoadErrorFunc,"tnoodlejs",base,softPermutationId)}function computeScriptBase(){var e,t="__gwt_marker_tnoodlejs",r;for($doc_0.write('<script id="'+t+'"><\/script>'),r=$doc_0.getElementById(t),e=r&&r.previousSibling;e&&e.tagName!="SCRIPT";)e=e.previousSibling;function a(u){var s=u.lastIndexOf("#");s==-1&&(s=u.length);var m=u.indexOf("?");m==-1&&(m=u.length);var c=u.lastIndexOf("/",Math.min(m,s));return c>=0?u.substring(0,c+1):""}if(e&&e.src&&(base=a(e.src)),base==""){var l=$doc_0.getElementsByTagName("base");l.length>0?base=l[l.length-1].href:base=a($doc_0.location.href)}else if(!base.match(/^\w+:\/\//)){var o=$doc_0.createElement("img");o.src=base+"clear.cache.gif",base=a(o.src)}r&&r.parentNode.removeChild(r)}function processMetas(){for(var metas=document.getElementsByTagName("meta"),i=0,n=metas.length;i<n;++i){var meta=metas[i],name_0=meta.getAttribute("name"),content_0;if(name_0){if(name_0=="gwt:property"){if(content_0=meta.getAttribute("content"),content_0){var value,eq=content_0.indexOf("=");eq>=0?(name_0=content_0.substring(0,eq),value=content_0.substring(eq+1)):(name_0=content_0,value=""),metaProps[name_0]=value}}else if(name_0=="gwt:onPropertyErrorFn"){if(content_0=meta.getAttribute("content"),content_0)try{propertyErrorFunc=eval(content_0)}catch(e){alert('Bad handler "'+content_0+'" for "gwt:onPropertyErrorFn"')}}else if(name_0=="gwt:onLoadErrorFn"&&(content_0=meta.getAttribute("content"),content_0))try{onLoadErrorFunc=eval(content_0)}catch(e){alert('Bad handler "'+content_0+'" for "gwt:onLoadErrorFn"')}}}}function unflattenKeylistIntoAnswers(e,t){for(var r=answers,a=0,l=e.length-1;a<l;++a)r=r[e[a]]||(r[e[a]]=[]);r[e[l]]=t}function computePropValue(e){var t=providers[e](),r=values[e];if(t in r)return t;var a=[];for(var l in r)a[r[l]]=l;throw propertyErrorFunc&&propertyErrorFunc(e,a,t),null}if(providers["user.agent"]=function(){var e=navigator.userAgent.toLowerCase(),t=function(r){return parseInt(r[1])*1e3+parseInt(r[2])};return function(){return e.indexOf("opera")!=-1}()?"opera":function(){return e.indexOf("webkit")!=-1}()?"safari":function(){return e.indexOf("msie")!=-1&&$doc_0.documentMode>=9}()?"ie9":function(){return e.indexOf("msie")!=-1&&$doc_0.documentMode>=8}()?"ie8":function(){var r=/msie ([0-9]+)\.([0-9]+)/.exec(e);if(r&&r.length==3)return t(r)>=6e3}()?"ie6":function(){return e.indexOf("gecko")!=-1}()?"gecko1_8":"unknown"},values["user.agent"]={gecko1_8:0,ie6:1,ie8:2,ie9:3,opera:4,safari:5},tnoodlejs.onScriptLoad=function(e){tnoodlejs=null,gwtOnLoad=e,maybeStartModule()},isHostedMode()){alert("Single-script hosted mode not yet implemented. See issue http://code.google.com/p/google-web-toolkit/issues/detail?id=2079");return}computeScriptBase(),processMetas();try{var strongName;unflattenKeylistIntoAnswers(["gecko1_8"],"6A3536386280D7102EB8DF9B6F10F8A9"),unflattenKeylistIntoAnswers(["ie6"],"6A3536386280D7102EB8DF9B6F10F8A9:1"),unflattenKeylistIntoAnswers(["ie8"],"6A3536386280D7102EB8DF9B6F10F8A9:2"),unflattenKeylistIntoAnswers(["ie9"],"6A3536386280D7102EB8DF9B6F10F8A9:3"),unflattenKeylistIntoAnswers(["opera"],"6A3536386280D7102EB8DF9B6F10F8A9:4"),unflattenKeylistIntoAnswers(["safari"],"6A3536386280D7102EB8DF9B6F10F8A9:5"),strongName=answers[computePropValue("user.agent")];var idx=strongName.indexOf(":");idx!=-1&&(softPermutationId=Number(strongName.substring(idx+1)))}catch(e){return}var onBodyDoneTimerId;function onBodyDone(){bodyDone||(bodyDone=!0,maybeStartModule(),$doc_0.removeEventListener&&$doc_0.removeEventListener("DOMContentLoaded",onBodyDone,!1),onBodyDoneTimerId&&clearInterval(onBodyDoneTimerId))}$doc_0.addEventListener&&$doc_0.addEventListener("DOMContentLoaded",function(){onBodyDone()},!1);var onBodyDoneTimerId=setInterval(function(){/loaded|complete/.test($doc_0.readyState)&&onBodyDone()},50)}tnoodlejs(),function(){var $gwt_version="2.5.1",$wnd=window,$doc=$wnd.document,$moduleName,$moduleBase,$stats=$wnd.__gwtStatsEvent?function(e){$wnd.__gwtStatsEvent(e)}:null,$strongName="6A3536386280D7102EB8DF9B6F10F8A9",_,P0_longLit={l:0,m:0,h:0},P1_longLit={l:1,m:0,h:0},Pf_longLit={l:15,m:0,h:0},P1e_longLit={l:30,m:0,h:0},P32_longLit={l:50,m:0,h:0},P64_longLit={l:100,m:0,h:0},Pc8_longLit={l:200,m:0,h:0},P3e8_longLit={l:1e3,m:0,h:0},Pea60_longLit={l:6e4,m:0,h:0},Pf4240_longLit={l:1e6,m:0,h:0},P111110_longLit={l:1118480,m:0,h:0},Pffffff_longLit={l:4194303,m:3,h:0},P111111111110_longLit={l:1118480,m:279620,h:1},Pba9876543210_longLit={l:1323536,m:2777561,h:11},seedTable={},Q$Object=0,Q$String=1,Q$boolean_$1=2,Q$byte_$1=3,Q$char_$1=4,Q$Style$HasCssName=5,Q$Style$TextAlign=6,Q$HasDirection$Direction=7,Q$JSONArray=8,Q$JSONNumber=9,Q$JSONObject=10,Q$JSONString=11,Q$LongLibBase$LongEmul=12,Q$HtmlLogFormatter=13,Q$SafeUri=14,Q$SafeUriString=15,Q$EventListener=16,Q$UserAgentAsserter$UserAgentProperty=17,Q$CubieCube=18,Q$Search=19,Q$FullCube=20,Q$Center1=21,Q$CornerCube=22,Q$Edge3=23,Q$FullCube_0=24,Q$FullCube_$1=25,Q$Search_0=26,Q$double_$1=27,Q$int_$1=28,Q$int_$2=29,Q$Serializable=30,Q$Boolean=31,Q$CharSequence=32,Q$Class=33,Q$Comparable=34,Q$Double=35,Q$Enum=36,Q$Exception=37,Q$Integer=38,Q$Number=39,Q$Object_$1=40,Q$StackTraceElement=41,Q$String_$1=42,Q$Throwable=43,Q$Date=44,Q$HashMap=45,Q$LinkedHashMap$ChainEntry=46,Q$List=47,Q$Map=48,Q$Map$Entry=49,Q$NoSuchElementException=50,Q$RandomAccess=51,Q$Set=52,Q$TreeMap$Node=53,Q$TreeMap$SubMapType=54,Q$Handler=55,Q$Handler_$1=56,Q$Logger=57,Q$InvalidMoveException=58,Q$InvalidScrambleException=59,Q$Puzzle=60,Q$Puzzle$Bucket=61,Q$Puzzle$PuzzleState=62,Q$Color=63,Q$Element=64,Q$InvalidHexColorException=65,Q$Path=66,Q$Path$Command=67,Q$Point2D$Double=68,Q$Transform=69,Q$Exportable=70,Q$ClockPuzzle=71,Q$ClockPuzzle$ClockState=72,Q$CubePuzzle=73,Q$CubePuzzle$CubeMove=74,Q$CubePuzzle$CubeMove_$1=75,Q$CubePuzzle$CubeState=76,Q$CubePuzzle$Face=77,Q$FourByFourCubePuzzle=78,Q$FourByFourRandomTurnsCubePuzzle=79,Q$MegaminxPuzzle=80,Q$MegaminxPuzzle$Face=81,Q$MegaminxPuzzle$MegaminxState=82,Q$NoInspectionFiveByFiveCubePuzzle=83,Q$NoInspectionFourByFourCubePuzzle=84,Q$NoInspectionThreeByThreeCubePuzzle=85,Q$PyraminxPuzzle=86,Q$PyraminxPuzzle$PyraminxState=87,Q$SkewbPuzzle=88,Q$SkewbPuzzle$SkewbState=89,Q$SquareOnePuzzle=90,Q$SquareOnePuzzle$SquareOneState=91,Q$SquareOneUnfilteredPuzzle=92,Q$ThreeByThreeCubeFewestMovesPuzzle=93,Q$ThreeByThreeCubePuzzle=94,Q$TwoByTwoCubePuzzle=95,CM$={};function newSeed(e){return new seedTable[e]}function defineSeed(e,t,r){var a=seedTable[e];a&&!a.___clazz$?_=a.prototype:(!a&&(a=seedTable[e]=function(){}),_=a.prototype=t<0?{}:newSeed(t),_.castableTypeMap$=r);for(var l=3;l<arguments.length;++l)arguments[l].prototype=_;a.___clazz$&&(_.___clazz$=a.___clazz$,a.___clazz$=null)}function makeCastMap(e){for(var t={},r=0,a=e.length;r<a;++r)t[e[r]]=1;return t}function nullMethod(){}defineSeed(1,-1,CM$),_.equals$=function(t){return this===t},_.getClass$=function(){return this.___clazz$},_.hashCode$=function(){return getHashCode(this)},_.toString$=function(){return this.___clazz$.typeName+"@"+toPowerOfTwoString(this.hashCode$())},_.toString=function(){return this.toString$()},_.typeMarker$=nullMethod;function setUncaughtExceptionHandler(e){sUncaughtExceptionHandler=e}var sUncaughtExceptionHandler=null;function $getStackTrace(e){return e.stackTrace==null?initDim(_3Ljava_lang_StackTraceElement_2_classLit,makeCastMap([Q$Serializable,Q$Object_$1]),Q$StackTraceElement,0,0):e.stackTrace}function $setStackTrace(e,t){var r,a,l;for(a=initDim(_3Ljava_lang_StackTraceElement_2_classLit,makeCastMap([Q$Serializable,Q$Object_$1]),Q$StackTraceElement,t.length,0),l=0,r=t.length;l<r;++l){if(!t[l])throw new NullPointerException_0;a[l]=t[l]}e.stackTrace=a}function Throwable_0(){com_google_gwt_core_client_impl_StackTraceCreator_Collector().fillInStackTrace(this)}function Throwable_1(e,t){com_google_gwt_core_client_impl_StackTraceCreator_Collector().fillInStackTrace(this),this.cause=t,this.detailMessage=e}defineSeed(8,1,makeCastMap([Q$Serializable,Q$Throwable])),_.getMessage=function(){return this.detailMessage},_.toString$=function(){var t,r;return t=this.___clazz$.typeName,r=this.getMessage(),r!=null?t+": "+r:t},_.cause=null,_.detailMessage=null,_.stackTrace=null;function Exception_0(e){com_google_gwt_core_client_impl_StackTraceCreator_Collector().fillInStackTrace(this),this.detailMessage=e}defineSeed(7,8,makeCastMap([Q$Serializable,Q$Exception,Q$Throwable]));function RuntimeException_0(){Throwable_0.call(this)}function RuntimeException_1(e){Exception_0.call(this,e)}defineSeed(6,7,makeCastMap([Q$Serializable,Q$Exception,Q$Throwable]),RuntimeException_0,RuntimeException_1);function JavaScriptException_0(e){RuntimeException_0.call(this),this.e=e,this.description="",com_google_gwt_core_client_impl_StackTraceCreator_Collector().createStackTrace(this)}function getExceptionDescription(e){return instanceOfJso(e)?getExceptionDescription0(dynamicCastJso(e)):e+""}function getExceptionDescription0(e){return e==null?null:e.message}function getExceptionName(e){return e==null?"null":instanceOfJso(e)?getExceptionName0(dynamicCastJso(e)):instanceOf(e,Q$String)?"String":getClass__devirtual$(e).typeName}function getExceptionName0(e){return e==null?null:e.name}function getExceptionProperties(e){return instanceOfJso(e)?getProperties(dynamicCastJso(e)):""}defineSeed(5,6,makeCastMap([Q$Serializable,Q$Exception,Q$Throwable]),JavaScriptException_0),_.getMessage=function(){return this.message_0==null&&(this.name_0=getExceptionName(this.e),this.description=this.description+": "+getExceptionDescription(this.e),this.message_0="("+this.name_0+") "+getExceptionProperties(this.e)+this.description),this.message_0},_.description="",_.e=null,_.message_0=null,_.name_0=null;function equals__devirtual$(e,t){var r;return r=e,isJavaObject(r)?r.equals$(t):r===t}function getClass__devirtual$(e){var t;return t=e,isJavaObject(t)?t.___clazz$:Lcom_google_gwt_core_client_JavaScriptObject_2_classLit}function hashCode__devirtual$(e){var t;return t=e,isJavaObject(t)?t.hashCode$():getHashCode(t)}function create(e){return new Date(e)}function $clinit_JsonUtils(){var e;$clinit_JsonUtils=nullMethod,escapeTable=(e=["\\u0000","\\u0001","\\u0002","\\u0003","\\u0004","\\u0005","\\u0006","\\u0007","\\b","\\t","\\n","\\u000B","\\f","\\r","\\u000E","\\u000F","\\u0010","\\u0011","\\u0012","\\u0013","\\u0014","\\u0015","\\u0016","\\u0017","\\u0018","\\u0019","\\u001A","\\u001B","\\u001C","\\u001D","\\u001E","\\u001F"],e[34]='\\"',e[92]="\\\\",e[173]="\\u00ad",e[1536]="\\u0600",e[1537]="\\u0601",e[1538]="\\u0602",e[1539]="\\u0603",e[1757]="\\u06dd",e[1807]="\\u070f",e[6068]="\\u17b4",e[6069]="\\u17b5",e[8203]="\\u200b",e[8204]="\\u200c",e[8205]="\\u200d",e[8206]="\\u200e",e[8207]="\\u200f",e[8232]="\\u2028",e[8233]="\\u2029",e[8234]="\\u202a",e[8235]="\\u202b",e[8236]="\\u202c",e[8237]="\\u202d",e[8238]="\\u202e",e[8288]="\\u2060",e[8289]="\\u2061",e[8290]="\\u2062",e[8291]="\\u2063",e[8292]="\\u2064",e[8298]="\\u206a",e[8299]="\\u206b",e[8300]="\\u206c",e[8301]="\\u206d",e[8302]="\\u206e",e[8303]="\\u206f",e[65279]="\\ufeff",e[65529]="\\ufff9",e[65530]="\\ufffa",e[65531]="\\ufffb",e),typeof JSON=="object"&&JSON.parse}function escapeValue(e){$clinit_JsonUtils();var t=e.replace(/[\x00-\x1f\xad\u0600-\u0603\u06dd\u070f\u17b4\u17b5\u200b-\u200f\u2028-\u202e\u2060-\u2064\u206a-\u206f\ufeff\ufff9-\ufffb"\\]/g,function(r){var a;return a=escapeTable[r.charCodeAt(0)],a==null?r:a});return'"'+t+'"'}var escapeTable;defineSeed(14,1,{});function apply(e,t,r){return e.apply(t,r);var a}function enter(){var e;return entryDepth!=0&&(e=new Date().getTime(),e-watchdogEntryDepthLastScheduled>2e3&&(watchdogEntryDepthLastScheduled=e,watchdogEntryDepthTimerId=watchdogEntryDepthSchedule())),entryDepth++==0?($flushEntryCommands(($clinit_SchedulerImpl(),INSTANCE)),!0):!1}function entry_0(e){return function(){try{return entry0(e,this,arguments)}catch(t){throw t}}}function entry0(e,t,r){var a,l;a=enter();try{if(sUncaughtExceptionHandler)try{return apply(e,t,r)}catch(o){if(o=caught(o),instanceOf(o,Q$Throwable)){l=o,$onUncaughtException(sUncaughtExceptionHandler,l);return}else throw o}else return apply(e,t,r)}finally{exit(a)}}function exit(e){e&&$flushFinallyCommands(($clinit_SchedulerImpl(),INSTANCE)),--entryDepth,e&&watchdogEntryDepthTimerId!=-1&&(watchdogEntryDepthCancel(watchdogEntryDepthTimerId),watchdogEntryDepthTimerId=-1)}function getHashCode(e){return e.$H||(e.$H=++sNextHashId)}function watchdogEntryDepthCancel(e){$wnd.clearTimeout(e)}function watchdogEntryDepthSchedule(){return $wnd.setTimeout(function(){entryDepth!=0&&(entryDepth=0),watchdogEntryDepthTimerId=-1},10)}var entryDepth=0,sNextHashId=0,watchdogEntryDepthLastScheduled=0,watchdogEntryDepthTimerId=-1;function $clinit_SchedulerImpl(){$clinit_SchedulerImpl=nullMethod,INSTANCE=new SchedulerImpl_0}function $flushEntryCommands(e){var t,r;if(e.entryCommands){r=null;do t=e.entryCommands,e.entryCommands=null,r=runScheduledTasks(t,r);while(e.entryCommands);e.entryCommands=r}}function $flushFinallyCommands(e){var t,r;if(e.finallyCommands){r=null;do t=e.finallyCommands,e.finallyCommands=null,r=runScheduledTasks(t,r);while(e.finallyCommands);e.finallyCommands=r}}function SchedulerImpl_0(){}function push(e,t){return!e&&(e=[]),e[e.length]=t,e}function runScheduledTasks(e,t){var r,a,l,o;for(a=0,l=e.length;a<l;++a){o=e[a];try{o[1]?o[0].nullMethod()&&(t=push(t,o)):o[0].nullMethod()}catch(u){if(u=caught(u),instanceOf(u,Q$Throwable))r=u,sUncaughtExceptionHandler&&$onUncaughtException(sUncaughtExceptionHandler,r);else throw u}}return t}defineSeed(16,14,{},SchedulerImpl_0),_.entryCommands=null,_.finallyCommands=null;var INSTANCE;function extractNameFromToString(e){var t,r,a;return a="",e=$trim(e),t=e.indexOf("("),r=e.indexOf("function")==0?8:0,t==-1&&(t=$indexOf(e,fromCodePoint(64)),r=e.indexOf("function ")==0?9:0),t!=-1&&(a=$trim(e.substr(r,t-r))),a.length>0?a:"anonymous"}function getProperties(e){return $getProperties((com_google_gwt_core_client_impl_StackTraceCreator_Collector(),e))}function parseInt_0(e){return parseInt(e)||-1}function splice(e,t){return e.length>=t&&e.splice(0,t),e}function $getProperties(e){var t="";try{for(var r in e)if(r!="name"&&r!="message"&&r!="toString")try{t+=` `+r+": "+e[r]}catch(a){}}catch(a){}return t}function $makeException(){try{null.a()}catch(e){return e}}function StackTraceCreator$Collector_0(){}defineSeed(19,1,{},StackTraceCreator$Collector_0),_.collect=function(){for(var t={},r=[],a=arguments.callee.caller.caller;a;){var l=this.extractName(a.toString());r.push(l);var o=":"+l,u=t[o];if(u){var s,m;for(s=0,m=u.length;s<m;s++)if(u[s]===a)return r}(u||(t[o]=[])).push(a),a=a.caller}return r},_.createStackTrace=function(t){var r,a,l,o;for(l=this.inferFrom(instanceOfJso(t.e)?dynamicCastJso(t.e):null),o=initDim(_3Ljava_lang_StackTraceElement_2_classLit,makeCastMap([Q$Serializable,Q$Object_$1]),Q$StackTraceElement,l.length,0),r=0,a=o.length;r<a;++r)o[r]=new StackTraceElement_0(l[r],null,-1);$setStackTrace(t,o)},_.extractName=function(t){return extractNameFromToString(t)},_.fillInStackTrace=function(t){var r,a,l,o;for(l=com_google_gwt_core_client_impl_StackTraceCreator_Collector().collect(),o=initDim(_3Ljava_lang_StackTraceElement_2_classLit,makeCastMap([Q$Serializable,Q$Object_$1]),Q$StackTraceElement,l.length,0),r=0,a=o.length;r<a;++r)o[r]=new StackTraceElement_0(l[r],null,-1);$setStackTrace(t,o)},_.inferFrom=function(t){return[]};function $inferFrom(e,t){var r,a,l;for(l=e.getStack(t),r=0,a=l.length;r<a;++r)l[r]=e.extractName(l[r]);return l}function StackTraceCreator$CollectorMoz_0(){}defineSeed(21,19,{},StackTraceCreator$CollectorMoz_0),_.collect=function(){return splice(this.inferFrom($makeException()),this.toSplice())},_.getStack=function(t){return t&&t.stack?t.stack.split(` `):[]},_.inferFrom=function(t){return $inferFrom(this,t)},_.toSplice=function(){return 2};function $clinit_StackTraceCreator$CollectorChrome(){$clinit_StackTraceCreator$CollectorChrome=nullMethod,Error.stackTraceLimit=128}function $inferFrom_0(e,t){var r;return r=$inferFrom(e,t),r.length==0?new StackTraceCreator$Collector_0().inferFrom(t):splice(r,1)}function $parseStackTrace(e,t,r){var a,l,o,u,s,m,c,f,$,v;for(v=initDim(_3Ljava_lang_StackTraceElement_2_classLit,makeCastMap([Q$Serializable,Q$Object_$1]),Q$StackTraceElement,r.length,0),u=0,s=v.length;u<s;++u)$=$split(r[u],"@@",0),c=-1,a=-1,o="Unknown",$.length==2&&$[1]!=null&&(f=$[1],m=$lastIndexOf(f,fromCodePoint(58)),l=$lastIndexOf_0(f,fromCodePoint(58),m-1),o=f.substr(0,l-0),m!=-1&&l!=-1&&(c=parseInt_0(f.substr(l+1,m-(l+1))),a=parseInt_0($substring(f,m+1)))),v[u]=new StackTraceElement_0($[0],o+"@"+a,e.replaceIfNoSourceMap(c<0?-1:c));$setStackTrace(t,v)}defineSeed(20,21,{}),_.collect=function(){var t;return t=splice($inferFrom_0(this,$makeException()),3),t.length==0&&(t=splice(new StackTraceCreator$Collector_0().collect(),1)),t},_.createStackTrace=function(t){var r;r=$inferFrom_0(this,instanceOfJso(t.e)?dynamicCastJso(t.e):null),$parseStackTrace(this,t,r)},_.extractName=function(t){var r,a,l,o;return t.length==0?"anonymous":(o=$trim(t),o.indexOf("at ")==0&&(o=$substring(o,3)),a=o.indexOf("["),a!=-1&&(o=$trim(o.substr(0,a-0))+$trim($substring(o,o.indexOf("]",a)+1))),a=o.indexOf("("),a==-1?(a=o.indexOf("@"),a==-1?(l=o,o=""):(l=$trim($substring(o,a+1)),o=$trim(o.substr(0,a-0)))):(r=o.indexOf(")",a),l=o.substr(a+1,r-(a+1)),o=$trim(o.substr(0,a-0))),a=$indexOf(o,fromCodePoint(46)),a!=-1&&(o=$substring(o,a+1)),(o.length>0?o:"anonymous")+"@@"+l)},_.fillInStackTrace=function(t){var r;r=com_google_gwt_core_client_impl_StackTraceCreator_Collector().collect(),$parseStackTrace(this,t,r)},_.inferFrom=function(t){return $inferFrom_0(this,t)},_.replaceIfNoSourceMap=function(t){return t},_.toSplice=function(){return 3};function StackTraceCreator$CollectorChromeNoSourceMap_0(){$clinit_StackTraceCreator$CollectorChrome()}defineSeed(22,20,{},StackTraceCreator$CollectorChromeNoSourceMap_0),_.replaceIfNoSourceMap=function(t){return-1};function StackTraceCreator$CollectorOpera_0(){}defineSeed(23,21,{},StackTraceCreator$CollectorOpera_0),_.extractName=function(t){return t.length==0?"anonymous":t},_.getStack=function(t){var r,a,l,o,u;for(u=t&&t.message?t.message.split(` `):[],r=0,a=0,o=u.length;a<o;++r,a+=2)l=u[a].lastIndexOf("function "),l==-1?u[r]="":u[r]=$trim($substring(u[a],l+9));return u.length=r,u},_.toSplice=function(){return 3},defineSeed(24,1,{});function StringBufferImplAppend_0(){}defineSeed(25,24,{},StringBufferImplAppend_0),_.append=function(t,r){this.string+=r},_.append_0=function(t,r){this.string+=r},_.append_1=function(t,r){this.string+=r},_.append_2=function(t,r){this.string+=r},_.appendNonNull=function(t,r){this.string+=r},_.createData=function(){return null},_.length_0=function(t){return this.string.length},_.replace_0=function(t,r,a,l){this.string=$substring_0(this.string,0,r)+l+$substring(this.string,a)},_.toString_0=function(t){return this.string},_.string="";function $appendNonNull(e,t){e[e.explicitLength++]=t}function $takeString(e){var t=e.join("");return e.length=e.explicitLength=0,t}function $toString(e,t){var r;return r=$takeString(t),$appendNonNull(t,r),r}defineSeed(27,24,{}),_.append=function(t,r){t[t.explicitLength++]=r},_.append_0=function(t,r){t[t.explicitLength++]=r},_.append_1=function(t,r){$appendNonNull(t,""+r)},_.append_2=function(t,r){t[t.explicitLength++]=r==null?"null":r},_.appendNonNull=function(t,r){$appendNonNull(t,r)},_.createData=function(){var t=[];return t.explicitLength=0,t},_.length_0=function(t){return $toString(this,t).length},_.replace_0=function(t,r,a,l){var o;o=$takeString(t),$appendNonNull(t,o.substr(0,r-0)),t[t.explicitLength++]=l==null?"null":l,$appendNonNull(t,$substring(o,a))},_.toString_0=function(t){return $toString(this,t)};function StringBufferImplArray_0(){}defineSeed(26,27,{},StringBufferImplArray_0);function $clinit_DOMImpl(){$clinit_DOMImpl=nullMethod,impl_0=com_google_gwt_dom_client_DOMImpl()}function $getFirstChildElement(e){for(var t=e.firstChild;t&&t.nodeType!=1;)t=t.nextSibling;return t}defineSeed(28,1,{}),_.createElement_0=function(t,r){return t.createElement(r)},_.getTagName=function(t){return t.tagName},_.imgSetSrc=function(t,r){t.src=r},_.setInnerText=function(t,r){for(;t.firstChild;)t.removeChild(t.firstChild);r!=null&&t.appendChild(t.ownerDocument.createTextNode(r))},_.toString_1=function(t){return t.outerHTML};var impl_0;function isOrHasChildImpl(e,t){return e.nodeType!=1&&e.nodeType!=9?e==t:t.nodeType!=1&&(t=t.parentNode,!t)?!1:e.nodeType==9?e===t||e.body&&e.body.contains(t):e===t||e.contains(t)}defineSeed(30,28,{}),_.createElement_0=function(t,r){var a,l;return r.indexOf(":")!=-1?(a=(!t.__gwt_container&&(t.__gwt_container=t.createElement("div")),t.__gwt_container),a.innerHTML="<"+r+"/>"||"",l=$getFirstChildElement(($clinit_DOMImpl(),a)),a.removeChild(l),l):t.createElement(r)},_.eventGetRelatedTarget=function(t){return t.relatedTarget||(t.type=="mouseout"?t.toElement:t.fromElement)},_.getTagName=function(t){var r,a;return a=t.tagName,r=t.scopeName,r==null||$equalsIgnoreCase("html",r)?a:r+":"+a},_.isOrHasChild=function(t,r){return isOrHasChildImpl(t,r)},_.setInnerText=function(t,r){t.innerText=r||""};var currentEventTarget=null;function DOMImplIE6_0(){$clinit_DOMImpl()}function isIE6_0(){return isIE6Detected||(isIE6=isIE6Impl(),isIE6Detected=!0),isIE6}function isIE6Impl(){function e(l){return parseInt(l[1])*1e3+parseInt(l[2])}var t=navigator.userAgent.toLowerCase();if(t.indexOf("msie")!=-1){var r=/msie ([0-9]+)\.([0-9]+)/.exec(t);if(r&&r.length==3){var a=e(r);if(a<7e3)return!0}}return!1}defineSeed(29,30,{},DOMImplIE6_0),_.imgSetSrc=function(t,r){isIE6_0()?setImgSrc(t,r):t.src=r};var isIE6=!1,isIE6Detected=!1;function DOMImplIE8_0(){$clinit_DOMImpl()}defineSeed(31,30,{},DOMImplIE8_0),defineSeed(34,28,{}),_.eventGetRelatedTarget=function(t){return t.relatedTarget},_.isOrHasChild=function(t,r){return t.contains(r)},_.setInnerText=function(t,r){t.textContent=r||""},defineSeed(33,34,{});function DOMImplIE9_0(){$clinit_DOMImpl()}defineSeed(32,33,{},DOMImplIE9_0),_.isOrHasChild=function(t,r){return isOrHasChildImpl(t,r)};function DOMImplMozilla_0(){$clinit_DOMImpl()}defineSeed(35,34,{},DOMImplMozilla_0),_.eventGetRelatedTarget=function(t){var r=t.relatedTarget;if(!r)return null;try{var a=r.nodeName;return r}catch(l){return null}},_.isOrHasChild=function(t,r){return t===r||!!(t.compareDocumentPosition(r)&16)},_.toString_1=function(t){var r=t.ownerDocument,a=t.cloneNode(!0),l=r.createElement("DIV");return l.appendChild(a),outer=l.innerHTML,a.innerHTML="",outer};function DOMImplOpera_0(){$clinit_DOMImpl()}defineSeed(36,34,{},DOMImplOpera_0);function DOMImplWebkit_0(){$clinit_DOMImpl()}defineSeed(37,33,{},DOMImplWebkit_0);function $isOrHasChild(e,t){return($clinit_DOMImpl(),impl_0).isOrHasChild(e,t)}function $createDivElement(e){return($clinit_DOMImpl(),impl_0).createElement_0(e,"div")}function $createImageElement(e){return($clinit_DOMImpl(),impl_0).createElement_0(e,"img")}function $getString(e){return($clinit_DOMImpl(),impl_0).toString_1(e)}function $setInnerHTML(e,t){e.innerHTML=t||""}function $setInnerText(e,t){($clinit_DOMImpl(),impl_0).setInnerText(e,t)}function $setSrc(e,t){($clinit_DOMImpl(),impl_0).imgSetSrc(e,t)}function $clinit_ImageSrcIE6(){$clinit_ImageSrcIE6=nullMethod,executeBackgroundImageCacheCommand()}function addTop(e,t,r){if(t.src=r,t.complete)return;t.__kids=[],t.__pendingSrc=r,e[r]=t;var a=t.onload,l=t.onerror,o=t.onabort;function u(s){var m=t.__kids;t.__cleanup(),window.setTimeout(function(){for(var c=0;c<m.length;++c){var f=m[c];f.__pendingSrc==r&&(f.src=r,f.__pendingSrc=null)}},0),s&&s.call(t)}t.onload=function(){u(a)},t.onerror=function(){u(l)},t.onabort=function(){u(o)},t.__cleanup=function(){t.onload=a,t.onerror=l,t.onabort=o,t.__cleanup=t.__pendingSrc=t.__kids=null,delete e[r]}}function cleanupExpandos(e){e.__cleanup=e.__pendingSrc=e.__kids=null}function executeBackgroundImageCacheCommand(){try{$doc.execCommand("BackgroundImageCache",!1,!0)}catch(e){}}function removeChild(e,t,r){for(var a=e.__kids,l=0,o=a.length;l<o;++l)if(a[l]===t)return r||(a.splice(l,1),t.__pendingSrc=null),!0;return!1}function removeTop(e,t){var r=t.__pendingSrc,a=t.__kids;if(t.__cleanup(),t=a[0])if(t.__pendingSrc=null,addTop(e,t,r),t.__pendingSrc)a.splice(0,1),t.__kids=a;else for(var l=1,o=a.length;l<o;++l)a[l].src=r,a[l].__pendingSrc=null}function setImgSrc(e,t){$clinit_ImageSrcIE6();var r,a,l;if(r=$equals_0(e.__pendingSrc||e.src,t),!srcImgMap_0&&(srcImgMap_0={}),a=e.__pendingSrc,a!=null)if(l=srcImgMap_0[a],!l)cleanupExpandos(e);else if(l==e){if(r)return;removeTop(srcImgMap_0,l)}else if(removeChild(l,e,r)){if(r)return}else cleanupExpandos(e);l=srcImgMap_0[t],l?(l.__kids.push(e),e.__pendingSrc=l.__pendingSrc):addTop(srcImgMap_0,e,t)}var srcImgMap_0=null;function $compareTo(e,t){return e.ordinal-t.ordinal}function Enum_0(e,t){this.name_0=e,this.ordinal=t}function createValueOfMap(e){var t,r,a,l;for(t={},a=0,l=e.length;a<l;++a)r=e[a],t[":"+r.name_0]=r;return t}function valueOf(e,t){var r;if(r=e[":"+t],r)return r;throw t==null?new NullPointerException_0:new IllegalArgumentException_0}defineSeed(46,1,makeCastMap([Q$Serializable,Q$Comparable,Q$Enum])),_.compareTo$=function(t){return $compareTo(this,dynamicCast(t,Q$Enum))},_.equals$=function(t){return this===t},_.hashCode$=function(){return getHashCode(this)},_.toString$=function(){return this.name_0},_.name_0=null,_.ordinal=0;function $clinit_Style$TextAlign(){$clinit_Style$TextAlign=nullMethod,CENTER=new Style$TextAlign$1_0,JUSTIFY=new Style$TextAlign$2_0,LEFT=new Style$TextAlign$3_0,RIGHT=new Style$TextAlign$4_0,$VALUES=initValues(_3Lcom_google_gwt_dom_client_Style$TextAlign_2_classLit,makeCastMap([Q$Serializable,Q$Object_$1]),Q$Style$TextAlign,[CENTER,JUSTIFY,LEFT,RIGHT])}function values_0(){return