function Zc(a,b){this.Yma=0;this.ina={};null!=a&&(u.assert(null!=a,"id cannot be null"),this.Pj=a,this.Afb=b,this.kma=Zc.jM(a,b))}m("AdfCheckpoint",Zc);Zc.VS="___nullId";Zc.LHa=!1;Zc.x6={};Zc.eob=0;Zc.X3={};Zc.Prb=function(a){u.assert(null!=a,"Enabled cannot be null");Zc.LHa=a};m("AdfCheckpoint.setCheckpointsEnabled",Zc.Prb);Zc.Y$=function(a,b,d){u.assert(null!=d,"Override cannot be null");null==a&&(a=Zc.VS);Zc.x6[Zc.jM(a,b)]=d};m("AdfCheckpoint.setCheckpointOverride",Zc.Y$);
Zc.zrb=function(a,b){null==a&&(a=Zc.VS);delete Zc.x6[Zc.jM(a,b)]};m("AdfCheckpoint.removeCheckpointOverride",Zc.zrb);Zc.sm=function(a,b){u.assert(null!=a,"Id cannot be null for a checkpoint");var d=Zc.jM(a,b),e=Zc.X3[d];null==e&&(e=new Zc(a,b),Zc.X3[d]=e);return e};m("AdfCheckpoint.getCheckpoint",Zc.sm);Zc.Xpb=function(a){u.assert(null!=a,"Group is null");var b=[];for(chkptId in Zc.X3)chkptId.split("|")[1]==a&&b.push(Zc.X3[chkptId]);return b};m("AdfCheckpoint.getGroupCheckpoints",Zc.Xpb);
Zc.jM=function(a,b){return[a,b].join("|")};Zc.aib=function(a,b){u.assert(null!=a,"Id is null");var d=Zc.x6[Zc.jM(a,b)];if(null!=d)return d;d=Zc.x6[Zc.jM(Zc.VS,b)];return null!=d?d:Zc.LHa};Zc.prototype.start=function(a,b){this.Yma++;if(this.isEnabled()){var d=""+Zc.eob++;this.ina[d]=new $c(a,b);return d}return Zc.VS};r.a("AdfCheckpoint.prototype.start",{start:Zc.prototype.start});
Zc.prototype.stop=function(a){var b=(new Date).getTime();u.assert(null!=a,"UID cannot be null");this.Yma--;if(a!=Zc.VS){var d=this.ina[a];u.assert(null!=d,"AdfCheckpoint does not exist");this.isEnabled()&&(b-=d.Cnb,ad.t8a(this).Cha(b,this.Yma,d.Iia,d.ku));delete this.ina[a]}};r.a("AdfCheckpoint.prototype.stop",{stop:Zc.prototype.stop});Zc.prototype.getId=function(){u.assert(null!=this.Pj,"AdfCheckpoint is not initialized");return this.Pj};r.a("AdfCheckpoint.prototype.getId",{getId:Zc.prototype.getId});
Zc.prototype.getGroup=function(){u.assert(null!=this.Pj,"AdfCheckpoint is not initialized");return this.Afb};r.a("AdfCheckpoint.prototype.getGroup",{getGroup:Zc.prototype.getGroup});Zc.prototype.setDescription=function(a){this.fcb=a};r.a("AdfCheckpoint.prototype.setDescription",{setDescription:Zc.prototype.setDescription});Zc.prototype.getDescription=function(){return this.fcb};r.a("AdfCheckpoint.prototype.getDescription",{getDescription:Zc.prototype.getDescription});Zc.prototype.toString=function(){return this.kma};
r.a("AdfCheckpoint.prototype.toString",{toString:Zc.prototype.toString});Zc.prototype.isEnabled=function(){return Zc.aib(this.getId(),this.getGroup())};r.a("AdfCheckpoint.prototype.isEnabled",{isEnabled:Zc.prototype.isEnabled});function $c(a,b){this.ku=b;this.Iia=a;this.Cnb=(new Date).getTime()}m("_OpenCheckpoint",$c);