Commit f9ce8fb5 authored by Sindre Sorhus's avatar Sindre Sorhus

Remove labs GWT app which is already in stable

parent 591dbb7e
html,
body {
margin: 0;
padding: 0;
}
body {
font: 14px "Helvetica Neue", Helvetica, Arial, sans-serif;
line-height: 1.4em;
background: #eeeeee;
color: #333333;
width: 520px;
margin: 0 auto;
-webkit-font-smoothing: antialiased;
}
#todoapp {
background: #fff;
padding: 20px;
margin-bottom: 40px;
-webkit-box-shadow: rgba(0, 0, 0, 0.2) 0 2px 6px 0;
-moz-box-shadow: rgba(0, 0, 0, 0.2) 0 2px 6px 0;
-ms-box-shadow: rgba(0, 0, 0, 0.2) 0 2px 6px 0;
-o-box-shadow: rgba(0, 0, 0, 0.2) 0 2px 6px 0;
box-shadow: rgba(0, 0, 0, 0.2) 0 2px 6px 0;
-webkit-border-radius: 0 0 5px 5px;
-moz-border-radius: 0 0 5px 5px;
-ms-border-radius: 0 0 5px 5px;
-o-border-radius: 0 0 5px 5px;
border-radius: 0 0 5px 5px;
}
#todoapp h1 {
font-size: 36px;
font-weight: bold;
text-align: center;
padding: 0 0 10px 0;
}
#todoapp input[type="text"] {
width: 466px;
font-size: 24px;
font-family: inherit;
line-height: 1.4em;
border: 0;
outline: none;
padding: 6px;
border: 1px solid #999999;
-webkit-box-shadow: rgba(0, 0, 0, 0.2) 0 1px 2px 0 inset;
-moz-box-shadow: rgba(0, 0, 0, 0.2) 0 1px 2px 0 inset;
-ms-box-shadow: rgba(0, 0, 0, 0.2) 0 1px 2px 0 inset;
-o-box-shadow: rgba(0, 0, 0, 0.2) 0 1px 2px 0 inset;
box-shadow: rgba(0, 0, 0, 0.2) 0 1px 2px 0 inset;
}
#todoapp input::-webkit-input-placeholder {
font-style: italic;
}
#main {
display: none;
}
#todo-list {
margin: 10px 0;
padding: 0;
list-style: none;
}
#todo-list li {
padding: 18px 20px 18px 0;
position: relative;
font-size: 24px;
border-bottom: 1px solid #cccccc;
}
#todo-list li:last-child {
border-bottom: none;
}
#todo-list li.done label {
color: #777777;
text-decoration: line-through;
}
#todo-list li .destroy {
display: none;
position: absolute;
top: 20px;
right: 10px;
cursor: pointer;
width: 20px;
height: 20px;
background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUBAMAAAB/pwA+AAAABGdBTUEAALGPC/xhBQAAACdQTFRFzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMAAAA////zMzMhnu0WAAAAAt0Uk5T5u3pqtV3jFQEKAC0bVelAAAAfUlEQVQI12NYtWpFsc8R865VqxhWrZpyBgg8QcylZ8AgCsjMgTCPrWJYfgYKqhjWwJgaDDVnzpw+c2bPmTPHGWzOnNm95/TuM2cOM/AARXfvBooeZAAp270bRCIz4QoOIGtDMqwJZoUEQzvCYrhzuhhWtUKYEahOX7UK6iEA3A6NUGwCTZIAAAAASUVORK5CYII=') no-repeat center center;
}
#todo-list li:hover .destroy {
display: block;
}
#todo-list li.editing {
border-bottom: none;
margin-top: -1px;
padding: 0;
}
#todo-list li.editing:last-child {
margin-bottom: -1px;
}
#todo-list li.editing .edit {
display: block;
width: 444px;
padding: 13px 15px 14px 20px;
margin: 0;
}
#todo-list li.editing .view {
display: none;
}
#todo-list li .view label {
word-break: break-word;
}
#todo-list li .edit {
display: none;
}
#todoapp footer {
display: none;
margin: 0 -20px -20px -20px;
overflow: hidden;
color: #555555;
background: #f4fce8;
border-top: 1px solid #ededed;
padding: 0 20px;
line-height: 37px;
-webkit-border-radius: 0 0 5px 5px;
-moz-border-radius: 0 0 5px 5px;
-ms-border-radius: 0 0 5px 5px;
-o-border-radius: 0 0 5px 5px;
border-radius: 0 0 5px 5px;
}
#clear-completed {
display: none;
float: right;
line-height: 20px;
text-decoration: none;
background: rgba(0, 0, 0, 0.1);
color: #555555;
font-size: 11px;
margin-top: 8px;
margin-bottom: 8px;
padding: 0 10px 1px;
cursor: pointer;
-webkit-border-radius: 12px;
-moz-border-radius: 12px;
-ms-border-radius: 12px;
-o-border-radius: 12px;
border-radius: 12px;
-webkit-box-shadow: rgba(0, 0, 0, 0.2) 0 -1px 0 0;
-moz-box-shadow: rgba(0, 0, 0, 0.2) 0 -1px 0 0;
-ms-box-shadow: rgba(0, 0, 0, 0.2) 0 -1px 0 0;
-o-box-shadow: rgba(0, 0, 0, 0.2) 0 -1px 0 0;
box-shadow: rgba(0, 0, 0, 0.2) 0 -1px 0 0;
}
#clear-completed:hover {
background: rgba(0, 0, 0, 0.15);
-webkit-box-shadow: rgba(0, 0, 0, 0.3) 0 -1px 0 0;
-moz-box-shadow: rgba(0, 0, 0, 0.3) 0 -1px 0 0;
-ms-box-shadow: rgba(0, 0, 0, 0.3) 0 -1px 0 0;
-o-box-shadow: rgba(0, 0, 0, 0.3) 0 -1px 0 0;
box-shadow: rgba(0, 0, 0, 0.3) 0 -1px 0 0;
}
#clear-completed:active {
position: relative;
top: 1px;
}
#todo-count span {
font-weight: bold;
}
#instructions {
margin: 10px auto;
color: #777777;
text-shadow: rgba(255, 255, 255, 0.8) 0 1px 0;
text-align: center;
}
#instructions a {
color: #336699;
}
#credits {
margin: 30px auto;
color: #999;
text-shadow: rgba(255, 255, 255, 0.8) 0 1px 0;
text-align: center;
}
#credits a {
color: #888;
}
#todo-count span.word {
font-weight: normal;
}
/* The GWT TodoMVC uses a CellList - a framework widget for rendering a list of cells - to
render the list of todo items. Unfortunately the CellList uses a div as its root container
and wraps each cell in a separate div. There are no extension points that allow you to change this.
As a result, this application deviates from the TodoMVC standard of ul / li for the to do list. The
styles applied to the li elements are duplicated here, matching a listItem class instead. */
#todo-list .listItem {
padding: 18px 20px 18px 0;
position: relative;
font-size: 24px;
border-bottom: 1px solid #cccccc;
}
#todo-list div :last-child .listItem {
border-bottom: none;
}
#todo-list .listItem.done label {
color: #777777;
text-decoration: line-through;
}
#todo-list .listItem .destroy {
display: none;
position: absolute;
top: 20px;
right: 10px;
cursor: pointer;
width: 20px;
height: 20px;
background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUBAMAAAB/pwA+AAAABGdBTUEAALGPC/xhBQAAACdQTFRFzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMAAAA////zMzMhnu0WAAAAAt0Uk5T5u3pqtV3jFQEKAC0bVelAAAAfUlEQVQI12NYtWpFsc8R865VqxhWrZpyBgg8QcylZ8AgCsjMgTCPrWJYfgYKqhjWwJgaDDVnzpw+c2bPmTPHGWzOnNm95/TuM2cOM/AARXfvBooeZAAp270bRCIz4QoOIGtDMqwJZoUEQzvCYrhzuhhWtUKYEahOX7UK6iEA3A6NUGwCTZIAAAAASUVORK5CYII=') no-repeat center center;
}
#todo-list .listItem:hover .destroy {
display: block;
}
#todo-list .listItem.editing {
border-bottom: none;
margin-top: -1px;
padding: 0;
}
#todo-list .listItem.editing:last-child {
margin-bottom: -1px;
}
#todo-list .listItem.editing .edit {
display: block;
width: 444px;
padding: 13px 15px 14px 20px;
margin: 0;
}
#todo-list .listItem.editing .view {
display: none;
}
#todo-list .listItem .view label {
word-break: break-word;
}
#todo-list .listItem .edit {
display: none;
}
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
(function(){var $gwt_version = "2.4.0";var $wnd = window;var $doc = $wnd.document;var $moduleName, $moduleBase;var $strongName = '935405CAEE8D167A6A3D4E8FAE65D368';var $stats = $wnd.__gwtStatsEvent ? function(a) {return $wnd.__gwtStatsEvent(a);} : null;var $sessionId = $wnd.__gwtStatsSessionId ? $wnd.__gwtStatsSessionId : null;$stats && $stats({moduleName:'gwttodo',sessionId:$sessionId,subSystem:'startup',evtGroup:'moduleStartup',millis:(new Date()).getTime(),type:'moduleEvalStart'});function U(){}
function Y(){}
function T(){}
function Z(){}
function $(){}
function ww(){}
function bb(){}
function db(){}
function jb(){}
function ib(){}
function hb(){}
function gb(){}
function rb(){}
function Jb(){}
function zb(){}
function Pb(){}
function Sb(){}
function $b(){}
function Wb(){}
function Hc(){}
function Gc(){}
function Rc(){}
function Tc(){}
function Vc(){}
function Xc(){}
function hd(){}
function gd(){}
function wd(){}
function vd(){}
function ud(){}
function td(){}
function sd(){}
function Fd(){}
function rd(){}
function Kd(){}
function Jd(){}
function Id(){}
function Qd(){}
function Pd(){}
function Ud(){}
function Rd(){}
function Xd(){}
function _d(){}
function be(){}
function fe(){}
function je(){}
function pe(){}
function oe(){}
function ne(){}
function Ae(){}
function ze(){}
function Ce(){}
function Be(){}
function Ge(){}
function Fe(){}
function Ke(){}
function Re(){}
function Qe(){}
function ig(){}
function hg(){}
function lg(){}
function ng(){}
function sg(){}
function vg(){}
function Ig(){}
function Og(){}
function Pg(){}
function Rg(){}
function Ug(){}
function Sg(){}
function Xg(){}
function Vg(){}
function ah(){}
function fh(){}
function eh(){}
function dh(){}
function ch(){}
function ci(){}
function ei(){}
function ni(){}
function ri(){}
function qi(){}
function si(){}
function vi(){}
function Pi(){}
function Si(){}
function fj(){}
function ij(){}
function rj(){}
function pj(){}
function wj(){}
function bk(){}
function ek(){}
function hk(){}
function jk(){}
function pk(){}
function vk(){}
function Ck(){}
function Bk(){}
function Rk(){}
function Qk(){}
function _k(){}
function fl(){}
function wl(){}
function vl(){}
function ul(){}
function Kl(){}
function Jl(){}
function Sl(){}
function Zl(){}
function Yl(){}
function _l(){}
function am(){}
function cm(){}
function em(){}
function pm(){}
function vm(){}
function zm(){}
function Cm(){}
function Jm(){}
function Um(){}
function Tm(){}
function Xm(){}
function Wm(){}
function Zm(){}
function _m(){}
function hn(){}
function fn(){}
function nn(){}
function mn(){}
function ln(){}
function tn(){}
function zn(){}
function Bn(){}
function Dn(){}
function Fn(){}
function Hn(){}
function Qn(){}
function Vn(){}
function $n(){}
function ao(){}
function ko(){}
function io(){}
function lo(){}
function po(){}
function Qo(){}
function To(){}
function ap(){}
function hp(){}
function ep(){}
function mp(){}
function lp(){}
function np(){}
function pp(){}
function rp(){}
function Cp(){}
function Gp(){}
function Op(){}
function Rp(){}
function Xp(){}
function $p(){}
function bq(){}
function fq(){}
function hq(){}
function jq(){}
function uq(){}
function tq(){}
function vq(){}
function xq(){}
function zq(){}
function Bq(){}
function Eq(){}
function Hq(){}
function Vq(){}
function Yq(){}
function $q(){}
function sr(){}
function vr(){}
function yr(){}
function Gr(){}
function Fr(){}
function ks(){}
function js(){}
function ss(){}
function xs(){}
function ws(){}
function Es(){}
function Js(){}
function Ys(){}
function dt(){}
function ht(){}
function nt(){}
function tt(){}
function yt(){}
function du(){}
function cu(){}
function hu(){}
function ru(){}
function vu(){}
function Fu(){}
function Ju(){}
function Lu(){}
function Pu(){}
function Vu(){}
function Zu(){}
function hv(){}
function mv(){}
function ov(){}
function Cv(){}
function Jv(){}
function Ov(){}
function Wv(){}
function Vv(){}
function Xv(){}
function ew(){}
function hw(){}
function lw(){}
function ow(){}
function _q(a){}
function iq(){Zb()}
function wq(){Zb()}
function Cq(){Zb()}
function Fq(){Zb()}
function Wq(){Zb()}
function wr(){Zb()}
function nv(){Zb()}
function oj(){mj()}
function yk(){xk()}
function cl(){bl()}
function co(a){jo(a)}
function xd(a,b){a.e=b}
function zd(a,b){a.a=b}
function Ad(a,b){a.b=b}
function gh(a,b){a.t=b}
function Sc(){this.b=0}
function Uc(){this.b=1}
function Wc(){this.b=2}
function Yc(){this.b=3}
function Gn(){this.b=3}
function An(){this.b=0}
function Cn(){this.b=1}
function En(){this.b=2}
function iw(){this.b=2}
function fw(){this.b=1}
function mw(){this.b=3}
function mi(a){this.a=a}
function oi(a){this.a=a}
function Qi(a){this.a=a}
function Qb(a){this.a=a}
function Tb(a){this.a=a}
function gj(a){this.a=a}
function ck(a){this.a=a}
function cn(a){this.t=a}
function dm(a){this.t=a}
function Sn(a){this.b=a}
function Ro(a){this.a=a}
function Wo(a){this.c=a}
function Qp(a){this.a=a}
function _p(a){this.a=a}
function cq(a){this.a=a}
function oq(a){this.a=a}
function Jq(a){this.a=a}
function os(a){this.a=a}
function As(a){this.a=a}
function vt(a){this.a=a}
function at(a){this.d=a}
function su(a){this.b=a}
function Mu(a){this.b=a}
function Kv(a){this.a=a}
function $d(){this.a={}}
function Nd(){this.c=++Ld}
function Pe(a,b){this.b=b}
function uk(a,b){this.b=b}
function Nk(a,b){Lk(a,b)}
function bw(a,b){this.b=b}
function uv(){this.a=null}
function Hm(){throw mA}
function nj(){lj=new rj}
function ab(){ab=ww;new cb}
function jd(){jd=ww;ld()}
function rn(){rn=ww;yn()}
function cb(){new Jt;Pk()}
function Jt(){zt(this)}
function Xu(){Rr(this)}
function Yu(){Rr(this)}
function hh(a,b){kh(a.t,b)}
function Rh(a,b){Uj(a.k,b)}
function Ol(a,b){Am(a.a,b)}
function gm(a,b){Am(a.a,b)}
function Pp(a,b){Lp(a.a,b)}
function gp(a){mo(a.a,a.b)}
function Up(a,b){Wn(b,a.j)}
function Kb(a){return a.u()}
function Kk(a){return true}
function gn(){throw new nv}
function qw(){this.a=new uv}
function ug(){this.a=new ur}
function bv(){this.a=new Xu}
function cv(){this.a=new Yu}
function Dl(){this.b=new On}
function mb(){Zb();this.b=zw}
function lb(a){Zb();this.b=a}
function Fc(b,a){b.htmlFor=a}
function Dc(b,a){b.checked=a}
function nc(b,a){b.tabIndex=a}
function Zd(a,b,c){a.a[b]=c}
function Ki(a,b,c){Jk(a,b,c)}
function Gl(a,b){zl(a,b,a.t)}
function In(a,b){Ln(a,b,a.b)}
function Nh(a,b){$h(a,a.c,b)}
function Lk(a,b){jl();sl(a,b)}
function rl(a,b){jl();sl(a,b)}
function Yd(a,b){return a.a[b]}
function Sh(a,b,c){Vj(a.k,b,c)}
function Sj(a){Ib((Bb(),Ab),a)}
function Gi(a){Hb((Bb(),Ab),a)}
function Ee(a){De.call(this,a)}
function gq(){lb.call(this,dB)}
function Aq(a){lb.call(this,a)}
function Dq(a){lb.call(this,a)}
function Gq(a){lb.call(this,a)}
function Xq(a){lb.call(this,a)}
function Zq(a){Aq.call(this,a)}
function xr(a){lb.call(this,a)}
function Ku(a){wu.call(this,a)}
function qb(b,a){b[b.length]=a}
function tp(a,b){return a.b==b}
function Ic(a,b){return a.b-b.b}
function rv(a){return !!a&&a.b}
function Tq(a,b){return a>b?a:b}
function Uq(a,b){return a<b?a:b}
function kl(a,b){a.__listener=b}
function Vf(a,b){return !Uf(a,b)}
function tj(){tj=ww;nj(mj())}
function Bb(){Bb=ww;Ab=new Jb}
function xk(){xk=ww;wk=new Nd}
function bl(){bl=ww;al=new Nd}
function _t(){_t=ww;$t=new du}
function Ru(){this.a=new Date}
function on(a){this.t=a;new Ge}
function wu(a){this.b=a;this.a=a}
function Gu(a){this.b=a;this.a=a}
function ym(){Y.call(this,ab())}
function $m(){Om.call(this,Sm())}
function gl(){me.call(this,null)}
function or(){or=ww;lr={};nr={}}
function _g(a){gc(a.parentNode,a)}
function Dp(a,b){a.a=b;Kp(a.b,a)}
function Ep(a,b){a.c=b;Kp(a.b,a)}
function Bl(a,b){return Kn(a.b,b)}
function Kh(a,b){return xj(a.k,b)}
function Lh(a,b){return yj(a.k,b)}
function fk(a,b){return Et(a.k,b)}
function _u(a,b){return Sr(a.a,b)}
function iu(a,b){return a.b.ab(b)}
function vo(a,b){return a.f.bb(b)}
function _f(a){return a.l|a.m<<22}
function Fb(a){return !!a.a||!!a.f}
function Dj(a){return !a.f?a.j:a.f}
function ec(a){return a.firstChild}
function Vr(b,a){return b.e[Ew+a]}
function wc(a){a.returnValue=false}
function Ac(a,b){a.innerText=b||Aw}
function mc(b,a){b.innerHTML=a||Aw}
function nh(a,b){!!a.r&&le(a.r,b)}
function Vt(a,b,c){a.splice(b,c)}
function gi(a,b,c,d){$i(a.a,b,c,d)}
function ed(a){cd();qb(_c,a);fd()}
function Zs(a){return a.b<a.d.gb()}
function _n(a,b){this.a=a;this.b=b}
function Yp(a,b){this.a=a;this.b=b}
function pt(a,b){this.a=a;this.b=b}
function iv(a,b){this.a=a;this.b=b}
function bp(a,b){this.b=a;this.a=b}
function Fs(a,b){this.b=a;this.a=b}
function ok(a,b,c){this.b=b;this.a=c}
function xp(a,b,c){wp(a,df(b,33),c)}
function Wt(a,b,c,d){a.splice(b,c,d)}
function Wl(a){Vl();Ee.call(this,a)}
function nb(a){Zb();this.a=a;Yb(this)}
function me(a){this.a=new ye;this.b=a}
function tr(a,b){ac(a.a,b);return a}
function tg(a,b){tr(a.a,b.a);return a}
function Ec(b,a){b.defaultChecked=a}
function Xr(b,a){return Ew+a in b.e}
function fi(a,b,c){return mh(a.a,b,c)}
function Ff(a){return Gf(a.l,a.m,a.h)}
function jf(a){return a==null?null:a}
function cf(a,b){return a.cM&&a.cM[b]}
function dc(a,b){return a.childNodes[b]}
function bf(a,b){return a.cM&&!!a.cM[b]}
function yb(a){return a.$H||(a.$H=++tb)}
function hf(a){return a.tM==ww||bf(a,1)}
function Ms(a,b){(a<0||a>=b)&&Rs(a,b)}
function Ib(a,b){a.c=Lb(a.c,[b,false])}
function no(){oo.call(this,new Jt)}
function Uh(a){Vh.call(this,new di(a))}
function bn(){cn.call(this,uc($doc,Jw))}
function Sm(){Nm();return $doc.body}
function ar(b,a){return b.charCodeAt(a)}
function cc(b,a){return b.appendChild(a)}
function gc(b,a){return b.removeChild(a)}
function av(a,b){return as(a.a,b)!=null}
function ff(a,b){return a!=null&&bf(a,b)}
function kg(c,a,b){return a.replace(c,b)}
function kh(a,b){a.style.display=b?Aw:Ax}
function zt(a){a.a=Ve(vf,{34:1},0,0,0)}
function di(a){this.a=a;gh(this,this.a)}
function ye(){this.d=new Xu;this.c=false}
function Vl(){Vl=ww;Tl=new Zl;Ul=new am}
function Pk(){Pk=ww;Ok=new Jt;Wk(new Rk)}
function Ed(){Ed=ww;Dd=new Od(Ow,new Fd)}
function Td(){Td=ww;Sd=new Od(Pw,new Ud)}
function mj(){mj=ww;jj=$moduleBase+uy}
function jl(){if(!hl){ql();hl=true}}
function Cj(a){while(!!a.g&&!a.b){Rj(a)}}
function Gj(a){return (!a.f?a.j:a.f).k.b}
function Fj(a,b){return fk(!a.f?a.j:a.f,b)}
function Cc(b,a){return b.getElementById(a)}
function fb(){return (new Date).getTime()}
function Rs(a,b){throw new Gq(rA+a+sA+b)}
function Et(a,b){Ms(b,a.b);return a.a[b]}
function At(a,b){Xe(a.a,a.b++,b);return true}
function ve(a,b){var c;c=we(a,b);return c}
function Yi(a){var b;b=Vi(a);!!b&&jc(b,Qx)}
function Fv(a){Gv.call(this,a,(aw(),Yv))}
function vp(a,b,c,d){up(a,b,df(c,33),d)}
function Hb(a,b){a.a=Lb(a.a,[b,false]);Gb(a)}
function qe(a,b){!a.a&&(a.a=new Jt);At(a.a,b)}
function de(a){var b;if(ae){b=new be;le(a,b)}}
function ke(a,b,c){return new Ae(re(a.a,b,c))}
function fc(c,a,b){return c.insertBefore(a,b)}
function hc(c,a,b){return c.replaceChild(a,b)}
function ub(a,b,c){return a.apply(b,c);var d}
function nq(a,b){return a.a==b.a?0:a.a?1:-1}
function Bv(a,b){return Av(df(a,37),df(b,37))}
function Iq(a,b){return a.a<b.a?-1:a.a>b.a?1:0}
function Sq(a){return Rf(a,xw)?0:Vf(a,xw)?-1:1}
function er(b,a){return b.substr(a,b.length-a)}
function se(a,b,c,d){var e;e=ue(a,b,c);e.Z(d)}
function bh(a,b,c){this.b=a;this.c=b;this.a=c}
function eo(a,b,c){this.a=a;this.b=b;this.c=c}
function Om(a){Dl.call(this);this.t=a;oh(this)}
function bj(a){cj.call(this,a,!Ti&&(Ti=new oj))}
function Zk(){Uk&&de((!Vk&&(Vk=new gl),Vk))}
function On(){this.a=Ve(tf,{34:1},26,4,0)}
function Rq(){Rq=ww;Qq=Ve(uf,{34:1},40,256,0)}
function Dt(a){a.a=Ve(vf,{34:1},0,0,0);a.b=0}
function Uj(a,b){if(!b){throw new Xq(Iy)}a.d=b}
function Al(a,b){if(b<0||b>=a.b.b){throw new Fq}}
function ot(a){var b;b=a.b.T();return new vt(b)}
function Ir(a){var b;b=a.nb();return new pt(a,b)}
function Pm(a){Nm();try{a.K()}finally{av(Mm,a)}}
function so(a){a.f._();a.i=a.g=0;a.j=true;to(a)}
function gf(a){return a!=null&&a.tM!=ww&&!bf(a,1)}
function as(a,b){return !b?cs(a):bs(a,b,~~yb(b))}
function Fp(a,b){this.c=a;this.a=false;this.b=b}
function li(a,b){a.a.j=true;Zi(a.a,b);a.a.j=false}
function ki(a,b,c,d){a.a.i=a.a.i||d;aj(a.a,b,c,d)}
function pw(a,b){return sv(a.a,b,(mq(),kq))==null}
function pb(a){var b;return b=a,hf(b)?b.hC():yb(b)}
function $e(){$e=ww;Ye=[];Ze=[];_e(new Re,Ye,Ze)}
function cd(){cd=ww;_c=[];ad=[];bd=[];Zc=new hd}
function Gk(){Gk=ww;Ek=new Ck;Fk=new Ck;Dk=new Ck}
function Nm(){Nm=ww;Km=new Um;Lm=new Xu;Mm=new bv}
function ld(){ld=ww;jd();kd=Ve(mf,{34:1},-1,30,1)}
function Bi(){wi=yw(function(){Mi($wnd.event)})}
function fd(){if(!$c){$c=true;Ib((Bb(),Ab),Zc)}}
function rr(){if(mr==256){lr=nr;nr={};mr=0}++mr}
function lf(a){if(a!=null){throw new wq}return null}
function Dh(a){if(a.o){return a.o.H()}return false}
function Wk(a){Yk();return Xk(ae?ae:(ae=new Nd),a)}
function bg(a,b){return Gf(a.l^b.l,a.m^b.m,a.h^b.h)}
function yo(a,b){zo.call(this,a,b,null,0);Xn(a,b.b)}
function tm(){Dl.call(this);gh(this,uc($doc,Jw))}
function Bm(a){this.a=a;this.b=Ie(a);this.c=this.b}
function mg(a){this.b=0;this.c=0;this.a=26;this.d=a}
function gk(a){this.k=new Jt;this.n=new bv;this.f=a}
function og(a){if(a==null){throw new Xq(jx)}this.a=a}
function xg(a){if(a==null){throw new Xq(jx)}this.a=a}
function Jg(a){if(a==null){throw new Xq(ux)}this.a=a}
function bu(a){_t();return a?new Ku(a):new wu(null)}
function ji(a){a.b&&(!ti&&(ti=new Ii),Gi(new oi(a)))}
function mq(){mq=ww;kq=new oq(false);lq=new oq(true)}
function ut(a){var b;b=df(a.a.Y(),49);return b.rb()}
function $u(a,b){var c;c=Yr(a.a,b,a);return c==null}
function mo(a,b){var c;c=a.a.f.gb();c>0&&Zn(b,0,a.a)}
function ob(a,b){var c;return c=a,hf(c)?c.eQ(b):c===b}
function Rf(a,b){return a.l==b.l&&a.m==b.m&&a.h==b.h}
function Gf(a,b,c){return _=new ig,_.l=a,_.m=b,_.h=c,_}
function Xk(a,b){return ke((!Vk&&(Vk=new gl),Vk),a,b)}
function kc(b,a){return b[a]==null?null:String(b[a])}
function Lb(a,b){!a&&(a=[]);a[a.length]=b;return a}
function pc(a){var b;b=uc(a,Hw);b.text=Iw;return b}
function Ph(a){var b;b=Vi(a);!!b&&(b.focus(),undefined)}
function jp(a){var b;if(fp){b=new hp;!!a.r&&le(a.r,b)}}
function sj(){sj=ww;mj();kj=new mg((Mg(),new Jg(jj)))}
function Mg(){Mg=ww;new RegExp(vx,lx);new RegExp(wx,lx)}
function ur(){var a;this.a=(a=[],a.explicitLength=0,a)}
function ac(a,b){a[a.explicitLength++]=b==null?Fw:b}
function Rr(a){a.a=[];a.e={};a.c=false;a.b=null;a.d=0}
function Mj(a){a.c.a||Tj(a,-(!a.f?a.j:a.f).g,true,false)}
function Lj(a){a.c.a||Tj(a,(!a.f?a.j:a.f).i-1,true,false)}
function sp(a,b){var c;c=ec(a.firstChild);Ep(b,c.value)}
function Jp(a,b){xo(a.b.a,b);Mp(a);!Ng&&(Ng=new Qg)}
function xj(a,b){return fi(a.k,b,(!bo&&(bo=new Nd),bo))}
function yj(a,b){return fi(a.k,b,(!fp&&(fp=new Nd),fp))}
function Wu(a,b){return jf(a)===jf(b)||a!=null&&ob(a,b)}
function vw(a,b){return jf(a)===jf(b)||a!=null&&ob(a,b)}
function mh(a,b,c){return ke(!a.r?(a.r=new me(a)):a.r,c,b)}
function zl(a,b,c){qh(b);In(a.b,b);cc(c,Fm(b.t));rh(b,a)}
function Ve(a,b,c,d,e){var f;f=Ue(e,d);We(a,b,c,f);return f}
function jo(a){var b;if(a.b||a.c){return}b=a.a;b.k;return}
function Cf(a){if(ff(a,44)){return a}return new nb(a)}
function au(a){_t();var b;b=new cv;$u(b,a);return new Mu(b)}
function Jn(a,b){if(b<0||b>=a.b){throw new Fq}return a.a[b]}
function df(a,b){if(a!=null&&!cf(a,b)){throw new wq}return a}
function vc(a,b){var c=a.createEventObject();c.type=b;return c}
function Fm(a){return a.__gwt_resolve?a.__gwt_resolve():a}
function Ej(a){return (tk(),rk)==a.d?-1:(!a.f?a.j:a.f).d}
function Kj(a){return (!a.f?a.j:a.f).j&&(!a.f?a.j:a.f).i==0}
function Am(a,b){mc(a.a,b);if(a.c!=a.b){a.c=a.b;Je(a.a,a.b)}}
function op(a,b,c){this.a=a;this.d=b;this.c=null;this.b=c}
function Em(a){Dl.call(this);gh(this,uc($doc,Jw));mc(this.t,a)}
function zp(){eb.call(this,We(xf,{34:1},1,[Ow,Pw,Nx,hz]))}
function Qm(){Nm();try{Xl(Mm,Km)}finally{Rr(Mm.a);Rr(Lm)}}
function $g(){if(!Yg){Yg=uc($doc,Jw);kh(Yg,false);cc(Sm(),Yg)}}
function dr(c,a,b){b=gr(b);return c.replace(RegExp(a,lx),b)}
function br(a,b){if(!ff(b,1)){return false}return String(a)==b}
function hr(a,b){a=String(a);if(a==b){return 0}return a<b?-1:1}
function Nn(a,b){var c;c=Kn(a,b);if(c==-1){throw new nv}Mn(a,c)}
function xc(a,b){var c=a.getAttribute(b);return c==null?Aw:c+Aw}
function Bc(a){!a.gwt_uid&&(a.gwt_uid=1);return Nw+a.gwt_uid++}
function Rn(a){if(a.a>=a.b.b){throw new nv}return a.b.a[++a.a]}
function Av(a,b){if(a==null||b==null){throw new Wq}return a.cT(b)}
function oc(a){if(ic(a)){return !!a&&a.nodeType==1}return false}
function ic(b){try{return !!b&&!!b.nodeType}catch(a){return false}}
function vb(){if(sb++==0){Cb((Bb(),Ab));return true}return false}
function Li(a){if(Ni(a)){return mq(),a.checked?lq:kq}return a.value}
function _s(a){if(a.c<0){throw new Cq}a.d.fb(a.c);a.b=a.c;a.c=-1}
function Hj(a){return new bp((!a.f?a.j:a.f).g,(!a.f?a.j:a.f).f)}
function Qu(a,b){return Sq($f(Sf(a.a.getTime()),Sf(b.a.getTime())))}
function Ht(a,b,c){var d;d=(Ms(b,a.b),a.a[b]);Xe(a.a,b,c);return d}
function Bt(a,b,c){(b<0||b>a.b)&&Rs(b,a.b);Wt(a.a,b,0,c);++a.b}
function Dm(a,b,c){qh(b);In(a.b,b);hc(c.parentNode,b.t,c);rh(b,a)}
function We(a,b,c,d){$e();af(d,Ye,Ze);d.aC=a;d.cM=b;d.qI=c;return d}
function Te(a,b){var c,d;c=a;d=Ue(0,b);We(c.aC,c.cM,c.qI,d);return d}
function $r(a,b){var c;c=a.b;a.b=b;if(!a.c){a.c=true;++a.d}return c}
function cs(a){var b;b=a.b;a.b=null;if(a.c){a.c=false;--a.d}return b}
function nd(a){var b;b=$doc.createStyleSheet();b.cssText=a;return b}
function Hl(a){a.style[Wz]=Aw;a.style[Xz]=Aw;a.style[Yz]=Aw}
function oo(a){this.b=new bv;this.e=new Xu;this.a=new yo(this,a)}
function Pl(){gh(this,uc($doc,Zz));this.t[$z]=_z;this.a=new Bm(this.t)}
function Kt(a){zt(this);Xt(this.a,0,0,a.f.ib());this.b=this.a.length}
function X(a){if(!a.e){return}a.g=a.f;a.e=false;a.f=false;a.g&&wm(a)}
function Vo(a){if(a.b<0){throw new Dq(qA)}wo(a.c,a.b);a.a=a.b;a.b=-1}
function $s(a){if(a.b>=a.d.gb()){throw new nv}return a.d.bb(a.c=a.b++)}
function ef(a){if(a!=null&&(a.tM==ww||bf(a,1))){throw new wq}return a}
function Aj(a){!a.f&&(a.f=new ik(a.j));a.g=new ck(a);Sj(a.g);return a.f}
function Gt(a,b){var c;c=(Ms(b,a.b),a.a[b]);Vt(a.a,b,1);--a.b;return c}
function Ft(a,b,c){for(;c<a.b;++c){if(vw(b,a.a[c])){return c}}return -1}
function Wh(a,b,c){b.__listener=a;mc(b,c.a);b.__listener=null;return b}
function sc(a){var b=a.parentNode;(!b||b.nodeType!=1)&&(b=null);return b}
function Se(a,b){var c,d;c=a;d=c.slice(0,b);We(c.aC,c.cM,c.qI,d);return d}
function yp(a,b,c){var d;d=new ug;wp(a,c,d);mc(b,(new xg(bc(d.a.a))).a)}
function Mh(a,b){if(!(b>=0&&b<Gj(a.k))){throw new Gq(Hx+b+Ix+Dj(a.k).i)}}
function Uo(a){if(a.a>=a.c.f.gb()){throw new nv}return vo(a.c,a.b=a.a++)}
function wg(a,b){if(!ff(b,13)){return false}return br(a.a,df(b,13).D())}
function Sr(a,b){return b==null?a.c:ff(b,1)?Xr(a,df(b,1)):Wr(a,b,~~pb(b))}
function Tr(a,b){return b==null?a.b:ff(b,1)?Vr(a,df(b,1)):Ur(a,b,~~pb(b))}
function kf(a){return ~~Math.max(Math.min(a,2147483647),-2147483648)}
function Gm(a){return function(){this.__gwt_resolve=Hm;return a.E()}}
function Im(b){try{return !!b&&!!b.__gwt_resolve}catch(a){return false}}
function go(a,b,c,d){var e;e=new eo(b,c,d);!!bo&&!!a.r&&le(a.r,e);return e}
function _r(e,a,b){var c,d=e.e;a=Ew+a;a in d?(c=d[a]):++e.d;d[a]=b;return c}
function _e(a,b,c){var d=0,e;for(var f in a){if(e=a[f]){b[d]=f;c[d]=e;++d}}}
function af(a,b,c){$e();for(var d=0,e=b.length;d<e;++d){a[b[d]]=c[d]}}
function Xt(a,b,c,d){Array.prototype.splice.apply(a,[b,c].concat(d))}
function Oh(a,b,c){var d;d=Wh(a,(!Jh&&(Jh=uc($doc,Jw)),Jh),c);_h(a.c,d,b)}
function Gv(a,b){var c;c=new Jt;Dv(this,c,b,a.a,null,null);this.a=new at(c)}
function Pv(a,b){this.c=a;this.d=b;this.a=Ve(zf,{34:1},51,2,0);this.b=true}
function et(a,b){var c;this.a=a;this.d=a;c=a.gb();(b<0||b>c)&&Rs(b,c);this.b=b}
function zo(a,b,c,d){this.n=a;this.d=new Ro(this);this.f=b;this.b=c;this.k=d}
function Od(a,b){Nd.call(this);this.a=b;!yd&&(yd=new $d);Zd(yd,a,this);this.b=a}
function sn(a){on.call(this,a,(!Wg&&(Wg=new Xg),!Tg&&(Tg=new Ug)));this.t[$z]=nA}
function $k(){var a;if(Uk){a=new cl;!!Vk&&le(Vk,a);return null}return null}
function Kn(a,b){var c;for(c=0;c<a.b;++c){if(a.a[c]==b){return c}}return -1}
function xo(a,b){var c;c=a.f.cb(b);if(c==-1){return false}wo(a,c);return true}
function Zg(a){var b,c;$g();b=sc(a);c=rc(a);cc(Yg,a);return new bh(b,c,a)}
function qp(){var a;rn();sn.call(this,(a=$doc.createElement(aA),a.type=tA,a))}
function qc(a){var b=a.firstChild;while(b&&b.nodeType!=1)b=b.nextSibling;return b}
function rc(a){var b=a.nextSibling;while(b&&b.nodeType!=1)b=b.nextSibling;return b}
function Qg(){typeof $wnd.localStorage!=xx;typeof $wnd.sessionStorage!=xx}
function qd(a){if($doc.styleSheets.length==0){return nd(a)}return md(0,a,false)}
function Nj(a){Ij(a)&&Tj(a,((tk(),rk)==a.d?-1:(!a.f?a.j:a.f).d)+1,true,false)}
function Pj(a){Jj(a)&&Tj(a,((tk(),rk)==a.d?-1:(!a.f?a.j:a.f).d)-1,true,false)}
function fm(a){return a.p?(mq(),a.b.checked?lq:kq):(mq(),a.b.defaultChecked?lq:kq)}
function wb(b){return function(){try{return xb(b,this,arguments)}catch(a){throw a}}}
function xb(a,b,c){var d;d=vb();try{return ub(a,b,c)}finally{d&&Db((Bb(),Ab));--sb}}
function Yn(a,b,c){var d,e;for(e=ot(Ir(a.b.a));e.a.X();){d=df(ut(e),28);Zn(d,b,c)}}
function Yr(a,b,c){return b==null?$r(a,c):ff(b,1)?_r(a,df(b,1),c):Zr(a,b,c,~~pb(b))}
function ts(a){var b;b=new Jt;a.c&&At(b,new As(a));Qr(a,b);Pr(a,b);this.a=new at(b)}
function Ap(a){var b;b=new ur;ac(b.a,AA);tr(b,Hg(a));ac(b.a,BA);return new og(bc(b.a))}
function Ef(a){var b,c,d;b=a&4194303;c=a>>22&4194303;d=a<0?1048575:0;return Gf(b,c,d)}
function Cb(a){var b,c;if(a.b){c=null;do{b=a.b;a.b=null;c=Nb(b,c)}while(a.b);a.b=c}}
function Db(a){var b,c;if(a.c){c=null;do{b=a.c;a.c=null;c=Nb(b,c)}while(a.c);a.c=c}}
function Eb(a){var b;if(a.a){b=a.a;a.a=null;!a.f&&(a.f=[]);Nb(b,a.f)}!!a.f&&(a.f=Mb(a.f))}
function Kp(a,b){if(a.a){return}br(fr(b.c),Aw)&&xo(a.b.a,b);Mp(a);!Ng&&(Ng=new Qg)}
function Zj(a,b){this.c=(nk(),kk);this.d=(tk(),sk);this.a=a;this.k=b;this.j=new gk(25)}
function Jk(a,b,c){var d;d=Hk;Hk=a;b==Ik&&il(a.type)==8192&&(Ik=null);c.J(a);Hk=d}
function tv(a,b){var c;c=a.a[1-b];a.a[1-b]=c.a[b];c.a[b]=a;a.b=true;c.b=false;return c}
function ro(a,b){var c;a.i=Uq(a.i,a.f.gb());c=a.f.$(b);a.g=a.f.gb();a.j=true;to(a);return c}
function Xo(a,b){var c;this.c=a;c=a.f.gb();if(b<0||b>c){throw new Gq(rA+b+sA+c)}this.a=b}
function sm(a,b){var c;Al(a,b);c=a.a;a.a=Jn(a.b,b);if(a.a!=c){!qm&&(qm=new ym);xm(qm,c,a.a)}}
function Wi(a,b){Cj(a.k);Mh(a,b);if(a.c.childNodes.length>b){return dc(a.c,b)}return null}
function Vi(a){var b;b=Ej(a.k);if(b>=0&&a.c.childNodes.length>b){return dc(a.c,b)}return null}
function pd(a){var b;b=$doc.styleSheets.length;if(b==0){return nd(a)}return md(b-1,a,true)}
function yc(a){var b,c;c=a.tagName;b=a.scopeName;if(b==null||cr(Mw,b)){return c}return b+Ew+c}
function zr(a,b){var c;while(a.X()){c=a.Y();if(b==null?c==null:ob(b,c)){return a}}return null}
function qo(a,b){var c;c=a.f.Z(b);a.i=Uq(a.i,a.f.gb()-1);a.g=a.f.gb();a.j=true;to(a);return c}
function Oq(a){var b,c;if(a==0){return 32}else{c=0;for(b=1;(b&a)==0;b<<=1){++c}return c}}
function cr(b,a){if(a==null)return false;return b==a||b.toLowerCase()==a.toLowerCase()}
function an(a,b){if(a.a!=b){return false}try{rh(b,null)}finally{gc(a.t,b.t);a.a=null}return true}
function Th(a,b){if(!a){return}b?(a.style[Lx]=Aw,undefined):(a.style[Lx]=(Qc(),Ax),undefined)}
function Tp(a,b){b?(a.setAttribute(IA,JA),undefined):(a.setAttribute(IA,KA),undefined)}
function lh(a,b,c){var d;d=il(c.b);d==-1?undefined:a.O(d);return ke(!a.r?(a.r=new me(a)):a.r,c,b)}
function Vj(a,b,c){if(b==(!a.f?a.j:a.f).i&&c==(!a.f?a.j:a.f).j){return}Aj(a).i=b;Aj(a).j=c;Yj(a)}
function Xn(a,b){var c,d;a.c=b;a.d=true;for(d=ot(Ir(a.b.a));d.a.X();){c=df(ut(d),28);c.Q(b,true)}}
function Gb(a){if(!a.i){a.i=true;!a.e&&(a.e=new Qb(a));Ob(a.e,1);!a.g&&(a.g=new Tb(a));Ob(a.g,50)}}
function im(){var a;jm.call(this,(a=$doc.createElement(aA),a.type=ny,a.value=ky,a));this.t[$z]=bA}
function De(a){mb.call(this,a.gb()==0?null:df(a.jb(Ve(yf,{34:1,45:1},44,0,0)),45)[0]);this.a=a}
function Ct(a,b){var c,d;c=b.ib();d=c.length;if(d==0){return false}Xt(a.a,a.b,0,c);a.b+=d;return true}
function Nf(a){var b,c;c=Nq(a.h);if(c==32){b=Nq(a.m);return b==32?Nq(a.l)+32:b+20-10}else{return c-12}}
function bc(a){var b,c;b=(c=a.join(Aw),a.length=a.explicitLength=0,c);a[a.explicitLength++]=b;return b}
function sv(a,b,c){var d,e;d=new Pv(b,c);e=new Wv;a.a=qv(a,a.a,d,e);e.a||++a.b;a.a.b=false;return e.b}
function Oe(){Oe=ww;Ne=new Pe(Ww,0);Me=new Pe(Xw,1);Le=new Pe(Yw,2);We(of,{34:1},11,[Ne,Me,Le])}
function tk(){tk=ww;rk=new uk(Oy,0);sk=new uk(Py,1);qk=new uk(Qy,2);We(rf,{34:1},17,[rk,sk,qk])}
function aw(){aw=ww;Yv=new bw(qB,0);Zv=new fw;$v=new iw;_v=new mw;We(Af,{34:1},52,[Yv,Zv,$v,_v])}
function Qc(){Qc=ww;Pc=new Sc;Mc=new Uc;Nc=new Wc;Oc=new Yc;We(nf,{34:1},2,[Pc,Mc,Nc,Oc])}
function yn(){yn=ww;un=new An;vn=new Cn;wn=new En;xn=new Gn;We(sf,{34:1},25,[un,vn,wn,xn])}
function gg(){gg=ww;cg=Gf(4194303,4194303,524287);dg=Gf(0,0,524288);eg=Tf(1);Tf(2);fg=Tf(0)}
function Oi(a){var b,c,d;if(!xi){return}c=Li(xi);if(!ob(c,zi)){zi=c;d=xi;b=vc($doc,Rx);Ji(a,d,1024,b)}}
function jh(a,b,c){if(!a){throw new lb(yx)}b=fr(b);if(b.length==0){throw new Aq(zx)}c?jc(a,b):lc(a,b)}
function oh(a){var b;if(a.H()){throw new Dq(Bx)}a.p=true;kl(a.t,a);b=a.q;a.q=-1;b>0&&a.O(b);a.F();a.L()}
function Ni(a){var b;if(!a||!cr(dy,yc(a))){return false}b=a.type.toLowerCase();return br(ny,b)||br(oy,b)}
function Ie(a){var b;b=kc(a,Tw);if(cr(Uw,b)){return Oe(),Ne}else if(cr(Vw,b)){return Oe(),Me}return Oe(),Le}
function pl(a,b){var c=a.children.length;for(var d=0;d<c;++d){if(b===a.children[d]){return d}}return -1}
function pv(a,b){var c,d;d=a.a;while(d){c=Bv(b,d.c);if(c==0){return d}c<0?(d=d.a[0]):(d=d.a[1])}return null}
function Cl(a,b){var c;if(b.s!=a){return false}try{rh(b,null)}finally{c=b.t;gc(sc(c),c);Nn(a.b,b)}return true}
function Qh(a,b,c){var d;if(c){d=b;nc(d,a.n)}else{b.tabIndex=-1;b.removeAttribute(Jx);b.removeAttribute(Kx)}}
function Jf(a,b,c,d,e){var f;f=Yf(a,b);c&&Mf(f);if(e){a=Lf(a,b);d?(Df=Wf(a)):(Df=Gf(a.l,a.m,a.h))}return f}
function gwtOnLoad(b,c,d,e){$moduleName=c;$moduleBase=d;if(b)try{yw(Bf)()}catch(a){b(c)}else{yw(Bf)()}}
function Ob(b,c){Bb();$wnd.setTimeout(function(){var a=yw(Kb)(b);a&&$wnd.setTimeout(arguments.callee,c)},c)}
function $h(a,b,c){Dh(a)||kl(a.t,a);mc(b,(!ti&&(ti=new Ii),Fi(ti,c)).a);Dh(a)||(a.t.__listener=null,undefined)}
function Sp(a,b){lh(a.k,new Yp(a,b),(Ed(),Ed(),Dd));lh(a.g,new _p(b),(Td(),Td(),Sd));lh(a.a,new cq(b),Dd)}
function hi(a,b,c){a.a.i=a.a.i||c;a.b=a.a.i;a.a.j=true;Nh(a.a,b);a.a.j=false;nh(a.a,new ri(bu(Dj(a.a.k).k)))}
function ii(a,b,c,d){a.a.i=a.a.i||d;a.b=a.a.i;a.a.j=true;Oh(a.a,b,c);a.a.j=false;nh(a.a,new ri(bu(Dj(a.a.k).k)))}
function Mn(a,b){var c;if(b<0||b>=a.b){throw new Fq}--a.b;for(c=b;c<a.b;++c){Xe(a.a,c,a.a[c+1])}Xe(a.a,a.b,null)}
function Pq(a){var b,c;if(a>-129&&a<128){b=a+128;c=(Rq(),Qq)[b];!c&&(c=Qq[b]=new Jq(a));return c}return new Jq(a)}
function qr(a){or();var b=Ew+a;var c=nr[b];if(c!=null){return c}c=lr[b];c==null&&(c=pr(a));rr();return nr[b]=c}
function Qr(e,a){var b=e.e;for(var c in b){if(c.charCodeAt(0)==58){var d=new Fs(e,c.substring(1));a.Z(d)}}}
function Ip(a){var b,c;c=new Wo(a.b.a);while(c.a<c.c.f.gb()){b=df(Uo(c),33);b.a&&Vo(c)}Mp(a);!Ng&&(Ng=new Qg)}
function Np(a){this.d=new Qp(this);this.b=new no;this.c=a;!Ng&&(Ng=new Qg);Sp(a,this.d);Up(a,this.b);Mp(this)}
function Wp(){this.j=new bj(new zp);Ch(this,eq(this));Rh(this.j,(tk(),rk));this.d.id=NA;this.a.t.id=OA;this.g.t.id=PA}
function qj(a){if(!a.a){a.a=true;ed(vy+(sj(),(mj(),kj).a)+wy+kj.d.a+xy+kj.b+yy+kj.c+zy);return true}return false}
function sq(a){if(a>=48&&a<58){return a-48}if(a>=97&&a<97){return a-97+10}if(a>=65&&a<65){return a-65+10}return -1}
function ns(a,b){var c,d,e;if(ff(b,49)){c=df(b,49);d=c.rb();if(Sr(a.a,d)){e=Tr(a.a,d);return Wu(c.sb(),e)}}return false}
function _i(a){var b;b=Ej(a.k);if(b>=0&&b<Dj(a.k).k.b){Vi(a);Mh(a,b);Fj(a.k,b);b+Hj(a.k).b;a.k;return false}return false}
function Wf(a){var b,c,d;b=~a.l+1&4194303;c=~a.m+(b==0?1:0)&4194303;d=~a.h+(b==0&&c==0?1:0)&1048575;return Gf(b,c,d)}
function Mf(a){var b,c,d;b=~a.l+1&4194303;c=~a.m+(b==0?1:0)&4194303;d=~a.h+(b==0&&c==0?1:0)&1048575;a.l=b;a.m=c;a.h=d}
function Mp(a){var b,c,d,e;e=a.b.a.f.gb();b=0;for(d=new Wo(a.b.a);d.a<d.c.f.gb();){c=df(Uo(d),33);c.a&&++b}Vp(a.c,e,b)}
function xe(a){var b,c;if(a.a){try{for(c=new at(a.a);c.b<c.d.gb();){b=df($s(c),31);se(b.a,b.d,b.c,b.b)}}finally{a.a=null}}}
function It(a,b){var c;b.length<a.b&&(b=Te(b,a.b));for(c=0;c<a.b;++c){Xe(b,c,a.a[c])}b.length>a.b&&Xe(b,a.b,null);return b}
function Fi(a,b){var c,d,e;if(a.b&&!!b){e=$moduleName;d=Sx+e+Tx;c=b.a;c=dr(c,Ux,Vx+d+Wx+d+Xx);b=(Gg(),new xg(c))}return b}
function md(a,b,c){var d;d=$doc.styleSheets[a];c?(d.cssText+=b,undefined):(d.cssText=b+d.cssText,undefined);return d}
function re(a,b,c){if(!b){throw new Xq(Qw)}if(!c){throw new Xq(Rw)}a.b>0?qe(a,new op(a,b,c)):se(a,b,null,c);return new mp}
function ue(a,b,c){var d,e;e=df(Tr(a.d,b),48);if(!e){e=new Xu;Yr(a.d,b,e)}d=df(e.ob(c),47);if(!d){d=new Jt;e.pb(c,d)}return d}
function Rm(){Nm();var a;a=df(Tr(Lm,null),23);if(a){return a}Lm.d==0&&Wk(new Xm);a=new $m;Yr(Lm,null,a);$u(Mm,a);return a}
function we(a,b){var c,d;d=df(Tr(a.d,b),48);if(!d){return _t(),_t(),$t}c=df(d.ob(null),47);if(!c){return _t(),_t(),$t}return c}
function Hr(a,b){var c,d,e;for(d=a.nb().T();d.X();){c=df(d.Y(),49);e=c.rb();if(b==null?e==null:ob(b,e)){return c}}return null}
function $f(a,b){var c,d,e;c=a.l-b.l;d=a.m-b.m+(c>>22);e=a.h-b.h+(d>>22);return Gf(c&4194303,d&4194303,e&1048575)}
function kb(a){var b,c,d;c=Ve(wf,{34:1},43,a.length,0);for(d=0,b=a.length;d<b;++d){if(!a[d]){throw new Wq}c[d]=a[d]}}
function Zb(){var a,b,c,d;c=Xb(new $b);d=Ve(wf,{34:1},43,c.length,0);for(a=0,b=d.length;a<b;++a){d[a]=new _q(c[a])}kb(d)}
function qh(a){if(!a.s){(Nm(),_u(Mm,a))&&Pm(a)}else if(ff(a.s,20)){df(a.s,20).S(a)}else if(a.s){throw new Dq(Dx)}}
function rh(a,b){var c;c=a.s;if(!b){try{!!c&&c.H()&&a.K()}finally{a.s=null}}else{if(c){throw new Dq(Ex)}a.s=b;b.H()&&a.I()}}
function Xe(a,b,c){if(c!=null){if(a.qI>0&&!cf(c,a.qI)){throw new iq}if(a.qI<0&&(c.tM==ww||bf(c,1))){throw new iq}}return a[b]=c}
function If(a,b){if(a.h==524288&&a.m==0&&a.l==0){b&&(Df=Gf(0,0,0));return Ff((gg(),eg))}b&&(Df=Gf(a.l,a.m,a.h));return Gf(0,0,0)}
function Hp(a){var b,c;b=fr(kc(a.c.g.t,HA));if(br(b,Aw))return;c=new Fp(b,a);a.c.g.t[HA]=Aw;qo(a.b.a,c);Mp(a);!Ng&&(Ng=new Qg)}
function Vb(a){var b,c,d;d=Aw;a=fr(a);b=a.indexOf(Bw);if(b!=-1){c=a.indexOf(Cw)==0?8:0;d=fr(a.substr(c,b-c))}return d.length>0?d:Dw}
function Bd(a,b,c){var d,e,f;if(yd){f=df(Yd(yd,a.type),5);if(f){d=f.a.a;e=f.a.b;zd(f.a,a);Ad(f.a,c);nh(b,f.a);zd(f.a,d);Ad(f.a,e)}}}
function Dv(a,b,c,d,e,f){if(!d){return}!!d.a[0]&&Dv(a,b,c,d.a[0],e,f);Ev(c,d.c,e,f)&&b.Z(d);!!d.a[1]&&Dv(a,b,c,d.a[1],e,f)}
function Ji(a,b,c,d){if(!zc(a.t,b)){return}b.__listener=a;rl(b,c|(b.__eventBits||0));!!d&&(b.fireEvent(ky+d.type,d),undefined)}
function Di(a,b){var c;return _u(a.c,yc(b).toLowerCase())||(c=b.getAttributeNode(Jx),c!=null&&c.specified?b.tabIndex:-1)>=0}
function Zi(a,b){var c;c=null;b==(Gk(),Ek)?(c=a.e):b==Dk&&Kj(a.k)&&(c=a.d);!!c&&sm(a.f,Bl(a.f,c));Th(a.c,!c);hh(a.f,!!c);nh(a,new yk)}
function nk(){nk=ww;lk=new ok(Ly,0,true);kk=new ok(My,1,false);mk=new ok(Ny,2,false);We(qf,{34:1},16,[lk,kk,mk])}
function Gg(){Gg=ww;new xg(Aw);Bg=new RegExp(kx,lx);Cg=new RegExp(mx,lx);Dg=new RegExp(Kw,lx);Fg=new RegExp(nx,lx);Eg=new RegExp(ox,lx)}
function Yk(){var a;if(!Uk){a=pc($doc);cc($doc.body,a);$wnd.__gwt_initWindowCloseHandler(yw($k),yw(Zk));gc($doc.body,a);Uk=true}}
function Pr(i,a){var b=i.a;for(var c in b){var d=parseInt(c,10);if(c==d){var e=b[d];for(var f=0,g=e.length;f<g;++f){a.Z(e[f])}}}}
function Ur(i,a,b){var c=i.a[b];if(c){for(var d=0,e=c.length;d<e;++d){var f=c[d];var g=f.rb();if(i.qb(a,g)){return f.sb()}}}return null}
function Wr(i,a,b){var c=i.a[b];if(c){for(var d=0,e=c.length;d<e;++d){var f=c[d];var g=f.rb();if(i.qb(a,g)){return true}}}return false}
function Je(a,b){switch(b.b){case 0:{a[Tw]=Uw;break}case 1:{a[Tw]=Vw;break}case 2:{Ie(a)!=(Oe(),Le)&&(a[Tw]=Aw,undefined);break}}}
function Oj(a){(nk(),kk)==a.c?Tj(a,(!a.f?a.j:a.f).f,true,false):mk==a.c&&Tj(a,((tk(),rk)==a.d?-1:(!a.f?a.j:a.f).d)+30,true,false)}
function Qj(a){(nk(),kk)==a.c?Tj(a,-(!a.f?a.j:a.f).f,true,false):mk==a.c&&Tj(a,((tk(),rk)==a.d?-1:(!a.f?a.j:a.f).d)-30,true,false)}
function fr(c){if(c.length==0||c[0]>Gw&&c[c.length-1]>Gw){return c}var a=c.replace(/^(\s*)/,Aw);var b=a.replace(/\s*$/,Aw);return b}
function tl(){var a=false;for(var b=0;b<$wnd.__gwt_globalEventArray.length;b++){!$wnd.__gwt_globalEventArray[b]()&&(a=true)}return !a}
function Yb(a){var b,c,d,e;d=(gf(a.a)?ef(a.a):null,[]);e=Ve(wf,{34:1},43,d.length,0);for(b=0,c=e.length;b<c;++b){e[b]=new _q(d[b])}kb(e)}
function eb(a){var b,c,d,e;e=null;if(a!=null&&a.length>0){e=new bv;for(c=0,d=a.length;c<d;++c){b=a[c];$u(e,b)}}!!e&&(this.c=(_t(),new Mu(e)))}
function Tf(a){var b,c;if(a>-129&&a<128){b=a+128;Qf==null&&(Qf=Ve(pf,{34:1},12,256,0));c=Qf[b];!c&&(c=Qf[b]=Ef(a));return c}return Ef(a)}
function aj(a,b,c,d){var e;if(!(b>=0&&b<Dj(a.k).k.b)){return}e=Wi(a,b);(!c||a.i||d)&&jh(e,Qx,c);Qh(a,e,c);if(c&&d&&!a.b){e.focus();Yi(a)}}
function uj(a,b,c){var d;d=new ur;ac(d.a,Ay);tr(d,Hg(Aw+a));ac(d.a,By);tr(d,Hg(b));ac(d.a,Cy);tr(d,c.a);ac(d.a,Dy);return new og(bc(d.a))}
function Ch(a,b){var c;if(a.o){throw new Dq(Gx)}ff(b,21)&&df(b,21);qh(b);c=b.t;a.t=c;Im(c)&&(c.__gwt_resolve=Gm(a),undefined);a.o=b;rh(b,a)}
function Ev(a,b,c,d){if(a.xb()){if(Av(df(b,37),df(d,37))>=0){return false}}if(a.wb()){if(Av(df(b,37),df(c,37))<0){return false}}return true}
function zc(a,b){if(a.nodeType!=1&&a.nodeType!=9){return a==b}if(b.nodeType!=1){b=b.parentNode;if(!b){return false}}return a===b||a.contains(b)}
function Yj(a){var b,c,d;d=(!a.f?a.j:a.f).g;b=Tq(0,Uq((!a.f?a.j:a.f).f,(!a.f?a.j:a.f).i-d));c=(!a.f?a.j:a.f).k.b-1;while(c>=b){Gt(Aj(a).k,c);--c}}
function jg(a){return $stats({moduleName:$moduleName,sessionId:$sessionId,subSystem:gx,evtGroup:hx,millis:(new Date).getTime(),type:ix,className:a})}
function gr(a){var b;b=0;while(0<=(b=a.indexOf(fB,b))){a.charCodeAt(b+1)==36?(a=a.substr(0,b-0)+gB+er(a,++b)):(a=a.substr(0,b-0)+er(a,++b))}return a}
function to(a){if(a.b){a.b.i=Uq(a.i+a.k,a.b.i);a.b.g=Tq(a.g+a.k,a.b.g);a.b.j=a.j||a.b.j;to(a.b);return}a.c=false;if(!a.e){a.e=true;Ib((Bb(),Ab),a.d)}}
function Zn(a,b,c){var d,e,f,g,i,j,k,n,o;g=b+c.gb();i=a.P();f=i.b;e=i.a;d=f+e;if(b==f||f<g&&d>b){n=f<b?b:f;j=d>g?g:d;k=j-n;o=c.hb(n-b,n-b+k);a.R(n,o)}}
function Nb(b,c){var a,d,e,f;for(d=0,e=b.length;d<e;++d){f=b[d];try{f[1]?f[0].u()&&(c=Lb(c,f)):f[0].v()}catch(a){a=Cf(a);if(!ff(a,42))throw a}}return c}
function wo(b,c){var a,d,e;try{e=b.f.fb(c);b.i=Uq(b.i,c);b.g=b.f.gb();b.j=true;to(b);return e}catch(a){a=Cf(a);if(ff(a,39)){d=a;throw new Gq(d.b)}else throw a}}
function Lf(a,b){var c,d,e;if(b<=22){c=a.l&(1<<b)-1;d=e=0}else if(b<=44){c=a.l;d=a.m&(1<<b-22)-1;e=0}else{c=a.l;d=a.m;e=a.h&(1<<b-44)-1}return Gf(c,d,e)}
function it(a,b,c){this.c=a;this.a=b;this.b=c-b;if(b>c){throw new Aq(lB+b+mB+c)}if(b<0){throw new Gq(lB+b+nB)}if(c>a.gb()){throw new Gq(oB+c+pB+a.gb())}}
function hm(a,b){var c;!b&&(b=(mq(),kq));c=a.p?(mq(),a.b.checked?lq:kq):(mq(),a.b.defaultChecked?lq:kq);Dc(a.b,b.a);Ec(a.b,b.a);if(!!c&&c.a==b.a){return}}
function ph(a,b){var c;switch(il(b.type)){case 16:case 32:c=b.relatedTarget||(b.type==Cx?b.toElement:b.fromElement);if(!!c&&zc(a.t,c)){return}}Bd(b,a,a.t)}
function Wn(a,b){var c;if(!b){throw new Aq(oA)}else if(_u(a.b,b)){throw new Dq(pA)}$u(a.b,b);c=Lh(b,new _n(a,b));Yr(a.e,b,c);a.c>=0&&Sh(b,a.c,a.d);mo(a,b)}
function Ui(a,b,c,d){var e,f;f=a.a.c;if(!!f&&iu(f,b.type)){e=tp(a.a,df(d,33));vp(a.a,c,d,b);a.b=tp(a.a,df(d,33));e&&!a.b&&(!ti&&(ti=new Ii),Gi(new gj(a)))}}
function Bp(a,b,c,d){var e;e=new ur;ac(e.a,CA);tr(e,Hg(c));ac(e.a,DA);tr(e,Hg(d));ac(e.a,EA);tr(e,a.a);ac(e.a,FA);tr(e,b.a);ac(e.a,GA);return new og(bc(e.a))}
function vj(a,b,c,d){var e;e=new ur;ac(e.a,Ay);tr(e,Hg(Aw+a));ac(e.a,By);tr(e,Hg(b));ac(e.a,Ey);tr(e,Hg(Aw+c));ac(e.a,Fy);tr(e,d.a);ac(e.a,Dy);return new og(bc(e.a))}
function Jj(a){if((tk(),rk)==a.d){return false}else if((rk==a.d?-1:(!a.f?a.j:a.f).d)>0){return true}else if(!a.c.a&&(!a.f?a.j:a.f).g>0){return true}return false}
function Mk(){var a,b,c;b=$doc.compatMode;a=We(xf,{34:1},1,[Ry]);for(c=0;c<a.length;++c){if(br(a[c],b)){return}}a.length==1&&br(Ry,a[0])&&br(Sy,b)?Ty+b+Uy:Vy+b+Wy}
function Bf(){var a,b;!!$stats&&jg(Zw);a=Tk();br($w,a)||($wnd.alert(_w+a+ax),undefined);!!$stats&&jg(bx);Mk();!!$stats&&jg(cx);b=new Wp;new Np(b);Gl((Nm(),Rm()),b)}
function Vp(a,b,c){var d;d=b-c;Tp(a.d,b==0);Tp(a.i,b==0);Tp(a.a.t,c==0);Ac(a.e,Aw+d);Ac(a.f,d>1||d==0?LA:MA);mc(a.b,Aw+c);Ac(a.c,c>1?LA:MA);hm(a.k,(mq(),b==c?lq:kq))}
function Pf(a,b){var c,d,e;e=a.h-b.h;if(e<0){return false}c=a.l-b.l;d=a.m-b.m+(c>>22);e+=d>>22;if(e<0){return false}a.l=c&4194303;a.m=d&4194303;a.h=e&1048575;return true}
function Bj(a,b,c){var d,e,f,g,i,j;if(b==null){return -1}e=-1;d=2147483647;j=a.k.b;for(i=0;i<j;++i){f=Et(a.k,i);if(ob(b,f)){g=c-i<0?-(c-i):c-i;if(g<d){e=i;d=g}}}return e}
function uo(a){var b;a.e&&(a.c=true);if(a.n.a!=a){return}b=a.f.gb();if(a.a!=b){a.a=b;Xn(a.n,a.a)}if(a.j){Yn(a.n,a.i,a.f.hb(a.i,a.g));a.j=false}a.i=2147483647;a.g=-2147483648}
function Lp(a,b){var c,d,e;a.a=true;for(e=new Wo(a.b.a);e.a<e.c.f.gb();){d=df(Uo(e),33);d.a=b;Kp(d.b,d)}a.a=false;c=new Kt(a.b.a);so(a.b.a);ro(a.b.a,c);Mp(a);!Ng&&(Ng=new Qg)}
function Vh(a){var b;Ch(this,a);this.k=new Zj(this,new mi(this));b=new bv;$u(b,Mx);$u(b,Nx);$u(b,Ox);$u(b,Pw);$u(b,Ow);$u(b,Px);ui((!ti&&(ti=new Ii),ti),this,b);Kh(this,new ko)}
function Ue(a,b){var c=new Array(b);if(a==3){for(var d=0;d<b;++d){var e=new Object;e.l=e.m=e.h=0;c[d]=e}}else if(a>0){var e=[null,0,false][a];for(var d=0;d<b;++d){c[d]=e}}return c}
function bs(i,a,b){var c=i.a[b];if(c){for(var d=0,e=c.length;d<e;++d){var f=c[d];var g=f.rb();if(i.qb(a,g)){c.length==1?delete i.a[b]:c.splice(d,1);--i.d;return f.sb()}}}return null}
function Xl(b,c){Vl();var a,d,e,f,g;d=null;for(g=b.T();g.X();){f=df(g.Y(),26);try{c.W(f)}catch(a){a=Cf(a);if(ff(a,44)){e=a;!d&&(d=new bv);$u(d,e)}else throw a}}if(d){throw new Wl(d)}}
function ui(a,b,c){var d,e,f,g;if(!c){return}d=0;for(g=c.T();g.X();){f=df(g.Y(),1);e=il(f);if(e<0);else{e=Hi(a,b,f);e>0&&(d|=e)}}d>0&&(b.q==-1?rl(b.t,d|(b.t.__eventBits||0)):(b.q|=d))}
function Uf(a,b){var c,d;c=a.h>>19;d=b.h>>19;return c==0?d!=0||a.h>b.h||a.h==b.h&&a.m>b.m||a.h==b.h&&a.m==b.m&&a.l>=b.l:!(d==0||a.h<b.h||a.h==b.h&&a.m<b.m||a.h==b.h&&a.m==b.m&&a.l<b.l)}
function ik(a){var b,c;gk.call(this,a.f);this.c=new Jt;this.d=a.d;this.e=a.e;this.f=a.f;this.g=a.g;this.i=a.i;this.j=a.j;this.o=a.o;this.p=a.p;c=a.k.b;for(b=0;b<c;++b){At(this.k,Et(a.k,b))}}
function le(b,c){var a,d,e;!c.d||(c.d=false,c.e=null);e=c.e;xd(c,b.b);try{te(b.a,c)}catch(a){a=Cf(a);if(ff(a,32)){d=a;throw new Ee(d.a)}else throw a}finally{e==null?(c.d=true,c.e=null):(c.e=e)}}
function Ci(a){!$wnd.__gwt_CellBasedWidgetImplLoadListeners&&($wnd.__gwt_CellBasedWidgetImplLoadListeners=new Array);$wnd.__gwt_CellBasedWidgetImplLoadListeners[a]=yw(function(){Mi($wnd.event)})}
function _h(a,b,c){var d,e,f,g,i;d=a.childNodes.length;i=null;c<d&&(i=a.childNodes[c]);e=b.childNodes.length;for(f=0;f<e;++f){if(!i){cc(a,b.childNodes[0])}else{g=rc(i);hc(a,b.childNodes[0],i);i=g}}}
function pr(a){var b,c,d,e;b=0;d=a.length;e=d-4;c=0;while(c<e){b=a.charCodeAt(c+3)+31*(a.charCodeAt(c+2)+31*(a.charCodeAt(c+1)+31*(a.charCodeAt(c)+31*b)))|0;c+=4}while(c<d){b=b*31+ar(a,c++)}return b|0}
function Ii(){this.c=new bv;$u(this.c,cy);$u(this.c,dy);$u(this.c,ey);$u(this.c,fy);$u(this.c,gy);$u(this.c,hy);if(!Ai){Ai=new bv;$u(Ai,cy);$u(Ai,dy);$u(Ai,ey)}this.a=new bv;$u(this.a,iy);$u(this.a,jy)}
function Hg(a){Gg();a.indexOf(kx)!=-1&&(a=kg(Bg,a,px));a.indexOf(Kw)!=-1&&(a=kg(Dg,a,qx));a.indexOf(mx)!=-1&&(a=kg(Cg,a,rx));a.indexOf(ox)!=-1&&(a=kg(Eg,a,sx));a.indexOf(nx)!=-1&&(a=kg(Fg,a,tx));return a}
function Zr(k,a,b,c){var d=k.a[c];if(d){for(var e=0,f=d.length;e<f;++e){var g=d[e];var i=g.rb();if(k.qb(a,i)){var j=g.sb();g.tb(b);return j}}}else{d=k.a[c]=[]}var g=new iv(a,b);d.push(g);++k.d;return null}
function Xf(a,b){var c,d,e;b&=63;if(b<22){c=a.l<<b;d=a.m<<b|a.l>>22-b;e=a.h<<b|a.m>>22-b}else if(b<44){c=0;d=a.l<<b-22;e=a.m<<b-22|a.l>>44-b}else{c=0;d=0;e=a.l<<b-44}return Gf(c&4194303,d&4194303,e&1048575)}
function Zf(a,b){var c,d,e,f;b&=63;c=a.h&1048575;if(b<22){f=c>>>b;e=a.m>>b|c<<22-b;d=a.l>>b|a.m<<22-b}else if(b<44){f=0;e=c>>>b-22;d=a.m>>b-22|a.h<<44-b}else{f=0;e=0;d=c>>>b-44}return Gf(d&4194303,e&4194303,f&1048575)}
function jm(a){var b;dm.call(this,uc($doc,cA));this.b=a;this.c=uc($doc,hy);cc(this.t,this.b);cc(this.t,this.c);b=Bc($doc);this.b[dA]=b;Fc(this.c,b);this.a=new Bm(this.c);!!this.b&&(this.b.tabIndex=0,undefined)}
function uc(a,b){var c,d;if(b.indexOf(Ew)!=-1){c=(!a.__gwt_container&&(a.__gwt_container=a.createElement(Jw)),a.__gwt_container);c.innerHTML=Kw+b+Lw||Aw;d=qc(c);c.removeChild(d);return d}return a.createElement(b)}
function Ln(a,b,c){var d,e;if(c<0||c>a.b){throw new Fq}if(a.b==a.a.length){e=Ve(tf,{34:1},26,a.a.length*2,0);for(d=0;d<a.a.length;++d){Xe(e,d,a.a[d])}a.a=e}++a.b;for(d=a.b-1;d>c;--d){Xe(a.a,d,a.a[d-1])}Xe(a.a,c,b)}
function wm(a){if(a.c){a.a.style[gA]=fA;kh(a.a,true);kh(a.b,false);a.b.style[gA]=fA}else{kh(a.a,false);a.a.style[gA]=fA;a.b.style[gA]=fA;kh(a.b,true)}a.a.style[kA]=lA;a.b.style[kA]=lA;a.a=null;a.b=null;hh(a.d,false);a.d=null}
function Ei(a,b,c){var d,e,f;f=c.type.toLowerCase();if(br(Mx,f)||br(Nx,f)||br(Rx,f)){d=c.srcElement;if(oc(d)){e=d;e!=b.t&&(e.__listener=null,undefined)}}!!xi&&br(Rx,f)&&(zi=Li(xi));!!xi&&!yi&&_u(a.a,f)&&Hb((Bb(),Ab),new Qi(b))}
function od(a){var b,c,d,e,f;d=$doc.styleSheets.length;if(d<30){return nd(a)}else{f=2147483647;e=-1;for(b=0;b<d;++b){c=kd[b];c==0&&(c=kd[b]=$doc.styleSheets[b].cssText.length);if(c<=f){f=c;e=b}}kd[e]+=a.length;return md(e,a,true)}}
function wp(a,b,c){var d,e,f;if(a.b==b){d=Ap(b.c);tr(c.a,d.a)}else{d=Bp(b.a?(e=new ur,ac(e.a,wA),new og(bc(e.a))):(f=new ur,ac(f.a,xA),new og(bc(f.a))),(Gg(),new xg(Hg(b.c))),b.a?yA:zA,Aw+ag(Sf((new Ru).a.getTime())));tr(c.a,d.a)}}
function Nq(a){var b,c,d;if(a<0){return 0}else if(a==0){return 32}else{d=-(a>>16);b=d>>16&16;c=16-b;a=a>>b;d=a-256;b=d>>16&8;c+=b;a<<=b;d=a-4096;b=d>>16&4;c+=b;a<<=b;d=a-16384;b=d>>16&2;c+=b;a<<=b;d=a>>14;b=d&~(d>>1);return c+2-b}}
function jc(a,b){var c,d,e,f;b=fr(b);f=a.className;c=f.indexOf(b);while(c!=-1){if(c==0||f.charCodeAt(c-1)==32){d=c+b.length;e=f.length;if(d==e||d<e&&f.charCodeAt(d)==32){break}}c=f.indexOf(b,c+1)}if(c==-1){f.length>0&&(f+=Gw);a.className=f+b}}
function Xb(j){var a={};var b=[];var c=arguments.callee.caller.caller;while(c){var d=j.w(c.toString());b.push(d);var e=Ew+d;var f=a[e];if(f){var g,i;for(g=0,i=f.length;g<i;g++){if(f[g]===c){return b}}}(f||(a[e]=[])).push(c);c=c.caller}return b}
function Ij(a){if((tk(),rk)==a.d){return false}else if((rk==a.d?-1:(!a.f?a.j:a.f).d)<(!a.f?a.j:a.f).k.b-1){return true}else if(!a.c.a&&((rk==a.d?-1:(!a.f?a.j:a.f).d)+(!a.f?a.j:a.f).g<(!a.f?a.j:a.f).i-1||!(!a.f?a.j:a.f).j)){return true}return false}
function dd(){cd();var a,b,c;c=null;if(bd.length!=0){a=bd.join(Aw);b=qd((jd(),a));!bd&&(c=b);bd.length=0}if(_c.length!=0){a=_c.join(Aw);b=od((jd(),a));!_c&&(c=b);_c.length=0}if(ad.length!=0){a=ad.join(Aw);b=pd((jd(),a));!ad&&(c=b);ad.length=0}$c=false;return c}
function xm(a,b,c){var d,e,f,g;X(a);d=sc(c.t);e=pl(sc(d),d);if(!b){kh(d,true);kh(c.t,true);return}a.d=b;f=sc(b.t);g=pl(sc(f),f);if(e>g){a.a=f;a.b=d;a.c=false}else{a.a=d;a.b=f;a.c=true}kh(a.a,a.c);kh(a.b,!a.c);a.a=null;a.b=null;hh(a.d,false);a.d=null;kh(c.t,true)}
function Of(a){var b,c,d;c=a.l;if((c&c-1)!=0){return -1}d=a.m;if((d&d-1)!=0){return -1}b=a.h;if((b&b-1)!=0){return -1}if(b==0&&d==0&&c==0){return -1}if(b==0&&d==0&&c!=0){return Oq(c)}if(b==0&&d!=0&&c==0){return Oq(d)+22}if(b!=0&&d==0&&c==0){return Oq(b)+44}return -1}
function Yf(a,b){var c,d,e,f,g;b&=63;c=a.h;d=(c&524288)!=0;d&&(c|=-1048576);if(b<22){g=c>>b;f=a.m>>b|c<<22-b;e=a.l>>b|a.m<<22-b}else if(b<44){g=d?1048575:0;f=c>>b-22;e=a.m>>b-22|c<<44-b}else{g=d?1048575:0;f=d?4194303:0;e=c>>b-44}return Gf(e&4194303,f&4194303,g&1048575)}
function $i(a,b,c,d){var e,f,g,i,j,k,n;j=Ej(a.k)+Hj(a.k).b;k=c.gb();g=d+k;for(i=d;i<g;++i){n=c.bb(i-d);f=new ur;ac(f.a,i%2==0?qy:ry);e=new ug;a.k;xp(a.a,n,e);if(i==j){a.i&&(ac(f.a,sy),f);tg(b,vj(i,bc(f.a),a.n,new xg(bc(e.a.a))))}else{tg(b,uj(i,bc(f.a),new xg(bc(e.a.a))))}}}
function Mb(a){var b,c,d,e,f,g;d=a.length;if(d==0){return null}b=false;f=fb();while(fb()-f<100){for(c=0;c<d;++c){g=a[c];if(!g){continue}if(!g[0].u()){a[c]=null;b=true}}}if(b){e=[];for(c=0;c<d;++c){!!a[c]&&(e[e.length]=a[c],undefined)}return e.length==0?null:e}else{return a}}
function rm(a,b){var c,d,e;c=(d=uc($doc,Jw),d.style[eA]=fA,d.style[gA]=hA,d.style[iA]=hA,d.style[jA]=hA,d);cc(a.t,Fm(c));zl(a,b,c);kh(c,false);c.style[gA]=fA;e=b.t;br(e.style[eA],Aw)&&(b.t.style[eA]=fA,undefined);br(e.style[gA],Aw)&&(b.t.style[gA]=fA,undefined);kh(b.t,false)}
function yq(a){var b,c,d,e;if(a==null){throw new Zq(Fw)}c=a.length;d=c>0&&a.charCodeAt(0)==45?1:0;for(b=d;b<c;++b){if(sq(a.charCodeAt(b))==-1){throw new Zq(eB+a+ox)}}e=parseInt(a,10);if(isNaN(e)){throw new Zq(eB+a+ox)}else if(e<-2147483648||e>2147483647){throw new Zq(eB+a+ox)}return e}
function te(b,c){var a,d,e,f,g,i;if(!c){throw new Xq(Sw)}try{++b.b;g=ve(b,c.y());d=null;i=b.c?g.eb(g.gb()):g.db();while(b.c?i.kb():i.X()){f=b.c?i.lb():i.Y();try{c.x(df(f,9))}catch(a){a=Cf(a);if(ff(a,44)){e=a;!d&&(d=new bv);$u(d,e)}else throw a}}if(d){throw new De(d)}}finally{--b.b;b.b==0&&xe(b)}}
function cj(a){var b;Uh.call(this,uc($doc,Jw));Gg();new xg(Aw);this.d=new bn;this.e=new bn;this.f=new tm;this.a=a;this.g=(tj(),mj(),lj);qj(this.g);jh(this.t,ty,true);this.c=uc($doc,Jw);b=this.t;cc(b,this.c);cc(b,this.f.t);this.f.N(this);rm(this.f,this.d);rm(this.f,this.e);ui((!ti&&(ti=new Ii),ti),this,a.c)}
function ag(a){var b,c,d,e,f;if(a.l==0&&a.m==0&&a.h==0){return dx}if(a.h==524288&&a.m==0&&a.l==0){return ex}if(a.h>>19!=0){return fx+ag(Wf(a))}c=a;d=Aw;while(!(c.l==0&&c.m==0&&c.h==0)){e=Tf(1000000000);c=Hf(c,e,true);b=Aw+_f(Df);if(!(c.l==0&&c.m==0&&c.h==0)){f=9-b.length;for(;f>0;--f){b=dx+b}}d=b+d}return d}
function lc(a,b){var c,d,e,f,g,i,j;b=fr(b);j=a.className;e=j.indexOf(b);while(e!=-1){if(e==0||j.charCodeAt(e-1)==32){f=e+b.length;g=j.length;if(f==g||f<g&&j.charCodeAt(f)==32){break}}e=j.indexOf(b,e+1)}if(e!=-1){c=fr(j.substr(0,e-0));d=fr(er(j,e+b.length));c.length==0?(i=d):d.length==0?(i=c):(i=c+Gw+d);a.className=i}}
function Hi(a,b,c){var d,e,f,g;if(br(Rx,c)||br(Mx,c)||br(Nx,c)){!wi&&Bi();e=0;d=b.t;if(!br(Yx,xc(d,Zx))){d.setAttribute(Zx,Yx);d.attachEvent($x,wi);d.attachEvent(_x,wi);for(g=ot(Ir(a.a.a));g.a.X();){f=df(ut(g),1);e|=il(f)}}return e}else if(br(ay,c)||br(by,c)){if(!a.b){a.b=true;Ci($moduleName)}return -1}else{return il(c)}}
function Sf(a){var b,c,d,e,f;if(isNaN(a)){return gg(),fg}if(a<-9223372036854775808){return gg(),dg}if(a>=9223372036854775807){return gg(),cg}e=false;if(a<0){e=true;a=-a}d=0;if(a>=17592186044416){d=kf(a/17592186044416);a-=d*17592186044416}c=0;if(a>=4194304){c=kf(a/4194304);a-=c*4194304}b=kf(a);f=Gf(b,c,d);e&&Mf(f);return f}
function qv(a,b,c,d){var e,f;if(!b){return c}else{e=Bv(b.c,c.c);if(e==0){d.b=b.d;d.a=true;b.d=c.d;return b}f=e>0?0:1;b.a[f]=qv(a,b.a[f],c,d);if(rv(b.a[f])){if(rv(b.a[1-f])){b.b=true;b.a[0].b=false;b.a[1].b=false}else{rv(b.a[f].a[f])?(b=tv(b,1-f)):rv(b.a[f].a[1-f])&&(b=(b.a[1-(1-f)]=tv(b.a[1-(1-f)],1-(1-f)),tv(b,1-f)))}}}return b}
function zj(a,b,c){var d,e,f,g,i,j,k,n,o,p,q;o=-1;i=-1;p=-1;j=-1;g=0;for(f=ot(Ir(a.a));f.a.X();){e=df(ut(f),40).a;if(e<b||e>=c){continue}else if(o==-1){o=e;i=e}else if(p==-1){g=e-i;p=e;j=e}else{d=e-j;if(d>g){i=j;p=e;j=e;g=d}else{j=e}}}i+=1;j+=1;if(p==i){i=j;p=-1;j=-1}q=new Jt;if(o!=-1){k=i-o;At(q,new bp(o,k))}if(p!=-1){n=j-p;At(q,new bp(p,n))}return q}
function Xi(a,b){var c,d,e,f,g,i,j,k,n,o,p;d=b.srcElement;if(!oc(d)){return}o=b.srcElement;g=Aw;c=o;while(!!c&&(g=xc(c,py)).length==0){c=sc(c)}if(g.length>0){e=b.type;j=br(Ow,e);f=yq(g);i=f-Hj(a.k).b;if(!(i>=0&&i<Dj(a.k).k.b)){return}n=(tk(),qk)==a.k.d;p=(Mh(a,i),Fj(a.k,i));a.k;go(a,a,a.b,n);if(j){k=(!ti&&(ti=new Ii),Di(ti,o));a.i=a.i||k;Tj(a.k,i,!k,false)}Ui(a,b,c,p)}}
function Wj(a,b,c){var d,e,f,g,i,j,k,n,o,p,q;q=c.gb();p=b+q;k=(!a.f?a.j:a.f).g;j=(!a.f?a.j:a.f).g+(!a.f?a.j:a.f).f;e=b>k?b:k;d=p<j?p:j;if(b!=k&&e>=d){return}n=Aj(a);f=Tq(0,e-k-(!a.f?a.j:a.f).k.b);for(i=0;i<f;++i){At(n.k,null)}for(i=e;i<d;++i){o=c.bb(i-b);g=i-k;g<(!a.f?a.j:a.f).k.b?Ht(n.k,g,o):At(n.k,o)}At(n.c,new bp(e-f,d-(e-f)));p>(!a.f?a.j:a.f).i&&Vj(a,p,(!a.f?a.j:a.f).j)}
function Kf(a,b,c,d,e,f){var g,i,j,k,n,o,p;k=Nf(b)-Nf(a);g=Xf(b,k);j=Gf(0,0,0);while(k>=0){i=Pf(a,g);if(i){k<22?(j.l|=1<<k,undefined):k<44?(j.m|=1<<k-22,undefined):(j.h|=1<<k-44,undefined);if(a.l==0&&a.m==0&&a.h==0){break}}o=g.m;p=g.h;n=g.l;g.h=p>>>1;g.m=o>>>1|(p&1)<<21;g.l=n>>>1|(o&1)<<21;--k}c&&Mf(j);if(f){if(d){Df=Wf(a);e&&(Df=$f(Df,(gg(),eg)))}else{Df=Gf(a.l,a.m,a.h)}}return j}
function Mi(a){var b,c,d,e,f,g,i;c=a.srcElement;if(!oc(c)){return}f=c;b=f;d=f.__listener;while(!!b&&!d){b=sc(b);d=!b?null:b.__listener}if(!ff(d,26)){return}i=df(d,26);if(f==i.t){return}g=a.type;if(br(ly,g)){e=yc(f).toLowerCase();if(_u(Ai,e)){xi=f;zi=Li(f);yi=!br(cy,e)&&!Ni(f)}Ji(i,f,2048,null)}else if(br(my,g)){Oi(i);xi=null;vc($doc,Mx);Ji(i,f,4096,null)}else (br(ay,g)||br(by,g))&&Ki(a,i.t,d)}
function up(a,b,c,d){var e,f,g,i,j,k;k=d.type;if(a.b==c){if(br(Pw,k)){i=d.keyCode||0;if(i==13){sp(b,c);a.b=null;yp(a,b,c)}i==27&&(a.b=null,yp(a,b,c))}if(br(Nx,k)&&!a.a){sp(b,c);a.b=null;yp(a,b,c)}}else{if(br(hz,k)){a.b=c;yp(a,b,c);a.a=true;g=ec(b.firstChild);g.focus();g.select();a.a=false}if(br(Ow,k)){f=d.srcElement;e=f;j=yc(e);if(br(j,aA)){g=e;Dp(c,!!g.checked);g.checked?jc(b.firstChild,uA):lc(b.firstChild,uA)}else br(j,vA)&&Jp(c.b,c)}}}
function Xj(a,b,c){var d,e,f,g,i,j,k,n,o,p;p=b.b;g=b.a;if(p<0){throw new Aq(Jy)}if(g<0){throw new Aq(Ky)}k=(!a.f?a.j:a.f).g;i=(!a.f?a.j:a.f).f;n=k!=p;if(n){o=Aj(a);if(!c){if(p>k){f=p-k;if((!a.f?a.j:a.f).k.b>f){for(e=0;e<f;++e){Gt(o.k,0)}}else{Dt(o.k)}}else{d=k-p;if((!a.f?a.j:a.f).k.b>0&&d<i){for(e=0;e<d;++e){Bt(o.k,0,null)}At(o.c,new bp(p,p+d-p))}else{Dt(o.k)}}}o.g=p}j=i!=g;j&&(Aj(a).f=g);c&&Dt(Aj(a).k);Yj(a);(n||j)&&jp(a.a,new bp((!a.f?a.j:a.f).g,(!a.f?a.j:a.f).f))}
function Hf(a,b,c){var d,e,f,g,i,j;if(b.l==0&&b.m==0&&b.h==0){throw new gq}if(a.l==0&&a.m==0&&a.h==0){c&&(Df=Gf(0,0,0));return Gf(0,0,0)}if(b.h==524288&&b.m==0&&b.l==0){return If(a,c)}j=false;if(b.h>>19!=0){b=Wf(b);j=true}g=Of(b);f=false;e=false;d=false;if(a.h==524288&&a.m==0&&a.l==0){e=true;f=true;if(g==-1){a=Ff((gg(),cg));d=true;j=!j}else{i=Yf(a,g);j&&Mf(i);c&&(Df=Gf(0,0,0));return i}}else if(a.h>>19!=0){f=true;a=Wf(a);d=true;j=!j}if(g!=-1){return Jf(a,g,j,f,c)}if(!Uf(a,b)){c&&(f?(Df=Wf(a)):(Df=Gf(a.l,a.m,a.h)));return Gf(0,0,0)}return Kf(d?a:Gf(a.l,a.m,a.h),b,j,f,e,c)}
function il(a){switch(a){case Nx:return 4096;case Rx:return 1024;case Ow:return 1;case hz:return 2;case Mx:return 2048;case Ox:return 128;case iz:return 256;case Pw:return 512;case ay:return 32768;case jz:return 8192;case Px:return 4;case kz:return 64;case Cx:return 32;case lz:return 16;case iy:return 8;case mz:return 16384;case by:return 65536;case nz:case jy:return 131072;case oz:return 262144;case pz:return 524288;case qz:return 1048576;case rz:return 2097152;case sz:return 4194304;case tz:return 8388608;case uz:return 16777216;case vz:return 33554432;case wz:return 67108864;default:return -1;}}
function Tj(a,b,c,d){var e,f,g,i,j,k,n;if((tk(),rk)==a.d){return}Aj(a).p=true;if(!d&&(rk==a.d?-1:(!a.f?a.j:a.f).d)==b&&(rk==a.d?null:(!a.f?a.j:a.f).e)!=null){return}j=(!a.f?a.j:a.f).g;i=(!a.f?a.j:a.f).f;n=(!a.f?a.j:a.f).i;e=j+b;e>=n&&(!a.f?a.j:a.f).j&&(e=n-1);b=(0>e?0:e)-j;a.c.a&&(b=0>(b<i-1?b:i-1)?0:b<i-1?b:i-1);g=j;f=i;k=Aj(a);k.d=0;k.e=null;k.a=true;if(b>=0&&b<i){k.d=b;k.e=b<k.k.b?fk(Aj(a),b):null;k.b=c;return}else if((nk(),kk)==a.c){while(b<0){g-=i;b+=i}while(b>=i){g+=i;b-=i}}else if(mk==a.c){while(b<0){f+=30;g-=30;b+=30}if(g<0){b+=g;f+=g;g=0}while(b>=f){f+=30}if((!a.f?a.j:a.f).j){f=f<n-g?f:n-g;b>=n&&(b=n-1)}}if(g!=j||f!=i){k.d=b;Xj(a,new bp(g,f),false)}}
function Tk(){var c=navigator.userAgent.toLowerCase();var d=function(a){return parseInt(a[1])*1000+parseInt(a[2])};if(function(){return c.indexOf(Xy)!=-1}())return Xy;if(function(){return c.indexOf(Yy)!=-1||function(){if(c.indexOf(Zy)!=-1){return true}if(typeof window[$y]!=xx){try{var b=new ActiveXObject(_y);if(b){b.registerBhoIfNeeded();return true}}catch(a){}}return false}()}())return az;if(function(){return c.indexOf(bz)!=-1&&$doc.documentMode>=9}())return cz;if(function(){return c.indexOf(bz)!=-1&&$doc.documentMode>=8}())return dz;if(function(){var a=/msie ([0-9]+)\.([0-9]+)/.exec(c);if(a&&a.length==3)return d(a)>=6000}())return $w;if(function(){return c.indexOf(ez)!=-1}())return fz;return gz}
function sl(a,b){var c=(a.__eventBits||0)^b;a.__eventBits=b;if(!c)return;c&1&&(a.onclick=b&1?ml:null);c&3&&(a.ondblclick=b&3?ll:null);c&4&&(a.onmousedown=b&4?ml:null);c&8&&(a.onmouseup=b&8?ml:null);c&16&&(a.onmouseover=b&16?ml:null);c&32&&(a.onmouseout=b&32?ml:null);c&64&&(a.onmousemove=b&64?ml:null);c&128&&(a.onkeydown=b&128?ml:null);c&256&&(a.onkeypress=b&256?ml:null);c&512&&(a.onkeyup=b&512?ml:null);c&1024&&(a.onchange=b&1024?ml:null);c&2048&&(a.onfocus=b&2048?ml:null);c&4096&&(a.onblur=b&4096?ml:null);c&8192&&(a.onlosecapture=b&8192?ml:null);c&16384&&(a.onscroll=b&16384?ml:null);c&32768&&(a.nodeName==Uz?b&32768?a.attachEvent(Vz,nl):a.detachEvent(Vz,nl):(a.onload=b&32768?ol:null));c&65536&&(a.onerror=b&65536?ml:null);c&131072&&(a.onmousewheel=b&131072?ml:null);c&262144&&(a.oncontextmenu=b&262144?ml:null);c&524288&&(a.onpaste=b&524288?ml:null)}
function eq(a){var b,c,d,e,f,g,i,j,k,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H;g=Bc($doc);B=new qp;j=Bc($doc);k=Bc($doc);E=new im;o=Bc($doc);D=a.j;q=Bc($doc);r=Bc($doc);t=Bc($doc);u=Bc($doc);d=new Pl;v=Bc($doc);w=Bc($doc);x=new Em((F=new ur,ac(F.a,QA),tr(F,Hg(g)),ac(F.a,RA),tr(F,Hg(j)),ac(F.a,SA),tr(F,Hg(k)),ac(F.a,TA),tr(F,Hg(o)),ac(F.a,UA),tr(F,Hg(q)),ac(F.a,SA),tr(F,Hg(r)),ac(F.a,VA),tr(F,Hg(v)),ac(F.a,WA),tr(F,Hg(w)),ac(F.a,XA),new og(bc(F.a))).a);B.t.setAttribute(YA,ZA);gm(E,(G=new ur,ac(G.a,$A),new og(bc(G.a))).a);Ol(d,(H=new ur,ac(H.a,_A),tr(H,Hg(t)),ac(H.a,aB),tr(H,Hg(u)),ac(H.a,bB),new og(bc(H.a))).a);d.t.href=cB;b=Zg(x.t);i=Cc($doc,g);y=Cc($doc,j);y.removeAttribute(dA);n=Cc($doc,k);p=Cc($doc,o);C=Cc($doc,q);C.removeAttribute(dA);c=Zg(d.t);e=Cc($doc,t);e.removeAttribute(dA);f=Cc($doc,u);f.removeAttribute(dA);c.b?fc(c.b,c.a,c.c):_g(c.a);s=Cc($doc,r);z=Cc($doc,v);z.removeAttribute(dA);A=Cc($doc,w);A.removeAttribute(dA);b.b?fc(b.b,b.a,b.c):_g(b.a);Dm(x,B,i);Dm(x,E,n);Dm(x,D,p);Dm(x,d,s);a.a=d;a.b=e;a.c=f;a.d=y;a.e=z;a.f=A;a.g=B;a.i=C;a.k=E;return x}
function ql(){$wnd.__gwt_globalEventArray==null&&($wnd.__gwt_globalEventArray=new Array);$wnd.__gwt_globalEventArray[$wnd.__gwt_globalEventArray.length]=yw(function(){return Kk($wnd.event)});var d=yw(function(){var a=tc;tc=this;if($wnd.event.returnValue==null){$wnd.event.returnValue=true;if(!tl()){tc=a;return}}var b,c=this;while(c&&!(b=c.__listener)){c=c.parentElement}b&&!gf(b)&&ff(b,18)&&Jk($wnd.event,c,b);tc=a});var e=yw(function(){var a=$doc.createEventObject();$wnd.event.returnValue==null&&$wnd.event.srcElement.fireEvent&&$wnd.event.srcElement.fireEvent(xz,a);if(this.__eventBits&2){d.call(this)}else if($wnd.event.returnValue==null){$wnd.event.returnValue=true;tl()}});var f=yw(function(){this.__gwtLastUnhandledEvent=$wnd.event.type;d.call(this)});var g=$moduleName.replace(/\./g,yz);$wnd[zz+g]=d;ml=(new Function(Az,Bz+g+Cz))($wnd);$wnd[Dz+g]=e;ll=(new Function(Az,Ez+g+Fz))($wnd);$wnd[Gz+g]=f;ol=(new Function(Az,Hz+g+Fz))($wnd);nl=(new Function(Az,Hz+g+Iz))($wnd);var i=yw(function(){d.call($doc.body)});var j=yw(function(){e.call($doc.body)});$doc.body.attachEvent(xz,i);$doc.body.attachEvent(Jz,i);$doc.body.attachEvent(Kz,i);$doc.body.attachEvent(Lz,i);$doc.body.attachEvent(Mz,i);$doc.body.attachEvent(Nz,i);$doc.body.attachEvent(Oz,i);$doc.body.attachEvent(Pz,i);$doc.body.attachEvent(Qz,i);$doc.body.attachEvent(Rz,i);$doc.body.attachEvent(Sz,j);$doc.body.attachEvent(Tz,i)}
function Rj(b){var a,c,d,e,f,g,i,j,k,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S;b.g=null;if(!b.f){b.i=0;return}++b.i;if(b.i>10){b.i=0;throw new Dq(Gy)}if(b.b){throw new Dq(Hy)}b.b=true;k=new qw;v=b.j;B=b.f;A=B.g;z=B.f;y=A+z;N=B.k.b;B.d=Tq(0,Uq(B.d,N-1));if((tk(),rk)==b.d){B.d=0;B.e=null}else if(B.a){B.e=N>0?fk(B,B.d):null}else if(B.e!=null){d=Bj(B,B.e,B.d);if(d>=0){B.d=d;B.e=N>0?fk(B,B.d):null}else{B.d=0;B.e=null}}try{if(qk==b.d&&false){w=v.o;p=N>0?fk(B,B.d):null;if(p!=null&&!ob(p,w)){x=w!=null&&null.yb();q=p!=null&&null.yb();x&&null.yb();B.o=p;p!=null&&!q&&null.yb()}}}catch(a){a=Cf(a);if(ff(a,42)){e=a;b.b=false;throw e}else throw a}g=B.a||v.d!=B.d||v.e==null&&B.e!=null;for(f=A;f<A+N;++f){Et(B.k,f-A);Q=_u(v.n,Pq(f));Q&&pw(k,Pq(f))}if(b.g){b.b=false;return}b.i=0;b.j=b.f;b.f=null;K=false;for(M=new at(B.c);M.b<M.d.gb();){L=df($s(M),29);P=L.b;i=L.a;i==0&&(K=true);for(f=P;f<P+i;++f){pw(k,Pq(f))}}if(k.a.b>0&&g){pw(k,Pq(v.d));pw(k,Pq(B.d))}j=zj(k,A,y);E=j.b>0?df((Ms(0,j.b),j.a[0]),29):null;F=j.b>1?df((Ms(1,j.b),j.a[1]),29):null;I=0;for(D=new at(j);D.b<D.d.gb();){C=df($s(D),29);I+=C.a}s=v.g;r=v.f;t=v.k.b;G=false;A!=s?(G=true):N<t?(G=true):!F&&!!E&&E.b==A&&(I>=t||I>r)?(G=true):I>=5&&I>0.3*t?(G=true):K&&t==0&&(G=true);R=(!b.f?b.j:b.f).k.b;S=(!b.f?b.j:b.f).j?Uq((!b.f?b.j:b.f).f,(!b.f?b.j:b.f).i-(!b.f?b.j:b.f).g):(!b.f?b.j:b.f).f;R>=S?li(b.k,(Gk(),Dk)):R==0?li(b.k,(Gk(),Ek)):li(b.k,(Gk(),Fk));try{if(G){O=new ug;gi(b.k,O,B.k,B.g);n=new xg(bc(O.a.a));if(!wg(n,b.e)){b.e=n;hi(b.k,n,B.b)}ji(b.k)}else if(E){b.e=null;c=E.b;H=c-A;O=new ug;J=new it(B.k,H,H+E.a);gi(b.k,O,J,c);ii(b.k,H,new xg(bc(O.a.a)),B.b);if(F){c=F.b;H=c-A;O=new ug;J=new it(B.k,H,H+F.a);gi(b.k,O,J,c);ii(b.k,H,new xg(bc(O.a.a)),B.b)}ji(b.k)}else if(g){u=v.d;u>=0&&u<N&&ki(b.k,u,false,false);o=B.d;o>=0&&o<N&&ki(b.k,o,true,B.b)}}finally{b.b=false}}
var Aw='',Gw=' ',nB=' < 0',FA=' <label>',mB=' > toIndex: ',pB=' > wrapped.size() ',sy=' GPBYFDEBB',ox='"',By='" class="',Cy='" style="outline:none;" >',Ey='" style="outline:none;" tabindex="',xy='") -',Uy='"/&gt;',Fy='">',Tx='"]();',cB='#',gB='$',vx='%5B',wx='%5D',kx='&',tx='&#39;',px='&amp;',rx='&gt;',qx='&lt;',sx='&quot;',nx="'",DA="' data-timestamp='",Wx="' onerror='",BA="' type='text'><\/div>",Xx="'$2",Wy="').<br>Modify your application's host HTML page doctype, or update your custom 'document.compatMode' configuration property settings.",EA="'>",SA="'> <span id='",bB="'><\/span>",UA="'><\/span> <\/div> <\/section> <footer id='",RA="'><\/span> <\/header> <section id='",VA="'><\/span> <div id='todo-count'> <span class='number' id='",TA="'><\/span> <div id='todo-list'> <span id='",WA="'><\/span> <span class='word' id='",aB="'><\/span> completed <span class='word-done' id='",XA="'><\/span> left. <\/div> <\/footer> <\/div> <div id='instructions'> Double-click to edit a todo. <\/div> <div id='credits'> Created by <br> <a href='http://jgn.me/'>J\xE9r\xF4me Gravel-Niquet<\/a> <br> Modified to use <a href='http://code.google.com/webtoolkit/'>Google Web Toolkit<\/a> by <a href='http://www.scottlogic.co.uk/blog/colin/'>Colin Eberhardt<\/a> <\/div>",Bw='(',Ux='(<img)([\\s/>])',ax='). Expect more errors.\n',Ix=', Row size: ',sA=', Size: ',fx='-',ex='-9223372036854775808',vy='.GPBYFDEAB,.GPBYFDECB{cursor:pointer;zoom:1;}.GPBYFDEBB{background:#ffc;}.GPBYFDEDB{height:',Cz='.call(this) }',Fz='.call(this)}',Iz='.call(w.event.srcElement)}',Lw='/>',dx='0',hA='0px',fA='100%',Ew=':',Kw='<',Dy='<\/div>',GA="<\/label><a class='destroy'><\/a><\/div>",CA="<div class='",AA="<div class='listItem editing'><input class='edit' value='",QA="<div id='todoapp'> <header> <h1>Todos<\/h1> <span id='",Ay='<div onclick="" __idx="',Vx="<img onload='",wA="<input class='check' type='checkbox' checked>",xA="<input class='check' type='checkbox'>",mx='>',vA='A',mA='A PotentialElement cannot be resolved twice.',Gy='A possible infinite loop has been detected in a Cell Widget. This usually happens when your SelectionModel triggers a SelectionChangeEvent when SelectionModel.isSelection() is called, which causes the table to redraw continuously.',$y='ActiveXObject',hB='Add not supported on this collection',jB='Add not supported on this list',qB='All',Qy='BOUND_TO_SELECTION',Sy='BackCompat',uy='CD15EC0BBF9CD57F9198FD5C1C37122E.cache.png',My='CHANGE_PAGE',Ry='CSS1Compat',Ly='CURRENT_PAGE',Qw='Cannot add a handler with a null type',Rw='Cannot add a null handler',qA='Cannot call add/remove more than once per call to next/previous.',Sw='Cannot fire null event',Ex='Cannot set a new parent without first clearing the old parent',_y='ChromeTab.ChromeFrame',_A="Clear <span class='number-done' id='",Gx='Composite.initWidget() may only be called once.',Yw='DEFAULT',Oy='DISABLED',nz='DOMMouseScroll',Py='ENABLED',_w='ERROR: Possible problem with your *.gwt.xml module file.\nThe compile time user.agent value (ie6) does not match the runtime user.agent value (',eB='For input string: "',qy='GPBYFDEAB',Qx='GPBYFDEBB',ry='GPBYFDECB',ty='GPBYFDEEB',Ty="GWT no longer supports Quirks Mode (document.compatMode=' BackCompat').<br>Make sure your application's host HTML page has a Standards Mode (document.compatMode=' CSS1Compat') doctype,<br>e.g. by using &lt;!doctype html&gt; at the start of your application's HTML page.<br><br>To continue using this unsupported rendering mode and risk layout problems, suppress this message by adding<br>the following line to your*.gwt.xml module file:<br>&nbsp;&nbsp;&lt;extend-configuration-property name=\"document.compatMode\" value=\"",Uz='IFRAME',Ny='INCREASE_RANGE',aA='INPUT',rA='Index: ',Iy='KeyboardSelectionPolicy cannot be null',Xw='LTR',$A='Mark all as complete',yx='Null widget handle. If you are creating a composite, ensure that initWidget() has been called.',zw='One or more exceptions caught, see full set in UmbrellaException#getCauses',iB='Put not supported on this map',Ww='RTL',Ky='Range length cannot be less than 0',Jy='Range start cannot be less than 0',kB='Remove not supported on this list',Hx='Row index: ',Bx="Should only call onAttach when the widget is detached from the browser's document",Fx="Should only call onDetach when the widget is attached to the browser's document",zx='Style names cannot be empty',Hy='The Cell Widget is attempting to render itself within the render loop. This usually happens when your render code modifies the state of the Cell Widget then accesses data or elements within the Widget.',pA='The specified display has already been added to this adapter.',Dx="This widget's parent does not implement HasWidgets",ZA='What needs to be done?',Vy="Your *.gwt.xml module configuration prohibits the use of the current doucment rendering mode (document.compatMode=' ",fB='\\',yz='_',Zx='__gwtCellBasedWidgetImplDispatchingFocus',Sx='__gwt_CellBasedWidgetImplLoadListeners["',Dz='__gwt_dispatchDblClickEvent_',zz='__gwt_dispatchEvent_',Gz='__gwt_dispatchUnhandledEvent_',py='__idx',Zz='a',Kx='accessKey',Dw='anonymous',Nx='blur',gy='button',Rx='change',ny='checkbox',Zy='chromeframe',$z='className',OA='clear-completed',Ow='click',bx='com.google.gwt.user.client.DocumentModeAsserter',Zw='com.google.gwt.user.client.UserAgentAsserter',cx='com.todo.client.GwtToDo',oz='contextmenu',hz='dblclick',Tw='dir',Lx='display',oA='display cannot be null',KA='display:block;',JA='display:none;',Jw='div',dB='divide by zero',uA='done',by='error',Mx='focus',ly='focusin',my='focusout',lB='fromIndex: ',Cw='function',Iw='function __gwt_initWindowCloseHandler(beforeunload, unload) {\n var wnd = window\n , oldOnBeforeUnload = wnd.onbeforeunload\n , oldOnUnload = wnd.onunload;\n \n wnd.onbeforeunload = function(evt) {\n var ret, oldRet;\n try {\n ret = beforeunload();\n } finally {\n oldRet = oldOnBeforeUnload && oldOnBeforeUnload(evt);\n }\n // Avoid returning null as IE6 will coerce it into a string.\n // Ensure that "" gets returned properly.\n if (ret != null) {\n return ret;\n }\n if (oldRet != null) {\n return oldRet;\n }\n // returns undefined.\n };\n \n wnd.onunload = function(evt) {\n try {\n unload();\n } finally {\n oldOnUnload && oldOnUnload(evt);\n wnd.onresize = null;\n wnd.onscroll = null;\n wnd.onbeforeunload = null;\n wnd.onunload = null;\n }\n };\n \n // Remove the reference once we\'ve initialize the handler\n wnd.__gwt_initWindowCloseHandler = undefined;\n}\n',lx='g',ez='gecko',fz='gecko1_8',vz='gesturechange',wz='gestureend',uz='gesturestart',_z='gwt-Anchor',bA='gwt-CheckBox',nA='gwt-TextBox',Nw='gwt-uid-',gA='height',Mw='html',jx='html is null',dA='id',$w='ie6',dz='ie8',cz='ie9',dy='input',MA='item',LA='items',Ox='keydown',iz='keypress',Pw='keyup',hy='label',Wz='left',zA='listItem view',yA='listItem view done',ay='load',jz='losecapture',Vw='ltr',NA='main',jA='margin',hx='moduleStartup',Px='mousedown',kz='mousemove',Cx='mouseout',lz='mouseover',iy='mouseup',jy='mousewheel',bz='msie',PA='new-todo',Ax='none',Fw='null',ky='on',ix='onModuleLoadStart',Rz='onblur',xz='onclick',Tz='oncontextmenu',Sz='ondblclick',Qz='onfocus',$x='onfocusin',_x='onfocusout',Nz='onkeydown',Oz='onkeypress',Pz='onkeyup',Vz='onload',Jz='onmousedown',Lz='onmousemove',Kz='onmouseup',Mz='onmousewheel',Xy='opera',fy='option',kA='overflow',iA='padding',pz='paste',YA='placeholder',Yz='position',zy='px repeat-x;background-color:#628cd5;color:white;height:auto;overflow:visible;}',yy='px -',wy='px;overflow:hidden;background:url("',oy='radio',Ez='return function() { w.__gwt_dispatchDblClickEvent_',Bz='return function() { w.__gwt_dispatchEvent_',Hz='return function() { w.__gwt_dispatchUnhandledEvent_',Uw='rtl',az='safari',Hw='script',mz='scroll',cy='select',cA='span',gx='startup',IA='style',Jx='tabIndex',tA='text',ey='textarea',oB='toIndex: ',Xz='top',tz='touchcancel',sz='touchend',rz='touchmove',qz='touchstart',Yx='true',xx='undefined',gz='unknown',ux='uri is null',HA='value',lA='visible',Az='w',Yy='webkit',eA='width';var _,xw={l:0,m:0,h:0};_=U.prototype={};_.eQ=function V(a){return this===a};_.hC=function W(){return yb(this)};_.tM=ww;_.cM={};_=T.prototype=new U;_.e=false;_.f=false;_.g=false;_=Z.prototype=new U;_=$.prototype=new Z;_=cb.prototype=bb.prototype=new $;_=db.prototype=new U;_.c=null;_=jb.prototype=new U;_.cM={34:1,44:1};_.b=null;_=ib.prototype=new jb;_.cM={34:1,44:1};_=lb.prototype=hb.prototype=new ib;_.cM={34:1,42:1,44:1};_=nb.prototype=gb.prototype=new hb;_.cM={34:1,42:1,44:1};_.a=null;_=rb.prototype=new U;var sb=0,tb=0;_=Jb.prototype=zb.prototype=new rb;_.a=null;_.b=null;_.c=null;_.d=false;_.e=null;_.f=null;_.g=null;_.i=false;var Ab;_=Qb.prototype=Pb.prototype=new U;_.u=function Rb(){this.a.d=true;Eb(this.a);this.a.d=false;return this.a.i=Fb(this.a)};_.a=null;_=Tb.prototype=Sb.prototype=new U;_.u=function Ub(){this.a.d&&Ob(this.a.e,1);return this.a.i};_.a=null;_=$b.prototype=Wb.prototype=new U;_.w=function _b(a){return Vb(a)};var tc=null;_=Hc.prototype=new U;_.cT=function Jc(a){return Ic(this,df(a,38))};_.eQ=function Kc(a){return this===a};_.hC=function Lc(){return yb(this)};_.cM={34:1,37:1,38:1};_.b=0;_=Gc.prototype=new Hc;_.cM={2:1,3:1,34:1,37:1,38:1};var Mc,Nc,Oc,Pc;_=Sc.prototype=Rc.prototype=new Gc;_.cM={2:1,3:1,34:1,37:1,38:1};_=Uc.prototype=Tc.prototype=new Gc;_.cM={2:1,3:1,34:1,37:1,38:1};_=Wc.prototype=Vc.prototype=new Gc;_.cM={2:1,3:1,34:1,37:1,38:1};_=Yc.prototype=Xc.prototype=new Gc;_.cM={2:1,3:1,34:1,37:1,38:1};var Zc,$c=false,_c,ad,bd;_=hd.prototype=gd.prototype=new U;_.v=function id(){(cd(),$c)&&dd()};var kd;_=wd.prototype=new U;_.e=null;_=vd.prototype=new wd;_.d=false;_=ud.prototype=new vd;_.y=function Cd(){return this.z()};_.a=null;_.b=null;var yd=null;_=td.prototype=new ud;_=sd.prototype=new td;_=Fd.prototype=rd.prototype=new sd;_.x=function Gd(a){df(a,4).A(this)};_.z=function Hd(){return Dd};var Dd;_=Kd.prototype=new U;_.hC=function Md(){return this.c};_.c=0;var Ld=0;_=Nd.prototype=Jd.prototype=new Kd;_=Od.prototype=Id.prototype=new Jd;_.cM={5:1};_.a=null;_.b=null;_=Qd.prototype=new ud;_=Pd.prototype=new Qd;_=Ud.prototype=Rd.prototype=new Pd;_.x=function Vd(a){df(a,6).B(this)};_.z=function Wd(){return Sd};var Sd;_=$d.prototype=Xd.prototype=new U;_.a=null;_=be.prototype=_d.prototype=new vd;_.x=function ce(a){df(a,7).C(this)};_.y=function ee(){return ae};var ae=null;_=fe.prototype=new vd;_.x=function he(a){lf(a);null.yb()};_.y=function ie(){return ge};var ge=null;_=me.prototype=je.prototype=new U;_.cM={10:1};_.a=null;_.b=null;_=pe.prototype=new U;_=oe.prototype=new pe;_.a=null;_.b=0;_.c=false;_=ye.prototype=ne.prototype=new oe;_=Ae.prototype=ze.prototype=new U;_=De.prototype=Ce.prototype=new hb;_.cM={32:1,34:1,42:1,44:1};_.a=null;_=Ee.prototype=Be.prototype=new Ce;_.cM={32:1,34:1,42:1,44:1};_=Ge.prototype=Fe.prototype=new U;_.B=function He(a){};_.cM={6:1,9:1};_=Pe.prototype=Ke.prototype=new Hc;_.cM={11:1,34:1,37:1,38:1};var Le,Me,Ne;_=Re.prototype=Qe.prototype=new U;_.aC=null;_.qI=0;var Ye,Ze;var Df=null;var Qf=null;var cg,dg,eg,fg;_=ig.prototype=hg.prototype=new U;_.cM={12:1};_=mg.prototype=lg.prototype=new U;_.a=0;_.b=0;_.c=0;_.d=null;_=og.prototype=ng.prototype=new U;_.D=function pg(){return this.a};_.eQ=function qg(a){if(!ff(a,13)){return false}return br(this.a,df(a,13).D())};_.hC=function rg(){return qr(this.a)};_.cM={13:1,34:1};_.a=null;_=ug.prototype=sg.prototype=new U;_=xg.prototype=vg.prototype=new U;_.D=function yg(){return this.a};_.eQ=function zg(a){return wg(this,a)};_.hC=function Ag(){return qr(this.a)};_.cM={13:1,34:1};_.a=null;var Bg,Cg,Dg,Eg,Fg;_=Jg.prototype=Ig.prototype=new U;_.eQ=function Kg(a){if(!ff(a,14)){return false}return br(this.a,df(df(a,14),15).a)};_.hC=function Lg(){return qr(this.a)};_.cM={14:1,15:1};_.a=null;var Ng=null;_=Og.prototype=new U;_=Qg.prototype=Pg.prototype=new Og;_=Rg.prototype=new U;_=Ug.prototype=Sg.prototype=new U;var Tg=null;_=Xg.prototype=Vg.prototype=new Rg;var Wg=null;var Yg=null;_=bh.prototype=ah.prototype=new U;_.a=null;_.b=null;_.c=null;_=fh.prototype=new U;_.E=function ih(){throw new wr};_.cM={19:1,24:1};_.t=null;_=eh.prototype=new fh;_.F=function sh(){};_.G=function th(){};_.H=function uh(){return this.p};_.I=function vh(){oh(this)};_.J=function wh(a){ph(this,a)};_.K=function xh(){if(!this.H()){throw new Dq(Fx)}try{this.M()}finally{try{this.G()}finally{this.t.__listener=null;this.p=false}}};_.L=function yh(){};_.M=function zh(){};_.N=function Ah(a){rh(this,a)};_.O=function Bh(a){this.q==-1?Lk(this.t,a|(this.t.__eventBits||0)):(this.q|=a)};_.cM={8:1,10:1,18:1,19:1,22:1,24:1,26:1};_.p=false;_.q=0;_.r=null;_.s=null;_=dh.prototype=new eh;_.H=function Eh(){return Dh(this)};_.I=function Fh(){if(this.q!=-1){this.o.O(this.q);this.q=-1}this.o.I();this.t.__listener=this};_.J=function Gh(a){ph(this,a);this.o.J(a)};_.K=function Hh(){try{this.M()}finally{this.o.K()}};_.E=function Ih(){gh(this,this.o.E());return this.t};_.cM={8:1,10:1,18:1,19:1,21:1,22:1,24:1,26:1};_.o=null;_=ch.prototype=new dh;_.P=function Xh(){return Hj(this.k)};_.J=function Yh(a){var b,c,d,e;!ti&&(ti=new Ii);Ei(ti,this,a);if(this.j){return}b=a.srcElement;if(!oc(b)||!zc(this.t,b)){return}ph(this,a);this.o.J(a);c=a.type;if(br(Mx,c)){this.i=true;Yi(this)}else if(br(Nx,c)){this.i=false;e=Vi(this);!!e&&lc(e,Qx)}else if(br(Ox,c)&&!this.b){this.i=true;d=a.keyCode||0;switch(d){case 40:Nj(this.k);wc(a);return;case 38:Pj(this.k);wc(a);return;case 34:Oj(this.k);wc(a);return;case 33:Qj(this.k);wc(a);return;case 36:Mj(this.k);wc(a);return;case 35:Lj(this.k);wc(a);return;case 32:wc(a);return;}}Xi(this,a)};_.M=function Zh(){this.i=false};_.Q=function ai(a,b){Vj(this.k,a,b)};_.R=function bi(a,b){Wj(this.k,a,b)};_.cM={8:1,10:1,18:1,19:1,21:1,22:1,24:1,26:1,28:1};_.i=false;_.j=false;_.k=null;_.n=0;var Jh=null;_=di.prototype=ci.prototype=new eh;_.cM={8:1,10:1,18:1,19:1,22:1,24:1,26:1};_.a=null;_=mi.prototype=ei.prototype=new U;_.a=null;_.b=false;_=oi.prototype=ni.prototype=new U;_.v=function pi(){var a;if(!_i(this.a.a)){a=Vi(this.a.a);!!a&&(a.focus(),undefined)}};_.a=null;_=ri.prototype=qi.prototype=new fe;_=si.prototype=new U;_.c=null;var ti=null;_=Ii.prototype=vi.prototype=new si;_.a=null;_.b=false;var wi=null,xi=null,yi=false,zi=null,Ai=null;_=Qi.prototype=Pi.prototype=new U;_.v=function Ri(){Oi(this.a)};_.a=null;_=bj.prototype=Si.prototype=new ch;_.F=function dj(){var a,b;try{this.f.I()}catch(a){a=Cf(a);if(ff(a,44)){b=a;throw new Wl(au(b))}else throw a}};_.G=function ej(){var a,b;try{this.f.K()}catch(a){a=Cf(a);if(ff(a,44)){b=a;throw new Wl(au(b))}else throw a}};_.cM={8:1,10:1,18:1,19:1,21:1,22:1,24:1,26:1,28:1};_.a=null;_.b=false;_.c=null;_.g=null;var Ti=null;_=gj.prototype=fj.prototype=new U;_.v=function hj(){Ph(this.a)};_.a=null;_=oj.prototype=ij.prototype=new U;var jj,kj=null,lj=null;_=rj.prototype=pj.prototype=new U;_.a=false;_=Zj.prototype=wj.prototype=new U;_.P=function $j(){return Hj(this)};_.Q=function _j(a,b){Vj(this,a,b)};_.R=function ak(a,b){Wj(this,a,b)};_.cM={10:1,28:1};_.a=null;_.b=false;_.e=null;_.f=null;_.g=null;_.i=0;_.j=null;_.k=null;_=ck.prototype=bk.prototype=new U;_.v=function dk(){this.a.g==this&&Rj(this.a)};_.a=null;_=gk.prototype=ek.prototype=new U;_.d=0;_.e=null;_.f=0;_.g=0;_.i=0;_.j=false;_.o=null;_.p=false;_=ik.prototype=hk.prototype=new ek;_.a=false;_.b=false;_=ok.prototype=jk.prototype=new Hc;_.cM={16:1,34:1,37:1,38:1};_.a=false;var kk,lk,mk;_=uk.prototype=pk.prototype=new Hc;_.cM={17:1,34:1,37:1,38:1};var qk,rk,sk;_=yk.prototype=vk.prototype=new vd;_.x=function zk(a){lf(a);null.yb()};_.y=function Ak(){return wk};var wk;_=Ck.prototype=Bk.prototype=new U;var Dk,Ek,Fk;var Hk=null,Ik=null;var Ok;_=Rk.prototype=Qk.prototype=new U;_.C=function Sk(a){while((Pk(),Ok).b>0){lf(Et(Ok,0)).yb()}};_.cM={7:1,9:1};var Uk=false,Vk=null;_=cl.prototype=_k.prototype=new vd;_.x=function dl(a){lf(a);null.yb()};_.y=function el(){return al};var al;_=gl.prototype=fl.prototype=new je;_.cM={10:1};var hl=false;var ll=null,ml=null,nl=null,ol=null;_=wl.prototype=new eh;_.F=function xl(){Xl(this,(Vl(),Tl))};_.G=function yl(){Xl(this,(Vl(),Ul))};_.cM={8:1,10:1,18:1,19:1,20:1,22:1,24:1,26:1};_=vl.prototype=new wl;_.T=function El(){return new Sn(this.b)};_.S=function Fl(a){return Cl(this,a)};_.cM={8:1,10:1,18:1,19:1,20:1,22:1,24:1,26:1};_=ul.prototype=new vl;_.S=function Il(a){var b;b=Cl(this,a);b&&Hl(a.t);return b};_.cM={8:1,10:1,18:1,19:1,20:1,22:1,24:1,26:1};_=Kl.prototype=new eh;_.U=function Ll(){return this.t.tabIndex};_.I=function Ml(){var a;oh(this);a=this.U();-1==a&&this.V(0)};_.V=function Nl(a){nc(this.t,a)};_.cM={8:1,10:1,18:1,19:1,22:1,24:1,26:1};_=Pl.prototype=Jl.prototype=new Kl;_.U=function Ql(){return this.t.tabIndex};_.V=function Rl(a){nc(this.t,a)};_.cM={8:1,10:1,18:1,19:1,22:1,24:1,26:1};_.a=null;_=Wl.prototype=Sl.prototype=new Be;_.cM={32:1,34:1,42:1,44:1};var Tl,Ul;_=Zl.prototype=Yl.prototype=new U;_.W=function $l(a){a.I()};_=am.prototype=_l.prototype=new U;_.W=function bm(a){a.K()};_=cm.prototype=new Kl;_.cM={8:1,10:1,18:1,19:1,22:1,24:1,26:1};_=im.prototype=em.prototype=new cm;_.U=function km(){return this.b.tabIndex};_.L=function lm(){this.b.__listener=this};_.M=function mm(){this.b.__listener=null;hm(this,this.p?(mq(),this.b.checked?lq:kq):(mq(),this.b.defaultChecked?lq:kq))};_.V=function nm(a){!!this.b&&nc(this.b,a)};_.O=function om(a){this.q==-1?Nk(this.b,a|(this.b.__eventBits||0)):this.q==-1?Lk(this.t,a|(this.t.__eventBits||0)):(this.q|=a)};_.cM={8:1,10:1,18:1,19:1,22:1,24:1,26:1};_.a=null;_.b=null;_.c=null;_=tm.prototype=pm.prototype=new vl;_.S=function um(a){var b,c;b=sc(a.t);c=Cl(this,a);if(c){a.t.style[eA]=Aw;a.t.style[gA]=Aw;kh(a.t,true);gc(this.t,b);this.a==a&&(this.a=null)}return c};_.cM={8:1,10:1,18:1,19:1,20:1,22:1,24:1,26:1};_.a=null;var qm=null;_=ym.prototype=vm.prototype=new T;_.a=null;_.b=null;_.c=false;_.d=null;_=Bm.prototype=zm.prototype=new U;_.a=null;_.b=null;_.c=null;_=Em.prototype=Cm.prototype=new vl;_.cM={8:1,10:1,18:1,19:1,20:1,22:1,24:1,26:1};_=Jm.prototype=new ul;_.cM={8:1,10:1,18:1,19:1,20:1,22:1,23:1,24:1,26:1};var Km,Lm,Mm;_=Um.prototype=Tm.prototype=new U;_.W=function Vm(a){a.H()&&a.K()};_=Xm.prototype=Wm.prototype=new U;_.C=function Ym(a){Qm()};_.cM={7:1,9:1};_=$m.prototype=Zm.prototype=new Jm;_.cM={8:1,10:1,18:1,19:1,20:1,22:1,23:1,24:1,26:1};_=bn.prototype=_m.prototype=new wl;_.T=function dn(){return new hn};_.S=function en(a){return an(this,a)};_.cM={8:1,10:1,18:1,19:1,20:1,22:1,24:1,26:1};_.a=null;_=hn.prototype=fn.prototype=new U;_.X=function jn(){return false};_.Y=function kn(){return gn()};_=nn.prototype=new Kl;_.J=function pn(a){var b;b=il(a.type);(b&896)!=0?ph(this,a):ph(this,a)};_.L=function qn(){};_.cM={8:1,10:1,18:1,19:1,22:1,24:1,26:1};_=mn.prototype=new nn;_.cM={8:1,10:1,18:1,19:1,22:1,24:1,26:1};_=ln.prototype=new mn;_.cM={8:1,10:1,18:1,19:1,22:1,24:1,26:1};_=tn.prototype=new Hc;_.cM={25:1,34:1,37:1,38:1};var un,vn,wn,xn;_=An.prototype=zn.prototype=new tn;_.cM={25:1,34:1,37:1,38:1};_=Cn.prototype=Bn.prototype=new tn;_.cM={25:1,34:1,37:1,38:1};_=En.prototype=Dn.prototype=new tn;_.cM={25:1,34:1,37:1,38:1};_=Gn.prototype=Fn.prototype=new tn;_.cM={25:1,34:1,37:1,38:1};_=On.prototype=Hn.prototype=new U;_.T=function Pn(){return new Sn(this)};_.a=null;_.b=0;_=Sn.prototype=Qn.prototype=new U;_.X=function Tn(){return this.a<this.b.b-1};_.Y=function Un(){return Rn(this)};_.a=-1;_.b=null;_=Vn.prototype=new U;_.c=-1;_.d=false;_=_n.prototype=$n.prototype=new U;_.cM={9:1,30:1};_.a=null;_.b=null;_=eo.prototype=ao.prototype=new vd;_.x=function fo(a){co(this,df(a,27))};_.y=function ho(){return bo};_.a=null;_.b=false;_.c=false;var bo=null;_=ko.prototype=io.prototype=new U;_.cM={9:1,27:1};_=no.prototype=lo.prototype=new Vn;_.a=null;_=zo.prototype=yo.prototype=po.prototype=new U;_.Z=function Ao(a){return qo(this,a)};_.$=function Bo(a){return ro(this,a)};_._=function Co(){so(this)};_.ab=function Do(a){return this.f.ab(a)};_.eQ=function Eo(a){return this.f.eQ(a)};_.bb=function Fo(a){return this.f.bb(a)};_.hC=function Go(){return this.f.hC()};_.cb=function Ho(a){return this.f.cb(a)};_.T=function Io(){return new Wo(this)};_.db=function Jo(){return new Wo(this)};_.eb=function Ko(a){return new Xo(this,a)};_.fb=function Lo(a){return wo(this,a)};_.gb=function Mo(){return this.f.gb()};_.hb=function No(a,b){return new zo(this.n,this.f.hb(a,b),this,a)};_.ib=function Oo(){return this.f.ib()};_.jb=function Po(a){return this.f.jb(a)};_.cM={47:1};_.a=0;_.b=null;_.c=false;_.e=false;_.f=null;_.g=-2147483648;_.i=2147483647;_.j=false;_.k=0;_.n=null;_=Ro.prototype=Qo.prototype=new U;_.v=function So(){this.a.e=false;if(this.a.c){this.a.c=false;return}uo(this.a)};_.a=null;_=Xo.prototype=Wo.prototype=To.prototype=new U;_.X=function Yo(){return this.a<this.c.f.gb()};_.kb=function Zo(){return this.a>0};_.Y=function $o(){return Uo(this)};_.lb=function _o(){if(this.a<=0){throw new nv}return vo(this.c,this.b=--this.a)};_.a=0;_.b=-1;_.c=null;_=bp.prototype=ap.prototype=new U;_.eQ=function cp(a){var b;if(!ff(a,29)){return false}b=df(a,29);return this.b==b.b&&this.a==b.a};_.hC=function dp(){return this.a*31^this.b};_.cM={29:1,34:1};_.a=0;_.b=0;_=hp.prototype=ep.prototype=new vd;_.x=function ip(a){gp(df(a,30))};_.y=function kp(){return fp};var fp=null;_=mp.prototype=lp.prototype=new U;_=op.prototype=np.prototype=new U;_.cM={31:1};_.a=null;_.b=null;_.c=null;_.d=null;_=qp.prototype=pp.prototype=new ln;_.cM={8:1,10:1,18:1,19:1,22:1,24:1,26:1};_=zp.prototype=rp.prototype=new db;_.a=false;_.b=null;_=Fp.prototype=Cp.prototype=new U;_.cM={33:1};_.a=false;_.b=null;_.c=null;_=Np.prototype=Gp.prototype=new U;_.a=false;_.c=null;_=Qp.prototype=Op.prototype=new U;_.a=null;_=Wp.prototype=Rp.prototype=new dh;_.cM={8:1,10:1,18:1,19:1,21:1,22:1,24:1,26:1};_.a=null;_.b=null;_.c=null;_.d=null;_.e=null;_.f=null;_.g=null;_.i=null;_.k=null;_=Yp.prototype=Xp.prototype=new U;_.A=function Zp(a){Pp(this.b,fm(this.a.k).a)};_.cM={4:1,9:1};_.a=null;_.b=null;_=_p.prototype=$p.prototype=new U;_.B=function aq(a){(a.a.keyCode||0)==13&&Hp(this.a.a)};_.cM={6:1,9:1};_.a=null;_=cq.prototype=bq.prototype=new U;_.A=function dq(a){Ip(this.a.a)};_.cM={4:1,9:1};_.a=null;_=gq.prototype=fq.prototype=new hb;_.cM={34:1,42:1,44:1};_=iq.prototype=hq.prototype=new hb;_.cM={34:1,42:1,44:1};_=oq.prototype=jq.prototype=new U;_.cT=function pq(a){return nq(this,df(a,35))};_.eQ=function qq(a){return ff(a,35)&&df(a,35).a==this.a};_.hC=function rq(){return this.a?1231:1237};_.cM={34:1,35:1,37:1};_.a=false;var kq,lq;_=uq.prototype=tq.prototype=new U;_=wq.prototype=vq.prototype=new hb;_.cM={34:1,42:1,44:1};_=xq.prototype=new U;_.cM={34:1,41:1};_=Aq.prototype=zq.prototype=new hb;_.cM={34:1,42:1,44:1};_=Dq.prototype=Cq.prototype=Bq.prototype=new hb;_.cM={34:1,42:1,44:1};_=Gq.prototype=Fq.prototype=Eq.prototype=new hb;_.cM={34:1,39:1,42:1,44:1};_=Jq.prototype=Hq.prototype=new xq;_.cT=function Kq(a){return Iq(this,df(a,40))};_.eQ=function Lq(a){return ff(a,40)&&df(a,40).a==this.a};_.hC=function Mq(){return this.a};_.cM={34:1,37:1,40:1,41:1};_.a=0;var Qq;_=Xq.prototype=Wq.prototype=Vq.prototype=new hb;_.cM={34:1,42:1,44:1};_=Zq.prototype=Yq.prototype=new zq;_.cM={34:1,42:1,44:1};_=_q.prototype=$q.prototype=new U;_.cM={34:1,43:1};_=String.prototype;_.cT=function ir(a){return hr(this,df(a,1))};_.eQ=function jr(a){return br(this,a)};_.hC=function kr(){return qr(this)};_.cM={1:1,34:1,36:1,37:1};var lr,mr=0,nr;_=ur.prototype=sr.prototype=new U;_.cM={36:1};_=xr.prototype=wr.prototype=vr.prototype=new hb;_.cM={34:1,42:1,44:1};_=yr.prototype=new U;_.Z=function Ar(a){throw new xr(hB)};_.$=function Br(a){var b,c;c=a.T();b=false;while(c.X()){this.Z(c.Y())&&(b=true)}return b};_.ab=function Cr(a){var b;b=zr(this.T(),a);return !!b};_.ib=function Dr(){return this.jb(Ve(vf,{34:1},0,this.gb(),0))};_.jb=function Er(a){var b,c,d;d=this.gb();a.length<d&&(a=Te(a,d));c=this.T();for(b=0;b<d;++b){Xe(a,b,c.Y())}a.length>d&&Xe(a,d,null);return a};_=Gr.prototype=new U;_.mb=function Jr(a){return !!Hr(this,a)};_.eQ=function Kr(a){var b,c,d,e,f;if(a===this){return true}if(!ff(a,48)){return false}e=df(a,48);if(this.gb()!=e.gb()){return false}for(c=e.nb().T();c.X();){b=df(c.Y(),49);d=b.rb();f=b.sb();if(!this.mb(d)){return false}if(!vw(f,this.ob(d))){return false}}return true};_.ob=function Lr(a){var b;b=Hr(this,a);return !b?null:b.sb()};_.hC=function Mr(){var a,b,c;c=0;for(b=this.nb().T();b.X();){a=df(b.Y(),49);c+=a.hC();c=~~c}return c};_.pb=function Nr(a,b){throw new xr(iB)};_.gb=function Or(){return this.nb().gb()};_.cM={48:1};_=Fr.prototype=new Gr;_.mb=function ds(a){return Sr(this,a)};_.nb=function es(){return new os(this)};_.qb=function fs(a,b){return jf(a)===jf(b)||a!=null&&ob(a,b)};_.ob=function gs(a){return Tr(this,a)};_.pb=function hs(a,b){return Yr(this,a,b)};_.gb=function is(){return this.d};_.cM={48:1};_.a=null;_.b=null;_.c=false;_.d=0;_.e=null;_=ks.prototype=new yr;_.eQ=function ls(a){var b,c,d;if(a===this){return true}if(!ff(a,50)){return false}c=df(a,50);if(c.gb()!=this.gb()){return false}for(b=c.T();b.X();){d=b.Y();if(!this.ab(d)){return false}}return true};_.hC=function ms(){var a,b,c;a=0;for(b=this.T();b.X();){c=b.Y();if(c!=null){a+=pb(c);a=~~a}}return a};_.cM={50:1};_=os.prototype=js.prototype=new ks;_.ab=function ps(a){return ns(this,a)};_.T=function qs(){return new ts(this.a)};_.gb=function rs(){return this.a.d};_.cM={50:1};_.a=null;_=ts.prototype=ss.prototype=new U;_.X=function us(){return Zs(this.a)};_.Y=function vs(){return df($s(this.a),49)};_.a=null;_=xs.prototype=new U;_.eQ=function ys(a){var b;if(ff(a,49)){b=df(a,49);if(vw(this.rb(),b.rb())&&vw(this.sb(),b.sb())){return true}}return false};_.hC=function zs(){var a,b;a=0;b=0;this.rb()!=null&&(a=pb(this.rb()));this.sb()!=null&&(b=pb(this.sb()));return a^b};_.cM={49:1};_=As.prototype=ws.prototype=new xs;_.rb=function Bs(){return null};_.sb=function Cs(){return this.a.b};_.tb=function Ds(a){return $r(this.a,a)};_.cM={49:1};_.a=null;_=Fs.prototype=Es.prototype=new xs;_.rb=function Gs(){return this.a};_.sb=function Hs(){return Vr(this.b,this.a)};_.tb=function Is(a){return _r(this.b,this.a,a)};_.cM={49:1};_.a=null;_.b=null;_=Js.prototype=new yr;_.Z=function Ks(a){this.ub(this.gb(),a);return true};_.ub=function Ls(a,b){throw new xr(jB)};_._=function Ns(){this.vb(0,this.gb())};_.eQ=function Os(a){var b,c,d,e,f;if(a===this){return true}if(!ff(a,47)){return false}f=df(a,47);if(this.gb()!=f.gb()){return false}d=new at(this);e=f.T();while(d.b<d.d.gb()){b=$s(d);c=e.Y();if(!(b==null?c==null:ob(b,c))){return false}}return true};_.hC=function Ps(){var a,b,c;b=1;a=new at(this);while(a.b<a.d.gb()){c=$s(a);b=31*b+(c==null?0:pb(c));b=~~b}return b};_.cb=function Qs(a){var b,c;for(b=0,c=this.gb();b<c;++b){if(a==null?this.bb(b)==null:ob(a,this.bb(b))){return b}}return -1};_.T=function Ss(){return new at(this)};_.db=function Ts(){return new et(this,0)};_.eb=function Us(a){return new et(this,a)};_.fb=function Vs(a){throw new xr(kB)};_.vb=function Ws(a,b){var c,d;d=new et(this,a);for(c=a;c<b;++c){$s(d);_s(d)}};_.hb=function Xs(a,b){return new it(this,a,b)};_.cM={47:1};_=at.prototype=Ys.prototype=new U;_.X=function bt(){return Zs(this)};_.Y=function ct(){return $s(this)};_.b=0;_.c=-1;_.d=null;_=et.prototype=dt.prototype=new Ys;_.kb=function ft(){return this.b>0};_.lb=function gt(){if(this.b<=0){throw new nv}return this.a.bb(this.c=--this.b)};_.a=null;_=it.prototype=ht.prototype=new Js;_.ub=function jt(a,b){Ms(a,this.b+1);++this.b;this.c.ub(this.a+a,b)};_.bb=function kt(a){Ms(a,this.b);return this.c.bb(this.a+a)};_.fb=function lt(a){var b;Ms(a,this.b);b=this.c.fb(this.a+a);--this.b;return b};_.gb=function mt(){return this.b};_.cM={47:1};_.a=0;_.b=0;_.c=null;_=pt.prototype=nt.prototype=new ks;_.ab=function qt(a){return this.a.mb(a)};_.T=function rt(){return ot(this)};_.gb=function st(){return this.b.gb()};_.cM={50:1};_.a=null;_.b=null;_=vt.prototype=tt.prototype=new U;_.X=function wt(){return this.a.X()};_.Y=function xt(){return ut(this)};_.a=null;_=Kt.prototype=Jt.prototype=yt.prototype=new Js;_.Z=function Lt(a){return At(this,a)};_.ub=function Mt(a,b){Bt(this,a,b)};_.$=function Nt(a){return Ct(this,a)};_._=function Ot(){Dt(this)};_.ab=function Pt(a){return Ft(this,a,0)!=-1};_.bb=function Qt(a){return Et(this,a)};_.cb=function Rt(a){return Ft(this,a,0)};_.fb=function St(a){return Gt(this,a)};_.vb=function Tt(a,b){var c;Ms(a,this.b);(b<a||b>this.b)&&Rs(b,this.b);c=b-a;Vt(this.a,a,c);this.b-=c};_.gb=function Ut(){return this.b};_.ib=function Yt(){return Se(this.a,this.b)};_.jb=function Zt(a){return It(this,a)};_.cM={34:1,47:1};_.b=0;var $t;_=du.prototype=cu.prototype=new Js;_.ab=function eu(a){return false};_.bb=function fu(a){throw new Fq};_.gb=function gu(){return 0};_.cM={34:1,47:1};_=hu.prototype=new U;_.Z=function ju(a){throw new wr};_.$=function ku(a){throw new wr};_._=function lu(){throw new wr};_.ab=function mu(a){return this.b.ab(a)};_.T=function nu(){return new su(this.b.T())};_.gb=function ou(){return this.b.gb()};_.ib=function pu(){return this.b.ib()};_.jb=function qu(a){return this.b.jb(a)};_.b=null;_=su.prototype=ru.prototype=new U;_.X=function tu(){return this.b.X()};_.Y=function uu(){return this.b.Y()};_.b=null;_=wu.prototype=vu.prototype=new hu;_.eQ=function xu(a){return this.a.eQ(a)};_.bb=function yu(a){return this.a.bb(a)};_.hC=function zu(){return this.a.hC()};_.cb=function Au(a){return this.a.cb(a)};_.db=function Bu(){return new Gu(this.a.eb(0))};_.eb=function Cu(a){return new Gu(this.a.eb(a))};_.fb=function Du(a){throw new wr};_.hb=function Eu(a,b){return new wu(this.a.hb(a,b))};_.cM={47:1};_.a=null;_=Gu.prototype=Fu.prototype=new ru;_.kb=function Hu(){return this.a.kb()};_.lb=function Iu(){return this.a.lb()};_.a=null;_=Ku.prototype=Ju.prototype=new vu;_.cM={47:1};_=Mu.prototype=Lu.prototype=new hu;_.eQ=function Nu(a){return this.b.eQ(a)};_.hC=function Ou(){return this.b.hC()};_.cM={50:1};_=Ru.prototype=Pu.prototype=new U;_.cT=function Su(a){return Qu(this,df(a,46))};_.eQ=function Tu(a){return ff(a,46)&&Rf(Sf(this.a.getTime()),Sf(df(a,46).a.getTime()))};_.hC=function Uu(){var a;a=Sf(this.a.getTime());return _f(bg(a,Zf(a,32)))};_.cM={34:1,37:1,46:1};_.a=null;_=Yu.prototype=Xu.prototype=Vu.prototype=new Fr;_.cM={34:1,48:1};_=cv.prototype=bv.prototype=Zu.prototype=new ks;_.Z=function dv(a){return $u(this,a)};_.ab=function ev(a){return Sr(this.a,a)};_.T=function fv(){return ot(Ir(this.a))};_.gb=function gv(){return this.a.d};_.cM={34:1,50:1};_.a=null;_=iv.prototype=hv.prototype=new xs;_.rb=function jv(){return this.a};_.sb=function kv(){return this.b};_.tb=function lv(a){var b;b=this.b;this.b=a;return b};_.cM={49:1};_.a=null;_.b=null;_=nv.prototype=mv.prototype=new hb;_.cM={34:1,42:1,44:1};_=uv.prototype=ov.prototype=new Gr;_.mb=function vv(a){return !!pv(this,a)};_.nb=function wv(){return new Kv(this)};_.ob=function xv(a){var b;b=pv(this,a);return b?b.d:null};_.pb=function yv(a,b){return sv(this,a,b)};_.gb=function zv(){return this.b};_.cM={34:1,48:1};_.a=null;_.b=0;_=Fv.prototype=Cv.prototype=new U;_.X=function Hv(){return Zs(this.a)};_.Y=function Iv(){return df($s(this.a),49)};_.a=null;_=Kv.prototype=Jv.prototype=new ks;_.ab=function Lv(a){var b,c;if(!ff(a,49)){return false}b=df(a,49);c=pv(this.a,b.rb());return !!c&&vw(c.d,b.sb())};_.T=function Mv(){return new Fv(this.a)};_.gb=function Nv(){return this.a.b};_.cM={50:1};_.a=null;_=Pv.prototype=Ov.prototype=new U;_.eQ=function Qv(a){var b;if(!ff(a,51)){return false}b=df(a,51);return vw(this.c,b.c)&&vw(this.d,b.d)};_.rb=function Rv(){return this.c};_.sb=function Sv(){return this.d};_.hC=function Tv(){var a,b;a=this.c!=null?pb(this.c):0;b=this.d!=null?pb(this.d):0;return a^b};_.tb=function Uv(a){var b;b=this.d;this.d=a;return b};_.cM={49:1,51:1};_.a=null;_.b=false;_.c=null;_.d=null;_=Wv.prototype=Vv.prototype=new U;_.a=false;_.b=null;_=bw.prototype=Xv.prototype=new Hc;_.wb=function cw(){return false};_.xb=function dw(){return false};_.cM={34:1,37:1,38:1,52:1};var Yv,Zv,$v,_v;_=fw.prototype=ew.prototype=new Xv;_.xb=function gw(){return true};_.cM={34:1,37:1,38:1,52:1};_=iw.prototype=hw.prototype=new Xv;_.wb=function jw(){return true};_.xb=function kw(){return true};_.cM={34:1,37:1,38:1,52:1};_=mw.prototype=lw.prototype=new Xv;_.wb=function nw(){return true};_.cM={34:1,37:1,38:1,52:1};_=qw.prototype=ow.prototype=new ks;_.Z=function rw(a){return pw(this,a)};_.ab=function sw(a){return !!pv(this.a,a)};_.T=function tw(){return ot(Ir(this.a))};_.gb=function uw(){return this.a.b};_.cM={34:1,50:1};_.a=null;var yw=wb;var mf=new uq,vf=new uq,wf=new uq,xf=new uq,nf=new uq,of=new uq,pf=new uq,qf=new uq,rf=new uq,tf=new uq,sf=new uq,yf=new uq,uf=new uq,zf=new uq,Af=new uq;$stats && $stats({moduleName:'gwttodo',sessionId:$sessionId,subSystem:'startup',evtGroup:'moduleStartup',millis:(new Date()).getTime(),type:'moduleEvalEnd'});if (gwttodo && gwttodo.onScriptLoad)gwttodo.onScriptLoad(gwtOnLoad);})();
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
function gwttodo(){var L='',ec='\n-',sb='" for "gwt:onLoadErrorFn"',qb='" for "gwt:onPropertyErrorFn"',Tb='"<script src=\\"',eb='"><\/script>',V='#',dc=');',Xb='-\n',fc='-><\/scr',Ub='.cache.js\\"><\/scr" + "ipt>"',X='/',Kb='5FD4AAC86E219AC1FF43B8231BBFC9A4',Lb='87D689CCFADB5E3A71E49647FA69B184',Mb='935405CAEE8D167A6A3D4E8FAE65D368',Qb=':',kb='::',Vb='<scr',db='<script id="',nb='=',W='?',xb='ActiveXObject',Nb='B0CF42A3AE3A14F349D922E798684002',pb='Bad handler "',yb='ChromeTab.ChromeFrame',Hb='Cross-site hosted mode not yet implemented. See issue ',Rb='DOMContentLoaded',Ob='F489C51DB09285D5DF4838E66BE501DB',Pb='FE73BA09C21765BDF56D7DE5BC958B2F',fb='SCRIPT',cb='__gwt_marker_gwttodo',gb='base',$='baseUrl',P='begin',O='bootstrap',wb='chromeframe',Z='clear.cache.gif',mb='content',cc='document.write(',U='end',$b='evtGroup: "loadExternalRefs", millis:(new Date()).getTime(),',ac='evtGroup: "moduleStartup", millis:(new Date()).getTime(),',Eb='gecko',Fb='gecko1_8',Q='gwt.codesvr=',R='gwt.hosted=',S='gwt.hybrid',rb='gwt:onLoadErrorFn',ob='gwt:onPropertyErrorFn',lb='gwt:property',M='gwttodo',ab='gwttodo.nocache.js',jb='gwttodo::',Ib='http://code.google.com/p/google-web-toolkit/issues/detail?id=2079',Db='ie6',Cb='ie8',Bb='ie9',Y='img',gc='ipt>',Wb='ipt><!-',Sb='loadExternalRefs',hb='meta',Zb='moduleName:"gwttodo", sessionId:window.__gwtStatsSessionId, subSystem:"startup",',T='moduleStartup',Ab='msie',ib='name',ub='opera',zb='safari',_='script',Jb='selectingPermutation',N='startup',_b='type: "end"});',bc='type: "moduleRequested"});',bb='undefined',Gb='unknown',tb='user.agent',vb='webkit',Yb='window.__gwtStatsEvent && window.__gwtStatsEvent({';var l=window,m=document,n=l.__gwtStatsEvent?function(a){return l.__gwtStatsEvent(a)}:null,o=l.__gwtStatsSessionId?l.__gwtStatsSessionId:null,p,q,r=L,s={},t=[],u=[],v=[],w=0,x,y;n&&n({moduleName:M,sessionId:o,subSystem:N,evtGroup:O,millis:(new Date).getTime(),type:P});if(!l.__gwt_stylesLoaded){l.__gwt_stylesLoaded={}}if(!l.__gwt_scriptsLoaded){l.__gwt_scriptsLoaded={}}function z(){var b=false;try{var c=l.location.search;return (c.indexOf(Q)!=-1||(c.indexOf(R)!=-1||l.external&&l.external.gwtOnLoad))&&c.indexOf(S)==-1}catch(a){}z=function(){return b};return b}
function A(){if(p&&q){p(x,M,r,w);n&&n({moduleName:M,sessionId:o,subSystem:N,evtGroup:T,millis:(new Date).getTime(),type:U})}}
function B(){function e(a){var b=a.lastIndexOf(V);if(b==-1){b=a.length}var c=a.indexOf(W);if(c==-1){c=a.length}var d=a.lastIndexOf(X,Math.min(c,b));return d>=0?a.substring(0,d+1):L}
function f(a){if(a.match(/^\w+:\/\//)){}else{var b=m.createElement(Y);b.src=a+Z;a=e(b.src)}return a}
function g(){var a=D($);if(a!=null){return a}return L}
function h(){var a=m.getElementsByTagName(_);for(var b=0;b<a.length;++b){if(a[b].src.indexOf(ab)!=-1){return e(a[b].src)}}return L}
function i(){var a;if(typeof isBodyLoaded==bb||!isBodyLoaded()){var b=cb;var c;m.write(db+b+eb);c=m.getElementById(b);a=c&&c.previousSibling;while(a&&a.tagName!=fb){a=a.previousSibling}if(c){c.parentNode.removeChild(c)}if(a&&a.src){return e(a.src)}}return L}
function j(){var a=m.getElementsByTagName(gb);if(a.length>0){return a[a.length-1].href}return L}
var k=g();if(k==L){k=h()}if(k==L){k=i()}if(k==L){k=j()}if(k==L){k=e(m.location.href)}k=f(k);r=k;return k}
function C(){var b=document.getElementsByTagName(hb);for(var c=0,d=b.length;c<d;++c){var e=b[c],f=e.getAttribute(ib),g;if(f){f=f.replace(jb,L);if(f.indexOf(kb)>=0){continue}if(f==lb){g=e.getAttribute(mb);if(g){var h,i=g.indexOf(nb);if(i>=0){f=g.substring(0,i);h=g.substring(i+1)}else{f=g;h=L}s[f]=h}}else if(f==ob){g=e.getAttribute(mb);if(g){try{y=eval(g)}catch(a){alert(pb+g+qb)}}}else if(f==rb){g=e.getAttribute(mb);if(g){try{x=eval(g)}catch(a){alert(pb+g+sb)}}}}}}
function D(a){var b=s[a];return b==null?null:b}
function E(a,b){var c=v;for(var d=0,e=a.length-1;d<e;++d){c=c[a[d]]||(c[a[d]]=[])}c[a[e]]=b}
function F(a){var b=u[a](),c=t[a];if(b in c){return b}var d=[];for(var e in c){d[c[e]]=e}if(y){y(a,d,b)}throw null}
u[tb]=function(){var c=navigator.userAgent.toLowerCase();var d=function(a){return parseInt(a[1])*1000+parseInt(a[2])};if(function(){return c.indexOf(ub)!=-1}())return ub;if(function(){return c.indexOf(vb)!=-1||function(){if(c.indexOf(wb)!=-1){return true}if(typeof window[xb]!=bb){try{var b=new ActiveXObject(yb);if(b){b.registerBhoIfNeeded();return true}}catch(a){}}return false}()}())return zb;if(function(){return c.indexOf(Ab)!=-1&&m.documentMode>=9}())return Bb;if(function(){return c.indexOf(Ab)!=-1&&m.documentMode>=8}())return Cb;if(function(){var a=/msie ([0-9]+)\.([0-9]+)/.exec(c);if(a&&a.length==3)return d(a)>=6000}())return Db;if(function(){return c.indexOf(Eb)!=-1}())return Fb;return Gb};t[tb]={gecko1_8:0,ie6:1,ie8:2,ie9:3,opera:4,safari:5};gwttodo.onScriptLoad=function(a){gwttodo.onScriptLoad=null;p=a;A()};if(z()){alert(Hb+Ib);return}C();B();n&&n({moduleName:M,sessionId:o,subSystem:N,evtGroup:O,millis:(new Date).getTime(),type:Jb});var G;try{E([Fb],Kb);E([ub],Lb);E([Db],Mb);E([Bb],Nb);E([Cb],Ob);E([zb],Pb);G=v[F(tb)];var H=G.indexOf(Qb);if(H!=-1){w=Number(G.substring(H+1));G=G.substring(0,H)}}catch(a){return}var I;function J(){if(!q){q=true;A();if(m.removeEventListener){m.removeEventListener(Rb,J,false)}if(I){clearInterval(I)}}}
if(m.addEventListener){m.addEventListener(Rb,function(){J()},false)}var I=setInterval(function(){if(/loaded|complete/.test(m.readyState)){J()}},50);n&&n({moduleName:M,sessionId:o,subSystem:N,evtGroup:O,millis:(new Date).getTime(),type:U});n&&n({moduleName:M,sessionId:o,subSystem:N,evtGroup:Sb,millis:(new Date).getTime(),type:P});var K=Tb+r+G+Ub;m.write(Vb+Wb+Xb+Yb+Zb+$b+_b+Yb+Zb+ac+bc+cc+K+dc+ec+fc+gc)}
gwttodo();
<!doctype html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<link type="text/css" rel="stylesheet" href="css/app.css">
<link type="text/css" rel="stylesheet" href="css/override.css">
<title>GWT Todo App</title>
<script type="text/javascript" language="javascript" src="gwttodo/gwttodo.nocache.js"></script>
</head>
<body>
<noscript>
<div style="width: 22em; position: absolute; left: 50%; margin-left: -11em; color: red; background-color: white; border: 1px solid red; padding: 4px; font-family: sans-serif">
Your web browser must have JavaScript enabled
in order for this application to display correctly.
</div>
</noscript>
</body>
</html>
## TodoMVC - GWT Version
This is a Google Web Toolkit (GWT) implementation of the TodoMVC application. The GWT version
is rather different to all the other TodoMVC versions (Backbone, Knockout etc ...) in that it is
written in Java which is compiled to JavaScript. The files within the `gwttodo` folder are the result
of running the GWT compilation process on the Java files found within the src folder. The UI
pattern used by this application is Model-View-Presenter.
Whilst this application is very different to the other TodoMVC implementations, it still makes for
an interesting comparison. Large-scale JavaScript applications are often written with GWT or Closure,
with the resulting JavaScript code delivered to the client being compiled.
### Folder structure
- `css` - includes the template `app.css` file and the GWT specific `override.css`
- `gwttodo` - the GWT compiled output, this includes various HTML files, which contain the JavaScript
code for each <a href "http://code.google.com/webtoolkit/doc/latest/tutorial/compile.html">GWT permutation</a>. This
folder also includes some redundant files, see the issue <a href="https://github.com/ColinEberhardt/todomvc/issues/9">
Remove redundant compiler output</a>.
- `src` - the Java source for this application
### Building this application
The GWT TodoMVC application was built with Java 1.6 and GWT 2.4.0. The easiest way to build this application
is to download the GWT SDK:
http://code.google.com/webtoolkit/gettingstarted.html
Together with the Eclipse plugin:
http://code.google.com/webtoolkit/usingeclipse.html
<?xml version="1.0" encoding="UTF-8"?>
<module rename-to='gwttodo'>
<!-- Inherit the core Web Toolkit stuff. -->
<inherits name='com.google.gwt.user.User'/>
<inherits name='com.google.gwt.json.JSON'/>
<!-- Don't inherit any GWT styles - they're ugly! -->
<!-- <inherits name='com.google.gwt.user.theme.clean.Clean'/>-->
<!-- Other module inherits -->
<!-- Specify the app entry point class. -->
<entry-point class='com.todo.client.GwtToDo'/>
<!-- Specify the paths for translatable code -->
<source path='client'/>
<add-linker name="xs" />
</module>
package com.todo.client;
import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.user.client.ui.RootPanel;
/**
* Entry point class
*/
public class GwtToDo implements EntryPoint {
public void onModuleLoad() {
ToDoView toDoView = new ToDoView();
new ToDoPresenter(toDoView);
RootPanel.get().add(toDoView);
}
}
package com.todo.client;
import com.google.gwt.user.client.ui.TextBox;
public class TextBoxWithPlaceholder extends TextBox {
/**
* Sets the placeholder for this textbox
*
* @param value the placeholder value
*/
public void setPlaceholder(String value){
getElement().setAttribute("placeholder", value);
}
/**
* Gets the placeholder for this textbox
*
* @return the placeholder
*/
public String getPlaceholder(){
return getElement().getAttribute("placeholder");
}
}
package com.todo.client;
import java.util.Date;
import com.google.gwt.cell.client.AbstractCell;
import com.google.gwt.cell.client.ValueUpdater;
import com.google.gwt.core.client.GWT;
import com.google.gwt.dom.client.DivElement;
import com.google.gwt.dom.client.Element;
import com.google.gwt.dom.client.EventTarget;
import com.google.gwt.dom.client.InputElement;
import com.google.gwt.dom.client.NativeEvent;
import com.google.gwt.event.dom.client.KeyCodes;
import com.google.gwt.safehtml.client.SafeHtmlTemplates;
import com.google.gwt.safehtml.shared.SafeHtml;
import com.google.gwt.safehtml.shared.SafeHtmlBuilder;
import com.google.gwt.safehtml.shared.SafeHtmlUtils;
/**
* A cell that renders {@link ToDoItem} instances. This cell is rendered in both view and edit modes
* based on user interaction. In edit mode, browser events are handled in order to update
* the model item state.
*
* @author ceberhardt
*
*/
public class ToDoCell extends AbstractCell<ToDoItem> {
/**
* The HTML templates used to render the cell.
*/
interface Templates extends SafeHtmlTemplates {
/**
* The view-mode template
*/
@SafeHtmlTemplates.Template(
"<div class='{2}' data-timestamp='{3}'>" +
"{0} " +
"<label>{1}</label>" +
"<a class='destroy'></a>" +
"</div>")
SafeHtml view(SafeHtml checked, SafeHtml task, String done, String timestamp);
/**
* A template the renders a checked input
*/
@SafeHtmlTemplates.Template("<input class='check' type='checkbox' checked>")
SafeHtml inputChecked();
/**
* A template the renders an un-checked input
*/
@SafeHtmlTemplates.Template("<input class='check' type='checkbox'>")
SafeHtml inputClear();
/**
* The edit-mode template
*/
@SafeHtmlTemplates.Template("<div class='listItem editing'><input class='edit' value='{0}' type='text'></div>")
SafeHtml edit(String task);
}
private static Templates templates = GWT.create(Templates.class);
/**
* The item that is currently being edited
*/
private ToDoItem editingItem = null;
/**
* A flag that indicates that we are starting to edit the cell
*/
private boolean beginningEdit = false;
public ToDoCell() {
super("click", "keyup", "blur", "dblclick");
}
@Override
public void render(Context context, ToDoItem value, SafeHtmlBuilder sb) {
// render the cell in edit or view mode
if (isEditing(value)) {
SafeHtml rendered = templates.edit(value.getTitle());
sb.append(rendered);
} else {
SafeHtml rendered = templates.view(
value.isDone() ? templates.inputChecked() : templates.inputClear(),
SafeHtmlUtils.fromString(value.getTitle()),
value.isDone() ? "listItem view done" : "listItem view",
// NOTE: The addition of a timestamp here is a bit of a HACK! The problem
// is that the CellList uses a HasDataPresenter for rendering. This class
// caches the more recent rendered contents for each cell, skipping a render
// if it looks like the cell hasn't changed. However, this fails for editable cells
// that are able to change the DOM representation directly. This hack simply
// ensures that the presenter always renders the cell.
Long.toString(new Date().getTime()));
sb.append(rendered);
}
}
@Override
public boolean isEditing(Context context, Element parent, ToDoItem value) {
return isEditing(value);
}
@Override
public void onBrowserEvent(Context context, Element parent, ToDoItem value, NativeEvent event,
ValueUpdater<ToDoItem> valueUpdater) {
String type = event.getType();
if (isEditing(value)) {
// handle keyup events
if ("keyup".equals(type)) {
int keyCode = event.getKeyCode();
// handle enter key to commit the edit
if (keyCode == KeyCodes.KEY_ENTER) {
commitEdit(parent, value);
endEdit(context, parent, value);
}
// handle escape key to cancel the edit
if (keyCode == KeyCodes.KEY_ESCAPE) {
endEdit(context, parent, value);
}
}
// handle blur event
if ("blur".equals(type) && !beginningEdit) {
commitEdit(parent, value);
endEdit(context, parent, value);
}
} else {
// handle double clicks to enter edit more
if ("dblclick".equals(type)) {
beginEdit(context, parent, value);
beginningEdit = true;
InputElement input = getInputElement(parent);
input.focus();
input.select();
beginningEdit = false;
}
// when not in edit mode - handle click events on the cell
if ("click".equals(type)) {
EventTarget eventTarget = event.getEventTarget();
Element clickedElement = Element.as(eventTarget);
String tagName = clickedElement.getTagName();
// check whether the checkbox was clicked
if (tagName.equals("INPUT")) {
// if so, synchronise the model state
InputElement input = clickedElement.cast();
value.setDone(input.isChecked());
// update the 'row' style
if (input.isChecked()) {
getViewRootElement(parent).addClassName("done");
} else {
getViewRootElement(parent).removeClassName("done");
}
} else if (tagName.equals("A")) {
// if the delete anchor was clicked - delete the item
value.delete();
}
}
}
}
/**
* Commits the changes in text value to the ToDoItem
*/
private void commitEdit(Element parent, ToDoItem value) {
InputElement input = getInputElement(parent);
value.setTitle(input.getValue());
}
/**
* Begins editing the given item, rendering the cell in edit mode
*/
private void beginEdit(Context context, Element parent, ToDoItem value) {
editingItem = value;
renderCell(context, parent, value);
}
/**
* Ends editing the given item, rendering the cell in view mode
*/
private void endEdit(Context context, Element parent, ToDoItem value) {
editingItem = null;
renderCell(context, parent, value);
}
/**
* Renders the cell, replacing the contents of the parent with the newly rendered content.
*/
private void renderCell(Context context, Element parent, ToDoItem value) {
SafeHtmlBuilder sb = new SafeHtmlBuilder();
render(context, value, sb);
parent.setInnerHTML(sb.toSafeHtml().asString());
}
/**
* Gets whether the given item is being edited.
*/
private boolean isEditing(ToDoItem item) {
return editingItem == item;
}
/**
* Get the input element in edit mode.
*/
private InputElement getInputElement(Element parent) {
return parent.getFirstChild().getFirstChild().<InputElement> cast();
}
/**
* Gets the root DIV element of the view mode template.
*/
private DivElement getViewRootElement(Element parent) {
return parent.getFirstChild().<DivElement> cast();
}
}
package com.todo.client;
/**
* An individual ToDo item.
*
* @author ceberhardt
*
*/
public class ToDoItem {
private final ToDoPresenter presenter;
private String title;
private boolean done;
public ToDoItem(String text, ToDoPresenter presenter) {
this.title = text;
this.done = false;
this.presenter = presenter;
}
public ToDoItem(String title, boolean done, ToDoPresenter presenter) {
this.title = title;
this.done = done;
this.presenter = presenter;
}
public boolean isDone() {
return done;
}
public void setDone(boolean done) {
this.done = done;
presenter.itemStateChanged(this);
}
public void delete() {
presenter.deleteTask(this);
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
presenter.itemStateChanged(this);
}
}
package com.todo.client;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import com.google.gwt.json.client.JSONArray;
import com.google.gwt.json.client.JSONBoolean;
import com.google.gwt.json.client.JSONObject;
import com.google.gwt.json.client.JSONParser;
import com.google.gwt.json.client.JSONString;
import com.google.gwt.storage.client.Storage;
import com.google.gwt.view.client.AbstractDataProvider;
import com.google.gwt.view.client.ListDataProvider;
/**
* The presenter for the ToDo application. This class is responsible for the lifecycle
* of the {@link ToDoItem} instances.
*
* @author ceberhardt
*
*/
public class ToDoPresenter {
private static final String STORAGE_KEY = "todo-gwt-state";
/**
* The interface that a view for this presenter must implement.
*/
public interface View {
/**
* Gets the text that the user has input for the creation of new tasks.
*/
String getTaskText();
/**
* Clears the user input field where new tasks are added.
*/
void clearTaskText();
/**
* Sets the current task statistics.
*/
void setTaskStatistics(int totalTasks, int completedTasks);
/**
* Sets the data provider that acts as a source of {@link ToDoItem} instances.
*/
void setDataProvider(AbstractDataProvider<ToDoItem> data);
/**
* Adds the handler to the events raised by the view.
*/
void addhandler(ViewEventHandler handler);
}
/**
* The interface that handles interactions from the view.
*
*/
public interface ViewEventHandler {
/**
* Invoked when a user adds a new task.
*/
void addTask();
/**
* Invoked when a user wishes to clear completed tasks.
*/
void clearCompletedTasks();
/**
* Sets the completed state of all tasks to the given state
*/
void markAllCompleted(boolean completed);
}
/**
* Handler for view events, defers to private presenter methods.
*/
private ViewEventHandler viewHandler = new ViewEventHandler() {
@Override
public void addTask() {
ToDoPresenter.this.addTask();
}
@Override
public void clearCompletedTasks() {
ToDoPresenter.this.clearCompletedTasks();
}
@Override
public void markAllCompleted(boolean completed) {
ToDoPresenter.this.markAllCompleted(completed);
}
};
private final ListDataProvider<ToDoItem> todos = new ListDataProvider<ToDoItem>();
private final View view;
private boolean suppressStateChanged = false;
public ToDoPresenter(View view) {
this.view = view;
loadState();
view.addhandler(viewHandler);
view.setDataProvider(todos);
updateTaskStatistics();
}
/**
* Computes the tasks statistics and updates the view.
*/
private void updateTaskStatistics() {
int totalTasks = todos.getList().size();
int completeTask = 0;
for(ToDoItem task : todos.getList()){
if (task.isDone()){
completeTask ++;
}
}
view.setTaskStatistics(totalTasks, completeTask);
}
/**
* Deletes the given task and updates statistics.
*/
protected void deleteTask(ToDoItem toDoItem) {
todos.getList().remove(toDoItem);
updateTaskStatistics();
saveState();
}
/**
* Invoked by a task when its state changes so that we can update
* the view statistics and persist.
*/
protected void itemStateChanged(ToDoItem toDoItem) {
if (suppressStateChanged) {
return;
}
// if the item has become empty, remove it
if (toDoItem.getTitle().trim().equals("")) {
todos.getList().remove(toDoItem);
}
updateTaskStatistics();
saveState();
}
/**
* Sets the completed state of all tasks
*/
private void markAllCompleted(boolean completed) {
// update the completed state of each item
suppressStateChanged = true;
for(ToDoItem task : todos.getList()){
task.setDone(completed);
}
suppressStateChanged = false;
// cause the view to refresh the whole list - yes, this is a bit ugly!
List<ToDoItem> items = new ArrayList<ToDoItem>(todos.getList());
todos.getList().clear();
todos.getList().addAll(items);
updateTaskStatistics();
saveState();
}
/**
* Adds a new task based on the user input field
*/
private void addTask() {
String taskTitle = view.getTaskText().trim();
// if white-space only, do not add a todo
if (taskTitle.equals(""))
return;
ToDoItem toDoItem = new ToDoItem(taskTitle, this);
view.clearTaskText();
todos.getList().add(toDoItem);
updateTaskStatistics();
saveState();
}
/**
* Clears completed tasks and updates the view.
*/
private void clearCompletedTasks() {
Iterator<ToDoItem> iterator = todos.getList().iterator();
while (iterator.hasNext()) {
ToDoItem item = iterator.next();
if (item.isDone()) {
iterator.remove();
}
}
updateTaskStatistics();
saveState();
}
/**
* Saves the current to-do items to local storage
*/
private void saveState() {
Storage storage = Storage.getLocalStorageIfSupported();
if (storage != null) {
// JSON encode the items
JSONArray todoItems = new JSONArray();
for (int i = 0; i < todos.getList().size(); i++) {
ToDoItem toDoItem = todos.getList().get(i);
JSONObject jsonObject = new JSONObject();
jsonObject.put("task", new JSONString(toDoItem.getTitle()));
jsonObject.put("complete", JSONBoolean.getInstance(toDoItem.isDone()));
todoItems.set(i, jsonObject);
}
// save to local storage
storage.setItem(STORAGE_KEY, todoItems.toString());
}
}
private void loadState() {
Storage storage = Storage.getLocalStorageIfSupported();
if (storage != null) {
try {
// get state
String state = storage.getItem(STORAGE_KEY);
// parse the JSON array
JSONArray todoItems = JSONParser.parseStrict(state).isArray();
for (int i = 0; i < todoItems.size(); i++) {
// extract the to-do item values
JSONObject jsonObject = todoItems.get(i).isObject();
String task = jsonObject.get("task").isString().stringValue();
boolean completed = jsonObject.get("complete").isBoolean().booleanValue();
// add a new item to our list
todos.getList().add(new ToDoItem(task, completed, this));
}
} catch (Exception e) {
}
}
}
}
package com.todo.client;
import com.google.gwt.core.client.GWT;
import com.google.gwt.dom.client.Element;
import com.google.gwt.dom.client.SpanElement;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.event.dom.client.KeyCodes;
import com.google.gwt.event.dom.client.KeyUpEvent;
import com.google.gwt.event.dom.client.KeyUpHandler;
import com.google.gwt.uibinder.client.UiBinder;
import com.google.gwt.uibinder.client.UiField;
import com.google.gwt.user.cellview.client.CellList;
import com.google.gwt.user.cellview.client.HasKeyboardSelectionPolicy.KeyboardSelectionPolicy;
import com.google.gwt.user.client.ui.Anchor;
import com.google.gwt.user.client.ui.CheckBox;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.Widget;
import com.google.gwt.view.client.AbstractDataProvider;
import com.todo.client.ToDoPresenter.ViewEventHandler;
/**
* A view for the {@link ToDoPresenter}
*
*/
public class ToDoView extends Composite implements ToDoPresenter.View {
private static ToDoViewUiBinder uiBinder = GWT.create(ToDoViewUiBinder.class);
interface ToDoViewUiBinder extends UiBinder<Widget, ToDoView> {
}
@UiField
TextBoxWithPlaceholder taskText;
@UiField
SpanElement remainingTasksCount;
@UiField
SpanElement remainingTasksLabel;
@UiField
Element mainSection;
@UiField
Element todoStatsContainer;
@UiField
SpanElement clearTasksCount;
@UiField
SpanElement clearTasksLabel;
@UiField
Anchor clearCompleted;
@UiField
CheckBox toggleAllCheckBox;
@UiField(provided = true)
CellList<ToDoItem> todoTable = new CellList<ToDoItem>(new ToDoCell());
public ToDoView() {
initWidget(uiBinder.createAndBindUi(this));
// removes the yellow highlight
todoTable.setKeyboardSelectionPolicy(KeyboardSelectionPolicy.DISABLED);
// add IDs to the elements that have ui:field attributes. This is required because the UiBinder
// does not permit the addition of ID attributes to elements marked with ui:field.
// *SIGH*
mainSection.setId("main");
clearCompleted.getElement().setId("clear-completed");
taskText.getElement().setId("new-todo");
}
@Override
public String getTaskText() {
return taskText.getText();
}
@Override
public void addhandler(final ViewEventHandler handler) {
// wire-up the events from the UI to the presenter.
toggleAllCheckBox.addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
handler.markAllCompleted(toggleAllCheckBox.getValue());
}
});
taskText.addKeyUpHandler(new KeyUpHandler() {
@Override
public void onKeyUp(KeyUpEvent event) {
if (event.getNativeKeyCode() == KeyCodes.KEY_ENTER) {
handler.addTask();
}
}
});
clearCompleted.addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
handler.clearCompletedTasks();
}
});
}
@Override
public void setDataProvider(AbstractDataProvider<ToDoItem> data) {
data.addDataDisplay(todoTable);
}
@Override
public void clearTaskText() {
taskText.setText("");
}
@Override
public void setTaskStatistics(int totalTasks, int completedTasks) {
int remainingTasks = totalTasks - completedTasks;
hideElement(mainSection, totalTasks == 0);
hideElement(todoStatsContainer, totalTasks == 0);
hideElement(clearCompleted.getElement(), completedTasks == 0);
remainingTasksCount.setInnerText(Integer.toString(remainingTasks));
remainingTasksLabel.setInnerText(remainingTasks > 1 || remainingTasks == 0 ? "items" : "item");
clearTasksCount.setInnerHTML(Integer.toString(completedTasks));
clearTasksLabel.setInnerText(completedTasks > 1 ? "items" : "item");
toggleAllCheckBox.setValue(totalTasks == completedTasks);
}
private void hideElement(Element element, boolean hide) {
if (hide) {
element.setAttribute("style", "display:none;");
} else {
element.setAttribute("style", "display:block;");
}
}
}
<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent">
<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder"
xmlns:g="urn:import:com.google.gwt.user.client.ui" xmlns:cv="urn:import:com.google.gwt.user.cellview.client"
xmlns:todo="urn:import:com.todo.client">
<g:HTMLPanel>
<div id="todoapp">
<header>
<h1>Todos</h1>
<todo:TextBoxWithPlaceholder
placeholder="What needs to be done?" ui:field="taskText">
</todo:TextBoxWithPlaceholder>
</header>
<section ui:field="mainSection">
<g:CheckBox ui:field="toggleAllCheckBox">Mark all as complete</g:CheckBox>
<div id="todo-list">
<cv:CellList ui:field="todoTable"></cv:CellList>
</div>
</section>
<footer ui:field="todoStatsContainer">
<g:Anchor href="#" ui:field="clearCompleted">
Clear
<span class="number-done" ui:field="clearTasksCount"></span>
completed
<span class="word-done" ui:field="clearTasksLabel"></span>
</g:Anchor>
<div id="todo-count">
<span class="number" ui:field="remainingTasksCount"></span>
<span class="word" ui:field="remainingTasksLabel"></span>
left.
</div>
</footer>
</div>
<div id="instructions">
Double-click to edit a todo.
</div>
<div id="credits">
Created by
<br />
<a href="http://jgn.me/">Jérôme Gravel-Niquet</a>
<br />
Modified to use
<a href="http://code.google.com/webtoolkit/">Google Web Toolkit</a>
by
<a href="http://www.scottlogic.co.uk/blog/colin/">Colin Eberhardt</a>
</div>
</g:HTMLPanel>
</ui:UiBinder>
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment