function Jc(a,b){this.Vba=0;this.eca={};a!=n&&(B.assert(a!=n,"id cannot be null"),this.Pi=a,this.ZVa=b,this.wYa=Jc.yG(a,b))}v("AdfCheckpoint",Jc);Jc.fM="___nullId";Jc.uta=p;Jc.FY={};Jc.V1a=0;Jc.uW={};Jc.$4a=function(a){B.assert(a!=n,"Enabled cannot be null");Jc.uta=a};v("AdfCheckpoint.setCheckpointsEnabled",Jc.$4a);Jc.x1=function(a,b,d){B.assert(d!=n,"Override cannot be null");a==n&&(a=Jc.fM);Jc.FY[Jc.yG(a,b)]=d};v("AdfCheckpoint.setCheckpointOverride",Jc.x1);
Jc.K4a=function(a,b){a==n&&(a=Jc.fM);delete Jc.FY[Jc.yG(a,b)]};v("AdfCheckpoint.removeCheckpointOverride",Jc.K4a);Jc.Lk=function(a,b){B.assert(a!=n,"Id cannot be null for a checkpoint");var d=Jc.yG(a,b),e=Jc.uW[d];e==n&&(e=new Jc(a,b),Jc.uW[d]=e);return e};v("AdfCheckpoint.getCheckpoint",Jc.Lk);Jc.r3a=function(a){B.assert(a!=n,"Group is null");var b=[];for(chkptId in Jc.uW)chkptId.split("|")[1]==a&&b.push(Jc.uW[chkptId]);return b};v("AdfCheckpoint.getGroupCheckpoints",Jc.r3a);
Jc.yG=function(a,b){return[a,b].join("|")};Jc.WXa=function(a,b){B.assert(a!=n,"Id is null");var d=Jc.FY[Jc.yG(a,b)];if(d!=n)return d;d=Jc.FY[Jc.yG(Jc.fM,b)];return d!=n?d:Jc.uta};Jc.prototype.start=function(a,b){this.Vba++;if(this.isEnabled()){var d=""+Jc.V1a++;this.eca[d]=new Kc(a,b);return d}return Jc.fM};z.a("AdfCheckpoint.prototype.start",{start:Jc.prototype.start});
Jc.prototype.stop=function(a){var b=(new Date).getTime();B.assert(a!=n,"UID cannot be null");this.Vba--;if(a!=Jc.fM){var d=this.eca[a];B.assert(d!=n,"AdfCheckpoint does not exist");this.isEnabled()&&(b-=d.v1a,Lc.uQa(this).p8(b,this.Vba,d.l9,d.yr));delete this.eca[a]}};z.a("AdfCheckpoint.prototype.stop",{stop:Jc.prototype.stop});Jc.prototype.getId=function(){B.assert(this.Pi!=n,"AdfCheckpoint is not initialized");return this.Pi};z.a("AdfCheckpoint.prototype.getId",{getId:Jc.prototype.getId});
Jc.prototype.getGroup=function(){B.assert(this.Pi!=n,"AdfCheckpoint is not initialized");return this.ZVa};z.a("AdfCheckpoint.prototype.getGroup",{getGroup:Jc.prototype.getGroup});Jc.prototype.setDescription=da("FTa");z.a("AdfCheckpoint.prototype.setDescription",{setDescription:Jc.prototype.setDescription});Jc.prototype.getDescription=r("FTa");z.a("AdfCheckpoint.prototype.getDescription",{getDescription:Jc.prototype.getDescription});Jc.prototype.toString=r("wYa");
z.a("AdfCheckpoint.prototype.toString",{toString:Jc.prototype.toString});Jc.prototype.isEnabled=function(){return Jc.WXa(this.getId(),this.getGroup())};z.a("AdfCheckpoint.prototype.isEnabled",{isEnabled:Jc.prototype.isEnabled});function Kc(a,b){this.yr=b;this.l9=a;this.v1a=(new Date).getTime()}v("_OpenCheckpoint",Kc);