eval(function(p,a,c,k,e,r){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('(12(A,w){12 6t(){7(!c.4u){22{s.1P.8e("1D")}23(a){5k(6t,1);14}c.2B()}}12 8f(a,b){b.5l?c.4v({1B:b.5l,3x:1d,2k:"28"}):c.6u(b.1I||b.8g||b.2C||"");b.1o&&b.1o.2s(b)}12 X(a,b,d,f,e,j){17 i=a.18;7(1f b==="1Q"){19(17 o 1r b)X(a,o,b[o],f,e,d);14 a}7(d!==w){f=!j&&f&&c.1t(d);19(o=0;o<i;o++)e(a[o],b,f?d.1j(a[o],o,e(a[o],b)):d,j);14 a}14 i?e(a[0],b):w}12 J(){14(2D 8h).8i()}12 Y(){14 1d}12 Z(){14 1a}12 6v(a,b,d){d[0].1k=a;14 c.1m.29.1E(b,d)}12 6w(a){17 b,d=[],f=[],e=1s,j,i,o,k,n,r;i=c.1h(6,"2t");7(!(a.8j===6||!i||!i.35||a.2E&&a.1k==="3Z")){a.8j=6;17 u=i.35.24(0);19(k=0;k<u.18;k++){i=u[k];i.40.1p(O,"")===a.1k?f.1u(i.1J):u.2u(k--,1)}j=c(a.2c).4w(f,a.4x);n=0;19(r=j.18;n<r;n++)19(k=0;k<u.18;k++){i=u[k];7(j[n].1J===i.1J){o=j[n].1q;f=1c;7(i.6x==="41"||i.6x==="42")f=c(a.4y).4w(i.1J)[0];7(!f||f!==o)d.1u({1q:o,43:i})}}n=0;19(r=d.18;n<r;n++){j=d[n];a.4x=j.1q;a.1h=j.43.1h;a.43=j.43;7(j.43.8k.1E(j.1q,e)===1d){b=1d;25}}14 b}}12 6y(a,b){14"35."+(a&&a!=="*"?a+".":"")+b.1p(/\\./g,"`").1p(/ /g,"&")}12 6z(a){14!a||!a.1o||a.1o.1g===11}12 6A(a,b){17 d=0;b.1i(12(){7(6.1n===(a[d]&&a[d].1n)){17 f=c.1h(a[d++]),e=c.1h(6,f);7(f=f&&f.2t){2l e.29;e.2t={};19(17 j 1r f)19(17 i 1r f[j])c.1m.2m(6,j,f[j][i],f[j][i].1h)}}})}12 6B(a,b,d){17 f,e,j;b=b&&b[0]?b[0].1G||b[0]:s;7(a.18===1&&1f a[0]==="1w"&&a[0].18<aO&&b===s&&!6C.1e(a[0])&&(c.1x.5m||!6D.1e(a[0]))){e=1a;7(j=c.6E[a[0]])7(j!==1)f=j}7(!f){f=b.8l();c.6F(a,b,f,d)}7(e)c.6E[a[0]]=j?f:1;14{4z:f,6G:e}}12 K(a,b){17 d={};c.1i(6H.5n.1E([],6H.24(0,b)),12(){d[6]=a});14 d}12 6I(a){14"6J"1r a&&a.36?a:a.1g===9?a.4A||a.aP:1d}17 c=12(a,b){14 2D c.1v.6K(a,b)},8m=A.4B,8n=A.$,s=A.36,T,8o=/^[^<]*(<[\\w\\W]+>)[^>]*$|^#([\\w-]+)$/,8p=/^.[^:#\\[\\.,]*$/,8q=/\\S/,8r=/^(\\s|\\8s)+|(\\s|\\8s)+$/g,8t=/^<(\\w+)\\s*\\/?>(?:<\\/\\1>)?$/,P=aQ.aR,6L=1d,Q=[],L,$=5o.2f.8u,aa=5o.2f.aS,ba=2V.2f.1u,R=2V.2f.24,6M=2V.2f.1R;c.1v=c.2f={6K:12(a,b){17 d,f;7(!a)14 6;7(a.1g){6.26=6[0]=a;6.18=1;14 6}7(a==="1L"&&!b){6.26=s;6[0]=s.1L;6.1J="1L";6.18=1;14 6}7(1f a==="1w")7((d=8o.1M(a))&&(d[1]||!b))7(d[1]){f=b?b.1G||b:s;7(a=8t.1M(a))7(c.5p(b)){a=[s.1N(a[1])];c.1v.3e.1j(a,b,1a)}1b a=[f.1N(a[1])];1b{a=6B([d[1]],[f]);a=(a.6G?a.4z.3y(1a):a.4z).2F}14 c.3z(6,a)}1b{7(b=s.44(d[2])){7(b.4C!==d[2])14 T.1S(a);6.18=1;6[0]=b}6.26=s;6.1J=a;14 6}1b 7(!b&&/^\\w+$/.1e(a)){6.1J=a;6.26=s;a=s.2a(a);14 c.3z(6,a)}1b 14!b||b.4D?(b||T).1S(a):c(b).1S(a);1b 7(c.1t(a))14 T.2B(a);7(a.1J!==w){6.1J=a.1J;6.26=a.26}14 c.37(a,6)},1J:"",4D:"1.4.2",18:0,aT:12(){14 6.18},5q:12(){14 R.1j(6,0)},3A:12(a){14 a==1c?6.5q():a<0?6.24(a)[0]:6[a]},2G:12(a,b,d){17 f=c();c.2v(a)?ba.1E(f,a):c.3z(f,a);f.6N=6;f.26=6.26;7(b==="1S")f.1J=6.1J+(6.1J?" ":"")+d;1b 7(b)f.1J=6.1J+"."+b+"("+d+")";14 f},1i:12(a,b){14 c.1i(6,a,b)},2B:12(a){c.6O();7(c.4u)a.1j(s,c);1b Q&&Q.1u(a);14 6},45:12(a){14 a===-1?6.24(a):6.24(a,+a+1)},46:12(){14 6.45(0)},4E:12(){14 6.45(-1)},24:12(){14 6.2G(R.1E(6,1s),"24",R.1j(1s).3B(","))},2g:12(a){14 6.2G(c.2g(6,12(b,d){14 a.1j(b,d,b)}))},47:12(){14 6.6N||c(1c)},1u:ba,3C:[].3C,2u:[].2u};c.1v.6K.2f=c.1v;c.1y=c.1v.1y=12(){17 a=1s[0]||{},b=1,d=1s.18,f=1d,e,j,i,o;7(1f a==="5r"){f=a;a=1s[1]||{};b=2}7(1f a!=="1Q"&&!c.1t(a))a={};7(d===b){a=6;--b}19(;b<d;b++)7((e=1s[b])!=1c)19(j 1r e){i=a[j];o=e[j];7(a!==o)7(f&&o&&(c.5p(o)||c.2v(o))){i=i&&(c.5p(i)||c.2v(i))?i:c.2v(o)?[]:{};a[j]=c.1y(f,i,o)}1b 7(o!==w)a[j]=o}14 a};c.1y({aU:12(a){A.$=8n;7(a)A.4B=8m;14 c},4u:1d,2B:12(){7(!c.4u){7(!s.1L)14 5k(c.2B,13);c.4u=1a;7(Q){19(17 a,b=0;a=Q[b++];)a.1j(s,c);Q=1c}c.1v.5s&&c(s).5s("2B")}},6O:12(){7(!6L){6L=1a;7(s.3D==="2H")14 c.2B();7(s.38){s.38("8v",L,1d);A.38("5t",c.2B,1d)}1b 7(s.2W){s.2W("3E",L);A.2W("6P",c.2B);17 a=1d;22{a=A.8w==1c}23(b){}s.1P.8e&&a&&6t()}}},1t:12(a){14 $.1j(a)==="[1Q 8x]"},2v:12(a){14 $.1j(a)==="[1Q 2V]"},5p:12(a){7(!a||$.1j(a)!=="[1Q 5o]"||a.1g||a.4F)14 1d;7(a.6Q&&!aa.1j(a,"6Q")&&!aa.1j(a.6Q.2f,"aV"))14 1d;17 b;19(b 1r a);14 b===w||aa.1j(a,b)},4G:12(a){19(17 b 1r a)14 1d;14 1a},2o:12(a){8y a;},8z:12(a){7(1f a!=="1w"||!a)14 1c;a=c.5u(a);7(/^[\\],:{}\\s]*$/.1e(a.1p(/\\\\(?:["\\\\\\/aW]|u[0-9a-aX-F]{4})/g,"@").1p(/"[^"\\\\\\n\\r]*"|1a|1d|1c|-?\\d+(?:\\.\\d*)?(?:[aY][+\\-]?\\d+)?/g,"]").1p(/(?:^|:|,)(?:\\s*\\[)+/g,"")))14 A.5v&&A.5v.8A?A.5v.8A(a):(2D 8x("14 "+a))();1b c.2o("aZ 5v: "+a)},4H:12(){},6u:12(a){7(a&&8q.1e(a)){17 b=s.2a("8B")[0]||s.1P,d=s.1N("28");d.1k="1I/3F";7(c.1x.6R)d.2L(s.4I(a));1b d.1I=a;b.2M(d,b.1z);b.2s(d)}},1n:12(a,b){14 a.1n&&a.1n.5w()===b.5w()},1i:12(a,b,d){17 f,e=0,j=a.18,i=j===w||c.1t(a);7(d)7(i)19(f 1r a){7(b.1E(a[f],d)===1d)25}1b 19(;e<j;){7(b.1E(a[e++],d)===1d)25}1b 7(i)19(f 1r a){7(b.1j(a[f],f,a[f])===1d)25}1b 19(d=a[0];e<j&&b.1j(d,e,d)!==1d;d=a[++e]);14 a},5u:12(a){14(a||"").1p(8r,"")},37:12(a,b){b=b||[];7(a!=1c)a.18==1c||1f a==="1w"||c.1t(a)||1f a!=="12"&&a.4F?ba.1j(b,a):c.3z(b,a);14 b},3G:12(a,b){7(b.1R)14 b.1R(a);19(17 d=0,f=b.18;d<f;d++)7(b[d]===a)14 d;14-1},3z:12(a,b){17 d=a.18,f=0;7(1f b.18==="3H")19(17 e=b.18;f<e;f++)a[d++]=b[f];1b 19(;b[f]!==w;)a[d++]=b[f++];a.18=d;14 a},48:12(a,b,d){19(17 f=[],e=0,j=a.18;e<j;e++)!d!==!b(a[e],e)&&f.1u(a[e]);14 f},2g:12(a,b,d){19(17 f=[],e,j=0,i=a.18;j<i;j++){e=b(a[j],j,d);7(e!=1c)f[f.18]=e}14 f.5n.1E([],f)},1W:1,49:12(a,b,d){7(1s.18===2)7(1f b==="1w"){d=a;a=d[b];b=w}1b 7(b&&!c.1t(b)){d=b;b=w}7(!b&&a)b=12(){14 a.1E(d||6,1s)};7(a)b.1W=a.1W=a.1W||b.1W||c.1W++;14 b},8C:12(a){a=a.1F();a=/(8D)[ \\/]([\\w.]+)/.1M(a)||/(b0)(?:.*5x)?[ \\/]([\\w.]+)/.1M(a)||/(b1) ([\\w.]+)/.1M(a)||!/b2/.1e(a)&&/(b3)(?:.*? b4:([\\w.]+))?/.1M(a)||[];14{3f:a[1]||"",5x:a[2]||"0"}},3f:{}});P=c.8C(P);7(P.3f){c.3f[P.3f]=1a;c.3f.5x=P.5x}7(c.3f.8D)c.3f.b5=1a;7(6M)c.3G=12(a,b){14 6M.1j(b,a)};T=c(s);7(s.38)L=12(){s.5y("8v",L,1d);c.2B()};1b 7(s.2W)L=12(){7(s.3D==="2H"){s.6S("3E",L);c.2B()}};(12(){c.1x={};17 a=s.1P,b=s.1N("28"),d=s.1N("1H"),f="28"+J();d.1l.27="3g";d.2C="   <6T/><2h></2h><a 2N=\'/a\' 1l=\'8E:8F;6U:1D;1X:.55;\'>a</a><39 1k=\'3I\'/>";17 e=d.2a("*"),j=d.2a("a")[0];7(!(!e||!e.18||!j)){c.1x={6V:d.1z.1g===3,2p:!d.2a("2p").18,8G:!!d.2a("6T").18,1l:/8F/.1e(j.2w("1l")),8H:j.2w("2N")==="/a",1X:/^0.55$/.1e(j.1l.1X),5z:!!j.1l.5z,8I:d.2a("39")[0].2I==="2X",b6:s.1N("2i").2L(s.1N("4a")).4b,1o:d.2s(d.2L(s.1N("1H"))).1o===1c,5A:1a,5m:1d,6R:1d,6W:1a,4c:1c};b.1k="1I/3F";22{b.2L(s.4I("8J."+f+"=1;"))}23(i){}a.2M(b,a.1z);7(A[f]){c.1x.6R=1a;2l A[f]}22{2l b.1e}23(o){c.1x.5A=1d}a.2s(b);7(d.2W&&d.8K){d.2W("6X",12 k(){c.1x.6W=1d;d.6S("6X",k)});d.3y(1a).8K("6X")}d=s.1N("1H");d.2C="<39 1k=\'3h\' 2Y=\'b7\' 2Z=\'2Z\'/>";a=s.8l();a.2L(d.1z);c.1x.5m=a.3y(1a).3y(1a).6Y.2Z;c(12(){17 k=s.1N("1H");k.1l.2q=k.1l.8L="3J";s.1L.2L(k);c.4c=c.1x.4c=k.5B===2;s.1L.2s(k).1l.27="3g"});a=12(k){17 n=s.1N("1H");k="2X"+k;17 r=k 1r n;7(!r){n.8M(k,"14;");r=1f n[k]==="12"}14 r};c.1x.8N=a("3i");c.1x.8O=a("4J");a=b=d=e=j=1c}})();c.4K={"19":"8P","3a":"1T",b8:"8Q",b9:"bn",8R:"bo",bp:"bq",bs:"bt",bu:"6Z",bv:"bw",bx:"by"};17 G="4B"+J(),8S=0,70={};c.1y({2O:{},4d:G,4L:{71:1a,1Q:1a,bz:1a},1h:12(a,b,d){7(!(a.1n&&c.4L[a.1n.1F()])){a=a==A?70:a;17 f=a[G],e=c.2O;7(!f&&1f b==="1w"&&d===w)14 1c;f||(f=++8S);7(1f b==="1Q"){a[G]=f;e[f]=c.1y(1a,{},b)}1b 7(!e[f]){a[G]=f;e[f]={}}a=e[f];7(d!==w)a[b]=d;14 1f b==="1w"?a[b]:a}},4M:12(a,b){7(!(a.1n&&c.4L[a.1n.1F()])){a=a==A?70:a;17 d=a[G],f=c.2O,e=f[d];7(b){7(e){2l e[b];c.4G(e)&&c.4M(a)}}1b{7(c.1x.5A)2l a[c.4d];1b a.4N&&a.4N(c.4d);2l f[d]}}}});c.1v.1y({1h:12(a,b){7(1f a==="2P"&&6.18)14 c.1h(6[0]);1b 7(1f a==="1Q")14 6.1i(12(){c.1h(6,a)});17 d=a.2x(".");d[1]=d[1]?"."+d[1]:"";7(b===w){17 f=6.5s("bA"+d[1]+"!",[d[0]]);7(f===w&&6.18)f=c.1h(6[0],a);14 f===w&&d[1]?6.1h(d[0]):f}1b 14 6.2r("bB"+d[1]+"!",[d[0],b]).1i(12(){c.1h(6,a,b)})},4M:12(a){14 6.1i(12(){c.4M(6,a)})}});c.1y({2J:12(a,b,d){7(a){b=(b||"1U")+"2J";17 f=c.1h(a,b);7(!d)14 f||[];7(!f||c.2v(d))f=c.1h(a,b,c.37(d));1b f.1u(d);14 f}},3j:12(a,b){b=b||"1U";17 d=c.2J(a,b),f=d.3b();7(f==="72")f=d.3b();7(f){b==="1U"&&d.73("72");f.1j(a,12(){c.3j(a,b)})}}});c.1v.1y({2J:12(a,b){7(1f a!=="1w"){b=a;a="1U"}7(b===w)14 c.2J(6[0],a);14 6.1i(12(){17 d=c.2J(6,a,b);a==="1U"&&d[0]!=="72"&&c.3j(6,a)})},3j:12(a){14 6.1i(12(){c.3j(6,a)})},bC:12(a,b){a=c.1U?c.1U.5C[a]||a:a;b=b||"1U";14 6.2J(b,12(){17 d=6;5k(12(){c.3j(d,b)},a)})},bD:12(a){14 6.2J(a||"1U",[])}});17 bc=/[\\n\\t]/g,ca=/\\s+/,8T=/\\r/g,$a=/2N|5l|1l/,ab=/(2E|39)/i,bb=/(2E|39|1Q|2i|4O)/i,cb=/^(a|74)$/i,75=/3h|3I/;c.1v.1y({3e:12(a,b){14 X(6,a,b,1a,c.3e)},bE:12(a){14 6.1i(12(){c.3e(6,a,"");6.1g===1&&6.4N(a)})},76:12(a){7(c.1t(a))14 6.1i(12(n){17 r=c(6);r.76(a.1j(6,n,r.3e("3a")))});7(a&&1f a==="1w")19(17 b=(a||"").2x(ca),d=0,f=6.18;d<f;d++){17 e=6[d];7(e.1g===1)7(e.1T){19(17 j=" "+e.1T+" ",i=e.1T,o=0,k=b.18;o<k;o++)7(j.1R(" "+b[o]+" ")<0)i+=" "+b[o];e.1T=c.5u(i)}1b e.1T=a}14 6},77:12(a){7(c.1t(a))14 6.1i(12(k){17 n=c(6);n.77(a.1j(6,k,n.3e("3a")))});7(a&&1f a==="1w"||a===w)19(17 b=(a||"").2x(ca),d=0,f=6.18;d<f;d++){17 e=6[d];7(e.1g===1&&e.1T)7(a){19(17 j=(" "+e.1T+" ").1p(bc," "),i=0,o=b.18;i<o;i++)j=j.1p(" "+b[i]+" "," ");e.1T=c.5u(j)}1b e.1T=""}14 6},8U:12(a,b){17 d=1f a,f=1f b==="5r";7(c.1t(a))14 6.1i(12(e){17 j=c(6);j.8U(a.1j(6,e,j.3e("3a"),b),b)});14 6.1i(12(){7(d==="1w")19(17 e,j=0,i=c(6),o=b,k=a.2x(ca);e=k[j++];){o=f?o:!i.8V(e);i[o?"76":"77"](e)}1b 7(d==="2P"||d==="5r"){6.1T&&c.1h(6,"8W",6.1T);6.1T=6.1T||a===1d?"":c.1h(6,"8W")||""}})},8V:12(a){a=" "+a+" ";19(17 b=0,d=6.18;b<d;b++)7((" "+6[b].1T+" ").1p(bc," ").1R(a)>-1)14 1a;14 1d},3K:12(a){7(a===w){17 b=6[0];7(b){7(c.1n(b,"4a"))14(b.bF.2I||{}).8X?b.2I:b.1I;7(c.1n(b,"2i")){17 d=b.5D,f=[],e=b.1C;b=b.1k==="2i-4P";7(d<0)14 1c;17 j=b?d:0;19(d=b?d+1:e.18;j<d;j++){17 i=e[j];7(i.4b){a=c(i).3K();7(b)14 a;f.1u(a)}}14 f}7(75.1e(b.1k)&&!c.1x.8I)14 b.2w("2I")===1c?"2X":b.2I;14(b.2I||"").1p(8T,"")}14 w}17 o=c.1t(a);14 6.1i(12(k){17 n=c(6),r=a;7(6.1g===1){7(o)r=a.1j(6,k,n.3K());7(1f r==="3H")r+="";7(c.2v(r)&&75.1e(6.1k))6.2Z=c.3G(n.3K(),r)>=0;1b 7(c.1n(6,"2i")){17 u=c.37(r);c("4a",6).1i(12(){6.4b=c.3G(c(6).3K(),u)>=0});7(!u.18)6.5D=-1}1b 6.2I=r}})}});c.1y({5E:{3K:1a,2d:1a,2Q:1a,1I:1a,1h:1a,2q:1a,2K:1a,1O:1a},3e:12(a,b,d,f){7(!a||a.1g===3||a.1g===8)14 w;7(f&&b 1r c.5E)14 c(a)[b](d);f=a.1g!==1||!c.78(a);17 e=d!==w;b=f&&c.4K[b]||b;7(a.1g===1){17 j=$a.1e(b);7(b 1r a&&f&&!j){7(e){b==="1k"&&ab.1e(a.1n)&&a.1o&&c.2o("1k bG bH\'t be bI");a[b]=d}7(c.1n(a,"4Q")&&a.3L(b))14 a.3L(b).5F;7(b==="6Z")14(b=a.3L("6Z"))&&b.8X?b.2I:bb.1e(a.1n)||cb.1e(a.1n)&&a.2N?0:w;14 a[b]}7(!c.1x.1l&&f&&b==="1l"){7(e)a.1l.8Y=""+d;14 a.1l.8Y}e&&a.8M(b,""+d);a=!c.1x.8H&&f&&j?a.2w(b,2):a.2w(b);14 a===1c?w:a}14 c.1l(a,b,d)}});17 O=/\\.(.*)$/,db=12(a){14 a.1p(/[^\\w\\s\\.\\|`]/g,12(b){14"\\\\"+b})};c.1m={2m:12(a,b,d,f){7(!(a.1g===3||a.1g===8)){7(a.4F&&a!==A&&!a.8w)a=A;17 e,j;7(d.2y){e=d;d=e.2y}7(!d.1W)d.1W=c.1W++;7(j=c.1h(a)){17 i=j.2t=j.2t||{},o=j.29;7(!o)j.29=o=12(){14 1f c!=="2P"&&!c.1m.79?c.1m.29.1E(o.1q,1s):w};o.1q=a;b=b.2x(" ");19(17 k,n=0,r;k=b[n++];){j=e?c.1y({},e):{2y:d,1h:f};7(k.1R(".")>-1){r=k.2x(".");k=r.3b();j.4R=r.24(0).3C().3B(".")}1b{r=[];j.4R=""}j.1k=k;j.1W=d.1W;17 u=i[k],z=c.1m.30[k]||{};7(!u){u=i[k]=[];7(!z.3k||z.3k.1j(a,f,r,o)===1d)7(a.38)a.38(k,o,1d);1b a.2W&&a.2W("2X"+k,o)}7(z.2m){z.2m.1j(a,j);7(!j.2y.1W)j.2y.1W=d.1W}u.1u(j);c.1m.2R[k]=1a}a=1c}}},2R:{},2b:12(a,b,d,f){7(!(a.1g===3||a.1g===8)){17 e,j=0,i,o,k,n,r,u,z=c.1h(a),C=z&&z.2t;7(z&&C){7(b&&b.1k){d=b.2y;b=b.1k}7(!b||1f b==="1w"&&b.bJ(0)==="."){b=b||"";19(e 1r C)c.1m.2b(a,e+b)}1b{19(b=b.2x(" ");e=b[j++];){n=e;i=e.1R(".")<0;o=[];7(!i){o=e.2x(".");e=o.3b();k=2D 4S("(^|\\\\.)"+c.2g(o.24(0).3C(),db).3B("\\\\.(?:.*\\\\.)?")+"(\\\\.|$)")}7(r=C[e])7(d){n=c.1m.30[e]||{};19(B=f||0;B<r.18;B++){u=r[B];7(d.1W===u.1W){7(i||k.1e(u.4R)){f==1c&&r.2u(B--,1);n.2b&&n.2b.1j(a,u)}7(f!=1c)25}}7(r.18===0||f!=1c&&r.18===1){7(!n.3l||n.3l.1j(a,o)===1d)bd(a,e,z.29);2l C[e]}}1b 19(17 B=0;B<r.18;B++){u=r[B];7(i||k.1e(u.4R)){c.1m.2b(a,n,u.2y,B);r.2u(B--,1)}}}7(c.4G(C)){7(b=z.29)b.1q=1c;2l z.2t;2l z.29;c.4G(z)&&c.4M(a)}}}}},2r:12(a,b,d,f){17 e=a.1k||a;7(!f){a=1f a==="1Q"?a[G]?a:c.1y(c.3M(e),a):c.3M(e);7(e.1R("!")>=0){a.1k=e=e.24(0,-1);a.8Z=1a}7(!d){a.3N();c.1m.2R[e]&&c.1i(c.2O,12(){6.2t&&6.2t[e]&&c.1m.2r(a,b,6.29.1q)})}7(!d||d.1g===3||d.1g===8)14 w;a.4T=w;a.2c=d;b=c.37(b);b.73(a)}a.4x=d;(f=c.1h(d,"29"))&&f.1E(d,b);f=d.1o||d.1G;22{7(!(d&&d.1n&&c.4L[d.1n.1F()]))7(d["2X"+e]&&d["2X"+e].1E(d,b)===1d)a.4T=1d}23(j){}7(!a.7a()&&f)c.1m.2r(a,b,f,1a);1b 7(!a.7b()){f=a.2c;17 i,o=c.1n(f,"a")&&e==="3Z",k=c.1m.30[e]||{};7((!k.2S||k.2S.1j(d,a)===1d)&&!o&&!(f&&f.1n&&c.4L[f.1n.1F()])){22{7(f[e]){7(i=f["2X"+e])f["2X"+e]=1c;c.1m.79=1a;f[e]()}}23(n){}7(i)f["2X"+e]=i;c.1m.79=1d}}},29:12(a){17 b,d,f,e;a=1s[0]=c.1m.7c(a||A.1m);a.4x=6;b=a.1k.1R(".")<0&&!a.8Z;7(!b){d=a.1k.2x(".");a.1k=d.3b();f=2D 4S("(^|\\\\.)"+d.24(0).3C().3B("\\\\.(?:.*\\\\.)?")+"(\\\\.|$)")}e=c.1h(6,"2t");d=e[a.1k];7(e&&d){d=d.24(0);e=0;19(17 j=d.18;e<j;e++){17 i=d[e];7(b||f.1e(i.4R)){a.2y=i.2y;a.1h=i.1h;a.43=i;i=i.2y.1E(6,1s);7(i!==w){a.4T=i;7(i===1d){a.3m();a.3N()}}7(a.7d())25}}}14 a.4T},4K:"bK bL bM bN 2E bO 4U 7e 90 7f 4x 1h bP bQ 5G 2y 4e bR bS 7g bT bU bV bW 7h 91 bX bY 4y bZ c0 c1 92 2c 93 c2 c3 4V".2x(" "),7c:12(a){7(a[G])14 a;17 b=a;a=c.3M(b);19(17 d=6.4K.18,f;d;){f=6.4K[--d];a[f]=b[f]}7(!a.2c)a.2c=a.92||s;7(a.2c.1g===3)a.2c=a.2c.1o;7(!a.4y&&a.5G)a.4y=a.5G===a.2c?a.93:a.5G;7(a.7h==1c&&a.7e!=1c){b=s.1P;d=s.1L;a.7h=a.7e+(b&&b.3n||d&&d.3n||0)-(b&&b.5H||d&&d.5H||0);a.91=a.90+(b&&b.3o||d&&d.3o||0)-(b&&b.5I||d&&d.5I||0)}7(!a.4V&&(a.4U||a.4U===0?a.4U:a.4e))a.4V=a.4U||a.4e;7(!a.7g&&a.7f)a.7g=a.7f;7(!a.4V&&a.2E!==w)a.4V=a.2E&1?1:a.2E&2?3:a.2E&4?2:0;14 a},1W:c4,49:c.49,30:{2B:{3k:c.6O,3l:c.4H},35:{2m:12(a){c.1m.2m(6,a.40,c.1y({},a,{2y:6w}))},2b:12(a){17 b=1a,d=a.40.1p(O,"");c.1i(c.1h(6,"2t").35||[],12(){7(d===6.40.1p(O,""))14 b=1d});b&&c.1m.2b(6,a.40,6w)}},c5:{3k:12(a,b,d){7(6.4F)6.7i=d;14 1d},3l:12(a,b){7(6.7i===b)6.7i=1c}}}};17 bd=s.5y?12(a,b,d){a.5y(b,d,1d)}:12(a,b,d){a.6S("2X"+b,d)};c.3M=12(a){7(!6.3m)14 2D c.3M(a);7(a&&a.1k){6.7j=a;6.1k=a.1k}1b 6.1k=a;6.c6=J();6[G]=1a};c.3M.2f={3m:12(){6.7b=Z;17 a=6.7j;7(a){a.3m&&a.3m();a.c7=1d}},3N:12(){6.7a=Z;17 a=6.7j;7(a){a.3N&&a.3N();a.c8=1a}},c9:12(){6.7d=Z;6.3N()},7b:Y,7a:Y,7d:Y};17 be=12(a){17 b=a.4y;22{19(;b&&b!==6;)b=b.1o;7(b!==6){a.1k=a.1h;c.1m.29.1E(6,1s)}}23(d){}},7k=12(a){a.1k=a.1h;c.1m.29.1E(6,1s)};c.1i({41:"7l",42:"7m"},12(a,b){c.1m.30[a]={3k:12(d){c.1m.2m(6,b,d&&d.1J?7k:be,a)},3l:12(d){c.1m.2b(6,b,d&&d.1J?7k:be)}}});7(!c.1x.8N)c.1m.30.3i={3k:12(){7(6.1n.1F()!=="4Q"){c.1m.2m(6,"3Z.7n",12(a){17 b=a.2c,d=b.1k;7((d==="3i"||d==="7o")&&c(b).4w("4Q").18)14 6v("3i",6,1s)});c.1m.2m(6,"94.7n",12(a){17 b=a.2c,d=b.1k;7((d==="1I"||d==="4W")&&c(b).4w("4Q").18&&a.4e===13)14 6v("3i",6,1s)})}1b 14 1d},3l:12(){c.1m.2b(6,".7n")}};7(!c.1x.8O){17 bf=/4O|39|2i/i,ea,7p=12(a){17 b=a.1k,d=a.2I;7(b==="3h"||b==="3I")d=a.2Z;1b 7(b==="2i-5J")d=a.5D>-1?c.2g(a.1C,12(f){14 f.4b}).3B("-"):"";1b 7(a.1n.1F()==="2i")d=a.5D;14 d},5K=12(a,b){17 d=a.2c,f,e;7(!(!bf.1e(d.1n)||d.8Q)){f=c.1h(d,"7q");e=7p(d);7(a.1k!=="4X"||d.1k!=="3h")c.1h(d,"7q",e);7(!(f===w||e===f))7(f!=1c||e){a.1k="4J";14 c.1m.2r(a,b,d)}}};c.1m.30.4J={2T:{4X:5K,3Z:12(a){17 b=a.2c,d=b.1k;7(d==="3h"||d==="3I"||b.1n.1F()==="2i")14 5K.1j(6,a)},95:12(a){17 b=a.2c,d=b.1k;7(a.4e===13&&b.1n.1F()!=="4O"||a.4e===32&&(d==="3I"||d==="3h")||d==="2i-5J")14 5K.1j(6,a)},cc:12(a){a=a.2c;c.1h(a,"7q",7p(a))}},3k:12(){7(6.1k==="4Y")14 1d;19(17 a 1r ea)c.1m.2m(6,a+".96",ea[a]);14 bf.1e(6.1n)},3l:12(){c.1m.2b(6,".96");14 bf.1e(6.1n)}};ea=c.1m.30.4J.2T}s.38&&c.1i({5L:"7r",5M:"4X"},12(a,b){12 d(f){f=c.1m.7c(f);f.1k=b;14 c.1m.29.1j(6,f)}c.1m.30[b]={3k:12(){6.38(a,d,1a)},3l:12(){6.5y(a,d,1a)}}});c.1i(["7s","4P"],12(a,b){c.1v[b]=12(d,f,e){7(1f d==="1Q"){19(17 j 1r d)6[b](j,f,d[j],e);14 6}7(c.1t(f)){e=f;f=w}17 i=b==="4P"?c.49(e,12(k){c(6).4Z(k,i);14 e.1E(6,1s)}):e;7(d==="97"&&b!=="4P")6.4P(d,f,e);1b{j=0;19(17 o=6.18;j<o;j++)c.1m.2m(6[j],d,i,f)}14 6}});c.1v.1y({4Z:12(a,b){7(1f a==="1Q"&&!a.3m)19(17 d 1r a)6.4Z(d,a[d]);1b{d=0;19(17 f=6.18;d<f;d++)c.1m.2b(6[d],a,b)}14 6},cd:12(a,b,d,f){14 6.35(b,d,f,a)},ce:12(a,b,d){14 1s.18===0?6.4Z("35"):6.98(b,1c,d,a)},2r:12(a,b){14 6.1i(12(){c.1m.2r(a,b,6)})},5s:12(a,b){7(6[0]){a=c.3M(a);a.3m();a.3N();c.1m.2r(a,b,6[0]);14 a.4T}},3O:12(a){19(17 b=1s,d=1;d<b.18;)c.49(a,b[d++]);14 6.3Z(c.49(a,12(f){17 e=(c.1h(6,"99"+a.1W)||0)%d;c.1h(6,"99"+a.1W,e+1);f.3m();14 b[e].1E(6,1s)||1d}))},9b:12(a,b){14 6.41(a).42(b||a)}});17 bg={5L:"7r",5M:"4X",41:"7l",42:"7m"};c.1i(["35","98"],12(a,b){c.1v[b]=12(d,f,e,j){17 i,o=0,k,n,r=j||6.1J,u=j?6:c(6.26);7(c.1t(f)){e=f;f=w}19(d=(d||"").2x(" ");(i=d[o++])!=1c;){j=O.1M(i);k="";7(j){k=j[0];i=i.1p(O,"")}7(i==="9b")d.1u("41"+k,"42"+k);1b{n=i;7(i==="5L"||i==="5M"){d.1u(bg[i]+k);i+=k}1b i=(bg[i]||i)+k;b==="35"?u.1i(12(){c.1m.2m(6,6y(i,r),{1h:f,1J:r,2y:e,40:i,8k:e,6x:n})}):u.4Z(6y(i,r),e)}}14 6}});c.1i("5M 5L 7r 4X 5t cf 5N 97 3Z cg ch ci cj 7l 7m 41 42 4J 2i 3i 95 94 ck 2o".2x(" "),12(a,b){c.1v[b]=12(d){14 d?6.7s(b,d):6.2r(b)};7(c.5E)c.5E[b]=1a});A.2W&&!A.38&&A.2W("cl",12(){19(17 a 1r c.2O)7(c.2O[a].29)22{c.1m.2b(c.2O[a].29.1q)}23(b){}});(12(){12 a(g){19(17 h="",l,m=0;g[m];m++){l=g[m];7(l.1g===3||l.1g===4)h+=l.5F;1b 7(l.1g!==8)h+=a(l.2F)}14 h}12 b(g,h,l,m,q,p){q=0;19(17 v=m.18;q<v;q++){17 t=m[q];7(t){t=t[g];19(17 y=1d;t;){7(t.4f===l){y=m[t.5O];25}7(t.1g===1&&!p){t.4f=l;t.5O=q}7(t.1n.1F()===h){y=t;25}t=t[g]}m[q]=y}}}12 d(g,h,l,m,q,p){q=0;19(17 v=m.18;q<v;q++){17 t=m[q];7(t){t=t[g];19(17 y=1d;t;){7(t.4f===l){y=m[t.5O];25}7(t.1g===1){7(!p){t.4f=l;t.5O=q}7(1f h!=="1w"){7(t===h){y=1a;25}}1b 7(k.1A(h,[t]).18>0){y=t;25}}t=t[g]}m[q]=y}}}17 f=/((?:\\((?:\\([^()]+\\)|[^()]+)+\\)|\\[(?:\\[[^[\\]]*\\]|[\'"][^\'"]*[\'"]|[^[\\]\'"]+)+\\]|\\\\.|[^ >+~,(\\[\\\\]+)+|[>+~])(\\s*,\\s*)?((?:.|\\r|\\n)*)/g,e=0,j=5o.2f.8u,i=1d,o=1a;[0,0].3C(12(){o=1d;14 0});17 k=12(g,h,l,m){l=l||[];17 q=h=h||s;7(h.1g!==1&&h.1g!==9)14[];7(!g||1f g!=="1w")14 l;19(17 p=[],v,t,y,S,H=1a,M=x(h),I=g;(f.1M(""),v=f.1M(I))!==1c;){I=v[3];p.1u(v[1]);7(v[2]){S=v[3];25}}7(p.18>1&&r.1M(g))7(p.18===2&&n.31[p[0]])t=5P(p[0]+p[1],h);1b 19(t=n.31[p[0]]?[h]:k(p.3b(),h);p.18;){g=p.3b();7(n.31[g])g+=p.3b();t=5P(g,t)}1b{7(!m&&p.18>1&&h.1g===9&&!M&&n.2e.3c.1e(p[0])&&!n.2e.3c.1e(p[p.18-1])){v=k.1S(p.3b(),h,M);h=v.1Y?k.1A(v.1Y,v.4g)[0]:v.4g[0]}7(h){v=m?{1Y:p.5Q(),4g:z(m)}:k.1S(p.5Q(),p.18===1&&(p[0]==="~"||p[0]==="+")&&h.1o?h.1o:h,M);t=v.1Y?k.1A(v.1Y,v.4g):v.4g;7(p.18>0)y=z(t);1b H=1d;19(;p.18;){17 D=p.5Q();v=D;7(n.31[D])v=p.5Q();1b D="";7(v==1c)v=h;n.31[D](y,v,M)}}1b y=[]}y||(y=t);y||k.2o(D||g);7(j.1j(y)==="[1Q 2V]")7(H)7(h&&h.1g===1)19(g=0;y[g]!=1c;g++){7(y[g]&&(y[g]===1a||y[g].1g===1&&E(h,y[g])))l.1u(t[g])}1b 19(g=0;y[g]!=1c;g++)y[g]&&y[g].1g===1&&l.1u(t[g]);1b l.1u.1E(l,y);1b z(y,l);7(S){k(S,q,l,m);k.7t(l)}14 l};k.7t=12(g){7(B){i=o;g.3C(B);7(i)19(17 h=1;h<g.18;h++)g[h]===g[h-1]&&g.2u(h--,1)}14 g};k.9c=12(g,h){14 k(g,1c,1c,h)};k.1S=12(g,h,l){17 m,q;7(!g)14[];19(17 p=0,v=n.5R.18;p<v;p++){17 t=n.5R[p];7(q=n.5S[t].1M(g)){17 y=q[1];q.2u(1,1);7(y.5T(y.18-1)!=="\\\\"){q[1]=(q[1]||"").1p(/\\\\/g,"");m=n.1S[t](q,h,l);7(m!=1c){g=g.1p(n.2e[t],"");25}}}}m||(m=h.2a("*"));14{4g:m,1Y:g}};k.1A=12(g,h,l,m){19(17 q=g,p=[],v=h,t,y,S=h&&h[0]&&x(h[0]);g&&h.18;){19(17 H 1r n.1A)7((t=n.5S[H].1M(g))!=1c&&t[2]){17 M=n.1A[H],I,D;D=t[1];y=1d;t.2u(1,1);7(D.5T(D.18-1)!=="\\\\"){7(v===p)p=[];7(n.7u[H])7(t=n.7u[H](t,v,l,p,m,S)){7(t===1a)cm}1b y=I=1a;7(t)19(17 U=0;(D=v[U])!=1c;U++)7(D){I=M(D,t,U,v);17 a=m^!!I;7(l&&I!=1c)7(a)y=1a;1b v[U]=1d;1b 7(a){p.1u(D);y=1a}}7(I!==w){l||(v=p);g=g.1p(n.2e[H],"");7(!y)14[];25}}}7(g===q)7(y==1c)k.2o(g);1b 25;q=g}14 v};k.2o=12(g){8y"9d 2o, 9e 9f: "+g;};17 n=k.9g={5R:["3c","7v","4h"],2e:{3c:/#((?:[\\w\\4i-\\4j-]|\\\\.)+)/,50:/\\.((?:[\\w\\4i-\\4j-]|\\\\.)+)/,7v:/\\[2Y=[\'"]*((?:[\\w\\4i-\\4j-]|\\\\.)+)[\'"]*\\]/,7w:/\\[\\s*((?:[\\w\\4i-\\4j-]|\\\\.)+)\\s*(?:(\\S?=)\\s*([\'"]*)(.*?)\\3|)\\s*\\]/,4h:/^((?:[\\w\\4i-\\4j\\*-]|\\\\.)+)/,5U:/:(9h|3p|4E|46)-cn(?:\\((5V|5W|[\\dn+-]*)\\))?/,3P:/:(3p|45|9i|9j|46|4E|5V|5W)(?:\\((\\d*)\\))?(?=[^-]|$)/,51:/:((?:[\\w\\4i-\\4j-]|\\\\.)+)(?:\\(([\'"]?)((?:\\([^\\)]+\\)|[^\\(\\)]*)+)\\2\\))?/},5S:{},7x:{"3a":"1T","19":"8P"},5X:{2N:12(g){14 g.2w("2N")}},31:{"+":12(g,h){17 l=1f h==="1w",m=l&&!/\\W/.1e(h);l=l&&!m;7(m)h=h.1F();m=0;19(17 q=g.18,p;m<q;m++)7(p=g[m]){19(;(p=p.4k)&&p.1g!==1;);g[m]=l||p&&p.1n.1F()===h?p||1d:p===h}l&&k.1A(h,g,1a)},">":12(g,h){17 l=1f h==="1w";7(l&&!/\\W/.1e(h)){h=h.1F();19(17 m=0,q=g.18;m<q;m++){17 p=g[m];7(p){l=p.1o;g[m]=l.1n.1F()===h?l:1d}}}1b{m=0;19(q=g.18;m<q;m++)7(p=g[m])g[m]=l?p.1o:p.1o===h;l&&k.1A(h,g,1a)}},"":12(g,h,l){17 m=e++,q=d;7(1f h==="1w"&&!/\\W/.1e(h)){17 p=h=h.1F();q=b}q("1o",h,m,g,p,l)},"~":12(g,h,l){17 m=e++,q=d;7(1f h==="1w"&&!/\\W/.1e(h)){17 p=h=h.1F();q=b}q("4k",h,m,g,p,l)}},1S:{3c:12(g,h,l){7(1f h.44!=="2P"&&!l)14(g=h.44(g[1]))?[g]:[]},7v:12(g,h){7(1f h.9k!=="2P"){17 l=[];h=h.9k(g[1]);19(17 m=0,q=h.18;m<q;m++)h[m].2w("2Y")===g[1]&&l.1u(h[m]);14 l.18===0?1c:l}},4h:12(g,h){14 h.2a(g[1])}},7u:{50:12(g,h,l,m,q,p){g=" "+g[1].1p(/\\\\/g,"")+" ";7(p)14 g;p=0;19(17 v;(v=h[p])!=1c;p++)7(v)7(q^(v.1T&&(" "+v.1T+" ").1p(/[\\t\\n]/g," ").1R(g)>=0))l||m.1u(v);1b 7(l)h[p]=1d;14 1d},3c:12(g){14 g[1].1p(/\\\\/g,"")},4h:12(g){14 g[1].1F()},5U:12(g){7(g[1]==="3p"){17 h=/(-?)(\\d*)n((?:\\+|-)?\\d*)/.1M(g[2]==="5V"&&"2n"||g[2]==="5W"&&"2n+1"||!/\\D/.1e(g[2])&&"co+"+g[2]||g[2]);g[2]=h[1]+(h[2]||1)-0;g[3]=h[3]-0}g[0]=e++;14 g},7w:12(g,h,l,m,q,p){h=g[1].1p(/\\\\/g,"");7(!p&&n.7x[h])g[1]=n.7x[h];7(g[2]==="~=")g[4]=" "+g[4]+" ";14 g},51:12(g,h,l,m,q){7(g[1]==="52")7((f.1M(g[3])||"").18>1||/^\\w/.1e(g[3]))g[3]=k(g[3],1c,1c,h);1b{g=k.1A(g[3],h,l,1a^q);l||m.1u.1E(m,g);14 1d}1b 7(n.2e.3P.1e(g[0])||n.2e.5U.1e(g[0]))14 1a;14 g},3P:12(g){g.73(1a);14 g}},2T:{cp:12(g){14 g.5Y===1d&&g.1k!=="2U"},5Y:12(g){14 g.5Y===1a},2Z:12(g){14 g.2Z===1a},4b:12(g){14 g.4b===1a},5Z:12(g){14!!g.1z},4l:12(g){14!g.1z},9l:12(g,h,l){14!!k(l[3],g).18},cq:12(g){14/h\\d/i.1e(g.1n)},1I:12(g){14"1I"===g.1k},3h:12(g){14"3h"===g.1k},3I:12(g){14"3I"===g.1k},4Y:12(g){14"4Y"===g.1k},4W:12(g){14"4W"===g.1k},3i:12(g){14"3i"===g.1k},7o:12(g){14"7o"===g.1k},9m:12(g){14"9m"===g.1k},2E:12(g){14"2E"===g.1k||g.1n.1F()==="2E"},39:12(g){14/39|2i|4O|2E/i.1e(g.1n)}},9n:{46:12(g,h){14 h===0},4E:12(g,h,l,m){14 h===m.18-1},5V:12(g,h){14 h%2===0},5W:12(g,h){14 h%2===1},9j:12(g,h,l){14 h<l[3]-0},9i:12(g,h,l){14 h>l[3]-0},3p:12(g,h,l){14 l[3]-0===h},45:12(g,h,l){14 l[3]-0===h}},1A:{51:12(g,h,l,m){17 q=h[1],p=n.2T[q];7(p)14 p(g,l,h,m);1b 7(q==="53")14(g.8g||g.cr||a([g])||"").1R(h[3])>=0;1b 7(q==="52"){h=h[3];l=0;19(m=h.18;l<m;l++)7(h[l]===g)14 1d;14 1a}1b k.2o("9d 2o, 9e 9f: "+q)},5U:12(g,h){17 l=h[1],m=g;cs(l){60"9h":60"46":19(;m=m.4k;)7(m.1g===1)14 1d;7(l==="46")14 1a;m=g;60"4E":19(;m=m.3d;)7(m.1g===1)14 1d;14 1a;60"3p":l=h[2];17 q=h[3];7(l===1&&q===0)14 1a;h=h[0];17 p=g.1o;7(p&&(p.4f!==h||!g.7y)){17 v=0;19(m=p.1z;m;m=m.3d)7(m.1g===1)m.7y=++v;p.4f=h}g=g.7y-q;14 l===0?g===0:g%l===0&&g/l>=0}},3c:12(g,h){14 g.1g===1&&g.2w("4C")===h},4h:12(g,h){14 h==="*"&&g.1g===1||g.1n.1F()===h},50:12(g,h){14(" "+(g.1T||g.2w("3a"))+" ").1R(h)>-1},7w:12(g,h){17 l=h[1];g=n.5X[l]?n.5X[l](g):g[l]!=1c?g[l]:g.2w(l);l=g+"";17 m=h[2];h=h[4];14 g==1c?m==="!=":m==="="?l===h:m==="*="?l.1R(h)>=0:m==="~="?(" "+l+" ").1R(h)>=0:!h?l&&g!==1d:m==="!="?l!==h:m==="^="?l.1R(h)===0:m==="$="?l.5T(l.18-h.18)===h:m==="|="?l===h||l.5T(0,h.18+1)===h+"-":1d},3P:12(g,h,l,m){17 q=n.9n[h[2]];7(q)14 q(g,l,h,m)}}},r=n.2e.3P;19(17 u 1r n.2e){n.2e[u]=2D 4S(n.2e[u].61+/(?![^\\[]*\\])(?![^\\(]*\\))/.61);n.5S[u]=2D 4S(/(^(?:.|\\r|\\n)*?)/.61+n.2e[u].61.1p(/\\\\(\\d+)/g,12(g,h){14"\\\\"+(h-0+1)}))}17 z=12(g,h){g=2V.2f.24.1j(g,0);7(h){h.1u.1E(h,g);14 h}14 g};22{2V.2f.24.1j(s.1P.2F,0)}23(C){z=12(g,h){h=h||[];7(j.1j(g)==="[1Q 2V]")2V.2f.1u.1E(h,g);1b 7(1f g.18==="3H")19(17 l=0,m=g.18;l<m;l++)h.1u(g[l]);1b 19(l=0;g[l];l++)h.1u(g[l]);14 h}}17 B;7(s.1P.3Q)B=12(g,h){7(!g.3Q||!h.3Q){7(g==h)i=1a;14 g.3Q?-1:1}g=g.3Q(h)&4?-1:g===h?0:1;7(g===0)i=1a;14 g};1b 7("4m"1r s.1P)B=12(g,h){7(!g.4m||!h.4m){7(g==h)i=1a;14 g.4m?-1:1}g=g.4m-h.4m;7(g===0)i=1a;14 g};1b 7(s.7z)B=12(g,h){7(!g.1G||!h.1G){7(g==h)i=1a;14 g.1G?-1:1}17 l=g.1G.7z(),m=h.1G.7z();l.9o(g,0);l.9p(g,0);m.9o(h,0);m.9p(h,0);g=l.ct(cu.cv,m);7(g===0)i=1a;14 g};(12(){17 g=s.1N("1H"),h="28"+(2D 8h).8i();g.2C="<a 2Y=\'"+h+"\'/>";17 l=s.1P;l.2M(g,l.1z);7(s.44(h)){n.1S.3c=12(m,q,p){7(1f q.44!=="2P"&&!p)14(q=q.44(m[1]))?q.4C===m[1]||1f q.3L!=="2P"&&q.3L("4C").5F===m[1]?[q]:w:[]};n.1A.3c=12(m,q){17 p=1f m.3L!=="2P"&&m.3L("4C");14 m.1g===1&&p&&p.5F===q}}l.2s(g);l=g=1c})();(12(){17 g=s.1N("1H");g.2L(s.cw(""));7(g.2a("*").18>0)n.1S.4h=12(h,l){l=l.2a(h[1]);7(h[1]==="*"){h=[];19(17 m=0;l[m];m++)l[m].1g===1&&h.1u(l[m]);l=h}14 l};g.2C="<a 2N=\'#\'></a>";7(g.1z&&1f g.1z.2w!=="2P"&&g.1z.2w("2N")!=="#")n.5X.2N=12(h){14 h.2w("2N",2)};g=1c})();s.62&&12(){17 g=k,h=s.1N("1H");h.2C="<p 3a=\'9q\'></p>";7(!(h.62&&h.62(".9q").18===0)){k=12(m,q,p,v){q=q||s;7(!v&&q.1g===9&&!x(q))22{14 z(q.62(m),p)}23(t){}14 g(m,q,p,v)};19(17 l 1r g)k[l]=g[l];h=1c}}();(12(){17 g=s.1N("1H");g.2C="<1H 3a=\'1e e\'></1H><1H 3a=\'1e\'></1H>";7(!(!g.54||g.54("e").18===0)){g.6Y.1T="e";7(g.54("e").18!==1){n.5R.2u(1,0,"50");n.1S.50=12(h,l,m){7(1f l.54!=="2P"&&!m)14 l.54(h[1])};g=1c}}})();17 E=s.3Q?12(g,h){14!!(g.3Q(h)&16)}:12(g,h){14 g!==h&&(g.53?g.53(h):1a)},x=12(g){14(g=(g?g.1G||g:0).1P)?g.1n!=="cx":1d},5P=12(g,h){17 l=[],m="",q;19(h=h.1g?[h]:h;q=n.2e.51.1M(g);){m+=q[0];g=g.1p(n.2e.51,"")}g=n.31[g]?g+"*":g;q=0;19(17 p=h.18;q<p;q++)k(g,h[q],l);14 k.1A(m,l)};c.1S=k;c.1Y=k.9g;c.1Y[":"]=c.1Y.2T;c.7A=k.7t;c.1I=a;c.78=x;c.53=E})();17 bh=/cy$/,9r=/^(?:9s|9t|9u)/,9v=/,/;R=2V.2f.24;17 bi=12(a,b,d){7(c.1t(b))14 c.48(a,12(e,j){14!!b.1j(e,j,e)===d});1b 7(b.1g)14 c.48(a,12(e){14 e===b===d});1b 7(1f b==="1w"){17 f=c.48(a,12(e){14 e.1g===1});7(8p.1e(b))14 c.1A(b,f,!d);1b b=c.1A(b,f)}14 c.48(a,12(e){14 c.3G(e,b)>=0===d})};c.1v.1y({1S:12(a){19(17 b=6.2G("","1S",a),d=0,f=0,e=6.18;f<e;f++){d=b.18;c.1S(a,6[f],b);7(f>0)19(17 j=d;j<b.18;j++)19(17 i=0;i<d;i++)7(b[i]===b[j]){b.2u(j--,1);25}}14 b},9l:12(a){17 b=c(a);14 6.1A(12(){19(17 d=0,f=b.18;d<f;d++)7(c.53(6,b[d]))14 1a})},52:12(a){14 6.2G(bi(6,a,1d),"52",a)},1A:12(a){14 6.2G(bi(6,a,1a),"1A",a)},4n:12(a){14!!a&&c.1A(a,6).18>0},4w:12(a,b){7(c.2v(a)){17 d=[],f=6[0],e,j={},i;7(f&&a.18){e=0;19(17 o=a.18;e<o;e++){i=a[e];j[i]||(j[i]=c.1Y.2e.3P.1e(i)?c(i,b||6.26):i)}19(;f&&f.1G&&f!==b;){19(i 1r j){e=j[i];7(e.4D?e.63(f)>-1:c(f).4n(e)){d.1u({1J:i,1q:f});2l j[i]}}f=f.1o}}14 d}17 k=c.1Y.2e.3P.1e(a)?c(a,b||6.26):1c;14 6.2g(12(n,r){19(;r&&r.1G&&r!==b;){7(k?k.63(r)>-1:c(r).4n(a))14 r;r=r.1o}14 1c})},63:12(a){7(!a||1f a==="1w")14 c.3G(6[0],a?c(a):6.5Z().9w());14 c.3G(a.4D?a[0]:a,6)},2m:12(a,b){a=1f a==="1w"?c(a,b||6.26):c.37(a);b=c.3z(6.3A(),a);14 6.2G(6z(a[0])||6z(b[0])?b:c.7A(b))},cz:12(){14 6.2m(6.6N)}});c.1i({5Z:12(a){14(a=a.1o)&&a.1g!==11?a:1c},9s:12(a){14 c.3R(a,"1o")},cA:12(a,b,d){14 c.3R(a,"1o",d)},cB:12(a){14 c.3p(a,2,"3d")},cC:12(a){14 c.3p(a,2,"4k")},cD:12(a){14 c.3R(a,"3d")},9u:12(a){14 c.3R(a,"4k")},cE:12(a,b,d){14 c.3R(a,"3d",d)},9t:12(a,b,d){14 c.3R(a,"4k",d)},cF:12(a){14 c.7B(a.1o.1z,a)},9w:12(a){14 c.7B(a.1z)},9x:12(a){14 c.1n(a,"cG")?a.cH||a.cI.36:c.37(a.2F)}},12(a,b){c.1v[a]=12(d,f){17 e=c.2g(6,b,d);bh.1e(a)||(f=d);7(f&&1f f==="1w")e=c.1A(f,e);e=6.18>1?c.7A(e):e;7((6.18>1||9v.1e(f))&&9r.1e(a))e=e.cJ();14 6.2G(e,a,R.1j(1s).3B(","))}});c.1y({1A:12(a,b,d){7(d)a=":52("+a+")";14 c.1S.9c(a,b)},3R:12(a,b,d){17 f=[];19(a=a[b];a&&a.1g!==9&&(d===w||a.1g!==1||!c(a).4n(d));){a.1g===1&&f.1u(a);a=a[b]}14 f},3p:12(a,b,d){b=b||1;19(17 f=0;a;a=a[d])7(a.1g===1&&++f===b)25;14 a},7B:12(a,b){19(17 d=[];a;a=a.3d)a.1g===1&&a!==b&&d.1u(a);14 d}});17 bj=/ 4B\\d+="(?:\\d+|1c)"/g,V=/^\\s+/,7C=/(<([\\w:]+)[^>]*?)\\/>/g,9y=/^(?:74|br|9z|71|cK|cL|39|6T|cM|56)$/i,7D=/<([\\w:]+)/,9A=/<2p/i,9B=/<|&#?\\w+;/,6C=/<28|<1Q|<71|<4a|<1l/i,6D=/2Z\\s*(?:[^=]|=\\s*.2Z.)/i,7E=12(a,b,d){14 9y.1e(d)?a:b+"></"+d+">"},F={4a:[1,"<2i 5J=\'5J\'>","</2i>"],cN:[1,"<9C>","</9C>"],9D:[1,"<2h>","</2h>"],3S:[2,"<2h><2p>","</2p></2h>"],64:[3,"<2h><2p><3S>","</3S></2p></2h>"],9z:[2,"<2h><2p></2p><7F>","</7F></2h>"],74:[1,"<2g>","</2g>"],2S:[0,"",""]};F.cO=F.4a;F.2p=F.cP=F.7F=F.cQ=F.9D;F.cR=F.64;7(!c.1x.8G)F.2S=[1,"1H<1H>","</1H>"];c.1v.1y({1I:12(a){7(c.1t(a))14 6.1i(12(b){17 d=c(6);d.1I(a.1j(6,b,d.1I()))});7(1f a!=="1Q"&&a!==w)14 6.4l().33((6[0]&&6[0].1G||s).4I(a));14 c.1I(6)},65:12(a){7(c.1t(a))14 6.1i(12(d){c(6).65(a.1j(6,d))});7(6[0]){17 b=c(a,6[0].1G).45(0).7G(1a);6[0].1o&&b.2M(6[0]);b.2g(12(){19(17 d=6;d.1z&&d.1z.1g===1;)d=d.1z;14 d}).33(6)}14 6},9E:12(a){7(c.1t(a))14 6.1i(12(b){c(6).9E(a.1j(6,b))});14 6.1i(12(){17 b=c(6),d=b.9x();d.18?d.65(a):b.33(a)})},cS:12(a){14 6.1i(12(){c(6).65(a)})},cT:12(){14 6.5Z().1i(12(){c.1n(6,"1L")||c(6).57(6.2F)}).47()},33:12(){14 6.3T(1s,1a,12(a){6.1g===1&&6.2L(a)})},9F:12(){14 6.3T(1s,1a,12(a){6.1g===1&&6.2M(a,6.1z)})},66:12(){7(6[0]&&6[0].1o)14 6.3T(1s,1d,12(b){6.1o.2M(b,6)});1b 7(1s.18){17 a=c(1s[0]);a.1u.1E(a,6.5q());14 6.2G(a,"66",1s)}},7H:12(){7(6[0]&&6[0].1o)14 6.3T(1s,1d,12(b){6.1o.2M(b,6.3d)});1b 7(1s.18){17 a=6.2G(6,"7H",1s);a.1u.1E(a,c(1s[0]).5q());14 a}},2b:12(a,b){19(17 d=0,f;(f=6[d])!=1c;d++)7(!a||c.1A(a,[f]).18){7(!b&&f.1g===1){c.58(f.2a("*"));c.58([f])}f.1o&&f.1o.2s(f)}14 6},4l:12(){19(17 a=0,b;(b=6[a])!=1c;a++)19(b.1g===1&&c.58(b.2a("*"));b.1z;)b.2s(b.1z);14 6},7G:12(a){17 b=6.2g(12(){7(!c.1x.6W&&!c.78(6)){17 d=6.cU,f=6.1G;7(!d){d=f.1N("1H");d.2L(6.3y(1a));d=d.2C}14 c.6F([d.1p(bj,"").1p(/=([^="\'>\\s]+\\/)>/g,\'="$1">\').1p(V,"")],f)[0]}1b 14 6.3y(1a)});7(a===1a){6A(6,b);6A(6.1S("*"),b.1S("*"))}14 b},2Q:12(a){7(a===w)14 6[0]&&6[0].1g===1?6[0].2C.1p(bj,""):1c;1b 7(1f a==="1w"&&!6C.1e(a)&&(c.1x.6V||!V.1e(a))&&!F[(7D.1M(a)||["",""])[1].1F()]){a=a.1p(7C,7E);22{19(17 b=0,d=6.18;b<d;b++)7(6[b].1g===1){c.58(6[b].2a("*"));6[b].2C=a}}23(f){6.4l().33(a)}}1b c.1t(a)?6.1i(12(e){17 j=c(6),i=j.2Q();j.4l().33(12(){14 a.1j(6,e,i)})}):6.4l().33(a);14 6},57:12(a){7(6[0]&&6[0].1o){7(c.1t(a))14 6.1i(12(b){17 d=c(6),f=d.2Q();d.57(a.1j(6,b,f))});7(1f a!=="1w")a=c(a).9G();14 6.1i(12(){17 b=6.3d,d=6.1o;c(6).2b();b?c(b).66(a):c(d).33(a)})}1b 14 6.2G(c(c.1t(a)?a():a),"57",a)},9G:12(a){14 6.2b(a,1a)},3T:12(a,b,d){12 f(u){14 c.1n(u,"2h")?u.2a("2p")[0]||u.2L(u.1G.1N("2p")):u}17 e,j,i=a[0],o=[],k;7(!c.1x.5m&&1s.18===3&&1f i==="1w"&&6D.1e(i))14 6.1i(12(){c(6).3T(a,b,d,1a)});7(c.1t(i))14 6.1i(12(u){17 z=c(6);a[0]=i.1j(6,u,b?z.2Q():w);z.3T(a,b,d)});7(6[0]){e=i&&i.1o;e=c.1x.1o&&e&&e.1g===11&&e.2F.18===6.18?{4z:e}:6B(a,6,o);k=e.4z;7(j=k.2F.18===1?(k=k.1z):k.1z){b=b&&c.1n(j,"3S");19(17 n=0,r=6.18;n<r;n++)d.1j(b?f(6[n],j):6[n],n>0||e.6G||6.18>1?k.3y(1a):k)}o.18&&c.1i(o,8f)}14 6}});c.6E={};c.1i({9H:"33",cV:"9F",2M:"66",cW:"7H",cX:"57"},12(a,b){c.1v[a]=12(d){17 f=[];d=c(d);17 e=6.18===1&&6[0].1o;7(e&&e.1g===11&&e.2F.18===1&&d.18===1){d[b](6[0]);14 6}1b{e=0;19(17 j=d.18;e<j;e++){17 i=(e>0?6.7G(1a):6).3A();c.1v[b].1E(c(d[e]),i);f=f.5n(i)}14 6.2G(f,a,d.1J)}}});c.1y({6F:12(a,b,d,f){b=b||s;7(1f b.1N==="2P")b=b.1G||b[0]&&b[0].1G||s;19(17 e=[],j=0,i;(i=a[j])!=1c;j++){7(1f i==="3H")i+="";7(i){7(1f i==="1w"&&!9B.1e(i))i=b.4I(i);1b 7(1f i==="1w"){i=i.1p(7C,7E);17 o=(7D.1M(i)||["",""])[1].1F(),k=F[o]||F.2S,n=k[0],r=b.1N("1H");19(r.2C=k[1]+i+k[2];n--;)r=r.6Y;7(!c.1x.2p){n=9A.1e(i);o=o==="2h"&&!n?r.1z&&r.1z.2F:k[1]==="<2h>"&&!n?r.2F:[];19(k=o.18-1;k>=0;--k)c.1n(o[k],"2p")&&!o[k].2F.18&&o[k].1o.2s(o[k])}!c.1x.6V&&V.1e(i)&&r.2M(b.4I(V.1M(i)[0]),r.1z);i=r.2F}7(i.1g)e.1u(i);1b e=c.3z(e,i)}}7(d)19(j=0;e[j];j++)7(f&&c.1n(e[j],"28")&&(!e[j].1k||e[j].1k.1F()==="1I/3F"))f.1u(e[j].1o?e[j].1o.2s(e[j]):e[j]);1b{e[j].1g===1&&e.2u.1E(e,[j+1,0].5n(c.37(e[j].2a("28"))));d.2L(e[j])}14 e},58:12(a){19(17 b,d,f=c.2O,e=c.1m.30,j=c.1x.5A,i=0,o;(o=a[i])!=1c;i++)7(d=o[c.4d]){b=f[d];7(b.2t)19(17 k 1r b.2t)e[k]?c.1m.2b(o,k):bd(o,k,b.29);7(j)2l o[c.4d];1b o.4N&&o.4N(c.4d);2l f[d]}}});17 bk=/z-?63|cY-?cZ|1X|9I|d0-?2K/i,7I=/9J\\([^)]*\\)/,7J=/1X=([^)]*)/,67=/6U/i,68=/-([a-z])/d1,9K=/([A-Z])/g,9L=/^-?\\d+(?:3U)?$/i,9M=/^-?\\d/,9N={2j:"69",9O:"2U",27:"6a"},9P=["9Q","d2"],9R=["9S","d3"],9T=s.4A&&s.4A.6b,7K=c.1x.5z?"5z":"d4",6c=12(a,b){14 b.5w()};c.1v.2d=12(a,b){14 X(6,a,b,1a,12(d,f,e){7(e===w)14 c.1Z(d,f);7(1f e==="3H"&&!bk.1e(f))e+="3U";c.1l(d,f,e)})};c.1y({1l:12(a,b,d){7(!a||a.1g===3||a.1g===8)14 w;7((b==="2q"||b==="2K")&&1V(d)<0)d=w;17 f=a.1l||a,e=d!==w;7(!c.1x.1X&&b==="1X"){7(e){f.9I=1;b=7L(d,10)+""==="d5"?"":"9J(1X="+d*7M+")";a=f.1A||c.1Z(a,"1A")||"";f.1A=7I.1e(a)?a.1p(7I,b):b}14 f.1A&&f.1A.1R("1X=")>=0?1V(7J.1M(f.1A)[1])/7M+"":""}7(67.1e(b))b=7K;b=b.1p(68,6c);7(e)f[b]=d;14 f[b]},2d:12(a,b,d,f){7(b==="2q"||b==="2K"){17 e,j=b==="2q"?9P:9R;12 i(){e=b==="2q"?a.5B:a.9U;f!=="4o"&&c.1i(j,12(){f||(e-=1V(c.1Z(a,"6d"+6,1a))||0);7(f==="4p")e+=1V(c.1Z(a,"4p"+6,1a))||0;1b e-=1V(c.1Z(a,"4o"+6+"9V",1a))||0})}a.5B!==0?i():c.9W(a,9N,i);14 3q.59(0,3q.d6(e))}14 c.1Z(a,b,d)},1Z:12(a,b,d){17 f,e=a.1l;7(!c.1x.1X&&b==="1X"&&a.3r){f=7J.1e(a.3r.1A||"")?1V(4S.$1)/7M+"":"";14 f===""?"1":f}7(67.1e(b))b=7K;7(!d&&e&&e[b])f=e[b];1b 7(9T){7(67.1e(b))b="6U";b=b.1p(9K,"-$1").1F();e=a.1G.4A;7(!e)14 1c;7(a=e.6b(a,1c))f=a.d7(b);7(b==="1X"&&f==="")f="1"}1b 7(a.3r){d=b.1p(68,6c);f=a.3r[b]||a.3r[d];7(!9L.1e(f)&&9M.1e(f)){b=e.1D;17 j=a.7N.1D;a.7N.1D=a.3r.1D;e.1D=d==="d8"?"d9":f||0;f=e.da+"3U";e.1D=b;a.7N.1D=j}}14 f},9W:12(a,b,d){17 f={};19(17 e 1r b){f[e]=a.1l[e];a.1l[e]=b[e]}d.1j(a);19(e 1r b)a.1l[e]=f[e]}});7(c.1Y&&c.1Y.2T){c.1Y.2T.2U=12(a){17 b=a.5B,d=a.9U,f=a.1n.1F()==="3S";14 b===0&&d===0&&!f?1a:b>0&&d>0&&!f?1d:c.1Z(a,"27")==="3g"};c.1Y.2T.9X=12(a){14!c.1Y.2T.2U(a)}}17 bl=J(),9Y=/<28(.|\\s)*?\\/28>/dc,9Z=/2i|4O/i,a0=/8E|dd|de|df|2U|dg|3H|4W|dh|di|dj|1I|dk|1B|dl/i,N=/=\\?(&|$)/,6e=/\\?/,a1=/(\\?|&)a2=.*?(&|$)/,a3=/^(\\w+:)?\\/\\/([^\\/?#]+)/,a4=/%20/g,a5=c.1v.5t;c.1v.1y({5t:12(a,b,d){7(1f a!=="1w")14 a5.1j(6,a);1b 7(!6.18)14 6;17 f=a.1R(" ");7(f>=0){17 e=a.24(f,a.18);a=a.24(0,f)}f="3V";7(b)7(c.1t(b)){d=b;b=1c}1b 7(1f b==="1Q"){b=c.56(b,c.5a.7O);f="7P"}17 j=6;c.4v({1B:a,1k:f,2k:"2Q",1h:b,2H:12(i,o){7(o==="3s"||o==="7Q")j.2Q(e?c("<1H />").33(i.6f.1p(9Y,"")).1S(e):i.6f);d&&j.1i(d,[i.6f,o,i])}});14 6},dm:12(){14 c.56(6.a6())},a6:12(){14 6.2g(12(){14 6.a7?c.37(6.a7):6}).1A(12(){14 6.2Y&&!6.5Y&&(6.2Z||9Z.1e(6.1n)||a0.1e(6.1k))}).2g(12(a,b){a=c(6).3K();14 a==1c?1c:c.2v(a)?c.2g(a,12(d){14{2Y:b.2Y,2I:d}}):{2Y:b.2Y,2I:a}}).3A()}});c.1i("a8 7R a9 ac ad ae".2x(" "),12(a,b){c.1v[b]=12(d){14 6.7s(b,d)}});c.1y({3A:12(a,b,d,f){7(c.1t(b)){f=f||d;d=b;b=1c}14 c.4v({1k:"3V",1B:a,1h:b,3s:d,2k:f})},do:12(a,b){14 c.3A(a,1c,b,"28")},dp:12(a,b,d){14 c.3A(a,b,d,"3W")},dq:12(a,b,d,f){7(c.1t(b)){f=f||d;d=b;b={}}14 c.4v({1k:"7P",1B:a,1h:b,3s:d,2k:f})},dr:12(a){c.1y(c.5a,a)},5a:{1B:5b.2N,2R:1a,1k:"3V",7S:"6g/x-ds-4Q-dt",af:1a,3x:1a,ag:A.7T&&(A.5b.7U!=="4Y:"||!A.ah)?12(){14 2D A.7T}:12(){22{14 2D A.ah("du.dv")}23(a){}},6h:{5c:"6g/5c, 1I/5c",2Q:"1I/2Q",28:"1I/3F, 6g/3F",3W:"6g/3W, 1I/3F",1I:"1I/dw",2S:"*/*"}},6i:{},6j:{},4v:12(a){12 b(){e.3s&&e.3s.1j(k,o,i,x);e.2R&&f("ad",[x,e])}12 d(){e.2H&&e.2H.1j(k,x,i);e.2R&&f("a9",[x,e]);e.2R&&!--c.6k&&c.1m.2r("7R")}12 f(q,p){(e.26?c(e.26):c.1m).2r(q,p)}17 e=c.1y(1a,{},c.5a,a),j,i,o,k=a&&a.26||e,n=e.1k.5w();7(e.1h&&e.af&&1f e.1h!=="1w")e.1h=c.56(e.1h,e.7O);7(e.2k==="6l"){7(n==="3V")N.1e(e.1B)||(e.1B+=(6e.1e(e.1B)?"&":"?")+(e.6l||"ai")+"=?");1b 7(!e.1h||!N.1e(e.1h))e.1h=(e.1h?e.1h+"&":"")+(e.6l||"ai")+"=?";e.2k="3W"}7(e.2k==="3W"&&(e.1h&&N.1e(e.1h)||N.1e(e.1B))){j=e.dx||"6l"+bl++;7(e.1h)e.1h=(e.1h+"").1p(N,"="+j+"$1");e.1B=e.1B.1p(N,"="+j+"$1");e.2k="28";A[j]=A[j]||12(q){o=q;b();d();A[j]=w;22{2l A[j]}23(p){}z&&z.2s(C)}}7(e.2k==="28"&&e.2O===1c)e.2O=1d;7(e.2O===1d&&n==="3V"){17 r=J(),u=e.1B.1p(a1,"$dy="+r+"$2");e.1B=u+(u===e.1B?(6e.1e(e.1B)?"&":"?")+"a2="+r:"")}7(e.1h&&n==="3V")e.1B+=(6e.1e(e.1B)?"&":"?")+e.1h;e.2R&&!c.6k++&&c.1m.2r("a8");r=(r=a3.1M(e.1B))&&(r[1]&&r[1]!==5b.7U||r[2]!==5b.dz);7(e.2k==="28"&&n==="3V"&&r){17 z=s.2a("8B")[0]||s.1P,C=s.1N("28");C.5l=e.1B;7(e.aj)C.dA=e.aj;7(!j){17 B=1d;C.6P=C.3E=12(){7(!B&&(!6.3D||6.3D==="dB"||6.3D==="2H")){B=1a;b();d();C.6P=C.3E=1c;z&&C.1o&&z.2s(C)}}}z.2M(C,z.1z);14 w}17 E=1d,x=e.ag();7(x){e.ak?x.al(n,e.1B,e.3x,e.ak,e.4W):x.al(n,e.1B,e.3x);22{7(e.1h||a&&a.7S)x.5d("dC-dD",e.7S);7(e.am){c.6i[e.1B]&&x.5d("an-ao-dE",c.6i[e.1B]);c.6j[e.1B]&&x.5d("an-dF-dG",c.6j[e.1B])}r||x.5d("X-dH-dI","7T");x.5d("dJ",e.2k&&e.6h[e.2k]?e.6h[e.2k]+", */*":e.6h.2S)}23(5P){}7(e.ap&&e.ap.1j(k,x,e)===1d){e.2R&&!--c.6k&&c.1m.2r("7R");x.4q();14 1d}e.2R&&f("ae",[x,e]);17 g=x.3E=12(q){7(!x||x.3D===0||q==="4q"){E||d();E=1a;7(x)x.3E=c.4H}1b 7(!E&&x&&(x.3D===4||q==="3X")){E=1a;x.3E=c.4H;i=q==="3X"?"3X":!c.aq(x)?"2o":e.am&&c.ar(x,e.1B)?"7Q":"3s";17 p;7(i==="3s")22{o=c.as(x,e.2k,e)}23(v){i="7V";p=v}7(i==="3s"||i==="7Q")j||b();1b c.7W(e,x,i,p);d();q==="3X"&&x.4q();7(e.3x)x=1c}};22{17 h=x.4q;x.4q=12(){x&&h.1j(x);g("4q")}}23(l){}e.3x&&e.3X>0&&5k(12(){x&&!E&&g("3X")},e.3X);22{x.dK(n==="7P"||n==="dL"||n==="dM"?e.1h:1c)}23(m){c.7W(e,x,1c,m);d()}e.3x||g();14 x}},7W:12(a,b,d,f){7(a.2o)a.2o.1j(a.26||a,b,d,f);7(a.2R)(a.26?c(a.26):c.1m).2r("ac",[b,a,f])},6k:0,aq:12(a){22{14!a.3t&&5b.7U==="4Y:"||a.3t>=at&&a.3t<dN||a.3t===au||a.3t===dO||a.3t===0}23(b){}14 1d},ar:12(a,b){17 d=a.7X("dP-ao"),f=a.7X("dQ");7(d)c.6i[b]=d;7(f)c.6j[b]=f;14 a.3t===au||a.3t===0},as:12(a,b,d){17 f=a.7X("dR-1k")||"",e=b==="5c"||!b&&f.1R("5c")>=0;a=e?a.dS:a.6f;e&&a.1P.1n==="7V"&&c.2o("7V");7(d&&d.av)a=d.av(a,b);7(1f a==="1w")7(b==="3W"||!b&&f.1R("3W")>=0)a=c.8z(a);1b 7(b==="28"||!b&&f.1R("3F")>=0)c.6u(a);14 a},56:12(a,b){12 d(i,o){7(c.2v(o))c.1i(o,12(k,n){b||/\\[\\]$/.1e(i)?f(i,n):d(i+"["+(1f n==="1Q"||c.2v(n)?k:"")+"]",n)});1b!b&&o!=1c&&1f o==="1Q"?c.1i(o,12(k,n){d(i+"["+k+"]",n)}):f(i,o)}12 f(i,o){o=c.1t(o)?o():o;e[e.18]=aw(i)+"="+aw(o)}17 e=[];7(b===w)b=c.5a.7O;7(c.2v(a)||a.4D)c.1i(a,12(){f(6.2Y,6.2I)});1b 19(17 j 1r a)d(j,a[j]);14 e.3B("&").1p(a4,"+")}});17 bm={},ax=/3O|2z|2A/,ay=/^([+-]=)?([\\d+-.]+)(.*)$/,W,6H=[["2K","6m","dT","dU","dV"],["2q","7Y","dW","8L","dX"],["1X"]];c.1v.1y({2z:12(a,b){7(a||a===0)14 6.4r(K("2z",3),a,b);1b{a=0;19(b=6.18;a<b;a++){17 d=c.1h(6[a],"4s");6[a].1l.27=d||"";7(c.2d(6[a],"27")==="3g"){d=6[a].1n;17 f;7(bm[d])f=bm[d];1b{17 e=c("<"+d+" />").9H("1L");f=e.2d("27");7(f==="3g")f="6a";e.2b();bm[d]=f}c.1h(6[a],"4s",f)}}a=0;19(b=6.18;a<b;a++)6[a].1l.27=c.1h(6[a],"4s")||"";14 6}},2A:12(a,b){7(a||a===0)14 6.4r(K("2A",3),a,b);1b{a=0;19(b=6.18;a<b;a++){17 d=c.1h(6[a],"4s");!d&&d!=="3g"&&c.1h(6[a],"4s",c.2d(6[a],"27"))}a=0;19(b=6.18;a<b;a++)6[a].1l.27="3g";14 6}},az:c.1v.3O,3O:12(a,b){17 d=1f a==="5r";7(c.1t(a)&&c.1t(b))6.az.1E(6,1s);1b a==1c||d?6.1i(12(){17 f=d?a:c(6).4n(":2U");c(6)[f?"2z":"2A"]()}):6.4r(K("3O",3),a,b);14 6},dY:12(a,b,d){14 6.1A(":2U").2d("1X",0).2z().47().4r({1X:b},a,d)},4r:12(a,b,d,f){17 e=c.aA(b,d,f);7(c.4G(a))14 6.1i(e.2H);14 6[e.2J===1d?"1i":"2J"](12(){17 j=c.1y({},e),i,o=6.1g===1&&c(6).4n(":2U"),k=6;19(i 1r a){17 n=i.1p(68,6c);7(i!==n){a[n]=a[i];2l a[i];i=n}7(a[i]==="2A"&&o||a[i]==="2z"&&!o)14 j.2H.1j(6);7((i==="2K"||i==="2q")&&6.1l){j.27=c.2d(6,"27");j.3u=6.1l.3u}7(c.2v(a[i])){(j.6n=j.6n||{})[i]=a[i][1];a[i]=a[i][0]}}7(j.3u!=1c)6.1l.3u="2U";j.5e=c.1y({},a);c.1i(a,12(r,u){17 z=2D c.1U(k,j,r);7(ax.1e(u))z[u==="3O"?o?"2z":"2A":u](a);1b{17 C=ay.1M(u),B=z.5f(1a)||0;7(C){u=1V(C[2]);17 E=C[3]||"3U";7(E!=="3U"){k.1l[r]=(u||1)+E;B=(u||1)/z.5f(1a)*B;k.1l[r]=B+E}7(C[1])u=(C[1]==="-="?-1:1)*u+B;z.5g(B,u,E)}1b z.5g(B,u,"")}});14 1a})},7Z:12(a,b){17 d=c.5h;a&&6.2J([]);6.1i(12(){19(17 f=d.18-1;f>=0;f--)7(d[f].1q===6){b&&d[f](1a);d.2u(f,1)}});b||6.3j();14 6}});c.1i({dZ:K("2z",1),e0:K("2A",1),e1:K("3O",1),e2:{1X:"2z"},e3:{1X:"2A"}},12(a,b){c.1v[a]=12(d,f){14 6.4r(b,d,f)}});c.1y({aA:12(a,b,d){17 f=a&&1f a==="1Q"?a:{2H:d||!d&&b||c.1t(a)&&a,3v:a,5i:d&&b||b&&!c.1t(b)&&b};f.3v=c.1U.e4?0:1f f.3v==="3H"?f.3v:c.1U.5C[f.3v]||c.1U.5C.2S;f.80=f.2H;f.2H=12(){f.2J!==1d&&c(6).3j();c.1t(f.80)&&f.80.1j(6)};14 f},5i:{aB:12(a,b,d,f){14 d+f*a},81:12(a,b,d,f){14(-3q.e5(a*3q.e6)/2+0.5)*f+d}},5h:[],1U:12(a,b,d){6.1C=b;6.1q=a;6.1K=d;7(!b.5j)b.5j={}}});c.1U.2f={82:12(){6.1C.3Y&&6.1C.3Y.1j(6.1q,6.3w,6);(c.1U.3Y[6.1K]||c.1U.3Y.2S)(6);7((6.1K==="2K"||6.1K==="2q")&&6.1q.1l)6.1q.1l.27="6a"},5f:12(a){7(6.1q[6.1K]!=1c&&(!6.1q.1l||6.1q.1l[6.1K]==1c))14 6.1q[6.1K];14(a=1V(c.2d(6.1q,6.1K,a)))&&a>-e7?a:1V(c.1Z(6.1q,6.1K))||0},5g:12(a,b,d){12 f(j){14 e.3Y(j)}6.83=J();6.6o=a;6.47=b;6.84=d||6.84||"3U";6.3w=6.6o;6.6p=6.6q=0;17 e=6;f.1q=6.1q;7(f()&&c.5h.1u(f)&&!W)W=4F(c.1U.aC,13)},2z:12(){6.1C.5j[6.1K]=c.1l(6.1q,6.1K);6.1C.2z=1a;6.5g(6.1K==="2q"||6.1K==="2K"?1:0,6.5f());c(6.1q).2z()},2A:12(){6.1C.5j[6.1K]=c.1l(6.1q,6.1K);6.1C.2A=1a;6.5g(6.5f(),0)},3Y:12(a){17 b=J(),d=1a;7(a||b>=6.1C.3v+6.83){6.3w=6.47;6.6p=6.6q=1;6.82();6.1C.5e[6.1K]=1a;19(17 f 1r 6.1C.5e)7(6.1C.5e[f]!==1a)d=1d;7(d){7(6.1C.27!=1c){6.1q.1l.3u=6.1C.3u;a=c.1h(6.1q,"4s");6.1q.1l.27=a?a:6.1C.27;7(c.2d(6.1q,"27")==="3g")6.1q.1l.27="6a"}6.1C.2A&&c(6.1q).2A();7(6.1C.2A||6.1C.2z)19(17 e 1r 6.1C.5e)c.1l(6.1q,e,6.1C.5j[e]);6.1C.2H.1j(6.1q)}14 1d}1b{e=b-6.83;6.6q=e/6.1C.3v;a=6.1C.5i||(c.5i.81?"81":"aB");6.6p=c.5i[6.1C.6n&&6.1C.6n[6.1K]||a](6.6q,e,0,1,6.1C.3v);6.3w=6.6o+(6.47-6.6o)*6.6p;6.82()}14 1a}};c.1y(c.1U,{aC:12(){19(17 a=c.5h,b=0;b<a.18;b++)a[b]()||a.2u(b--,1);a.18||c.1U.7Z()},7Z:12(){e8(W);W=1c},5C:{e9:eb,ec:at,2S:ed},3Y:{1X:12(a){c.1l(a.1q,"1X",a.3w)},2S:12(a){7(a.1q.1l&&a.1q.1l[a.1K]!=1c)a.1q.1l[a.1K]=(a.1K==="2q"||a.1K==="2K"?3q.59(0,a.3w):a.3w)+a.84;1b a.1q[a.1K]=a.3w}}});7(c.1Y&&c.1Y.2T)c.1Y.2T.ee=12(a){14 c.48(c.5h,12(b){14 a===b.1q}).18};c.1v.1O="aD"1r s.1P?12(a){17 b=6[0];7(a)14 6.1i(12(e){c.1O.85(6,a,e)});7(!b||!b.1G)14 1c;7(b===b.1G.1L)14 c.1O.86(b);17 d=b.aD(),f=b.1G;b=f.1L;f=f.1P;14{21:d.21+(aE.aF||c.1x.4c&&f.3o||b.3o)-(f.5I||b.5I||0),1D:d.1D+(aE.87||c.1x.4c&&f.3n||b.3n)-(f.5H||b.5H||0)}}:12(a){17 b=6[0];7(a)14 6.1i(12(r){c.1O.85(6,a,r)});7(!b||!b.1G)14 1c;7(b===b.1G.1L)14 c.1O.86(b);c.1O.6r();17 d=b.4t,f=b,e=b.1G,j,i=e.1P,o=e.1L;f=(e=e.4A)?e.6b(b,1c):b.3r;19(17 k=b.34,n=b.6s;(b=b.1o)&&b!==o&&b!==i;){7(c.1O.88&&f.2j==="89")25;j=e?e.6b(b,1c):b.3r;k-=b.3o;n-=b.3n;7(b===d){k+=b.34;n+=b.6s;7(c.1O.aG&&!(c.1O.aH&&/^t(ef|d|h)$/i.1e(b.1n))){k+=1V(j.8a)||0;n+=1V(j.8b)||0}f=d;d=b.4t}7(c.1O.aI&&j.3u!=="9X"){k+=1V(j.8a)||0;n+=1V(j.8b)||0}f=j}7(f.2j==="31"||f.2j==="8c"){k+=o.34;n+=o.6s}7(c.1O.88&&f.2j==="89"){k+=3q.59(i.3o,o.3o);n+=3q.59(i.3n,o.3n)}14{21:k,1D:n}};c.1O={6r:12(){17 a=s.1L,b=s.1N("1H"),d,f,e,j=1V(c.1Z(a,"6m",1a))||0;c.1y(b.1l,{2j:"69",21:0,1D:0,4p:0,4o:0,2q:"3J",2K:"3J",9O:"2U"});b.2C="<1H 1l=\'2j:69;21:0;1D:0;4p:0;4o:aJ aK #aL;6d:0;2q:3J;2K:3J;\'><1H></1H></1H><2h 1l=\'2j:69;21:0;1D:0;4p:0;4o:aJ aK #aL;6d:0;2q:3J;2K:3J;\' eg=\'0\' 8R=\'0\'><3S><64></64></3S></2h>";a.2M(b,a.1z);d=b.1z;f=d.1z;e=d.3d.1z.1z;6.aG=f.34!==5;6.aH=e.34===5;f.1l.2j="89";f.1l.21="eh";6.88=f.34===20||f.34===15;f.1l.2j=f.1l.21="";d.1l.3u="2U";d.1l.2j="31";6.aI=f.34===-5;6.aM=a.34!==j;a.2s(b);c.1O.6r=c.4H},86:12(a){17 b=a.34,d=a.6s;c.1O.6r();7(c.1O.aM){b+=1V(c.1Z(a,"6m",1a))||0;d+=1V(c.1Z(a,"7Y",1a))||0}14{21:b,1D:d}},85:12(a,b,d){7(/8c/.1e(c.1Z(a,"2j")))a.1l.2j="31";17 f=c(a),e=f.1O(),j=7L(c.1Z(a,"21",1a),10)||0,i=7L(c.1Z(a,"1D",1a),10)||0;7(c.1t(b))b=b.1j(a,d,e);d={21:b.21-e.21+j,1D:b.1D-e.1D+i};"aN"1r b?b.aN.1j(a,d):f.2d(d)}};c.1v.1y({2j:12(){7(!6[0])14 1c;17 a=6[0],b=6.4t(),d=6.1O(),f=/^1L|2Q$/i.1e(b[0].1n)?{21:0,1D:0}:b.1O();d.21-=1V(c.1Z(a,"6m",1a))||0;d.1D-=1V(c.1Z(a,"7Y",1a))||0;f.21+=1V(c.1Z(b[0],"8a",1a))||0;f.1D+=1V(c.1Z(b[0],"8b",1a))||0;14{21:d.21-f.21,1D:d.1D-f.1D}},4t:12(){14 6.2g(12(){19(17 a=6.4t||s.1L;a&&!/^1L|2Q$/i.1e(a.1n)&&c.2d(a,"2j")==="8c";)a=a.4t;14 a})}});c.1i(["9Q","9S"],12(a,b){17 d="5N"+b;c.1v[d]=12(f){17 e=6[0],j;7(!e)14 1c;7(f!==w)14 6.1i(12(){7(j=6I(6))j.6J(!a?f:c(j).3n(),a?f:c(j).3o());1b 6[d]=f});1b 14(j=6I(e))?"87"1r j?j[a?"aF":"87"]:c.1x.4c&&j.36.1P[d]||j.36.1L[d]:e[d]}});c.1i(["ei","9V"],12(a,b){17 d=b.1F();c.1v["ej"+b]=12(){14 6[0]?c.2d(6[0],d,1d,"6d"):1c};c.1v["ek"+b]=12(f){14 6[0]?c.2d(6[0],d,1d,f?"4p":"4o"):1c};c.1v[d]=12(f){17 e=6[0];7(!e)14 f==1c?1c:6;7(c.1t(f))14 6.1i(12(j){17 i=c(6);i[d](f.1j(6,j,i[d]()))});14"6J"1r e&&e.36?e.36.el==="em"&&e.36.1P["8d"+b]||e.36.1L["8d"+b]:e.1g===9?3q.59(e.1P["8d"+b],e.1L["5N"+b],e.1P["5N"+b],e.1L["1O"+b],e.1P["1O"+b]):f===w?c.2d(e,d):6.2d(d,1f f==="1w"?f:f+"3U")}});A.4B=A.$=c})(8J);',62,891,'||||||this|if|||||||||||||||||||||||||||||||||||||||||||||||||||||||||function||return|||var|length|for|true|else|null|false|test|typeof|nodeType|data|each|call|type|style|event|nodeName|parentNode|replace|elem|in|arguments|isFunction|push|fn|string|support|extend|firstChild|filter|url|options|left|apply|toLowerCase|ownerDocument|div|text|selector|prop|body|exec|createElement|offset|documentElement|object|indexOf|find|className|fx|parseFloat|guid|opacity|expr|curCSS||top|try|catch|slice|break|context|display|script|handle|getElementsByTagName|remove|target|css|match|prototype|map|table|select|position|dataType|delete|add||error|tbody|width|trigger|removeChild|events|splice|isArray|getAttribute|split|handler|show|hide|ready|innerHTML|new|button|childNodes|pushStack|complete|value|queue|height|appendChild|insertBefore|href|cache|undefined|html|global|_default|filters|hidden|Array|attachEvent|on|name|checked|special|relative||append|offsetTop|live|document|makeArray|addEventListener|input|class|shift|ID|nextSibling|attr|browser|none|radio|submit|dequeue|setup|teardown|preventDefault|scrollLeft|scrollTop|nth|Math|currentStyle|success|status|overflow|duration|now|async|cloneNode|merge|get|join|sort|readyState|onreadystatechange|javascript|inArray|number|checkbox|1px|val|getAttributeNode|Event|stopPropagation|toggle|POS|compareDocumentPosition|dir|tr|domManip|px|GET|json|timeout|step|click|origType|mouseenter|mouseleave|handleObj|getElementById|eq|first|end|grep|proxy|option|selected|boxModel|expando|keyCode|sizcache|set|TAG|u00c0|uFFFF|previousSibling|empty|sourceIndex|is|border|margin|abort|animate|olddisplay|offsetParent|isReady|ajax|closest|currentTarget|relatedTarget|fragment|defaultView|jQuery|id|jquery|last|setInterval|isEmptyObject|noop|createTextNode|change|props|noData|removeData|removeAttribute|textarea|one|form|namespace|RegExp|result|charCode|which|password|focusout|file|unbind|CLASS|PSEUDO|not|contains|getElementsByClassName||param|replaceWith|cleanData|max|ajaxSettings|location|xml|setRequestHeader|curAnim|cur|custom|timers|easing|orig|setTimeout|src|checkClone|concat|Object|isPlainObject|toArray|boolean|triggerHandler|load|trim|JSON|toUpperCase|version|removeEventListener|cssFloat|deleteExpando|offsetWidth|speeds|selectedIndex|attrFn|nodeValue|fromElement|clientLeft|clientTop|multiple|fa|focus|blur|scroll|sizset|ga|pop|order|leftMatch|substr|CHILD|even|odd|attrHandle|disabled|parent|case|source|querySelectorAll|index|td|wrapAll|before|ha|ia|absolute|block|getComputedStyle|ja|padding|ka|responseText|application|accepts|lastModified|etag|active|jsonp|marginTop|specialEasing|start|pos|state|initialize|offsetLeft|ma|globalEval|na|oa|preType|pa|qa|ra|sa|ta|ua|fragments|clean|cacheable|va|wa|scrollTo|init|xa|ya|prevObject|bindReady|onload|constructor|scriptEval|detachEvent|link|float|leadingWhitespace|noCloneEvent|onclick|lastChild|tabIndex|za|embed|inprogress|unshift|area|Ba|addClass|removeClass|isXMLDoc|triggered|isPropagationStopped|isDefaultPrevented|fix|isImmediatePropagationStopped|clientX|ctrlKey|metaKey|pageX|onbeforeunload|originalEvent|Ea|mouseover|mouseout|specialSubmit|image|Fa|_change_data|focusin|bind|uniqueSort|preFilter|NAME|ATTR|attrMap|nodeIndex|createRange|unique|sibling|Ka|La|Ma|colgroup|clone|after|Na|Oa|Pa|parseInt|100|runtimeStyle|traditional|POST|notmodified|ajaxStop|contentType|XMLHttpRequest|protocol|parsererror|handleError|getResponseHeader|marginLeft|stop|old|swing|update|startTime|unit|setOffset|bodyOffset|pageXOffset|supportsFixedPosition|fixed|borderTopWidth|borderLeftWidth|static|client|doScroll|Qa|textContent|Date|getTime|liveFired|origHandler|createDocumentFragment|Ra|Sa|Ta|Ua|Va|Wa|u00A0|Xa|toString|DOMContentLoaded|frameElement|Function|throw|parseJSON|parse|head|uaMatch|webkit|color|red|htmlSerialize|hrefNormalized|checkOn|window|fireEvent|paddingLeft|setAttribute|submitBubbles|changeBubbles|htmlFor|readOnly|cellspacing|Ya|Za|toggleClass|hasClass|__className__|specified|cssText|exclusive|clientY|pageY|srcElement|toElement|keypress|keydown|specialChange|unload|die|lastToggle||hover|matches|Syntax|unrecognized|expression|selectors|only|gt|lt|getElementsByName|has|reset|setFilters|setStart|setEnd|TEST|fb|parents|prevUntil|prevAll|gb|children|contents|hb|col|ib|jb|fieldset|thead|wrapInner|prepend|detach|appendTo|zoom|alpha|lb|mb|nb|ob|visibility|pb|Left|qb|Top|rb|offsetHeight|Width|swap|visible|tb|ub|vb|wb|_|xb|yb|zb|serializeArray|elements|ajaxStart|ajaxComplete|||ajaxError|ajaxSuccess|ajaxSend|processData|xhr|ActiveXObject|callback|scriptCharset|username|open|ifModified|If|Modified|beforeSend|httpSuccess|httpNotModified|httpData|200|304|dataFilter|encodeURIComponent|Ab|Bb|_toggle|speed|linear|tick|getBoundingClientRect|self|pageYOffset|doesNotAddBorder|doesAddBorderForTableAndCells|subtractsBorderForOverflowNotVisible|5px|solid|000|doesNotIncludeMarginInBodyOffset|using|512|parentWindow|navigator|userAgent|hasOwnProperty|size|noConflict|isPrototypeOf|bfnrt|fA|eE|Invalid|opera|msie|compatible|mozilla|rv|safari|optSelected|radiotest|readonly|maxlength||||||||||||||maxLength|cellSpacing|rowspan|rowSpan||colspan|colSpan|tabindex|usemap|useMap|frameborder|frameBorder|applet|getData|setData|delay|clearQueue|removeAttr|attributes|property|can|changed|charAt|altKey|attrChange|attrName|bubbles|cancelable|detail|eventPhase|layerX|layerY|newValue|offsetX|offsetY|originalTarget|prevValue|relatedNode|screenX|screenY|shiftKey|view|wheelDelta|1E8|beforeunload|timeStamp|returnValue|cancelBubble|stopImmediatePropagation|||beforeactivate|delegate|undelegate|resize|dblclick|mousedown|mouseup|mousemove|keyup|onunload|continue|child|0n|enabled|header|innerText|switch|compareBoundaryPoints|Range|START_TO_END|createComment|HTML|Until|andSelf|parentsUntil|next|prev|nextAll|nextUntil|siblings|iframe|contentDocument|contentWindow|reverse|hr|img|meta|legend|optgroup|tfoot|caption|th|wrap|unwrap|outerHTML|prependTo|insertAfter|replaceAll|font|weight|line|ig|Right|Bottom|styleFloat|NaN|round|getPropertyValue|fontSize|1em|pixelLeft||gi|date|datetime|email|month|range|search|tel|time|week|serialize||getScript|getJSON|post|ajaxSetup|www|urlencoded|Microsoft|XMLHTTP|plain|jsonpCallback|1_|host|charset|loaded|Content|Type|Since|None|Match|Requested|With|Accept|send|PUT|DELETE|300|1223|Last|Etag|content|responseXML|marginBottom|paddingTop|paddingBottom|marginRight|paddingRight|fadeTo|slideDown|slideUp|slideToggle|fadeIn|fadeOut|off|cos|PI|10000|clearInterval|slow||600|fast|400|animated|able|cellpadding|20px|Height|inner|outer|compatMode|CSS1Compat'.split('|'),0,{}))
/**
* Usage:
* $(thing).mathquill();
* turns thing into a live editable math thingy.
* AMAZORZ.
*
* Note: turning into a live editable math thingmajiggie works, but
* any LaTeX math in it won't be rendered.
*
*/

jQuery.fn.mathquill = (function($){ //takes in the jQuery function as an argument

//Note: if the following is no longer on line 15, please modify publish.sh accordingly
//$('head').append('<link rel="stylesheet" type="text/css" href="http://laughinghan.github.com/mathquill/mathquill.css">');

var todo = function(){ alert('BLAM!\n\nAHHHHHH!\n\n"Oh god, oh god, I\'ve never seen so much blood!"\n\nYeah, that doesn\'t fully work yet.'); };

/**********************************************************
 * Back-end code: Core abstract classes and architecture.
 *********************************************************/

var $ = jQuery, todo = function(){ alert('BLAM!\n\nAHHHHHH!\n\n"Oh god, oh god, I\'ve never seen so much blood!"\n\nYeah, that doesn\'t fully work yet.'); };

/**
 * MathElement is the core Math DOM tree node prototype.
 * Both MathBlock's and MathCommand's descend from it.
 */
function MathElement(){}
MathElement.prototype = {
  prev: null,
  next: null,
  parent: null,
  firstChild: null,
  lastChild: null,
  eachChild: function(fn)
  {
    for(var child = this.firstChild; child !== null; child = child.next)
      if(fn.call(child) === false)
        break;
    return this;
  },
  reduceChildren: function(fn, initVal)
  {
    this.eachChild(function(){
      initVal = fn.call(this, initVal);
    });
    return initVal;
  },
  keydown: function(e)
  {
    return this.parent.keydown(e);
  },
  keypress: function(e)
  {
    return this.parent.keypress(e);
  }
};

/**
 * Commands and operators, like subscripts, exponents, or fractions.
 * Descendant commands are organized into blocks.
 * May be passed a MathFragment that's being replaced.
 */
function MathCommand(cmd, html_template, replacedBlock)
{
  if(!arguments.length)
    return;

  this.cmd = cmd;
  if(html_template)
    this.html_template = html_template;

  this.jQ = $(this.html_template[0]).data('[[mathquill internal data]]', {cmd: this});
  this.initBlocks(replacedBlock);
}
MathCommand.prototype = $.extend(new MathElement, {
  initBlocks: function(replacedBlock)
  {
    //single-block commands
    if(this.html_template.length === 1)
    {
      this.firstChild = this.lastChild = this.jQ.data('[[mathquill internal data]]').block =
        replacedBlock || new MathBlock;
      this.firstChild.parent = this;
      this.firstChild.jQ = this.jQ.prepend(this.firstChild.jQ);
      return;
    }
    //otherwise, the succeeding elements of html_template should be child blocks
    var newBlock, prev, num_blocks = this.html_template.length;
    this.firstChild = newBlock = prev = replacedBlock || new MathBlock;
    newBlock.parent = this;
    newBlock.jQ = $(this.html_template[1]).data('[[mathquill internal data]]', {block: newBlock}).appendTo(this.jQ).prepend(newBlock.jQ);
    newBlock.setEmpty();
    for(var i = 2; i < num_blocks; i += 1)
    {
      newBlock = new MathBlock;
      newBlock.parent = this;
      newBlock.prev = prev;
      prev.next = newBlock;
      prev = newBlock;

      newBlock.jQ = $(this.html_template[i]).data('[[mathquill internal data]]', {block: newBlock}).appendTo(this.jQ);
      newBlock.setEmpty();
    }
    this.lastChild = newBlock;
  },
  latex: function()
  {
    return this.cmd + this.reduceChildren(function(initVal){
      return initVal + '{' + this.latex() + '}';
    }, '');
  },
  remove: function()
  {
    if(this.prev)
      this.prev.next = this.next;
    else
      this.parent.firstChild = this.next;

    if(this.next)
      this.next.prev = this.prev;
    else
      this.parent.lastChild = this.prev;

    this.jQ.remove();

    return this;
  },
  //placeholder for context-sensitive spacing.
  respace: $.noop,
  placeCursor: function(cursor)
  {
    cursor.prependTo(this.firstChild);
  },
  isEmpty: function()
  {
    return this.reduceChildren(function(initVal){
      return initVal && this.isEmpty();
    }, true);
  }
});

/**
 * Lightweight command without blocks or children.
 */
function Symbol(cmd, html)
{
  MathCommand.call(this, cmd, [ html ]);
}
Symbol.prototype = $.extend(new MathCommand, {
  initBlocks: $.noop,
  latex: function()
  {
    return this.cmd;
  },
  placeCursor: $.noop,
  isEmpty: function(){ return true; }
});

/**
 * Children and parent of MathCommand's. Basically partitions all the
 * symbols and operators that descend (in the Math DOM tree) from
 * ancestor operators.
 */
function MathBlock(){}
MathBlock.prototype = $.extend(new MathElement, {
  latex: function()
  {
    return this.reduceChildren(function(initVal){
      return initVal + this.latex();
    }, '');
  },
  isEmpty: function()
  {
    return this.firstChild === null && this.lastChild === null;
  },
  setEmpty: function()
  {
    if(this.isEmpty())
    {
      this.jQ.addClass('empty');
      if(this.parent)
        this.jQ.html('&empty;');
    }
    return this;
  },
  removeEmpty:function()
  {
    if(this.jQ.hasClass('empty'))
      this.jQ.html('').removeClass('empty');
    return this;
  }
});

/**
 * An entity outside the Math DOM tree with one-way pointers (so it's only
 * a "view" of part of the tree, not an actual node/entity in the tree)
 * that delimit a list of symbols and operators.
 */
function MathFragment(parent, prev, next)
{
  if(!arguments.length)
    return;

  this.parent = parent;
  this.prev = prev || null; //so you can do 'new MathFragment(block)' without
  this.next = next || null; //ending up with this.prev or this.next === undefined

  this.jQinit(this.reduce(function(initVal){ return this.jQ.add(initVal); }, $()));
}
MathFragment.prototype = {
  remove: MathCommand.prototype.remove,
  jQinit: function(children)
  {
    return this.jQ = children;
  },
  each: function(fn)
  {
    for(var el = (this.prev ? this.prev.next : this.parent.firstChild); el !== this.next; el = el.next)
      if(fn.call(el) === false)
        break;
    return this;
  },
  reduce: function(fn, initVal)
  {
    this.each(function()
    {
      initVal = fn.call(this, initVal);
    });
    return initVal;
  },
  blockify: function()
  {
    var newBlock = new MathBlock;
    if(this.prev)
    {
      newBlock.firstChild = this.prev.next;
      this.prev.next = this.next;
    }
    else
    {
      newBlock.firstChild = this.parent.firstChild;
      this.parent.firstChild = this.next;
    }

    if(this.next)
    {
      newBlock.lastChild = this.next.prev;
      this.next.prev = this.prev;
    }
    else
    {
      newBlock.lastChild = this.parent.lastChild;
      this.parent.lastChild = this.prev;
    }

    newBlock.firstChild.prev = this.prev = null;
    newBlock.lastChild.next = this.next = null;

    this.parent = newBlock;
    this.each(function(){ this.parent = newBlock; });

    newBlock.jQ = this.jQ;

    return newBlock;
  }
};

/********************************************
 * All the symbols, operators and commands.
 *******************************************/

function VanillaSymbol(ch, html)
{
  Symbol.call(this, ch, '<span>'+(html || ch)+'</span>');
}
VanillaSymbol.prototype = Symbol.prototype;

function NonSymbolaSymbol(ch, html) //does not use Symbola font
{
  Symbol.call(this, ch, '<span class="nonSymbola">'+(html || ch)+'</span>');
}
NonSymbolaSymbol.prototype = Symbol.prototype;

function BigSymbol(ch, html)
{
  Symbol.call(this, ch, '<big>'+(html || ch)+'</big>');
}
BigSymbol.prototype = Symbol.prototype;

function Variable(ch, html)
{
  Symbol.call(this, ch, '<var>'+(html || ch)+'</var>');
}
Variable.prototype = Symbol.prototype;

function BinaryOperator(cmd, html)
{
  Symbol.call(this, cmd, '<span class="binary-operator">'+html+'</span>');
}
BinaryOperator.prototype = new Symbol; //so instanceof will work

function PlusMinus(cmd, html)
{
  VanillaSymbol.apply(this, arguments);
}
PlusMinus.prototype = new BinaryOperator; //so instanceof will work
PlusMinus.prototype.respace = function()
{
  if(!this.prev)
    this.jQ[0].className = '';
  else if(this.prev instanceof BinaryOperator && this.next && !(this.next instanceof BinaryOperator))
    this.jQ[0].className = 'unary-operator';
  else
    this.jQ[0].className = 'binary-operator';
  return this;
};

function SupSub(cmd, html, replacedBlock)
{
  MathCommand.call(this, cmd, [ html ], replacedBlock);
  var me = this;
  this.jQ.change(function()
  {
    me.respace();
    if(me.next)
      me.next.respace();
    if(me.prev)
      me.prev.respace();
  });
}
SupSub.prototype = new MathCommand;
SupSub.prototype.latex = function()
{
  var latex = this.firstChild.latex();
  if(latex.length === 1)
    return this.cmd + latex;
  return this.cmd + '{' + latex + '}';
};
SupSub.prototype.respace = function()
{
  if(this.respaced = this.prev instanceof SupSub && this.prev.cmd != this.cmd && !this.prev.respaced)
    this.jQ.css({
      left: -this.prev.jQ.innerWidth(),
      marginRight: 1-Math.min(this.jQ.innerWidth(), this.prev.jQ.innerWidth()) //1px adjustment very important!
    });
  else if(this.cmd === '_' && this.prev && this.prev.cmd === '\\int ')
    this.jQ.css({
      left: '-.1em',
      marginRight: ''
    });
  else
    this.jQ.css({
      left: '',
      marginRight: ''
    });
  return this;
};

function Fraction(replacedBlock)
{
  MathCommand.call(this, '\\frac', undefined, replacedBlock);
  this.jQ.append('<span style="width:0">&nbsp;</span>');
  if($.browser.mozilla && +$.browser.version.slice(0,3) < 1.9) //Firefox 2 and below
    this.jQ.css('display','-moz-groupbox');
}
Fraction.prototype = new MathCommand;
Fraction.prototype.html_template = ['<span class="fraction"></span>', '<span class="numerator"></span>', '<span class="denominator"></span>'];
function LiveFraction(replacedBlock)
{
  Fraction.apply(this, arguments);
}
LiveFraction.prototype = new Fraction;
LiveFraction.prototype.placeCursor = function(cursor)
{
  if(this.firstChild.isEmpty())
  {
    var prev = this.prev;
    while(prev && !(prev instanceof BinaryOperator)) //lookbehind for operator
      prev = prev.prev;
    if(prev !== this.prev)
    {
      var newBlock = new MathFragment(this.parent, prev, this).blockify();
      newBlock.jQ = this.firstChild.removeEmpty().jQ.prepend(newBlock.jQ);
      newBlock.next = this.lastChild;
      newBlock.parent = this;
      this.firstChild = this.lastChild.prev = newBlock;
    }
  }
  cursor.appendTo(this.lastChild);
};

// Parens/Brackets/Braces etc
function Paren(open, close, replacedBlock)
{
  MathCommand.call(this, '\\left'+open,
    ['<span><span class="paren">'+open+'</span><span></span><span class="paren">'+close+'</span></span>'],
    replacedBlock);
  this.end = '\\right'+close;
  this.firstChild.jQ.change(function()
  {
    var block = $(this);
    block.prev().add(block.next()).css('fontSize', block.height()/(+block.css('fontSize').slice(0,-2)*.8+3)+'em');
  });
}
Paren.prototype = $.extend(new MathCommand, {
  initBlocks: function(replacedBlock)
  {
    this.firstChild = this.lastChild = replacedBlock || new MathBlock;
    this.firstChild.parent = this;
    this.firstChild.jQ = this.firstChild.jQ ? this.jQ.children().eq(1).prepend(this.firstChild.jQ) : this.jQ.children().eq(1);
  },
  latex: function()
  {
    return this.cmd + this.firstChild.latex() + this.end;
  }
});
// Closing parens/brackets/braces matching Parens/Brackets/Braces above
function CloseParen(open, close, replacedBlock)
{
  Paren.call(this, open, close, replacedBlock);
}
CloseParen.prototype = new Paren;
CloseParen.prototype.placeCursor = function(cursor)
{
  //if I'm at the end of my parent who is a matching open-paren, and I was not passed
  //  a selection fragment, get rid of me and put cursor after my parent
  if(!this.next && this.parent.parent && this.parent.parent.end === this.end && this.firstChild.isEmpty())
    cursor.backspace().insertAfter(this.parent.parent);
  else
  {
    cursor.insertAfter(this);
    this.firstChild.setEmpty().jQ.change();
  }
};
function Brace(replacedBlock)
{
  Paren.call(this, '{', '}', replacedBlock);
}
Brace.prototype = new Paren;
Brace.prototype.latex = function()
{
  return '\\left\\{' + this.firstChild.latex() + '\\right\\}';
};
function CloseBrace(replacedBlock)
{
  CloseParen.call(this, '{', '}', replacedBlock);
}
CloseBrace.prototype = new CloseParen;
CloseBrace.prototype.latex = Brace.prototype.latex;
function Pipes(replacedBlock)
{
  Paren.call(this, '|', '|', replacedBlock);
}
Pipes.prototype = new Paren;
Pipes.prototype.placeCursor = function(cursor)
{
  if(!this.next && this.parent.parent && this.parent.parent.end === this.end && this.firstChild.isEmpty())
    cursor.backspace().insertAfter(this.parent.parent);
  else
    cursor.prependTo(this.firstChild);
};

function TextBlock(replacedBlock)
{
  MathCommand.call(this, '\\text', undefined, new InnerTextBlock);
  if(replacedBlock instanceof MathBlock)
  {
    this.replacedText = replacedBlock.jQ.text();
    replacedBlock.jQ.remove();
  }
  else
    this.replacedText = replacedBlock;
}
TextBlock.prototype = $.extend(new MathCommand, {
  html_template: ['<span class="text"></span>'],
  placeCursor: function(cursor)
  {
    this.cursor = cursor.prependTo(this.firstChild);
    if(this.replacedText)
      for(var i = 0; i < this.replacedText.length; i += 1)
        this.write(this.replacedText.charAt(i));
  },
  write: function(ch)
  {
    this.cursor.insertNew(new VanillaSymbol(ch)).show();
  },
  keydown: function(e)
  {
    //backspace and delete and ends of block don't unwrap
    if(!this.isEmpty() &&
        ((e.which === 8 && !this.cursor.prev && !this.cursor.selection) ||
          (e.which === 46 && !this.cursor.next)))
      return false;
    return this.parent.keydown(e);
  },
  keypress: function(e)
  {
    var ch = String.fromCharCode(e.which);
    if(ch === '$')
      if(this.isEmpty())
        this.cursor.insertAfter(this).backspace().insertNew(new VanillaSymbol('\\$','$')).show();
      else if(!this.cursor.next)
        this.cursor.insertAfter(this);
      else if(!this.cursor.prev)
        this.cursor.insertBefore(this);
      else //split apart
      {
        var next = new TextBlock(new MathFragment(this.firstChild, this.cursor.prev).blockify());
        next.firstChild.removeEmpty = function(){ return this; };
        this.cursor.insertAfter(this).insertNew(next).insertBefore(next);
        delete next.firstChild.removeEmpty;
      }
    else
      this.write(ch);
    return false;
  }
});
function InnerTextBlock(){}
InnerTextBlock.prototype = $.extend(new MathBlock, {
  setEmpty: function()
  {
    if(this.isEmpty())
    {
      var textblock = this.parent;
      setTimeout(function() //defer execution until after completion of this thread
                            //not the wrong way to do things, merely poorly named
      {
        if(textblock.cursor.prev === textblock)
          textblock.cursor.backspace();
        else if(textblock.cursor.next === textblock)
          textblock.cursor.deleteForward();
        //else must be blur, don't remove textblock
      },0);
    };
    return this;
  },
  removeEmpty: function()
  {
    if(this.parent.prev instanceof TextBlock)
    {
      var me = this, textblock = this.parent, prev = textblock.prev.firstChild;
      setTimeout(function() //defer
      {
        prev.eachChild(function(){
          this.parent = me;
          this.jQ.insertBefore(me.firstChild.jQ);
        });
        prev.lastChild.next = me.firstChild;
        me.firstChild.prev = prev.lastChild;
        me.firstChild = prev.firstChild;
        textblock.prev.remove();
        if(textblock.cursor.next)
          textblock.cursor.insertBefore(textblock.cursor.next);
        else
          textblock.cursor.appendTo(me);
        me.jQ.change();
      },0);
    }
    else if(this.parent.next instanceof TextBlock)
      if(this.parent.cursor.next)
        this.parent.next.firstChild.removeEmpty();
      else
        this.parent.cursor.prependTo(this.parent.next.firstChild);

    return this;
  }
});

// input box to type a variety of LaTeX commands beginning with a backslash
function LatexCommandInput(replacedBlock, replacedFragment)
{
  MathCommand.call(this, '\\');
  this.firstChild.setEmpty = function()
  {
    if(this.isEmpty())
    {
      this.jQ.addClass('empty');
      if(this.parent)
        this.jQ.html('<span>&nbsp;</span>');
    }
    return this;
  };
  if(replacedBlock)
  {
    replacedBlock.jQ.detach();
    this.replacedBlock = replacedBlock;
    this.replacedFragment = replacedFragment;
    this.isEmpty = function(){ return false; };
  }
}
LatexCommandInput.prototype = $.extend(new MathCommand, {
  html_template: ['<span class="latex-command-input"></span>'],
  placeCursor: function(cursor)
  {
    this.cursor = cursor.prependTo(this.firstChild);
    if(this.replacedFragment)
      this.jQ = this.jQ.add(this.replacedFragment.jQ.addClass('blur').insertAfter(this.jQ));
  },
  latex: function()
  {
    return '\\' + this.firstChild.latex() + ' ';
  },
  keydown: function(e)
  {
    if(e.which === 9 || e.which === 13) //tab or enter
    {
      this.renderCommand();
      return false;
    }
    return this.parent.keydown(e);
  },
  keypress: function(e)
  {
    var char = String.fromCharCode(e.which);
    if(char.match(/[a-z]/i))
    {
      this.cursor.insertNew(new VanillaSymbol(char)).show();
      return false;
    }
    this.renderCommand();
    if(char === ' ' || (char === '\\' && this.firstChild.isEmpty()))
      return false;
    return this.parent.keypress(e);
  },
  renderCommand: function()
  {
    this.jQ = this.jQ.first();
    this.remove();
    if(this.prev)
      this.cursor.insertAfter(this.prev);
    else
      this.cursor.prependTo(this.parent);
    this.cursor.insertNew(this.firstChild.isEmpty() ?
      new VanillaSymbol('\\\\','\\') : createLatexCommand(this.firstChild.latex(), this.replacedBlock));
  }
});

function SquareRoot(replacedBlock)
{
  MathCommand.call(this, '\\sqrt', undefined, replacedBlock);
  this.firstChild.jQ.change(function()
  {
    var block = $(this), height = block.height();
    block.css({
      borderTopWidth: height/30+1 // NOTE: Formula will need to change if our font isn't Symbola
    }).prev().css({
      fontSize: height/+block.css('fontSize').slice(0,-2)+'em'
    });
  });
}
SquareRoot.prototype = new MathCommand;
SquareRoot.prototype.html_template = ['<span><span class="sqrt-prefix">&radic;</span></span>','<span class="sqrt-stem"></span>'];

function NonItalicizedFunction(fn)
{
  Symbol.call(this, '\\'+fn+' ', '<span class="non-italicized-function">'+fn+'</span>');
}
NonItalicizedFunction.prototype = Symbol.prototype;

var SingleCharacterCommands = {
  //Symbols:
  ' ': function(){ return new VanillaSymbol('\\,', '&nbsp;'); },
  "'": function(){ return new VanillaSymbol("'", '&prime;'); },
  'f': function(){ return new Symbol('f', '<var class="florin">&fnof;</var>'); },
  '@': function(){ return new NonSymbolaSymbol('@'); },
  '&': function(){ return new NonSymbolaSymbol('\\&', '&'); },
  '%': function(){ return new NonSymbolaSymbol('\\%', '%'); },
  '*': function(){ return new BinaryOperator('\\cdot ', '&middot;'); },
    //semantically should be &sdot;, but &middot; looks better in both Symbola and Times New Roman
  '=': function(){ return new BinaryOperator('=', '='); },
  '<': function(){ return new BinaryOperator('<', '&lt;'); },
  '>': function(){ return new BinaryOperator('>', '&gt;'); },
  '+': function(){ return new PlusMinus('+'); },
  '-': function(){ return new PlusMinus('-', '&minus;'); },
  //Commands and Operators:
  '^': function(replacedBlock){ return new SupSub('^', '<sup></sup>', replacedBlock); },
  '_': function(replacedBlock){ return new SupSub('_', '<sub></sub>', replacedBlock); },
  '/': function(replacedBlock){ return new LiveFraction(replacedBlock); },
  '(': function(replacedBlock){ return new Paren('(', ')', replacedBlock); },
  '[': function(replacedBlock){ return new Paren('[', ']', replacedBlock); },
  '{': function(replacedBlock){ return new Brace(replacedBlock); },
  ')': function(replacedBlock){ return new CloseParen('(', ')', replacedBlock); },
  ']': function(replacedBlock){ return new CloseParen('[', ']', replacedBlock); },
  '}': function(replacedBlock){ return new CloseBrace(replacedBlock); },
  '|': function(replacedBlock){ return new Pipes(replacedBlock); },
  '$': function(replacedBlock){ return new TextBlock(replacedBlock); },
  '\\': function(replacedBlock, replacedFragment){
    return new LatexCommandInput(replacedBlock, replacedFragment);
  }
};
function createLatexCommand(latex, replacedBlock)
{
  if(latex.match(/^(a|arc)?(sin|cos|tan)h?$/))
    return new NonItalicizedFunction(latex);

  switch(latex)
  {
  //"real" commands
  case 'sqrt':
    return new SquareRoot(replacedBlock);
  case 'frac':
    return new Fraction(replacedBlock);
  case 'text':
    return new TextBlock(replacedBlock);

  //non-italicized functions
  case 'ln':
  case 'lg':
  case 'log':
  case 'span':
  case 'proj':
  case 'det':
  case 'dim':
  case 'min':
  case 'max':
  case 'mod':
  case 'lcm':
  case 'gcd':
  case 'lim':
    return new NonItalicizedFunction(latex);

  /*** Symbols and Special Characters ***/

  //the following are all greek to me, but this helped a lot: http://www.ams.org/STIX/ion/stixsig03.html

  //lowercase greek letter variables
  case 'alpha':
  case 'beta':
  case 'gamma':
  case 'delta':
  case 'zeta':
  case 'eta':
  case 'theta':
  case 'iota':
  case 'kappa':
  case 'mu':
  case 'nu':
  case 'xi':
  case 'omicron':
  case 'rho':
  case 'sigma':
  case 'tau':
  case 'upsilon':
  case 'chi':
  case 'psi':
  case 'omega':
    return new Variable('\\'+latex+' ','&'+latex+';');

  //why can't anybody FUCKING agree on these
  case 'phi': //W3C or Unicode?
    return new Variable('\\phi ','&#981;');
  case 'phiv': //Elsevier and 9573-13
  case 'varphi': //AMS and LaTeX
    return new Variable('\\varphi ','&phi;');
  case 'epsilon': //W3C or Unicode?
    return new Variable('\\epsilon ','&#1013;');
  case 'epsiv': //Elsevier and 9573-13
  case 'varepsilon': //AMS and LaTeX
    return new Variable('\\varepsilon ','&epsilon;');
  case 'sigmaf': //W3C/Unicode
  case 'sigmav': //Elsevier
  case 'varsigma': //LaTeX
    return new Variable('\\varsigma ','&sigmaf;');

  //these aren't even mentioned in the HTML character entity references
  case 'gammad': //Elsevier
  case 'Gammad': //9573-13 -- WTF, right? I dunno if this was a typo in the reference (see above)
  case 'digamma': //LaTeX
    return new Variable('\\digamma ','&#989;');
  case 'kappav': //Elsevier
  case 'varkappa': //AMS and LaTeX
    return new Variable('\\varkappa ','&#1008;');
  case 'piv': //Elsevier and 9573-13
  case 'varpi': //AMS and LaTeX
    return new Variable('\\varpi ','&#982;');
  case 'rhov': //Elsevier and 9573-13
  case 'varrho': //AMS and LaTeX
    return new Variable('\\varrho ','&#1009;');
  case 'thetav': //Elsevier and 9573-13
  case 'vartheta': //AMS and LaTeX
    return new Variable('\\vartheta ','&#977;');

  //greek constants, look best in un-italicised Times New Roman
  case 'pi':
  case 'lambda':
    return new NonSymbolaSymbol('\\'+latex+' ','&'+latex+';');

  //uppercase greek letters
  case 'Gamma':
  case 'Delta':
  case 'Theta':
  case 'Lambda':
  case 'Xi':
  case 'Pi':
  case 'Sigma':
  case 'Upsilon':
  case 'Phi':
  case 'Psi':
  case 'Omega':

  //other symbols with the same LaTeX command and HTML character entity reference
  case 'perp':
  case 'nabla':
  case 'forall':
    return new VanillaSymbol('\\'+latex+' ','&'+latex+';');

  //sum, product, coproduct, integral
  case 'sum':
  case 'summation':
    return new BigSymbol('\\sum ','&sum;');
  case 'prod':
  case 'product':
    return new BigSymbol('\\prod ','&prod;');
  case 'coprod':
  case 'coproduct':
    return new BigSymbol('\\coprod ','&#8720;');
  case 'int':
  case 'integral':
    return new BigSymbol('\\int ','&int;');

  //the canonical sets of numbers
  case 'N':
  case 'naturals':
  case 'Naturals':
    return new VanillaSymbol('\\mathbb{N}','&#8469;');
  case 'P':
  case 'primes':
  case 'Primes':
  case 'projective':
  case 'Projective':
  case 'probability':
  case 'Probability':
    return new VanillaSymbol('\\mathbb{P}','&#8473;');
  case 'Z':
  case 'integers':
  case 'Integers':
    return new VanillaSymbol('\\mathbb{Z}','&#8484;');
  case 'Q':
  case 'rationals':
  case 'Rationals':
    return new VanillaSymbol('\\mathbb{Q}','&#8474;');
  case 'R':
  case 'reals':
  case 'Reals':
    return new VanillaSymbol('\\mathbb{R}','&#8477;');
  case 'C':
  case 'complex':
  case 'Complex':
  case 'complexes':
  case 'Complexes':
  case 'complexplane':
  case 'Complexplane':
  case 'ComplexPlane':
    return new VanillaSymbol('\\mathbb{C}','&#8450;');
  case 'H':
  case 'Hamiltonian':
  case 'quaternions':
  case 'Quaternions':
    return new VanillaSymbol('\\mathbb{H}','&#8461;');

  //spacing
  case 'quad':
  case 'emsp':
    return new VanillaSymbol('\\quad ','&nbsp;&nbsp;&nbsp;&nbsp;');
  case 'qquad':
    return new VanillaSymbol('\\qquad ','&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;');
  /* spacing special characters, gonna have to implement this in LatexCommandInput.prototype.keypress somehow
  case ',':
    return new VanillaSymbol('\\, ','&nbsp;');
  case':':
    return new VanillaSymbol('\\: ','&nbsp;&nbsp;');
  case ';':
    return new VanillaSymbol('\\; ','&nbsp;&nbsp;&nbsp;');
  case '!':
    return new Symbol('\\! ','<span style="margin-right:-.2em"></span>');
  */

  //various symbols
  case 'AA':
  case 'Angstrom':
  case 'angstrom':
    return new VanillaSymbol('\\text{\\AA}','&#8491;');
  case 'ring':
  case 'circ':
  case 'circle':
    return new VanillaSymbol('\\circ ','&#8728;');
  case 'bull':
  case 'bullet':
    return new VanillaSymbol('\\bullet ','&bull;');
  case 'setminus':
  case 'smallsetminus':
    return new VanillaSymbol('\\setminus ','&#8726;');
  case 'not':
    //return new Symbol('\\not ','<span class="not">/</span>');
  case 'neg':
    return new VanillaSymbol('\\neg ','&not;');
  case 'dots':
  case 'ellip':
  case 'hellip':
  case 'ellipsis':
  case 'hellipsis':
    return new VanillaSymbol('\\dots ','&hellip;');
  case 'converges':
  case 'darr':
  case 'dnarr':
  case 'dnarrow':
  case 'downarrow':
    return new VanillaSymbol('\\downarrow ','&darr;');
  case 'dArr':
  case 'dnArr':
  case 'dnArrow':
  case 'Downarrow':
    return new VanillaSymbol('\\Downarrow ','&dArr;');
  case 'diverges':
  case 'uarr':
  case 'uparrow':
    return new VanillaSymbol('\\uparrow ','&uarr;');
  case 'uArr':
  case 'Uparrow':
    return new VanillaSymbol('\\Uparrow ','&uArr;');
  case 'to':
    return new BinaryOperator('\\to ','&rarr;');
  case 'rarr':
  case 'rightarrow':
    return new VanillaSymbol('\\rightarrow ','&rarr;');
  case 'implies':
    return new BinaryOperator('\\Rightarrow ','&rArr;');
  case 'rArr':
  case 'Rightarrow':
    return new VanillaSymbol('\\Rightarrow ','&rArr;');
  case 'gets':
    return new BinaryOperator('\\gets ','&larr;');
  case 'larr':
  case 'leftarrow':
    return new VanillaSymbol('\\leftarrow ','&larr;');
  case 'impliedby':
    return new BinaryOperator('\\Leftarrow ','&lArr;');
  case 'lArr':
  case 'Leftarrow':
    return new VanillaSymbol('\\Leftarrow ','&lArr;');
  case 'harr':
  case 'lrarr':
  case 'leftrightarrow':
    return new VanillaSymbol('\\leftrightarrow ','&harr;');
  case 'iff':
    return new BinaryOperator('\\Leftrightarrow ','&hArr;');
  case 'hArr':
  case 'lrArr':
  case '\Leftrightarrow':
    return new VanillaSymbol('\\Leftrightarrow ','&hArr;');
  case 'Re':
  case 'Real':
  case 'real':
    return new VanillaSymbol('\\Re ','&real;');
  case 'Im':
  case 'imag':
  case 'image':
  case 'imagin':
  case 'imaginary':
  case 'Imaginary':
    return new VanillaSymbol('\\Im ','&image;');
  case 'part':
  case 'partial':
    return new VanillaSymbol('\\partial ','&part;');
  case 'inf':
  case 'infin':
  case 'infty':
  case 'infinity':
    return new VanillaSymbol('\\infty ','&infin;');
  case 'alef':
  case 'alefsym':
  case 'aleph':
  case 'alephsym':
    return new VanillaSymbol('\\aleph ','&alefsym;');
  case 'xist': //LOL
  case 'xists':
  case 'exist':
  case 'exists':
    return new VanillaSymbol('\\exists ','&exist;');
  case 'and':
  case 'land':
  case 'wedge':
    return new VanillaSymbol('\\wedge ','&and;');
  case 'or':
  case 'lor':
  case 'vee':
    return new VanillaSymbol('\\vee ','&or;');
  case 'o':
  case 'O':
  case 'empty':
  case 'emptyset':
  case 'oslash':
  case 'Oslash':
  case 'nothing':
  case 'varnothing':
    return new BinaryOperator('\\varnothing ','&empty;');
  case 'cup':
  case 'union':
    return new VanillaSymbol('\\cup ','&cup;');
  case 'cap':
  case 'intersect':
  case 'intersection':
    return new VanillaSymbol('\\cap ','&cap;');
  case 'deg':
  case 'degree':
    return new VanillaSymbol('^\\circ ','&deg;');
  case 'ang':
  case 'angle':
    return new VanillaSymbol('\\angle ','&ang;');
  case 'prime':
    return new VanillaSymbol('\'','&prime;');
  case 'sdot':
  case 'cdot':
    return new VanillaSymbol('\\cdot ', '&sdot;');

  //Binary Operators
  case 'notin':
  case 'sim':
  case 'equiv':
  case 'times':
  case 'oplus':
  case 'otimes':
    return new BinaryOperator('\\'+latex+' ','&'+latex+';');
  case 'pm':
  case 'plusmn':
  case 'plusminus':
    return new PlusMinus('\\pm ','&plusmn;');
  case 'mp':
  case 'mnplus':
  case 'minusplus':
    return new PlusMinus('\\mp ','&#8723;');
  case 'div':
  case 'divide':
  case 'divides':
    return new BinaryOperator('\\div ','&divide;');
  case 'ne':
  case 'neq':
    return new BinaryOperator('\\'+latex+' ','&ne;');
  case 'ast':
  case 'star':
  case 'loast':
  case 'lowast':
    return new BinaryOperator('\\ast ','&lowast;');
  //case 'there4': // a special exception for this one, perhaps?
  case 'therefor':
  case 'therefore':
    return new BinaryOperator('\\therefore ','&there4;');
  case 'cuz': // l33t
  case 'because':
    return new BinaryOperator('\\because ','&#8757;');
  case 'prop':
  case 'propto':
    return new BinaryOperator('\\propto ','&prop;');
  case 'asymp':
  case 'approx':
    return new BinaryOperator('\\approx ','&asymp;');
  case 'lt':
    return new BinaryOperator('<','&lt;');
  case 'gt':
    return new BinaryOperator('<','&gt;');
  case 'le':
  case 'leq':
    return new BinaryOperator('\\'+latex+' ','&le;');
  case 'ge':
  case 'geq':
    return new BinaryOperator('\\'+latex+' ','&ge;');
  case 'in':
  case 'isin':
    return new BinaryOperator('\\in ','&isin;');
  case 'ni':
  case 'contains':
    return new BinaryOperator('\\ni ','&ni;');
  case 'notni':
  case 'niton':
  case 'notcontains':
  case 'doesnotcontain':
    return new BinaryOperator('\\not\\ni ','&#8716;');
  case 'sub':
  case 'subset':
    return new BinaryOperator('\\subset ','&sub;');
  case 'nsub':
  case 'notsub':
  case 'nsubset':
  case 'notsubset':
    return new BinaryOperator('\\not\\subset ','&#8836;');
  case 'sup':
  case 'supset':
  case 'superset':
    return new BinaryOperator('\\supset ','&sup;');
  case 'nsup':
  case 'notsup':
  case 'nsupset':
  case 'notsupset':
  case 'nsuperset':
  case 'notsuperset':
    return new BinaryOperator('\\not\\supset ','&#8837;');
  case 'sube':
  case 'subeq':
  case 'subsete':
  case 'subseteq':
    return new BinaryOperator('\\subseteq ','&sube;');
  case 'nsube':
  case 'nsubeq':
  case 'notsube':
  case 'notsubeq':
  case 'nsubsete':
  case 'nsubseteq':
  case 'notsubsete':
  case 'notsubseteq':
    return new BinaryOperator('\\not\\subseteq ','&#8840;');
  case 'supe':
  case 'supeq':
  case 'supsete':
  case 'supseteq':
    return new BinaryOperator('\\supseteq ','&supe;');
  case 'nsupe':
  case 'nsupeq':
  case 'notsupe':
  case 'notsupeq':
  case 'nsupsete':
  case 'nsupseteq':
  case 'notsupsete':
  case 'notsupseteq':
  case 'nsupersete':
  case 'nsuperseteq':
  case 'notsupersete':
  case 'notsuperseteq':
    return new BinaryOperator('\\not\\supseteq ','&#8841;');
  default:
    return new TextBlock(latex);
  }
}

/**********************************************************************
 * Front-end code: Event-handling, HTML DOM manipulation (via jQuery)
 *********************************************************************/

//A fake cursor in the fake textbox that the math is rendered in.
function Cursor(block)
{
  //API for the blinking cursor
  var intervalId;
  this.show = function()
  {
    if(intervalId)
      clearInterval(intervalId);
    this.jQ.removeClass('blink');
    var cursor = this;
    intervalId = setInterval(function(){
      cursor.jQ.toggleClass('blink');
    }, 500);
    return this;
  };
  this.hide = function()
  {
    if(intervalId)
      clearInterval(intervalId);
    intervalId = undefined;
    this.jQ.addClass('blink');
    return this;
  };

  this.jQ = $('<span class="cursor"></span>');
  if(block)
    this.appendTo(block);
}
Cursor.prototype = {
  prev: null,
  next: null,
  parent: null,
  setParentEmpty: function()
  {
    if(this.parent)
      this.parent.setEmpty().jQ.removeClass('hasCursor').change();
    return this;
  },
  insertBefore: function(el)
  {
    this.setParentEmpty();
    this.next = el;
    this.prev = el.prev;
    this.parent = el.parent;
    this.parent.jQ.addClass('hasCursor');
    this.jQ.insertBefore(el.jQ.first());
    return this;
  },
  insertAfter: function(el)
  {
    this.setParentEmpty();
    this.prev = el;
    this.next = el.next
    this.parent = el.parent;
    this.parent.jQ.addClass('hasCursor');
    this.jQ.insertAfter(el.jQ.last());
    return this;
  },
  prependTo: function(el)
  {
    this.setParentEmpty();
    this.next = el.firstChild;
    this.prev = null;
    this.parent = el;
    this.parent.removeEmpty().jQ.addClass('hasCursor');
    this.jQ.prependTo(el.jQ);
    return this;
  },
  appendTo: function(el)
  {
    this.setParentEmpty();
    this.prev = el.lastChild;
    this.next = null;
    this.parent = el;
    this.parent.removeEmpty().jQ.addClass('hasCursor');
    this.jQ.appendTo(el.jQ);
    return this;
  },
  moveLeft: function()
  {
    if(this.selection)
      this.insertBefore(this.selection.prev ? this.selection.prev.next : this.parent.firstChild).clearSelection();
    else
      if(this.prev)
        if(this.prev.lastChild)
          this.appendTo(this.prev.lastChild)
        else
          this.hopLeft();
      else //we're at the beginning of a block
        if(this.parent.prev)
          this.appendTo(this.parent.prev);
        else if(this.parent.parent)
          this.insertBefore(this.parent.parent);
    //otherwise we're at the beginning of the root, so do nothing.
    return this.show().jQ.change();
  },
  moveRight: function()
  {
    if(this.selection)
      this.insertAfter(this.selection.next ? this.selection.next.prev : this.parent.lastChild).clearSelection();
    else
      if(this.next)
        if(this.next.firstChild)
          this.prependTo(this.next.firstChild)
        else
          this.hopRight();
      else //we're at the end of a block
        if(this.parent.next)
          this.prependTo(this.parent.next);
        else if(this.parent.parent)
          this.insertAfter(this.parent.parent);
    //otherwise we're at the end of the root, so do nothing.
    return this.show().jQ.change();
  },
  hopLeft: function()
  {
    this.jQ.insertBefore(this.prev.jQ.first());
    this.next = this.prev;
    this.prev = this.prev.prev;
    return this;
  },
  hopRight: function()
  {
    this.jQ.insertAfter(this.next.jQ.last());
    this.prev = this.next;
    this.next = this.next.next;
    return this;
  },
  write: function(ch)
  {
    if(this.selection)
    {
      this.prev = this.selection.prev;
      this.next = this.selection.next;
    }

    var cmd;
    if(ch.match(/[a-eg-z,]/i)) //exclude f because want florin in SingleCharacterCommands
      cmd = new Variable(ch);
    else if(cmd = SingleCharacterCommands[ch])
      if(this.selection)
        cmd = cmd(this.selection.blockify(), this.selection);
      else
        cmd = cmd();
    else
      cmd = new VanillaSymbol(ch);

    if(this.selection)
    {
      if(cmd instanceof Symbol)
        this.selection.remove();
      delete this.selection;
    }

    return this.insertNew(cmd);
  },
  insertNew: function(cmd)
  {
    cmd.parent = this.parent;
    cmd.next = this.next;
    cmd.prev = this.prev;
    if(this.prev)
      this.prev.next = cmd;
    else
      this.parent.firstChild = cmd;
    if(this.next)
      this.next.prev = cmd;
    else
      this.parent.lastChild = cmd;
    cmd.jQ.insertBefore(this.jQ);

    //adjust context-sensitive spacing
    cmd.respace();
    if(this.next)
      this.next.respace();
    if(this.prev)
      this.prev.respace();

    this.prev = cmd;

    cmd.placeCursor(this);

    this.jQ.change();

    return this;
  },
  unwrapParent: function()
  {
    var gramp = this.parent.parent, greatgramp = gramp.parent, cursor = this, prev = gramp.prev;
    gramp.eachChild(function()
    {
      if(this.isEmpty())
        return;

      this.eachChild(function()
      {
        this.parent = greatgramp;
        this.jQ.insertBefore(gramp.jQ);
      });
      this.firstChild.prev = prev;
      if(prev)
        prev.next = this.firstChild;
      else
        this.firstChild.parent.firstChild = this.firstChild;

      prev = this.lastChild;
    });
    prev.next = gramp.next;
    if(prev.next)
      prev.next.prev = prev;
    else
      greatgramp.lastChild = prev;

    if(!this.prev)
      if(this.next)
        this.prev = this.next.prev;
      else
        while(!this.prev)
          if(this.parent = this.parent.prev)
            this.prev = this.parent.lastChild;
          else
          {
            this.prev = gramp.prev;
            break;
          }
    if(this.prev)
      this.insertAfter(this.prev);
    else
      this.insertBefore(greatgramp.firstChild);

    gramp.jQ.remove();

    if(gramp.prev)
      gramp.prev.respace();
    if(gramp.next)
      gramp.next.respace();
  },
  backspace: function()
  {
    if(this.deleteSelection());
    else if(this.prev)
      if(this.prev.isEmpty())
        this.prev = this.prev.remove().prev;
      else
        this.selectLeft();
    else if(this.parent.parent)
      if(this.parent.parent.isEmpty())
        return this.insertAfter(this.parent.parent).backspace();
      else
        this.unwrapParent();

    if(this.prev)
      this.prev.respace();
    if(this.next)
      this.next.respace();
    this.jQ.change();

    return this;
  },
  deleteForward: function()
  {
    if(this.deleteSelection());
    else if(this.next)
      if(this.next.isEmpty())
        this.next = this.next.remove().next;
      else
        this.selectRight();
    else if(this.parent.parent)
      if(this.parent.parent.isEmpty())
        return this.insertBefore(this.parent.parent).deleteForward();
      else
        this.unwrapParent();

    if(this.prev)
      this.prev.respace();
    if(this.next)
      this.next.respace();
    this.jQ.change();

    return this;
  },
  selectLeft: function()
  {
    if(this.selection)
      if(this.selection.prev === this.prev) //if cursor is at left edge of selection,
      {
        if(this.prev) //then extend left if possible
        {
          this.hopLeft(); //we want to insertBefore(prev.jQ) before we do prependTo so this.jQ will be outside selection.jQ
          this.next.jQ.prependTo(this.selection.jQ);
          this.selection.prev = this.prev;
        }
        else if(this.parent.parent) //else level up if possible
          this.insertBefore(this.parent.parent).selection.levelUp();
      }
      else //else cursor is at right edge of selection, retract left
      {
        this.prev.jQ.insertAfter(this.selection.jQ);
        this.hopLeft();
        this.selection.next = this.next;
        if(this.selection.prev === this.prev)
          this.deleteSelection();
      }
    else
      if(this.prev)
        this.hopLeft().hide().selection = new Selection(this.parent, this.prev, this.next.next);
      else //end of a block
        if(this.parent.parent)
          this.insertBefore(this.parent.parent).hide().selection = new Selection(this.parent, this.prev, this.next.next);
  },
  selectRight: function()
  {
    if(this.selection)
      if(this.selection.next === this.next) //if cursor is at right edge of selection,
      {
        if(this.next) //then extend right if possible
        {
          this.hopRight();
          this.prev.jQ.appendTo(this.selection.jQ);
          this.selection.next = this.next;
        }
        else if(this.parent.parent) //else level up if possible
          this.insertAfter(this.parent.parent).selection.levelUp();
      }
      else //else cursor is at left edge of selection, retract right
      {
        this.next.jQ.insertBefore(this.selection.jQ);
        this.hopRight();
        this.selection.prev = this.prev;
        if(this.selection.next === this.next)
          this.deleteSelection();
      }
    else
      if(this.next)
        this.hopRight().hide().selection = new Selection(this.parent, this.prev.prev, this.next);
      else //end of a block
        if(this.parent.parent)
          this.insertAfter(this.parent.parent).hide().selection = new Selection(this.parent, this.prev.prev, this.next);
  },
  clearSelection: function()
  {
    if(this.show().selection)
    {
      this.selection.clear();
      delete this.selection;
    }
    return this;
  },
  deleteSelection: function()
  {
    if(this.show().selection)
    {
      this.jQ.insertBefore(this.selection.jQ);
      this.prev = this.selection.prev;
      this.next = this.selection.next;
      this.selection.remove();
      delete this.selection;
      return true;
    }
    else
      return false;
  }
}

function Selection(parent, prev, next)
{
  MathFragment.apply(this, arguments);
}
Selection.prototype = $.extend(new MathFragment, {
  jQinit: function(children)
  {
    return this.jQ = children.wrapAll('<span class="selection"></span>').parent();
      //wrapAll clones, so can't do .wrapAll(this.jQ = $(...));
  },
  levelUp: function()
  {
    this.jQ.children().unwrap();
    this.jQinit(this.parent.parent.jQ);

    this.prev = this.parent.parent.prev;
    this.next = this.parent.parent.next;
    this.parent = this.parent.parent.parent;

    return this;
  },
  clear: function()
  {
    this.jQ.replaceWith(this.jQ.children());
    return this;
  },
  blockify: function()
  {
    var selectedJQ = this.jQ.children();
    this.jQ.replaceWith(selectedJQ);
    this.jQ = selectedJQ;
    return MathFragment.prototype.blockify.call(this);
  }
});

function RootMathBlock(){}
RootMathBlock.prototype = $.extend(new MathBlock, {
  latex: function()
  {
    return MathBlock.prototype.latex.call(this).replace(/(\\[a-z]+) (?![a-z])/ig,'$1');
  },
  renderLatex: function(latex)
  {
    latex = latex.match(/\\[a-z]*|[^\s]/ig);
    this.jQ.empty();
    this.firstChild = this.lastChild = null;
    this.cursor.appendTo(this);
    if(!latex)
      return;
    (function recurse(cursor)
    {
      while(latex.length)
      {
        var token = latex.shift(); //pop first item
        if(!token || token === '}')
          return;
        var cmd;
        if(token === '\\text')
        {
          var text = latex.shift();
          if(text === '{')
          {
            text = token = latex.shift();
            while(token !== '}')
            {
              if(token === '\\') //skip tokens immediately following backslash
                text += token = latex.shift();
              text += token = latex.shift();
            }
            text = text.slice(0,-1); //cut trailing '}'
          }
          cmd = new TextBlock(text);
          cursor.insertNew(cmd).insertAfter(cmd);
          continue;
        }
        else if(token === '\\left' || token === '\\right') //REMOVEME HACK for parens
        {
          token = latex.shift();
          if(token === '\\')
            token = latex.shift();
          cursor.write(token);
          cmd = cursor.prev || cursor.parent.parent;
          if(cursor.prev)
            return;
          else
            latex.unshift('{');
        }
        else if(/^\\[a-z]+$/.test(token))
        {
          cmd = createLatexCommand(token.slice(1));
          cursor.insertNew(cmd);
        }
        else
        {
          cursor.write(token);
          cmd = cursor.prev || cursor.parent.parent;
        }
        cmd.eachChild(function()
        {
          cursor.appendTo(this);
          var token = latex.shift();
          if(!token)
            return false;
          if(token === '{')
            recurse(cursor);
          else
            cursor.write(token);
        });
        cursor.insertAfter(cmd);
      }
    }(this.cursor));
    this.cursor.hide();
    this.jQ.removeClass('hasCursor');
  },
  skipKeypress: false,
  keydown: function(e)
  {
    e.ctrlKey = e.ctrlKey || e.metaKey;
    switch(e.which)
    {
    case 8: //backspace
      if(e.ctrlKey)
        while(this.cursor.prev)
          this.cursor.backspace();
      else
        this.cursor.backspace();
      return false;
    case 27: //esc does something weird in keypress, may as well be the same as tab
             //  until we figure out what to do with it
    case 9: //tab
      if(e.ctrlKey)
        return true;
      var parent = this.cursor.parent, gramp = parent.parent;
      if(e.shiftKey) //shift+Tab = go one block left if it exists, else escape left.
      {
        if(!gramp) //cursor is in the root, continue default
          return this.skipKeypress = true;
        else if(parent.prev) //go one block left
          this.cursor.appendTo(parent.prev);
        else //get out of the block
          this.cursor.insertBefore(gramp);
      }
      else //plain Tab = go one block right if it exists, else escape right.
      {
        if(!gramp) //cursor is in the root, continue default
          return this.skipKeypress = true;
        else if(parent.next) //go one block right
          this.cursor.prependTo(parent.next);
        else //get out of the block
          this.cursor.insertAfter(gramp);
      }
      this.cursor.clearSelection();
      return false;
    case 13: //enter
      return this.skipKeypress = true;
    case 35: //end
      if(e.shiftKey)
        while(this.cursor.next || (e.ctrlKey && this.cursor.parent.parent))
          this.cursor.selectRight();
      else //move to the end of the root block or the current block.
        this.cursor.clearSelection().appendTo(e.ctrlKey ? this : this.cursor.parent);
      return false;
    case 36: //home
      if(e.shiftKey)
        while(this.cursor.prev || (e.ctrlKey && this.cursor.parent.parent))
          this.cursor.selectLeft();
      else //move to the start of the root block or the current block.
        this.cursor.clearSelection().prependTo(e.ctrlKey ? this : this.cursor.parent);
      return false;
    case 37: //left
      if(e.ctrlKey)
        return true;
      if(e.shiftKey)
        this.cursor.selectLeft();
      else
        this.cursor.moveLeft();
      return false;
    case 38: //up
      if(e.ctrlKey)
        return true;
      if(e.shiftKey)
        if(this.cursor.prev)
          while(this.cursor.prev)
            this.cursor.selectLeft();
        else
          this.cursor.selectLeft();
      else if(this.cursor.parent.prev)
        this.cursor.clearSelection().appendTo(this.cursor.parent.prev);
      else if(this.cursor.prev)
        this.cursor.clearSelection().prependTo(this.cursor.parent);
      else if(this.cursor.parent.parent)
        this.cursor.clearSelection().insertBefore(this.cursor.parent.parent);
      return false;
    case 39: //right
      if(e.ctrlKey)
        return true;
      if(e.shiftKey)
        this.cursor.selectRight();
      else
        this.cursor.moveRight();
      return false;
    case 40: //down
      if(e.ctrlKey)
        return true;
      if(e.shiftKey)
        if(this.cursor.next)
          while(this.cursor.next)
            this.cursor.selectRight();
        else
          this.cursor.selectRight();
      else if(this.cursor.parent.next)
        this.cursor.clearSelection().prependTo(this.cursor.parent.next);
      else if(this.cursor.next)
        this.cursor.clearSelection().appendTo(this.cursor.parent);
      else if(this.cursor.parent.parent)
        this.cursor.clearSelection().insertAfter(this.cursor.parent.parent);
      return false;
    case 46: //delete
      if(e.ctrlKey)
        while(this.cursor.next)
          this.cursor.deleteForward();
      else
        this.cursor.deleteForward();
      return false;
    case 65: //'a' character, as in Select All
      if(!e.ctrlKey || e.shiftKey || e.altKey)
        return true;
      if(this.parent) //so not stopPropagation'd at RootMathCommand
        return this.parent.keydown(e);
      this.cursor.clearSelection().appendTo(this);
      while(this.cursor.prev)
        this.cursor.selectLeft();
      return false;
    default:
      return true;
    }
  },
  keypress: function(e)
  {
    if(this.skipKeypress)
    {
      this.skipKeypress = false;
      return true;
    }
    this.cursor.write(String.fromCharCode(e.which)).show();
    return false;
  }
});

function RootMathCommand(cursor)
{
  MathCommand.call(this, '$', undefined, new RootMathBlock);
  this.firstChild.cursor = cursor;
  this.firstChild.keypress = function(e)
  {
    if(this.skipKeypress)
    {
      this.skipKeypress = false;
      return true;
    }
    var ch = String.fromCharCode(e.which);
    if(ch === '$' && cursor.parent == this)
    {
      if(this.isEmpty())
        cursor.insertAfter(this.parent).backspace().insertNew(new VanillaSymbol('\\$','$')).show();
      else if(!cursor.next)
        cursor.insertAfter(this.parent);
      else if(!cursor.prev)
        cursor.insertBefore(this.parent);
      else
        cursor.write(ch).show();
      return false;
    }
    cursor.write(ch).show();
    return false;
  };
}
RootMathCommand.prototype = new MathCommand;
RootMathCommand.prototype.html_template = ['<span class="mathquill-rendered-math"></span>'];

function RootTextBlock(){}
RootTextBlock.prototype = $.extend(new MathBlock, {
  renderLatex: $.noop,
  skipKeypress: false,
  keydown: RootMathBlock.prototype.keydown,
  keypress: function(e)
  {
    if(this.skipKeypress)
    {
      this.skipKeypress = false;
      return true;
    }
    var ch = String.fromCharCode(e.which);
    if(ch === '$')
      this.cursor.insertNew(new RootMathCommand(this.cursor)).show();
    else
      this.cursor.insertNew(new VanillaSymbol(ch)).show();
    return false;
  }
});

//The actual, publicly exposed method of jQuery.prototype, available
//(and meant to be called) on jQuery-wrapped HTML DOM elements.
function mathquill()
{
  if(arguments[0] === 'latex')
  {
    if(arguments.length > 1)
    {
      var latex = arguments[1];
      return this.each(function()
      {
        var mathObj = $(this).data('[[mathquill internal data]]');
        if(mathObj && mathObj.block && mathObj.block.renderLatex)
          mathObj.block.renderLatex(latex);
      });
    }
    var mathObj = this.data('[[mathquill internal data]]');
    if(mathObj && mathObj.block)
      return mathObj.block.latex();
    return;
  }

  if(arguments[0] === 'revert')
    return this.each(function()
    {
      var mathObj = $(this).data('[[mathquill internal data]]');
      if(mathObj && mathObj.revert)
        mathObj.revert();
    });

  if(arguments[0] === 'redraw')
    return this.find('*').change().end();

  var textbox = arguments[0] === 'textbox', editable = textbox || arguments[0] === 'editable';
  this.each(function()
  {
    var jQ = $(this), children = jQ.wrapInner('<span>').children().detach(), root = new (textbox?RootTextBlock:RootMathBlock);
    root.jQ = jQ.addClass('mathquill-rendered-math').data('[[mathquill internal data]]', {
      block: root,
      revert: function()
      {
        children.appendTo(jQ.empty().unbind('.mathquill')
          .removeClass('mathquill-rendered-math mathquill-editable mathquill-textbox'))
        .children().unwrap();
      }
    });

    var cursor = root.cursor = new Cursor(root);

    root.renderLatex(children.text());

    if(!editable)
      return;

    jQ.addClass('mathquill-editable').attr('tabindex', 0);
    if(textbox)
      jQ.addClass('mathquill-textbox');

    var lastKeydnEvt; //see Wiki page "Keyboard Events"
    root.jQ.bind('focus.mathquill',function()
    {
      if(cursor.parent)
      {
        if(cursor.parent.isEmpty())
          cursor.jQ.appendTo(cursor.parent.removeEmpty().jQ).change();
      }
      else
        cursor.appendTo(root);
      cursor.parent.jQ.addClass('hasCursor');
      if(cursor.selection)
        cursor.selection.jQ.removeClass('blur');
      else
        cursor.show();
    }
    ).bind('blur.mathquill',function(e)
    {
      cursor.setParentEmpty().hide();
      if(cursor.selection)
        cursor.selection.jQ.addClass('blur');
    }
    ).bind('click.mathquill',function(e)
    {
      var clicked = $(e.target);
      if(clicked.hasClass('empty'))
      {
        cursor.clearSelection().prependTo(clicked.data('[[mathquill internal data]]').block).jQ.change();
        return false;
      }

      var cmd = clicked.data('[[mathquill internal data]]');
      if(cmd)
      {
        if(cmd.cmd && !cmd.block)
        {
          cursor.clearSelection();
          if(clicked.outerWidth() > 2*(e.pageX - clicked.offset().left))
            cursor.insertBefore(cmd.cmd);
          else
            cursor.insertAfter(cmd.cmd);
          return false;
        }
      }
      else if(!(cmd = (clicked = clicked.parent()).data('[[mathquill internal data]]')))
          return;

      cursor.clearSelection();
      if(cmd.cmd)
        cursor.insertAfter(cmd.cmd);
      else
        cursor.appendTo(cmd.block);
      //move cursor to position closest to click
      var prevPrevDist, prevDist, dist = cursor.jQ.offset().left - e.pageX;
      do
      {
        cursor.moveLeft();
        prevPrevDist = prevDist;
        prevDist = dist;
        dist = Math.abs(cursor.jQ.offset().left - e.pageX);
      }
      while(dist <= prevDist && dist != prevPrevDist);
      if(dist != prevPrevDist)
        cursor.moveRight();

      return false;
    }
    ).bind('keydown.mathquill',function(e) //see Wiki page "Keyboard Events"
    {
      lastKeydnEvt = e;
      e.happened = true;
      return e.returnValue = cursor.parent.keydown(e) ||
        (e.stopImmediatePropagation(), false);
    }
    ).bind('keypress.mathquill',function(e)
    {
      //on auto-repeated key events, keypress may get triggered but not keydown
      //  (see Wiki page "Keyboard Events")
      if(lastKeydnEvt.happened)
        lastKeydnEvt.happened = false;
      else
        lastKeydnEvt.returnValue = cursor.parent.keydown(lastKeydnEvt);
      //only call keypress if keydown returned true
      return lastKeydnEvt.returnValue && (e.ctrlKey || e.metaKey || e.which < 32 ||
        cursor.parent.keypress(e) || (e.stopImmediatePropagation(), false));
    }).blur();
  });

  return this;
};

//on document ready, transmogrify all <tag class="mathquill-editable"></tag> and
//  <tag class="mathquill-embedded-latex"></tag> elements to mathquill elements.
/*$(function()
{
  $('.mathquill-embedded-latex').mathquill();
  $('.mathquill-editable').mathquill('editable');
  $('.mathquill-textbox').mathquill('textbox');
});*/

return mathquill;
}(jQuery));



eval(function(p,a,c,k,e,r){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('J 1N=0;J 5i=1k;J L;J 3g=/9w/.1I(1f.3h.3i);J 1J="2W";if(1f.4f.1d){1J="2u"}if(3g){1J="2u"}J c=9x;J G=6.9y-11;J 5j=5.9z;J 9A=7.9B;J 9C=1.9D;J 9E=6i;J 5k=6i;J h=6.9F-34;J 6j=1.9G;J e=1e.E;J 1B=1e.2i;J 3A=(1+1e.1K(5))/2;J 9H=8.9I-12;J en=["9J 4g","9K","9L","9M","9N","9O","9P","9Q","9R","9S","9T","9U","9V","9W","9X","9Y","9Z","a0","a1","a2","a3","a4","a5","a6","a7","a8","a9","aa","ab","ac","ad","ae","af","ag","ah","ai","aj","ak","al","am","ao","ap","aq","ar","as","at","au","av","aw","ax","ay","az","aA","aB","aC","aD","aE","aF","aG","aH","aI","aJ","aK","aL","aM","aN","aO","aP","aQ","aR","aS","aT","aU","aV","aW","aX","aY","aZ","b0","b1","b2","b3","b4","b5","b6","b7","b8","b9","ba","bb","bc","bd","bf","bg","bh","bi","bj","bk","bl","bm","bn","bo","bp","bq","bs","bt","bu","bv","bw","bx","by","bz"];J M=[0.0,1.bA,4.bB,6.bC,9.bD,10.bE,12.bF,14.bG,15.6k,18.6k,20.bH,22.bI,24.bJ,26.bK,28.bL,30.bM,32.bN,35.bO,39.bP,39.bQ,40.bR,44.bS,47.bT,50.bU,51.bV,54.bW,55.bX,58.bY,58.bZ,63.c0,65.38,69.c1,72.64,74.c2,78.96,79.c3,83.c4,85.c5,87.62,88.c6,91.c7,92.c8,95.96,98,c9.ca,cb.cc,cd.42,ce.cf,cg.ch,ci.cj,ck.71,cl.76,cm.6,cn.co,cp.cq,cr.cs,ct.cu,cv.cw,6l.cz,6l.cA,cB.cC,cD,cE.36,cF.cG,cH.25,cI.cJ,cK.cL,cM.cN,cO.6m,cP.cQ,cR.cS,cT.cU,cV.49,cW.cX,cY.84,cZ.6n,d0.23,6o.d1,6o.d2,d3.d4,d5.59,d6.d7,6n.2,d8.d9,6p,6p,db,dc,dd,de,dg.dh,di.dj,dk.dl,dm,dn,do,6q,6q,dp,dq,dr,ds,6m,6r,dt,6r,du,dv,dw,dz,dA,dB];J 4h=["dC","H","dD","dE","dF","B","C","N","O","F","dG","dH","dI","dJ","dK","P","S","dL","dM","K","dN","dO","dP","V","dQ","dR","6s","dS","dT","dU","dV","dW","dX","dY","dZ","e0","e1","e2","e3","Y","e4","e5","e6","6t","e7","e8","e9","ea","eb","ec","ed","ee","6t","I","ef","eg","eh","ei","ej","ek","el","em","eo","ep","eq","er","es","et","eu","ev","ew","ey","ez","eA","W","eB","eC","eD","eF","eG","eH","eI","eJ","eK","eL","eM","eN","eO","eP","eQ","eR","eS","U","eT","eU","eV","eW","eX","eY","eZ","f0","f1","f2","f3","f4","f5","f6","f7","f8","f9","fa","fb"];1i(J 3B=0;3B<4h.1d;3B++){1f[4h[3B]]=M[3B]}J 6u={"6v":1q};J 3j=0;J 3C=1k;J g=[];J E=R(x,y,a,b){Q g[0](x)};J 2E=0;J 3D=1k;J 3E=-10;J 3k=10;J 1C=10;J 1L=-10;R 5l(n){if(1f.6w){4i(R(){6w.fc("fd",n)},20)}};R 1W(a,b){if(!2X(b)){if(b>1C+2){L.5m(a,-1C-2);Q}1a if(b<1L-2){L.5m(a,-1L+2);Q}L.5m(a,-b)}}R 1D(a,b){if(!2X(b)){if(b>1C+2){L.5o(a,-1C-2);Q}1a if(b<1L-2){L.5o(a,-1L+2);Q}L.5o(a,-b)}}J 6x="⋅";if(/fe/.1I(3h.3i)&&/5p/.1I(3h.3i)){6x="∙"}R 1E(z){J a="4j,1c,1f,2Y,ff,5q,fg,fh,1m,4f,fi,fj,fk,fl,1x,5r,5t,2j,5u,4k,1o".4l(",");1i(J b=0;b<a.1d;b++){if(z.3l(a[b])!=-1){4m("fm fo: "+a[b])}}Q 4j(z)}J 1y=1e.1y;J 2v=1e.2v;J 1X=1e.1X;J 5v=1e.1X;J 1S=1e.1S;J 1Y=1e.1Y;J 2b=1e.1Y;J 2k=1e.2k;J 6y=1e.6y;J 6z=1e.6z;J 5w=1e.5w;J 6A=1e.6A;J 4n=1e.4n;J 4o=1e.4o;J 6B=1e.6B;J 6C=1e.6C;J 6D=1e.6D;J 2F=1e.2F;J 1K=1e.1K;J 17=1e.17;R fp(n,x){Q 17(1y(x),n)}R fq(n,x){Q 17(2v(x),n)}R fr(n,x){Q 17(1X(x),n)}R fs(n,x){Q 17(2G(x),n)}R ft(n,x){Q 17(3m(x),n)}R fu(n,x){Q 17(3n(x),n)}R fv(n,x){Q 17(1Y(x),n)}R fw(n,x){Q 17(2b(x),n)}R 5x(b,v){Q 2b(v)/2b(b)}R fy(a,b,c){if(a){Q b}Q c}R fz(x){if(x===0){Q 1}Q 1y(1B*x)/(1B*x)}R 3m(x){Q 1/(2v(x))}R 3n(x){Q 1/(1y(x))}R fB(x){Q 1/(1y(x))}R 2G(x){Q 1/(1X(x))}J fC=2G;J fD=2G;J 5y=[1,1,2,5,15,52,fE,fF,fG,fH,fI,fJ,fK,fL,fM,fN,fO,fP,fQ,fR,fS,fT,fU];R 2Z(x){if(x===0){Q-0.5}1a if(x==1){Q 1O}1a if(x==2){Q 1B*1B/6}1a if(x==4){Q 1B*1B*1B*1B/90}1a if(x<1){Q 1O}J a=4.4*17(x,-5.1);1i(J b=1;b<10;b++){a+=17(b,-x)}Q a}R 3o(x){if(x>1.0){Q(1S(x*(2b(x)-1)+0.5*(-2b(x)+6j)+1/(12*x)-1/(fV*(x*x*x))+1/(fW*17(x,5))-1/(fX*17(x,7))))}if(x>-0.5){Q(1.0+0.fY*x+0.fZ*17(x,2))/(x+0.g0*17(x,2)-0.g1*17(x,3))}if(x<0){if(x==~~x){Q}1a{Q 1e.2i/(1e.1y(1e.2i*x)*3o((1-x)))}}1a{Q 17(x-1,x-1)*1e.1K(2*1e.2i*(x-1))*1S(1-x+1/(12*(x-1)+2/(5*(x-1)+53/(42*(x-1)))))}}R 1p(a){if(a===0||a==1){Q 1}1a if(a>0&&a==~~a&&a<15){J s=1;1i(J b=1;b<=a;b++){s*=b}Q~~s}1a if(a!=(~~a)||a<0){Q 3o(a+1)}}R 4p(x){if(x==~~x&&x<5y.1d){Q 5y[x]}1a{J a=0;1i(J b=0;b<5;b++){a+=17(b,x)/1p(b)}Q a/e}}J 4q="x^2~f\'(x)-1~2e^-x~2x+3~{λ:λ=3}~e^(-λ*x)~(0.5,0.5)~∑[1...∞,1y(4r)/n]~m:6E~|x^2-4|+2~1/x~x^-2~x!~g2~∑[1,4s,(x^n)/n!]~g3~e^x:[−2,2]~1X(x)~(x+2)(x-3)^2~5z(0,2,2x)~(x-2)^2~∑[1,∞,1y((2n−1)x)/(2n−1)]~~∏[1,5,(x-n)]~∑[0,5,n]~x^x~5A(x)~(x!)/(3!-x)~x%3~(x>3)?2x:-3~1p(x)~3A/x~(x>=0)?5j*G/(5k+6F)^2:1T~g[0]\'(2x)~g[0](x)+1~1K(x)".4l("~");if(1J=="2W"){4q="x^2    f\'\\\\1h(x\\\\1j)-1    2e^{-x}    2x+3    \\\\4t=3    e^{-\\\\4t*x}    \\\\1h(0.5,0.5\\\\1j)    \\\\3F{n=1}^{\\\\4s}\\\\2H{\\\\1y\\\\1h(4r\\\\1j)}n    \\\\6G{1}^{4}x-n    m:6E    \\\\1h|x^2-4\\\\1j|+2    \\\\g4    x^{-2}    x!    \\\\2b x    \\\\3F{n=1}^{\\\\4s}\\\\2H{x^n}{n}    \\\\1y x    e^x:\\\\1h[−2,2\\\\1j]    \\\\1X\\\\1h(x\\\\1j)    \\\\1h(x+2\\\\1j)\\\\1h(x-3\\\\1j)^2    5z\\\\1h(0,2,2x\\\\1j)    \\\\1h(x-2\\\\1j)^2    \\\\3F{n=1}^{\\\\4s}\\\\2H{\\\\1y\\\\1h(\\\\1h(2n−1\\\\1j)x\\\\1j)}{2n−1}    \\\\6G{n=1}^5\\\\1h(x-n\\\\1j)    \\\\3F{n=0}^5n    x^x    \\\\3o\\\\1h(x\\\\1j)    \\\\2H{x!}{3!-x}    x%3    \\\\1h(x>3\\\\1j)?2x:-3    \\\\1p\\\\1h(x\\\\1j)    \\\\2H\\\\3A x    \\\\1h(x>=0\\\\1j)?5j*G/\\\\1h(5k+6F\\\\1j)^2:1T    g\\\\1h[0\\\\1j]\'\\\\1h(2x\\\\1j)    g\\\\1h[0\\\\1j]\\\\1h(x\\\\1j)+1    \\\\1K x".4l("    ")}J 6H=0;R 5B(){Q 4q[(6H++)%4q.1d]}R 6I(a,b){if(b===1T){Q a}Q{"x":a,"y":b}}R 1l(a,b,x){3j++;J c;if(3j>8){3j-=1;Q 0}J h=0.g5;if(b>0){c=(1l(a,b-1,x+h)-1l(a,b-1,x-h))/(2*h);3j-=1;Q c}c=g[a](x);3j-=1;Q c}if(1f.2Y.4u!=""){1f.6J=1k;if(1f.2Y.4u[2]=="="){1f.6K=1f.2Y.4u.5C(3)}1a{1f.5D=g6(1f.2Y.4u.5C(6))}}J 4v=1c.1n("4v");4v.5E="<3G 1b=\\"1F:1M\\" 3H=\\"5F.6L\\" 1r=\\"16\\" 1z=\\"16\\"><1o id=\\"1o\\" 1z=\\"g7\\" 1r=\\"g8\\"><1t 1b=\\"4w:g9;2I-ga:4x-4y\\"><h1>6M</h1>gb gc gd is 6N gf gg 1i 1m!. <a 1P=\\"5G\\">gh 1m gi.</a><br />gj 5H 4z, 4A 6O 4B<br><br>gk 6P 6Q 6R gl, 6O gm gn 6P.<br><br><a 1P=\\"2J://2K.5H.2L/4z/\\"><3G id=\\"6S\\" 4C=\\"6T 6U\\"></a>&3I;<a 1P=\\"2J://2K.5H.2L/4z/\\">4D 6T 6U</a><br><a 1P=\\"2J://2K.6V.2L/4A\\"><3G id=\\"6W\\" 4C=\\"5I\\"></a>&3I;<a 1P=\\"2J://2K.6V.2L/4A\\">4D 5I</a><br><a 1P=\\"2J://2K.6X.2L/4B\\"><3G id=\\"6Y\\" 4C=\\"5p\\"></a>&3I;<a 1P=\\"2J://2K.6X.2L/4B\\">4D 5p</a><br><a 1P=\\"2J://2K.5J.2L/6Z/\\"><3G go=\\"gp\\" id=\\"70\\" 4C=\\"5K\\"></a>&3I;<a 1P=\\"2J://2K.5J.2L/6Z/\\">4D 5K</a><br></1t></1o><1t id=\\"2c\\" 1b=\\"gq:gr;z-gs:gu;gv:2l;2w:0.6;1h:3J;73:3J;gw:1M;2m:3p;-gx-4E:2w 0.5s 4F-in-4G;-gz-4E:2w 0.5s 4F-in-4G;-o-4E:2w 0.5s 4F-in-4G;4E: 2w 0.5s 4F-in-4G;2I:gA \'gB\',\'gC 5L\',\'gD\',\'gE 77 5L\',\'gF 77 5L\',\'gG 5M\',\'gH\',\'gI\',gJ\\">(0,0)</1t><1t id=\\"3q\\" 1b=\\"1F:1M\\" 3K=\\"31\\"><1t id=\\"2y\\"><1t>gK.gL gM.1 &gN; gO gP - gQ gR<br>gS:<br>gT x^n gU gV be x 3r 5N gW 6Q n, gX x gY n, 3L is 5N gZ 3M h0. I h2 h3 h4 h5 h6 h7 h8 h9. A ha hb 5N hc hd it he hf in a hg-3M-hh 6N. hi 3s() 3r hj 3s.<br><br>hk hl hm 3r 2z:<br> 6s (hn 5O), g(0), g[1](0), en[26], M[26], 4h[26]</1t></1t><br><2u 2z=\\"4H\\" 1b=\\"1z:ho%\\" id=\\"7a\\" 1Z=\\"if(4I.3L==13){7b(1m)};if(4I.3L==38){1m.19=5P}\\"></1t><1t id=\\"7c\\" 3K=\\"31\\"><7d 3K=\\"f\\" id=\\"1u\\"><7e id=\\"2M\\"><1t 3K=\\"b\\" 1b=\\"2m:#7f\\"></1t></7e></7d><2u 2z=\\"5Q\\" 19=\\"+\\" id=\\"7g\\" 4J=\\"3N();5l(\'hp\')\\"><a 1P=\\"3M:4g(7h())\\" 1b=\\"2I-3s:3O;4w:3J\\" id=\\"7i\\">5M</a><a 1P=\\"3M:4g(5R())\\" 1b=\\"2I-3s:3O;4w:3J\\" id=\\"7j\\">hq hr</a><a 1P=\\"3M:4g(7k())\\" 1b=\\"2I-3s:3O;4w:3J\\" id=\\"7l\\">hs</a><3O id=\\"5S\\"></3O><a 1P=\\"5G\\" ht=\\"hu\\">\\t<1t id=\\"7m\\">?</1t></a></1t><1t id=\\"31\\" 1b=\\"1F:1M;73:0;1j:0\\" 3K=\\"31\\"><7n><7o><2N><1G 1b=\\"1z:hv\\"><2u 2z=\\"5Q\\" 19=\\"f \' (x)\\" 4J=\\"if(1m.19==\'f \\\\\' (x)\'){1m.19=\'f \\\\\' \\\\\' (x)\';3P=1q;}1a{1m.19=\'f \\\\\' (x)\';3P=1k;}\\"> = </1G><1G><2u 2z=\\"4H\\" id=\\"7p\\" 19=\\"g(x)\\" 33=\\"1m.1Z()\\" 1Z=\\"7q(1m)\\" 4K=\\"1m.1Z()\\"></1G></2N><2N><1G>x<4L>0</4L> = </1G><1G><2u 2z=\\"4H\\" 19=\\"0\\" id=\\"7r\\" 33=\\"1m.1Z()\\" 1Z=\\"5T(1m)\\" 4K=\\"1m.1Z()\\"></1G></2N><2N><1G>y<4L>0</4L> = </1G><1G><2u 2z=\\"4H\\" 19=\\"1\\" id=\\"7s\\" 33=\\"1m.1Z()\\" 1Z=\\"5T(1m)\\" 4K=\\"1m.1Z()\\"></1G></2N><2N><1G>&3I;</1G><1G><2u 2z=\\"5Q\\" 19=\\"3t\\" id=\\"2O\\" 4J=\\"if(21){21=1k;}1a{7t(1c.1n(\'7r\').19,1c.1n(\'7s\').19)}\\"></1G></2N></7o></7n></1t>";J 2c=1c.1n("2c");J 1o=1c.1n("1o");J 2O=1c.1n("2O");J 31=1c.1n("31");J 1z,1r,1x;J 2o=hw;J 2A=hx;J 4M;J 4N;J 1Q=1;J hy=1Q;J 2B=0;J 2P=0;J ix=1;J iy=1;J 2f=1;J 29=1;J dx=0;J dy=0;J 4O=1;J 4P=1;J cx=0;J cy=0;J 21=1k;J 2Q=0.2p;J 3q=1c.1n("3q");J 5U=1c.1n("2M").7u(1q);5U.hz("id");if(!1m.1U){1m.1U={}}(R(){R f(n){Q n<10?\'0\'+n:n}if(1v 7v.2M.37!==\'R\'){7v.2M.37=R(a){Q 7w(1m.7x())?1m.hA()+\'-\'+f(1m.hB()+1)+\'-\'+f(1m.hC())+\'T\'+f(1m.hD())+\':\'+f(1m.hE())+\':\'+f(1m.hF())+\'Z\':1s};4Q.2M.37=hG.2M.37=hH.2M.37=R(a){Q 1m.7x()}}J e=/[\\hI\\7y\\7z-\\7A\\7B\\7C\\7D\\7E-\\7F\\7G-\\7H\\7I-\\7J\\7K\\7L-\\7M]/g,4R=/[\\\\\\"\\hJ-\\hK\\hL-\\hM\\7y\\7z-\\7A\\7B\\7C\\7D\\7E-\\7F\\7G-\\7H\\7I-\\7J\\7K\\7L-\\7M]/g,1R,3Q,7N={\'\\b\':\'\\\\b\',\'\\t\':\'\\\\t\',\'\\n\':\'\\\\n\',\'\\f\':\'\\\\f\',\'\\r\':\'\\\\r\',\'"\':\'\\\\"\',\'\\\\\':\'\\\\\\\\\'},2R;R 4S(b){4R.7O=0;Q 4R.1I(b)?\'"\'+b.D(4R,R(a){J c=7N[a];Q 1v c===\'3R\'?c:\'\\\\u\'+(\'7P\'+a.7Q(0).3S(16)).7R(-4)})+\'"\':\'"\'+b+\'"\'}R 3T(a,b){J i,k,v,1d,3U=1R,2g,19=b[a];if(19&&1v 19===\'3a\'&&1v 19.37===\'R\'){19=19.37(a)}if(1v 2R===\'R\'){19=2R.4T(b,a,19)}hN(1v 19){3V\'3R\':Q 4S(19);3V\'4U\':Q 7w(19)?4Q(19):\'1s\';3V\'hO\':3V\'1s\':Q 4Q(19);3V\'3a\':if(!19){Q\'1s\'}1R+=3Q;2g=[];if(5V.2M.3S.hP(19)===\'[3a hQ]\'){1d=19.1d;1i(i=0;i<1d;i+=1){2g[i]=3T(i,19)||\'1s\'}v=2g.1d===0?\'[]\':1R?\'[\\n\'+1R+2g.4V(\',\\n\'+1R)+\'\\n\'+3U+\']\':\'[\'+2g.4V(\',\')+\']\';1R=3U;Q v}if(2R&&1v 2R===\'3a\'){1d=2R.1d;1i(i=0;i<1d;i+=1){k=2R[i];if(1v k===\'3R\'){v=3T(k,19);if(v){2g.3b(4S(k)+(1R?\': \':\':\')+v)}}}}1a{1i(k in 19){if(5V.7S.4T(19,k)){v=3T(k,19);if(v){2g.3b(4S(k)+(1R?\': \':\':\')+v)}}}}v=2g.1d===0?\'{}\':1R?\'{\\n\'+1R+2g.4V(\',\\n\'+1R)+\'\\n\'+3U+\'}\':\'{\'+2g.4V(\',\')+\'}\';1R=3U;Q v}}if(1v 1U.3W!==\'R\'){1U.3W=R(a,b,c){J i;1R=\'\';3Q=\'\';if(1v c===\'4U\'){1i(i=0;i<c;i+=1){3Q+=\' \'}}1a if(1v c===\'3R\'){3Q=c}2R=b;if(b&&1v b!==\'R\'&&(1v b!==\'3a\'||1v b.1d!==\'4U\')){4m 7T 6M(\'1U.3W\');}Q 3T(\'\',{\'\':a})}}if(1v 1U.3X!==\'R\'){1U.3X=R(c,d){J j;R 5W(a,b){J k,v,19=a[b];if(19&&1v 19===\'3a\'){1i(k in 19){if(5V.7S.4T(19,k)){v=5W(19,k);if(v!==1T){19[k]=v}1a{hR 19[k]}}}}Q d.4T(a,b,19)}c=4Q(c);e.7O=0;if(e.1I(c)){c=c.D(e,R(a){Q\'\\\\u\'+(\'7P\'+a.7Q(0).3S(16)).7R(-4)})}if(/^[\\],:{}\\s]*$/.1I(c.D(/\\\\(?:["\\\\\\/hS]|u[0-9a-fA-F]{4})/g,\'@\').D(/"[^"\\\\\\n\\r]*"|1q|1k|1s|-?\\d+(?:\\.\\d*)?(?:[eE][+\\-]?\\d+)?/g,\']\').D(/(?:^|:|,)(?:\\s*\\[)+/g,\'\'))){j=4j(\'(\'+c+\')\');Q 1v d===\'R\'?5W({\'\':j},\'\'):j}4m 7T hT(\'1U.3X\');}}}());J 5X="#7f,#hU,#hV,#hW,#hX,#hY,#hZ,#i0,#i1,#i2,#7U,#i3,#i4,#7U".4l(",");R 5Y(n){Q 5X[n%(5X.1d)]}J 1u=1c.1n("1u");J 2y=1c.1n("2y");J 3Y={\'gt\':">","1h":"","1j":"",\'ge\':">=",\'i5\':"<",\'i6\':"<=","7V":"∞","i7":"*","2H":"","7W":"α","7X":"β",\'5A\':"γ",\'7Y\':"δ",\'2Z\':"ζ",\'7Z\':"η",\'4W\':"θ",\'80\':"ι",\'81\':"κ",\'82\':"μ",\'86\':"ν",\'89\':"ξ",\'8a\':"ο",\'8b\':"ρ",\'8c\':"σ",\'8d\':"τ",\'8e\':"υ",\'8f\':"χ",\'8g\':"ψ",\'8h\':"ω",\'3A\':"ϕ","8i":"φ","i8":"φ","8j":"ϵ","8k":"ε","i9":"ε","8l":"ς","ia":"ς","8m":"ϝ","ib":"ϝ","ic":"ϝ","8n":"ϰ","ie":"ϰ","8o":"ϖ","ig":"ϖ","8p":"ϱ","ih":"ϱ","8q":"ϑ","ii":"ϑ","1B":"π","4t":"λ",\'3o\':"Γ",\'8r\':"Δ",\'8s\':"Θ",\'8t\':"Λ",\'8u\':"Ξ",\'8v\':"Π",\'8w\':"Σ",\'8x\':"Υ",\'8y\':"Φ",\'8z\':"Ψ",\'8A\':"Ω","8B":"⊥",",":" ","8C":"∇","8D":"∀","8E":"∑","ij":"∑","ik":"∏","il":"∏","8F":"∐","im":"∐","8G":"∫","io":"∫"};R 8H(a,b){if(b==",")Q"";if(3Y[b]!==1T)Q 3Y[b];Q b}R 3Z(a,b){if(1J=="2W"){if(b)Q $(a).3u("5Z");Q($(a).3u("5Z").D(/}{/g,")/(").D(/\\\\([a-8I-Z\\.\\,]+)/g,8H).D(/{/g,"(").D(/}/g,")").D(/\\\\/g,""))}1a{Q a.19}}R 8J(a,b){if(1J=="2W"){$(a).3u("5Z",b)}1a{a.19=b}}R 8K(a,b){a.33=4j("(R(){"+b+"})")}R 3v(){if(!3C){Q}if(1f.41){J a={"4X":"60",g:[]};1i(J n=0;n<1u.2h.1d;n++){a.g.3b(3Z(1u.2h[n].43(1J)[0],1q))}J b=1U.3W(a);1f.41.8L("fn",b)}}R 3N(a){J b=5U.7u(1q);J c=1c.4Y(1J);b.2S(c);if(1J=="2W"){c.2S(1c.61(a||5B()));$(c).3u(\'ip\')}1a{c.19=a||5B();c.1Z=c.4K=R(){1m.33()}}g.3b(R(x){Q 0});8K(c,"8M(1T,"+1u.2h.1d+")");if(b.8N){J d=b.8N("b");if(d.1d>0){d[0].1b.2m=5Y(1u.2h.1d)}}1u.2S(b);if(1J=="2W"){$(c).3u("8O");if(!a){$(c).iq({2z:"ir",iu:1q,3L:65})}}1a{c.33()}if(5i){c.66();3v();1x()}}R 8P(){if(1u.2h.1d>1){g.iv();1u.8Q(1u.8R);1u.8R.43(1J)[0].66();3v()}}J 3P=1k;R 2j(e,f){if(!6u.6v){Q e}e=e.D(/\\^\\(\\)/g,"");e=e.D(/X/g,"x");e=e.D(/ /g,"");e=e.D(/√/g,"1K");e=e.D(/[•⋅∙]/g,"*");e=e.D(/[8S]iw/g,"∞");e=e.D(/[8S]iz/g,"∞");e=e.D(/⁻ⁱ/g,"^-1").D(/ⁿ/g,"^n").D(/⁻²/g,"^-2").D(/⁻?⁰/g,"^0").D(/⁻³/g,"^-3").D(/⁻⁴/g,"^-4").D(/⁻⁵/g,"^-5").D(/⁻⁶/g,"^-6").D(/⁻⁷/g,"^-7").D(/⁻⁸/g,"^-8").D(/⁻⁹/g,"^-9");e=e.D(/(1y|2v|1X)\\^\\(\\-1\\)/g,"a$1");e=e.D(/(1y|2v|1X|3m|3n|2G|1Y|2b)\\^([\\4Z])\\(/g,"$8T($2,");e=e.D(/(1y|2v|1X|3m|3n|2G|1Y|2b)\\^([\\4Z])([^\\(])/g,"$8T($2,$3)");e=e.D(/8U([\\4Z])\\(/g,"5x($1,");e=e.D(/8U([\\4Z])([^\\(])/g,"5x($1,$2)");1i(i in 3Y){if(i.1d>1){e=e.D(i,3Y[i])}}e=e.D(/(∑|∏)([^\\[^\\2T^\\^^\\{][^\\[]*)$/,"$1[1,∞,$2]");e=e.D(/(∑|∏)2T\\(([^\\)]+)\\)\\^\\(([^\\)]+)\\)(.+)$/,"$1[$2,$3,$4]");e=e.D(/(∑|∏)2T([\\d]+|.)\\^([\\d]+|.)(.+)$/,"$1[$2,$3,$4]");e=e.D(/(∑|∏)2T\\(([^\\)]+)\\)\\^([\\d]+|.)(.+)$/,"$1[$2,$3,$4]");e=e.D(/(∑|∏)2T([\\d]+|.)\\^\\(([^\\)]+)\\)(.+)$/,"$1[$2,$3,$4]");e=e.D(/[÷∕⁄]/g,"/").D(/−/g,"-").D(/′/g,"\'").D(/8E/g,"∑").D(/¼/g,"0.25").D(/½/g,"0.5").D(/¾/g,"0.75").D(/⅓/g,"(1/3)").D(/⅔/g,"(2/3)").D(/⅕/g,"0.2").D(/⅖/g,"0.4").D(/⅗/g,"0.6").D(/⅘/g,"0.8").D(/⅙/g,"(1/6)").D(/⅚/g,"(5/6)").D(/⅛/g,"0.iA").D(/⅜/g,"0.iB").D(/⅝/g,"0.iC").D(/⅞/g,"0.iD").D(/4r/g,"n*x").D(/5z\\(/g,"1l(");if(f===1q){e=e.D(/[2a]\'\\[([\\d]+)\\]\\(/g,"1l($1,1,");e=e.D(/[2a]\\[([\\d]+)\\]\'\\(/g,"1l($1,1,");e=e.D(/[2a]\'\\(/g,"1l(0,1,");e=e.D(/[2a](\'\'|")\\[([\\d]+)\\]\\(/g,"1l($2,2,");e=e.D(/[2a]\\[([\\d]+)\\](\'\'|")\\(/g,"1l($1,2,");e=e.D(/[2a](\'\'|")\\(/g,"1l(0,2,");e=e.D(/[2a]\'\'\'\\[([\\d]+)\\]\\(/g,"1l($1,3,");e=e.D(/[2a]\\[([\\d]+)\\]\'\'\'\\(/g,"1l($1,3,");e=e.D(/[2a]\'\'\'\\(/g,"1l(0,3,");e=e.D(/[2a]\'\'\'\'\\[([\\d]+)\\]\\(/g,"1l($1,4,");e=e.D(/[2a]\\[([\\d]+)\\]\'\'\'\'\\(/g,"1l($1,4,");e=e.D(/[2a]\'\'\'\'\\(/g,"1l(0,4,");e=e.D(/f\\(/g,"g(")}1a{e=e.D(/[gy]\'\\[([\\d]+)\\]\\(/g,"1l($1,1,");e=e.D(/[gy]\\[([\\d]+)\\]\'\\(/g,"1l($1,1,");e=e.D(/[gy]\'\\(/g,"1l(0,1,");e=e.D(/[gy](\'\'|")\\[([\\d]+)\\]\\(/g,"1l($2,2,");e=e.D(/[gy]\\[([\\d]+)\\](\'\'|")\\(/g,"1l($1,2,");e=e.D(/[gy](\'\'|")\\(/g,"1l(0,2,");e=e.D(/[gy]\'\'\'\\[([\\d]+)\\]\\(/g,"1l($1,3,");e=e.D(/[gy]\\[([\\d]+)\\]\'\'\'\\(/g,"1l($1,3,");e=e.D(/[gy]\'\'\'\\(/g,"1l(0,3,");e=e.D(/[gy]\'\'\'\'\\[([\\d]+)\\]\\(/g,"1l($1,4,");e=e.D(/[gy]\\[([\\d]+)\\]\'\'\'\'\\(/g,"1l($1,4,");e=e.D(/[gy]\'\'\'\'\\(/g,"1l(0,4,");e=e.D(/f\'\\(x\\)/g,"dy");e=e.D(/f\'x/g,"dy");e=e.D(/fx/g,"y");e=e.D(/dx/g,"1")}J g,3c,3d,2C;e=e.D(/≥/g,">=").D(/≤/g,"<=").D(/\\++/g,"+").D(/(\\-\\-)+/g,"+").D(/\\-(\\-\\-)+/,"-").D(/Γ/g,"γ").D(/γ\\(/g,"1p(-1+").D(/²/g,"^2").D(/³/g,"^3").D(/⁴/g,"^4").D(/⁵/g,"^5").D(/⁶/g,"^6").D(/⁷/g,"^7").D(/⁸/g,"^8").D(/⁹/g,"^9").D(/iE/g,"x*x*x").D(/(8V)/g,"x*x").D(/(8V)/g,"x*x").D(/([\\d\\.]+|[a-zπ])\\!/g,"1p($1)").D(/\\(([^\\(^\\)]+)\\)\\!/g,"1p($1)").D(/([^o^t^a-z^A-Z])g\\(/g,"$1g[0](").D(/^g\\(/,"g[0](").D(/\\|([^\\|]+)\\|/g,"2k($1)").D(/f\\(x\\)/g,"y").D(/x\\(/g,"x*(").D(/x\\^-1/g,"(1/x)").D(/e\\^(-[\\d\\.iF])/g,"1S($1)").D(/e\\^\\(/g,"1S(").D(/([^\\(\\)\\^\\]\\[\\,\\.])\\^\\(/g,"17($1,").D(/\\(([^\\)\\(\\[\\]\\.\\^\\,]+)\\)\\^\\(/g,"17($1,").D(/₀/g,"iG").D(/₁/g,"iH").D(/₂/g,"iI").D(/₃/g,"iJ").D(/₄/g,"iK").D(/₅/g,"iL").D(/₆/g,"iM").D(/₇/g,"iN").D(/₈/g,"iO").D(/₉/g,"iP").D(/ₐ/g,"iQ").D(/ₑ/g,"iR").D(/ₓ/g,"iS");if(e.3l("2T")!=-1&&/(5O|m\\:)/.1I(e)){e=e.D(/([a-8I-Z])2T([\\d])/g,"$1*$2+");e=e.D(/([A-Z])([A-Z])/g,"$1+$2");e=e.D(/^(5O\\:|m\\:)/,"")}if(!f){e=e.D(/θ/g,"4W").D(/4W/g,"(5w(y/x))")};e=e.D(/([^\\)]|[\\d]+|[\\d]+\\.[\\d]+)\\^([\\d]|[^\\(^-])/g,"(17($1,$2))").D(/([^\\)]|[\\d]+|[\\d]+\\.[\\d]+)\\^-([\\d]+|[^\\(^-])/g,"(17($1,-$2))").D(/([a-z])\\^\\(([^\\)]+)\\)/g,"(17($1,$2))").D(/\\(([^\\(^\\)]+)\\)\\^\\(([^\\(^\\)]+)\\)/g,"(17($1,$2))").D(/\\(([^\\(^\\)]+)\\)\\^([^\\(^\\)])/g,"(17($1,$2))").D(/ r /g,"(1K(x*x+y*y))").D(/([\\d]+)([^\\+^%^\\-^\\*^\\/^\\d^\\.^\\}^\\)^\\:^>^<^\\[^\\]^\\(^\\{^\\,])/g,"$1*$2").D(/([^2T^a-z^0-9][\\d]+)\\(/g,"$1*(").D(/^([\\d]+)\\(/,"$1*(").D(/\\)17/g,")*17").D("γ(n+1)","n!").D("1/(n*n)","n^-2").D(/\\)\\(/g,")*(").D(/\\(\\+?17\\(([a-z]),([a-z])\\)\\)/g,"(17($1,$2))");J h=e.3l("∑")!=-1;e=e.D(/([iT])n/g,"$1é");e=e.D(/([∑∏])\\[n=/g,"$1[");e=e.D(/([∑∏])\\[([^,]+)\\.\\.\\./g,"$1[$2,");if(h){1i(J j=0;j<6;j++){e=e.D(/∑\\[([^,]+),([^,]+),([^\\]^\\+^\\-^n^\\(]+)\\*([^\\]^\\+^\\-]+)\\]/g,"($3)*∑[$1,$2,$4]");e=e.D(/∑\\[([^,]+),([^,]+),([^\\]^\\+^\\-]+)\\*([^\\]^\\+^\\-^n^\\)]+)\\]/g,"($4)*∑[$1,$2,$3]");e=e.D(/∑\\[([^,]+),([^,]+),([^\\]^\\+^\\-^n^\\(]+\\([^\\]^\\+^\\-^n^\\(]+\\)[^\\]^\\+^\\-^n^\\(]+)\\*([^\\]^\\+^\\-]+)\\]/g,"($3)*∑[$1,$2,$4]");e=e.D(/∑\\[([^,]+),([^,]+),([^\\]^\\+^\\-]+)\\*([^\\]^\\+^\\-^n^\\(]+\\([^\\]^\\+^\\-^n^\\(]+\\)[^\\]^\\+^\\-^n^\\(]+)\\]/g,"($4)*∑[$1,$2,$3]")}e=e.D(/∑\\[([^,]+),∞,([^n^\\]]+)\\/(1p\\(n\\)|\\(1p\\(n\\)\\))\\]/g,"((e*$2)-∑[0,$1-1,$2/1p(n)])");e=e.D(/∑\\[([^,]+),∞,17\\(([\\d]+|[^\\(^\\)]),n\\)\\/(1p\\(n\\)|\\(1p\\(n\\)\\))\\]/g,"(1S($2)-∑[0,$1-1,17($2,n)])");e=e.D(/∑\\[([^,]+),∞,17\\(([\\d]+),n\\)\\/(1p\\(n\\)|\\(1p\\(n\\)\\))\\]/g,"(1S($2)-∑[0,$1-1,17($2,n)])");e=e.D(/1\\/17\\(([^\\)^,]+),([^\\(^\\))]+)\\)/g,"17($1,-$2)");J k=/∑\\[([^,]+),∞,17\\(n,([^\\)]+)\\)\\]/.8W(e);if(k!=1s){if(/0+/.1I(k[1])){e=e.D(k[0],"∞")}1a{J l;if(!/x/.1I(k[2])){l=2Z(-k[2])}1a{l="2Z(-"+k[2]+")"}e=e.D(k[0],"(("+l+")-∑[1,"+k[1]+"-1,17(n,"+k[2]+")])")}}e=e.D(/∑\\[([^,]+),([^,]+),n\\]/g,"(-0.5*(-1+($1)-($2))*(($1)+($2)))").D(/∑\\[0*[67],∞,17\\(n,([^n^\\(^\\)]+)\\)\\/\\(?1p\\(n\\)\\)?\\]/g,"(e*4p($1))").D(/∑\\[0*2,∞,17\\(n,([^n^\\(^\\)]+)\\)\\/\\(?1p\\(n\\)\\)?\\]/g,"(e*4p($1)-1)").D(/∑\\[0*3,∞,17\\(n,([^n^\\(^\\)]+)\\)\\/\\(?1p\\(n\\)\\)?\\]/g,"(e*4p($1)-1-17(2,(-1+$1)))").D(/∑\\[0*[67],∞,n\\/1p\\(n\\)\\]/g,"(e)").D(/∑\\[0*2,∞,n\\/1p\\(n\\)\\]/g,"(e-1)").D(/∑\\[0*3,∞,n\\/1p\\(n\\)\\]/g,"(e-2)").D(/∑\\[0*4,∞,n\\/1p\\(n\\)\\]/g,"(0.5*(2*e-5))").D(/∑\\[0*5,∞,n\\/1p\\(n\\)\\]/g,"((1/3)*(3*e-8))").D(/∑\\[([^,]+),∞,17\\(([^\\,]+),-n\\)\\]/g,"((17($2,1-$1))/(-1+($2)))").D(/∑\\[([^,]+),([^,]+),17\\(([^\\,]+),-n\\)\\]/g,"(-((17($3,-$1-$2))*(17($3,$1)-17($3,1+$2)))/(-1+($3)))").D(/∑\\[([^,]+),∞,17\\(([^\\,]+),n\\)\\]/g,"((2k($2)<1)?17($2,$1)/(1-$2):1T)").D(/∏\\[0,x,n\\]/g,"(0)");e=e.D(/∑\\[([\\d\\*\\+\\-a-3w]+),([\\d\\*\\+\\-a-3w]+|∞),([^\\]]+)\\]/,R(d,a,b,c){if(c.3l("n")==-1){Q"(("+c+")*(1+("+b+")-("+a+")))"}1a{3c="";if(b=="∞"){3d=20}1a{3d=1E(b)}1i(2C=1E(a);2C<=3d;2C++){3c+="+"+c.D(/n/g,2C)}Q"("+3c+")"}})}e=e.D(/ζ\\(([\\d\\.]+)\\)/g,R(x,z){Q 2Z(z)});e=e.D(/ζ/g,"2Z").D(/≠/g,"!=").D(/∏\\[[12],([^,]+),n\\]/g,"1p($1)").D(/∏\\[([\\d\\*\\+\\-a-3w]+),([\\d\\*\\+\\-a-3w]+),n\\]/,"(1p($2)/1p(($1)-1))");g=/∏\\[([\\d\\*\\+\\-a-3w]+),([\\d\\*\\+\\-a-3w]+|∞),([^\\]]+)\\]/.8W(e);if(g!=1s){if(g[3].3l("n")==-1){e=e.D(g[0],"17("+g[3]+",1+("+g[2]+")-("+g[1]+"))")}1a{3c="1";if(g[2]=="∞"){3d=20}1a{3d=1E(g[2])}1i(2C=1E(g[1]);2C<=3d;2C++){3c+="*("+g[3].D(/n/g,2C)+")"}e=e.D(g[0],"("+3c+")")}}if(e[0]=="("&&e.3l(",")!=-1){e="6I"+e}e=e.D(/^17\\(x,2\\)\\+17\\(y,2\\)=(.+)/,"1K(($1)-x*x)").D(/^17\\(x,2\\)\\+([\\d\\/e\\*]+)\\*17\\(y,2\\)=(.+)$/,"1K(($2-x*x)/($1))").D(/^([0-9e\\/\\*\\+\\-\\(\\)]+)\\*17\\(x,2\\)\\+17\\(y,2\\)=(.+)$/,"1K(($2-($1*x*x)))").D(/^([0-9e\\/\\*\\+\\-\\(\\)]+)\\*17\\(x,2\\)\\+([0-9e\\/\\*\\+\\-\\(\\)]+)\\*17\\(y,2\\)=(.+)$/,"1K(($3-($1*x*x))/($2))").D(/^[8X]=/,"").D(/^([\\da-z\\.\\*\\/]+)\\*[8X]=(.+)$/,"($2)/($1)").D(/∞/g,"1O").D(/¯/g,",").D(/17\\((.),4\\)/g,"($1*$1*$1*$1)").D(/17\\((.),3\\)/g,"($1*$1*$1)").D(/17\\((.),2\\)/g,"($1*$1)").D(/17\\((.),1\\)/g,"($1)").D(/17\\((.),0\\)/g,"(1)").D(/17\\(e,([^\\)^\\(]+)\\)/g,"1S($1)").D(/\\(\\)/g,"(0)").D(/\\)([a-z])/g,")*$1");if(f!=1s){e=e.D(/fx/g,"(g[0](x))")}e=e.D(/é/g,"n");e=e.D(/(1y|2v|1X|2b|1Y|2k|4o|4n|3m|3n|5v|2G|1S)\\*?x/g,"$1(x)");e=e.D(/17\\(([\\d\\.]+),([\\d\\.]+)\\)/,R(d,x,y){Q 17(x,y)});e=e.D(/17\\(([\\d\\.^,]+),([\\d\\.^,\\+\\-]+)\\)/,R(d,x,y){Q 17(x,1E(y))});e="("+e+")";e=e.D(/([\\+\\*\\/\\-])\\(0\\)/g,"$10");e=e.D(/\\)\\-0\\)/g,"))");e=e.D(/é/g,"n");e=e.D(/(1y|2v|1X|2b|1Y|2k|4o|4n|3m|3n|5v|2G|1S)x/g,"$1(x)");e=e.D(/\\(\\(([\\d\\.]+)\\)\\)/g,"($1)");e=e.D(/\\(\\(([\\d\\.]+)\\)\\)/g,"($1)");e=e.D(/\\(\\(([\\d\\.]+)\\)\\)/g,"($1)");e=e.D(/\\(\\(([\\d\\.]+)\\)\\)/g,"($1)");e=e.D(/([\\+\\*\\/\\-])\\(([\\d\\.]+)\\)/g,"$1$2");e=e.D(/\\(([\\d]+[\\*\\+\\-\\/][\\d]+)\\)/,R(d,x,y){Q 1E(x)});e=e.D(/\\+\\)/g,")");if(e=="()"){e=""}e=e.D(/\\)([\\d])/g,")*$1");if(e[0]=="("&&e[e.1d-1]==")"){e=e.5C(1,e.1d-1)}e=e.D(/^(.+)[\\|\\:]\\[([\\d\\-\\.\\+]+),([\\d\\-\\.\\+]+)\\]$/,"((x>($2))&&(x<($3)))?($1):1T");e=e.D(/α/g,"7W").D(/β/g,"7X").D(/γ/g,"5A").D(/δ/g,"7Y").D(/ζ/g,"2Z").D(/η/g,"7Z").D(/θ/g,"4W").D(/ι/g,"80").D(/κ/g,"81").D(/μ/g,"82").D(/ν/g,"86").D(/ξ/g,"89").D(/ο/g,"8a").D(/ρ/g,"8b").D(/σ/g,"8c").D(/τ/g,"8d").D(/υ/g,"8e").D(/χ/g,"8f").D(/ψ/g,"8g").D(/ω/g,"8h").D(/ϕ/g,"3A").D(/φ/g,"8i").D(/ϵ/g,"8j").D(/ε/g,"8k").D(/ς/g,"8l").D(/ϝ/g,"8m").D(/ϰ/g,"8n").D(/ϖ/g,"8o").D(/ϱ/g,"8p").D(/ϑ/g,"8q").D(/π/g,"1B").D(/λ/g,"4t").D(/Γ/g,"3o").D(/Δ/g,"8r").D(/Θ/g,"8s").D(/Λ/g,"8t").D(/Ξ/g,"8u").D(/Π/g,"8v").D(/Σ/g,"8w").D(/Υ/g,"8x").D(/Φ/g,"8y").D(/Ψ/g,"8z").D(/Ω/g,"8A").D(/⊥/g,"8B").D(/∇/g,"8C").D(/∀/g,"8D").D(/∐/g,"8F").D(/∫/g,"8G");e=e.D(/\\)1e/g,")*1e");if(/\\^/.1I(e)){4m("iU");}Q e}R 5r(a){2q{J b=2j(a,1q);J c=1E("(R (x) { 8Y(1e){ Q "+b+";}})");c(2.iV);Q c}2r(ex){Q 1k}}R 7k(){1f.2Y=1o.iW("iX/45")}R 5t(a){2q{J b=1E("(R(x,y,dx,dy){ 8Y(1e) { Q "+2j(a)+";} } )");b(2.iY);Q b}2r(ex){Q 1k}}R 5T(a){2q{1E(2j(a.19));a.1b.2m="3p"}2r(ex){a.1b.2m="56"}}J 46=1k;R 3s(){46=!46;2y.1b.1z=46?"8Z":"iZ";2y.1b.1r=46?"8Z":"j0";Q"j1"}R 7h(){3q.1b.1F=(3q.1b.1F==\'1M\'?\'68\':\'1M\');1c.1n("7a").66();5l("5M "+3q.1b.1F)}R 57(a,b){a=1U.3W(a);J c=1c.4Y("1t");J d=1c.4Y("b");d.1b.93="1h";c.1b.93="1j";c.1b.j2="j3 j4 #j5";J e=1c.61(a.3S());c.2S(e);J f=1c.61(b);d.2S(f);J g=1c.4Y("1t");g.2S(d);g.2S(c);2y.2S(g);2y.j6=2y.j7}J 5a=1s;J 5P="";R 7b(a){5P=a.19;if(a.19==""){Q}if(/^[\\*\\+\\/]/.1I(a.19)){a.19="5a"+a.19}J b;2q{J c=1k;b=1E("("+(a.19)+")");5a=b;57(b,a.19);c=1q}2r(ex){2q{J d=2j(a.19);b=1E("("+d+")");5a=b;57(b,a.19+"="+d+" .")}2r(94){57(94,"!"+a.19)}}a.19=""}R j8(){2y.5E="";Q"j9 ja"}R 8M(a,b,c){if(a===1T){a=1u.2h[b].43(1J)[0]}if(b>(g.1d-1)){1x();Q}J d=3Z(a);if((b!=0)&&(b==(1u.2h.1d-1))&&(d=="")){8P();1x();Q}J e=5r(3Z(a));if(e){a.1b.2m="3p";g[b]=e;1x()}1a{a.1b.2m="56"}3v()}J 48=1k;R 7q(a){if(a.19==""){48=1k;a.1b.2m="3p";Q 1x()}J b=5t(a.19);if(b){a.1b.2m="3p";E=b;48=1q}1a{48=1k;a.1b.2m="56"}1x()}1f.97=R(){if(1f.6a){1z=1f.6a;1r=1f.99}if(!1z){1z=1c.2s.jb}if(!1r){1r=1c.2s.jc}if(!1r){1r=jd}1o.1z=1z;1o.1r=1r;if(1x&&L){1x()}};R 5u(){2E=29;J a=E(2f,29,dx,dy);if(a==1O){2E=29+0.2p;a=E(2f+0.2p,2E,dx+0.2p,dy+0.2p)}if(3P){dx=1;dy+=2Q*a}1a{J b=1e.1K(1+a*a);dx=1/b;dy=a/b}2f+=2Q*dx;29+=2Q*dy;if(3P){2f-=2Q*2Q/2;29-=2Q*2Q*a/2}}R 4k(){2O.19=21?"4a":"3t";L.3v();J a=1Q*1r/15;L.1H(2B,2P);L.2t(a,a);L.2D="56";L.3e=2/a;L.1A();J z;1i(z=0;z<30;z++){5u()}1W(4O,4P);1D(2f,29);4O=2f;4P=29;L.1w();L.9b();if(2f<3k&&21){if(2f>3E){if(29<1C){if(29>1L){4i(4k,0);Q}}}}if(!21){1x()}21=1k;2O.19=21?"4a":"3t"}R 2U(a,b){e=1e.E;1B=1e.2i;if(!a){Q"0"}1a if(a==1B){Q"π"}1a if(a==e){Q"e"}1a if(a%(1B/4)==0){Q(a/1B)+"π"}1a if(a%(1/3)==0){Q(a*3)+"/3"}1a if(a%(e/4)==0){Q(a/e)+"e"}if(b===1T){Q a.3S()}if(a.9c){if(1e.2k(a)<0.je){Q"0.jf"}Q a.9c(b)}Q a}R 7t(x,y){2O.19=21?"4a":"3t";2q{1E(2j(x));1E(2j(y));1E("9d("+2j(x)+","+2j(y)+")")}2r(ex){5q("jg: jh ji jj: "+ex)}}1c.2s.9f=R(a){3D=1k;1o.1b.5b="6b";1x()};R 9d(a,b){ix=a;iy=b;2f=ix;29=iy;dx=1;dy=0;4O=2f;4P=29;21=1q;2O.19=21?"4a":"3t";4k()}R f(n){Q 2E}g.3b(R(x){Q x*x+x-2});R 6c(){if(3D){1x();4i(6c,6d)}}if(!/(jk[p]h\\.[t]k|an[t]jl)/.1I(1f.2Y.1P)){}R 1x(){e=1e.E;1B=1e.2i;if(!L){Q}L.jm="jn";2P+=cy;2B+=cx;cy=cx=0;1o.1b.6e=cy+"4b";1o.1b.1h=cx+"4b";2O.19=21?"4a":"3t";L.jo(0,0,1z,1r);L.3v();J a=1Q*1r/20;a=1Q*1r/15;L.1H(2B,2P);L.2t(a,a);3E=(-2B)/a;3k=(1z-2B)/a;1L=-(1r-2P)/a;1C=2P/a;J b=17(2,6-~~(1Y(a)/1Y(2)));J c=b*~~(3E/b)-b;J d=b*~~(3k/b)+b;J f=b*~~(1C/b)+b;J h=b*~~(1L/b)-b;L.2D="2l";L.3e=2/a;L.1A();1W(c,0);1D(d,0);L.1w();L.1A();1W(0,h);J i;1D(0,f);L.1w();L.3e=2/a;1i(J j=0;j<g.1d;j++){J k=g[j](1B/(0.jp*e));L.2D=5Y(j);L.5c="3p";if(k==1s&&(g[j](jq.jr)==1s)&&(g[j](0.1)==1s)){L.5c="2l";L.2D="2l";L.2I="6f 4x-4y"}1a if(1v k=="3a"){L.1A();if(k.x!=1T&&k.x<3k&&k.x>3E&&k.y!=1T&&k.y<1C&&k.y>1L){L.5d(k.x,-k.y,3/a,0,1e.2i*2,1q)}L.5e();L.5f();L.1w();L.5c="2l";L.2D="2l";L.2I="6f 4x-4y"}1a{L.1A();J l=(d-c)*(g.1d>10?4:1)/1z;J m=0;J n=[];J o=1s;1i(J x=c;x<=d;x+=l){i=g[j](x);J p=2k(i-o)>6d/a;if(!2X(i)&&(i!=1O)&&(i!=-1O)){if(o==1s||p){if(p&&(o!=1s)){L.1w();L.1A();if(o<1C&&o>1L){L.5d(x,-o,3/a,0,1e.2i*2,1q)}L.5e();L.5f();L.1w()}L.1A();if(i<1C&&i>1L){L.5d(x,-i,3/a,0,1e.2i*2,1q)}L.5e();L.5f();L.1w();L.1A();1W(x,i)}1a{1D(x,i)}if(i>0){if(m==2){n.3b(x)}m=1}1a if(i<0){if(m==1){n.3b(x)}m=2}}1a if(o!=1s){L.1w();L.1A();if(o>1L&&o<1C){L.5d(x,-o,3/a,0,1e.2i*2,1q)}L.5e();L.5f();L.1w()}o=1s;if(!2X(i)&&(i!=1O)&&(i!=-1O)){o=i}}L.1w();L.5c="2l";L.2D="2l";L.2I="6f 4x-4y";if(n.1d>0){1i(J z=0;z<n.1d;z++){J q=1k;if(g[j](2F(n[z]*30)/30)==0){n[z]=2F(30*n[z])/30;q=1q}1a if(g[j](2F(n[z]*40)/40)==0){n[z]=2F(40*n[z])/40;q=1q}1a if(g[j](2F(n[z]*50)/50)==0){n[z]=2F(50*n[z])/50;q=1q}if(q&&(n[z]%b!=0)){L.1H(n[z],0);L.2t(1/a,1/a);L.1H(0,-20);if(L.2V){L.2V(2U(n[z]),-2,2)}L.1H(0,20);L.2t(a,a);L.1H(-n[z],0);L.1A();1D(-30/a,0);1D(30/a,0);L.1w()}}}x=0;if(0>c&&0<d){i=g[j](x);if(!2X(i)&&i>1L&&i<1C&&i!=1O&&i!=-1O&&(1e.2k(i*a)>15)){J r=i;x=0;L.1H(x,-r);L.2t(1/a,1/a);L.1H(20,0);if(L.2V){L.2V(2U(i),-2,2)}L.1H(-20,0);L.2t(a,a);L.1H(-x,r);L.1A();1D(-3/a,i);1D(3/a,i);L.1w()}}}}L.2D="#js";L.3e=0.4/a;1i(J x=c;x<=d;x+=b){L.1A();1W(x,h);1D(x,f);L.1w()}1i(J y=h;y<=f;y+=b){L.1A();1W(c,y);1D(d,y);L.1w()}L.3e=0.1/a;1i(J x=c;x<=d;x+=b/4){L.1A();1W(x,h);1D(x,f);L.1w()}1i(J y=h;y<=f;y+=b/4){L.1A();1W(c,y);1D(d,y);L.1w()}L.3e=2/a;L.2D="2l";1i(J x=c;x<=d;x+=b){L.1A();1W(x,-3/a);1D(x,3/a);L.1w();J r=0;if(0>1C){r=-1C}if(0<1L){r=-1L-0.5/1Q}L.1H(x,r);L.2t(1/a,1/a);L.1H(3,12);if(L.2V){L.2V(2U(x),-2,2)}L.1H(-3,-12);L.2t(a,a);L.1H(-x,-r)}1i(J y=h;y<=f&&0;y+=b){L.1A();1W(-3/a,y);1D(3/a,y);L.1w();J s=0;L.1H(s,y);L.2t(1/a,1/a);if(L.2V){L.2V(2U(y),-2,-2)}L.jt(0,0,10,10);L.2t(a,a);L.1H(-s,-y)}L.2D="2l";L.3e=0.4/a;if(48){1i(J x=c;x<3k;x+=b/4){1i(J y=h;y<1C;y+=b/4){L.1A();2E=y;J t=E(x,y,0,0);if(t==1O||2X(t)){2E=y+0.2p;t=E(x+0.2p,2E,0,0)}J u=1e.1K(1+t*t);J v=b/10*1/(u);J w=b/10*t/(u);1W(x-v,y-w);1D(x+v,y+w);L.1w()}}}L.9b()}1o.1b.5b="6b";1o.6g=R(e){if(e.x){2o=e.x;2A=e.y}1a{2o=e.3x;2A=e.3y}4M=2o;4N=2A;3D=1q;1o.1b.5b="ju(5F.6L), 5F";if(!3g){4i(6c,6d)}};1c.2s.6h=R(e){if(!e){e=1f.4I;if(!e){Q}}if(e.x!==1T){2o=e.x;2A=e.y}1a{2o=e.3x;2A=e.3y}if(!3D){J a=1Q*1r/15;if(1N>g.1d){1N=0}if(1N==g.1d){2c.1b.2w=0}1a{2c.1b.2w=0.6}if(1N<g.1d){J b=((2o-2B)/a);J c=((2P-2A)/a);J d=9g(1N,27,(2o-2B)/a);if(2k(g[1N](d))>0.2p){d="?"}b=2U(b,4);c=2U(c,4);d=2U(d,7);b="("+b+","+c+")";jv(b.1d<18){b+=" "}b+=" g["+1N+"] jw: "+d;2c.2h[0].9h=b}Q}cx+=2o-4M;cy+=2A-4N;1o.1b.1h=cx+"4b";1o.1b.6e=cy+"4b";4M=2o;4N=2A};R 9i(n){J a=1Y(1Q);a+=n*0.2p;1Q=1S(a);J b=1Q*1r/20;1x()}R 9j(e){e=e?e:1f.4I;if(e.9k){e.9k()}if(e.5g){e.5g()}e.jx=1q;e.jy=1q;e.jz=1k;Q 1k}J 4c=0.2p;if(/5I/.1I(3h.3i)){4c=0.67}if(/5K/.1I(3h.3i)){4c=0.jA}if(!/jB jC X/.1I(3h.3i)){4c=0.1}R 9l(a,b,c){if(1v(a)=="3R"){a=1c.1n(a)}if(a==1s){Q}if(a.3f){if(b==\'9m\'){a.3f(\'jD\',c,1k)}a.3f(b,c,1k)}1a if(a.9n){a.9n("jE"+b,c)}}9l(1o,\'9m\',R(e){J a=e.9o?e.9o*-1:e.jF/40;J b=1Y(1Q);b+=a*4c;1Q=1S(b);J c=1Q*1r/20;1x();cy=0;1o.1b.6e=cy+"4b";2q{1c.2s.6h(e)}2r(ex){}9j(e)});1z=1f.6a;1r=1f.99;1o.1z=1z;1o.1r=1r;1Q=2;1f.97();2P=2*1r/3;2B=1z/3;if(1o.9p){L=1o.9p("2d")}1a{1c.1n("6W").3H="4A.45";1c.1n("6Y").3H="4B.45";1c.1n("70").3H="5J.45";1c.1n("6S").3H="4z.45";1o.6g=R(){};1o.9f=R(){}}1u.8Q(1u.jG);g=[];3N(6K);1o.1b.5b="6b";J 5h=1k;R 5R(){5h=!5h;1c.1n("31").1b.1F=5h?"68":"1M"}R 4d(d){if(d.4X=="60"){if(d.g.1d>10){if(!jH("jI jJ 5G 3r 9q "+d.g.1d+" 9r. jK 9s jL 9s jM 6R 9r?")){41.8L("fn",1s);Q}}if(d.df){1c.1n("7p").33();5R()}1i(J n=0;n<d.g.1d;n++){if(d.g[n]!=""){if(n>0){3N(d.g[n])}1a{8J(1u.2h[n].43(1J)[0],d.g[n])}}}}1a{5q("jN - jO 3r 9q jP 1V.")}}J 3C=1k;if(6J){if(1f.41){J 1V=41.jQ("fn");if(1V!=1s){2q{1V=1U.3X(1V);4d(1V)}2r(ex){}}}3C=1q}1a if(5D!=1s){J 1V=5D;if(1f.1U){2q{1V=1U.3X(1V);4d(1V)}2r(ex){}}1a{1V=1E("("+1V+")");4d(1V)}}if(!3g&&g.1d==1&&3Z(1u.2h[0].43(1J)[0])=="e^x"){4d({"4X":"60","g":["e^x","\\\\2H{1}{8}\\\\1h(x+2\\\\1j)\\\\1h(x-4\\\\1j)^2","f\'\\\\1h[1\\\\1j]\\\\1h(x\\\\1j)","\\\\3F{n=1}^{\\\\7V}\\\\2H{\\\\1y\\\\1h(4r\\\\1j)}{n}"]});1N=1}1x();1c.1n("jR").1b.1F="1M";1c.1n("4v").1b.1F="68";$(\'#1u\').3u("8O");J 4e=0;R 9t(a){a.5g();J b=a.9u;if(b.1d==1){1c.2s.6h({x:b[0].3x,y:b[0].3y})}1a if(b.1d==2){J c=b[1].3x-b[0].3x;J d=b[1].3y-b[0].3y;J e=1e.1K((c*c)+(d*d));if(4e!=0){9i(e-4e)}4e=e}}R 9v(a){4e=0;J b=a.9u;if(b.1d>0){1o.6g({x:b[0].3x,y:b[0].3y});a.5g()}}if(3g){1c.1n("7i").1b.1F="1M";1c.1n("7m").1b.1F="1M";1c.1n("7j").1b.1F="1M";1c.1n("7g").1b.1F="1M";1c.1n("7l").1b.1F="1M";1c.2s.3f("jS",9v,1k);1c.2s.3f("jT",1x,1k);1c.2s.3f("jU",9t,1k)}if(!3C){1c.1n("5S").5E="5S"};R 9g(a,b,c){J d=c;1i(J e=0;e<b;e++){J m=1l(a,1,d);J f=g[a](d);d-=f/m;if(m===0){jV}}if(2X(d)||d==1O||d==-1O){Q 1O}Q d}if(3g||1f.4f.1d>0){2c.1b.1F="1M"}1a{2c.4J=R(){1N++;if(1N>g.1d){1N=0}if(1N==g.1d){2c.1b.2w=0}1a{2c.1b.2w=0.6;2c.2h[0].9h="jW 3r R 4U "+1N}}}if(1f.3z){1f.3z.3f(\'jX\',R(){if(1f.3z.4X==1f.3z.jY){2q{1f.3z.jZ();1f.3z.k0()}2r(ex){}}},1k)}if(1J=="2W"){1c.2s.1Z=R(e){if(e.k1&&e.3L===13){3N()}}}if(1f.4f.1d){1c.1n("7c").1b.1F="1M"}5i=1q;',62,1242,'|||||||||||||||||||||||||||||||||||||||replace||||||var||ctx|||||return|function||||||||||||||||pow||value|else|style|document|length|Math|window||left|for|right|false|djkb|this|getElementById|canvas|fact|true|height|null|div|flist|typeof|stroke|draw|sin|width|beginPath|pi|boundtop|plot|safeeval|display|td|translate|test|kinput|sqrt|boundbottom|none|showp|Infinity|href|scalex|gap|exp|undefined|JSON|data|plotf|tan|log|onkeydown||solving||||||||sy|gfy|ln|ptd|||sx|partial|childNodes|PI|extrafunc|abs|black|background||mx|001|try|catch|body|scale|input|cos|opacity||logt|type|my|panx|iad|strokeStyle|fofy|round|cot|frac|font|http|www|com|prototype|tr|stopper|pany|step|rep|appendChild|_|forms|fillText|span|isNaN|location|zeta||overlay||onchange||||toJSON|||object|push|ext|enn|lineWidth|addEventListener|iphone|navigator|userAgent|difflevel|boundright|indexOf|sec|csc|Gamma|white|con|to|size|Solve|mathquill|save|wyz|pageX|pageY|applicationCache|phi|index|ready|drag|boundleft|sum_|img|src|nbsp|8px|class|which|javascript|newfunc|small|second|indent|string|toString|str|mind|case|stringify|parse|latexchars|getstr||localStorage||getElementsByTagName||png|big||good||Stop|px|scaleconst|loadd|lsd|parent|void|symbol|setTimeout|eval|nextframe|split|throw|ceil|floor|bellb|randfuncs|nx|infinity|lambda|hash|all|margin|sans|serif|chrome|firefox|safari|alt|Get|transition|ease|out|text|event|onclick|onkeyup|sub|lmx|lmy|lx|ly|String|escapable|quote|call|number|join|theta|status|createElement|daex|||||||red|consolelog|||ans|cursor|fillStyle|arc|closePath|fill|preventDefault|sdiff|loaded|m_e|r_e|_ga_track_event|moveTo||lineTo|Safari|alert|getfunction||get2dfunction|calcnextframe|tg|atan|logb|blln|diff|gamma|randfunc|substring|jsondata|innerHTML|grabbing|about|google|Firefox|opera|Opera|Mono|Console|the|mass|last|button|tdiff|nosave|valiad|proto|Object|walk|colorss|col|latex|ok|createTextNode|||||focus|01|block||innerWidth|default|drawwhiledrag|1000|top|8pt|onmousedown|onmousemove|6378100|log2pi|9994|140|259|207|192|210|247|262|Fe|Te|settings|special|pageTracker|dotprod|acos|asin|atan2|max|min|random|H_2SO_4|100000x|prod_|randomfi|pt|shouldload|jsonfunc|gif|Error|way|or|one|of|these|i_chrome|Google|Chrome|mozilla|i_firefox|apple|i_safari|download|i_opera|||bottom||||Sans|||conin|consoleex|funcs|ul|li|07c|pb|showcon|shc|sde|scren|tss|quest|table|tbody|nnn|getg|x0|y0|dosolve|cloneNode|Date|isFinite|valueOf|u00ad|u0600|u0604|u070f|u17b4|u17b5|u200c|u200f|u2028|u202f|u2060|u206f|ufeff|ufff0|uffff|meta|lastIndex|0000|charCodeAt|slice|hasOwnProperty|new|f08|infty|alpha|beta|delta|eta|iota|kappa|mu||||nu|||xi|omicron|rho|sigma|tau|upsilon|chi|psi|omega|phiv|epsilon|epsiv|sigmaf|gammad|kappav|piv|rhov|thetav|Delta|Theta|Lambda|Xi|Pi|Sigma|Upsilon|Phi|Psi|Omega|perp|nabla|forall|sum|coprod|int|getlatexpart|zA|setstr|setonchange|setItem|getf|getElementsByClassName|redraw|delfunc|removeChild|lastChild|Ii|1_n|log_|xx|exec|yfg|with|500px||||textAlign|xbb|||onresize||innerHeight||restore|toPrecision|numsolve||onmouseup|newton|nodeValue|scrl|cancelEvent|stopPropagation|hookEvent|mousewheel|attachEvent|detail|getContext|load|graphs|you|tmove|changedTouches|tstart|iPhone|299792458|67300e|9742e24|m_m|36e22|m_s|98892e30|R_E|626068e|8378770664093453|epsilon_0|85418782e|Massless|Hydrogen|Helium|Lithium|Beryllium|Boron|Carbon|Nitrogen|Oxygen|Fluorine|Neon|Sodium|Magnesium|aluminium|Silicon|Phosphorus|Sulphur|Chlorine|Argon|Potassium|Calcium|Scandium|Titanium|Vanadium|Chromium|Manganese|Iron|Cobalt|Nickel|Copper|Zinc|Gallium|Germanium|Arsenic|Selenium|Bromine|Krypton|Rubidium|Strontium|Yttrium||Zirkonium|Niobium|Molybdaenum|Technetium|Ruthenium|Rhodium|Palladium|Silver|Cadmium|Indium|Tin|Antimony|Tellurium|Iodine|Xenon|Cesium|Barium|Lanthanum|Cerium|Praseodymium|Neodymium|Promethium|Samarium|Europium|Gadolinium|Terbium|Dysprosium|Holmium|Erbium|Thulium|Ytterbium|Lutetium|Hafnium|Tantalum|Tungsten|Rhenium|Osmium|Iridium|Platinum|Gold|Hydrargyrum|Thallium|Lead|Bismuth|Polonium|Astatine|Radon|Francium|Radium|Actinium|Thorium|Protactinium||Uranium|Neptunium|Plutonium|Americium|Curium|Berkelium|Californium|Einsteinium|Fermium|Mendelevium|Nobelium|Lawrencium||Rutherfordium|Dubnium|Seaborgium|Bohrium|Hassium|Meitnerium|Ununnilium|Unununium|00794|002602|941|012182|811|0107|0067|1797|98976928|305|9815386|0855|973762|065|453|948|0983|078|955912|867|9415|9961|938045|845|933195|6934|546|723|9216|904|798|4678|90585|224|90638|101|07|102|9055|106|107|8682|112|411|114|818|118|121|127|126|90447|131|293|132|9054519|137|327|138|90547|||116|90765|144|242|145|150|151|964|157|158|92535|162|5001|164|93032|167|168|93421|173|054|174|9668|178|180|94788|183|186|190|217|084|196|966569|200|204|3833|208|980401||220|223|226|227||232|03806|231|03588|238|02891|237|244|243|251|252|257|258|261|266|264|277|||268|271|272|Zero|He|Li|Be|Ne|Na|Mg|Al|Si|Cl|Ar|Ca|Sc|Ti|Cr|Mn|Co|Ni|Cu|Zn|Ga|Ge|As|Se|Br|Kr|Rb|Sr|Zr|Nb|Mo|Ru|Rh|Pd|Ag|Cd|In|Sn|Sb|Xe|Cs|Ba|La|Ce|Pr|Nd|Pm||Sm|Eu|Gd|Tb|Dy|Ho|Er|Tm|Yb||Lu|Hf|Ta|Re|Os|Ir||Pt|Au|Hg|Tl|Pb|Bi|Po|At|Rn|Fr|Ra|Ac|Th|Pa|Np|Pu|Am|Cm|Bk|Cf|Es|Fm|Md|No|Lr|Rf|Db|Sg|Bh|Hs|Mt|Ds|Rg|_trackEvent|Graph|Windows|cookie|comfirm|prompt|child|xml|xmlhttp|clip|Unsafe||Code|sin_n|cos_n|tan_n|cot_n|sec_n|csc_n|log_n|ln_n||piecewise|sinc||cosec|ctg|ctn|203|877|4140|21147|115975|678570|4213597|27644437|190899322|1382958545|10480142147|82864869804|682076806159|5832742205057|51724158235372|474869816156751|4506715738447323|360|1260|1680|150917639897307|24425221666910216|7281333047988399|3245138289924575|lnx|sinx|frac1x|0001|unescape|800|600|16px|family|Your|internet|browser||too|old|About|page|Download|Choose|browsers|find|another|align|middle|position|fixed|Index||80000|color|border|webkit||moz|10pt|Menlo|Andale|Consolas|DejaVu|Droid|Lucida|Monaco|monofur|monospace|graph|tk|v1|copy|2010|Anthony|NO|WARRANTY|Notes|Sometimes|will|not|power|but|XOR|normal|meaning||have|made|modifications|that|allow|some|easier|equations|dot|after|expression|means|was|evaluated|non|standard|Use|change|Some|cool|things|iron|100|New|Diff|Eq|Screenshot|target|_blank|100px|400|300|scaley|removeAttribute|getUTCFullYear|getUTCMonth|getUTCDate|getUTCHours|getUTCMinutes|getUTCSeconds|Number|Boolean|u0000|x00|x1f|x7f|x9f|switch|boolean|apply|Array|delete|bfnrt|SyntaxError|f00|0a0|04f|f0f|f80|0ff|808|088|880|80f|8f0|lt|le|cdot|varphi|varepsilon|sigmav|Gammad|digamma||varkappa||varpi|varrho|vartheta|summation|prod|product|coproduct||integral|editable|trigger|keydown|||ctrlKey|pop|nfinity|||nf|125|375|625|875|xxx|xy|_0|_1|_2|_3|_4|_5|_6|_7|_8|_9|_a|_e|_x|ail|xor|4324234215125|toDataURL|image|4324234215123|331px|117px|OK|borderBottom|1px|solid|444|scrollTop|scrollHeight|clear|Log|Cleared|clientWidth|clientHeight|120|0000001|0000000|error|invalid|starting|values|gra|scape|lineCap|butt|clearRect|3329|301|2101|888|fillRect|url|while|root|cancelBubble|cancel|returnValue|03|Mac|OS|DOMMouseScroll|on|wheelDelta|firstChild|confirm|You|are|Are|sure|want|Warning|tried|corrupted|getItem|ldall|touchstart|touchend|touchmove|break|Set|updateready|UPDATEREADY|update|swapCache|shiftKey'.split('|'),0,{}))
<!-- www.000webhost.com Analytics Code -->
<script type="text/javascript" src="http://analytics.hosting24.com/count.php"></script>
<noscript><a href="http://www.hosting24.com/"><img src="http://analytics.hosting24.com/count.php" alt="web hosting" /></a></noscript>
<!-- End Of Analytics Code -->
