{"version":3,"file":"bundle-chameleon_src_utility_K.xxxxxxxxxxxxxxxxxxxx.js","mappings":";;;;;;;;;;;;;;;;AAAmE;AAGnE,MAAMI,YAAY,GAAG;EACnBC,UAAU,EAAE;IAAEC,UAAU,EAAE,KAAK;IAAEC,SAAS,EAAE;EAAM,CAAC;EACnDC,cAAc,EAAE,CAAC;AACnB,CAAC;AAED,MAAMC,iBAAiB,gBAAGN,oDAAa,CAErCO,SAAS,CAAC;AAEL,MAAMC,gBAAgB,GAAGA,CAAA,KAC9BT,iDAAU,CAACO,iBAAiB,CAAwC;AAE/D,MAAMG,sBAAgC,GAAIC,KAAK,IAAK;EACzD,MAAM,CAAC;IAAER,UAAU;IAAEG;EAAe,CAAC,EAAEM,QAAQ,CAAC,GAC9Cb,+CAAQ,CAAcG,YAAY,CAAC;EACrC,MAAMW,cAAc,GAAIC,OAAoB,IAAKF,QAAQ,CAACE,OAAO,CAAC;EAElE,oBACEhB,gDAAA,CAACS,iBAAiB,CAACS,QAAQ;IACzBC,KAAK,EAAE;MAAEd,UAAU;MAAEG,cAAc;MAAEO;IAAe;EAAE,GAErDF,KAAK,CAACO,QACmB,CAAC;AAEjC,CAAC;AAED,iEAAeR,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;AC7BI;AACC;AAChB;AACA;AACyB;AAClB;AAMhB;AACoD;AAErE,MAAMkB,GAAG,GAAGC,SAAwC;AAEpD,MAAME,cAA+B,GAAIpB,KAAK,IAAK;EACjD,MAAM;IAAEqB,eAAe;IAAEC,QAAQ;IAAEC,QAAQ;IAAEC,OAAO,GAAG,CAAC;EAAE,CAAC,GAAGxB,KAAK;EACnE,MAAM;IAAEyB;EAAG,CAAC,GAAGF,QAAQ;EACvB,MAAM;IAAEG,SAAS;IAAEC;EAAU,CAAC,GAAGF,EAAE;EACnC,MAAM;IAAEvB;EAAe,CAAC,GAAGJ,0DAAgB,CAAC,CAAC;EAE7C,MAAM8B,sBAAsB,GAAGA,CAAA,KAAM;IACnC;IACA;IACA,MAAMC,mBAAmB,GAAGnB,4CAAK,CAAC,CAAC,CAACoB,EAAE,CAAC,kBAAkB,CAAC,CAACC,IAAI,CAAC,CAAC;IACjE,OAAOF,mBAAmB,IAAI,CAAC,IAAIA,mBAAmB,IAAI,EAAE;EAC9D,CAAC;EACD,MAAMG,mBAAmB,GAAGJ,sBAAsB,CAAC,CAAC;EACpD,MAAMK,QAAQ,GAAGlB,uDAAe,CAACQ,QAAQ,CAAC;EAE1C,MAAMW,eAAe,GAAGA,CAAA,KAAM;IAC5B,MAAMC,OAAO,GAAGR,SAAS,CAACS,MAAM,GAAGT,SAAS,CAAC,CAAC,CAAC,CAACU,aAAa,GAAG,IAAI;IACpE,MAAMC,OAAO,GAAGX,SAAS,CAACS,MAAM,GAAGT,SAAS,CAAC,CAAC,CAAC,CAACY,IAAI,GAAG,IAAI;IAC3DC,MAAM,CAACC,cAAc,CAACC,IAAI,CAAC;MACzBC,OAAO,EAAE;QACPC,IAAI,EAAEX,QAAQ;QACdY,GAAG,EAAE;UACHC,IAAI,EAAEX,OAAO;UACbI,IAAI,EAAED;QACR;MACF,CAAC;MACDS,WAAW,EAAE;QACXC,QAAQ,EAAE;UACRC,EAAE,EAAE5B,eAAe;UACnBwB,GAAG,EAAE;YACHC,IAAI,EAAEX,OAAO;YACbI,IAAI,EAAED;UACR;QACF,CAAC;QACDN,mBAAmB,EAAEA,mBAAmB,GAAG,GAAG,GAAG,GAAG;QACpDN;MACF;IACF,CAAC,CAAC;EACJ,CAAC;EAED,MAAMwB,cAAc,GAAGA,CAAA,KAAM;IAC3B;IACA,IAAIV,MAAM,CAACW,YAAY,CAACC,OAAO,CAAC,YAAY,CAAC,KAAK,MAAM,IAAInC,GAAG,IAAI,KAAK,EAAE;MACxE,OAAO,IAAI;IACb;IAEA,MAAMoC,GAAG,GACPrD,KAAK,CAACqD,GAAG,IAAI/B,QAAQ,CAACgC,QAAQ,CAACC,QAAQ,CAAC,QAAQ,CAAC,GAAG,OAAO,GAAG,KAAK;IACrE,MAAMC,UAAU,GAAGhC,OAAO,CAACgC,UAAU,GAAGhC,OAAO,CAACgC,UAAU,GAAG,WAAW;IACxE,OAAOhC,OAAO,CAACgC,UAAU;IACzB,MAAMC,YAAY,GAAG5C,mDAAK,CACxB;MACEwC,GAAG;MACHK,MAAM,EAAE;QACNC,MAAM,EAAErC,QAAQ,CAACgC;MACnB,CAAC;MACDE,UAAU;MACVvC,GAAG,EAAEH,4CAAQ,CAACG,GAAG,CAAC;MAClB2C,SAAS,EAAE3B,QAAQ;MACnB4B,CAAC,EAAE;IACL,CAAC,EACDrC,OACF,CAAC;IAED,IAAKC,EAAE,IAAIA,EAAE,CAACqC,MAAM,IAAIrC,EAAE,CAACqC,MAAM,KAAK,CAAC,IAAKtC,OAAO,EAAE;MACnDb,6CAAK,CACFoD,IAAI,CAACC,wCAAyB,EAAEP,YAAY,CAAC,CAC7CQ,IAAI,CAAC,MAAM;QACV,IAAIhD,GAAG,KAAK,MAAM,EAAE;UAClB;UACAiD,OAAO,CAACtD,GAAG,CAAC,2BAA2BE,4CAAQ,CAACG,GAAG,CAAC,EAAE,CAAC;QACzD;MACF,CAAC,CAAC,CACDkD,KAAK,CAAEC,KAAK,IAAKxD,4EAAG,CAAC,OAAO,EAAEwD,KAAK,CAAC,CAAC;IAC1C;EACF,CAAC;EAED5D,gDAAS,CAAC,MAAM;IACdgC,MAAM,CAACC,cAAc,GAAGD,MAAM,CAACC,cAAc,IAAI,EAAE;IACnD;IACAzB,sEAA8B,CAAC,CAAC,CAC7BiD,IAAI,CAAC/D,cAAc,CAAC,CACpBiE,KAAK,CAAEE,CAAC,IAAK;MACZ;MACA,IACE,EACEpD,GAAG,IAAI,KAAK,IACZoD,CAAC,CAACC,QAAQ,CAAC,CAAC,KAAK,qCAAqC,CACvD,EAED,MAAMD,CAAC;IACX,CAAC,CAAC;EACN,CAAC,EAAE,EAAE,CAAC;EAEN7D,gDAAS,CAAC,MAAM;IACd0C,cAAc,CAAC,CAAC;IAChBhB,eAAe,CAAC,CAAC;EACnB,CAAC,EAAE,CAACZ,QAAQ,CAACgC,QAAQ,CAAC,CAAC;EAEvB,OAAO,IAAI;AACb,CAAC;AAEiC;AAElC,iEAAe7C,wDAAU,CAACW,cAAc,CAAC;;;;;;;;;;;;;;;;;ACxHyB;AAI3D,MAAMN,QAAQ,GAAG;EACtB0D,GAAG,EAAE,aAAa;EAClBC,IAAI,EAAE,YAAY;EAClBC,OAAO,EAAE,SAAS;EAClBC,IAAI,EAAE,aAAa;EACnBC,GAAG,EAAE;AACP,CAAC;;AAED;AACA;AACA;AACA;AACA;AACO,MAAM7D,eAAe,GAAIQ,QAAkB,IAAK;EACrD,MAAM;IAAEsD,MAAM;IAAEC,OAAO;IAAEC,aAAa;IAAEC,SAAS;IAAEC,OAAO;IAAEC,SAAS;IAAEzD;EAAG,CAAC,GACzEF,QAAQ;EAEV,QAAQ,IAAI;IACV,KAAK,CAAC,CAAC4D,KAAc;MACnB,OAAOZ,4EAAS,CAACY,cAAc;IACjC,KAAKN,MAAM;MACT,OAAON,4EAAS,CAACa,IAAI;IACvB,KAAKH,OAAO;MACV,OAAOV,4EAAS,CAACc,KAAK;IACxB,KAAKP,OAAO;MACV,OAAOP,4EAAS,CAACe,KAAK;IACxB,KAAKP,aAAa;MAChB,OAAOR,4EAAS,CAACgB,WAAW;IAC9B,KAAKL,SAAS;MACZ,OAAOX,4EAAS,CAACiB,OAAO;IAC1B,KAAKR,SAAS;MACZ,OAAOT,4EAAS,CAACkB,OAAO;IAC1B,KAAKC,OAAO,CAACjE,EAAE,CAAC;MACd,OAAOA,EAAE,CAACkE,QAAQ,EACdC,MAAM,CAAEhD,IAAY,IAAKA,IAAI,KAAK,SAAS,CAAC,EAC5CiD,IAAI,CAAC,IAAI,CAAC;IAChB;MACE,OAAO,SAAS;EACpB;AACF,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACO,MAAM7E,8BAA8B,GAAG,SAAAA,CAAA;EAAA,IAC5C8E,SAAS,GAAAC,SAAA,CAAA3D,MAAA,QAAA2D,SAAA,QAAAlG,SAAA,GAAAkG,SAAA,MAAG,KAAK;EAAA,OAEjB,IAAIC,OAAO,CAAC,CAACC,OAAO,EAAEC,MAAM,KAAK;IAC/B;IACA,MAAMvG,cAAc,GAAG6C,MAAM,CAAC2D,cAAc,GACxC3D,MAAM,CAAC2D,cAAc,CAACC,GAAG,CAAC,sCAAsC,CAAC,GACjEvG,SAAS;IACb,MAAML,UAAU,GAAGgD,MAAM,CAAC2D,cAAc,GACpC3D,MAAM,CAAC2D,cAAc,CAACC,GAAG,CAAC,kCAAkC,CAAC,GAC7DvG,SAAS;IACb,IACEF,cAAc,IACdH,UAAU,IACV6G,MAAM,CAACC,IAAI,CAAC3G,cAAc,CAAC,CAACyC,MAAM,GAAG,CAAC,IACtCiE,MAAM,CAACC,IAAI,CAAC9G,UAAU,CAAC,CAAC4C,MAAM,GAAG,CAAC,EAClC;MACA,OAAO6D,OAAO,CAAC;QAAEtG,cAAc;QAAEH;MAAW,CAAC,CAAC;IAChD;;IAEA;IACA,MAAM+G,OAAO,GAAGC,UAAU,CAAC,MAAM;MAC/BhE,MAAM,CAACiE,mBAAmB,CACxB,mBAAmB,EACnBC,OACF,CAAC;MACDR,MAAM,CAAC,IAAIS,KAAK,CAAC,8BAA8B,CAAC,CAAC;IACnD,CAAC,EAAEb,SAAS,CAAC;IAEb,SAASY,OAAOA,CAACrC,CAAwB,EAAE;MACzCuC,YAAY,CAACL,OAAO,CAAC;MACrBN,OAAO,CAAC;QACNtG,cAAc,EAAE0E,CAAC,CAACwC,MAAM,EAAElH,cAAc,IAAI,CAAC,CAAC;QAC9CH,UAAU,EAAE6E,CAAC,CAACwC,MAAM,EAAErH;MACxB,CAAC,CAAC;IACJ;IAEAgD,MAAM,CAACsE,gBAAgB,CACrB,mBAAmB,EACnBJ,OAAO,EACP;MAAEK,IAAI,EAAE;IAAK,CACf,CAAC;EACH,CAAC,CAAC;AAAA;;;;;;;;;;;;;;;;AC7FyB;AAE7B,MAAMC,wBAAwB,GAAIC,oBAAoB,IAAK;EACzD,MAAMC,YAAY,GAAGd,iDAAG,CACtBa,oBAAoB,EACpB,4BAA4B,EAC5B,CAAC,CACH,CAAC;EAEDC,YAAY,CAACC,mBAAmB,GAAG;IACjCC,YAAY,EAAE;EAChB,CAAC;EAEDH,oBAAoB,CAACI,0BAA0B,GAAG;IAChD,GAAGH;EACL,CAAC;EAED,OAAOD,oBAAoB;AAC7B,CAAC;AAED,iEAAeD,wBAAwB;;;;;;;;;;;;;;;ACpBmB;AAO1D,MAAMO,aAAa,GAAIC,QAAkB,IAAcA,QAAQ,CAACC,KAAK,IAAI,KAAK;AAEvE,MAAMC,aAAa,GAAIF,QAAkB,IAAc;EAC5D,IAAIA,QAAQ,CAACvE,EAAE,KAAKqE,oEAAM,EAAE;IAC1B,OAAOC,aAAa,CAACC,QAAQ,CAAC;EAChC;EACA,OAAO,KAAK;AACd,CAAC;;;;;;;;;;;;;;;ACdiE;AAElE,MAAMI,oBAAoB,GAAG,MAAAA,CAAOC,MAAM,EAAEC,MAAM,EAAEC,OAAO,KAAK;EAC9D,MAAMC,QAAQ,GAAG,MAAMH,MAAM,CAACI,KAAK,CAAC;IAClCA,KAAK,EAAEN,4EAAyB;IAChCO,WAAW,EAAE,cAAc;IAC3BC,SAAS,EAAE;MACTL,MAAM,EAAEM,MAAM,CAACC,QAAQ,CAACP,MAAM,EAAE,EAAE,CAAC;MACnCC,OAAO,EAAEK,MAAM,CAACC,QAAQ,CAACN,OAAO,EAAE,EAAE;IACtC;EACF,CAAC,CAAC;EACF,OAAOC,QAAQ,IAAIA,QAAQ,CAACM,IAAI;AAClC,CAAC;AAED,iEAAeV,oBAAoB;;;;;;;;;;;;;;;ACd6C;AAEhF,MAAMY,qBAAqB,GAAG,MAAAA,CAAOX,MAAM,EAAEM,SAAS,KAAK;EACzD,MAAMH,QAAQ,GAAG,MAAMH,MAAM,CAACY,MAAM,CAAC;IACnCC,QAAQ,EAAEH,0FAA6B;IACvCL,WAAW,EAAE,cAAc;IAC3BC;EACF,CAAC,CAAC;EACF,MAAM;IAAEK,qBAAqB,EAAE;MAAEG;IAAG,CAAC,GAAG,CAAC;EAAE,CAAC,GACzCX,QAAQ,IAAIA,QAAQ,CAACM,IAAI,IAAK,CAAC,CAAC;EACnC,OAAOK,EAAE;AACX,CAAC;AAED,iEAAeH,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACCM;AACwB;AAE3D,MAAMiB,8BAA8B,GAAIC,SAAS,IACtDN,iGAAmC,CAAC7F,QAAQ,CAAC,CAACmG,SAAS,CAAC;AAEnD,MAAMC,wCAAwC,GAAID,SAAS,IAChE,CAACJ,wEAAU,EAAEC,yEAAW,CAAC,CAAChG,QAAQ,CAAC,CAACmG,SAAS,CAAC;AAEzC,MAAME,yBAAyB,GAAIF,SAAS,IACjDL,kGAAoC,CAACK,SAAS,CAAC,KAAK7J,SAAS;AAExD,MAAMgK,sBAAsB,GAAIH,SAAS,IAC9CL,kGAAoC,CAAC,CAACK,SAAS,CAAC;AAE3C,MAAMI,kCAAkC,GAAG,SAAAA,CAChDJ,SAAS,EACTlC,QAAQ,EACRxC,SAAS,EAEN;EAAA,IADH+E,WAAW,GAAAhE,SAAA,CAAA3D,MAAA,QAAA2D,SAAA,QAAAlG,SAAA,GAAAkG,SAAA,MAAG,KAAK;EAEnB,MAAM9D,QAAQ,GAAG+C,SAAS,GAAGT,4EAAS,CAACkB,OAAO,GAAGlB,4EAAS,CAACiB,OAAO;EAElE,IAAIuE,WAAW,EAAE;IACf,MAAMC,2BAA2B,GAC/BpB,8FAAgC,GAAGpB,QAAQ,CAAC,GAAGvF,QAAQ,CAAC;IAE1D,MAAMgI,mBAAmB,GAAG,CAACD,2BAA2B,IAAI,EAAE,EAAEzG,QAAQ,CACtE,CAACmG,SACH,CAAC;IAED,OAAO,CAACO,mBAAmB;EAC7B;EACA,OAAO,IAAI;AACb,CAAC;AAEM,MAAMC,oBAAoB,GAAGA,CAACR,SAAS,EAAElC,QAAQ,KACtD,EACEqB,qFAAuB,CAACrB,QAAQ,CAAC,IACjC2C,KAAK,CAACC,OAAO,CAACvB,qFAAuB,CAACrB,QAAQ,CAAC,CAAC,KAC/CqB,qFAAuB,CAACrB,QAAQ,CAAC,CAACjE,QAAQ,CAAC,CAACmG,SAAS,CAAC,IACrDb,qFAAuB,CAACrB,QAAQ,CAAC,CAACjE,QAAQ,CAACuF,gFAAkB,CAAC,CAAC,CAClE;AAEI,MAAMuB,sBAAsB,GAAGC,IAAA;EAAA,IAAC;IACrCZ,SAAS;IACT1E,SAAS;IACTuF;EACF,CAAC,GAAAD,IAAA;EAAA,OACCJ,oBAAoB,CAACR,SAAS,EAAEX,4EAAc,CAAC,IAC/Ce,kCAAkC,CAChCJ,SAAS,EACTX,4EAAc,EACd/D,SAAS,EACTuF,qBACF,CAAC;AAAA;AAEI,MAAMC,uBAAuB,GAAGC,KAAA;EAAA,IAAC;IAAEf,SAAS;IAAEa;EAAsB,CAAC,GAAAE,KAAA;EAAA,OAC1EP,oBAAoB,CAACR,SAAS,EAAEV,qEAAO,CAAC,IACxCc,kCAAkC,CAChCJ,SAAS,EACTV,qEAAO,EACP,IAAI,EACJuB,qBACF,CAAC;AAAA;AAEI,MAAMG,6BAA6B,GAAGC,KAAA;EAAA,IAAC;IAAEjB;EAAU,CAAC,GAAAiB,KAAA;EAAA,OACzDT,oBAAoB,CAACR,SAAS,EAAET,qFAAuB,CAAC;AAAA;AAEnD,MAAM2B,uBAAuB,GAAGC,KAAA;EAAA,IAAC;IACtCnB,SAAS;IACT1E,SAAS;IACTuF,qBAAqB;IACrBO;EACF,CAAC,GAAAD,KAAA;EAAA,OACCC,gBAAgB,IAChBhB,kCAAkC,CAChCJ,SAAS,EACTR,4EAAc,EACdlE,SAAS,EACTuF,qBACF,CAAC;AAAA;AAEI,MAAMQ,qBAAqB,GAAGC,KAAA;EAAA,IAAC;IACpCtB,SAAS;IACT1E,SAAS;IACTuF;EACF,CAAC,GAAAS,KAAA;EAAA,OACCd,oBAAoB,CAACR,SAAS,EAAEP,gEAAE,CAAC,IACnCW,kCAAkC,CAChCJ,SAAS,EACTP,gEAAE,EACFnE,SAAS,EACTuF,qBACF,CAAC;AAAA;AAEI,MAAMU,uBAAuB,GAAGC,KAAA;EAAA,IAAC;IAAExB,SAAS;IAAEa;EAAsB,CAAC,GAAAW,KAAA;EAAA,OAC1EhB,oBAAoB,CAACR,SAAS,EAAEV,qEAAO,CAAC,IACxCc,kCAAkC,CAChCJ,SAAS,EACTV,qEAAO,EACP,KAAK,EACLuB,qBACF,CAAC;AAAA;AAEI,MAAMY,+BAA+B,GAAGC,KAAA;EAAA,IAAC;IAC9C1B,SAAS;IACT1E,SAAS;IACTuF;EACF,CAAC,GAAAa,KAAA;EAAA,OACClB,oBAAoB,CAACR,SAAS,EAAEF,sFAAwB,CAAC,IACzDM,kCAAkC,CAChCJ,SAAS,EACTF,sFAAwB,EACxBxE,SAAS,EACTuF,qBACF,CAAC;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AClIkC;AACI;AACf;AACyB;AACe;AACU;;AAE5E;AACA;AACA;AACA;AACA;AACO,MAAMkB,KAAK,GAAG,SAAAA,CAACC,GAAG,EAAwB;EAAA,IAAtBC,aAAa,GAAA5F,SAAA,CAAA3D,MAAA,QAAA2D,SAAA,QAAAlG,SAAA,GAAAkG,SAAA,MAAG,CAAC;EAC1C,MAAM6F,CAAC,GAAG,EAAE,IAAID,aAAa;EAC7B,MAAME,CAAC,GAAGH,GAAG,GAAGE,CAAC,IAAI,CAAC,GAAGxD,MAAM,CAAC0D,OAAO,CAAC;EACxC,OAAOC,IAAI,CAACN,KAAK,CAACI,CAAC,CAAC,GAAGD,CAAC;AAC1B,CAAC;;AAED;AACA;AACA;AACA;AACA;AACO,MAAMI,iBAAiB,GAAG,SAAAA,CAAA;EAAA,IAACC,MAAM,GAAAlG,SAAA,CAAA3D,MAAA,QAAA2D,SAAA,QAAAlG,SAAA,GAAAkG,SAAA,MAAG,EAAE;EAAA,OAC3CkG,MAAM,CAACC,MAAM,CAAC,CAACC,GAAG,EAAEC,GAAG,KAAK;IAC1B,MAAMC,SAAS,GAAGD,GAAG,EAAEC,SAAS;IAChC,IAAIA,SAAS,IAAI,IAAI,EAAE;MACrB,MAAMpJ,EAAE,GAAGqJ,MAAM,CAACD,SAAS,CAAC;MAC5BF,GAAG,CAAClJ,EAAE,CAAC,GAAG;QAAEsJ,KAAK,EAAEH,GAAG,EAAEG,KAAK,IAAI,CAAC;QAAEC,SAAS,EAAEJ,GAAG,EAAEK,QAAQ,IAAI;MAAE,CAAC;IACrE;IACA,OAAON,GAAG;EACZ,CAAC,EAAE,CAAC,CAAC,CAAC;AAAA;AAED,MAAMO,cAAc,CAAC;EAC1BC,WAAWA,CAAA,EAAwC;IAAA,IAAvCC,WAAW,GAAA7G,SAAA,CAAA3D,MAAA,QAAA2D,SAAA,QAAAlG,SAAA,GAAAkG,SAAA,MAAG,EAAE;IAAA,IAAE8G,YAAY,GAAA9G,SAAA,CAAA3D,MAAA,QAAA2D,SAAA,QAAAlG,SAAA,GAAAkG,SAAA,MAAG,IAAI;IAAA+G,eAAA,yBAchC,MAAM,IAAI,CAACC,WAAW;IAAAD,eAAA,6BAElB,MACnB,IAAI,CAACC,WAAW,CAACnH,MAAM,CAAEoH,QAAQ,IAAK;MACpC,IAAIC,oBAAoB,GAAG,KAAK;MAChC,MAAM;QAAEC;MAAS,CAAC,GAAGF,QAAQ;MAC7B,IAAIE,QAAQ,EAAE;QACZ,MAAMC,kBAAkB,GAAG3B,wFAAkB,CAAC0B,QAAQ,CAAC;QACvDD,oBAAoB,GAAGE,kBAAkB,KAAK,GAAG;MACnD;MACA,OAAOH,QAAQ,CAACI,MAAM,KAAK,QAAQ,IAAI,CAACH,oBAAoB;IAC9D,CAAC,CAAC;IAxBF,MAAMI,kBAAkB,GAAGT,WAAW,CAACU,IAAI,CACxCC,UAAU,IAAK,CAACA,UAAU,CAACtK,EAAE,KAAK,CAAC4J,YACtC,CAAC;IAED,IAAIQ,kBAAkB,EAAE;MACtB,MAAM;QAAEN;MAAY,CAAC,GAAGM,kBAAkB;MAC1C,IAAI,CAACN,WAAW,GAAGA,WAAW;MAC9B,IAAI,CAACQ,UAAU,GAAGF,kBAAkB;IACtC,CAAC,MAAM;MACL,IAAI,CAACN,WAAW,GAAG,EAAE;IACvB;EACF;AAcF;AAEO,MAAMS,wBAAwB,GAAIC,gBAAgB,IAAK;EAC5D,MAAM;IAAErL,MAAM,EAAEsL;EAAuB,CAAC,GAAGD,gBAAgB,IAAI,EAAE;EAEjE,IAAIC,sBAAsB,KAAK,CAAC,EAAE;IAChC,OAAO,EAAE;EACX;EAEA,IAAIA,sBAAsB,KAAK,CAAC,EAAE;IAChC,MAAM;MAAEC,SAAS;MAAEC;IAAS,CAAC,GAAGvC,qDAAO,CAACoC,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAACI,CAAC,EAAEC,GAAG,KAClExC,uDAAS,CAACwC,GAAG,CACf,CAAC;IACD,OAAOH,SAAS,IAAIC,QAAQ,GACxB,KAAKD,SAAS,IAAIC,QAAQ,GAAG,GAC7B,KAAKH,gBAAgB,CAAC,CAAC,CAAC,GAAG;EACjC;EAEA,OAAO,KAAKA,gBAAgB,CAACrL,MAAM,YAAY;AACjD,CAAC;;AAED;AACA;AACA;AACA;AACA;AACO,MAAM2L,cAAc,GAAG,SAAAA,CAAA,EAAe;EAAA,IAAdC,IAAI,GAAAjI,SAAA,CAAA3D,MAAA,QAAA2D,SAAA,QAAAlG,SAAA,GAAAkG,SAAA,MAAG,EAAE;EACtC,IAAIkI,WAAW,GAAG,IAAI;EAEtBD,IAAI,CAACE,OAAO,CAAEC,QAAQ,IAAK;IACzB,IAAIA,QAAQ,EAAE;MACZ,IAAI;QACF,IAAI,CAACF,WAAW,EAAE;UAChBA,WAAW,GAAGE,QAAQ;QACxB,CAAC,MAAM;UACL,MAAMC,cAAc,GAAG1N,4CAAK,CAAC,CAAC;UAC9B,MAAM2N,qBAAqB,GAAGD,cAAc,CAACtM,EAAE,CAACqM,QAAQ,CAAC,CAACG,SAAS,CAAC,CAAC;UACrE,MAAMC,wBAAwB,GAAGH,cAAc,CAC5CtM,EAAE,CAACmM,WAAW,CAAC,CACfK,SAAS,CAAC,CAAC;UAEd,IAAID,qBAAqB,GAAGE,wBAAwB,EAAE;YACpDN,WAAW,GAAGE,QAAQ;UACxB;QACF;MACF,CAAC,CAAC,OAAO/J,KAAK,EAAE;QACd;MAAA;IAEJ;EACF,CAAC,CAAC;EAEF,OAAO6J,WAAW;AACpB,CAAC;;AAED;AACA;AACA;AACA;AACO,eAAeO,iBAAiBA,CAACC,OAAO,EAAE;EAC/C,IAAI,CAACA,OAAO,EAAE;IACZ,OAAO7N,4EAAG,CACR,4EACF,CAAC;EACH;EACA,MAAM4B,MAAM,CAACkM,OAAO,EAAEC,cAAc,GAAG,CAACF,OAAO,CAAC,CAAC;AACnD;AAEO,SAASG,uBAAuBA,CAACC,GAAG,EAAE;EAC3C,MAAMJ,OAAO,GAAGK,QAAQ,CAACC,aAAa,CACpC,oCAAoCF,GAAG,IACzC,CAAC;EACDJ,OAAO,IAAID,iBAAiB,CAACC,OAAO,CAAC;AACvC;AAEO,SAASO,4BAA4BA,CAAA,EAAG;EAC7C,IAAIxM,MAAM,CAACkM,OAAO,EAAE;IAClB;EACF;EACA;EACA;EACA,MAAMO,kBAAkB,GAAGH,QAAQ,CAAC1O,aAAa,CAAC,QAAQ,CAAC;EAC3D6O,kBAAkB,CAACC,GAAG,GAAG,qBAAqBC,IAAiB,8BAA8B;EAC7FL,QAAQ,CAACM,IAAI,CAACC,WAAW,CAACJ,kBAAkB,CAAC;EAC7CA,kBAAkB,CAACK,MAAM,GAAG,MAAM;IAChC;IACA9M,MAAM,CAAC+M,aAAa,EAAEC,UAAU,CAAC,CAAC;EACpC,CAAC;AACH;;AAEA;AACA;AACA;AACA;AACA;AACO,MAAMC,UAAU,GAAIC,QAAQ,IAAK;EACtC,MAAMC,gBAAgB,GAAGD,QAAQ,CAACE,KAAK,CAAC,GAAG,CAAC;EAC5C,IAAID,gBAAgB,CAACvN,MAAM,GAAG,CAAC,EAAE;IAC/B,OAAOsN,QAAQ;EACjB;EACA,MAAM9B,QAAQ,GAAG+B,gBAAgB,CAAC,CAAC,CAAC;EACpC,MAAMhC,SAAS,GAAGgC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;EACxC,OAAO,GAAG/B,QAAQ,KAAKD,SAAS,EAAE;AACpC,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO,MAAMkC,SAAS,GAAG,WAAW;AAC7B,MAAMC,sBAAsB,GAAG,wBAAwB;AACvD,MAAMC,aAAa,GAAG,eAAe;AACrC,MAAMC,KAAK,GAAG,OAAO;AACrB,MAAMC,MAAM,GAAG,QAAQ;AACvB,MAAMC,WAAW,GAAG,aAAa;AACjC,MAAMC,MAAM,GAAG,QAAQ;AACvB,MAAMC,mBAAmB,GAAG,qBAAqB;;AAExD;AACA;AACA;AACA;AACA;AACO,MAAMC,cAAc,GAAIhP,eAAe,IAAK;EACjD,MAAMiP,qBAAqB,GAAG;IAC5B,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,CAAC,EAAE,EAAE;IACL,EAAE,EAAE,CAACN,KAAK,EAAEG,MAAM,CAAC;IACnB,EAAE,EAAE,CAACH,KAAK,EAAEG,MAAM,CAAC;IACnB,EAAE,EAAE,CAACH,KAAK,EAAEE,WAAW,EAAEC,MAAM,CAAC;IAChC,EAAE,EAAE,CAACH,KAAK,EAAEE,WAAW,EAAEC,MAAM,CAAC;IAChC,EAAE,EAAE,CAACH,KAAK,EAAEG,MAAM,CAAC;IACnB,EAAE,EAAE,CAACH,KAAK,EAAEE,WAAW,EAAEC,MAAM,CAAC;IAChC,EAAE,EAAE,CAACH,KAAK,EAAEG,MAAM,CAAC;IACnB,EAAE,EAAE,CAACH,KAAK,EAAEE,WAAW,EAAEC,MAAM,CAAC;IAChC,EAAE,EAAE,CAACH,KAAK,EAAEE,WAAW,EAAEC,MAAM,CAAC;IAChC,EAAE,EAAE,CAACH,KAAK,EAAEE,WAAW,EAAEC,MAAM,CAAC;IAChC,EAAE,EAAE,CAACN,SAAS,EAAEE,aAAa,EAAED,sBAAsB,CAAC;IACtD,EAAE,EAAE,EAAE;IACN,GAAG,EAAE,CAACD,SAAS,EAAEI,MAAM,EAAEE,MAAM;EACjC,CAAC;EACD,IAAI5E,4EAAc,CAAChI,QAAQ,CAAC6E,MAAM,CAAC/G,eAAe,CAAC,CAAC,EAAE;IACpD,OAAO,CAAC2O,KAAK,EAAEI,mBAAmB,CAAC;EACrC;EACA,IACE,CAAC/J,MAAM,CAACC,IAAI,CAACgK,qBAAqB,CAAC,CAChCC,GAAG,CAACC,UAAU,CAAC,CACfjN,QAAQ,CAAC6E,MAAM,CAAC/G,eAAe,CAAC,CAAC,EACpC;IACA,OAAO,CAAC2O,KAAK,EAAEC,MAAM,EAAEE,MAAM,CAAC,CAAC,CAAC;EAClC;EAEA,OAAOG,qBAAqB,CAACjP,eAAe,CAAC;AAC/C,CAAC;;AAED;AACA;AACA;AACA;AACA;AACO,SAASoP,4BAA4BA,CAAA,EAAG;EAC7CjO,MAAM,CAACkM,OAAO,GAAGlM,MAAM,CAACkM,OAAO,IAAI,CAAC,CAAC;EACrC,IAAIlM,MAAM,CAACkM,OAAO,CAACgC,cAAc,EAAE;IACjC;EACF;EAEAlO,MAAM,CAACkM,OAAO,CAACgC,cAAc,GAAG,IAAI;EAEpClO,MAAM,CAACkM,OAAO,CAACiC,GAAG,GAAGnO,MAAM,CAACkM,OAAO,CAACiC,GAAG,IAAI,CAAC,CAAC;EAC7CnO,MAAM,CAACkM,OAAO,CAACiC,GAAG,CAACC,UAAU,GAAG,CAC9B,CAAC,KAAK,EAAE,KAAK,CAAC,EACd,CAAC,IAAI,EAAE,IAAI,CAAC,CACb;EACDpO,MAAM,CAACkM,OAAO,CAACiC,GAAG,CAACE,WAAW,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;;EAEjD;EACArO,MAAM,CAACkM,OAAO,CAACiC,GAAG,CAACG,QAAQ,GAAGtO,MAAM,CAACkM,OAAO,CAACiC,GAAG,CAACG,QAAQ,IAAI,CAC3D,MAAM,EACN,KAAK,EACL,YAAY,EACZ,aAAa,EACb,SAAS,EACT,UAAU,EACV,cAAc,EACd,YAAY,CACb;;EAED;EACA;EACAtO,MAAM,CAACkM,OAAO,CAACiC,GAAG,CAACI,MAAM,GAAG;IAC1B,IAAIvO,MAAM,CAACkM,OAAO,CAACiC,GAAG,CAACI,MAAM,IAAI,CAAC,CAAC,CAAC;IACpCC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;IAClBC,MAAM,EAAE,GAAG;IACXC,OAAO,EAAE,CAAC,0BAA0B,EAAE,CAAC,CAAC;IACxCC,MAAM,EAAE,CAAC,cAAc,EAAE,CAAC,CAAC;IAC3BC,UAAU,EAAE,CAAC,gBAAgB,EAAE,CAAC,CAAC;IACjCC,SAAS,EAAE,UAAU;IACrBC,aAAa,EAAE,kBAAkB;IACjCC,IAAI,EAAE,kBAAkB;IACxBC,KAAK,EAAE,kBAAkB;IACzBC,iBAAiB,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;IAC5BC,OAAO,EAAE,CAAC,mBAAmB,EAAE,CAAC;EAClC,CAAC;EAEDlP,MAAM,CAACkM,OAAO,CAACiD,OAAO,GAAGnP,MAAM,CAACkM,OAAO,CAACiD,OAAO,IAAI,CAAC,CAAC;EACrD,MAAMC,aAAa,GAAGpP,MAAM,CAACkM,OAAO,CAACiD,OAAO,CAACE,KAAK;EAElDrP,MAAM,CAACkM,OAAO,CAACiD,OAAO,CAACE,KAAK,GAAG,MAAM;IACnC,IAAIrP,MAAM,CAACkM,OAAO,CAACb,CAAC,EAAEiE,KAAK,EAAEC,MAAM,EAAEC,UAAU,EAAE;MAC/C,MAAM;QAAEA,UAAU,EAAEC;MAAiB,CAAC,GAAGzP,MAAM,CAACkM,OAAO,CAACb,CAAC,CAACiE,KAAK,CAACC,MAAM;MACtE;MACA;MACA;MACA,MAAMC,UAAU,GAAGC,gBAAgB,EAAED,UAAU,IAAIC,gBAAgB;MACnE,IACED,UAAU,EAAEE,SAAS,EAAEC,WAAW,IAClC,CAACH,UAAU,CAACE,SAAS,CAACE,WAAW,EACjC;QACA,MAAMC,SAAS,GAAG;UAChBC,IAAI,EAAE,QAAQ;UACdC,KAAK,EAAE,QAAQ;UACfC,MAAM,EAAE,QAAQ;UAChBC,KAAK,EAAE,QAAQ;UACfC,MAAM,EAAE,QAAQ;UAChBC,EAAE,EAAE,QAAQ;UACZC,KAAK,EAAE,QAAQ;UACfC,EAAE,EAAE,QAAQ;UACZC,EAAE,EAAE;QACN,CAAC;QAED,MAAMC,mBAAmB,GAAGf,UAAU,CAACE,SAAS,CAACC,WAAW;QAE5DH,UAAU,CAACE,SAAS,CAACC,WAAW,GAAG,UAAUa,GAAG,EAAE;UAChD,KAAK,MAAMC,GAAG,IAAID,GAAG,CAACE,MAAM,CAAC,CAAC,EAAE;YAC9B,IAAID,GAAG,CAACE,SAAS,EAAE;cACjBF,GAAG,CAACE,SAAS,GAAGF,GAAG,CAACE,SAAS,CAACC,OAAO,CACnC,4DAA4D,EAC5D,CAACC,KAAK,EAAEC,EAAE,EAAEC,UAAU,KAAK;gBACzB,OAAOlB,SAAS,CAACkB,UAAU,CAACC,WAAW,CAAC,CAAC,CAAC,IAAIH,KAAK;cACrD,CACF,CAAC;YACH;UACF;UAEA,MAAMI,eAAe,GAAGV,mBAAmB,CAACW,IAAI,CAAC,IAAI,EAAEV,GAAG,CAAC;UAE3D,OAAOS,eAAe,CAAC7N,MAAM,CAAE+N,IAAI,IAAK;YACtC,MAAMC,MAAM,GAAG,IAAI,CAACC,OAAO,CAACD,MAAM,CAACD,IAAI,CAACG,KAAK,CAACC,IAAI,CAAC;YACnD,OAAO,IAAI,CAACF,OAAO,CAACG,IAAI,CAACJ,MAAM,CAAC,KAAK,mBAAmB;UAC1D,CAAC,CAAC;QACJ,CAAC;QAED5B,UAAU,CAACE,SAAS,CAACE,WAAW,GAAG,IAAI;MACzC;IACF;IAEA,IAAIR,aAAa,EAAE;MACjB,OAAOA,aAAa,CAAC,CAAC;IACxB,CAAC,MAAM;MACL,OAAOpP,MAAM,CAACkM,OAAO,CAACiD,OAAO,CAACsC,YAAY,CAAC,CAAC;IAC9C;EACF,CAAC;AACH;;;;;;;;;;;;;;;;;;;;;ACtUyC;AACqB;AACjC;;AAE7B;AACA;AACA;AACA;AACA;;AAEA,MAAMG,cAAc,GAAG,CACrB,SAAS,EACT,cAAc,EACd,cAAc,EACd,WAAW,EACX,WAAW,EACX,WAAW,EACX,YAAY,CACb;AAED,IAAIC,cAAc,GAAIC,iBAAiB,IACrC,cAAcJ,4CAAS,CAAC;EAAAvH,YAAA;IAAA,SAAA5G,SAAA;IAAA+G,eAAA,yBACL,CAACyH,QAAQ,EAAEtR,EAAE,KAC5BsR,QAAQ,CAACjH,IAAI,CAAEkH,OAAO,IAAKA,OAAO,CAACvR,EAAE,KAAKA,EAAE,CAAC;IAAA6J,eAAA,6BAE1B,CAACyH,QAAQ,EAAE7K,SAAS,KAAK;MAC5C,MAAM+K,WAAW,GAAG,IAAI,CAACC,cAAc,CAACH,QAAQ,EAAE7K,SAAS,CAAC;MAC5D,OAAO,CAAC,CAACtD,2CAAG,CAACqO,WAAW,EAAE,IAAI,CAAC;IACjC,CAAC;EAAA;EAEDE,MAAMA,CAAA,EAAG;IACP,MAAM;MAAEjR;IAAO,CAAC,GAAG,IAAI,CAAC1D,KAAK,EAAE4U,MAAM,IAAI,CAAC,CAAC;;IAE3C;IACA,KAAK,MAAM,CAAC9G,GAAG,EAAExN,KAAK,CAAC,IAAI+F,MAAM,CAACwO,OAAO,CAACnR,MAAM,IAAI,CAAC,CAAC,CAAC,EAAE;MACvD,MAAMoR,QAAQ,GAAIxU,KAAK,IAAK,CAAC8H,MAAM,CAAC2M,KAAK,CAAC3M,MAAM,CAAC9H,KAAK,CAAC,CAAC;MACxD,IACE8T,cAAc,CAAC7Q,QAAQ,CAACuK,GAAG,CAAC,IAC5BxN,KAAK,KAAKT,SAAS,IACnB,CAACiV,QAAQ,CAACxU,KAAK,CAAC,EAChB;QACA;AACV;AACA;AACA;AACA;QACU,MAAM0U,gBAAgB,GAAGlH,GAAG,KAAK,WAAW,IAAIxN,KAAK,KAAK,SAAS;QACnE;AACV;AACA;AACA;QACU,MAAM2U,kBAAkB,GAAGD,gBAAgB;QAC3C,IAAI,CAACC,kBAAkB,EAAE,oBAAO9V,gDAAA,CAACgV,0EAAY,MAAE,CAAC;MAClD,CAAC,MAAM,IACL,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC5Q,QAAQ,CAACuK,GAAG,CAAC,IACtCgH,QAAQ,CAACxU,KAAK,CAAC,IACf,CAACoD,MAAM,EAAEwR,QAAQ,EACjB;QACA,MAAM;UAAEhQ,SAAS;UAAEF;QAAU,CAAC,GAAG,IAAI,CAAChF,KAAK,CAACuB,QAAQ,IAAI,CAAC,CAAC;QAC1D,IAAI2D,SAAS,EAAE;UACb,MAAMiQ,gBAAgB,GAAG,IAAI,CAACC,kBAAkB,CAC9C,IAAI,CAACpV,KAAK,CAACuB,QAAQ,CAAC8T,eAAe,EACnC/U,KACF,CAAC;UACD,IAAI,CAAC6U,gBAAgB,EAAE;YACrB,oBAAOhW,gDAAA,CAACgV,0EAAY,MAAE,CAAC;UACzB;QACF,CAAC,MAAM,IAAInP,SAAS,EAAE;UACpB,MAAMmQ,gBAAgB,GAAG,IAAI,CAACC,kBAAkB,CAC9C,IAAI,CAACpV,KAAK,CAACuB,QAAQ,CAAC+T,eAAe,EACnChV,KACF,CAAC;UACD,IAAI,CAAC6U,gBAAgB,EAAE;YACrB,oBAAOhW,gDAAA,CAACgV,0EAAY,MAAE,CAAC;UACzB;QACF;MACF;IACF;IACA,oBAAOhV,gDAAA,CAACmV,iBAAiB,EAAK,IAAI,CAACtU,KAAQ,CAAC;EAC9C;AACF,CAAC;AAEH,iEAAeqU,cAAc;;;;;;;;;;;;;;;;;AClFH;AACiC;AAIX;AAchD,MAAMmB,sBAAsB,GACzBhO,QAAyB,IACzBiO,gBAAoD,IAAK;EACxD,MAAMC,kBAAkB,GAAI1V,KAA+B,IAAK;IAC9D,MAAM0J,SAAS,GAAG1J,KAAK,CAAC0D,MAAM,CAAC8Q,OAAO;IACtC,MAAM;MAAEjK,qBAAqB;MAAEvF;IAAU,CAAC,GAAGhF,KAAK;IAClD,MAAM;MAAE4U;IAAO,CAAC,GAAG5U,KAAK;IACxB,IACE,EACEkK,4FAAoB,CAACR,SAAS,EAAElC,QAAQ,CAAC,IACzCsC,0GAAkC,CAChCJ,SAAS,EACTlC,QAAQ,EACRxC,SAAS,EACTuF,qBACF,CAAC,CACF,EACD;MACAqK,MAAM,CAACxB,OAAO,CAAC,IAAI1J,SAAS,OAAO,CAAC;IACtC;IACA,oBAAOvK,gDAAA,CAACsW,gBAAgB,EAAKzV,KAAQ,CAAC;EACxC,CAAC;EACD,MAAM2V,eAAe,GAAIC,KAAqB,IAAK;IACjD,MAAM;MAAE7L,WAAW;MAAExI;IAAS,CAAC,GAAGqU,KAAK;IAEvC,OAAO;MACLrL,qBAAqB,EAAER,WAAW,CAAC8L,qBAAqB;MACxD7Q,SAAS,EAAEzD,QAAQ,CAACyD;IACtB,CAAC;EACH,CAAC;EAED,OAAOuQ,oDAAO,CAACI,eAAe,CAAC,CAACD,kBAAkB,CAAC;AACrD,CAAC;AAEH,iEAAeF,sBAAsB","sources":["webpack:///./chameleon/src/utility/KiwiTagManager/context.tsx","webpack:///./chameleon/src/utility/KiwiTagManager/index.tsx","webpack:///./chameleon/src/utility/KiwiTagManager/utils.ts","webpack:///./chameleon/src/utility/addLearnosityPerformance.js","webpack:///./chameleon/src/utility/getIsLabResource.tsx","webpack:///./chameleon/src/utility/helpers/getAssessmentSummary.js","webpack:///./chameleon/src/utility/helpers/updateQuizDescription.js","webpack:///./chameleon/src/utility/subjectResources.js","webpack:///./chameleon/src/utility/utils.js","webpack:///./chameleon/src/utility/validatedRoute.js","webpack:///./chameleon/src/utility/withRestrictedResource.tsx"],"sourcesContent":["import React, { useState, useContext, createContext } from 'react';\nimport { KiwiPayload, KiwiTagManagerActions } from './types.d';\n\nconst initialState = {\n  categories: { functional: false, marketing: false },\n  actionsAllowed: {},\n};\n\nconst kiwiTagManagerCtx = createContext<\n  (KiwiPayload & KiwiTagManagerActions) | undefined\n>(undefined);\n\nexport const useKiwiTagManger = () =>\n  useContext(kiwiTagManagerCtx) as KiwiPayload & KiwiTagManagerActions;\n\nexport const KiwiTagManagerProvider: React.FC = (props) => {\n  const [{ categories, actionsAllowed }, setState] =\n    useState<KiwiPayload>(initialState);\n  const setKiwiPayload = (payload: KiwiPayload) => setState(payload);\n\n  return (\n    <kiwiTagManagerCtx.Provider\n      value={{ categories, actionsAllowed, setKiwiPayload }}\n    >\n      {props.children}\n    </kiwiTagManagerCtx.Provider>\n  );\n};\n\nexport default KiwiTagManagerProvider;\n","import React, { useEffect } from 'react';\nimport { withRouter } from 'react-router';\nimport dayjs from 'dayjs';\nimport axios from 'axios';\nimport log from 'chameleon/ui-stack/utilities/log';\nimport merge from 'lodash/merge';\nimport { Props } from './types.d';\nimport {\n  ENV_TAGS,\n  getUserRoleText,\n  getActionsAllowedAndCategories,\n} from './utils';\nimport KiwiTagManagerProvider, { useKiwiTagManger } from './context';\n\nconst env = process.env.ENV as keyof typeof ENV_TAGS;\n\nconst KiwiTagManager: React.FC<Props> = (props) => {\n  const { masterSubjectId, location, userData, details = {} } = props;\n  const { me } = userData;\n  const { lastLogin, schoolSet } = me;\n  const { setKiwiPayload } = useKiwiTagManger();\n\n  const checkStudentSchoolHour = () => {\n    // Check if a student time in ET match school hours\n    // School hours in ET is between 7AM and 5PM (17 in 24 hours).\n    const currentTimeHourInET = dayjs().tz('America/New_York').hour();\n    return currentTimeHourInET >= 7 && currentTimeHourInET <= 17;\n  };\n  const isStudentSchoolHour = checkStudentSchoolHour();\n  const userType = getUserRoleText(userData);\n\n  const pushToDataLayer = () => {\n    const orgCode = schoolSet.length ? schoolSet[0].groupImportId : null;\n    const orgName = schoolSet.length ? schoolSet[0].name : null;\n    window.adobeDataLayer.push({\n      appUser: {\n        role: userType,\n        org: {\n          code: orgCode,\n          name: orgName,\n        },\n      },\n      apClassroom: {\n        apCourse: {\n          id: masterSubjectId,\n          org: {\n            code: orgCode,\n            name: orgName,\n          },\n        },\n        isStudentSchoolHour: isStudentSchoolHour ? 'Y' : 'N',\n        lastLogin,\n      },\n    });\n  };\n\n  const logToTelemetry = () => {\n    // If we're in impersonation mode or local development don't send telemetry data\n    if (window.localStorage.getItem('isReadOnly') === 'true' || env == 'dev') {\n      return true;\n    }\n\n    const app =\n      props.app || location.pathname.includes('/units') ? 'units' : 'fym';\n    const event_type = details.event_type ? details.event_type : 'page_load';\n    delete details.event_type;\n    const telemetryObj = merge(\n      {\n        app,\n        params: {\n          object: location.pathname,\n        },\n        event_type,\n        env: ENV_TAGS[env],\n        user_type: userType,\n        v: 1,\n      },\n      details,\n    );\n\n    if ((me && me.initId && me.initId !== 0) || details) {\n      axios\n        .post(FYM_TELEMETRY_BACKEND_URL, telemetryObj)\n        .then(() => {\n          if (env !== 'prod') {\n            /* eslint-disable-next-line */\n            console.log(`Sent telemetry data for ${ENV_TAGS[env]}`);\n          }\n        })\n        .catch((error) => log('error', error));\n    }\n  };\n\n  useEffect(() => {\n    window.adobeDataLayer = window.adobeDataLayer || [];\n    // Load Kiwi cookie consents\n    getActionsAllowedAndCategories()\n      .then(setKiwiPayload)\n      .catch((e) => {\n        // we don't load kiwi.collegeboard.../embed.js on our dev env, so this would always error\n        if (\n          !(\n            env == 'dev' &&\n            e.toString() === 'Error: Consent resolution timed out'\n          )\n        )\n          throw e;\n      });\n  }, []);\n\n  useEffect(() => {\n    logToTelemetry();\n    pushToDataLayer();\n  }, [location.pathname]);\n\n  return null;\n};\n\nexport { KiwiTagManagerProvider };\n\nexport default withRouter(KiwiTagManager);\n","import { UserRoles } from 'chameleon/legacy/src/constants/common';\nimport type { UserData } from 'chameleon/types/userData';\nimport { KiwiPayload } from './types.d';\n\nexport const ENV_TAGS = {\n  dev: 'development',\n  prod: 'production',\n  testing: 'testing',\n  perf: 'development',\n  uat: 'uat',\n};\n\n/**\n * Return string representation of user type based on roles\n *\n * If user has multiple roles priority becomes: staff > admin > coordinator > teacher\n */\nexport const getUserRoleText = (userData: UserData) => {\n  const { isDemo, isAdmin, isCoordinator, isStudent, isStaff, isTeacher, me } =\n    userData;\n\n  switch (true) {\n    case !!PARENT_PREVIEW:\n      return UserRoles.PARENT_PREVIEW;\n    case isDemo:\n      return UserRoles.DEMO;\n    case isStaff:\n      return UserRoles.STAFF;\n    case isAdmin:\n      return UserRoles.ADMIN;\n    case isCoordinator:\n      return UserRoles.COORDINATOR;\n    case isTeacher:\n      return UserRoles.TEACHER;\n    case isStudent:\n      return UserRoles.STUDENT;\n    case Boolean(me):\n      return me.userRole\n        ?.filter((role: string) => role !== 'pl_user')\n        ?.join(', ');\n    default:\n      return 'unknown';\n  }\n};\n\n/**\n * Returns actionsAllowed & categories immediately if available,\n * otherwise waits for kiwi:consentReady event.\n * @param {number} timeoutMs - Max wait time (default 50000ms)\n * @returns {Promise<object>} - Resolves with actionsAllowed object\n */\nexport const getActionsAllowedAndCategories = (\n  timeoutMs = 50000,\n): Promise<KiwiPayload> =>\n  new Promise((resolve, reject) => {\n    // Check if already available\n    const actionsAllowed = window.kiwiEddlHelper\n      ? window.kiwiEddlHelper.get('cdl.legal.tagsConsent.actionsAllowed')\n      : undefined;\n    const categories = window.kiwiEddlHelper\n      ? window.kiwiEddlHelper.get('cdl.legal.tagsConsent.categories')\n      : undefined;\n    if (\n      actionsAllowed &&\n      categories &&\n      Object.keys(actionsAllowed).length > 0 &&\n      Object.keys(categories).length > 0\n    ) {\n      return resolve({ actionsAllowed, categories });\n    }\n\n    // Wait for event\n    const timeout = setTimeout(() => {\n      window.removeEventListener(\n        'kiwi:consentReady',\n        handler as unknown as EventListener,\n      );\n      reject(new Error('Consent resolution timed out'));\n    }, timeoutMs);\n\n    function handler(e: KiwiConsentReadyEvent) {\n      clearTimeout(timeout);\n      resolve({\n        actionsAllowed: e.detail?.actionsAllowed || {},\n        categories: e.detail?.categories,\n      });\n    }\n\n    window.addEventListener(\n      'kiwi:consentReady',\n      handler as unknown as EventListener,\n      { once: true },\n    );\n  });\n","import get from 'lodash/get';\n\nconst addLearnosityPerformance = (learnosityServerData) => {\n  const qInitOptions = get(\n    learnosityServerData,\n    'questions_api_init_options',\n    {},\n  );\n\n  qInitOptions.render_optimization = {\n    defer_render: true,\n  };\n\n  learnosityServerData.questions_api_init_options = {\n    ...qInitOptions,\n  };\n\n  return learnosityServerData;\n};\n\nexport default addLearnosityPerformance;\n","import { AP_CSA } from 'chameleon/src/constants/subjects';\n\ninterface Resource {\n  id: number;\n  isSPP?: boolean;\n}\n\nconst _getIsCSALabs = (resource: Resource): boolean => resource.isSPP ?? false;\n\nexport const isLabResource = (resource: Resource): boolean => {\n  if (resource.id === AP_CSA) {\n    return _getIsCSALabs(resource);\n  }\n  return false;\n};\n","import { getAssessmentSummaryQuery } from 'chameleon/src/queries';\n\nconst getAssessmentSummary = async (client, itemId, groupId) => {\n  const response = await client.query({\n    query: getAssessmentSummaryQuery,\n    fetchPolicy: 'network-only',\n    variables: {\n      itemId: Number.parseInt(itemId, 10),\n      groupId: Number.parseInt(groupId, 10),\n    },\n  });\n  return response && response.data;\n};\n\nexport default getAssessmentSummary;\n","import { updateQuizDescriptionMutation } from 'chameleon/src/queries/mutations';\n\nconst updateQuizDescription = async (client, variables) => {\n  const response = await client.mutate({\n    mutation: updateQuizDescriptionMutation,\n    fetchPolicy: 'network-only',\n    variables,\n  });\n  const { updateQuizDescription: { ok } = {} } =\n    (response && response.data) || {};\n  return ok;\n};\n\nexport default updateQuizDescription;\n","import {\n  RESTRICTIONS_BY_USER_TYPE_AND_FF,\n  RESTRICTIONS_BY_SUBJECT,\n  ALL_SUBJECTS_LABEL,\n  MY_ASSIGNMENTS,\n  REPORTS,\n  REPORTS_PROGRESS_CHECKS,\n  CS_PERFORMANCE,\n  QB,\n  SUBJECTS_WITH_PROFESSIONAL_LEARNING,\n  SUBJECTS_WITH_REFERENCE_SHEETS_LINKS,\n  AP_SEMINAR,\n  AP_RESEARCH,\n  RESOURCE_AND_ASSIGNMENTS,\n} from 'chameleon/src/constants/subjects';\nimport { UserRoles } from 'chameleon/legacy/src/constants/common';\n\nexport const subjectHasProfessionalLearning = (subjectId) =>\n  SUBJECTS_WITH_PROFESSIONAL_LEARNING.includes(+subjectId);\n\nexport const subjectHasCustomProfessionalLearningLink = (subjectId) =>\n  [AP_SEMINAR, AP_RESEARCH].includes(+subjectId);\n\nexport const subjectHasReferenceSheets = (subjectId) =>\n  SUBJECTS_WITH_REFERENCE_SHEETS_LINKS[subjectId] !== undefined;\n\nexport const getReferenceSheetsLink = (subjectId) =>\n  SUBJECTS_WITH_REFERENCE_SHEETS_LINKS[+subjectId];\n\nexport const isResourceVisibilityOverriddenByFF = (\n  subjectId,\n  resource,\n  isStudent,\n  featureFlag = false,\n) => {\n  const userType = isStudent ? UserRoles.STUDENT : UserRoles.TEACHER;\n\n  if (featureFlag) {\n    const subjectsByResByFfByUserType =\n      RESTRICTIONS_BY_USER_TYPE_AND_FF?.[resource]?.[userType];\n\n    const isSubjectRestricted = (subjectsByResByFfByUserType || []).includes(\n      +subjectId,\n    );\n\n    return !isSubjectRestricted;\n  }\n  return true;\n};\n\nexport const isSubjectHasResource = (subjectId, resource) =>\n  !(\n    RESTRICTIONS_BY_SUBJECT[resource] &&\n    Array.isArray(RESTRICTIONS_BY_SUBJECT[resource]) &&\n    (RESTRICTIONS_BY_SUBJECT[resource].includes(+subjectId) ||\n      RESTRICTIONS_BY_SUBJECT[resource].includes(ALL_SUBJECTS_LABEL))\n  );\n\nexport const isMyAssignmentsVisible = ({\n  subjectId,\n  isStudent,\n  isSubjectRestrictedFF,\n}) =>\n  isSubjectHasResource(subjectId, MY_ASSIGNMENTS) &&\n  isResourceVisibilityOverriddenByFF(\n    subjectId,\n    MY_ASSIGNMENTS,\n    isStudent,\n    isSubjectRestrictedFF,\n  );\n\nexport const isStudentReportsVisible = ({ subjectId, isSubjectRestrictedFF }) =>\n  isSubjectHasResource(subjectId, REPORTS) &&\n  isResourceVisibilityOverriddenByFF(\n    subjectId,\n    REPORTS,\n    true,\n    isSubjectRestrictedFF,\n  );\n\nexport const isReportsProgressCheckVisible = ({ subjectId }) =>\n  isSubjectHasResource(subjectId, REPORTS_PROGRESS_CHECKS);\n\nexport const isMasteryReportsVisible = ({\n  subjectId,\n  isStudent,\n  isSubjectRestrictedFF,\n  masteryReportsFF,\n}) =>\n  masteryReportsFF &&\n  isResourceVisibilityOverriddenByFF(\n    subjectId,\n    CS_PERFORMANCE,\n    isStudent,\n    isSubjectRestrictedFF,\n  );\n\nexport const isQuestionBankVisible = ({\n  subjectId,\n  isStudent,\n  isSubjectRestrictedFF,\n}) =>\n  isSubjectHasResource(subjectId, QB) &&\n  isResourceVisibilityOverriddenByFF(\n    subjectId,\n    QB,\n    isStudent,\n    isSubjectRestrictedFF,\n  );\n\nexport const isTeacherReportsVisible = ({ subjectId, isSubjectRestrictedFF }) =>\n  isSubjectHasResource(subjectId, REPORTS) &&\n  isResourceVisibilityOverriddenByFF(\n    subjectId,\n    REPORTS,\n    false,\n    isSubjectRestrictedFF,\n  );\n\nexport const isResourceAndAssignmentsVisible = ({\n  subjectId,\n  isStudent,\n  isSubjectRestrictedFF,\n}) =>\n  isSubjectHasResource(subjectId, RESOURCE_AND_ASSIGNMENTS) &&\n  isResourceVisibilityOverriddenByFF(\n    subjectId,\n    RESOURCE_AND_ASSIGNMENTS,\n    isStudent,\n    isSubjectRestrictedFF,\n  );\n","import mapKeys from 'lodash/mapKeys';\nimport camelCase from 'lodash/camelCase';\nimport dayjs from 'dayjs';\nimport log from 'chameleon/ui-stack/utilities/log';\nimport { PREAP_SUBJECTS } from 'chameleon/src/constants/subjects';\nimport { getFinishedPercent } from '../components/learnosity/utils/helpers';\n\n/**\n * From https://stackoverflow.com/a/41716722 and https://stackoverflow.com/a/48764436\n * @param {*} num\n * @param {*} decimalPlaces\n */\nexport const round = (num, decimalPlaces = 0) => {\n  const p = 10 ** decimalPlaces;\n  const m = num * p * (1 + Number.EPSILON);\n  return Math.round(m) / p;\n};\n\n/**\n * Convert assignment.scores array into report-by-user map.\n * @param {Array} scores\n * @returns {Object} { [studentId]: { score, max_score } }\n */\nexport const scoresByStudentId = (scores = []) =>\n  scores.reduce((acc, row) => {\n    const studentId = row?.studentId;\n    if (studentId != null) {\n      const id = String(studentId);\n      acc[id] = { score: row?.score ?? 0, max_score: row?.maxScore ?? 0 };\n    }\n    return acc;\n  }, {});\n\nexport class AllAssignments {\n  constructor(assessments = [], assessmentId = null) {\n    const matchingAssessment = assessments.find(\n      (assessment) => +assessment.id === +assessmentId,\n    );\n\n    if (matchingAssessment) {\n      const { assignments } = matchingAssessment;\n      this.assignments = assignments;\n      this.assessment = matchingAssessment;\n    } else {\n      this.assignments = [];\n    }\n  }\n\n  getAssignments = () => this.assignments;\n\n  getOpenAssignments = () =>\n    this.assignments.filter((assignee) => {\n      let isAssignmentComplete = false;\n      const { progress } = assignee;\n      if (progress) {\n        const finishedPercentage = getFinishedPercent(progress);\n        isAssignmentComplete = finishedPercentage === 100;\n      }\n      return assignee.status !== 'closed' && !isAssignmentComplete;\n    });\n}\n\nexport const getSubGroupStudentsLabel = (subGroupStudents) => {\n  const { length: subGroupStudentsLength } = subGroupStudents || [];\n\n  if (subGroupStudentsLength === 0) {\n    return '';\n  }\n\n  if (subGroupStudentsLength === 1) {\n    const { firstName, lastName } = mapKeys(subGroupStudents[0], (_, key) =>\n      camelCase(key),\n    );\n    return firstName && lastName\n      ? ` (${firstName} ${lastName})`\n      : ` (${subGroupStudents[0]})`;\n  }\n\n  return ` (${subGroupStudents.length} students)`;\n};\n\n/**\n * Handler for getting the western timezone of all the sections.\n * @param {Array} list - The list of timezones (strings)\n * @return {String} - The minimum timezone from a list of timezones.\n * */\nexport const getMinTimezone = (list = []) => {\n  let minTimezone = null;\n\n  list.forEach((timezone) => {\n    if (timezone) {\n      try {\n        if (!minTimezone) {\n          minTimezone = timezone;\n        } else {\n          const currentUTCTime = dayjs();\n          const currentTimezoneOffset = currentUTCTime.tz(timezone).utcOffset();\n          const currentMinTimezoneOffset = currentUTCTime\n            .tz(minTimezone)\n            .utcOffset();\n\n          if (currentTimezoneOffset < currentMinTimezoneOffset) {\n            minTimezone = timezone;\n          }\n        }\n      } catch (error) {\n        // console.log('error', error);\n      }\n    }\n  });\n\n  return minTimezone;\n};\n\n/**\n *\n * @param element {HTMLElement}\n */\nexport async function setMathJaxTypeset(element) {\n  if (!element) {\n    return log(\n      'typesetting MathJax without element is not allowed for performance reasons',\n    );\n  }\n  await window.MathJax?.typesetPromise?.([element]);\n}\n\nexport function typeSetOnLearnosityItem(ref) {\n  const element = document.querySelector(\n    `.learnosity-item[data-reference=\"${ref}\"]`,\n  );\n  element && setMathJaxTypeset(element);\n}\n\nexport function preloadMathJaxWithLearnosity() {\n  if (window.MathJax) {\n    return;\n  }\n  // we need to make a LearnosityApp available for the MathJax, it would be loaded anyway with ItemsApi and has very small bundle size,\n  // so we would do it earlier to make sure it is available when we try to load Learnosity MathJax with it \"LearnosityApp.renderMath();\"\n  const questionsApiScript = document.createElement('script');\n  questionsApiScript.src = `https://questions-${LEARNOSITY_REGION}.learnosity.com/?v2025.2.LTS`;\n  document.body.appendChild(questionsApiScript);\n  questionsApiScript.onload = () => {\n    // for some reasons calling here LearnosityApp.renderMath() does not return Promise here as per documentation\n    window.LearnosityApp?.renderMath();\n  };\n}\n\n/**\n *\n * @param {*} fullName\n * @returns Display lastname and then the initial of the first name\n */\nexport const formatName = (fullName) => {\n  const fullNameSplitted = fullName.split(' ');\n  if (fullNameSplitted.length < 2) {\n    return fullName;\n  }\n  const lastName = fullNameSplitted[1];\n  const firstName = fullNameSplitted[0][0];\n  return `${lastName}, ${firstName}`;\n};\n\n/**\n *\n * @param {*} subjectId\n * @returns If the subject is not in this mapping is because is a standard subject.\n * It means, it should display Unit, Topic and Skill. Otherwise the tag categories to be displayed should\n * be returned. This is extracted from https://academicmerit.atlassian.net/browse/FY-27071\n */\n\nexport const BIG_IDEAS = 'Big Ideas';\nexport const COURSE_TRANSFER_SKILLS = 'Course Transfer Skills';\nexport const PROFICIENCIES = 'Proficiencies';\nexport const UNITS = 'Units';\nexport const TOPICS = 'Topics';\nexport const TASK_MODELS = 'Task Models';\nexport const SKILLS = 'Skills';\nexport const LEARNING_OBJECTIVES = 'Learning Objectives';\n\n/**\n *\n * @param masterSubjectId {String | Number}\n * @returns {(string)[]|(string)[]|*}\n */\nexport const tagsPerSubject = (masterSubjectId) => {\n  const tagsPerSubjectMapping = {\n    3: [],\n    4: [],\n    5: [],\n    12: [UNITS, SKILLS],\n    13: [UNITS, SKILLS],\n    16: [UNITS, TASK_MODELS, SKILLS],\n    19: [UNITS, TASK_MODELS, SKILLS],\n    23: [UNITS, SKILLS],\n    31: [UNITS, TASK_MODELS, SKILLS],\n    32: [UNITS, SKILLS],\n    86: [UNITS, TASK_MODELS, SKILLS],\n    87: [UNITS, TASK_MODELS, SKILLS],\n    88: [UNITS, TASK_MODELS, SKILLS],\n    94: [BIG_IDEAS, PROFICIENCIES, COURSE_TRANSFER_SKILLS],\n    95: [],\n    103: [BIG_IDEAS, TOPICS, SKILLS],\n  };\n  if (PREAP_SUBJECTS.includes(Number(masterSubjectId))) {\n    return [UNITS, LEARNING_OBJECTIVES];\n  }\n  if (\n    !Object.keys(tagsPerSubjectMapping)\n      .map(parseFloat)\n      .includes(Number(masterSubjectId))\n  ) {\n    return [UNITS, TOPICS, SKILLS]; // Return standard Unit, Topic and Skills tags\n  }\n\n  return tagsPerSubjectMapping[masterSubjectId];\n};\n\n// Given that the bugfix inside MathJax itself was postponed for v4 --> https://github.com/mathjax/MathJax/issues/2892\n// and Learnosity doesn't give any way to add config values to MathJax intialization,\n// this might the only way to add things to the MathJax configuration.\n// If you have any advice or other solution please write it in this ticket:\n// https://academicmerit.atlassian.net/browse/FY-35798\nexport function overrideMathJaxConfiguration() {\n  window.MathJax = window.MathJax || {};\n  if (window.MathJax.__isConfigured) {\n    return;\n  }\n\n  window.MathJax.__isConfigured = true;\n\n  window.MathJax.tex = window.MathJax.tex || {};\n  window.MathJax.tex.inlineMath = [\n    ['\\\\(', '\\\\)'],\n    ['$$', '$$'],\n  ];\n  window.MathJax.tex.displayMath = [['\\\\[', '\\\\]']];\n\n  // Load same packages as Learnosity does\n  window.MathJax.tex.packages = window.MathJax.tex.packages || [\n    'base',\n    'ams',\n    'newcommand',\n    'noundefined',\n    'require',\n    'autoload',\n    'configmacros',\n    'boldsymbol',\n  ];\n\n  // Sync all acros from Learnosity config.\n  // You can find it the author.learnosity.com in the dev console\n  window.MathJax.tex.macros = {\n    ...(window.MathJax.tex.macros || {}),\n    abs: ['{|#1|}', 1],\n    degree: '°',\n    longdiv: ['{\\\\enclose{longdiv}{#1}}', 1],\n    atomic: ['{_{#1}^{#2}}', 2],\n    polyatomic: ['{_{#2}{}^{#1}}', 2],\n    circledot: '{\\\\odot}',\n    parallelogram: '\\\\unicode{x25B1}',\n    ngtr: '\\\\unicode{x226F}',\n    nless: '\\\\unicode{x226E}',\n    MathQuillVarField: ['#1', 1],\n    overarc: ['{\\\\overparen{#1}}', 1],\n  };\n\n  window.MathJax.startup = window.MathJax.startup || {};\n  const originalReady = window.MathJax.startup.ready;\n\n  window.MathJax.startup.ready = () => {\n    if (window.MathJax._?.input?.mathml?.FindMathML) {\n      const { FindMathML: FindMathMLModule } = window.MathJax._.input.mathml;\n      // patch to MathJax 3.0.5+ incorrectly re-processing its own hidden accessibility nodes\n      // as noted above, related to https://github.com/mathjax/MathJax/issues/2892\n      // Futureproof MathJax updates where they might actually remove the nested FindMathML\n      const FindMathML = FindMathMLModule?.FindMathML || FindMathMLModule;\n      if (\n        FindMathML?.prototype?.processMath &&\n        !FindMathML.prototype.__isPatched\n      ) {\n        const entityMap = {\n          nbsp: '\\u00A0',\n          times: '\\u00D7',\n          divide: '\\u00F7',\n          minus: '\\u2212',\n          plusmn: '\\u00B1',\n          pi: '\\u03C0',\n          theta: '\\u03B8',\n          le: '\\u2264',\n          ge: '\\u2265',\n        };\n\n        const originalProcessMath = FindMathML.prototype.processMath;\n\n        FindMathML.prototype.processMath = function (set) {\n          for (const mml of set.values()) {\n            if (mml.innerHTML) {\n              mml.innerHTML = mml.innerHTML.replace(\n                /&(amp;)?(nbsp|times|divide|minus|plusmn|pi|theta|le|ge);/gi,\n                (match, p1, entityName) => {\n                  return entityMap[entityName.toLowerCase()] || match;\n                },\n              );\n            }\n          }\n\n          const parsedMathItems = originalProcessMath.call(this, set);\n\n          return parsedMathItems.filter((item) => {\n            const parent = this.adaptor.parent(item.start.node);\n            return this.adaptor.kind(parent) !== 'mjx-assistive-mml';\n          });\n        };\n\n        FindMathML.prototype.__isPatched = true;\n      }\n    }\n\n    if (originalReady) {\n      return originalReady();\n    } else {\n      return window.MathJax.startup.defaultReady();\n    }\n  };\n}\n","import React, { Component } from 'react';\nimport PageNotFound from 'legacy/src/components/PageNotFound';\nimport { get } from 'lodash';\n\n/**\n * Check for the right IDs that were looking for in the URL param and redirect to PageNotFound if:\n *  the value is not undefined and not a number\n *  the subject is a number but the user has no access to it\n */\n\nconst URL_KEY_PARAMS = [\n  'subject',\n  'assessmentId',\n  'assignmentId',\n  'studentId',\n  'previewId',\n  'subjectId',\n  'questionId',\n];\n\nlet ValidatedRoute = (ComposedComponent) =>\n  class extends Component {\n    getUserSubject = (subjects, id) =>\n      subjects.find((subject) => subject.id === id);\n\n    isValidUserSubject = (subjects, subjectId) => {\n      const userSubject = this.getUserSubject(subjects, subjectId);\n      return !!get(userSubject, 'id');\n    };\n\n    render() {\n      const { params } = this.props?.router || {};\n\n      // eslint-disable-next-line no-unused-vars\n      for (const [key, value] of Object.entries(params || {})) {\n        const isNumber = (value) => !Number.isNaN(Number(value));\n        if (\n          URL_KEY_PARAMS.includes(key) &&\n          value !== undefined &&\n          !isNumber(value)\n        ) {\n          /**\n           * One of the exceptions here is previewId can be 'filters' when e.g.\n           * clicking the Topic Questions filter from the Unit Outline.\n           * When previewId is \"filters\" we can assume it is ok.\n           */\n          const topicQuestionURL = key === 'previewId' && value === 'filters';\n          /**\n           * Let's minimize how many exceptions we create, this was existing functionality\n           * that got broken by having stricter URLs\n           */\n          const meetsExceptionCase = topicQuestionURL;\n          if (!meetsExceptionCase) return <PageNotFound />;\n        } else if (\n          ['subject', 'subjectId'].includes(key) &&\n          isNumber(value) &&\n          !params?.shareKey\n        ) {\n          const { isTeacher, isStudent } = this.props.userData || {};\n          if (isTeacher) {\n            const validUserSubject = this.isValidUserSubject(\n              this.props.userData.teacherSubjects,\n              value,\n            );\n            if (!validUserSubject) {\n              return <PageNotFound />;\n            }\n          } else if (isStudent) {\n            const validUserSubject = this.isValidUserSubject(\n              this.props.userData.studentSubjects,\n              value,\n            );\n            if (!validUserSubject) {\n              return <PageNotFound />;\n            }\n          }\n        }\n      }\n      return <ComposedComponent {...this.props} />;\n    }\n  };\n\nexport default ValidatedRoute;\n","import React from 'react';\nimport { connect, type RootStateOrAny } from 'react-redux';\nimport {\n  isResourceVisibilityOverriddenByFF,\n  isSubjectHasResource,\n} from 'chameleon/src/utility/subjectResources';\nimport { type SubjectResource } from 'chameleon/types/subjects';\n\ninterface IRestrictedResourceProps {\n  params: {\n    subject: string;\n  };\n  router: {\n    replace: (arg0: string) => void;\n  };\n  isSubjectRestrictedFF: boolean;\n  isStudent: boolean;\n}\n\nconst withRestrictedResource =\n  (resource: SubjectResource) =>\n  (WrappedComponent: React.FC<IRestrictedResourceProps>) => {\n    const RestrictedResource = (props: IRestrictedResourceProps) => {\n      const subjectId = props.params.subject;\n      const { isSubjectRestrictedFF, isStudent } = props;\n      const { router } = props;\n      if (\n        !(\n          isSubjectHasResource(subjectId, resource) &&\n          isResourceVisibilityOverriddenByFF(\n            subjectId,\n            resource,\n            isStudent,\n            isSubjectRestrictedFF,\n          )\n        )\n      ) {\n        router.replace(`/${subjectId}/home`);\n      }\n      return <WrappedComponent {...props} />;\n    };\n    const mapStateToProps = (state: RootStateOrAny) => {\n      const { featureFlag, userData } = state;\n\n      return {\n        isSubjectRestrictedFF: featureFlag.is_subject_restricted,\n        isStudent: userData.isStudent,\n      };\n    };\n\n    return connect(mapStateToProps)(RestrictedResource);\n  };\n\nexport default withRestrictedResource;\n"],"names":["React","useState","useContext","createContext","initialState","categories","functional","marketing","actionsAllowed","kiwiTagManagerCtx","undefined","useKiwiTagManger","KiwiTagManagerProvider","props","setState","setKiwiPayload","payload","createElement","Provider","value","children","useEffect","withRouter","dayjs","axios","log","merge","ENV_TAGS","getUserRoleText","getActionsAllowedAndCategories","env","process","ENV","KiwiTagManager","masterSubjectId","location","userData","details","me","lastLogin","schoolSet","checkStudentSchoolHour","currentTimeHourInET","tz","hour","isStudentSchoolHour","userType","pushToDataLayer","orgCode","length","groupImportId","orgName","name","window","adobeDataLayer","push","appUser","role","org","code","apClassroom","apCourse","id","logToTelemetry","localStorage","getItem","app","pathname","includes","event_type","telemetryObj","params","object","user_type","v","initId","post","FYM_TELEMETRY_BACKEND_URL","then","console","catch","error","e","toString","UserRoles","dev","prod","testing","perf","uat","isDemo","isAdmin","isCoordinator","isStudent","isStaff","isTeacher","PARENT_PREVIEW","DEMO","STAFF","ADMIN","COORDINATOR","TEACHER","STUDENT","Boolean","userRole","filter","join","timeoutMs","arguments","Promise","resolve","reject","kiwiEddlHelper","get","Object","keys","timeout","setTimeout","removeEventListener","handler","Error","clearTimeout","detail","addEventListener","once","addLearnosityPerformance","learnosityServerData","qInitOptions","render_optimization","defer_render","questions_api_init_options","AP_CSA","_getIsCSALabs","resource","isSPP","isLabResource","getAssessmentSummaryQuery","getAssessmentSummary","client","itemId","groupId","response","query","fetchPolicy","variables","Number","parseInt","data","updateQuizDescriptionMutation","updateQuizDescription","mutate","mutation","ok","RESTRICTIONS_BY_USER_TYPE_AND_FF","RESTRICTIONS_BY_SUBJECT","ALL_SUBJECTS_LABEL","MY_ASSIGNMENTS","REPORTS","REPORTS_PROGRESS_CHECKS","CS_PERFORMANCE","QB","SUBJECTS_WITH_PROFESSIONAL_LEARNING","SUBJECTS_WITH_REFERENCE_SHEETS_LINKS","AP_SEMINAR","AP_RESEARCH","RESOURCE_AND_ASSIGNMENTS","subjectHasProfessionalLearning","subjectId","subjectHasCustomProfessionalLearningLink","subjectHasReferenceSheets","getReferenceSheetsLink","isResourceVisibilityOverriddenByFF","featureFlag","subjectsByResByFfByUserType","isSubjectRestricted","isSubjectHasResource","Array","isArray","isMyAssignmentsVisible","_ref","isSubjectRestrictedFF","isStudentReportsVisible","_ref2","isReportsProgressCheckVisible","_ref3","isMasteryReportsVisible","_ref4","masteryReportsFF","isQuestionBankVisible","_ref5","isTeacherReportsVisible","_ref6","isResourceAndAssignmentsVisible","_ref7","mapKeys","camelCase","PREAP_SUBJECTS","getFinishedPercent","round","num","decimalPlaces","p","m","EPSILON","Math","scoresByStudentId","scores","reduce","acc","row","studentId","String","score","max_score","maxScore","AllAssignments","constructor","assessments","assessmentId","_defineProperty","assignments","assignee","isAssignmentComplete","progress","finishedPercentage","status","matchingAssessment","find","assessment","getSubGroupStudentsLabel","subGroupStudents","subGroupStudentsLength","firstName","lastName","_","key","getMinTimezone","list","minTimezone","forEach","timezone","currentUTCTime","currentTimezoneOffset","utcOffset","currentMinTimezoneOffset","setMathJaxTypeset","element","MathJax","typesetPromise","typeSetOnLearnosityItem","ref","document","querySelector","preloadMathJaxWithLearnosity","questionsApiScript","src","LEARNOSITY_REGION","body","appendChild","onload","LearnosityApp","renderMath","formatName","fullName","fullNameSplitted","split","BIG_IDEAS","COURSE_TRANSFER_SKILLS","PROFICIENCIES","UNITS","TOPICS","TASK_MODELS","SKILLS","LEARNING_OBJECTIVES","tagsPerSubject","tagsPerSubjectMapping","map","parseFloat","overrideMathJaxConfiguration","__isConfigured","tex","inlineMath","displayMath","packages","macros","abs","degree","longdiv","atomic","polyatomic","circledot","parallelogram","ngtr","nless","MathQuillVarField","overarc","startup","originalReady","ready","input","mathml","FindMathML","FindMathMLModule","prototype","processMath","__isPatched","entityMap","nbsp","times","divide","minus","plusmn","pi","theta","le","ge","originalProcessMath","set","mml","values","innerHTML","replace","match","p1","entityName","toLowerCase","parsedMathItems","call","item","parent","adaptor","start","node","kind","defaultReady","Component","PageNotFound","URL_KEY_PARAMS","ValidatedRoute","ComposedComponent","subjects","subject","userSubject","getUserSubject","render","router","entries","isNumber","isNaN","topicQuestionURL","meetsExceptionCase","shareKey","validUserSubject","isValidUserSubject","teacherSubjects","studentSubjects","connect","withRestrictedResource","WrappedComponent","RestrictedResource","mapStateToProps","state","is_subject_restricted"],"sourceRoot":""}