var trio_determineBasal;(()=>{var e={2982:(e,r,t)=>{var a=t(3531);function o(e,r){r||(r=0);var t=Math.pow(10,r);return Math.round(e*t)/t}function n(e,r){return"mmol/L"===r.out_units?o(.0555*e,1):Math.round(e)}e.exports=function(e,r,t,i,s,l,d,u,m,c,g,h,v,B,b){var p=i.min_bg,M=B.overrideTarget;0!=M&&6!=M&&B.useOverride&&!i.temptargetSet&&(p=M);const f=B.smbIsOff,_=B.advancedSettings,x=B.isfAndCr,S=B.isf,y=B.cr,G=B.smbMinutes,w=B.uamMinutes;let C=B.currentTDD;var O="",U="",D=h.useNewFormula,T=0,A=p,I=new Date;c&&(I=new Date(c));const F=B.weightedAverage;var R=1,j=i.sens,E=i.carb_ratio;B.useOverride&&(R=B.overridePercentage/100,x?(j/=R,E/=R):(y&&(E/=R),S&&(j/=R)));const q=i.weightPercentage,W=B.average_total_data,P=Math.min(i.autosens_min,i.autosens_max),k=Math.max(i.autosens_min,i.autosens_max);(k==P||k<1||P>1)&&(D=!1,console.log("Dynamic ISF disabled due to current autosens settings"));const L=e.glucose,z=h.adjustmentFactor,H=h.adjustmentFactorSigmoid,N=h.sigmoid,Z=p;var $,J=!1,K="",Q=1;W>0&&(Q=F/W),Q>1?(Q=o(Q=Math.min(Q,i.autosens_max),2),i.autosens_max):Q<1&&(Q=o(Q=Math.max(Q,i.autosens_min),2),i.autosens_min),$=", Basal ratio: "+Q,(i.high_temptarget_raises_sensitivity||i.exercise_mode)&&(J=!0),Z>=118&&J&&(D=!1,K="Dynamic ISF temporarily off due to a high temp target/exercising. Current min target: "+Z);var V=", Dynamic ratios log: ",X=", AF: "+(N?H:z),Y="BG: "+L+" mg/dl ("+(.0555*L).toPrecision(2)+" mmol/l)",ee="",re="";const te=h.curve,ae=i.insulinPeakTime,oe=h.useCustomPeakTime;var ne=55,ie=65;switch(te){case"rapid-acting":ie=65;break;case"ultra-rapid":ie=50}oe?(ne=120-ae,console.log("Custom insulinpeakTime set to :"+ae+", insulinFactor: "+ne)):(ne=120-ie,console.log("insulinFactor set to : "+ne)),tdd_before=C,q<1&&F>1&&(C=F,console.log("Using weighted TDD average: "+o(C,2)+" U, instead of past 24 h ("+o(tdd_before,2)+" U), weight: "+q),re=", Weighted TDD: "+o(C,2)+" U");var se="";if(D)if(N){const e=P,r=k-e;var le=k-1;1==k&&(le=k+.01-1);const t=.0555*(L-p)*H*Q+Math.log10(1/le-e/le)/Math.log10(Math.E);de=r/(1+Math.exp(-t))+e,ee=", Sigmoid function"}else{var de=j*z*C*Math.log(L/ne+1)/1800;ee=", Logarithmic formula"}var ue="",me="";if(D&&C>0){ue=", Dynamic ISF: On",de>k?(K=", Dynamic ISF limited by autosens_max setting: "+k+" ("+o(de,2)+"), ",me=", Autosens/Dynamic Limit: "+k+" ("+o(de,2)+")",de=k):de
-.5?"+"+o(e.delta,0):o(e.delta,0);var _e=Math.min(e.delta,e.short_avgdelta),xe=Math.min(e.short_avgdelta,e.long_avgdelta),Se=Math.max(e.delta,e.short_avgdelta,e.long_avgdelta);if((Me<=10||38===Me||fe>=3)&&(ce.reason="CGM is calibrating, in ??? state, or noise is high"),Me>60&&0==e.delta&&e.short_avgdelta>-1&&e.short_avgdelta<1&&e.long_avgdelta>-1&&e.long_avgdelta<1&&"fakecgm"==e.device&&(console.error("CGM data is unchanged ("+n(Me,i)+"+"+n(e.delta,i)+") for 5m w/ "+n(e.short_avgdelta,i)+" mg/dL ~15m change & "+n(e.long_avgdelta,2)+" mg/dL ~45m change"),console.error("Simulator mode detected ("+e.device+"): continuing anyway")),pe>12||pe<-5?ce.reason="If current system time "+I+" is correct, then BG data is too old. The last BG data was read "+pe+"m ago at "+be:0===e.short_avgdelta&&0===e.long_avgdelta&&(e.last_cal&&e.last_cal<3?ce.reason="CGM was just calibrated":ce.reason="CGM data is unchanged ("+n(Me,i)+"+"+n(e.delta,i)+") for 5m w/ "+n(e.short_avgdelta,i)+" mg/dL ~15m change & "+n(e.long_avgdelta,i)+" mg/dL ~45m change"),Me<=10||38===Me||fe>=3||pe>12||pe<-5||0===e.short_avgdelta&&0===e.long_avgdelta)return r.rate>=ve?(ce.reason+=". Canceling high temp basal of "+r.rate,ce.deliverAt=ge,ce.temp="absolute",ce.duration=0,ce.rate=0,ce):0===r.rate&&r.duration>30?(ce.reason+=". Shortening "+r.duration+"m long zero temp to 30m. ",ce.deliverAt=ge,ce.temp="absolute",ce.duration=30,ce.rate=0,ce):(ce.reason+=". Temp "+r.rate+" <= current basal "+ve+"U/hr; doing nothing. ",ce);var ye,Ge,we,Ce,Oe=i.max_iob;if(void 0!==p&&(Ge=p),void 0!==i.max_bg&&(we=p),void 0!==i.enableSMB_high_bg_target&&(Ce=i.enableSMB_high_bg_target),void 0===p)return ce.error="Error: could not determine target_bg. ",ce;ye=p;var Ue,De=i.exercise_mode||i.high_temptarget_raises_sensitivity,Te=100;if(Ue=i.half_basal_exercise_target,De&&i.temptargetSet&&ye>Te||i.low_temptarget_lowers_sensitivity&&i.temptargetSet&&ye=ye&&sensitivityRatio0&&(process.stderr.write("TDD-adjustment of basals activated, using tdd24h_14d_Ratio "+o(Q,2)+", TDD 24h = "+o(tdd_before,2)+"U, Weighted average TDD = "+o(F,2)+"U, (Weight percentage = "+q+"), Total data of TDDs (up to 14 days) average = "+o(W,2)+"U. "),ve!==he*R?process.stderr.write("Adjusting basal from "+he*R+" U/h to "+ve+" U/h; "):process.stderr.write("Basal unchanged: "+ve+" U/h; "))),i.temptargetSet);else if(void 0!==s&&s&&(i.sensitivity_raises_target&&s.ratio<1||i.resistance_lowers_target&&s.ratio>1)){Ge=o((Ge-60)/s.ratio)+60,we=o((we-60)/s.ratio)+60;var Ie=o((ye-60)/s.ratio)+60;ye===(Ie=Math.max(80,Ie))?process.stderr.write("target_bg unchanged: "+n(Ie,i)+"; "):process.stderr.write("target_bg from "+n(Ie,i)+" to "+n(Ie,i)+"; "),ye=Ie}var Fe=n(ye,i);ye!=p&&(Fe=0!==M&&6!==M&&M!==ye?n(p,i)+"→"+n(M,i)+"→"+n(ye,i):n(p,i)+"→"+n(ye,i));var Re=200,je=200,Ee=200;if(e.noise>=2){var qe=Math.max(1.1,i.noisyCGMTargetMultiplier);Math.min(250,i.maxRaw),Re=o(Math.min(200,Ge*qe)),je=o(Math.min(200,ye*qe)),Ee=o(Math.min(200,we*qe)),process.stderr.write("Raising target_bg for noisy / raw CGM data, from "+n(Ie,i)+" to "+n(je,i)+"; "),Ge=Re,ye=je,we=Ee}A=Ge-.5*(Ge-40),A=Math.min(Math.max(i.threshold_setting,A,60),120),console.error(`Threshold set to ${n(A,i)}`);var We="",Pe=(o(j,1),j);if(void 0!==s&&s&&((Pe=o(Pe=j/sensitivityRatio,1))!==j?process.stderr.write("ISF from "+n(j,i)+" to "+n(Pe,i)):process.stderr.write("ISF unchanged: "+n(Pe,i)),We+="Autosens ratio: "+o(sensitivityRatio,2)+", ISF: "+n(j,i)+"→"+n(Pe,i)),console.error("CR:"+E),void 0===t)return ce.error="Error: iob_data undefined. ",ce;var ke,Le=t;if(t.length,t.length>1&&(t=Le[0]),void 0===t.activity||void 0===t.iob)return ce.error="Error: iob_data missing some property. ",ce;var ze=((ke=void 0!==t.lastTemp?o((new Date(I).getTime()-t.lastTemp.date)/6e4):0)+r.duration)%30;if(console.error("currenttemp:"+r.rate+" lastTempAge:"+ke+"m, tempModulus:"+ze+"m"),ce.temp="absolute",ce.deliverAt=ge,u&&r&&t.lastTemp&&r.rate!==t.lastTemp.rate&&ke>10&&r.duration)return ce.reason="Warning: currenttemp rate "+r.rate+" != lastTemp rate "+t.lastTemp.rate+" from pumphistory; canceling temp",d.setTempBasal(0,0,i,ce,r);if(r&&t.lastTemp&&r.duration>0){var He=ke-t.lastTemp.duration;if(He>5&&ke>10)return ce.reason="Warning: currenttemp running but lastTemp from pumphistory ended "+He+"m ago; canceling temp",d.setTempBasal(0,0,i,ce,r)}var Ne=o(-t.activity*Pe*5,2),Ze=o(6*(_e-Ne));Ze<0&&(Ze=o(6*(xe-Ne)))<0&&(Ze=o(6*(e.long_avgdelta-Ne)));var $e,Je=($e=t.iob>0?o(Me-t.iob*Pe):o(Me-t.iob*Math.min(Pe,j)))+Ze;if(void 0===Je||isNaN(Je))return ce.error="Error: could not calculate eventualBG. Sensitivity: "+Pe+" Deviation: "+Ze,ce;var Ke,Qe=function(e,r,t){return o(t+(e-r)/24,1)}(ye,Je,Ne);ce={temp:"absolute",bg:Me,tick:Be,eventualBG:Je,insulinReq:0,reservoir:m,deliverAt:ge,sensitivityRatio,CR:o(E,1),current_target:ye,insulinForManualBolus:T,manualBolusErrorString:0,minDelta:_e,expectedDelta:Qe,minGuardBG:Ke,minPredBG:fr,threshold:n(A,i)};var Ve=[],Xe=[],Ye=[],er=[];Ve.push(Me),Xe.push(Me),er.push(Me),Ye.push(Me);let rr=!1;f?(console.error("SMBs are always off."),rr=!1):rr=function(e,r,t,a,o,i,s,l){if(s.smbIsScheduledOff){let e=new Date(l.getHours()),r=s.start,t=s.end;if(r=r&&et&&(e>=r||e100?(console.error("SMB disabled due to high temptarget of "+o),!1):!0===t.bwFound&&!1===e.A52_risk_enable?(console.error("SMB disabled due to Bolus Wizard activity in the last 6 hours."),!1):s.shouldProtectDueToHIGH?(console.error("Invalid CGM (HIGH). SMBs disabled."),!1):!0===e.enableSMB_always?(t.bwFound?console.error("Warning: SMB enabled within 6h of using Bolus Wizard: be sure to easy bolus 30s before using Bolus Wizard"):console.error("SMB enabled due to enableSMB_always"),!0):!0===e.enableSMB_with_COB&&t.mealCOB?(t.bwCarbs?console.error("Warning: SMB enabled with Bolus Wizard carbs: be sure to easy bolus 30s before using Bolus Wizard"):console.error("SMB enabled for COB of "+t.mealCOB),!0):!0===e.enableSMB_after_carbs&&t.carbs?(t.bwCarbs?console.error("Warning: SMB enabled with Bolus Wizard carbs: be sure to easy bolus 30s before using Bolus Wizard"):console.error("SMB enabled for 6h after carb entry"),!0):!0===e.enableSMB_with_temptarget&&e.temptargetSet&&o<100?(t.bwFound?console.error("Warning: SMB enabled within 6h of using Bolus Wizard: be sure to easy bolus 30s before using Bolus Wizard"):console.error("SMB enabled for temptarget of "+n(o,e)),!0):!0===e.enableSMB_high_bg&&null!==i&&a>=i?(console.error("Checking BG to see if High for SMB enablement."),console.error("Current BG",a," | High BG ",i),t.bwFound?console.error("Warning: High BG SMB enabled within 6h of using Bolus Wizard: be sure to easy bolus 30s before using Bolus Wizard"):console.error("High BG detected. Enabling SMB."),!0):(console.error("SMB disabled (no enableSMB preferences active or no condition satisfied)"),!1):(console.error("SMB disabled (!microBolusAllowed)"),!1)}(i,u,l,Me,ye,Ce,B,I);var tr,ar=i.enableUAM,or=0;or=o(_e-Ne,1);var nr=o(_e-Ne,1);csf=Pe/E,console.error("profile.sens:"+n(j,i)+", sens:"+n(Pe,i)+", CSF:"+o(csf,1));var ir=o(30*csf*5/60,1);or>ir&&(console.error("Limiting carb impact from "+or+" to "+ir+"mg/dL/5m (30g/h)"),or=ir);var sr=3;sensitivityRatio&&(sr/=sensitivityRatio);var lr=sr;if(l.carbs){sr=Math.max(sr,l.mealCOB/20);var dr=o((new Date(I).getTime()-l.lastCarbTime)/6e4),ur=(l.carbs-l.mealCOB)/l.carbs;lr=o(lr=sr+1.5*dr/60,1),console.error("Last carbs "+dr+" minutes ago; remainingCATime:"+lr+"hours; "+o(100*ur,1)+"% carbs absorbed")}var mr=Math.max(0,or/5*60*lr/2)/csf,cr=90,gr=1;i.remainingCarbsCap&&(cr=Math.min(90,i.remainingCarbsCap)),i.remainingCarbsFraction&&(gr=Math.min(1,i.remainingCarbsFraction));var hr=1-gr,vr=Math.max(0,l.mealCOB-mr-l.carbs*hr),Br=(vr=Math.min(cr,vr))*csf*5/60/(lr/2),br=o(l.slopeFromMaxDeviation,2),pr=o(l.slopeFromMinDeviation,2),Mr=Math.min(br,-pr/3);tr=0===or?0:Math.min(60*lr/5/2,Math.max(0,l.mealCOB*csf/or)),console.error("Carb Impact:"+or+"mg/dL per 5m; CI Duration:"+o(5*tr/60*2,1)+"hours; remaining CI ("+lr/2+"h peak):"+o(Br,1)+"mg/dL per 5m");var fr,_r,xr,Sr,yr,Gr=999,wr=999,Cr=999,Or=999,Ur=999,Dr=999,Tr=999,Ar=Je,Ir=Me,Fr=Me,Rr=0,jr=[],Er=[];try{Le.forEach((function(e){var r=o(-e.activity*Pe*5,2),t=o(-e.iobWithZeroTemp.activity*Pe*5,2),a=$e,n=or*(1-Math.min(1,Xe.length/12));!0===(D&&!N)?(Ar=Xe[Xe.length-1]+o(-e.activity*(1800/(C*z*Math.log(Math.max(Xe[Xe.length-1],39)/ne+1)))*5,2)+n,a=er[er.length-1]+o(-e.iobWithZeroTemp.activity*(1800/(C*z*Math.log(Math.max(er[er.length-1],39)/ne+1)))*5,2),console.log("Dynamic ISF (Logarithmic Formula) )adjusted predictions for IOB and ZT: IOBpredBG: "+o(Ar,2)+" , ZTpredBG: "+o(a,2))):(Ar=Xe[Xe.length-1]+r+n,a=er[er.length-1]+t);var i=Math.max(0,Math.max(0,or)*(1-Ve.length/Math.max(2*tr,1))),s=Math.min(Ve.length,12*lr-Ve.length),l=Math.max(0,s/(lr/2*12)*Br);jr.push(o(l,0)),Er.push(o(i,0)),COBpredBG=Ve[Ve.length-1]+r+Math.min(0,n)+i+l;var d=Math.max(0,nr+Ye.length*Mr),u=Math.max(0,nr*(1-Ye.length/Math.max(36,1))),m=Math.min(d,u);m>0&&(Rr=o(5*(Ye.length+1)/60,1)),!0===(D&&!N)?(UAMpredBG=Ye[Ye.length-1]+o(-e.activity*(1800/(C*z*Math.log(Math.max(Ye[Ye.length-1],39)/ne+1)))*5,2)+Math.min(0,n)+m,console.log("Dynamic ISF (Logarithmic Formula) adjusted prediction for UAM: UAMpredBG: "+o(UAMpredBG,2))):UAMpredBG=Ye[Ye.length-1]+r+Math.min(0,n)+m,Xe.length<48&&Xe.push(Ar),Ve.length<48&&Ve.push(COBpredBG),Ye.length<48&&Ye.push(UAMpredBG),er.length<48&&er.push(a),COBpredBG18&&ArIr&&(Ir=Ar),(tr||Br>0)&&Ve.length>18&&COBpredBG0)&&COBpredBG>Ir&&(Fr=COBpredBG),ar&&Ye.length>12&&UAMpredBGIr&&UAMpredBG}))}catch(e){console.error("Problem with iobArray. Optional feature Advanced Meal Assist disabled")}l.mealCOB&&(console.error("predCIs (mg/dL/5m):"+Er.join(" ")),console.error("remainingCIs: "+jr.join(" "))),ce.predBGs={},Xe.forEach((function(e,r,t){t[r]=o(Math.min(401,Math.max(39,e)))}));for(var qr=Xe.length-1;qr>12&&Xe[qr-1]===Xe[qr];qr--)Xe.pop();for(ce.predBGs.IOB=Xe,xr=o(Xe[Xe.length-1]),er.forEach((function(e,r,t){t[r]=o(Math.min(401,Math.max(39,e)))})),qr=er.length-1;qr>6&&!(er[qr-1]>=er[qr]||er[qr]<=ye);qr--)er.pop();if(ce.predBGs.ZT=er,o(er[er.length-1]),l.mealCOB>0&&(or>0||Br>0)){for(Ve.forEach((function(e,r,t){t[r]=o(Math.min(1500,Math.max(39,e)))})),qr=Ve.length-1;qr>12&&Ve[qr-1]===Ve[qr];qr--)Ve.pop();ce.predBGs.COB=Ve,Sr=o(Ve[Ve.length-1]),Je=Math.max(Je,o(Ve[Ve.length-1])),console.error("COBpredBG: "+o(Ve[Ve.length-1]))}if(or>0||Br>0){if(ar){for(Ye.forEach((function(e,r,t){t[r]=o(Math.min(401,Math.max(39,e)))})),qr=Ye.length-1;qr>12&&Ye[qr-1]===Ye[qr];qr--)Ye.pop();ce.predBGs.UAM=Ye,yr=o(Ye[Ye.length-1]),Ye[Ye.length-1]&&(Je=Math.max(Je,o(Ye[Ye.length-1])))}ce.eventualBG=Je}console.error("UAM Impact:"+nr+"mg/dL per 5m; UAM Duration:"+Rr+"hours"),Gr=Math.max(39,Gr),wr=Math.max(39,wr),Cr=Math.max(39,Cr),fr=o(Gr);var Wr=l.mealCOB/l.carbs;_r=o(Cr<999&&wr<999?(1-Wr)*UAMpredBG+Wr*COBpredBG:wr<999?(Ar+COBpredBG)/2:Cr<999?(Ar+UAMpredBG)/2:Ar),Tr>_r&&(_r=Tr),Ke=o(Ke=tr||Br>0?ar?Wr*Or+(1-Wr)*Ur:Or:ar?Ur:Dr);var Pr=Cr;if(TrCr&&(Pr=(Cr+Tr)/2);if(Pr=o(Pr),l.carbs)if(!ar&&wr<999)fr=o(Math.max(Gr,wr));else if(wr<999){var Lr=Wr*wr+(1-Wr)*Pr;fr=o(Math.max(Gr,wr,Lr))}else fr=ar?Pr:Ke;else ar&&(fr=o(Math.max(Gr,Pr)));fr=Math.min(fr,_r),process.stderr.write("minPredBG: "+fr+" minIOBPredBG: "+Gr+" minZTGuardBG: "+Tr),wr<999&&process.stderr.write(" minCOBPredBG: "+wr),Cr<999&&process.stderr.write(" minUAMPredBG: "+Cr),console.error(" avgPredBG:"+_r+" COB/Carbs:"+l.mealCOB+"/"+l.carbs),Fr>Me&&(fr=Math.min(fr,Fr)),ce.COB=l.mealCOB,ce.IOB=t.iob,ce.BGI=n(Ne,i),ce.deviation=n(Ze,i),ce.ISF=n(Pe,i),ce.CR=o(E,1),ce.target_bg=n(ye,i),ce.current_target=o(ye,0),ce.reason=We+", COB: "+ce.COB+", Dev: "+ce.deviation+", BGI: "+ce.BGI+", CR: "+ce.CR+", Target: "+Fe+", minPredBG "+n(fr,i)+", minGuardBG "+n(Ke,i)+", IOBpredBG "+n(xr,i),Sr>0&&(ce.reason+=", COBpredBG "+n(Sr,i)),yr>0&&(ce.reason+=", UAMpredBG "+n(yr,i)),ce.reason+=U,ce.reason+="; ";var zr=$e;zr<40&&(zr=Math.min(Ke,zr));var Hr,Nr=A-zr,Zr=240,$r=240;if(l.mealCOB>0&&(or>0||Br>0)){for(qr=0;qrHr*Me&&(console.error("maxDelta "+n(Se,i)+" > "+100*Hr+"% of BG "+n(Me,i)+" - disabling SMB"),ce.reason+="maxDelta "+n(Se,i)+" > "+100*Hr+"% of BG "+n(Me,i)+" - SMB disabled!, ",rr=!1),console.error("BG projected to remain above "+n(Ge,i)+" for "+Zr+"minutes"),($r<240||Zr<60)&&console.error("BG projected to remain above "+n(A,i)+" for "+$r+"minutes");var Jr=$r,Kr=i.current_basal*R*Pe*Jr/60,Qr=Math.max(0,l.mealCOB-.25*l.carbs),Vr=(Nr-Kr)/csf-Qr;Kr=o(Kr),Vr=o(Vr),console.error("naive_eventualBG:",$e,"bgUndershoot:",Nr,"zeroTempDuration:",Jr,"zeroTempEffect:",Kr,"carbsReq:",Vr),"Could not parse clock data"==l.reason?console.error("carbsReq unknown: Could not parse clock data"):Vr>=i.carbsReqThreshold&&$r<=45&&(ce.carbsReq=Vr,ce.reason+=Vr+" add'l carbs req w/in "+$r+"m; ");var Xr=0;if(Me0&&_e>Qe)ce.reason+="IOB "+t.iob+" < "+o(-i.current_basal*R*20/60,2),ce.reason+=" and minDelta "+n(_e,i)+" > expectedDelta "+n(Qe,i)+"; ";else if(Me=55){if(!rr)return ce.reason+="; Canceling temp at "+(60-ce.deliverAt.getMinutes())+"min before turn of the hour to avoid beeping of MDT. SMB are disabled anyways.",d.setTempBasal(0,0,i,ce,r);console.error(60-ce.deliverAt.getMinutes()+"min before turn of the hour, but SMB's are enabled - not skipping neutral temps.")}var Yr=0,et=ve,rt=0;if(JeQe&&_e>0&&!Vr)return $e<40?(ce.reason+=", naive_eventualBG < 40. ",d.setTempBasal(0,30,i,ce,r)):(e.delta>_e?ce.reason+=", but Delta "+n(Be,i)+" > expectedDelta "+n(Qe,i):ce.reason+=", but Min. Delta "+_e.toFixed(2)+" > Exp. Delta "+n(Qe,i),r.duration>15&&a(ve,i)===a(r.rate,i)?(ce.reason+=", temp "+r.rate+" ~ req "+ve+"U/hr. ",ce):(ce.reason+="; setting current basal of "+ve+" as temp. ",d.setTempBasal(ve,30,i,ce,r)));Yr=o(Yr=2*Math.min(0,(Je-ye)/Pe),2);var tt=Math.min(0,($e-ye)/Pe);tt=o(tt,2),_e<0&&_e>Qe&&(Yr=o(Yr*(_e/Qe),2)),et=a(et=ve+2*Yr,i),rt=r.duration*(r.rate-ve)/60;var at=Math.min(Yr,tt);if(console.log("naiveInsulinReq:"+tt),rt5&&et>=.8*r.rate)return ce.reason+=", temp "+r.rate+" ~< req "+et+"U/hr. ",ce;if(et<=0){if((Xr=o((Nr=ye-$e)/Pe*60/i.current_basal*R))<0?Xr=0:(Xr=30*o(Xr/30),Xr=Math.min(120,Math.max(0,Xr))),Xr>0)return ce.reason+=", setting "+Xr+"m zero temp. ",d.setTempBasal(et,Xr,i,ce,r)}else ce.reason+=", setting "+et+"U/hr. ";return d.setTempBasal(et,30,i,ce,r)}if(_e=2||Qe+-1*_e>=2)&&(ce.manualBolusErrorString=_e>=0&&Qe>0?3:_e<0&&Qe<=0||_e<0&&Qe>=0?4:5),ce.insulinForManualBolus=o((ce.eventualBG-ce.target_bg)/Pe,2),!u||!rr))return e.delta<_e?ce.reason+="Eventual BG "+n(Je,i)+" > "+n(Ge,i)+" but Delta "+n(Be,i)+" < Exp. Delta "+n(Qe,i):ce.reason+="Eventual BG "+n(Je,i)+" > "+n(Ge,i)+" but Min. Delta "+_e.toFixed(2)+" < Exp. Delta "+n(Qe,i),r.duration>15&&a(ve,i)===a(r.rate,i)?(ce.reason+=", temp "+r.rate+" ~ req "+ve+"U/hr. ",ce):(ce.reason+="; setting current basal of "+ve+" as temp. ",d.setTempBasal(ve,30,i,ce,r));if(Math.min(Je,fr)Ge&&(ce.manualBolusErrorString=6,ce.insulinForManualBolus=o((ce.eventualBG-ce.target_bg)/Pe,2)),ce.minPredBG=fr,!u||!rr))return ce.reason+=n(Je,i)+"-"+n(fr,i)+" in range: no temp required",r.duration>15&&a(ve,i)===a(r.rate,i)?(ce.reason+=", temp "+r.rate+" ~ req "+ve+"U/hr. ",ce):(ce.reason+="; setting current basal of "+ve+" as temp. ",d.setTempBasal(ve,30,i,ce,r));if(Je>=we&&(ce.reason+="Eventual BG "+n(Je,i)+" >= "+n(we,i)+", ",Je>we&&(ce.insulinForManualBolus=o((Je-ye)/Pe,2))),t.iob>Oe)return ce.reason+="IOB "+o(t.iob,2)+" > max_iob "+Oe,r.duration>15&&a(ve,i)===a(r.rate,i)?(ce.reason+=", temp "+r.rate+" ~ req "+ve+"U/hr. ",ce):(ce.reason+="; setting current basal of "+ve+" as temp. ",d.setTempBasal(ve,30,i,ce,r));Yr=o((Math.min(fr,Je)-ye)/Pe,2),T=o((Je-ye)/Pe,2),Yr>Oe-t.iob?(console.error("SMB limited by maxIOB: "+Oe-t.iob+" (. insulinReq: "+Yr+" U)"),ce.reason+="max_iob "+Oe+", ",Yr=Oe-t.iob):console.error("SMB not limited by maxIOB ( insulinReq: "+Yr+" U)."),T>Oe-t.iob?(console.error("Ev. Bolus limited by maxIOB: "+Oe-t.iob+" (. insulinForManualBolus: "+T+" U)"),ce.reason+="max_iob "+Oe+", "):console.error("Ev. Bolus would not be limited by maxIOB ( insulinForManualBolus: "+T+" U)."),et=a(et=ve+2*Yr,i),Yr=o(Yr,3),ce.insulinReq=Yr;var ot=o((new Date(I).getTime()-t.lastBolusTime)/6e4,1);if(u&&rr&&Me>A){var nt=30;void 0!==i.maxSMBBasalMinutes&&(nt=i.maxSMBBasalMinutes);var it=30;void 0!==i.maxUAMSMBBasalMinutes&&(it=i.maxUAMSMBBasalMinutes),B.useOverride&&_&&G!==nt&&(console.error("SMB Max Minutes - setting overriden from "+nt+" to "+G),nt=G),B.useOverride&&_&&w!==it&&(console.error("UAM Max Minutes - setting overriden from "+it+" to "+w),it=w);var st=o(l.mealCOB/E,3),lt=0;void 0===nt?(lt=o(i.current_basal*R*30/60,1),console.error("smbMinutesSetting undefined: defaulting to 30m"),Yr>lt&&console.error("SMB limited by maxBolus: "+lt+" ( "+Yr+" U)")):t.iob>st&&t.iob>0?(console.error("IOB"+t.iob+"> COB"+l.mealCOB+"; mealInsulinReq ="+st),it?(console.error("maxUAMSMBBasalMinutes: "+it+", profile.current_basal: "+i.current_basal*R),lt=o(i.current_basal*R*it/60,1)):(console.error("maxUAMSMBBasalMinutes undefined: defaulting to 30m"),lt=o(i.current_basal*R*30/60,1)),Yr>lt?console.error("SMB limited by maxUAMSMBBasalMinutes [ "+it+"m ]: "+lt+"U ( "+Yr+"U )"):console.error("SMB is not limited by maxUAMSMBBasalMinutes. ( insulinReq: "+Yr+"U )")):(console.error(".maxSMBBasalMinutes: "+nt+", profile.current_basal: "+i.current_basal*R),Yr>(lt=o(i.current_basal*R*nt/60,1))?console.error("SMB limited by maxSMBBasalMinutes: "+nt+"m ]: "+lt+"U ( insulinReq: "+Yr+"U )"):console.error("SMB is not limited by maxSMBBasalMinutes. ( insulinReq: "+Yr+"U )"));var dt=i.bolus_increment,ut=1/dt,mt=Math.min(i.smb_delivery_ratio,1);.5!=mt&&console.error("SMB Delivery Ratio changed from default 0.5 to "+o(mt,2));var ct=Math.min(Yr*mt,lt);ct=Math.floor(ct*ut)/ut,Xr=o((ye-($e+Gr)/2)/Pe*60/i.current_basal*R),Yr>0&&ct=30?(Xr=30*o(Xr/30),Xr=Math.min(60,Math.max(0,Xr))):(gt=o(ve*Xr/30,2),Xr=30),ce.reason+=" insulinReq "+Yr,ct>=lt&&(ce.reason+="; maxBolus "+lt),Xr>0&&(ce.reason+="; setting "+Xr+"m low temp of "+gt+"U/h"),ce.reason+=". ";var ht=3;i.SMBInterval&&(ht=Math.min(10,Math.max(1,i.SMBInterval)));var vt=o(ht-ot,0),Bt=o(60*(ht-ot),0)%60;if(console.error("naive_eventualBG "+$e+","+Xr+"m "+gt+"U/h temp needed; last bolus "+ot+"m ago; maxBolus: "+lt),ot>ht?ct>0&&(ce.units=ct,ce.reason+="Microbolusing "+ct+"U. "):ce.reason+="Waiting "+vt+"m "+Bt+"s to microbolus again. ",Xr>0)return ce.rate=gt,ce.duration=Xr,ce}var bt=d.getMaxSafeBasal(i);return B.shouldProtectDueToHIGH?d.setTempBasal(i.current_basal,30,i,ce,r):(et>bt&&(ce.reason+="adj. req. rate: "+et+" to maxSafeBasal: "+o(bt,2)+", ",et=a(bt,i)),(rt=r.duration*(r.rate-ve)/60)>=2*Yr?(ce.reason+=r.duration+"m@"+r.rate.toFixed(2)+" > 2 * insulinReq. Setting temp basal of "+et+"U/hr. ",d.setTempBasal(et,30,i,ce,r)):void 0===r.duration||0===r.duration?(ce.reason+="no temp, setting "+et+"U/hr. ",d.setTempBasal(et,30,i,ce,r)):r.duration>5&&a(et,i)<=a(r.rate,i)?(ce.reason+="temp "+r.rate+" >~ req "+et+"U/hr. ",ce):(ce.reason+="temp "+r.rate+"<"+et+"U/hr. ",d.setTempBasal(et,30,i,ce,r)))}},3531:(e,r,t)=>{var a=t(2296);e.exports=function(e,r){var t=20;return void 0!==r&&"string"==typeof r.model&&(a(r.model,"54")||a(r.model,"23"))&&(t=40),e<1?Math.round(e*t)/t:e<10?Math.round(20*e)/20:Math.round(10*e)/10}},1873:(e,r,t)=>{var a=t(9325).Symbol;e.exports=a},4932:e=>{e.exports=function(e,r){for(var t=-1,a=null==e?0:e.length,o=Array(a);++t{e.exports=function(e,r,t){return e==e&&(void 0!==t&&(e=e<=t?e:t),void 0!==r&&(e=e>=r?e:r)),e}},2552:(e,r,t)=>{var a=t(1873),o=t(659),n=t(9350),i=a?a.toStringTag:void 0;e.exports=function(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":i&&i in Object(e)?o(e):n(e)}},7556:(e,r,t)=>{var a=t(1873),o=t(4932),n=t(6449),i=t(4394),s=a?a.prototype:void 0,l=s?s.toString:void 0;e.exports=function e(r){if("string"==typeof r)return r;if(n(r))return o(r,e)+"";if(i(r))return l?l.call(r):"";var t=r+"";return"0"==t&&1/r==-1/0?"-0":t}},4128:(e,r,t)=>{var a=t(1800),o=/^\s+/;e.exports=function(e){return e?e.slice(0,a(e)+1).replace(o,""):e}},4840:(e,r,t)=>{var a="object"==typeof t.g&&t.g&&t.g.Object===Object&&t.g;e.exports=a},659:(e,r,t)=>{var a=t(1873),o=Object.prototype,n=o.hasOwnProperty,i=o.toString,s=a?a.toStringTag:void 0;e.exports=function(e){var r=n.call(e,s),t=e[s];try{e[s]=void 0;var a=!0}catch(e){}var o=i.call(e);return a&&(r?e[s]=t:delete e[s]),o}},9350:e=>{var r=Object.prototype.toString;e.exports=function(e){return r.call(e)}},9325:(e,r,t)=>{var a=t(4840),o="object"==typeof self&&self&&self.Object===Object&&self,n=a||o||Function("return this")();e.exports=n},1800:e=>{var r=/\s/;e.exports=function(e){for(var t=e.length;t--&&r.test(e.charAt(t)););return t}},2296:(e,r,t)=>{var a=t(7133),o=t(7556),n=t(1489),i=t(3222);e.exports=function(e,r,t){e=i(e),r=o(r);var s=e.length,l=t=void 0===t?s:a(n(t),0,s);return(t-=r.length)>=0&&e.slice(t,l)==r}},6449:e=>{var r=Array.isArray;e.exports=r},3805:e=>{e.exports=function(e){var r=typeof e;return null!=e&&("object"==r||"function"==r)}},346:e=>{e.exports=function(e){return null!=e&&"object"==typeof e}},4394:(e,r,t)=>{var a=t(2552),o=t(346);e.exports=function(e){return"symbol"==typeof e||o(e)&&"[object Symbol]"==a(e)}},7400:(e,r,t)=>{var a=t(6993),o=1/0;e.exports=function(e){return e?(e=a(e))===o||e===-1/0?17976931348623157e292*(e<0?-1:1):e==e?e:0:0===e?e:0}},1489:(e,r,t)=>{var a=t(7400);e.exports=function(e){var r=a(e),t=r%1;return r==r?t?r-t:r:0}},6993:(e,r,t)=>{var a=t(4128),o=t(3805),n=t(4394),i=/^[-+]0x[0-9a-f]+$/i,s=/^0b[01]+$/i,l=/^0o[0-7]+$/i,d=parseInt;e.exports=function(e){if("number"==typeof e)return e;if(n(e))return NaN;if(o(e)){var r="function"==typeof e.valueOf?e.valueOf():e;e=o(r)?r+"":r}if("string"!=typeof e)return 0===e?e:+e;e=a(e);var t=s.test(e);return t||l.test(e)?d(e.slice(2),t?2:8):i.test(e)?NaN:+e}},3222:(e,r,t)=>{var a=t(7556);e.exports=function(e){return null==e?"":a(e)}}},r={};function t(a){var o=r[a];if(void 0!==o)return o.exports;var n=r[a]={exports:{}};return e[a](n,n.exports,t),n.exports}t.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}();var a=t(2982);trio_determineBasal=a})();