{"version":3,"file":"app.bundle.js","mappings":";yCAKA,SAAUA,OAAQC,SAAU,aAa5B,IACIC,KACAC,OACAC,QACAC,QACAC,UACAC,UACAC,KACAC,aACAC,WACAC,mBAVAC,gBAAkBX,QAAQY,SAAS,aA+pBvCZ,QAAQa,OAAO,aAAc,IAC1BC,SAAS,aA3hBZ,SAASC,oBACP,IAAIC,qBAAsB,EACtBC,YAAa,EAEjBC,KAAKC,KAAO,CAAC,gBAAiB,SAASC,eAKrC,OAJAJ,qBAAsB,EAClBC,YACFf,OAAOmB,cAAeC,aAEjB,SAASC,MACd,IAAIC,IAAM,GAIV,OAHAf,WAAWc,KAAMb,mBAAmBc,KAAK,SAASC,IAAKC,SACrD,OAAQ,WAAWC,KAAKP,cAAcK,IAAKC,cAEtCF,IAAII,KAAK,OAmCpBV,KAAKW,UAAY,SAASA,WACxB,OAAIxB,UAAUwB,YACZZ,WAAaY,UACNX,MAEAD,YAmDXC,KAAKY,iBAAmB,SAASC,UAY/B,OAXKf,sBACCZ,QAAQ2B,YACVA,SAAW,CAACC,aAAcD,WAG5BE,cAAcX,YAAaS,SAAST,aACpCW,cAAcC,aAAcH,SAASI,kBACrCF,cAAcZ,cAAeU,SAASI,kBACtCF,cAAcZ,cAAeU,SAASC,eAGjCd,MAiCTA,KAAKkB,cAAgB,SAASC,OAI5B,OAHKrB,qBACHd,OAAOoC,WAAYC,WAAWF,OAAO,IAEhCnB,MAOTjB,KAAOD,QAAQC,KACfC,OAASF,QAAQE,OACjBC,QAAUH,QAAQG,QAClBC,QAAUJ,QAAQI,QAClBC,UAAYL,QAAQK,UACpBC,UAAYN,QAAQwC,YACpBjC,KAAOP,QAAQO,KAEfE,WA0KA,SAASgC,eAAelB,KAAMmB,SACxBnB,WACFA,KAAO,GACkB,iBAATA,OAChBA,KAAO,GAAKA,MAGd,IAAIoB,iBAAmBC,oBAAoBrB,MAC3C,IAAKoB,iBAAkB,MAAO,GAG9B,IAAIE,aAAe,EACnB,EAAG,CACD,GAAqB,IAAjBA,aACF,MAAMlC,gBAAgB,SAAU,yDAElCkC,eAGAtB,KAAOoB,iBAAiBG,UACxBH,iBAAmBC,oBAAoBrB,YAChCA,OAASoB,iBAAiBG,WAEnC,IAAIC,KAAOJ,iBAAiBK,WAC5B,KAAOD,MAAM,CACX,OAAQA,KAAKE,UACX,KAAK,EACHP,QAAQQ,MAAMH,KAAKI,SAASC,cAAeC,UAAUN,KAAKO,aAC1D,MACF,KAAK,EACHZ,QAAQa,MAAMR,KAAKS,aAIvB,IAAIC,SACJ,MAAMA,SAAWV,KAAKC,cACE,IAAlBD,KAAKE,UACPP,QAAQgB,IAAIX,KAAKI,SAASC,eAE5BK,SAAWE,iBAAiB,cAAeZ,QAEzC,KAAmB,MAAZU,WACLV,KAAOY,iBAAiB,aAAcZ,SACzBJ,kBACbc,SAAWE,iBAAiB,cAAeZ,MACrB,IAAlBA,KAAKE,UACPP,QAAQgB,IAAIX,KAAKI,SAASC,eAKlCL,KAAOU,SAGT,KAAQV,KAAOJ,iBAAiBK,YAC9BL,iBAAiBiB,YAAYb,OAhOjCrC,mBA8QA,SAASmD,uBAAuBrC,IAAKsC,cACnC,IAAIC,sBAAuB,EACvBC,IAAM/D,KAAKuB,IAAKA,IAAIyC,MACxB,MAAO,CACLf,MAAO,SAASgB,IAAK7B,OACnB6B,IAAM5D,UAAU4D,MACXH,sBAAwBI,gBAAgBD,OAC3CH,qBAAuBG,KAEpBH,uBAA+C,IAAvB1C,cAAc6C,OACzCF,IAAI,KACJA,IAAIE,KACJ/D,QAAQkC,OAAO,SAAS+B,MAAOC,KAC7B,IAAIC,KAAOhE,UAAU+D,KACjB3C,QAAmB,QAARwC,KAA0B,QAATI,MAA6B,eAATA,MAC3B,IAArBhC,WAAWgC,QACO,IAAnBC,SAASD,QAAkBR,aAAaM,MAAO1C,WAChDsC,IAAI,KACJA,IAAIK,KACJL,IAAI,MACJA,IAAIQ,eAAeJ,QACnBJ,IAAI,SAGRA,IAAI,OAGRN,IAAK,SAASQ,KACZA,IAAM5D,UAAU4D,KACXH,uBAA+C,IAAvB1C,cAAc6C,OAAuC,IAAtBhC,aAAagC,OACvEF,IAAI,MACJA,IAAIE,KACJF,IAAI,MAGFE,KAAOH,uBACTA,sBAAuB,IAG3BR,MAAO,SAASA,OACTQ,sBACHC,IAAIQ,eAAejB,WArT3B/C,aAAeT,OAAO0E,KAAKC,UAAUC,UAAyB,SAASC,KAErE,SAA8C,GAApC1D,KAAK2D,wBAAwBD,OAIzC,IAAIE,sBAAwB,kCAE1BC,wBAA0B,eASxB7C,aAAe8C,YAAY,0BAI3BC,4BAA8BD,YAAY,kDAC1CE,6BAA+BF,YAAY,SAC3CG,uBAAyBjF,OAAO,GACQgF,6BACAD,6BAGxCG,cAAgBlF,OAAO,GAAI+E,4BAA6BD,YAAY,wKAKpEK,eAAiBnF,OAAO,GAAIgF,6BAA8BF,YAAY,8JAQtE1D,YAAc0D,YAAY,0NAK1Bb,gBAAkBa,YAAY,gBAE9B3D,cAAgBnB,OAAO,GACQgC,aACAkD,cACAC,eACAF,wBAG/BZ,SAAWS,YAAY,yDAEvBM,UAAYN,YAAY,oTAQxBO,SAAWP,YAAY,kuCAcwD,GAE/E1C,WAAapC,OAAO,GACQqE,SACAgB,SACAD,WAEhC,SAASN,YAAYQ,IAAKC,eACxB,OAAOlD,WAAWiD,IAAIE,MAAM,KAAMD,eAGpC,SAASlD,WAAWoD,MAAOF,eACzB,IAAcG,EAAVC,IAAM,GACV,IAAKD,EAAI,EAAGA,EAAID,MAAMG,OAAQF,IAC5BC,IAAIJ,cAAgBnF,UAAUqF,MAAMC,IAAMD,MAAMC,KAAM,EAExD,OAAOC,IAGT,SAAS5D,cAAc8D,YAAaC,aAC9BA,aAAeA,YAAYF,QAC7B5F,OAAO6F,YAAaxD,WAAWyD,cASnC,IAAIpD,oBAAoE,SAAU7C,OAAQkG,UACxF,GAWA,SAASC,uBACP,IACE,QAASC,8BAA8B,IACvC,MAAOC,GACP,OAAO,GAfPF,GACF,OAAOC,8BAGT,IAAKF,WAAaA,SAASI,eACzB,MAAM1F,gBAAgB,UAAW,uCAEnC,IAAI2F,cAAgBL,SAASI,eAAeE,mBAAmB,SAC3D5D,kBAAoB2D,cAAcE,iBAAmBF,cAAcG,sBAAsBC,cAAc,QAC3G,OAuBA,SAASC,kCAAkCpF,MACzCoB,iBAAiBG,UAAYvB,KAIzB0E,SAASW,cACXC,mBAAmBlE,kBAGrB,OAAOA,kBAtBT,SAASwD,8BAA8B5E,MAGrCA,KAAO,oBAAsBA,KAC7B,IACE,IAAIuF,MAAO,IAAI/G,OAAOgH,WAAYC,gBAAgBzF,KAAM,aAAauF,KAErE,OADAA,KAAK9D,WAAWiE,SACTH,KACP,MAAOV,GACP,SA7BkE,CA4CrErG,OAAQA,OAAOkG,UAyElB,SAAS5C,UAAUhB,OAEjB,IADA,IAAI6E,IAAM,GACDtB,EAAI,EAAGuB,GAAK9E,MAAMyD,OAAQF,EAAIuB,GAAIvB,IAAK,CAC9C,IAAIwB,KAAO/E,MAAMuD,GACjBsB,IAAIE,KAAKC,MAAQD,KAAKhD,MAExB,OAAO8C,IAWT,SAAS1C,eAAeJ,OACtB,OAAOA,MACLkD,QAAQ,KAAM,SACdA,QAAQxC,uBAAuB,SAASV,OAGtC,MAAO,MAAyB,MAFvBA,MAAMmD,WAAW,GAEJ,QADZnD,MAAMmD,WAAW,GACqB,OAAU,OAAW,OAEvED,QAAQvC,yBAAyB,SAASX,OACxC,MAAO,KAAOA,MAAMmD,WAAW,GAAK,OAEtCD,QAAQ,KAAM,QACdA,QAAQ,KAAM,QAoElB,SAAST,mBAAmB9D,MAC1B,KAAOA,MAAM,CACX,GAAIA,KAAKE,WAAalD,OAAO0E,KAAK+C,aAEhC,IADA,IAAInF,MAAQU,KAAKO,WACRsC,EAAI,EAAG6B,EAAIpF,MAAMyD,OAAQF,EAAI6B,EAAG7B,IAAK,CAC5C,IAAI8B,SAAWrF,MAAMuD,GACjB+B,SAAWD,SAASL,KAAKjE,cACZ,cAAbuE,UAAgE,IAApCA,SAASC,YAAY,OAAQ,KAC3D7E,KAAK8E,oBAAoBH,UACzB9B,IACA6B,KAKN,IAAIhE,SAAWV,KAAKC,WAChBS,UACFoD,mBAAmBpD,UAGrBV,KAAOY,iBAAiB,cAAeZ,OAI3C,SAASY,iBAAiBmE,SAAU/E,MAElC,IAAIU,SAAWV,KAAK+E,UACpB,GAAIrE,UAAYjD,aAAauH,KAAKhF,KAAMU,UACtC,MAAM9C,gBAAgB,SAAU,gEAAiEoC,KAAKiF,WAAajF,KAAKkF,WAE1H,OAAOxE,aAeRyE,KAAK,CAAEC,eAAgB,UAiI1BnI,QAAQa,OAAO,cAAcuH,OAAO,QAAS,CAAC,YAAa,SAASC,WAClE,IAAIC,iBACE,4FACFC,cAAgB,YAEhBC,YAAcxI,QAAQY,SAAS,SAC/BP,UAAYL,QAAQK,UACpBoI,WAAazI,QAAQyI,WACrBC,SAAW1I,QAAQ0I,SACnBC,SAAW3I,QAAQ2I,SAEvB,OAAO,SAASC,KAAMC,OAAQvF,YAC5B,GAAY,MAARsF,MAAyB,KAATA,KAAa,OAAOA,KACxC,IAAKD,SAASC,MAAO,MAAMJ,YAAY,YAAa,oCAAqCI,MAYzF,IAVA,IAKIE,MAGAC,IACAnD,EATAoD,aACFP,WAAWnF,YAAcA,WACzBoF,SAASpF,YAAc,SAAS2F,sBAAuB,OAAO3F,YAC9D,SAAS4F,2BAA4B,MAAO,IAG1CC,IAAMP,KACNrH,KAAO,GAGHuH,MAAQK,IAAIL,MAAMR,mBAExBS,IAAMD,MAAM,GAEPA,MAAM,IAAOA,MAAM,KACtBC,KAAOD,MAAM,GAAK,UAAY,WAAaC,KAE7CnD,EAAIkD,MAAMM,MACVC,QAAQF,IAAIG,OAAO,EAAG1D,IACtB2D,QAAQR,IAAKD,MAAM,GAAGxB,QAAQiB,cAAe,KAC7CY,IAAMA,IAAIK,UAAU5D,EAAIkD,MAAM,GAAGhD,QAGnC,OADAuD,QAAQF,KACDd,UAAU9G,KAAKK,KAAK,KAE3B,SAASyH,QAAQT,MACVA,MAGLrH,KAAK0C,KAxLX,SAASwF,aAAalG,OACpB,IAAI/B,IAAM,GAGV,OAFad,mBAAmBc,IAAKjB,MAC9BgD,MAAMA,OACN/B,IAAII,KAAK,IAoLF6H,CAAab,OAGzB,SAASW,QAAQR,IAAKH,MACpB,IAAIvE,IAAKqF,eAAiBV,aAAaD,KAGvC,IAAK1E,OAFL9C,KAAK0C,KAAK,OAEEyF,eACVnI,KAAK0C,KAAKI,IAAM,KAAOqF,eAAerF,KAAO,MAG3ChE,UAAUwI,WAAa,WAAYa,iBACrCnI,KAAK0C,KAAK,WACA4E,OACA,MAEZtH,KAAK0C,KAAK,SACA8E,IAAIzB,QAAQ,KAAM,UAClB,MACV+B,QAAQT,MACRrH,KAAK0C,KAAK,aA/2BhB,CAq3BGlE,OAAQA,OAAOC,uEC13BlB,oBAAQ,KACRa,OAAO8I,QAAU,mGCQT,SAAWC,QAAU,aAIhBA,OAAOC,aAAa,KAAM,CAC/BC,OAAQ,8FAA8FpE,MAClG,KAEJqE,YAAa,kDAAkDrE,MAAM,KACrEsE,SAAU,4DAA4DtE,MAClE,KAEJuE,cAAe,8BAA8BvE,MAAM,KACnDwE,YAAa,uBAAuBxE,MAAM,KAC1CyE,cAAe,SACfC,KAAM,SAAUC,OACZ,MAAO,QAAQ1I,KAAK0I,QAExBC,SAAU,SAAUC,MAAOC,QAASC,SAChC,OAAIF,MAAQ,GACDE,QAAU,KAAO,KAEjBA,QAAU,KAAO,MAGhCC,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,2BAEVC,SAAU,CACNC,QAAS,iBACTC,QAAS,eACTC,SAAU,eACVC,QAAS,iBACTC,SAAU,sBACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,SACRC,KAAM,YACNC,EAAG,mBACHC,GAAI,cACJC,EAAG,YACHC,GAAI,YACJC,EAAG,SACHC,GAAI,SACJC,EAAG,SACHC,GAAI,SACJC,EAAG,WACHC,GAAI,YACJC,EAAG,UACHC,GAAI,WAERC,uBAAwB,kBACxBC,QAAS,SAAUC,QACf,OACIA,QACY,IAAXA,QAA2B,IAAXA,QAAgBA,QAAU,GAAK,MAAQ,OAGhEC,KAAM,CACFC,IAAK,EACLC,IAAK,KArEyBC,CAAQ,oBAAQ,4FCOlD,SAAWjD,QAAU,aAIzB,IAAIkD,WAAa,SAAUC,GACnB,OAAa,IAANA,EACD,EACM,IAANA,EACE,EACM,IAANA,EACE,EACAA,EAAI,KAAO,GAAKA,EAAI,KAAO,GACzB,EACAA,EAAI,KAAO,GACT,EACA,GAElBC,QAAU,CACNrB,EAAG,CACC,eACA,cACA,CAAC,UAAW,WACZ,UACA,WACA,YAEJE,EAAG,CACC,eACA,cACA,CAAC,UAAW,WACZ,WACA,WACA,YAEJE,EAAG,CACC,cACA,aACA,CAAC,SAAU,UACX,WACA,UACA,WAEJE,EAAG,CACC,aACA,WACA,CAAC,QAAS,SACV,UACA,WACA,UAEJE,EAAG,CACC,aACA,WACA,CAAC,QAAS,SACV,UACA,UACA,UAEJE,EAAG,CACC,aACA,WACA,CAAC,QAAS,SACV,WACA,WACA,WAGRY,UAAY,SAAUC,GAClB,OAAO,SAAUT,OAAQU,cAAeC,OAAQC,UAC5C,IAAIC,EAAIR,WAAWL,QACfjH,IAAMwH,QAAQE,GAAGJ,WAAWL,SAIhC,OAHU,IAANa,IACA9H,IAAMA,IAAI2H,cAAgB,EAAI,IAE3B3H,IAAI8B,QAAQ,MAAOmF,UAGlC3C,OAAS,CACL,QACA,QACA,OACA,QACA,MACA,OACA,SACA,MACA,SACA,SACA,SACA,UAGGF,OAAOC,aAAa,QAAS,CACpCC,OACAC,YAAaD,OACbE,SAAU,sDAAsDtE,MAAM,KACtEuE,cAAe,wCAAwCvE,MAAM,KAC7DwE,YAAa,gBAAgBxE,MAAM,KACnC6H,oBAAoB,EACpB7C,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,0BAEVb,cAAe,MACfC,KAAM,SAAUC,OACZ,MAAO,MAAQA,OAEnBC,SAAU,SAAUkD,KAAMC,OAAQhD,SAC9B,OAAI+C,KAAO,GACA,IAEA,KAGfvC,SAAU,CACNC,QAAS,wBACTC,QAAS,uBACTC,SAAU,uBACVC,QAAS,sBACTC,SAAU,uBACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,SACRC,KAAM,SACNC,EAAGsB,UAAU,KACbrB,GAAIqB,UAAU,KACdpB,EAAGoB,UAAU,KACbnB,GAAImB,UAAU,KACdlB,EAAGkB,UAAU,KACbjB,GAAIiB,UAAU,KACdhB,EAAGgB,UAAU,KACbf,GAAIe,UAAU,KACdd,EAAGc,UAAU,KACbb,GAAIa,UAAU,KACdZ,EAAGY,UAAU,KACbX,GAAIW,UAAU,MAElBS,WAAY,SAAUN,QAClB,OAAOA,OAAO9F,QAAQ,KAAM,MAEhCoF,KAAM,CACFC,IAAK,EACLC,IAAK,KAtJyBC,CAAQ,oBAAQ,4FCDlD,SAAWjD,QAAU,aAIdA,OAAOC,aAAa,QAAS,CACpCC,OAAQ,wEAAwEpE,MAC5E,KAEJqE,YACI,wEAAwErE,MACpE,KAERsE,SAAU,sDAAsDtE,MAAM,KACtEuE,cAAe,wCAAwCvE,MAAM,KAC7DwE,YAAa,gBAAgBxE,MAAM,KACnC6H,oBAAoB,EACpB7C,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,0BAEVC,SAAU,CACNC,QAAS,wBACTC,QAAS,sBACTC,SAAU,uBACVC,QAAS,sBACTC,SAAU,uBACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,QACRC,KAAM,SACNC,EAAG,OACHC,GAAI,WACJC,EAAG,QACHC,GAAI,WACJC,EAAG,OACHC,GAAI,WACJC,EAAG,MACHC,GAAI,UACJC,EAAG,MACHC,GAAI,UACJC,EAAG,MACHC,GAAI,YAERI,KAAM,CACFC,IAAK,EACLC,IAAK,MArDyBC,CAAQ,oBAAQ,4FCGlD,SAAWjD,QAAU,aAIzB,IAAI+D,UAAY,CACR,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,KAEPb,WAAa,SAAUC,GACnB,OAAa,IAANA,EACD,EACM,IAANA,EACE,EACM,IAANA,EACE,EACAA,EAAI,KAAO,GAAKA,EAAI,KAAO,GACzB,EACAA,EAAI,KAAO,GACT,EACA,GAElBC,QAAU,CACNrB,EAAG,CACC,eACA,cACA,CAAC,UAAW,WACZ,UACA,WACA,YAEJE,EAAG,CACC,eACA,cACA,CAAC,UAAW,WACZ,WACA,WACA,YAEJE,EAAG,CACC,cACA,aACA,CAAC,SAAU,UACX,WACA,UACA,WAEJE,EAAG,CACC,aACA,WACA,CAAC,QAAS,SACV,UACA,WACA,UAEJE,EAAG,CACC,aACA,WACA,CAAC,QAAS,SACV,UACA,UACA,UAEJE,EAAG,CACC,aACA,WACA,CAAC,QAAS,SACV,WACA,WACA,WAGRY,UAAY,SAAUC,GAClB,OAAO,SAAUT,OAAQU,cAAeC,OAAQC,UAC5C,IAAIC,EAAIR,WAAWL,QACfjH,IAAMwH,QAAQE,GAAGJ,WAAWL,SAIhC,OAHU,IAANa,IACA9H,IAAMA,IAAI2H,cAAgB,EAAI,IAE3B3H,IAAI8B,QAAQ,MAAOmF,UAGlC3C,OAAS,CACL,QACA,SACA,OACA,QACA,OACA,QACA,QACA,QACA,SACA,SACA,SACA,UAGGF,OAAOC,aAAa,QAAS,CACpCC,OACAC,YAAaD,OACbE,SAAU,sDAAsDtE,MAAM,KACtEuE,cAAe,wCAAwCvE,MAAM,KAC7DwE,YAAa,gBAAgBxE,MAAM,KACnC6H,oBAAoB,EACpB7C,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,0BAEVb,cAAe,MACfC,KAAM,SAAUC,OACZ,MAAO,MAAQA,OAEnBC,SAAU,SAAUkD,KAAMC,OAAQhD,SAC9B,OAAI+C,KAAO,GACA,IAEA,KAGfvC,SAAU,CACNC,QAAS,wBACTC,QAAS,uBACTC,SAAU,uBACVC,QAAS,sBACTC,SAAU,uBACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,SACRC,KAAM,SACNC,EAAGsB,UAAU,KACbrB,GAAIqB,UAAU,KACdpB,EAAGoB,UAAU,KACbnB,GAAImB,UAAU,KACdlB,EAAGkB,UAAU,KACbjB,GAAIiB,UAAU,KACdhB,EAAGgB,UAAU,KACbf,GAAIe,UAAU,KACdd,EAAGc,UAAU,KACbb,GAAIa,UAAU,KACdZ,EAAGY,UAAU,KACbX,GAAIW,UAAU,MAElBW,SAAU,SAAUR,QAChB,OAAOA,OAAO9F,QAAQ,KAAM,MAEhCoG,WAAY,SAAUN,QAClB,OAAOA,OACF9F,QAAQ,OAAO,SAAUwB,OACtB,OAAO6E,UAAU7E,UAEpBxB,QAAQ,KAAM,MAEvBoF,KAAM,CACFC,IAAK,EACLC,IAAK,MAzKyBC,CAAQ,oBAAQ,4FCIlD,SAAWjD,QAAU,aAIdA,OAAOC,aAAa,QAAS,CACpCC,OAAQ,wEAAwEpE,MAC5E,KAEJqE,YACI,wEAAwErE,MACpE,KAERsE,SAAU,sDAAsDtE,MAAM,KACtEuE,cAAe,wCAAwCvE,MAAM,KAC7DwE,YAAa,gBAAgBxE,MAAM,KACnC6H,oBAAoB,EACpB7C,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,0BAEVC,SAAU,CACNC,QAAS,wBACTC,QAAS,sBACTC,SAAU,uBACVC,QAAS,sBACTC,SAAU,uBACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,QACRC,KAAM,SACNC,EAAG,OACHC,GAAI,WACJC,EAAG,QACHC,GAAI,WACJC,EAAG,OACHC,GAAI,WACJC,EAAG,MACHC,GAAI,UACJC,EAAG,MACHC,GAAI,UACJC,EAAG,MACHC,GAAI,YAERI,KAAM,CACFC,IAAK,EACLC,IAAK,KArDyBC,CAAQ,oBAAQ,2FCElD,SAAWjD,QAAU,aAIzB,IAAI+D,UAAY,CACR,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,KAEPE,UAAY,CACR,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,KAGFjE,OAAOC,aAAa,QAAS,CACpCC,OAAQ,iGAAiGpE,MACrG,KAEJqE,YACI,0DAA0DrE,MAAM,KACpEsE,SAAU,sDAAsDtE,MAAM,KACtEuE,cAAe,wCAAwCvE,MAAM,KAC7DwE,YAAa,gBAAgBxE,MAAM,KACnC6H,oBAAoB,EACpB7C,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,0BAEVb,cAAe,MACfC,KAAM,SAAUC,OACZ,MAAO,MAAQA,OAEnBC,SAAU,SAAUkD,KAAMC,OAAQhD,SAC9B,OAAI+C,KAAO,GACA,IAEA,KAGfvC,SAAU,CACNC,QAAS,wBACTC,QAAS,sBACTC,SAAU,uBACVC,QAAS,sBACTC,SAAU,uBACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,QACRC,KAAM,SACNC,EAAG,OACHC,GAAI,WACJC,EAAG,QACHC,GAAI,WACJC,EAAG,OACHC,GAAI,WACJC,EAAG,MACHC,GAAI,UACJC,EAAG,MACHC,GAAI,UACJC,EAAG,MACHC,GAAI,YAERsB,SAAU,SAAUR,QAChB,OAAOA,OACF9F,QAAQ,eAAe,SAAUwB,OAC9B,OAAO+E,UAAU/E,UAEpBpD,MAAM,IACNoI,UACAlM,KAAK,IACL0F,QAAQ,2BAA2B,SAAUwB,OAC1C,OAAO+E,UAAU/E,UAEpBpD,MAAM,IACNoI,UACAlM,KAAK,IACL0F,QAAQ,KAAM,MAEvBoG,WAAY,SAAUN,QAClB,OAAOA,OACF9F,QAAQ,OAAO,SAAUwB,OACtB,OAAO6E,UAAU7E,UAEpBxB,QAAQ,KAAM,MAEvBoF,KAAM,CACFC,IAAK,EACLC,IAAK,KA9GyBC,CAAQ,oBAAQ,4FCGlD,SAAWjD,QAAU,aAIzB,IAAI+D,UAAY,CACR,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,KAEPE,UAAY,CACR,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,KAGFjE,OAAOC,aAAa,QAAS,CACpCC,OAAQ,6EAA6EpE,MACjF,KAEJqE,YACI,6EAA6ErE,MACzE,KAERsE,SAAU,sDAAsDtE,MAAM,KACtEuE,cAAe,wCAAwCvE,MAAM,KAC7DwE,YAAa,gBAAgBxE,MAAM,KACnC6H,oBAAoB,EACpB7C,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,0BAEVb,cAAe,MACfC,KAAM,SAAUC,OACZ,MAAO,MAAQA,OAEnBC,SAAU,SAAUkD,KAAMC,OAAQhD,SAC9B,OAAI+C,KAAO,GACA,IAEA,KAGfvC,SAAU,CACNC,QAAS,wBACTC,QAAS,sBACTC,SAAU,uBACVC,QAAS,sBACTC,SAAU,uBACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,QACRC,KAAM,SACNC,EAAG,OACHC,GAAI,WACJC,EAAG,QACHC,GAAI,WACJC,EAAG,OACHC,GAAI,WACJC,EAAG,MACHC,GAAI,UACJC,EAAG,MACHC,GAAI,UACJC,EAAG,MACHC,GAAI,YAERsB,SAAU,SAAUR,QAChB,OAAOA,OACF9F,QAAQ,iBAAiB,SAAUwB,OAChC,OAAO+E,UAAU/E,UAEpBxB,QAAQ,KAAM,MAEvBoG,WAAY,SAAUN,QAClB,OAAOA,OACF9F,QAAQ,OAAO,SAAUwB,OACtB,OAAO6E,UAAU7E,UAEpBxB,QAAQ,KAAM,MAEvBoF,KAAM,CACFC,IAAK,EACLC,IAAK,KAvGyBC,CAAQ,oBAAQ,4FCGlD,SAAWjD,QAAU,aAIdA,OAAOC,aAAa,QAAS,CACpCC,OAAQ,yEAAyEpE,MAC7E,KAEJqE,YACI,yEAAyErE,MACrE,KAERsE,SAAU,sDAAsDtE,MAAM,KACtEuE,cAAe,wCAAwCvE,MAAM,KAC7DwE,YAAa,gBAAgBxE,MAAM,KACnC6H,oBAAoB,EACpB7C,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,0BAEVC,SAAU,CACNC,QAAS,wBACTC,QAAS,sBACTC,SAAU,uBACVC,QAAS,sBACTC,SAAU,uBACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,QACRC,KAAM,SACNC,EAAG,OACHC,GAAI,WACJC,EAAG,QACHC,GAAI,WACJC,EAAG,OACHC,GAAI,WACJC,EAAG,MACHC,GAAI,UACJC,EAAG,MACHC,GAAI,UACJC,EAAG,MACHC,GAAI,YAERI,KAAM,CACFC,IAAK,EACLC,IAAK,KArDyBC,CAAQ,oBAAQ,2FCKlD,SAAWjD,QAAU,aAIzB,IAAI+D,UAAY,CACR,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,KAEPE,UAAY,CACR,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,KAETf,WAAa,SAAUC,GACnB,OAAa,IAANA,EACD,EACM,IAANA,EACE,EACM,IAANA,EACE,EACAA,EAAI,KAAO,GAAKA,EAAI,KAAO,GACzB,EACAA,EAAI,KAAO,GACT,EACA,GAElBC,QAAU,CACNrB,EAAG,CACC,eACA,cACA,CAAC,UAAW,WACZ,UACA,WACA,YAEJE,EAAG,CACC,eACA,cACA,CAAC,UAAW,WACZ,WACA,WACA,YAEJE,EAAG,CACC,cACA,aACA,CAAC,SAAU,UACX,WACA,UACA,WAEJE,EAAG,CACC,aACA,WACA,CAAC,QAAS,SACV,UACA,WACA,UAEJE,EAAG,CACC,aACA,WACA,CAAC,QAAS,SACV,UACA,UACA,UAEJE,EAAG,CACC,aACA,WACA,CAAC,QAAS,SACV,WACA,WACA,WAGRY,UAAY,SAAUC,GAClB,OAAO,SAAUT,OAAQU,cAAeC,OAAQC,UAC5C,IAAIC,EAAIR,WAAWL,QACfjH,IAAMwH,QAAQE,GAAGJ,WAAWL,SAIhC,OAHU,IAANa,IACA9H,IAAMA,IAAI2H,cAAgB,EAAI,IAE3B3H,IAAI8B,QAAQ,MAAOmF,UAGlC3C,OAAS,CACL,QACA,SACA,OACA,QACA,OACA,QACA,QACA,QACA,SACA,SACA,SACA,UAGCF,OAAOC,aAAa,KAAM,CAC/BC,OACAC,YAAaD,OACbE,SAAU,sDAAsDtE,MAAM,KACtEuE,cAAe,wCAAwCvE,MAAM,KAC7DwE,YAAa,gBAAgBxE,MAAM,KACnC6H,oBAAoB,EACpB7C,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,0BAEVb,cAAe,MACfC,KAAM,SAAUC,OACZ,MAAO,MAAQA,OAEnBC,SAAU,SAAUkD,KAAMC,OAAQhD,SAC9B,OAAI+C,KAAO,GACA,IAEA,KAGfvC,SAAU,CACNC,QAAS,wBACTC,QAAS,uBACTC,SAAU,uBACVC,QAAS,sBACTC,SAAU,uBACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,SACRC,KAAM,SACNC,EAAGsB,UAAU,KACbrB,GAAIqB,UAAU,KACdpB,EAAGoB,UAAU,KACbnB,GAAImB,UAAU,KACdlB,EAAGkB,UAAU,KACbjB,GAAIiB,UAAU,KACdhB,EAAGgB,UAAU,KACbf,GAAIe,UAAU,KACdd,EAAGc,UAAU,KACbb,GAAIa,UAAU,KACdZ,EAAGY,UAAU,KACbX,GAAIW,UAAU,MAElBW,SAAU,SAAUR,QAChB,OAAOA,OACF9F,QAAQ,iBAAiB,SAAUwB,OAChC,OAAO+E,UAAU/E,UAEpBxB,QAAQ,KAAM,MAEvBoG,WAAY,SAAUN,QAClB,OAAOA,OACF9F,QAAQ,OAAO,SAAUwB,OACtB,OAAO6E,UAAU7E,UAEpBxB,QAAQ,KAAM,MAEvBoF,KAAM,CACFC,IAAK,EACLC,IAAK,MAzLyBC,CAAQ,oBAAQ,4FCClD,SAAWjD,QAAU,aAIzB,IAAImE,SAAW,CACX,EAAG,QACH,EAAG,QACH,EAAG,QACH,GAAI,QACJ,GAAI,QACJ,EAAG,OACH,EAAG,OACH,GAAI,OACJ,GAAI,OACJ,EAAG,QACH,EAAG,QACH,IAAK,QACL,EAAG,OACH,EAAG,QACH,GAAI,QACJ,GAAI,QACJ,GAAI,QACJ,GAAI,SAGCnE,OAAOC,aAAa,KAAM,CAC/BC,OAAQ,+EAA+EpE,MACnF,KAEJqE,YAAa,kDAAkDrE,MAAM,KACrEsE,SACI,qEAAqEtE,MACjE,KAERuE,cAAe,8BAA8BvE,MAAM,KACnDwE,YAAa,uBAAuBxE,MAAM,KAC1C6H,oBAAoB,EACpB7C,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,2BAEVC,SAAU,CACNC,QAAS,kBACTC,QAAS,kBACTC,SAAU,+BACVC,QAAS,aACTC,SAAU,+BACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,WACRC,KAAM,WACNC,EAAG,kBACHC,GAAI,YACJC,EAAG,aACHC,GAAI,YACJC,EAAG,WACHC,GAAI,UACJC,EAAG,UACHC,GAAI,SACJC,EAAG,SACHC,GAAI,QACJC,EAAG,SACHC,GAAI,SAERnC,cAAe,0BACfC,KAAM,SAAUC,OACZ,MAAO,mBAAmB1I,KAAK0I,QAEnCC,SAAU,SAAUkD,KAAMC,OAAQhD,SAC9B,OAAI+C,KAAO,EACA,OACAA,KAAO,GACP,QACAA,KAAO,GACP,SAEA,SAGfjB,uBAAwB,wCACxBC,QAAS,SAAUC,QACf,GAAe,IAAXA,OAEA,OAAOA,OAAS,QAEpB,IAAIuB,EAAIvB,OAAS,GACbwB,EAAKxB,OAAS,IAAOuB,EACrBE,EAAIzB,QAAU,IAAM,IAAM,KAC9B,OAAOA,QAAUsB,SAASC,IAAMD,SAASE,IAAMF,SAASG,KAE5DxB,KAAM,CACFC,IAAK,EACLC,IAAK,KApGyBC,CAAQ,oBAAQ,4FCKlD,SAAWjD,QAAU,aAIzB,SAASuE,OAAOC,KAAMC,KAClB,IAAIC,MAAQF,KAAK1I,MAAM,KACvB,OAAO2I,IAAM,IAAO,GAAKA,IAAM,KAAQ,GACjCC,MAAM,GACND,IAAM,IAAM,GAAKA,IAAM,IAAM,IAAMA,IAAM,IAAM,IAAMA,IAAM,KAAO,IAChEC,MAAM,GACNA,MAAM,GAElB,SAASC,uBAAuB9B,OAAQU,cAAe9I,KASnD,MAAY,MAARA,IACO8I,cAAgB,UAAY,UACpB,MAAR9I,IACA8I,cAAgB,UAAY,UAE5BV,OAAS,IAAM0B,OAbb,CACTvC,GAAIuB,cAAgB,yBAA2B,yBAC/CrB,GAAIqB,cAAgB,yBAA2B,yBAC/CnB,GAAImB,cAAgB,yBAA2B,yBAC/CjB,GAAI,iBACJE,GAAI,uBACJE,GAAI,kBAOgCjI,MAAOoI,QAI1C7C,OAAOC,aAAa,KAAM,CAC/BC,OAAQ,CACJ0E,OAAQ,uGAAuG9I,MAC3G,KAEJ+I,WACI,qGAAqG/I,MACjG,MAGZqE,YACI,0DAA0DrE,MAAM,KACpEsE,SAAU,CACNwE,OAAQ,0DAA0D9I,MAC9D,KAEJ+I,WACI,0DAA0D/I,MACtD,KAERgJ,SAAU,+CAEdzE,cAAe,uBAAuBvE,MAAM,KAC5CwE,YAAa,uBAAuBxE,MAAM,KAC1CgF,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,iBACJC,IAAK,wBACLC,KAAM,+BAEVC,SAAU,CACNC,QAAS,eACTC,QAAS,gBACTE,QAAS,eACTD,SAAU,WACN,MAAO,mBAEXE,SAAU,WACN,OAAQpK,KAAKyN,OACT,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACD,MAAO,0BACX,KAAK,EACL,KAAK,EACL,KAAK,EACD,MAAO,2BAGnBpD,SAAU,KAEdC,aAAc,CACVC,OAAQ,UACRC,KAAM,UACNC,EAAG,kBACHE,EAAG0C,uBACHzC,GAAIyC,uBACJxC,EAAGwC,uBACHvC,GAAIuC,uBACJtC,EAAG,QACHC,GAAIqC,uBACJpC,EAAG,QACHC,GAAImC,uBACJlC,EAAG,MACHC,GAAIiC,wBAERpE,cAAe,yBACfC,KAAM,SAAUC,OACZ,MAAO,iBAAiB1I,KAAK0I,QAEjCC,SAAU,SAAUkD,KAAMC,OAAQhD,SAC9B,OAAI+C,KAAO,EACA,OACAA,KAAO,GACP,SACAA,KAAO,GACP,MAEA,UAGfjB,uBAAwB,mBACxBC,QAAS,SAAUC,OAAQmC,QACvB,OAAQA,QACJ,IAAK,IACL,IAAK,IACL,IAAK,MACL,IAAK,IACL,IAAK,IACD,OAAQnC,OAAS,IAAO,GAAKA,OAAS,IAAO,GACzCA,OAAS,KAAQ,IACjBA,OAAS,KAAQ,GAEfA,OAAS,KADTA,OAAS,KAEnB,IAAK,IACD,OAAOA,OAAS,MACpB,QACI,OAAOA,SAGnBC,KAAM,CACFC,IAAK,EACLC,IAAK,KA1IyBC,CAAQ,oBAAQ,4FCClD,SAAWjD,QAAU,aAIhBA,OAAOC,aAAa,KAAM,CAC/BC,OAAQ,oFAAoFpE,MACxF,KAEJqE,YAAa,kDAAkDrE,MAAM,KACrEsE,SAAU,yDAAyDtE,MAC/D,KAEJuE,cAAe,8BAA8BvE,MAAM,KACnDwE,YAAa,uBAAuBxE,MAAM,KAC1CgF,eAAgB,CACZC,GAAI,OACJC,IAAK,UACLC,EAAG,YACHC,GAAI,cACJC,IAAK,mBACLC,KAAM,0BAEVC,SAAU,CACNC,QAAS,cACTC,QAAS,cACTC,SAAU,cACVC,QAAS,eACTC,SAAU,WACN,OAAQpK,KAAKyN,OACT,KAAK,EACL,KAAK,EACL,KAAK,EACD,MAAO,yBACX,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACD,MAAO,0BAGnBpD,SAAU,KAEdC,aAAc,CACVC,OAAQ,UACRC,KAAM,WACNC,EAAG,kBACHC,GAAI,aACJC,EAAG,SACHC,GAAI,YACJC,EAAG,MACHC,GAAI,UACJC,EAAG,MACHC,GAAI,UACJ2C,EAAG,UACHC,GAAI,aACJ3C,EAAG,QACHC,GAAI,YACJC,EAAG,SACHC,GAAI,aAERC,uBAAwB,8BACxBC,QAAS,SAAUC,QACf,IAAIsC,UAAYtC,OAAS,GACrBuC,YAAcvC,OAAS,IAC3B,OAAe,IAAXA,OACOA,OAAS,MACO,IAAhBuC,YACAvC,OAAS,MACTuC,YAAc,IAAMA,YAAc,GAClCvC,OAAS,MACK,IAAdsC,UACAtC,OAAS,MACK,IAAdsC,UACAtC,OAAS,MACK,IAAdsC,WAAiC,IAAdA,UACnBtC,OAAS,MAETA,OAAS,OAGxBC,KAAM,CACFC,IAAK,EACLC,IAAK,KArFyBC,CAAQ,oBAAQ,4FCGlD,SAAWjD,QAAU,aAIhBA,OAAOC,aAAa,KAAM,CAC/BC,OAAQ,8IAA8IpE,MAClJ,KAEJqE,YAAa,iDAAiDrE,MAAM,KACpEsE,SAAU,+CAA+CtE,MAAM,KAC/DuE,cAAe,8BAA8BvE,MAAM,KACnDwE,YAAa,uBAAuBxE,MAAM,KAC1CgF,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,2BACJC,IAAK,wCACLC,KAAM,8CAEVC,SAAU,CACNC,QAAS,eACTC,QAAS,iBACTC,SAAU,qBACVC,QAAS,iBACTC,SAAU,yBACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,UACRC,KAAM,aACNC,EAAG,kBACHC,GAAI,aACJC,EAAG,eACHC,GAAI,YACJC,EAAG,aACHC,GAAI,UACJC,EAAG,aACHC,GAAI,UACJC,EAAG,aACHC,GAAI,UACJC,EAAG,YACHC,GAAI,UAERI,KAAM,CACFC,IAAK,EACLC,IAAK,KAjDyBC,CAAQ,oBAAQ,4FCGlD,SAAWjD,QAAU,aAIzB,IAAI+D,UAAY,CACR,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,KAEPE,UAAY,CACR,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,KAGFjE,OAAOC,aAAa,QAAS,CACpCC,OAAQ,0FAA0FpE,MAC9F,KAEJqE,YACI,mEAAmErE,MAC/D,KAERsE,SAAU,4DAA4DtE,MAClE,KAEJuE,cAAe,uCAAuCvE,MAAM,KAC5DwE,YAAa,kCAAkCxE,MAAM,KACrDgF,eAAgB,CACZC,GAAI,aACJC,IAAK,gBACLC,EAAG,aACHC,GAAI,cACJC,IAAK,0BACLC,KAAM,iCAEVC,SAAU,CACNC,QAAS,UACTC,QAAS,gBACTC,SAAU,WACVC,QAAS,aACTC,SAAU,gBACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,SACRC,KAAM,SACNC,EAAG,eACHC,GAAI,aACJC,EAAG,WACHC,GAAI,WACJC,EAAG,WACHC,GAAI,WACJC,EAAG,SACHC,GAAI,SACJC,EAAG,SACHC,GAAI,SACJC,EAAG,SACHC,GAAI,UAERsB,SAAU,SAAUR,QAChB,OAAOA,OAAO9F,QAAQ,iBAAiB,SAAUwB,OAC7C,OAAO+E,UAAU/E,WAGzB4E,WAAY,SAAUN,QAClB,OAAOA,OAAO9F,QAAQ,OAAO,SAAUwB,OACnC,OAAO6E,UAAU7E,WAIzBqB,cAAe,uCACf8E,aAAc,SAAUzB,KAAMlD,UAI1B,OAHa,KAATkD,OACAA,KAAO,GAEM,QAAblD,SACOkD,KAAO,EAAIA,KAAOA,KAAO,GACZ,QAAblD,UAEa,SAAbA,SADAkD,KAGa,UAAblD,SACAkD,MAAQ,EAAIA,KAAOA,KAAO,GACb,UAAblD,UAEa,YAAbA,SADAkD,KAAO,QACX,GAKXlD,SAAU,SAAUkD,KAAMC,OAAQhD,SAC9B,OAAI+C,KAAO,EACA,MACAA,KAAO,EACP,MACAA,KAAO,GACP,OACAA,KAAO,GACP,QACAA,KAAO,GACP,QACAA,KAAO,GACP,UAEA,OAGfd,KAAM,CACFC,IAAK,EACLC,IAAK,KA/HyBC,CAAQ,oBAAQ,4FCGlD,SAAWjD,QAAU,aAIzB,IAAI+D,UAAY,CACR,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,KAEPE,UAAY,CACR,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,KAGJjE,OAAOC,aAAa,KAAM,CAC/BC,OAAQ,0FAA0FpE,MAC9F,KAEJqE,YACI,mEAAmErE,MAC/D,KAERsE,SAAU,4DAA4DtE,MAClE,KAEJuE,cAAe,uCAAuCvE,MAAM,KAC5DwE,YAAa,kCAAkCxE,MAAM,KACrDgF,eAAgB,CACZC,GAAI,aACJC,IAAK,gBACLC,EAAG,aACHC,GAAI,cACJC,IAAK,0BACLC,KAAM,iCAEVC,SAAU,CACNC,QAAS,UACTC,QAAS,gBACTC,SAAU,WACVC,QAAS,aACTC,SAAU,gBACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,SACRC,KAAM,SACNC,EAAG,eACHC,GAAI,aACJC,EAAG,WACHC,GAAI,WACJC,EAAG,WACHC,GAAI,WACJC,EAAG,SACHC,GAAI,SACJC,EAAG,SACHC,GAAI,SACJC,EAAG,SACHC,GAAI,UAERsB,SAAU,SAAUR,QAChB,OAAOA,OAAO9F,QAAQ,iBAAiB,SAAUwB,OAC7C,OAAO+E,UAAU/E,WAGzB4E,WAAY,SAAUN,QAClB,OAAOA,OAAO9F,QAAQ,OAAO,SAAUwB,OACnC,OAAO6E,UAAU7E,WAGzBqB,cAAe,2BACf8E,aAAc,SAAUzB,KAAMlD,UAI1B,OAHa,KAATkD,OACAA,KAAO,GAGO,QAAblD,UAAsBkD,MAAQ,GACjB,UAAblD,UAAwBkD,KAAO,GACnB,UAAblD,SAEOkD,KAAO,GAEPA,MAGflD,SAAU,SAAUkD,KAAMC,OAAQhD,SAC9B,OAAI+C,KAAO,EACA,MACAA,KAAO,GACP,OACAA,KAAO,GACP,QACAA,KAAO,GACP,QAEA,OAGfd,KAAM,CACFC,IAAK,EACLC,IAAK,KArHyBC,CAAQ,oBAAQ,4FCGlD,SAAWjD,QAAU,aAIzB,IAAI+D,UAAY,CACR,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,KAEPE,UAAY,CACR,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,KAGJjE,OAAOC,aAAa,KAAM,CAC/BC,OAAQ,qJAAqJpE,MACzJ,KAEJqE,YACI,iEAAiErE,MAC7D,KAERwJ,iBAAkB,gBAClBC,kBAAkB,EAClBnF,SACI,gFAAgFtE,MAC5E,KAERuE,cAAe,oDAAoDvE,MAC/D,KAEJwE,YAAa,6BAA6BxE,MAAM,KAChDgF,eAAgB,CACZC,GAAI,SACJC,IAAK,YACLC,EAAG,aACHC,GAAI,cACJC,IAAK,sBACLC,KAAM,6BAEVC,SAAU,CACNC,QAAS,cACTC,QAAS,cACTC,SAAU,wBACVC,QAAS,YACTC,SAAU,4BACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,QACRC,KAAM,WACNC,EAAG,QACHC,GAAI,YACJC,EAAG,aACHC,GAAI,WACJC,EAAG,cACHC,GAAI,YACJC,EAAG,WACHC,GAAI,UACJC,EAAG,YACHC,GAAI,UACJC,EAAG,UACHC,GAAI,SAERsB,SAAU,SAAUR,QAChB,OAAOA,OAAO9F,QAAQ,iBAAiB,SAAUwB,OAC7C,OAAO+E,UAAU/E,WAGzB4E,WAAY,SAAUN,QAClB,OAAOA,OAAO9F,QAAQ,OAAO,SAAUwB,OACnC,OAAO6E,UAAU7E,WAGzBqB,cAAe,wCACf8E,aAAc,SAAUzB,KAAMlD,UAI1B,OAHa,KAATkD,OACAA,KAAO,GAGO,WAAblD,UAAyBkD,MAAQ,GACpB,YAAblD,UAA0BkD,KAAO,GACrB,YAAblD,SAEOkD,KAAO,GAEPA,MAGflD,SAAU,SAAUkD,KAAMC,OAAQhD,SAC9B,OAAI+C,KAAO,EACA,SACAA,KAAO,GACP,UACAA,KAAO,GACP,UACAA,KAAO,GACP,UAEA,UAGfd,KAAM,CACFC,IAAK,EACLC,IAAK,KA1HyBC,CAAQ,oBAAQ,4FCGlD,SAAWjD,QAAU,aAIzB,SAASwF,yBAAyB3C,OAAQU,cAAe9I,KAMrD,OAAOoI,OAAS,IAAM4C,SALT,CACTvD,GAAI,WACJM,GAAI,MACJF,GAAI,UAE8B7H,KAAMoI,QAEhD,SAAS6C,wBAAwB7C,QAC7B,OAAQ8C,WAAW9C,SACf,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACD,OAAOA,OAAS,SACpB,QACI,OAAOA,OAAS,UAG5B,SAAS8C,WAAW9C,QAChB,OAAIA,OAAS,EACF8C,WAAW9C,OAAS,IAExBA,OAEX,SAAS4C,SAASzG,KAAM6D,QACpB,OAAe,IAAXA,OACO+C,aAAa5G,MAEjBA,KAEX,SAAS4G,aAAa5G,MAClB,IAAI6G,cAAgB,CAChB5D,EAAG,IACHoC,EAAG,IACHhC,EAAG,KAEP,YAAsCyD,IAAlCD,cAAc7G,KAAK+G,OAAO,IACnB/G,KAEJ6G,cAAc7G,KAAK+G,OAAO,IAAM/G,KAAKY,UAAU,GAG1D,IAAIoG,YAAc,CACV,QACA,cACA,QACA,QACA,QACA,cACA,QACA,QACA,QACA,QACA,OACA,SAEJC,YACI,6IACJC,kBACI,wFACJC,uBACI,2DACJC,kBAAoB,CAChB,QACA,QACA,WACA,iBACA,SACA,WACA,YAEJC,mBAAqB,CACjB,QACA,QACA,QACA,QACA,QACA,QACA,SAEJC,iBAAmB,CACf,OACA,OACA,eACA,QACA,OACA,OACA,QAGCtG,OAAOC,aAAa,KAAM,CAC/BC,OAAQ,gFAAgFpE,MACpF,KAEJqE,YAAa,mDAAmDrE,MAAM,KACtEsE,SAAU,6CAA6CtE,MAAM,KAC7DuE,cAAe,8BAA8BvE,MAAM,KACnDwE,YAAa,wBAAwBxE,MAAM,KAC3CyK,cAAeD,iBACfF,kBACAC,mBACAC,iBAEAL,YACAX,iBAAkBW,YAClBC,kBACAC,uBACAH,YACAQ,gBAAiBR,YACjBS,iBAAkBT,YAElBlF,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,sBACJC,IAAK,4BACLC,KAAM,mCAEVC,SAAU,CACNC,QAAS,gBACTC,QAAS,qBACTC,SAAU,eACVC,QAAS,gBACTC,SAAU,qBACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,YACRC,KAAM,SACNC,EAAG,wBACHC,GAAI,YACJC,EAAG,cACHC,GAAIsD,yBACJrD,EAAG,SACHC,GAAI,SACJC,EAAG,YACHC,GAAIkD,yBACJjD,EAAG,SACHC,GAAIgD,yBACJ/C,EAAG,WACHC,GAAIgD,yBAER/C,uBAAwB,kBACxBC,QAAS,SAAUC,QAEf,OAAOA,QADiB,IAAXA,OAAe,KAAO,QAGvCC,KAAM,CACFC,IAAK,EACLC,IAAK,GAETzC,cAAe,YACfC,KAAM,SAAUkG,OACZ,MAAiB,SAAVA,OAEXhG,SAAU,SAAUkD,KAAMC,OAAQhD,SAC9B,OAAO+C,KAAO,GAAK,OAAS,UAtKEX,CAAQ,oBAAQ,2FCKlD,SAAWjD,QAAU,aAIzB,SAAS2G,oBAAoB9D,OAAQU,cAAe9I,IAAKgJ,UACrD,GACS,MADDhJ,IAEA,OAAO8I,cACD,eACAE,SACE,eACA,eAIpB,SAASmD,UAAU/D,OAAQU,cAAe9I,KACtC,IAAIoM,OAAShE,OAAS,IACtB,OAAQpI,KACJ,IAAK,KAQD,OANIoM,QADW,IAAXhE,OACU,UACQ,IAAXA,QAA2B,IAAXA,QAA2B,IAAXA,OAC7B,UAEA,UAGlB,IAAK,KAQD,OANIgE,QADW,IAAXhE,OACU,SACQ,IAAXA,QAA2B,IAAXA,QAA2B,IAAXA,OAC7B,SAEA,SAGlB,IAAK,IACD,MAAuB,YAC3B,IAAK,KAQD,OANIgE,QADW,IAAXhE,OACU,MACQ,IAAXA,QAA2B,IAAXA,QAA2B,IAAXA,OAC7B,OAEA,OAGlB,IAAK,KAMD,OAJIgE,QADW,IAAXhE,OACU,MAEA,OAGlB,IAAK,KAQD,OANIgE,QADW,IAAXhE,OACU,SACQ,IAAXA,QAA2B,IAAXA,QAA2B,IAAXA,OAC7B,UAEA,UAGlB,IAAK,KAQD,OANIgE,QADW,IAAXhE,OACU,SACQ,IAAXA,QAA2B,IAAXA,QAA2B,IAAXA,OAC7B,SAEA,UAMjB7C,OAAOC,aAAa,KAAM,CAC/BC,OAAQ,qFAAqFpE,MACzF,KAEJqE,YACI,8DAA8DrE,MAC1D,KAERyJ,kBAAkB,EAClBnF,SAAU,4DAA4DtE,MAClE,KAEJuE,cAAe,qCAAqCvE,MAAM,KAC1DwE,YAAa,uBAAuBxE,MAAM,KAC1C6H,oBAAoB,EACpB7C,eAAgB,CACZC,GAAI,OACJC,IAAK,UACLC,EAAG,aACHC,GAAI,eACJC,IAAK,oBACLC,KAAM,2BAEVC,SAAU,CACNC,QAAS,eACTC,QAAS,eACTC,SAAU,WACN,OAAQlK,KAAKyN,OACT,KAAK,EACD,MAAO,wBACX,KAAK,EACD,MAAO,uBACX,KAAK,EACD,MAAO,sBACX,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACD,MAAO,oBAGnBtD,QAAS,eACTC,SAAU,WACN,OAAQpK,KAAKyN,OACT,KAAK,EACL,KAAK,EACD,MAAO,uBACX,KAAK,EACD,MAAO,2BACX,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACD,MAAO,yBAGnBpD,SAAU,KAEdC,aAAc,CACVC,OAAQ,QACRC,KAAM,WACNC,EAAG,cACHC,GAAI4E,UACJ3E,EAAG0E,oBACHzE,GAAI0E,UACJzE,EAAGyE,UACHxE,GAAIwE,UACJvE,EAAG,MACHC,GAAIsE,UACJrE,EAAG,SACHC,GAAIoE,UACJnE,EAAG,SACHC,GAAIkE,WAERjE,uBAAwB,YACxBC,QAAS,MACTE,KAAM,CACFC,IAAK,EACLC,IAAK,KA5JyBC,CAAQ,oBAAQ,4FCClD,SAAWjD,QAAU,aAIhBA,OAAOC,aAAa,KAAM,CAC/BC,OAAQ,CACJ2E,WACI,oFAAoF/I,MAChF,KAER8I,OAAQ,qHAAqH9I,MACzH,KAEJgJ,SAAU,mBAEd3E,YACI,8DAA8DrE,MAC1D,KAERyJ,kBAAkB,EAClBnF,SACI,8DAA8DtE,MAC1D,KAERuE,cAAe,8BAA8BvE,MAAM,KACnDwE,YAAa,uBAAuBxE,MAAM,KAC1C6H,oBAAoB,EACpB7C,eAAgB,CACZC,GAAI,OACJC,IAAK,UACLC,EAAG,aACHC,GAAI,mBACJ4F,GAAI,aACJ3F,IAAK,gCACL4F,IAAK,mBACL3F,KAAM,qCACN4F,KAAM,wBAEV3F,SAAU,CACNC,QAAS,WACL,MAAO,YAA+B,IAAjBhK,KAAKqJ,QAAgB,MAAQ,MAAQ,QAE9DY,QAAS,WACL,MAAO,YAA+B,IAAjBjK,KAAKqJ,QAAgB,MAAQ,MAAQ,QAE9Da,SAAU,WACN,MAAO,YAA+B,IAAjBlK,KAAKqJ,QAAgB,MAAQ,MAAQ,QAE9Dc,QAAS,WACL,MAAO,YAA+B,IAAjBnK,KAAKqJ,QAAgB,MAAQ,MAAQ,QAE9De,SAAU,WACN,MACI,wBACkB,IAAjBpK,KAAKqJ,QAAgB,MAAQ,MAC9B,QAGRgB,SAAU,KAEdC,aAAc,CACVC,OAAQ,YACRC,KAAM,QACNC,EAAG,aACHC,GAAI,YACJC,EAAG,WACHC,GAAI,YACJC,EAAG,WACHC,GAAI,WACJC,EAAG,SACHC,GAAI,UACJC,EAAG,SACHC,GAAI,WACJC,EAAG,SACHC,GAAI,WAERC,uBAAwB,qBACxBC,QAAS,SAAUC,OAAQmC,QACvB,IAAIiC,OACW,IAAXpE,OACM,IACW,IAAXA,OACE,IACW,IAAXA,OACE,IACW,IAAXA,OACE,IACA,IAIhB,MAHe,MAAXmC,QAA6B,MAAXA,SAClBiC,OAAS,KAENpE,OAASoE,QAEpBnE,KAAM,CACFC,IAAK,EACLC,IAAK,KAlGyBC,CAAQ,oBAAQ,4FCGlD,SAAWjD,QAAU,aAIzB,IAAIE,OAAS,CACL2E,WACI,oFAAoF/I,MAChF,KAER8I,OAAQ,sFAAsF9I,MAC1F,KAEJgJ,SAAU,kCAEd3E,YAAc,kDAAkDrE,MAAM,KACtEkK,YAAc,CACV,QACA,QACA,QACA,QACA,QACA,yBACA,4BACA,QACA,QACA,QACA,QACA,SAIJC,YACI,wJAER,SAAS1B,OAAOpB,GACZ,OAAOA,EAAI,GAAKA,EAAI,GAAoB,MAAZA,EAAI,IAEpC,SAASyD,UAAU/D,OAAQU,cAAe9I,IAAKgJ,UAC3C,IAAIoD,OAAShE,OAAS,IACtB,OAAQpI,KACJ,IAAK,IACD,OAAO8I,eAAiBE,SAAW,aAAe,gBACtD,IAAK,KACD,OAAIF,eAAiBE,SACVoD,QAAUtC,OAAO1B,QAAU,UAAY,UAEvCgE,OAAS,YAExB,IAAK,IACD,OAAOtD,cAAgB,SAAWE,SAAW,SAAW,UAC5D,IAAK,KACD,OAAIF,eAAiBE,SACVoD,QAAUtC,OAAO1B,QAAU,SAAW,SAEtCgE,OAAS,WAExB,IAAK,IACD,OAAOtD,cAAgB,SAAWE,SAAW,SAAW,UAC5D,IAAK,KACD,OAAIF,eAAiBE,SACVoD,QAAUtC,OAAO1B,QAAU,SAAW,SAEtCgE,OAAS,WAExB,IAAK,IACD,OAAOtD,eAAiBE,SAAW,MAAQ,OAC/C,IAAK,KACD,OAAIF,eAAiBE,SACVoD,QAAUtC,OAAO1B,QAAU,MAAQ,OAEnCgE,OAAS,MAExB,IAAK,IACD,OAAOtD,eAAiBE,SAAW,QAAU,UACjD,IAAK,KACD,OAAIF,eAAiBE,SACVoD,QAAUtC,OAAO1B,QAAU,SAAW,UAEtCgE,OAAS,SAExB,IAAK,IACD,OAAOtD,eAAiBE,SAAW,MAAQ,QAC/C,IAAK,KACD,OAAIF,eAAiBE,SACVoD,QAAUtC,OAAO1B,QAAU,OAAS,OAEpCgE,OAAS,QAKvB7G,OAAOC,aAAa,KAAM,CAC/BC,OACAC,YACA8F,YACAX,iBAAkBW,YAGlBC,kBACI,uKACJC,uBACI,sDACJH,YACAQ,gBAAiBR,YACjBS,iBAAkBT,YAClB5F,SAAU,mDAAmDtE,MAAM,KACnEuE,cAAe,uBAAuBvE,MAAM,KAC5CwE,YAAa,uBAAuBxE,MAAM,KAC1CgF,eAAgB,CACZC,GAAI,OACJC,IAAK,UACLC,EAAG,aACHC,GAAI,eACJC,IAAK,oBACLC,KAAM,yBACNvD,EAAG,cAEPwD,SAAU,CACNC,QAAS,cACTC,QAAS,eACTC,SAAU,WACN,OAAQlK,KAAKyN,OACT,KAAK,EACD,MAAO,kBACX,KAAK,EACL,KAAK,EACD,MAAO,kBACX,KAAK,EACD,MAAO,mBACX,KAAK,EACD,MAAO,oBACX,KAAK,EACD,MAAO,iBACX,KAAK,EACD,MAAO,oBAGnBtD,QAAS,eACTC,SAAU,WACN,OAAQpK,KAAKyN,OACT,KAAK,EACD,MAAO,wBACX,KAAK,EACL,KAAK,EACD,MAAO,uBACX,KAAK,EACD,MAAO,wBACX,KAAK,EACL,KAAK,EACD,MAAO,uBACX,KAAK,EACD,MAAO,0BAGnBpD,SAAU,KAEdC,aAAc,CACVC,OAAQ,QACRC,KAAM,UACNC,EAAG6E,UACH5E,GAAI4E,UACJ3E,EAAG2E,UACH1E,GAAI0E,UACJzE,EAAGyE,UACHxE,GAAIwE,UACJvE,EAAGuE,UACHtE,GAAIsE,UACJrE,EAAGqE,UACHpE,GAAIoE,UACJnE,EAAGmE,UACHlE,GAAIkE,WAERjE,uBAAwB,YACxBC,QAAS,MACTE,KAAM,CACFC,IAAK,EACLC,IAAK,KAnLyBC,CAAQ,oBAAQ,2FCGlD,SAAWjD,QAAU,aAIhBA,OAAOC,aAAa,KAAM,CAC/BC,OAAQ,gEAAgEpE,MACpE,KAEJqE,YAAa,kDAAkDrE,MAAM,KACrEsE,SACI,oEAAoEtE,MAChE,KAERuE,cAAe,6BAA6BvE,MAAM,KAClDwE,YAAa,uBAAuBxE,MAAM,KAC1CgF,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,sCACJC,IAAK,6CACLC,KAAM,oDAEVC,SAAU,CACNC,QAAS,sBACTC,QAAS,sBACTE,QAAS,sBACTD,SAAU,4BACVE,SAAU,4BACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,SAAUoF,QAMd,OAAOA,QALK,UAAUC,KAAKD,QACrB,MACA,QAAQC,KAAKD,QACX,MACA,QAGZnF,KAAM,YACNC,EAAG,iBACHC,GAAI,aACJC,EAAG,YACHC,GAAI,WACJC,EAAG,YACHC,GAAI,WACJC,EAAG,UACHC,GAAI,SACJC,EAAG,WACHC,GAAI,UACJC,EAAG,UACHC,GAAI,UAERC,uBAAwB,cACxBC,QAAS,SACTE,KAAM,CACFC,IAAK,EACLC,IAAK,KA7DyBC,CAAQ,oBAAQ,4FCIlD,SAAWjD,QAAU,aAIhBA,OAAOC,aAAa,KAAM,CAC/BC,OAAQ,yFAAyFpE,MAC7F,KAEJqE,YAAa,qDAAqDrE,MAC9D,KAEJsE,SACI,+EAA+EtE,MAC3E,KAERuE,cAAe,+BAA+BvE,MAAM,KACpDwE,YAAa,uBAAuBxE,MAAM,KAC1C6H,oBAAoB,EAEpB7C,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,2BAEVC,SAAU,CACNC,QAAS,iBACTC,QAAS,gBACTC,SAAU,eACVC,QAAS,eACTC,SAAU,wBACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,UACRC,KAAM,WACNC,EAAG,mBACHC,GAAI,YACJC,EAAG,QACHC,GAAI,WACJC,EAAG,MACHC,GAAI,SACJC,EAAG,UACHC,GAAI,aACJC,EAAG,MACHC,GAAI,SACJC,EAAG,WACHC,GAAI,cAERC,uBAAwB,mCAExBC,QAAS,SAAUC,QACf,IACIoE,OAAS,GAiCb,OAlCQpE,OAyBA,GAEAoE,OADM,KA1BNpE,QA0BkB,KA1BlBA,QA0B8B,KA1B9BA,QA0B0C,KA1B1CA,QA0BsD,MA1BtDA,OA2BS,MAEA,MA7BTA,OA+BO,IACXoE,OA9BS,CACL,GACA,KACA,KACA,MACA,MACA,KACA,KACA,KACA,MACA,MACA,MACA,KACA,MACA,KACA,KACA,MACA,KACA,KACA,MACA,KACA,OAvBApE,SAkCDA,OAASoE,QAEpBnE,KAAM,CACFC,IAAK,EACLC,IAAK,KA/FyBC,CAAQ,oBAAQ,4FCElD,SAAWjD,QAAU,aAIhBA,OAAOC,aAAa,KAAM,CAC/BC,OAAQ,sFAAsFpE,MAC1F,KAEJqE,YAAa,kDAAkDrE,MAAM,KACrEsE,SAAU,qDAAqDtE,MAAM,KACrEuE,cAAe,8BAA8BvE,MAAM,KACnDwE,YAAa,uBAAuBxE,MAAM,KAC1CgF,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,eACJC,IAAK,qBACLC,KAAM,sCAEVC,SAAU,CACNC,QAAS,iBACTC,QAAS,oBACTC,SAAU,mBACVC,QAAS,iBACTC,SAAU,qBACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,QACRC,KAAM,WACNC,EAAG,cACHC,GAAI,cACJC,EAAG,WACHC,GAAI,cACJC,EAAG,UACHC,GAAI,WACJC,EAAG,SACHC,GAAI,UACJC,EAAG,WACHC,GAAI,aACJC,EAAG,QACHC,GAAI,SAERC,uBAAwB,YACxBC,QAAS,MACTE,KAAM,CACFC,IAAK,EACLC,IAAK,KAnDyBC,CAAQ,oBAAQ,2FCMlD,SAAWjD,QAAU,aAIzB,SAAS2G,oBAAoB9D,OAAQU,cAAe9I,IAAKgJ,UACrD,IAAImB,OAAS,CACT3C,EAAG,CAAC,cAAe,gBACnBE,EAAG,CAAC,cAAe,gBACnBE,EAAG,CAAC,UAAW,aACfC,GAAI,CAACO,OAAS,QAASA,OAAS,UAChCoC,EAAG,CAAC,aAAc,eAClB1C,EAAG,CAAC,YAAa,eACjBC,GAAI,CAACK,OAAS,UAAWA,OAAS,YAClCJ,EAAG,CAAC,WAAY,cAChBC,GAAI,CAACG,OAAS,SAAUA,OAAS,YAErC,OAAOU,cAAgBqB,OAAOnK,KAAK,GAAKmK,OAAOnK,KAAK,GAG7CuF,OAAOC,aAAa,QAAS,CACpCC,OAAQ,qFAAqFpE,MACzF,KAEJqE,YACI,6DAA6DrE,MAAM,KACvEyJ,kBAAkB,EAClBnF,SACI,8DAA8DtE,MAC1D,KAERuE,cAAe,8BAA8BvE,MAAM,KACnDwE,YAAa,uBAAuBxE,MAAM,KAC1C6H,oBAAoB,EACpB7C,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,eACJC,IAAK,qBACLC,KAAM,4BAEVC,SAAU,CACNC,QAAS,sBACTK,SAAU,IACVJ,QAAS,uBACTC,SAAU,qBACVC,QAAS,wBACTC,SAAU,gCAEdE,aAAc,CACVC,OAAQ,QACRC,KAAM,SACNC,EAAG,oBACHC,GAAI,cACJC,EAAG0E,oBACHzE,GAAI,aACJC,EAAGwE,oBACHvE,GAAI,aACJC,EAAGsE,oBACHrE,GAAIqE,oBACJ1B,EAAG0B,oBACHzB,GAAI,YACJ3C,EAAGoE,oBACHnE,GAAImE,oBACJlE,EAAGkE,oBACHjE,GAAIiE,qBAERhE,uBAAwB,YACxBC,QAAS,MACTE,KAAM,CACFC,IAAK,EACLC,IAAK,KA1EyBC,CAAQ,oBAAQ,2FCAlD,SAAWjD,QAAU,aAIzB,SAAS2G,oBAAoB9D,OAAQU,cAAe9I,IAAKgJ,UACrD,IAAImB,OAAS,CACT3C,EAAG,CAAC,cAAe,gBACnBE,EAAG,CAAC,cAAe,gBACnBE,EAAG,CAAC,UAAW,aACfC,GAAI,CAACO,OAAS,QAASA,OAAS,UAChCoC,EAAG,CAAC,aAAc,eAClB1C,EAAG,CAAC,YAAa,eACjBC,GAAI,CAACK,OAAS,UAAWA,OAAS,YAClCJ,EAAG,CAAC,WAAY,cAChBC,GAAI,CAACG,OAAS,SAAUA,OAAS,YAErC,OAAOU,cAAgBqB,OAAOnK,KAAK,GAAKmK,OAAOnK,KAAK,GAG7CuF,OAAOC,aAAa,QAAS,CACpCC,OAAQ,qFAAqFpE,MACzF,KAEJqE,YACI,6DAA6DrE,MAAM,KACvEyJ,kBAAkB,EAClBnF,SACI,8DAA8DtE,MAC1D,KAERuE,cAAe,uBAAuBvE,MAAM,KAC5CwE,YAAa,uBAAuBxE,MAAM,KAC1C6H,oBAAoB,EACpB7C,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,eACJC,IAAK,qBACLC,KAAM,4BAEVC,SAAU,CACNC,QAAS,sBACTK,SAAU,IACVJ,QAAS,uBACTC,SAAU,qBACVC,QAAS,wBACTC,SAAU,gCAEdE,aAAc,CACVC,OAAQ,QACRC,KAAM,SACNC,EAAG,oBACHC,GAAI,cACJC,EAAG0E,oBACHzE,GAAI,aACJC,EAAGwE,oBACHvE,GAAI,aACJC,EAAGsE,oBACHrE,GAAIqE,oBACJ1B,EAAG0B,oBACHzB,GAAI,YACJ3C,EAAGoE,oBACHnE,GAAImE,oBACJlE,EAAGkE,oBACHjE,GAAIiE,qBAERhE,uBAAwB,YACxBC,QAAS,MACTE,KAAM,CACFC,IAAK,EACLC,IAAK,KA1EyBC,CAAQ,oBAAQ,4FCKlD,SAAWjD,QAAU,aAIzB,SAAS2G,oBAAoB9D,OAAQU,cAAe9I,IAAKgJ,UACrD,IAAImB,OAAS,CACT3C,EAAG,CAAC,cAAe,gBACnBE,EAAG,CAAC,cAAe,gBACnBE,EAAG,CAAC,UAAW,aACfC,GAAI,CAACO,OAAS,QAASA,OAAS,UAChCoC,EAAG,CAAC,aAAc,eAClB1C,EAAG,CAAC,YAAa,eACjBC,GAAI,CAACK,OAAS,UAAWA,OAAS,YAClCJ,EAAG,CAAC,WAAY,cAChBC,GAAI,CAACG,OAAS,SAAUA,OAAS,YAErC,OAAOU,cAAgBqB,OAAOnK,KAAK,GAAKmK,OAAOnK,KAAK,GAG/CuF,OAAOC,aAAa,KAAM,CAC/BC,OAAQ,qFAAqFpE,MACzF,KAEJqE,YACI,6DAA6DrE,MAAM,KACvEyJ,kBAAkB,EAClBnF,SACI,8DAA8DtE,MAC1D,KAERuE,cAAe,8BAA8BvE,MAAM,KACnDwE,YAAa,uBAAuBxE,MAAM,KAC1C6H,oBAAoB,EACpB7C,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,eACJC,IAAK,qBACLC,KAAM,4BAEVC,SAAU,CACNC,QAAS,sBACTK,SAAU,IACVJ,QAAS,uBACTC,SAAU,qBACVC,QAAS,wBACTC,SAAU,gCAEdE,aAAc,CACVC,OAAQ,QACRC,KAAM,SACNC,EAAG,oBACHC,GAAI,cACJC,EAAG0E,oBACHzE,GAAI,aACJC,EAAGwE,oBACHvE,GAAI,aACJC,EAAGsE,oBACHrE,GAAIqE,oBACJ1B,EAAG0B,oBACHzB,GAAI,YACJ3C,EAAGoE,oBACHnE,GAAImE,oBACJlE,EAAGkE,oBACHjE,GAAIiE,qBAERhE,uBAAwB,YACxBC,QAAS,MACTE,KAAM,CACFC,IAAK,EACLC,IAAK,KA1EyBC,CAAQ,oBAAQ,4FCClD,SAAWjD,QAAU,aAIzB,IAAIE,OAAS,CACL,WACA,aACA,SACA,WACA,KACA,OACA,SACA,WACA,eACA,aACA,aACA,cAEJE,SAAW,CACP,WACA,OACA,WACA,OACA,aACA,SACA,YAGCJ,OAAOC,aAAa,KAAM,CAC/BC,OACAC,YAAaD,OACbE,SACAC,cAAeD,SACfE,YAAa,qCAAqCxE,MAAM,KACxDgF,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,WACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,0BAEVb,cAAe,QACfC,KAAM,SAAUC,OACZ,MAAO,OAASA,OAEpBC,SAAU,SAAUkD,KAAMC,OAAQhD,SAC9B,OAAI+C,KAAO,GACA,KAEA,MAGfvC,SAAU,CACNC,QAAS,cACTC,QAAS,cACTC,SAAU,UACVC,QAAS,cACTC,SAAU,qBACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,cACRC,KAAM,YACNC,EAAG,iBACHC,GAAI,cACJC,EAAG,WACHC,GAAI,YACJC,EAAG,aACHC,GAAI,cACJC,EAAG,WACHC,GAAI,YACJC,EAAG,SACHC,GAAI,UACJC,EAAG,WACHC,GAAI,aAERsB,SAAU,SAAUR,QAChB,OAAOA,OAAO9F,QAAQ,KAAM,MAEhCoG,WAAY,SAAUN,QAClB,OAAOA,OAAO9F,QAAQ,KAAM,MAEhCoF,KAAM,CACFC,IAAK,EACLC,IAAK,MAxFyBC,CAAQ,oBAAQ,2FCGlD,SAAWjD,QAAU,aAIzB,SAASnB,WAAW4B,OAChB,MACyB,oBAAb0G,UAA4B1G,iBAAiB0G,UACX,sBAA1CC,OAAOtM,UAAUuM,SAASlJ,KAAKsC,OAI9BT,OAAOC,aAAa,KAAM,CAC/BqH,mBACI,qHAAqHxL,MACjH,KAERyL,iBACI,qHAAqHzL,MACjH,KAERoE,OAAQ,SAAUsH,eAAgB5C,QAC9B,OAAK4C,eAGiB,iBAAX5C,QACP,IAAI7M,KAAK6M,OAAOhF,UAAU,EAAGgF,OAAO6C,QAAQ,UAGrCnQ,KAAKoQ,kBAAkBF,eAAeG,SAEtCrQ,KAAKsQ,oBAAoBJ,eAAeG,SARxCrQ,KAAKsQ,qBAWpBzH,YAAa,oDAAoDrE,MAAM,KACvEsE,SAAU,yDAAyDtE,MAC/D,KAEJuE,cAAe,8BAA8BvE,MAAM,KACnDwE,YAAa,uBAAuBxE,MAAM,KAC1C4E,SAAU,SAAUC,MAAOC,QAASC,SAChC,OAAIF,MAAQ,GACDE,QAAU,KAAO,KAEjBA,QAAU,KAAO,MAGhCL,KAAM,SAAUC,OACZ,MAAyC,OAAjCA,MAAQ,IAAIjH,cAAc,IAEtC+G,cAAe,gBACfO,eAAgB,CACZC,GAAI,SACJC,IAAK,YACLC,EAAG,aACHC,GAAI,cACJC,IAAK,qBACLC,KAAM,4BAEVyG,WAAY,CACRvG,QAAS,iBACTC,QAAS,gBACTC,SAAU,eACVC,QAAS,eACTC,SAAU,WACN,OACS,IADDpK,KAAKyN,MAEE,gCAEA,kCAGnBpD,SAAU,KAEdN,SAAU,SAAU5G,IAAKqN,KACrB,IAAIb,OAAS3P,KAAKyQ,YAAYtN,KAC1BkG,MAAQmH,KAAOA,IAAInH,QAIvB,OAHI9B,WAAWoI,UACXA,OAASA,OAAOe,MAAMF,MAEnBb,OAAOvJ,QAAQ,KAAMiD,MAAQ,IAAO,EAAI,MAAQ,SAE3DiB,aAAc,CACVC,OAAQ,QACRC,KAAM,UACNC,EAAG,oBACHC,GAAI,kBACJC,EAAG,YACHC,GAAI,WACJC,EAAG,UACHC,GAAI,UACJC,EAAG,WACHC,GAAI,WACJC,EAAG,aACHC,GAAI,WACJC,EAAG,cACHC,GAAI,aAERC,uBAAwB,WACxBC,QAAS,MACTE,KAAM,CACFC,IAAK,EACLC,IAAK,KAxGyBC,CAAQ,oBAAQ,4FCGlD,SAAWjD,QAAU,aAIdA,OAAOC,aAAa,QAAS,CACpCC,OAAQ,wFAAwFpE,MAC5F,KAEJqE,YAAa,kDAAkDrE,MAAM,KACrEsE,SAAU,2DAA2DtE,MACjE,KAEJuE,cAAe,8BAA8BvE,MAAM,KACnDwE,YAAa,uBAAuBxE,MAAM,KAC1CgF,eAAgB,CACZC,GAAI,SACJC,IAAK,YACLC,EAAG,aACHC,GAAI,cACJC,IAAK,qBACLC,KAAM,4BAEVC,SAAU,CACNC,QAAS,gBACTC,QAAS,mBACTC,SAAU,eACVC,QAAS,oBACTC,SAAU,sBACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,QACRC,KAAM,SACNC,EAAG,gBACHC,GAAI,aACJC,EAAG,WACHC,GAAI,aACJC,EAAG,UACHC,GAAI,WACJC,EAAG,QACHC,GAAI,UACJC,EAAG,UACHC,GAAI,YACJC,EAAG,SACHC,GAAI,YAERC,uBAAwB,uBACxBC,QAAS,SAAUC,QACf,IAAIwB,EAAIxB,OAAS,GAWjB,OAAOA,QAT6B,MAAxBA,OAAS,IAAO,IACd,KACM,IAANwB,EACE,KACM,IAANA,EACE,KACM,IAANA,EACE,KACA,OAGxBvB,KAAM,CACFC,IAAK,EACLC,IAAK,KAlEyBC,CAAQ,oBAAQ,4FCGlD,SAAWjD,QAAU,aAIdA,OAAOC,aAAa,QAAS,CACpCC,OAAQ,wFAAwFpE,MAC5F,KAEJqE,YAAa,kDAAkDrE,MAAM,KACrEsE,SAAU,2DAA2DtE,MACjE,KAEJuE,cAAe,8BAA8BvE,MAAM,KACnDwE,YAAa,uBAAuBxE,MAAM,KAC1CgF,eAAgB,CACZC,GAAI,SACJC,IAAK,YACLC,EAAG,aACHC,GAAI,eACJC,IAAK,sBACLC,KAAM,6BAEVC,SAAU,CACNC,QAAS,gBACTC,QAAS,mBACTC,SAAU,eACVC,QAAS,oBACTC,SAAU,sBACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,QACRC,KAAM,SACNC,EAAG,gBACHC,GAAI,aACJC,EAAG,WACHC,GAAI,aACJC,EAAG,UACHC,GAAI,WACJC,EAAG,QACHC,GAAI,UACJC,EAAG,UACHC,GAAI,YACJC,EAAG,SACHC,GAAI,YAERC,uBAAwB,uBACxBC,QAAS,SAAUC,QACf,IAAIwB,EAAIxB,OAAS,GAWjB,OAAOA,QAT6B,MAAxBA,OAAS,IAAO,IACd,KACM,IAANwB,EACE,KACM,IAANA,EACE,KACM,IAANA,EACE,KACA,SA7DUpB,CAAQ,oBAAQ,4FCGlD,SAAWjD,QAAU,aAIdA,OAAOC,aAAa,QAAS,CACpCC,OAAQ,wFAAwFpE,MAC5F,KAEJqE,YAAa,kDAAkDrE,MAAM,KACrEsE,SAAU,2DAA2DtE,MACjE,KAEJuE,cAAe,8BAA8BvE,MAAM,KACnDwE,YAAa,uBAAuBxE,MAAM,KAC1CgF,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,2BAEVC,SAAU,CACNC,QAAS,gBACTC,QAAS,mBACTC,SAAU,eACVC,QAAS,oBACTC,SAAU,sBACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,QACRC,KAAM,SACNC,EAAG,gBACHC,GAAI,aACJC,EAAG,WACHC,GAAI,aACJC,EAAG,UACHC,GAAI,WACJC,EAAG,QACHC,GAAI,UACJC,EAAG,UACHC,GAAI,YACJC,EAAG,SACHC,GAAI,YAERC,uBAAwB,uBACxBC,QAAS,SAAUC,QACf,IAAIwB,EAAIxB,OAAS,GAWjB,OAAOA,QAT6B,MAAxBA,OAAS,IAAO,IACd,KACM,IAANwB,EACE,KACM,IAANA,EACE,KACM,IAANA,EACE,KACA,OAGxBvB,KAAM,CACFC,IAAK,EACLC,IAAK,KAlEyBC,CAAQ,oBAAQ,4FCGlD,SAAWjD,QAAU,aAIdA,OAAOC,aAAa,QAAS,CACpCC,OAAQ,wFAAwFpE,MAC5F,KAEJqE,YAAa,kDAAkDrE,MAAM,KACrEsE,SAAU,2DAA2DtE,MACjE,KAEJuE,cAAe,8BAA8BvE,MAAM,KACnDwE,YAAa,uBAAuBxE,MAAM,KAC1CgF,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,0BAEVC,SAAU,CACNC,QAAS,gBACTC,QAAS,mBACTC,SAAU,eACVC,QAAS,oBACTC,SAAU,sBACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,QACRC,KAAM,SACNC,EAAG,gBACHC,GAAI,aACJC,EAAG,WACHC,GAAI,aACJC,EAAG,UACHC,GAAI,WACJC,EAAG,QACHC,GAAI,UACJC,EAAG,UACHC,GAAI,YACJC,EAAG,SACHC,GAAI,YAERC,uBAAwB,uBACxBC,QAAS,SAAUC,QACf,IAAIwB,EAAIxB,OAAS,GAWjB,OAAOA,QAT6B,MAAxBA,OAAS,IAAO,IACd,KACM,IAANwB,EACE,KACM,IAANA,EACE,KACM,IAANA,EACE,KACA,OAGxBvB,KAAM,CACFC,IAAK,EACLC,IAAK,KAlEyBC,CAAQ,oBAAQ,4FCGlD,SAAWjD,QAAU,aAIdA,OAAOC,aAAa,QAAS,CACpCC,OAAQ,wFAAwFpE,MAC5F,KAEJqE,YAAa,kDAAkDrE,MAAM,KACrEsE,SAAU,2DAA2DtE,MACjE,KAEJuE,cAAe,8BAA8BvE,MAAM,KACnDwE,YAAa,uBAAuBxE,MAAM,KAC1CgF,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,2BAEVC,SAAU,CACNC,QAAS,gBACTC,QAAS,mBACTC,SAAU,eACVC,QAAS,oBACTC,SAAU,sBACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,QACRC,KAAM,SACNC,EAAG,gBACHC,GAAI,aACJC,EAAG,WACHC,GAAI,aACJC,EAAG,UACHC,GAAI,WACJC,EAAG,QACHC,GAAI,UACJC,EAAG,UACHC,GAAI,YACJC,EAAG,SACHC,GAAI,YAERC,uBAAwB,uBACxBC,QAAS,SAAUC,QACf,IAAIwB,EAAIxB,OAAS,GAWjB,OAAOA,QAT6B,MAAxBA,OAAS,IAAO,IACd,KACM,IAANwB,EACE,KACM,IAANA,EACE,KACM,IAANA,EACE,KACA,SA7DUpB,CAAQ,oBAAQ,4FCGlD,SAAWjD,QAAU,aAIdA,OAAOC,aAAa,QAAS,CACpCC,OAAQ,wFAAwFpE,MAC5F,KAEJqE,YAAa,kDAAkDrE,MAAM,KACrEsE,SAAU,2DAA2DtE,MACjE,KAEJuE,cAAe,8BAA8BvE,MAAM,KACnDwE,YAAa,uBAAuBxE,MAAM,KAC1CgF,eAAgB,CACZC,GAAI,SACJC,IAAK,YACLC,EAAG,aACHC,GAAI,cACJC,IAAK,qBACLC,KAAM,4BAEVC,SAAU,CACNC,QAAS,gBACTC,QAAS,mBACTC,SAAU,eACVC,QAAS,oBACTC,SAAU,sBACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,QACRC,KAAM,SACNC,EAAG,gBACHC,GAAI,aACJC,EAAG,WACHC,GAAI,aACJC,EAAG,UACHC,GAAI,WACJC,EAAG,QACHC,GAAI,UACJC,EAAG,UACHC,GAAI,YACJC,EAAG,SACHC,GAAI,YAERC,uBAAwB,uBACxBC,QAAS,SAAUC,QACf,IAAIwB,EAAIxB,OAAS,GAWjB,OAAOA,QAT6B,MAAxBA,OAAS,IAAO,IACd,KACM,IAANwB,EACE,KACM,IAANA,EACE,KACM,IAANA,EACE,KACA,OAGxBvB,KAAM,CACFC,IAAK,EACLC,IAAK,KAlEyBC,CAAQ,oBAAQ,4FCGlD,SAAWjD,QAAU,aAIdA,OAAOC,aAAa,QAAS,CACpCC,OAAQ,wFAAwFpE,MAC5F,KAEJqE,YAAa,kDAAkDrE,MAAM,KACrEsE,SAAU,2DAA2DtE,MACjE,KAEJuE,cAAe,8BAA8BvE,MAAM,KACnDwE,YAAa,uBAAuBxE,MAAM,KAC1CgF,eAAgB,CACZC,GAAI,SACJC,IAAK,YACLC,EAAG,aACHC,GAAI,cACJC,IAAK,qBACLC,KAAM,4BAEVC,SAAU,CACNC,QAAS,gBACTC,QAAS,mBACTC,SAAU,eACVC,QAAS,oBACTC,SAAU,sBACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,QACRC,KAAM,SACNC,EAAG,gBACHC,GAAI,aACJC,EAAG,WACHC,GAAI,aACJC,EAAG,UACHC,GAAI,WACJC,EAAG,QACHC,GAAI,UACJC,EAAG,UACHC,GAAI,YACJC,EAAG,SACHC,GAAI,YAERC,uBAAwB,uBACxBC,QAAS,SAAUC,QACf,IAAIwB,EAAIxB,OAAS,GAWjB,OAAOA,QAT6B,MAAxBA,OAAS,IAAO,IACd,KACM,IAANwB,EACE,KACM,IAANA,EACE,KACM,IAANA,EACE,KACA,OAGxBvB,KAAM,CACFC,IAAK,EACLC,IAAK,KAlEyBC,CAAQ,oBAAQ,4FCGlD,SAAWjD,QAAU,aAIdA,OAAOC,aAAa,QAAS,CACpCC,OAAQ,wFAAwFpE,MAC5F,KAEJqE,YAAa,kDAAkDrE,MAAM,KACrEsE,SAAU,2DAA2DtE,MACjE,KAEJuE,cAAe,8BAA8BvE,MAAM,KACnDwE,YAAa,uBAAuBxE,MAAM,KAC1CgF,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,2BAEVC,SAAU,CACNC,QAAS,gBACTC,QAAS,mBACTC,SAAU,eACVC,QAAS,oBACTC,SAAU,sBACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,QACRC,KAAM,SACNC,EAAG,gBACHC,GAAI,aACJC,EAAG,WACHC,GAAI,aACJC,EAAG,UACHC,GAAI,WACJC,EAAG,QACHC,GAAI,UACJC,EAAG,UACHC,GAAI,YACJC,EAAG,SACHC,GAAI,YAERC,uBAAwB,uBACxBC,QAAS,SAAUC,QACf,IAAIwB,EAAIxB,OAAS,GAWjB,OAAOA,QAT6B,MAAxBA,OAAS,IAAO,IACd,KACM,IAANwB,EACE,KACM,IAANA,EACE,KACM,IAANA,EACE,KACA,OAGxBvB,KAAM,CACFC,IAAK,EACLC,IAAK,KAlEyBC,CAAQ,oBAAQ,4FCMlD,SAAWjD,QAAU,aAIhBA,OAAOC,aAAa,KAAM,CAC/BC,OAAQ,6FAA6FpE,MACjG,KAEJqE,YAAa,oDAAoDrE,MAAM,KACvEsE,SAAU,qDAAqDtE,MAAM,KACrEuE,cAAe,gCAAgCvE,MAAM,KACrDwE,YAAa,uBAAuBxE,MAAM,KAC1CgF,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,4BACJC,IAAK,kCACLC,KAAM,2CACN4F,KAAM,uCAEVzG,cAAe,cACfC,KAAM,SAAUC,OACZ,MAAyC,MAAlCA,MAAMsF,OAAO,GAAGvM,eAE3BkH,SAAU,SAAUC,MAAOC,QAASC,SAChC,OAAIF,MAAQ,GACDE,QAAU,SAAW,SAErBA,QAAU,SAAW,UAGpCQ,SAAU,CACNC,QAAS,iBACTC,QAAS,iBACTC,SAAU,gBACVC,QAAS,iBACTC,SAAU,2BACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,UACRC,KAAM,WACNC,EAAG,kBACHC,GAAI,cACJC,EAAG,aACHC,GAAI,aACJC,EAAG,WACHC,GAAI,WACJC,EAAG,WACHC,GAAI,WACJC,EAAG,aACHC,GAAI,aACJC,EAAG,WACHC,GAAI,YAERC,uBAAwB,WACxBC,QAAS,MACTE,KAAM,CACFC,IAAK,EACLC,IAAK,KA/DyBC,CAAQ,oBAAQ,4FCDlD,SAAWjD,QAAU,aAIzB,IAAIiI,eACI,8DAA8DnM,MAC1D,KAERqE,YAAc,kDAAkDrE,MAAM,KACtEkK,YAAc,CACV,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,SAEJC,YACI,mLAEGjG,OAAOC,aAAa,QAAS,CACpCC,OAAQ,2FAA2FpE,MAC/F,KAEJqE,YAAa,SAAU8B,EAAG2C,QACtB,OAAK3C,EAEM,QAAQlK,KAAK6M,QACbzE,YAAY8B,EAAE0F,SAEdM,eAAehG,EAAE0F,SAJjBM,gBAOfhC,YACAX,iBAAkBW,YAClBC,kBACI,+FACJC,uBACI,0FACJH,YACAQ,gBAAiBR,YACjBS,iBAAkBT,YAClB5F,SAAU,uDAAuDtE,MAAM,KACvEuE,cAAe,qCAAqCvE,MAAM,KAC1DwE,YAAa,uBAAuBxE,MAAM,KAC1C6H,oBAAoB,EACpB7C,eAAgB,CACZC,GAAI,SACJC,IAAK,YACLC,EAAG,aACHC,GAAI,wBACJC,IAAK,+BACLC,KAAM,sCAEVC,SAAU,CACNC,QAAS,WACL,MAAO,aAAgC,IAAjBhK,KAAKqJ,QAAgB,IAAM,IAAM,QAE3DY,QAAS,WACL,MAAO,gBAAmC,IAAjBjK,KAAKqJ,QAAgB,IAAM,IAAM,QAE9Da,SAAU,WACN,MAAO,cAAiC,IAAjBlK,KAAKqJ,QAAgB,IAAM,IAAM,QAE5Dc,QAAS,WACL,MAAO,cAAiC,IAAjBnK,KAAKqJ,QAAgB,IAAM,IAAM,QAE5De,SAAU,WACN,MACI,0BACkB,IAAjBpK,KAAKqJ,QAAgB,IAAM,IAC5B,QAGRgB,SAAU,KAEdC,aAAc,CACVC,OAAQ,QACRC,KAAM,UACNC,EAAG,gBACHC,GAAI,cACJC,EAAG,YACHC,GAAI,aACJC,EAAG,WACHC,GAAI,WACJC,EAAG,SACHC,GAAI,UACJ2C,EAAG,aACHC,GAAI,aACJ3C,EAAG,SACHC,GAAI,WACJC,EAAG,SACHC,GAAI,WAERC,uBAAwB,WACxBC,QAAS,MACTE,KAAM,CACFC,IAAK,EACLC,IAAK,KA3GyBC,CAAQ,oBAAQ,4FCIlD,SAAWjD,QAAU,aAIzB,IAAIiI,eACI,8DAA8DnM,MAC1D,KAERqE,YAAc,kDAAkDrE,MAAM,KACtEkK,YAAc,CACV,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,SAEJC,YACI,mLAEGjG,OAAOC,aAAa,QAAS,CACpCC,OAAQ,2FAA2FpE,MAC/F,KAEJqE,YAAa,SAAU8B,EAAG2C,QACtB,OAAK3C,EAEM,QAAQlK,KAAK6M,QACbzE,YAAY8B,EAAE0F,SAEdM,eAAehG,EAAE0F,SAJjBM,gBAOfhC,YACAX,iBAAkBW,YAClBC,kBACI,+FACJC,uBACI,0FACJH,YACAQ,gBAAiBR,YACjBS,iBAAkBT,YAClB5F,SAAU,uDAAuDtE,MAAM,KACvEuE,cAAe,qCAAqCvE,MAAM,KAC1DwE,YAAa,uBAAuBxE,MAAM,KAC1C6H,oBAAoB,EACpB7C,eAAgB,CACZC,GAAI,OACJC,IAAK,UACLC,EAAG,aACHC,GAAI,wBACJC,IAAK,6BACLC,KAAM,oCAEVC,SAAU,CACNC,QAAS,WACL,MAAO,aAAgC,IAAjBhK,KAAKqJ,QAAgB,IAAM,IAAM,QAE3DY,QAAS,WACL,MAAO,gBAAmC,IAAjBjK,KAAKqJ,QAAgB,IAAM,IAAM,QAE9Da,SAAU,WACN,MAAO,cAAiC,IAAjBlK,KAAKqJ,QAAgB,IAAM,IAAM,QAE5Dc,QAAS,WACL,MAAO,cAAiC,IAAjBnK,KAAKqJ,QAAgB,IAAM,IAAM,QAE5De,SAAU,WACN,MACI,0BACkB,IAAjBpK,KAAKqJ,QAAgB,IAAM,IAC5B,QAGRgB,SAAU,KAEdC,aAAc,CACVC,OAAQ,QACRC,KAAM,UACNC,EAAG,gBACHC,GAAI,cACJC,EAAG,YACHC,GAAI,aACJC,EAAG,WACHC,GAAI,WACJC,EAAG,SACHC,GAAI,UACJ2C,EAAG,aACHC,GAAI,aACJ3C,EAAG,SACHC,GAAI,WACJC,EAAG,SACHC,GAAI,WAERC,uBAAwB,WACxBC,QAAS,MACTE,KAAM,CACFC,IAAK,EACLC,IAAK,GAETkF,YAAa,mBA7GqBjF,CAAQ,oBAAQ,4FCIlD,SAAWjD,QAAU,aAIzB,IAAIiI,eACI,8DAA8DnM,MAC1D,KAERqE,YAAc,kDAAkDrE,MAAM,KACtEkK,YAAc,CACV,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,SAEJC,YACI,mLAEGjG,OAAOC,aAAa,QAAS,CACpCC,OAAQ,2FAA2FpE,MAC/F,KAEJqE,YAAa,SAAU8B,EAAG2C,QACtB,OAAK3C,EAEM,QAAQlK,KAAK6M,QACbzE,YAAY8B,EAAE0F,SAEdM,eAAehG,EAAE0F,SAJjBM,gBAOfhC,YACAX,iBAAkBW,YAClBC,kBACI,+FACJC,uBACI,0FACJH,YACAQ,gBAAiBR,YACjBS,iBAAkBT,YAClB5F,SAAU,uDAAuDtE,MAAM,KACvEuE,cAAe,qCAAqCvE,MAAM,KAC1DwE,YAAa,uBAAuBxE,MAAM,KAC1C6H,oBAAoB,EACpB7C,eAAgB,CACZC,GAAI,SACJC,IAAK,YACLC,EAAG,aACHC,GAAI,wBACJC,IAAK,+BACLC,KAAM,sCAEVC,SAAU,CACNC,QAAS,WACL,MAAO,aAAgC,IAAjBhK,KAAKqJ,QAAgB,IAAM,IAAM,QAE3DY,QAAS,WACL,MAAO,gBAAmC,IAAjBjK,KAAKqJ,QAAgB,IAAM,IAAM,QAE9Da,SAAU,WACN,MAAO,cAAiC,IAAjBlK,KAAKqJ,QAAgB,IAAM,IAAM,QAE5Dc,QAAS,WACL,MAAO,cAAiC,IAAjBnK,KAAKqJ,QAAgB,IAAM,IAAM,QAE5De,SAAU,WACN,MACI,0BACkB,IAAjBpK,KAAKqJ,QAAgB,IAAM,IAC5B,QAGRgB,SAAU,KAEdC,aAAc,CACVC,OAAQ,QACRC,KAAM,UACNC,EAAG,gBACHC,GAAI,cACJC,EAAG,YACHC,GAAI,aACJC,EAAG,WACHC,GAAI,WACJC,EAAG,SACHC,GAAI,UACJ2C,EAAG,aACHC,GAAI,aACJ3C,EAAG,SACHC,GAAI,WACJC,EAAG,SACHC,GAAI,WAERC,uBAAwB,WACxBC,QAAS,MACTE,KAAM,CACFC,IAAK,EACLC,IAAK,KA3GyBC,CAAQ,oBAAQ,4FCElD,SAAWjD,QAAU,aAIzB,IAAIiI,eACI,8DAA8DnM,MAC1D,KAERqE,YAAc,kDAAkDrE,MAAM,KACtEkK,YAAc,CACV,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,SAEJC,YACI,mLAECjG,OAAOC,aAAa,KAAM,CAC/BC,OAAQ,2FAA2FpE,MAC/F,KAEJqE,YAAa,SAAU8B,EAAG2C,QACtB,OAAK3C,EAEM,QAAQlK,KAAK6M,QACbzE,YAAY8B,EAAE0F,SAEdM,eAAehG,EAAE0F,SAJjBM,gBAOfhC,YACAX,iBAAkBW,YAClBC,kBACI,+FACJC,uBACI,0FACJH,YACAQ,gBAAiBR,YACjBS,iBAAkBT,YAClB5F,SAAU,uDAAuDtE,MAAM,KACvEuE,cAAe,qCAAqCvE,MAAM,KAC1DwE,YAAa,uBAAuBxE,MAAM,KAC1C6H,oBAAoB,EACpB7C,eAAgB,CACZC,GAAI,OACJC,IAAK,UACLC,EAAG,aACHC,GAAI,wBACJC,IAAK,6BACLC,KAAM,oCAEVC,SAAU,CACNC,QAAS,WACL,MAAO,aAAgC,IAAjBhK,KAAKqJ,QAAgB,IAAM,IAAM,QAE3DY,QAAS,WACL,MAAO,gBAAmC,IAAjBjK,KAAKqJ,QAAgB,IAAM,IAAM,QAE9Da,SAAU,WACN,MAAO,cAAiC,IAAjBlK,KAAKqJ,QAAgB,IAAM,IAAM,QAE5Dc,QAAS,WACL,MAAO,cAAiC,IAAjBnK,KAAKqJ,QAAgB,IAAM,IAAM,QAE5De,SAAU,WACN,MACI,0BACkB,IAAjBpK,KAAKqJ,QAAgB,IAAM,IAC5B,QAGRgB,SAAU,KAEdC,aAAc,CACVC,OAAQ,QACRC,KAAM,UACNC,EAAG,gBACHC,GAAI,cACJC,EAAG,YACHC,GAAI,aACJC,EAAG,WACHC,GAAI,WACJC,EAAG,SACHC,GAAI,UACJ2C,EAAG,aACHC,GAAI,aACJ3C,EAAG,SACHC,GAAI,WACJC,EAAG,SACHC,GAAI,WAERC,uBAAwB,WACxBC,QAAS,MACTE,KAAM,CACFC,IAAK,EACLC,IAAK,GAETkF,YAAa,mBA7GqBjF,CAAQ,oBAAQ,4FCIlD,SAAWjD,QAAU,aAIzB,SAAS2G,oBAAoB9D,OAAQU,cAAe9I,IAAKgJ,UACrD,IAAImB,OAAS,CACT7C,EAAG,CAAC,eAAgB,cAAe,iBACnCC,GAAI,CAACa,OAAS,UAAWA,OAAS,YAClCZ,EAAG,CAAC,aAAc,aAClBC,GAAI,CAACW,OAAS,UAAWA,OAAS,YAClCV,EAAG,CAAC,YAAa,YAAa,YAC9BC,GAAI,CAACS,OAAS,SAAUA,OAAS,UACjCR,EAAG,CAAC,YAAa,YACjBE,EAAG,CAAC,UAAW,WAAY,WAC3BC,GAAI,CAACK,OAAS,OAAQA,OAAS,SAC/BJ,EAAG,CAAC,YAAa,QAAS,aAC1BC,GAAI,CAACG,OAAS,SAAUA,OAAS,YAErC,OAAIU,cACOqB,OAAOnK,KAAK,GAAKmK,OAAOnK,KAAK,GAAKmK,OAAOnK,KAAK,GAElDgJ,SAAWmB,OAAOnK,KAAK,GAAKmK,OAAOnK,KAAK,GAG1CuF,OAAOC,aAAa,KAAM,CAC/BC,OAAQ,6FAA6FpE,MACjG,KAEJqE,YACI,6DAA6DrE,MAAM,KACvEsE,SACI,iEAAiEtE,MAC7D,KAERuE,cAAe,gBAAgBvE,MAAM,KACrCwE,YAAa,gBAAgBxE,MAAM,KACnCgF,eAAgB,CACZC,GAAI,OACJC,IAAK,UACLC,EAAG,aACHC,GAAI,eACJC,IAAK,oBACLC,KAAM,2BAEVC,SAAU,CACNC,QAAS,aACTC,QAAS,cACTC,SAAU,qBACVC,QAAS,aACTC,SAAU,oBACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,YACRC,KAAM,YACNC,EAAG4E,oBACH3E,GAAI2E,oBACJ1E,EAAG0E,oBACHzE,GAAIyE,oBACJxE,EAAGwE,oBACHvE,GAAIuE,oBACJtE,EAAGsE,oBACHrE,GAAI,WACJC,EAAGoE,oBACHnE,GAAImE,oBACJlE,EAAGkE,oBACHjE,GAAIiE,qBAERhE,uBAAwB,YACxBC,QAAS,MACTE,KAAM,CACFC,IAAK,EACLC,IAAK,KA3EyBC,CAAQ,oBAAQ,4FCElD,SAAWjD,QAAU,aAIhBA,OAAOC,aAAa,KAAM,CAC/BC,OAAQ,+FAA+FpE,MACnG,KAEJqE,YACI,8DAA8DrE,MAC1D,KAERyJ,kBAAkB,EAClBnF,SACI,sEAAsEtE,MAClE,KAERuE,cAAe,8BAA8BvE,MAAM,KACnDwE,YAAa,uBAAuBxE,MAAM,KAC1C6H,oBAAoB,EACpB7C,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,0BACJC,IAAK,gCACLC,KAAM,sCACNvD,EAAG,WACHiJ,GAAI,oBACJC,IAAK,0BACLC,KAAM,gCAEV3F,SAAU,CACNC,QAAS,kBACTC,QAAS,mBACTC,SAAU,gBACVC,QAAS,kBACTC,SAAU,0BACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,WACRC,KAAM,WACNC,EAAG,iBACHC,GAAI,aACJC,EAAG,aACHC,GAAI,YACJC,EAAG,WACHC,GAAI,UACJC,EAAG,WACHC,GAAI,UACJC,EAAG,eACHC,GAAI,cACJC,EAAG,WACHC,GAAI,WAERC,uBAAwB,YACxBC,QAAS,MACTE,KAAM,CACFC,IAAK,EACLC,IAAK,KA/DyBC,CAAQ,oBAAQ,4FCGlD,SAAWjD,QAAU,aAIzB,IAAI+D,UAAY,CACR,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,KAEPE,UAAY,CACR,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,KAGJjE,OAAOC,aAAa,KAAM,CAC/BC,OAAQ,wEAAwEpE,MAC5E,KAEJqE,YACI,wEAAwErE,MACpE,KAERsE,SACI,qDAAoEtE,MAChE,KAERuE,cACI,qDAAoEvE,MAChE,KAERwE,YAAa,gBAAgBxE,MAAM,KACnC6H,oBAAoB,EACpB7C,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,2BAEVb,cAAe,wBACfC,KAAM,SAAUC,OACZ,MAAO,aAAa1I,KAAK0I,QAE7BC,SAAU,SAAUkD,KAAMC,OAAQhD,SAC9B,OAAI+C,KAAO,GACA,aAEA,cAGfvC,SAAU,CACNC,QAAS,kBACTC,QAAS,iBACTC,SAAU,iBACVC,QAAS,kBACTC,SAAU,uBACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,QACRC,KAAM,SACNC,EAAG,YACHC,GAAI,WACJC,EAAG,WACHC,GAAI,WACJC,EAAG,UACHC,GAAI,UACJC,EAAG,SACHC,GAAI,SACJC,EAAG,SACHC,GAAI,SACJC,EAAG,SACHC,GAAI,UAERsB,SAAU,SAAUR,QAChB,OAAOA,OACF9F,QAAQ,UAAU,SAAUwB,OACzB,OAAO+E,UAAU/E,UAEpBxB,QAAQ,KAAM,MAEvBoG,WAAY,SAAUN,QAClB,OAAOA,OACF9F,QAAQ,OAAO,SAAUwB,OACtB,OAAO6E,UAAU7E,UAEpBxB,QAAQ,KAAM,MAEvBiF,uBAAwB,WACxBC,QAAS,MACTE,KAAM,CACFC,IAAK,EACLC,IAAK,MA/GyBC,CAAQ,oBAAQ,4FCGlD,SAAWjD,QAAU,aAIzB,IAAImI,YACI,wEAAwErM,MACpE,KAERsM,cAAgB,CACZ,QACA,QACA,SACA,SACA,SACA,SACA,SACAD,YAAY,GACZA,YAAY,GACZA,YAAY,IAEpB,SAASvB,UAAU/D,OAAQU,cAAe9I,IAAKgJ,UAC3C,IAAIoD,OAAS,GACb,OAAQpM,KACJ,IAAK,IACD,OAAOgJ,SAAW,oBAAsB,kBAC5C,IAAK,KACDoD,OAASpD,SAAW,WAAa,WACjC,MACJ,IAAK,IACD,OAAOA,SAAW,WAAa,WACnC,IAAK,KACDoD,OAASpD,SAAW,WAAa,YACjC,MACJ,IAAK,IACD,OAAOA,SAAW,SAAW,QACjC,IAAK,KACDoD,OAASpD,SAAW,SAAW,SAC/B,MACJ,IAAK,IACD,OAAOA,SAAW,SAAW,QACjC,IAAK,KACDoD,OAASpD,SAAW,SAAW,SAC/B,MACJ,IAAK,IACD,OAAOA,SAAW,YAAc,WACpC,IAAK,KACDoD,OAASpD,SAAW,YAAc,YAClC,MACJ,IAAK,IACD,OAAOA,SAAW,SAAW,QACjC,IAAK,KACDoD,OAASpD,SAAW,SAAW,SAIvC,OADAoD,OAASwB,aAAaxF,OAAQY,UAAY,IAAMoD,OAGpD,SAASwB,aAAaxF,OAAQY,UAC1B,OAAOZ,OAAS,GACVY,SACI2E,cAAcvF,QACdsF,YAAYtF,QAChBA,OAGD7C,OAAOC,aAAa,KAAM,CAC/BC,OAAQ,2GAA2GpE,MAC/G,KAEJqE,YACI,uEAAuErE,MACnE,KAERsE,SACI,qEAAqEtE,MACjE,KAERuE,cAAe,uBAAuBvE,MAAM,KAC5CwE,YAAa,uBAAuBxE,MAAM,KAC1CgF,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,mBACJC,IAAK,gCACLC,KAAM,sCACNvD,EAAG,WACHiJ,GAAI,cACJC,IAAK,2BACLC,KAAM,iCAEV3F,SAAU,CACNC,QAAS,oBACTC,QAAS,sBACTC,SAAU,gBACVC,QAAS,mBACTC,SAAU,4BACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,YACRC,KAAM,YACNC,EAAG6E,UACH5E,GAAI4E,UACJ3E,EAAG2E,UACH1E,GAAI0E,UACJzE,EAAGyE,UACHxE,GAAIwE,UACJvE,EAAGuE,UACHtE,GAAIsE,UACJrE,EAAGqE,UACHpE,GAAIoE,UACJnE,EAAGmE,UACHlE,GAAIkE,WAERjE,uBAAwB,YACxBC,QAAS,MACTE,KAAM,CACFC,IAAK,EACLC,IAAK,KA1HyBC,CAAQ,oBAAQ,4FCIlD,SAAWjD,QAAU,aAIfA,OAAOC,aAAa,MAAO,CACjCC,OAAQ,0FAA0FpE,MAC9F,KAEJqE,YAAa,kDAAkDrE,MAAM,KACrEsE,SAAU,yDAAyDtE,MAC/D,KAEJuE,cAAe,8BAA8BvE,MAAM,KACnDwE,YAAa,wBAAwBxE,MAAM,KAC3CgF,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,YACHC,GAAI,eACJC,IAAK,qBACLC,KAAM,6BAEVC,SAAU,CACNC,QAAS,oBACTC,QAAS,gBACTC,SAAU,0BACVC,QAAS,eACTC,SAAU,4BACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,gBACRC,KAAM,mBACNC,EAAG,gBACHC,GAAI,aACJC,EAAG,eACHC,GAAI,YACJC,EAAG,aACHC,GAAI,UACJC,EAAG,aACHC,GAAI,UACJC,EAAG,cACHC,GAAI,WACJC,EAAG,aACHC,GAAI,WAERC,uBAAwB,UACxBC,QAAS,SAAUC,QACf,OAAOA,QAEXC,KAAM,CACFC,IAAK,EACLC,IAAK,KAvDyBC,CAAQ,oBAAQ,4FCGlD,SAAWjD,QAAU,aAIhBA,OAAOC,aAAa,KAAM,CAC/BC,OAAQ,qFAAqFpE,MACzF,KAEJqE,YAAa,kDAAkDrE,MAAM,KACrEsE,SACI,4EAA4EtE,MACxE,KAERuE,cAAe,8BAA8BvE,MAAM,KACnDwE,YAAa,uBAAuBxE,MAAM,KAC1CgF,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,4BAEVC,SAAU,CACNC,QAAS,iBACTC,QAAS,oBACTC,SAAU,gBACVC,QAAS,kBACTC,SAAU,wBACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,QACRC,KAAM,YACNC,EAAG,YACHC,GAAI,cACJC,EAAG,eACHC,GAAI,cACJC,EAAG,WACHC,GAAI,WACJC,EAAG,YACHC,GAAI,WACJC,EAAG,cACHC,GAAI,aACJC,EAAG,UACHC,GAAI,SAERC,uBAAwB,YACxBC,QAAS,MACTE,KAAM,CACFC,IAAK,EACLC,IAAK,KAtDyBC,CAAQ,oBAAQ,4FCElD,SAAWjD,QAAU,aAIdA,OAAOC,aAAa,QAAS,CACpCC,OAAQ,uFAAuFpE,MAC3F,KAEJqE,YACI,iEAAiErE,MAC7D,KAERyJ,kBAAkB,EAClBnF,SAAU,sDAAsDtE,MAAM,KACtEuE,cAAe,qCAAqCvE,MAAM,KAC1DwE,YAAa,uBAAuBxE,MAAM,KAC1C6H,oBAAoB,EACpB7C,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,0BAEVC,SAAU,CACNC,QAAS,qBACTC,QAAS,gBACTC,SAAU,cACVC,QAAS,cACTC,SAAU,sBACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,UACRC,KAAM,YACNC,EAAG,oBACHC,GAAI,cACJC,EAAG,aACHC,GAAI,aACJC,EAAG,YACHC,GAAI,YACJC,EAAG,UACHC,GAAI,WACJC,EAAG,UACHC,GAAI,UACJC,EAAG,QACHC,GAAI,UAERC,uBAAwB,gBACxBC,QAAS,SAAUC,OAAQmC,QACvB,OAAQA,QAEJ,QACA,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,MACL,IAAK,IACD,OAAOnC,QAAqB,IAAXA,OAAe,KAAO,KAG3C,IAAK,IACL,IAAK,IACD,OAAOA,QAAqB,IAAXA,OAAe,KAAO,SAnEjBI,CAAQ,oBAAQ,4FCGlD,SAAWjD,QAAU,aAIdA,OAAOC,aAAa,QAAS,CACpCC,OAAQ,uFAAuFpE,MAC3F,KAEJqE,YACI,iEAAiErE,MAC7D,KAERyJ,kBAAkB,EAClBnF,SAAU,sDAAsDtE,MAAM,KACtEuE,cAAe,qCAAqCvE,MAAM,KAC1DwE,YAAa,uBAAuBxE,MAAM,KAC1C6H,oBAAoB,EACpB7C,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,0BAEVC,SAAU,CACNC,QAAS,qBACTC,QAAS,gBACTC,SAAU,cACVC,QAAS,cACTC,SAAU,sBACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,UACRC,KAAM,YACNC,EAAG,oBACHC,GAAI,cACJC,EAAG,aACHC,GAAI,aACJC,EAAG,YACHC,GAAI,YACJC,EAAG,UACHC,GAAI,WACJC,EAAG,UACHC,GAAI,UACJC,EAAG,QACHC,GAAI,UAERC,uBAAwB,gBACxBC,QAAS,SAAUC,OAAQmC,QACvB,OAAQA,QAEJ,QACA,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,MACL,IAAK,IACD,OAAOnC,QAAqB,IAAXA,OAAe,KAAO,KAG3C,IAAK,IACL,IAAK,IACD,OAAOA,QAAqB,IAAXA,OAAe,KAAO,OAGnDC,KAAM,CACFC,IAAK,EACLC,IAAK,KAxEyBC,CAAQ,oBAAQ,4FCGlD,SAAWjD,QAAU,aAIzB,IAAIkG,kBACI,2FACJC,uBACI,oFACJF,YACI,yKACJD,YAAc,CACV,SACA,SACA,SACA,QACA,QACA,SACA,SACA,SACA,SACA,QACA,QACA,SAGChG,OAAOC,aAAa,KAAM,CAC/BC,OAAQ,uFAAuFpE,MAC3F,KAEJqE,YACI,iEAAiErE,MAC7D,KAERmK,YACAX,iBAAkBW,YAClBC,kBACAC,uBACAH,YACAQ,gBAAiBR,YACjBS,iBAAkBT,YAClB5F,SAAU,sDAAsDtE,MAAM,KACtEuE,cAAe,qCAAqCvE,MAAM,KAC1DwE,YAAa,uBAAuBxE,MAAM,KAC1C6H,oBAAoB,EACpB7C,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,0BAEVC,SAAU,CACNC,QAAS,qBACTC,QAAS,gBACTC,SAAU,cACVC,QAAS,cACTC,SAAU,sBACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,UACRC,KAAM,YACNC,EAAG,oBACHC,GAAI,cACJC,EAAG,aACHC,GAAI,aACJC,EAAG,YACHC,GAAI,YACJC,EAAG,UACHC,GAAI,WACJ2C,EAAG,cACHC,GAAI,cACJ3C,EAAG,UACHC,GAAI,UACJC,EAAG,QACHC,GAAI,UAERC,uBAAwB,eACxBC,QAAS,SAAUC,OAAQmC,QACvB,OAAQA,QAIJ,IAAK,IACD,OAAOnC,QAAqB,IAAXA,OAAe,KAAO,IAG3C,QACA,IAAK,IACL,IAAK,IACL,IAAK,MACL,IAAK,IACD,OAAOA,QAAqB,IAAXA,OAAe,KAAO,KAG3C,IAAK,IACL,IAAK,IACD,OAAOA,QAAqB,IAAXA,OAAe,KAAO,OAGnDC,KAAM,CACFC,IAAK,EACLC,IAAK,KA1GyBC,CAAQ,oBAAQ,4FCGlD,SAAWjD,QAAU,aAIzB,IAAIsI,oBACI,6DAA6DxM,MAAM,KACvEyM,uBACI,kDAAkDzM,MAAM,KAEvDkE,OAAOC,aAAa,KAAM,CAC/BC,OAAQ,iGAAiGpE,MACrG,KAEJqE,YAAa,SAAU8B,EAAG2C,QACtB,OAAK3C,EAEM,QAAQlK,KAAK6M,QACb2D,uBAAuBtG,EAAE0F,SAEzBW,oBAAoBrG,EAAE0F,SAJtBW,qBAOf/C,kBAAkB,EAClBnF,SAAU,wDAAwDtE,MAC9D,KAEJuE,cAAe,8BAA8BvE,MAAM,KACnDwE,YAAa,uBAAuBxE,MAAM,KAC1C6H,oBAAoB,EACpB7C,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,0BAEVC,SAAU,CACNC,QAAS,gBACTC,QAAS,gBACTC,SAAU,eACVC,QAAS,iBACTC,SAAU,wBACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,SACRC,KAAM,SACNC,EAAG,mBACHC,GAAI,cACJC,EAAG,YACHC,GAAI,aACJC,EAAG,WACHC,GAAI,WACJC,EAAG,UACHC,GAAI,WACJC,EAAG,aACHC,GAAI,aACJC,EAAG,WACHC,GAAI,cAERC,uBAAwB,kBACxBC,QAAS,SAAUC,QACf,OACIA,QACY,IAAXA,QAA2B,IAAXA,QAAgBA,QAAU,GAAK,MAAQ,OAGhEC,KAAM,CACFC,IAAK,EACLC,IAAK,KAzEyBC,CAAQ,oBAAQ,4FCGlD,SAAWjD,QAAU,aAIzB,IAAIE,OAAS,CACL,SACA,UACA,QACA,UACA,YACA,YACA,OACA,SACA,eACA,mBACA,UACA,WAEJC,YAAc,CACV,MACA,QACA,OACA,MACA,OACA,QACA,OACA,MACA,OACA,OACA,OACA,QAEJC,SAAW,CACP,eACA,WACA,WACA,cACA,YACA,YACA,eAEJC,cAAgB,CAAC,OAAQ,OAAQ,QAAS,OAAQ,OAAQ,QAAS,QACnEC,YAAc,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,MAE7CN,OAAOC,aAAa,KAAM,CAC/BC,OACAC,YACAoF,kBAAkB,EAClBnF,SACAC,cACAC,YACAQ,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,2BAEVC,SAAU,CACNC,QAAS,gBACTC,QAAS,kBACTC,SAAU,eACVC,QAAS,eACTC,SAAU,2BACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,OACRC,KAAM,YACNC,EAAG,gBACHC,GAAI,aACJC,EAAG,UACHC,GAAI,aACJC,EAAG,iBACHC,GAAI,oBACJC,EAAG,KACHC,GAAI,QACJC,EAAG,KACHC,GAAI,YACJC,EAAG,SACHC,GAAI,aAERC,uBAAwB,mBACxBC,QAAS,SAAUC,QAEf,OAAOA,QADiB,IAAXA,OAAe,IAAMA,OAAS,IAAO,EAAI,KAAO,OAGjEC,KAAM,CACFC,IAAK,EACLC,IAAK,KA7FyBC,CAAQ,oBAAQ,4FCGlD,SAAWjD,QAAU,aAIzB,IAAIE,OAAS,CACL,gBACA,aACA,UACA,aACA,aACA,eACA,cACA,cACA,eACA,aACA,eACA,gBAEJC,YAAc,CACV,OACA,OACA,OACA,OACA,OACA,OACA,OACA,MACA,OACA,OACA,OACA,QAEJC,SAAW,CACP,cACA,UACA,UACA,YACA,YACA,WACA,eAEJC,cAAgB,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OAC3DC,YAAc,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAE9CN,OAAOC,aAAa,KAAM,CAC/BC,OACAC,YACAoF,kBAAkB,EAClBnF,SACAC,cACAC,YACAQ,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,2BAEVC,SAAU,CACNC,QAAS,oBACTC,QAAS,sBACTC,SAAU,gBACVC,QAAS,iBACTC,SAAU,6BACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,YACRC,KAAM,gBACNC,EAAG,gBACHC,GAAI,YACJC,EAAG,UACHC,GAAI,gBACJC,EAAG,OACHC,GAAI,aACJC,EAAG,QACHC,GAAI,WACJC,EAAG,OACHC,GAAI,YACJC,EAAG,WACHC,GAAI,eAERC,uBAAwB,mBACxBC,QAAS,SAAUC,QAEf,OAAOA,QADiB,IAAXA,OAAe,IAAMA,OAAS,IAAO,EAAI,KAAO,OAGjEC,KAAM,CACFC,IAAK,EACLC,IAAK,KA7FyBC,CAAQ,oBAAQ,4FCGlD,SAAWjD,QAAU,aAIhBA,OAAOC,aAAa,KAAM,CAC/BC,OAAQ,yFAAyFpE,MAC7F,KAEJqE,YACI,8DAA8DrE,MAC1D,KAERyJ,kBAAkB,EAClBnF,SAAU,mDAAmDtE,MAAM,KACnEuE,cAAe,qCAAqCvE,MAAM,KAC1DwE,YAAa,uBAAuBxE,MAAM,KAC1C6H,oBAAoB,EACpB7C,eAAgB,CACZC,GAAI,OACJC,IAAK,UACLC,EAAG,aACHC,GAAI,wBACJC,IAAK,6BACLC,KAAM,oCAEVC,SAAU,CACNC,QAAS,WACL,MAAO,UAA6B,IAAjBhK,KAAKqJ,QAAgB,KAAO,KAAO,QAE1DY,QAAS,WACL,MAAO,UAA6B,IAAjBjK,KAAKqJ,QAAgB,KAAO,KAAO,QAE1Da,SAAU,WACN,MAAO,UAA6B,IAAjBlK,KAAKqJ,QAAgB,KAAO,KAAO,QAE1Dc,QAAS,WACL,MAAO,UAA6B,IAAjBnK,KAAKqJ,QAAgB,IAAM,KAAO,QAEzDe,SAAU,WACN,MACI,qBAAwC,IAAjBpK,KAAKqJ,QAAgB,KAAO,KAAO,QAGlEgB,SAAU,KAEdC,aAAc,CACVC,OAAQ,SAAUjG,KACd,OAA0B,IAAtBA,IAAI6L,QAAQ,MACL,IAAM7L,IAEV,MAAQA,KAEnBkG,KAAM,SACNC,EAAG,eACHC,GAAI,cACJC,EAAG,YACHC,GAAI,aACJC,EAAG,YACHC,GAAI,WACJC,EAAG,SACHC,GAAI,UACJC,EAAG,SACHC,GAAI,WACJC,EAAG,SACHC,GAAI,WAERC,uBAAwB,WACxBC,QAAS,MACTE,KAAM,CACFC,IAAK,EACLC,IAAK,KAzEyBC,CAAQ,oBAAQ,4FCGlD,SAAWjD,QAAU,aAIzB,SAAS2G,oBAAoB9D,OAAQU,cAAe9I,IAAKgJ,UACrD,IAAImB,OAAS,CACT7C,EAAG,CAAC,kBAAmB,cACvBC,GAAI,CAACa,OAAS,aAAcA,OAAS,UACrCZ,EAAG,CAAC,aAAc,YAClBC,GAAI,CAACW,OAAS,YAAaA,OAAS,WACpCV,EAAG,CAAC,WAAY,SAChBC,GAAI,CAACS,OAAS,UAAWA,OAAS,SAClCR,EAAG,CAAC,YAAa,UACjBC,GAAI,CAACO,OAAS,WAAYA,OAAS,QACnCN,EAAG,CAAC,gBAAiB,aACrBC,GAAI,CAACK,OAAS,cAAeA,OAAS,WACtCJ,EAAG,CAAC,aAAc,WAClBC,GAAI,CAACG,OAAS,YAAaA,OAAS,YAExC,OAAOY,SAAWmB,OAAOnK,KAAK,GAAKmK,OAAOnK,KAAK,GAGrCuF,OAAOC,aAAa,WAAY,CAC1CC,OAAQ,CACJ2E,WACI,wFAAwF/I,MACpF,KAER8I,OAAQ,mJAAmJ9I,MACvJ,KAEJgJ,SAAU,mBAEd3E,YACI,4EAA4ErE,MACxE,KAERyJ,kBAAkB,EAClBnF,SAAU,qDAAqDtE,MAAM,KACrEuE,cAAe,4CAA4CvE,MAAM,KACjEwE,YAAa,wBAAwBxE,MAAM,KAC3C6H,oBAAoB,EACpB7C,eAAgB,CACZC,GAAI,kBACJC,IAAK,qBACLC,EAAG,aACHC,GAAI,cACJC,IAAK,8BACLC,KAAM,uCACN4F,KAAM,oCAEV3F,SAAU,CACNC,QAAS,WACTC,QAAS,eACTC,SAAU,qBACVC,QAAS,WACTC,SAAU,qBACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,KACRC,KAAM,UACNC,EAAG4E,oBACH3E,GAAI2E,oBACJ1E,EAAG0E,oBACHzE,GAAIyE,oBACJxE,EAAGwE,oBACHvE,GAAIuE,oBACJtE,EAAGsE,oBACHrE,GAAIqE,oBACJpE,EAAGoE,oBACHnE,GAAImE,oBACJlE,EAAGkE,oBACHjE,GAAIiE,qBAERhE,uBAAwB,eACxBC,QAAS,SAAUC,OAAQmC,QACvB,MAES,MAFDA,OAGOnC,OAAS,MAQTA,QAGnBC,KAAM,CACFC,IAAK,EACLC,IAAK,GAETzC,cAAe,4BACf8E,aAAc,SAAUzB,KAAMlD,UAI1B,OAHa,KAATkD,OACAA,KAAO,GAEM,SAAblD,SACOkD,KAAO,EAAIA,KAAOA,KAAO,GACZ,WAAblD,SACAkD,KACa,YAAblD,SACAkD,KAAO,GAAKA,KAAOA,KAAO,GACb,UAAblD,SACAkD,KAAO,QADX,GAIXlD,SAAU,SAAUkD,KAAMC,OAAQhD,SAC9B,OAAI+C,KAAO,EACA,OACAA,KAAO,GACP,SACAA,KAAO,GACP,UACAA,KAAO,GACP,QAEA,UA3HmBX,CAAQ,oBAAQ,4FCGlD,SAAWjD,QAAU,aAIzB,SAAS2G,oBAAoB9D,OAAQU,cAAe9I,IAAKgJ,UACrD,IAAImB,OAAS,CACT7C,EAAG,CAAC,qBAAsB,iBAC1BC,GAAI,CAACa,OAAS,cAAeA,OAAS,WACtCZ,EAAG,CAAC,aAAc,YAClBC,GAAI,CAACW,OAAS,YAAaA,OAAS,WACpCV,EAAG,CAAC,YAAa,UACjBC,GAAI,CAACS,OAAS,WAAYA,OAAS,UACnCR,EAAG,CAAC,YAAa,UACjBC,GAAI,CAACO,OAAS,WAAYA,OAAS,QACnCN,EAAG,CAAC,eAAgB,aACpBC,GAAI,CAACK,OAAS,cAAeA,OAAS,WACtCJ,EAAG,CAAC,aAAc,YAClBC,GAAI,CAACG,OAAS,YAAaA,OAAS,YAExC,OAAOY,SAAWmB,OAAOnK,KAAK,GAAKmK,OAAOnK,KAAK,GAGrCuF,OAAOC,aAAa,WAAY,CAC1CC,OAAQ,CACJ2E,WACI,4EAA4E/I,MACxE,KAER8I,OAAQ,wIAAwI9I,MAC5I,KAEJgJ,SAAU,mBAEd3E,YACI,4DAA4DrE,MAAM,KACtEyJ,kBAAkB,EAClBnF,SAAU,uDAAuDtE,MAAM,KACvEuE,cAAe,qCAAqCvE,MAAM,KAC1DwE,YAAa,uBAAuBxE,MAAM,KAC1C6H,oBAAoB,EACpB7C,eAAgB,CACZC,GAAI,iBACJC,IAAK,oBACLC,EAAG,aACHC,GAAI,cACJC,IAAK,6BACLC,KAAM,sCACN4F,KAAM,mCAEV3F,SAAU,CACNC,QAAS,WACTC,QAAS,cACTC,SAAU,sBACVC,QAAS,WACTC,SAAU,sBACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,KACRC,KAAM,UACNC,EAAG4E,oBACH3E,GAAI2E,oBACJ1E,EAAG0E,oBACHzE,GAAIyE,oBACJxE,EAAGwE,oBACHvE,GAAIuE,oBACJtE,EAAGsE,oBACHrE,GAAIqE,oBACJpE,EAAGoE,oBACHnE,GAAImE,oBACJlE,EAAGkE,oBACHjE,GAAIiE,qBAERhE,uBAAwB,cACxBC,QAAS,SAAUC,OAAQmC,QACvB,MAES,MAFDA,OAGOnC,OAAS,KAQTA,QAGnBC,KAAM,CACFC,IAAK,EACLC,IAAK,GAETzC,cAAe,+BACf8E,aAAc,SAAUzB,KAAMlD,UAI1B,OAHa,KAATkD,OACAA,KAAO,GAEM,SAAblD,SACOkD,KAAO,EAAIA,KAAOA,KAAO,GACZ,aAAblD,SACAkD,KACa,aAAblD,SACAkD,KAAO,GAAKA,KAAOA,KAAO,GACb,UAAblD,SACAkD,KAAO,QADX,GAIXlD,SAAU,SAAUkD,KAAMC,OAAQhD,SAC9B,OAAI+C,KAAO,EACA,OACAA,KAAO,GACP,WACAA,KAAO,GACP,WACAA,KAAO,GACP,QAEA,UAzHmBX,CAAQ,oBAAQ,4FCGlD,SAAWjD,QAAU,aAIzB,IAAI+D,UAAY,CACR,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,KAEPE,UAAY,CACR,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,KAGJjE,OAAOC,aAAa,KAAM,CAC/BC,OAAQ,yFAAyFpE,MAC7F,KAEJqE,YACI,yEAAyErE,MACrE,KAERyJ,kBAAkB,EAClBnF,SAAU,wDAAwDtE,MAC9D,KAEJuE,cAAe,mCAAmCvE,MAAM,KACxDwE,YAAa,qBAAqBxE,MAAM,KACxCgF,eAAgB,CACZC,GAAI,gBACJC,IAAK,mBACLC,EAAG,aACHC,GAAI,cACJC,IAAK,6BACLC,KAAM,oCAEVC,SAAU,CACNC,QAAS,UACTC,QAAS,YACTC,SAAU,WACVC,QAAS,cACTC,SAAU,mBACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,QACRC,KAAM,WACNC,EAAG,WACHC,GAAI,WACJC,EAAG,WACHC,GAAI,WACJC,EAAG,UACHC,GAAI,UACJC,EAAG,UACHC,GAAI,UACJC,EAAG,WACHC,GAAI,WACJC,EAAG,UACHC,GAAI,WAERsB,SAAU,SAAUR,QAChB,OAAOA,OAAO9F,QAAQ,iBAAiB,SAAUwB,OAC7C,OAAO+E,UAAU/E,WAGzB4E,WAAY,SAAUN,QAClB,OAAOA,OAAO9F,QAAQ,OAAO,SAAUwB,OACnC,OAAO6E,UAAU7E,WAKzBqB,cAAe,qBACf8E,aAAc,SAAUzB,KAAMlD,UAI1B,OAHa,KAATkD,OACAA,KAAO,GAEM,QAAblD,SACOkD,KAAO,EAAIA,KAAOA,KAAO,GACZ,SAAblD,SACAkD,KACa,SAAblD,SACAkD,MAAQ,GAAKA,KAAOA,KAAO,GACd,SAAblD,SACAkD,KAAO,QADX,GAIXlD,SAAU,SAAUkD,KAAMC,OAAQhD,SAC9B,OAAI+C,KAAO,EACA,MACAA,KAAO,GACP,OACAA,KAAO,GACP,OACAA,KAAO,GACP,OAEA,OAGfd,KAAM,CACFC,IAAK,EACLC,IAAK,KAxHyBC,CAAQ,oBAAQ,4FCKlD,SAAWjD,QAAU,aAIhBA,OAAOC,aAAa,KAAM,CAC/BC,OAAQ,0EAA0EpE,MAC9E,KAEJqE,YACI,4DAA4DrE,MAAM,KACtEsE,SAAU,uCAAuCtE,MAAM,KACvDuE,cAAe,uBAAuBvE,MAAM,KAC5CwE,YAAa,gBAAgBxE,MAAM,KACnCgF,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,iBACJC,IAAK,uBACLC,KAAM,6BACNvD,EAAG,WACHiJ,GAAI,aACJC,IAAK,mBACLC,KAAM,yBAEV3F,SAAU,CACNC,QAAS,cACTC,QAAS,aACTC,SAAU,iBACVC,QAAS,eACTC,SAAU,+BACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,UACRC,KAAM,UACNC,EAAG,aACHC,GAAI,WACJC,EAAG,MACHC,GAAI,UACJC,EAAG,MACHC,GAAI,SAAUS,QACV,OAAe,IAAXA,OACO,SAEJA,OAAS,SAEpBR,EAAG,MACHC,GAAI,SAAUO,QACV,OAAe,IAAXA,OACO,SAEJA,OAAS,SAEpBN,EAAG,OACHC,GAAI,SAAUK,QACV,OAAe,IAAXA,OACO,UAEJA,OAAS,WAEpBJ,EAAG,MACHC,GAAI,SAAUG,QACV,OAAe,IAAXA,OACO,SACAA,OAAS,IAAO,GAAgB,KAAXA,OACrBA,OAAS,OAEbA,OAAS,UAGxBtC,cACI,gEACJC,KAAM,SAAUC,OACZ,MAAO,8BAA8B1I,KAAK0I,QAE9CC,SAAU,SAAUkD,KAAMC,OAAQhD,SAC9B,OAAI+C,KAAO,EACA,aACAA,KAAO,GACP,QACAA,KAAO,GACP/C,QAAU,SAAW,eACrB+C,KAAO,GACP/C,QAAU,QAAU,eAEpB,UAzFmBoC,CAAQ,oBAAQ,0FCClD,SAAWjD,QAAU,aAIzB,IAAI+D,UAAY,CACR,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,KAEPE,UAAY,CACR,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,KAET+B,YAAc,CACV,OACA,WACA,UACA,UACA,OACA,QACA,QACA,OACA,aACA,UACA,WACA,cAEJS,iBAAmB,CACf,OACA,QACA,UACA,UACA,OACA,QACA,QACA,OACA,QACA,UACA,OACA,SAGCzG,OAAOC,aAAa,KAAM,CAC/BC,OAAQ,CACJ0E,OAAQ,8EAA8E9I,MAClF,KAEJ+I,WACI,0EAA0E/I,MACtE,MAGZqE,YACI,6DAA6DrE,MAAM,KACvEsE,SAAU,uDAAuDtE,MAAM,KACvEuE,cAAe,kCAAkCvE,MAAM,KACvDwE,YAAa,qBAAqBxE,MAAM,KACxCgF,eAAgB,CACZC,GAAI,aACJC,IAAK,gBACLC,EAAG,aACHC,GAAI,cACJC,IAAK,0BACLC,KAAM,iCAGV4E,YACAQ,gBAAiBR,YACjBS,iBAEAR,YACI,+KAEJX,iBACI,+KAEJY,kBACI,uIAEJC,uBACI,sFAEJ9E,SAAU,CACNC,QAAS,UACTC,QAAS,UACTC,SAAU,WACVC,QAAS,UACTC,SAAU,mBACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,SACRC,KAAM,UACNC,EAAG,cACHC,GAAI,WACJC,EAAG,UACHC,GAAI,UACJC,EAAG,UACHC,GAAI,UACJC,EAAG,SACHC,GAAI,SACJC,EAAG,WACHC,GAAI,WACJC,EAAG,UACHC,GAAI,WAERsB,SAAU,SAAUR,QAChB,OAAOA,OAAO9F,QAAQ,iBAAiB,SAAUwB,OAC7C,OAAO+E,UAAU/E,WAGzB4E,WAAY,SAAUN,QAClB,OAAOA,OAAO9F,QAAQ,OAAO,SAAUwB,OACnC,OAAO6E,UAAU7E,WAKzBqB,cAAe,qBACf8E,aAAc,SAAUzB,KAAMlD,UAI1B,OAHa,KAATkD,OACAA,KAAO,GAEM,QAAblD,SACOkD,KAAO,EAAIA,KAAOA,KAAO,GACZ,SAAblD,SACAkD,KACa,UAAblD,SACAkD,MAAQ,GAAKA,KAAOA,KAAO,GACd,QAAblD,SACAkD,KAAO,QADX,GAIXlD,SAAU,SAAUkD,KAAMC,OAAQhD,SAC9B,OAAI+C,KAAO,EACA,MACAA,KAAO,GACP,OACAA,KAAO,GACP,QACAA,KAAO,GACP,MAEA,OAGfd,KAAM,CACFC,IAAK,EACLC,IAAK,KAtKyBC,CAAQ,oBAAQ,2FCGlD,SAAWjD,QAAU,aAIzB,SAAS4G,UAAU/D,OAAQU,cAAe9I,KACtC,IAAIoM,OAAShE,OAAS,IACtB,OAAQpI,KACJ,IAAK,KAQD,OANIoM,QADW,IAAXhE,OACU,UACQ,IAAXA,QAA2B,IAAXA,QAA2B,IAAXA,OAC7B,UAEA,UAGlB,IAAK,IACD,OAAOU,cAAgB,eAAiB,eAC5C,IAAK,KAQD,OANIsD,QADW,IAAXhE,OACU,SACQ,IAAXA,QAA2B,IAAXA,QAA2B,IAAXA,OAC7B,SAEA,SAGlB,IAAK,IACD,OAAOU,cAAgB,YAAc,cACzC,IAAK,KAQD,OANIsD,QADW,IAAXhE,OACU,MACQ,IAAXA,QAA2B,IAAXA,QAA2B,IAAXA,OAC7B,OAEA,OAGlB,IAAK,KAMD,OAJIgE,QADW,IAAXhE,OACU,MAEA,OAGlB,IAAK,KAQD,OANIgE,QADW,IAAXhE,OACU,SACQ,IAAXA,QAA2B,IAAXA,QAA2B,IAAXA,OAC7B,UAEA,UAGlB,IAAK,KAQD,OANIgE,QADW,IAAXhE,OACU,SACQ,IAAXA,QAA2B,IAAXA,QAA2B,IAAXA,OAC7B,SAEA,UAMjB7C,OAAOC,aAAa,KAAM,CAC/BC,OAAQ,CACJ0E,OAAQ,oGAAoG9I,MACxG,KAEJ+I,WACI,gGAAgG/I,MAC5F,MAGZqE,YACI,+DAA+DrE,MAC3D,KAERyJ,kBAAkB,EAClBnF,SAAU,4DAA4DtE,MAClE,KAEJuE,cAAe,qCAAqCvE,MAAM,KAC1DwE,YAAa,uBAAuBxE,MAAM,KAC1C6H,oBAAoB,EACpB7C,eAAgB,CACZC,GAAI,OACJC,IAAK,UACLC,EAAG,aACHC,GAAI,eACJC,IAAK,oBACLC,KAAM,2BAEVC,SAAU,CACNC,QAAS,eACTC,QAAS,eACTC,SAAU,WACN,OAAQlK,KAAKyN,OACT,KAAK,EACD,MAAO,wBACX,KAAK,EACD,MAAO,uBACX,KAAK,EACD,MAAO,sBACX,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACD,MAAO,oBAGnBtD,QAAS,eACTC,SAAU,WACN,OAAQpK,KAAKyN,OACT,KAAK,EACD,MAAO,6BACX,KAAK,EACD,MAAO,4BACX,KAAK,EACD,MAAO,2BACX,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACD,MAAO,yBAGnBpD,SAAU,KAEdC,aAAc,CACVC,OAAQ,QACRC,KAAM,WACNC,EAAG,cACHC,GAAI4E,UACJ3E,EAAG2E,UACH1E,GAAI0E,UACJzE,EAAGyE,UACHxE,GAAIwE,UACJvE,EAAG,MACHC,GAAIsE,UACJrE,EAAG,SACHC,GAAIoE,UACJnE,EAAG,SACHC,GAAIkE,WAERjE,uBAAwB,YACxBC,QAAS,MACTE,KAAM,CACFC,IAAK,EACLC,IAAK,KA1JyBC,CAAQ,oBAAQ,4FCIlD,SAAWjD,QAAU,aAIzB,IAAIwI,YACA,gEAAgE1M,MAAM,KAC1E,SAAS8K,UAAU/D,OAAQU,cAAe9I,IAAKgJ,UAC3C,IAAIgB,IAAM5B,OACV,OAAQpI,KACJ,IAAK,IACD,OAAOgJ,UAAYF,cACb,mBACA,oBACV,IAAK,KACD,OAAOkB,KAAOhB,UAAYF,eACpB,aACA,cACV,IAAK,IACD,MAAO,OAASE,UAAYF,cAAgB,QAAU,UAC1D,IAAK,KACD,OAAOkB,KAAOhB,UAAYF,cAAgB,QAAU,UACxD,IAAK,IACD,MAAO,OAASE,UAAYF,cAAgB,OAAS,UACzD,IAAK,KACD,OAAOkB,KAAOhB,UAAYF,cAAgB,OAAS,UACvD,IAAK,IACD,MAAO,OAASE,UAAYF,cAAgB,OAAS,UACzD,IAAK,KACD,OAAOkB,KAAOhB,UAAYF,cAAgB,OAAS,UACvD,IAAK,IACD,MAAO,OAASE,UAAYF,cAAgB,SAAW,YAC3D,IAAK,KACD,OAAOkB,KAAOhB,UAAYF,cAAgB,SAAW,YACzD,IAAK,IACD,MAAO,OAASE,UAAYF,cAAgB,MAAQ,QACxD,IAAK,KACD,OAAOkB,KAAOhB,UAAYF,cAAgB,MAAQ,QAE1D,MAAO,GAEX,SAAST,KAAKW,UACV,OACKA,SAAW,GAAK,WACjB,IACA+E,YAAYlR,KAAKyN,OACjB,aAIC/E,OAAOC,aAAa,KAAM,CAC/BC,OAAQ,oGAAoGpE,MACxG,KAEJqE,YACI,iEAAiErE,MAC7D,KAERyJ,kBAAkB,EAClBnF,SAAU,sDAAsDtE,MAAM,KACtEuE,cAAe,gCAAgCvE,MAAM,KACrDwE,YAAa,qBAAqBxE,MAAM,KACxCgF,eAAgB,CACZC,GAAI,OACJC,IAAK,UACLC,EAAG,cACHC,GAAI,gBACJC,IAAK,qBACLC,KAAM,4BAEVb,cAAe,SACfC,KAAM,SAAUC,OACZ,MAAyC,MAAlCA,MAAMsF,OAAO,GAAGvM,eAE3BkH,SAAU,SAAUC,MAAOC,QAASC,SAChC,OAAIF,MAAQ,IACW,IAAZE,QAAmB,KAAO,MAEd,IAAZA,QAAmB,KAAO,MAGzCQ,SAAU,CACNC,QAAS,gBACTC,QAAS,oBACTC,SAAU,WACN,OAAOsB,KAAK3E,KAAK7G,MAAM,IAE3BmK,QAAS,oBACTC,SAAU,WACN,OAAOoB,KAAK3E,KAAK7G,MAAM,IAE3BqK,SAAU,KAEdC,aAAc,CACVC,OAAQ,WACRC,KAAM,KACNC,EAAG6E,UACH5E,GAAI4E,UACJ3E,EAAG2E,UACH1E,GAAI0E,UACJzE,EAAGyE,UACHxE,GAAIwE,UACJvE,EAAGuE,UACHtE,GAAIsE,UACJrE,EAAGqE,UACHpE,GAAIoE,UACJnE,EAAGmE,UACHlE,GAAIkE,WAERjE,uBAAwB,YACxBC,QAAS,MACTE,KAAM,CACFC,IAAK,EACLC,IAAK,KAnHyBC,CAAQ,oBAAQ,4FCElD,SAAWjD,QAAU,aAIdA,OAAOC,aAAa,QAAS,CACpCC,OAAQ,CACJ0E,OAAQ,4GAA4G9I,MAChH,KAEJ+I,WACI,gGAAgG/I,MAC5F,MAGZqE,YAAa,kDAAkDrE,MAAM,KACrEsE,SACI,gEAAgEtE,MAC5D,KAERuE,cAAe,+BAA+BvE,MAAM,KACpDwE,YAAa,+BAA+BxE,MAAM,KAClDgF,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,iBACJC,IAAK,wBACLC,KAAM,+BAEVC,SAAU,CACNC,QAAS,aACTC,QAAS,YACTE,QAAS,YACTD,SAAU,WACN,MAAO,sBAEXE,SAAU,WACN,MAAO,8BAEXC,SAAU,KAEdC,aAAc,CACVC,OAAQ,UACRC,KAAM,UACNC,EAAG,mBACHC,GAAI,cACJC,EAAG,OACHC,GAAI,UACJC,EAAG,MACHC,GAAI,SACJC,EAAG,KACHC,GAAI,QACJC,EAAG,OACHC,GAAI,UACJC,EAAG,OACHC,GAAI,WAERnC,cAAe,oCACfC,KAAM,SAAUC,OACZ,MAAO,uBAAuB1I,KAAK0I,QAEvCC,SAAU,SAAUkD,MAChB,OAAIA,KAAO,EACA,UACAA,KAAO,GACP,WACAA,KAAO,GACP,UAEA,YAGfjB,uBAAwB,0BACxBC,QAAS,SAAUC,OAAQmC,QACvB,OAAQA,QACJ,IAAK,MACL,IAAK,IACL,IAAK,IACL,IAAK,OACD,OAAe,IAAXnC,OACOA,OAAS,MAEbA,OAAS,MACpB,QACI,OAAOA,SAGnBC,KAAM,CACFC,IAAK,EACLC,IAAK,KA5FyBC,CAAQ,oBAAQ,4FCIlD,SAAWjD,QAAU,aAIhBA,OAAOC,aAAa,KAAM,CAC/BC,OAAQ,yFAAyFpE,MAC7F,KAEJqE,YAAa,kDAAkDrE,MAAM,KACrEsE,SAAU,6CAA6CtE,MAAM,KAC7DuE,cAAe,8BAA8BvE,MAAM,KACnDwE,YAAa,uBAAuBxE,MAAM,KAC1CgF,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,4BACLC,KAAM,mCAEVb,cAAe,wBACf8E,aAAc,SAAUzB,KAAMlD,UAI1B,OAHa,KAATkD,OACAA,KAAO,GAEM,SAAblD,SACOkD,KACa,UAAblD,SACAkD,MAAQ,GAAKA,KAAOA,KAAO,GACd,SAAblD,UAAoC,UAAbA,SACvBkD,KAAO,QADX,GAIXlD,SAAU,SAAUC,MAAOC,QAASC,SAChC,OAAIF,MAAQ,GACD,OACAA,MAAQ,GACR,QACAA,MAAQ,GACR,OAEA,SAGfU,SAAU,CACNC,QAAS,sBACTC,QAAS,mBACTC,SAAU,kBACVC,QAAS,qBACTC,SAAU,uBACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,WACRC,KAAM,eACNC,EAAG,iBACHC,GAAI,WACJC,EAAG,UACHC,GAAI,WACJC,EAAG,QACHC,GAAI,SACJC,EAAG,SACHC,GAAI,UACJC,EAAG,UACHC,GAAI,WACJC,EAAG,UACHC,GAAI,YAERI,KAAM,CACFC,IAAK,EACLC,IAAK,KAzEyBC,CAAQ,oBAAQ,2FCElD,SAAWjD,QAAU,aAIzB,SAASuE,OAAOpB,GACZ,OAAIA,EAAI,KAAQ,IAELA,EAAI,IAAO,EAK1B,SAASyD,UAAU/D,OAAQU,cAAe9I,IAAKgJ,UAC3C,IAAIoD,OAAShE,OAAS,IACtB,OAAQpI,KACJ,IAAK,IACD,OAAO8I,eAAiBE,SAClB,mBACA,mBACV,IAAK,KACD,OAAIc,OAAO1B,QAEHgE,QACCtD,eAAiBE,SAAW,WAAa,YAG3CoD,OAAS,UACpB,IAAK,IACD,OAAOtD,cAAgB,SAAW,SACtC,IAAK,KACD,OAAIgB,OAAO1B,QAEHgE,QAAUtD,eAAiBE,SAAW,UAAY,WAE/CF,cACAsD,OAAS,SAEbA,OAAS,SACpB,IAAK,KACD,OAAItC,OAAO1B,QAEHgE,QACCtD,eAAiBE,SACZ,gBACA,iBAGPoD,OAAS,cACpB,IAAK,IACD,OAAItD,cACO,QAEJE,SAAW,MAAQ,OAC9B,IAAK,KACD,OAAIc,OAAO1B,QACHU,cACOsD,OAAS,QAEbA,QAAUpD,SAAW,OAAS,SAC9BF,cACAsD,OAAS,QAEbA,QAAUpD,SAAW,MAAQ,QACxC,IAAK,IACD,OAAIF,cACO,UAEJE,SAAW,QAAU,SAChC,IAAK,KACD,OAAIc,OAAO1B,QACHU,cACOsD,OAAS,UAEbA,QAAUpD,SAAW,SAAW,WAChCF,cACAsD,OAAS,UAEbA,QAAUpD,SAAW,QAAU,UAC1C,IAAK,IACD,OAAOF,eAAiBE,SAAW,KAAO,MAC9C,IAAK,KACD,OAAIc,OAAO1B,QACAgE,QAAUtD,eAAiBE,SAAW,KAAO,QAEjDoD,QAAUtD,eAAiBE,SAAW,KAAO,QAIvDzD,OAAOC,aAAa,KAAM,CAC/BC,OAAQ,oFAAoFpE,MACxF,KAEJqE,YAAa,kDAAkDrE,MAAM,KACrEsE,SACI,mFAAmFtE,MAC/E,KAERuE,cAAe,8BAA8BvE,MAAM,KACnDwE,YAAa,uBAAuBxE,MAAM,KAC1CgF,eAAgB,CACZC,GAAI,OACJC,IAAK,UACLC,EAAG,aACHC,GAAI,eACJC,IAAK,0BACLC,KAAM,iCAEVC,SAAU,CACNC,QAAS,iBACTC,QAAS,oBACTC,SAAU,gBACVC,QAAS,iBACTC,SAAU,0BACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,WACRC,KAAM,iBACNC,EAAG6E,UACH5E,GAAI4E,UACJ3E,EAAG2E,UACH1E,GAAI0E,UACJzE,EAAG,cACHC,GAAIwE,UACJvE,EAAGuE,UACHtE,GAAIsE,UACJrE,EAAGqE,UACHpE,GAAIoE,UACJnE,EAAGmE,UACHlE,GAAIkE,WAERjE,uBAAwB,YACxBC,QAAS,MACTE,KAAM,CACFC,IAAK,EACLC,IAAK,KA1IyBC,CAAQ,oBAAQ,2FCGlD,SAAWjD,QAAU,aAIdA,OAAOC,aAAa,QAAS,CACpCC,OAAQ,gGAAgGpE,MACpG,KAEJqE,YAAa,kDAAkDrE,MAAM,KACrEsE,SAAU,2DAA2DtE,MACjE,KAEJuE,cAAe,8BAA8BvE,MAAM,KACnDwE,YAAa,uBAAuBxE,MAAM,KAC1CgF,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,0BAEVC,SAAU,CACNC,QAAS,iBACTC,QAAS,mBACTC,SAAU,iBACVC,QAAS,iBACTC,SAAU,WACN,OACS,IADDpK,KAAKyN,MAEE,6BAEA,8BAGnBpD,SAAU,KAEdC,aAAc,CACVC,OAAQ,SAAUE,GACd,OAAQ,YAAYhK,KAAKgK,GAAK,MAAQ,MAAQ,IAAMA,GAExDD,KAAM,QACNC,EAAG,iBACHC,GAAI,aACJC,EAAG,YACHC,GAAI,YACJC,EAAG,SACHC,GAAI,SACJC,EAAG,YACHC,GAAI,YACJC,EAAG,UACHC,GAAI,UACJC,EAAG,UACHC,GAAI,WAERC,uBAAwB,WACxBC,QAAS,MACTE,KAAM,CACFC,IAAK,EACLC,IAAK,KA9DyBC,CAAQ,oBAAQ,2FCKlD,SAAWjD,QAAU,aAIhBA,OAAOC,aAAa,KAAM,CAC/BC,OAAQ,gGAAgGpE,MACpG,KAEJqE,YAAa,kDAAkDrE,MAAM,KACrEsE,SAAU,2DAA2DtE,MACjE,KAEJuE,cAAe,8BAA8BvE,MAAM,KACnDwE,YAAa,uBAAuBxE,MAAM,KAC1CgF,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,0BAEVC,SAAU,CACNC,QAAS,WACL,MACI,WACChK,KAAKqJ,QAAU,EAAI,OAA0B,IAAjBrJ,KAAKqJ,QAAgB,IAAM,OACxD,OAGRY,QAAS,WACL,MACI,aACCjK,KAAKqJ,QAAU,EAAI,OAA0B,IAAjBrJ,KAAKqJ,QAAgB,IAAM,OACxD,OAGRa,SAAU,WACN,MACI,WACClK,KAAKqJ,QAAU,EAAI,OAA0B,IAAjBrJ,KAAKqJ,QAAgB,IAAM,OACxD,OAGRc,QAAS,WACL,MACI,WACCnK,KAAKqJ,QAAU,EAAI,OAA0B,IAAjBrJ,KAAKqJ,QAAgB,IAAM,OACxD,OAGRe,SAAU,WACN,OACS,IADDpK,KAAKyN,MAGD,uBACCzN,KAAKqJ,QAAU,EACV,OACiB,IAAjBrJ,KAAKqJ,QACH,IACA,OACR,MAIA,uBACCrJ,KAAKqJ,QAAU,EACV,OACiB,IAAjBrJ,KAAKqJ,QACH,IACA,OACR,OAIhBgB,SAAU,KAEdC,aAAc,CACVC,OAAQ,SACRC,KAAM,QACNC,EAAG,iBACHC,GAAI,aACJC,EAAG,YACHC,GAAI,YACJC,EAAG,SACHC,GAAI,SACJC,EAAG,YACHC,GAAI,YACJ2C,EAAG,gBACHC,GAAI,eACJ3C,EAAG,UACHC,GAAI,UACJC,EAAG,UACHC,GAAI,WAERC,uBAAwB,WACxBC,QAAS,MACTE,KAAM,CACFC,IAAK,EACLC,IAAK,KAtGyBC,CAAQ,oBAAQ,4FCClD,SAAWjD,QAAU,aAIhBA,OAAOC,aAAa,KAAM,CAC/BwI,KAAM,CACF,CACIC,MAAO,aACPC,OAAQ,EACRlL,KAAM,KACNmL,OAAQ,IACRC,KAAM,KAEV,CACIH,MAAO,aACPI,MAAO,aACPH,OAAQ,EACRlL,KAAM,KACNmL,OAAQ,IACRC,KAAM,KAEV,CACIH,MAAO,aACPI,MAAO,aACPH,OAAQ,EACRlL,KAAM,KACNmL,OAAQ,IACRC,KAAM,KAEV,CACIH,MAAO,aACPI,MAAO,aACPH,OAAQ,EACRlL,KAAM,KACNmL,OAAQ,IACRC,KAAM,KAEV,CACIH,MAAO,aACPI,MAAO,aACPH,OAAQ,EACRlL,KAAM,KACNmL,OAAQ,IACRC,KAAM,KAEV,CACIH,MAAO,aACPI,MAAO,aACPH,OAAQ,EACRlL,KAAM,KACNmL,OAAQ,KACRC,KAAM,MAEV,CACIH,MAAO,aACPI,OAAO,IACPH,OAAQ,EACRlL,KAAM,MACNmL,OAAQ,KACRC,KAAM,OAGdE,oBAAqB,WACrBC,oBAAqB,SAAUvI,MAAOvB,OAClC,MAAoB,MAAbA,MAAM,GAAa,EAAI+J,SAAS/J,MAAM,IAAMuB,MAAO,KAE9DP,OAAQ,yCAAyCpE,MAAM,KACvDqE,YAAa,yCAAyCrE,MAClD,KAEJsE,SAAU,8BAA8BtE,MAAM,KAC9CuE,cAAe,gBAAgBvE,MAAM,KACrCwE,YAAa,gBAAgBxE,MAAM,KACnCgF,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,YACJC,IAAK,kBACLC,KAAM,uBACNvD,EAAG,aACHiJ,GAAI,YACJC,IAAK,kBACLC,KAAM,wBAEVzG,cAAe,SACfC,KAAM,SAAUC,OACZ,MAAiB,OAAVA,OAEXC,SAAU,SAAUkD,KAAMC,OAAQhD,SAC9B,OAAI+C,KAAO,GACA,KAEA,MAGfvC,SAAU,CACNC,QAAS,UACTC,QAAS,UACTC,SAAU,SAAU0H,KAChB,OAAIA,IAAIpG,SAAWxL,KAAKwL,OACb,cAEA,WAGfrB,QAAS,UACTC,SAAU,SAAUwH,KAChB,OAAI5R,KAAKwL,SAAWoG,IAAIpG,OACb,cAEA,WAGfnB,SAAU,KAEdgB,uBAAwB,WACxBC,QAAS,SAAUC,OAAQmC,QACvB,OAAQA,QACJ,IAAK,IACD,OAAkB,IAAXnC,OAAe,KAAOA,OAAS,IAC1C,IAAK,IACL,IAAK,IACL,IAAK,MACD,OAAOA,OAAS,IACpB,QACI,OAAOA,SAGnBjB,aAAc,CACVC,OAAQ,MACRC,KAAM,MACNC,EAAG,KACHC,GAAI,MACJC,EAAG,KACHC,GAAI,MACJC,EAAG,MACHC,GAAI,OACJC,EAAG,KACHC,GAAI,MACJC,EAAG,MACHC,GAAI,OACJC,EAAG,KACHC,GAAI,SAlJ0BO,CAAQ,oBAAQ,4FCIlD,SAAWjD,QAAU,aAIhBA,OAAOC,aAAa,KAAM,CAC/BC,OAAQ,yFAAyFpE,MAC7F,KAEJqE,YAAa,kDAAkDrE,MAAM,KACrEsE,SAAU,+CAA+CtE,MAAM,KAC/DuE,cAAe,8BAA8BvE,MAAM,KACnDwE,YAAa,uBAAuBxE,MAAM,KAC1CgF,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,4BACLC,KAAM,mCAEVb,cAAe,6BACf8E,aAAc,SAAUzB,KAAMlD,UAI1B,OAHa,KAATkD,OACAA,KAAO,GAEM,WAAblD,SACOkD,KACa,WAAblD,SACAkD,MAAQ,GAAKA,KAAOA,KAAO,GACd,WAAblD,UAAsC,UAAbA,SACzBkD,KAAO,QADX,GAIXlD,SAAU,SAAUC,MAAOC,QAASC,SAChC,OAAIF,MAAQ,GACD,SACAA,MAAQ,GACR,SACAA,MAAQ,GACR,SAEA,SAGfU,SAAU,CACNC,QAAS,2BACTC,QAAS,sBACTC,SAAU,kBACVC,QAAS,wBACTC,SAAU,4BACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,gBACRC,KAAM,uBACNC,EAAG,kBACHC,GAAI,WACJC,EAAG,kBACHC,GAAI,WACJC,EAAG,gBACHC,GAAI,SACJC,EAAG,WACHC,GAAI,YACJC,EAAG,UACHC,GAAI,WACJC,EAAG,SACHC,GAAI,WAERI,KAAM,CACFC,IAAK,EACLC,IAAK,KAzEyBC,CAAQ,oBAAQ,4FCElD,SAAWjD,QAAU,aAIhBA,OAAOC,aAAa,KAAM,CAC/BC,OAAQ,qGAAqGpE,MACzG,KAEJqE,YAAa,kDAAkDrE,MAAM,KACrEsE,SAAU,CACNyE,WACI,gEAAgE/I,MAC5D,KAER8I,OAAQ,iEAAiE9I,MACrE,KAEJgJ,SAAU,iBAEdzE,cAAe,8BAA8BvE,MAAM,KACnDwE,YAAa,uBAAuBxE,MAAM,KAC1CgF,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,2BAEVC,SAAU,CACNC,QAAS,iBACTC,QAAS,iBACTE,QAAS,kBACTD,SAAU,wBACVE,SAAU,oBACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,SAAUE,GACd,OAAOA,EAAErE,QACL,iCACA,SAAUyL,GAAIC,GAAIC,IACd,MAAc,MAAPA,GAAaD,GAAK,KAAOA,GAAKC,GAAK,SAItDvH,KAAM,SAAUC,GACZ,MAAI,4BAA4BhK,KAAKgK,GAC1BA,EAAErE,QAAQ,SAAU,UAE3B,OAAO3F,KAAKgK,GACLA,EAAErE,QAAQ,QAAS,YAEvBqE,GAEXA,EAAG,iBACHC,GAAI,UACJC,EAAG,OACHC,GAAI,UACJC,EAAG,QACHC,GAAI,WACJC,EAAG,MACHC,GAAI,SACJC,EAAG,MACHC,GAAI,SACJC,EAAG,OACHC,GAAI,WAERC,uBAAwB,8BACxBC,QAAS,SAAUC,QACf,OAAe,IAAXA,OACOA,OAEI,IAAXA,OACOA,OAAS,MAGhBA,OAAS,IACRA,QAAU,KAAOA,OAAS,IAAO,GAClCA,OAAS,KAAQ,EAEV,MAAQA,OAEZA,OAAS,MAEpBC,KAAM,CACFC,IAAK,EACLC,IAAK,KA1FyBC,CAAQ,oBAAQ,4FCGlD,SAAWjD,QAAU,aAIzB,IAAImE,SAAW,CACX,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,IAAK,OAGAnE,OAAOC,aAAa,KAAM,CAC/BC,OAAQ,qFAAqFpE,MACzF,KAEJqE,YAAa,kDAAkDrE,MAAM,KACrEsE,SAAU,0DAA0DtE,MAChE,KAEJuE,cAAe,8BAA8BvE,MAAM,KACnDwE,YAAa,uBAAuBxE,MAAM,KAC1CgF,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,2BAEVC,SAAU,CACNC,QAAS,mBACTC,QAAS,mBACTC,SAAU,kBACVC,QAAS,kBACTC,SAAU,kCACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,YACRC,KAAM,WACNC,EAAG,iBACHC,GAAI,YACJC,EAAG,YACHC,GAAI,WACJC,EAAG,YACHC,GAAI,WACJC,EAAG,UACHC,GAAI,SACJC,EAAG,SACHC,GAAI,QACJC,EAAG,UACHC,GAAI,UAERC,uBAAwB,kBACxBC,QAAS,SAAUC,QACf,IAAIuB,EAAIvB,OAAS,GACbwB,EAAIxB,QAAU,IAAM,IAAM,KAC9B,OAAOA,QAAUsB,SAAStB,SAAWsB,SAASC,IAAMD,SAASE,KAEjEvB,KAAM,CACFC,IAAK,EACLC,IAAK,KAhFyBC,CAAQ,oBAAQ,4FCGlD,SAAWjD,QAAU,aAIzB,IAAI+D,UAAY,CACR,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,KAEPE,UAAY,CACR,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,KAGJjE,OAAOC,aAAa,KAAM,CAC/BC,OAAQ,yEAAyEpE,MAC7E,KAEJqE,YACI,yEAAyErE,MACrE,KAERsE,SAAU,iDAAiDtE,MAAM,KACjEuE,cAAe,oBAAoBvE,MAAM,KACzCwE,YAAa,oBAAoBxE,MAAM,KACvC6H,oBAAoB,EACpB7C,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,2BAEVb,cAAe,cACfC,KAAM,SAAUC,OACZ,MAAiB,UAAVA,OAEXC,SAAU,SAAUkD,KAAMC,OAAQhD,SAC9B,OAAI+C,KAAO,GACA,QAEA,SAGfvC,SAAU,CACNC,QAAS,oBACTC,QAAS,kBACTC,SAAU,iBACVC,QAAS,qBACTC,SAAU,8BACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,QACRC,KAAM,QACNC,EAAG,iBACHC,GAAI,YACJC,EAAG,UACHC,GAAI,UACJC,EAAG,UACHC,GAAI,UACJC,EAAG,UACHC,GAAI,UACJC,EAAG,QACHC,GAAI,QACJC,EAAG,WACHC,GAAI,YAERC,uBAAwB,YACxBC,QAAS,OACToB,SAAU,SAAUR,QAChB,OAAOA,OAAO9F,QAAQ,iBAAiB,SAAUwB,OAC7C,OAAO+E,UAAU/E,WAGzB4E,WAAY,SAAUN,QAClB,OAAOA,OAAO9F,QAAQ,OAAO,SAAUwB,OACnC,OAAO6E,UAAU7E,WAGzB4D,KAAM,CACFC,IAAK,EACLC,IAAK,KArGyBC,CAAQ,oBAAQ,4FCGlD,SAAWjD,QAAU,aAIzB,IAAI+D,UAAY,CACR,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,KAEPE,UAAY,CACR,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,KAGJjE,OAAOC,aAAa,KAAM,CAC/BC,OAAQ,6FAA6FpE,MACjG,KAEJqE,YACI,2EAA2ErE,MACvE,KAERyJ,kBAAkB,EAClBnF,SAAU,0DAA0DtE,MAChE,KAEJuE,cAAe,qCAAqCvE,MAAM,KAC1DwE,YAAa,wBAAwBxE,MAAM,KAC3CgF,eAAgB,CACZC,GAAI,SACJC,IAAK,YACLC,EAAG,aACHC,GAAI,cACJC,IAAK,sBACLC,KAAM,6BAEVC,SAAU,CACNC,QAAS,YACTC,QAAS,YACTC,SAAU,WACVC,QAAS,cACTC,SAAU,oBACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,UACRC,KAAM,WACNC,EAAG,gBACHC,GAAI,gBACJC,EAAG,aACHC,GAAI,WACJC,EAAG,YACHC,GAAI,UACJC,EAAG,WACHC,GAAI,SACJC,EAAG,cACHC,GAAI,YACJC,EAAG,YACHC,GAAI,WAERsB,SAAU,SAAUR,QAChB,OAAOA,OAAO9F,QAAQ,iBAAiB,SAAUwB,OAC7C,OAAO+E,UAAU/E,WAGzB4E,WAAY,SAAUN,QAClB,OAAOA,OAAO9F,QAAQ,OAAO,SAAUwB,OACnC,OAAO6E,UAAU7E,WAGzBqB,cAAe,gCACf8E,aAAc,SAAUzB,KAAMlD,UAI1B,OAHa,KAATkD,OACAA,KAAO,GAEM,WAAblD,SACOkD,KAAO,EAAIA,KAAOA,KAAO,GACZ,aAAblD,SACAkD,KACa,aAAblD,SACAkD,MAAQ,GAAKA,KAAOA,KAAO,GACd,SAAblD,SACAkD,KAAO,QADX,GAIXlD,SAAU,SAAUkD,KAAMC,OAAQhD,SAC9B,OAAI+C,KAAO,EACA,SACAA,KAAO,GACP,WACAA,KAAO,GACP,WACAA,KAAO,GACP,OAEA,UAGfjB,uBAAwB,eACxBC,QAAS,SAAUC,QACf,OAAOA,OAAS,OAEpBC,KAAM,CACFC,IAAK,EACLC,IAAK,KA1HyBC,CAAQ,oBAAQ,4FCIlD,SAAWjD,QAAU,aAIhBA,OAAOC,aAAa,KAAM,CAC/BC,OAAQ,yCAAyCpE,MAAM,KACvDqE,YAAa,yCAAyCrE,MAClD,KAEJsE,SAAU,8BAA8BtE,MAAM,KAC9CuE,cAAe,gBAAgBvE,MAAM,KACrCwE,YAAa,gBAAgBxE,MAAM,KACnCgF,eAAgB,CACZC,GAAI,SACJC,IAAK,YACLC,EAAG,cACHC,GAAI,gBACJC,IAAK,uBACLC,KAAM,4BACNvD,EAAG,cACHiJ,GAAI,gBACJC,IAAK,uBACLC,KAAM,6BAEV3F,SAAU,CACNC,QAAS,QACTC,QAAS,QACTC,SAAU,UACVC,QAAS,QACTC,SAAU,cACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,OACRC,KAAM,OACNC,EAAG,MACHC,GAAI,MACJC,EAAG,KACHC,GAAI,MACJC,EAAG,OACHC,GAAI,OACJC,EAAG,KACHC,GAAI,MACJC,EAAG,MACHC,GAAI,MACJC,EAAG,MACHC,GAAI,OAERC,uBAAwB,iBACxBC,QAAS,SAAUC,OAAQmC,QACvB,OAAQA,QACJ,IAAK,IACL,IAAK,IACL,IAAK,MACD,OAAOnC,OAAS,IACpB,IAAK,IACD,OAAOA,OAAS,IACpB,IAAK,IACL,IAAK,IACD,OAAOA,OAAS,IACpB,QACI,OAAOA,SAGnBtC,cAAe,QACfC,KAAM,SAAUkG,OACZ,MAAiB,OAAVA,OAEXhG,SAAU,SAAUkD,KAAMC,OAAQyF,SAC9B,OAAO1F,KAAO,GAAK,KAAO,QAxEIX,CAAQ,oBAAQ,2FCElD,SAAWjD,QAAU,aAIzB,SAAS2G,oBAAoBlC,IAAKlB,cAAe9I,IAAKgJ,UAClD,IAAImB,OAAS,CACT7C,EAAG,CAAC,cAAe,kBACnBC,GAAI,CAACyC,IAAM,UAAWA,IAAM,cAC5BxC,EAAG,CAAC,YAAa,cACjBC,GAAI,CAACuC,IAAM,UAAWA,IAAM,cAC5BtC,EAAG,CAAC,SAAU,WACdC,GAAI,CAACqC,IAAM,QAASA,IAAM,WAC1BpC,EAAG,CAAC,QAAS,UACbC,GAAI,CAACmC,IAAM,OAAQA,IAAM,UACzBQ,EAAG,CAAC,WAAY,aAChBC,GAAI,CAACT,IAAM,SAAUA,IAAM,aAC3BlC,EAAG,CAAC,QAAS,UACbC,GAAI,CAACiC,IAAM,OAAQA,IAAM,UACzBhC,EAAG,CAAC,QAAS,UACbC,GAAI,CAAC+B,IAAM,OAAQA,IAAM,WAE7B,OAAOlB,cAAgBqB,OAAOnK,KAAK,GAAKmK,OAAOnK,KAAK,GAUxD,SAAS8O,eAAe9E,KAEpB,IAAI5G,GADJ4G,IAAM,GAAKA,KACC7E,UAAU6E,IAAIvI,OAAS,GAC/B4K,GAAKrC,IAAIvI,OAAS,EAAIuI,IAAI7E,UAAU6E,IAAIvI,OAAS,GAAK,GAC1D,OACY,IAAN4K,IAAkB,IAANA,IACR,KAALjJ,GAAiB,KAALA,GAAkB,MAANiJ,IAAmB,MAALjJ,GAAkB,MAALA,EAGjD,IADI,KAIHmC,OAAOC,aAAa,SAAU,CAItCC,OAAQ,oFAAoFpE,MACxF,KAEJqE,YAAa,kDAAkDrE,MAAM,KACrEyJ,kBAAkB,EAClBnF,SAAU,4CAA4CtE,MAAM,KAC5DuE,cAAe,2BAA2BvE,MAAM,KAChDwE,YAAa,uBAAuBxE,MAAM,KAC1C4E,SAAU,SAAUC,MAAOC,QAASC,SAChC,OAAIF,MAAQ,GACDE,QAAU,KAAO,KAEjBA,QAAU,KAAO,MAGhCN,cAAe,cACfO,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,sBACJC,IAAK,4BACLC,KAAM,kCACN0F,GAAI,qBACJC,IAAK,2BACLC,KAAM,oCAEV3F,SAAU,CACNC,QAAS,wBACTC,QAAS,yBACTC,SAAU,yBACVC,QAAS,wBACTC,SAAU,+BACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,WACRC,KAAM,UACNC,EAAG4E,oBACH3E,GAAI2E,oBACJ1E,EAAG0E,oBACHzE,GAAIyE,oBACJxE,EAAGwE,oBACHvE,GAAIuE,oBACJtE,EAAGsE,oBACHrE,GAAIqE,oBACJ1B,EAAG0B,oBACHzB,GAAIyB,oBACJpE,EAAGoE,oBACHnE,GAAImE,oBACJlE,EAAGkE,oBACHjE,GAAIiE,qBAERhE,uBAAwB,qBACxBC,QAAS,SAAU6B,IAAKO,QACpB,IAAIwE,EAAIxE,OAAOxL,cACf,OAAIgQ,EAAEC,SAAS,MAAQD,EAAEC,SAAS,KAAahF,IAAM,IAE9CA,IAAM8E,eAAe9E,MAEhC3B,KAAM,CACFC,IAAK,EACLC,IAAK,KAhHyBC,CAAQ,oBAAQ,4FCGlD,SAAWjD,QAAU,aAIzB,IAAI+D,UAAY,CACR,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,KAEPE,UAAY,CACR,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,KAET/D,OAAS,CACL,eACA,QACA,QACA,QACA,QACA,WACA,SACA,MACA,UACA,eACA,eACA,gBAGCF,OAAOC,aAAa,KAAM,CAC/BC,OACAC,YAAaD,OACbE,SACI,0EAA0EtE,MACtE,KAERuE,cACI,2DAA2DvE,MAAM,KACrEwE,YAAa,gBAAgBxE,MAAM,KACnC6H,oBAAoB,EACpB7C,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,2BAEVb,cAAe,kBACfC,KAAM,SAAUC,OACZ,MAAO,UAAU1I,KAAK0I,QAE1BC,SAAU,SAAUkD,KAAMC,OAAQhD,SAC9B,OAAI+C,KAAO,GACA,UAEA,WAGfvC,SAAU,CACNC,QAAS,sBACTC,QAAS,uBACTC,SAAU,oBACVC,QAAS,qBACTC,SAAU,oBACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,SACRC,KAAM,KACNC,EAAG,kBACHC,GAAI,WACJC,EAAG,cACHC,GAAI,YACJC,EAAG,eACHC,GAAI,aACJC,EAAG,WACHC,GAAI,SACJC,EAAG,YACHC,GAAI,UACJC,EAAG,WACHC,GAAI,UAERsB,SAAU,SAAUR,QAChB,OAAOA,OACF9F,QAAQ,iBAAiB,SAAUwB,OAChC,OAAO+E,UAAU/E,UAEpBxB,QAAQ,KAAM,MAEvBoG,WAAY,SAAUN,QAClB,OAAOA,OACF9F,QAAQ,OAAO,SAAUwB,OACtB,OAAO6E,UAAU7E,UAEpBxB,QAAQ,KAAM,MAEvBoF,KAAM,CACFC,IAAK,EACLC,IAAK,MApHyBC,CAAQ,oBAAQ,4FCGlD,SAAWjD,QAAU,aAIzB,IAAImE,SAAW,CACX,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,IAAK,OAGAnE,OAAOC,aAAa,KAAM,CAC/BC,OAAQ,kFAAkFpE,MACtF,KAEJqE,YAAa,qDAAqDrE,MAC9D,KAEJsE,SAAU,2DAA2DtE,MACjE,KAEJuE,cAAe,8BAA8BvE,MAAM,KACnDwE,YAAa,uBAAuBxE,MAAM,KAC1CgF,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,2BAEVC,SAAU,CACNC,QAAS,kBACTC,QAAS,kBACTC,SAAU,iBACVC,QAAS,kBACTC,SAAU,wCACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,YACRC,KAAM,WACNC,EAAG,iBACHC,GAAI,YACJC,EAAG,YACHC,GAAI,WACJC,EAAG,WACHC,GAAI,UACJC,EAAG,UACHC,GAAI,SACJC,EAAG,SACHC,GAAI,QACJC,EAAG,UACHC,GAAI,UAERC,uBAAwB,wBACxBC,QAAS,SAAUC,QACf,IAAIuB,EAAIvB,OAAS,GACbwB,EAAIxB,QAAU,IAAM,IAAM,KAC9B,OAAOA,QAAUsB,SAAStB,SAAWsB,SAASC,IAAMD,SAASE,KAEjEvB,KAAM,CACFC,IAAK,EACLC,IAAK,KAlFyBC,CAAQ,oBAAQ,4FCIlD,SAAWjD,QAAU,aAIzB,SAAS2G,oBAAoB9D,OAAQU,cAAe9I,IAAKgJ,UACrD,IAAImB,OAAS,CACT3C,EAAG,CAAC,aAAc,gBAClBE,EAAG,CAAC,YAAa,eACjBE,EAAG,CAAC,UAAW,aACfE,EAAG,CAAC,WAAY,eAChBE,EAAG,CAAC,UAAW,eAEnB,OAAOc,cAAgBqB,OAAOnK,KAAK,GAAKmK,OAAOnK,KAAK,GAExD,SAASiP,kBAAkBlG,QAEvB,OAAImG,4BADSnG,OAAO9D,OAAO,EAAG8D,OAAOiE,QAAQ,OAElC,KAAOjE,OAEX,MAAQA,OAEnB,SAASoG,gBAAgBpG,QAErB,OAAImG,4BADSnG,OAAO9D,OAAO,EAAG8D,OAAOiE,QAAQ,OAElC,QAAUjE,OAEd,SAAWA,OAStB,SAASmG,4BAA4B9G,QAEjC,GADAA,OAASoG,SAASpG,OAAQ,IACtBgH,MAAMhH,QACN,OAAO,EAEX,GAAIA,OAAS,EAET,OAAO,EACJ,GAAIA,OAAS,GAEhB,OAAI,GAAKA,QAAUA,QAAU,EAI1B,GAAIA,OAAS,IAAK,CAErB,IAAIsC,UAAYtC,OAAS,GAEzB,OACW8G,4BADO,IAAdxE,UADatC,OAAS,GAISsC,WAChC,GAAItC,OAAS,IAAO,CAEvB,KAAOA,QAAU,IACbA,QAAkB,GAEtB,OAAO8G,4BAA4B9G,QAInC,OAAO8G,4BADP9G,QAAkB,KAKjB7C,OAAOC,aAAa,KAAM,CAC/BC,OAAQ,uFAAuFpE,MAC3F,KAEJqE,YACI,+DAA+DrE,MAC3D,KAERyJ,kBAAkB,EAClBnF,SACI,mEAAmEtE,MAC/D,KAERuE,cAAe,8BAA8BvE,MAAM,KACnDwE,YAAa,uBAAuBxE,MAAM,KAC1C6H,oBAAoB,EACpB7C,eAAgB,CACZC,GAAI,cACJC,IAAK,iBACLC,EAAG,aACHC,GAAI,eACJC,IAAK,2BACLC,KAAM,kCAEVC,SAAU,CACNC,QAAS,eACTK,SAAU,IACVJ,QAAS,eACTC,SAAU,eACVC,QAAS,mBACTC,SAAU,WAEN,OAAQpK,KAAKyN,OACT,KAAK,EACL,KAAK,EACD,MAAO,0BACX,QACI,MAAO,4BAIvBnD,aAAc,CACVC,OAAQ6H,kBACR5H,KAAM8H,gBACN7H,EAAG,kBACHC,GAAI,cACJC,EAAG0E,oBACHzE,GAAI,cACJC,EAAGwE,oBACHvE,GAAI,aACJC,EAAGsE,oBACHrE,GAAI,UACJC,EAAGoE,oBACHnE,GAAI,WACJC,EAAGkE,oBACHjE,GAAI,WAERC,uBAAwB,YACxBC,QAAS,MACTE,KAAM,CACFC,IAAK,EACLC,IAAK,KAtIyBC,CAAQ,oBAAQ,4FCElD,SAAWjD,QAAU,aAIhBA,OAAOC,aAAa,KAAM,CAC/BC,OAAQ,6EAA6EpE,MACjF,KAEJqE,YACI,6EAA6ErE,MACzE,KAERsE,SAAU,sCAAsCtE,MAAM,KACtDuE,cAAe,oCAAoCvE,MAAM,KACzDwE,YAAa,mBAAmBxE,MAAM,KACtC6H,oBAAoB,EACpB7C,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,6BAEVb,cAAe,kBACfC,KAAM,SAAUC,OACZ,MAAiB,WAAVA,OAEXC,SAAU,SAAUkD,KAAMC,OAAQhD,SAC9B,OAAI+C,KAAO,GACA,WAEA,UAGfvC,SAAU,CACNC,QAAS,kBACTC,QAAS,mBACTC,SAAU,wBACVC,QAAS,qBACTC,SAAU,4BACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,SACRC,KAAM,WACNC,EAAG,mBACHC,GAAI,YACJC,EAAG,SACHC,GAAI,UACJC,EAAG,YACHC,GAAI,aACJC,EAAG,QACHC,GAAI,SACJC,EAAG,UACHC,GAAI,WACJC,EAAG,OACHC,GAAI,SAERC,uBAAwB,eACxBC,QAAS,SAAUC,QACf,MAAO,MAAQA,UAhEeI,CAAQ,oBAAQ,4FCGlD,SAAWjD,QAAU,aAIzB,IAAI8J,MAAQ,CACR9H,GAAI,6BACJC,EAAG,wBACHC,GAAI,0BACJC,EAAG,2BACHC,GAAI,4BACJC,EAAG,qBACHC,GAAI,sBACJC,EAAG,uBACHC,GAAI,4BACJC,EAAG,mBACHC,GAAI,oBAER,SAASqH,iBAAiBlH,OAAQU,cAAe9I,IAAKgJ,UAClD,OAAIF,cACO,kBAEAE,SAAW,kBAAoB,kBAG9C,SAASuG,kBAAkBnH,OAAQU,cAAe9I,IAAKgJ,UACnD,OAAOF,cACDmB,MAAMjK,KAAK,GACXgJ,SACEiB,MAAMjK,KAAK,GACXiK,MAAMjK,KAAK,GAEvB,SAASwP,QAAQpH,QACb,OAAOA,OAAS,IAAO,GAAMA,OAAS,IAAMA,OAAS,GAEzD,SAAS6B,MAAMjK,KACX,OAAOqP,MAAMrP,KAAKqB,MAAM,KAE5B,SAAS8K,UAAU/D,OAAQU,cAAe9I,IAAKgJ,UAC3C,IAAIoD,OAAShE,OAAS,IACtB,OAAe,IAAXA,OAEIgE,OAASmD,kBAAkBnH,OAAQU,cAAe9I,IAAI,GAAIgJ,UAEvDF,cACAsD,QAAUoD,QAAQpH,QAAU6B,MAAMjK,KAAK,GAAKiK,MAAMjK,KAAK,IAE1DgJ,SACOoD,OAASnC,MAAMjK,KAAK,GAEpBoM,QAAUoD,QAAQpH,QAAU6B,MAAMjK,KAAK,GAAKiK,MAAMjK,KAAK,IAIjEuF,OAAOC,aAAa,KAAM,CAC/BC,OAAQ,CACJ0E,OAAQ,oGAAoG9I,MACxG,KAEJ+I,WACI,kGAAkG/I,MAC9F,KAERgJ,SAAU,+DAEd3E,YAAa,kDAAkDrE,MAAM,KACrEsE,SAAU,CACNwE,OAAQ,oFAAoF9I,MACxF,KAEJ+I,WACI,2FAA2F/I,MACvF,KAERgJ,SAAU,cAEdzE,cAAe,8BAA8BvE,MAAM,KACnDwE,YAAa,iBAAiBxE,MAAM,KACpC6H,oBAAoB,EACpB7C,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,wBACJC,IAAK,sCACLC,KAAM,4CACNvD,EAAG,aACHiJ,GAAI,wBACJC,IAAK,sCACLC,KAAM,4CAEV3F,SAAU,CACNC,QAAS,gBACTC,QAAS,aACTC,SAAU,UACVC,QAAS,aACTC,SAAU,qBACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,QACRC,KAAM,WACNC,EAAGgI,iBACH/H,GAAI4E,UACJ3E,EAAG+H,kBACH9H,GAAI0E,UACJzE,EAAG6H,kBACH5H,GAAIwE,UACJvE,EAAG2H,kBACH1H,GAAIsE,UACJrE,EAAGyH,kBACHxH,GAAIoE,UACJnE,EAAGuH,kBACHtH,GAAIkE,WAERjE,uBAAwB,cACxBC,QAAS,SAAUC,QACf,OAAOA,OAAS,QAEpBC,KAAM,CACFC,IAAK,EACLC,IAAK,KA3HyBC,CAAQ,oBAAQ,4FCIlD,SAAWjD,QAAU,aAIzB,IAAI8J,MAAQ,CACR9H,GAAI,qCAAqClG,MAAM,KAC/CmG,EAAG,iCAAiCnG,MAAM,KAC1CoG,GAAI,iCAAiCpG,MAAM,KAC3CqG,EAAG,iCAAiCrG,MAAM,KAC1CsG,GAAI,iCAAiCtG,MAAM,KAC3CuG,EAAG,6BAA6BvG,MAAM,KACtCwG,GAAI,6BAA6BxG,MAAM,KACvCyG,EAAG,iCAAiCzG,MAAM,KAC1C0G,GAAI,iCAAiC1G,MAAM,KAC3C2G,EAAG,wBAAwB3G,MAAM,KACjC4G,GAAI,wBAAwB5G,MAAM,MAKtC,SAAS8I,OAAOF,MAAO7B,OAAQU,eAC3B,OAAIA,cAEOV,OAAS,IAAO,GAAKA,OAAS,KAAQ,GAAK6B,MAAM,GAAKA,MAAM,GAI5D7B,OAAS,IAAO,GAAKA,OAAS,KAAQ,GAAK6B,MAAM,GAAKA,MAAM,GAG3E,SAASC,uBAAuB9B,OAAQU,cAAe9I,KACnD,OAAOoI,OAAS,IAAM+B,OAAOkF,MAAMrP,KAAMoI,OAAQU,eAErD,SAAS2G,yBAAyBrH,OAAQU,cAAe9I,KACrD,OAAOmK,OAAOkF,MAAMrP,KAAMoI,OAAQU,eAEtC,SAAS4G,gBAAgBtH,OAAQU,eAC7B,OAAOA,cAAgB,iBAAmB,iBAGrCvD,OAAOC,aAAa,KAAM,CAC/BC,OAAQ,uGAAuGpE,MAC3G,KAEJqE,YAAa,kDAAkDrE,MAAM,KACrEsE,SACI,0EAA0EtE,MACtE,KAERuE,cAAe,kBAAkBvE,MAAM,KACvCwE,YAAa,kBAAkBxE,MAAM,KACrC6H,oBAAoB,EACpB7C,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,cACHC,GAAI,uBACJC,IAAK,8BACLC,KAAM,qCAEVC,SAAU,CACNC,QAAS,uBACTC,QAAS,oBACTC,SAAU,qBACVC,QAAS,sBACTC,SAAU,gCACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,SACRC,KAAM,WACNC,EAAGoI,gBACHnI,GAAI2C,uBACJ1C,EAAGiI,yBACHhI,GAAIyC,uBACJxC,EAAG+H,yBACH9H,GAAIuC,uBACJtC,EAAG6H,yBACH5H,GAAIqC,uBACJpC,EAAG2H,yBACH1H,GAAImC,uBACJlC,EAAGyH,yBACHxH,GAAIiC,wBAERhC,uBAAwB,YACxBC,QAAS,MACTE,KAAM,CACFC,IAAK,EACLC,IAAK,KA3FyBC,CAAQ,oBAAQ,4FCElD,SAAWjD,QAAU,aAIzB,IAAIoK,WAAa,CACbC,MAAO,CAEHrI,GAAI,CAAC,SAAU,UAAW,WAC1BC,EAAG,CAAC,cAAe,iBACnBC,GAAI,CAAC,QAAS,SAAU,UACxBC,EAAG,CAAC,YAAa,eACjBC,GAAI,CAAC,MAAO,OAAQ,QACpBE,GAAI,CAAC,MAAO,OAAQ,QACpBE,GAAI,CAAC,SAAU,UAAW,WAC1BE,GAAI,CAAC,SAAU,SAAU,WAE7B4H,uBAAwB,SAAUzH,OAAQ0H,SACtC,OAAkB,IAAX1H,OACD0H,QAAQ,GACR1H,QAAU,GAAKA,QAAU,EACvB0H,QAAQ,GACRA,QAAQ,IAEpB3D,UAAW,SAAU/D,OAAQU,cAAe9I,KACxC,IAAI8P,QAAUH,WAAWC,MAAM5P,KAC/B,OAAmB,IAAfA,IAAIyB,OACGqH,cAAgBgH,QAAQ,GAAKA,QAAQ,GAGxC1H,OACA,IACAuH,WAAWE,uBAAuBzH,OAAQ0H,WAMjDvK,OAAOC,aAAa,KAAM,CAC/BC,OAAQ,mFAAmFpE,MACvF,KAEJqE,YACI,2DAA2DrE,MAAM,KACrEyJ,kBAAkB,EAClBnF,SAAU,4DAA4DtE,MAClE,KAEJuE,cAAe,qCAAqCvE,MAAM,KAC1DwE,YAAa,uBAAuBxE,MAAM,KAC1C6H,oBAAoB,EACpB7C,eAAgB,CACZC,GAAI,OACJC,IAAK,UACLC,EAAG,aACHC,GAAI,eACJC,IAAK,oBACLC,KAAM,2BAEVC,SAAU,CACNC,QAAS,eACTC,QAAS,gBAETC,SAAU,WACN,OAAQlK,KAAKyN,OACT,KAAK,EACD,MAAO,wBACX,KAAK,EACD,MAAO,uBACX,KAAK,EACD,MAAO,sBACX,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACD,MAAO,oBAGnBtD,QAAS,cACTC,SAAU,WAUN,MATmB,CACf,6BACA,iCACA,4BACA,4BACA,8BACA,2BACA,4BAEgBpK,KAAKyN,QAE7BpD,SAAU,KAEdC,aAAc,CACVC,OAAQ,QACRC,KAAM,WACNC,EAAG,mBACHC,GAAIoI,WAAWxD,UACf3E,EAAGmI,WAAWxD,UACd1E,GAAIkI,WAAWxD,UACfzE,EAAGiI,WAAWxD,UACdxE,GAAIgI,WAAWxD,UACfvE,EAAG,MACHC,GAAI8H,WAAWxD,UACfrE,EAAG,SACHC,GAAI4H,WAAWxD,UACfnE,EAAG,SACHC,GAAI0H,WAAWxD,WAEnBjE,uBAAwB,YACxBC,QAAS,MACTE,KAAM,CACFC,IAAK,EACLC,IAAK,KAnHyBC,CAAQ,oBAAQ,4FCGlD,SAAWjD,QAAU,aAIhBA,OAAOC,aAAa,KAAM,CAC/BC,OAAQ,8IAA8IpE,MAClJ,KAEJqE,YACI,iEAAiErE,MAC7D,KAERmK,YAAa,yCACbC,kBAAmB,yCACnBZ,iBAAkB,yCAClBa,uBAAwB,yCACxB/F,SAAU,kDAAkDtE,MAAM,KAClEuE,cAAe,wBAAwBvE,MAAM,KAC7CwE,YAAa,wBAAwBxE,MAAM,KAC3CgF,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,wBACLC,KAAM,+BAEVC,SAAU,CACNC,QAAS,wBACTC,QAAS,eACTC,SAAU,cACVC,QAAS,iBACTC,SAAU,2BACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,cACRC,KAAM,WACNC,EAAG,mBACHC,GAAI,YACJC,EAAG,YACHC,GAAI,YACJC,EAAG,WACHC,GAAI,WACJC,EAAG,QACHC,GAAI,QACJC,EAAG,YACHC,GAAI,YACJC,EAAG,SACHC,GAAI,UAERC,uBAAwB,WACxBC,QAAS,MACTE,KAAM,CACFC,IAAK,EACLC,IAAK,KA1DyBC,CAAQ,oBAAQ,4FCIlD,SAAWjD,QAAU,aAIhBA,OAAOC,aAAa,KAAM,CAC/BC,OAAQ,uFAAuFpE,MAC3F,KAEJqE,YAAa,kDAAkDrE,MAAM,KACrEsE,SAAU,wDAAwDtE,MAC9D,KAEJuE,cAAe,8BAA8BvE,MAAM,KACnDwE,YAAa,uBAAuBxE,MAAM,KAC1CgF,eAAgB,CACZC,GAAI,OACJC,IAAK,UACLC,EAAG,YACHC,GAAI,cACJC,IAAK,mBACLC,KAAM,0BAEVC,SAAU,CACNC,QAAS,gBACTC,QAAS,eACTC,SAAU,oBACVC,QAAS,gBACTC,SAAU,WACN,OAAQpK,KAAKyN,OACT,KAAK,EACL,KAAK,EACL,KAAK,EACD,MAAO,4BACX,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACD,MAAO,8BAGnBpD,SAAU,KAEdC,aAAc,CACVC,OAAQ,QACRC,KAAM,UACNC,EAAG,kBACHC,GAAI,aACJC,EAAG,cACHC,GAAI,YACJC,EAAG,WACHC,GAAI,UACJC,EAAG,WACHC,GAAI,UACJC,EAAG,aACHC,GAAI,YACJC,EAAG,cACHC,GAAI,aAERC,uBAAwB,8BACxBC,QAAS,SAAUC,QACf,IAAIsC,UAAYtC,OAAS,GACrBuC,YAAcvC,OAAS,IAC3B,OAAe,IAAXA,OACOA,OAAS,MACO,IAAhBuC,YACAvC,OAAS,MACTuC,YAAc,IAAMA,YAAc,GAClCvC,OAAS,MACK,IAAdsC,UACAtC,OAAS,MACK,IAAdsC,UACAtC,OAAS,MACK,IAAdsC,WAAiC,IAAdA,UACnBtC,OAAS,MAETA,OAAS,OAGxBC,KAAM,CACFC,IAAK,EACLC,IAAK,KAnFyBC,CAAQ,oBAAQ,4FCElD,SAAWjD,QAAU,aAIhBA,OAAOC,aAAa,KAAM,CAC/BC,OAAQ,yFAAyFpE,MAC7F,KAEJqE,YACI,yEAAyErE,MACrE,KAERyJ,kBAAkB,EAClBnF,SACI,wEAAwEtE,MACpE,KAERuE,cAAe,2CAA2CvE,MAAM,KAChEwE,YAAa,wBAAwBxE,MAAM,KAC3CgF,eAAgB,CACZC,GAAI,aACJC,IAAK,gBACLC,EAAG,aACHC,GAAI,cACJC,IAAK,0BACLC,KAAM,iCAEVC,SAAU,CACNC,QAAS,aACTC,QAAS,YACTC,SAAU,WACVC,QAAS,cACTC,SAAU,oBACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,aACRC,KAAM,WACNC,EAAG,gBACHC,GAAI,cACJC,EAAG,eACHC,GAAI,cACJC,EAAG,eACHC,GAAI,cACJC,EAAG,YACHC,GAAI,WACJC,EAAG,WACHC,GAAI,UACJC,EAAG,WACHC,GAAI,WAERnC,cAAe,gDACf8E,aAAc,SAAUzB,KAAMlD,UAI1B,OAHa,KAATkD,OACAA,KAAO,GAGO,WAAblD,UAAyBkD,MAAQ,GACrB,iBAAblD,UACa,eAAbA,SAEOkD,KAAO,GAEPA,MAGflD,SAAU,SAAUkD,KAAMC,OAAQhD,SAC9B,OAAI+C,KAAO,EACA,SACAA,KAAO,GACP,SACAA,KAAO,GACP,eACAA,KAAO,GACP,aAEA,YA/EmBX,CAAQ,oBAAQ,4FCGlD,SAAWjD,QAAU,aAIzB,SAAS4G,UAAU/D,OAAQU,cAAe9I,IAAKgJ,UAC3C,OAAQhJ,KACJ,IAAK,IACD,OAAO8I,cAAgB,gBAAkB,kBAC7C,IAAK,KACD,OAAOV,QAAUU,cAAgB,UAAY,aACjD,IAAK,IACL,IAAK,KACD,OAAOV,QAAUU,cAAgB,SAAW,YAChD,IAAK,IACL,IAAK,KACD,OAAOV,QAAUU,cAAgB,OAAS,WAC9C,IAAK,IACL,IAAK,KACD,OAAOV,QAAUU,cAAgB,QAAU,WAC/C,IAAK,IACL,IAAK,KACD,OAAOV,QAAUU,cAAgB,OAAS,UAC9C,IAAK,IACL,IAAK,KACD,OAAOV,QAAUU,cAAgB,OAAS,WAC9C,QACI,OAAOV,QAIV7C,OAAOC,aAAa,KAAM,CAC/BC,OAAQ,+LAA+LpE,MACnM,KAEJqE,YACI,6EAA6ErE,MACzE,KAERyJ,kBAAkB,EAClBnF,SAAU,6CAA6CtE,MAAM,KAC7DuE,cAAe,8BAA8BvE,MAAM,KACnDwE,YAAa,uBAAuBxE,MAAM,KAC1C6H,oBAAoB,EACpB7C,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,oBACJC,IAAK,0BACLC,KAAM,iCAEVb,cAAe,SACfC,KAAM,SAAUC,OACZ,MAAiB,OAAVA,OAEXC,SAAU,SAAUkD,KAAMC,OAAQhD,SAC9B,OAAI+C,KAAO,GACA,KAEA,MAGfvC,SAAU,CACNC,QAAS,eACTC,QAAS,eACTC,SAAU,iBACVC,QAAS,eACTC,SAAU,qBACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,WACRC,KAAM,UACNC,EAAG6E,UACH5E,GAAI4E,UACJ3E,EAAG2E,UACH1E,GAAI0E,UACJzE,EAAGyE,UACHxE,GAAIwE,UACJvE,EAAGuE,UACHtE,GAAIsE,UACJrE,EAAGqE,UACHpE,GAAIoE,UACJnE,EAAGmE,UACHlE,GAAIkE,WAERjE,uBAAwB,eACxBC,QAAS,SAAUC,OAAQmC,QACvB,OAAQA,QACJ,IAAK,IACL,IAAK,IACL,IAAK,MACD,OAAOnC,OAAS,QACpB,QACI,OAAOA,WAjGeI,CAAQ,oBAAQ,2FCIlD,SAAWjD,QAAU,aAIzB,IAAI+D,UAAY,CACR,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,KAEPE,UAAY,CACR,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,KAGb,SAASuG,eAAe3H,OAAQU,cAAeC,OAAQC,UACnD,IAAIwD,OAAS,GACb,GAAI1D,cACA,OAAQC,QACJ,IAAK,IACDyD,OAAS,aACT,MACJ,IAAK,KACDA,OAAS,WACT,MACJ,IAAK,IACDA,OAAS,WACT,MACJ,IAAK,KACDA,OAAS,YACT,MACJ,IAAK,IACDA,OAAS,SACT,MACJ,IAAK,KACDA,OAAS,SACT,MACJ,IAAK,IACDA,OAAS,UACT,MACJ,IAAK,KACDA,OAAS,UACT,MACJ,IAAK,IACDA,OAAS,WACT,MACJ,IAAK,KACDA,OAAS,WACT,MACJ,IAAK,IACDA,OAAS,UACT,MACJ,IAAK,KACDA,OAAS,gBAIjB,OAAQzD,QACJ,IAAK,IACDyD,OAAS,eACT,MACJ,IAAK,KACDA,OAAS,aACT,MACJ,IAAK,IACDA,OAAS,aACT,MACJ,IAAK,KACDA,OAAS,aACT,MACJ,IAAK,IACDA,OAAS,WACT,MACJ,IAAK,KACDA,OAAS,WACT,MACJ,IAAK,IACDA,OAAS,YACT,MACJ,IAAK,KACDA,OAAS,YACT,MACJ,IAAK,IACDA,OAAS,cACT,MACJ,IAAK,KACDA,OAAS,cACT,MACJ,IAAK,IACDA,OAAS,YACT,MACJ,IAAK,KACDA,OAAS,YAIrB,OAAOA,OAAOvJ,QAAQ,MAAOmF,QAGxB7C,OAAOC,aAAa,KAAM,CAC/BC,OAAQ,wFAAwFpE,MAC5F,KAEJqE,YACI,gFAAgFrE,MAC5E,KAERyJ,kBAAkB,EAClBnF,SAAU,uDAAuDtE,MAAM,KACvEuE,cAAe,kCAAkCvE,MAAM,KACvDwE,YAAa,qBAAqBxE,MAAM,KACxCgF,eAAgB,CACZC,GAAI,eACJC,IAAK,kBACLC,EAAG,aACHC,GAAI,cACJC,IAAK,4BACLC,KAAM,mCAEVC,SAAU,CACNC,QAAS,UACTC,QAAS,aACTC,SAAU,WACVC,QAAS,WACTC,SAAU,mBACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,UACRC,KAAM,WACNC,EAAGyI,eACHxI,GAAIwI,eACJvI,EAAGuI,eACHtI,GAAIsI,eACJrI,EAAGqI,eACHpI,GAAIoI,eACJnI,EAAGmI,eACHlI,GAAIkI,eACJjI,EAAGiI,eACHhI,GAAIgI,eACJ/H,EAAG+H,eACH9H,GAAI8H,gBAERxG,SAAU,SAAUR,QAChB,OAAOA,OAAO9F,QAAQ,iBAAiB,SAAUwB,OAC7C,OAAO+E,UAAU/E,WAGzB4E,WAAY,SAAUN,QAClB,OAAOA,OAAO9F,QAAQ,OAAO,SAAUwB,OACnC,OAAO6E,UAAU7E,WAGzBqB,cAAe,qCACf8E,aAAc,SAAUzB,KAAMlD,UAI1B,OAHa,KAATkD,OACAA,KAAO,GAEM,UAAblD,UAAqC,UAAbA,SACjBkD,KAEM,WAAblD,UACa,aAAbA,UACa,WAAbA,SAEOkD,MAAQ,GAAKA,KAAOA,KAAO,QAL/B,GAQXlD,SAAU,SAAUkD,KAAMC,OAAQhD,SAC9B,OAAI+C,MAAQ,GAAKA,KAAO,EACb,QACAA,KAAO,GACP,QACAA,KAAO,GACP,SACAA,KAAO,GACP,WAEA,UAGfd,KAAM,CACFC,IAAK,EACLC,IAAK,KAxMyBC,CAAQ,oBAAQ,4FCGlD,SAAWjD,QAAU,aAIdA,OAAOC,aAAa,QAAS,CACpCC,OAAQ,oFAAoFpE,MACxF,KAEJqE,YAAa,kDAAkDrE,MAAM,KACrEsE,SAAU,6CAA6CtE,MAAM,KAC7DuE,cAAe,8BAA8BvE,MAAM,KACnDwE,YAAa,uBAAuBxE,MAAM,KAC1CgF,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,4BACLC,KAAM,mCAEVb,cAAe,8BACf8E,aAAc,SAAUzB,KAAMlD,UAI1B,OAHa,KAATkD,OACAA,KAAO,GAEM,SAAblD,SACOkD,KACa,cAAblD,SACAkD,MAAQ,GAAKA,KAAOA,KAAO,GACd,WAAblD,UAAsC,UAAbA,SACzBkD,KAAO,QADX,GAIXlD,SAAU,SAAUC,MAAOC,QAASC,SAChC,OAAIF,MAAQ,GACD,OACAA,MAAQ,GACR,YACAA,MAAQ,GACR,SAEA,SAGfU,SAAU,CACNC,QAAS,sBACTC,QAAS,kBACTC,SAAU,kBACVC,QAAS,sBACTC,SAAU,wBACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,WACRC,KAAM,gBACNC,EAAG,gBACHC,GAAI,UACJC,EAAG,UACHC,GAAI,WACJC,EAAG,QACHC,GAAI,SACJC,EAAG,SACHC,GAAI,UACJC,EAAG,UACHC,GAAI,WACJC,EAAG,UACHC,GAAI,YAERI,KAAM,CACFC,IAAK,EACLC,IAAK,KAzEyBC,CAAQ,oBAAQ,4FCElD,SAAWjD,QAAU,aAIhBA,OAAOC,aAAa,KAAM,CAC/BC,OAAQ,oFAAoFpE,MACxF,KAEJqE,YAAa,kDAAkDrE,MAAM,KACrEsE,SAAU,6CAA6CtE,MAAM,KAC7DuE,cAAe,8BAA8BvE,MAAM,KACnDwE,YAAa,uBAAuBxE,MAAM,KAC1CgF,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,4BACLC,KAAM,mCAEVb,cAAe,8BACf8E,aAAc,SAAUzB,KAAMlD,UAI1B,OAHa,KAATkD,OACAA,KAAO,GAEM,SAAblD,SACOkD,KACa,cAAblD,SACAkD,MAAQ,GAAKA,KAAOA,KAAO,GACd,WAAblD,UAAsC,UAAbA,SACzBkD,KAAO,QADX,GAIXlD,SAAU,SAAUC,MAAOC,QAASC,SAChC,OAAIF,MAAQ,GACD,OACAA,MAAQ,GACR,YACAA,MAAQ,GACR,SAEA,SAGfU,SAAU,CACNC,QAAS,sBACTC,QAAS,kBACTC,SAAU,kBACVC,QAAS,sBACTC,SAAU,wBACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,WACRC,KAAM,gBACNC,EAAG,gBACHC,GAAI,UACJC,EAAG,UACHC,GAAI,WACJC,EAAG,QACHC,GAAI,SACJC,EAAG,SACHC,GAAI,UACJC,EAAG,UACHC,GAAI,WACJC,EAAG,UACHC,GAAI,YAERI,KAAM,CACFC,IAAK,EACLC,IAAK,KAzEyBC,CAAQ,oBAAQ,4FCGlD,SAAWjD,QAAU,aAIhBA,OAAOC,aAAa,KAAM,CAC/BC,OAAQ,wFAAwFpE,MAC5F,KAEJqE,YAAa,kDAAkDrE,MAAM,KACrEsE,SACI,iEAAiEtE,MAC7D,KAERuE,cAAe,8BAA8BvE,MAAM,KACnDwE,YAAa,uBAAuBxE,MAAM,KAC1CgF,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,2BAEVC,SAAU,CACNC,QAAS,iBACTC,QAAS,iBACTC,SAAU,gBACVC,QAAS,qBACTC,SAAU,4BACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,QACRC,KAAM,SACNC,EAAG,eACHC,GAAI,aACJC,EAAG,SACHC,GAAI,YACJC,EAAG,SACHC,GAAI,aACJC,EAAG,UACHC,GAAI,YACJC,EAAG,QACHC,GAAI,UACJC,EAAG,OACHC,GAAI,UAERC,uBAAwB,WACxBC,QAAS,MACTE,KAAM,CACFC,IAAK,EACLC,IAAK,KAtDyBC,CAAQ,oBAAQ,4FCKlD,SAAWjD,QAAU,aAIzB,IAAI+D,UAAY,CACR,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,KAEPE,UAAY,CACR,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,KAGJjE,OAAOC,aAAa,KAAM,CAC/BC,OAAQ,2FAA2FpE,MAC/F,KAEJqE,YAAa,mDAAmDrE,MAAM,KACtEsE,SAAU,wDAAwDtE,MAC9D,KAEJuE,cAAe,2BAA2BvE,MAAM,KAChDwE,YAAa,2BAA2BxE,MAAM,KAE9CgF,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,0BAEVC,SAAU,CACNC,QAAS,kBACTC,QAAS,sBACTC,SAAU,gBACVC,QAAS,mBACTC,SAAU,6BACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,gBACRC,KAAM,kBACNC,EAAG,kBACHC,GAAI,aACJC,EAAG,WACHC,GAAI,WACJC,EAAG,UACHC,GAAI,UACJC,EAAG,SACHC,GAAI,SACJC,EAAG,OACHC,GAAI,OACJC,EAAG,UACHC,GAAI,WAERsB,SAAU,SAAUR,QAChB,OAAOA,OAAO9F,QAAQ,iBAAiB,SAAUwB,OAC7C,OAAO+E,UAAU/E,WAGzB4E,WAAY,SAAUN,QAClB,OAAOA,OAAO9F,QAAQ,OAAO,SAAUwB,OACnC,OAAO6E,UAAU7E,WAGzB4D,KAAM,CACFC,IAAK,EACLC,IAAK,KAvFyBC,CAAQ,oBAAQ,4FCGlD,SAAWjD,QAAU,aAIhBA,OAAOC,aAAa,KAAM,CAC/BC,OAAQ,qFAAqFpE,MACzF,KAEJqE,YACI,6DAA6DrE,MAAM,KACvEyJ,kBAAkB,EAClBnF,SAAU,qDAAqDtE,MAAM,KACrEuE,cAAe,8BAA8BvE,MAAM,KACnDwE,YAAa,uBAAuBxE,MAAM,KAC1C6H,oBAAoB,EACpB7C,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,eACJC,IAAK,2BACLC,KAAM,iCAEVC,SAAU,CACNC,QAAS,iBACTC,QAAS,oBACTC,SAAU,gBACVC,QAAS,iBACTC,SAAU,0BACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,QACRC,KAAM,WACNC,EAAG,gBACHC,GAAI,cACJC,EAAG,aACHC,GAAI,cACJC,EAAG,UACHC,GAAI,WACJC,EAAG,SACHC,GAAI,WACJ2C,EAAG,SACHC,GAAI,UACJ3C,EAAG,WACHC,GAAI,aACJC,EAAG,SACHC,GAAI,SAERC,uBAAwB,YACxBC,QAAS,MACTE,KAAM,CACFC,IAAK,EACLC,IAAK,KAxDyBC,CAAQ,oBAAQ,4FCClD,SAAWjD,QAAU,aAIzB,IAAI+D,UAAY,CACR,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,KAEPE,UAAY,CACR,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,KAGJjE,OAAOC,aAAa,KAAM,CAC/BC,OAAQ,uFAAuFpE,MAC3F,KAEJqE,YACI,uEAAuErE,MACnE,KAERyJ,kBAAkB,EAClBnF,SAAU,wDAAwDtE,MAC9D,KAEJuE,cAAe,0CAA0CvE,MAAM,KAC/DwE,YAAa,4BAA4BxE,MAAM,KAC/C6H,oBAAoB,EACpB7C,eAAgB,CACZC,GAAI,eACJC,IAAK,kBACLC,EAAG,aACHC,GAAI,cACJC,IAAK,4BACLC,KAAM,mCAEV4C,SAAU,SAAUR,QAChB,OAAOA,OAAO9F,QAAQ,iBAAiB,SAAUwB,OAC7C,OAAO+E,UAAU/E,WAGzB4E,WAAY,SAAUN,QAClB,OAAOA,OAAO9F,QAAQ,OAAO,SAAUwB,OACnC,OAAO6E,UAAU7E,WAGzBqB,cAAe,yBACf8E,aAAc,SAAUzB,KAAMlD,UAI1B,OAHa,KAATkD,OACAA,KAAO,GAEM,SAAblD,SACOkD,KAAO,EAAIA,KAAOA,KAAO,GACZ,UAAblD,SACAkD,KACa,WAAblD,SACAkD,MAAQ,GAAKA,KAAOA,KAAO,GACd,SAAblD,SACAkD,KAAO,QADX,GAIXlD,SAAU,SAAUkD,KAAMC,OAAQhD,SAC9B,OAAI+C,KAAO,EACA,OACAA,KAAO,GACP,QACAA,KAAO,GACP,SACAA,KAAO,GACP,OAEA,QAGfvC,SAAU,CACNC,QAAS,UACTC,QAAS,YACTC,SAAU,qBACVC,QAAS,YACTC,SAAU,oBACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,OACRC,KAAM,WACNC,EAAG,YACHC,GAAI,aACJC,EAAG,WACHC,GAAI,WACJC,EAAG,WACHC,GAAI,WACJC,EAAG,SACHC,GAAI,SACJC,EAAG,WACHC,GAAI,WACJC,EAAG,UACHC,GAAI,WAERI,KAAM,CACFC,IAAK,EACLC,IAAK,KAvHyBC,CAAQ,oBAAQ,4FCIlD,SAAWjD,QAAU,aAIzB,IAAIsI,oBACI,6DAA6DxM,MAAM,KACvEyM,uBACI,kDAAkDzM,MAAM,KAC5DkK,YAAc,CACV,QACA,QACA,oBACA,QACA,SACA,cACA,cACA,QACA,QACA,QACA,QACA,SAEJC,YACI,qKAEGjG,OAAOC,aAAa,QAAS,CACpCC,OAAQ,0FAA0FpE,MAC9F,KAEJqE,YAAa,SAAU8B,EAAG2C,QACtB,OAAK3C,EAEM,QAAQlK,KAAK6M,QACb2D,uBAAuBtG,EAAE0F,SAEzBW,oBAAoBrG,EAAE0F,SAJtBW,qBAQfrC,YACAX,iBAAkBW,YAClBC,kBACI,4FACJC,uBACI,mFAEJH,YACAQ,gBAAiBR,YACjBS,iBAAkBT,YAElB5F,SACI,6DAA6DtE,MAAM,KACvEuE,cAAe,8BAA8BvE,MAAM,KACnDwE,YAAa,uBAAuBxE,MAAM,KAC1C6H,oBAAoB,EACpB7C,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,0BAEVC,SAAU,CACNC,QAAS,kBACTC,QAAS,iBACTC,SAAU,eACVC,QAAS,mBACTC,SAAU,2BACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,UACRC,KAAM,aACNC,EAAG,oBACHC,GAAI,cACJC,EAAG,aACHC,GAAI,aACJC,EAAG,UACHC,GAAI,SACJC,EAAG,UACHC,GAAI,WACJC,EAAG,YACHC,GAAI,aACJC,EAAG,WACHC,GAAI,WAERC,uBAAwB,kBACxBC,QAAS,SAAUC,QACf,OACIA,QACY,IAAXA,QAA2B,IAAXA,QAAgBA,QAAU,GAAK,MAAQ,OAGhEC,KAAM,CACFC,IAAK,EACLC,IAAK,KAnGyBC,CAAQ,oBAAQ,4FCGlD,SAAWjD,QAAU,aAIzB,IAAIsI,oBACI,6DAA6DxM,MAAM,KACvEyM,uBACI,kDAAkDzM,MAAM,KAC5DkK,YAAc,CACV,QACA,QACA,oBACA,QACA,SACA,cACA,cACA,QACA,QACA,QACA,QACA,SAEJC,YACI,qKAECjG,OAAOC,aAAa,KAAM,CAC/BC,OAAQ,0FAA0FpE,MAC9F,KAEJqE,YAAa,SAAU8B,EAAG2C,QACtB,OAAK3C,EAEM,QAAQlK,KAAK6M,QACb2D,uBAAuBtG,EAAE0F,SAEzBW,oBAAoBrG,EAAE0F,SAJtBW,qBAQfrC,YACAX,iBAAkBW,YAClBC,kBACI,4FACJC,uBACI,mFAEJH,YACAQ,gBAAiBR,YACjBS,iBAAkBT,YAElB5F,SACI,6DAA6DtE,MAAM,KACvEuE,cAAe,8BAA8BvE,MAAM,KACnDwE,YAAa,uBAAuBxE,MAAM,KAC1C6H,oBAAoB,EACpB7C,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,0BAEVC,SAAU,CACNC,QAAS,kBACTC,QAAS,iBACTC,SAAU,eACVC,QAAS,mBACTC,SAAU,2BACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,UACRC,KAAM,aACNC,EAAG,oBACHC,GAAI,cACJC,EAAG,aACHC,GAAI,aACJC,EAAG,UACHC,GAAI,SACJC,EAAG,UACHC,GAAI,WACJ2C,EAAG,WACHC,GAAI,WACJ3C,EAAG,YACHC,GAAI,aACJC,EAAG,WACHC,GAAI,WAERC,uBAAwB,kBACxBC,QAAS,SAAUC,QACf,OACIA,QACY,IAAXA,QAA2B,IAAXA,QAAgBA,QAAU,GAAK,MAAQ,OAGhEC,KAAM,CACFC,IAAK,EACLC,IAAK,KArGyBC,CAAQ,oBAAQ,4FCGlD,SAAWjD,QAAU,aAIhBA,OAAOC,aAAa,KAAM,CAC/BC,OAAQ,qFAAqFpE,MACzF,KAEJqE,YACI,6DAA6DrE,MAAM,KACvEyJ,kBAAkB,EAClBnF,SAAU,qDAAqDtE,MAAM,KACrEuE,cAAe,+BAA+BvE,MAAM,KACpDwE,YAAa,uBAAuBxE,MAAM,KAC1C6H,oBAAoB,EACpB7C,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,eACJC,IAAK,0BACLC,KAAM,iCAEVC,SAAU,CACNC,QAAS,oBACTC,QAAS,uBACTC,SAAU,mBACVC,QAAS,oBACTC,SAAU,gCACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,QACRC,KAAM,WACNC,EAAG,eACHC,GAAI,YACJC,EAAG,aACHC,GAAI,YACJC,EAAG,WACHC,GAAI,WACJC,EAAG,UACHC,GAAI,WACJ2C,EAAG,UACHC,GAAI,WACJ3C,EAAG,YACHC,GAAI,aACJC,EAAG,SACHC,GAAI,SAERC,uBAAwB,YACxBC,QAAS,MACTE,KAAM,CACFC,IAAK,EACLC,IAAK,KAxDyBC,CAAQ,oBAAQ,4FCElD,SAAWjD,QAAU,aAIbA,OAAOC,aAAa,SAAU,CACtCC,OAAQ,CACJ2E,WACI,qFAAqF/I,MACjF,KAER8I,OAAQ,sHAAsH9I,MAC1H,KAEJgJ,SAAU,mBAEd3E,YACI,+DAA+DrE,MAC3D,KAERyJ,kBAAkB,EAClBnF,SAAU,2DAA2DtE,MACjE,KAEJuE,cAAe,8BAA8BvE,MAAM,KACnDwE,YAAa,uBAAuBxE,MAAM,KAC1C6H,oBAAoB,EACpB7C,eAAgB,CACZC,GAAI,OACJC,IAAK,UACLC,EAAG,aACHC,GAAI,mBACJ4F,GAAI,aACJ3F,IAAK,4BACL4F,IAAK,mBACL3F,KAAM,iCACN4F,KAAM,wBAEV3F,SAAU,CACNC,QAAS,aACTC,QAAS,eACTC,SAAU,cACVC,QAAS,aACTC,SAAU,qBACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,YACRC,KAAM,QACNC,EAAG,gBACHC,GAAI,cACJC,EAAG,aACHC,GAAI,aACJC,EAAG,UACHC,GAAI,UACJC,EAAG,UACHC,GAAI,WACJC,EAAG,SACHC,GAAI,WACJC,EAAG,QACHC,GAAI,UAERC,uBAAwB,qBACxBC,QAAS,SAAUC,OAAQmC,QACvB,IAAIiC,OACW,IAAXpE,OACM,IACW,IAAXA,OACE,IACW,IAAXA,OACE,IACW,IAAXA,OACE,IACA,IAIhB,MAHe,MAAXmC,QAA6B,MAAXA,SAClBiC,OAAS,KAENpE,OAASoE,QAEpBnE,KAAM,CACFC,IAAK,EACLC,IAAK,KAnFyBC,CAAQ,oBAAQ,4FCGlD,SAAWjD,QAAU,aAIzB,IAAI+D,UAAY,CACR,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,KAEPE,UAAY,CACR,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,KAGFjE,OAAOC,aAAa,QAAS,CAEpCC,OAAQ,sEAAsEpE,MAC1E,KAEJqE,YACI,sEAAsErE,MAClE,KAERsE,SAAU,yDAAyDtE,MAC/D,KAEJuE,cAAe,iCAAiCvE,MAAM,KACtDwE,YAAa,iCAAiCxE,MAAM,KACpDgF,eAAgB,CACZC,GAAI,aACJC,IAAK,gBACLC,EAAG,aACHC,GAAI,cACJC,IAAK,0BACLC,KAAM,iCAEVC,SAAU,CACNC,QAAS,UACTC,QAAS,UACTC,SAAU,kBACVC,QAAS,UACTC,SAAU,mBACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,UACRC,KAAM,WACNC,EAAG,YACHC,GAAI,WACJC,EAAG,UACHC,GAAI,UACJC,EAAG,WACHC,GAAI,UACJC,EAAG,UACHC,GAAI,SACJC,EAAG,YACHC,GAAI,WACJC,EAAG,UACHC,GAAI,UAERsB,SAAU,SAAUR,QAChB,OAAOA,OAAO9F,QAAQ,iBAAiB,SAAUwB,OAC7C,OAAO+E,UAAU/E,WAGzB4E,WAAY,SAAUN,QAClB,OAAOA,OAAO9F,QAAQ,OAAO,SAAUwB,OACnC,OAAO6E,UAAU7E,WAKzBqB,cAAe,uBACf8E,aAAc,SAAUzB,KAAMlD,UAI1B,OAHa,KAATkD,OACAA,KAAO,GAEM,QAAblD,SACOkD,KAAO,EAAIA,KAAOA,KAAO,GACZ,SAAblD,SACAkD,KACa,WAAblD,SACAkD,MAAQ,GAAKA,KAAOA,KAAO,GACd,SAAblD,SACAkD,KAAO,QADX,GAIXlD,SAAU,SAAUkD,KAAMC,OAAQhD,SAC9B,OAAI+C,KAAO,EACA,MACAA,KAAO,GACP,OACAA,KAAO,GACP,SACAA,KAAO,GACP,OAEA,OAGfd,KAAM,CACFC,IAAK,EACLC,IAAK,KAxHyBC,CAAQ,oBAAQ,4FCGlD,SAAWjD,QAAU,aAIzB,IAAIyK,iBACI,mGAAmG3O,MAC/F,KAER4O,iBACI,qGAAqG5O,MACjG,KAERkK,YAAc,CACV,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,SAER,SAASzB,OAAOpB,GACZ,OAAOA,EAAI,GAAK,GAAKA,EAAI,GAAK,MAAQA,EAAI,IAAM,IAAO,EAE3D,SAASyD,UAAU/D,OAAQU,cAAe9I,KACtC,IAAIoM,OAAShE,OAAS,IACtB,OAAQpI,KACJ,IAAK,KACD,OAAOoM,QAAUtC,OAAO1B,QAAU,UAAY,UAClD,IAAK,IACD,OAAOU,cAAgB,SAAW,SACtC,IAAK,KACD,OAAOsD,QAAUtC,OAAO1B,QAAU,SAAW,SACjD,IAAK,IACD,OAAOU,cAAgB,UAAY,UACvC,IAAK,KACD,OAAOsD,QAAUtC,OAAO1B,QAAU,UAAY,UAClD,IAAK,KACD,OAAOgE,QAAUtC,OAAO1B,QAAU,WAAa,WACnD,IAAK,KACD,OAAOgE,QAAUtC,OAAO1B,QAAU,WAAa,YACnD,IAAK,KACD,OAAOgE,QAAUtC,OAAO1B,QAAU,OAAS,QAI9C7C,OAAOC,aAAa,KAAM,CAC/BC,OAAQ,SAAUsH,eAAgB5C,QAC9B,OAAK4C,eAEM,SAASzP,KAAK6M,QACd8F,iBAAiBlD,eAAeG,SAEhC8C,iBAAiBjD,eAAeG,SAJhC8C,kBAOftK,YAAa,kDAAkDrE,MAAM,KACrEkK,YACAQ,gBAAiBR,YACjBS,iBAAkBT,YAClB5F,SACI,6DAA6DtE,MAAM,KACvEuE,cAAe,2BAA2BvE,MAAM,KAChDwE,YAAa,uBAAuBxE,MAAM,KAC1CgF,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,2BAEVC,SAAU,CACNC,QAAS,cACTC,QAAS,eACTC,SAAU,WACN,OAAQlK,KAAKyN,OACT,KAAK,EACD,MAAO,qBAEX,KAAK,EACD,MAAO,mBAEX,KAAK,EACD,MAAO,iBAEX,KAAK,EACD,MAAO,kBAEX,QACI,MAAO,oBAGnBtD,QAAS,iBACTC,SAAU,WACN,OAAQpK,KAAKyN,OACT,KAAK,EACD,MAAO,4BACX,KAAK,EACD,MAAO,wBACX,KAAK,EACD,MAAO,yBACX,QACI,MAAO,2BAGnBpD,SAAU,KAEdC,aAAc,CACVC,OAAQ,QACRC,KAAM,UACNC,EAAG,eACHC,GAAI4E,UACJ3E,EAAG2E,UACH1E,GAAI0E,UACJzE,EAAGyE,UACHxE,GAAIwE,UACJvE,EAAG,UACHC,GAAI,SACJ2C,EAAG,UACHC,GAAI0B,UACJrE,EAAG,UACHC,GAAIoE,UACJnE,EAAG,MACHC,GAAIkE,WAERjE,uBAAwB,YACxBC,QAAS,MACTE,KAAM,CACFC,IAAK,EACLC,IAAK,KA1IyBC,CAAQ,oBAAQ,4FCGlD,SAAWjD,QAAU,aAIdA,OAAOC,aAAa,QAAS,CACpCC,OAAQ,2FAA2FpE,MAC/F,KAEJqE,YAAa,kDAAkDrE,MAAM,KACrEsE,SACI,iFAAiFtE,MAC7E,KAERuE,cAAe,8BAA8BvE,MAAM,KACnDwE,YAAa,uBAAuBxE,MAAM,KAC1C6H,oBAAoB,EACpB7C,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,wBACJC,IAAK,mCACLC,KAAM,0CAEVC,SAAU,CACNC,QAAS,eACTC,QAAS,iBACTC,SAAU,eACVC,QAAS,gBACTC,SAAU,WACN,OAAsB,IAAfpK,KAAKyN,OAA8B,IAAfzN,KAAKyN,MAC1B,wBACA,yBAEVpD,SAAU,KAEdC,aAAc,CACVC,OAAQ,QACRC,KAAM,QACNC,EAAG,kBACHC,GAAI,cACJC,EAAG,YACHC,GAAI,aACJC,EAAG,WACHC,GAAI,WACJC,EAAG,SACHC,GAAI,UACJC,EAAG,SACHC,GAAI,WACJC,EAAG,SACHC,GAAI,WAERC,uBAAwB,WACxBC,QAAS,MACTsF,YAAa,kBAzDqBjF,CAAQ,oBAAQ,4FCGlD,SAAWjD,QAAU,aAIhBA,OAAOC,aAAa,KAAM,CAC/BC,OAAQ,2FAA2FpE,MAC/F,KAEJqE,YAAa,kDAAkDrE,MAAM,KACrEsE,SACI,iFAAiFtE,MAC7E,KAERuE,cAAe,8BAA8BvE,MAAM,KACnDwE,YAAa,uBAAuBxE,MAAM,KAC1C6H,oBAAoB,EACpB7C,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,wBACJC,IAAK,8BACLC,KAAM,qCAEVC,SAAU,CACNC,QAAS,eACTC,QAAS,iBACTC,SAAU,eACVC,QAAS,gBACTC,SAAU,WACN,OAAsB,IAAfpK,KAAKyN,OAA8B,IAAfzN,KAAKyN,MAC1B,wBACA,yBAEVpD,SAAU,KAEdC,aAAc,CACVC,OAAQ,QACRC,KAAM,QACNC,EAAG,WACHC,GAAI,cACJC,EAAG,YACHC,GAAI,aACJC,EAAG,WACHC,GAAI,WACJC,EAAG,SACHC,GAAI,UACJ2C,EAAG,aACHC,GAAI,aACJ3C,EAAG,SACHC,GAAI,WACJC,EAAG,SACHC,GAAI,WAERC,uBAAwB,WACxBC,QAAS,MACTE,KAAM,CACFC,IAAK,EACLC,IAAK,KA7DyBC,CAAQ,oBAAQ,4FCKlD,SAAWjD,QAAU,aAIzB,SAAS2E,uBAAuB9B,OAAQU,cAAe9I,KACnD,IASIkQ,UAAY,IAIhB,OAHI9H,OAAS,KAAO,IAAOA,QAAU,KAAOA,OAAS,KAAQ,KACzD8H,UAAY,QAET9H,OAAS8H,UAbH,CACL3I,GAAI,UACJE,GAAI,SACJE,GAAI,MACJE,GAAI,OACJ4C,GAAI,YACJ1C,GAAI,OACJE,GAAI,OAMuBjI,KAG9BuF,OAAOC,aAAa,KAAM,CAC/BC,OAAQ,oGAAoGpE,MACxG,KAEJqE,YACI,+DAA+DrE,MAC3D,KAERyJ,kBAAkB,EAClBnF,SAAU,kDAAkDtE,MAAM,KAClEuE,cAAe,8BAA8BvE,MAAM,KACnDwE,YAAa,uBAAuBxE,MAAM,KAC1CgF,eAAgB,CACZC,GAAI,OACJC,IAAK,UACLC,EAAG,aACHC,GAAI,cACJC,IAAK,mBACLC,KAAM,0BAEVC,SAAU,CACNC,QAAS,cACTC,QAAS,gBACTC,SAAU,eACVC,QAAS,eACTC,SAAU,uBACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,WACRC,KAAM,aACNC,EAAG,iBACHC,GAAI2C,uBACJ1C,EAAG,WACHC,GAAIyC,uBACJxC,EAAG,QACHC,GAAIuC,uBACJtC,EAAG,OACHC,GAAIqC,uBACJM,EAAG,cACHC,GAAIP,uBACJpC,EAAG,SACHC,GAAImC,uBACJlC,EAAG,QACHC,GAAIiC,wBAER7B,KAAM,CACFC,IAAK,EACLC,IAAK,KAxEyBC,CAAQ,oBAAQ,4FCGlD,SAAWjD,QAAU,aAIzB,SAASuE,OAAOC,KAAMC,KAClB,IAAIC,MAAQF,KAAK1I,MAAM,KACvB,OAAO2I,IAAM,IAAO,GAAKA,IAAM,KAAQ,GACjCC,MAAM,GACND,IAAM,IAAM,GAAKA,IAAM,IAAM,IAAMA,IAAM,IAAM,IAAMA,IAAM,KAAO,IAChEC,MAAM,GACNA,MAAM,GAElB,SAASC,uBAAuB9B,OAAQU,cAAe9I,KAUnD,MAAY,MAARA,IACO8I,cAAgB,SAAW,SAE3BV,OAAS,IAAM0B,OAZb,CACTvC,GAAIuB,cAAgB,yBAA2B,yBAC/CrB,GAAIqB,cAAgB,sBAAwB,sBAC5CnB,GAAI,iBACJE,GAAI,gBACJ4C,GAAI,uBACJ1C,GAAI,uBACJE,GAAI,gBAKgCjI,MAAOoI,QAGnD,IAAImD,YAAc,CACd,QACA,QACA,QACA,QACA,WACA,QACA,QACA,QACA,QACA,QACA,QACA,SAMKhG,OAAOC,aAAa,KAAM,CAC/BC,OAAQ,CACJ0E,OAAQ,oFAAoF9I,MACxF,KAEJ+I,WACI,kFAAkF/I,MAC9E,MAGZqE,YAAa,CAETyE,OAAQ,gEAAgE9I,MACpE,KAEJ+I,WACI,gEAAgE/I,MAC5D,MAGZsE,SAAU,CACNyE,WACI,gEAAgE/I,MAC5D,KAER8I,OAAQ,gEAAgE9I,MACpE,KAEJgJ,SAAU,iDAEdzE,cAAe,uBAAuBvE,MAAM,KAC5CwE,YAAa,uBAAuBxE,MAAM,KAC1CkK,YACAQ,gBAAiBR,YACjBS,iBAAkBT,YAGlBC,YACI,2MAGJX,iBACI,2MAGJY,kBACI,wHAGJC,uBACI,6FACJrF,eAAgB,CACZC,GAAI,OACJC,IAAK,UACLC,EAAG,aACHC,GAAI,iBACJC,IAAK,uBACLC,KAAM,8BAEVC,SAAU,CACNC,QAAS,kBACTC,QAAS,iBACTE,QAAS,gBACTD,SAAU,SAAU0H,KAChB,GAAIA,IAAIpG,SAAWxL,KAAKwL,OAcpB,OAAmB,IAAfxL,KAAKyN,MACE,oBAEA,mBAhBX,OAAQzN,KAAKyN,OACT,KAAK,EACD,MAAO,6BACX,KAAK,EACL,KAAK,EACL,KAAK,EACD,MAAO,6BACX,KAAK,EACL,KAAK,EACL,KAAK,EACD,MAAO,+BAUvBrD,SAAU,SAAUwH,KAChB,GAAIA,IAAIpG,SAAWxL,KAAKwL,OAcpB,OAAmB,IAAfxL,KAAKyN,MACE,oBAEA,mBAhBX,OAAQzN,KAAKyN,OACT,KAAK,EACD,MAAO,2BACX,KAAK,EACL,KAAK,EACL,KAAK,EACD,MAAO,2BACX,KAAK,EACL,KAAK,EACL,KAAK,EACD,MAAO,6BAUvBpD,SAAU,KAEdC,aAAc,CACVC,OAAQ,WACRC,KAAM,WACNC,EAAG,mBACHC,GAAI2C,uBACJ1C,EAAG0C,uBACHzC,GAAIyC,uBACJxC,EAAG,MACHC,GAAIuC,uBACJtC,EAAG,OACHC,GAAIqC,uBACJM,EAAG,SACHC,GAAIP,uBACJpC,EAAG,QACHC,GAAImC,uBACJlC,EAAG,MACHC,GAAIiC,wBAERpE,cAAe,wBACfC,KAAM,SAAUC,OACZ,MAAO,iBAAiB1I,KAAK0I,QAEjCC,SAAU,SAAUkD,KAAMC,OAAQhD,SAC9B,OAAI+C,KAAO,EACA,OACAA,KAAO,GACP,OACAA,KAAO,GACP,MAEA,UAGfjB,uBAAwB,mBACxBC,QAAS,SAAUC,OAAQmC,QACvB,OAAQA,QACJ,IAAK,IACL,IAAK,IACL,IAAK,MACD,OAAOnC,OAAS,KACpB,IAAK,IACD,OAAOA,OAAS,MACpB,IAAK,IACL,IAAK,IACD,OAAOA,OAAS,KACpB,QACI,OAAOA,SAGnBC,KAAM,CACFC,IAAK,EACLC,IAAK,KAjNyBC,CAAQ,oBAAQ,2FCClD,SAAWjD,QAAU,aAIzB,IAAIE,OAAS,CACL,QACA,UACA,OACA,QACA,MACA,MACA,SACA,OACA,UACA,SACA,QACA,SAEJ0K,KAAO,CAAC,MAAO,OAAQ,QAAS,OAAQ,OAAQ,MAAO,QAElD5K,OAAOC,aAAa,KAAM,CAC/BC,OACAC,YAAaD,OACbE,SAAUwK,KACVvK,cAAeuK,KACftK,YAAasK,KACb9J,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,2BAEVb,cAAe,UACfC,KAAM,SAAUC,OACZ,MAAO,QAAUA,OAErBC,SAAU,SAAUkD,KAAMC,OAAQhD,SAC9B,OAAI+C,KAAO,GACA,MAEJ,OAEXvC,SAAU,CACNC,QAAS,UACTC,QAAS,aACTC,SAAU,yBACVC,QAAS,aACTC,SAAU,4BACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,SACRC,KAAM,QACNC,EAAG,YACHC,GAAI,WACJC,EAAG,SACHC,GAAI,SACJC,EAAG,UACHC,GAAI,UACJC,EAAG,WACHC,GAAI,WACJC,EAAG,WACHC,GAAI,WACJC,EAAG,SACHC,GAAI,UAERsB,SAAU,SAAUR,QAChB,OAAOA,OAAO9F,QAAQ,KAAM,MAEhCoG,WAAY,SAAUN,QAClB,OAAOA,OAAO9F,QAAQ,KAAM,MAEhCoF,KAAM,CACFC,IAAK,EACLC,IAAK,KA/EyBC,CAAQ,oBAAQ,2FCGlD,SAAWjD,QAAU,aAIhBA,OAAOC,aAAa,KAAM,CAC/BC,OAAQ,mJAAmJpE,MACvJ,KAEJqE,YACI,6DAA6DrE,MAAM,KACvEsE,SACI,6EAA6EtE,MACzE,KAERuE,cAAe,mCAAmCvE,MAAM,KACxDwE,YAAa,gBAAgBxE,MAAM,KACnCgF,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,oBACJC,IAAK,gCACLC,KAAM,uCAEVC,SAAU,CACNC,QAAS,eACTC,QAAS,iBACTC,SAAU,eACVC,QAAS,eACTC,SAAU,wBACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,YACRC,KAAM,WACNC,EAAG,mBACHC,GAAI,eACJC,EAAG,eACHC,GAAI,cACJC,EAAG,cACHC,GAAI,aACJC,EAAG,cACHC,GAAI,cACJC,EAAG,aACHC,GAAI,WACJC,EAAG,aACHC,GAAI,YAERC,uBAAwB,YACxBC,QAAS,MACTE,KAAM,CACFC,IAAK,EACLC,IAAK,KAvDyBC,CAAQ,oBAAQ,2FCGlD,SAAWjD,QAAU,aAKhBA,OAAOC,aAAa,KAAM,CAC/BC,OAAQ,kGAAkGpE,MACtG,KAEJqE,YAAa,wDAAwDrE,MACjE,KAEJsE,SACI,gEAAgEtE,MAC5D,KAERuE,cAAe,gCAAgCvE,MAAM,KACrDwE,YAAa,qBAAqBxE,MAAM,KACxC6H,oBAAoB,EACpB7C,eAAgB,CACZC,GAAI,SACJC,IAAK,YACLC,EAAG,aACHC,GAAI,cACJC,IAAK,sBACLC,KAAM,sCAEVC,SAAU,CACNC,QAAS,aACTC,QAAS,cACTC,SAAU,aACVC,QAAS,cACTC,SAAU,sBACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,SACRC,KAAM,WACNC,EAAG,eACHC,GAAI,WACJC,EAAG,YACHC,GAAI,cACJC,EAAG,MACHC,GAAI,SACJC,EAAG,OACHC,GAAI,SACJC,EAAG,OACHC,GAAI,SACJC,EAAG,MACHC,GAAI,UAERC,uBAAwB,eACxBC,QAAS,SAAUC,QACf,OAAOA,OAAS,SAEpBtC,cAAe,4BACfC,KAAM,SAAUC,OACZ,MAAiB,SAAVA,OAA8B,YAAVA,OAE/BC,SAAU,SAAUC,MAAOC,QAASC,SAChC,OAAIF,MAAQ,GACDE,QAAU,OAAS,UAEnBA,QAAU,QAAU,aAlEDoC,CAAQ,oBAAQ,4FCIlD,SAAWjD,QAAU,aAIzB,IAAIE,OACI,oFAAoFpE,MAChF,KAERqE,YAAc,kDAAkDrE,MAAM,KAC1E,SAASyI,OAAOpB,GACZ,OAAOA,EAAI,GAAKA,EAAI,EAExB,SAASyD,UAAU/D,OAAQU,cAAe9I,IAAKgJ,UAC3C,IAAIoD,OAAShE,OAAS,IACtB,OAAQpI,KACJ,IAAK,IACD,OAAO8I,eAAiBE,SAAW,aAAe,gBACtD,IAAK,KACD,OAAIF,eAAiBE,SACVoD,QAAUtC,OAAO1B,QAAU,UAAY,UAEvCgE,OAAS,YAExB,IAAK,IACD,OAAOtD,cAAgB,SAAWE,SAAW,SAAW,UAC5D,IAAK,KACD,OAAIF,eAAiBE,SACVoD,QAAUtC,OAAO1B,QAAU,SAAW,SAEtCgE,OAAS,WAExB,IAAK,IACD,OAAOtD,cAAgB,SAAWE,SAAW,SAAW,UAC5D,IAAK,KACD,OAAIF,eAAiBE,SACVoD,QAAUtC,OAAO1B,QAAU,SAAW,SAEtCgE,OAAS,WAExB,IAAK,IACD,OAAOtD,eAAiBE,SAAW,MAAQ,OAC/C,IAAK,KACD,OAAIF,eAAiBE,SACVoD,QAAUtC,OAAO1B,QAAU,MAAQ,OAEnCgE,OAAS,QAExB,IAAK,IACD,OAAOtD,eAAiBE,SAAW,SAAW,WAClD,IAAK,KACD,OAAIF,eAAiBE,SACVoD,QAAUtC,OAAO1B,QAAU,UAAY,YAEvCgE,OAAS,WAExB,IAAK,IACD,OAAOtD,eAAiBE,SAAW,MAAQ,QAC/C,IAAK,KACD,OAAIF,eAAiBE,SACVoD,QAAUtC,OAAO1B,QAAU,OAAS,SAEpCgE,OAAS,SAKvB7G,OAAOC,aAAa,KAAM,CAC/BC,OACAC,YACAC,SAAU,sDAAsDtE,MAAM,KACtEuE,cAAe,uBAAuBvE,MAAM,KAC5CwE,YAAa,uBAAuBxE,MAAM,KAC1CgF,eAAgB,CACZC,GAAI,OACJC,IAAK,UACLC,EAAG,aACHC,GAAI,eACJC,IAAK,oBACLC,KAAM,0BAEVC,SAAU,CACNC,QAAS,cACTC,QAAS,gBACTC,SAAU,WACN,OAAQlK,KAAKyN,OACT,KAAK,EACD,MAAO,kBACX,KAAK,EACL,KAAK,EACD,MAAO,kBACX,KAAK,EACD,MAAO,kBACX,KAAK,EACD,MAAO,oBACX,KAAK,EACD,MAAO,kBACX,KAAK,EACD,MAAO,oBAGnBtD,QAAS,eACTC,SAAU,WACN,OAAQpK,KAAKyN,OACT,KAAK,EACD,MAAO,uBACX,KAAK,EACL,KAAK,EAIL,KAAK,EACL,KAAK,EACD,MAAO,uBAJX,KAAK,EACD,MAAO,uBAIX,KAAK,EACD,MAAO,yBAGnBpD,SAAU,KAEdC,aAAc,CACVC,OAAQ,QACRC,KAAM,UACNC,EAAG6E,UACH5E,GAAI4E,UACJ3E,EAAG2E,UACH1E,GAAI0E,UACJzE,EAAGyE,UACHxE,GAAIwE,UACJvE,EAAGuE,UACHtE,GAAIsE,UACJrE,EAAGqE,UACHpE,GAAIoE,UACJnE,EAAGmE,UACHlE,GAAIkE,WAERjE,uBAAwB,YACxBC,QAAS,MACTE,KAAM,CACFC,IAAK,EACLC,IAAK,KA9IyBC,CAAQ,oBAAQ,4FCElD,SAAWjD,QAAU,aAIzB,SAAS2G,oBAAoB9D,OAAQU,cAAe9I,IAAKgJ,UACrD,IAAIoD,OAAShE,OAAS,IACtB,OAAQpI,KACJ,IAAK,IACD,OAAO8I,eAAiBE,SAClB,eACA,kBACV,IAAK,KAUD,OARIoD,QADW,IAAXhE,OACUU,cAAgB,UAAY,UACpB,IAAXV,OACGU,eAAiBE,SAAW,UAAY,WAC3CZ,OAAS,EACNU,eAAiBE,SAAW,UAAY,WAExC,SAGlB,IAAK,IACD,OAAOF,cAAgB,aAAe,aAC1C,IAAK,KAUD,OARIsD,QADW,IAAXhE,OACUU,cAAgB,SAAW,SACnB,IAAXV,OACGU,eAAiBE,SAAW,SAAW,WAC1CZ,OAAS,EACNU,eAAiBE,SAAW,SAAW,WAEvCF,eAAiBE,SAAW,QAAU,WAGxD,IAAK,IACD,OAAOF,cAAgB,UAAY,UACvC,IAAK,KAUD,OARIsD,QADW,IAAXhE,OACUU,cAAgB,MAAQ,MAChB,IAAXV,OACGU,eAAiBE,SAAW,MAAQ,QACvCZ,OAAS,EACNU,eAAiBE,SAAW,MAAQ,QAEpCF,eAAiBE,SAAW,KAAO,QAGrD,IAAK,IACD,OAAOF,eAAiBE,SAAW,SAAW,YAClD,IAAK,KAQD,OANIoD,QADW,IAAXhE,OACUU,eAAiBE,SAAW,MAAQ,OAC5B,IAAXZ,OACGU,eAAiBE,SAAW,MAAQ,UAEpCF,eAAiBE,SAAW,MAAQ,QAGtD,IAAK,IACD,OAAOF,eAAiBE,SAAW,WAAa,eACpD,IAAK,KAUD,OARIoD,QADW,IAAXhE,OACUU,eAAiBE,SAAW,QAAU,UAC9B,IAAXZ,OACGU,eAAiBE,SAAW,SAAW,WAC1CZ,OAAS,EACNU,eAAiBE,SAAW,SAAW,SAEvCF,eAAiBE,SAAW,UAAY,SAG1D,IAAK,IACD,OAAOF,eAAiBE,SAAW,WAAa,aACpD,IAAK,KAUD,OARIoD,QADW,IAAXhE,OACUU,eAAiBE,SAAW,OAAS,QAC7B,IAAXZ,OACGU,eAAiBE,SAAW,OAAS,SACxCZ,OAAS,EACNU,eAAiBE,SAAW,OAAS,OAErCF,eAAiBE,SAAW,MAAQ,QAMrDzD,OAAOC,aAAa,KAAM,CAC/BC,OAAQ,wFAAwFpE,MAC5F,KAEJqE,YACI,8DAA8DrE,MAC1D,KAERyJ,kBAAkB,EAClBnF,SAAU,sDAAsDtE,MAAM,KACtEuE,cAAe,qCAAqCvE,MAAM,KAC1DwE,YAAa,uBAAuBxE,MAAM,KAC1C6H,oBAAoB,EACpB7C,eAAgB,CACZC,GAAI,OACJC,IAAK,UACLC,EAAG,eACHC,GAAI,eACJC,IAAK,oBACLC,KAAM,2BAEVC,SAAU,CACNC,QAAS,gBACTC,QAAS,gBAETC,SAAU,WACN,OAAQlK,KAAKyN,OACT,KAAK,EACD,MAAO,wBACX,KAAK,EACD,MAAO,sBACX,KAAK,EACD,MAAO,uBACX,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACD,MAAO,qBAGnBtD,QAAS,iBACTC,SAAU,WACN,OAAQpK,KAAKyN,OACT,KAAK,EACD,MAAO,+BACX,KAAK,EACD,MAAO,6BACX,KAAK,EACD,MAAO,8BACX,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACD,MAAO,4BAGnBpD,SAAU,KAEdC,aAAc,CACVC,OAAQ,SACRC,KAAM,UACNC,EAAG4E,oBACH3E,GAAI2E,oBACJ1E,EAAG0E,oBACHzE,GAAIyE,oBACJxE,EAAGwE,oBACHvE,GAAIuE,oBACJtE,EAAGsE,oBACHrE,GAAIqE,oBACJpE,EAAGoE,oBACHnE,GAAImE,oBACJlE,EAAGkE,oBACHjE,GAAIiE,qBAERhE,uBAAwB,YACxBC,QAAS,MACTE,KAAM,CACFC,IAAK,EACLC,IAAK,KAzKyBC,CAAQ,oBAAQ,4FCKlD,SAAWjD,QAAU,aAIhBA,OAAOC,aAAa,KAAM,CAC/BC,OAAQ,gFAAgFpE,MACpF,KAEJqE,YAAa,kDAAkDrE,MAAM,KACrEsE,SAAU,4DAA4DtE,MAClE,KAEJuE,cAAe,8BAA8BvE,MAAM,KACnDwE,YAAa,mBAAmBxE,MAAM,KACtC6H,oBAAoB,EACpBpD,cAAe,QACfC,KAAM,SAAUC,OACZ,MAA2B,MAApBA,MAAMsF,OAAO,IAExBrF,SAAU,SAAUC,MAAOC,QAASC,SAChC,OAAOF,MAAQ,GAAK,KAAO,MAE/BG,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,2BAEVC,SAAU,CACNC,QAAS,cACTC,QAAS,gBACTC,SAAU,eACVC,QAAS,cACTC,SAAU,wBACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,QACRC,KAAM,aACNC,EAAG,eACHC,GAAI,aACJC,EAAG,aACHC,GAAI,YACJC,EAAG,UACHC,GAAI,SACJC,EAAG,WACHC,GAAI,UACJC,EAAG,WACHC,GAAI,UACJC,EAAG,UACHC,GAAI,WAERC,uBAAwB,YACxBC,QAAS,MACTE,KAAM,CACFC,IAAK,EACLC,IAAK,KA7DyBC,CAAQ,oBAAQ,4FCElD,SAAWjD,QAAU,aAIzB,IAAIoK,WAAa,CACbC,MAAO,CAEHrI,GAAI,CAAC,UAAW,UAAW,WAC3BC,EAAG,CAAC,cAAe,iBACnBC,GAAI,CAAC,QAAS,SAAU,UACxBC,EAAG,CAAC,YAAa,eACjBC,GAAI,CAAC,MAAO,OAAQ,QACpBC,EAAG,CAAC,YAAa,eACjBC,GAAI,CAAC,MAAO,OAAQ,QACpBC,EAAG,CAAC,cAAe,iBACnBC,GAAI,CAAC,QAAS,SAAU,UACxBC,EAAG,CAAC,eAAgB,gBACpBC,GAAI,CAAC,SAAU,SAAU,WAE7B4H,uBAAwB,SAAUzH,OAAQ0H,SACtC,OACI1H,OAAS,IAAM,GACfA,OAAS,IAAM,IACdA,OAAS,IAAM,IAAMA,OAAS,KAAO,IAE/BA,OAAS,IAAO,EAAI0H,QAAQ,GAAKA,QAAQ,GAE7CA,QAAQ,IAEnB3D,UAAW,SAAU/D,OAAQU,cAAe9I,IAAKgJ,UAC7C,IACIe,KADA+F,QAAUH,WAAWC,MAAM5P,KAG/B,OAAmB,IAAfA,IAAIyB,OAEQ,MAARzB,KAAe8I,cAAsB,eAClCE,UAAYF,cAAgBgH,QAAQ,GAAKA,QAAQ,IAG5D/F,KAAO4F,WAAWE,uBAAuBzH,OAAQ0H,SAErC,OAAR9P,KAAgB8I,eAA0B,WAATiB,KAC1B3B,OAAS,UAGbA,OAAS,IAAM2B,QAIjBxE,OAAOC,aAAa,UAAW,CACxCC,OAAQ,mFAAmFpE,MACvF,KAEJqE,YACI,2DAA2DrE,MAAM,KACrEyJ,kBAAkB,EAClBnF,SAAU,sDAAsDtE,MAAM,KACtEuE,cAAe,qCAAqCvE,MAAM,KAC1DwE,YAAa,uBAAuBxE,MAAM,KAC1C6H,oBAAoB,EACpB7C,eAAgB,CACZC,GAAI,OACJC,IAAK,UACLC,EAAG,cACHC,GAAI,gBACJC,IAAK,qBACLC,KAAM,4BAEVC,SAAU,CACNC,QAAS,eACTC,QAAS,eACTC,SAAU,WACN,OAAQlK,KAAKyN,OACT,KAAK,EACD,MAAO,sBACX,KAAK,EACD,MAAO,qBACX,KAAK,EACD,MAAO,sBACX,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACD,MAAO,oBAGnBtD,QAAS,cACTC,SAAU,WAUN,MATmB,CACf,2BACA,+BACA,4BACA,0BACA,8BACA,2BACA,4BAEgBpK,KAAKyN,QAE7BpD,SAAU,KAEdC,aAAc,CACVC,OAAQ,QACRC,KAAM,SACNC,EAAG,mBACHC,GAAIoI,WAAWxD,UACf3E,EAAGmI,WAAWxD,UACd1E,GAAIkI,WAAWxD,UACfzE,EAAGiI,WAAWxD,UACdxE,GAAIgI,WAAWxD,UACfvE,EAAG+H,WAAWxD,UACdtE,GAAI8H,WAAWxD,UACfrE,EAAG6H,WAAWxD,UACdpE,GAAI4H,WAAWxD,UACfnE,EAAG2H,WAAWxD,UACdlE,GAAI0H,WAAWxD,WAEnBjE,uBAAwB,YACxBC,QAAS,MACTE,KAAM,CACFC,IAAK,EACLC,IAAK,KA5HyBC,CAAQ,oBAAQ,4FCGlD,SAAWjD,QAAU,aAIzB,IAAIoK,WAAa,CACbC,MAAO,CAEHrI,GAAI,CAAC,UAAW,UAAW,WAC3BC,EAAG,CAAC,cAAe,iBACnBC,GAAI,CAAC,QAAS,SAAU,UACxBC,EAAG,CAAC,YAAa,eACjBC,GAAI,CAAC,MAAO,OAAQ,QACpBC,EAAG,CAAC,YAAa,eACjBC,GAAI,CAAC,MAAO,OAAQ,QACpBC,EAAG,CAAC,cAAe,iBACnBC,GAAI,CAAC,QAAS,SAAU,UACxBC,EAAG,CAAC,eAAgB,gBACpBC,GAAI,CAAC,SAAU,SAAU,WAE7B4H,uBAAwB,SAAUzH,OAAQ0H,SACtC,OACI1H,OAAS,IAAM,GACfA,OAAS,IAAM,IACdA,OAAS,IAAM,IAAMA,OAAS,KAAO,IAE/BA,OAAS,IAAO,EAAI0H,QAAQ,GAAKA,QAAQ,GAE7CA,QAAQ,IAEnB3D,UAAW,SAAU/D,OAAQU,cAAe9I,IAAKgJ,UAC7C,IACIe,KADA+F,QAAUH,WAAWC,MAAM5P,KAG/B,OAAmB,IAAfA,IAAIyB,OAEQ,MAARzB,KAAe8I,cAAsB,eAClCE,UAAYF,cAAgBgH,QAAQ,GAAKA,QAAQ,IAG5D/F,KAAO4F,WAAWE,uBAAuBzH,OAAQ0H,SAErC,OAAR9P,KAAgB8I,eAA0B,WAATiB,KAC1B3B,OAAS,UAGbA,OAAS,IAAM2B,QAIrBxE,OAAOC,aAAa,KAAM,CAC/BC,OAAQ,mFAAmFpE,MACvF,KAEJqE,YACI,2DAA2DrE,MAAM,KACrEyJ,kBAAkB,EAClBnF,SAAU,wDAAwDtE,MAC9D,KAEJuE,cAAe,qCAAqCvE,MAAM,KAC1DwE,YAAa,uBAAuBxE,MAAM,KAC1C6H,oBAAoB,EACpB7C,eAAgB,CACZC,GAAI,OACJC,IAAK,UACLC,EAAG,cACHC,GAAI,gBACJC,IAAK,qBACLC,KAAM,4BAEVC,SAAU,CACNC,QAAS,eACTC,QAAS,eACTC,SAAU,WACN,OAAQlK,KAAKyN,OACT,KAAK,EACD,MAAO,uBACX,KAAK,EACD,MAAO,qBACX,KAAK,EACD,MAAO,sBACX,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACD,MAAO,oBAGnBtD,QAAS,cACTC,SAAU,WAUN,MATmB,CACf,4BACA,gCACA,4BACA,0BACA,8BACA,2BACA,4BAEgBpK,KAAKyN,QAE7BpD,SAAU,KAEdC,aAAc,CACVC,OAAQ,QACRC,KAAM,SACNC,EAAG,mBACHC,GAAIoI,WAAWxD,UACf3E,EAAGmI,WAAWxD,UACd1E,GAAIkI,WAAWxD,UACfzE,EAAGiI,WAAWxD,UACdxE,GAAIgI,WAAWxD,UACfvE,EAAG+H,WAAWxD,UACdtE,GAAI8H,WAAWxD,UACfrE,EAAG6H,WAAWxD,UACdpE,GAAI4H,WAAWxD,UACfnE,EAAG2H,WAAWxD,UACdlE,GAAI0H,WAAWxD,WAEnBjE,uBAAwB,YACxBC,QAAS,MACTE,KAAM,CACFC,IAAK,EACLC,IAAK,KA9HyBC,CAAQ,oBAAQ,4FCElD,SAAWjD,QAAU,aAIhBA,OAAOC,aAAa,KAAM,CAC/BC,OAAQ,mHAAmHpE,MACvH,KAEJqE,YAAa,kDAAkDrE,MAAM,KACrEsE,SACI,sEAAsEtE,MAClE,KAERuE,cAAe,8BAA8BvE,MAAM,KACnDwE,YAAa,uBAAuBxE,MAAM,KAC1C6H,oBAAoB,EACpB7C,eAAgB,CACZC,GAAI,SACJC,IAAK,YACLC,EAAG,aACHC,GAAI,cACJC,IAAK,qBACLC,KAAM,4BAEVC,SAAU,CACNC,QAAS,mBACTC,QAAS,kBACTC,SAAU,gBACVC,QAAS,iBACTC,SAAU,8BACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,SACRC,KAAM,iBACNC,EAAG,qBACHC,GAAI,cACJC,EAAG,SACHC,GAAI,aACJC,EAAG,SACHC,GAAI,aACJC,EAAG,UACHC,GAAI,cACJC,EAAG,UACHC,GAAI,cACJC,EAAG,UACHC,GAAI,eAERnC,cAAe,mCACfG,SAAU,SAAUC,MAAOC,QAASC,SAChC,OAAIF,MAAQ,GACD,UACAA,MAAQ,GACR,QACAA,MAAQ,GACR,aAEA,WAGf0E,aAAc,SAAUzB,KAAMlD,UAI1B,OAHa,KAATkD,OACAA,KAAO,GAEM,YAAblD,SACOkD,KACa,UAAblD,SACAkD,MAAQ,GAAKA,KAAOA,KAAO,GACd,eAAblD,UAA0C,YAAbA,SACvB,IAATkD,KACO,EAEJA,KAAO,QAJX,GAOXjB,uBAAwB,UACxBC,QAAS,KACTE,KAAM,CACFC,IAAK,EACLC,IAAK,KAlFyBC,CAAQ,oBAAQ,4FCGlD,SAAWjD,QAAU,aAIhBA,OAAOC,aAAa,KAAM,CAC/BC,OAAQ,wFAAwFpE,MAC5F,KAEJqE,YAAa,kDAAkDrE,MAAM,KACrEsE,SAAU,oDAAoDtE,MAAM,KACpEuE,cAAe,8BAA8BvE,MAAM,KACnDwE,YAAa,uBAAuBxE,MAAM,KAC1CgF,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,0BACLC,KAAM,+BACN2F,IAAK,mBACLC,KAAM,wBAEV3F,SAAU,CACNC,QAAS,YACTC,QAAS,eACTE,QAAS,YACTD,SAAU,eACVE,SAAU,iBACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,QACRC,KAAM,eACNC,EAAG,iBACHC,GAAI,cACJC,EAAG,WACHC,GAAI,aACJC,EAAG,WACHC,GAAI,YACJC,EAAG,SACHC,GAAI,WACJC,EAAG,WACHC,GAAI,aACJC,EAAG,SACHC,GAAI,SAERC,uBAAwB,mBACxBC,QAAS,SAAUC,QACf,IAAIwB,EAAIxB,OAAS,GAWjB,OAAOA,QAT6B,MAAxBA,OAAS,IAAO,IACd,KACM,IAANwB,GAEQ,IAANA,EADA,KAII,OAIxBvB,KAAM,CACFC,IAAK,EACLC,IAAK,KAlEyBC,CAAQ,oBAAQ,4FCGlD,SAAWjD,QAAU,aAIhBA,OAAOC,aAAa,KAAM,CAC/BC,OAAQ,sFAAsFpE,MAC1F,KAEJqE,YAAa,kDAAkDrE,MAAM,KACrEsE,SACI,8DAA8DtE,MAC1D,KAERuE,cAAe,kCAAkCvE,MAAM,KACvDwE,YAAa,uBAAuBxE,MAAM,KAC1C6H,oBAAoB,EACpB7C,eAAgB,CACZC,GAAI,UACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,2BAEVC,SAAU,CACNC,QAAS,eACTC,QAAS,iBACTC,SAAU,8BACVC,QAAS,YACTC,SAAU,kCACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,aACRC,KAAM,WACNC,EAAG,aACHC,GAAI,aACJC,EAAG,cACHC,GAAI,YACJC,EAAG,aACHC,GAAI,WACJC,EAAG,YACHC,GAAI,UACJC,EAAG,cACHC,GAAI,WACJC,EAAG,cACHC,GAAI,YAERI,KAAM,CACFC,IAAK,EACLC,IAAK,KArDyBC,CAAQ,oBAAQ,4FCGlD,SAAWjD,QAAU,aAIzB,IAAI+D,UAAY,CACR,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,IACH,EAAG,KAEPE,UAAY,CACR,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,KAGJjE,OAAOC,aAAa,KAAM,CAC/BC,OAAQ,0FAA0FpE,MAC9F,KAEJqE,YACI,0FAA0FrE,MACtF,KAERsE,SACI,8FAA8FtE,MAC1F,KAERuE,cAAe,mDAAmDvE,MAC9D,KAEJwE,YAAa,sBAAsBxE,MAAM,KACzCgF,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,qBACLC,KAAM,4BAEVC,SAAU,CACNC,QAAS,aACTC,QAAS,YACTC,SAAU,WACVC,QAAS,cACTC,SAAU,yBACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,SACRC,KAAM,UACNC,EAAG,oBACHC,GAAI,eACJC,EAAG,cACHC,GAAI,gBACJC,EAAG,gBACHC,GAAI,eACJC,EAAG,WACHC,GAAI,aACJC,EAAG,YACHC,GAAI,cACJC,EAAG,aACHC,GAAI,eAERC,uBAAwB,aACxBC,QAAS,SAAUC,QACf,OAAOA,OAAS,OAEpBmB,SAAU,SAAUR,QAChB,OAAOA,OAAO9F,QAAQ,iBAAiB,SAAUwB,OAC7C,OAAO+E,UAAU/E,WAGzB4E,WAAY,SAAUN,QAClB,OAAOA,OAAO9F,QAAQ,OAAO,SAAUwB,OACnC,OAAO6E,UAAU7E,WAIzBqB,cAAe,wCACfG,SAAU,SAAUkD,KAAMC,OAAQhD,SAC9B,OAAI+C,KAAO,EACA,SACAA,KAAO,EACP,SACAA,KAAO,GACP,QACAA,KAAO,GACP,WACAA,KAAO,GACP,WACAA,KAAO,GACP,QAEA,UAGfyB,aAAc,SAAUzB,KAAMlD,UAI1B,OAHa,KAATkD,OACAA,KAAO,GAEM,UAAblD,SACOkD,KAAO,EAAIA,KAAOA,KAAO,GACZ,UAAblD,UAAqC,SAAbA,UAEX,YAAbA,UACAkD,MAAQ,GAFRA,KAIAA,KAAO,IAGtBd,KAAM,CACFC,IAAK,EACLC,IAAK,KAjIyBC,CAAQ,oBAAQ,4FCGlD,SAAWjD,QAAU,aAIhBA,OAAOC,aAAa,KAAM,CAC/BC,OAAQ,wFAAwFpE,MAC5F,KAEJqE,YACI,mEAAmErE,MAC/D,KAERyJ,kBAAkB,EAClBnF,SACI,8DAA8DtE,MAC1D,KAERuE,cAAe,kCAAkCvE,MAAM,KACvDwE,YAAa,qBAAqBxE,MAAM,KACxCgF,eAAgB,CACZC,GAAI,SACJC,IAAK,YACLC,EAAG,aACHC,GAAI,cACJC,IAAK,sBACLC,KAAM,6BAEVC,SAAU,CACNC,QAAS,YACTC,QAAS,YACTC,SAAU,WACVC,QAAS,aACTC,SAAU,gBACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,QACRC,KAAM,YACNC,EAAG,iBACHC,GAAI,aACJC,EAAG,YACHC,GAAI,cACJC,EAAG,SACHC,GAAI,WACJC,EAAG,UACHC,GAAI,YACJC,EAAG,SACHC,GAAI,WACJC,EAAG,cACHC,GAAI,iBAERC,uBAAwB,WACxBC,QAAS,MACTrC,cAAe,iCACf8E,aAAc,SAAUzB,KAAMlD,UAI1B,OAHa,KAATkD,OACAA,KAAO,GAEM,WAAblD,SACOkD,KAAO,EAAIA,KAAOA,KAAO,GACZ,SAAblD,SACAkD,KACa,cAAblD,SACAkD,MAAQ,GAAKA,KAAOA,KAAO,GACd,aAAblD,SACAkD,KAAO,QADX,GAIXlD,SAAU,SAAUkD,KAAMC,OAAQhD,SAC9B,OAAI+C,KAAO,EACA,SACAA,KAAO,GACP,OACAA,KAAO,GACP,YACAA,KAAO,GACP,WAEA,UAGfd,KAAM,CACFC,IAAK,EACLC,IAAK,KAtFyBC,CAAQ,oBAAQ,4FCKlD,SAAWjD,QAAU,aAIfA,OAAOC,aAAa,MAAO,CACjCC,OAAQ,0FAA0FpE,MAC9F,KAEJqE,YAAa,kDAAkDrE,MAAM,KACrEsE,SAAU,kDAAkDtE,MAAM,KAClEuE,cAAe,iCAAiCvE,MAAM,KACtDwE,YAAa,yBAAyBxE,MAAM,KAC5CgF,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,2BAEVC,SAAU,CACNC,QAAS,gBACTC,QAAS,gBACTC,SAAU,gBACVC,QAAS,oBACTC,SAAU,+BACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,SACRC,KAAM,WACNC,EAAG,gBACHC,GAAI,aACJC,EAAG,aACHC,GAAI,YACJC,EAAG,WACHC,GAAI,UACJC,EAAG,YACHC,GAAI,WACJC,EAAG,YACHC,GAAI,WACJC,EAAG,YACHC,GAAI,YAERC,uBAAwB,uBACxBC,QAAS,SAAUC,QACf,IAAIwB,EAAIxB,OAAS,GAWjB,OAAOA,QAT6B,MAAxBA,OAAS,IAAO,IACd,KACM,IAANwB,EACE,KACM,IAANA,EACE,KACM,IAANA,EACE,KACA,OAGxBvB,KAAM,CACFC,IAAK,EACLC,IAAK,KAhEyBC,CAAQ,oBAAQ,4FCClD,SAAWjD,QAAU,aAIzB,IAAImE,SAAW,CACX,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,IAAK,OAGAnE,OAAOC,aAAa,KAAM,CAC/BC,OAAQ,CACJ0E,OAAQ,qFAAqF9I,MACzF,KAEJ+I,WACI,yEAAyE/I,MACrE,MAGZqE,YAAa,kDAAkDrE,MAAM,KACrEsE,SAAU,yDAAyDtE,MAC/D,KAEJuE,cAAe,8BAA8BvE,MAAM,KACnDwE,YAAa,uBAAuBxE,MAAM,KAC1CgF,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,2BAEVC,SAAU,CACNC,QAAS,mBACTC,QAAS,mBACTE,QAAS,mBACTD,SAAU,kCACVE,SAAU,oCACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,WACRC,KAAM,SACNC,EAAG,eACHE,EAAG,YACHC,GAAI,YACJC,EAAG,UACHC,GAAI,UACJC,EAAG,SACHC,GAAI,SACJC,EAAG,SACHC,GAAI,SACJC,EAAG,SACHC,GAAI,UAERnC,cAAe,qBACf8E,aAAc,SAAUzB,KAAMlD,UAI1B,OAHa,KAATkD,OACAA,KAAO,GAEM,QAAblD,SACOkD,KAAO,EAAIA,KAAOA,KAAO,GACZ,SAAblD,SACAkD,KACa,QAAblD,SACAkD,MAAQ,GAAKA,KAAOA,KAAO,GACd,UAAblD,SACAkD,KAAO,QADX,GAIXlD,SAAU,SAAUkD,KAAMC,OAAQhD,SAC9B,OAAI+C,KAAO,EACA,MACAA,KAAO,GACP,OACAA,KAAO,GACP,MACAA,KAAO,GACP,QAEA,OAGfjB,uBAAwB,kBACxBC,QAAS,SAAUC,QACf,IAAIuB,EAAIvB,OAAS,GACbwB,EAAIxB,QAAU,IAAM,IAAM,KAC9B,OAAOA,QAAUsB,SAAStB,SAAWsB,SAASC,IAAMD,SAASE,KAEjEvB,KAAM,CACFC,IAAK,EACLC,IAAK,KAnHyBC,CAAQ,oBAAQ,4FCGlD,SAAWjD,QAAU,aAIhBA,OAAOC,aAAa,KAAM,CAC/BC,OAAQ,oGAAoGpE,MACxG,KAEJqE,YACI,iEAAiErE,MAC7D,KAERyJ,kBAAkB,EAClBnF,SAAU,iDAAiDtE,MAAM,KACjEuE,cAAe,8CAA8CvE,MAAM,KACnEwE,YAAa,yBAAyBxE,MAAM,KAC5C6H,oBAAoB,EACpB7C,eAAgB,CACZC,GAAI,OACJC,IAAK,UACLC,EAAG,aACHC,GAAI,cACJC,IAAK,wBACLC,KAAM,oCAEVb,cAAe,wBACfC,KAAM,SAAUC,OACZ,MAAiB,eAAVA,OAEXC,SAAU,SAAUkD,KAAMC,OAAQhD,SAC9B,OAAI+C,KAAO,GACA,aAEA,cAGfvC,SAAU,CACNC,QAAS,mBACTC,QAAS,qBACTC,SAAU,qBACVC,QAAS,wBACTC,SAAU,6BACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,SACRC,KAAM,YACNC,EAAG,eACHC,GAAI,YACJC,EAAG,SACHC,GAAI,UACJC,EAAG,YACHC,GAAI,aACJC,EAAG,QACHC,GAAI,SACJ2C,EAAG,YACHC,GAAI,aACJ3C,EAAG,UACHC,GAAI,WACJC,EAAG,OACHC,GAAI,WA/D0BO,CAAQ,oBAAQ,4FCGlD,SAAWjD,QAAU,aAIzB,IAAImE,SAAW,CACX,EAAG,QACH,EAAG,QACH,EAAG,QACH,GAAI,QACJ,GAAI,QACJ,EAAG,OACH,EAAG,OACH,GAAI,OACJ,GAAI,OACJ,EAAG,QACH,EAAG,QACH,IAAK,QACL,EAAG,OACH,EAAG,QACH,GAAI,QACJ,GAAI,QACJ,GAAI,QACJ,GAAI,SAGCnE,OAAOC,aAAa,KAAM,CAC/BC,OAAQ,+EAA+EpE,MACnF,KAEJqE,YAAa,kDAAkDrE,MAAM,KACrEsE,SAAU,wDAAwDtE,MAC9D,KAEJuE,cAAe,8BAA8BvE,MAAM,KACnDwE,YAAa,uBAAuBxE,MAAM,KAC1CgF,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,2BAEVC,SAAU,CACNC,QAAS,mBACTC,QAAS,mBACTC,SAAU,2BACVC,QAAS,YACTC,SAAU,0BACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,SACRC,KAAM,QACNC,EAAG,iBACHE,EAAG,YACHC,GAAI,WACJC,EAAG,YACHC,GAAI,WACJC,EAAG,UACHC,GAAI,SACJC,EAAG,SACHC,GAAI,QACJC,EAAG,UACHC,GAAI,UAERE,QAAS,SAAUC,OAAQmC,QACvB,OAAQA,QACJ,IAAK,IACL,IAAK,IACL,IAAK,KACL,IAAK,KACD,OAAOnC,OACX,QACI,GAAe,IAAXA,OAEA,OAAOA,OAAS,QAEpB,IAAIuB,EAAIvB,OAAS,GACbwB,EAAKxB,OAAS,IAAOuB,EACrBE,EAAIzB,QAAU,IAAM,IAAM,KAC9B,OAAOA,QAAUsB,SAASC,IAAMD,SAASE,IAAMF,SAASG,MAGpExB,KAAM,CACFC,IAAK,EACLC,IAAK,KAzFyBC,CAAQ,oBAAQ,4FCGlD,SAAWjD,QAAU,aAIdA,OAAOC,aAAa,QAAS,CACpCC,OAAQ,0FAA0FpE,MAC9F,KAEJqE,YAAa,kDAAkDrE,MAAM,KACrEsE,SAAU,yDAAyDtE,MAC/D,KAEJuE,cAAe,8BAA8BvE,MAAM,KACnDwE,YAAa,wBAAwBxE,MAAM,KAC3CgF,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,YACHC,GAAI,eACJC,IAAK,qBACLC,KAAM,6BAEVC,SAAU,CACNC,QAAS,oBACTC,QAAS,gBACTC,SAAU,0BACVC,QAAS,eACTC,SAAU,4BACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,gBACRC,KAAM,mBACNC,EAAG,gBACHC,GAAI,aACJC,EAAG,eACHC,GAAI,YACJC,EAAG,aACHC,GAAI,UACJC,EAAG,aACHC,GAAI,UACJC,EAAG,cACHC,GAAI,WACJC,EAAG,aACHC,GAAI,WAERC,uBAAwB,UACxBC,QAAS,SAAUC,QACf,OAAOA,QAEXC,KAAM,CACFC,IAAK,EACLC,IAAK,KAvDyBC,CAAQ,oBAAQ,4FCGlD,SAAWjD,QAAU,aAIzB,IAAI6K,aAAe,iDAAiD/O,MAAM,KAE1E,SAASgP,gBAAgB7D,QACrB,IAAI8D,KAAO9D,OASX,OARA8D,MAC+B,IAA3B9D,OAAOQ,QAAQ,OACTsD,KAAKC,MAAM,GAAI,GAAK,OACO,IAA3B/D,OAAOQ,QAAQ,OACbsD,KAAKC,MAAM,GAAI,GAAK,OACO,IAA3B/D,OAAOQ,QAAQ,OACbsD,KAAKC,MAAM,GAAI,GAAK,MACpBD,KAAO,OAIzB,SAASE,cAAchE,QACnB,IAAI8D,KAAO9D,OASX,OARA8D,MAC+B,IAA3B9D,OAAOQ,QAAQ,OACTsD,KAAKC,MAAM,GAAI,GAAK,OACO,IAA3B/D,OAAOQ,QAAQ,OACbsD,KAAKC,MAAM,GAAI,GAAK,OACO,IAA3B/D,OAAOQ,QAAQ,OACbsD,KAAKC,MAAM,GAAI,GAAK,MACpBD,KAAO,OAIzB,SAASnE,UAAU/D,OAAQU,cAAeC,OAAQC,UAC9C,IAAIyH,WAAaC,aAAatI,QAC9B,OAAQW,QACJ,IAAK,KACD,OAAO0H,WAAa,OACxB,IAAK,KACD,OAAOA,WAAa,OACxB,IAAK,KACD,OAAOA,WAAa,OACxB,IAAK,KACD,OAAOA,WAAa,OACxB,IAAK,KACD,OAAOA,WAAa,OACxB,IAAK,KACD,OAAOA,WAAa,QAIhC,SAASC,aAAatI,QAClB,IAAIuI,QAAUC,KAAKC,MAAOzI,OAAS,IAAQ,KACvC0I,IAAMF,KAAKC,MAAOzI,OAAS,IAAO,IAClC2I,IAAM3I,OAAS,GACf2B,KAAO,GAUX,OATI4G,QAAU,IACV5G,MAAQqG,aAAaO,SAAW,SAEhCG,IAAM,IACN/G,OAAkB,KAATA,KAAc,IAAM,IAAMqG,aAAaU,KAAO,OAEvDC,IAAM,IACNhH,OAAkB,KAATA,KAAc,IAAM,IAAMqG,aAAaW,MAEpC,KAAThH,KAAc,OAASA,KAGxBxE,OAAOC,aAAa,MAAO,CACjCC,OAAQ,kMAAkMpE,MACtM,KAEJqE,YACI,0HAA0HrE,MACtH,KAERyJ,kBAAkB,EAClBnF,SAAU,2DAA2DtE,MACjE,KAEJuE,cACI,2DAA2DvE,MAAM,KACrEwE,YACI,2DAA2DxE,MAAM,KACrEgF,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,2BAEVC,SAAU,CACNC,QAAS,cACTC,QAAS,cACTC,SAAU,MACVC,QAAS,cACTC,SAAU,MACVC,SAAU,KAEdC,aAAc,CACVC,OAAQiJ,gBACRhJ,KAAMmJ,cACNlJ,EAAG,UACHC,GAAI4E,UACJ3E,EAAG,UACHC,GAAI0E,UACJzE,EAAG,UACHC,GAAIwE,UACJvE,EAAG,UACHC,GAAIsE,UACJrE,EAAG,UACHC,GAAIoE,UACJnE,EAAG,UACHC,GAAIkE,WAERjE,uBAAwB,YACxBC,QAAS,MACTE,KAAM,CACFC,IAAK,EACLC,IAAK,KA1HyBC,CAAQ,oBAAQ,4FCIlD,SAAWjD,QAAU,aAIzB,IAAImE,SAAW,CACX,EAAG,QACH,EAAG,QACH,EAAG,QACH,GAAI,QACJ,GAAI,QACJ,EAAG,OACH,EAAG,OACH,GAAI,OACJ,GAAI,OACJ,EAAG,QACH,EAAG,QACH,IAAK,QACL,EAAG,OACH,EAAG,QACH,GAAI,QACJ,GAAI,QACJ,GAAI,QACJ,GAAI,SAGCnE,OAAOC,aAAa,KAAM,CAC/BC,OAAQ,6EAA6EpE,MACjF,KAEJqE,YAAa,kDAAkDrE,MAAM,KACrEsE,SAAU,wDAAwDtE,MAC9D,KAEJuE,cAAe,8BAA8BvE,MAAM,KACnDwE,YAAa,uBAAuBxE,MAAM,KAC1C4E,SAAU,SAAUC,MAAOC,QAASC,SAChC,OAAIF,MAAQ,GACDE,QAAU,KAAO,KAEjBA,QAAU,KAAO,MAGhCN,cAAe,cACfC,KAAM,SAAUC,OACZ,MAAiB,OAAVA,OAA4B,OAAVA,OAE7BK,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,2BAEVC,SAAU,CACNC,QAAS,kBACTC,QAAS,kBACTC,SAAU,2BACVC,QAAS,WACTC,SAAU,yBACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,WACRC,KAAM,UACNC,EAAG,gBACHC,GAAI,YACJC,EAAG,aACHC,GAAI,YACJC,EAAG,WACHC,GAAI,UACJC,EAAG,UACHC,GAAI,SACJ2C,EAAG,YACHC,GAAI,WACJ3C,EAAG,SACHC,GAAI,QACJC,EAAG,UACHC,GAAI,UAERE,QAAS,SAAUC,OAAQmC,QACvB,OAAQA,QACJ,IAAK,IACL,IAAK,IACL,IAAK,KACL,IAAK,KACD,OAAOnC,OACX,QACI,GAAe,IAAXA,OAEA,OAAOA,OAAS,QAEpB,IAAIuB,EAAIvB,OAAS,GACbwB,EAAKxB,OAAS,IAAOuB,EACrBE,EAAIzB,QAAU,IAAM,IAAM,KAC9B,OAAOA,QAAUsB,SAASC,IAAMD,SAASE,IAAMF,SAASG,MAGpExB,KAAM,CACFC,IAAK,EACLC,IAAK,KAvGyBC,CAAQ,oBAAQ,4FCGlD,SAAWjD,QAAU,aAiEzB,SAAS2G,oBAAoB9D,OAAQU,cAAe9I,IAAKgJ,UACrD,IAAImB,OAAS,CACT7C,EAAG,CAAC,kBAAmB,mBACvBC,GAAI,CAACa,OAAS,WAAiBA,OAAS,YACxCZ,EAAG,CAAC,UAAW,cACfC,GAAI,CAACW,OAAS,SAAeA,OAAS,UACtCV,EAAG,CAAC,UAAW,eACfC,GAAI,CAACS,OAAS,SAAeA,OAAS,UACtCR,EAAG,CAAC,UAAW,eACfC,GAAI,CAACO,OAAS,SAAeA,OAAS,UACtCN,EAAG,CAAC,SAAU,aACdC,GAAI,CAACK,OAAS,SAAeA,OAAS,UACtCJ,EAAG,CAAC,QAAS,YACbC,GAAI,CAACG,OAAS,OAAaA,OAAS,SAExC,OAAOY,UAEDF,cADAqB,OAAOnK,KAAK,GAGVmK,OAAOnK,KAAK,GA9EduF,OAAOC,aAAa,MAAO,CACjCC,OAAQ,sFAAsFpE,MAC1F,KAEJqE,YAAa,kDAAkDrE,MAAM,KACrEsE,SAAU,sDAAsDtE,MAAM,KACtEuE,cAAe,8BAA8BvE,MAAM,KACnDwE,YAAa,uBAAuBxE,MAAM,KAC1CgF,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,wBACJC,IAAK,8BACLC,KAAM,0CAEVb,cAAe,aACfC,KAAM,SAAUC,OACZ,MAAO,QAAUA,MAAMjH,eAE3BkH,SAAU,SAAUC,MAAOC,QAASC,SAChC,OAAIF,MAAQ,GACDE,QAAU,MAAQ,MAElBA,QAAU,MAAQ,OAGjCQ,SAAU,CACNC,QAAS,cACTC,QAAS,cACTC,SAAU,cACVC,QAAS,eACTC,SAAU,8BACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,YACRC,KAAM,OACNC,EAAG4E,oBACH3E,GAAI2E,oBACJ1E,EAAG0E,oBACHzE,GAAIyE,oBACJxE,EAAGwE,oBACHvE,GAAIuE,oBACJtE,EAAGsE,oBACHrE,GAAIqE,oBACJpE,EAAGoE,oBACHnE,GAAImE,oBACJlE,EAAGkE,oBACHjE,GAAIiE,qBAERhE,uBAAwB,YACxBC,QAAS,MACTE,KAAM,CACFC,IAAK,EACLC,IAAK,KAhEyBC,CAAQ,oBAAQ,2FCElD,SAAWjD,QAAU,aAIXA,OAAOC,aAAa,WAAY,CAC1CC,OAAQ,wFAAwFpE,MAC5F,KAEJqE,YACI,wFAAwFrE,MACpF,KAERsE,SAAU,kDAAkDtE,MAAM,KAClEuE,cAAe,kDAAkDvE,MAAM,KACvEwE,YAAa,kDAAkDxE,MAAM,KACrEgF,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,0BAEVC,SAAU,CACNC,QAAS,eACTC,QAAS,cACTC,SAAU,cACVC,QAAS,gBACTC,SAAU,cACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,iBACRC,KAAM,SACNC,EAAG,OACHC,GAAI,UACJC,EAAG,QACHC,GAAI,WACJC,EAAG,OACHC,GAAI,cACJC,EAAG,MACHC,GAAI,WACJC,EAAG,QACHC,GAAI,YACJC,EAAG,QACHC,GAAI,aAERI,KAAM,CACFC,IAAK,EACLC,IAAK,MApDyBC,CAAQ,oBAAQ,4FCGlD,SAAWjD,QAAU,aAIfA,OAAOC,aAAa,MAAO,CACjCC,OAAQ,kFAAkFpE,MACtF,KAEJqE,YACI,kFAAkFrE,MAC9E,KAERsE,SAAU,kDAAkDtE,MAAM,KAClEuE,cAAe,kDAAkDvE,MAAM,KACvEwE,YAAa,kDAAkDxE,MAAM,KACrEgF,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,0BAEVC,SAAU,CACNC,QAAS,cACTC,QAAS,cACTC,SAAU,cACVC,QAAS,eACTC,SAAU,cACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,gBACRC,KAAM,SACNC,EAAG,OACHC,GAAI,UACJC,EAAG,QACHC,GAAI,WACJC,EAAG,OACHC,GAAI,cACJC,EAAG,MACHC,GAAI,WACJC,EAAG,QACHC,GAAI,YACJC,EAAG,QACHC,GAAI,aAERI,KAAM,CACFC,IAAK,EACLC,IAAK,MApDyBC,CAAQ,oBAAQ,4FCGlD,SAAWjD,QAAU,aAIdA,OAAOC,aAAa,QAAS,CACpCC,OAAQ,sFAAsFpE,MAC1F,KAEJqE,YACI,sFAAsFrE,MAClF,KAERsE,SAAU,yDAAyDtE,MAC/D,KAEJuE,cAAe,uBAAuBvE,MAAM,KAC5CwE,YAAa,uBAAuBxE,MAAM,KAC1CgF,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,0BACJC,IAAK,iCACLC,KAAM,wCAEVb,cAAe,qDACf8E,aAAc,SAAUzB,KAAMlD,UAI1B,OAHa,KAATkD,OACAA,KAAO,GAGM,eAAblD,UACa,UAAbA,UACa,iBAAbA,SAEOkD,KACa,iBAAblD,UAA4C,QAAbA,SAC/BkD,KAAO,GAEPA,MAAQ,GAAKA,KAAOA,KAAO,IAG1ClD,SAAU,SAAUkD,KAAMC,OAAQhD,SAC9B,IAAI4K,GAAY,IAAP7H,KAAaC,OACtB,OAAI4H,GAAK,IACE,aACAA,GAAK,IACL,QACAA,GAAK,KACL,eACAA,GAAK,KACL,MACAA,GAAK,KACL,eAEA,OAGfpK,SAAU,CACNC,QAAS,mBACTC,QAAS,kBACTC,SAAU,4BACVC,QAAS,eACTC,SAAU,6BACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,WACRC,KAAM,WACNC,EAAG,eACHC,GAAI,YACJC,EAAG,YACHC,GAAI,WACJC,EAAG,YACHC,GAAI,WACJC,EAAG,UACHC,GAAI,SACJC,EAAG,UACHC,GAAI,SACJC,EAAG,UACHC,GAAI,UAGRC,uBAAwB,6BACxBC,QAAS,SAAUC,OAAQmC,QACvB,OAAQA,QACJ,IAAK,IACL,IAAK,IACL,IAAK,MACD,OAAOnC,OAAS,QACpB,IAAK,IACL,IAAK,IACD,OAAOA,OAAS,SACpB,QACI,OAAOA,SAGnBmB,SAAU,SAAUR,QAChB,OAAOA,OAAO9F,QAAQ,KAAM,MAEhCoG,WAAY,SAAUN,QAClB,OAAOA,OAAO9F,QAAQ,KAAM,MAEhCoF,KAAM,CAEFC,IAAK,EACLC,IAAK,KA7GyBC,CAAQ,oBAAQ,4FCIlD,SAAWjD,QAAU,aAIzB,SAASuE,OAAOC,KAAMC,KAClB,IAAIC,MAAQF,KAAK1I,MAAM,KACvB,OAAO2I,IAAM,IAAO,GAAKA,IAAM,KAAQ,GACjCC,MAAM,GACND,IAAM,IAAM,GAAKA,IAAM,IAAM,IAAMA,IAAM,IAAM,IAAMA,IAAM,KAAO,IAChEC,MAAM,GACNA,MAAM,GAElB,SAASC,uBAAuB9B,OAAQU,cAAe9I,KASnD,MAAY,MAARA,IACO8I,cAAgB,UAAY,UACpB,MAAR9I,IACA8I,cAAgB,SAAW,SAE3BV,OAAS,IAAM0B,OAbb,CACTvC,GAAIuB,cAAgB,yBAA2B,yBAC/CrB,GAAIqB,cAAgB,yBAA2B,yBAC/CnB,GAAImB,cAAgB,sBAAwB,sBAC5CjB,GAAI,gBACJE,GAAI,wBACJE,GAAI,kBAOgCjI,MAAOoI,QAGnD,SAAS6I,oBAAoBzJ,EAAG2C,QAC5B,IAAIxE,SAAW,CACPuL,WACI,0DAA0D7P,MACtD,KAER8P,WACI,0DAA0D9P,MACtD,KAER+P,SACI,4DAA4D/P,MACxD,MAKhB,OAAU,IAANmG,EACO7B,SAAqB,WACvB4K,MAAM,EAAG,GACTc,OAAO1L,SAAqB,WAAE4K,MAAM,EAAG,IAE3C/I,EASE7B,SALI,qBAAqBrI,KAAK6M,QAC/B,aACA,sCAAsC7M,KAAK6M,QACzC,WACA,cACkB3C,EAAE8C,OARjB3E,SAAqB,WAUpC,SAAS2L,qBAAqBnQ,KAC1B,OAAO,WACH,OAAOA,IAAM,KAAwB,KAAjBtE,KAAKqJ,QAAiB,IAAM,IAAM,QAIrDX,OAAOC,aAAa,KAAM,CAC/BC,OAAQ,CACJ0E,OAAQ,yFAAyF9I,MAC7F,KAEJ+I,WACI,iGAAiG/I,MAC7F,MAGZqE,YAAa,yDAAyDrE,MAClE,KAEJsE,SAAUsL,oBACVrL,cAAe,uBAAuBvE,MAAM,KAC5CwE,YAAa,uBAAuBxE,MAAM,KAC1CgF,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,iBACJC,IAAK,wBACLC,KAAM,+BAEVC,SAAU,CACNC,QAASyK,qBAAqB,cAC9BxK,QAASwK,qBAAqB,YAC9BtK,QAASsK,qBAAqB,WAC9BvK,SAAUuK,qBAAqB,cAC/BrK,SAAU,WACN,OAAQpK,KAAKyN,OACT,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACD,OAAOgH,qBAAqB,oBAAoB5N,KAAK7G,MACzD,KAAK,EACL,KAAK,EACL,KAAK,EACD,OAAOyU,qBAAqB,qBAAqB5N,KAAK7G,QAGlEqK,SAAU,KAEdC,aAAc,CACVC,OAAQ,QACRC,KAAM,UACNC,EAAG,kBACHC,GAAI2C,uBACJ1C,EAAG0C,uBACHzC,GAAIyC,uBACJxC,EAAG,SACHC,GAAIuC,uBACJtC,EAAG,OACHC,GAAIqC,uBACJpC,EAAG,SACHC,GAAImC,uBACJlC,EAAG,MACHC,GAAIiC,wBAGRpE,cAAe,wBACfC,KAAM,SAAUC,OACZ,MAAO,iBAAiB1I,KAAK0I,QAEjCC,SAAU,SAAUkD,KAAMC,OAAQhD,SAC9B,OAAI+C,KAAO,EACA,OACAA,KAAO,GACP,QACAA,KAAO,GACP,MAEA,UAGfjB,uBAAwB,iBACxBC,QAAS,SAAUC,OAAQmC,QACvB,OAAQA,QACJ,IAAK,IACL,IAAK,IACL,IAAK,MACL,IAAK,IACL,IAAK,IACD,OAAOnC,OAAS,KACpB,IAAK,IACD,OAAOA,OAAS,MACpB,QACI,OAAOA,SAGnBC,KAAM,CACFC,IAAK,EACLC,IAAK,KApKyBC,CAAQ,oBAAQ,4FCGlD,SAAWjD,QAAU,aAIzB,IAAIE,OAAS,CACL,QACA,QACA,OACA,QACA,MACA,MACA,SACA,OACA,QACA,SACA,QACA,SAEJ0K,KAAO,CAAC,QAAS,MAAO,OAAQ,MAAO,SAAU,OAAQ,QAEpD5K,OAAOC,aAAa,KAAM,CAC/BC,OACAC,YAAaD,OACbE,SAAUwK,KACVvK,cAAeuK,KACftK,YAAasK,KACb9J,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,2BAEVb,cAAe,UACfC,KAAM,SAAUC,OACZ,MAAO,QAAUA,OAErBC,SAAU,SAAUkD,KAAMC,OAAQhD,SAC9B,OAAI+C,KAAO,GACA,MAEJ,OAEXvC,SAAU,CACNC,QAAS,eACTC,QAAS,eACTC,SAAU,iBACVC,QAAS,sBACTC,SAAU,yBACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,SACRC,KAAM,SACNC,EAAG,YACHC,GAAI,WACJC,EAAG,UACHC,GAAI,SACJC,EAAG,YACHC,GAAI,WACJC,EAAG,SACHC,GAAI,QACJC,EAAG,UACHC,GAAI,SACJC,EAAG,UACHC,GAAI,UAERsB,SAAU,SAAUR,QAChB,OAAOA,OAAO9F,QAAQ,KAAM,MAEhCoG,WAAY,SAAUN,QAClB,OAAOA,OAAO9F,QAAQ,KAAM,MAEhCoF,KAAM,CACFC,IAAK,EACLC,IAAK,KA/EyBC,CAAQ,oBAAQ,2FCElD,SAAWjD,QAAU,aAIZA,OAAOC,aAAa,UAAW,CACxCC,OAAQ,6EAA6EpE,MACjF,KAEJqE,YAAa,oDAAoDrE,MAAM,KACvEsE,SACI,+DAA+DtE,MAC3D,KAERuE,cAAe,kCAAkCvE,MAAM,KACvDwE,YAAa,yBAAyBxE,MAAM,KAC5CgF,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,2BAEVC,SAAU,CACNC,QAAS,uBACTC,QAAS,mBACTC,SAAU,2BACVC,QAAS,uBACTC,SAAU,oCACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,kBACRC,KAAM,qBACNC,EAAG,SACHC,GAAI,YACJC,EAAG,aACHC,GAAI,YACJC,EAAG,WACHC,GAAI,UACJC,EAAG,UACHC,GAAI,SACJC,EAAG,SACHC,GAAI,QACJC,EAAG,UACHC,GAAI,UAERI,KAAM,CACFC,IAAK,EACLC,IAAK,KApDyBC,CAAQ,oBAAQ,4FCGlD,SAAWjD,QAAU,aAIhBA,OAAOC,aAAa,KAAM,CAC/BC,OAAQ,yEAAyEpE,MAC7E,KAEJqE,YAAa,kDAAkDrE,MAAM,KACrEsE,SAAU,uDAAuDtE,MAAM,KACvEuE,cAAe,8BAA8BvE,MAAM,KACnDwE,YAAa,uBAAuBxE,MAAM,KAC1CgF,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,2BAEVC,SAAU,CACNC,QAAS,uBACTC,QAAS,mBACTC,SAAU,2BACVC,QAAS,sBACTC,SAAU,mCACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,gBACRC,KAAM,oBACNC,EAAG,SACHC,GAAI,YACJC,EAAG,aACHC,GAAI,YACJC,EAAG,WACHC,GAAI,UACJC,EAAG,UACHC,GAAI,SACJC,EAAG,SACHC,GAAI,QACJC,EAAG,UACHC,GAAI,UAERI,KAAM,CACFC,IAAK,EACLC,IAAK,KAjDyBC,CAAQ,oBAAQ,4FCIlD,SAAWjD,QAAU,aAIhBA,OAAOC,aAAa,KAAM,CAC/BC,OAAQ,qGAAqGpE,MACzG,KAEJqE,YACI,sFAAsFrE,MAClF,KAERyJ,kBAAkB,EAClBnF,SAAU,yDAAyDtE,MAC/D,KAEJuE,cAAe,uBAAuBvE,MAAM,KAC5CwE,YAAa,uBAAuBxE,MAAM,KAC1C6H,oBAAoB,EACpBpD,cAAe,SACfC,KAAM,SAAUC,OACZ,MAAO,QAAQ1I,KAAK0I,QAExBC,SAAU,SAAUC,MAAOC,QAASC,SAChC,OAAIF,MAAQ,GACDE,QAAU,KAAO,KAEjBA,QAAU,KAAO,MAGhCC,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,oBACJC,IAAK,0BACLC,KAAM,gCACNvD,EAAG,YACHiJ,GAAI,aACJC,IAAK,mBACLC,KAAM,yBAEV3F,SAAU,CACNC,QAAS,mBACTC,QAAS,oBACTC,SAAU,yBACVC,QAAS,mBACTC,SAAU,2BACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,SACRC,KAAM,WACNC,EAAG,WACHC,GAAI,UACJC,EAAG,WACHC,GAAI,UACJC,EAAG,UACHC,GAAI,SACJC,EAAG,WACHC,GAAI,UACJ2C,EAAG,WACHC,GAAI,UACJ3C,EAAG,YACHC,GAAI,WACJC,EAAG,UACHC,GAAI,UAERC,uBAAwB,UACxBC,QAAS,SAAUC,QACf,OAAOA,QAEXC,KAAM,CACFC,IAAK,EACLC,IAAK,KA7EyBC,CAAQ,oBAAQ,4FCElD,SAAWjD,QAAU,aAIXA,OAAOC,aAAa,WAAY,CAC1CC,OAAQ,6GAA6GpE,MACjH,KAEJqE,YACI,8DAA8DrE,MAC1D,KAERyJ,kBAAkB,EAClBnF,SACI,yEAAyEtE,MACrE,KAERuE,cAAe,qCAAqCvE,MAAM,KAC1DwE,YAAa,4BAA4BxE,MAAM,KAC/C6H,oBAAoB,EACpB7C,eAAgB,CACZC,GAAI,QACJE,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,2BAEVC,SAAU,CACNC,QAAS,kBACTC,QAAS,sBACTC,SAAU,eACVC,QAAS,uBACTC,SAAU,uBACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,SACRC,KAAM,UACNC,EAAG,mBACHC,GAAI,eACJC,EAAG,aACHC,GAAI,eACJC,EAAG,YACHC,GAAI,YACJC,EAAG,SACHC,GAAI,WACJC,EAAG,YACHC,GAAI,cACJC,EAAG,UACHC,GAAI,aAERC,uBAAwB,uBACxBC,QAAS,SAAUC,QACf,IAAIwB,EAAIxB,OAAS,GAWjB,OAAOA,QAT6B,MAAxBA,OAAS,IAAO,IACd,KACM,IAANwB,EACE,KACM,IAANA,EACE,KACM,IAANA,EACE,KACA,OAGxBvB,KAAM,CACFC,IAAK,EACLC,IAAK,KAvEyBC,CAAQ,oBAAQ,4FCGlD,SAAWjD,QAAU,aAIhBA,OAAOC,aAAa,KAAM,CAC/BC,OAAQ,0FAA0FpE,MAC9F,KAEJqE,YAAa,gEAAgErE,MAAM,KACnFsE,SAAU,uDAAuDtE,MAAM,KACvEuE,cAAe,sCAAsCvE,MAAM,KAC3DwE,YAAa,2BAA2BxE,MAAM,KAC9CgF,eAAgB,CACZC,GAAI,SACJC,IAAK,YACLC,EAAG,aACHC,GAAI,cACJC,IAAK,qBACLC,KAAM,4BAEVC,SAAU,CACNC,QAAS,gBACTC,QAAS,eACTC,SAAU,8BACVC,QAAS,eACTC,SAAU,6BACVC,SAAU,KAEdC,aAAc,CACVC,OAAQ,SACRC,KAAM,WACNC,EAAG,oBACHC,GAAI,WACJC,EAAG,cACHC,GAAI,aACJC,EAAG,cACHC,GAAI,aACJC,EAAG,WACHC,GAAI,UACJC,EAAG,WACHC,GAAI,UACJC,EAAG,YACHC,GAAI,YAERC,uBAAwB,gBACxBC,QAAS,UACTE,KAAM,CACFC,IAAK,EACLC,IAAK,KAnDyBC,CAAQ,oBAAQ,4FCKlD,SAAWjD,QAAU,aAIdA,OAAOC,aAAa,QAAS,CACpCC,OAAQ,wCAAwCpE,MAC5C,KAEJqE,YAAa,yCAAyCrE,MAClD,KAEJsE,SAAU,8BAA8BtE,MAAM,KAC9CuE,cAAe,uBAAuBvE,MAAM,KAC5CwE,YAAa,gBAAgBxE,MAAM,KACnCgF,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,YACJC,IAAK,kBACLC,KAAM,sBACNvD,EAAG,WACHiJ,GAAI,YACJC,IAAK,kBACLC,KAAM,uBAEVzG,cAAe,oBACf8E,aAAc,SAAUzB,KAAMlD,UAI1B,OAHa,KAATkD,OACAA,KAAO,GAEM,OAAblD,UAAkC,OAAbA,UAAkC,OAAbA,SACnCkD,KACa,OAAblD,UAAkC,OAAbA,SACrBkD,KAAO,GAGPA,MAAQ,GAAKA,KAAOA,KAAO,IAG1ClD,SAAU,SAAUkD,KAAMC,OAAQhD,SAC9B,IAAI4K,GAAY,IAAP7H,KAAaC,OACtB,OAAI4H,GAAK,IACE,KACAA,GAAK,IACL,KACAA,GAAK,KACL,KACAA,GAAK,KACL,KACAA,GAAK,KACL,KAEA,MAGfpK,SAAU,CACNC,QAAS,SACTC,QAAS,SACTC,SAAU,SAAU0H,KAChB,OAAIA,IAAIpG,SAAWxL,KAAKwL,OACb,WAEA,YAGfrB,QAAS,SACTC,SAAU,SAAUwH,KAChB,OAAI5R,KAAKwL,SAAWoG,IAAIpG,OACb,WAEA,YAGfnB,SAAU,KAEdgB,uBAAwB,iBACxBC,QAAS,SAAUC,OAAQmC,QACvB,OAAQA,QACJ,IAAK,IACL,IAAK,IACL,IAAK,MACD,OAAOnC,OAAS,IACpB,IAAK,IACD,OAAOA,OAAS,IACpB,IAAK,IACL,IAAK,IACD,OAAOA,OAAS,IACpB,QACI,OAAOA,SAGnBjB,aAAc,CACVC,OAAQ,MACRC,KAAM,MACNC,EAAG,KACHC,GAAI,OACJC,EAAG,OACHC,GAAI,QACJC,EAAG,OACHC,GAAI,QACJC,EAAG,MACHC,GAAI,OACJ2C,EAAG,MACHC,GAAI,OACJ3C,EAAG,OACHC,GAAI,QACJC,EAAG,MACHC,GAAI,QAERI,KAAM,CAEFC,IAAK,EACLC,IAAK,KApHyBC,CAAQ,oBAAQ,4FCIlD,SAAWjD,QAAU,aAIdA,OAAOC,aAAa,QAAS,CACpCC,OAAQ,wCAAwCpE,MAC5C,KAEJqE,YAAa,yCAAyCrE,MAClD,KAEJsE,SAAU,8BAA8BtE,MAAM,KAC9CuE,cAAe,uBAAuBvE,MAAM,KAC5CwE,YAAa,gBAAgBxE,MAAM,KACnCgF,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,YACJC,IAAK,kBACLC,KAAM,sBACNvD,EAAG,WACHiJ,GAAI,YACJC,IAAK,kBACLC,KAAM,uBAEVzG,cAAe,oBACf8E,aAAc,SAAUzB,KAAMlD,UAI1B,OAHa,KAATkD,OACAA,KAAO,GAEM,OAAblD,UAAkC,OAAbA,UAAkC,OAAbA,SACnCkD,KACa,OAAblD,SACAkD,MAAQ,GAAKA,KAAOA,KAAO,GACd,OAAblD,UAAkC,OAAbA,SACrBkD,KAAO,QADX,GAIXlD,SAAU,SAAUkD,KAAMC,OAAQhD,SAC9B,IAAI4K,GAAY,IAAP7H,KAAaC,OACtB,OAAI4H,GAAK,IACE,KACAA,GAAK,IACL,KACAA,GAAK,KACL,KACO,OAAPA,GACA,KACAA,GAAK,KACL,KAEA,MAGfpK,SAAU,CACNC,QAAS,SACTC,QAAS,SACTC,SAAU,YACVC,QAAS,SACTC,SAAU,YACVC,SAAU,KAEdgB,uBAAwB,iBACxBC,QAAS,SAAUC,OAAQmC,QACvB,OAAQA,QACJ,IAAK,IACL,IAAK,IACL,IAAK,MACD,OAAOnC,OAAS,IACpB,IAAK,IACD,OAAOA,OAAS,IACpB,IAAK,IACL,IAAK,IACD,OAAOA,OAAS,IACpB,QACI,OAAOA,SAGnBjB,aAAc,CACVC,OAAQ,MACRC,KAAM,MACNC,EAAG,KACHC,GAAI,OACJC,EAAG,OACHC,GAAI,QACJC,EAAG,OACHC,GAAI,QACJC,EAAG,MACHC,GAAI,OACJC,EAAG,OACHC,GAAI,QACJC,EAAG,MACHC,GAAI,UAhG0BO,CAAQ,oBAAQ,4FCElD,SAAWjD,QAAU,aAIdA,OAAOC,aAAa,QAAS,CACpCC,OAAQ,wCAAwCpE,MAC5C,KAEJqE,YAAa,yCAAyCrE,MAClD,KAEJsE,SAAU,8BAA8BtE,MAAM,KAC9CuE,cAAe,uBAAuBvE,MAAM,KAC5CwE,YAAa,gBAAgBxE,MAAM,KACnCgF,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,YACJC,IAAK,kBACLC,KAAM,sBACNvD,EAAG,WACHiJ,GAAI,YACJC,IAAK,kBACLC,KAAM,uBAEVzG,cAAe,oBACf8E,aAAc,SAAUzB,KAAMlD,UAI1B,OAHa,KAATkD,OACAA,KAAO,GAEM,OAAblD,UAAkC,OAAbA,UAAkC,OAAbA,SACnCkD,KACa,OAAblD,SACAkD,MAAQ,GAAKA,KAAOA,KAAO,GACd,OAAblD,UAAkC,OAAbA,SACrBkD,KAAO,QADX,GAIXlD,SAAU,SAAUkD,KAAMC,OAAQhD,SAC9B,IAAI4K,GAAY,IAAP7H,KAAaC,OACtB,OAAI4H,GAAK,IACE,KACAA,GAAK,IACL,KACAA,GAAK,KACL,KACAA,GAAK,KACL,KACAA,GAAK,KACL,KAEA,MAGfpK,SAAU,CACNC,QAAS,UACTC,QAAS,UACTC,SAAU,aACVC,QAAS,UACTC,SAAU,aACVC,SAAU,KAEdgB,uBAAwB,iBACxBC,QAAS,SAAUC,OAAQmC,QACvB,OAAQA,QACJ,IAAK,IACL,IAAK,IACL,IAAK,MACD,OAAOnC,OAAS,IACpB,IAAK,IACD,OAAOA,OAAS,IACpB,IAAK,IACL,IAAK,IACD,OAAOA,OAAS,IACpB,QACI,OAAOA,SAGnBjB,aAAc,CACVC,OAAQ,MACRC,KAAM,MACNC,EAAG,KACHC,GAAI,OACJC,EAAG,OACHC,GAAI,QACJC,EAAG,OACHC,GAAI,QACJC,EAAG,MACHC,GAAI,OACJC,EAAG,OACHC,GAAI,QACJC,EAAG,MACHC,GAAI,UAhG0BO,CAAQ,oBAAQ,4FCElD,SAAWjD,QAAU,aAIdA,OAAOC,aAAa,QAAS,CACpCC,OAAQ,wCAAwCpE,MAC5C,KAEJqE,YAAa,yCAAyCrE,MAClD,KAEJsE,SAAU,8BAA8BtE,MAAM,KAC9CuE,cAAe,uBAAuBvE,MAAM,KAC5CwE,YAAa,gBAAgBxE,MAAM,KACnCgF,eAAgB,CACZC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,YACJC,IAAK,kBACLC,KAAM,sBACNvD,EAAG,WACHiJ,GAAI,YACJC,IAAK,kBACLC,KAAM,uBAEVzG,cAAe,oBACf8E,aAAc,SAAUzB,KAAMlD,UAI1B,OAHa,KAATkD,OACAA,KAAO,GAEM,OAAblD,UAAkC,OAAbA,UAAkC,OAAbA,SACnCkD,KACa,OAAblD,SACAkD,MAAQ,GAAKA,KAAOA,KAAO,GACd,OAAblD,UAAkC,OAAbA,SACrBkD,KAAO,QADX,GAIXlD,SAAU,SAAUkD,KAAMC,OAAQhD,SAC9B,IAAI4K,GAAY,IAAP7H,KAAaC,OACtB,OAAI4H,GAAK,IACE,KACAA,GAAK,IACL,KACAA,GAAK,KACL,KACAA,GAAK,KACL,KACAA,GAAK,KACL,KAEA,MAGfpK,SAAU,CACNC,QAAS,UACTC,QAAS,UACTC,SAAU,aACVC,QAAS,UACTC,SAAU,aACVC,SAAU,KAEdgB,uBAAwB,iBACxBC,QAAS,SAAUC,OAAQmC,QACvB,OAAQA,QACJ,IAAK,IACL,IAAK,IACL,IAAK,MACD,OAAOnC,OAAS,IACpB,IAAK,IACD,OAAOA,OAAS,IACpB,IAAK,IACL,IAAK,IACD,OAAOA,OAAS,IACpB,QACI,OAAOA,SAGnBjB,aAAc,CACVC,OAAQ,MACRC,KAAM,MACNC,EAAG,KACHC,GAAI,OACJC,EAAG,OACHC,GAAI,QACJC,EAAG,OACHC,GAAI,QACJC,EAAG,MACHC,GAAI,OACJC,EAAG,OACHC,GAAI,QACJC,EAAG,MACHC,GAAI,UAhG0BO,CAAQ,oBAAQ,oECP1D,IAAI3F,IAAM,CACT,OAAQ,KACR,UAAW,KACX,OAAQ,IACR,UAAW,KACX,aAAc,KACd,UAAW,KACX,aAAc,KACd,UAAW,KACX,aAAc,KACd,UAAW,KACX,aAAc,KACd,UAAW,IACX,aAAc,IACd,UAAW,KACX,aAAc,KACd,UAAW,KACX,aAAc,KACd,UAAW,IACX,OAAQ,KACR,UAAW,KACX,OAAQ,KACR,UAAW,KACX,OAAQ,KACR,UAAW,KACX,OAAQ,KACR,UAAW,KACX,OAAQ,KACR,UAAW,KACX,aAAc,KACd,UAAW,KACX,OAAQ,KACR,UAAW,KACX,OAAQ,KACR,UAAW,KACX,OAAQ,IACR,UAAW,IACX,OAAQ,KACR,UAAW,KACX,OAAQ,KACR,UAAW,KACX,OAAQ,IACR,UAAW,IACX,OAAQ,KACR,UAAW,KACX,OAAQ,KACR,UAAW,KACX,OAAQ,KACR,UAAW,IACX,aAAc,IACd,UAAW,IACX,aAAc,IACd,UAAW,KACX,OAAQ,KACR,UAAW,KACX,OAAQ,IACR,UAAW,IACX,UAAW,KACX,aAAc,KACd,UAAW,KACX,aAAc,KACd,UAAW,KACX,aAAc,KACd,UAAW,KACX,aAAc,KACd,UAAW,KACX,aAAc,KACd,UAAW,KACX,aAAc,KACd,UAAW,KACX,aAAc,KACd,UAAW,KACX,aAAc,KACd,OAAQ,KACR,UAAW,KACX,OAAQ,KACR,UAAW,KACX,aAAc,KACd,UAAW,KACX,aAAc,KACd,UAAW,KACX,aAAc,KACd,UAAW,KACX,OAAQ,KACR,UAAW,KACX,OAAQ,KACR,UAAW,KACX,OAAQ,KACR,UAAW,KACX,OAAQ,KACR,UAAW,KACX,QAAS,KACT,WAAY,KACZ,OAAQ,KACR,UAAW,KACX,OAAQ,KACR,UAAW,KACX,aAAc,KACd,UAAW,KACX,aAAc,KACd,UAAW,KACX,OAAQ,KACR,UAAW,KACX,OAAQ,KACR,UAAW,KACX,OAAQ,KACR,UAAW,KACX,OAAQ,KACR,UAAW,KACX,aAAc,KACd,gBAAiB,KACjB,aAAc,KACd,gBAAiB,KACjB,OAAQ,KACR,UAAW,KACX,OAAQ,KACR,UAAW,KACX,OAAQ,GACR,UAAW,GACX,OAAQ,IACR,UAAW,IACX,OAAQ,KACR,UAAW,KACX,UAAW,KACX,aAAc,KACd,OAAQ,KACR,UAAW,KACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,aAAc,IACd,UAAW,IACX,OAAQ,KACR,UAAW,KACX,OAAQ,KACR,UAAW,KACX,OAAQ,KACR,UAAW,KACX,OAAQ,KACR,UAAW,KACX,OAAQ,KACR,UAAW,KACX,OAAQ,KACR,UAAW,KACX,OAAQ,KACR,UAAW,KACX,OAAQ,KACR,WAAY,IACZ,cAAe,IACf,UAAW,KACX,OAAQ,KACR,UAAW,KACX,OAAQ,KACR,UAAW,KACX,OAAQ,KACR,UAAW,KACX,OAAQ,KACR,UAAW,KACX,OAAQ,KACR,UAAW,KACX,OAAQ,KACR,UAAW,KACX,OAAQ,KACR,UAAW,KACX,OAAQ,KACR,UAAW,KACX,OAAQ,KACR,UAAW,KACX,OAAQ,KACR,UAAW,KACX,OAAQ,IACR,UAAW,IACX,OAAQ,KACR,UAAW,KACX,aAAc,KACd,UAAW,KACX,OAAQ,KACR,UAAW,KACX,OAAQ,KACR,UAAW,KACX,OAAQ,KACR,UAAW,KACX,OAAQ,KACR,UAAW,KACX,OAAQ,KACR,UAAW,KACX,aAAc,KACd,UAAW,KACX,OAAQ,KACR,UAAW,KACX,WAAY,KACZ,cAAe,KACf,UAAW,KACX,aAAc,KACd,OAAQ,KACR,UAAW,KACX,OAAQ,KACR,UAAW,KACX,aAAc,KACd,UAAW,KACX,OAAQ,KACR,UAAW,KACX,OAAQ,KACR,UAAW,KACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,KACR,UAAW,KACX,OAAQ,KACR,UAAW,KACX,OAAQ,KACR,UAAW,KACX,OAAQ,KACR,YAAa,KACb,eAAgB,KAChB,UAAW,KACX,OAAQ,KACR,UAAW,KACX,OAAQ,KACR,UAAW,KACX,OAAQ,KACR,UAAW,KACX,OAAQ,KACR,UAAW,KACX,OAAQ,KACR,UAAW,KACX,QAAS,KACT,WAAY,KACZ,OAAQ,KACR,UAAW,KACX,OAAQ,KACR,UAAW,KACX,OAAQ,KACR,UAAW,KACX,UAAW,KACX,aAAc,KACd,QAAS,KACT,WAAY,KACZ,OAAQ,KACR,UAAW,KACX,QAAS,KACT,WAAY,KACZ,QAAS,KACT,aAAc,IACd,gBAAiB,IACjB,WAAY,KACZ,UAAW,KACX,aAAc,KACd,OAAQ,KACR,UAAW,KACX,OAAQ,KACR,UAAW,KACX,OAAQ,KACR,YAAa,IACb,eAAgB,IAChB,UAAW,KACX,OAAQ,KACR,UAAW,KACX,aAAc,KACd,gBAAiB,KACjB,OAAQ,KACR,UAAW,KACX,UAAW,KACX,aAAc,KACd,UAAW,KACX,aAAc,KACd,UAAW,KACX,aAAc,KACd,UAAW,KACX,aAAc,MAIf,SAAS0O,eAAeC,KACvB,IAAIC,GAAKC,sBAAsBF,KAC/B,OAAOG,oBAAoBF,IAE5B,SAASC,sBAAsBF,KAC9B,IAAIG,oBAAoBC,EAAE/O,IAAK2O,KAAM,CACpC,IAAIzP,EAAI,IAAI8P,MAAM,uBAAyBL,IAAM,KAEjD,MADAzP,EAAE+P,KAAO,mBACH/P,EAEP,OAAOc,IAAI2O,KAEZD,eAAeQ,KAAO,SAASC,qBAC9B,OAAOrF,OAAOoF,KAAKlP,MAEpB0O,eAAeU,QAAUP,sBACzBlV,OAAO8I,QAAUiM,eACjBA,eAAeE,GAAK,iHChSsDnM,QAGlE,WAAe,aAEnB,IAAI4M,aA6HAC,KA3HJ,SAASC,QACL,OAAOF,aAAa3E,MAAM,KAAM8E,WAKpC,SAASC,gBAAgBC,UACrBL,aAAeK,SAGnB,SAASxW,QAAQiK,OACb,OACIA,iBAAiBwM,OACyB,mBAA1C7F,OAAOtM,UAAUuM,SAASlJ,KAAKsC,OAIvC,SAAS3B,SAAS2B,OAGd,OACa,MAATA,OAC0C,oBAA1C2G,OAAOtM,UAAUuM,SAASlJ,KAAKsC,OAIvC,SAASyM,WAAW9I,EAAGC,GACnB,OAAO+C,OAAOtM,UAAUqS,eAAehP,KAAKiG,EAAGC,GAGnD,SAAS+I,cAAcnR,KACnB,GAAImL,OAAOiG,oBACP,OAAkD,IAA3CjG,OAAOiG,oBAAoBpR,KAAKC,OAEvC,IAAIoR,EACJ,IAAKA,KAAKrR,IACN,GAAIiR,WAAWjR,IAAKqR,GAChB,OAAO,EAGf,OAAO,EAIf,SAASC,YAAY9M,OACjB,YAAiB,IAAVA,MAGX,SAAS+M,SAAS/M,OACd,MACqB,iBAAVA,OACmC,oBAA1C2G,OAAOtM,UAAUuM,SAASlJ,KAAKsC,OAIvC,SAASgN,OAAOhN,OACZ,OACIA,iBAAiBiN,MACyB,kBAA1CtG,OAAOtM,UAAUuM,SAASlJ,KAAKsC,OAIvC,SAASnD,IAAIqQ,IAAKC,IACd,IACI5R,EADA6R,IAAM,GAENC,OAASH,IAAIzR,OACjB,IAAKF,EAAI,EAAGA,EAAI8R,SAAU9R,EACtB6R,IAAIxT,KAAKuT,GAAGD,IAAI3R,GAAIA,IAExB,OAAO6R,IAGX,SAASvX,OAAO8N,EAAGC,GACf,IAAK,IAAIrI,KAAKqI,EACN6I,WAAW7I,EAAGrI,KACdoI,EAAEpI,GAAKqI,EAAErI,IAYjB,OARIkR,WAAW7I,EAAG,cACdD,EAAEiD,SAAWhD,EAAEgD,UAGf6F,WAAW7I,EAAG,aACdD,EAAE2J,QAAU1J,EAAE0J,SAGX3J,EAGX,SAAS4J,UAAUvN,MAAOmE,OAAQqJ,OAAQC,QACtC,OAAOC,iBAAiB1N,MAAOmE,OAAQqJ,OAAQC,QAAQ,GAAME,MAGjE,SAASC,sBAEL,MAAO,CACHC,OAAO,EACPC,aAAc,GACdC,YAAa,GACbC,UAAW,EACXC,cAAe,EACfC,WAAW,EACXC,WAAY,KACZC,aAAc,KACdC,eAAe,EACfC,iBAAiB,EACjBC,KAAK,EACLC,gBAAiB,GACjBC,IAAK,KACLxO,SAAU,KACVyO,SAAS,EACTC,iBAAiB,GAIzB,SAASC,gBAAgBpN,GAIrB,OAHa,MAATA,EAAEqN,MACFrN,EAAEqN,IAAMjB,uBAELpM,EAAEqN,IAsBb,SAASC,QAAQtN,GACb,IAAIuN,MAAQ,KACRC,aAAc,EACdC,WAAazN,EAAE0N,KAAO9F,MAAM5H,EAAE0N,GAAGC,WAyBrC,OAxBIF,aACAF,MAAQH,gBAAgBpN,GACxBwN,YAAc7C,KAAKzO,KAAKqR,MAAMP,iBAAiB,SAAUjT,GACrD,OAAY,MAALA,KAEX0T,WACIF,MAAMf,SAAW,IAChBe,MAAMlB,QACNkB,MAAMZ,aACNY,MAAMX,eACNW,MAAMK,iBACNL,MAAMJ,kBACNI,MAAMb,YACNa,MAAMV,gBACNU,MAAMT,mBACLS,MAAM9O,UAAa8O,MAAM9O,UAAY+O,aACvCxN,EAAE6N,UACFJ,WACIA,YACwB,IAAxBF,MAAMd,eACwB,IAA9Bc,MAAMjB,aAAarS,aACD4J,IAAlB0J,MAAMO,UAGK,MAAnB3I,OAAO4I,UAAqB5I,OAAO4I,SAAS/N,GAGrCyN,YAFPzN,EAAEgO,SAAWP,WAIVzN,EAAEgO,UAGb,SAASC,cAAcV,OACnB,IAAIvN,EAAI+L,UAAUmC,KAOlB,OANa,MAATX,MACAlZ,OAAO+Y,gBAAgBpN,GAAIuN,OAE3BH,gBAAgBpN,GAAG8M,iBAAkB,EAGlC9M,EA7DP2K,KADAK,MAAMnS,UAAU8R,KACTK,MAAMnS,UAAU8R,KAEhB,SAAUwD,KACb,IAEIpU,EAFAqU,EAAIjJ,OAAO9P,MACXgZ,IAAMD,EAAEnU,SAAW,EAGvB,IAAKF,EAAI,EAAGA,EAAIsU,IAAKtU,IACjB,GAAIA,KAAKqU,GAAKD,IAAIjS,KAAK7G,KAAM+Y,EAAErU,GAAIA,EAAGqU,GAClC,OAAO,EAIf,OAAO,GAqDf,IAAIE,iBAAoB1D,MAAM0D,iBAAmB,GAC7CC,kBAAmB,EAEvB,SAASC,WAAWC,GAAIC,MACpB,IAAI3U,EACA4U,KACAC,IACAC,oBAAsBP,iBAAiBrU,OAiC3C,GA/BKqR,YAAYoD,KAAKI,oBAClBL,GAAGK,iBAAmBJ,KAAKI,kBAE1BxD,YAAYoD,KAAKK,MAClBN,GAAGM,GAAKL,KAAKK,IAEZzD,YAAYoD,KAAKM,MAClBP,GAAGO,GAAKN,KAAKM,IAEZ1D,YAAYoD,KAAKO,MAClBR,GAAGQ,GAAKP,KAAKO,IAEZ3D,YAAYoD,KAAKb,WAClBY,GAAGZ,QAAUa,KAAKb,SAEjBvC,YAAYoD,KAAKQ,QAClBT,GAAGS,KAAOR,KAAKQ,MAEd5D,YAAYoD,KAAKS,UAClBV,GAAGU,OAAST,KAAKS,QAEhB7D,YAAYoD,KAAKU,WAClBX,GAAGW,QAAUV,KAAKU,SAEjB9D,YAAYoD,KAAKrB,OAClBoB,GAAGpB,IAAMD,gBAAgBsB,OAExBpD,YAAYoD,KAAKW,WAClBZ,GAAGY,QAAUX,KAAKW,SAGlBR,oBAAsB,EACtB,IAAK9U,EAAI,EAAGA,EAAI8U,oBAAqB9U,IAG5BuR,YADLsD,IAAMF,KADNC,KAAOL,iBAAiBvU,OAGpB0U,GAAGE,MAAQC,KAKvB,OAAOH,GAIX,SAASa,OAAOC,QACZf,WAAWnZ,KAAMka,QACjBla,KAAKqY,GAAK,IAAIjC,KAAkB,MAAb8D,OAAO7B,GAAa6B,OAAO7B,GAAGC,UAAYO,KACxD7Y,KAAKiY,YACNjY,KAAKqY,GAAK,IAAIjC,KAAKyC,OAIE,IAArBK,mBACAA,kBAAmB,EACnB3D,MAAM4E,aAAana,MACnBkZ,kBAAmB,GAI3B,SAASkB,SAASzV,KACd,OACIA,eAAesV,QAAkB,MAAPtV,KAAuC,MAAxBA,IAAI8U,iBAIrD,SAASY,KAAKC,MAEgC,IAAtC/E,MAAMgF,6BACa,oBAAZC,SACPA,QAAQH,MAERG,QAAQH,KAAK,wBAA0BC,KAI/C,SAASG,UAAUH,IAAKhE,IACpB,IAAIoE,WAAY,EAEhB,OAAO1b,QAAO,WAIV,GAHgC,MAA5BuW,MAAMoF,oBACNpF,MAAMoF,mBAAmB,KAAML,KAE/BI,UAAW,CACX,IACIhX,IACAgB,EACAvB,IAHAyX,KAAO,GAIPC,OAASrF,UAAU5Q,OACvB,IAAKF,EAAI,EAAGA,EAAImW,OAAQnW,IAAK,CAEzB,GADAhB,IAAM,GACsB,iBAAjB8R,UAAU9Q,GAAiB,CAElC,IAAKvB,OADLO,KAAO,MAAQgB,EAAI,KACP8Q,UAAU,GACdI,WAAWJ,UAAU,GAAIrS,OACzBO,KAAOP,IAAM,KAAOqS,UAAU,GAAGrS,KAAO,MAGhDO,IAAMA,IAAIgQ,MAAM,GAAI,QAEpBhQ,IAAM8R,UAAU9Q,GAEpBkW,KAAK7X,KAAKW,KAEd2W,KACIC,IACI,gBACA3E,MAAMnS,UAAUkQ,MAAM7M,KAAK+T,MAAMla,KAAK,IACtC,MACA,IAAIsU,OAAQ8F,OAEpBJ,WAAY,EAEhB,OAAOpE,GAAG5F,MAAM1Q,KAAMwV,aACvBc,IAGP,IAgFIpB,KAhFA6F,aAAe,GAEnB,SAASC,gBAAgB7U,KAAMmU,KACK,MAA5B/E,MAAMoF,oBACNpF,MAAMoF,mBAAmBxU,KAAMmU,KAE9BS,aAAa5U,QACdkU,KAAKC,KACLS,aAAa5U,OAAQ,GAO7B,SAASoB,WAAW4B,OAChB,MACyB,oBAAb0G,UAA4B1G,iBAAiB0G,UACX,sBAA1CC,OAAOtM,UAAUuM,SAASlJ,KAAKsC,OAIvC,SAAS8R,IAAIf,QACT,IAAIZ,KAAM5U,EACV,IAAKA,KAAKwV,OACFtE,WAAWsE,OAAQxV,KAEf6C,WADJ+R,KAAOY,OAAOxV,IAEV1E,KAAK0E,GAAK4U,KAEVtZ,KAAK,IAAM0E,GAAK4U,MAI5BtZ,KAAKkb,QAAUhB,OAIfla,KAAKmb,+BAAiC,IAAIC,QACrCpb,KAAKqb,wBAAwBC,QAAUtb,KAAKub,cAAcD,QACvD,IACA,UAAUA,QAItB,SAASE,aAAaC,aAAcC,aAChC,IACIpC,KADA/C,IAAMvX,OAAO,GAAIyc,cAErB,IAAKnC,QAAQoC,YACL9F,WAAW8F,YAAapC,QACpB9R,SAASiU,aAAanC,QAAU9R,SAASkU,YAAYpC,QACrD/C,IAAI+C,MAAQ,GACZta,OAAOuX,IAAI+C,MAAOmC,aAAanC,OAC/Bta,OAAOuX,IAAI+C,MAAOoC,YAAYpC,QACF,MAArBoC,YAAYpC,MACnB/C,IAAI+C,MAAQoC,YAAYpC,aAEjB/C,IAAI+C,OAIvB,IAAKA,QAAQmC,aAEL7F,WAAW6F,aAAcnC,QACxB1D,WAAW8F,YAAapC,OACzB9R,SAASiU,aAAanC,SAGtB/C,IAAI+C,MAAQta,OAAO,GAAIuX,IAAI+C,QAGnC,OAAO/C,IAGX,SAASoF,OAAOzB,QACE,MAAVA,QACAla,KAAKib,IAAIf,QAhEjB3E,MAAMgF,6BAA8B,EACpChF,MAAMoF,mBAAqB,KAsEvBzF,KADApF,OAAOoF,KACApF,OAAOoF,KAEP,SAAUvQ,KACb,IAAID,EACA6R,IAAM,GACV,IAAK7R,KAAKC,IACFiR,WAAWjR,IAAKD,IAChB6R,IAAIxT,KAAK2B,GAGjB,OAAO6R,KAIf,IAAIqF,gBAAkB,CAClB5R,QAAS,gBACTC,QAAS,mBACTC,SAAU,eACVC,QAAS,oBACTC,SAAU,sBACVC,SAAU,KAGd,SAASN,SAAS5G,IAAKqN,IAAKoB,KACxB,IAAIjC,OAAS3P,KAAK6b,UAAU1Y,MAAQnD,KAAK6b,UAAoB,SAC7D,OAAOtU,WAAWoI,QAAUA,OAAO9I,KAAK2J,IAAKoB,KAAOjC,OAGxD,SAASmM,SAASvQ,OAAQwQ,aAAcC,WACpC,IAAIC,UAAY,GAAKlI,KAAKmI,IAAI3Q,QAC1B4Q,YAAcJ,aAAeE,UAAUrX,OAE3C,OADW2G,QAAU,EAERyQ,UAAY,IAAM,GAAM,KACjCjI,KAAKqI,IAAI,GAAIrI,KAAKsI,IAAI,EAAGF,cAAcpM,WAAW3H,OAAO,GACzD6T,UAIR,IAAIK,iBACI,yMACJC,sBAAwB,6CACxBC,gBAAkB,GAClBC,qBAAuB,GAM3B,SAASC,eAAetN,MAAOuN,OAAQrR,QAASoK,UAC5C,IAAIkH,KAAOlH,SACa,iBAAbA,WACPkH,KAAO,WACH,OAAO5c,KAAK0V,cAGhBtG,QACAqN,qBAAqBrN,OAASwN,MAE9BD,SACAF,qBAAqBE,OAAO,IAAM,WAC9B,OAAOb,SAASc,KAAKlM,MAAM1Q,KAAMwV,WAAYmH,OAAO,GAAIA,OAAO,MAGnErR,UACAmR,qBAAqBnR,SAAW,WAC5B,OAAOtL,KAAK6c,aAAavR,QACrBsR,KAAKlM,MAAM1Q,KAAMwV,WACjBpG,SAMhB,SAAS0N,uBAAuB3T,OAC5B,OAAIA,MAAMvB,MAAM,YACLuB,MAAM/C,QAAQ,WAAY,IAE9B+C,MAAM/C,QAAQ,MAAO,IAGhC,SAAS2W,mBAAmBzP,QACxB,IACI5I,EACAE,OAFAoY,MAAQ1P,OAAO1F,MAAM0U,kBAIzB,IAAK5X,EAAI,EAAGE,OAASoY,MAAMpY,OAAQF,EAAIE,OAAQF,IACvC+X,qBAAqBO,MAAMtY,IAC3BsY,MAAMtY,GAAK+X,qBAAqBO,MAAMtY,IAEtCsY,MAAMtY,GAAKoY,uBAAuBE,MAAMtY,IAIhD,OAAO,SAAU8L,KACb,IACI9L,EADAiL,OAAS,GAEb,IAAKjL,EAAI,EAAGA,EAAIE,OAAQF,IACpBiL,QAAUpI,WAAWyV,MAAMtY,IACrBsY,MAAMtY,GAAGmC,KAAK2J,IAAKlD,QACnB0P,MAAMtY,GAEhB,OAAOiL,QAKf,SAASsN,aAAatS,EAAG2C,QACrB,OAAK3C,EAAEsN,WAIP3K,OAAS4P,aAAa5P,OAAQ3C,EAAEkS,cAChCL,gBAAgBlP,QACZkP,gBAAgBlP,SAAWyP,mBAAmBzP,QAE3CkP,gBAAgBlP,QAAQ3C,IAPpBA,EAAEkS,aAAajM,cAU9B,SAASsM,aAAa5P,OAAQqJ,QAC1B,IAAIjS,EAAI,EAER,SAASyY,4BAA4BhU,OACjC,OAAOwN,OAAOnN,eAAeL,QAAUA,MAI3C,IADAoT,sBAAsBa,UAAY,EAC3B1Y,GAAK,GAAK6X,sBAAsB9b,KAAK6M,SACxCA,OAASA,OAAOlH,QACZmW,sBACAY,6BAEJZ,sBAAsBa,UAAY,EAClC1Y,GAAK,EAGT,OAAO4I,OAGX,IAAI+P,sBAAwB,CACxB3T,IAAK,YACLD,GAAI,SACJE,EAAG,aACHC,GAAI,eACJC,IAAK,sBACLC,KAAM,6BAGV,SAASN,eAAerG,KACpB,IAAImK,OAAStN,KAAKsd,gBAAgBna,KAC9Boa,YAAcvd,KAAKsd,gBAAgBna,IAAIqa,eAE3C,OAAIlQ,SAAWiQ,YACJjQ,QAGXtN,KAAKsd,gBAAgBna,KAAOoa,YACvB3V,MAAM0U,kBACNtW,KAAI,SAAUyX,KACX,MACY,SAARA,KACQ,OAARA,KACQ,OAARA,KACQ,SAARA,IAEOA,IAAI/J,MAAM,GAEd+J,OAEV/c,KAAK,IAEHV,KAAKsd,gBAAgBna,MAGhC,IAAIua,mBAAqB,eAEzB,SAAS9M,cACL,OAAO5Q,KAAK2d,aAGhB,IAAIC,eAAiB,KACjBC,8BAAgC,UAEpC,SAASvS,QAAQC,QACb,OAAOvL,KAAK8d,SAAS1X,QAAQ,KAAMmF,QAGvC,IAAIwS,oBAAsB,CACtBxT,OAAQ,QACRC,KAAM,SACNC,EAAG,gBACHC,GAAI,aACJC,EAAG,WACHC,GAAI,aACJC,EAAG,UACHC,GAAI,WACJC,EAAG,QACHC,GAAI,UACJ2C,EAAG,SACHC,GAAI,WACJ3C,EAAG,UACHC,GAAI,YACJC,EAAG,SACHC,GAAI,YAGR,SAASd,aAAaiB,OAAQU,cAAeC,OAAQC,UACjD,IAAIwD,OAAS3P,KAAKge,cAAc9R,QAChC,OAAO3E,WAAWoI,QACZA,OAAOpE,OAAQU,cAAeC,OAAQC,UACtCwD,OAAOvJ,QAAQ,MAAOmF,QAGhC,SAAS0S,WAAWC,KAAMvO,QACtB,IAAIrC,OAAStN,KAAKge,cAAcE,KAAO,EAAI,SAAW,QACtD,OAAO3W,WAAW+F,QAAUA,OAAOqC,QAAUrC,OAAOlH,QAAQ,MAAOuJ,QAGvE,IAAIwO,QAAU,CACVC,EAAG,OACHC,MAAO,OACPC,KAAM,OACNvT,EAAG,MACHuI,KAAM,MACN7F,IAAK,MACLvI,EAAG,UACH4D,SAAU,UACVyV,QAAS,UACTC,EAAG,aACHC,YAAa,aACbC,WAAY,aACZC,IAAK,YACLC,WAAY,YACZC,UAAW,YACXhU,EAAG,OACHxB,MAAO,OACPiD,KAAM,OACNwS,GAAI,cACJC,aAAc,cACdC,YAAa,cACbrU,EAAG,SACHrB,QAAS,SACTiD,OAAQ,SACRtB,EAAG,QACHrC,OAAQ,QACRyH,MAAO,QACP4O,EAAG,UACHC,SAAU,UACVC,QAAS,UACT1U,EAAG,SACH2U,QAAS,SACTC,OAAQ,SACRC,GAAI,WACJC,UAAW,WACXC,SAAU,WACVC,GAAI,cACJC,aAAc,cACdC,YAAa,cACbhS,EAAG,OACHiS,MAAO,OACPpU,KAAM,OACNqU,EAAG,UACHC,SAAU,UACVC,QAAS,UACT5U,EAAG,OACH6U,MAAO,OACPC,KAAM,QAGV,SAASC,eAAe1N,OACpB,MAAwB,iBAAVA,MACR2L,QAAQ3L,QAAU2L,QAAQ3L,MAAMtQ,oBAChCsM,EAGV,SAAS2R,qBAAqBC,aAC1B,IACIC,eACA/G,KAFAgH,gBAAkB,GAItB,IAAKhH,QAAQ8G,YACLxK,WAAWwK,YAAa9G,QACxB+G,eAAiBH,eAAe5G,SAE5BgH,gBAAgBD,gBAAkBD,YAAY9G,OAK1D,OAAOgH,gBAGX,IAAIC,WAAa,CACbjC,KAAM,EACN7Q,IAAK,GACL8Q,QAAS,GACTiC,WAAY,GACZC,UAAW,EACXnU,KAAM,GACN0S,YAAa,GACbzS,OAAQ,GACR8D,MAAO,EACP8O,QAAS,EACTE,OAAQ,GACRqB,SAAU,EACVC,YAAa,EACbnV,KAAM,EACNoV,QAAS,EACTX,KAAM,GAGV,SAASY,oBAAoBC,UACzB,IACI9U,EADAwG,MAAQ,GAEZ,IAAKxG,KAAK8U,SACFlL,WAAWkL,SAAU9U,IACrBwG,MAAMzP,KAAK,CAAEge,KAAM/U,EAAGgV,SAAUT,WAAWvU,KAMnD,OAHAwG,MAAMyO,MAAK,SAAUnU,EAAGC,GACpB,OAAOD,EAAEkU,SAAWjU,EAAEiU,YAEnBxO,MAGX,IAsBI0O,QAtBAC,OAAS,KACTC,OAAS,OACTC,OAAS,QACTC,OAAS,QACTC,OAAS,aACTC,UAAY,QACZC,UAAY,YACZC,UAAY,gBACZC,UAAY,UACZC,UAAY,UACZC,UAAY,eACZC,cAAgB,MAChBC,YAAc,WACdC,YAAc,qBACdC,iBAAmB,0BACnBC,eAAiB,uBAGjBC,UACI,wJACJC,uBAAyB,YACzBC,iBAAmB,gBAKvB,SAASC,cAAclT,MAAOmT,MAAOC,aACjCtB,QAAQ9R,OAAS7H,WAAWgb,OACtBA,MACA,SAAUE,SAAU5F,YAChB,OAAO4F,UAAYD,YAAcA,YAAcD,OAI7D,SAASG,sBAAsBtT,MAAO8K,QAClC,OAAKtE,WAAWsL,QAAS9R,OAIlB8R,QAAQ9R,OAAO8K,OAAO1B,QAAS0B,OAAOF,SAHlC,IAAIoB,OAAOuH,eAAevT,QAOzC,SAASuT,eAAelY,GACpB,OAAOmY,YACHnY,EACKrE,QAAQ,KAAM,IACdA,QACG,uCACA,SAAUyc,QAASC,GAAIC,GAAIC,GAAIC,IAC3B,OAAOH,IAAMC,IAAMC,IAAMC,OAM7C,SAASL,YAAYnY,GACjB,OAAOA,EAAErE,QAAQ,yBAA0B,QAG/C,SAAS8c,SAAS3X,QACd,OAAIA,OAAS,EAEFwI,KAAKoP,KAAK5X,SAAW,EAErBwI,KAAKC,MAAMzI,QAI1B,SAAS6X,MAAMC,qBACX,IAAIC,eAAiBD,oBACjBngB,MAAQ,EAMZ,OAJsB,IAAlBogB,eAAuBC,SAASD,iBAChCpgB,MAAQggB,SAASI,gBAGdpgB,MArDXge,QAAU,GAwDV,IAAIsC,OAAS,GAEb,SAASC,cAAcrU,MAAOsG,UAC1B,IAAIhR,EAEAgf,SADA9G,KAAOlH,SAWX,IATqB,iBAAVtG,QACPA,MAAQ,CAACA,QAET8G,SAASR,YACTkH,KAAO,SAAUzT,MAAO6T,OACpBA,MAAMtH,UAAY0N,MAAMja,SAGhCua,SAAWtU,MAAMxK,OACZF,EAAI,EAAGA,EAAIgf,SAAUhf,IACtB8e,OAAOpU,MAAM1K,IAAMkY,KAI3B,SAAS+G,kBAAkBvU,MAAOsG,UAC9B+N,cAAcrU,OAAO,SAAUjG,MAAO6T,MAAO9C,OAAQ9K,OACjD8K,OAAO0J,GAAK1J,OAAO0J,IAAM,GACzBlO,SAASvM,MAAO+Q,OAAO0J,GAAI1J,OAAQ9K,UAI3C,SAASyU,wBAAwBzU,MAAOjG,MAAO+Q,QAC9B,MAAT/Q,OAAiByM,WAAW4N,OAAQpU,QACpCoU,OAAOpU,OAAOjG,MAAO+Q,OAAO4J,GAAI5J,OAAQ9K,OAIhD,SAAS2U,WAAW9D,MAChB,OAAQA,KAAO,GAAM,GAAKA,KAAO,KAAQ,GAAMA,KAAO,KAAQ,EAGlE,IAAI+D,KAAO,EACPC,MAAQ,EACRC,KAAO,EACPC,KAAO,EACPC,OAAS,EACTC,OAAS,EACTC,YAAc,EACdC,KAAO,EACPC,QAAU,EAuCd,SAASC,WAAWxE,MAChB,OAAO8D,WAAW9D,MAAQ,IAAM,IApCpCvD,eAAe,IAAK,EAAG,GAAG,WACtB,IAAIvR,EAAInL,KAAKigB,OACb,OAAO9U,GAAK,KAAO2Q,SAAS3Q,EAAG,GAAK,IAAMA,KAG9CuR,eAAe,EAAG,CAAC,KAAM,GAAI,GAAG,WAC5B,OAAO1c,KAAKigB,OAAS,OAGzBvD,eAAe,EAAG,CAAC,OAAQ,GAAI,EAAG,QAClCA,eAAe,EAAG,CAAC,QAAS,GAAI,EAAG,QACnCA,eAAe,EAAG,CAAC,SAAU,GAAG,GAAO,EAAG,QAI1C4F,cAAc,IAAKP,aACnBO,cAAc,KAAMd,UAAWJ,QAC/BkB,cAAc,OAAQV,UAAWN,QACjCgB,cAAc,QAAST,UAAWN,QAClCe,cAAc,SAAUT,UAAWN,QAEnCkC,cAAc,CAAC,QAAS,UAAWO,MACnCP,cAAc,QAAQ,SAAUta,MAAO6T,OACnCA,MAAMgH,MACe,IAAjB7a,MAAMvE,OAAe2Q,MAAMmP,kBAAkBvb,OAASia,MAAMja,UAEpEsa,cAAc,MAAM,SAAUta,MAAO6T,OACjCA,MAAMgH,MAAQzO,MAAMmP,kBAAkBvb,UAE1Csa,cAAc,KAAK,SAAUta,MAAO6T,OAChCA,MAAMgH,MAAQrS,SAASxI,MAAO,OAWlCoM,MAAMmP,kBAAoB,SAAUvb,OAChC,OAAOia,MAAMja,QAAUia,MAAMja,OAAS,GAAK,KAAO,MAKtD,IA0HIgH,QA1HAwU,WAAaC,WAAW,YAAY,GAExC,SAASC,gBACL,OAAOd,WAAW/jB,KAAKigB,QAG3B,SAAS2E,WAAW7D,KAAM+D,UACtB,OAAO,SAAU5hB,OACb,OAAa,MAATA,OACA6hB,MAAM/kB,KAAM+gB,KAAM7d,OAClBqS,MAAM4E,aAAana,KAAM8kB,UAClB9kB,MAEAglB,IAAIhlB,KAAM+gB,OAK7B,SAASiE,IAAIxU,IAAKuQ,MACd,IAAKvQ,IAAIyH,UACL,OAAOY,IAGX,IAAI9N,EAAIyF,IAAI6H,GACR4M,MAAQzU,IAAIsJ,OAEhB,OAAQiH,MACJ,IAAK,eACD,OAAOkE,MAAQla,EAAEma,qBAAuBna,EAAEoa,kBAC9C,IAAK,UACD,OAAOF,MAAQla,EAAEqa,gBAAkBra,EAAEsa,aACzC,IAAK,UACD,OAAOJ,MAAQla,EAAEua,gBAAkBva,EAAEwa,aACzC,IAAK,QACD,OAAON,MAAQla,EAAEya,cAAgBza,EAAE0a,WACvC,IAAK,OACD,OAAOR,MAAQla,EAAE2a,aAAe3a,EAAE4a,UACtC,IAAK,MACD,OAAOV,MAAQla,EAAE6a,YAAc7a,EAAE8a,SACrC,IAAK,QACD,OAAOZ,MAAQla,EAAE+a,cAAgB/a,EAAEgb,WACvC,IAAK,WACD,OAAOd,MAAQla,EAAEib,iBAAmBjb,EAAEkb,cAC1C,QACI,OAAOpN,KAInB,SAASkM,MAAMvU,IAAKuQ,KAAM7d,OACtB,IAAI6H,EAAGka,MAAOhF,KAAM5P,MAAOiO,KAE3B,GAAK9N,IAAIyH,YAAa1F,MAAMrP,OAA5B,CAOA,OAHA6H,EAAIyF,IAAI6H,GACR4M,MAAQzU,IAAIsJ,OAEJiH,MACJ,IAAK,eACD,YAAakE,MACPla,EAAEmb,mBAAmBhjB,OACrB6H,EAAEob,gBAAgBjjB,QAC5B,IAAK,UACD,YAAa+hB,MAAQla,EAAEqb,cAAcljB,OAAS6H,EAAEsb,WAAWnjB,QAC/D,IAAK,UACD,YAAa+hB,MAAQla,EAAEub,cAAcpjB,OAAS6H,EAAEwb,WAAWrjB,QAC/D,IAAK,QACD,YAAa+hB,MAAQla,EAAEyb,YAAYtjB,OAAS6H,EAAE0b,SAASvjB,QAC3D,IAAK,OACD,YAAa+hB,MAAQla,EAAE2b,WAAWxjB,OAAS6H,EAAE4b,QAAQzjB,QAKzD,IAAK,WACD,MACJ,QACI,OAGR+c,KAAO/c,MACPmN,MAAQG,IAAIH,QAEZiO,KAAgB,MADhBA,KAAO9N,IAAI8N,SACqB,IAAVjO,OAAgB0T,WAAW9D,MAAa3B,KAAL,GACnD2G,MACAla,EAAE6b,eAAe3G,KAAM5P,MAAOiO,MAC9BvT,EAAE8b,YAAY5G,KAAM5P,MAAOiO,OAKrC,SAASwI,UAAUtU,OAEf,OAAIjL,WAAWvH,KADfwS,MAAQ0N,eAAe1N,SAEZxS,KAAKwS,SAETxS,KAGX,SAAS+mB,UAAUvU,MAAOtP,OACtB,GAAqB,iBAAVsP,MAAoB,CAE3B,IACI9N,EADAsiB,YAAcnG,oBADlBrO,MAAQ2N,qBAAqB3N,QAGzByU,eAAiBD,YAAYpiB,OACjC,IAAKF,EAAI,EAAGA,EAAIuiB,eAAgBviB,IAC5B1E,KAAKgnB,YAAYtiB,GAAGqc,MAAMvO,MAAMwU,YAAYtiB,GAAGqc,YAInD,GAAIxZ,WAAWvH,KADfwS,MAAQ0N,eAAe1N,SAEnB,OAAOxS,KAAKwS,OAAOtP,OAG3B,OAAOlD,KAGX,SAASknB,IAAIrb,EAAGsb,GACZ,OAAStb,EAAIsb,EAAKA,GAAKA,EAoB3B,SAASC,YAAYnH,KAAM5P,OACvB,GAAIkC,MAAM0N,OAAS1N,MAAMlC,OACrB,OAAOwI,IAEX,IAAIwO,SAAWH,IAAI7W,MAAO,IAE1B,OADA4P,OAAS5P,MAAQgX,UAAY,GACT,IAAbA,SACDtD,WAAW9D,MACP,GACA,GACJ,GAAOoH,SAAW,EAAK,EAxB7BlX,QADAwF,MAAMnS,UAAU2M,QACNwF,MAAMnS,UAAU2M,QAEhB,SAAU4E,GAEhB,IAAIrQ,EACJ,IAAKA,EAAI,EAAGA,EAAI1E,KAAK4E,SAAUF,EAC3B,GAAI1E,KAAK0E,KAAOqQ,EACZ,OAAOrQ,EAGf,OAAQ,GAmBhBgY,eAAe,IAAK,CAAC,KAAM,GAAI,MAAM,WACjC,OAAO1c,KAAKqQ,QAAU,KAG1BqM,eAAe,MAAO,EAAG,GAAG,SAAUpP,QAClC,OAAOtN,KAAK6c,aAAahU,YAAY7I,KAAMsN,WAG/CoP,eAAe,OAAQ,EAAG,GAAG,SAAUpP,QACnC,OAAOtN,KAAK6c,aAAajU,OAAO5I,KAAMsN,WAK1CgV,cAAc,IAAKd,UAAWY,wBAC9BE,cAAc,KAAMd,UAAWJ,QAC/BkB,cAAc,OAAO,SAAUG,SAAU9L,QACrC,OAAOA,OAAO3I,iBAAiByU,aAEnCH,cAAc,QAAQ,SAAUG,SAAU9L,QACtC,OAAOA,OAAOhI,YAAY8T,aAG9BgB,cAAc,CAAC,IAAK,OAAO,SAAUta,MAAO6T,OACxCA,MAAMiH,OAASb,MAAMja,OAAS,KAGlCsa,cAAc,CAAC,MAAO,SAAS,SAAUta,MAAO6T,MAAO9C,OAAQ9K,OAC3D,IAAIiB,MAAQ6J,OAAOF,QAAQtL,YAAYvF,MAAOiG,MAAO8K,OAAO1B,SAE/C,MAATnI,MACA2M,MAAMiH,OAAS5T,MAEf0H,gBAAgBmC,QAAQ3C,aAAepO,SAM/C,IAAIme,oBACI,wFAAwF9iB,MACpF,KAER+iB,yBACI,kDAAkD/iB,MAAM,KAC5DgjB,iBAAmB,gCACnBC,wBAA0BtF,UAC1BuF,mBAAqBvF,UAEzB,SAASwF,aAAahd,EAAG2C,QACrB,OAAK3C,EAKEzL,QAAQc,KAAK4nB,SACd5nB,KAAK4nB,QAAQjd,EAAE0F,SACfrQ,KAAK4nB,SACA5nB,KAAK4nB,QAAQpa,UAAYga,kBAAkB/mB,KAAK6M,QAC3C,SACA,cACR3C,EAAE0F,SAVCnR,QAAQc,KAAK4nB,SACd5nB,KAAK4nB,QACL5nB,KAAK4nB,QAAoB,WAWvC,SAASC,kBAAkBld,EAAG2C,QAC1B,OAAK3C,EAKEzL,QAAQc,KAAK8nB,cACd9nB,KAAK8nB,aAAand,EAAE0F,SACpBrQ,KAAK8nB,aACDN,iBAAiB/mB,KAAK6M,QAAU,SAAW,cAC7C3C,EAAE0F,SARCnR,QAAQc,KAAK8nB,cACd9nB,KAAK8nB,aACL9nB,KAAK8nB,aAAyB,WAS5C,SAASC,kBAAkBC,UAAW1a,OAAQsJ,QAC1C,IAAIlS,EACAuB,GACAuK,IACAyX,IAAMD,UAAUE,oBACpB,IAAKloB,KAAKmoB,aAKN,IAHAnoB,KAAKmoB,aAAe,GACpBnoB,KAAKooB,iBAAmB,GACxBpoB,KAAKqoB,kBAAoB,GACpB3jB,EAAI,EAAGA,EAAI,KAAMA,EAClB8L,IAAMkG,UAAU,CAAC,IAAMhS,IACvB1E,KAAKqoB,kBAAkB3jB,GAAK1E,KAAK6I,YAC7B2H,IACA,IACF0X,oBACFloB,KAAKooB,iBAAiB1jB,GAAK1E,KAAK4I,OAAO4H,IAAK,IAAI0X,oBAIxD,OAAItR,OACe,QAAXtJ,QAEe,KADfrH,GAAKkK,QAAQtJ,KAAK7G,KAAKqoB,kBAAmBJ,MACvBhiB,GAAK,MAGT,KADfA,GAAKkK,QAAQtJ,KAAK7G,KAAKooB,iBAAkBH,MACtBhiB,GAAK,KAGb,QAAXqH,QAEY,KADZrH,GAAKkK,QAAQtJ,KAAK7G,KAAKqoB,kBAAmBJ,QAK3B,KADfhiB,GAAKkK,QAAQtJ,KAAK7G,KAAKooB,iBAAkBH,MAF9BhiB,GAGa,MAGZ,KADZA,GAAKkK,QAAQtJ,KAAK7G,KAAKooB,iBAAkBH,QAK1B,KADfhiB,GAAKkK,QAAQtJ,KAAK7G,KAAKqoB,kBAAmBJ,MAF/BhiB,GAGa,KAKpC,SAASqiB,kBAAkBN,UAAW1a,OAAQsJ,QAC1C,IAAIlS,EAAG8L,IAAK+R,MAEZ,GAAIviB,KAAKuoB,kBACL,OAAOR,kBAAkBlhB,KAAK7G,KAAMgoB,UAAW1a,OAAQsJ,QAY3D,IATK5W,KAAKmoB,eACNnoB,KAAKmoB,aAAe,GACpBnoB,KAAKooB,iBAAmB,GACxBpoB,KAAKqoB,kBAAoB,IAMxB3jB,EAAI,EAAGA,EAAI,GAAIA,IAAK,CAmBrB,GAjBA8L,IAAMkG,UAAU,CAAC,IAAMhS,IACnBkS,SAAW5W,KAAKooB,iBAAiB1jB,KACjC1E,KAAKooB,iBAAiB1jB,GAAK,IAAI0W,OAC3B,IAAMpb,KAAK4I,OAAO4H,IAAK,IAAIpK,QAAQ,IAAK,IAAM,IAC9C,KAEJpG,KAAKqoB,kBAAkB3jB,GAAK,IAAI0W,OAC5B,IAAMpb,KAAK6I,YAAY2H,IAAK,IAAIpK,QAAQ,IAAK,IAAM,IACnD,MAGHwQ,QAAW5W,KAAKmoB,aAAazjB,KAC9B6d,MACI,IAAMviB,KAAK4I,OAAO4H,IAAK,IAAM,KAAOxQ,KAAK6I,YAAY2H,IAAK,IAC9DxQ,KAAKmoB,aAAazjB,GAAK,IAAI0W,OAAOmH,MAAMnc,QAAQ,IAAK,IAAK,MAI1DwQ,QACW,SAAXtJ,QACAtN,KAAKooB,iBAAiB1jB,GAAGjE,KAAKunB,WAE9B,OAAOtjB,EACJ,GACHkS,QACW,QAAXtJ,QACAtN,KAAKqoB,kBAAkB3jB,GAAGjE,KAAKunB,WAE/B,OAAOtjB,EACJ,IAAKkS,QAAU5W,KAAKmoB,aAAazjB,GAAGjE,KAAKunB,WAC5C,OAAOtjB,GAOnB,SAAS8jB,SAAShY,IAAKtN,OACnB,IAAKsN,IAAIyH,UAEL,OAAOzH,IAGX,GAAqB,iBAAVtN,MACP,GAAI,QAAQzC,KAAKyC,OACbA,MAAQkgB,MAAMlgB,YAId,IAAKgT,SAFLhT,MAAQsN,IAAIqM,aAAanO,YAAYxL,QAGjC,OAAOsN,IAKnB,IAAIH,MAAQnN,MACRob,KAAO9N,IAAI8N,OAMf,OAJAA,KAAOA,KAAO,GAAKA,KAAOvK,KAAK0U,IAAInK,KAAM8I,YAAY5W,IAAIyP,OAAQ5P,QAC3DG,IAAIsJ,OACJtJ,IAAI6H,GAAGqQ,YAAYrY,MAAOiO,MAC1B9N,IAAI6H,GAAGmQ,SAASnY,MAAOiO,MACtB9N,IAGX,SAASmY,YAAYzlB,OACjB,OAAa,MAATA,OACAslB,SAASxoB,KAAMkD,OACfqS,MAAM4E,aAAana,MAAM,GAClBA,MAEAglB,IAAIhlB,KAAM,SAIzB,SAAS4oB,iBACL,OAAOxB,YAAYpnB,KAAKigB,OAAQjgB,KAAKqQ,SAGzC,SAASrC,iBAAiByU,UACtB,OAAIziB,KAAKuoB,mBACA3S,WAAW5V,KAAM,iBAClB6oB,mBAAmBhiB,KAAK7G,MAExByiB,SACOziB,KAAK8oB,wBAEL9oB,KAAK+oB,oBAGXnT,WAAW5V,KAAM,uBAClBA,KAAK+oB,kBAAoBtB,yBAEtBznB,KAAK8oB,yBAA2BrG,SACjCziB,KAAK8oB,wBACL9oB,KAAK+oB,mBAInB,SAASpa,YAAY8T,UACjB,OAAIziB,KAAKuoB,mBACA3S,WAAW5V,KAAM,iBAClB6oB,mBAAmBhiB,KAAK7G,MAExByiB,SACOziB,KAAKgpB,mBAELhpB,KAAKipB,eAGXrT,WAAW5V,KAAM,kBAClBA,KAAKipB,aAAevB,oBAEjB1nB,KAAKgpB,oBAAsBvG,SAC5BziB,KAAKgpB,mBACLhpB,KAAKipB,cAInB,SAASJ,qBACL,SAASK,UAAUpc,EAAGC,GAClB,OAAOA,EAAEnI,OAASkI,EAAElI,OAGxB,IAGIF,EACA8L,IACA2Y,OACAC,MANAC,YAAc,GACdC,WAAa,GACbC,YAAc,GAKlB,IAAK7kB,EAAI,EAAGA,EAAI,GAAIA,IAEhB8L,IAAMkG,UAAU,CAAC,IAAMhS,IACvBykB,OAASvG,YAAY5iB,KAAK6I,YAAY2H,IAAK,KAC3C4Y,MAAQxG,YAAY5iB,KAAK4I,OAAO4H,IAAK,KACrC6Y,YAAYtmB,KAAKomB,QACjBG,WAAWvmB,KAAKqmB,OAChBG,YAAYxmB,KAAKqmB,OACjBG,YAAYxmB,KAAKomB,QAIrBE,YAAYpI,KAAKiI,WACjBI,WAAWrI,KAAKiI,WAChBK,YAAYtI,KAAKiI,WAEjBlpB,KAAKipB,aAAe,IAAI7N,OAAO,KAAOmO,YAAY7oB,KAAK,KAAO,IAAK,KACnEV,KAAK+oB,kBAAoB/oB,KAAKipB,aAC9BjpB,KAAKgpB,mBAAqB,IAAI5N,OAC1B,KAAOkO,WAAW5oB,KAAK,KAAO,IAC9B,KAEJV,KAAK8oB,wBAA0B,IAAI1N,OAC/B,KAAOiO,YAAY3oB,KAAK,KAAO,IAC/B,KAIR,SAAS8oB,WAAWre,EAAGR,EAAGI,EAAGF,EAAGI,EAAGR,EAAGqU,IAGlC,IAAIR,KAYJ,OAVInT,EAAI,KAAOA,GAAK,GAEhBmT,KAAO,IAAIlI,KAAKjL,EAAI,IAAKR,EAAGI,EAAGF,EAAGI,EAAGR,EAAGqU,IACpCyE,SAASjF,KAAK2H,gBACd3H,KAAKuI,YAAY1b,IAGrBmT,KAAO,IAAIlI,KAAKjL,EAAGR,EAAGI,EAAGF,EAAGI,EAAGR,EAAGqU,IAG/BR,KAGX,SAASmL,cAActe,GACnB,IAAImT,KAAM1D,KAcV,OAZIzP,EAAI,KAAOA,GAAK,IAChByP,KAAOjF,MAAMnS,UAAUkQ,MAAM7M,KAAK2O,YAE7B,GAAKrK,EAAI,IACdmT,KAAO,IAAIlI,KAAKA,KAAKsT,IAAIhZ,MAAM,KAAMkK,OACjC2I,SAASjF,KAAK0H,mBACd1H,KAAKsI,eAAezb,IAGxBmT,KAAO,IAAIlI,KAAKA,KAAKsT,IAAIhZ,MAAM,KAAM8E,YAGlC8I,KAIX,SAASqL,gBAAgB1J,KAAMxU,IAAKC,KAChC,IACIke,IAAM,EAAIne,IAAMC,IAIpB,QAFa,EAAI+d,cAAcxJ,KAAM,EAAG2J,KAAKhE,YAAcna,KAAO,EAElDme,IAAM,EAI1B,SAASC,mBAAmB5J,KAAMzU,KAAM+S,QAAS9S,IAAKC,KAClD,IAGIoe,QACAC,aAFAtJ,UAAY,EAAI,GAAKjV,KAAO,IAFZ,EAAI+S,QAAU9S,KAAO,EACxBke,gBAAgB1J,KAAMxU,IAAKC,KAgB5C,OAXI+U,WAAa,EAEbsJ,aAAetF,WADfqF,QAAU7J,KAAO,GACoBQ,UAC9BA,UAAYgE,WAAWxE,OAC9B6J,QAAU7J,KAAO,EACjB8J,aAAetJ,UAAYgE,WAAWxE,QAEtC6J,QAAU7J,KACV8J,aAAetJ,WAGZ,CACHR,KAAM6J,QACNrJ,UAAWsJ,cAInB,SAASC,WAAWxZ,IAAK/E,IAAKC,KAC1B,IAEIue,QACAH,QAHAI,WAAaP,gBAAgBnZ,IAAIyP,OAAQxU,IAAKC,KAC9CF,KAAOuI,KAAKC,OAAOxD,IAAIiQ,YAAcyJ,WAAa,GAAK,GAAK,EAehE,OAXI1e,KAAO,EAEPye,QAAUze,KAAO2e,YADjBL,QAAUtZ,IAAIyP,OAAS,EACexU,IAAKC,KACpCF,KAAO2e,YAAY3Z,IAAIyP,OAAQxU,IAAKC,MAC3Cue,QAAUze,KAAO2e,YAAY3Z,IAAIyP,OAAQxU,IAAKC,KAC9Coe,QAAUtZ,IAAIyP,OAAS,IAEvB6J,QAAUtZ,IAAIyP,OACdgK,QAAUze,MAGP,CACHA,KAAMye,QACNhK,KAAM6J,SAId,SAASK,YAAYlK,KAAMxU,IAAKC,KAC5B,IAAIwe,WAAaP,gBAAgB1J,KAAMxU,IAAKC,KACxC0e,eAAiBT,gBAAgB1J,KAAO,EAAGxU,IAAKC,KACpD,OAAQ+Y,WAAWxE,MAAQiK,WAAaE,gBAAkB,EA0B9D,SAASC,WAAW7Z,KAChB,OAAOwZ,WAAWxZ,IAAKxQ,KAAKsqB,MAAM7e,IAAKzL,KAAKsqB,MAAM5e,KAAKF,KAtB3DkR,eAAe,IAAK,CAAC,KAAM,GAAI,KAAM,QACrCA,eAAe,IAAK,CAAC,KAAM,GAAI,KAAM,WAIrC4F,cAAc,IAAKd,UAAWY,wBAC9BE,cAAc,KAAMd,UAAWJ,QAC/BkB,cAAc,IAAKd,UAAWY,wBAC9BE,cAAc,KAAMd,UAAWJ,QAE/BuC,kBACI,CAAC,IAAK,KAAM,IAAK,OACjB,SAAUxa,MAAOqC,KAAM0O,OAAQ9K,OAC3B5D,KAAK4D,MAAMhH,OAAO,EAAG,IAAMgb,MAAMja,UAYzC,IAAIohB,kBAAoB,CACpB9e,IAAK,EACLC,IAAK,GAGT,SAAS8e,uBACL,OAAOxqB,KAAKsqB,MAAM7e,IAGtB,SAASgf,uBACL,OAAOzqB,KAAKsqB,MAAM5e,IAKtB,SAASgf,WAAWvhB,OAChB,IAAIqC,KAAOxL,KAAK6c,aAAarR,KAAKxL,MAClC,OAAgB,MAATmJ,MAAgBqC,KAAOxL,KAAK2qB,IAAqB,GAAhBxhB,MAAQqC,MAAW,KAG/D,SAASof,cAAczhB,OACnB,IAAIqC,KAAOwe,WAAWhqB,KAAM,EAAG,GAAGwL,KAClC,OAAgB,MAATrC,MAAgBqC,KAAOxL,KAAK2qB,IAAqB,GAAhBxhB,MAAQqC,MAAW,KAqD/D,SAASqf,aAAa1hB,MAAOwN,QACzB,MAAqB,iBAAVxN,MACAA,MAGNoJ,MAAMpJ,OAKU,iBADrBA,MAAQwN,OAAO1H,cAAc9F,QAElBA,MAGJ,KARIwI,SAASxI,MAAO,IAW/B,SAAS2hB,gBAAgB3hB,MAAOwN,QAC5B,MAAqB,iBAAVxN,MACAwN,OAAO1H,cAAc9F,OAAS,GAAK,EAEvCoJ,MAAMpJ,OAAS,KAAOA,MAIjC,SAAS4hB,cAAcC,GAAInf,GACvB,OAAOmf,GAAGtX,MAAM7H,EAAG,GAAG2I,OAAOwW,GAAGtX,MAAM,EAAG7H,IA1E7C6Q,eAAe,IAAK,EAAG,KAAM,OAE7BA,eAAe,KAAM,EAAG,GAAG,SAAUpP,QACjC,OAAOtN,KAAK6c,aAAa7T,YAAYhJ,KAAMsN,WAG/CoP,eAAe,MAAO,EAAG,GAAG,SAAUpP,QAClC,OAAOtN,KAAK6c,aAAa9T,cAAc/I,KAAMsN,WAGjDoP,eAAe,OAAQ,EAAG,GAAG,SAAUpP,QACnC,OAAOtN,KAAK6c,aAAa/T,SAAS9I,KAAMsN,WAG5CoP,eAAe,IAAK,EAAG,EAAG,WAC1BA,eAAe,IAAK,EAAG,EAAG,cAI1B4F,cAAc,IAAKd,WACnBc,cAAc,IAAKd,WACnBc,cAAc,IAAKd,WACnBc,cAAc,MAAM,SAAUG,SAAU9L,QACpC,OAAOA,OAAOsU,iBAAiBxI,aAEnCH,cAAc,OAAO,SAAUG,SAAU9L,QACrC,OAAOA,OAAOuU,mBAAmBzI,aAErCH,cAAc,QAAQ,SAAUG,SAAU9L,QACtC,OAAOA,OAAOwU,cAAc1I,aAGhCkB,kBAAkB,CAAC,KAAM,MAAO,SAAS,SAAUxa,MAAOqC,KAAM0O,OAAQ9K,OACpE,IAAImP,QAAUrE,OAAOF,QAAQ/K,cAAc9F,MAAOiG,MAAO8K,OAAO1B,SAEjD,MAAX+F,QACA/S,KAAKT,EAAIwT,QAETxG,gBAAgBmC,QAAQ3B,eAAiBpP,SAIjDwa,kBAAkB,CAAC,IAAK,IAAK,MAAM,SAAUxa,MAAOqC,KAAM0O,OAAQ9K,OAC9D5D,KAAK4D,OAASgU,MAAMja,UAkCxB,IAAIiiB,sBACI,2DAA2D5mB,MAAM,KACrE6mB,2BAA6B,8BAA8B7mB,MAAM,KACjE8mB,yBAA2B,uBAAuB9mB,MAAM,KACxD+mB,qBAAuBpJ,UACvBqJ,0BAA4BrJ,UAC5BsJ,wBAA0BtJ,UAE9B,SAASuJ,eAAe/gB,EAAG2C,QACvB,IAAIxE,SAAW5J,QAAQc,KAAK2rB,WACtB3rB,KAAK2rB,UACL3rB,KAAK2rB,UACDhhB,IAAW,IAANA,GAAc3K,KAAK2rB,UAAUne,SAAS/M,KAAK6M,QAC1C,SACA,cAEhB,OAAa,IAAN3C,EACDogB,cAAcjiB,SAAU9I,KAAKsqB,MAAM7e,KACnCd,EACE7B,SAAS6B,EAAE8C,OACX3E,SAGZ,SAAS8iB,oBAAoBjhB,GACzB,OAAa,IAANA,EACDogB,cAAc/qB,KAAK6rB,eAAgB7rB,KAAKsqB,MAAM7e,KAC9Cd,EACE3K,KAAK6rB,eAAelhB,EAAE8C,OACtBzN,KAAK6rB,eAGjB,SAASC,kBAAkBnhB,GACvB,OAAa,IAANA,EACDogB,cAAc/qB,KAAK+rB,aAAc/rB,KAAKsqB,MAAM7e,KAC5Cd,EACE3K,KAAK+rB,aAAaphB,EAAE8C,OACpBzN,KAAK+rB,aAGjB,SAASC,oBAAoBC,YAAa3e,OAAQsJ,QAC9C,IAAIlS,EACAuB,GACAuK,IACAyX,IAAMgE,YAAY/D,oBACtB,IAAKloB,KAAKksB,eAKN,IAJAlsB,KAAKksB,eAAiB,GACtBlsB,KAAKmsB,oBAAsB,GAC3BnsB,KAAKosB,kBAAoB,GAEpB1nB,EAAI,EAAGA,EAAI,IAAKA,EACjB8L,IAAMkG,UAAU,CAAC,IAAM,IAAIjJ,IAAI/I,GAC/B1E,KAAKosB,kBAAkB1nB,GAAK1E,KAAKgJ,YAC7BwH,IACA,IACF0X,oBACFloB,KAAKmsB,oBAAoBznB,GAAK1E,KAAK+I,cAC/ByH,IACA,IACF0X,oBACFloB,KAAKksB,eAAexnB,GAAK1E,KAAK8I,SAAS0H,IAAK,IAAI0X,oBAIxD,OAAItR,OACe,SAAXtJ,QAEe,KADfrH,GAAKkK,QAAQtJ,KAAK7G,KAAKksB,eAAgBjE,MACpBhiB,GAAK,KACN,QAAXqH,QAEQ,KADfrH,GAAKkK,QAAQtJ,KAAK7G,KAAKmsB,oBAAqBlE,MACzBhiB,GAAK,MAGT,KADfA,GAAKkK,QAAQtJ,KAAK7G,KAAKosB,kBAAmBnE,MACvBhiB,GAAK,KAGb,SAAXqH,QAEY,KADZrH,GAAKkK,QAAQtJ,KAAK7G,KAAKksB,eAAgBjE,QAK3B,KADZhiB,GAAKkK,QAAQtJ,KAAK7G,KAAKmsB,oBAAqBlE,QAK7B,KADfhiB,GAAKkK,QAAQtJ,KAAK7G,KAAKosB,kBAAmBnE,MAN/BhiB,GAOa,KACN,QAAXqH,QAEK,KADZrH,GAAKkK,QAAQtJ,KAAK7G,KAAKmsB,oBAAqBlE,QAKhC,KADZhiB,GAAKkK,QAAQtJ,KAAK7G,KAAKksB,eAAgBjE,QAKxB,KADfhiB,GAAKkK,QAAQtJ,KAAK7G,KAAKosB,kBAAmBnE,MAN/BhiB,GAOa,MAGZ,KADZA,GAAKkK,QAAQtJ,KAAK7G,KAAKosB,kBAAmBnE,QAK9B,KADZhiB,GAAKkK,QAAQtJ,KAAK7G,KAAKksB,eAAgBjE,QAKxB,KADfhiB,GAAKkK,QAAQtJ,KAAK7G,KAAKmsB,oBAAqBlE,MANjChiB,GAOa,KAKpC,SAASomB,oBAAoBJ,YAAa3e,OAAQsJ,QAC9C,IAAIlS,EAAG8L,IAAK+R,MAEZ,GAAIviB,KAAKssB,oBACL,OAAON,oBAAoBnlB,KAAK7G,KAAMisB,YAAa3e,OAAQsJ,QAU/D,IAPK5W,KAAKksB,iBACNlsB,KAAKksB,eAAiB,GACtBlsB,KAAKosB,kBAAoB,GACzBpsB,KAAKmsB,oBAAsB,GAC3BnsB,KAAKusB,mBAAqB,IAGzB7nB,EAAI,EAAGA,EAAI,EAAGA,IAAK,CA6BpB,GA1BA8L,IAAMkG,UAAU,CAAC,IAAM,IAAIjJ,IAAI/I,GAC3BkS,SAAW5W,KAAKusB,mBAAmB7nB,KACnC1E,KAAKusB,mBAAmB7nB,GAAK,IAAI0W,OAC7B,IAAMpb,KAAK8I,SAAS0H,IAAK,IAAIpK,QAAQ,IAAK,QAAU,IACpD,KAEJpG,KAAKmsB,oBAAoBznB,GAAK,IAAI0W,OAC9B,IAAMpb,KAAK+I,cAAcyH,IAAK,IAAIpK,QAAQ,IAAK,QAAU,IACzD,KAEJpG,KAAKosB,kBAAkB1nB,GAAK,IAAI0W,OAC5B,IAAMpb,KAAKgJ,YAAYwH,IAAK,IAAIpK,QAAQ,IAAK,QAAU,IACvD,MAGHpG,KAAKksB,eAAexnB,KACrB6d,MACI,IACAviB,KAAK8I,SAAS0H,IAAK,IACnB,KACAxQ,KAAK+I,cAAcyH,IAAK,IACxB,KACAxQ,KAAKgJ,YAAYwH,IAAK,IAC1BxQ,KAAKksB,eAAexnB,GAAK,IAAI0W,OAAOmH,MAAMnc,QAAQ,IAAK,IAAK,MAI5DwQ,QACW,SAAXtJ,QACAtN,KAAKusB,mBAAmB7nB,GAAGjE,KAAKwrB,aAEhC,OAAOvnB,EACJ,GACHkS,QACW,QAAXtJ,QACAtN,KAAKmsB,oBAAoBznB,GAAGjE,KAAKwrB,aAEjC,OAAOvnB,EACJ,GACHkS,QACW,OAAXtJ,QACAtN,KAAKosB,kBAAkB1nB,GAAGjE,KAAKwrB,aAE/B,OAAOvnB,EACJ,IAAKkS,QAAU5W,KAAKksB,eAAexnB,GAAGjE,KAAKwrB,aAC9C,OAAOvnB,GAOnB,SAAS8nB,gBAAgBrjB,OACrB,IAAKnJ,KAAKiY,UACN,OAAgB,MAAT9O,MAAgBnJ,KAAO6Y,IAGlC,IAAIpL,IAAMuX,IAAIhlB,KAAM,OACpB,OAAa,MAATmJ,OACAA,MAAQ0hB,aAAa1hB,MAAOnJ,KAAK6c,cAC1B7c,KAAK2qB,IAAIxhB,MAAQsE,IAAK,MAEtBA,IAIf,SAASgf,sBAAsBtjB,OAC3B,IAAKnJ,KAAKiY,UACN,OAAgB,MAAT9O,MAAgBnJ,KAAO6Y,IAElC,IAAI0F,SAAWve,KAAKyN,MAAQ,EAAIzN,KAAK6c,aAAayN,MAAM7e,KAAO,EAC/D,OAAgB,MAATtC,MAAgBoV,QAAUve,KAAK2qB,IAAIxhB,MAAQoV,QAAS,KAG/D,SAASmO,mBAAmBvjB,OACxB,IAAKnJ,KAAKiY,UACN,OAAgB,MAAT9O,MAAgBnJ,KAAO6Y,IAOlC,GAAa,MAAT1P,MAAe,CACf,IAAIoV,QAAUuM,gBAAgB3hB,MAAOnJ,KAAK6c,cAC1C,OAAO7c,KAAKyN,IAAIzN,KAAKyN,MAAQ,EAAI8Q,QAAUA,QAAU,GAErD,OAAOve,KAAKyN,OAAS,EAI7B,SAAS0d,cAAc1I,UACnB,OAAIziB,KAAKssB,qBACA1W,WAAW5V,KAAM,mBAClB2sB,qBAAqB9lB,KAAK7G,MAE1ByiB,SACOziB,KAAK4sB,qBAEL5sB,KAAK6sB,iBAGXjX,WAAW5V,KAAM,oBAClBA,KAAK6sB,eAAiBtB,sBAEnBvrB,KAAK4sB,sBAAwBnK,SAC9BziB,KAAK4sB,qBACL5sB,KAAK6sB,gBAInB,SAAS3B,mBAAmBzI,UACxB,OAAIziB,KAAKssB,qBACA1W,WAAW5V,KAAM,mBAClB2sB,qBAAqB9lB,KAAK7G,MAE1ByiB,SACOziB,KAAK8sB,0BAEL9sB,KAAK+sB,sBAGXnX,WAAW5V,KAAM,yBAClBA,KAAK+sB,oBAAsBvB,2BAExBxrB,KAAK8sB,2BAA6BrK,SACnCziB,KAAK8sB,0BACL9sB,KAAK+sB,qBAInB,SAAS9B,iBAAiBxI,UACtB,OAAIziB,KAAKssB,qBACA1W,WAAW5V,KAAM,mBAClB2sB,qBAAqB9lB,KAAK7G,MAE1ByiB,SACOziB,KAAKgtB,wBAELhtB,KAAKitB,oBAGXrX,WAAW5V,KAAM,uBAClBA,KAAKitB,kBAAoBxB,yBAEtBzrB,KAAKgtB,yBAA2BvK,SACjCziB,KAAKgtB,wBACLhtB,KAAKitB,mBAInB,SAASN,uBACL,SAASzD,UAAUpc,EAAGC,GAClB,OAAOA,EAAEnI,OAASkI,EAAElI,OAGxB,IAIIF,EACA8L,IACA0c,KACAC,OACAC,MARAC,UAAY,GACZhE,YAAc,GACdC,WAAa,GACbC,YAAc,GAMlB,IAAK7kB,EAAI,EAAGA,EAAI,EAAGA,IAEf8L,IAAMkG,UAAU,CAAC,IAAM,IAAIjJ,IAAI/I,GAC/BwoB,KAAOtK,YAAY5iB,KAAKgJ,YAAYwH,IAAK,KACzC2c,OAASvK,YAAY5iB,KAAK+I,cAAcyH,IAAK,KAC7C4c,MAAQxK,YAAY5iB,KAAK8I,SAAS0H,IAAK,KACvC6c,UAAUtqB,KAAKmqB,MACf7D,YAAYtmB,KAAKoqB,QACjB7D,WAAWvmB,KAAKqqB,OAChB7D,YAAYxmB,KAAKmqB,MACjB3D,YAAYxmB,KAAKoqB,QACjB5D,YAAYxmB,KAAKqqB,OAIrBC,UAAUpM,KAAKiI,WACfG,YAAYpI,KAAKiI,WACjBI,WAAWrI,KAAKiI,WAChBK,YAAYtI,KAAKiI,WAEjBlpB,KAAK6sB,eAAiB,IAAIzR,OAAO,KAAOmO,YAAY7oB,KAAK,KAAO,IAAK,KACrEV,KAAK+sB,oBAAsB/sB,KAAK6sB,eAChC7sB,KAAKitB,kBAAoBjtB,KAAK6sB,eAE9B7sB,KAAK4sB,qBAAuB,IAAIxR,OAC5B,KAAOkO,WAAW5oB,KAAK,KAAO,IAC9B,KAEJV,KAAK8sB,0BAA4B,IAAI1R,OACjC,KAAOiO,YAAY3oB,KAAK,KAAO,IAC/B,KAEJV,KAAKgtB,wBAA0B,IAAI5R,OAC/B,KAAOiS,UAAU3sB,KAAK,KAAO,IAC7B,KAMR,SAAS4sB,UACL,OAAOttB,KAAKqJ,QAAU,IAAM,GAGhC,SAASkkB,UACL,OAAOvtB,KAAKqJ,SAAW,GAiC3B,SAASD,SAASgG,MAAOhQ,WACrBsd,eAAetN,MAAO,EAAG,GAAG,WACxB,OAAOpP,KAAK6c,aAAazT,SACrBpJ,KAAKqJ,QACLrJ,KAAKsJ,UACLlK,cAUZ,SAASouB,cAAc/K,SAAU9L,QAC7B,OAAOA,OAAO8W,eA2DlB,SAASC,WAAWvkB,OAGhB,MAAgD,OAAxCA,MAAQ,IAAIjH,cAAcuM,OAAO,GA5G7CiO,eAAe,IAAK,CAAC,KAAM,GAAI,EAAG,QAClCA,eAAe,IAAK,CAAC,KAAM,GAAI,EAAG4Q,SAClC5Q,eAAe,IAAK,CAAC,KAAM,GAAI,EAAG6Q,SAElC7Q,eAAe,MAAO,EAAG,GAAG,WACxB,MAAO,GAAK4Q,QAAQ5c,MAAM1Q,MAAQ8b,SAAS9b,KAAKsJ,UAAW,MAG/DoT,eAAe,QAAS,EAAG,GAAG,WAC1B,MACI,GACA4Q,QAAQ5c,MAAM1Q,MACd8b,SAAS9b,KAAKsJ,UAAW,GACzBwS,SAAS9b,KAAKof,UAAW,MAIjC1C,eAAe,MAAO,EAAG,GAAG,WACxB,MAAO,GAAK1c,KAAKqJ,QAAUyS,SAAS9b,KAAKsJ,UAAW,MAGxDoT,eAAe,QAAS,EAAG,GAAG,WAC1B,MACI,GACA1c,KAAKqJ,QACLyS,SAAS9b,KAAKsJ,UAAW,GACzBwS,SAAS9b,KAAKof,UAAW,MAcjChW,SAAS,KAAK,GACdA,SAAS,KAAK,GAQdkZ,cAAc,IAAKkL,eACnBlL,cAAc,IAAKkL,eACnBlL,cAAc,IAAKd,UAAWa,kBAC9BC,cAAc,IAAKd,UAAWY,wBAC9BE,cAAc,IAAKd,UAAWY,wBAC9BE,cAAc,KAAMd,UAAWJ,QAC/BkB,cAAc,KAAMd,UAAWJ,QAC/BkB,cAAc,KAAMd,UAAWJ,QAE/BkB,cAAc,MAAOb,WACrBa,cAAc,QAASZ,WACvBY,cAAc,MAAOb,WACrBa,cAAc,QAASZ,WAEvB+B,cAAc,CAAC,IAAK,MAAOU,MAC3BV,cAAc,CAAC,IAAK,OAAO,SAAUta,MAAO6T,MAAO9C,QAC/C,IAAIyT,OAASvK,MAAMja,OACnB6T,MAAMmH,MAAmB,KAAXwJ,OAAgB,EAAIA,UAEtClK,cAAc,CAAC,IAAK,MAAM,SAAUta,MAAO6T,MAAO9C,QAC9CA,OAAO0T,MAAQ1T,OAAOF,QAAQ9Q,KAAKC,OACnC+Q,OAAO2T,UAAY1kB,SAEvBsa,cAAc,CAAC,IAAK,OAAO,SAAUta,MAAO6T,MAAO9C,QAC/C8C,MAAMmH,MAAQf,MAAMja,OACpB4O,gBAAgBmC,QAAQzB,SAAU,KAEtCgL,cAAc,OAAO,SAAUta,MAAO6T,MAAO9C,QACzC,IAAI4T,IAAM3kB,MAAMvE,OAAS,EACzBoY,MAAMmH,MAAQf,MAAMja,MAAMf,OAAO,EAAG0lB,MACpC9Q,MAAMoH,QAAUhB,MAAMja,MAAMf,OAAO0lB,MACnC/V,gBAAgBmC,QAAQzB,SAAU,KAEtCgL,cAAc,SAAS,SAAUta,MAAO6T,MAAO9C,QAC3C,IAAI6T,KAAO5kB,MAAMvE,OAAS,EACtBopB,KAAO7kB,MAAMvE,OAAS,EAC1BoY,MAAMmH,MAAQf,MAAMja,MAAMf,OAAO,EAAG2lB,OACpC/Q,MAAMoH,QAAUhB,MAAMja,MAAMf,OAAO2lB,KAAM,IACzC/Q,MAAMqH,QAAUjB,MAAMja,MAAMf,OAAO4lB,OACnCjW,gBAAgBmC,QAAQzB,SAAU,KAEtCgL,cAAc,OAAO,SAAUta,MAAO6T,MAAO9C,QACzC,IAAI4T,IAAM3kB,MAAMvE,OAAS,EACzBoY,MAAMmH,MAAQf,MAAMja,MAAMf,OAAO,EAAG0lB,MACpC9Q,MAAMoH,QAAUhB,MAAMja,MAAMf,OAAO0lB,SAEvCrK,cAAc,SAAS,SAAUta,MAAO6T,MAAO9C,QAC3C,IAAI6T,KAAO5kB,MAAMvE,OAAS,EACtBopB,KAAO7kB,MAAMvE,OAAS,EAC1BoY,MAAMmH,MAAQf,MAAMja,MAAMf,OAAO,EAAG2lB,OACpC/Q,MAAMoH,QAAUhB,MAAMja,MAAMf,OAAO2lB,KAAM,IACzC/Q,MAAMqH,QAAUjB,MAAMja,MAAMf,OAAO4lB,UAWvC,IAAIC,2BAA6B,gBAK7BC,WAAatJ,WAAW,SAAS,GAErC,SAASuJ,eAAe9kB,MAAOC,QAASC,SACpC,OAAIF,MAAQ,GACDE,QAAU,KAAO,KAEjBA,QAAU,KAAO,KAIhC,IAuBI6kB,aAvBAC,WAAa,CACbtkB,SAAU6R,gBACVpS,eAAgB6T,sBAChBzM,YAAa8M,mBACbpS,QAASsS,eACTvS,uBAAwBwS,8BACxBvT,aAAcyT,oBAEdnV,OAAQ0e,oBACRze,YAAa0e,yBAEb/b,KAAM+e,kBAENzhB,SAAUsiB,sBACVpiB,YAAasiB,yBACbviB,cAAesiB,2BAEfpiB,cAAeglB,4BAIfK,QAAU,GACVC,eAAiB,GAGrB,SAASC,aAAaC,KAAMC,MACxB,IAAIhqB,EACAiqB,KAAO5a,KAAK0U,IAAIgG,KAAK7pB,OAAQ8pB,KAAK9pB,QACtC,IAAKF,EAAI,EAAGA,EAAIiqB,KAAMjqB,GAAK,EACvB,GAAI+pB,KAAK/pB,KAAOgqB,KAAKhqB,GACjB,OAAOA,EAGf,OAAOiqB,KAGX,SAASC,gBAAgBzrB,KACrB,OAAOA,IAAMA,IAAIjB,cAAckE,QAAQ,IAAK,KAAOjD,IAMvD,SAAS0rB,aAAaC,OAOlB,IANA,IACIC,EACAC,KACArY,OACAnS,MAJAE,EAAI,EAMDA,EAAIoqB,MAAMlqB,QAAQ,CAKrB,IAHAmqB,GADAvqB,MAAQoqB,gBAAgBE,MAAMpqB,IAAIF,MAAM,MAC9BI,OAEVoqB,MADAA,KAAOJ,gBAAgBE,MAAMpqB,EAAI,KACnBsqB,KAAKxqB,MAAM,KAAO,KACzBuqB,EAAI,GAAG,CAEV,GADApY,OAASsY,WAAWzqB,MAAMkP,MAAM,EAAGqb,GAAGruB,KAAK,MAEvC,OAAOiW,OAEX,GACIqY,MACAA,KAAKpqB,QAAUmqB,GACfP,aAAahqB,MAAOwqB,OAASD,EAAI,EAGjC,MAEJA,IAEJrqB,IAEJ,OAAO0pB,aAGX,SAASc,iBAAiB/oB,MAGtB,SAAUA,OAAQA,KAAKyB,MAAM,gBAGjC,SAASqnB,WAAW9oB,MAChB,IAAIgpB,UAAY,KAGhB,QACsB3gB,IAAlB8f,QAAQnoB,OAERxG,QACAA,OAAO8I,SACPymB,iBAAiB/oB,MAEjB,IACIgpB,UAAYf,aAAagB,MAEzB,0BAAe,KAAcjpB,MAC7BkpB,mBAAmBF,WACrB,MAAOjqB,GAGLopB,QAAQnoB,MAAQ,KAGxB,OAAOmoB,QAAQnoB,MAMnB,SAASkpB,mBAAmBlsB,IAAKmsB,QAC7B,IAAIC,KAqBJ,OApBIpsB,OAEIosB,KADAtZ,YAAYqZ,QACLE,UAAUrsB,KAEVwF,aAAaxF,IAAKmsB,SAKzBlB,aAAemB,KAEQ,oBAAZ/U,SAA2BA,QAAQH,MAE1CG,QAAQH,KACJ,UAAYlX,IAAM,2CAM3BirB,aAAagB,MAGxB,SAASzmB,aAAaxC,KAAM+T,QACxB,GAAe,OAAXA,OAAiB,CACjB,IAAIvD,OACA8E,aAAe4S,WAEnB,GADAnU,OAAO3I,KAAOpL,KACO,MAAjBmoB,QAAQnoB,MACR6U,gBACI,uBACA,2OAKJS,aAAe6S,QAAQnoB,MAAM+U,aAC1B,GAA2B,MAAvBhB,OAAOuV,aACd,GAAoC,MAAhCnB,QAAQpU,OAAOuV,cACfhU,aAAe6S,QAAQpU,OAAOuV,cAAcvU,YACzC,CAEH,GAAc,OADdvE,OAASsY,WAAW/U,OAAOuV,eAWvB,OAPKlB,eAAerU,OAAOuV,gBACvBlB,eAAerU,OAAOuV,cAAgB,IAE1ClB,eAAerU,OAAOuV,cAAc1sB,KAAK,CACrCoD,KACA+T,SAEG,KATPuB,aAAe9E,OAAOuE,QA0BlC,OAbAoT,QAAQnoB,MAAQ,IAAIwV,OAAOH,aAAaC,aAAcvB,SAElDqU,eAAepoB,OACfooB,eAAepoB,MAAMlH,SAAQ,SAAUkoB,GACnCxe,aAAawe,EAAEhhB,KAAMghB,EAAEjN,WAO/BmV,mBAAmBlpB,MAEZmoB,QAAQnoB,MAIf,cADOmoB,QAAQnoB,MACR,KAIf,SAASupB,aAAavpB,KAAM+T,QACxB,GAAc,MAAVA,OAAgB,CAChB,IAAIvD,OACAgZ,UACAlU,aAAe4S,WAEE,MAAjBC,QAAQnoB,OAA+C,MAA9BmoB,QAAQnoB,MAAMspB,aAEvCnB,QAAQnoB,MAAM8U,IAAIO,aAAa8S,QAAQnoB,MAAM+U,QAAShB,UAIrC,OADjByV,UAAYV,WAAW9oB,SAEnBsV,aAAekU,UAAUzU,SAE7BhB,OAASsB,aAAaC,aAAcvB,QACnB,MAAbyV,YAIAzV,OAAO3I,KAAOpL,OAElBwQ,OAAS,IAAIgF,OAAOzB,SACbuV,aAAenB,QAAQnoB,MAC9BmoB,QAAQnoB,MAAQwQ,QAIpB0Y,mBAAmBlpB,WAGE,MAAjBmoB,QAAQnoB,QAC0B,MAA9BmoB,QAAQnoB,MAAMspB,cACdnB,QAAQnoB,MAAQmoB,QAAQnoB,MAAMspB,aAC1BtpB,OAASkpB,sBACTA,mBAAmBlpB,OAEC,MAAjBmoB,QAAQnoB,cACRmoB,QAAQnoB,OAI3B,OAAOmoB,QAAQnoB,MAInB,SAASqpB,UAAUrsB,KACf,IAAIwT,OAMJ,GAJIxT,KAAOA,IAAI6W,SAAW7W,IAAI6W,QAAQoV,QAClCjsB,IAAMA,IAAI6W,QAAQoV,QAGjBjsB,IACD,OAAOirB,aAGX,IAAKlvB,QAAQiE,KAAM,CAGf,GADAwT,OAASsY,WAAW9rB,KAEhB,OAAOwT,OAEXxT,IAAM,CAACA,KAGX,OAAO0rB,aAAa1rB,KAGxB,SAASysB,cACL,OAAO1a,KAAKoZ,SAGhB,SAASuB,cAAcllB,GACnB,IAAIwM,SACArK,EAAInC,EAAEmZ,GAuCV,OArCIhX,IAAsC,IAAjCiL,gBAAgBpN,GAAGwM,WACxBA,SACIrK,EAAEmX,OAAS,GAAKnX,EAAEmX,OAAS,GACrBA,MACAnX,EAAEoX,MAAQ,GAAKpX,EAAEoX,MAAQkD,YAAYta,EAAEkX,MAAOlX,EAAEmX,QAC9CC,KACApX,EAAEqX,MAAQ,GACRrX,EAAEqX,MAAQ,IACG,KAAZrX,EAAEqX,QACgB,IAAdrX,EAAEsX,SACe,IAAdtX,EAAEuX,SACiB,IAAnBvX,EAAEwX,cACVH,KACArX,EAAEsX,QAAU,GAAKtX,EAAEsX,QAAU,GAC3BA,OACAtX,EAAEuX,QAAU,GAAKvX,EAAEuX,QAAU,GAC3BA,OACAvX,EAAEwX,aAAe,GAAKxX,EAAEwX,aAAe,IACrCA,aACC,EAGjBvM,gBAAgBpN,GAAGmlB,qBAClB3Y,SAAW6M,MAAQ7M,SAAW+M,QAE/B/M,SAAW+M,MAEXnM,gBAAgBpN,GAAGolB,iBAAgC,IAAd5Y,WACrCA,SAAWoN,MAEXxM,gBAAgBpN,GAAGqlB,mBAAkC,IAAd7Y,WACvCA,SAAWqN,SAGfzM,gBAAgBpN,GAAGwM,SAAWA,UAG3BxM,EAKX,IAAIslB,iBACI,iJACJC,cACI,6IACJC,QAAU,wBACVC,SAAW,CACP,CAAC,eAAgB,uBACjB,CAAC,aAAc,mBACf,CAAC,eAAgB,kBACjB,CAAC,aAAc,eAAe,GAC9B,CAAC,WAAY,eACb,CAAC,UAAW,cAAc,GAC1B,CAAC,aAAc,cACf,CAAC,WAAY,SACb,CAAC,aAAc,eACf,CAAC,YAAa,eAAe,GAC7B,CAAC,UAAW,SACZ,CAAC,SAAU,SAAS,GACpB,CAAC,OAAQ,SAAS,IAGtBC,SAAW,CACP,CAAC,gBAAiB,uBAClB,CAAC,gBAAiB,sBAClB,CAAC,WAAY,kBACb,CAAC,QAAS,aACV,CAAC,cAAe,qBAChB,CAAC,cAAe,oBAChB,CAAC,SAAU,gBACX,CAAC,OAAQ,YACT,CAAC,KAAM,SAEXC,gBAAkB,qBAElBzY,QACI,0LACJ0Y,WAAa,CACTC,GAAI,EACJC,IAAK,EACLC,KAAK,IACLC,KAAK,IACLC,KAAK,IACLC,KAAK,IACLC,KAAK,IACLC,KAAK,IACLC,KAAK,IACLC,KAAK,KAIb,SAASC,cAAchX,QACnB,IAAIxV,EACA6B,EAGA4qB,UACAC,WACAC,WACAC,SALAplB,OAASgO,OAAOR,GAChB9R,MAAQqoB,iBAAiBrgB,KAAK1D,SAAWgkB,cAActgB,KAAK1D,QAK5DqlB,YAAcnB,SAASxrB,OACvB4sB,YAAcnB,SAASzrB,OAE3B,GAAIgD,MAAO,CAEP,IADAmQ,gBAAgBmC,QAAQxC,KAAM,EACzBhT,EAAI,EAAG6B,EAAIgrB,YAAa7sB,EAAI6B,EAAG7B,IAChC,GAAI0rB,SAAS1rB,GAAG,GAAGkL,KAAKhI,MAAM,IAAK,CAC/BwpB,WAAahB,SAAS1rB,GAAG,GACzBysB,WAA+B,IAAnBf,SAAS1rB,GAAG,GACxB,MAGR,GAAkB,MAAd0sB,WAEA,YADAlX,OAAOvB,UAAW,GAGtB,GAAI/Q,MAAM,GAAI,CACV,IAAKlD,EAAI,EAAG6B,EAAIirB,YAAa9sB,EAAI6B,EAAG7B,IAChC,GAAI2rB,SAAS3rB,GAAG,GAAGkL,KAAKhI,MAAM,IAAK,CAE/BypB,YAAczpB,MAAM,IAAM,KAAOyoB,SAAS3rB,GAAG,GAC7C,MAGR,GAAkB,MAAd2sB,WAEA,YADAnX,OAAOvB,UAAW,GAI1B,IAAKwY,WAA2B,MAAdE,WAEd,YADAnX,OAAOvB,UAAW,GAGtB,GAAI/Q,MAAM,GAAI,CACV,IAAIuoB,QAAQvgB,KAAKhI,MAAM,IAInB,YADAsS,OAAOvB,UAAW,GAFlB2Y,SAAW,IAMnBpX,OAAOP,GAAKyX,YAAcC,YAAc,KAAOC,UAAY,IAC3DG,0BAA0BvX,aAE1BA,OAAOvB,UAAW,EAI1B,SAAS+Y,0BACLC,QACAC,SACAC,OACAC,QACAC,UACAC,WAEA,IAAIziB,OAAS,CACT0iB,eAAeN,SACfpK,yBAAyBpX,QAAQyhB,UACjCjgB,SAASkgB,OAAQ,IACjBlgB,SAASmgB,QAAS,IAClBngB,SAASogB,UAAW,KAOxB,OAJIC,WACAziB,OAAOxM,KAAK4O,SAASqgB,UAAW,KAG7BziB,OAGX,SAAS0iB,eAAeN,SACpB,IAAI1R,KAAOtO,SAASggB,QAAS,IAC7B,OAAI1R,MAAQ,GACD,IAAOA,KACPA,MAAQ,IACR,KAAOA,KAEXA,KAGX,SAASiS,kBAAkBznB,GAEvB,OAAOA,EACFrE,QAAQ,qBAAsB,KAC9BA,QAAQ,WAAY,KACpBA,QAAQ,SAAU,IAClBA,QAAQ,SAAU,IAG3B,SAAS+rB,aAAaC,WAAYC,YAAanY,QAC3C,OAAIkY,YAEsB/G,2BAA2Blb,QAAQiiB,cACrC,IAAIhc,KAChBic,YAAY,GACZA,YAAY,GACZA,YAAY,IACdxM,WAEF9N,gBAAgBmC,QAAQpC,iBAAkB,EAC1CoC,OAAOvB,UAAW,GACX,GAMnB,SAAS2Z,gBAAgBC,UAAWC,eAAgBC,WAChD,GAAIF,UACA,OAAOhC,WAAWgC,WACf,GAAIC,eAEP,OAAO,EAEP,IAAIre,GAAKxC,SAAS8gB,UAAW,IACzB9nB,EAAIwJ,GAAK,IAEb,OADSA,GAAKxJ,GAAK,IACR,GAAKA,EAKxB,SAAS+nB,kBAAkBxY,QACvB,IACIyY,YADA/qB,MAAQiQ,QAAQjI,KAAKsiB,kBAAkBhY,OAAOR,KAElD,GAAI9R,MAAO,CASP,GARA+qB,YAAcjB,0BACV9pB,MAAM,GACNA,MAAM,GACNA,MAAM,GACNA,MAAM,GACNA,MAAM,GACNA,MAAM,KAELuqB,aAAavqB,MAAM,GAAI+qB,YAAazY,QACrC,OAGJA,OAAO4J,GAAK6O,YACZzY,OAAOL,KAAOyY,gBAAgB1qB,MAAM,GAAIA,MAAM,GAAIA,MAAM,KAExDsS,OAAO7B,GAAKoR,cAAc/Y,MAAM,KAAMwJ,OAAO4J,IAC7C5J,OAAO7B,GAAGiO,cAAcpM,OAAO7B,GAAGiN,gBAAkBpL,OAAOL,MAE3D9B,gBAAgBmC,QAAQrC,SAAU,OAElCqC,OAAOvB,UAAW,EAK1B,SAASia,iBAAiB1Y,QACtB,IAAI2I,QAAUyN,gBAAgB1gB,KAAKsK,OAAOR,IAC1B,OAAZmJ,SAKJqO,cAAchX,SACU,IAApBA,OAAOvB,kBACAuB,OAAOvB,SAKlB+Z,kBAAkBxY,SACM,IAApBA,OAAOvB,kBACAuB,OAAOvB,SAKduB,OAAO1B,QACP0B,OAAOvB,UAAW,EAGlBpD,MAAMsd,wBAAwB3Y,WAtB9BA,OAAO7B,GAAK,IAAIjC,MAAMyM,QAAQ,IAoCtC,SAASiQ,SAAShmB,EAAGC,EAAGC,GACpB,OAAS,MAALF,EACOA,EAEF,MAALC,EACOA,EAEJC,EAGX,SAAS+lB,iBAAiB7Y,QAEtB,IAAI8Y,SAAW,IAAI5c,KAAKb,MAAM3D,OAC9B,OAAIsI,OAAO+Y,QACA,CACHD,SAAShN,iBACTgN,SAASlN,cACTkN,SAAStN,cAGV,CAACsN,SAAS/M,cAAe+M,SAASjN,WAAYiN,SAASrN,WAOlE,SAASuN,gBAAgBhZ,QACrB,IAAIxV,EACA4Z,KAEA6U,YACAC,gBACAC,UAHAlqB,MAAQ,GAKZ,IAAI+Q,OAAO7B,GAAX,CAgCA,IA5BA8a,YAAcJ,iBAAiB7Y,QAG3BA,OAAO0J,IAAyB,MAAnB1J,OAAO4J,GAAGI,OAAqC,MAApBhK,OAAO4J,GAAGG,QAClDqP,sBAAsBpZ,QAID,MAArBA,OAAOqZ,aACPF,UAAYP,SAAS5Y,OAAO4J,GAAGE,MAAOmP,YAAYnP,QAG9C9J,OAAOqZ,WAAa9O,WAAW4O,YACT,IAAtBnZ,OAAOqZ,cAEPxb,gBAAgBmC,QAAQ4V,oBAAqB,GAGjDxR,KAAOmL,cAAc4J,UAAW,EAAGnZ,OAAOqZ,YAC1CrZ,OAAO4J,GAAGG,OAAS3F,KAAKwH,cACxB5L,OAAO4J,GAAGI,MAAQ5F,KAAKoH,cAQtBhhB,EAAI,EAAGA,EAAI,GAAqB,MAAhBwV,OAAO4J,GAAGpf,KAAcA,EACzCwV,OAAO4J,GAAGpf,GAAKyE,MAAMzE,GAAKyuB,YAAYzuB,GAI1C,KAAOA,EAAI,EAAGA,IACVwV,OAAO4J,GAAGpf,GAAKyE,MAAMzE,GACD,MAAhBwV,OAAO4J,GAAGpf,GAAoB,IAANA,EAAU,EAAI,EAAKwV,OAAO4J,GAAGpf,GAKrC,KAApBwV,OAAO4J,GAAGK,OACY,IAAtBjK,OAAO4J,GAAGM,SACY,IAAtBlK,OAAO4J,GAAGO,SACiB,IAA3BnK,OAAO4J,GAAGQ,eAEVpK,OAAOsZ,UAAW,EAClBtZ,OAAO4J,GAAGK,MAAQ,GAGtBjK,OAAO7B,IAAM6B,OAAO+Y,QAAUxJ,cAAgBD,YAAY9Y,MACtD,KACAvH,OAEJiqB,gBAAkBlZ,OAAO+Y,QACnB/Y,OAAO7B,GAAGuN,YACV1L,OAAO7B,GAAGwN,SAIG,MAAf3L,OAAOL,MACPK,OAAO7B,GAAGiO,cAAcpM,OAAO7B,GAAGiN,gBAAkBpL,OAAOL,MAG3DK,OAAOsZ,WACPtZ,OAAO4J,GAAGK,MAAQ,IAKlBjK,OAAO0J,SACgB,IAAhB1J,OAAO0J,GAAG7Y,GACjBmP,OAAO0J,GAAG7Y,IAAMqoB,kBAEhBrb,gBAAgBmC,QAAQpC,iBAAkB,IAIlD,SAASwb,sBAAsBpZ,QAC3B,IAAIvM,EAAG+S,SAAUlV,KAAM+S,QAAS9S,IAAKC,IAAK+nB,KAAMC,gBAAiBC,QAGrD,OADZhmB,EAAIuM,OAAO0J,IACLnE,IAAqB,MAAP9R,EAAEkS,GAAoB,MAAPlS,EAAE6Q,GACjC/S,IAAM,EACNC,IAAM,EAMNgV,SAAWoS,SACPnlB,EAAE8R,GACFvF,OAAO4J,GAAGE,MACVgG,WAAW4J,cAAe,EAAG,GAAG3T,MAEpCzU,KAAOsnB,SAASnlB,EAAEkS,EAAG,KACrBtB,QAAUuU,SAASnlB,EAAE6Q,EAAG,IACV,GAAKD,QAAU,KACzBmV,iBAAkB,KAGtBjoB,IAAMyO,OAAOF,QAAQsQ,MAAM7e,IAC3BC,IAAMwO,OAAOF,QAAQsQ,MAAM5e,IAE3BioB,QAAU3J,WAAW4J,cAAenoB,IAAKC,KAEzCgV,SAAWoS,SAASnlB,EAAE2R,GAAIpF,OAAO4J,GAAGE,MAAO2P,QAAQ1T,MAGnDzU,KAAOsnB,SAASnlB,EAAEA,EAAGgmB,QAAQnoB,MAElB,MAAPmC,EAAE5C,IAEFwT,QAAU5Q,EAAE5C,GACE,GAAKwT,QAAU,KACzBmV,iBAAkB,GAER,MAAP/lB,EAAEzI,GAETqZ,QAAU5Q,EAAEzI,EAAIuG,KACZkC,EAAEzI,EAAI,GAAKyI,EAAEzI,EAAI,KACjBwuB,iBAAkB,IAItBnV,QAAU9S,KAGdD,KAAO,GAAKA,KAAO2e,YAAYzJ,SAAUjV,IAAKC,KAC9CqM,gBAAgBmC,QAAQ6V,gBAAiB,EACf,MAAnB2D,gBACP3b,gBAAgBmC,QAAQ8V,kBAAmB,GAE3CyD,KAAO5J,mBAAmBnJ,SAAUlV,KAAM+S,QAAS9S,IAAKC,KACxDwO,OAAO4J,GAAGE,MAAQyP,KAAKxT,KACvB/F,OAAOqZ,WAAaE,KAAKhT,WAWjC,SAASgR,0BAA0BvX,QAE/B,GAAIA,OAAOP,KAAOpE,MAAMse,SAIxB,GAAI3Z,OAAOP,KAAOpE,MAAMue,SAAxB,CAIA5Z,OAAO4J,GAAK,GACZ/L,gBAAgBmC,QAAQlD,OAAQ,EAGhC,IACItS,EACA2tB,YACA7O,OACApU,MACA2kB,QAGAnc,IACA8L,SATAxX,OAAS,GAAKgO,OAAOR,GAMrBsa,aAAe9nB,OAAOtH,OACtBqvB,uBAAyB,EAO7B,IADAvQ,UAFAF,OACItG,aAAahD,OAAOP,GAAIO,OAAOF,SAASpS,MAAM0U,mBAAqB,IACrD1X,OACbF,EAAI,EAAGA,EAAIgf,SAAUhf,IACtB0K,MAAQoU,OAAO9e,IACf2tB,aAAenmB,OAAOtE,MAAM8a,sBAAsBtT,MAAO8K,UACrD,IAAI,OAEJ6Z,QAAU7nB,OAAO9D,OAAO,EAAG8D,OAAOiE,QAAQkiB,eAC9BztB,OAAS,GACjBmT,gBAAgBmC,QAAQhD,YAAYnU,KAAKgxB,SAE7C7nB,OAASA,OAAOwH,MACZxH,OAAOiE,QAAQkiB,aAAeA,YAAYztB,QAE9CqvB,wBAA0B5B,YAAYztB,QAGtC6X,qBAAqBrN,QACjBijB,YACAta,gBAAgBmC,QAAQlD,OAAQ,EAEhCe,gBAAgBmC,QAAQjD,aAAalU,KAAKqM,OAE9CyU,wBAAwBzU,MAAOijB,YAAanY,SACrCA,OAAO1B,UAAY6Z,aAC1Bta,gBAAgBmC,QAAQjD,aAAalU,KAAKqM,OAKlD2I,gBAAgBmC,QAAQ9C,cACpB4c,aAAeC,uBACf/nB,OAAOtH,OAAS,GAChBmT,gBAAgBmC,QAAQhD,YAAYnU,KAAKmJ,QAKzCgO,OAAO4J,GAAGK,OAAS,KACiB,IAApCpM,gBAAgBmC,QAAQzB,SACxByB,OAAO4J,GAAGK,MAAQ,IAElBpM,gBAAgBmC,QAAQzB,aAAUjK,GAGtCuJ,gBAAgBmC,QAAQvC,gBAAkBuC,OAAO4J,GAAGpQ,MAAM,GAC1DqE,gBAAgBmC,QAAQ9Q,SAAW8Q,OAAO2T,UAE1C3T,OAAO4J,GAAGK,MAAQ+P,gBACdha,OAAOF,QACPE,OAAO4J,GAAGK,MACVjK,OAAO2T,WAKC,QADZjW,IAAMG,gBAAgBmC,QAAQtC,OAE1BsC,OAAO4J,GAAGE,MAAQ9J,OAAOF,QAAQma,gBAAgBvc,IAAKsC,OAAO4J,GAAGE,QAGpEkP,gBAAgBhZ,QAChB2V,cAAc3V,aAhFVwY,kBAAkBxY,aAJlBgX,cAAchX,QAuFtB,SAASga,gBAAgBvd,OAAQrK,KAAMlD,UACnC,IAAIgrB,KAEJ,OAAgB,MAAZhrB,SAEOkD,KAEgB,MAAvBqK,OAAO5I,aACA4I,OAAO5I,aAAazB,KAAMlD,UACX,MAAfuN,OAAOzN,OAEdkrB,KAAOzd,OAAOzN,KAAKE,YACPkD,KAAO,KACfA,MAAQ,IAEP8nB,MAAiB,KAAT9nB,OACTA,KAAO,GAEJA,MAGAA,KAKf,SAAS+nB,yBAAyBna,QAC9B,IAAIoa,WACAC,WACAC,YACA9vB,EACA+vB,aACAC,iBACAC,mBAAoB,EACpBC,WAAa1a,OAAOP,GAAG/U,OAE3B,GAAmB,IAAfgwB,WAGA,OAFA7c,gBAAgBmC,QAAQ1C,eAAgB,OACxC0C,OAAO7B,GAAK,IAAIjC,KAAKyC,MAIzB,IAAKnU,EAAI,EAAGA,EAAIkwB,WAAYlwB,IACxB+vB,aAAe,EACfC,kBAAmB,EACnBJ,WAAanb,WAAW,GAAIe,QACN,MAAlBA,OAAO+Y,UACPqB,WAAWrB,QAAU/Y,OAAO+Y,SAEhCqB,WAAW3a,GAAKO,OAAOP,GAAGjV,GAC1B+sB,0BAA0B6C,YAEtBrc,QAAQqc,cACRI,kBAAmB,GAIvBD,cAAgB1c,gBAAgBuc,YAAYld,cAG5Cqd,cAAkE,GAAlD1c,gBAAgBuc,YAAYrd,aAAarS,OAEzDmT,gBAAgBuc,YAAYO,MAAQJ,aAE/BE,kBAaGF,aAAeD,cACfA,YAAcC,aACdF,WAAaD,aAbE,MAAfE,aACAC,aAAeD,aACfE,oBAEAF,YAAcC,aACdF,WAAaD,WACTI,mBACAC,mBAAoB,IAWpC31B,OAAOkb,OAAQqa,YAAcD,YAGjC,SAASQ,iBAAiB5a,QACtB,IAAIA,OAAO7B,GAAX,CAIA,IAAI3T,EAAIyb,qBAAqBjG,OAAOR,IAChCqb,eAAsBvmB,IAAV9J,EAAE+I,IAAoB/I,EAAE4Z,KAAO5Z,EAAE+I,IACjDyM,OAAO4J,GAAK9d,IACR,CAACtB,EAAEub,KAAMvb,EAAE2L,MAAO0kB,UAAWrwB,EAAE4H,KAAM5H,EAAE6H,OAAQ7H,EAAE2a,OAAQ3a,EAAEsa,cAC3D,SAAUra,KACN,OAAOA,KAAOgN,SAAShN,IAAK,OAIpCuuB,gBAAgBhZ,SAGpB,SAAS8a,iBAAiB9a,QACtB,IAAI3D,IAAM,IAAI0D,OAAO4V,cAAcoF,cAAc/a,UAOjD,OANI3D,IAAIid,WAEJjd,IAAIoU,IAAI,EAAG,KACXpU,IAAIid,cAAWhlB,GAGZ+H,IAGX,SAAS0e,cAAc/a,QACnB,IAAI/Q,MAAQ+Q,OAAOR,GACfpM,OAAS4M,OAAOP,GAIpB,OAFAO,OAAOF,QAAUE,OAAOF,SAAWwV,UAAUtV,OAAON,IAEtC,OAAVzQ,YAA8BqF,IAAXlB,QAAkC,KAAVnE,MACpCyP,cAAc,CAAEvB,WAAW,KAGjB,iBAAVlO,QACP+Q,OAAOR,GAAKvQ,MAAQ+Q,OAAOF,QAAQtN,SAASvD,QAG5CiR,SAASjR,OACF,IAAI8Q,OAAO4V,cAAc1mB,SACzBgN,OAAOhN,OACd+Q,OAAO7B,GAAKlP,MACLjK,QAAQoO,QACf+mB,yBAAyBna,QAClB5M,OACPmkB,0BAA0BvX,QAE1Bgb,gBAAgBhb,QAGfjC,QAAQiC,UACTA,OAAO7B,GAAK,MAGT6B,SAGX,SAASgb,gBAAgBhb,QACrB,IAAI/Q,MAAQ+Q,OAAOR,GACfzD,YAAY9M,OACZ+Q,OAAO7B,GAAK,IAAIjC,KAAKb,MAAM3D,OACpBuE,OAAOhN,OACd+Q,OAAO7B,GAAK,IAAIjC,KAAKjN,MAAMsN,WACH,iBAAVtN,MACdypB,iBAAiB1Y,QACVhb,QAAQiK,QACf+Q,OAAO4J,GAAK9d,IAAImD,MAAMuK,MAAM,IAAI,SAAU/O,KACtC,OAAOgN,SAAShN,IAAK,OAEzBuuB,gBAAgBhZ,SACT1S,SAAS2B,OAChB2rB,iBAAiB5a,QACVhE,SAAS/M,OAEhB+Q,OAAO7B,GAAK,IAAIjC,KAAKjN,OAErBoM,MAAMsd,wBAAwB3Y,QAItC,SAASrD,iBAAiB1N,MAAOmE,OAAQqJ,OAAQC,OAAQqO,OACrD,IAAIjY,EAAI,GA2BR,OAzBe,IAAXM,SAA8B,IAAXA,SACnBsJ,OAAStJ,OACTA,YAASkB,IAGE,IAAXmI,SAA8B,IAAXA,SACnBC,OAASD,OACTA,YAASnI,IAIRhH,SAAS2B,QAAU2M,cAAc3M,QACjCjK,QAAQiK,QAA2B,IAAjBA,MAAMvE,UAEzBuE,WAAQqF,GAIZxB,EAAEyM,kBAAmB,EACrBzM,EAAEimB,QAAUjmB,EAAE8M,OAASmL,MACvBjY,EAAE4M,GAAKjD,OACP3J,EAAE0M,GAAKvQ,MACP6D,EAAE2M,GAAKrM,OACPN,EAAEwL,QAAU5B,OAELoe,iBAAiBhoB,GAG5B,SAAS4mB,YAAYzqB,MAAOmE,OAAQqJ,OAAQC,QACxC,OAAOC,iBAAiB1N,MAAOmE,OAAQqJ,OAAQC,QAAQ,GAve3DrB,MAAMsd,wBAA0BpY,UAC5B,iSAGA,SAAUP,QACNA,OAAO7B,GAAK,IAAIjC,KAAK8D,OAAOR,IAAMQ,OAAO+Y,QAAU,OAAS,QAuLpE1d,MAAMse,SAAW,aAGjBte,MAAMue,SAAW,aA2SjB,IAAIqB,aAAe1a,UACX,sGACA,WACI,IAAI2a,MAAQxB,YAAYljB,MAAM,KAAM8E,WACpC,OAAIxV,KAAKiY,WAAamd,MAAMnd,UACjBmd,MAAQp1B,KAAOA,KAAOo1B,MAEtBxc,mBAInByc,aAAe5a,UACX,sGACA,WACI,IAAI2a,MAAQxB,YAAYljB,MAAM,KAAM8E,WACpC,OAAIxV,KAAKiY,WAAamd,MAAMnd,UACjBmd,MAAQp1B,KAAOA,KAAOo1B,MAEtBxc,mBAUvB,SAAS0c,OAAOhf,GAAIif,SAChB,IAAIhf,IAAK7R,EAIT,GAHuB,IAAnB6wB,QAAQ3wB,QAAgB1F,QAAQq2B,QAAQ,MACxCA,QAAUA,QAAQ,KAEjBA,QAAQ3wB,OACT,OAAOgvB,cAGX,IADArd,IAAMgf,QAAQ,GACT7wB,EAAI,EAAGA,EAAI6wB,QAAQ3wB,SAAUF,EACzB6wB,QAAQ7wB,GAAGuT,YAAasd,QAAQ7wB,GAAG4R,IAAIC,OACxCA,IAAMgf,QAAQ7wB,IAGtB,OAAO6R,IAIX,SAASkS,MAGL,OAAO6M,OAAO,WAFH,GAAG5hB,MAAM7M,KAAK2O,UAAW,IAKxC,SAAS6G,MAGL,OAAOiZ,OAAO,UAFH,GAAG5hB,MAAM7M,KAAK2O,UAAW,IAKxC,IAAI5D,IAAM,WACN,OAAOwE,KAAKxE,IAAMwE,KAAKxE,OAAS,IAAIwE,MAGpCof,SAAW,CACX,OACA,UACA,QACA,OACA,MACA,OACA,SACA,SACA,eAGJ,SAASC,gBAAgB9qB,GACrB,IAAIxH,IAEAuB,EADAgxB,gBAAiB,EAEjBC,SAAWH,SAAS5wB,OACxB,IAAKzB,OAAOwH,EACR,GACIiL,WAAWjL,EAAGxH,QAEuB,IAAjCgN,QAAQtJ,KAAK2uB,SAAUryB,MACZ,MAAVwH,EAAExH,MAAiBoP,MAAM5H,EAAExH,OAGhC,OAAO,EAIf,IAAKuB,EAAI,EAAGA,EAAIixB,WAAYjxB,EACxB,GAAIiG,EAAE6qB,SAAS9wB,IAAK,CAChB,GAAIgxB,eACA,OAAO,EAEPE,WAAWjrB,EAAE6qB,SAAS9wB,OAAS0e,MAAMzY,EAAE6qB,SAAS9wB,OAChDgxB,gBAAiB,GAK7B,OAAO,EAGX,SAASG,YACL,OAAO71B,KAAK2Y,SAGhB,SAASmd,kBACL,OAAOC,eAAeld,KAG1B,SAASmd,SAASC,UACd,IAAI3V,gBAAkBH,qBAAqB8V,UACvCjW,MAAQM,gBAAgBL,MAAQ,EAChCf,SAAWoB,gBAAgBnB,SAAW,EACtCvW,OAAS0X,gBAAgBjQ,OAAS,EAClCuP,MAAQU,gBAAgB9U,MAAQ8U,gBAAgBM,SAAW,EAC3DtN,KAAOgN,gBAAgB7S,KAAO,EAC9BpE,MAAQiX,gBAAgBhU,MAAQ,EAChChD,QAAUgX,gBAAgB/T,QAAU,EACpC6S,QAAUkB,gBAAgBjB,QAAU,EACpCN,aAAeuB,gBAAgBtB,aAAe,EAElDhf,KAAK2Y,SAAW8c,gBAAgBnV,iBAGhCtgB,KAAKk2B,eACAnX,aACS,IAAVK,QACU,IAAV9V,QACQ,IAARD,MAAe,GAAK,GAGxBrJ,KAAKm2B,OAAS7iB,KAAe,EAARsM,MAIrB5f,KAAK4nB,SAAWhf,OAAoB,EAAXsW,SAAuB,GAARc,MAExChgB,KAAKo2B,MAAQ,GAEbp2B,KAAKga,QAAUwV,YAEfxvB,KAAKq2B,UAGT,SAASC,WAAW3xB,KAChB,OAAOA,eAAeqxB,SAG1B,SAASO,SAAShrB,QACd,OAAIA,OAAS,GACyB,EAA3BwI,KAAKyiB,OAAO,EAAIjrB,QAEhBwI,KAAKyiB,MAAMjrB,QAK1B,SAASkrB,cAAcC,OAAQC,OAAQC,aACnC,IAGIlyB,EAHAsU,IAAMjF,KAAK0U,IAAIiO,OAAO9xB,OAAQ+xB,OAAO/xB,QACrCiyB,WAAa9iB,KAAKmI,IAAIwa,OAAO9xB,OAAS+xB,OAAO/xB,QAC7CkyB,MAAQ,EAEZ,IAAKpyB,EAAI,EAAGA,EAAIsU,IAAKtU,KAEZkyB,aAAeF,OAAOhyB,KAAOiyB,OAAOjyB,KACnCkyB,aAAexT,MAAMsT,OAAOhyB,MAAQ0e,MAAMuT,OAAOjyB,MAEnDoyB,QAGR,OAAOA,MAAQD,WAKnB,SAASxlB,OAAOjC,MAAOiE,WACnBqJ,eAAetN,MAAO,EAAG,GAAG,WACxB,IAAIiC,OAASrR,KAAK+2B,YACdC,KAAO,IAKX,OAJI3lB,OAAS,IACTA,QAAUA,OACV2lB,KAAO,KAGPA,KACAlb,YAAYzK,OAAS,IAAK,GAC1BgC,UACAyI,WAAWzK,OAAS,GAAI,MAKpCA,OAAO,IAAK,KACZA,OAAO,KAAM,IAIbiR,cAAc,IAAKL,kBACnBK,cAAc,KAAML,kBACpBwB,cAAc,CAAC,IAAK,OAAO,SAAUta,MAAO6T,MAAO9C,QAC/CA,OAAO+Y,SAAU,EACjB/Y,OAAOL,KAAOod,iBAAiBhV,iBAAkB9Y,UAQrD,IAAI+tB,YAAc,kBAElB,SAASD,iBAAiBE,QAASjrB,QAC/B,IAEIkrB,MACA9tB,QAHA+tB,SAAWnrB,QAAU,IAAItE,MAAMuvB,SAKnC,OAAgB,OAAZE,QACO,KAOQ,KAFnB/tB,QAAuB,IADvB8tB,QADQC,QAAQA,QAAQzyB,OAAS,IAAM,IACtB,IAAIgD,MAAMsvB,cAAgB,CAAC,IAAK,EAAG,IAClC,GAAW9T,MAAMgU,MAAM,KAElB,EAAiB,MAAbA,MAAM,GAAa9tB,SAAWA,QAI7D,SAASguB,gBAAgBnuB,MAAOouB,OAC5B,IAAIhhB,IAAK2H,KACT,OAAIqZ,MAAMzd,QACNvD,IAAMghB,MAAMC,QACZtZ,MACK9D,SAASjR,QAAUgN,OAAOhN,OACrBA,MAAMsN,UACNmd,YAAYzqB,OAAOsN,WAAaF,IAAIE,UAE9CF,IAAI8B,GAAGof,QAAQlhB,IAAI8B,GAAG5B,UAAYyH,MAClC3I,MAAM4E,aAAa5D,KAAK,GACjBA,KAEAqd,YAAYzqB,OAAOuuB,QAIlC,SAASC,cAAchtB,GAGnB,OAAQoJ,KAAKyiB,MAAM7rB,EAAE0N,GAAGuf,qBAqB5B,SAASC,aAAa1uB,MAAO2uB,cAAeC,aACxC,IACIC,YADA3mB,OAASrR,KAAK+Z,SAAW,EAE7B,IAAK/Z,KAAKiY,UACN,OAAgB,MAAT9O,MAAgBnJ,KAAO6Y,IAElC,GAAa,MAAT1P,MAAe,CACf,GAAqB,iBAAVA,OAEP,GAAc,QADdA,MAAQ8tB,iBAAiBhV,iBAAkB9Y,QAEvC,OAAOnJ,UAEJ+T,KAAKmI,IAAI/S,OAAS,KAAO4uB,cAChC5uB,OAAgB,IAwBpB,OAtBKnJ,KAAK8Z,QAAUge,gBAChBE,YAAcL,cAAc33B,OAEhCA,KAAK+Z,QAAU5Q,MACfnJ,KAAK8Z,QAAS,EACK,MAAfke,aACAh4B,KAAK2qB,IAAIqN,YAAa,KAEtB3mB,SAAWlI,SACN2uB,eAAiB93B,KAAKi4B,kBACvBC,YACIl4B,KACA+1B,eAAe5sB,MAAQkI,OAAQ,KAC/B,GACA,GAEIrR,KAAKi4B,oBACbj4B,KAAKi4B,mBAAoB,EACzB1iB,MAAM4E,aAAana,MAAM,GACzBA,KAAKi4B,kBAAoB,OAG1Bj4B,KAEP,OAAOA,KAAK8Z,OAASzI,OAASsmB,cAAc33B,MAIpD,SAASm4B,WAAWhvB,MAAO2uB,eACvB,OAAa,MAAT3uB,OACqB,iBAAVA,QACPA,OAASA,OAGbnJ,KAAK+2B,UAAU5tB,MAAO2uB,eAEf93B,OAECA,KAAK+2B,YAIrB,SAASqB,eAAeN,eACpB,OAAO93B,KAAK+2B,UAAU,EAAGe,eAG7B,SAASO,iBAAiBP,eAStB,OARI93B,KAAK8Z,SACL9Z,KAAK+2B,UAAU,EAAGe,eAClB93B,KAAK8Z,QAAS,EAEVge,eACA93B,KAAKs4B,SAASX,cAAc33B,MAAO,MAGpCA,KAGX,SAASu4B,0BACL,GAAiB,MAAbv4B,KAAK6Z,KACL7Z,KAAK+2B,UAAU/2B,KAAK6Z,MAAM,GAAO,QAC9B,GAAuB,iBAAZ7Z,KAAK0Z,GAAiB,CACpC,IAAI8e,MAAQvB,iBAAiBjV,YAAahiB,KAAK0Z,IAClC,MAAT8e,MACAx4B,KAAK+2B,UAAUyB,OAEfx4B,KAAK+2B,UAAU,GAAG,GAG1B,OAAO/2B,KAGX,SAASy4B,qBAAqBtvB,OAC1B,QAAKnJ,KAAKiY,YAGV9O,MAAQA,MAAQyqB,YAAYzqB,OAAO4tB,YAAc,GAEzC/2B,KAAK+2B,YAAc5tB,OAAS,IAAO,GAG/C,SAASuvB,uBACL,OACI14B,KAAK+2B,YAAc/2B,KAAKw3B,QAAQnnB,MAAM,GAAG0mB,aACzC/2B,KAAK+2B,YAAc/2B,KAAKw3B,QAAQnnB,MAAM,GAAG0mB,YAIjD,SAAS4B,8BACL,IAAK1iB,YAAYjW,KAAK44B,eAClB,OAAO54B,KAAK44B,cAGhB,IACIxD,MADApoB,EAAI,GAcR,OAXAmM,WAAWnM,EAAGhN,OACdgN,EAAIioB,cAAcjoB,IAEZ8W,IACFsR,MAAQpoB,EAAE8M,OAASpD,UAAU1J,EAAE8W,IAAM8P,YAAY5mB,EAAE8W,IACnD9jB,KAAK44B,cACD54B,KAAKiY,WAAawe,cAAczpB,EAAE8W,GAAIsR,MAAMyD,WAAa,GAE7D74B,KAAK44B,eAAgB,EAGlB54B,KAAK44B,cAGhB,SAASE,UACL,QAAO94B,KAAKiY,YAAajY,KAAK8Z,OAGlC,SAASif,cACL,QAAO/4B,KAAKiY,WAAYjY,KAAK8Z,OAGjC,SAASkf,QACL,QAAOh5B,KAAKiY,WAAYjY,KAAK8Z,QAA2B,IAAjB9Z,KAAK+Z,QApJhDxE,MAAM4E,aAAe,aAwJrB,IAAI8e,YAAc,wDAIdC,SACI,sKAER,SAASnD,eAAe5sB,MAAOhG,KAC3B,IAGI6zB,KACAmC,IACAC,QALAnD,SAAW9sB,MAEXvB,MAAQ,KAkEZ,OA7DI0uB,WAAWntB,OACX8sB,SAAW,CACPnX,GAAI3V,MAAM+sB,cACVnrB,EAAG5B,MAAMgtB,MACTlrB,EAAG9B,MAAMye,SAEN1R,SAAS/M,SAAWoJ,OAAOpJ,QAClC8sB,SAAW,GACP9yB,IACA8yB,SAAS9yB,MAAQgG,MAEjB8sB,SAASlX,cAAgB5V,QAErBvB,MAAQqxB,YAAYrpB,KAAKzG,SACjC6tB,KAAoB,MAAbpvB,MAAM,IAAc,EAAI,EAC/BquB,SAAW,CACP9qB,EAAG,EACHJ,EAAGqY,MAAMxb,MAAMsc,OAAS8S,KACxBnsB,EAAGuY,MAAMxb,MAAMuc,OAAS6S,KACxBrsB,EAAGyY,MAAMxb,MAAMwc,SAAW4S,KAC1BvsB,EAAG2Y,MAAMxb,MAAMyc,SAAW2S,KAC1BlY,GAAIsE,MAAMmT,SAA8B,IAArB3uB,MAAM0c,eAAwB0S,QAE7CpvB,MAAQsxB,SAAStpB,KAAKzG,SAC9B6tB,KAAoB,MAAbpvB,MAAM,IAAc,EAAI,EAC/BquB,SAAW,CACP9qB,EAAGkuB,SAASzxB,MAAM,GAAIovB,MACtB/rB,EAAGouB,SAASzxB,MAAM,GAAIovB,MACtBrpB,EAAG0rB,SAASzxB,MAAM,GAAIovB,MACtBjsB,EAAGsuB,SAASzxB,MAAM,GAAIovB,MACtBnsB,EAAGwuB,SAASzxB,MAAM,GAAIovB,MACtBrsB,EAAG0uB,SAASzxB,MAAM,GAAIovB,MACtBvsB,EAAG4uB,SAASzxB,MAAM,GAAIovB,QAEP,MAAZf,SAEPA,SAAW,GAES,iBAAbA,WACN,SAAUA,UAAY,OAAQA,YAE/BmD,QAAUE,kBACN1F,YAAYqC,SAAS5c,MACrBua,YAAYqC,SAAS7c,MAGzB6c,SAAW,IACFnX,GAAKsa,QAAQra,aACtBkX,SAAShrB,EAAImuB,QAAQxwB,QAGzBuwB,IAAM,IAAInD,SAASC,UAEfK,WAAWntB,QAAUyM,WAAWzM,MAAO,aACvCgwB,IAAInf,QAAU7Q,MAAM6Q,SAGpBsc,WAAWntB,QAAUyM,WAAWzM,MAAO,cACvCgwB,IAAIxgB,SAAWxP,MAAMwP,UAGlBwgB,IAMX,SAASE,SAASE,IAAKvC,MAInB,IAAIzgB,IAAMgjB,KAAO3D,WAAW2D,IAAInzB,QAAQ,IAAK,MAE7C,OAAQmM,MAAMgE,KAAO,EAAIA,KAAOygB,KAGpC,SAASwC,0BAA0BC,KAAMrE,OACrC,IAAI7e,IAAM,GAUV,OARAA,IAAI3N,OACAwsB,MAAM/kB,QAAUopB,KAAKppB,QAAyC,IAA9B+kB,MAAMnV,OAASwZ,KAAKxZ,QACpDwZ,KAAKjC,QAAQ7M,IAAIpU,IAAI3N,OAAQ,KAAK8wB,QAAQtE,UACxC7e,IAAI3N,OAGV2N,IAAIwI,cAAgBqW,OAASqE,KAAKjC,QAAQ7M,IAAIpU,IAAI3N,OAAQ,KAEnD2N,IAGX,SAAS+iB,kBAAkBG,KAAMrE,OAC7B,IAAI7e,IACJ,OAAMkjB,KAAKxhB,WAAamd,MAAMnd,WAI9Bmd,MAAQkC,gBAAgBlC,MAAOqE,MAC3BA,KAAKE,SAASvE,OACd7e,IAAMijB,0BAA0BC,KAAMrE,SAEtC7e,IAAMijB,0BAA0BpE,MAAOqE,OACnC1a,cAAgBxI,IAAIwI,aACxBxI,IAAI3N,QAAU2N,IAAI3N,QAGf2N,KAZI,CAAEwI,aAAc,EAAGnW,OAAQ,GAgB1C,SAASgxB,YAAYC,UAAW1zB,MAC5B,OAAO,SAAUoT,IAAK7L,QAClB,IAASosB,IAmBT,OAjBe,OAAXpsB,QAAoB6E,OAAO7E,UAC3BsN,gBACI7U,KACA,YACIA,KACA,uDACAA,KAHJ,kGAOJ2zB,IAAMvgB,IACNA,IAAM7L,OACNA,OAASosB,KAIb5B,YAAYl4B,KADN+1B,eAAexc,IAAK7L,QACHmsB,WAChB75B,MAIf,SAASk4B,YAAY1nB,IAAKylB,SAAU8D,SAAU5f,cAC1C,IAAI4E,aAAekX,SAASC,cACxB5iB,KAAOijB,SAASN,SAASE,OACzBvtB,OAAS2tB,SAASN,SAASrO,SAE1BpX,IAAIyH,YAKTkC,aAA+B,MAAhBA,cAA8BA,aAEzCvR,QACA4f,SAAShY,IAAKwU,IAAIxU,IAAK,SAAW5H,OAASmxB,UAE3CzmB,MACAyR,MAAMvU,IAAK,OAAQwU,IAAIxU,IAAK,QAAU8C,KAAOymB,UAE7Chb,cACAvO,IAAI6H,GAAGof,QAAQjnB,IAAI6H,GAAG5B,UAAYsI,aAAegb,UAEjD5f,cACA5E,MAAM4E,aAAa3J,IAAK8C,MAAQ1K,SA5FxCmtB,eAAezf,GAAK0f,SAASxyB,UAC7BuyB,eAAeiE,QAAUlE,gBA+FzB,IAAInL,IAAMiP,YAAY,EAAG,OACrBtB,SAAWsB,aAAa,EAAG,YAE/B,SAASnyB,SAAS0B,OACd,MAAwB,iBAAVA,OAAsBA,iBAAiB8wB,OAIzD,SAASC,cAAc/wB,OACnB,OACIiR,SAASjR,QACTgN,OAAOhN,QACP1B,SAAS0B,QACT+M,SAAS/M,QACTgxB,sBAAsBhxB,QACtBixB,oBAAoBjxB,QANjB,MAOHA,MAKR,SAASixB,oBAAoBjxB,OACzB,IA4BIzE,EACA21B,SA7BAC,WAAa9yB,SAAS2B,SAAW2M,cAAc3M,OAC/CoxB,cAAe,EACfC,WAAa,CACT,QACA,OACA,IACA,SACA,QACA,IACA,OACA,MACA,IACA,QACA,OACA,IACA,QACA,OACA,IACA,UACA,SACA,IACA,UACA,SACA,IACA,eACA,cACA,MAIJC,YAAcD,WAAW51B,OAE7B,IAAKF,EAAI,EAAGA,EAAI+1B,YAAa/1B,GAAK,EAC9B21B,SAAWG,WAAW91B,GACtB61B,aAAeA,cAAgB3kB,WAAWzM,MAAOkxB,UAGrD,OAAOC,YAAcC,aAGzB,SAASJ,sBAAsBhxB,OAC3B,IAAIuxB,UAAYx7B,QAAQiK,OACpBwxB,cAAe,EAOnB,OANID,YACAC,aAGkB,IAFdxxB,MAAMjC,QAAO,SAAU0zB,MACnB,OAAQ1kB,SAAS0kB,OAASnzB,SAAS0B,UACpCvE,QAEJ81B,WAAaC,aAGxB,SAASE,eAAe1xB,OACpB,IAUIzE,EACA21B,SAXAC,WAAa9yB,SAAS2B,SAAW2M,cAAc3M,OAC/CoxB,cAAe,EACfC,WAAa,CACT,UACA,UACA,UACA,WACA,WACA,YAKR,IAAK91B,EAAI,EAAGA,EAAI81B,WAAW51B,OAAQF,GAAK,EACpC21B,SAAWG,WAAW91B,GACtB61B,aAAeA,cAAgB3kB,WAAWzM,MAAOkxB,UAGrD,OAAOC,YAAcC,aAGzB,SAASO,kBAAkBC,SAAUnpB,KACjC,IAAIsM,KAAO6c,SAAS7c,KAAKtM,IAAK,QAAQ,GACtC,OAAOsM,MAAQ,EACT,WACAA,MAAQ,EACN,WACAA,KAAO,EACL,UACAA,KAAO,EACL,UACAA,KAAO,EACL,UACAA,KAAO,EACL,WACA,WAGpB,SAAS8c,WAAWvnB,KAAMwnB,SAEG,IAArBzlB,UAAU5Q,SACL4Q,UAAU,GAGJ0kB,cAAc1kB,UAAU,KAC/B/B,KAAO+B,UAAU,GACjBylB,aAAUzsB,GACHqsB,eAAerlB,UAAU,MAChCylB,QAAUzlB,UAAU,GACpB/B,UAAOjF,IAPPiF,UAAOjF,EACPysB,aAAUzsB,IAWlB,IAAIoD,IAAM6B,MAAQmgB,cACdsH,IAAM5D,gBAAgB1lB,IAAK5R,MAAMm7B,QAAQ,OACzC7tB,OAASiI,MAAM6lB,eAAep7B,KAAMk7B,MAAQ,WAC5CvrB,OACIsrB,UACC1zB,WAAW0zB,QAAQ3tB,SACd2tB,QAAQ3tB,QAAQzG,KAAK7G,KAAM4R,KAC3BqpB,QAAQ3tB,SAEtB,OAAOtN,KAAKsN,OACRqC,QAAU3P,KAAK6c,aAAa9S,SAASuD,OAAQtN,KAAM4zB,YAAYhiB,OAIvE,SAAS4lB,QACL,OAAO,IAAIvd,OAAOja,MAGtB,SAAS05B,QAAQvwB,MAAOqJ,OACpB,IAAI6oB,WAAajhB,SAASjR,OAASA,MAAQyqB,YAAYzqB,OACvD,SAAMnJ,KAAKiY,YAAaojB,WAAWpjB,aAIrB,iBADdzF,MAAQ0N,eAAe1N,QAAU,eAEtBxS,KAAKyW,UAAY4kB,WAAW5kB,UAE5B4kB,WAAW5kB,UAAYzW,KAAKw3B,QAAQ2D,QAAQ3oB,OAAOiE,WAIlE,SAASkjB,SAASxwB,MAAOqJ,OACrB,IAAI6oB,WAAajhB,SAASjR,OAASA,MAAQyqB,YAAYzqB,OACvD,SAAMnJ,KAAKiY,YAAaojB,WAAWpjB,aAIrB,iBADdzF,MAAQ0N,eAAe1N,QAAU,eAEtBxS,KAAKyW,UAAY4kB,WAAW5kB,UAE5BzW,KAAKw3B,QAAQ8D,MAAM9oB,OAAOiE,UAAY4kB,WAAW5kB,WAIhE,SAAS8kB,UAAUliB,KAAMD,GAAI5G,MAAOgpB,aAChC,IAAIC,UAAYrhB,SAASf,MAAQA,KAAOua,YAAYva,MAChDqiB,QAAUthB,SAAShB,IAAMA,GAAKwa,YAAYxa,IAC9C,SAAMpZ,KAAKiY,WAAawjB,UAAUxjB,WAAayjB,QAAQzjB,aAK/B,OAFxBujB,YAAcA,aAAe,MAEZ,GACPx7B,KAAK05B,QAAQ+B,UAAWjpB,QACvBxS,KAAK25B,SAAS8B,UAAWjpB,UACZ,MAAnBgpB,YAAY,GACPx7B,KAAK25B,SAAS+B,QAASlpB,QACtBxS,KAAK05B,QAAQgC,QAASlpB,QAIrC,SAASmpB,OAAOxyB,MAAOqJ,OACnB,IACIopB,QADAP,WAAajhB,SAASjR,OAASA,MAAQyqB,YAAYzqB,OAEvD,SAAMnJ,KAAKiY,YAAaojB,WAAWpjB,aAIrB,iBADdzF,MAAQ0N,eAAe1N,QAAU,eAEtBxS,KAAKyW,YAAc4kB,WAAW5kB,WAErCmlB,QAAUP,WAAW5kB,UAEjBzW,KAAKw3B,QAAQ2D,QAAQ3oB,OAAOiE,WAAamlB,SACzCA,SAAW57B,KAAKw3B,QAAQ8D,MAAM9oB,OAAOiE,YAKjD,SAASolB,cAAc1yB,MAAOqJ,OAC1B,OAAOxS,KAAK27B,OAAOxyB,MAAOqJ,QAAUxS,KAAK05B,QAAQvwB,MAAOqJ,OAG5D,SAASspB,eAAe3yB,MAAOqJ,OAC3B,OAAOxS,KAAK27B,OAAOxyB,MAAOqJ,QAAUxS,KAAK25B,SAASxwB,MAAOqJ,OAG7D,SAAS0L,KAAK/U,MAAOqJ,MAAOupB,SACxB,IAAIC,KAAMC,UAAWtsB,OAErB,IAAK3P,KAAKiY,UACN,OAAOY,IAKX,KAFAmjB,KAAO1E,gBAAgBnuB,MAAOnJ,OAEpBiY,UACN,OAAOY,IAOX,OAJAojB,UAAoD,KAAvCD,KAAKjF,YAAc/2B,KAAK+2B,aAErCvkB,MAAQ0N,eAAe1N,QAGnB,IAAK,OACD7C,OAASusB,UAAUl8B,KAAMg8B,MAAQ,GACjC,MACJ,IAAK,QACDrsB,OAASusB,UAAUl8B,KAAMg8B,MACzB,MACJ,IAAK,UACDrsB,OAASusB,UAAUl8B,KAAMg8B,MAAQ,EACjC,MACJ,IAAK,SACDrsB,QAAU3P,KAAOg8B,MAAQ,IACzB,MACJ,IAAK,SACDrsB,QAAU3P,KAAOg8B,MAAQ,IACzB,MACJ,IAAK,OACDrsB,QAAU3P,KAAOg8B,MAAQ,KACzB,MACJ,IAAK,MACDrsB,QAAU3P,KAAOg8B,KAAOC,WAAa,MACrC,MACJ,IAAK,OACDtsB,QAAU3P,KAAOg8B,KAAOC,WAAa,OACrC,MACJ,QACItsB,OAAS3P,KAAOg8B,KAGxB,OAAOD,QAAUpsB,OAASuT,SAASvT,QAGvC,SAASusB,UAAUpvB,EAAGC,GAClB,GAAID,EAAEwR,OAASvR,EAAEuR,OAGb,OAAQ4d,UAAUnvB,EAAGD,GAGzB,IAAIqvB,eAAyC,IAAvBpvB,EAAEkT,OAASnT,EAAEmT,SAAgBlT,EAAEsD,QAAUvD,EAAEuD,SAE7D+rB,OAAStvB,EAAE0qB,QAAQ7M,IAAIwR,eAAgB,UAe3C,QAASA,gBAXLpvB,EAAIqvB,OAAS,GAGHrvB,EAAIqvB,SAAWA,OAFftvB,EAAE0qB,QAAQ7M,IAAIwR,eAAiB,EAAG,YAMlCpvB,EAAIqvB,SAFJtvB,EAAE0qB,QAAQ7M,IAAIwR,eAAiB,EAAG,UAETC,WAIF,EAMzC,SAASrsB,WACL,OAAO/P,KAAKw3B,QAAQ7gB,OAAO,MAAMrJ,OAAO,oCAG5C,SAAS+uB,YAAYC,YACjB,IAAKt8B,KAAKiY,UACN,OAAO,KAEX,IAAInB,KAAqB,IAAfwlB,WACN3xB,EAAImM,IAAM9W,KAAKw3B,QAAQ1gB,MAAQ9W,KACnC,OAAI2K,EAAEsV,OAAS,GAAKtV,EAAEsV,OAAS,KACpBhD,aACHtS,EACAmM,IACM,iCACA,gCAGVvP,WAAW6O,KAAK5S,UAAU64B,aAEtBvlB,IACO9W,KAAKu8B,SAASF,cAEd,IAAIjmB,KAAKpW,KAAKyW,UAA+B,GAAnBzW,KAAK+2B,YAAmB,KACpDsF,cACAj2B,QAAQ,IAAK6W,aAAatS,EAAG,MAGnCsS,aACHtS,EACAmM,IAAM,+BAAiC,8BAU/C,SAAS0lB,UACL,IAAKx8B,KAAKiY,UACN,MAAO,qBAAuBjY,KAAK0Z,GAAK,OAE5C,IAEI+iB,OACAxc,KACAyc,SACAC,OALA/f,KAAO,SACPggB,KAAO,GAcX,OATK58B,KAAK84B,YACNlc,KAA4B,IAArB5c,KAAK+2B,YAAoB,aAAe,mBAC/C6F,KAAO,KAEXH,OAAS,IAAM7f,KAAO,MACtBqD,KAAO,GAAKjgB,KAAKigB,QAAUjgB,KAAKigB,QAAU,KAAO,OAAS,SAC1Dyc,SAAW,wBACXC,OAASC,KAAO,OAET58B,KAAKsN,OAAOmvB,OAASxc,KAAOyc,SAAWC,QAGlD,SAASrvB,OAAOuvB,aACPA,cACDA,YAAc78B,KAAKg5B,QACbzjB,MAAMunB,iBACNvnB,MAAMwnB,eAEhB,IAAIptB,OAASsN,aAAajd,KAAM68B,aAChC,OAAO78B,KAAK6c,aAAarQ,WAAWmD,QAGxC,SAAS0J,KAAK5F,KAAMxH,eAChB,OACIjM,KAAKiY,YACHmC,SAAS3G,OAASA,KAAKwE,WAAc2b,YAAYngB,MAAMwE,WAElD8d,eAAe,CAAE3c,GAAIpZ,KAAMqZ,KAAM5F,OACnCkD,OAAO3W,KAAK2W,UACZqmB,UAAU/wB,eAERjM,KAAK6c,aAAajM,cAIjC,SAASqsB,QAAQhxB,eACb,OAAOjM,KAAKqZ,KAAKua,cAAe3nB,eAGpC,SAASmN,GAAG3F,KAAMxH,eACd,OACIjM,KAAKiY,YACHmC,SAAS3G,OAASA,KAAKwE,WAAc2b,YAAYngB,MAAMwE,WAElD8d,eAAe,CAAE1c,KAAMrZ,KAAMoZ,GAAI3F,OACnCkD,OAAO3W,KAAK2W,UACZqmB,UAAU/wB,eAERjM,KAAK6c,aAAajM,cAIjC,SAASssB,MAAMjxB,eACX,OAAOjM,KAAKoZ,GAAGwa,cAAe3nB,eAMlC,SAAS0K,OAAOxT,KACZ,IAAIg6B,cAEJ,YAAY3uB,IAARrL,IACOnD,KAAKga,QAAQoV,OAGC,OADrB+N,cAAgB3N,UAAUrsB,QAEtBnD,KAAKga,QAAUmjB,eAEZn9B,MA1HfuV,MAAMwnB,cAAgB,uBACtBxnB,MAAMunB,iBAAmB,yBA6HzB,IAAIM,KAAO3iB,UACP,mJACA,SAAUtX,KACN,YAAYqL,IAARrL,IACOnD,KAAK6c,aAEL7c,KAAK2W,OAAOxT,QAK/B,SAAS0Z,aACL,OAAO7c,KAAKga,QAGhB,IAAIqjB,cAAgB,IAChBC,cAAgB,GAAKD,cACrBE,YAAc,GAAKD,cACnBE,iBAAmB,QAAwBD,YAG/C,SAASE,MAAMC,SAAUC,SACrB,OAASD,SAAWC,QAAWA,SAAWA,QAG9C,SAASC,iBAAiBzyB,EAAGR,EAAGI,GAE5B,OAAII,EAAI,KAAOA,GAAK,EAET,IAAIiL,KAAKjL,EAAI,IAAKR,EAAGI,GAAKyyB,iBAE1B,IAAIpnB,KAAKjL,EAAGR,EAAGI,GAAG0L,UAIjC,SAASonB,eAAe1yB,EAAGR,EAAGI,GAE1B,OAAII,EAAI,KAAOA,GAAK,EAETiL,KAAKsT,IAAIve,EAAI,IAAKR,EAAGI,GAAKyyB,iBAE1BpnB,KAAKsT,IAAIve,EAAGR,EAAGI,GAI9B,SAASowB,QAAQ3oB,OACb,IAAIiB,KAAMqqB,YAEV,QAActvB,KADdgE,MAAQ0N,eAAe1N,SACc,gBAAVA,QAA4BxS,KAAKiY,UACxD,OAAOjY,KAKX,OAFA89B,YAAc99B,KAAK8Z,OAAS+jB,eAAiBD,iBAErCprB,OACJ,IAAK,OACDiB,KAAOqqB,YAAY99B,KAAKigB,OAAQ,EAAG,GACnC,MACJ,IAAK,UACDxM,KAAOqqB,YACH99B,KAAKigB,OACLjgB,KAAKqQ,QAAWrQ,KAAKqQ,QAAU,EAC/B,GAEJ,MACJ,IAAK,QACDoD,KAAOqqB,YAAY99B,KAAKigB,OAAQjgB,KAAKqQ,QAAS,GAC9C,MACJ,IAAK,OACDoD,KAAOqqB,YACH99B,KAAKigB,OACLjgB,KAAKqQ,QACLrQ,KAAKse,OAASte,KAAKue,WAEvB,MACJ,IAAK,UACD9K,KAAOqqB,YACH99B,KAAKigB,OACLjgB,KAAKqQ,QACLrQ,KAAKse,QAAUte,KAAKwgB,aAAe,IAEvC,MACJ,IAAK,MACL,IAAK,OACD/M,KAAOqqB,YAAY99B,KAAKigB,OAAQjgB,KAAKqQ,QAASrQ,KAAKse,QACnD,MACJ,IAAK,OACD7K,KAAOzT,KAAKqY,GAAG5B,UACfhD,MAAQgqB,MACJhqB,MAAQzT,KAAK8Z,OAAS,EAAI9Z,KAAK+2B,YAAcuG,eAC7CC,aAEJ,MACJ,IAAK,SACD9pB,KAAOzT,KAAKqY,GAAG5B,UACfhD,MAAQgqB,MAAMhqB,KAAM6pB,eACpB,MACJ,IAAK,SACD7pB,KAAOzT,KAAKqY,GAAG5B,UACfhD,MAAQgqB,MAAMhqB,KAAM4pB,eAM5B,OAFAr9B,KAAKqY,GAAGof,QAAQhkB,MAChB8B,MAAM4E,aAAana,MAAM,GAClBA,KAGX,SAASs7B,MAAM9oB,OACX,IAAIiB,KAAMqqB,YAEV,QAActvB,KADdgE,MAAQ0N,eAAe1N,SACc,gBAAVA,QAA4BxS,KAAKiY,UACxD,OAAOjY,KAKX,OAFA89B,YAAc99B,KAAK8Z,OAAS+jB,eAAiBD,iBAErCprB,OACJ,IAAK,OACDiB,KAAOqqB,YAAY99B,KAAKigB,OAAS,EAAG,EAAG,GAAK,EAC5C,MACJ,IAAK,UACDxM,KACIqqB,YACI99B,KAAKigB,OACLjgB,KAAKqQ,QAAWrQ,KAAKqQ,QAAU,EAAK,EACpC,GACA,EACR,MACJ,IAAK,QACDoD,KAAOqqB,YAAY99B,KAAKigB,OAAQjgB,KAAKqQ,QAAU,EAAG,GAAK,EACvD,MACJ,IAAK,OACDoD,KACIqqB,YACI99B,KAAKigB,OACLjgB,KAAKqQ,QACLrQ,KAAKse,OAASte,KAAKue,UAAY,GAC/B,EACR,MACJ,IAAK,UACD9K,KACIqqB,YACI99B,KAAKigB,OACLjgB,KAAKqQ,QACLrQ,KAAKse,QAAUte,KAAKwgB,aAAe,GAAK,GACxC,EACR,MACJ,IAAK,MACL,IAAK,OACD/M,KAAOqqB,YAAY99B,KAAKigB,OAAQjgB,KAAKqQ,QAASrQ,KAAKse,OAAS,GAAK,EACjE,MACJ,IAAK,OACD7K,KAAOzT,KAAKqY,GAAG5B,UACfhD,MACI8pB,YACAE,MACIhqB,MAAQzT,KAAK8Z,OAAS,EAAI9Z,KAAK+2B,YAAcuG,eAC7CC,aAEJ,EACJ,MACJ,IAAK,SACD9pB,KAAOzT,KAAKqY,GAAG5B,UACfhD,MAAQ6pB,cAAgBG,MAAMhqB,KAAM6pB,eAAiB,EACrD,MACJ,IAAK,SACD7pB,KAAOzT,KAAKqY,GAAG5B,UACfhD,MAAQ4pB,cAAgBI,MAAMhqB,KAAM4pB,eAAiB,EAM7D,OAFAr9B,KAAKqY,GAAGof,QAAQhkB,MAChB8B,MAAM4E,aAAana,MAAM,GAClBA,KAGX,SAASyW,UACL,OAAOzW,KAAKqY,GAAG5B,UAAkC,KAArBzW,KAAK+Z,SAAW,GAGhD,SAASgkB,OACL,OAAOhqB,KAAKC,MAAMhU,KAAKyW,UAAY,KAGvC,SAAS8lB,SACL,OAAO,IAAInmB,KAAKpW,KAAKyW,WAGzB,SAASoiB,UACL,IAAIluB,EAAI3K,KACR,MAAO,CACH2K,EAAEsV,OACFtV,EAAE0F,QACF1F,EAAE2T,OACF3T,EAAE2B,OACF3B,EAAE4B,SACF5B,EAAE0U,SACF1U,EAAEqU,eAIV,SAASgf,WACL,IAAIrzB,EAAI3K,KACR,MAAO,CACHggB,MAAOrV,EAAEsV,OACTrX,OAAQ+B,EAAE0F,QACViO,KAAM3T,EAAE2T,OACRjV,MAAOsB,EAAEtB,QACTC,QAASqB,EAAErB,UACX8V,QAASzU,EAAEyU,UACXL,aAAcpU,EAAEoU,gBAIxB,SAASkf,SAEL,OAAOj+B,KAAKiY,UAAYjY,KAAKq8B,cAAgB,KAGjD,SAAS6B,YACL,OAAOjmB,QAAQjY,MAGnB,SAASm+B,eACL,OAAOn/B,OAAO,GAAI+Y,gBAAgB/X,OAGtC,SAASo+B,YACL,OAAOrmB,gBAAgB/X,MAAMmX,SAGjC,SAASknB,eACL,MAAO,CACHl1B,MAAOnJ,KAAK0Z,GACZpM,OAAQtN,KAAK2Z,GACbhD,OAAQ3W,KAAKga,QACbiL,MAAOjlB,KAAK8Z,OACZlD,OAAQ5W,KAAKwY,SAqDrB,SAAS8lB,WAAW3zB,EAAG2C,QACnB,IAAI5I,EACA6B,EACA+X,KACAnN,KAAOnR,KAAKu+B,OAAS/O,UAAU,MAAM+O,MACzC,IAAK75B,EAAI,EAAG6B,EAAI4K,KAAKvM,OAAQF,EAAI6B,IAAK7B,EASlC,OAPS,iBADMyM,KAAKzM,GAAG0M,QAGfkN,KAAO/I,MAAMpE,KAAKzM,GAAG0M,OAAO+pB,QAAQ,OACpChqB,KAAKzM,GAAG0M,MAAQkN,KAAK7H,kBAIdtF,KAAKzM,GAAG8M,OACnB,IAAK,YACDL,KAAKzM,GAAG8M,MAAQ,IAChB,MACJ,IAAK,SAED8M,KAAO/I,MAAMpE,KAAKzM,GAAG8M,OAAO2pB,QAAQ,OAAO1kB,UAC3CtF,KAAKzM,GAAG8M,MAAQ8M,KAAK7H,UAIjC,OAAOtF,KAGX,SAASqtB,gBAAgBC,QAASnxB,OAAQsJ,QACtC,IAAIlS,EACA6B,EAEAJ,KACAoL,KACAD,OAHAH,KAAOnR,KAAKmR,OAMhB,IAFAstB,QAAUA,QAAQjhB,cAEb9Y,EAAI,EAAG6B,EAAI4K,KAAKvM,OAAQF,EAAI6B,IAAK7B,EAKlC,GAJAyB,KAAOgL,KAAKzM,GAAGyB,KAAKqX,cACpBjM,KAAOJ,KAAKzM,GAAG6M,KAAKiM,cACpBlM,OAASH,KAAKzM,GAAG4M,OAAOkM,cAEpB5G,OACA,OAAQtJ,QACJ,IAAK,IACL,IAAK,KACL,IAAK,MACD,GAAIiE,OAASktB,QACT,OAAOttB,KAAKzM,GAEhB,MAEJ,IAAK,OACD,GAAIyB,OAASs4B,QACT,OAAOttB,KAAKzM,GAEhB,MAEJ,IAAK,QACD,GAAI4M,SAAWmtB,QACX,OAAOttB,KAAKzM,QAIrB,GAAI,CAACyB,KAAMoL,KAAMD,QAAQnB,QAAQsuB,UAAY,EAChD,OAAOttB,KAAKzM,GAKxB,SAASg6B,sBAAsB9mB,IAAKqI,MAChC,IAAI0e,IAAM/mB,IAAIxG,OAASwG,IAAIpG,MAAQ,GAAM,EACzC,YAAahD,IAATyR,KACO1K,MAAMqC,IAAIxG,OAAO6O,OAEjB1K,MAAMqC,IAAIxG,OAAO6O,QAAUA,KAAOrI,IAAIvG,QAAUstB,IAI/D,SAASC,aACL,IAAIl6B,EACA6B,EACAgT,IACApI,KAAOnR,KAAK6c,aAAa1L,OAC7B,IAAKzM,EAAI,EAAG6B,EAAI4K,KAAKvM,OAAQF,EAAI6B,IAAK7B,EAAG,CAIrC,GAFA6U,IAAMvZ,KAAKw3B,QAAQ2D,QAAQ,OAAO1kB,UAE9BtF,KAAKzM,GAAG0M,OAASmI,KAAOA,KAAOpI,KAAKzM,GAAG8M,MACvC,OAAOL,KAAKzM,GAAGyB,KAEnB,GAAIgL,KAAKzM,GAAG8M,OAAS+H,KAAOA,KAAOpI,KAAKzM,GAAG0M,MACvC,OAAOD,KAAKzM,GAAGyB,KAIvB,MAAO,GAGX,SAAS04B,eACL,IAAIn6B,EACA6B,EACAgT,IACApI,KAAOnR,KAAK6c,aAAa1L,OAC7B,IAAKzM,EAAI,EAAG6B,EAAI4K,KAAKvM,OAAQF,EAAI6B,IAAK7B,EAAG,CAIrC,GAFA6U,IAAMvZ,KAAKw3B,QAAQ2D,QAAQ,OAAO1kB,UAE9BtF,KAAKzM,GAAG0M,OAASmI,KAAOA,KAAOpI,KAAKzM,GAAG8M,MACvC,OAAOL,KAAKzM,GAAG4M,OAEnB,GAAIH,KAAKzM,GAAG8M,OAAS+H,KAAOA,KAAOpI,KAAKzM,GAAG0M,MACvC,OAAOD,KAAKzM,GAAG4M,OAIvB,MAAO,GAGX,SAASwtB,aACL,IAAIp6B,EACA6B,EACAgT,IACApI,KAAOnR,KAAK6c,aAAa1L,OAC7B,IAAKzM,EAAI,EAAG6B,EAAI4K,KAAKvM,OAAQF,EAAI6B,IAAK7B,EAAG,CAIrC,GAFA6U,IAAMvZ,KAAKw3B,QAAQ2D,QAAQ,OAAO1kB,UAE9BtF,KAAKzM,GAAG0M,OAASmI,KAAOA,KAAOpI,KAAKzM,GAAG8M,MACvC,OAAOL,KAAKzM,GAAG6M,KAEnB,GAAIJ,KAAKzM,GAAG8M,OAAS+H,KAAOA,KAAOpI,KAAKzM,GAAG0M,MACvC,OAAOD,KAAKzM,GAAG6M,KAIvB,MAAO,GAGX,SAASwtB,aACL,IAAIr6B,EACA6B,EACAo4B,IACAplB,IACApI,KAAOnR,KAAK6c,aAAa1L,OAC7B,IAAKzM,EAAI,EAAG6B,EAAI4K,KAAKvM,OAAQF,EAAI6B,IAAK7B,EAMlC,GALAi6B,IAAMxtB,KAAKzM,GAAG0M,OAASD,KAAKzM,GAAG8M,MAAQ,GAAM,EAG7C+H,IAAMvZ,KAAKw3B,QAAQ2D,QAAQ,OAAO1kB,UAG7BtF,KAAKzM,GAAG0M,OAASmI,KAAOA,KAAOpI,KAAKzM,GAAG8M,OACvCL,KAAKzM,GAAG8M,OAAS+H,KAAOA,KAAOpI,KAAKzM,GAAG0M,MAExC,OACKpR,KAAKigB,OAAS1K,MAAMpE,KAAKzM,GAAG0M,OAAO6O,QAAU0e,IAC9CxtB,KAAKzM,GAAG2M,OAKpB,OAAOrR,KAAKigB,OAGhB,SAAS+e,cAAcvc,UAInB,OAHK7M,WAAW5V,KAAM,mBAClBi/B,iBAAiBp4B,KAAK7G,MAEnByiB,SAAWziB,KAAKk/B,eAAiBl/B,KAAKm/B,WAGjD,SAASC,cAAc3c,UAInB,OAHK7M,WAAW5V,KAAM,mBAClBi/B,iBAAiBp4B,KAAK7G,MAEnByiB,SAAWziB,KAAKq/B,eAAiBr/B,KAAKm/B,WAGjD,SAASG,gBAAgB7c,UAIrB,OAHK7M,WAAW5V,KAAM,qBAClBi/B,iBAAiBp4B,KAAK7G,MAEnByiB,SAAWziB,KAAKu/B,iBAAmBv/B,KAAKm/B,WAGnD,SAASK,aAAa/c,SAAU9L,QAC5B,OAAOA,OAAOyoB,cAAc3c,UAGhC,SAASgd,aAAahd,SAAU9L,QAC5B,OAAOA,OAAOqoB,cAAcvc,UAGhC,SAASid,eAAejd,SAAU9L,QAC9B,OAAOA,OAAO2oB,gBAAgB7c,UAGlC,SAASkd,oBAAoBld,SAAU9L,QACnC,OAAOA,OAAOipB,sBAAwB9d,cAG1C,SAASmd,mBACL,IAIIv6B,EACA6B,EACAs5B,SACAC,SACAC,WARAC,WAAa,GACbC,WAAa,GACbC,aAAe,GACf3W,YAAc,GAMdpY,KAAOnR,KAAKmR,OAEhB,IAAKzM,EAAI,EAAG6B,EAAI4K,KAAKvM,OAAQF,EAAI6B,IAAK7B,EAClCm7B,SAAWjd,YAAYzR,KAAKzM,GAAGyB,MAC/B25B,SAAWld,YAAYzR,KAAKzM,GAAG6M,MAC/BwuB,WAAand,YAAYzR,KAAKzM,GAAG4M,QAEjC2uB,WAAWl9B,KAAK88B,UAChBG,WAAWj9B,KAAK+8B,UAChBI,aAAan9B,KAAKg9B,YAClBxW,YAAYxmB,KAAK88B,UACjBtW,YAAYxmB,KAAK+8B,UACjBvW,YAAYxmB,KAAKg9B,YAGrB//B,KAAKm/B,WAAa,IAAI/jB,OAAO,KAAOmO,YAAY7oB,KAAK,KAAO,IAAK,KACjEV,KAAKk/B,eAAiB,IAAI9jB,OAAO,KAAO6kB,WAAWv/B,KAAK,KAAO,IAAK,KACpEV,KAAKq/B,eAAiB,IAAIjkB,OAAO,KAAO4kB,WAAWt/B,KAAK,KAAO,IAAK,KACpEV,KAAKu/B,iBAAmB,IAAInkB,OACxB,KAAO8kB,aAAax/B,KAAK,KAAO,IAChC,KAcR,SAASy/B,uBAAuB/wB,MAAOgxB,QACnC1jB,eAAe,EAAG,CAACtN,MAAOA,MAAMxK,QAAS,EAAGw7B,QAkChD,SAASC,eAAel3B,OACpB,OAAOm3B,qBAAqBz5B,KACxB7G,KACAmJ,MACAnJ,KAAKwL,OACLxL,KAAKue,UAAYve,KAAK6c,aAAayN,MAAM7e,IACzCzL,KAAK6c,aAAayN,MAAM7e,IACxBzL,KAAK6c,aAAayN,MAAM5e,KAIhC,SAAS60B,kBAAkBp3B,OACvB,OAAOm3B,qBAAqBz5B,KACxB7G,KACAmJ,MACAnJ,KAAK4gB,UACL5gB,KAAKwgB,aACL,EACA,GAIR,SAASggB,oBACL,OAAOrW,YAAYnqB,KAAKigB,OAAQ,EAAG,GAGvC,SAASwgB,2BACL,OAAOtW,YAAYnqB,KAAK2gB,cAAe,EAAG,GAG9C,SAAS+f,iBACL,IAAIC,SAAW3gC,KAAK6c,aAAayN,MACjC,OAAOH,YAAYnqB,KAAKigB,OAAQ0gB,SAASl1B,IAAKk1B,SAASj1B,KAG3D,SAASk1B,qBACL,IAAID,SAAW3gC,KAAK6c,aAAayN,MACjC,OAAOH,YAAYnqB,KAAK0gB,WAAYigB,SAASl1B,IAAKk1B,SAASj1B,KAG/D,SAAS40B,qBAAqBn3B,MAAOqC,KAAM+S,QAAS9S,IAAKC,KACrD,IAAIm1B,YACJ,OAAa,MAAT13B,MACO6gB,WAAWhqB,KAAMyL,IAAKC,KAAKuU,MAG9BzU,MADJq1B,YAAc1W,YAAYhhB,MAAOsC,IAAKC,QAElCF,KAAOq1B,aAEJC,WAAWj6B,KAAK7G,KAAMmJ,MAAOqC,KAAM+S,QAAS9S,IAAKC,MAIhE,SAASo1B,WAAWpgB,SAAUlV,KAAM+S,QAAS9S,IAAKC,KAC9C,IAAIq1B,cAAgBlX,mBAAmBnJ,SAAUlV,KAAM+S,QAAS9S,IAAKC,KACjE4S,KAAOmL,cAAcsX,cAAc9gB,KAAM,EAAG8gB,cAActgB,WAK9D,OAHAzgB,KAAKigB,KAAK3B,KAAK0H,kBACfhmB,KAAKqQ,MAAMiO,KAAKwH,eAChB9lB,KAAKse,KAAKA,KAAKoH,cACR1lB,KAgBX,SAASghC,cAAc73B,OACnB,OAAgB,MAATA,MACD4K,KAAKoP,MAAMnjB,KAAKqQ,QAAU,GAAK,GAC/BrQ,KAAKqQ,MAAoB,GAAblH,MAAQ,GAAUnJ,KAAKqQ,QAAU,GAzZvDqM,eAAe,IAAK,EAAG,EAAG,WAC1BA,eAAe,KAAM,EAAG,EAAG,WAC3BA,eAAe,MAAO,EAAG,EAAG,WAC5BA,eAAe,OAAQ,EAAG,EAAG,WAC7BA,eAAe,QAAS,EAAG,EAAG,aAE9BA,eAAe,IAAK,CAAC,IAAK,GAAI,KAAM,WACpCA,eAAe,IAAK,CAAC,KAAM,GAAI,EAAG,WAClCA,eAAe,IAAK,CAAC,MAAO,GAAI,EAAG,WACnCA,eAAe,IAAK,CAAC,OAAQ,GAAI,EAAG,WAEpC4F,cAAc,IAAKkd,cACnBld,cAAc,KAAMkd,cACpBld,cAAc,MAAOkd,cACrBld,cAAc,OAAQmd,cACtBnd,cAAc,QAASod,gBAEvBjc,cACI,CAAC,IAAK,KAAM,MAAO,OAAQ,UAC3B,SAAUta,MAAO6T,MAAO9C,OAAQ9K,OAC5B,IAAIwI,IAAMsC,OAAOF,QAAQinB,UAAU93B,MAAOiG,MAAO8K,OAAO1B,SACpDZ,IACAG,gBAAgBmC,QAAQtC,IAAMA,IAE9BG,gBAAgBmC,QAAQ5C,WAAanO,SAKjDmZ,cAAc,IAAKR,eACnBQ,cAAc,KAAMR,eACpBQ,cAAc,MAAOR,eACrBQ,cAAc,OAAQR,eACtBQ,cAAc,KAAMqd,qBAEpBlc,cAAc,CAAC,IAAK,KAAM,MAAO,QAASO,MAC1CP,cAAc,CAAC,OAAO,SAAUta,MAAO6T,MAAO9C,OAAQ9K,OAClD,IAAIxH,MACAsS,OAAOF,QAAQ4lB,uBACfh4B,MAAQuB,MAAMvB,MAAMsS,OAAOF,QAAQ4lB,uBAGnC1lB,OAAOF,QAAQtI,oBACfsL,MAAMgH,MAAQ9J,OAAOF,QAAQtI,oBAAoBvI,MAAOvB,OAExDoV,MAAMgH,MAAQrS,SAASxI,MAAO,OAkPtCuT,eAAe,EAAG,CAAC,KAAM,GAAI,GAAG,WAC5B,OAAO1c,KAAK0gB,WAAa,OAG7BhE,eAAe,EAAG,CAAC,KAAM,GAAI,GAAG,WAC5B,OAAO1c,KAAK2gB,cAAgB,OAOhCwf,uBAAuB,OAAQ,YAC/BA,uBAAuB,QAAS,YAChCA,uBAAuB,OAAQ,eAC/BA,uBAAuB,QAAS,eAMhC7d,cAAc,IAAKP,aACnBO,cAAc,IAAKP,aACnBO,cAAc,KAAMd,UAAWJ,QAC/BkB,cAAc,KAAMd,UAAWJ,QAC/BkB,cAAc,OAAQV,UAAWN,QACjCgB,cAAc,OAAQV,UAAWN,QACjCgB,cAAc,QAAST,UAAWN,QAClCe,cAAc,QAAST,UAAWN,QAElCoC,kBACI,CAAC,OAAQ,QAAS,OAAQ,UAC1B,SAAUxa,MAAOqC,KAAM0O,OAAQ9K,OAC3B5D,KAAK4D,MAAMhH,OAAO,EAAG,IAAMgb,MAAMja,UAIzCwa,kBAAkB,CAAC,KAAM,OAAO,SAAUxa,MAAOqC,KAAM0O,OAAQ9K,OAC3D5D,KAAK4D,OAASmG,MAAMmP,kBAAkBvb,UAsE1CuT,eAAe,IAAK,EAAG,KAAM,WAI7B4F,cAAc,IAAKnB,QACnBsC,cAAc,KAAK,SAAUta,MAAO6T,OAChCA,MAAMiH,OAA8B,GAApBb,MAAMja,OAAS,MAanCuT,eAAe,IAAK,CAAC,KAAM,GAAI,KAAM,QAIrC4F,cAAc,IAAKd,UAAWY,wBAC9BE,cAAc,KAAMd,UAAWJ,QAC/BkB,cAAc,MAAM,SAAUG,SAAU9L,QAEpC,OAAO8L,SACD9L,OAAO0E,yBAA2B1E,OAAO4E,cACzC5E,OAAOwE,kCAGjBsI,cAAc,CAAC,IAAK,MAAOS,MAC3BT,cAAc,MAAM,SAAUta,MAAO6T,OACjCA,MAAMkH,MAAQd,MAAMja,MAAMvB,MAAM4Z,WAAW,OAK/C,IAAI0f,iBAAmBtc,WAAW,QAAQ,GAkB1C,SAASuc,gBAAgBh4B,OACrB,IAAIsX,UACA1M,KAAKyiB,OACAx2B,KAAKw3B,QAAQ2D,QAAQ,OAASn7B,KAAKw3B,QAAQ2D,QAAQ,SAAW,OAC/D,EACR,OAAgB,MAAThyB,MAAgBsX,UAAYzgB,KAAK2qB,IAAIxhB,MAAQsX,UAAW,KAnBnE/D,eAAe,MAAO,CAAC,OAAQ,GAAI,OAAQ,aAI3C4F,cAAc,MAAOX,WACrBW,cAAc,OAAQjB,QACtBoC,cAAc,CAAC,MAAO,SAAS,SAAUta,MAAO6T,MAAO9C,QACnDA,OAAOqZ,WAAanQ,MAAMja,UAiB9BuT,eAAe,IAAK,CAAC,KAAM,GAAI,EAAG,UAIlC4F,cAAc,IAAKd,UAAWa,kBAC9BC,cAAc,KAAMd,UAAWJ,QAC/BqC,cAAc,CAAC,IAAK,MAAOW,QAI3B,IAAIgd,aAAexc,WAAW,WAAW,GAIzClI,eAAe,IAAK,CAAC,KAAM,GAAI,EAAG,UAIlC4F,cAAc,IAAKd,UAAWa,kBAC9BC,cAAc,KAAMd,UAAWJ,QAC/BqC,cAAc,CAAC,IAAK,MAAOY,QAI3B,IAsCIjV,MAAOiyB,kBAtCPC,aAAe1c,WAAW,WAAW,GAuCzC,IAnCAlI,eAAe,IAAK,EAAG,GAAG,WACtB,SAAU1c,KAAKgf,cAAgB,QAGnCtC,eAAe,EAAG,CAAC,KAAM,GAAI,GAAG,WAC5B,SAAU1c,KAAKgf,cAAgB,OAGnCtC,eAAe,EAAG,CAAC,MAAO,GAAI,EAAG,eACjCA,eAAe,EAAG,CAAC,OAAQ,GAAI,GAAG,WAC9B,OAA4B,GAArB1c,KAAKgf,iBAEhBtC,eAAe,EAAG,CAAC,QAAS,GAAI,GAAG,WAC/B,OAA4B,IAArB1c,KAAKgf,iBAEhBtC,eAAe,EAAG,CAAC,SAAU,GAAI,GAAG,WAChC,OAA4B,IAArB1c,KAAKgf,iBAEhBtC,eAAe,EAAG,CAAC,UAAW,GAAI,GAAG,WACjC,OAA4B,IAArB1c,KAAKgf,iBAEhBtC,eAAe,EAAG,CAAC,WAAY,GAAI,GAAG,WAClC,OAA4B,IAArB1c,KAAKgf,iBAEhBtC,eAAe,EAAG,CAAC,YAAa,GAAI,GAAG,WACnC,OAA4B,IAArB1c,KAAKgf,iBAKhBsD,cAAc,IAAKX,UAAWR,QAC9BmB,cAAc,KAAMX,UAAWP,QAC/BkB,cAAc,MAAOX,UAAWN,QAG3BjS,MAAQ,OAAQA,MAAMxK,QAAU,EAAGwK,OAAS,IAC7CkT,cAAclT,MAAO0S,eAGzB,SAASyf,QAAQp4B,MAAO6T,OACpBA,MAAMsH,aAAelB,MAAuB,KAAhB,KAAOja,QAGvC,IAAKiG,MAAQ,IAAKA,MAAMxK,QAAU,EAAGwK,OAAS,IAC1CqU,cAAcrU,MAAOmyB,SAYzB,SAASC,cACL,OAAOxhC,KAAK8Z,OAAS,MAAQ,GAGjC,SAAS2nB,cACL,OAAOzhC,KAAK8Z,OAAS,6BAA+B,GAdxDunB,kBAAoBzc,WAAW,gBAAgB,GAI/ClI,eAAe,IAAK,EAAG,EAAG,YAC1BA,eAAe,KAAM,EAAG,EAAG,YAY3B,IAAIglB,MAAQznB,OAAOzW,UAwGnB,SAASm+B,WAAWx4B,OAChB,OAAOyqB,YAAoB,IAARzqB,OAGvB,SAASy4B,eACL,OAAOhO,YAAYljB,MAAM,KAAM8E,WAAWqsB,YAG9C,SAASC,mBAAmB51B,QACxB,OAAOA,OA/GXw1B,MAAM/W,IAAMA,IACZ+W,MAAM33B,SAAWixB,WACjB0G,MAAMlK,MAAQA,MACdkK,MAAMxjB,KAAOA,KACbwjB,MAAMpG,MAAQA,MACdoG,MAAMp0B,OAASA,OACfo0B,MAAMroB,KAAOA,KACbqoB,MAAMzE,QAAUA,QAChByE,MAAMtoB,GAAKA,GACXsoB,MAAMxE,MAAQA,MACdwE,MAAM1c,IAAM8B,UACZ4a,MAAMtD,UAAYA,UAClBsD,MAAMhI,QAAUA,QAChBgI,MAAM/H,SAAWA,SACjB+H,MAAMnG,UAAYA,UAClBmG,MAAM/F,OAASA,OACf+F,MAAM7F,cAAgBA,cACtB6F,MAAM5F,eAAiBA,eACvB4F,MAAMzpB,QAAUimB,UAChBwD,MAAMtE,KAAOA,KACbsE,MAAM/qB,OAASA,OACf+qB,MAAM7kB,WAAaA,WACnB6kB,MAAMrlB,IAAMgZ,aACZqM,MAAMjZ,IAAM0M,aACZuM,MAAMvD,aAAeA,aACrBuD,MAAMzmB,IAAM8L,UACZ2a,MAAMvG,QAAUA,QAChBuG,MAAMpJ,SAAWA,SACjBoJ,MAAM7I,QAAUA,QAChB6I,MAAM1D,SAAWA,SACjB0D,MAAMnF,OAASA,OACfmF,MAAMrF,YAAcA,YACpBqF,MAAMlF,QAAUA,QACM,oBAAXuF,QAAwC,MAAdA,OAAOC,MACxCN,MAAMK,OAAOC,IAAI,+BAAiC,WAC9C,MAAO,UAAYhiC,KAAKsN,SAAW,MAG3Co0B,MAAMzD,OAASA,OACfyD,MAAM3xB,SAAWA,SACjB2xB,MAAM3D,KAAOA,KACb2D,MAAMjrB,QAAUA,QAChBirB,MAAMrD,aAAeA,aACrBqD,MAAMjD,QAAUG,WAChB8C,MAAMO,UAAYpD,aAClB6C,MAAMQ,QAAUpD,WAChB4C,MAAMS,QAAUpD,WAChB2C,MAAMzhB,KAAO0E,WACb+c,MAAM3d,WAAac,cACnB6c,MAAMhhB,SAAW2f,eACjBqB,MAAM/gB,YAAc4f,kBACpBmB,MAAMviB,QAAUuiB,MAAMxiB,SAAW8hB,cACjCU,MAAMrxB,MAAQsY,YACd+Y,MAAMta,YAAcwB,eACpB8Y,MAAMl2B,KAAOk2B,MAAM9hB,MAAQ8K,WAC3BgX,MAAM9gB,QAAU8gB,MAAMU,SAAWxX,cACjC8W,MAAMvX,YAAcuW,eACpBgB,MAAMW,gBAAkBzB,mBACxBc,MAAMY,eAAiB9B,kBACvBkB,MAAMa,sBAAwB9B,yBAC9BiB,MAAMpjB,KAAO4iB,iBACbQ,MAAMj0B,IAAMi0B,MAAMpuB,KAAOkZ,gBACzBkV,MAAMnjB,QAAUkO,sBAChBiV,MAAMlhB,WAAakM,mBACnBgV,MAAMjhB,UAAY0gB,gBAClBO,MAAMp1B,KAAOo1B,MAAMr4B,MAAQ6kB,WAC3BwT,MAAMn1B,OAASm1B,MAAMp4B,QAAU83B,aAC/BM,MAAMriB,OAASqiB,MAAMtiB,QAAUkiB,aAC/BI,MAAM1iB,YAAc0iB,MAAM3iB,aAAesiB,kBACzCK,MAAM3K,UAAYc,aAClB6J,MAAM5qB,IAAMshB,eACZsJ,MAAMhK,MAAQW,iBACdqJ,MAAMG,UAAYtJ,wBAClBmJ,MAAMjJ,qBAAuBA,qBAC7BiJ,MAAMc,MAAQ9J,qBACdgJ,MAAM5I,QAAUA,QAChB4I,MAAM3I,YAAcA,YACpB2I,MAAM1I,MAAQA,MACd0I,MAAMzc,MAAQ+T,MACd0I,MAAMe,SAAWjB,YACjBE,MAAMgB,SAAWjB,YACjBC,MAAMrjB,MAAQ5D,UACV,kDACAymB,kBAEJQ,MAAM94B,OAAS6R,UACX,mDACAkO,aAEJ+Y,MAAM1hB,MAAQvF,UACV,iDACAkK,YAEJ+c,MAAM9E,KAAOniB,UACT,2GACA0d,YAEJuJ,MAAMiB,aAAeloB,UACjB,0GACAke,6BAeJ,IAAIiK,QAAUjnB,OAAOnY,UAuCrB,SAASq/B,MAAMv1B,OAAQpF,MAAO46B,MAAOC,QACjC,IAAIpsB,OAAS6Y,YACT1Y,IAAMJ,YAAYuE,IAAI8nB,OAAQ76B,OAClC,OAAOyO,OAAOmsB,OAAOhsB,IAAKxJ,QAG9B,SAAS01B,eAAe11B,OAAQpF,MAAO46B,OAQnC,GAPI5sB,SAAS5I,UACTpF,MAAQoF,OACRA,YAASkB,GAGblB,OAASA,QAAU,GAEN,MAATpF,MACA,OAAO26B,MAAMv1B,OAAQpF,MAAO46B,MAAO,SAGvC,IAAIp+B,EACA5B,IAAM,GACV,IAAK4B,EAAI,EAAGA,EAAI,GAAIA,IAChB5B,IAAI4B,GAAKm+B,MAAMv1B,OAAQ5I,EAAGo+B,MAAO,SAErC,OAAOhgC,IAWX,SAASmgC,iBAAiBC,aAAc51B,OAAQpF,MAAO46B,OACvB,kBAAjBI,cACHhtB,SAAS5I,UACTpF,MAAQoF,OACRA,YAASkB,GAGblB,OAASA,QAAU,KAGnBpF,MADAoF,OAAS41B,aAETA,cAAe,EAEXhtB,SAAS5I,UACTpF,MAAQoF,OACRA,YAASkB,GAGblB,OAASA,QAAU,IAGvB,IAEI5I,EAFAiS,OAAS6Y,YACT2T,MAAQD,aAAevsB,OAAO2T,MAAM7e,IAAM,EAE1C3I,IAAM,GAEV,GAAa,MAAToF,MACA,OAAO26B,MAAMv1B,QAASpF,MAAQi7B,OAAS,EAAGL,MAAO,OAGrD,IAAKp+B,EAAI,EAAGA,EAAI,EAAGA,IACf5B,IAAI4B,GAAKm+B,MAAMv1B,QAAS5I,EAAIy+B,OAAS,EAAGL,MAAO,OAEnD,OAAOhgC,IAGX,SAASsgC,WAAW91B,OAAQpF,OACxB,OAAO86B,eAAe11B,OAAQpF,MAAO,UAGzC,SAASm7B,gBAAgB/1B,OAAQpF,OAC7B,OAAO86B,eAAe11B,OAAQpF,MAAO,eAGzC,SAASo7B,aAAaJ,aAAc51B,OAAQpF,OACxC,OAAO+6B,iBAAiBC,aAAc51B,OAAQpF,MAAO,YAGzD,SAASq7B,kBAAkBL,aAAc51B,OAAQpF,OAC7C,OAAO+6B,iBAAiBC,aAAc51B,OAAQpF,MAAO,iBAGzD,SAASs7B,gBAAgBN,aAAc51B,OAAQpF,OAC3C,OAAO+6B,iBAAiBC,aAAc51B,OAAQpF,MAAO,eA5HzD06B,QAAQ74B,SAAWA,SACnB64B,QAAQp5B,eAAiBA,eACzBo5B,QAAQhyB,YAAcA,YACtBgyB,QAAQt3B,QAAUA,QAClBs3B,QAAQl2B,SAAWo1B,mBACnBc,QAAQp2B,WAAas1B,mBACrBc,QAAQt4B,aAAeA,aACvBs4B,QAAQ3kB,WAAaA,WACrB2kB,QAAQ3nB,IAAMA,IACd2nB,QAAQzxB,KAAOmtB,WACfsE,QAAQ3B,UAAYzC,gBACpBoE,QAAQzO,gBAAkBuK,sBAC1BkE,QAAQxD,cAAgBA,cACxBwD,QAAQ5D,cAAgBA,cACxB4D,QAAQtD,gBAAkBA,gBAE1BsD,QAAQh6B,OAAS+e,aACjBib,QAAQ/5B,YAAcgf,kBACtB+a,QAAQl0B,YAAc4Z,kBACtBsa,QAAQj0B,YAAcA,YACtBi0B,QAAQ50B,iBAAmBA,iBAC3B40B,QAAQp3B,KAAO6e,WACfuY,QAAQa,eAAiBhZ,qBACzBmY,QAAQc,eAAiBlZ,qBAEzBoY,QAAQ95B,SAAW4iB,eACnBkX,QAAQ55B,YAAc8iB,kBACtB8W,QAAQ75B,cAAgB6iB,oBACxBgX,QAAQ3zB,cAAgBod,oBAExBuW,QAAQzX,cAAgBA,cACxByX,QAAQ1X,mBAAqBA,mBAC7B0X,QAAQ3X,iBAAmBA,iBAE3B2X,QAAQ15B,KAAOwkB,WACfkV,QAAQx5B,SAAW+kB,eA4FnBkB,mBAAmB,KAAM,CACrBle,KAAM,CACF,CACIC,MAAO,aACPI,MAAO,IACPH,OAAQ,EACRlL,KAAM,cACNmL,OAAQ,KACRC,KAAM,MAEV,CACIH,MAAO,aACPI,OAAO,IACPH,OAAQ,EACRlL,KAAM,gBACNmL,OAAQ,KACRC,KAAM,OAGdlG,uBAAwB,uBACxBC,QAAS,SAAUC,QACf,IAAIwB,EAAIxB,OAAS,GAWjB,OAAOA,QATgC,IAA/B6X,MAAO7X,OAAS,IAAO,IACjB,KACM,IAANwB,EACE,KACM,IAANA,EACE,KACM,IAANA,EACE,KACA,SAO5BwI,MAAM6nB,KAAO3iB,UACT,wDACA4U,oBAEJ9Z,MAAMouB,SAAWlpB,UACb,gEACA+U,WAGJ,IAAIoU,QAAU7vB,KAAKmI,IAEnB,SAASA,MACL,IAAIqT,KAAOvvB,KAAKo2B,MAahB,OAXAp2B,KAAKk2B,cAAgB0N,QAAQ5jC,KAAKk2B,eAClCl2B,KAAKm2B,MAAQyN,QAAQ5jC,KAAKm2B,OAC1Bn2B,KAAK4nB,QAAUgc,QAAQ5jC,KAAK4nB,SAE5B2H,KAAKxQ,aAAe6kB,QAAQrU,KAAKxQ,cACjCwQ,KAAKnQ,QAAUwkB,QAAQrU,KAAKnQ,SAC5BmQ,KAAKjmB,QAAUs6B,QAAQrU,KAAKjmB,SAC5BimB,KAAKlmB,MAAQu6B,QAAQrU,KAAKlmB,OAC1BkmB,KAAK3mB,OAASg7B,QAAQrU,KAAK3mB,QAC3B2mB,KAAKvP,MAAQ4jB,QAAQrU,KAAKvP,OAEnBhgB,KAGX,SAAS6jC,cAAc5N,SAAU9sB,MAAOjG,MAAO22B,WAC3C,IAAIzE,MAAQW,eAAe5sB,MAAOjG,OAMlC,OAJA+yB,SAASC,eAAiB2D,UAAYzE,MAAMc,cAC5CD,SAASE,OAAS0D,UAAYzE,MAAMe,MACpCF,SAASrO,SAAWiS,UAAYzE,MAAMxN,QAE/BqO,SAASI,UAIpB,SAASyN,MAAM36B,MAAOjG,OAClB,OAAO2gC,cAAc7jC,KAAMmJ,MAAOjG,MAAO,GAI7C,SAAS6gC,WAAW56B,MAAOjG,OACvB,OAAO2gC,cAAc7jC,KAAMmJ,MAAOjG,OAAQ,GAG9C,SAAS8gC,QAAQz4B,QACb,OAAIA,OAAS,EACFwI,KAAKC,MAAMzI,QAEXwI,KAAKoP,KAAK5X,QAIzB,SAAS04B,SACL,IAII7kB,QACA9V,QACAD,MACA2W,MACAkkB,eARAnlB,aAAe/e,KAAKk2B,cACpB5iB,KAAOtT,KAAKm2B,MACZvtB,OAAS5I,KAAK4nB,QACd2H,KAAOvvB,KAAKo2B,MAgDhB,OArCSrX,cAAgB,GAAKzL,MAAQ,GAAK1K,QAAU,GAC5CmW,cAAgB,GAAKzL,MAAQ,GAAK1K,QAAU,IAGjDmW,cAAuD,MAAvCilB,QAAQG,aAAav7B,QAAU0K,MAC/CA,KAAO,EACP1K,OAAS,GAKb2mB,KAAKxQ,aAAeA,aAAe,IAEnCK,QAAU8D,SAASnE,aAAe,KAClCwQ,KAAKnQ,QAAUA,QAAU,GAEzB9V,QAAU4Z,SAAS9D,QAAU,IAC7BmQ,KAAKjmB,QAAUA,QAAU,GAEzBD,MAAQ6Z,SAAS5Z,QAAU,IAC3BimB,KAAKlmB,MAAQA,MAAQ,GAErBiK,MAAQ4P,SAAS7Z,MAAQ,IAIzBT,QADAs7B,eAAiBhhB,SAASkhB,aAAa9wB,OAEvCA,MAAQ0wB,QAAQG,aAAaD,iBAG7BlkB,MAAQkD,SAASta,OAAS,IAC1BA,QAAU,GAEV2mB,KAAKjc,KAAOA,KACZic,KAAK3mB,OAASA,OACd2mB,KAAKvP,MAAQA,MAENhgB,KAGX,SAASokC,aAAa9wB,MAGlB,OAAe,KAAPA,KAAe,OAG3B,SAAS6wB,aAAav7B,QAElB,OAAiB,OAATA,OAAmB,KAG/B,SAASy7B,GAAG7xB,OACR,IAAKxS,KAAKiY,UACN,OAAOY,IAEX,IAAIvF,KACA1K,OACAmW,aAAe/e,KAAKk2B,cAIxB,GAAc,WAFd1jB,MAAQ0N,eAAe1N,SAEY,YAAVA,OAAiC,SAAVA,MAG5C,OAFAc,KAAOtT,KAAKm2B,MAAQpX,aAAe,MACnCnW,OAAS5I,KAAK4nB,QAAUwc,aAAa9wB,MAC7Bd,OACJ,IAAK,QACD,OAAO5J,OACX,IAAK,UACD,OAAOA,OAAS,EACpB,IAAK,OACD,OAAOA,OAAS,QAKxB,OADA0K,KAAOtT,KAAKm2B,MAAQpiB,KAAKyiB,MAAM2N,aAAankC,KAAK4nB,UACzCpV,OACJ,IAAK,OACD,OAAOc,KAAO,EAAIyL,aAAe,OACrC,IAAK,MACD,OAAOzL,KAAOyL,aAAe,MACjC,IAAK,OACD,OAAc,GAAPzL,KAAYyL,aAAe,KACtC,IAAK,SACD,OAAc,KAAPzL,KAAcyL,aAAe,IACxC,IAAK,SACD,OAAc,MAAPzL,KAAeyL,aAAe,IAEzC,IAAK,cACD,OAAOhL,KAAKC,MAAa,MAAPV,MAAgByL,aACtC,QACI,MAAM,IAAI/J,MAAM,gBAAkBxC,QAKlD,SAAS8xB,OAAOC,OACZ,OAAO,WACH,OAAOvkC,KAAKqkC,GAAGE,QAIvB,IAAIC,eAAiBF,OAAO,MACxBG,UAAYH,OAAO,KACnBI,UAAYJ,OAAO,KACnBK,QAAUL,OAAO,KACjBM,OAASN,OAAO,KAChBO,QAAUP,OAAO,KACjBQ,SAAWR,OAAO,KAClBS,WAAaT,OAAO,KACpBU,QAAUV,OAAO,KACjBW,UAAYT,eAEhB,SAASU,UACL,OAAOnP,eAAe/1B,MAG1B,SAASmlC,MAAM3yB,OAEX,OADAA,MAAQ0N,eAAe1N,OAChBxS,KAAKiY,UAAYjY,KAAKwS,MAAQ,OAASqG,IAGlD,SAASusB,WAAWj/B,MAChB,OAAO,WACH,OAAOnG,KAAKiY,UAAYjY,KAAKo2B,MAAMjwB,MAAQ0S,KAInD,IAAIkG,aAAeqmB,WAAW,gBAC1BhmB,QAAUgmB,WAAW,WACrB97B,QAAU87B,WAAW,WACrB/7B,MAAQ+7B,WAAW,SACnB9xB,KAAO8xB,WAAW,QAClBx8B,OAASw8B,WAAW,UACpBplB,MAAQolB,WAAW,SAEvB,SAASxlB,QACL,OAAOsD,SAASljB,KAAKsT,OAAS,GAGlC,IAAIkjB,MAAQziB,KAAKyiB,MACb6O,WAAa,CACT36B,GAAI,GACJD,EAAG,GACHE,EAAG,GACHE,EAAG,GACHE,EAAG,GACH4C,EAAG,KACH1C,EAAG,IAIX,SAASq6B,kBAAkBp5B,OAAQX,OAAQU,cAAeE,SAAUwK,QAChE,OAAOA,OAAOrM,aAAaiB,QAAU,IAAKU,cAAeC,OAAQC,UAGrE,SAASo5B,eAAeC,eAAgBv5B,cAAeo5B,WAAY1uB,QAC/D,IAAIsf,SAAWF,eAAeyP,gBAAgBtpB,MAC1CkD,QAAUoX,MAAMP,SAASoO,GAAG,MAC5B/6B,QAAUktB,MAAMP,SAASoO,GAAG,MAC5Bh7B,MAAQmtB,MAAMP,SAASoO,GAAG,MAC1B/wB,KAAOkjB,MAAMP,SAASoO,GAAG,MACzBz7B,OAAS4tB,MAAMP,SAASoO,GAAG,MAC3BzkB,MAAQ4W,MAAMP,SAASoO,GAAG,MAC1BrkB,MAAQwW,MAAMP,SAASoO,GAAG,MAC1Bv3B,EACKsS,SAAWimB,WAAW36B,IAAM,CAAC,IAAK0U,UAClCA,QAAUimB,WAAW56B,GAAK,CAAC,KAAM2U,UACjC9V,SAAW,GAAK,CAAC,MACjBA,QAAU+7B,WAAW16B,GAAK,CAAC,KAAMrB,UACjCD,OAAS,GAAK,CAAC,MACfA,MAAQg8B,WAAWx6B,GAAK,CAAC,KAAMxB,QAC/BiK,MAAQ,GAAK,CAAC,MACdA,KAAO+xB,WAAWt6B,GAAK,CAAC,KAAMuI,MAgBvC,OAdoB,MAAhB+xB,WAAW13B,IACXb,EACIA,GACC8S,OAAS,GAAK,CAAC,MACfA,MAAQylB,WAAW13B,GAAK,CAAC,KAAMiS,SAExC9S,EAAIA,GACClE,QAAU,GAAK,CAAC,MAChBA,OAASy8B,WAAWp6B,GAAK,CAAC,KAAMrC,SAChCoX,OAAS,GAAK,CAAC,MAAS,CAAC,KAAMA,QAElC,GAAK/T,cACPa,EAAE,IAAM04B,eAAiB,EACzB14B,EAAE,GAAK6J,OACA2uB,kBAAkB50B,MAAM,KAAM5D,GAIzC,SAAS24B,2BAA2BC,kBAChC,YAAyBl3B,IAArBk3B,iBACOlP,MAEqB,mBAArBkP,mBACPlP,MAAQkP,kBACD,GAMf,SAASC,4BAA4BC,UAAWC,OAC5C,YAA8Br3B,IAA1B62B,WAAWO,kBAGDp3B,IAAVq3B,MACOR,WAAWO,YAEtBP,WAAWO,WAAaC,MACN,MAAdD,YACAP,WAAW36B,GAAKm7B,MAAQ,IAErB,IAGX,SAAS7I,SAAS8I,cAAeC,eAC7B,IAAK/lC,KAAKiY,UACN,OAAOjY,KAAK6c,aAAajM,cAG7B,IAEI+F,OACAhH,OAHAq2B,YAAa,EACbC,GAAKZ,WAyBT,MArB6B,iBAAlBS,gBACPC,cAAgBD,cAChBA,eAAgB,GAES,kBAAlBA,gBACPE,WAAaF,eAEY,iBAAlBC,gBACPE,GAAKn2B,OAAOo2B,OAAO,GAAIb,WAAYU,eACZ,MAAnBA,cAAct7B,GAAiC,MAApBs7B,cAAcr7B,KACzCu7B,GAAGv7B,GAAKq7B,cAAct7B,EAAI,IAKlCkF,OAAS41B,eAAevlC,MAAOgmC,WAAYC,GAD3CtvB,OAAS3W,KAAK6c,cAGVmpB,aACAr2B,OAASgH,OAAOsH,YAAYje,KAAM2P,SAG/BgH,OAAOnK,WAAWmD,QAG7B,IAAIw2B,MAAQpyB,KAAKmI,IAEjB,SAAS8a,KAAK7P,GACV,OAAQA,EAAI,IAAMA,EAAI,KAAOA,EAGjC,SAASif,gBAQL,IAAKpmC,KAAKiY,UACN,OAAOjY,KAAK6c,aAAajM,cAG7B,IAGItH,QACAD,MACA2W,MACAvV,EAEA47B,UACAC,OACAC,SACAC,QAXApnB,QAAU+mB,MAAMnmC,KAAKk2B,eAAiB,IACtC5iB,KAAO6yB,MAAMnmC,KAAKm2B,OAClBvtB,OAASu9B,MAAMnmC,KAAK4nB,SAKpB6e,MAAQzmC,KAAKykC,YAMjB,OAAKgC,OAOLn9B,QAAU4Z,SAAS9D,QAAU,IAC7B/V,MAAQ6Z,SAAS5Z,QAAU,IAC3B8V,SAAW,GACX9V,SAAW,GAGX0W,MAAQkD,SAASta,OAAS,IAC1BA,QAAU,GAGV6B,EAAI2U,QAAUA,QAAQsnB,QAAQ,GAAGtgC,QAAQ,SAAU,IAAM,GAEzDigC,UAAYI,MAAQ,EAAI,IAAM,GAC9BH,OAAStP,KAAKh3B,KAAK4nB,WAAaoP,KAAKyP,OAAS,IAAM,GACpDF,SAAWvP,KAAKh3B,KAAKm2B,SAAWa,KAAKyP,OAAS,IAAM,GACpDD,QAAUxP,KAAKh3B,KAAKk2B,iBAAmBc,KAAKyP,OAAS,IAAM,GAGvDJ,UACA,KACCrmB,MAAQsmB,OAAStmB,MAAQ,IAAM,KAC/BpX,OAAS09B,OAAS19B,OAAS,IAAM,KACjC0K,KAAOizB,SAAWjzB,KAAO,IAAM,KAC/BjK,OAASC,SAAW8V,QAAU,IAAM,KACpC/V,MAAQm9B,QAAUn9B,MAAQ,IAAM,KAChCC,QAAUk9B,QAAUl9B,QAAU,IAAM,KACpC8V,QAAUonB,QAAU/7B,EAAI,IAAM,KA9BxB,MAkCf,IAAIk8B,QAAU3Q,SAASxyB,UAwGvB,OAtGAmjC,QAAQ1uB,QAAU4d,UAClB8Q,QAAQzqB,IAAMA,IACdyqB,QAAQhc,IAAMmZ,MACd6C,QAAQrO,SAAWyL,WACnB4C,QAAQtC,GAAKA,GACbsC,QAAQnC,eAAiBA,eACzBmC,QAAQlC,UAAYA,UACpBkC,QAAQjC,UAAYA,UACpBiC,QAAQhC,QAAUA,QAClBgC,QAAQ/B,OAASA,OACjB+B,QAAQ9B,QAAUA,QAClB8B,QAAQ7B,SAAWA,SACnB6B,QAAQ5B,WAAaA,WACrB4B,QAAQ3B,QAAUA,QAClB2B,QAAQlwB,QAAUwuB,UAClB0B,QAAQtQ,QAAU4N,OAClB0C,QAAQnP,MAAQ0N,QAChByB,QAAQ3hB,IAAMmgB,MACdwB,QAAQ5nB,aAAeA,aACvB4nB,QAAQvnB,QAAUA,QAClBunB,QAAQr9B,QAAUA,QAClBq9B,QAAQt9B,MAAQA,MAChBs9B,QAAQrzB,KAAOA,KACfqzB,QAAQ/mB,MAAQA,MAChB+mB,QAAQ/9B,OAASA,OACjB+9B,QAAQ3mB,MAAQA,MAChB2mB,QAAQ3J,SAAWA,SACnB2J,QAAQtK,YAAc+J,cACtBO,QAAQ52B,SAAWq2B,cACnBO,QAAQ1I,OAASmI,cACjBO,QAAQhwB,OAASA,OACjBgwB,QAAQ9pB,WAAaA,WAErB8pB,QAAQC,YAAcnsB,UAClB,sFACA2rB,eAEJO,QAAQvJ,KAAOA,KAIf1gB,eAAe,IAAK,EAAG,EAAG,QAC1BA,eAAe,IAAK,EAAG,EAAG,WAI1B4F,cAAc,IAAKP,aACnBO,cAAc,IAAKJ,gBACnBuB,cAAc,KAAK,SAAUta,MAAO6T,MAAO9C,QACvCA,OAAO7B,GAAK,IAAIjC,KAAyB,IAApBwf,WAAWzsB,WAEpCsa,cAAc,KAAK,SAAUta,MAAO6T,MAAO9C,QACvCA,OAAO7B,GAAK,IAAIjC,KAAKgN,MAAMja,WAK/BoM,MAAMsxB,QAAU,SAEhBpxB,gBAAgBme,aAEhBre,MAAMe,GAAKorB,MACXnsB,MAAMkT,IAAMA,IACZlT,MAAM8G,IAAMA,IACZ9G,MAAM3D,IAAMA,IACZ2D,MAAMuB,IAAMJ,UACZnB,MAAMwoB,KAAO4D,WACbpsB,MAAM3M,OAASw6B,WACf7tB,MAAMY,OAASA,OACfZ,MAAMoB,OAAS0Y,mBACf9Z,MAAMykB,QAAUphB,cAChBrD,MAAM0gB,SAAWF,eACjBxgB,MAAM6E,SAAWA,SACjB7E,MAAMzM,SAAWw6B,aACjB/tB,MAAMssB,UAAYD,aAClBrsB,MAAMsH,WAAa2S,UACnBja,MAAM+gB,WAAaA,WACnB/gB,MAAM1M,YAAcw6B,gBACpB9tB,MAAMvM,YAAcw6B,gBACpBjuB,MAAM5M,aAAeA,aACrB4M,MAAMma,aAAeA,aACrBna,MAAM+Y,QAAUsB,YAChBra,MAAMxM,cAAgBw6B,kBACtBhuB,MAAM2K,eAAiBA,eACvB3K,MAAMuxB,qBAAuBrB,2BAC7BlwB,MAAMwxB,sBAAwBpB,4BAC9BpwB,MAAM6lB,eAAiBN,kBACvBvlB,MAAM/R,UAAYk+B,MAGlBnsB,MAAMyxB,UAAY,CACdC,eAAgB,mBAChBC,uBAAwB,sBACxBC,kBAAmB,0BACnBjjB,KAAM,aACNkjB,KAAM,QACNC,aAAc,WACdC,QAAS,eACT/iB,KAAM,aACNN,MAAO,WAGJ1O,MA9iLyE5J,uLCCpF,WAGE,SAAS47B,SAASC,OAAQC,OACxB5oC,OAAO6oC,eAAelkC,UAAUgkC,QAAUC,MAAM5oC,OAAO6oC,eAAelkC,UAAUgkC,SAGlF,SAASG,aAAaC,IAAKtuB,KAAMhD,IAC/B,IACExG,OAAO+3B,eAAeD,IAAKtuB,KAAM,CAAC0L,IAAK1O,KACvC,MAAOpR,KAQX,GAJKrG,OAAOipC,UACVjpC,OAAOipC,QAAU,KAGdjpC,OAAO6oC,eACV,KAAM,wDAIR,GADAI,QAAQC,YAAclpC,OAAOmpC,UAAYF,QAAQG,UAC7CH,QAAQC,WAAY,CACtB,IAAIG,yBAA2B,SAAUN,KACvC,IAAKA,IAAIO,YAAa,CACfP,IAAIQ,SAAQR,IAAIQ,OAAS,IAC9BR,IAAIO,YAAc,GAClB,IAAIE,qBAAuBT,IAAIQ,OAAOE,iBACtCV,IAAIQ,OAAOE,iBAAmB,SAAUvvB,EAAGzC,IACzCsxB,IAAIO,YAAYpvB,GAAKzC,GACjB+xB,sBAAsBA,qBAAqB33B,MAAM1Q,KAAMwV,cAKjE+xB,SAAS,QAAQ,SAAUgB,MACzB,OAAO,SAAU59B,EAAG9C,IAAKkF,GACvBm7B,yBAAyBloC,MACzBA,KAAKwoC,MAAQ3gC,IACb,IACE0gC,KAAK73B,MAAM1Q,KAAM,CAAC2K,EAAG9C,IAAKkF,IAC1B,MAAO7H,GACHA,EAAEujC,QAAQt4B,QAAQ,qBAAuB,IAC3CnQ,KAAK0oC,YAAcxjC,EACnBqjC,KAAK73B,MAAM1Q,KAAM,CAAC2K,EAAG,4BAA6BoC,UAM1Dw6B,SAAS,qBAAqB,SAAUgB,MACtC,OAAO,SAAU19B,GACf,OAAO7K,KAAK2oC,cAAgB3oC,KAAK2oC,aAAaC,kBAAoB5oC,KAAK2oC,aAAaC,kBAAkB/9B,GAAc,MAAR09B,KAAe,KAAOA,KAAK73B,MAAM1Q,KAAM,CAAC6K,QAIxJ08B,SAAS,yBAAyB,SAAUgB,MAC1C,OAAO,WACL,OAAOvoC,KAAK2oC,cAAgB3oC,KAAK2oC,aAAaE,sBAAwB7oC,KAAK2oC,aAAaE,wBAAmC,MAARN,KAAe,KAAOA,KAAK73B,MAAM1Q,UAIxJunC,SAAS,SAAS,SAAUgB,MAC1B,OAAO,WACL,OAAOvoC,KAAK2oC,cAAgB3oC,KAAK2oC,aAAaG,MAAQ9oC,KAAK2oC,aAAaG,QAAmB,MAARP,KAAe,KAAOA,KAAK73B,MAAM1Q,UAIxHunC,SAAS,oBAAoB,SAAUgB,MACrC,OAAO,SAAUQ,OAAQ7lC,OACvB,GAAe,cAAX6lC,OAAwB,CAC1Bb,yBAAyBloC,MACzB,IAAIuZ,IAAMrW,MAAMlD,MAEZuZ,eAAe1J,UACjB0J,IAAIvZ,WAGNA,KAAKgpC,iBAAmBhpC,KAAKgpC,kBAAoB,GACjDhpC,KAAKgpC,iBAAiBD,QAAU7lC,MAChCqlC,KAAK73B,MAAM1Q,KAAMwV,eAKvB+xB,SAAS,QAAQ,SAAUgB,MACzB,OAAO,WACL,IAAIX,IAAM5nC,KACV,GAAIwV,UAAU,IAAMA,UAAU,GAAGyzB,gBAAiB,CAmFhD,IAlFA,IAAIC,SAAW1zB,UAAU,GACrB0E,OAAS,CACXrS,IAAK+/B,IAAIY,MACTW,OAAO,EACPC,OAAO,EACPC,SAAU,SAAUC,IAAKC,YACnBD,KAAOxqC,QAAQ2I,SAAS6hC,OAAkC,IAA1BA,IAAIn5B,QAAQ,WAE9Cm5B,IAAM,MAER1B,IAAI4B,aAAc,GACbF,KAAO1B,IAAIO,YAAYsB,MAC1B7B,IAAIO,YAAYsB,KAAK,CACnBC,KAAM,OACNC,OAAQ/B,IAAIgC,SACZnD,MAAOmB,IAAIiC,QACXliC,OAAQigC,IACRkC,kBAAkB,KAEjBR,KAAO1B,IAAIO,YAAY4B,SAC1BnC,IAAIO,YAAY4B,QAAQ,CACtBL,KAAM,UACNC,OAAQ/B,IAAIgC,SACZnD,MAAOmB,IAAIiC,QACXliC,OAAQigC,IACRkC,kBAAkB,IAEV,UAARR,KAAmB1B,IAAIO,YAAYW,OACrClB,IAAIO,YAAYW,MAAM,CACpBY,KAAM,QACNC,OAAQ/B,IAAIgC,SACZnD,MAAOmB,IAAIiC,QACXliC,OAAQigC,IACRkC,kBAAkB,SAEIt7B,IAAtB+6B,WAAWS,QAAsBrC,aAAaC,IAAK,UAAU,WAC/D,OAA8B,IAAtB2B,WAAWS,QAAgBV,KAAe,UAARA,IAAmB,IAAMC,WAAWS,eAElDx7B,IAA1B+6B,WAAWU,YAA0BtC,aAAaC,IAAK,cAAc,WACvE,OAAO2B,WAAWU,cAEpBtC,aAAaC,IAAK,cAAc,WAC9B,OAAO,UAEmBp5B,IAAxB+6B,WAAWW,UAAwBvC,aAAaC,IAAK,YAAY,WACnE,OAAO2B,WAAWW,YAEpB,IAAIC,KAAOZ,WAAWa,eAAiBd,KAA6B,IAAtBC,WAAWS,QAAwB,UAARV,IAAkBA,SAAM96B,GACjGm5B,aAAaC,IAAK,gBAAgB,WAChC,OAAOuC,QAETxC,aAAaC,IAAK,YAAY,WAC5B,OAAOuC,QAELb,KAAK3B,aAAaC,IAAK,OAAO,WAChC,OAAO0B,OAET1B,IAAIe,aAAeY,WACf3B,IAAIyC,oBAAoBzC,IAAIyC,qBAC5BzC,IAAI0C,QAAQ1C,IAAI0C,UAEtBC,SAAU,SAAUrlC,GAKlB,GAJAA,EAAEyC,OAASigC,IACPA,IAAIO,YAAYoC,UAAU3C,IAAIO,YAAYoC,SAASrlC,GACvD0iC,IAAIiC,QAAU3kC,EAAEuhC,MAChBmB,IAAIgC,SAAW1kC,EAAEykC,OACbzkC,EAAEuhC,QAAUvhC,EAAEykC,OAAQ,CAExB,IAAIa,MAAQxqC,KACZyqC,YAAW,WACJ7C,IAAI4B,cACP5B,IAAIiB,sBAAwB,aAE5B2B,MAAMnB,SAAS,KAAM,CAACW,OAAQ,IAAKC,WAAY,kBAEhDnC,QAAQ4C,kBAAoB,OAGnCC,QAAS/C,IAAIoB,iBAEf9uB,KAAc,GACdA,MAAe,IACNxV,EAAI,EAAGA,EAAIwkC,SAAS3Z,KAAK3qB,OAAQF,IAAK,CAC7C,IAAIk2B,KAAOsO,SAAS3Z,KAAK7qB,GACT,MAAZk2B,KAAKrhB,KAAgC,MAAjBqhB,KAAKrhB,IAAIpT,MAAiC,MAAjBy0B,KAAKrhB,IAAIqxB,MAAiC,MAAjBhQ,KAAKrhB,IAAImwB,KACjFxvB,OAAO2wB,MAAMjQ,KAAKz3B,KAAOy3B,KAAKrhB,IAE9BW,OAAOqV,KAAKqL,KAAKz3B,KAAOy3B,KAAKrhB,IAIjCkxB,YAAW,WACT,IAAK3C,QAAQgD,SACX,KAAM,iFAERlD,IAAIe,aAAeb,QAAQM,OAAOluB,UACjC,OACE,CACL,GAAIla,KAAK0oC,YACP,MAAM1oC,KAAK0oC,YAEbH,KAAK73B,MAAMk3B,IAAKpyB,gBAItB3W,OAAO6oC,eAAeuB,iBAAkB,EACxCpqC,OAAOmpC,SAAWA,SAAW,WAC3B,MAAO,CACL+C,OAAQ,SAAU5nC,IAAKoW,IAAKpT,MACtBoT,IAAIyxB,sBACNzxB,IAAMA,IAAIgW,KAAK,IAEjBvvB,KAAKuvB,KAAKxsB,KAAK,CACbI,IACAoW,IACApT,QAGJopB,KAAM,GACN0Z,iBAAiB,IAIrBpqC,OAAOosC,KAAOA,KAAO,SAAUl+B,GAC7B,MAAO,CACLwiB,KAAMxiB,EACNi+B,qBAAqB,KAxN7B,GA+NA,WASE,SAASF,WACP,IAEE,GADS,IAAII,cAAc,iCACnB,OAAO,EACf,MAAOhmC,GACP,QAA6DsJ,IAAzD28B,UAAUC,UAAU,iCAAgD,OAAO,EAEjF,OAAO,EAGT,SAASC,UAAU1mC,KACjB,IAAI2mC,KAAO,EAAGC,IAAM,EAEpB,GAAI,qCACF,OAAOC,OAAO7mC,KAAK0M,SAGrB,GAAI1M,IAAI8mC,aACN,GACEH,MAAS3mC,IAAI+mC,WAAa/mC,IAAIgnC,WAC9BJ,KAAQ5mC,IAAIinC,UAAYjnC,IAAIknC,UAC5BlnC,IAAMA,IAAI8mC,mBACH9mC,KAEX,MAAO,CACL2mC,KACAC,KAIJ,GAAIzD,QAAQC,WAAY,CAQtB,GAPAD,QAAQgD,SAAWA,WAGfhD,QAAQG,YACVH,QAAQgE,OAAQ,IAGbhE,QAAQM,OAAQ,CACnB,IAAI2D,MAAOC,SAA2GtnC,EAAGwD,MAAO+jC,IAA3GC,OAASnnC,SAASonC,cAAc,UAAWC,WAAarnC,SAASsnC,qBAAqB,UAC3G,GAAIxtC,OAAOipC,QAAQiE,MACjBA,MAAQltC,OAAOipC,QAAQiE,WAClB,GAAIltC,OAAOipC,QAAQwE,OACxBN,SAAWntC,OAAOipC,QAAQwE,YAE1B,IAAK5nC,EAAI,EAAGA,EAAI0nC,WAAWxnC,OAAQF,IAGjC,IADAwD,OADA+jC,IAAMG,WAAW1nC,GAAGunC,KACRM,OAAO,4CACN,EAAG,CACdP,SAAWC,IAAI3jC,UAAU,EAAGJ,MAAQ,GACpC,MAKoB,MAAtB4/B,QAAQ0E,aAAoB1E,QAAQ0E,WAAaR,UACrDE,OAAOO,aAAa,MAAOV,OAASC,SAAW,kBAC/CjnC,SAASsnC,qBAAqB,QAAQ,GAAGK,YAAYR,QAGvDpE,QAAQ6E,SAAW,SAAUC,KAAMC,SAAUC,UAC3C,IAAKhC,WACH,KAAM,iFA8BR8B,KAAK7tC,KAAK,cA5BU,WAClB,IAAIguC,MAAQF,SAASG,SACjBJ,KAAK1mC,KAAK,YACR6mC,OAAOA,MAAME,YAAY,uBAExBJ,SAAS3mC,KAAK,kBACjB2mC,SAASK,OAAO,UAChBL,SAASK,OAAO,SAChBL,SAAS9tC,KAAK,UAAU,SAAUouC,KAChCC,gBAAgB18B,MAAM1Q,KAAM,CAACmtC,MAC7BL,SAASp8B,MAAM1Q,KAAM,CAACmtC,SAExBN,SAAS3mC,KAAK,eAAgB,SAEhC6mC,MAAMM,SAAS,sBAlFvB,SAASC,gBAAgBV,MACvB,MAAyC,UAAlCA,KAAK,GAAGW,QAAQrrC,eAA6B0qC,KAAK1mC,KAAK,SAA+C,SAApC0mC,KAAK1mC,KAAK,QAAQhE,cAkFhForC,CAAgBV,QACnBG,MAAMS,IAAI,WAAY,YACnBA,IAAI,MAAOnC,UAAUuB,KAAK,IAAIrB,IAAM,MAAMiC,IAAI,OAAQnC,UAAUuB,KAAK,IAAItB,KAAO,MAChFkC,IAAI,QAASZ,KAAK,GAAGa,YAAc,MAAMD,IAAI,SAAUZ,KAAK,GAAGc,aAAe,MAC9EF,IAAI,SAAU,oBAAoBA,IAAI,UAAWZ,KAAKY,IAAI,YAC1DA,IAAI,WAAY,UAAUA,IAAI,UAAW,UACzCA,IAAI,aAAc,WACrBX,SAASW,IAAI,QAASZ,KAAK,GAAGa,YAAc,MAAMD,IAAI,SAAUZ,KAAK,GAAGc,aAAe,MACpFF,IAAI,WAAY,YAAYA,IAAI,MAAO,OAAOA,IAAI,OAAQ,YAOnE,IAAIJ,gBAAkB,SAAUD,KAG9B,IAFA,IAAItC,MAAQ/C,QAAQ6F,SAASR,KAEpBzoC,EAAI,EAAGA,EAAImmC,MAAMjmC,OAAQF,SACV8J,IAAlBq8B,MAAMnmC,GAAGkmC,OAAoBC,MAAMnmC,GAAGkmC,KAAO,QAC3Bp8B,IAAlBq8B,MAAMnmC,GAAGyB,OAAoB0kC,MAAMnmC,GAAGyB,KAAO,aAC3BqI,IAAlBq8B,MAAMnmC,GAAGglC,OAAoBmB,MAAMnmC,GAAGglC,KAAO,aAE9CyD,IAAIxlC,SACPwlC,IAAIxlC,OAAS,IAEfwlC,IAAIxlC,OAAOkjC,MAAQA,MAEfsC,IAAIxlC,OAAOkjC,QAAUA,QACvBsC,IAAIS,SAAW/C,QAEhBsC,IAAIS,UAAYT,IAAIxlC,OAAOkjC,OAAOjQ,KAAO,SAAUl2B,GAClD,OAAQyoC,IAAIS,UAAYT,IAAIxlC,OAAOkjC,OAAOnmC,IAAM,QAKtDojC,QAAQ+F,iBAAmB,SAAUjB,KAAMkB,SACrCA,QACFlB,KAAKK,YAAY,sBAEjBL,KAAKS,SAAS,wBAjItB,GAuIKxuC,OAAOkvC,aACVlvC,OAAOkvC,WAAa,WAClB,IAAIvD,MAAQxqC,KAAMguC,aAAc,EAChChuC,KAAKiuC,UAAY,GACjBjuC,KAAKsoC,iBAAmB,SAAUoB,KAAMpzB,IACtCk0B,MAAMyD,UAAUvE,MAAQc,MAAMyD,UAAUvE,OAAS,GACjDc,MAAMyD,UAAUvE,MAAM3mC,KAAKuT,KAE7BtW,KAAKkuC,oBAAsB,SAAUxE,KAAMpzB,IACrCk0B,MAAMyD,UAAUvE,OAAOc,MAAMyD,UAAUvE,MAAMyE,OAAO3D,MAAMyD,UAAUvE,MAAMv5B,QAAQmG,IAAK,IAE7FtW,KAAKouC,cAAgB,SAAUjB,KAC7B,IAAIkB,KAAO7D,MAAMyD,UAAUd,IAAIzD,MAC/B,GAAI2E,KACF,IAAK,IAAI3pC,EAAI,EAAGA,EAAI2pC,KAAKzpC,OAAQF,IAC/B2pC,KAAK3pC,GAAGmC,KAAK2jC,MAAO2C,MAI1BntC,KAAKsuC,QAAUtuC,KAAKuuC,QAAUvuC,KAAKsqC,OAAStqC,KAAKwuC,YAAcxuC,KAAKyuC,UAAYzuC,KAAK0uC,WAAa,KAElG,IAAIC,eAAiB,SAAUjF,KAAMyD,KACnC,IAAIjoC,EAAI,CAACwkC,KAAY/hC,OAAQ6iC,MAAOb,OAAQwD,IAAIxD,OAAQlD,MAAO0G,IAAI1G,MAAOmI,MAAOzB,IAAIyB,OAErF,OADkB,MAAdzB,IAAI59B,SAAgBrK,EAAEyC,OAAO4H,OAAS49B,IAAI59B,QACvCrK,GAEL2pC,SAAW,SAAU1B,KAKvB,IAAIjoC,EAJC8oC,cACHA,aAAc,EACVxD,MAAMgE,aAAahE,MAAMgE,YAAYG,eAAe,YAAaxB,OAGtD,SAAbA,IAAIzD,MACFc,MAAMiE,WAAWjE,MAAMiE,UAAUE,eAAe,UAAWxB,MAC/DjoC,EAAIypC,eAAe,OAAQxB,KACvB3C,MAAMF,QAAQE,MAAMF,OAAOplC,GAC/BslC,MAAM4D,cAAclpC,IACE,aAAbioC,IAAIzD,MACbxkC,EAAIypC,eAAe,WAAYxB,KAC3B3C,MAAMkE,YAAYlE,MAAMkE,WAAWxpC,GACvCslC,MAAM4D,cAAclpC,KAEpBA,EAAIypC,eAAe,QAASxB,KACxB3C,MAAM+D,SAAS/D,MAAM+D,QAAQrpC,GACjCslC,MAAM4D,cAAclpC,KAGxBlF,KAAK8uC,cAAgB,SAAUC,MAC7BjH,QAAQgH,cAAcC,KAAMF,WAE9B7uC,KAAKgvC,WAAa,SAAUD,MAC1BjH,QAAQkH,WAAWD,KAAMF,wBCzZsB,IAAWtG,MAD5D1pC,OAAO6oC,gBAAoB7oC,OAAOipC,SAAWA,QAAQC,aACvDlpC,OAAO6oC,eAAelkC,UAAUyrC,kBAA8B1G,KAY3D1pC,OAAO6oC,eAAelkC,UAAUyrC,iBAX1B,SAAUlG,OAAQ7lC,OACvB,GAAe,cAAX6lC,OAAwB,CAC1B,IAAIxvB,IAAMrW,MAAMlD,MAEZuZ,eAAe1J,UACjB0J,IAAIvZ,WAGNuoC,KAAK73B,MAAM1Q,KAAMwV,cAMzB,IAAI05B,aAAepwC,QAAQa,OAAO,eAAgB,IAElDuvC,aAAarI,QAAU,UAEvBqI,aAAaC,QAAQ,aAAc,CAAC,QAAS,KAAM,WAAY,SAAUC,MAAOC,GAAIC,UAClF,IAAIlH,OAASpoC,KACbooC,OAAOmH,cAAgB,EAEvBvvC,KAAKwvC,kBAAoB,WACvB,OAAO3wC,OAAOosC,MAAQpsC,OAAOosC,KAAKznC,UAAUkQ,OAG9C,IAAI+7B,gBAAkBzvC,KAAKwvC,oBAE3B,SAASE,SAASx1B,QAChBA,OAAOy1B,OAASz1B,OAAOy1B,QAAU,OACjCz1B,OAAOywB,QAAUzwB,OAAOywB,SAAW,GAEnC,IAAIiF,SAAW11B,OAAO21B,UAAY31B,OAAO21B,WAAaR,GAAGS,QACrDC,QAAUH,SAASG,QAEvB,SAASC,eAAe9qC,GAClB0qC,SAASK,QACXL,SAASK,OAAO/qC,GAEd6qC,QAAQG,cACVZ,UAAS,WACPS,QAAQG,aAAahrC,MAK3B,SAASirC,eAAetkC,GACtB,OAAqB,MAAjBqO,OAAOk2B,QAAkBX,gBACpB,CACL9F,OAAQ99B,EAAE89B,OAASzvB,OAAOk2B,OAC1B3J,MAAQvsB,OAAOm2B,OAASn2B,OAAOm2B,MAAMzF,MAAS/+B,EAAE46B,MAChDiD,KAAM79B,EAAE69B,KAAMxvB,OACd4vB,kBAAkB,EAAMniC,OAAQkE,EAAElE,QAG7BkE,EAyBX,SAASykC,oBACPlB,MAAMl1B,QAAQq2B,MAAK,SAAUC,GACzB,GAAIf,iBAAmBv1B,OAAOu2B,aAAev2B,OAAOw2B,WAAax2B,OAAOm2B,MAAO,CAC7E,IAAIM,SAAWz2B,OAAOm2B,OAASn2B,OAAOm2B,MAAMzF,MAAQ,EACpDoF,eAAe,CACXrG,OAAQ51B,KAAK0U,IAAIvO,OAAO02B,KAAMD,UAC9BlK,MAAOkK,SACPz2B,OACAwvB,KAAM,aAGVtB,OAAOA,OAAOluB,QAAQ,QAElBA,OAAOw2B,kBAAkBx2B,OAAOw2B,UACpCd,SAASx6B,QAAQo7B,MAElB,SAAUtrC,GACX0qC,SAASiB,OAAO3rC,MACf,SAAU2G,GACX+jC,SAASK,OAAOpkC,MAyFtB,OAjIKqO,OAAO42B,kBACV52B,OAAOywB,QAAQoG,UAAY,WACzB,OAAO,SAAUnJ,KACVA,KAAQA,IAAIQ,QAAWR,IAAIQ,OAAOE,mBACvCpuB,OAAO82B,MAAQpJ,IACX1tB,OAAO+2B,OAAO/2B,OAAO+2B,MAAMrJ,KAC/BA,IAAIQ,OAAOE,iBAAiB,YAAY,SAAUpjC,GAChDA,EAAEgV,OAASA,OACX81B,eAAeG,eAAejrC,OAC7B,GAEH0iC,IAAIQ,OAAOE,iBAAiB,QAAQ,SAAUpjC,GACxCA,EAAE4kC,mBACJ5kC,EAAEgV,OAASA,OACX81B,eAAeG,eAAejrC,QAE/B,OA6BJuqC,gBAEMv1B,OAAOu2B,YAAcv2B,OAAO02B,OAAS12B,OAAOw2B,WACrDx2B,OAAOk2B,OAASl2B,OAAO02B,KACvB12B,OAAO02B,MAAQ12B,OAAOu2B,WACtBH,qBACSp2B,OAAOg3B,cAChB9B,MAAMpqB,IAAI9K,OAAOg3B,eAAeX,MAAK,SAAUpG,MACzCjwB,OAAOi3B,yBACTj3B,OAAOk2B,OAASl2B,OAAOi3B,yBAAyBhH,KAAK5a,MAErDrV,OAAOk2B,OAASz+B,UAA4B,MAAlBw4B,KAAK5a,KAAKqb,KAAeT,KAAK5a,KAAO4a,KAAK5a,KAAKqb,MAAM76B,YAE7EmK,OAAOu2B,aACTv2B,OAAO02B,KAAO12B,OAAOk2B,OAASl2B,OAAOu2B,YAEvCH,uBACC,SAAUprC,GACX,MAAMA,KAECgV,OAAOk3B,WAChBl3B,OAAOk3B,aAAab,MAAK,SAAU3F,MACjC1wB,OAAOk2B,OAASxF,KACZ1wB,OAAOu2B,aACTv2B,OAAO02B,KAAO12B,OAAOk2B,OAASl2B,OAAOu2B,YAEvCH,uBACC,SAAUprC,GACX,MAAMA,MAGJgV,OAAOu2B,aACTv2B,OAAOk2B,OAAS,EAChBl2B,OAAO02B,KAAO12B,OAAOk2B,OAASl2B,OAAOu2B,YAEvCH,qBAlCAA,oBAsCFP,QAAQsB,QAAU,SAAU/6B,IAI1B,OAHAy5B,QAAQQ,MAAK,SAAUrG,UACrB5zB,GAAG4zB,SAAS3a,KAAM2a,SAASF,OAAQE,SAASS,QAASzwB,WAEhD61B,SAGTA,QAAQnB,MAAQ,SAAUt4B,IAIxB,OAHAy5B,QAAQQ,KAAK,MAAM,SAAUrG,UAC3B5zB,GAAG4zB,SAAS3a,KAAM2a,SAASF,OAAQE,SAASS,QAASzwB,WAEhD61B,SAGTA,QAAQxF,SAAW,SAAUj0B,IAK3B,OAJAy5B,QAAQG,aAAe55B,GACvBy5B,QAAQQ,KAAK,KAAM,MAAM,SAAU1kC,GACjCyK,GAAGzK,MAEEkkC,SAETA,QAAQjH,MAAQiH,QAAQuB,MAAQ,WAM9B,OALIp3B,OAAO82B,OACT1B,UAAS,WACPp1B,OAAO82B,MAAMlI,WAGViH,SAETA,QAAQnI,IAAM,SAAUtxB,IACP,IAAWi7B,UAM1B,OANAr3B,OAAO+2B,OAAmBM,UAKvBr3B,OAAO+2B,MAJD,WACDM,WAAWA,UAAU7gC,MAAMq/B,QAASv6B,WACxCc,GAAG5F,MAAMq/B,QAASv6B,aAGfu6B,SAGT3H,OAAOmH,gBACHQ,QAAiB,SAAKA,QAAiB,mBAAalgC,UACtDkgC,QAAiB,SAAE,WACjB3H,OAAOmH,mBAGJQ,QAyBT,SAASyB,KAAK7sC,KACZ,IAAI6yB,MAAQ,GACZ,IAAK,IAAIr0B,OAAOwB,IACVA,IAAIkR,eAAe1S,OACrBq0B,MAAMr0B,KAAOwB,IAAIxB,MAGrB,OAAOq0B,MA7BTx3B,KAAKyxC,mBAAqB,WACxB,OAAOrJ,OAAOmH,cAAgB,GAGhCvvC,KAAK0xC,OAAS,SAAU3C,KAAM5oC,MAE5B,OADA4oC,KAAK4C,QAAUxrC,KACR4oC,MAGT/uC,KAAK4xC,SAAW,SAAUr4B,KACb,MAAPA,KAAgBza,QAAQ2I,SAAS8R,OACnCA,IAAMs4B,KAAKC,UAAUv4B,MAEvB,IAAIw4B,KAAO,IAAIlzC,OAAOosC,KAAK,CAAC1xB,KAAM,CAACmwB,KAAM,qBAEzC,OADAqI,KAAKC,UAAW,EACTD,MAGT/xC,KAAKiyC,KAAO,SAAU14B,KACpB,OAAOza,QAAQozC,OAAO34B,MAaxBvZ,KAAKmyC,OAAS,SAAUpD,MACtB,OAAe,MAARA,OAAiBA,gBAAgBlwC,OAAOosC,MAAS8D,KAAKqD,SAAWrD,KAAK5oC,MAAQ4oC,KAAKnE,OAG5F5qC,KAAKooC,OAAS,SAAUluB,OAAQm4B,UAuB9B,SAASC,mBAAmBpJ,SAAU3vB,IAAKpW,KACzC,QAAYqL,IAAR+K,IAIF,GAHIza,QAAQqX,OAAOoD,OACjBA,IAAMA,IAAI8iB,eAERv9B,QAAQ2I,SAAS8R,KACnB2vB,SAAS6B,OAAO5nC,IAAKoW,UAChB,GAAI6uB,OAAO+J,OAAO54B,KAAM,CAC7B,IAAIw1B,KA9BV,SAASwD,aAAaxD,KAAM7F,UAC1B,GAAI6F,KAAKiD,SAAU,OAAOjD,KAE1B,GADA70B,OAAOm2B,MAAQn2B,OAAOm2B,OAAStB,KACV,MAAjB70B,OAAOk2B,QAAkBX,gBAAiB,CACxCv1B,OAAO02B,MAAQ12B,OAAO02B,MAAQ7B,KAAKnE,OACrC1wB,OAAOw2B,WAAY,EACnBx2B,OAAO02B,KAAO7B,KAAKnE,MAErB,IAAIl3B,MAAQq7B,KAAKr7B,MAAMwG,OAAOk2B,OAAQl2B,OAAO02B,MAAQ7B,KAAKnE,MAS1D,OARAl3B,MAAMvN,KAAO4oC,KAAK5oC,KAClBuN,MAAMi+B,QAAU5C,KAAK4C,QACjBz3B,OAAOu2B,aACTvH,SAAS6B,OAAO,aAAc7wB,OAAOu2B,YACrCvH,SAAS6B,OAAO,oBAAqB7wB,OAAO02B,KAAO12B,OAAOk2B,QAC1DlH,SAAS6B,OAAO,eAAgBh3B,KAAKC,MAAMkG,OAAOk2B,OAASl2B,OAAOu2B,aAClEvH,SAAS6B,OAAO,aAAc7wB,OAAOm2B,MAAMzF,OAEtCl3B,MAET,OAAOq7B,KAWQwD,CAAah5B,IAAK2vB,UACzB1kC,MAAQrB,IAAIqB,MAAM,KAClBA,MAAM,KACRuqC,KAAK4C,QAAUntC,MAAM,GAAG4B,QAAQ,aAAc,IAC9CjD,IAAMqB,MAAM,IAEd0V,OAAOs4B,SAAWt4B,OAAOs4B,UAAYrvC,IACrC+lC,SAAS6B,OAAO5nC,IAAK4rC,KAAMA,KAAK4C,SAAW5C,KAAK5oC,WAEhD,GAAIrH,QAAQ0I,SAAS+R,KAAM,CACzB,GAAIA,IAAIk5B,uBAAwB,KAAM,4HAA8HtvC,IAEpKoW,IAAIk5B,wBAAyB,EAC7B,IACE,IAAK,IAAIz8B,KAAKuD,IACZ,GAAIA,IAAI1D,eAAeG,IAAY,2BAANA,EAAgC,CAC3D,IAAI08B,UAAgC,MAApBx4B,OAAOw4B,UAAoB,MAAQx4B,OAAOw4B,UACtDn5B,IAAI3U,QAAU+M,SAASqE,IAAM,IAC/B08B,UAA+B,MAAnBx4B,OAAOy4B,SAAmBD,UAAYx4B,OAAOy4B,UAE3DL,mBAAmBpJ,SAAU3vB,IAAIvD,GAAI7S,IAAMuvC,UAAUtsC,QAAQ,QAAS4P,KAG1E,eACOuD,IAAIk5B,6BAGbvJ,SAAS6B,OAAO5nC,IAAKoW,KA0C7B,OANK84B,WAAUn4B,OAASs3B,KAAKt3B,SACxBA,OAAO04B,cACV14B,OAAO04B,aAAc,EAhCvB,SAASC,eACP34B,OAAOu2B,WAAarI,OAAO0K,iBAAiB54B,OAAO64B,iBACnD74B,OAAOu2B,WAAav2B,OAAOu2B,WAAa9+B,SAASuI,OAAOu2B,WAAW1gC,YAAc,KAEjFmK,OAAOywB,QAAUzwB,OAAOywB,SAAW,GACnCzwB,OAAOywB,QAAQ,qBAAkBn8B,EACjC0L,OAAO84B,iBAAmB94B,OAAO84B,iBAC9Bl0C,QAAQI,QAAQgb,OAAO84B,kBACtB94B,OAAO84B,iBAAmB,CAAC94B,OAAO84B,kBAAqB,GAC3D94B,OAAO84B,iBAAiBjwC,MAAK,SAAUwsB,MACrC,IAAsCpsB,IAAlC+lC,SAAW,IAAIrqC,OAAOmpC,SAK1B,IAAK7kC,OAJLosB,KAAOA,MAAQrV,OAAO+4B,QAAU,GAC5B/4B,OAAO60B,OACTxf,KAAKwf,KAAO70B,OAAO60B,MAETxf,KACV,GAAIA,KAAK1Z,eAAe1S,KAAM,CAC5B,IAAIoW,IAAMgW,KAAKpsB,KACX+W,OAAOg5B,iBACTh5B,OAAOg5B,iBAAiBhK,SAAU/lC,IAAKoW,KAEvC+4B,mBAAmBpJ,SAAU3vB,IAAKpW,KAKxC,OAAO+lC,YAOT2J,IAGKnD,SAASx1B,SAGlBla,KAAKmzC,KAAO,SAAUj5B,QAWpB,OAVAA,OAASs3B,KAAKt3B,SACP84B,iBAAmB94B,OAAO84B,kBAAoB,SAAUzjB,MAC3D,OAAK1wB,OAAOu0C,aAAe7jB,gBAAgB1wB,OAAOu0C,aAAgB7jB,gBAAgB1wB,OAAOosC,KAChF1b,KAEF6f,MAAMtc,SAASkgB,iBAAiB,GAAGtiC,MAAM1Q,KAAMwV,YAE1D0E,OAAOu2B,WAAarI,OAAO0K,iBAAiB54B,OAAO64B,iBACnD74B,OAAOu2B,WAAav2B,OAAOu2B,WAAa9+B,SAASuI,OAAOu2B,WAAW1gC,YAAc,KAE1E2/B,SAASx1B,SAGlBla,KAAK8yC,iBAAmB,SAAUxuC,KAChC,GAAIxF,QAAQ2I,SAASnD,KAAM,CACzB,GAAIA,IAAIioC,OAAO,SAAWjoC,IAAIM,OAAS,EACrC,OAAOgxB,WAA8C,KAAnCtxB,IAAIgE,UAAU,EAAGhE,IAAIM,OAAS,IAC3C,GAAIN,IAAIioC,OAAO,SAAWjoC,IAAIM,OAAS,EAC5C,OAAOgxB,WAA8C,QAAnCtxB,IAAIgE,UAAU,EAAGhE,IAAIM,OAAS,IAC3C,GAAIN,IAAIioC,OAAO,SAAWjoC,IAAIM,OAAS,EAC5C,OAAOgxB,WAA8C,WAAnCtxB,IAAIgE,UAAU,EAAGhE,IAAIM,OAAS,IAC3C,GAAIN,IAAIioC,OAAO,QAAUjoC,IAAIM,OAAS,EAC3C,OAAOgxB,WAAWtxB,IAAIgE,UAAU,EAAGhE,IAAIM,OAAS,IAC3C,GAAIN,IAAIioC,OAAO,QAAUjoC,IAAIM,OAAS,EAC3C,OAAOgxB,WAAWtxB,IAAIgE,UAAU,EAAGhE,IAAIM,OAAS,IAC3C,GAAIN,IAAIioC,OAAO,QAAUjoC,IAAIM,OAAS,EAC3C,OAAOgxB,WAA8C,GAAnCtxB,IAAIgE,UAAU,EAAGhE,IAAIM,OAAS,IAC3C,GAAIN,IAAIioC,OAAO,QAAUjoC,IAAIM,OAAS,EAC3C,OAAOgxB,WAA8C,KAAnCtxB,IAAIgE,UAAU,EAAGhE,IAAIM,OAAS,IAGpD,OAAON,KAGTtE,KAAKqzC,UAAY,SAASxrC,KACxB,IAAIioC,MAAQT,GAAGS,QAaf,OAZAV,MAAM,CAACvnC,IAAU8nC,OAAQ,MAAO2D,aAAc,gBAAgB/C,MAAK,SAAUpG,MAC3E,IAAIoJ,gBAAkB,IAAIC,WAAWrJ,KAAK5a,MACtCma,KAAOS,KAAKQ,QAAQ,iBAAmB,aACvCoH,KAAO,IAAIlzC,OAAOosC,KAAK,CAACsI,iBAAkB,CAAC7J,OAC3CrS,QAAUxvB,IAAID,MAAM,qBACpByvB,QAAQzyB,OAAS,IACnBmtC,KAAK5rC,KAAOkxB,QAAQ,IAEtByY,MAAM16B,QAAQ28B,SACb,SAAU7sC,GACX4qC,MAAMe,OAAO3rC,MAER4qC,MAAMC,SAGf/vC,KAAKyzC,YAAc,SAAU3gB,UAC3B9yB,KAAK8yB,SAAWA,UAAY,IAG9B9yB,KAAK8yB,SAAW,GAChB9yB,KAAK6mC,QAAUqI,aAAarI,WAK9BqI,aAAaC,QAAQ,SAAU,CAAC,SAAU,WAAY,WAAY,KAAM,aAAc,SAAUuE,OAAQpE,SAAUqE,SAAUtE,GAAIuE,YAC9H,IAAIxL,OAASwL,WAmGb,SAASC,iBAAiBC,OAAQjJ,MAAO3kC,KAAM6tC,MAAOC,SACpD,IAAIC,SAAW,CAAC7L,OAAO8L,gBAEvB,SAASC,WAAW/nC,EAAG1H,GACrB,GAAgC,IAA5B0H,EAAEs9B,KAAKv5B,QAAQ,SAAgB,CACjC,GAAI2jC,OAAOM,UAAYhM,OAAOiM,gBAAgBjoC,EAAG0nC,OAAOM,SAAU,OAClEN,OAAOQ,SAAW,SAAUC,MAAOC,QACjC,OAAOpM,OAAOqM,WAAW,cAAevuC,KAAM6tC,MAC5C,CAACW,OAAQH,MAAOI,QAASH,OAAQI,MAAOxoC,KAE5C,IAAI2jC,QAAU3H,OAAOyM,OAAOzoC,EAAG0nC,QAC/BG,SAASlxC,KAAKgtC,SACdA,QAAQQ,MAAK,SAAUuE,aACrBjK,MAAMsD,OAAOzpC,EAAG,EAAGowC,gBAClB,SAAU5vC,GACXkH,EAAE2oC,OAAS,UACV3oC,EAAE4oC,eAAkB5oC,EAAE4oC,gBAAkB,IAAKH,QAAS,EACvDzoC,EAAE6oC,aAAe/vC,GAAKA,EAAEujC,QAAUvjC,EAAEujC,QAAUvjC,GAAK,KAAO,KAAOkH,GAAKA,EAAEjG,MACxE6tC,QAAQkB,gBAAgBnyC,KAAK,CAACoD,KAAM,SAAUgvC,OAAO,IACrD/M,OAAOgN,qBAAqBpB,QAASnJ,WAK3C,IAAK,IAAInmC,EAAI,EAAGA,EAAImmC,MAAMjmC,OAAQF,IAChCyvC,WAAWtJ,MAAMnmC,GAAIA,GAEvB,OAAO2qC,GAAGgG,IAAIpB,UAoKhB,OAjSA7L,OAAOkN,oBAAsB,SAAUpvC,KAAMC,MAC3C,GAAkB,MAAdD,KAAKC,MAAe,OAAOD,KAAKC,MACpC,IAAIovC,IAAMnN,OAAOtV,SAAS3sB,MAC1B,OAAe,MAAPovC,KAAqBz2C,QAAQ2I,SAAS8tC,KAAxBA,IAAqC1D,KAAKC,UAAUyD,MAG5EnN,OAAOqM,WAAa,SAAUtuC,KAAMD,KAAM6tC,MAAOD,QAC/C,IAAI0B,QAAUx1C,KAAKs1C,oBAAoBpvC,KAAMC,MAC7C,IAAI4tC,MAgBF,OAAOyB,QAfP,IACE,OAAI1B,OACKJ,OAAO8B,QAAP9B,CAAgBK,MAAOD,QAEvBJ,OAAO8B,QAAP9B,CAAgBK,OAEzB,MAAO7uC,GAEP,GAAIiB,KAAKomC,OAAO,oBACd,OAAOiJ,QAEP,MAAMtwC,IAQdkjC,OAAOqN,eAAiB,SAAU/L,KAAMxjC,KAAM6tC,OAC5C,IAAI2B,aAAetN,OAAOqM,WAAW,kBAAmBvuC,KAAM6tC,OAC9D,OAAI2B,eAAgBA,aAAaC,UACxBD,aAAaC,SAASnxC,MAAM,KAAK2L,QAAQu5B,OAAS,GAK7DtB,OAAO8L,aAAe,WACpB,IAAInpC,EAAIskC,GAAGS,QACPl1B,KAAOpF,UAIX,OAHA85B,UAAS,WACPvkC,EAAEqK,QAAQ1E,MAAM3F,EAAG6P,SAEd7P,EAAEglC,SAGX3H,OAAOwN,cAAgB,WACrB,IAAI7qC,EAAIskC,GAAGS,QACPl1B,KAAOpF,UAIX,OAHA85B,UAAS,WACPvkC,EAAE8lC,OAAOngC,MAAM3F,EAAG6P,SAEb7P,EAAEglC,SAGX3H,OAAOyN,aAAe,SAAU9F,QAASxgB,MACvC,IAAIxkB,EAAIskC,GAAGS,QASX,OARAC,QAAQQ,MAAK,SAAUhhC,QACrBxE,EAAEqK,QAAQ7F,WACT,SAAUq/B,OACXU,UAAS,WACP,MAAMV,SAER7jC,EAAEqK,QAAQma,SAELxkB,EAAEglC,SAgEX3H,OAAO0N,YAAc,SAAU9B,QAAS9tC,KAAM6tC,MAAOgC,WAAYlL,MAAOsC,IAAK6I,SAC3E,SAASC,OAAOpL,MAAOqL,aAAcC,SAAUC,SAAUC,eACvDnwC,KAAKowC,oBAAsBzL,MAC3B3kC,KAAKqwC,sBAAwBL,aAC7B,IAAInH,KAAOlE,OAASA,MAAMjmC,OAASimC,MAAM,GAAK,KAC1C2L,YAAcN,cAAgBA,aAAatxC,OAASsxC,aAAa,GAAK,KAEtElC,UACF5L,OAAOgN,qBAAqBpB,QAASnJ,OACrCmJ,QAAQyC,cAAcJ,cAAgBtH,KAAOlE,QAG3CkL,YACFrC,OAAOqC,WAAPrC,CAAmBK,MAAO,CACxB2C,OAAQ7L,MACR+J,MAAO7F,KACP4H,UAAWR,SACXS,gBAAiBR,SACjBS,cAAeX,aACfY,aAAcN,YACdO,OAAQ5J,MAIZ,IAAI6J,aAAe5O,OAAOqM,WAAW,kBAAmBvuC,MACpD8wC,cACF1H,UAAS,WACPoE,OAAOsD,cAAc9Q,OAAO6N,MAAOsC,cAAgBG,YAAcN,iBAGrE5G,UAAS,eAKX,IAAI2H,YAA4BC,eAAgBC,iBAA/Bf,SAAW,GAC1BgB,SAAW,GAAIC,OAAS,GAwC1B,SAASC,kBACP,SAASxB,cACPxG,UAAS,WACP2G,OAAOsB,KAAOL,eAAe1iC,OAAO6iC,QAAUA,OAC5CE,KAAOJ,iBAAiB3iC,OAAO4iC,UAAYA,SAC3CvM,MAAOuL,SAAUC,iBAClBmB,SAAWA,QAAQC,SAAWD,QAAQC,SAASC,QAAUF,QAAQC,SAAW,GAGjF,IAAIE,cAAgBC,oBAAsBX,YAAcI,QAtI5D,SAASQ,WAAWhN,MAAO3kC,KAAM6tC,MAAOC,SACtC,IAAI8D,UAAY1P,OAAOqM,WAAW,YAAavuC,KAAM6tC,OACrD,IAAK+D,YAAc1P,OAAO2P,sBAAwBlN,MAAMjmC,OAAQ,OAAOwjC,OAAO8L,eAC9E,GAAI4D,qBAAqBjoC,SAAU,CACjC,IAAIigC,MAAQT,GAAGS,QACf,OAAOgI,UAAUjN,OAAO0F,MAAK,SAAUr+B,GACrC2hC,iBAAiB3hC,EAAG24B,MAAO3kC,KAAM6tC,MAAOC,SAASzD,MAAK,SAAUC,GAC9DV,MAAM16B,QAAQo7B,MACb,SAAUtrC,GACX4qC,MAAMe,OAAO3rC,SAEd,SAAUA,GACX4qC,MAAMe,OAAO3rC,MAGf,OAAO2uC,iBAAiBiE,UAAWjN,MAAO3kC,KAAM6tC,MAAOC,UAwHvD6D,CAAWF,cAAezxC,KAAM6tC,MAAOC,SAASzD,MAAK,WAC/CqH,oBACFxP,OAAO4P,SAASf,YAAaM,KAAOL,eAAetyC,OAAS,EAAGovC,QAAS9tC,KAAM6tC,OAC3ExD,MAAK,SAAU0H,kBACdZ,OAASY,iBAAiBC,YAC1Bd,SAAWa,iBAAiBE,cAC5BrC,iBAGJA,iBAED,WACD,IAAK,IAAIpxC,EAAI,EAAGA,EAAIizC,cAAc/yC,OAAQF,IAAK,CAC7C,IAAI0H,EAAIurC,cAAcjzC,GACtB,GAAiB,WAAb0H,EAAE2oC,OAAqB,CACzB,IAAI7sC,MAAQmvC,OAAOlnC,QAAQ/D,GACvBlE,OAAS,IACXmvC,OAAOlJ,OAAOjmC,MAAO,GACrBkvC,SAASr0C,KAAKqJ,IAEhB0pC,mBAMRoB,eAAiBhxC,KAAKowC,qBAAuB,GAC7Ca,iBAAmBjxC,KAAKqwC,uBAAyB,GAC7CvC,SAAWA,QAAQoE,cACrBlB,eA3CF,SAASre,QAAQwf,GACf,OAAOv5C,QAAQI,QAAQm5C,GAAKA,EAAI,CAACA,GA0ChBxf,CAAQmb,QAAQoE,cAGnC,IAAIb,KAAOnP,OAAOqM,WAAW,UAAWvuC,KAAM6tC,OAC9CkD,aAAepM,OAAS,IAAIn3B,MAAM,GACrB,aAAT6jC,OAA6E,IAAtDnP,OAAOqM,WAAW,kBAAmBvuC,KAAM6tC,QAlFtE,SAASuE,mBACP,SAASC,OAAOC,GAAIC,IAClB,OAAOD,GAAGryC,OAASsyC,GAAGtyC,OAASqyC,GAAGE,cAAgBF,GAAG5N,SAAW6N,GAAGC,cAAgBD,GAAG7N,OACpF4N,GAAG9O,OAAS+O,GAAG/O,KAGnB,SAASiP,cAAcvsC,GACrB,IAAI2iB,EACJ,IAAKA,EAAI,EAAGA,EAAImoB,eAAetyC,OAAQmqB,IACrC,GAAIwpB,OAAOnsC,EAAG8qC,eAAenoB,IAC3B,OAAO,EAGX,IAAKA,EAAI,EAAGA,EAAIooB,iBAAiBvyC,OAAQmqB,IACvC,GAAIwpB,OAAOnsC,EAAG+qC,iBAAiBpoB,IAC7B,OAAO,EAGX,OAAO,EAGT,GAAI8b,MAAO,CACToM,YAAc,GACdb,SAAW,GACX,IAAK,IAAI1xC,EAAI,EAAGA,EAAImmC,MAAMjmC,OAAQF,IAC5Bi0C,cAAc9N,MAAMnmC,IACtB0xC,SAASrzC,KAAK8nC,MAAMnmC,IAEpBuyC,YAAYl0C,KAAK8nC,MAAMnmC,KAuD7B4zC,GAGF,IAAIjC,eAAiBkB,OAASnP,OAAOqM,WAAW,cAAevuC,KAAM6tC,SAAW3L,OAAOqM,WAAW,WAAYvuC,MAE9G,IAAIqxC,MAASN,YAAYryC,OAAzB,CAEAwjC,OAAOqM,WAAW,uBAAwBvuC,KAAM6tC,MAAO,CACrD2C,OAAQ7L,MACR+J,MAAO/J,OAASA,MAAMjmC,OAASimC,MAAM,GAAK,KAC1C8L,UAAWM,YACXL,gBAAiBR,SACjBW,OAAQ5J,MAGV,IAAIyK,oBAAsBxP,OAAOqM,WAAW,yBAA0BvuC,KAAM6tC,OAExEyD,QAAUpP,OAAOqM,WAAW,kBAAmBvuC,KAAM6tC,OACzD3L,OAAO4P,SAASf,YAAaM,KAAOL,eAAetyC,OAAS,EAAGovC,QAAS9tC,KAAM6tC,OAC3ExD,MAAK,SAAU0H,kBACZjC,QACFC,OAAOgB,YAAa,GAAIpM,MAAOuL,SAAUC,gBAEnCmB,SAAYA,QAAQoB,cAAkBhB,oBAI1CP,OAASJ,aAHTI,OAASY,iBAAiBY,WAC1BzB,SAAWa,iBAAiB/B,cAI1B9N,OAAOqM,WAAW,oBAAqBvuC,KAAM6tC,QAAU3L,OAAO0Q,kBAnNxE,SAASC,mBAAmBlO,MAAO3kC,KAAM6tC,OACvC,IAAIE,SAAW,CAAC7L,OAAO8L,gBAQvB,OAPAp1C,QAAQG,QAAQ4rC,OAAO,SAAUz+B,EAAG1H,GACG,IAAjC0H,EAAEs9B,KAAKv5B,QAAQ,eAAuBi4B,OAAOqM,WAAW,oBAAqBvuC,KAAM6tC,MAAO,CAACa,MAAOxoC,KACpG6nC,SAASlxC,KAAKqlC,OAAOyN,aAAazN,OAAO4Q,kBAAkB5sC,GAAIA,GAAGmkC,MAAK,SAAU0I,WAC/EpO,MAAMsD,OAAOzpC,EAAG,EAAGu0C,kBAIlB5J,GAAGgG,IAAIpB,UA2MR8E,CAAmB1B,OAAQnxC,KAAM6tC,OAAOxD,MAAK,WAC3C+G,qBAGFA,wBAMDlP,UAGT8G,aAAagK,UAAU,YAAa,CAAC,SAAU,WAAY,WAAY,SAAU,SAAUxF,OAAQpE,SAAUqE,SAAUwF,QACrH,IAAIC,eAAiB,GAcrB,SAASC,eAAetF,MAAOnH,KAAM1mC,KAAM8tC,QAASN,OAAQpE,SAAUqE,SAAUvL,QAS9E,IAAIqM,WAAa,SAAUtuC,KAAM4tC,OAC/B,OAAO3L,OAAOqM,WAAWtuC,KAAMD,KAAM6tC,QAGvC,SAASzG,kBACP,MAAyC,UAAlCV,KAAK,GAAGW,QAAQrrC,eAA6BgE,KAAKwjC,MAAoC,SAA5BxjC,KAAKwjC,KAAKxnC,cAG7E,SAASo3C,iBACP,OAAO7E,WAAW,cAAgBA,WAAW,aAG/C,SAAS3H,SAASK,KAChB,GAAI/E,OAAOqN,eAAe,SAAUvvC,KAAM6tC,OAAQ,CAChD,IAAIwF,SAAWpM,IAAIS,UAAaT,IAAIxlC,QAAUwlC,IAAIxlC,OAAOkjC,MAAQA,MAAQ,GAEzE,IAAK0O,SAAU,OACf,IAAK,IAAI70C,EAAI,EAAGA,EAAI60C,SAAS30C,OAAQF,IACnCmmC,MAAM9nC,KAAKw2C,SAAS70C,IAEtB0jC,OAAO0N,YAAY9B,QAAS9tC,KAAM6tC,MAAOuF,iBACvCzO,MAAMjmC,OAASimC,MAAQ,KAAMsC,MAInC/E,OAAOoR,6BAA6BxF,QAAS9tC,KAAM6tC,OAEnD,IAAI0F,UAAY,GACZhF,WAAW,gBACbgF,UAAU12C,KAAKgxC,MAAM2F,OAAOjF,WAAW,gBAAgB,WACrD5H,SAAS3mC,KAAK,WAAYuuC,WAAW,cAAeV,YAGpDU,WAAW,eACbgF,UAAU12C,KAAKgxC,MAAM2F,OAAOjF,WAAW,eAAe,WACpD5H,SAAS3mC,KAAK,UAAWuuC,WAAW,aAAcV,YAGlDU,WAAW,cACbgF,UAAU12C,KAAKgxC,MAAM2F,OAAOjF,WAAW,cAAc,WACnD5H,SAAS3mC,KAAK,SAAUuuC,WAAW,YAAaV,YAGpD0F,UAAU12C,KAAKmD,KAAKyzC,SAAS,UAAU,WACrC9M,SAAS3mC,KAAK,SAAUuuC,WAAW,eA0ErC,IAAImF,mBAAqB,EACrBC,mBAAqB,EA0BzB,IAAIhN,SAAWD,KAEf,SAASkN,WAAW3M,KACd/E,OAAOqN,eAAe,QAASvvC,KAAM6tC,QAAUlH,SAAStzB,QAC1DszB,SAAStzB,IAAI,MACb6uB,OAAO0N,YAAY9B,QAAS9tC,KAAM6tC,MAAOuF,iBAAkB,KAAMnM,KAAK,IAIrEG,oBACHT,SAzFF,SAASkN,kBACP,GAAIzM,kBACF,OAAOV,KAGT,IAAIC,SAAW/tC,QAAQk7C,QAAQ,uBAE3BjN,MAAQjuC,QAAQk7C,QAAQ,yBAU5B,OATAjN,MAAMS,IAAI,aAAc,UAAUA,IAAI,WAAY,YAAYA,IAAI,WAAY,UAC3EA,IAAI,QAAS,OAAOA,IAAI,SAAU,OAAOA,IAAI,SAAU,QACvDA,IAAI,SAAU,OAAOA,IAAI,UAAW,OAAOtnC,KAAK,WAAY,MA9BjE,SAAS+zC,oBAAoBpN,SAAUE,OACrC,SAASmN,SAAS3gC,KAChBszB,SAAS3mC,KAAK,KAAM,OAASqT,KAC7BwzB,MAAM7mC,KAAK,KAAM,aAAeqT,KAGlC,IAAK,IAAI7U,EAAI,EAAGA,EAAIkoC,KAAK,GAAGxqC,WAAWwC,OAAQF,IAAK,CAClD,IAAIy1C,UAAYvN,KAAK,GAAGxqC,WAAWsC,GACZ,SAAnBy1C,UAAUh0C,MAAsC,UAAnBg0C,UAAUh0C,MAAuC,UAAnBg0C,UAAUh0C,OAChD,OAAnBg0C,UAAUh0C,MACZ+zC,SAASC,UAAUj3C,OACnBu2C,UAAU12C,KAAKmD,KAAKyzC,SAAS,KAAMO,YAEnCrN,SAAS3mC,KAAKi0C,UAAUh0C,KAAQg0C,UAAUj3C,OAA6B,aAAnBi3C,UAAUh0C,MAC3C,aAAnBg0C,UAAUh0C,KAAyCg0C,UAAUj3C,MAA3Bi3C,UAAUh0C,QAiBlD8zC,CAAoBpN,SAAUE,OAE9BqM,eAAer2C,KAAK,CAACq3C,GAAIxN,KAAMyN,IAAKtN,QAEpChoC,SAASa,KAAK8mC,YAAYK,MAAMhC,OAAO8B,UAAU,IAE1CA,SAwEIkN,IAEblN,SAAS9tC,KAAK,SAAU+tC,UAEnBQ,kBAGHV,KAAK7tC,KAAK,QAAS+6C,YAFnBlN,KAAK7tC,KAAK,6BA1EZ,SAASu7C,aAAanN,KACpB,GAAIP,KAAK1mC,KAAK,YAAa,OAAO,EAClC,IAAIuuC,WAAW,oBAAqBV,OAApC,CAEA,IAAIvD,EA+BN,SAAS+J,YAAYpN,KACnB,IAAIqN,QAAUrN,IAAIsN,gBAAmBtN,IAAIuN,eAAiBvN,IAAIuN,cAAcD,eAC5E,GAAID,QAAS,CACX,GAAiB,eAAbrN,IAAIzD,KAGN,OAFAmQ,mBAAqBW,QAAQ,GAAGG,QAChCf,mBAAqBY,QAAQ,GAAGI,SACzB,EAGP,GAAiB,aAAbzN,IAAIzD,KAAqB,CAC3B,IAAImR,SAAWL,QAAQ,GAAGG,QACtBG,SAAWN,QAAQ,GAAGI,QAC1B,GAAK7mC,KAAKmI,IAAI2+B,SAAWhB,oBAAsB,IAC5C9lC,KAAKmI,IAAI4+B,SAAWlB,oBAAsB,GAG3C,OAFAzM,IAAI4N,kBACJ5N,IAAI6N,kBACG,EAGX,OAAO,GAlDHT,CAAYpN,KAEpB,GAAS,MAALqD,EAAW,OAAOA,EAEtBsJ,WAAW3M,KAGX,IACOG,mBAAsBvoC,SAASa,KAAKnC,SAASopC,SAAS,MACzDuM,eAAer2C,KAAK,CAACq3C,GAAIxN,KAAMyN,IAAKxN,SAASG,WAC7CjoC,SAASa,KAAK8mC,YAAYG,SAASG,SAAS,IAC5CH,SAAS9tC,KAAK,SAAU+tC,WAE1B,MAAO5nC,IAWT,OAvIJ,SAAS+1C,wBAAwBC,IAE/B,IAAIvwC,EAAIuwC,GAAGtzC,MAAM,6BACjB,GAAI+C,GAAKA,EAAE/F,OAAS,EAAG,CACrB,IAAIyzC,EAAIc,OAAOrmB,SAASqoB,wBAA0B,EAClD,OAAOxpC,SAAShH,EAAE,IAAM,GAAMgH,SAAShH,EAAE,MAAQ0tC,GAAK1mC,SAAShH,EAAE,IAAM0tC,EAIzE,OAAiC,IAA1B6C,GAAG/qC,QAAQ,WAAoB,sBAAsB1P,KAAKy6C,IAsH3DD,CAAwB9P,UAAUiQ,WACpC3Q,YAAW,WACToC,SAAS,GAAGwO,UACX,GAEHxO,SAAS,GAAGwO,SAGP,OAyEwC,IAA7ClQ,UAAUmQ,WAAWnrC,QAAQ,YAC/B08B,SAAS9tC,KAAK,SAvBhB,SAASw8C,sBAAsBpO,KAC7B,GAAIN,WAAaA,SAAS3mC,KAAK,mBAAoB,CACjD,IAAK2mC,SAAS,GAAG2O,WAEf,YADA3O,SAAW,MAGbM,IAAI6N,iBACJ7N,IAAI4N,kBACJlO,SAASK,OAAO,SAChB,IAAI1V,MAAQqV,SAASrV,QAOrB,OANAqV,SAAS4O,YAAYjkB,QACrBqV,SAAWrV,OACFtxB,KAAK,kBAAmB,QACjC2mC,SAAS9tC,KAAK,SAAU+tC,UACxBD,SAAS9tC,KAAK,QAASw8C,uBACvB1O,SAAS,GAAGwO,SACL,EAEPxO,SAAS6O,WAAW,sBAQpB1H,SAASA,QAAQ2H,YAAY54C,MAAK,SAAUwW,KAM9C,OALW,MAAPA,KAA8B,IAAfA,IAAI3U,QACjBioC,SAAStzB,OACXszB,SAAStzB,IAAI,MAGVA,OAGTw6B,MAAM6H,IAAI,YAAY,WACftO,mBAAmBT,SAASG,SAASjnC,SAC1CjH,QAAQG,QAAQw6C,WAAW,SAAUoC,SACnCA,gBAIJvM,UAAS,WACP,IAAK,IAAI5qC,EAAI,EAAGA,EAAI00C,eAAex0C,OAAQF,IAAK,CAC9C,IAAIo3C,EAAI1C,eAAe10C,GAClBK,SAASa,KAAKnC,SAASq4C,EAAE1B,GAAG,MAC/BhB,eAAejL,OAAOzpC,EAAG,GACzBo3C,EAAEzB,IAAIt0C,cAKRlH,OAAOipC,SAAWjpC,OAAOipC,QAAQ6E,UACnC9tC,OAAOipC,QAAQ6E,SAASC,KAAMC,SAAUC,UAI5C,MAAO,CACLiP,SAAU,MACVC,QAAS,WACTC,KAAM,SAAUlI,MAAOnH,KAAM1mC,KAAM8tC,SACjCqF,eAAetF,MAAOnH,KAAM1mC,KAAM8tC,QAASN,EAAQpE,SAAUqE,EAAUwF,aAK7E,WAmHE,SAAS+C,kBAAkB/C,OAAQ7J,SAAUyE,MAAOnH,KAAM1mC,KAAMi2C,cAAeC,aAAcC,cAC3F,SAASC,iBAAiBvN,MACxB,IAAIwN,kBAAoBpD,OAAO1E,WAAW,iBAAkBvuC,KAAM6tC,OAClEoF,OAAOqD,QAAQzN,KAAMwN,mBAA4B,SAAE,WACjDjN,UAAS,WACP,IAAIrD,KAAOsQ,kBAAoBxN,KAAK0N,YAAc1N,KAAK2N,cAAgB3N,KAAK0N,YACxEJ,aACFzP,KAAKY,IAAI,mBAAoB,SAAYvB,KAAO,IAAM,MAEtDW,KAAK1mC,KAAK,MAAO+lC,KAEfA,IACFW,KAAKK,YAAY,WAEjBL,KAAKS,SAAS,iBAMtBiC,UAAS,WACP,IAAIuM,QAAU9H,MAAM2F,OAAOxzC,KAAKi2C,gBAAgB,SAAUpN,MACxD,IAAInE,KAAOwR,aACX,GAAsB,iBAAlBD,gBACGvR,OACHA,KAAO,CACL2J,MAAO3H,KAAK,GAAG+P,cAAgB/P,KAAK,GAAGgQ,YACvCpI,OAAQ5H,KAAK,GAAGiQ,eAAiBjQ,KAAK,GAAGkQ,eAG1B,IAAflS,KAAK2J,OAAe11C,OAAOk+C,kBAAkB,CAC/C,IAAIC,MAAQD,iBAAiBnQ,KAAK,IAC9BoQ,MAAMzI,OAASyI,MAAMzI,MAAMpkC,QAAQ,OAAS,GAAK6sC,MAAMxI,QAAUwI,MAAMxI,OAAOrkC,QAAQ,OAAS,IACjGy6B,KAAO,CACL2J,MAAO5iC,SAASqrC,MAAMzI,MAAM7gC,MAAM,GAAI,IACtC8gC,OAAQ7iC,SAASqrC,MAAMxI,OAAO9gC,MAAM,GAAI,MAMhD,GAAI5U,QAAQ2I,SAASsnC,MAEnB,OADAnC,KAAKK,YAAY,WACboP,aACKzP,KAAKY,IAAI,mBAAoB,QAAWuB,KAAO,MAE/CnC,KAAK1mC,KAAK,MAAO6oC,OAGxBA,OAAQA,KAAKrF,MAAkD,IAA1CqF,KAAKrF,KAAK6C,OAxDzC,SAAS0Q,WAAW7C,IAClB,MAAiC,QAA7BA,GAAG7M,QAAQrrC,cAAgC,QACd,UAA7Bk4C,GAAG7M,QAAQrrC,cAAkC,QAChB,UAA7Bk4C,GAAG7M,QAAQrrC,cAAkC,QAC1C,IAoDuC+6C,CAAWrQ,KAAK,MACtDyP,cAA+C,IAA/BtN,KAAKrF,KAAKv5B,QAAQ,SAiBpCy8B,KAAKS,SAAS,WAhBVzC,MAAQuO,OAAOpB,qBACjBnN,KAAK0J,SAAW,SAAUC,MAAOC,QAC/B,OAAO2E,OAAO1E,WAAW,cAAevuC,KAAM6tC,MAC5C,CAACW,OAAQH,MAAOI,QAASH,OAAQI,MAAO7F,QAE5CoK,OAAOtE,OAAO9F,KAAMnE,MAAM2F,MACxB,SAAUnkC,GACRkwC,iBAAiBlwC,MAChB,SAAUlH,GACX,MAAMA,MAIVo3C,iBAAiBvN,SAOvBgF,MAAM6H,IAAI,YAAY,WACpBC,gBAzLN3M,aAAaC,QAAQ,gBAAiB,CAAC,aAAc,WAAY,KAAM,SAAU+N,WAAY5N,SAAUD,IACrG,IAAIjH,OAAS8U,WAsGb,OArGA9U,OAAO+U,cAAgB,SAAUpO,MAC/B,GAAIjwC,QAAQI,QAAQ6vC,MAAO,CACzB,IAAIhkC,EAAIskC,GAAGS,QAASsN,MAAQ,EAa5B,OAZAt+C,QAAQG,QAAQ8vC,MAAM,SAAU3iC,GAC9Bg8B,OAAOoU,QAAQpwC,GAAG,GAAe,SAAE,WAEjC,KADAgxC,QACcrO,KAAKnqC,OAAQ,CACzB,IAAIy4C,KAAO,GACXv+C,QAAQG,QAAQ8vC,MAAM,SAAUuO,IAC9BD,KAAKt6C,KAAKu6C,GAAGb,gBAEf1xC,EAAEqK,QAAQioC,KAAMtO,aAIfhkC,EAAEglC,QAET,OAAO3H,OAAOoU,QAAQzN,MAAM,IAGhC3G,OAAOoU,QAAU,SAAUzN,KAAMwN,mBAC/B,IAAKxN,KAAM,OAAO3G,OAAO8L,aAAanF,KAAMA,MAC5C,GAAKwN,mBAAyC,MAApBxN,KAAK0N,cAA0BF,mBAAyC,MAApBxN,KAAK2N,YACjF,OAAOtU,OAAO8L,aAAaqI,kBAAoBxN,KAAK0N,YAAc1N,KAAK2N,YAAa3N,MAEtF,IAAI78B,EAAIqqC,kBAAoBxN,KAAKwO,oBAAsBxO,KAAKyO,oBAC5D,GAAItrC,EAAG,OAAOA,EAEd,IAAI09B,SAAWP,GAAGS,QAuElB,OAtEAR,UAAS,WACP,GAAIzwC,OAAOkvC,YAAcgB,QACrBlwC,OAAOipC,UAAsD,IAA3CqD,UAAUiQ,UAAUjrC,QAAQ,WAAoB4+B,KAAKnE,KAAO,QAC9E/rC,OAAOipC,UAAsD,IAA3CqD,UAAUiQ,UAAUjrC,QAAQ,WAAoB4+B,KAAKnE,KAAO,KAAU,CAG1F,IAAI6S,IAAM5+C,OAAO4+C,KAAO5+C,OAAO6+C,UAC/B,GAAID,KAAOA,IAAIE,kBAAoBpB,kBAAmB,CACpD,IAAI10C,IACJ,IACEA,IAAM41C,IAAIE,gBAAgB5O,MAC1B,MAAO7pC,GAKP,YAJAoqC,UAAS,WACPP,KAAK2N,YAAc,GACnB9M,SAASiB,YAIbvB,UAAS,WAEP,GADAP,KAAK2N,YAAc70C,IACfA,IAAK,CACP+nC,SAASx6B,QAAQvN,IAAKknC,MACtB3G,OAAOwV,SAAWxV,OAAOwV,UAAY,GACrCxV,OAAOyV,kBAAoBzV,OAAOyV,mBAAqB,EACvDzV,OAAOwV,SAAS76C,KAAK,CAAC8E,IAAU+iC,KAAMmE,KAAKnE,OAC3CxC,OAAOyV,mBAAqB9O,KAAKnE,MAAQ,EAGzC,IAFA,IAAIkT,UAAY1V,OAAOtV,SAASirB,mBAAqB,UACjDC,UAAY5V,OAAOtV,SAASmrB,sBAAwB,KAChD7V,OAAOyV,kBAAoBC,WAAa1V,OAAOwV,SAASh5C,OAASo5C,YAAc5V,OAAOwV,SAASh5C,OAAS,GAAG,CACjH,IAAID,IAAMyjC,OAAOwV,SAASzP,OAAO,EAAG,GAAG,GACvCsP,IAAIS,gBAAgBv5C,IAAIkD,KACxBugC,OAAOyV,mBAAqBl5C,IAAIimC,cAIjC,CACL,IAAIuT,WAAa,IAAIpQ,WACrBoQ,WAAW7T,OAAS,SAAUplC,GAC5BoqC,UAAS,WACPP,KAAK0N,YAAcv3C,EAAEyC,OAAO4H,OAC5BqgC,SAASx6B,QAAQlQ,EAAEyC,OAAO4H,OAAQw/B,MAClCO,UAAS,kBACAP,KAAK0N,cACX,SAGP0B,WAAW5P,QAAU,WACnBe,UAAS,WACPP,KAAK0N,YAAc,GACnB7M,SAASiB,aAGbsN,WAAWrP,cAAcC,YAG3BO,UAAS,WACPP,KAAKwN,kBAAoB,cAAgB,eAAiB,GAC1D3M,SAASiB,gBAMb3+B,EADEqqC,kBACExN,KAAKwO,oBAAsB3N,SAASG,QAEpChB,KAAKyO,oBAAsB5N,SAASG,SAE/B,SAAE,kBACJhB,KAAKwN,kBAAoB,sBAAwB,0BAEnDrqC,GAEFk2B,UA0FT8G,aAAagK,UAAU,SAAU,CAAC,SAAU,WAAY,SAAUC,OAAQ7J,UACxE,MAAO,CACLyM,SAAU,KACVE,KAAM,SAAUlI,MAAOnH,KAAM1mC,MAC3Bg2C,kBAAkB/C,OAAQ7J,SAAUyE,MAAOnH,KAAM1mC,KAAM,SACrDizC,OAAO1E,WAAW,YAAavuC,KAAM6tC,QAAQ,QAOrD7E,aAAagK,UAAU,gBAAiB,CAAC,SAAU,WAAY,SAAUC,OAAQ7J,UAC/E,MAAO,CACLyM,SAAU,KACVE,KAAM,SAAUlI,MAAOnH,KAAM1mC,MAC3Bg2C,kBAAkB/C,OAAQ7J,SAAUyE,MAAOnH,KAAM1mC,KAAM,gBACrDizC,OAAO1E,WAAW,YAAavuC,KAAM6tC,QAAQ,QASrD7E,aAAagK,UAAU,eAAgB,CAAC,SAAU,WAAY,SAAUC,OAAQ7J,UAC9E,MAAO,CACLyM,SAAU,KACVE,KAAM,SAAUlI,MAAOnH,KAAM1mC,MAC3B,IAAI0kC,KAAOuO,OAAO1E,WAAW,UAAWvuC,KAAM6tC,OAC9CmI,kBAAkB/C,OAAQ7J,SAAUyE,MAAOnH,KAAM1mC,KAAM,eAAgB0kC,KACrEuO,OAAO1E,WAAW,kBAAmBvuC,KAAM6tC,aAKnD7E,aAAah1B,OAAO,CAAC,mBAAoB,SAAUkkC,kBAC7CA,iBAAiBC,6BAA6BD,iBAAiBC,4BAA4B,4DAC3FD,iBAAiBE,4BAA4BF,iBAAiBE,2BAA2B,+DAG/FpP,aAAahoC,OAAO,aAAc,CAAC,gBAAiB,OAAQ,SAAUq3C,cAAeC,MACnF,OAAO,SAAUzP,KAAMwN,kBAAmBkC,YACxC,GAAI3/C,QAAQ2I,SAASsnC,MACnB,OAAOyP,KAAKE,mBAAmB3P,MAEjC,IAAI9C,IAAM8C,QAAUwN,kBAAoBxN,KAAK0N,YAAc1N,KAAK2N,cAAgB3N,KAAK0N,aACrF,OAAI1N,OAAS9C,MACN8C,KAAK4P,6BAA+B7/C,QAAQ0I,SAASunC,QACxDA,KAAK4P,6BAA8B,EACnCJ,cAAc/B,QAAQzN,KAAMwN,oBAEvB,KAELxN,aAAaA,KAAK4P,6BACd5P,MAAQ9C,IAAOwS,WAAaD,KAAKE,mBAAmBzS,KAAOA,IAAO8C,OAAS,QA3PzF,GAiQAG,aAAaC,QAAQ,iBAAkB,CAAC,gBAAiB,KAAM,WAAY,SAAUoP,cAAelP,GAAIC,UACtG,IAAIlH,OAASmW,cAEb,SAASK,kBAAkBt6C,KACzB,IAAIu6C,OAAS,GAAIC,SAAW,GAC5B,GAAIx6C,IAAIM,OAAS,GAAgB,MAAXN,IAAI,IAAsC,MAAxBA,IAAIA,IAAIM,OAAS,GACvDi6C,OAASv6C,IAAIgE,UAAU,EAAGhE,IAAIM,OAAS,OAClC,CACL,IAAIJ,MAAQF,IAAIE,MAAM,KACtB,GAAIA,MAAMI,OAAS,EACjB,IAAK,IAAIF,EAAI,EAAGA,EAAIF,MAAMI,OAAQF,IAAK,CACrC,IAAI8rC,EAAIoO,kBAAkBp6C,MAAME,IAC5B8rC,EAAEqO,QACJA,QAAU,IAAMrO,EAAEqO,OAAS,IACvBn6C,EAAIF,MAAMI,OAAS,IACrBi6C,QAAU,MAGZC,SAAWA,SAAStqC,OAAOg8B,EAAEsO,eAIR,IAArBx6C,IAAI6L,QAAQ,KACd2uC,SAAS/7C,KAAK,QAAU67C,kBAAkBt6C,IAAIgE,UAAU,IAAIu2C,OAAS,UAE5C,IAArBv6C,IAAI6L,QAAQ,OACd7L,IAAM,IAAMA,KAGdu6C,QADAA,OAAS,IAAMv6C,IAAI8B,QAAQ,IAAIgV,OAAO,oCAAqC,KAAM,QAAU,KAC3EhV,QAAQ,QAAS,MAAMA,QAAQ,QAAS,MAI9D,MAAO,CAACy4C,OAAgBC,UAkd1B,OA/cA1W,OAAOiM,gBAAkB,SAAUtF,KAAMx1B,KACvC,IAAKA,IACH,OAAO,EAET,IAAI66B,QAAUwK,kBAAkBrlC,KAAM47B,OAAQ,EAC9C,GAAIf,QAAQyK,QAAUzK,QAAQyK,OAAOj6C,OAAQ,CAC3C,IAAIi6C,OAAS,IAAIzjC,OAAOg5B,QAAQyK,OAAQ,KACxC1J,MAAsB,MAAbpG,KAAKrF,MAAgBmV,OAAOp+C,KAAKsuC,KAAKrF,OAC/B,MAAbqF,KAAK5oC,MAAgB04C,OAAOp+C,KAAKsuC,KAAK5oC,MAG3C,IADA,IAAI6S,IAAMo7B,QAAQ0K,SAASl6C,OACpBoU,OAAO,CACZ,IAAI+lC,QAAU,IAAI3jC,OAAOg5B,QAAQ0K,SAAS9lC,KAAM,KAChDm8B,MAAQA,QAAuB,MAAbpG,KAAKrF,MAAgBqV,QAAQt+C,KAAKsuC,KAAKrF,SACzC,MAAbqF,KAAK5oC,MAAgB44C,QAAQt+C,KAAKsuC,KAAK5oC,OAE5C,OAAOgvC,OAGT/M,OAAO4W,aAAe,SAAUzlC,KAC9B,IAAIi3B,EAAIj3B,IAAIxJ,WAAYkvC,OAASzO,EAAEjE,OAAO,SAM1C,OAJEiE,EADEyO,QAAU,EACRrpB,WAAW4a,EAAEloC,UAAU,EAAG22C,SAAWrpB,WAAW4a,EAAEloC,UAAU22C,OAAS,IAErErpB,WAAW4a,IAKnBpI,OAAOoR,6BAA+B,SAAUxF,QAAS9tC,KAAM6tC,OACzDC,SACFA,QAAQ2H,YAAY54C,MAAK,SAAU8nC,OACjC,GAAImJ,QAAQkL,OAAQ,CAClB,IAAIC,WAAatU,MACbA,QAAU/rC,QAAQI,QAAQ2rC,SAC5BsU,WAAa,CAACtU,QAEhBzC,OAAO4P,SAASmH,WAAY,EAAGnL,QAAS9tC,KAAM6tC,OAAOxD,MAAK,WACxDnI,OAAOgN,qBAAqBpB,QAASmL,eAGzC,OAAOtU,UAebzC,OAAOgN,qBAAuB,SAAUpB,QAASnJ,QAVjD,SAASuU,iBAAiBpL,QAASnJ,OACpB,MAATA,OAAkBmJ,QAAQkL,SACxBlL,QAAQqL,UACVrL,QAAQqL,YAERrL,QAAQkL,QAAS,GAMrBE,CAAiBpL,QAASnJ,OAC1B/rC,QAAQG,QAAQ+0C,QAAQkB,iBAAiB,SAAUoK,YACjDtL,QAAQuL,aAAaD,WAAWn5C,KAAMm5C,WAAWnK,WAIrD/M,OAAOoX,kBAAoB,SAAUt5C,KAAM6tC,MAAO5tC,KAAMs5C,eAAgB1Q,MACtE,IAAI2Q,MAAQ,MAAQv5C,KAAK,GAAGqX,cAAgBrX,KAAKiC,OAAO,GACpDmR,IAAM6uB,OAAOqM,WAAWiL,MAAOx5C,KAAM6tC,MAAO,CAACa,MAAO7F,OACxD,GAAW,MAAPx1B,MACFA,IAAM6uB,OAAOqM,WAAW,cAAevuC,KAAM6tC,MAAO,CAACa,MAAO7F,QACnD,CACP,IAAIvqC,OAASi7C,gBAAkBt5C,MAAM3B,MAAM,KAC3C+U,IAAMA,IAAI/U,MAAM,IACZA,MAAMI,OAAS,IACjB2U,IAAMA,KAAOA,IAAI/U,MAAM,KAI7B,OAAO+U,KAGT6uB,OAAO4P,SAAW,SAAUnN,MAAO8U,WAAY3L,QAAS9tC,KAAM6tC,QAC5DC,QAAUA,SAAW,IACbkB,gBAAkBlB,QAAQkB,iBAAmB,GAErDp2C,QAAQG,QAAQ+0C,QAAQkB,iBAAiB,SAAUmD,GACjDA,EAAElD,OAAQ,KAGZ,IAAIV,WAAa,SAAUtuC,KAAM2tC,QAC/B,OAAO1L,OAAOqM,WAAWtuC,KAAMD,KAAM6tC,MAAOD,SAG1C8L,eAAiBxX,OAAOqM,WAAW,mBAAoBvuC,KAAM6tC,QAAU,IAAIvvC,MAAM,KACjFq7C,iBAAmBzX,OAAOqM,WAAW,uBAAwBvuC,KAAM6tC,OAEvE,GAAa,MAATlJ,OAAkC,IAAjBA,MAAMjmC,OACzB,OAAOwjC,OAAO8L,aAAa,CAAC,WAAcrJ,MAAO,aAAgB,KAGnEA,WAAyBr8B,IAAjBq8B,MAAMjmC,OAAuB,CAACimC,OAASA,MAAMn3B,MAAM,GAC3D,IAAIwiC,aAAe,GAEnB,SAAS4J,aAAa35C,KAAMs5C,eAAgBnpC,IAC1C,GAAIu0B,MAAO,CAET,IADA,IAAInmC,EAAImmC,MAAMjmC,OAAQuwC,MAAQ,KACvBzwC,KAAK,CACV,IAAIqqC,KAAOlE,MAAMnmC,GACjB,GAAIqqC,KAAM,CACR,IAAIx1B,IAAM6uB,OAAOoX,kBAAkBt5C,KAAM6tC,MAAO5tC,KAAMs5C,eAAgB1Q,MAC3D,MAAPx1B,MACGjD,GAAGy4B,KAAMx1B,IAAK7U,MACoB,IAAjCk7C,cAAczvC,QAAQhK,OACxB4oC,KAAKgG,OAAS5uC,MACb4oC,KAAKiG,eAAkBjG,KAAKiG,gBAAkB,IAAK7uC,OAAQ,EAC5D4oC,KAAKkG,YAAc17B,KACiB,IAAhC28B,aAAa/lC,QAAQ4+B,OACvBmH,aAAanzC,KAAKgsC,MAEf8Q,kBACHhV,MAAMsD,OAAOzpC,EAAG,GAElBywC,OAAQ,GAERtK,MAAMsD,OAAOzpC,EAAG,MAMZ,OAAVywC,OACFnB,QAAQkB,gBAAgBnyC,KAAK,CAACoD,KAAYgvC,SAKhD2K,aAAa,UAAW,KAAM1X,OAAOiM,iBACrCyL,aAAa,UAAW,YAAY,SAAU/Q,KAAMx1B,KAClD,OAAOw1B,KAAKnE,KAAO,IAAOxC,OAAO0K,iBAAiBv5B,QAEpDumC,aAAa,UAAW,YAAY,SAAU/Q,KAAMx1B,KAClD,OAAOw1B,KAAKnE,KAAO,IAAOxC,OAAO0K,iBAAiBv5B,QAEpD,IAAIwmC,UAAY,EAchB,GAbAD,aAAa,eAAgB,MAAM,SAAU/Q,KAAMx1B,KAEjD,SADAwmC,WAAahR,KAAKnE,MACFxC,OAAO0K,iBAAiBv5B,QACtCsxB,MAAMsD,OAAO,EAAGtD,MAAMjmC,SACf,MAKXk7C,aAAa,aAAc,MAAM,SAAU/Q,KAAMyB,GAC/C,OAAa,IAANA,GAAoB,OAANA,GAAoB,KAANA,MAGhC3F,MAAMjmC,OACT,OAAOwjC,OAAO8L,aAAa,CAAC,WAAc,GAAI,eAGhD,SAAS8L,cAAc75C,KAAMs5C,eAAgB/V,KAAMuW,QAAS3pC,IAC1D,SAAS4pC,cAAcpQ,MAAOf,KAAMx1B,KAClC,SAAS4mC,gBAAgB7pC,IACvB,GAAIA,KACF,IAAqC,IAAjCspC,cAAczvC,QAAQhK,MAAc,CAOtC,GANA4oC,KAAKgG,OAAS5uC,MACb4oC,KAAKiG,eAAkBjG,KAAKiG,gBAAkB,IAAK7uC,OAAQ,EAC5D4oC,KAAKkG,YAAc17B,KACiB,IAAhC28B,aAAa/lC,QAAQ4+B,OACvBmH,aAAanzC,KAAKgsC,OAEf8Q,iBAAkB,CACrB,IAAIn7C,EAAImmC,MAAM16B,QAAQ4+B,MAClBrqC,GAAK,GAAGmmC,MAAMsD,OAAOzpC,EAAG,GAE9BorC,MAAM16B,SAAQ,OACT,CACL,IAAI2Z,EAAI8b,MAAM16B,QAAQ4+B,MAClBhgB,GAAK,GAAG8b,MAAMsD,OAAOpf,EAAG,GAC5B+gB,MAAM16B,SAAQ,QAGhB06B,MAAM16B,SAAQ,GAIP,MAAPmE,IACF0mC,QAAQlR,KAAMx1B,KAAKg3B,MAAK,SAAUxlC,GAChCo1C,iBAAgB,WACd,OAAQ7pC,GAAGvL,EAAGwO,WAEf,WACD4mC,iBAAgB,WACd,OAAO1L,WAAW,mBAAoB,CAACG,MAAO7F,aAIlDe,MAAM16B,SAAQ,GAIlB,IAAI6+B,SAAW,CAAC7L,OAAO8L,cAAa,IAChCrJ,QACFA,WAAyBr8B,IAAjBq8B,MAAMjmC,OAAuB,CAACimC,OAASA,MAC/C/rC,QAAQG,QAAQ4rC,OAAO,SAAUkE,MAC/B,IAAIe,MAAQT,GAAGS,QACfmE,SAASlxC,KAAK+sC,MAAMC,UAChBrG,MAAsB,MAAbqF,KAAKrF,MAA2C,IAA3BqF,KAAKrF,KAAK6C,OAAO7C,MAItC,eAATvjC,MAAqE,MAA5CiiC,OAAOqM,WAAW,gBAAiBvuC,MAC9DkiC,OAAOgY,gBAAgBrR,MAAMwB,MAAK,SAAUxlC,GAC1Cm1C,cAAcpQ,MAAOf,KACnB0F,WAAW,gBAAiB,CAACG,MAAO7F,KAAM2F,OAAQ3pC,EAAEwpC,MAAOI,QAAS5pC,EAAEypC,aACvE,WACD1E,MAAM16B,SAAQ,MAEE,aAATjP,MAAiE,MAA1CiiC,OAAOqM,WAAW,cAAevuC,MACjEkiC,OAAOiY,cAActR,MAAMwB,MAAK,SAAUxlC,GACxCm1C,cAAcpQ,MAAOf,KACnB0F,WAAW,cAAe,CAACG,MAAO7F,KAAMuR,UAAWv1C,QACpD,WACD+kC,MAAM16B,SAAQ,MAGhB8qC,cAAcpQ,MAAOf,KACnB3G,OAAOoX,kBAAkBt5C,KAAM6tC,MAAO5tC,KAAMs5C,eAAgB1Q,OAnB9De,MAAM16B,SAAQ,OAuBpB,IAAImrC,OAASlR,GAAGS,QAYhB,OAXAT,GAAGgG,IAAIpB,UAAU1D,MAAK,SAAUjhB,QAE9B,IADA,IAAIrX,SAAU,EACLvT,EAAI,EAAGA,EAAI4qB,OAAO1qB,OAAQF,IACjC,IAAK4qB,OAAO5qB,GAAI,CACduT,SAAU,EACV,MAGJ+7B,QAAQkB,gBAAgBnyC,KAAK,CAACoD,KAAYgvC,MAAOl9B,UACjDsoC,OAAOnrC,QAAQ6C,YAEVsoC,OAAOxQ,QAGhB,IAAIwQ,OAASlR,GAAGS,QACZmE,SAAW,GAkFf,OAhFAA,SAASlxC,KAAKi9C,cAAc,YAAa,aAAc,QACrDhgD,KAAKogD,iBAAiB,SAAUr1C,EAAGwO,KACjC,OAAOxO,EAAEypC,QAAUj7B,QAEvB06B,SAASlxC,KAAKi9C,cAAc,YAAa,aAAc,QACrDhgD,KAAKogD,iBAAiB,SAAUr1C,EAAGwO,KACjC,OAAOxO,EAAEypC,QAAUj7B,QAEvB06B,SAASlxC,KAAKi9C,cAAc,WAAY,YAAa,QACnDhgD,KAAKogD,iBAAiB,SAAUr1C,EAAGwO,KACjC,OAAOxO,EAAEwpC,OAASh7B,QAEtB06B,SAASlxC,KAAKi9C,cAAc,WAAY,YAAa,QACnDhgD,KAAKogD,iBAAiB,SAAUr1C,EAAGwO,KACjC,OAAOxO,EAAEwpC,OAASh7B,QAEtB06B,SAASlxC,KAAKi9C,cAAc,aAAc,KAAM,SAC9C,SAAUjR,KAAMx1B,KACd,OAAO6uB,OAAO8L,aAAa36B,QAC1B,SAAUi3B,GACX,OAAOA,MAEXyD,SAASlxC,KAAKi9C,cAAc,QAAS,KAAM,QACzChgD,KAAKogD,iBAAiB,SAAUr1C,EAAGwO,KAEjC,IADA,IAAI/U,MAAQ+U,IAAIxJ,WAAWvL,MAAM,KAAM2wC,OAAQ,EACtCzwC,EAAI,EAAGA,EAAIF,MAAMI,OAAQF,IAC5BqP,KAAKmI,IAAKnR,EAAEwpC,MAAQxpC,EAAEypC,OAAUpM,OAAO4W,aAAax6C,MAAME,KAAO,MACnEywC,OAAQ,GAGZ,OAAOA,UAEXlB,SAASlxC,KAAKi9C,cAAc,WAAY,YAAa,QACnDhgD,KAAKogD,iBAAiB,SAAUr1C,EAAGwO,KACjC,OAAQxO,EAAEwpC,MAAQxpC,EAAEypC,OAAUpM,OAAO4W,aAAazlC,KAAO,SAE7D06B,SAASlxC,KAAKi9C,cAAc,WAAY,YAAa,QACnDhgD,KAAKogD,iBAAiB,SAAUr1C,EAAGwO,KACjC,OAAQxO,EAAEwpC,MAAQxpC,EAAEypC,OAAUpM,OAAO4W,aAAazlC,MAAQ,SAE9D06B,SAASlxC,KAAKi9C,cAAc,cAAe,eAAgB,cACzDhgD,KAAKqgD,eAAe,SAAUt1C,EAAGwO,KAC/B,OAAOxO,GAAKq9B,OAAO0K,iBAAiBv5B,SAExC06B,SAASlxC,KAAKi9C,cAAc,cAAe,eAAgB,cACzDhgD,KAAKqgD,eAAe,SAAUt1C,EAAGwO,KAC/B,OAAOxO,GAAKq9B,OAAO0K,iBAAiBv5B,SAExC06B,SAASlxC,KAAKi9C,cAAc,WAAY,KAAM,eAC5C,SAAUjR,KAAMx1B,KACd,OAAO6uB,OAAO8L,aAAa36B,QAC1B,SAAUi3B,GACX,OAAOA,MAGXyD,SAASlxC,KAAKi9C,cAAc,kBAAmB,KAAM,MACnD,SAAUjR,KAAMx1B,KACd,OAAOA,OACN,SAAUi3B,GACX,OAAa,IAANA,GAAoB,OAANA,GAAoB,KAANA,MAGvCnB,GAAGgG,IAAIpB,UAAU1D,MAAK,WAEpB,GAAIsP,iBACF,IAAK,IAAIn7C,EAAI,EAAGA,EAAImmC,MAAMjmC,OAAQF,IAAK,CAC1BmmC,MAAMnmC,GACRqwC,QACPlK,MAAMsD,OAAOzpC,IAAK,GAKxBm7C,kBAAmB,EACnBC,aAAa,WAAY,MAAM,SAAU/Q,KAAMx1B,IAAK7U,GAClD,OAAOi7C,WAAaj7C,EAAI6U,OAG1BgnC,OAAOnrC,QAAQ,CAAC,WAAcy1B,MAAO,kBAEhC0V,OAAOxQ,SAGhB3H,OAAOgY,gBAAkB,SAAUrR,MACjC,GAAIA,KAAKyR,WAAazR,KAAK0R,WAAY,CACrC,IAAI11C,EAAIskC,GAAGS,QAIX,OAHAR,UAAS,WACPvkC,EAAEqK,QAAQ,CAACm/B,MAAOxF,KAAKyR,UAAWhM,OAAQzF,KAAK0R,gBAE1C11C,EAAEglC,QAEX,GAAIhB,KAAK2R,qBAAsB,OAAO3R,KAAK2R,qBAE3C,IAAI9Q,SAAWP,GAAGS,QAuDlB,OAtDAR,UAAS,WAC4B,IAA/BP,KAAKrF,KAAKv5B,QAAQ,SAItBi4B,OAAOoU,QAAQzN,MAAMwB,MAAK,SAAUiM,SAClC,IAAImE,IAAM7hD,QAAQk7C,QAAQ,SAAS9zC,KAAK,MAAOs2C,SAC5ChP,IAAI,aAAc,UAAUA,IAAI,WAAY,SAC5CA,IAAI,YAAa,mBAAmBA,IAAI,aAAc,mBAEzD,SAAS6D,UACP,IAAIkD,MAAQoM,IAAI,GAAGhE,cAAgBgE,IAAI,GAAG/D,YACtCpI,OAASmM,IAAI,GAAG9D,eAAiB8D,IAAI,GAAG7D,aAC5C6D,IAAI56C,SACJgpC,KAAKyR,UAAYjM,MACjBxF,KAAK0R,WAAajM,OAClB5E,SAASx6B,QAAQ,CAACm/B,MAAcC,SAGlC,SAAS5F,QACP+R,IAAI56C,SACJ6pC,SAASiB,OAAO,cAGlB8P,IAAIC,GAAG,OAAQvP,SACfsP,IAAIC,GAAG,QAAShS,OAEhB,IAAIiS,eAAiB,GACrB,SAASC,mCACPxR,UAAS,WACHqR,IAAI,GAAGnF,aACLmF,IAAI,GAAG/D,YACTvL,UACSwP,iBAAmB,GAC5BjS,QAEAkS,sCAGH,KAGLA,GAEAhiD,QAAQk7C,QAAQj1C,SAASsnC,qBAAqB,QAAQ,IAAItB,OAAO4V,QAChE,WACD/Q,SAASiB,OAAO,iBA5ChBjB,SAASiB,OAAO,gBAgDpB9B,KAAK2R,qBAAuB9Q,SAASG,QACrChB,KAAK2R,qBAA8B,SAAE,kBAC5B3R,KAAK2R,wBAEP3R,KAAK2R,sBAGdtY,OAAOiY,cAAgB,SAAUtR,MAC/B,GAAIA,KAAKgS,aAAc,CACrB,IAAIh2C,EAAIskC,GAAGS,QAIX,OAHAR,UAAS,WACPvkC,EAAEqK,QAAQ25B,KAAKgS,iBAEVh2C,EAAEglC,QAEX,GAAIhB,KAAKiS,oBAAqB,OAAOjS,KAAKiS,oBAE1C,IAAIpR,SAAWP,GAAGS,QAoDlB,OAnDAR,UAAS,WAC4B,IAA/BP,KAAKrF,KAAKv5B,QAAQ,UAAiD,IAA/B4+B,KAAKrF,KAAKv5B,QAAQ,SAI1Di4B,OAAOoU,QAAQzN,MAAMwB,MAAK,SAAUiM,SAClC,IAAIpC,GAAKt7C,QAAQk7C,QAAuC,IAA/BjL,KAAKrF,KAAKv5B,QAAQ,SAAiB,UAAY,WACrEjK,KAAK,MAAOs2C,SAAShP,IAAI,aAAc,QAAQA,IAAI,WAAY,SAElE,SAAS6D,UACP,IAAIpb,SAAWmkB,GAAG,GAAGnkB,SACrB8Y,KAAKgS,aAAe9qB,SACpBmkB,GAAGr0C,SACH6pC,SAASx6B,QAAQ6gB,UAGnB,SAAS2Y,QACPwL,GAAGr0C,SACH6pC,SAASiB,OAAO,cAGlBuJ,GAAGwG,GAAG,iBAAkBvP,SACxB+I,GAAGwG,GAAG,QAAShS,QAGf,SAASqS,iBACP3R,UAAS,WACH8K,GAAG,GAAGoB,aACJpB,GAAG,GAAGnkB,SACRob,UAIA4P,oBAGH,KAGLA,GAEAniD,QAAQk7C,QAAQj1C,SAASa,MAAMmlC,OAAOqP,OACrC,WACDxK,SAASiB,OAAO,iBAzChBjB,SAASiB,OAAO,gBA6CpB9B,KAAKiS,oBAAsBpR,SAASG,QACpChB,KAAKiS,oBAA6B,SAAE,kBAC3BjS,KAAKiS,uBAEPjS,KAAKiS,qBAEP5Y,UAIT8G,aAAaC,QAAQ,eAAgB,CAAC,iBAAkB,KAAM,SAAU+R,eAAgB7R,IACtF,IAAIjH,OAAS8Y,eAuBTrM,OAAS,SAAUsM,OAAQ5M,MAAOC,OAAQ4M,QAAS1X,KAAM2X,MAAOC,WAAYhN,UAC9E,IAAI1E,SAAWP,GAAGS,QACdyR,cAAgBx8C,SAASonC,cAAc,UACvCqV,aAAez8C,SAASonC,cAAc,OA8C1C,OA7CAqV,aAAa/U,aAAa,QAAS,oDACnC1nC,SAASa,KAAK8mC,YAAY8U,cAE1BA,aAAalX,OAAS,WACpB,IAAImX,SAAWD,aAAajN,MAAOmN,UAAYF,aAAahN,OAE5D,GADAgN,aAAahG,WAAW94C,YAAY8+C,cACpB,MAAZlN,WAAsD,IAAlCA,SAASmN,SAAUC,WAI3C,IACE,GAAIL,MAAO,CACT,IAAIM,WAAavZ,OAAO4W,aAAaqC,OACtBI,SAAWC,UACXC,WAEbnN,QADAD,MAAQkN,UACSE,WAGjBpN,OADAC,OAASkN,WACQC,WAGhBpN,QACHA,MAAQkN,UAELjN,SACHA,OAASkN,WAEX,IAAIE,WA1CoB,SAAUC,SAAUC,UAAWC,SAAUC,UAAWV,YAChF,IAAID,MAAQC,WAAavtC,KAAKsI,IAAI0lC,SAAWF,SAAUG,UAAYF,WACjE/tC,KAAK0U,IAAIs5B,SAAWF,SAAUG,UAAYF,WAC5C,MAAO,CACLvN,MAAOsN,SAAWR,MAAO7M,OAAQsN,UAAYT,MAC7CY,QAASJ,SAAWR,MAAQU,SAAUG,QAASJ,UAAYT,MAAQW,WAqChDG,CAAwBV,SAAUC,UAAWnN,MAAOC,OAAQ8M,YAC7EC,cAAchN,MAAQxgC,KAAK0U,IAAIm5B,WAAWrN,MAAOA,OACjDgN,cAAc/M,OAASzgC,KAAK0U,IAAIm5B,WAAWpN,OAAQA,QACrC+M,cAAca,WAAW,MAC/BC,UAAUb,aAChBztC,KAAK0U,IAAI,GAAIm5B,WAAWK,QAAU,GAAIluC,KAAK0U,IAAI,GAAIm5B,WAAWM,QAAU,GACxEN,WAAWrN,MAAOqN,WAAWpN,QAC/B5E,SAASx6B,QAAQmsC,cAAce,UAAU5Y,MAAQ,aAAc0X,SAAW,OAC1E,MAAOl8C,GACP0qC,SAASiB,OAAO3rC,QA9BhB0qC,SAASiB,OAAO,aAiCpB2Q,aAAajT,QAAU,WACrBiT,aAAahG,WAAW94C,YAAY8+C,cACpC5R,SAASiB,UAEX2Q,aAAavV,IAAMkV,OACZvR,SAASG,SAkElB,OA/DA3H,OAAOma,cAAgB,SAAUC,QAASr8C,KAAMs8C,UAG9C,IAFA,IAAIpsC,IAAMmsC,QAAQh+C,MAAM,KAAMk+C,KAAOrsC,IAAI,GAAGzO,MAAM,WAAW,GAC3D+6C,KAAOC,KAAKvsC,IAAI,IAAKxK,EAAI82C,KAAK/9C,OAAQi+C,MAAQ,IAAIrP,WAAW3nC,GACxDA,KACLg3C,MAAMh3C,GAAK82C,KAAKt8C,WAAWwF,GAE7B,IAAIkmC,KAAO,IAAIlzC,OAAOosC,KAAK,CAAC4X,OAAQ,CAACnZ,KAAMgZ,OAG3C,OAFA3Q,KAAK5rC,KAAOA,KACZ4rC,KAAK2G,aAAe+J,SACb1Q,MAGT3J,OAAO2P,kBAAoB,WACzB,IAAInL,KAAO7nC,SAASonC,cAAc,UAClC,OAAOttC,OAAO+jD,MAAQhW,KAAKwV,YAAcxV,KAAKwV,WAAW,OAASvjD,OAAOosC,MAGvE7C,OAAO2P,qBAETjoC,OAAO+3B,eAAehpC,OAAOosC,KAAKznC,UAAW,OAAQ,CACnDwhB,IAAK,WACH,OAAOhlB,KAAK8iD,UAEd7nC,IAAK,SAAUo9B,GACbr4C,KAAK8iD,SAAWzK,GAElB0K,cAAc,IAIlB3a,OAAOyM,OAAS,SAAU9F,KAAMyI,SAC9B,GAAmC,IAA/BzI,KAAKrF,KAAKv5B,QAAQ,SAAgB,OAAOi4B,OAAO8L,aAAanF,MAEjE,IAAIa,SAAWP,GAAGS,QA2BlB,OA1BA1H,OAAOoU,QAAQzN,MAAM,GAAMwB,MAAK,SAAU1oC,KACxCgtC,OAAOhtC,IAAK2vC,QAAQjD,MAAOiD,QAAQhD,OAAQgD,QAAQ4J,QAAS5J,QAAQ9N,MAAQqF,KAAKrF,KAC/E8N,QAAQ6J,MAAO7J,QAAQ8J,WAAY9J,QAAQlD,UAC1C/D,MAAK,SAAUiM,SACd,GAAkB,eAAdzN,KAAKrF,OAAiD,IAAxB8N,QAAQwL,YACxC,IACExG,QAAUpU,OAAO4a,YAAYn7C,IAAK20C,SAClC,MAAOt3C,GACPulC,YAAW,WAAa,MAAMvlC,IAAK,GAGvC,IACE,IAAI6sC,KAAO3J,OAAOma,cAAc/F,QAASzN,KAAK5oC,KAAM4oC,KAAKnE,MACzDgF,SAASx6B,QAAQ28B,MACjB,MAAO7sC,GACP0qC,SAASiB,OAAO3rC,OAEjB,SAAUsrC,GACD,aAANA,GACFZ,SAASx6B,QAAQ25B,MAEnBa,SAASiB,OAAOL,SAEnB,SAAUtrC,GACX0qC,SAASiB,OAAO3rC,MAEX0qC,SAASG,SAGX3H,UAGT,WAyUE,SAAS6a,gBACP,IAAIC,IAAMn+C,SAASonC,cAAc,OACjC,MAAQ,cAAe+W,KAAS,WAAYA,MAAS,aAAaziD,KAAK0qC,UAAUiQ,WA1UnFlM,aAAagK,UAAU,UAAW,CAAC,SAAU,WAAY,UAAW,SAAU,QAAS,KACrF,SAAUxF,OAAQpE,SAAU6T,QAAShK,OAAQ/J,MAAOC,IAClD,MAAO,CACL0M,SAAU,MACVC,QAAS,WACTC,KAAM,SAAUlI,MAAOnH,KAAM1mC,KAAM8tC,UA0BzC,SAASoP,SAASrP,MAAOnH,KAAM1mC,KAAM8tC,QAASN,OAAQpE,SAAU6T,QAAS/a,OAAQgH,MAAOC,IACtF,IAAIgU,UAAYJ,gBAEZxO,WAAa,SAAUtuC,KAAM4tC,MAAOD,QACtC,OAAO1L,OAAOqM,WAAWtuC,KAAMD,KAAM6tC,MAAOD,SAG1CW,WAAW,kBACbnF,UAAS,WACHyE,MAAMU,WAAW,kBACnBV,MAAMU,WAAW,kBAAkBvxC,MAAQmgD,UAE3CtP,MAAMU,WAAW,kBAAoB4O,aAI3C,IAAKA,UAIH,aAHuD,IAAnD5O,WAAW,4BAA6BV,QAC1CnH,KAAKY,IAAI,UAAW,SAKxB,SAAS8V,aACP,OAAO1W,KAAK1mC,KAAK,aAAeuuC,WAAW,kBAAmBV,OAGjC,MAA3BU,WAAW,cACbrM,OAAOoR,6BAA6BxF,QAAS9tC,KAAM6tC,OAGrD,IAGIwP,oBAHAC,aAAe,KACfzI,gBAAkBrH,OAAOe,WAAW,uBACpCgP,cAAgB,EAGpB7W,KAAK,GAAGtE,iBAAiB,YAAY,SAAU6E,KAC7C,IAAImW,cAAiBlb,OAAOqN,eAAe,OAAQvvC,KAAM6tC,OAAzD,CAIA,GAHA5G,IAAI6N,iBACAD,gBAAgBhH,QAAQ5G,IAAI4N,kBAE5B5P,UAAUiQ,UAAUjrC,QAAQ,WAAa,EAAG,CAC9C,IAAIpD,EAAIogC,IAAIuW,aAAaC,cACzBxW,IAAIuW,aAAaE,WAAc,SAAW72C,GAAK,aAAeA,EAAK,OAAS,OAE9EuiC,SAASuU,OAAOL,cACXD,sBACHA,oBAAsB,IACtBO,uBAAuB/P,MAAO7tC,KAAMinC,KAAK,SAAU4W,OACjDR,oBAAsBQ,MACtBnX,KAAKS,SAASkW,qBACd9O,WAAW,UAAWV,MAAO,CAACiQ,aAAa,EAAMC,OAAQV,oBAAqBxM,OAAQ5J,cAGzF,GACHP,KAAK,GAAGtE,iBAAiB,aAAa,SAAU6E,MAC1CmW,cAAiBlb,OAAOqN,eAAe,OAAQvvC,KAAM6tC,SACzD5G,IAAI6N,iBACAD,gBAAgBhH,QAAQ5G,IAAI4N,sBAC/B,GACHnO,KAAK,GAAGtE,iBAAiB,aAAa,SAAU6E,MAC1CmW,cAAiBlb,OAAOqN,eAAe,OAAQvvC,KAAM6tC,SACzD5G,IAAI6N,iBACAD,gBAAgBhH,QAAQ5G,IAAI4N,kBAChCyI,aAAelU,UAAS,WAClBiU,qBAAqB3W,KAAKK,YAAYsW,qBAC1CA,oBAAsB,KACtB9O,WAAW,UAAWV,MAAO,CAACiQ,aAAa,EAAOjN,OAAQ5J,QACzDsW,eAAiB,SACnB,GACH7W,KAAK,GAAGtE,iBAAiB,QAAQ,SAAU6E,MACrCmW,cAAiBlb,OAAOqN,eAAe,OAAQvvC,KAAM6tC,SACzD5G,IAAI6N,iBACAD,gBAAgBhH,QAAQ5G,IAAI4N,kBAC5BwI,qBAAqB3W,KAAKK,YAAYsW,qBAC1CA,oBAAsB,KACtBW,2BAA2B/W,IAAIuW,aAAcvW,IAAK,eACjD,GACHP,KAAK,GAAGtE,iBAAiB,SAAS,SAAU6E,KACtChC,UAAUiQ,UAAUl5C,cAAciO,QAAQ,YAAc,GAC1DskC,WAAW,wBAAyBV,QACpC5G,IAAI6N,kBAEFsI,cAAiBlb,OAAOqN,eAAe,QAASvvC,KAAM6tC,QAC1DmQ,2BAA2B/W,IAAIgX,eAAiBhX,IAAIuN,cAAcyJ,cAAehX,IAAK,eACrF,GAEChC,UAAUiQ,UAAUl5C,cAAciO,QAAQ,YAAc,GAC1DskC,WAAW,wBAAyBV,SACpCnH,KAAK1mC,KAAK,mBAAmB,GAC7B0mC,KAAKgU,GAAG,YAAY,SAAU17C,GACvBA,EAAEk/C,SAAYl/C,EAAEm/C,SACnBn/C,EAAE81C,qBAKR,SAASkJ,2BAA2B5oC,OAAQ6xB,IAAKmX,cAC/C,GAAKhpC,OAAL,CAGA,IAAIjb,KACJ,IACEA,KAAOib,QAAUA,OAAOipC,SAAWjpC,OAAOipC,QAAQ,aAClD,MAAOr/C,IAETs/C,aAAalpC,OAAO7W,MAAO6W,OAAOuvB,OAA4C,IAArC4J,WAAW,cAAeV,OACjEU,WAAW,aAAeA,WAAW,cAAeV,QAAQxD,MAAK,SAAU1F,OACvEA,MAAMjmC,OACRkxC,YAAYjL,MAAOsC,KAEnBsX,qBAAqBH,aAAcjkD,MAAMkwC,MAAK,SAAU1F,OACtDiL,YAAYjL,MAAOsC,YAM3B,SAAS2I,YAAYjL,MAAOsC,KAC1B/E,OAAO0N,YAAY9B,QAAS9tC,KAAM6tC,MAAOU,WAAW,cAAgBA,WAAW,WAAY5J,MAAOsC,KAGpG,SAASsX,qBAAqB9O,SAAUt1C,MACtC,IAAK+nC,OAAOqN,eAAeE,SAAUzvC,KAAM6tC,QAA0B,iBAAT1zC,KAAmB,OAAO+nC,OAAOwN,cAAc,IAC3G,IAAIyH,KAAO,GACXh9C,KAAK+F,QAAQ,6CAA6C,SAAUuE,EAAGkB,EAAGogC,KACxEoR,KAAKt6C,KAAKkpC,QAEZ,IAAIgI,SAAW,GAAIpJ,MAAQ,GAC3B,GAAIwS,KAAKz4C,OAAQ,CACf9F,QAAQG,QAAQo+C,MAAM,SAAUx1C,KAC9BosC,SAASlxC,KAAKqlC,OAAOiL,UAAUxrC,KAAK0oC,MAAK,SAAUwB,MACjDlH,MAAM9nC,KAAKgvC,aAGf,IAAIjC,MAAQT,GAAGS,QAMf,OALAT,GAAGgG,IAAIpB,UAAU1D,MAAK,WACpBT,MAAM16B,QAAQy1B,UACb,SAAU3lC,GACX4qC,MAAMe,OAAO3rC,MAER4qC,MAAMC,QAEf,OAAO3H,OAAO8L,eAGhB,SAAS4P,uBAAuB/P,MAAO7tC,KAAMinC,IAAKz3B,UAChD,IAAI/Q,IAAM8vC,WAAW,mBAAoBV,MAAO,CAACgD,OAAQ5J,MAAOuX,OAAS,WACzE,GAAI5lD,QAAQ2I,SAAS9C,KACnB+/C,OAAS//C,SACJ,GAAIA,MACLA,IAAIggD,QAAOlB,cAAgB9+C,IAAIggD,OAC/BhgD,IAAIigD,QAAUjgD,IAAIksC,QAAQ,CAC5B,IAAIpsC,MAAQ0oC,IAAIuW,aAAaj/C,MAC7B,GAAa,MAATA,OAAkBA,MAAMG,OAK1B,IAFA,IAAIwvC,QAAUzvC,IAAIyvC,SAAWK,WAAW,aAAcV,MAAO,CAACgD,OAAQ5J,MAClEn0B,IAAMvU,MAAMG,OACToU,OAAO,CACZ,IAAKovB,OAAOiM,gBAAgB5vC,MAAMuU,KAAMo7B,SAAU,CAChDsQ,OAAS//C,IAAIksC,OACb,MAEA6T,OAAS//C,IAAIigD,YATjBF,OAAS//C,IAAIigD,OAenBlvC,SAASgvC,QAGX,SAASF,aAAa//C,MAAO80C,SAAUsL,SAAUC,UAC/C,IAAIC,SAAW3c,OAAOoX,kBAAkBt5C,KAAM6tC,MAAO,YACrC,MAAZgR,WACFA,SAAWC,OAAOC,WAEpB,IAAIC,aAAe9c,OAAOoX,kBAAkBt5C,KAAM6tC,MAAO,gBACrC,MAAhBmR,eACFA,aAAeF,OAAOC,WAExB,IAAIE,WAAa1Q,WAAW,gBAAiBV,OACzClJ,MAAQ,GAAIkV,UAAY,EAE5B,SAASqF,iBAAiBC,MAAOC,MAC/B,IAAIxV,MAAQT,GAAGS,QACf,GAAa,MAATuV,MACF,GAAIA,MAAME,YAAa,CACrB,IAAItR,SAAW,CAAC7L,OAAO8L,gBACvB,GAAIiR,WAAY,CACd,IAAIpW,KAAO,CAACrF,KAAM,aAClBqF,KAAK5oC,KAAO4oC,KAAKuW,MAAQA,MAAQ,IAAMD,MAAMl/C,KAC7C0kC,MAAM9nC,KAAKgsC,MAEb,IAAIyW,UAAYH,MAAMI,eAClBC,QAAU,GACVC,YAAc,WAChBH,UAAUG,aAAY,SAAUC,SAC9B,IACOA,QAAQhhD,QAYX8gD,QAAUA,QAAQlxC,OAAOmB,MAAMnS,UAAUkQ,MAAM7M,KAAK++C,SAAW,GAAI,IACnED,gBAZA7mD,QAAQG,QAAQymD,QAAQhyC,MAAM,IAAI,SAAUxO,GACtC2lC,MAAMjmC,QAAUmgD,UAAYhF,WAAamF,cAC3CjR,SAASlxC,KAAKqiD,iBAAiBlgD,GAAIogD,MAAc,IAAMD,MAAMl/C,KAAO,SAGxEkpC,GAAGgG,IAAIpB,UAAU1D,MAAK,WACpBT,MAAM16B,aACL,SAAUlQ,GACX4qC,MAAMe,OAAO3rC,OAMjB,MAAOA,GACP4qC,MAAMe,OAAO3rC,OAEd,SAAUA,GACX4qC,MAAMe,OAAO3rC,OAGjBygD,mBAEAN,MAAMtW,MAAK,SAAUA,MACnB,IACEA,KAAKuW,MAAQA,MAAc,IAAMvW,KAAK5oC,KAClCg/C,aACFpW,KAAO3G,OAAOsJ,OAAO3C,KAAMA,KAAKuW,OAElCza,MAAM9nC,KAAKgsC,MACXgR,WAAahR,KAAKnE,KAClBkF,MAAM16B,UACN,MAAOlQ,GACP4qC,MAAMe,OAAO3rC,OAEd,SAAUA,GACX4qC,MAAMe,OAAO3rC,MAInB,OAAO4qC,MAAMC,QAGf,IAAIkE,SAAW,CAAC7L,OAAO8L,gBAEvB,GAAIzvC,OAASA,MAAMG,OAAS,GAAmC,UAA9Bu+C,QAAQ0C,SAASC,SAChD,IAAK,IAAIphD,EAAI,EAAGA,EAAID,MAAMG,OAAQF,IAAK,CACrC,GAAID,MAAMC,GAAGqhD,kBAAoBthD,MAAMC,GAAGqhD,oBAAsBthD,MAAMC,GAAGqhD,mBAAmBR,YAAa,CACvG,IAAIF,MAAQ5gD,MAAMC,GAAGqhD,mBACrB,GAAIV,MAAME,cAAgBV,SACxB,SAEW,MAATQ,OACFpR,SAASlxC,KAAKqiD,iBAAiBC,YAE5B,CACL,IAAIj5C,EAAI3H,MAAMC,GAAGshD,YACR,MAAL55C,IACFy+B,MAAM9nC,KAAKqJ,GACX2zC,WAAa3zC,EAAEw+B,MAGnB,GAAIC,MAAMjmC,OAASmgD,UAAYhF,UAAYmF,eACvCJ,UAAYja,MAAMjmC,OAAS,EAAI,WAGrC,GAAgB,MAAZ20C,SACF,IAAK,IAAIxqB,EAAI,EAAGA,EAAIwqB,SAAS30C,OAAQmqB,IAAK,CACxC,IAAIggB,KAAOwK,SAAS3e,KAAK7L,GAKzB,IAJIggB,KAAKrF,MAAQqF,KAAKnE,KAAO,KAC3BC,MAAM9nC,KAAKgsC,MACXgR,WAAahR,KAAKnE,MAEhBC,MAAMjmC,OAASmgD,UAAYhF,UAAYmF,eACvCJ,UAAYja,MAAMjmC,OAAS,EAAI,MAKzC,IAAIkrC,MAAQT,GAAGS,QAaf,OAZAT,GAAGgG,IAAIpB,UAAU1D,MAAK,WACpB,GAAKuU,UAAaK,aAActa,MAAMjmC,OAKpCkrC,MAAM16B,QAAQy1B,WAL8B,CAE5C,IADA,IAAInmC,EAAI,EACDmmC,MAAMnmC,IAAwB,cAAlBmmC,MAAMnmC,GAAGglC,MAAsBhlC,IAClDorC,MAAM16B,QAAQ,CAACy1B,MAAMnmC,SAItB,SAAUQ,GACX4qC,MAAMe,OAAO3rC,MAGR4qC,MAAMC,SA9TTqT,CAASrP,MAAOnH,KAAM1mC,KAAM8tC,QAASN,OAAQpE,SAAU6T,QAAShK,OAAQ/J,EAAOC,SAKvFH,aAAagK,UAAU,iBAAiB,WACtC,OAAO,SAAUnF,MAAOnH,MAClBqW,iBAAiBrW,KAAKY,IAAI,UAAW,YAI7C0B,aAAagK,UAAU,mBAAoB,CAAC,SAAU,WAAY,SAAU,SAAUxF,OAAQpE,SAAU6J,QACtG,OAAO,SAAUpF,MAAOnH,KAAM1mC,MAC5B,GAAI+8C,gBAAiB,CACnB,IAAI1rB,MAAQmc,OAAOyF,OAAO1E,WAAW,mBAAoBvuC,OACzDopC,UAAS,WACP/X,MAAMwc,OACFxc,MAAM2O,QACR3O,MAAM2O,OAAO6N,OAAO,WAzBhC,GAiVA7E,aAAaC,QAAQ,aAAc,CAAC,eAAgB,KAAM,SAAU8W,aAAc5W,IAChF,IAAIjH,OAAS6d,aA2Rb,OAzRA7d,OAAO0Q,gBAAkB,WACvB,OAAOj6C,OAAOkvC,aAAc,IAAIA,YAAamY,mBAAqB9d,OAAO2P,qBAsB3E3P,OAAO+d,gBAAkB,SAAUpX,MACjC,IAAIe,MAAQT,GAAGS,QACXsW,OAAS,IAAIrY,WACbsY,WAAatX,KAAKr7B,MAAQq7B,KAAKr7B,MAAM,EAAG,OAAaq7B,KAqCzD,OApCAqX,OAAOF,kBAAkBG,YACzBD,OAAO7X,QAAU,SAAUrpC,GACzB,OAAO4qC,MAAMe,OAAO3rC,IAEtBkhD,OAAO9b,OAAS,SAAUplC,GACxB,IAAIqK,OAAS,CAAC+2C,YAAa,GACvBC,KAAO,IAAIC,SAASxmD,KAAKuP,QAC7B,GAAiC,QAA7Bg3C,KAAKE,UAAU,GAAG,GAAmB,OAAO3W,MAAM16B,QAAQ7F,QAI9D,IAFA,IAAI3K,OAAS2hD,KAAKG,WAChBr1C,OAAS,EACJA,OAASzM,QAAQ,CACtB,IAAI+hD,OAASJ,KAAKE,UAAUp1C,QAAQ,GAEpC,GADAA,QAAU,EACK,QAAXs1C,OAAmB,CACrB,GAA2C,aAAvCJ,KAAKK,UAAUv1C,QAAU,GAAG,GAAuB,OAAOy+B,MAAM16B,QAAQ7F,QAE5E,IAAIs3C,OAAgD,QAAvCN,KAAKE,UAAUp1C,QAAU,GAAG,GACzCA,QAAUk1C,KAAKK,UAAUv1C,OAAS,EAAGw1C,QACrC,IAAIC,KAAOP,KAAKE,UAAUp1C,OAAQw1C,QAClCx1C,QAAU,EACV,IAAK,IAAI3M,EAAI,EAAGA,EAAIoiD,KAAMpiD,IACxB,GAAkD,MAA9C6hD,KAAKE,UAAUp1C,OAAc,GAAJ3M,EAASmiD,QAAoB,CACxD,IAAIP,YAAcC,KAAKE,UAAUp1C,OAAc,GAAJ3M,EAAU,EAAGmiD,QAMxD,OALIP,aAAe,GAAKA,aAAe,IACrCC,KAAKQ,UAAU11C,OAAc,GAAJ3M,EAAU,EAAG,EAAGmiD,QACzCt3C,OAAOy3C,iBAAmB9hD,EAAEyC,OAAO4H,QAErCA,OAAO+2C,YAAcA,YACdxW,MAAM16B,QAAQ7F,aAEpB,IAA0B,QAAZ,MAATo3C,QAA6B,MACpCt1C,QAAUk1C,KAAKE,UAAUp1C,QAAQ,IAExC,OAAOy+B,MAAM16B,QAAQ7F,SAEhBugC,MAAMC,SAaf3H,OAAO4Q,kBAAoB,SAAUjK,MACnC,GAAwC,IAApCA,KAAKrF,KAAKv5B,QAAQ,cACpB,OAAOi4B,OAAO8L,aAAanF,MAG7B,IAAIa,SAAWP,GAAGS,QAkClB,OAjCA1H,OAAO+d,gBAAgBpX,MAAMwB,MAAK,SAAUhhC,QAC1C,GAAIA,OAAO+2C,YAAc,GAAK/2C,OAAO+2C,YAAc,EACjD,OAAO1W,SAASx6B,QAAQ25B,MAE1B3G,OAAOoU,QAAQzN,MAAM,GAAMwB,MAAK,SAAU1oC,KACxC,IAAIo/C,OAASliD,SAASonC,cAAc,UAChCwU,IAAM57C,SAASonC,cAAc,OAEjCwU,IAAIrW,OAAS,WACX,IACE2c,OAAO1S,MAAQhlC,OAAO+2C,YAAc,EAAI3F,IAAInM,OAASmM,IAAIpM,MACzD0S,OAAOzS,OAASjlC,OAAO+2C,YAAc,EAAI3F,IAAIpM,MAAQoM,IAAInM,OACzD,IAAI0S,IAAMD,OAAO7E,WAAW,OA1FtC,SAAS+E,eAAeD,IAAKZ,YAAa/R,MAAOC,QAC/C,OAAQ8R,aACN,KAAK,EACH,OAAOY,IAAIE,WAAW,EAAG,EAAG,EAAG,EAAG7S,MAAO,GAC3C,KAAK,EACH,OAAO2S,IAAIE,WAAW,EAAG,EAAG,GAAI,EAAG7S,MAAOC,QAC5C,KAAK,EACH,OAAO0S,IAAIE,UAAU,EAAG,EAAG,GAAI,EAAG,EAAG5S,QACvC,KAAK,EACH,OAAO0S,IAAIE,UAAU,EAAG,EAAG,EAAG,EAAG,EAAG,GACtC,KAAK,EACH,OAAOF,IAAIE,UAAU,EAAG,GAAI,EAAG,EAAG5S,OAAQ,GAC5C,KAAK,EACH,OAAO0S,IAAIE,UAAU,GAAI,GAAI,EAAG,EAAG5S,OAAQD,OAC7C,KAAK,EACH,OAAO2S,IAAIE,UAAU,GAAI,EAAG,EAAG,EAAG,EAAG7S,QA4EjC4S,CAAeD,IAAK33C,OAAO+2C,YAAa3F,IAAIpM,MAAOoM,IAAInM,QACvD0S,IAAI7E,UAAU1B,IAAK,EAAG,GACtB,IAAInE,QAAUyK,OAAO3E,UAAUvT,KAAKrF,MAAQ,aAAc,MAC1D8S,QAAUpU,OAAO4a,YAhC3B,SAASqE,oBAAoBC,QAI3B,IAHA,IAAIC,OAAS,GACTC,MAAQ,IAAIhU,WAAW8T,QACvBtuC,IAAMwuC,MAAMd,WACPhiD,EAAI,EAAGA,EAAIsU,IAAKtU,IACvB6iD,QAAUttB,OAAOwtB,aAAaD,MAAM9iD,IAEtC,OAAO7F,OAAO6oD,KAAKH,QAyBkBF,CAAoB93C,OAAOy3C,kBAAmBxK,SAC3E,IAAIzK,KAAO3J,OAAOma,cAAc/F,QAASzN,KAAK5oC,MAC9CypC,SAASx6B,QAAQ28B,MACjB,MAAO7sC,GACP,OAAO0qC,SAASiB,OAAO3rC,KAG3By7C,IAAIpS,QAAU,WACZqB,SAASiB,UAEX8P,IAAI1U,IAAMpkC,OACT,SAAU3C,GACX0qC,SAASiB,OAAO3rC,SAEjB,SAAUA,GACX0qC,SAASiB,OAAO3rC,MAEX0qC,SAASG,SAGlB3H,OAAO4a,YAAc,SAAUza,KAAMof,SACnC,IAAIC,aAAe,CAEnBA,QAAuB,oEAMvBA,SAAwB,SAAUz+C,OAChC,IACE0+C,KAAMC,KACNC,KAAMC,KAAMC,KAFVt4C,OAAS,GACCu4C,KAAO,GACDC,KAAO,GACzBzjD,EAAI,EAEN,GAKEqjD,MAJAF,KAAO1+C,MAAMzE,OAIE,EACfsjD,MAAgB,EAAPH,OAAa,GAJtBC,KAAO3+C,MAAMzE,OAIuB,EACpCujD,MAAgB,GAAPH,OAAc,GAJvBI,KAAO/+C,MAAMzE,OAIwB,EACrCyjD,KAAc,GAAPD,KAEH31C,MAAMu1C,MACRG,KAAOE,KAAO,GACL51C,MAAM21C,QACfC,KAAO,IAGTx4C,OAASA,OACP3P,KAAKooD,QAAQ35C,OAAOs5C,MACpB/nD,KAAKooD,QAAQ35C,OAAOu5C,MACpBhoD,KAAKooD,QAAQ35C,OAAOw5C,MACpBjoD,KAAKooD,QAAQ35C,OAAO05C,MACtBN,KAAOC,KAAOI,KAAO,GACrBH,KAAOC,KAAOC,KAAOE,KAAO,SACrBzjD,EAAIyE,MAAMvE,QAEnB,OAAO+K,QAGTi4C,QAAuB,SAAUS,eAAgBC,mBAC3CD,eAAezgD,MAAM,6BACvBygD,eAAiBA,eAAejiD,QAAQ,0BAA2B,KAGrE,IAAImiD,SAAWvoD,KAAKwoD,SAASH,gBACzBI,SAAWzoD,KAAK0oD,eAAeH,UAE/BI,MAAQ3oD,KAAK4oD,iBAAiBN,kBAAmBG,UAErD,MAAO,0BAA4BzoD,KAAK6oD,SAASF,QAInDf,iBAAgC,SAAUU,kBAAmBG,UAC3D,IAAIK,UAAY9oD,KAAK+oD,aAAaN,UAChCO,cAAgBhpD,KAAKipD,WAAWX,kBAAmBQ,WACrD,OAAO,IAAItV,WAAWwV,gBAIxBpB,aAA4B,SAAUa,UAEpC,IADA,IAAIS,IACK/hC,EAAI,EAAGA,EAAIshC,SAAS7jD,OAAQuiB,IAEnC,GAAe,OADf+hC,IAAMT,SAASthC,IACP,GAAwB,MAAX+hC,IAAI,GAEvB,OAAOA,IAGX,MAAO,IAITtB,WAA0B,SAAUU,kBAAmBQ,WACrD,IAAIK,UAAYb,kBAAkBliD,QAAQ,0BAA2B,IACnE9F,IAAMN,KAAKwoD,SAASW,WACpBC,cAAgB9oD,IAAI6P,QAAQ,IAAK,GACjCk5C,IAAM/oD,IAAIoT,MAAM,EAAG01C,eACnBE,IAAMhpD,IAAIoT,MAAM01C,eAChBpsC,MAAQqsC,IAIV,OADArsC,OADAA,MAAQA,MAAMxI,OAAOs0C,YACPt0C,OAAO80C,MAKvB1B,eAA8B,SAAU2B,eAItC,IAHA,IAAIC,KAAO,EACTf,SAAW,KAGiB,MAAxBc,cAAcC,MAA4C,MAA5BD,cAAcC,KAAO,KAD/C,CAIR,GAA4B,MAAxBD,cAAcC,MAA4C,MAA5BD,cAAcC,KAAO,GACrDA,MAAQ,MAEL,CACH,IACEC,SAAWD,MAD0B,IAA1BD,cAAcC,KAAO,GAAWD,cAAcC,KAAO,IACrC,EAC3BN,IAAMK,cAAc71C,MAAM81C,KAAMC,UAClChB,SAAS1lD,KAAKmmD,KACdM,KAAOC,SAET,GAAID,KAAOD,cAAc3kD,OACvB,MAIJ,OAAO6jD,UAITb,SAAwB,SAAUz+C,OAChC,IAAI0+C,KAAMC,KACFE,KAAMC,KADEC,KAAO,GACHC,KAAO,GACzBzjD,EAAI,EACJpE,IAAM,GAGS,sBACFsP,KAAKzG,QAClBqR,QAAQkvC,IAAI,qIAIdvgD,MAAQA,MAAM/C,QAAQ,sBAAuB,IAE7C,GAMEyhD,KALO7nD,KAAKooD,QAAQj4C,QAAQhH,MAAMsF,OAAO/J,OAKzB,GAJhBsjD,KAAOhoD,KAAKooD,QAAQj4C,QAAQhH,MAAMsF,OAAO/J,QAIX,EAC9BojD,MAAgB,GAAPE,OAAc,GAJvBC,KAAOjoD,KAAKooD,QAAQj4C,QAAQhH,MAAMsF,OAAO/J,QAIJ,EACrCwjD,MAAgB,EAAPD,OAAa,GAJtBE,KAAOnoD,KAAKooD,QAAQj4C,QAAQhH,MAAMsF,OAAO/J,OAMzCpE,IAAIyC,KAAK8kD,MAEI,KAATI,MACF3nD,IAAIyC,KAAK+kD,MAEE,KAATK,MACF7nD,IAAIyC,KAAKmlD,MAGXL,KAAOC,KAAOI,KAAO,GACdF,KAAOC,KAAOE,KAAO,SAErBzjD,EAAIyE,MAAMvE,QAEnB,OAAOtE,MAGT,OAAOsnD,aAAa+B,QAAQphB,KAAMof,UAG7Bvf,4UCv6EF,MAAMwhB,eACTC,oBAAsBhrD,OAAOirD,sBAAsBC,aACnDF,gBAAkBhrD,OAAOirD,sBAAsBE,SAC/CH,qBAAuBhrD,OAAOirD,sBAAsBG,cACpDJ,mBAAqBhrD,OAAOirD,sBAAsBI,YAClDL,gBAAkBhrD,OAAOirD,sBAAsBK,SAC/CN,kBAAoBhrD,OAAOirD,sBAAsBM,WACjDP,kBAAoBhrD,OAAOirD,sBAAsBO,WACjDR,gBAAkBhrD,OAAOirD,sBAAsBQ,SAC/CT,kBAAoBhrD,OAAOirD,sBAAsBS,WACjDV,kBAAoBhrD,OAAOirD,sBAAsBU,WACjDX,cAAgBhrD,OAAOirD,sBAAsBW,OAC7CZ,eAAiBhrD,OAAOirD,sBAAsBjjB,QAC9CgjB,iBAAmBhrD,OAAOirD,sBAAsBY,UAEhDb,kBAAoB,CAChBc,WAAY3qD,KAAKqqD,WACjBO,yBAA0B,8CAAE,uCAAuCrxC,mMCnBhE,MAAMsxC,iBACTC,YACIC,OACAzb,SACAoE,OACArE,GACAsE,SACAwF,OACA6R,mBACAC,cACAC,WACAC,kBACAC,eAEAprD,KAAK+qD,OAASA,OACd/qD,KAAKsvC,SAAWA,SAChBtvC,KAAK0zC,OAASA,OACd1zC,KAAKqvC,GAAKA,GACVrvC,KAAK2zC,SAAWA,SAChB3zC,KAAKqrD,cAAgBlS,OACrBn5C,KAAKgrD,mBAAqBA,mBAC1BhrD,KAAKirD,cAAgBA,cACrBjrD,KAAKkrD,WAAaA,WAClBlrD,KAAKmrD,kBAAoBA,kBACzBnrD,KAAKorD,cAAgBA,cAErBL,OAAOO,iBAAmBtrD,KAI9BurD,aAAarB,YAAaC,SAAUqB,WAAYC,aAAcC,MAAOC,0BACjE3rD,KAAKL,OAAS,CAAEuqD,YAA0BC,SAAoBqB,WAAwBE,MAAO7Z,KAAK+Z,OAAOF,OAAS,SAASxpD,eAAgBypD,yBAA0B9Z,KAAK+Z,OAAOD,0BAA4B,SAASzpD,gBACtNlC,KAAK+qD,OAAOU,aAAeA,aAE3BzrD,KAAK6rD,aAGTA,aACQ7rD,KAAKL,OAAO+rD,OAAS1rD,KAAKL,OAAOgsD,2BAErC3rD,KAAK+qD,OAAOe,KAAO,GACnB9rD,KAAK+qD,OAAOgB,MAAQ,GACpB/rD,KAAK+qD,OAAOiB,KAAO,GAEnBhsD,KAAKisD,QAAU,GACfjsD,KAAKksD,UAAY,CAAEC,SAAUnsD,KAAKL,OAAOwqD,UAEzCnqD,KAAKkrD,WAAWkB,KAAK,SAAU,gBAAiB,CAAEC,aAAcrsD,KAAK+qD,OAAOU,aAAca,QAASvnD,SAAS04C,KAAO,CAAE+N,WAAYxrD,KAAKL,OAAO6rD,YAAcxrD,KAAKksD,WAC3J3b,MAAMhhB,OACCvvB,KAAKizC,OAAS1jB,KAAKg9B,QAAU,GAE7BvsD,KAAK+qD,OAAOyB,UAAYj9B,KAAKk9B,WAAa,GAC1CzsD,KAAK+qD,OAAOyB,UAAUzpD,KAAK,CAAE2pD,aAAc,OAAQC,kBAAkB,GAAQ,CAAED,aAAc,QAASC,kBAAkB,GAAQ,CAAED,aAAc,OAAQC,kBAAkB,GAAQ,CAAED,aAAc,eAAgBC,kBAAkB,GAAQ,CAAED,aAAc,aAAcC,kBAAkB,IAE5R3sD,KAAK4sD,QAAUr9B,KAAKs9B,SAAW,GAC/BC,EAAE9mD,IAAIhG,KAAK4sD,SAAUG,SACjBA,OAAOC,SAAWnb,KAAK+Z,MAAMmB,OAAOC,aAGxChtD,KAAKitD,WAAW19B,KAAK29B,mBAAmB3c,MAAM4c,iBAC1C,GAA8B,cAA1B59B,KAAK69B,kBAAmC,CACxCptD,KAAKqtD,gBAAgB99B,KAAK+9B,MAErBttD,KAAKL,OAAO+rD,OACb6B,EAAE,qBAAqBvtD,KAAKL,OAAOwqD,YAAY9pD,KAC3CL,KAAK2zC,SAASwZ,eAAdntD,CAA8BA,KAAK+qD,SAI3C/qD,KAAK+qD,OAAOyC,cAAe,EAC3BxtD,KAAKsvC,UAAS,KACVie,EAAE,oBAAoBlgB,SAAS,aAC/BkgB,EAAE,eAAetgB,YAAY,iBAGjC,MAAMwgB,eAAiBC,KAAK,GAAG1tD,KAAKirD,cAAc0C,sBAAsB3tD,KAAKL,OAAO6rD,WAAWplD,QAAQ,KAAK,kBAC5G,GAAIqnD,eAAgB,CAChB,MAAMG,WAAa,IAAIH,eAAeztD,KAAMA,KAAK+qD,QACjD6C,WAAW/B,mBAEZ,IAAKt8B,KAAK69B,mBAA+C,gBAA1B79B,KAAK69B,kBAAqC,CAC5E,IAAIS,iBAAmB,GAEvBf,EAAE7tD,QAAQe,KAAKizC,QAASnQ,QACpB9iC,KAAKirD,cAAc6C,eAAehrB,MAAMkqB,UAExClqB,MAAM+pB,QAAU,GAChBC,EAAE5lD,OAAOlH,KAAK4sD,SAAU9/C,GAAeA,EAAEihD,SAAWjrB,MAAMirB,UAAY/nD,KAAK+mD,SAAajqB,MAAM+pB,QAAQ9pD,KAAKgqD,WAE3G/sD,KAAKguD,cAAc,SAAWlrB,MAAMmrB,UAAY,SAAU,qBAAsBnrB,MAAMirB,SACtF/tD,KAAKguD,cAAc,SAAWlrB,MAAMmrB,UAAY,UAAW,oBAAqBnrB,MAAMirB,SAElFjrB,MAAMorB,aACNluD,KAAKmuD,cAAcrrB,MAAMirB,SAEzBjB,EAAE7tD,QAAQ6jC,MAAMsrB,aAAcC,KAC1BruD,KAAKguD,cAAcK,GAAGC,gBAAiB,gBAAiBxrB,MAAMirB,SAE9DjB,EAAE7tD,QAAQovD,GAAGE,YAAavhD,IACtBhN,KAAKguD,cAAchhD,EAAEwhD,eAAgB,gBAAiB1rB,MAAMirB,gBAKpEjrB,MAAM2rB,aACF3rB,MAAM2rB,WAAWC,sBAAsBb,iBAAiB9qD,KAAK+/B,MAAMirB,SAEvE/tD,KAAKguD,cAAc,SAASlrB,MAAMmrB,uBAAwB,0BAA2BnrB,MAAMirB,UAG/F/tD,KAAK2uD,cAAc7rB,MAAMirB,SAEzBjB,EAAE7tD,QAAQ6jC,MAAM8rB,gBAAiB5hD,IAC7BhN,KAAKguD,cAAchhD,EAAEwhD,eAAgB,gBAAiB1rB,MAAMirB,SAC5D/tD,KAAKguD,cAAchhD,EAAE6hD,gBAAiB,gBAAiB/rB,MAAMirB,YAEjE/tD,KAAK+qD,OAAOgB,MAAMjpB,MAAMmrB,WAAanrB,SAGzC9iC,KAAKqtD,gBAAgB99B,KAAK+9B,MAE1BttD,KAAK8uD,eAEA9uD,KAAKL,OAAO+rD,OACb6B,EAAE,qBAAqBvtD,KAAKL,OAAOwqD,YAAY9pD,KAAKL,KAAK2zC,SAASwZ,eAAdntD,CAA8BA,KAAK+qD,SAG3F/qD,KAAKsvC,UAAS,KACV,IAAIyf,cAAgBjC,EAAE5lD,OAAOlH,KAAK4sD,SAAU9/C,IAAgBA,EAAEkiD,eAC9DhvD,KAAKorD,cAAc6D,YAAYF,cAAe/uD,KAAKL,OAAOwqD,SAAU,KAAM,aAAcnqD,KAAK+qD,QAAQxa,MAAMhhB,OACvGvvB,KAAKsvC,UAAS,KACVwd,EAAE7tD,QAAQ4uD,kBAAmBqB,UAAclvD,KAAKmvD,mBAAmBD,cACpE,WAIXlvD,KAAK+qD,OAAOyC,cAAe,EAC3BxtD,KAAKsvC,UAAS,KACVie,EAAE,oBAAoBlgB,SAAS,aAC/BkgB,EAAE,eAAetgB,YAAY,iBAIrCjtC,KAAKsvC,UAAS,KACVtvC,KAAKovD,eAAgB,QAEzBxgB,eAEPA,aAIbye,gBAAgBgC,eACZvC,EAAE7tD,QAAQowD,eAAgB9/B,OACtBvvB,KAAKirD,cAAc6C,eAAev+B,SAGtCu9B,EAAEwC,OAAOD,eAAe,CAACnsD,MAAOC,OACjB,SAAPA,MASInD,KAAK+qD,OAAO5nD,KACZnD,KAAK+qD,OAAO5nD,KAAO,IAAInD,KAAK+qD,OAAO5nD,QAASD,OAE5ClD,KAAK+qD,OAAO5nD,KAAOD,UAKnC+pD,WAAWsC,aACP,MAAMzf,MAAQ9vC,KAAKqvC,GAAGS,QAEtB,OAAI9vC,KAAKL,OAAO+rD,OACZ5b,MAAM16B,UAKH06B,MAAMC,SAHF/vC,KAAKkrD,WAAW+B,WAAWsC,aAAa,GAMvDC,mBAAmBN,SACf,IAAIpsB,MAAQ9iC,KAAKyvD,aAAaP,SAC9B,GAAIpsB,MAAkC,CAClC,GAAIA,MAAMkqB,SAAS0C,YAAa,CAC5B,IAAI9nD,MAAQ,mCAAmCgI,KAC3CkzB,MAAMkqB,SAAS0C,aAEnB,GAAI9nD,MACY5H,KAAK0zC,OAAO9rC,MAAM,IACxBs+B,OAAOlmC,KAAK+qD,OAAQjoB,MAAM6sB,YAGpC3vD,KAAK+qD,OAAOgB,MAAMjpB,MAAMmrB,WAAW0B,MAAQ7sB,MAAM6sB,MACjD3vD,KAAK+qD,OAAOe,KAAKhpB,MAAMmrB,WAAanrB,MAAM6sB,MAE1Cn1C,QAAQkvC,IAAI1pD,KAAK+qD,OAAOe,MAG5B,GAAIhpB,MAAM8sB,WAAY,CAClB,MAAM3c,OAAUnQ,MAAM+sB,QAAoB7vD,KAAK8vD,eAAehtB,OAA9B,CAACA,OACjC9iC,KAAK+vD,eAAe9c,QAGxBjzC,KAAKsvC,UAAS,KACNxM,MAAM6sB,QAAU7sB,MAAMktB,UAAUhwD,KAAK+qD,OAAOkF,WAAW,sBAAsBntB,MAAMirB,UAAW,CAAEjrB,QACpGA,MAAMktB,SAAWltB,MAAM6sB,QACxB,KAEC7sB,MAAM+pB,SAAW/pB,MAAM+pB,QAAQjoD,QAC/B5E,KAAKkwD,kBAAkBlwD,KAAK4sD,QAASsC,QAAS,2BAElD10C,QAAQH,KACJ,yDAA2D60C,SAIvEf,cAAce,SACV,IAAIpsB,MAAQ9iC,KAAKyvD,aAAaP,SAC1BpsB,OACA9iC,KAAK+qD,OAAOe,KAAKhpB,MAAMmrB,WAAanrB,MAAM6sB,MAE1C7C,EAAE7tD,QAAQ6jC,MAAMsrB,aAAcC,KAC1B,IAAKA,GAAGE,aACHF,GAAGE,WAAW3pD,QACf5E,KAAKmrD,kBAAkBgF,gBAAgB9B,GAAGE,WAAYvuD,KAAK+qD,QAC7D,CACE,MAAM7nD,MAAQlD,KAAKmrD,kBAAkBiF,gBACjC/B,GAAGC,gBACHtuD,KAAK+qD,OACLsD,GAAGgC,uBAIHntD,OACgB,iBAATA,OACP4/B,MAAMkqB,SAASsD,gBACdxtB,MAAMytB,YAEPztB,MAAM6sB,MAAQzsD,MAAMsB,MAAM,KACzBs+B,MAAM6sB,MAAQzsD,MAEnBlD,KAAK+qD,OAAOe,KAAKhpB,MAAMmrB,WAAanrB,MAAM6sB,WAIlDn1C,QAAQH,KACJ,oDAAsD60C,SAIlEsB,kBAAkBtB,SACd,IAAIpsB,MAAQ9iC,KAAKyvD,aAAaP,SAC1BpsB,OACKA,MAAMkqB,SAASyD,iCACf3tB,MAAM4tB,SACP5tB,MAAM6sB,OAIE7sB,MAAMkqB,SAASyD,iCACvB3tB,MAAM4tB,QACN5tB,MAAM6tB,cAEN7tB,MAAM6sB,MAAQ7C,EAAEt1B,MAAMsL,MAAM6tB,oBACrB7tB,MAAM6tB,cAPb7tB,MAAM6tB,YAAc7D,EAAEt1B,MAAMsL,MAAM6sB,cAC3B7sB,MAAM6sB,OASjB3vD,KAAK+qD,OAAOe,KAAKhpB,MAAMmrB,WAAanrB,MAAM6sB,OAE1Cn1C,QAAQH,KACJ,wDAA0D60C,SAItEP,cAAcO,SACV,IAAIpsB,MAAQ9iC,KAAKyvD,aAAaP,SAC1BpsB,MACIA,MAAM8rB,gBAAkB9rB,MAAM8rB,eAAehqD,SAC7Ck+B,MAAM4tB,OAAS1wD,KAAKmrD,kBAAkBgF,gBAClCrtB,MAAM8rB,eACN5uD,KAAK+qD,SAIbvwC,QAAQH,KACJ,oDAAsD60C,SAIlEC,mBAAmBD,QAAS0B,WACxB,IAAI9tB,MAAQ9iC,KAAKyvD,aAAaP,SAC9B,GAAIpsB,OAASA,MAAM2rB,WAAY,CAC3B,IAAIoC,WAAa/D,EAAEt1B,MAAMsL,MAAM2rB,YAE/B,GAAuB,KAAnBoC,WAAWC,KACX9wD,KAAKkrD,WAAWkB,KAAK,SAAU,qBAAsB,CAC7CD,SAAUnsD,KAAKL,OAAOwqD,SACtBkC,aAAcrsD,KAAK+qD,OAAOU,aAC1BsC,QAASmB,QACT6B,UAAWH,WAAa,EACxBI,SAAUhxD,KAAKmrD,kBAAkBiF,gBAAgBttB,MAAMkqB,SAASgE,SAAUhxD,KAAK+qD,QAC/Ee,KAAM9rD,KAAK+qD,OAAOe,KAClBQ,QAASvnD,SAAS04C,MAErBlN,MAAMhhB,OACHvvB,KAAK+qD,OAAOgB,MAAMx8B,KAAK0+B,WAAWQ,WAAal/B,KAAKk/B,mBAEzD,GAAuB,WAAnBoC,WAAWC,KAAmB,CACrC,MAAMG,SAAWnuB,MAAM2rB,WAAWyC,SAC5BhuD,MAAQlD,KAAKmrD,kBAAkBiF,gBAAgBa,SAAUjxD,KAAK+qD,QAEpEjoB,MAAM2rB,WAAa3rB,MAAM2rB,YAAc,GACvC3rB,MAAM2rB,WAAW0C,MAAQruB,MAAM2rB,WAAW0C,OAAS,GACnDruB,MAAM2rB,WAAW0C,MAAQjuD,YAG7BsX,QAAQH,KAAK,yDAA2D60C,SAIhFkC,wBAAwBlC,SACpB,IAAIpsB,MAAQ9iC,KAAKyvD,aAAaP,SAE9BlvD,KAAKsvC,UAAS,KACNxM,MAAM2rB,aAAe3rB,MAAMuuB,eAAerxD,KAAK+qD,OAAOkF,WAAW,2BAA2BntB,MAAMirB,UAAW,CAAEjrB,QACnHA,MAAMuuB,cAAgBvuB,MAAM2rB,aAC7B,KAGP6C,eACI,MAAMxhB,MAAQ9vC,KAAKqvC,GAAGS,QAEhBmD,OAAS6Z,EAAE5lD,OAAOlH,KAAKizC,QAAS7mC,IAC1BA,EAAE8hD,YAAc9hD,EAAEyjD,UAAY7vD,KAAKuxD,YAAYnlD,KAS3D,OANApM,KAAK+vD,eAAe9c,QAAQ1C,MAAMt4B,UAC9BjY,KAAK+qD,OAAOe,KAAK0F,SAAWv5C,QAE5B63B,MAAM16B,QAAQ6C,YAGX63B,MAAMC,QAGjB0hB,cAAcnK,OAAQxX,OAGlB,GAFKA,QAAOA,MAAQ9vC,KAAKqvC,GAAGS,SAEvBwX,OAAO1iD,OAEL,CACH,MAAM8sD,SAAWpK,OAAO,GACxBtnD,KAAK2xD,aAAaD,UAAUnhB,MAAK,KAC7B+W,OAAOnkB,QACPnjC,KAAKyxD,cAAcnK,OAAQxX,eAL/BA,MAAM16B,UASV,OAAO06B,MAAMC,QAGjB4hB,aAAaD,UACT,MAAM5hB,MAAQ9vC,KAAKqvC,GAAGS,QAEtB,IAAImD,OAAS6Z,EAAE5lD,OAAOlH,KAAKizC,QAAS7mC,GACzBA,EAAEwlD,UAAYF,UAAY1xD,KAAKuxD,YAAYnlD,KAgBtD,OAbA0gD,EAAE5lD,OAAO+rC,QAAS7mC,GACPA,EAAEyjD,UACV7pD,KAAK81C,IACJ7I,OAASA,OAAOz+B,OAAOxU,KAAK8vD,eAAehU,OAG/C97C,KAAK+vD,eAAe9c,QAAQ1C,MAAMt4B,UAC9BjY,KAAK+qD,OAAOiB,KAAK0F,UAAY1xD,KAAK+qD,OAAOiB,KAAK0F,WAAa,GAC3D1xD,KAAK+qD,OAAOiB,KAAK0F,UAAUG,QAAU55C,QAErC63B,MAAM16B,QAAQ6C,YAGX63B,MAAMC,QAGjB+hB,eAAexK,OAAQxX,OAGnB,GAFKA,QAAOA,MAAQ9vC,KAAKqvC,GAAGS,SAEvBwX,OAAO1iD,OAEL,CACH,MAAMmtD,MAAQ/xD,KAAKyvD,aAAanI,OAAO,IACvCtnD,KAAKgyD,cAAcD,OAAOxhB,MAAK,KAC3B+W,OAAOnkB,QACPnjC,KAAK8xD,eAAexK,OAAQxX,eALhCA,MAAM16B,UASV,OAAO06B,MAAMC,QAGjBiiB,cAAcD,OACV,MAAMjiB,MAAQ9vC,KAAKqvC,GAAGS,QAEhBmD,OAAU8e,MAAMlC,QAAoB7vD,KAAK8vD,eAAeiC,OAA9B,CAACA,OAOjC,OANA/xD,KAAK+vD,eAAe9c,QAAQ1C,MAAMt4B,UAC9B85C,MAAMF,QAAU55C,QAEhB63B,MAAM16B,QAAQ6C,YAGX63B,MAAMC,QAGjBggB,eAAezI,OAAQxX,MAAOmiB,YAG1B,GAFKniB,QAAOA,MAAQ9vC,KAAKqvC,GAAGS,SAEvBwX,OAAO1iD,OAEL,CACH,MAAMk+B,MAAQwkB,OAAO,GACrBtnD,KAAKkyD,cAAcpvB,OAAOyN,MAAMt4B,UACvBA,SAASuC,QAAQkvC,IAAI5mB,OAC1BwkB,OAAOnkB,QACPnjC,KAAK+vD,eAAezI,OAAQxX,OAAQ73B,SAAiBg6C,oBANzDniB,MAAM16B,SAAS68C,YAUnB,OAAOniB,MAAMC,QAGjBmiB,cAAcpvB,OACV,MAAMgN,MAAQ9vC,KAAKqvC,GAAGS,QAoCtB,OAlCAhN,MAAMqvB,mBAAoB,EAC1BrvB,MAAM8sB,YAAa,EACnB9sB,MAAMsvB,WAAY,EAEbtvB,MAAMorB,YAAeprB,MAAMkqB,SAASqF,iBAG9BvvB,MAAMkqB,SAASqF,iBACtBryD,KAAKgrD,mBACDhrD,KAAK+qD,OACLjoB,MAAMkqB,SAASqF,kBACjB9hB,MAAMt4B,UACJ6qB,MAAM+uB,QAAU55C,SAAWjY,KAAKsyD,+BAA+BxvB,OAC/DA,MAAMyvB,eAAiBzvB,MAAM+uB,QAE7B/hB,MAAM16B,QAAQ0tB,MAAM+uB,YAEjB/uB,MAAM0vB,YACb1vB,MAAM+uB,UACc,OAAhB/uB,MAAM6sB,YACUnhD,IAAhBs0B,MAAM6sB,OACU,KAAhB7sB,MAAM6sB,OAGV7sB,MAAM+uB,QAAU/uB,MAAM+uB,SAAW7xD,KAAKsyD,+BAA+BxvB,OACrEA,MAAMyvB,eAAiBzvB,MAAM+uB,QAE7B/hB,MAAM16B,QAAQ0tB,MAAM+uB,WAEpB/uB,MAAM+uB,QAAU7xD,KAAKsyD,+BAA+BxvB,OAEpDgN,MAAM16B,QAAQ0tB,MAAM+uB,WA1BpB/uB,MAAM+uB,SAAU,EAChB/hB,MAAM16B,QAAQ0tB,MAAM+uB,UA4BjB/hB,MAAMC,QAGjBuiB,+BAA+BxvB,OAC3B,GAAIA,MAAM6sB,OAAS7sB,MAAMkqB,UAAYlqB,MAAMkqB,SAASyF,kBAChD,IACI3vB,MAAM+uB,QAAU,IAAIz2C,OAAO0nB,MAAMkqB,SAASyF,mBAAmBhyD,KACzDqiC,MAAM6sB,OAEZ,MAAOzqD,GACL49B,MAAM+uB,SAAU,OAEjB/uB,MAAM+uB,SAAU,EAEvB,OAAO/uB,MAAM+uB,QAGjBN,YAAYzuB,OACR,OAAOA,MAAM4tB,QAAUnD,EAAE,iBAAiBzqB,MAAMmrB,eAAerpD,OAMnE8tD,WAAWC,WAAY7e,OAAQ8e,oBAC3B,MAAM9iB,MAAQ9vC,KAAKqvC,GAAGS,QActB,OAZA9vC,KAAKorD,cAAcyH,iBACfF,WACA7e,OACA9zC,KAAK4sD,QACL5sD,KAAK+qD,OACL6H,oBACFriB,MAAMhhB,OACJugB,MAAM16B,QAAQma,SACdqf,QACAkB,MAAMe,OAAOjC,UAGVkB,MAAMC,QAGjB+iB,iBAAiBH,WAAY7e,OAAQ8e,oBACjC,MAAM9iB,MAAQ9vC,KAAKqvC,GAAGS,QActB,OAZA9vC,KAAKorD,cAAc2H,uBACfJ,WACA7e,OACA9zC,KAAK4sD,QACL5sD,KAAK+qD,OACL6H,oBACFriB,MAAMhhB,OACJugB,MAAM16B,QAAQma,SACdqf,QACAkB,MAAMe,OAAOjC,UAGVkB,MAAMC,QAGjBijB,qBAAqBC,SAAUnf,OAAQ8e,oBACnC9F,EAAE5lD,OAAOlH,KAAK4sD,SAAUG,QACbA,OAAOmG,UAAYD,WAC3BjtD,KAAK+mD,QACG/sD,KAAK0yD,WAAW3F,OAAOoG,WAAYrf,OAAQ8e,sBAI1DQ,mBAAmBzrD,OAAQ0rD,UAAWC,kBAAmBC,QACrD,IAAIpJ,SACA+E,QACAtC,QAeJ,OAZIA,QADA0G,kBACUtzD,KAAK4sD,QAELE,EAAE5lD,OAAOlH,KAAK4sD,SAAU9/C,IAAgBA,EAAEkiD,eAE1C,UAAVrnD,SACAwiD,SAAWoJ,QAAkBvzD,KAAKL,OAAOwqD,UAG/B,SAAVxiD,SACAunD,QAAUqE,QAGPvzD,KAAKorD,cAAc6D,YACtBrC,QACAzC,SACA+E,QACAmE,UACArzD,KAAK+qD,QAIbmF,kBAAkBtD,QAASsC,QAASmE,WAChC,MAAMvjB,MAAQ9vC,KAAKqvC,GAAGS,QAYtB,OAVA9vC,KAAKorD,cAAc6D,YACfrC,QACA5sD,KAAKL,OAAOwqD,SACZ+E,QACAmE,UACArzD,KAAK+qD,QACPxa,MAAK,KACHT,MAAM16B,aAGH06B,MAAMC,QAMjBie,cAAcwF,WAAY99C,YAAao+B,QACnC,IAAK0f,YAAmC,iBAAdA,aAA2B99C,SAAU,OAE/D,MAAM2hB,QAAUm8B,WAAW5rD,MAAM,oCACjCklD,EAAE7tD,QAAQo4B,SAAUzvB,QAChB,MAAM6rD,aAAe7rD,MACf8rD,MAAQ5G,EAAE6G,KAAK3zD,KAAKisD,SAAUt+C,GACzBA,EAAE0sB,UAAYo5B,eAEpBC,MASDA,MAAME,UAAU7wD,KAAK,CACjB2S,SACAo+B,SAVJ9zC,KAAKisD,QAAQlpD,KAAK,CACds3B,SAAUo5B,aACVG,UAAW,CAAC,CACRl+C,SACAo+B,cAYpBgb,eACIhC,EAAE7tD,QAAQe,KAAKisD,SAAUt+C,IACrB3N,KAAK+qD,OAAOrR,OAAO/rC,EAAE0sB,UAAU,KACvByyB,EAAE7tD,QAAQ0O,EAAEimD,WAAYh5B,OACc,mBAAvB56B,KAAK46B,KAAKllB,WACjB1V,KAAK46B,KAAKllB,UAAUhF,MAAM1Q,KAAM46B,KAAKkZ,cAGjD,MAKZ2b,aAAaP,SAIT,OAHcpC,EAAE6G,KAAK3zD,KAAKizC,QAAS7mC,GACxBA,EAAE2hD,SAAWmB,UAK5B2E,eAAeC,WAIX,OAHchH,EAAE6G,KAAK3zD,KAAKizC,QAAS7mC,GACxBA,EAAE6hD,WAAa6F,YAK9BhE,eAAehtB,OACX,IAAImQ,OAAS,GAEb,MAAM8gB,iBAAoBhC,QACtB,MAAMiC,OAASlH,EAAE5lD,OAAOlH,KAAKizC,QAAS7mC,GAC3BA,EAAE6nD,UAAYlC,MAAMhE,SAAW/tD,KAAKuxD,YAAYnlD,KAG3D6mC,OAASA,OAAOz+B,OAAOw/C,QAEvBlH,EAAE5lD,OAAO8sD,QAAS5nD,GACPA,EAAEyjD,UACV7pD,KAAK81C,IACJiY,iBAAiBjY,OAMzB,OAFAiY,iBAAiBjxB,OAEVmQ,gGCppBZ,SAASihB,eAAe5kB,UAC3B,MAAO,CACHyM,SAAU,IACVE,KAAM,CAAClI,MAAOiG,QAAS74C,SACnBmuC,UAAS,KACL,IACI,MAAMxM,MAAQiR,MAAMgY,MAAM5qD,MAAM2hC,OAC1BqxB,cAAgBzG,KAAK,GAAG5qB,MAAMsxB,uBAC9BC,gBAAkB,IAAIF,cACxBrxB,MACAiR,MACAA,MAAMuX,iBACNtR,SAEuC,mBAAhC0T,KAAK,0BACZ2G,gBAAgBC,OAChBxxB,MAAMyxB,QAAS,GAErB,MAAOrvD,GACLsV,QAAQkvC,IAAI,cAAcxkD,EAAEujC,gBAIxCriC,SAAS,6PCvBV,MAAMouD,cACT1J,YACIxb,SACAD,GACAsE,SACAwP,QACA8H,cACAC,WACAC,mBAEAnrD,KAAKsvC,SAAWA,SAChBtvC,KAAKqvC,GAAKA,GACVrvC,KAAK2zC,SAAWA,SAChB3zC,KAAKmjD,QAAUA,QACfnjD,KAAKirD,cAAgBA,cACrBjrD,KAAKkrD,WAAaA,WAClBlrD,KAAKmrD,kBAAoBA,kBAG7B8D,YAAYrC,QAASzC,SAAU+E,QAASmE,UAAWtI,QAC/C,MAAMjb,MAAQ9vC,KAAKqvC,GAAGS,QAEtB,IAAIwX,OAAStnD,KAAKy0D,aAAa,GAAI7H,QAASzC,SAAU+E,QAASmE,WAQ/D,OANArzD,KAAK00D,qBAAqBpN,OAAQxX,MAAOib,QAAQxa,MAAMhhB,OACnDugB,MAAM16B,QAAQma,SACdqf,QACAkB,MAAM16B,QAAQw5B,UAGXkB,MAAMC,QAGjB8iB,iBAAiBF,WAAY7e,OAAQ8Y,QAAS7B,OAAQ6H,oBAClD,MAAM9iB,MAAQ9vC,KAAKqvC,GAAGS,QAEhBid,OAASD,EAAE6G,KAAK/G,SAAU9/C,GACrBA,EAAEqmD,YAAcR,aAG3B5F,OAAO4H,OAAS5H,OAAO4H,QAAU,GAEZ,iBAAV7gB,QACPgZ,EAAEwC,OAAOxb,QAAQ,CAAC5wC,MAAOC,OACrB,IAAIyxD,MAAQ9H,EAAE6G,KAAK5G,OAAO4H,QAASziD,GACxBA,EAAE2iD,WAAa1xD,MAEtByxD,MAAOA,MAAME,WAAa5xD,MACzB6pD,OAAO4H,OAAO5xD,KAAK,CAAE8xD,UAAW1xD,IAAK2xD,WAAY5xD,WAI9D,MAAM+vD,SAAWlG,OAAOmG,SAExB,IAAIrxD,KAAO,CACPkzD,OAAQhI,OACRiI,iBAAkB,GAClBC,eAAgB,GAChBC,aAAc,IAGlB,IAAKtC,mBAAoB,CACrB,IAAIuC,iBAAmBn1D,KAAKo1D,gBAAgB,GAAIxI,QAASqG,SAAU,GAC/DkC,iBAAiBvwD,SAAQ/C,KAAKmzD,iBAAmBG,kBACrD,IAAIE,eAAiBr1D,KAAKo1D,gBAAgB,GAAIxI,QAASqG,SAAU,GAC7DoC,eAAezwD,SAAQ/C,KAAKozD,eAAiBI,gBACjD,IAAIC,aAAet1D,KAAKo1D,gBAAgB,GAAIxI,QAASqG,SAAU,GAC3DqC,aAAa1wD,SAAQ/C,KAAKqzD,aAAeI,cASjD,OANAt1D,KAAK00D,qBAAqB,CAAC7yD,MAAOiuC,MAAOib,QAAQxa,MAAMhhB,OACnDugB,MAAM16B,QAAQma,SACdqf,QACAkB,MAAMe,OAAOjC,UAGVkB,MAAMC,QAGjB0kB,aAAanN,OAAQiO,cAAepL,SAAU+E,QAASmE,WACnD,MAAMzG,QAAUE,EAAE5lD,OAAOquD,eAAgBxI,QAEjCA,OAAOZ,UAAYhC,YACjB+E,SAAWnC,OAAOgB,SAAWmB,UAC/BnC,OAAOyI,OAASnC,YAmBxB,OAfAvG,EAAE7tD,QAAQ2tD,SAAUG,SAChB,IAAIlrD,KAAO,CACPkzD,OAAQhI,OACRiI,iBAAkB,GAClBC,eAAgB,GAChBC,aAAc,IAGlBl1D,KAAKo1D,gBAAgBvzD,KAAKmzD,iBAAkBO,cAAexI,OAAOmG,SAAU,GAC5ElzD,KAAKo1D,gBAAgBvzD,KAAKozD,eAAgBM,cAAexI,OAAOmG,SAAU,GAC1ElzD,KAAKo1D,gBAAgBvzD,KAAKqzD,aAAcK,cAAexI,OAAOmG,SAAU,GAExE5L,OAAOvkD,KAAKlB,SAGTylD,OAGXmO,yBAAyBF,cAAexI,QACpC,IAAIzF,OAAS,GAETzlD,KAAO,CACPkzD,OAAQhI,OACRiI,iBAAkB,GAClBC,eAAgB,GAChBC,aAAc,IASlB,OANAl1D,KAAKo1D,gBAAgBvzD,KAAKmzD,iBAAkBO,cAAexI,OAAOmG,SAAU,GAC5ElzD,KAAKo1D,gBAAgBvzD,KAAKozD,eAAgBM,cAAexI,OAAOmG,SAAU,GAC1ElzD,KAAKo1D,gBAAgBvzD,KAAKqzD,aAAcK,cAAexI,OAAOmG,SAAU,GAExE5L,OAAOvkD,KAAKlB,MAELylD,OAGX8N,gBAAgB9N,OAAQiO,cAAeG,SAAUC,oBAC7C,MAAM/I,QAAUE,EAAE5lD,OAAOquD,eAAgBxI,QAEjB,qBAAhBA,OAAOyI,OACPzI,OAAOkH,UAAYyB,UACnB3I,OAAO6I,oBAAsBD,qBAwBrC,OApBA7I,EAAE7tD,QAAQ2tD,SAAUG,SAChB,IAAIlrD,KAAO,CACPkzD,OAAQhI,OACRiI,iBAAkB,GAClBC,eAAgB,GAChBC,aAAc,IAGlBl1D,KAAKo1D,gBACDvzD,KAAKmzD,iBACLO,cACAxI,OAAOmG,SACP,GAEJlzD,KAAKo1D,gBAAgBvzD,KAAKozD,eAAgBM,cAAexI,OAAOmG,SAAU,GAC1ElzD,KAAKo1D,gBAAgBvzD,KAAKqzD,aAAcK,cAAexI,OAAOmG,SAAU,GAExE5L,OAAOvkD,KAAKlB,SAGTylD,OAGXoN,qBAAqBpN,OAAQxX,MAAOib,QAChC,IAAKzD,SAAWA,OAAO1iD,OAEnB,OADAkrC,MAAM16B,UACC06B,MAAMC,QAGjB,IAAIluC,KAAOylD,OAAO,GACdyF,OAASlrD,KAAKkzD,OA6BlB,OA3BA/0D,KAAK0yD,WAAW3F,OAAQhC,QAAQxa,MAAMhhB,OAC1B,GAAIA,MAAQA,KAAKsmC,kBAEb,OADA/lB,MAAM16B,UACC06B,MAAMC,QAEbluC,KAAKozD,eAAerwD,OACpB5E,KAAK00D,qBAAqB7yD,KAAKozD,eAAgBnlB,MAAOib,QAEtDjb,MAAM16B,QAAQma,SAErBqf,QACO/sC,KAAKqzD,aAAatwD,OAClB5E,KAAK00D,qBAAqB7yD,KAAKqzD,aAAcplB,MAAOib,QAEpDjb,MAAMe,OAAOjC,UAGxBknB,SAASvmC,OACF1tB,KAAKmzD,iBAAiBpwD,OACtB5E,KAAK00D,qBAAqB7yD,KAAKmzD,iBAAkBllB,MAAOib,QAExDjb,MAAM16B,QAAQma,MAElB+3B,OAAOnkB,QACPnjC,KAAK00D,qBAAqBpN,OAAQxX,MAAOib,WAG1Cjb,MAAMC,QAGjB2iB,WAAW3F,OAAQhC,QACf,MAAMjb,MAAQ9vC,KAAKqvC,GAAGS,QAEtBid,OAAOjB,KAAOf,OAAOe,KACrBiB,OAAOhB,MAAQhB,OAAOgB,MACtBgB,OAAOT,QAAUvnD,SAAS04C,IAE1B,IAAIsY,aAAehJ,OAAOiC,aAAehvD,KAAK8yD,iBAAmB9yD,KAAKg2D,iBAElEliB,OAASgZ,EAAEmJ,UAAUlJ,OAAO4H,QAChC,GAAK5H,OAAOmJ,6BA2BRl2D,KAAKm2D,aAAapJ,OAAQjZ,OAAQiX,QAAQxa,MAAMhhB,OACvCw9B,OAAOiC,cACRhvD,KAAKo2D,qBAAqBtiB,OAAQiX,QAGtB/qD,KAAKmrD,kBAAkBgF,gBAAgBpD,OAAOwB,WAAYxD,QAEtEgL,aAAarlD,MAAM1Q,KAAM,CAAC+qD,OAAQgC,OAAQjZ,SAASvD,MAAMhhB,OACrDvvB,KAAKq2D,cAActJ,OAAQjZ,OAAQiX,QAAQxa,MAAK,KAC5CT,MAAM16B,QAAQma,YAElBqf,QACA5uC,KAAKs2D,iBAAiBvJ,OAAQne,MAAOmc,QACrCjb,MAAMe,OAAOjC,UAGjBkB,MAAM16B,QAAQ,CAAEygD,mBAAmB,WA3CL,CAEtB71D,KAAKmrD,kBAAkBgF,gBAAgBpD,OAAOwB,WAAYxD,QAGtE/qD,KAAKm2D,aAAapJ,OAAQjZ,OAAQiX,QAAQxa,MAAMhhB,OACvCw9B,OAAOiC,cAERhvD,KAAKo2D,qBAAqBtiB,OAAQiX,QAItCgL,aAAarlD,MAAM1Q,KAAM,CAAC+qD,OAAQgC,OAAQjZ,SAASvD,MAAMhhB,OAEjDvvB,KAAKq2D,cAActJ,OAAQjZ,OAAQiX,QAAQxa,MAAK,KAC5CT,MAAM16B,QAAQma,YAGrBqf,QACGkB,MAAMe,OAAOjC,aAKzBkB,MAAM16B,QAAQ,CAAEygD,mBAAmB,IAwB3C,OAAO/lB,MAAMC,QAGjBimB,iBAAiBjL,OAAQgC,OAAQjZ,QAC7B,MAAMhE,MAAQ9vC,KAAKqvC,GAAGS,QAEtB,IACI,MAAMymB,eAAiB7I,KAAK,GAAGX,OAAOyJ,8BAChCC,iBAAmB,IAAIF,eAAev2D,KAAM+qD,QAClD,GAA+C,mBAApC2C,KAAK,4BAWZ,MAAM,IAAI14C,MAAM,IAVhByhD,iBAAiBC,QAAQ3J,OAAQjZ,OAAQhE,OAAOS,MAAMhhB,OAElDvvB,KAAKs2D,iBAAiBvJ,OAAQx9B,KAAMw7B,QAEpCjb,MAAM16B,QAAQma,SACdqf,QACA5uC,KAAKs2D,iBAAiBvJ,OAAQne,MAAOmc,QACrCjb,MAAMe,OAAOjC,MAAMrf,SAK7B,MAAOqf,OACLp0B,QAAQo0B,MAAM,qCAEdkB,MAAMe,OAAO,CAAEjC,MAAO,sCAG1B,OAAOkB,MAAMC,QAGjB+iB,iBAAiB/H,OAAQgC,QACrB,MAAMjd,MAAQ9vC,KAAKqvC,GAAGS,QAuBtB,OArBA9vC,KAAKkrD,WAAWkB,KAAK,SAAU,aAAc,CACzC8G,SAAUnG,OAAOmG,SACjB/G,SAAUY,OAAOZ,SACjBE,aAActB,OAAOU,aACrBK,KAAMf,OAAOe,KACbC,MAAOhB,OAAOgB,MACdO,QAASvnD,SAAS04C,MACnBlN,MAAMhhB,OACGA,OACAvvB,KAAKirD,cAAc6C,eAAev+B,MAElCvvB,KAAKqtD,gBAAgB99B,KAAMw7B,SAG/Bjb,MAAM16B,QAAQma,SAEjBqf,QACGkB,MAAMe,OAAOjC,MAAMrf,SAIpBugB,MAAMC,QAGjBsd,gBAAgBgC,cAAetE,QAC3B+B,EAAEwC,OAAOD,eAAe,CAACnsD,MAAOC,OACjB,SAAPA,MASI4nD,OAAO5nD,KACPD,OAAyB,iBAATA,QAAoB6nD,OAAO5nD,KAAO,IAAI4nD,OAAO5nD,QAASD,QAEtE6nD,OAAO5nD,KAAOD,UAK9BkzD,qBAAqBO,aAAc5L,QAC/B+B,EAAE7tD,QAAQ03D,cAAe/7B,OACrBA,KAAKk6B,WAAa90D,KAAKmrD,kBAAkBiF,gBACrCx1B,KAAKk6B,WACL/J,WAKZuL,iBAAiBvJ,OAAQx9B,KAAMw7B,QAC3B+B,EAAE7tD,QAAQ8tD,OAAO6J,SAAUh8B,OACvB,MAAM13B,MAAQlD,KAAK62D,0BACfj8B,KAAKi0B,gBACLt/B,KACAw7B,OACAnwB,KAAKy1B,uBAGTrwD,KAAKmrD,kBAAkB2L,iBACnBl8B,KAAK4zB,eACLzD,OACA7nD,UAKZ2zD,0BAA0BrD,WAAYjkC,KAAMw7B,OAAQgM,uBAGhD,MAAMnvD,MAAQ,uCAAuCgI,KAAK4jD,YAM1D,OALI5rD,MACI4rD,YAAc5rD,MAAM,IAAOA,MAAM,GACvBklD,EAAE9nC,IAAIuK,KAAM3nB,MAAM,IADkB2nB,KAEtCvvB,KAAKmrD,kBAAkBiF,gBAAgBoD,WAAYzI,OAAQgM,uBAK/EZ,aAAapJ,OAAQjZ,OAAQiX,QACzB,MAAMjb,MAAQ9vC,KAAKqvC,GAAGS,QAEtB,OAAIid,OAAOiK,aACAh3D,KAAKi3D,UACRlM,OACAgC,OACAjZ,OACAiZ,OAAOmK,UACP,eAEHpnB,MAAM16B,UAEJ06B,MAAMC,SAGjBsmB,cAActJ,OAAQjZ,OAAQiX,QAC1B,MAAMjb,MAAQ9vC,KAAKqvC,GAAGS,QAEtB,OAAIid,OAAOoK,cACAn3D,KAAKi3D,UACRlM,OACAgC,OACAjZ,OACAiZ,OAAOqK,WACP,gBAEHtnB,MAAM16B,UAEJ06B,MAAMC,SAGjBknB,UAAUlM,OAAQgC,OAAQjZ,OAAQujB,aAAc3tB,MAC5C,MAAMoG,MAAQ9vC,KAAKqvC,GAAGS,QAChB6iB,WAAajpB,KAAOqjB,OAAOoG,WAEjCkE,aAAeA,cAAgB,GAE/B,IAAIC,UAAY,YAAY3E,2LAIlB0E,sLAUNA,aAAalnD,QAAQ,oBAAsB,IAC3CmnD,UAAYA,UAAUlxD,QAAQ,kBAAmB,KACrDkxD,UAAYA,UAAUlxD,QAAQ,kBAAmB,mBAEjD,IAAImxD,UAAYxyD,SAASonC,cAAc,UACvCorB,UAAU31D,UAAY01D,UACtB/J,EAAE,QAAQxiB,OAAOwsB,WAEjB,IAAIC,YAAc,GAClB1K,EAAE9mD,IAAI+mD,OAAO4H,QAASC,QAClB,IAAI6C,YAAc3K,EAAE6G,KAAK7f,QAAS5hC,GACvBA,EAAE2iD,WAAaD,MAAMC,YAEhC2C,YAAY5C,MAAMC,WAAc4C,YAE5B7C,MAAME,WADN2C,YAAY3C,cAIpB,MAAMyB,eAAiB7I,KAAK,GAAGiF,8BAU/B,OATA,IAAI4D,eACAxL,OACAA,OAAOO,iBACPyB,OACAyK,aACFjnB,MAAMhhB,OACJugB,MAAM16B,aAGH06B,MAAMC,0PC/bd,MAAM2nB,kBACT5M,YAAY6M,QAAS1M,eACjBjrD,KAAK23D,QAAUA,QACf33D,KAAKirD,cAAgBA,cAGzBkF,gBAAgByH,WAAY7M,OAAQ8M,iBAChC,IAAKD,aAAeA,WAAWhzD,OAAQ,OAAO,EAE9C,IAAIkzD,WAAY,EAEZC,OAASjL,EAAEkL,QAAQJ,WAAY,aACnC,IAAK,IAAIz0D,OAAO40D,OAAQ,CACpB,IAAIE,UAAW,EAuBf,GAtBAnL,EAAE7tD,QAAQ84D,OAAO50D,MAAO6J,IACpB,MAAMkrD,UAAYl4D,KAAKowD,gBACnBpjD,EAAEwhD,eACFzD,OACA,GACA8M,iBAEEM,WAAan4D,KAAKowD,gBACpBpjD,EAAE6hD,gBACF9D,OACA,GACA8M,iBAGEO,cAAgBp4D,KAAKq4D,cACvBH,UACAC,WACAnrD,EAAEsrD,WAGDL,UAAYG,gBAAeH,UAAW,OAE1CA,SAAU,CACXH,WAAY,EACZ,OAIR,OAAOA,UAGX1H,gBAAgBoD,WAAYzI,OAAQgM,sBAAuBc,gBAAiBU,iBAAkBC,kBAC1F,GAAyB,iBAAdhF,WAAwB,OAAOA,WAE1C,IAAIiF,iBAAkB,EAEG,iBAAdjF,aAIPn8B,QAAUm8B,WAAW5rD,MAAM,uBAC3BklD,EAAE7tD,QAAQo4B,SAAU1sB,IAChB,MAAM/C,MAAQ,wBAAwBgI,KAAKjF,GACrC8oD,aAAe7rD,MAAM,GACrB8wD,UAAY9wD,MAAM,GAClB1E,MAAQlD,KAAKirD,cAAc0N,mBAAmBD,YAAc,GAElElF,WAAaA,WAAWptD,QAAQqtD,aAAcvwD,OAE9Cu1D,iBAAkB,KAMtBphC,QAAUm8B,WAAW5rD,MAAM,2BAC3BklD,EAAE7tD,QAAQo4B,SAAU1sB,IAChB,MAAM/C,MAAQ,0BAA0BgI,KAAKjF,GACvC8oD,aAAe7rD,MAAM,GAErB1E,MAAwB,UADT0E,MAAM,GACc,+DAAwB,GAEjE4rD,WAAaA,WAAWptD,QAAQqtD,aAAcvwD,OAE9Cu1D,iBAAkB,MAO1BF,iBAAmBA,kBAAoB,GACvC,MAAM/L,UAAYzB,OAAOyB,UACzB,IAAIn1B,QAAUm8B,WAAW5rD,MAAM,oCA+B/B,GA9BAklD,EAAE7tD,QAAQo4B,SAAU1sB,IAChB,MAAM/C,MAAQ,oCAAoCgI,KAAKjF,GACjD8oD,aAAe7rD,MAAM,GACrBgxD,aAAehxD,MAAM,GAE3B,KAAI2wD,iBAAiBpoD,QAAQsjD,eAAiB,KAGzCoE,kBACI/K,EAAE+L,IAAI9N,OAAQ6N,eAAiB9L,EAAE9nC,IAAI+lC,OAAQ6N,gBAClD9L,EAAE5lD,OAAOslD,WAAYnU,GACVA,EAAEqU,cAAgBkM,eAC1Bh0D,QACL,CACE,IAAI1B,MAAQ4pD,EAAE9nC,IAAI+lC,OAAQ0I,cACrBsD,uBAAyB,MAAC7zD,QAC3BA,MAAQ,IAGRswD,WADgB,iBAATtwD,OAAqBswD,YAAcC,aAC7BvwD,MAGAswD,WAAWptD,QAAQqtD,aAAcvwD,OAElDu1D,gBAAkBjF,YAAcC,aAEhC8E,iBAAiBx1D,KAAK0wD,kBAIyB,aAAzBsD,sBAC1B,IACIvD,WAAa9F,KAAK8F,YACpB,MAAOtuD,GACLsV,QAAQH,KAAKnV,GAIrB,OAAQszD,kBACHC,gBACGz4D,KAAKowD,gBAAgBoD,WAAYzI,OAAQgM,sBAAuBc,gBAAiBU,iBAAkBC,kBAFhFhF,WAK/BsD,iBAAiBtD,WAAYzI,OAAQ7nD,OACjC,MAAMspD,UAAYzB,OAAOyB,UACzB,IAAIn1B,QAAUm8B,WAAW5rD,MAAM,gCAC/BklD,EAAE7tD,QAAQo4B,SAAU1sB,IAChB,MAAM/C,MAAQ,+BAA+BgI,KAAKjF,GAC5C8oD,aAAe7rD,MAAM,GACrBgxD,aAAehxD,MAAM,GAGvBklD,EAAE5lD,OAAOslD,WAAYnU,GACVA,EAAEqU,cAAgBkM,eAC1Bh0D,QAEHkoD,EAAE7xC,IAAI8vC,OAAQ0I,aAAcvwD,UAKxCm1D,cAAcH,UAAWC,WAAYW,UACjC,IAAIvpD,QAAS,EACb,OAAQupD,UACJ,IAAK,IACDvpD,OAASu9C,EAAEiM,QAAQb,UAAWC,YAC9B,MACJ,IAAK,KACD5oD,QAAUu9C,EAAEiM,QAAQb,UAAWC,YAC/B,MACJ,IAAK,KAEI5oD,OADAu9C,EAAE5tD,QAAQi5D,YACDrL,EAAEx3C,KAAK6iD,WAAYD,WADIpL,EAAEiM,QAAQb,UAAWC,YAE1D,MACJ,IAAK,SAEI5oD,OADAu9C,EAAE5tD,QAAQi5D,aACArL,EAAEx3C,KAAK6iD,WAAYD,YADIpL,EAAEiM,QAAQb,UAAWC,YAE3D,MACJ,IAAK,OACD5oD,OAASu9C,EAAE36C,SAASgmD,WAAYD,WAChC,MACJ,IAAK,WACD3oD,QAAUu9C,EAAE36C,SAASgmD,WAAYD,WACjC,MACJ,IAAK,IACGxvD,OAAOwvD,WAAWjgD,WAAavP,OAAOyvD,YAAYlgD,YAClD1I,OAAS7G,OAAOwvD,WAAaxvD,OAAOyvD,aAGnC5oD,OAFAgD,MAAM2lD,YAAe3lD,MAAM4lD,YAElBD,UAAYC,YADZD,WAAaC,WAE3B,MACJ,IAAK,KACGzvD,OAAOwvD,WAAWjgD,WAAavP,OAAOyvD,YAAYlgD,YAClD1I,OAAS7G,OAAOwvD,YAAcxvD,OAAOyvD,aAGpC5oD,OAFAgD,MAAM2lD,YAAe3lD,MAAM4lD,YAElBD,WAAaC,YADbD,YAAcC,WAE5B,MACJ,IAAK,IACGzvD,OAAOwvD,WAAWjgD,WAAavP,OAAOyvD,YAAYlgD,YAClD1I,OAAS7G,OAAOwvD,WAAaxvD,OAAOyvD,aAGnC5oD,OAFAgD,MAAM2lD,YAAe3lD,MAAM4lD,YAElBD,UAAYC,YADZD,WAAaC,WAE3B,MACJ,IAAK,KACGzvD,OAAOwvD,WAAWjgD,WAAavP,OAAOyvD,YAAYlgD,YAClD1I,OAAS7G,OAAOwvD,YAAcxvD,OAAOyvD,aAGpC5oD,OAFAgD,MAAM2lD,YAAe3lD,MAAM4lD,YAElBD,WAAaC,YADbD,YAAcC,WAE5B,MACJ,IAAK,WACD5oD,QAAUu9C,EAAEkM,QAAQd,WACpB,MACJ,IAAK,SACD3oD,OAASu9C,EAAEkM,QAAQd,WAI3B,OAAO3oD,qCClNf5P,OAAO8I,QAAU+iC,SCCbytB,yBAA2B,GAG/B,SAASnkD,oBAAoBokD,UAE5B,IAAIC,aAAeF,yBAAyBC,UAC5C,QAAqB1qD,IAAjB2qD,aACH,OAAOA,aAAa1wD,QAGrB,IAAI9I,OAASs5D,yBAAyBC,UAAY,CACjDtkD,GAAIskD,SACJvvB,QAAQ,EACRlhC,QAAS,IAUV,OANA2wD,oBAAoBF,UAAUryD,KAAKlH,OAAO8I,QAAS9I,OAAQA,OAAO8I,QAASqM,qBAG3EnV,OAAOgqC,QAAS,EAGThqC,OAAO8I,QCvBfqM,oBAAoBjJ,EAAKlM,SACxB,IAAIygC,OAASzgC,QAAUA,OAAO05D,WAC7B,IAAO15D,OAAiB,QACxB,IAAM,OAEP,OADAmV,oBAAoB/J,EAAEq1B,OAAQ,CAAEtzB,EAAGszB,SAC5BA,QCLRtrB,oBAAoB/J,EAAI,CAACtC,QAAS6wD,cACjC,IAAI,IAAIn2D,OAAOm2D,WACXxkD,oBAAoBC,EAAEukD,WAAYn2D,OAAS2R,oBAAoBC,EAAEtM,QAAStF,MAC5E2M,OAAO+3B,eAAep/B,QAAStF,IAAK,CAAEo2D,YAAY,EAAMv0C,IAAKs0C,WAAWn2D,QCJ3E2R,oBAAoBC,EAAI,CAACpQ,IAAK2U,OAAUxJ,OAAOtM,UAAUqS,eAAehP,KAAKlC,IAAK2U,MCAlFxE,oBAAoB0kD,IAAO75D,SAC1BA,OAAO85D,MAAQ,GACV95D,OAAO+5D,WAAU/5D,OAAO+5D,SAAW,IACjC/5D,sDCH6BmtD,2BCArC,MAAM,iCAA+BhuD,iJCE9B,SAASob,OAAOy/C,cAAeC,mBAClCD,cAAc7mC,SAAS6X,QAAQkvB,OAAO,oBAAsB,iBAE5DD,kBAAkBE,UAAU,CACxBC,SAAS,EACTC,aAAa,EACbC,cAAc,IARtB//C,OAAOggD,QAAU,CAAC,gBAAiB,oYC0CnC,MAAMC,IAAM,kCACA,0BAA2B,CAC/B,oBAAQ,MACR,iBACA,iBAEHjgD,OAAO,QACPta,SAAS,iBCjDP,MAAMw6D,cACXn6D,KAAKovC,IAMH,OAAO,SAASgrB,eAAe3wB,KAAMqhB,OAAQsI,WAC3C,IAAIiH,KAAO,CACTC,MAAO,GACPxqB,QAASV,GAAGmrB,OAIZC,KAAM,WACJ,OAAOz6D,KAAK06D,aACV16D,KAAK+vC,QAAQQ,KAAK7/B,MAAM1Q,KAAK+vC,QAASv6B,aAM1CklD,aAAc,SAASA,aAAa3qB,SAClC,GAAIA,UAAY/vC,KAAK+vC,QACnB,MAAM,IAAI/6B,MAAM,8BAQlB,OALA+6B,QAAUV,GAAGmrB,KAAKzqB,SAElB/vC,KAAK+vC,QAAU/vC,KAAK+vC,QAAQQ,MAAK,WAC/B,OAAOR,WAEF/vC,KAAK+vC,UAGZn1B,KAAOjF,MAAMnS,UAAUkQ,MAAM7M,KAAK2O,UAAW,GAC7CmlD,SAAW,CAACtH,UAAWiH,MAAM9lD,OAAOoG,MAC5BmwC,OAAO,IAAMrhB,MAAMh5B,MAAMq6C,OAAQ4P,UAC7C,OAAOL,KAAKvqB,QACTQ,MAAK,SAAUhhC,QACd,OAAO8/B,GAAGgG,IAAI,CAAEklB,MAAOD,KAAKC,MAAOhrD,YAEpCghC,MACC,SAAUhhB,MAIR,OAHaA,KAAKgrC,MAAMjlD,MAAK,SAAUiE,KACrC,OAAe,IAARA,OAEO81B,GAAGwB,OAAOthB,KAAKhgB,QAAUggB,KAAKhgB,UAEhD,SAAUq/B,OACR,OAAOS,GAAGwB,OAAOjC,cDAxBhvC,SAAS,gBCOP,MAAMg7D,aACX36D,KAAKo6D,gBACH,OAAO,SAASQ,cAAc9P,OAAQsI,WACpC,OAAOgH,eAAe3pD,MACpB1Q,KACA,CAAC,OAAQ+qD,OAAQsI,WAAW7+C,OAC1BmB,MAAMnS,UAAUkQ,MAAM7M,KAAK2O,UAAW,SDZ3C5V,SAAS,qBCmBP,MAAMk7D,kBACX76D,KAAKo6D,gBACH,OAAO,SAASrP,mBAAmBD,OAAQsI,WACzC,OAAOgH,eAAe3pD,MACpB1Q,KACA,CAAC,YAAa+qD,OAAQsI,WAAW7+C,OAC/BmB,MAAMnS,UAAUkQ,MAAM7M,KAAK2O,UAAW,SDxB3C25B,QAAQ,gBEpDN,MAAM4rB,cACTjQ,YAAY3H,QAAS7T,SAAUqoB,QAAStoB,IACpCrvC,KAAKmjD,QAAUA,QACfnjD,KAAKsvC,SAAWA,SAChBtvC,KAAK23D,QAAUA,QACf33D,KAAKqvC,GAAKA,GAGd2rB,aAAanzD,IAAKozD,uBACd,IAAInnB,OAAS,GACTonB,OAASn2D,SAASonC,cAAc,KACpC+uB,OAAOC,KAAOtzD,IAGd,IAFA,IACIuzD,KADQF,OAAO3uB,OAAOjkC,UAAU,GACnB9D,MAAM,KACdE,EAAI,EAAGA,EAAI02D,KAAKx2D,OAAQF,IAC7B,GAAI02D,KAAK12D,GAAI,CACT,IAAI22D,KAAOD,KAAK12D,GAAGF,MAAM,KACzBsvC,OAAOunB,KAAK,GAAGn5D,eAAiBo5D,mBAAmBD,KAAK,IAIhE,IAAKJ,sBAID,IAFA,IAAIM,eAAiB1V,SAAS2V,SAASt5D,cAAcsC,MAAM,KACvD0D,MAAQqzD,eAAe32D,OAAS,EAC7BsD,OAAS,GACRqzD,eAAerzD,QAAUqzD,eAAe32D,QAAUsD,MAAQ,IAC1D4rC,OAAOynB,eAAerzD,OAAOhG,eAAiBo5D,mBAC1CC,eAAerzD,MAAQ,KAG/BA,OAAgB,EAIxB,OAAO4rC,OAGX6kB,mBAAmBxyD,KAAM0B,KACrB,MACM4zD,QADY,IAAIC,gBAAgB78D,OAAOgnD,SAAStZ,QAC5BvnB,IAAI7e,MAC9B,GAAIs1D,QAAS,OAAOA,QAEpB5zD,IAAMA,IAAMA,IAAI3F,cAAgB6C,SAAS04C,IAAIv7C,cAE7C,MAAMy5D,KAAOL,mBAAmBzzD,KAC1B+zD,MAAQz1D,KAAKjE,cAAckE,QAAQ,UAAW,QAG9Cw/C,QADQ,IAAIxqC,OAAO,OAASwgD,MAAQ,qBACpBhsD,KAAK+rD,MAE3B,GAAK/V,QAYE,OAAKA,QAAQ,GAGT0V,mBAAmB1V,QAAQ,GAAGx/C,QAAQ,MAAO,MAF7C,GAbG,CAEV,MAAMm1D,eAAiB1V,SAAS2V,SAC3Bt5D,cACAkE,QAAQ,KAAM,KACd5B,MAAM,KACX,OACI+2D,eAAeprD,QAAQyrD,QAAU,GACjCL,eAAe32D,QAAU22D,eAAeprD,QAAQyrD,OAAS,EAElDL,eAAeA,eAAeprD,QAAQyrD,OAAS,GAC9C,MAQpBC,gBAAgBnD,UAAWoD,WAAYj0D,KACnC,IAAI8zD,KAAO9zD,KAAY9C,SAAS04C,IAEd,MAAdqe,aAAoBA,WAAa,IAErC,IAAI1nB,QAAU,IAAIh5B,OAAO,OAASs9C,UAAY,gBAC9C,OAAIiD,KAAKpvB,OAAO6H,UAAY,EACjBunB,KAAKv1D,QAAQguC,QAAS,KAAO0nB,WAAa,OAGrDH,KAAOA,KAAKv1D,QAAQ,QAAS,IAEzBu1D,MAAQA,KAAKxrD,QAAQ,KAAO,EAAI,IAAM,KAAOuoD,UAAY,IAAMoD,YAIvEC,UAAUl0D,IAAKm0D,MAAOzsC,MAClB,MAAM0sC,OAASD,OAAgBj3D,SAASi3D,MAClC5lC,MAAQ7G,MAAc,GAG5BvvB,KAAKmjD,QAAQ+Y,QAAQH,UAAU,CAAEI,UAAWF,QAAU7lC,MAAOvuB,KAGjEimD,eAAerpD,OACX,IAAKA,MAAO,OAAOA,MAEnB,GAAoB,iBAATA,OAAqBA,iBAAiBkR,OAAS,EACtD,IAAKxS,OAAOsB,MAAO,CACf,IAAIvB,MAAQuB,MAAMtB,KAClB,GAAID,OAASA,iBAAiByS,MAAO3V,KAAK8tD,sBACrC,GACa,iBAAP3qD,KACS,iBAATD,OACPA,OACA,gBAAgBzC,KACZyC,MACChB,cACAkE,QAAQ,mBAAoB,KAC5BA,QACG,mEACA,KAEHA,QAAQ,uBAAwB,KAGrC,IACI3B,MAAMtB,KAAO0uC,KAAK+Z,MAAM1oD,QAEC,iBAAduB,MAAMtB,MACbsB,MAAMtB,eAAgBwS,OAAS,GAIV,iBAAdlR,MAAMtB,MACbsB,MAAMtB,eAAgBwS,OAAS,IAH/B3V,KAAK8tD,eAAerpD,MAAMtB,MAMhC,MAAO+B,GACLT,MAAMtB,KAAOD,MACbsX,QAAQkvC,IAAIxkD,SAIjBT,iBAAiBkR,OACxBm3C,EAAE7tD,QAAQwF,OAAQm2B,OACK,iBAARA,MAAoBA,gBAAgBjlB,OAAS,GACpD3V,KAAK8tD,eAAelzB,MACL,iBAARA,MAAoBA,gBAAgBjlB,OAAS,GACpD3V,KAAK8tD,eAAelzB,SAKpCwhC,aAAa93D,KACT,IAAKA,IAAK,OAAO,EACjB,IACIutC,KAAK+Z,MAAMtnD,KACb,MAAOY,GACL,OAAO,EAEX,OAAO,EAGXm3D,cAAc/3D,KACV,IAEI,OADautC,KAAK+Z,MAAMtnD,KAE1B,MAAOY,GACL,OAAOZ,KAIfg4D,WAAWxoB,OAAQx4B,QACfwxC,EAAE/mD,OAAO+tC,QAAS5hC,IACLA,EAAEqqD,eAGM,GAFbzP,EAAE5lD,OAAOoU,QAASkhD,IACPA,GAAG3H,WAAa3iD,EAAE2iD,YAC1BjwD,SAIXkoD,EAAE7tD,QAAQ6tD,EAAE2P,OAAOnhD,OAAQ,CAAC,eAAgBkhD,KAIvB,GAFb1P,EAAE5lD,OAAO4sC,QAAS5hC,GACPsqD,GAAG3H,WAAa3iD,EAAE2iD,YAC1BjwD,QAEHkvC,OAAO/wC,KAAK,CACR8xD,UAAW2H,GAAG3H,UACdC,WAAY0H,GAAG1H,WACfyH,cAAeC,GAAGD,cAClBG,UAAWF,GAAGE,eAK9BC,eACI,MAAO,uCAAuCv2D,QAAQ,SAAU4G,IAC5D,IAAIwjC,EAAqB,GAAhBz8B,KAAK6oD,SAAiB,EAE/B,OADa,KAAL5vD,EAAWwjC,EAAS,EAAJA,EAAW,GAC1BzgC,SAAS,OAI1B8sD,mBAAmBjuB,OAsCf,MArCa,oMAKKA,MAAM5E,+HAIN4E,MAAM3E,qIAIN2E,MAAMrf,KAAKutC,4HAIXluB,MAAMrf,KAAKwtC,qIAIXnuB,MAAMrf,KAAKytC,mIAIXpuB,MAAMrf,KAAK0tC,sIAIXruB,MAAMsuB,wIAINtuB,MAAMrf,KAAK4tC,gFAOjCC,cAAc1zB,MACV,MAAM2zB,MAAQ3zB,KAAOA,KAAK35B,WAAW7N,cAAgB,GACrD,IAAKm7D,MAAMz1D,MAAM,qCAAsC,OAAO,EAE9D,MAAMA,MAAQ,oCAAoCgI,KAAKytD,OACjDC,QAAU11D,MAAM,GAChBhD,OAASgD,MAAM,GACf21D,QAAU31D,MAAM,GAEtB,OAAQ01D,SACJ,IAAK,MACL,IAAK,QACL,IAAK,WACL,IAAK,UACL,IAAK,MACL,IAAK,QACL,IAAK,OACL,IAAK,QACL,IAAK,aACL,IAAK,OACL,IAAK,WACL,IAAK,gBACL,IAAK,YACL,IAAK,YACL,IAAK,WACL,IAAK,cACL,IAAK,QACL,IAAK,OACL,IAAK,QACL,IAAK,cACL,IAAK,mBACL,IAAK,MACD,IAAK14D,OAAQ,OAAO,EACpB,MACJ,IAAK,SACL,IAAK,YACL,IAAK,OACL,IAAK,YACL,IAAK,iBACL,IAAK,UACL,IAAK,WACL,IAAK,OACD,GAAIA,SAAW24D,QAAS,OAAO,EAC/B,MACJ,IAAK,UACL,IAAK,UACD,GAAI34D,QAAU24D,QAAS,OAAO,GAK1CC,sBAAsBC,cAClB,IAAI3pB,OAAS,GAKb,OAJAgZ,EAAE7tD,QAAQw+D,cAAc,CAACv6D,MAAOC,OAC5B2wC,OAAO/wC,KAAKI,IAAM,IAAMD,UAGrB4wC,OAAOpzC,KAAK,KAGvBg9D,sBAAsBC,OAClB,IAAKA,MAAO,MAAO,GAEnB,IAAIpuD,OAAS,GAWb,OATAu9C,EAAE7tD,QAAQ0+D,MAAM/1D,MAAM,YAAa8wD,YAId,GAFb14D,KAAK23D,QAAQ,SAAb33D,CAAuBuP,QAAS7K,GACrBA,EAAEmwD,WAAa6D,YACvB9zD,QAEH2K,OAAOxM,KAAK,CAAE8xD,UAAW6D,eAG1BnpD,OAGXquD,aAAa7uB,MACT,IAAIe,MAAQ9vC,KAAKqvC,GAAGS,QAEhBsW,OAAS,IAAIrY,WAMjB,OALAqY,OAAO9b,OAAUplC,IACb4qC,MAAM16B,QAAQlQ,EAAEyC,OAAO4H,SAE3B62C,OAAOtX,cAAcC,MAEde,MAAMC,QAGjB+d,eAAerpD,OACX,IAAKA,MAAO,OAAOA,MAEnB,GAAoB,iBAATA,OAAqBA,iBAAiBkR,OAAS,EACtD,IAAK,IAAIxS,OAAOsB,MAAO,CACnB,IAAIvB,MAAQuB,MAAMtB,KAClB,GAAID,OAASA,iBAAiByS,MAAO3V,KAAK8tD,sBACrC,GACa,iBAAP3qD,KACS,iBAATD,OACPA,OACA,gBAAgBzC,KACZyC,MACChB,cACAkE,QAAQ,mBAAoB,KAC5BA,QACG,mEACA,KAEHA,QAAQ,uBAAwB,KAGrC,IACI3B,MAAMtB,KAAO0uC,KAAK+Z,MAAM1oD,QAEC,iBAAduB,MAAMtB,MACbsB,MAAMtB,eAAgBwS,OAAS,GAIV,iBAAdlR,MAAMtB,MACbsB,MAAMtB,eAAgBwS,OAAS,IAH/B3V,KAAK8tD,eAAerpD,MAAMtB,MAMhC,MAAO+B,GACLT,MAAMtB,KAAOD,MACbsX,QAAQkvC,IAAIxkD,SAIjBT,iBAAiBkR,OACxBm3C,EAAE7tD,QAAQwF,OAAQm2B,OACK,iBAARA,MAAoBA,gBAAgBjlB,OAAS,GACpD3V,KAAK8tD,eAAelzB,MACL,iBAARA,MAAoBA,gBAAgBjlB,OAAS,GACpD3V,KAAK8tD,eAAelzB,SAKpC+yB,sBAAsBzhD,QAClB,OAAOA,OAAOuC,OAAO,GAAG+O,cAAgBtR,OAAOwH,MAAM,MFnUxDy7B,QAAQ,aGnDN,MAAM0uB,WACT/S,YAAY1b,MAAOC,GAAIyuB,eAAgBC,WAAY5kB,QAC/Cn5C,KAAKovC,MAAQA,MACbpvC,KAAKqrD,cAAgBlS,OACrBn5C,KAAKqvC,GAAKA,GACVrvC,KAAK89D,eAAiBA,eACtB99D,KAAK+9D,WAAaA,WAGtB/4C,IAAI4oC,WAAYoQ,WAAYlqB,OAAQmqB,eAChC,OAAOj+D,KAAKk+D,OACR,iBACAtQ,WACAoQ,WACAlqB,OACAmqB,eAIRC,OAAOv+D,OAAQiuD,WAAYoQ,WAAYlqB,OAAQmqB,eAC3C,MAAMnuB,MAAQ9vC,KAAKqvC,GAAGS,QAEhBjoC,IACF,6BACAlI,OACA,QACAiuD,WACA,IACAoQ,WAEJ,IAAIrzB,QAAUszB,eAAgC,6BAkB9C,OAjBAtzB,QAAU,IAAIA,QAAeigB,yBAA0B2C,EAAE,uCAAuCh0C,OAEhGvZ,KAAKovC,MAAM,CACPO,OAAQ,MACR9nC,IACA8iC,QACAmJ,SACDvD,MACEhhB,OACGugB,MAAM16B,QAAQma,KAAKA,SAEtBqf,QACuB,KAAhBA,MAAM5E,QAAehqC,KAAK+9D,WAAW9N,WAAW,oBAAqB,CAAErhB,QAC3EkB,MAAMe,OAAOjC,UAIdkB,MAAMC,QAGjBqc,KAAKwB,WAAYoQ,WAAYzuC,KAAMukB,OAAQmqB,eACvC,OAAOj+D,KAAKm+D,QACR,iBACAvQ,WACAoQ,WACAzuC,KACAukB,OACAmqB,eAIRE,QAAQx+D,OAAQiuD,WAAYoQ,WAAYzuC,KAAMukB,OAAQmqB,eAClD,MAAMnuB,MAAQ9vC,KAAKqvC,GAAGS,QAEhBjoC,IACF,6BACAlI,OACA,QACAiuD,WACA,IACAoQ,WAEJ,IAAIrzB,QAAUszB,eAAgC,6BAmB9C,OAlBAtzB,QAAU,IAAIA,QAAeigB,yBAA0B2C,EAAE,uCAAuCh0C,OAEhGvZ,KAAKovC,MAAM,CACPO,OAAQ,OACR9nC,IACA8iC,QACApb,KACAukB,SACDvD,MACEhhB,OACGugB,MAAM16B,QAAQma,KAAKA,SAEtBqf,QACuB,KAAhBA,MAAM5E,QAAehqC,KAAK+9D,WAAW9N,WAAW,oBAAqB,CAAErhB,QAC3EkB,MAAMe,OAAOjC,UAIdkB,MAAMC,QAGjBquB,WAAWrvB,MACP,MAAMe,MAAQ9vC,KAAKqvC,GAAGS,QAEtB,IAAIuuB,SAAW,IAAIr2B,SAgBnB,OAfAlpC,QAAQG,QAAQ,CAAC8vC,OAAO,SAAS7rC,MAAOC,KACpCk7D,SAAStzB,OAAO5nC,IAAKD,UAGzBlD,KAAKovC,MAAM,CACPvnC,IAAK,wDACL8nC,OAAQ,OACRpgB,KAAM8uC,SACN1zB,QAAS,CACL,oBAAgBn8B,KAErB+hC,MAAMhhB,OACLugB,MAAM16B,QAAQma,SAGXugB,MAAMC,QAGjBuuB,YAAYxqB,QACR,MAAMhE,MAAQ9vC,KAAKqvC,GAAGS,QAEtB,IAAIf,KAAO+E,OAAO/E,KAkBlB,OAhBA/uC,KAAKqrD,cAAcjjB,OAAO,CACtBvgC,IAAK,wDACL8iC,QAAS,CACLggB,WAAY,6BACZC,yBAA0B2C,EAAE,uCAAuCh0C,OAEvEgW,KAAMukB,SACPvD,MAAK,SAAShhB,MACbugB,MAAM16B,QAAQma,KAAKA,SACpB,SAASqf,OACRkB,MAAMe,OAAOjC,UACd,SAASzB,KACR,IAAIoxB,mBAAqB5sD,SAAS,IAAQw7B,IAAIxD,OAASwD,IAAI1G,OAC3DsI,KAAKyvB,SAAWD,sBAGbzuB,MAAMC,QAGjBkd,WAAWplD,IAAK42D,SACZ,MAAM3uB,MAAQ9vC,KAAKqvC,GAAGS,QAChB1G,MAAQq1B,QAAU,CAAEr1B,MAAOppC,KAAK89D,gBAAmB,GAWzD,OATA99D,KAAKovC,MAAMpqB,IAAInd,IAAKuhC,OAAOmH,MACtBmuB,UACG5uB,MAAM16B,QAAQspD,QAAQnvC,SAEzBqf,QACGkB,MAAMe,OAAOjC,UAIdkB,MAAMC,QAGjB4uB,eAAe/Q,WAAYoQ,WAAYzuC,MACnC,MAAM1nB,IAAM,6BAA4B+lD,WAAa,IAAMoQ,WAC3D,IAAIrzB,QAAU,6BAed,aAb0B,IAAIi0B,SAAQ,CAACxpD,QAASy7B,UAC5C7wC,KAAK6+D,OAAO,CACRlvB,OAAQ,MACR9nC,IACA8iC,QACAmJ,OAAQvkB,OACTghB,MAAMhhB,OACLna,QAAQma,KAAKA,SACbqf,QACAiC,OAAOjC,aAOnBkwB,WAAWC,SAAUJ,OAAQ,EAAMj1B,KAAO,mBACtC,OAAO,IAAIk1B,SAAQ,CAACxpD,QAASy7B,UACzB,IACI,MAAMmuB,UAAYj6D,SAASonC,cAAc,UACzC6yB,UAAUt1B,KAAOA,KACjBs1B,UAAUL,MAAQA,MAClBK,UAAU/yB,IAAM8yB,SAEhBC,UAAU12B,iBAAiB,QAAS22B,KAChC7pD,QAAQ,CAAE40B,QAAQ,OAGtBg1B,UAAU12B,iBAAiB,SAAU22B,KACjCpuB,OAAO,CACH7G,QAAQ,EACRvB,QAAS,6BAA6Bs2B,gBAI9Ch6D,SAASa,KAAK8mC,YAAYsyB,WAC5B,MAAOpwB,OACLiC,OAAOjC,cHlJlBO,QAAQ,oBAAqB,sBAC7BA,QAAQ,gBAAiB,kBACzB+J,UAAU,SIxDR,SAASgmB,MAAMC,SAAUxrB,SAAUrE,UACtC,IAGI8vB,OAgBJ,OAnBiBC,OAAO,QACV1pD,MAAMzW,QAOL4Q,OAAOtM,UAAUuM,SACXD,OAAOwvD,eACbD,OAAO,MAERxgE,OAAOC,UAAYD,OAAOC,QAAU,IAKlDsgE,OADS,qCAGF,CACHG,cAAc,EACdC,WAAY,UACZx+C,SAAU,IACVy+C,UAAU,EACV1jB,SAAU,IACV2jB,OAAO,EACPzjB,KAAM,SAAS8O,OAAQ4U,SAAUC,MAAOC,KAAMC,aAC1C,GAAmBtxD,MAAfoxD,MAAMV,MAAV,CAEA,IAEIa,MAAOC,WAAYC,iBAFnBC,eAAiBN,MAAMV,MAAM94D,QAAQ,mBAAoB,MAG7D2kD,OAAOrR,OAAOwmB,gBAAgB,SAASC,iBAAiBj9D,OAChDA,MACK88D,YACDF,aAAY,SAAStoC,MAAO4oC,UACxBJ,WAAaI,SACb5oC,MAAMA,MAAM5yB,UAAYG,SAASs7D,cAC7B,eAAiBT,MAAMV,MAAQ,KAKnCa,MAAQ,CACJvoC,OAEJ2nC,SAASmB,MAAM9oC,MAAOmoC,SAAS3yB,SAAU2yB,UAGrCnoC,MAAMjI,KAAK,SACXw7B,OAAOwV,gCAAgC/oC,MAAMjI,KAAK,aAK1D0wC,mBACAA,iBAAiBl6D,SACjBk6D,iBAAmB,MAEnBD,aACAA,WAAWQ,WACXR,WAAa,MAEbD,QACAE,iBA+GpB,SAASQ,cAAcC,OAGnB,IAAI7+D,KAAO6+D,MAAM,GACbC,QAAUD,MAAMA,MAAM97D,OAAS,GAC/Bg8D,WAAa,CAAC/+D,MAElB,EAAG,CAEC,KADAA,KAAOA,KAAKg/D,aACD,MACXD,WAAW79D,KAAKlB,YACXA,OAAS8+D,SAElB,OAAOvB,OAAOwB,YA5HqBH,CAAcV,MAAMvoC,OACvC2nC,SAAS2B,MAAMb,kBAAkB1vB,MAAK,WAClC0vB,iBAAmB,QAEvBF,MAAQ,aAO5B,SAASV,OAAO1/D,OAAQohE,kBAEpB,OADAA,iBAAmBA,kBAAoB/rD,MAChC,WACH,IAMIgsD,YACAt8D,EAPAu8D,aAAe,EAEfC,aAAe1rD,UACfP,KAAOisD,aAAa,GACpBz4B,QAAU,KAAO9oC,OAASA,OAAS,IAAM,IAAMsV,KAAO,KACtDksD,SAAWD,aAAa,GAoB5B,IAhBAz4B,SAAW04B,SAAS/6D,QAAQ,YAAY,SAASwB,OAC7C,IACIw5D,cADSx5D,MAAM8L,MAAM,GAAI,GACFutD,aAE3B,OAAIG,aAAeF,aAAat8D,OACrBy8D,cAAcH,aAAaE,eAG/Bx5D,SAGX6gC,SACI,wCACC9oC,OAASA,OAAS,IAAM,IACzBsV,KAGAvQ,EAAIu8D,aAAcD,YAAc,IAAKt8D,EAAIw8D,aAAat8D,OAAQF,IAAKs8D,YAAc,IAEjFv4B,SACIu4B,YACA,KACCt8D,EAAIu8D,cACL,IACAK,mBAAmBD,cAAcH,aAAax8D,KAGtD,OAAO,IAAIq8D,iBAAiBt4B,cJ1DnCyQ,UAAU,QIwIR,SAASqoB,KAAK7tB,OAAQyrB,UACzB,IAMIC,OAJAoC,WAAanC,OAAO,QACpBngE,QAAUyW,MAAMzW,QAehBuiE,KAPW3xD,OAAOtM,UAAUuM,SACXD,OAAOwvD,eACbD,OAAO,MAGRxgE,OAAOC,UAAYD,OAAOC,QAAU,IAExC,GAGVsgE,OADS,qCAIT,IAAIsC,YAAc,SAAS3tB,MAAO7rC,MAAOy5D,gBAAiBz+D,MAAO0+D,cAAez+D,IAAK0+D,aAEjF9tB,MAAM4tB,iBAAmBz+D,MACrB0+D,gBAAe7tB,MAAM6tB,eAAiBz+D,KAC1C4wC,MAAM+tB,OAAS55D,MACf6rC,MAAMguB,OAAoB,IAAV75D,MAChB6rC,MAAMiuB,MAAS95D,QAAW25D,YAAc,EACxC9tB,MAAMkuB,UAAYluB,MAAMguB,QAAUhuB,MAAMiuB,OAExCjuB,MAAMmuB,OAASnuB,MAAMouB,MAAwB,IAAP,EAARj6D,SAI9Bk6D,cAAgB,SAASrC,OACzB,OAAOA,MAAMvoC,MAAM,IAGnB6qC,YAAc,SAAStC,OACvB,OAAOA,MAAMvoC,MAAMuoC,MAAMvoC,MAAM5yB,OAAS,IAI5C,MAAO,CACHm3C,SAAU,IACVwjB,cAAc,EACdC,WAAY,UACZx+C,SAAU,IACVy+C,UAAU,EACVC,OAAO,EACP4C,QAAS,SAASC,YAAY5C,SAAUC,OACpC,IAAIpM,WAAaoM,MAAM2B,KAEvB/N,WAAaA,WAAWptD,QAAQ,mBAAoB,MAEpD,IAAIo8D,eAAiBz9D,SAASs7D,cAAc,cAAgB7M,WAAa,KAErE5rD,MAAQ4rD,WAAW5rD,MAAM,8FAE7B,IAAKA,MACD,MAAM45D,WAAW,OAAQ,yFACrBhO,YAGR,IAAIiP,IAAM76D,MAAM,GACZ86D,IAAM96D,MAAM,GACZ+6D,QAAU/6D,MAAM,GAChBg7D,WAAah7D,MAAM,GAIvB,KAFAA,MAAQ66D,IAAI76D,MAAM,2DAGd,MAAM45D,WAAW,SAAU,gHACvBiB,KAER,IASII,iBAAkBC,eAAgBC,iBAAkBC,eATpDrB,gBAAkB/5D,MAAM,IAAMA,MAAM,GACpCg6D,cAAgBh6D,MAAM,GAE1B,GAAI+6D,WAAa,6BAA6BliE,KAAKkiE,UAC3C,4FAA4FliE,KAAKkiE,UACrG,MAAMnB,WAAW,WAAY,yFACzBmB,SAIR,IAAIM,aAAe,CAAEC,IAAKC,SAa1B,OAXIP,WACAC,iBAAmBnvB,OAAOkvB,aAE1BG,iBAAmB,SAAS5/D,IAAKD,OAC7B,OAAOigE,QAAQjgE,QAEnB8/D,eAAiB,SAAS7/D,KACtB,OAAOA,MAIR,SAASigE,SAASrY,OAAQ4U,SAAUC,MAAOC,KAAMC,aAEhD+C,mBACAC,eAAiB,SAAS3/D,IAAKD,MAAOgF,OAKlC,OAHI05D,gBAAeqB,aAAarB,eAAiBz+D,KACjD8/D,aAAatB,iBAAmBz+D,MAChC+/D,aAAanB,OAAS55D,MACf26D,iBAAiB9X,OAAQkY,gBAYxC,IAAII,aAAeC,YAGnBvY,OAAOwY,iBAAiBb,KAAK,SAASc,WAAWC,YAC7C,IAAIv7D,MAAOtD,OAGPrC,SAIAmhE,iBACAvgE,IAAKD,MACLygE,UACAC,YACAC,eACA9D,MACA+D,eACAC,iBAbAC,aAAerE,SAAS,GAKxBsE,aAAeX,YAcnB,GAJIX,UACA5X,OAAO4X,SAAWc,YAwKtC,SAASS,YAAYv/D,KACjB,GAAW,MAAPA,KAgBR,SAASw/D,SAASx/D,KACd,OAAOA,KAAOA,IAAI9F,SAAW8F,IAjBVw/D,CAASx/D,KACxB,OAAO,EAKX,IAAIC,OAAS,WAAYkL,OAAOnL,MAAQA,IAAIC,OAE5C,GA/ToB,IA+ThBD,IAAI5C,UAAkC6C,OACtC,OAAO,EAGX,OAQJ,SAAS6C,SAASvE,OAAS,MAAwB,iBAAVA,MAR9BuE,CAAS9C,MAAQzF,QAAQyF,MAAmB,IAAXC,QAClB,iBAAXA,QAAuBA,OAAS,GAAMA,OAAS,KAAMD,IAnLhDu/D,CAAYT,YACZI,eAAiBJ,WACjBG,YAAcd,gBAAkBC,sBAKhC,IAAK,IAAIqB,WAHTR,YAAcd,gBAAkBE,eAEhCa,eAAiB,GACGJ,WACZA,WAAW5tD,eAAeuuD,UAAkC,MAAtBA,QAAQ31D,OAAO,IACrDo1D,eAAe9gE,KAAKqhE,SAShC,IAJAV,iBAAmBG,eAAej/D,OAClCk/D,eAAiB,IAAInuD,MAAM+tD,kBAGtBx7D,MAAQ,EAAGA,MAAQw7D,iBAAkBx7D,QAItC,GAHA/E,IAAOsgE,aAAeI,eAAkB37D,MAAQ27D,eAAe37D,OAC/DhF,MAAQugE,WAAWtgE,KACnBwgE,UAAYC,YAAYzgE,IAAKD,MAAOgF,OAChCm7D,aAAaM,WAEb5D,MAAQsD,aAAaM,kBACdN,aAAaM,WACpBM,aAAaN,WAAa5D,MAC1B+D,eAAe57D,OAAS63D,UACrB,IAAIkE,aAAaN,WAKpB,MAHA1kE,QAAQ6kE,gBAAgB,SAAS/D,OACzBA,OAASA,MAAMhsB,QAAOsvB,aAAatD,MAAMnrD,IAAMmrD,UAEjDyB,WAAW,QACb,sJACAhO,WAAYmQ,UAAWzgE,OAG3B4gE,eAAe57D,OAAS,CAAE0M,GAAI+uD,UAAW5vB,WAAOvlC,EAAWgpB,WAAOhpB,GAClEy1D,aAAaN,YAAa,EAKlC,IAAK,IAAIU,YAAYhB,aAAc,CAI/B,GAFAU,iBAAmBtD,eADnBV,MAAQsD,aAAagB,WACkB7sC,OACvC2nC,SAAS2B,MAAMiD,kBACXA,iBAAiB,GAAGvoB,WAGpB,IAAKtzC,MAAQ,EAAGtD,OAASm/D,iBAAiBn/D,OAAQsD,MAAQtD,OAAQsD,QAC9D67D,iBAAiB77D,OAAiB,cAAI,EAG9C63D,MAAMhsB,MAAMysB,WAIhB,IAAKt4D,MAAQ,EAAGA,MAAQw7D,iBAAkBx7D,QAKtC,GAJA/E,IAAOsgE,aAAeI,eAAkB37D,MAAQ27D,eAAe37D,OAC/DhF,MAAQugE,WAAWtgE,MACnB48D,MAAQ+D,eAAe57D,QAEb6rC,MAAO,CAIbxxC,SAAWyhE,aAGX,GACIzhE,SAAWA,SAASs+D,kBACft+D,UAAYA,SAAmB,cAEpC6/D,cAAcrC,QAAUx9D,UAExB48D,SAASmF,KAAK7D,cAAcV,MAAMvoC,OAAQ,KAAM4nC,OAAO4E,eAE3DA,aAAe3B,YAAYtC,OAC3B2B,YAAY3B,MAAMhsB,MAAO7rC,MAAOy5D,gBAAiBz+D,MAAO0+D,cAAez+D,IAAKugE,uBAG5E5D,aAAY,SAASyE,eAAe/sC,MAAOuc,OACvCgsB,MAAMhsB,MAAQA,MAEd,IAAI4sB,QAAU6B,eAAegC,WAAU,GACvChtC,MAAMA,MAAM5yB,UAAY+7D,QAGxBxB,SAASmB,MAAM9oC,MAAO,KAAM4nC,OAAO4E,eACnCA,aAAerD,QAIfZ,MAAMvoC,MAAQA,MACdysC,aAAalE,MAAMnrD,IAAMmrD,MACzB2B,YAAY3B,MAAMhsB,MAAO7rC,MAAOy5D,gBAAiBz+D,MAAO0+D,cAAez+D,IAAKugE,qBAIxFL,aAAeY,mBAM/B,SAAS5E,OAAO1/D,OAAQohE,kBAEpB,OADAA,iBAAmBA,kBAAoB/rD,MAChC,WACH,IAMIgsD,YAAat8D,EANbu8D,aAAe,EAEfC,aAAe1rD,UACfP,KAAOisD,aAAa,GACpBz4B,QAAU,KAAO9oC,OAASA,OAAS,IAAM,IAAMsV,KAAO,KACtDksD,SAAWD,aAAa,GAiB5B,IAdAz4B,SAAW04B,SAAS/6D,QAAQ,YAAY,SAASwB,OAC7C,IACIw5D,cADSx5D,MAAM8L,MAAM,GAAI,GACFutD,aAE3B,OAAIG,aAAeF,aAAat8D,OACrBy8D,cAAcH,aAAaE,eAG/Bx5D,SAGX6gC,SAAW,wCACN9oC,OAASA,OAAS,IAAM,IAAMsV,KAE9BvQ,EAAIu8D,aAAcD,YAAc,IAAKt8D,EAAIw8D,aAAat8D,OAAQF,IAAKs8D,YAAc,IAClFv4B,SAAWu4B,YAAc,KAAOt8D,EAAIu8D,cAAgB,IAChDK,mBAAmBD,cAAcH,aAAax8D,KAGtD,OAAO,IAAIq8D,iBAAiBt4B,UAIpC,SAAS06B,QAAQx+D,IAAK8/D,WAClB,IAAIthE,IAAMwB,KAAOA,IAAI+/D,UAErB,GAAIvhE,IAIA,MAHmB,mBAARA,MACPA,IAAMwB,IAAI+/D,aAEPvhE,IAGX,IAAIwhE,eAAiBhgE,IAOrB,OALIxB,IADW,YAAXwhE,SAAqC,UAAXA,SAA+B,OAARhgE,IAC3CA,IAAI+/D,UAAYC,QAAU,KAAOF,WAAaG,WAE9CD,QAAU,IAAMhgE,IAM9B,SAAS2+D,YACL,OAAOxzD,OAAO+0D,OAAO,MA0BzB,SAASD,UACL,QAASnD,IAGb,SAAShB,cAAcC,OAGnB,IAAI7+D,KAAO6+D,MAAM,GACbC,QAAUD,MAAMA,MAAM97D,OAAS,GAC/Bg8D,WAAa,CAAC/+D,MAElB,EAAG,CAEC,KADAA,KAAOA,KAAKg/D,aACD,MACXD,WAAW79D,KAAKlB,YACXA,OAAS8+D,SAElB,OAAOvB,OAAOwB,gBJtejB1nB,UAAU,UI0eR,SAAS4rB,OAAO/G,WAAYrqB,OAAQqxB,mBACvC,MAAO,CACHhpB,SAAU,IACVumB,QAAS,SAAS3C,SAAUz5D,MACxB,OAAO,SAAS8+D,eAAejxB,MAAOiG,SAClC,IAAI1jC,GAAKo9B,OAAOxtC,KAAK4+D,QACrB9qB,QAAQ4G,GAAG,SAAS,SAASqkB,OACzB,IAAIvvD,SAAW,WACXY,GAAGy9B,MAAO,CAAEgD,OAAQkuB,SAGxB,GAAKlH,WAAWmH,QAGZ,IACIxvD,WACF,MAAOk5B,OACLm2B,kBAAkBn2B,YALtBmF,MAAMoxB,OAAOzvD,mBJrfhCwjC,UAAU,UKsKR,SAASksB,eAAe91B,SAAUoE,QACrC,MAAO,CACHqI,SAAU,IACVE,KAAM,SAASlI,MAAOiG,QAAS74C,OAC3B,IAAIkkE,MAAQlkE,MAAMmkE,OACdC,MAAQF,MAAM7gE,MAAM,MAAM,GAC1BghE,MAAQH,MAAM7gE,MAAM,MAAM,GAE9B+gE,MAAQ7xB,OAAO6xB,MAAP7xB,CAAcK,OAClB+Y,EAAEiM,QAAQwM,MAAOC,QACjBl2B,UAAS,WACL0K,QAAQ,GAAGyrB,gBLhL1BvsB,UAAU,YK1BR,SAASwsB,SAASva,mBACrB,MAAO,CACHpP,SAAU,IACV31C,SAAS,EACT61C,KAAM,CAAClI,MAAOiG,QAAS74C,SACnB,IAAKA,MAAMwkE,SAAU,OAErB,SAASC,aACL,IAAIlH,QAAUvT,kBAAkBiF,gBAAgBjvD,MAAMwkE,SAAU5xB,MAAO,IAAI,IAAS,GAEpF,GAA2B,QAAvB5yC,MAAM0kE,cAAyB,CAE/BnH,QADe5R,EAAEgZ,SAASpH,SACTqH,iBAGrB/rB,QAAQ35C,KAAKq+D,SAGjBkH,aAEA,MAAMvuC,QAAUl2B,MAAMwkE,SAAS/9D,MAAM,+BACrCklD,EAAE7tD,QAAQo4B,SAAS,SAAS1sB,GACxB,MACM0vB,SADQ,8BAA8BzqB,KAAKjF,GAC1B,GACvBopC,MAAM2F,OACFrf,UACA,SAAS2rC,OAAQC,QACTD,QAAUC,QACVL,gBAGR,MAIR5rB,QAAQ0B,WAAW,cAEvBt1C,SAAS,MLVZ8yC,UAAU,YKcR,SAASgtB,SAAS/a,mBACrB,MAAO,CACHpP,SAAU,IACV31C,SAAS,EACT61C,KAAM,CAAClI,MAAOiG,QAAS74C,SACnB,IAAKA,MAAMglE,SAAU,OAErB,SAASP,aACL,MAAMlH,QAAUvT,kBAAkBiF,gBAAgBjvD,MAAMglE,SAAUpyB,MAAO,IAAI,IAAS,GAEtF,IAAI7wC,MAAQ,GAEZ,GAAsB,QAAlB/B,MAAMilE,SACNljE,MAAQwF,OAAOg2D,SAASzhC,cACvB,CACD,MAAM3vB,OAASnM,MAAMmM,QAAU,aAC/B,IAAI+4D,GAAK39D,OAAOg2D,SAChBx7D,MAAQmjE,GAAGpuD,UAAYouD,GAAG/4D,OAAOA,QAAU,GAG/C0sC,QAAQ35C,KAAK6C,OAGjB0iE,aAEA,MAAMvuC,QAAUl2B,MAAMglE,SAASv+D,MAAM,+BACrCklD,EAAE7tD,QAAQo4B,SAAS,SAAS1sB,GACxB,MACM0vB,SADQ,8BAA8BzqB,KAAKjF,GAC1B,GACvBopC,MAAM2F,OAAOrf,UAAU,SAAS2rC,OAAQC,QAChCD,QAAUC,QACVL,mBAKZ5rB,QAAQ0B,WAAW,cAEvBt1C,SAAS,MLnDZ8yC,UAAU,aKuDR,SAASotB,UAAU3O,QAASxM,mBAC/B,MAAO,CACHpP,SAAU,IACV31C,SAAS,EACT61C,KAAM,SAASlI,MAAOiG,QAAS74C,OAC3B,IAAKA,MAAMolE,UAAW,OAEtB,SAASX,aACL,IAAI1iE,MACAioD,kBAAkBiF,gBAAgBjvD,MAAMolE,UAAWxyB,MAAO,IAAI,IAC9D,GAEA2qB,QAAU,GAEVx7D,OAAyB,iBAATA,OACZA,iBAAiByS,OAASzS,MAAM0B,SAI5B1B,OAHCqP,MAAMpR,MAAMqlE,aACbtjE,MAAM0B,QAAU+M,SAASxQ,MAAMqlE,YAEvBtjE,MAAM/B,MAAMqlE,WAAa,GAEzB1Z,EAAE2Z,QAAQvjE,MAAO,CAAC,UAAW,CAAC,QAAQ,IASlDw7D,QAJAv9D,MAAMulE,eACNxjE,MAAMyjE,YACNzjE,MAAMyjE,WAAW/hE,QAEN2N,MAAMpR,MAAMulE,gBACvBxjE,MAAMyjE,WAAW/hE,QAAU+M,SAASxQ,MAAMulE,eAC1CxjE,MAAMyjE,WAAWxlE,MAAMulE,cAAgB,GACvCxjE,MAAMyjE,WAAW,GACNzjE,MAAM0jE,UACd1jE,OAAyB,iBAATA,MAAmBw7D,QAAUx7D,MAC/C/B,MAAM0lE,UAASnI,QAAUv9D,MAAM0lE,SAEpCnI,SAAS1kB,QAAQ9zC,KAAK,MAAOw4D,SAGrCkH,aAEA,MAAMvuC,QAAUl2B,MAAMolE,UAAU3+D,MAAM,+BACtCklD,EAAE7tD,QAAQo4B,SAAS,SAAS1sB,GACxB,MACM0vB,SADQ,8BAA8BzqB,KAAKjF,GAC1B,GACvBopC,MAAM2F,OACFrf,UACA,SAAS2rC,OAAQC,QACTD,QAAUC,QACVL,gBAGR,MAIR5rB,QAAQ0B,WAAW,eAEvBt1C,SAAS,MLlHZ8yC,UAAU,WKsHR,SAAS4tB,QAAQnP,QAASxM,mBAC7B,MAAO,CACHpP,SAAU,IACV31C,SAAS,EACT61C,KAAM,SAASlI,MAAOiG,QAAS74C,OAC3B,IAAKA,MAAM2lE,QAAS,OAEpB,SAASlB,aACL,IAAI1iE,MACAioD,kBAAkBiF,gBAAgBjvD,MAAM2lE,QAAS/yB,MAAO,IAAI,IAC5D,GAEAgzB,SAAW,GAEX7jE,OAAyB,iBAATA,QAChB6jE,SAAW7jE,OAGf82C,QAAQ9zC,KAAK,OAAQ6gE,UAGzBnB,aAEA,MAAMvuC,QAAUl2B,MAAM2lE,QAAQl/D,MAAM,+BACpCklD,EAAE7tD,QAAQo4B,SAAS,SAAS1sB,GACxB,MACM0vB,SADQ,8BAA8BzqB,KAAKjF,GAC1B,GACvBopC,MAAM2F,OACFrf,UACA,SAAS2rC,OAAQC,QACTD,QAAUC,QACVL,gBAGR,MAIR5rB,QAAQ0B,WAAW,aAEvBt1C,SAAS,ML7JZ8yC,UAAU,QAAS,mBACnBA,UAAU,kBKjER,SAAS8tB,uBAAuBrzB,SAAUwX,mBAC7C,MAAO,CACHpP,SAAU,KACV31C,SAAS,EACT61C,KAAM,CAAClI,MAAOiG,QAAS74C,SACnB64C,QAAQ4G,GAAG,SAAU7J,SACjB,MAAMkwB,SAAW9lE,MAAM+lE,KAEvB,IAAIC,UAAY,GACZrzB,QAAU3yC,MAAM2yC,QAAU,IAAItvC,MAAM,KACxCsoD,EAAE7tD,QAAQ60C,QAAS5hC,IACf,IAAIk1D,YAAcjc,kBAAkBiF,gBAChCl+C,EACA6hC,MACA,IACA,GAEJozB,UAAUpkE,KAAKqkE,gBAEnB,MAAMC,WAAaF,UAAUzmE,KAAK,KAElCqzC,MAAMuzB,MAAM,sBAAuB,CAC/BL,SACAnzB,OAAQuzB,WACRE,oBAAoB,IAGxBxwB,OAAOiE,iBACHjE,QAAQA,OAAOgE,0BLsC9B6S,WAAW,mBAAoB,sBAC/BA,WAAW,sBMnET,MAAM4Z,oBACT1c,YACIC,OACAzb,SACAD,GACAsE,SACAwP,QACA8H,cACAC,YAEAlrD,KAAK+qD,OAASA,OACd/qD,KAAKsvC,SAAWA,SAChBtvC,KAAKqvC,GAAKA,GACVrvC,KAAK2zC,SAAWA,SAChB3zC,KAAKmjD,QAAUA,QACfnjD,KAAKirD,cAAgBA,cACrBjrD,KAAKkrD,WAAaA,WAElBlrD,KAAK+qD,OAAO0c,gBAAkB5oE,OAAOirD,sBAAsB2d,gBAC3DznE,KAAK+qD,OAAO2c,UAAY7oE,OAAOirD,sBAAsB6d,UACrD3nE,KAAK+qD,OAAO6c,UAAY/oE,OAAOirD,sBAAsB8d,UAErD7c,OAAOnP,IAAI,uBAAuB,CAAC12C,EAAG0V,QAClC,GAAIA,KAAKqsD,WAAarsD,KAAKitD,OAAQ,CAC/B,MAAMX,KAAOlnE,KAAK8nE,kBAAkBltD,KAAKqsD,UACzCrsD,KAAKitD,QAAUX,MAAQ,IAAIa,OAG/B/nE,KAAKgoE,kBAAkBptD,KAAKitD,OAAQjtD,KAAKk5B,OAAQl5B,KAAK2sD,uBAG1D1oE,OAAOypC,iBACH,YACC28B,QACG,IAAIgC,SAAWjnE,KAAKirD,cAAc0N,mBAAmB,QACrD,GAAIsO,SAAU,CACV,MAAMnzB,OAAS9zC,KAAKirD,cAAc+P,aAAaj2D,SAAS04C,KAAK,GAC7D,IAAI0pB,UAAY,GAChB,IAAK,MAAMvS,SAAS9gB,OAAQ,CACxB,GAAa,KAAT8gB,OAAyB,QAATA,MAAiB,SAErC,MAAMkH,WAAa97D,KAAKirD,cAAc0N,mBAAmB/D,OACrDkH,YAAYqL,UAAUpkE,KAAK,GAAG6xD,SAASkH,cAG/C,MAAMmM,UAAYd,UAAUzmE,KAAK,KAC3BwmE,KAAOlnE,KAAK8nE,kBAAkBb,UACpCjnE,KAAKgoE,kBAAkBd,KAAKa,OAAQE,WAAW,OAGvD,GAIR1c,aAAapB,SAAUqB,WAAYC,aAAc75C,KAC7C5R,KAAKL,OAAS,CAAEwqD,SAAoBqB,YACpCxrD,KAAK+qD,OAAOU,aAAeA,aAC3BzrD,KAAKkoE,QAAUt2D,IACf5R,KAAK+qD,OAAOod,QAAUv2D,IAEtB5R,KAAK6rD,aAGTA,aAEI7rD,KAAKksD,UAAY,CAAEC,SAAUnsD,KAAKL,OAAOwqD,UAEzCnqD,KAAKkrD,WAAWlmC,IAAI,SAAU,mBAAoB,GAAIhlB,KAAKksD,WAAW3b,MACjEhhB,OACGvvB,KAAKooE,QAAU74C,KAAK84C,QAEpBroE,KAAK+qD,OAAOud,MAAQ/4C,KAAKg5C,MAEzBvoE,KAAKsvC,UAAS,KACVtvC,KAAK+qD,OAAOyd,iBAAkB,KAGE,GAAhCj5C,KAAKk5C,UAAUC,cAAoB1oE,KAAK2oE,UAAY,IACf,GAAhCp5C,KAAKk5C,UAAUC,gBAAoB1oE,KAAK2oE,UAAY,KAE7D,MAAM1B,SAAWjnE,KAAKirD,cAAc0N,mBAAmB,QACjDuO,KAAOlnE,KAAK8nE,kBAAkBb,UAChCC,MACAlnE,KAAKsvC,UAAS,KACVtvC,KAAKgoE,kBAAkBd,KAAKa,UAC7B,QAGVn5B,YAITg6B,YAAY3B,SAAUnzB,QAClB9zC,KAAK6oE,YAAY3B,KAAKa,OAAQj0B,QAGlCk0B,kBAAkBH,OAAQ/zB,OAAQyzB,oBAG9BvnE,KAAK+qD,OAAO+d,cAAgBjB,OAC5B,MAAMX,KAAOlnE,KAAK+qD,OAAOge,YAAc/oE,KAAKgpE,gBAAgBnB,QACtD1d,SAAW+c,KAAK+B,OAAS/B,KAAK+B,OAAO9c,SAAW,KAChDX,WAAa0b,KAAK+B,OAAS/B,KAAK+B,OAAOC,WAAa,KACpDC,YAAcr1B,OAAS,IAAMA,OAAS,GAE5C,GAAIyzB,mBAAoB,CACpB,MAAM1/D,IACF7H,KAAKooE,QAAUpoE,KAAK2oE,UAAY,QAAUzB,KAAKkC,SAAWD,YAC9DnpE,KAAKirD,cAAc8Q,UAAUl0D,KAGjC,GAAIsiD,UAAYqB,WAAY,CACxB,MAAM2V,SAAWnhE,KAAKqpE,yBAAyBlf,SAAUqB,YACzD,uBAAE,wBAAwBnrD,KAAKL,KAAK2zC,SAASwtB,SAAdnhE,CAAwBA,KAAK+qD,UAIpEie,gBAAgBnB,QACZ,IAAIt4D,OAEJ,MAAM+5D,eAAkBhB,QACpBxb,EAAE7tD,QAAQqpE,OAAQp2D,IACd,GAAIA,EAAE61D,QAAUF,OACX,OAAOyB,eAAep3D,EAAEq2D,OADLh5D,OAAS2C,MAOzC,OAFAo3D,eAAetpE,KAAK+qD,OAAOud,OAEpB/4D,OAGXu4D,kBAAkBb,UACd,IAAI13D,OAQJ,MAAM+5D,eAAkBhB,QACpBxb,EAAE7tD,QAAQqpE,OAAQp2D,IACd,GAAIA,EAAEk3D,UAAYnC,SACb,OAAOqC,eAAep3D,EAAEq2D,OAAS,IADVh5D,OAAS2C,MAO7C,OAFAo3D,eAAetpE,KAAK+qD,OAAOud,OAEpB/4D,OAGX85D,yBAAyBlf,SAAUqB,YAO/B,MANe,uCACarB,0BAA0BA,0FACtBA,eAAeqB,gBAAgBxrD,KAAK+qD,OAAOU,4CNvFnF5sD,OAAO0qE,WAAapP","sources":["webpack://business-engine-client-app/./node_modules/angular-sanitize/angular-sanitize.js","webpack://business-engine-client-app/./node_modules/angular-sanitize/index.js","webpack://business-engine-client-app/./node_modules/moment/locale/af.js","webpack://business-engine-client-app/./node_modules/moment/locale/ar-dz.js","webpack://business-engine-client-app/./node_modules/moment/locale/ar-kw.js","webpack://business-engine-client-app/./node_modules/moment/locale/ar-ly.js","webpack://business-engine-client-app/./node_modules/moment/locale/ar-ma.js","webpack://business-engine-client-app/./node_modules/moment/locale/ar-ps.js","webpack://business-engine-client-app/./node_modules/moment/locale/ar-sa.js","webpack://business-engine-client-app/./node_modules/moment/locale/ar-tn.js","webpack://business-engine-client-app/./node_modules/moment/locale/ar.js","webpack://business-engine-client-app/./node_modules/moment/locale/az.js","webpack://business-engine-client-app/./node_modules/moment/locale/be.js","webpack://business-engine-client-app/./node_modules/moment/locale/bg.js","webpack://business-engine-client-app/./node_modules/moment/locale/bm.js","webpack://business-engine-client-app/./node_modules/moment/locale/bn-bd.js","webpack://business-engine-client-app/./node_modules/moment/locale/bn.js","webpack://business-engine-client-app/./node_modules/moment/locale/bo.js","webpack://business-engine-client-app/./node_modules/moment/locale/br.js","webpack://business-engine-client-app/./node_modules/moment/locale/bs.js","webpack://business-engine-client-app/./node_modules/moment/locale/ca.js","webpack://business-engine-client-app/./node_modules/moment/locale/cs.js","webpack://business-engine-client-app/./node_modules/moment/locale/cv.js","webpack://business-engine-client-app/./node_modules/moment/locale/cy.js","webpack://business-engine-client-app/./node_modules/moment/locale/da.js","webpack://business-engine-client-app/./node_modules/moment/locale/de-at.js","webpack://business-engine-client-app/./node_modules/moment/locale/de-ch.js","webpack://business-engine-client-app/./node_modules/moment/locale/de.js","webpack://business-engine-client-app/./node_modules/moment/locale/dv.js","webpack://business-engine-client-app/./node_modules/moment/locale/el.js","webpack://business-engine-client-app/./node_modules/moment/locale/en-au.js","webpack://business-engine-client-app/./node_modules/moment/locale/en-ca.js","webpack://business-engine-client-app/./node_modules/moment/locale/en-gb.js","webpack://business-engine-client-app/./node_modules/moment/locale/en-ie.js","webpack://business-engine-client-app/./node_modules/moment/locale/en-il.js","webpack://business-engine-client-app/./node_modules/moment/locale/en-in.js","webpack://business-engine-client-app/./node_modules/moment/locale/en-nz.js","webpack://business-engine-client-app/./node_modules/moment/locale/en-sg.js","webpack://business-engine-client-app/./node_modules/moment/locale/eo.js","webpack://business-engine-client-app/./node_modules/moment/locale/es-do.js","webpack://business-engine-client-app/./node_modules/moment/locale/es-mx.js","webpack://business-engine-client-app/./node_modules/moment/locale/es-us.js","webpack://business-engine-client-app/./node_modules/moment/locale/es.js","webpack://business-engine-client-app/./node_modules/moment/locale/et.js","webpack://business-engine-client-app/./node_modules/moment/locale/eu.js","webpack://business-engine-client-app/./node_modules/moment/locale/fa.js","webpack://business-engine-client-app/./node_modules/moment/locale/fi.js","webpack://business-engine-client-app/./node_modules/moment/locale/fil.js","webpack://business-engine-client-app/./node_modules/moment/locale/fo.js","webpack://business-engine-client-app/./node_modules/moment/locale/fr-ca.js","webpack://business-engine-client-app/./node_modules/moment/locale/fr-ch.js","webpack://business-engine-client-app/./node_modules/moment/locale/fr.js","webpack://business-engine-client-app/./node_modules/moment/locale/fy.js","webpack://business-engine-client-app/./node_modules/moment/locale/ga.js","webpack://business-engine-client-app/./node_modules/moment/locale/gd.js","webpack://business-engine-client-app/./node_modules/moment/locale/gl.js","webpack://business-engine-client-app/./node_modules/moment/locale/gom-deva.js","webpack://business-engine-client-app/./node_modules/moment/locale/gom-latn.js","webpack://business-engine-client-app/./node_modules/moment/locale/gu.js","webpack://business-engine-client-app/./node_modules/moment/locale/he.js","webpack://business-engine-client-app/./node_modules/moment/locale/hi.js","webpack://business-engine-client-app/./node_modules/moment/locale/hr.js","webpack://business-engine-client-app/./node_modules/moment/locale/hu.js","webpack://business-engine-client-app/./node_modules/moment/locale/hy-am.js","webpack://business-engine-client-app/./node_modules/moment/locale/id.js","webpack://business-engine-client-app/./node_modules/moment/locale/is.js","webpack://business-engine-client-app/./node_modules/moment/locale/it-ch.js","webpack://business-engine-client-app/./node_modules/moment/locale/it.js","webpack://business-engine-client-app/./node_modules/moment/locale/ja.js","webpack://business-engine-client-app/./node_modules/moment/locale/jv.js","webpack://business-engine-client-app/./node_modules/moment/locale/ka.js","webpack://business-engine-client-app/./node_modules/moment/locale/kk.js","webpack://business-engine-client-app/./node_modules/moment/locale/km.js","webpack://business-engine-client-app/./node_modules/moment/locale/kn.js","webpack://business-engine-client-app/./node_modules/moment/locale/ko.js","webpack://business-engine-client-app/./node_modules/moment/locale/ku-kmr.js","webpack://business-engine-client-app/./node_modules/moment/locale/ku.js","webpack://business-engine-client-app/./node_modules/moment/locale/ky.js","webpack://business-engine-client-app/./node_modules/moment/locale/lb.js","webpack://business-engine-client-app/./node_modules/moment/locale/lo.js","webpack://business-engine-client-app/./node_modules/moment/locale/lt.js","webpack://business-engine-client-app/./node_modules/moment/locale/lv.js","webpack://business-engine-client-app/./node_modules/moment/locale/me.js","webpack://business-engine-client-app/./node_modules/moment/locale/mi.js","webpack://business-engine-client-app/./node_modules/moment/locale/mk.js","webpack://business-engine-client-app/./node_modules/moment/locale/ml.js","webpack://business-engine-client-app/./node_modules/moment/locale/mn.js","webpack://business-engine-client-app/./node_modules/moment/locale/mr.js","webpack://business-engine-client-app/./node_modules/moment/locale/ms-my.js","webpack://business-engine-client-app/./node_modules/moment/locale/ms.js","webpack://business-engine-client-app/./node_modules/moment/locale/mt.js","webpack://business-engine-client-app/./node_modules/moment/locale/my.js","webpack://business-engine-client-app/./node_modules/moment/locale/nb.js","webpack://business-engine-client-app/./node_modules/moment/locale/ne.js","webpack://business-engine-client-app/./node_modules/moment/locale/nl-be.js","webpack://business-engine-client-app/./node_modules/moment/locale/nl.js","webpack://business-engine-client-app/./node_modules/moment/locale/nn.js","webpack://business-engine-client-app/./node_modules/moment/locale/oc-lnc.js","webpack://business-engine-client-app/./node_modules/moment/locale/pa-in.js","webpack://business-engine-client-app/./node_modules/moment/locale/pl.js","webpack://business-engine-client-app/./node_modules/moment/locale/pt-br.js","webpack://business-engine-client-app/./node_modules/moment/locale/pt.js","webpack://business-engine-client-app/./node_modules/moment/locale/ro.js","webpack://business-engine-client-app/./node_modules/moment/locale/ru.js","webpack://business-engine-client-app/./node_modules/moment/locale/sd.js","webpack://business-engine-client-app/./node_modules/moment/locale/se.js","webpack://business-engine-client-app/./node_modules/moment/locale/si.js","webpack://business-engine-client-app/./node_modules/moment/locale/sk.js","webpack://business-engine-client-app/./node_modules/moment/locale/sl.js","webpack://business-engine-client-app/./node_modules/moment/locale/sq.js","webpack://business-engine-client-app/./node_modules/moment/locale/sr-cyrl.js","webpack://business-engine-client-app/./node_modules/moment/locale/sr.js","webpack://business-engine-client-app/./node_modules/moment/locale/ss.js","webpack://business-engine-client-app/./node_modules/moment/locale/sv.js","webpack://business-engine-client-app/./node_modules/moment/locale/sw.js","webpack://business-engine-client-app/./node_modules/moment/locale/ta.js","webpack://business-engine-client-app/./node_modules/moment/locale/te.js","webpack://business-engine-client-app/./node_modules/moment/locale/tet.js","webpack://business-engine-client-app/./node_modules/moment/locale/tg.js","webpack://business-engine-client-app/./node_modules/moment/locale/th.js","webpack://business-engine-client-app/./node_modules/moment/locale/tk.js","webpack://business-engine-client-app/./node_modules/moment/locale/tl-ph.js","webpack://business-engine-client-app/./node_modules/moment/locale/tlh.js","webpack://business-engine-client-app/./node_modules/moment/locale/tr.js","webpack://business-engine-client-app/./node_modules/moment/locale/tzl.js","webpack://business-engine-client-app/./node_modules/moment/locale/tzm-latn.js","webpack://business-engine-client-app/./node_modules/moment/locale/tzm.js","webpack://business-engine-client-app/./node_modules/moment/locale/ug-cn.js","webpack://business-engine-client-app/./node_modules/moment/locale/uk.js","webpack://business-engine-client-app/./node_modules/moment/locale/ur.js","webpack://business-engine-client-app/./node_modules/moment/locale/uz-latn.js","webpack://business-engine-client-app/./node_modules/moment/locale/uz.js","webpack://business-engine-client-app/./node_modules/moment/locale/vi.js","webpack://business-engine-client-app/./node_modules/moment/locale/x-pseudo.js","webpack://business-engine-client-app/./node_modules/moment/locale/yo.js","webpack://business-engine-client-app/./node_modules/moment/locale/zh-cn.js","webpack://business-engine-client-app/./node_modules/moment/locale/zh-hk.js","webpack://business-engine-client-app/./node_modules/moment/locale/zh-mo.js","webpack://business-engine-client-app/./node_modules/moment/locale/zh-tw.js","webpack://business-engine-client-app/./node_modules/moment/locale/ sync ^\\.\\/.*$","webpack://business-engine-client-app/./node_modules/moment/moment.js","webpack://business-engine-client-app/./node_modules/ng-file-upload/dist/ng-file-upload-shim.js","webpack://business-engine-client-app/./node_modules/ng-file-upload/dist/ng-file-upload.js","webpack://business-engine-client-app/./src/configs/global.settings.js","webpack://business-engine-client-app/./src/controllers/module.controllers.js","webpack://business-engine-client-app/./src/directives/field.directive.js","webpack://business-engine-client-app/./src/services/action.service.js","webpack://business-engine-client-app/./src/services/expression.service.js","webpack://business-engine-client-app/external var \"jQuery\"","webpack://business-engine-client-app/webpack/bootstrap","webpack://business-engine-client-app/webpack/runtime/compat get default export","webpack://business-engine-client-app/webpack/runtime/define property getters","webpack://business-engine-client-app/webpack/runtime/hasOwnProperty shorthand","webpack://business-engine-client-app/webpack/runtime/node module decorator","webpack://business-engine-client-app/external var \"_\"","webpack://business-engine-client-app/external var \"angular\"","webpack://business-engine-client-app/./src/configs/app.config.js","webpack://business-engine-client-app/./src/app.js","webpack://business-engine-client-app/./src/providers/deferred-events.provider.js","webpack://business-engine-client-app/./src/services/global.service.js","webpack://business-engine-client-app/./src/services/api.service.js","webpack://business-engine-client-app/./src/directives/angular-extended.directive.js","webpack://business-engine-client-app/./src/directives/custom-items.directive.js","webpack://business-engine-client-app/./src/controllers/dashboard.controller.js"],"sourcesContent":["/**\n * @license AngularJS v1.8.3\n * (c) 2010-2020 Google LLC. http://angularjs.org\n * License: MIT\n */\n(function(window, angular) {'use strict';\n\n/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\n * Any commits to this file should be reviewed with security in mind. *\n * Changes to this file can potentially create security vulnerabilities. *\n * An approval from 2 Core members with history of modifying *\n * this file is required. *\n * *\n * Does the change somehow allow for arbitrary javascript to be executed? *\n * Or allows for someone to change the prototype of built-in objects? *\n * Or gives undesired access to variables likes document or window? *\n * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */\n\nvar $sanitizeMinErr = angular.$$minErr('$sanitize');\nvar bind;\nvar extend;\nvar forEach;\nvar isArray;\nvar isDefined;\nvar lowercase;\nvar noop;\nvar nodeContains;\nvar htmlParser;\nvar htmlSanitizeWriter;\n\n/**\n * @ngdoc module\n * @name ngSanitize\n * @description\n *\n * The `ngSanitize` module provides functionality to sanitize HTML.\n *\n * See {@link ngSanitize.$sanitize `$sanitize`} for usage.\n */\n\n/**\n * @ngdoc service\n * @name $sanitize\n * @kind function\n *\n * @description\n * Sanitizes an html string by stripping all potentially dangerous tokens.\n *\n * The input is sanitized by parsing the HTML into tokens. All safe tokens (from a trusted URI list) are\n * then serialized back to a properly escaped HTML string. This means that no unsafe input can make\n * it into the returned string.\n *\n * The trusted URIs for URL sanitization of attribute values is configured using the functions\n * `aHrefSanitizationTrustedUrlList` and `imgSrcSanitizationTrustedUrlList` of {@link $compileProvider}.\n *\n * The input may also contain SVG markup if this is enabled via {@link $sanitizeProvider}.\n *\n * @param {string} html HTML input.\n * @returns {string} Sanitized HTML.\n *\n * @example\n \n \n \n
\n Snippet: \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
DirectiveHowSourceRendered
ng-bind-htmlAutomatically uses $sanitize
<div ng-bind-html=\"snippet\">
</div>
ng-bind-htmlBypass $sanitize by explicitly trusting the dangerous value\n
<div ng-bind-html=\"deliberatelyTrustDangerousSnippet()\">\n</div>
\n
ng-bindAutomatically escapes
<div ng-bind=\"snippet\">
</div>
\n
\n
\n \n it('should sanitize the html snippet by default', function() {\n expect(element(by.css('#bind-html-with-sanitize div')).getAttribute('innerHTML')).\n toBe('

an html\\nclick here\\nsnippet

');\n });\n\n it('should inline raw snippet if bound to a trusted value', function() {\n expect(element(by.css('#bind-html-with-trust div')).getAttribute('innerHTML')).\n toBe(\"

an html\\n\" +\n \"click here\\n\" +\n \"snippet

\");\n });\n\n it('should escape snippet without any filter', function() {\n expect(element(by.css('#bind-default div')).getAttribute('innerHTML')).\n toBe(\"<p style=\\\"color:blue\\\">an html\\n\" +\n \"<em onmouseover=\\\"this.textContent='PWN3D!'\\\">click here</em>\\n\" +\n \"snippet</p>\");\n });\n\n it('should update', function() {\n element(by.model('snippet')).clear();\n element(by.model('snippet')).sendKeys('new text');\n expect(element(by.css('#bind-html-with-sanitize div')).getAttribute('innerHTML')).\n toBe('new text');\n expect(element(by.css('#bind-html-with-trust div')).getAttribute('innerHTML')).toBe(\n 'new text');\n expect(element(by.css('#bind-default div')).getAttribute('innerHTML')).toBe(\n \"new <b onclick=\\\"alert(1)\\\">text</b>\");\n });\n
\n
\n */\n\n\n/**\n * @ngdoc provider\n * @name $sanitizeProvider\n * @this\n *\n * @description\n * Creates and configures {@link $sanitize} instance.\n */\nfunction $SanitizeProvider() {\n var hasBeenInstantiated = false;\n var svgEnabled = false;\n\n this.$get = ['$$sanitizeUri', function($$sanitizeUri) {\n hasBeenInstantiated = true;\n if (svgEnabled) {\n extend(validElements, svgElements);\n }\n return function(html) {\n var buf = [];\n htmlParser(html, htmlSanitizeWriter(buf, function(uri, isImage) {\n return !/^unsafe:/.test($$sanitizeUri(uri, isImage));\n }));\n return buf.join('');\n };\n }];\n\n\n /**\n * @ngdoc method\n * @name $sanitizeProvider#enableSvg\n * @kind function\n *\n * @description\n * Enables a subset of svg to be supported by the sanitizer.\n *\n *
\n *

By enabling this setting without taking other precautions, you might expose your\n * application to click-hijacking attacks. In these attacks, sanitized svg elements could be positioned\n * outside of the containing element and be rendered over other elements on the page (e.g. a login\n * link). Such behavior can then result in phishing incidents.

\n *\n *

To protect against these, explicitly setup `overflow: hidden` css rule for all potential svg\n * tags within the sanitized content:

\n *\n *
\n *\n *
\n   *   .rootOfTheIncludedContent svg {\n   *     overflow: hidden !important;\n   *   }\n   *   
\n *
\n *\n * @param {boolean=} flag Enable or disable SVG support in the sanitizer.\n * @returns {boolean|$sanitizeProvider} Returns the currently configured value if called\n * without an argument or self for chaining otherwise.\n */\n this.enableSvg = function(enableSvg) {\n if (isDefined(enableSvg)) {\n svgEnabled = enableSvg;\n return this;\n } else {\n return svgEnabled;\n }\n };\n\n\n /**\n * @ngdoc method\n * @name $sanitizeProvider#addValidElements\n * @kind function\n *\n * @description\n * Extends the built-in lists of valid HTML/SVG elements, i.e. elements that are considered safe\n * and are not stripped off during sanitization. You can extend the following lists of elements:\n *\n * - `htmlElements`: A list of elements (tag names) to extend the current list of safe HTML\n * elements. HTML elements considered safe will not be removed during sanitization. All other\n * elements will be stripped off.\n *\n * - `htmlVoidElements`: This is similar to `htmlElements`, but marks the elements as\n * \"void elements\" (similar to HTML\n * [void elements](https://rawgit.com/w3c/html/html5.1-2/single-page.html#void-elements)). These\n * elements have no end tag and cannot have content.\n *\n * - `svgElements`: This is similar to `htmlElements`, but for SVG elements. This list is only\n * taken into account if SVG is {@link ngSanitize.$sanitizeProvider#enableSvg enabled} for\n * `$sanitize`.\n *\n *
\n * This method must be called during the {@link angular.Module#config config} phase. Once the\n * `$sanitize` service has been instantiated, this method has no effect.\n *
\n *\n *
\n * Keep in mind that extending the built-in lists of elements may expose your app to XSS or\n * other vulnerabilities. Be very mindful of the elements you add.\n *
\n *\n * @param {Array|Object} elements - A list of valid HTML elements or an object with one or\n * more of the following properties:\n * - **htmlElements** - `{Array}` - A list of elements to extend the current list of\n * HTML elements.\n * - **htmlVoidElements** - `{Array}` - A list of elements to extend the current list of\n * void HTML elements; i.e. elements that do not have an end tag.\n * - **svgElements** - `{Array}` - A list of elements to extend the current list of SVG\n * elements. The list of SVG elements is only taken into account if SVG is\n * {@link ngSanitize.$sanitizeProvider#enableSvg enabled} for `$sanitize`.\n *\n * Passing an array (`[...]`) is equivalent to passing `{htmlElements: [...]}`.\n *\n * @return {$sanitizeProvider} Returns self for chaining.\n */\n this.addValidElements = function(elements) {\n if (!hasBeenInstantiated) {\n if (isArray(elements)) {\n elements = {htmlElements: elements};\n }\n\n addElementsTo(svgElements, elements.svgElements);\n addElementsTo(voidElements, elements.htmlVoidElements);\n addElementsTo(validElements, elements.htmlVoidElements);\n addElementsTo(validElements, elements.htmlElements);\n }\n\n return this;\n };\n\n\n /**\n * @ngdoc method\n * @name $sanitizeProvider#addValidAttrs\n * @kind function\n *\n * @description\n * Extends the built-in list of valid attributes, i.e. attributes that are considered safe and are\n * not stripped off during sanitization.\n *\n * **Note**:\n * The new attributes will not be treated as URI attributes, which means their values will not be\n * sanitized as URIs using `$compileProvider`'s\n * {@link ng.$compileProvider#aHrefSanitizationTrustedUrlList aHrefSanitizationTrustedUrlList} and\n * {@link ng.$compileProvider#imgSrcSanitizationTrustedUrlList imgSrcSanitizationTrustedUrlList}.\n *\n *
\n * This method must be called during the {@link angular.Module#config config} phase. Once the\n * `$sanitize` service has been instantiated, this method has no effect.\n *
\n *\n *
\n * Keep in mind that extending the built-in list of attributes may expose your app to XSS or\n * other vulnerabilities. Be very mindful of the attributes you add.\n *
\n *\n * @param {Array} attrs - A list of valid attributes.\n *\n * @returns {$sanitizeProvider} Returns self for chaining.\n */\n this.addValidAttrs = function(attrs) {\n if (!hasBeenInstantiated) {\n extend(validAttrs, arrayToMap(attrs, true));\n }\n return this;\n };\n\n //////////////////////////////////////////////////////////////////////////////////////////////////\n // Private stuff\n //////////////////////////////////////////////////////////////////////////////////////////////////\n\n bind = angular.bind;\n extend = angular.extend;\n forEach = angular.forEach;\n isArray = angular.isArray;\n isDefined = angular.isDefined;\n lowercase = angular.$$lowercase;\n noop = angular.noop;\n\n htmlParser = htmlParserImpl;\n htmlSanitizeWriter = htmlSanitizeWriterImpl;\n\n nodeContains = window.Node.prototype.contains || /** @this */ function(arg) {\n // eslint-disable-next-line no-bitwise\n return !!(this.compareDocumentPosition(arg) & 16);\n };\n\n // Regular Expressions for parsing tags and attributes\n var SURROGATE_PAIR_REGEXP = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g,\n // Match everything outside of normal chars and \" (quote character)\n NON_ALPHANUMERIC_REGEXP = /([^#-~ |!])/g;\n\n\n // Good source of info about elements and attributes\n // http://dev.w3.org/html5/spec/Overview.html#semantics\n // http://simon.html5.org/html-elements\n\n // Safe Void Elements - HTML5\n // http://dev.w3.org/html5/spec/Overview.html#void-elements\n var voidElements = stringToMap('area,br,col,hr,img,wbr');\n\n // Elements that you can, intentionally, leave open (and which close themselves)\n // http://dev.w3.org/html5/spec/Overview.html#optional-tags\n var optionalEndTagBlockElements = stringToMap('colgroup,dd,dt,li,p,tbody,td,tfoot,th,thead,tr'),\n optionalEndTagInlineElements = stringToMap('rp,rt'),\n optionalEndTagElements = extend({},\n optionalEndTagInlineElements,\n optionalEndTagBlockElements);\n\n // Safe Block Elements - HTML5\n var blockElements = extend({}, optionalEndTagBlockElements, stringToMap('address,article,' +\n 'aside,blockquote,caption,center,del,dir,div,dl,figure,figcaption,footer,h1,h2,h3,h4,h5,' +\n 'h6,header,hgroup,hr,ins,map,menu,nav,ol,pre,section,table,ul'));\n\n // Inline Elements - HTML5\n var inlineElements = extend({}, optionalEndTagInlineElements, stringToMap('a,abbr,acronym,b,' +\n 'bdi,bdo,big,br,cite,code,del,dfn,em,font,i,img,ins,kbd,label,map,mark,q,ruby,rp,rt,s,' +\n 'samp,small,span,strike,strong,sub,sup,time,tt,u,var'));\n\n // SVG Elements\n // https://wiki.whatwg.org/wiki/Sanitization_rules#svg_Elements\n // Note: the elements animate,animateColor,animateMotion,animateTransform,set are intentionally omitted.\n // They can potentially allow for arbitrary javascript to be executed. See #11290\n var svgElements = stringToMap('circle,defs,desc,ellipse,font-face,font-face-name,font-face-src,g,glyph,' +\n 'hkern,image,linearGradient,line,marker,metadata,missing-glyph,mpath,path,polygon,polyline,' +\n 'radialGradient,rect,stop,svg,switch,text,title,tspan');\n\n // Blocked Elements (will be stripped)\n var blockedElements = stringToMap('script,style');\n\n var validElements = extend({},\n voidElements,\n blockElements,\n inlineElements,\n optionalEndTagElements);\n\n //Attributes that have href and hence need to be sanitized\n var uriAttrs = stringToMap('background,cite,href,longdesc,src,xlink:href,xml:base');\n\n var htmlAttrs = stringToMap('abbr,align,alt,axis,bgcolor,border,cellpadding,cellspacing,class,clear,' +\n 'color,cols,colspan,compact,coords,dir,face,headers,height,hreflang,hspace,' +\n 'ismap,lang,language,nohref,nowrap,rel,rev,rows,rowspan,rules,' +\n 'scope,scrolling,shape,size,span,start,summary,tabindex,target,title,type,' +\n 'valign,value,vspace,width');\n\n // SVG attributes (without \"id\" and \"name\" attributes)\n // https://wiki.whatwg.org/wiki/Sanitization_rules#svg_Attributes\n var svgAttrs = stringToMap('accent-height,accumulate,additive,alphabetic,arabic-form,ascent,' +\n 'baseProfile,bbox,begin,by,calcMode,cap-height,class,color,color-rendering,content,' +\n 'cx,cy,d,dx,dy,descent,display,dur,end,fill,fill-rule,font-family,font-size,font-stretch,' +\n 'font-style,font-variant,font-weight,from,fx,fy,g1,g2,glyph-name,gradientUnits,hanging,' +\n 'height,horiz-adv-x,horiz-origin-x,ideographic,k,keyPoints,keySplines,keyTimes,lang,' +\n 'marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,mathematical,' +\n 'max,min,offset,opacity,orient,origin,overline-position,overline-thickness,panose-1,' +\n 'path,pathLength,points,preserveAspectRatio,r,refX,refY,repeatCount,repeatDur,' +\n 'requiredExtensions,requiredFeatures,restart,rotate,rx,ry,slope,stemh,stemv,stop-color,' +\n 'stop-opacity,strikethrough-position,strikethrough-thickness,stroke,stroke-dasharray,' +\n 'stroke-dashoffset,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-opacity,' +\n 'stroke-width,systemLanguage,target,text-anchor,to,transform,type,u1,u2,underline-position,' +\n 'underline-thickness,unicode,unicode-range,units-per-em,values,version,viewBox,visibility,' +\n 'width,widths,x,x-height,x1,x2,xlink:actuate,xlink:arcrole,xlink:role,xlink:show,xlink:title,' +\n 'xlink:type,xml:base,xml:lang,xml:space,xmlns,xmlns:xlink,y,y1,y2,zoomAndPan', true);\n\n var validAttrs = extend({},\n uriAttrs,\n svgAttrs,\n htmlAttrs);\n\n function stringToMap(str, lowercaseKeys) {\n return arrayToMap(str.split(','), lowercaseKeys);\n }\n\n function arrayToMap(items, lowercaseKeys) {\n var obj = {}, i;\n for (i = 0; i < items.length; i++) {\n obj[lowercaseKeys ? lowercase(items[i]) : items[i]] = true;\n }\n return obj;\n }\n\n function addElementsTo(elementsMap, newElements) {\n if (newElements && newElements.length) {\n extend(elementsMap, arrayToMap(newElements));\n }\n }\n\n /**\n * Create an inert document that contains the dirty HTML that needs sanitizing.\n * We use the DOMParser API by default and fall back to createHTMLDocument if DOMParser is not\n * available.\n */\n var getInertBodyElement /* function(html: string): HTMLBodyElement */ = (function(window, document) {\n if (isDOMParserAvailable()) {\n return getInertBodyElement_DOMParser;\n }\n\n if (!document || !document.implementation) {\n throw $sanitizeMinErr('noinert', 'Can\\'t create an inert html document');\n }\n var inertDocument = document.implementation.createHTMLDocument('inert');\n var inertBodyElement = (inertDocument.documentElement || inertDocument.getDocumentElement()).querySelector('body');\n return getInertBodyElement_InertDocument;\n\n function isDOMParserAvailable() {\n try {\n return !!getInertBodyElement_DOMParser('');\n } catch (e) {\n return false;\n }\n }\n\n function getInertBodyElement_DOMParser(html) {\n // We add this dummy element to ensure that the rest of the content is parsed as expected\n // e.g. leading whitespace is maintained and tags like `` do not get hoisted to the `` tag.\n html = '' + html;\n try {\n var body = new window.DOMParser().parseFromString(html, 'text/html').body;\n body.firstChild.remove();\n return body;\n } catch (e) {\n return undefined;\n }\n }\n\n function getInertBodyElement_InertDocument(html) {\n inertBodyElement.innerHTML = html;\n\n // Support: IE 9-11 only\n // strip custom-namespaced attributes on IE<=11\n if (document.documentMode) {\n stripCustomNsAttrs(inertBodyElement);\n }\n\n return inertBodyElement;\n }\n })(window, window.document);\n\n /**\n * @example\n * htmlParser(htmlString, {\n * start: function(tag, attrs) {},\n * end: function(tag) {},\n * chars: function(text) {},\n * comment: function(text) {}\n * });\n *\n * @param {string} html string\n * @param {object} handler\n */\n function htmlParserImpl(html, handler) {\n if (html === null || html === undefined) {\n html = '';\n } else if (typeof html !== 'string') {\n html = '' + html;\n }\n\n var inertBodyElement = getInertBodyElement(html);\n if (!inertBodyElement) return '';\n\n //mXSS protection\n var mXSSAttempts = 5;\n do {\n if (mXSSAttempts === 0) {\n throw $sanitizeMinErr('uinput', 'Failed to sanitize html because the input is unstable');\n }\n mXSSAttempts--;\n\n // trigger mXSS if it is going to happen by reading and writing the innerHTML\n html = inertBodyElement.innerHTML;\n inertBodyElement = getInertBodyElement(html);\n } while (html !== inertBodyElement.innerHTML);\n\n var node = inertBodyElement.firstChild;\n while (node) {\n switch (node.nodeType) {\n case 1: // ELEMENT_NODE\n handler.start(node.nodeName.toLowerCase(), attrToMap(node.attributes));\n break;\n case 3: // TEXT NODE\n handler.chars(node.textContent);\n break;\n }\n\n var nextNode;\n if (!(nextNode = node.firstChild)) {\n if (node.nodeType === 1) {\n handler.end(node.nodeName.toLowerCase());\n }\n nextNode = getNonDescendant('nextSibling', node);\n if (!nextNode) {\n while (nextNode == null) {\n node = getNonDescendant('parentNode', node);\n if (node === inertBodyElement) break;\n nextNode = getNonDescendant('nextSibling', node);\n if (node.nodeType === 1) {\n handler.end(node.nodeName.toLowerCase());\n }\n }\n }\n }\n node = nextNode;\n }\n\n while ((node = inertBodyElement.firstChild)) {\n inertBodyElement.removeChild(node);\n }\n }\n\n function attrToMap(attrs) {\n var map = {};\n for (var i = 0, ii = attrs.length; i < ii; i++) {\n var attr = attrs[i];\n map[attr.name] = attr.value;\n }\n return map;\n }\n\n\n /**\n * Escapes all potentially dangerous characters, so that the\n * resulting string can be safely inserted into attribute or\n * element text.\n * @param value\n * @returns {string} escaped text\n */\n function encodeEntities(value) {\n return value.\n replace(/&/g, '&').\n replace(SURROGATE_PAIR_REGEXP, function(value) {\n var hi = value.charCodeAt(0);\n var low = value.charCodeAt(1);\n return '&#' + (((hi - 0xD800) * 0x400) + (low - 0xDC00) + 0x10000) + ';';\n }).\n replace(NON_ALPHANUMERIC_REGEXP, function(value) {\n return '&#' + value.charCodeAt(0) + ';';\n }).\n replace(//g, '>');\n }\n\n /**\n * create an HTML/XML writer which writes to buffer\n * @param {Array} buf use buf.join('') to get out sanitized html string\n * @returns {object} in the form of {\n * start: function(tag, attrs) {},\n * end: function(tag) {},\n * chars: function(text) {},\n * comment: function(text) {}\n * }\n */\n function htmlSanitizeWriterImpl(buf, uriValidator) {\n var ignoreCurrentElement = false;\n var out = bind(buf, buf.push);\n return {\n start: function(tag, attrs) {\n tag = lowercase(tag);\n if (!ignoreCurrentElement && blockedElements[tag]) {\n ignoreCurrentElement = tag;\n }\n if (!ignoreCurrentElement && validElements[tag] === true) {\n out('<');\n out(tag);\n forEach(attrs, function(value, key) {\n var lkey = lowercase(key);\n var isImage = (tag === 'img' && lkey === 'src') || (lkey === 'background');\n if (validAttrs[lkey] === true &&\n (uriAttrs[lkey] !== true || uriValidator(value, isImage))) {\n out(' ');\n out(key);\n out('=\"');\n out(encodeEntities(value));\n out('\"');\n }\n });\n out('>');\n }\n },\n end: function(tag) {\n tag = lowercase(tag);\n if (!ignoreCurrentElement && validElements[tag] === true && voidElements[tag] !== true) {\n out('');\n }\n // eslint-disable-next-line eqeqeq\n if (tag == ignoreCurrentElement) {\n ignoreCurrentElement = false;\n }\n },\n chars: function(chars) {\n if (!ignoreCurrentElement) {\n out(encodeEntities(chars));\n }\n }\n };\n }\n\n\n /**\n * When IE9-11 comes across an unknown namespaced attribute e.g. 'xlink:foo' it adds 'xmlns:ns1' attribute to declare\n * ns1 namespace and prefixes the attribute with 'ns1' (e.g. 'ns1:xlink:foo'). This is undesirable since we don't want\n * to allow any of these custom attributes. This method strips them all.\n *\n * @param node Root element to process\n */\n function stripCustomNsAttrs(node) {\n while (node) {\n if (node.nodeType === window.Node.ELEMENT_NODE) {\n var attrs = node.attributes;\n for (var i = 0, l = attrs.length; i < l; i++) {\n var attrNode = attrs[i];\n var attrName = attrNode.name.toLowerCase();\n if (attrName === 'xmlns:ns1' || attrName.lastIndexOf('ns1:', 0) === 0) {\n node.removeAttributeNode(attrNode);\n i--;\n l--;\n }\n }\n }\n\n var nextNode = node.firstChild;\n if (nextNode) {\n stripCustomNsAttrs(nextNode);\n }\n\n node = getNonDescendant('nextSibling', node);\n }\n }\n\n function getNonDescendant(propName, node) {\n // An element is clobbered if its `propName` property points to one of its descendants\n var nextNode = node[propName];\n if (nextNode && nodeContains.call(node, nextNode)) {\n throw $sanitizeMinErr('elclob', 'Failed to sanitize html because the element is clobbered: {0}', node.outerHTML || node.outerText);\n }\n return nextNode;\n }\n}\n\nfunction sanitizeText(chars) {\n var buf = [];\n var writer = htmlSanitizeWriter(buf, noop);\n writer.chars(chars);\n return buf.join('');\n}\n\n\n// define ngSanitize module and register $sanitize service\nangular.module('ngSanitize', [])\n .provider('$sanitize', $SanitizeProvider)\n .info({ angularVersion: '1.8.3' });\n\n/**\n * @ngdoc filter\n * @name linky\n * @kind function\n *\n * @description\n * Finds links in text input and turns them into html links. Supports `http/https/ftp/sftp/mailto` and\n * plain email address links.\n *\n * Requires the {@link ngSanitize `ngSanitize`} module to be installed.\n *\n * @param {string} text Input text.\n * @param {string} [target] Window (`_blank|_self|_parent|_top`) or named frame to open links in.\n * @param {object|function(url)} [attributes] Add custom attributes to the link element.\n *\n * Can be one of:\n *\n * - `object`: A map of attributes\n * - `function`: Takes the url as a parameter and returns a map of attributes\n *\n * If the map of attributes contains a value for `target`, it overrides the value of\n * the target parameter.\n *\n *\n * @returns {string} Html-linkified and {@link $sanitize sanitized} text.\n *\n * @usage\n \n *\n * @example\n \n \n
\n Snippet: \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
FilterSourceRendered
linky filter\n
<div ng-bind-html=\"snippet | linky\">
</div>
\n
\n
\n
linky target\n
<div ng-bind-html=\"snippetWithSingleURL | linky:'_blank'\">
</div>
\n
\n
\n
linky custom attributes\n
<div ng-bind-html=\"snippetWithSingleURL | linky:'_self':{rel: 'nofollow'}\">
</div>
\n
\n
\n
no filter
<div ng-bind=\"snippet\">
</div>
\n \n \n angular.module('linkyExample', ['ngSanitize'])\n .controller('ExampleController', ['$scope', function($scope) {\n $scope.snippet =\n 'Pretty text with some links:\\n' +\n 'http://angularjs.org/,\\n' +\n 'mailto:us@somewhere.org,\\n' +\n 'another@somewhere.org,\\n' +\n 'and one more: ftp://127.0.0.1/.';\n $scope.snippetWithSingleURL = 'http://angularjs.org/';\n }]);\n \n \n it('should linkify the snippet with urls', function() {\n expect(element(by.id('linky-filter')).element(by.binding('snippet | linky')).getText()).\n toBe('Pretty text with some links: http://angularjs.org/, us@somewhere.org, ' +\n 'another@somewhere.org, and one more: ftp://127.0.0.1/.');\n expect(element.all(by.css('#linky-filter a')).count()).toEqual(4);\n });\n\n it('should not linkify snippet without the linky filter', function() {\n expect(element(by.id('escaped-html')).element(by.binding('snippet')).getText()).\n toBe('Pretty text with some links: http://angularjs.org/, mailto:us@somewhere.org, ' +\n 'another@somewhere.org, and one more: ftp://127.0.0.1/.');\n expect(element.all(by.css('#escaped-html a')).count()).toEqual(0);\n });\n\n it('should update', function() {\n element(by.model('snippet')).clear();\n element(by.model('snippet')).sendKeys('new http://link.');\n expect(element(by.id('linky-filter')).element(by.binding('snippet | linky')).getText()).\n toBe('new http://link.');\n expect(element.all(by.css('#linky-filter a')).count()).toEqual(1);\n expect(element(by.id('escaped-html')).element(by.binding('snippet')).getText())\n .toBe('new http://link.');\n });\n\n it('should work with the target property', function() {\n expect(element(by.id('linky-target')).\n element(by.binding(\"snippetWithSingleURL | linky:'_blank'\")).getText()).\n toBe('http://angularjs.org/');\n expect(element(by.css('#linky-target a')).getAttribute('target')).toEqual('_blank');\n });\n\n it('should optionally add custom attributes', function() {\n expect(element(by.id('linky-custom-attributes')).\n element(by.binding(\"snippetWithSingleURL | linky:'_self':{rel: 'nofollow'}\")).getText()).\n toBe('http://angularjs.org/');\n expect(element(by.css('#linky-custom-attributes a')).getAttribute('rel')).toEqual('nofollow');\n });\n \n \n */\nangular.module('ngSanitize').filter('linky', ['$sanitize', function($sanitize) {\n var LINKY_URL_REGEXP =\n /((s?ftp|https?):\\/\\/|(www\\.)|(mailto:)?[A-Za-z0-9._%+-]+@)\\S*[^\\s.;,(){}<>\"\\u201d\\u2019]/i,\n MAILTO_REGEXP = /^mailto:/i;\n\n var linkyMinErr = angular.$$minErr('linky');\n var isDefined = angular.isDefined;\n var isFunction = angular.isFunction;\n var isObject = angular.isObject;\n var isString = angular.isString;\n\n return function(text, target, attributes) {\n if (text == null || text === '') return text;\n if (!isString(text)) throw linkyMinErr('notstring', 'Expected string but received: {0}', text);\n\n var attributesFn =\n isFunction(attributes) ? attributes :\n isObject(attributes) ? function getAttributesObject() {return attributes;} :\n function getEmptyAttributesObject() {return {};};\n\n var match;\n var raw = text;\n var html = [];\n var url;\n var i;\n while ((match = raw.match(LINKY_URL_REGEXP))) {\n // We can not end in these as they are sometimes found at the end of the sentence\n url = match[0];\n // if we did not match ftp/http/www/mailto then assume mailto\n if (!match[2] && !match[4]) {\n url = (match[3] ? 'http://' : 'mailto:') + url;\n }\n i = match.index;\n addText(raw.substr(0, i));\n addLink(url, match[0].replace(MAILTO_REGEXP, ''));\n raw = raw.substring(i + match[0].length);\n }\n addText(raw);\n return $sanitize(html.join(''));\n\n function addText(text) {\n if (!text) {\n return;\n }\n html.push(sanitizeText(text));\n }\n\n function addLink(url, text) {\n var key, linkAttributes = attributesFn(url);\n html.push('');\n addText(text);\n html.push('');\n }\n };\n}]);\n\n\n})(window, window.angular);\n","require('./angular-sanitize');\nmodule.exports = 'ngSanitize';\n","//! moment.js locale configuration\n//! locale : Afrikaans [af]\n//! author : Werner Mollentze : https://github.com/wernerm\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var af = moment.defineLocale('af', {\n months: 'Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mrt_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des'.split('_'),\n weekdays: 'Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag'.split(\n '_'\n ),\n weekdaysShort: 'Son_Maa_Din_Woe_Don_Vry_Sat'.split('_'),\n weekdaysMin: 'So_Ma_Di_Wo_Do_Vr_Sa'.split('_'),\n meridiemParse: /vm|nm/i,\n isPM: function (input) {\n return /^nm$/i.test(input);\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower ? 'vm' : 'VM';\n } else {\n return isLower ? 'nm' : 'NM';\n }\n },\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Vandag om] LT',\n nextDay: '[Môre om] LT',\n nextWeek: 'dddd [om] LT',\n lastDay: '[Gister om] LT',\n lastWeek: '[Laas] dddd [om] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'oor %s',\n past: '%s gelede',\n s: \"'n paar sekondes\",\n ss: '%d sekondes',\n m: \"'n minuut\",\n mm: '%d minute',\n h: \"'n uur\",\n hh: '%d ure',\n d: \"'n dag\",\n dd: '%d dae',\n M: \"'n maand\",\n MM: '%d maande',\n y: \"'n jaar\",\n yy: '%d jaar',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n ordinal: function (number) {\n return (\n number +\n (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de')\n ); // Thanks to Joris Röling : https://github.com/jjupiter\n },\n week: {\n dow: 1, // Maandag is die eerste dag van die week.\n doy: 4, // Die week wat die 4de Januarie bevat is die eerste week van die jaar.\n },\n });\n\n return af;\n\n})));\n","//! moment.js locale configuration\n//! locale : Arabic (Algeria) [ar-dz]\n//! author : Amine Roukh: https://github.com/Amine27\n//! author : Abdel Said: https://github.com/abdelsaid\n//! author : Ahmed Elkhatib\n//! author : forabi https://github.com/forabi\n//! author : Noureddine LOUAHEDJ : https://github.com/noureddinem\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var pluralForm = function (n) {\n return n === 0\n ? 0\n : n === 1\n ? 1\n : n === 2\n ? 2\n : n % 100 >= 3 && n % 100 <= 10\n ? 3\n : n % 100 >= 11\n ? 4\n : 5;\n },\n plurals = {\n s: [\n 'أقل من ثانية',\n 'ثانية واحدة',\n ['ثانيتان', 'ثانيتين'],\n '%d ثوان',\n '%d ثانية',\n '%d ثانية',\n ],\n m: [\n 'أقل من دقيقة',\n 'دقيقة واحدة',\n ['دقيقتان', 'دقيقتين'],\n '%d دقائق',\n '%d دقيقة',\n '%d دقيقة',\n ],\n h: [\n 'أقل من ساعة',\n 'ساعة واحدة',\n ['ساعتان', 'ساعتين'],\n '%d ساعات',\n '%d ساعة',\n '%d ساعة',\n ],\n d: [\n 'أقل من يوم',\n 'يوم واحد',\n ['يومان', 'يومين'],\n '%d أيام',\n '%d يومًا',\n '%d يوم',\n ],\n M: [\n 'أقل من شهر',\n 'شهر واحد',\n ['شهران', 'شهرين'],\n '%d أشهر',\n '%d شهرا',\n '%d شهر',\n ],\n y: [\n 'أقل من عام',\n 'عام واحد',\n ['عامان', 'عامين'],\n '%d أعوام',\n '%d عامًا',\n '%d عام',\n ],\n },\n pluralize = function (u) {\n return function (number, withoutSuffix, string, isFuture) {\n var f = pluralForm(number),\n str = plurals[u][pluralForm(number)];\n if (f === 2) {\n str = str[withoutSuffix ? 0 : 1];\n }\n return str.replace(/%d/i, number);\n };\n },\n months = [\n 'جانفي',\n 'فيفري',\n 'مارس',\n 'أفريل',\n 'ماي',\n 'جوان',\n 'جويلية',\n 'أوت',\n 'سبتمبر',\n 'أكتوبر',\n 'نوفمبر',\n 'ديسمبر',\n ];\n\n var arDz = moment.defineLocale('ar-dz', {\n months: months,\n monthsShort: months,\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'D/\\u200FM/\\u200FYYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /ص|م/,\n isPM: function (input) {\n return 'م' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ص';\n } else {\n return 'م';\n }\n },\n calendar: {\n sameDay: '[اليوم عند الساعة] LT',\n nextDay: '[غدًا عند الساعة] LT',\n nextWeek: 'dddd [عند الساعة] LT',\n lastDay: '[أمس عند الساعة] LT',\n lastWeek: 'dddd [عند الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'بعد %s',\n past: 'منذ %s',\n s: pluralize('s'),\n ss: pluralize('s'),\n m: pluralize('m'),\n mm: pluralize('m'),\n h: pluralize('h'),\n hh: pluralize('h'),\n d: pluralize('d'),\n dd: pluralize('d'),\n M: pluralize('M'),\n MM: pluralize('M'),\n y: pluralize('y'),\n yy: pluralize('y'),\n },\n postformat: function (string) {\n return string.replace(/,/g, '،');\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return arDz;\n\n})));\n","//! moment.js locale configuration\n//! locale : Arabic (Kuwait) [ar-kw]\n//! author : Nusret Parlak: https://github.com/nusretparlak\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var arKw = moment.defineLocale('ar-kw', {\n months: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(\n '_'\n ),\n monthsShort:\n 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(\n '_'\n ),\n weekdays: 'الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'في %s',\n past: 'منذ %s',\n s: 'ثوان',\n ss: '%d ثانية',\n m: 'دقيقة',\n mm: '%d دقائق',\n h: 'ساعة',\n hh: '%d ساعات',\n d: 'يوم',\n dd: '%d أيام',\n M: 'شهر',\n MM: '%d أشهر',\n y: 'سنة',\n yy: '%d سنوات',\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return arKw;\n\n})));\n","//! moment.js locale configuration\n//! locale : Arabic (Libya) [ar-ly]\n//! author : Ali Hmer: https://github.com/kikoanis\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '1',\n 2: '2',\n 3: '3',\n 4: '4',\n 5: '5',\n 6: '6',\n 7: '7',\n 8: '8',\n 9: '9',\n 0: '0',\n },\n pluralForm = function (n) {\n return n === 0\n ? 0\n : n === 1\n ? 1\n : n === 2\n ? 2\n : n % 100 >= 3 && n % 100 <= 10\n ? 3\n : n % 100 >= 11\n ? 4\n : 5;\n },\n plurals = {\n s: [\n 'أقل من ثانية',\n 'ثانية واحدة',\n ['ثانيتان', 'ثانيتين'],\n '%d ثوان',\n '%d ثانية',\n '%d ثانية',\n ],\n m: [\n 'أقل من دقيقة',\n 'دقيقة واحدة',\n ['دقيقتان', 'دقيقتين'],\n '%d دقائق',\n '%d دقيقة',\n '%d دقيقة',\n ],\n h: [\n 'أقل من ساعة',\n 'ساعة واحدة',\n ['ساعتان', 'ساعتين'],\n '%d ساعات',\n '%d ساعة',\n '%d ساعة',\n ],\n d: [\n 'أقل من يوم',\n 'يوم واحد',\n ['يومان', 'يومين'],\n '%d أيام',\n '%d يومًا',\n '%d يوم',\n ],\n M: [\n 'أقل من شهر',\n 'شهر واحد',\n ['شهران', 'شهرين'],\n '%d أشهر',\n '%d شهرا',\n '%d شهر',\n ],\n y: [\n 'أقل من عام',\n 'عام واحد',\n ['عامان', 'عامين'],\n '%d أعوام',\n '%d عامًا',\n '%d عام',\n ],\n },\n pluralize = function (u) {\n return function (number, withoutSuffix, string, isFuture) {\n var f = pluralForm(number),\n str = plurals[u][pluralForm(number)];\n if (f === 2) {\n str = str[withoutSuffix ? 0 : 1];\n }\n return str.replace(/%d/i, number);\n };\n },\n months = [\n 'يناير',\n 'فبراير',\n 'مارس',\n 'أبريل',\n 'مايو',\n 'يونيو',\n 'يوليو',\n 'أغسطس',\n 'سبتمبر',\n 'أكتوبر',\n 'نوفمبر',\n 'ديسمبر',\n ];\n\n var arLy = moment.defineLocale('ar-ly', {\n months: months,\n monthsShort: months,\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'D/\\u200FM/\\u200FYYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /ص|م/,\n isPM: function (input) {\n return 'م' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ص';\n } else {\n return 'م';\n }\n },\n calendar: {\n sameDay: '[اليوم عند الساعة] LT',\n nextDay: '[غدًا عند الساعة] LT',\n nextWeek: 'dddd [عند الساعة] LT',\n lastDay: '[أمس عند الساعة] LT',\n lastWeek: 'dddd [عند الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'بعد %s',\n past: 'منذ %s',\n s: pluralize('s'),\n ss: pluralize('s'),\n m: pluralize('m'),\n mm: pluralize('m'),\n h: pluralize('h'),\n hh: pluralize('h'),\n d: pluralize('d'),\n dd: pluralize('d'),\n M: pluralize('M'),\n MM: pluralize('M'),\n y: pluralize('y'),\n yy: pluralize('y'),\n },\n preparse: function (string) {\n return string.replace(/،/g, ',');\n },\n postformat: function (string) {\n return string\n .replace(/\\d/g, function (match) {\n return symbolMap[match];\n })\n .replace(/,/g, '،');\n },\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return arLy;\n\n})));\n","//! moment.js locale configuration\n//! locale : Arabic (Morocco) [ar-ma]\n//! author : ElFadili Yassine : https://github.com/ElFadiliY\n//! author : Abdel Said : https://github.com/abdelsaid\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var arMa = moment.defineLocale('ar-ma', {\n months: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(\n '_'\n ),\n monthsShort:\n 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(\n '_'\n ),\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'احد_اثنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'في %s',\n past: 'منذ %s',\n s: 'ثوان',\n ss: '%d ثانية',\n m: 'دقيقة',\n mm: '%d دقائق',\n h: 'ساعة',\n hh: '%d ساعات',\n d: 'يوم',\n dd: '%d أيام',\n M: 'شهر',\n MM: '%d أشهر',\n y: 'سنة',\n yy: '%d سنوات',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return arMa;\n\n})));\n","//! moment.js locale configuration\n//! locale : Arabic (Palestine) [ar-ps]\n//! author : Majd Al-Shihabi : https://github.com/majdal\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '١',\n 2: '٢',\n 3: '٣',\n 4: '٤',\n 5: '٥',\n 6: '٦',\n 7: '٧',\n 8: '٨',\n 9: '٩',\n 0: '٠',\n },\n numberMap = {\n '١': '1',\n '٢': '2',\n '٣': '3',\n '٤': '4',\n '٥': '5',\n '٦': '6',\n '٧': '7',\n '٨': '8',\n '٩': '9',\n '٠': '0',\n };\n\n var arPs = moment.defineLocale('ar-ps', {\n months: 'كانون الثاني_شباط_آذار_نيسان_أيّار_حزيران_تمّوز_آب_أيلول_تشري الأوّل_تشرين الثاني_كانون الأوّل'.split(\n '_'\n ),\n monthsShort:\n 'ك٢_شباط_آذار_نيسان_أيّار_حزيران_تمّوز_آب_أيلول_ت١_ت٢_ك١'.split('_'),\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /ص|م/,\n isPM: function (input) {\n return 'م' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ص';\n } else {\n return 'م';\n }\n },\n calendar: {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'في %s',\n past: 'منذ %s',\n s: 'ثوان',\n ss: '%d ثانية',\n m: 'دقيقة',\n mm: '%d دقائق',\n h: 'ساعة',\n hh: '%d ساعات',\n d: 'يوم',\n dd: '%d أيام',\n M: 'شهر',\n MM: '%d أشهر',\n y: 'سنة',\n yy: '%d سنوات',\n },\n preparse: function (string) {\n return string\n .replace(/[٣٤٥٦٧٨٩٠]/g, function (match) {\n return numberMap[match];\n })\n .split('') // reversed since negative lookbehind not supported everywhere\n .reverse()\n .join('')\n .replace(/[١٢](?![\\u062a\\u0643])/g, function (match) {\n return numberMap[match];\n })\n .split('')\n .reverse()\n .join('')\n .replace(/،/g, ',');\n },\n postformat: function (string) {\n return string\n .replace(/\\d/g, function (match) {\n return symbolMap[match];\n })\n .replace(/,/g, '،');\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return arPs;\n\n})));\n","//! moment.js locale configuration\n//! locale : Arabic (Saudi Arabia) [ar-sa]\n//! author : Suhail Alkowaileet : https://github.com/xsoh\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '١',\n 2: '٢',\n 3: '٣',\n 4: '٤',\n 5: '٥',\n 6: '٦',\n 7: '٧',\n 8: '٨',\n 9: '٩',\n 0: '٠',\n },\n numberMap = {\n '١': '1',\n '٢': '2',\n '٣': '3',\n '٤': '4',\n '٥': '5',\n '٦': '6',\n '٧': '7',\n '٨': '8',\n '٩': '9',\n '٠': '0',\n };\n\n var arSa = moment.defineLocale('ar-sa', {\n months: 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split(\n '_'\n ),\n monthsShort:\n 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split(\n '_'\n ),\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /ص|م/,\n isPM: function (input) {\n return 'م' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ص';\n } else {\n return 'م';\n }\n },\n calendar: {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'في %s',\n past: 'منذ %s',\n s: 'ثوان',\n ss: '%d ثانية',\n m: 'دقيقة',\n mm: '%d دقائق',\n h: 'ساعة',\n hh: '%d ساعات',\n d: 'يوم',\n dd: '%d أيام',\n M: 'شهر',\n MM: '%d أشهر',\n y: 'سنة',\n yy: '%d سنوات',\n },\n preparse: function (string) {\n return string\n .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {\n return numberMap[match];\n })\n .replace(/،/g, ',');\n },\n postformat: function (string) {\n return string\n .replace(/\\d/g, function (match) {\n return symbolMap[match];\n })\n .replace(/,/g, '،');\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return arSa;\n\n})));\n","//! moment.js locale configuration\n//! locale : Arabic (Tunisia) [ar-tn]\n//! author : Nader Toukabri : https://github.com/naderio\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var arTn = moment.defineLocale('ar-tn', {\n months: 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split(\n '_'\n ),\n monthsShort:\n 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split(\n '_'\n ),\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'في %s',\n past: 'منذ %s',\n s: 'ثوان',\n ss: '%d ثانية',\n m: 'دقيقة',\n mm: '%d دقائق',\n h: 'ساعة',\n hh: '%d ساعات',\n d: 'يوم',\n dd: '%d أيام',\n M: 'شهر',\n MM: '%d أشهر',\n y: 'سنة',\n yy: '%d سنوات',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return arTn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Arabic [ar]\n//! author : Abdel Said: https://github.com/abdelsaid\n//! author : Ahmed Elkhatib\n//! author : forabi https://github.com/forabi\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '١',\n 2: '٢',\n 3: '٣',\n 4: '٤',\n 5: '٥',\n 6: '٦',\n 7: '٧',\n 8: '٨',\n 9: '٩',\n 0: '٠',\n },\n numberMap = {\n '١': '1',\n '٢': '2',\n '٣': '3',\n '٤': '4',\n '٥': '5',\n '٦': '6',\n '٧': '7',\n '٨': '8',\n '٩': '9',\n '٠': '0',\n },\n pluralForm = function (n) {\n return n === 0\n ? 0\n : n === 1\n ? 1\n : n === 2\n ? 2\n : n % 100 >= 3 && n % 100 <= 10\n ? 3\n : n % 100 >= 11\n ? 4\n : 5;\n },\n plurals = {\n s: [\n 'أقل من ثانية',\n 'ثانية واحدة',\n ['ثانيتان', 'ثانيتين'],\n '%d ثوان',\n '%d ثانية',\n '%d ثانية',\n ],\n m: [\n 'أقل من دقيقة',\n 'دقيقة واحدة',\n ['دقيقتان', 'دقيقتين'],\n '%d دقائق',\n '%d دقيقة',\n '%d دقيقة',\n ],\n h: [\n 'أقل من ساعة',\n 'ساعة واحدة',\n ['ساعتان', 'ساعتين'],\n '%d ساعات',\n '%d ساعة',\n '%d ساعة',\n ],\n d: [\n 'أقل من يوم',\n 'يوم واحد',\n ['يومان', 'يومين'],\n '%d أيام',\n '%d يومًا',\n '%d يوم',\n ],\n M: [\n 'أقل من شهر',\n 'شهر واحد',\n ['شهران', 'شهرين'],\n '%d أشهر',\n '%d شهرا',\n '%d شهر',\n ],\n y: [\n 'أقل من عام',\n 'عام واحد',\n ['عامان', 'عامين'],\n '%d أعوام',\n '%d عامًا',\n '%d عام',\n ],\n },\n pluralize = function (u) {\n return function (number, withoutSuffix, string, isFuture) {\n var f = pluralForm(number),\n str = plurals[u][pluralForm(number)];\n if (f === 2) {\n str = str[withoutSuffix ? 0 : 1];\n }\n return str.replace(/%d/i, number);\n };\n },\n months = [\n 'يناير',\n 'فبراير',\n 'مارس',\n 'أبريل',\n 'مايو',\n 'يونيو',\n 'يوليو',\n 'أغسطس',\n 'سبتمبر',\n 'أكتوبر',\n 'نوفمبر',\n 'ديسمبر',\n ];\n\n var ar = moment.defineLocale('ar', {\n months: months,\n monthsShort: months,\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'D/\\u200FM/\\u200FYYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /ص|م/,\n isPM: function (input) {\n return 'م' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ص';\n } else {\n return 'م';\n }\n },\n calendar: {\n sameDay: '[اليوم عند الساعة] LT',\n nextDay: '[غدًا عند الساعة] LT',\n nextWeek: 'dddd [عند الساعة] LT',\n lastDay: '[أمس عند الساعة] LT',\n lastWeek: 'dddd [عند الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'بعد %s',\n past: 'منذ %s',\n s: pluralize('s'),\n ss: pluralize('s'),\n m: pluralize('m'),\n mm: pluralize('m'),\n h: pluralize('h'),\n hh: pluralize('h'),\n d: pluralize('d'),\n dd: pluralize('d'),\n M: pluralize('M'),\n MM: pluralize('M'),\n y: pluralize('y'),\n yy: pluralize('y'),\n },\n preparse: function (string) {\n return string\n .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {\n return numberMap[match];\n })\n .replace(/،/g, ',');\n },\n postformat: function (string) {\n return string\n .replace(/\\d/g, function (match) {\n return symbolMap[match];\n })\n .replace(/,/g, '،');\n },\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return ar;\n\n})));\n","//! moment.js locale configuration\n//! locale : Azerbaijani [az]\n//! author : topchiyev : https://github.com/topchiyev\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var suffixes = {\n 1: '-inci',\n 5: '-inci',\n 8: '-inci',\n 70: '-inci',\n 80: '-inci',\n 2: '-nci',\n 7: '-nci',\n 20: '-nci',\n 50: '-nci',\n 3: '-üncü',\n 4: '-üncü',\n 100: '-üncü',\n 6: '-ncı',\n 9: '-uncu',\n 10: '-uncu',\n 30: '-uncu',\n 60: '-ıncı',\n 90: '-ıncı',\n };\n\n var az = moment.defineLocale('az', {\n months: 'yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr'.split(\n '_'\n ),\n monthsShort: 'yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek'.split('_'),\n weekdays:\n 'Bazar_Bazar ertəsi_Çərşənbə axşamı_Çərşənbə_Cümə axşamı_Cümə_Şənbə'.split(\n '_'\n ),\n weekdaysShort: 'Baz_BzE_ÇAx_Çər_CAx_Cüm_Şən'.split('_'),\n weekdaysMin: 'Bz_BE_ÇA_Çə_CA_Cü_Şə'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[bugün saat] LT',\n nextDay: '[sabah saat] LT',\n nextWeek: '[gələn həftə] dddd [saat] LT',\n lastDay: '[dünən] LT',\n lastWeek: '[keçən həftə] dddd [saat] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s sonra',\n past: '%s əvvəl',\n s: 'bir neçə saniyə',\n ss: '%d saniyə',\n m: 'bir dəqiqə',\n mm: '%d dəqiqə',\n h: 'bir saat',\n hh: '%d saat',\n d: 'bir gün',\n dd: '%d gün',\n M: 'bir ay',\n MM: '%d ay',\n y: 'bir il',\n yy: '%d il',\n },\n meridiemParse: /gecə|səhər|gündüz|axşam/,\n isPM: function (input) {\n return /^(gündüz|axşam)$/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'gecə';\n } else if (hour < 12) {\n return 'səhər';\n } else if (hour < 17) {\n return 'gündüz';\n } else {\n return 'axşam';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ıncı|inci|nci|üncü|ncı|uncu)/,\n ordinal: function (number) {\n if (number === 0) {\n // special case for zero\n return number + '-ıncı';\n }\n var a = number % 10,\n b = (number % 100) - a,\n c = number >= 100 ? 100 : null;\n return number + (suffixes[a] || suffixes[b] || suffixes[c]);\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return az;\n\n})));\n","//! moment.js locale configuration\n//! locale : Belarusian [be]\n//! author : Dmitry Demidov : https://github.com/demidov91\n//! author: Praleska: http://praleska.pro/\n//! Author : Menelion Elensúle : https://github.com/Oire\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function plural(word, num) {\n var forms = word.split('_');\n return num % 10 === 1 && num % 100 !== 11\n ? forms[0]\n : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20)\n ? forms[1]\n : forms[2];\n }\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n var format = {\n ss: withoutSuffix ? 'секунда_секунды_секунд' : 'секунду_секунды_секунд',\n mm: withoutSuffix ? 'хвіліна_хвіліны_хвілін' : 'хвіліну_хвіліны_хвілін',\n hh: withoutSuffix ? 'гадзіна_гадзіны_гадзін' : 'гадзіну_гадзіны_гадзін',\n dd: 'дзень_дні_дзён',\n MM: 'месяц_месяцы_месяцаў',\n yy: 'год_гады_гадоў',\n };\n if (key === 'm') {\n return withoutSuffix ? 'хвіліна' : 'хвіліну';\n } else if (key === 'h') {\n return withoutSuffix ? 'гадзіна' : 'гадзіну';\n } else {\n return number + ' ' + plural(format[key], +number);\n }\n }\n\n var be = moment.defineLocale('be', {\n months: {\n format: 'студзеня_лютага_сакавіка_красавіка_траўня_чэрвеня_ліпеня_жніўня_верасня_кастрычніка_лістапада_снежня'.split(\n '_'\n ),\n standalone:\n 'студзень_люты_сакавік_красавік_травень_чэрвень_ліпень_жнівень_верасень_кастрычнік_лістапад_снежань'.split(\n '_'\n ),\n },\n monthsShort:\n 'студ_лют_сак_крас_трав_чэрв_ліп_жнів_вер_каст_ліст_снеж'.split('_'),\n weekdays: {\n format: 'нядзелю_панядзелак_аўторак_сераду_чацвер_пятніцу_суботу'.split(\n '_'\n ),\n standalone:\n 'нядзеля_панядзелак_аўторак_серада_чацвер_пятніца_субота'.split(\n '_'\n ),\n isFormat: /\\[ ?[Ууў] ?(?:мінулую|наступную)? ?\\] ?dddd/,\n },\n weekdaysShort: 'нд_пн_ат_ср_чц_пт_сб'.split('_'),\n weekdaysMin: 'нд_пн_ат_ср_чц_пт_сб'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY г.',\n LLL: 'D MMMM YYYY г., HH:mm',\n LLLL: 'dddd, D MMMM YYYY г., HH:mm',\n },\n calendar: {\n sameDay: '[Сёння ў] LT',\n nextDay: '[Заўтра ў] LT',\n lastDay: '[Учора ў] LT',\n nextWeek: function () {\n return '[У] dddd [ў] LT';\n },\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n case 5:\n case 6:\n return '[У мінулую] dddd [ў] LT';\n case 1:\n case 2:\n case 4:\n return '[У мінулы] dddd [ў] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'праз %s',\n past: '%s таму',\n s: 'некалькі секунд',\n m: relativeTimeWithPlural,\n mm: relativeTimeWithPlural,\n h: relativeTimeWithPlural,\n hh: relativeTimeWithPlural,\n d: 'дзень',\n dd: relativeTimeWithPlural,\n M: 'месяц',\n MM: relativeTimeWithPlural,\n y: 'год',\n yy: relativeTimeWithPlural,\n },\n meridiemParse: /ночы|раніцы|дня|вечара/,\n isPM: function (input) {\n return /^(дня|вечара)$/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ночы';\n } else if (hour < 12) {\n return 'раніцы';\n } else if (hour < 17) {\n return 'дня';\n } else {\n return 'вечара';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(і|ы|га)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'M':\n case 'd':\n case 'DDD':\n case 'w':\n case 'W':\n return (number % 10 === 2 || number % 10 === 3) &&\n number % 100 !== 12 &&\n number % 100 !== 13\n ? number + '-і'\n : number + '-ы';\n case 'D':\n return number + '-га';\n default:\n return number;\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return be;\n\n})));\n","//! moment.js locale configuration\n//! locale : Bulgarian [bg]\n//! author : Krasen Borisov : https://github.com/kraz\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var bg = moment.defineLocale('bg', {\n months: 'януари_февруари_март_април_май_юни_юли_август_септември_октомври_ноември_декември'.split(\n '_'\n ),\n monthsShort: 'яну_фев_мар_апр_май_юни_юли_авг_сеп_окт_ное_дек'.split('_'),\n weekdays: 'неделя_понеделник_вторник_сряда_четвъртък_петък_събота'.split(\n '_'\n ),\n weekdaysShort: 'нед_пон_вто_сря_чет_пет_съб'.split('_'),\n weekdaysMin: 'нд_пн_вт_ср_чт_пт_сб'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'D.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY H:mm',\n LLLL: 'dddd, D MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[Днес в] LT',\n nextDay: '[Утре в] LT',\n nextWeek: 'dddd [в] LT',\n lastDay: '[Вчера в] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n case 6:\n return '[Миналата] dddd [в] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[Миналия] dddd [в] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'след %s',\n past: 'преди %s',\n s: 'няколко секунди',\n ss: '%d секунди',\n m: 'минута',\n mm: '%d минути',\n h: 'час',\n hh: '%d часа',\n d: 'ден',\n dd: '%d дена',\n w: 'седмица',\n ww: '%d седмици',\n M: 'месец',\n MM: '%d месеца',\n y: 'година',\n yy: '%d години',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ев|ен|ти|ви|ри|ми)/,\n ordinal: function (number) {\n var lastDigit = number % 10,\n last2Digits = number % 100;\n if (number === 0) {\n return number + '-ев';\n } else if (last2Digits === 0) {\n return number + '-ен';\n } else if (last2Digits > 10 && last2Digits < 20) {\n return number + '-ти';\n } else if (lastDigit === 1) {\n return number + '-ви';\n } else if (lastDigit === 2) {\n return number + '-ри';\n } else if (lastDigit === 7 || lastDigit === 8) {\n return number + '-ми';\n } else {\n return number + '-ти';\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return bg;\n\n})));\n","//! moment.js locale configuration\n//! locale : Bambara [bm]\n//! author : Estelle Comment : https://github.com/estellecomment\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var bm = moment.defineLocale('bm', {\n months: 'Zanwuyekalo_Fewuruyekalo_Marisikalo_Awirilikalo_Mɛkalo_Zuwɛnkalo_Zuluyekalo_Utikalo_Sɛtanburukalo_ɔkutɔburukalo_Nowanburukalo_Desanburukalo'.split(\n '_'\n ),\n monthsShort: 'Zan_Few_Mar_Awi_Mɛ_Zuw_Zul_Uti_Sɛt_ɔku_Now_Des'.split('_'),\n weekdays: 'Kari_Ntɛnɛn_Tarata_Araba_Alamisa_Juma_Sibiri'.split('_'),\n weekdaysShort: 'Kar_Ntɛ_Tar_Ara_Ala_Jum_Sib'.split('_'),\n weekdaysMin: 'Ka_Nt_Ta_Ar_Al_Ju_Si'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'MMMM [tile] D [san] YYYY',\n LLL: 'MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm',\n LLLL: 'dddd MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm',\n },\n calendar: {\n sameDay: '[Bi lɛrɛ] LT',\n nextDay: '[Sini lɛrɛ] LT',\n nextWeek: 'dddd [don lɛrɛ] LT',\n lastDay: '[Kunu lɛrɛ] LT',\n lastWeek: 'dddd [tɛmɛnen lɛrɛ] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s kɔnɔ',\n past: 'a bɛ %s bɔ',\n s: 'sanga dama dama',\n ss: 'sekondi %d',\n m: 'miniti kelen',\n mm: 'miniti %d',\n h: 'lɛrɛ kelen',\n hh: 'lɛrɛ %d',\n d: 'tile kelen',\n dd: 'tile %d',\n M: 'kalo kelen',\n MM: 'kalo %d',\n y: 'san kelen',\n yy: 'san %d',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return bm;\n\n})));\n","//! moment.js locale configuration\n//! locale : Bengali (Bangladesh) [bn-bd]\n//! author : Asraf Hossain Patoary : https://github.com/ashwoolford\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '১',\n 2: '২',\n 3: '৩',\n 4: '৪',\n 5: '৫',\n 6: '৬',\n 7: '৭',\n 8: '৮',\n 9: '৯',\n 0: '০',\n },\n numberMap = {\n '১': '1',\n '২': '2',\n '৩': '3',\n '৪': '4',\n '৫': '5',\n '৬': '6',\n '৭': '7',\n '৮': '8',\n '৯': '9',\n '০': '0',\n };\n\n var bnBd = moment.defineLocale('bn-bd', {\n months: 'জানুয়ারি_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর'.split(\n '_'\n ),\n monthsShort:\n 'জানু_ফেব্রু_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্ট_অক্টো_নভে_ডিসে'.split(\n '_'\n ),\n weekdays: 'রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার'.split(\n '_'\n ),\n weekdaysShort: 'রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি'.split('_'),\n weekdaysMin: 'রবি_সোম_মঙ্গল_বুধ_বৃহ_শুক্র_শনি'.split('_'),\n longDateFormat: {\n LT: 'A h:mm সময়',\n LTS: 'A h:mm:ss সময়',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm সময়',\n LLLL: 'dddd, D MMMM YYYY, A h:mm সময়',\n },\n calendar: {\n sameDay: '[আজ] LT',\n nextDay: '[আগামীকাল] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[গতকাল] LT',\n lastWeek: '[গত] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s পরে',\n past: '%s আগে',\n s: 'কয়েক সেকেন্ড',\n ss: '%d সেকেন্ড',\n m: 'এক মিনিট',\n mm: '%d মিনিট',\n h: 'এক ঘন্টা',\n hh: '%d ঘন্টা',\n d: 'এক দিন',\n dd: '%d দিন',\n M: 'এক মাস',\n MM: '%d মাস',\n y: 'এক বছর',\n yy: '%d বছর',\n },\n preparse: function (string) {\n return string.replace(/[১২৩৪৫৬৭৮৯০]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n\n meridiemParse: /রাত|ভোর|সকাল|দুপুর|বিকাল|সন্ধ্যা|রাত/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'রাত') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'ভোর') {\n return hour;\n } else if (meridiem === 'সকাল') {\n return hour;\n } else if (meridiem === 'দুপুর') {\n return hour >= 3 ? hour : hour + 12;\n } else if (meridiem === 'বিকাল') {\n return hour + 12;\n } else if (meridiem === 'সন্ধ্যা') {\n return hour + 12;\n }\n },\n\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'রাত';\n } else if (hour < 6) {\n return 'ভোর';\n } else if (hour < 12) {\n return 'সকাল';\n } else if (hour < 15) {\n return 'দুপুর';\n } else if (hour < 18) {\n return 'বিকাল';\n } else if (hour < 20) {\n return 'সন্ধ্যা';\n } else {\n return 'রাত';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return bnBd;\n\n})));\n","//! moment.js locale configuration\n//! locale : Bengali [bn]\n//! author : Kaushik Gandhi : https://github.com/kaushikgandhi\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '১',\n 2: '২',\n 3: '৩',\n 4: '৪',\n 5: '৫',\n 6: '৬',\n 7: '৭',\n 8: '৮',\n 9: '৯',\n 0: '০',\n },\n numberMap = {\n '১': '1',\n '২': '2',\n '৩': '3',\n '৪': '4',\n '৫': '5',\n '৬': '6',\n '৭': '7',\n '৮': '8',\n '৯': '9',\n '০': '0',\n };\n\n var bn = moment.defineLocale('bn', {\n months: 'জানুয়ারি_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর'.split(\n '_'\n ),\n monthsShort:\n 'জানু_ফেব্রু_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্ট_অক্টো_নভে_ডিসে'.split(\n '_'\n ),\n weekdays: 'রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার'.split(\n '_'\n ),\n weekdaysShort: 'রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি'.split('_'),\n weekdaysMin: 'রবি_সোম_মঙ্গল_বুধ_বৃহ_শুক্র_শনি'.split('_'),\n longDateFormat: {\n LT: 'A h:mm সময়',\n LTS: 'A h:mm:ss সময়',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm সময়',\n LLLL: 'dddd, D MMMM YYYY, A h:mm সময়',\n },\n calendar: {\n sameDay: '[আজ] LT',\n nextDay: '[আগামীকাল] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[গতকাল] LT',\n lastWeek: '[গত] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s পরে',\n past: '%s আগে',\n s: 'কয়েক সেকেন্ড',\n ss: '%d সেকেন্ড',\n m: 'এক মিনিট',\n mm: '%d মিনিট',\n h: 'এক ঘন্টা',\n hh: '%d ঘন্টা',\n d: 'এক দিন',\n dd: '%d দিন',\n M: 'এক মাস',\n MM: '%d মাস',\n y: 'এক বছর',\n yy: '%d বছর',\n },\n preparse: function (string) {\n return string.replace(/[১২৩৪৫৬৭৮৯০]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /রাত|সকাল|দুপুর|বিকাল|রাত/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (\n (meridiem === 'রাত' && hour >= 4) ||\n (meridiem === 'দুপুর' && hour < 5) ||\n meridiem === 'বিকাল'\n ) {\n return hour + 12;\n } else {\n return hour;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'রাত';\n } else if (hour < 10) {\n return 'সকাল';\n } else if (hour < 17) {\n return 'দুপুর';\n } else if (hour < 20) {\n return 'বিকাল';\n } else {\n return 'রাত';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return bn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Tibetan [bo]\n//! author : Thupten N. Chakrishar : https://github.com/vajradog\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '༡',\n 2: '༢',\n 3: '༣',\n 4: '༤',\n 5: '༥',\n 6: '༦',\n 7: '༧',\n 8: '༨',\n 9: '༩',\n 0: '༠',\n },\n numberMap = {\n '༡': '1',\n '༢': '2',\n '༣': '3',\n '༤': '4',\n '༥': '5',\n '༦': '6',\n '༧': '7',\n '༨': '8',\n '༩': '9',\n '༠': '0',\n };\n\n var bo = moment.defineLocale('bo', {\n months: 'ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ'.split(\n '_'\n ),\n monthsShort:\n 'ཟླ་1_ཟླ་2_ཟླ་3_ཟླ་4_ཟླ་5_ཟླ་6_ཟླ་7_ཟླ་8_ཟླ་9_ཟླ་10_ཟླ་11_ཟླ་12'.split(\n '_'\n ),\n monthsShortRegex: /^(ཟླ་\\d{1,2})/,\n monthsParseExact: true,\n weekdays:\n 'གཟའ་ཉི་མ་_གཟའ་ཟླ་བ་_གཟའ་མིག་དམར་_གཟའ་ལྷག་པ་_གཟའ་ཕུར་བུ_གཟའ་པ་སངས་_གཟའ་སྤེན་པ་'.split(\n '_'\n ),\n weekdaysShort: 'ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་'.split(\n '_'\n ),\n weekdaysMin: 'ཉི_ཟླ_མིག_ལྷག_ཕུར_སངས_སྤེན'.split('_'),\n longDateFormat: {\n LT: 'A h:mm',\n LTS: 'A h:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm',\n LLLL: 'dddd, D MMMM YYYY, A h:mm',\n },\n calendar: {\n sameDay: '[དི་རིང] LT',\n nextDay: '[སང་ཉིན] LT',\n nextWeek: '[བདུན་ཕྲག་རྗེས་མ], LT',\n lastDay: '[ཁ་སང] LT',\n lastWeek: '[བདུན་ཕྲག་མཐའ་མ] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s ལ་',\n past: '%s སྔན་ལ',\n s: 'ལམ་སང',\n ss: '%d སྐར་ཆ།',\n m: 'སྐར་མ་གཅིག',\n mm: '%d སྐར་མ',\n h: 'ཆུ་ཚོད་གཅིག',\n hh: '%d ཆུ་ཚོད',\n d: 'ཉིན་གཅིག',\n dd: '%d ཉིན་',\n M: 'ཟླ་བ་གཅིག',\n MM: '%d ཟླ་བ',\n y: 'ལོ་གཅིག',\n yy: '%d ལོ',\n },\n preparse: function (string) {\n return string.replace(/[༡༢༣༤༥༦༧༨༩༠]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /མཚན་མོ|ཞོགས་ཀས|ཉིན་གུང|དགོང་དག|མཚན་མོ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (\n (meridiem === 'མཚན་མོ' && hour >= 4) ||\n (meridiem === 'ཉིན་གུང' && hour < 5) ||\n meridiem === 'དགོང་དག'\n ) {\n return hour + 12;\n } else {\n return hour;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'མཚན་མོ';\n } else if (hour < 10) {\n return 'ཞོགས་ཀས';\n } else if (hour < 17) {\n return 'ཉིན་གུང';\n } else if (hour < 20) {\n return 'དགོང་དག';\n } else {\n return 'མཚན་མོ';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return bo;\n\n})));\n","//! moment.js locale configuration\n//! locale : Breton [br]\n//! author : Jean-Baptiste Le Duigou : https://github.com/jbleduigou\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function relativeTimeWithMutation(number, withoutSuffix, key) {\n var format = {\n mm: 'munutenn',\n MM: 'miz',\n dd: 'devezh',\n };\n return number + ' ' + mutation(format[key], number);\n }\n function specialMutationForYears(number) {\n switch (lastNumber(number)) {\n case 1:\n case 3:\n case 4:\n case 5:\n case 9:\n return number + ' bloaz';\n default:\n return number + ' vloaz';\n }\n }\n function lastNumber(number) {\n if (number > 9) {\n return lastNumber(number % 10);\n }\n return number;\n }\n function mutation(text, number) {\n if (number === 2) {\n return softMutation(text);\n }\n return text;\n }\n function softMutation(text) {\n var mutationTable = {\n m: 'v',\n b: 'v',\n d: 'z',\n };\n if (mutationTable[text.charAt(0)] === undefined) {\n return text;\n }\n return mutationTable[text.charAt(0)] + text.substring(1);\n }\n\n var monthsParse = [\n /^gen/i,\n /^c[ʼ\\']hwe/i,\n /^meu/i,\n /^ebr/i,\n /^mae/i,\n /^(mez|eve)/i,\n /^gou/i,\n /^eos/i,\n /^gwe/i,\n /^her/i,\n /^du/i,\n /^ker/i,\n ],\n monthsRegex =\n /^(genver|c[ʼ\\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu|gen|c[ʼ\\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i,\n monthsStrictRegex =\n /^(genver|c[ʼ\\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu)/i,\n monthsShortStrictRegex =\n /^(gen|c[ʼ\\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i,\n fullWeekdaysParse = [\n /^sul/i,\n /^lun/i,\n /^meurzh/i,\n /^merc[ʼ\\']her/i,\n /^yaou/i,\n /^gwener/i,\n /^sadorn/i,\n ],\n shortWeekdaysParse = [\n /^Sul/i,\n /^Lun/i,\n /^Meu/i,\n /^Mer/i,\n /^Yao/i,\n /^Gwe/i,\n /^Sad/i,\n ],\n minWeekdaysParse = [\n /^Su/i,\n /^Lu/i,\n /^Me([^r]|$)/i,\n /^Mer/i,\n /^Ya/i,\n /^Gw/i,\n /^Sa/i,\n ];\n\n var br = moment.defineLocale('br', {\n months: 'Genver_Cʼhwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu'.split(\n '_'\n ),\n monthsShort: 'Gen_Cʼhwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker'.split('_'),\n weekdays: 'Sul_Lun_Meurzh_Mercʼher_Yaou_Gwener_Sadorn'.split('_'),\n weekdaysShort: 'Sul_Lun_Meu_Mer_Yao_Gwe_Sad'.split('_'),\n weekdaysMin: 'Su_Lu_Me_Mer_Ya_Gw_Sa'.split('_'),\n weekdaysParse: minWeekdaysParse,\n fullWeekdaysParse: fullWeekdaysParse,\n shortWeekdaysParse: shortWeekdaysParse,\n minWeekdaysParse: minWeekdaysParse,\n\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: monthsStrictRegex,\n monthsShortStrictRegex: monthsShortStrictRegex,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [a viz] MMMM YYYY',\n LLL: 'D [a viz] MMMM YYYY HH:mm',\n LLLL: 'dddd, D [a viz] MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Hiziv da] LT',\n nextDay: '[Warcʼhoazh da] LT',\n nextWeek: 'dddd [da] LT',\n lastDay: '[Decʼh da] LT',\n lastWeek: 'dddd [paset da] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'a-benn %s',\n past: '%s ʼzo',\n s: 'un nebeud segondennoù',\n ss: '%d eilenn',\n m: 'ur vunutenn',\n mm: relativeTimeWithMutation,\n h: 'un eur',\n hh: '%d eur',\n d: 'un devezh',\n dd: relativeTimeWithMutation,\n M: 'ur miz',\n MM: relativeTimeWithMutation,\n y: 'ur bloaz',\n yy: specialMutationForYears,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(añ|vet)/,\n ordinal: function (number) {\n var output = number === 1 ? 'añ' : 'vet';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n meridiemParse: /a.m.|g.m./, // goude merenn | a-raok merenn\n isPM: function (token) {\n return token === 'g.m.';\n },\n meridiem: function (hour, minute, isLower) {\n return hour < 12 ? 'a.m.' : 'g.m.';\n },\n });\n\n return br;\n\n})));\n","//! moment.js locale configuration\n//! locale : Bosnian [bs]\n//! author : Nedim Cholich : https://github.com/frontyard\n//! author : Rasid Redzic : https://github.com/rasidre\n//! based on (hr) translation by Bojan Marković\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n switch (key) {\n case 'm':\n return withoutSuffix\n ? 'jedna minuta'\n : isFuture\n ? 'jednu minutu'\n : 'jedne minute';\n }\n }\n\n function translate(number, withoutSuffix, key) {\n var result = number + ' ';\n switch (key) {\n case 'ss':\n if (number === 1) {\n result += 'sekunda';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'sekunde';\n } else {\n result += 'sekundi';\n }\n return result;\n case 'mm':\n if (number === 1) {\n result += 'minuta';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'minute';\n } else {\n result += 'minuta';\n }\n return result;\n case 'h':\n return withoutSuffix ? 'jedan sat' : 'jedan sat';\n case 'hh':\n if (number === 1) {\n result += 'sat';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'sata';\n } else {\n result += 'sati';\n }\n return result;\n case 'dd':\n if (number === 1) {\n result += 'dan';\n } else {\n result += 'dana';\n }\n return result;\n case 'MM':\n if (number === 1) {\n result += 'mjesec';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'mjeseca';\n } else {\n result += 'mjeseci';\n }\n return result;\n case 'yy':\n if (number === 1) {\n result += 'godina';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'godine';\n } else {\n result += 'godina';\n }\n return result;\n }\n }\n\n var bs = moment.defineLocale('bs', {\n months: 'januar_februar_mart_april_maj_juni_juli_august_septembar_oktobar_novembar_decembar'.split(\n '_'\n ),\n monthsShort:\n 'jan._feb._mar._apr._maj._jun._jul._aug._sep._okt._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split(\n '_'\n ),\n weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),\n weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[danas u] LT',\n nextDay: '[sutra u] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[u] [nedjelju] [u] LT';\n case 3:\n return '[u] [srijedu] [u] LT';\n case 6:\n return '[u] [subotu] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[u] dddd [u] LT';\n }\n },\n lastDay: '[jučer u] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n return '[prošlu] dddd [u] LT';\n case 6:\n return '[prošle] [subote] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[prošli] dddd [u] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'prije %s',\n s: 'par sekundi',\n ss: translate,\n m: processRelativeTime,\n mm: translate,\n h: translate,\n hh: translate,\n d: 'dan',\n dd: translate,\n M: 'mjesec',\n MM: translate,\n y: 'godinu',\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return bs;\n\n})));\n","//! moment.js locale configuration\n//! locale : Catalan [ca]\n//! author : Juan G. Hurtado : https://github.com/juanghurtado\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ca = moment.defineLocale('ca', {\n months: {\n standalone:\n 'gener_febrer_març_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre'.split(\n '_'\n ),\n format: \"de gener_de febrer_de març_d'abril_de maig_de juny_de juliol_d'agost_de setembre_d'octubre_de novembre_de desembre\".split(\n '_'\n ),\n isFormat: /D[oD]?(\\s)+MMMM/,\n },\n monthsShort:\n 'gen._febr._març_abr._maig_juny_jul._ag._set._oct._nov._des.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays:\n 'diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte'.split(\n '_'\n ),\n weekdaysShort: 'dg._dl._dt._dc._dj._dv._ds.'.split('_'),\n weekdaysMin: 'dg_dl_dt_dc_dj_dv_ds'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM [de] YYYY',\n ll: 'D MMM YYYY',\n LLL: 'D MMMM [de] YYYY [a les] H:mm',\n lll: 'D MMM YYYY, H:mm',\n LLLL: 'dddd D MMMM [de] YYYY [a les] H:mm',\n llll: 'ddd D MMM YYYY, H:mm',\n },\n calendar: {\n sameDay: function () {\n return '[avui a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\n },\n nextDay: function () {\n return '[demà a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\n },\n lastDay: function () {\n return '[ahir a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\n },\n lastWeek: function () {\n return (\n '[el] dddd [passat a ' +\n (this.hours() !== 1 ? 'les' : 'la') +\n '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: \"d'aquí %s\",\n past: 'fa %s',\n s: 'uns segons',\n ss: '%d segons',\n m: 'un minut',\n mm: '%d minuts',\n h: 'una hora',\n hh: '%d hores',\n d: 'un dia',\n dd: '%d dies',\n M: 'un mes',\n MM: '%d mesos',\n y: 'un any',\n yy: '%d anys',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(r|n|t|è|a)/,\n ordinal: function (number, period) {\n var output =\n number === 1\n ? 'r'\n : number === 2\n ? 'n'\n : number === 3\n ? 'r'\n : number === 4\n ? 't'\n : 'è';\n if (period === 'w' || period === 'W') {\n output = 'a';\n }\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return ca;\n\n})));\n","//! moment.js locale configuration\n//! locale : Czech [cs]\n//! author : petrbela : https://github.com/petrbela\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months = {\n standalone:\n 'leden_únor_březen_duben_květen_červen_červenec_srpen_září_říjen_listopad_prosinec'.split(\n '_'\n ),\n format: 'ledna_února_března_dubna_května_června_července_srpna_září_října_listopadu_prosince'.split(\n '_'\n ),\n isFormat: /DD?[o.]?(\\[[^\\[\\]]*\\]|\\s)+MMMM/,\n },\n monthsShort = 'led_úno_bře_dub_kvě_čvn_čvc_srp_zář_říj_lis_pro'.split('_'),\n monthsParse = [\n /^led/i,\n /^úno/i,\n /^bře/i,\n /^dub/i,\n /^kvě/i,\n /^(čvn|červen$|června)/i,\n /^(čvc|červenec|července)/i,\n /^srp/i,\n /^zář/i,\n /^říj/i,\n /^lis/i,\n /^pro/i,\n ],\n // NOTE: 'červen' is substring of 'červenec'; therefore 'červenec' must precede 'červen' in the regex to be fully matched.\n // Otherwise parser matches '1. červenec' as '1. červen' + 'ec'.\n monthsRegex =\n /^(leden|únor|březen|duben|květen|červenec|července|červen|června|srpen|září|říjen|listopad|prosinec|led|úno|bře|dub|kvě|čvn|čvc|srp|zář|říj|lis|pro)/i;\n\n function plural(n) {\n return n > 1 && n < 5 && ~~(n / 10) !== 1;\n }\n function translate(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n switch (key) {\n case 's': // a few seconds / in a few seconds / a few seconds ago\n return withoutSuffix || isFuture ? 'pár sekund' : 'pár sekundami';\n case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'sekundy' : 'sekund');\n } else {\n return result + 'sekundami';\n }\n case 'm': // a minute / in a minute / a minute ago\n return withoutSuffix ? 'minuta' : isFuture ? 'minutu' : 'minutou';\n case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'minuty' : 'minut');\n } else {\n return result + 'minutami';\n }\n case 'h': // an hour / in an hour / an hour ago\n return withoutSuffix ? 'hodina' : isFuture ? 'hodinu' : 'hodinou';\n case 'hh': // 9 hours / in 9 hours / 9 hours ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'hodiny' : 'hodin');\n } else {\n return result + 'hodinami';\n }\n case 'd': // a day / in a day / a day ago\n return withoutSuffix || isFuture ? 'den' : 'dnem';\n case 'dd': // 9 days / in 9 days / 9 days ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'dny' : 'dní');\n } else {\n return result + 'dny';\n }\n case 'M': // a month / in a month / a month ago\n return withoutSuffix || isFuture ? 'měsíc' : 'měsícem';\n case 'MM': // 9 months / in 9 months / 9 months ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'měsíce' : 'měsíců');\n } else {\n return result + 'měsíci';\n }\n case 'y': // a year / in a year / a year ago\n return withoutSuffix || isFuture ? 'rok' : 'rokem';\n case 'yy': // 9 years / in 9 years / 9 years ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'roky' : 'let');\n } else {\n return result + 'lety';\n }\n }\n }\n\n var cs = moment.defineLocale('cs', {\n months: months,\n monthsShort: monthsShort,\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n // NOTE: 'červen' is substring of 'červenec'; therefore 'červenec' must precede 'červen' in the regex to be fully matched.\n // Otherwise parser matches '1. červenec' as '1. červen' + 'ec'.\n monthsStrictRegex:\n /^(leden|ledna|února|únor|březen|března|duben|dubna|květen|května|červenec|července|červen|června|srpen|srpna|září|říjen|října|listopadu|listopad|prosinec|prosince)/i,\n monthsShortStrictRegex:\n /^(led|úno|bře|dub|kvě|čvn|čvc|srp|zář|říj|lis|pro)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'neděle_pondělí_úterý_středa_čtvrtek_pátek_sobota'.split('_'),\n weekdaysShort: 'ne_po_út_st_čt_pá_so'.split('_'),\n weekdaysMin: 'ne_po_út_st_čt_pá_so'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd D. MMMM YYYY H:mm',\n l: 'D. M. YYYY',\n },\n calendar: {\n sameDay: '[dnes v] LT',\n nextDay: '[zítra v] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[v neděli v] LT';\n case 1:\n case 2:\n return '[v] dddd [v] LT';\n case 3:\n return '[ve středu v] LT';\n case 4:\n return '[ve čtvrtek v] LT';\n case 5:\n return '[v pátek v] LT';\n case 6:\n return '[v sobotu v] LT';\n }\n },\n lastDay: '[včera v] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[minulou neděli v] LT';\n case 1:\n case 2:\n return '[minulé] dddd [v] LT';\n case 3:\n return '[minulou středu v] LT';\n case 4:\n case 5:\n return '[minulý] dddd [v] LT';\n case 6:\n return '[minulou sobotu v] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'před %s',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return cs;\n\n})));\n","//! moment.js locale configuration\n//! locale : Chuvash [cv]\n//! author : Anatoly Mironov : https://github.com/mirontoli\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var cv = moment.defineLocale('cv', {\n months: 'кӑрлач_нарӑс_пуш_ака_май_ҫӗртме_утӑ_ҫурла_авӑн_юпа_чӳк_раштав'.split(\n '_'\n ),\n monthsShort: 'кӑр_нар_пуш_ака_май_ҫӗр_утӑ_ҫур_авн_юпа_чӳк_раш'.split('_'),\n weekdays:\n 'вырсарникун_тунтикун_ытларикун_юнкун_кӗҫнерникун_эрнекун_шӑматкун'.split(\n '_'\n ),\n weekdaysShort: 'выр_тун_ытл_юн_кӗҫ_эрн_шӑм'.split('_'),\n weekdaysMin: 'вр_тн_ыт_юн_кҫ_эр_шм'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD-MM-YYYY',\n LL: 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ]',\n LLL: 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm',\n LLLL: 'dddd, YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm',\n },\n calendar: {\n sameDay: '[Паян] LT [сехетре]',\n nextDay: '[Ыран] LT [сехетре]',\n lastDay: '[Ӗнер] LT [сехетре]',\n nextWeek: '[Ҫитес] dddd LT [сехетре]',\n lastWeek: '[Иртнӗ] dddd LT [сехетре]',\n sameElse: 'L',\n },\n relativeTime: {\n future: function (output) {\n var affix = /сехет$/i.exec(output)\n ? 'рен'\n : /ҫул$/i.exec(output)\n ? 'тан'\n : 'ран';\n return output + affix;\n },\n past: '%s каялла',\n s: 'пӗр-ик ҫеккунт',\n ss: '%d ҫеккунт',\n m: 'пӗр минут',\n mm: '%d минут',\n h: 'пӗр сехет',\n hh: '%d сехет',\n d: 'пӗр кун',\n dd: '%d кун',\n M: 'пӗр уйӑх',\n MM: '%d уйӑх',\n y: 'пӗр ҫул',\n yy: '%d ҫул',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-мӗш/,\n ordinal: '%d-мӗш',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return cv;\n\n})));\n","//! moment.js locale configuration\n//! locale : Welsh [cy]\n//! author : Robert Allen : https://github.com/robgallen\n//! author : https://github.com/ryangreaves\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var cy = moment.defineLocale('cy', {\n months: 'Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr'.split(\n '_'\n ),\n monthsShort: 'Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag'.split(\n '_'\n ),\n weekdays:\n 'Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn'.split(\n '_'\n ),\n weekdaysShort: 'Sul_Llun_Maw_Mer_Iau_Gwe_Sad'.split('_'),\n weekdaysMin: 'Su_Ll_Ma_Me_Ia_Gw_Sa'.split('_'),\n weekdaysParseExact: true,\n // time formats are the same as en-gb\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Heddiw am] LT',\n nextDay: '[Yfory am] LT',\n nextWeek: 'dddd [am] LT',\n lastDay: '[Ddoe am] LT',\n lastWeek: 'dddd [diwethaf am] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'mewn %s',\n past: '%s yn ôl',\n s: 'ychydig eiliadau',\n ss: '%d eiliad',\n m: 'munud',\n mm: '%d munud',\n h: 'awr',\n hh: '%d awr',\n d: 'diwrnod',\n dd: '%d diwrnod',\n M: 'mis',\n MM: '%d mis',\n y: 'blwyddyn',\n yy: '%d flynedd',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(fed|ain|af|il|ydd|ed|eg)/,\n // traditional ordinal numbers above 31 are not commonly used in colloquial Welsh\n ordinal: function (number) {\n var b = number,\n output = '',\n lookup = [\n '',\n 'af',\n 'il',\n 'ydd',\n 'ydd',\n 'ed',\n 'ed',\n 'ed',\n 'fed',\n 'fed',\n 'fed', // 1af to 10fed\n 'eg',\n 'fed',\n 'eg',\n 'eg',\n 'fed',\n 'eg',\n 'eg',\n 'fed',\n 'eg',\n 'fed', // 11eg to 20fed\n ];\n if (b > 20) {\n if (b === 40 || b === 50 || b === 60 || b === 80 || b === 100) {\n output = 'fed'; // not 30ain, 70ain or 90ain\n } else {\n output = 'ain';\n }\n } else if (b > 0) {\n output = lookup[b];\n }\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return cy;\n\n})));\n","//! moment.js locale configuration\n//! locale : Danish [da]\n//! author : Ulrik Nielsen : https://github.com/mrbase\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var da = moment.defineLocale('da', {\n months: 'januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'),\n weekdays: 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'),\n weekdaysShort: 'søn_man_tir_ons_tor_fre_lør'.split('_'),\n weekdaysMin: 'sø_ma_ti_on_to_fr_lø'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY HH:mm',\n LLLL: 'dddd [d.] D. MMMM YYYY [kl.] HH:mm',\n },\n calendar: {\n sameDay: '[i dag kl.] LT',\n nextDay: '[i morgen kl.] LT',\n nextWeek: 'på dddd [kl.] LT',\n lastDay: '[i går kl.] LT',\n lastWeek: '[i] dddd[s kl.] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'om %s',\n past: '%s siden',\n s: 'få sekunder',\n ss: '%d sekunder',\n m: 'et minut',\n mm: '%d minutter',\n h: 'en time',\n hh: '%d timer',\n d: 'en dag',\n dd: '%d dage',\n M: 'en måned',\n MM: '%d måneder',\n y: 'et år',\n yy: '%d år',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return da;\n\n})));\n","//! moment.js locale configuration\n//! locale : German (Austria) [de-at]\n//! author : lluchs : https://github.com/lluchs\n//! author: Menelion Elensúle: https://github.com/Oire\n//! author : Martin Groller : https://github.com/MadMG\n//! author : Mikolaj Dadela : https://github.com/mik01aj\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n m: ['eine Minute', 'einer Minute'],\n h: ['eine Stunde', 'einer Stunde'],\n d: ['ein Tag', 'einem Tag'],\n dd: [number + ' Tage', number + ' Tagen'],\n w: ['eine Woche', 'einer Woche'],\n M: ['ein Monat', 'einem Monat'],\n MM: [number + ' Monate', number + ' Monaten'],\n y: ['ein Jahr', 'einem Jahr'],\n yy: [number + ' Jahre', number + ' Jahren'],\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n\n var deAt = moment.defineLocale('de-at', {\n months: 'Jänner_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split(\n '_'\n ),\n monthsShort:\n 'Jän._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'),\n monthsParseExact: true,\n weekdays:\n 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split(\n '_'\n ),\n weekdaysShort: 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),\n weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY HH:mm',\n LLLL: 'dddd, D. MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[heute um] LT [Uhr]',\n sameElse: 'L',\n nextDay: '[morgen um] LT [Uhr]',\n nextWeek: 'dddd [um] LT [Uhr]',\n lastDay: '[gestern um] LT [Uhr]',\n lastWeek: '[letzten] dddd [um] LT [Uhr]',\n },\n relativeTime: {\n future: 'in %s',\n past: 'vor %s',\n s: 'ein paar Sekunden',\n ss: '%d Sekunden',\n m: processRelativeTime,\n mm: '%d Minuten',\n h: processRelativeTime,\n hh: '%d Stunden',\n d: processRelativeTime,\n dd: processRelativeTime,\n w: processRelativeTime,\n ww: '%d Wochen',\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return deAt;\n\n})));\n","//! moment.js locale configuration\n//! locale : German (Switzerland) [de-ch]\n//! author : sschueller : https://github.com/sschueller\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n m: ['eine Minute', 'einer Minute'],\n h: ['eine Stunde', 'einer Stunde'],\n d: ['ein Tag', 'einem Tag'],\n dd: [number + ' Tage', number + ' Tagen'],\n w: ['eine Woche', 'einer Woche'],\n M: ['ein Monat', 'einem Monat'],\n MM: [number + ' Monate', number + ' Monaten'],\n y: ['ein Jahr', 'einem Jahr'],\n yy: [number + ' Jahre', number + ' Jahren'],\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n\n var deCh = moment.defineLocale('de-ch', {\n months: 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split(\n '_'\n ),\n monthsShort:\n 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'),\n monthsParseExact: true,\n weekdays:\n 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split(\n '_'\n ),\n weekdaysShort: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY HH:mm',\n LLLL: 'dddd, D. MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[heute um] LT [Uhr]',\n sameElse: 'L',\n nextDay: '[morgen um] LT [Uhr]',\n nextWeek: 'dddd [um] LT [Uhr]',\n lastDay: '[gestern um] LT [Uhr]',\n lastWeek: '[letzten] dddd [um] LT [Uhr]',\n },\n relativeTime: {\n future: 'in %s',\n past: 'vor %s',\n s: 'ein paar Sekunden',\n ss: '%d Sekunden',\n m: processRelativeTime,\n mm: '%d Minuten',\n h: processRelativeTime,\n hh: '%d Stunden',\n d: processRelativeTime,\n dd: processRelativeTime,\n w: processRelativeTime,\n ww: '%d Wochen',\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return deCh;\n\n})));\n","//! moment.js locale configuration\n//! locale : German [de]\n//! author : lluchs : https://github.com/lluchs\n//! author: Menelion Elensúle: https://github.com/Oire\n//! author : Mikolaj Dadela : https://github.com/mik01aj\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n m: ['eine Minute', 'einer Minute'],\n h: ['eine Stunde', 'einer Stunde'],\n d: ['ein Tag', 'einem Tag'],\n dd: [number + ' Tage', number + ' Tagen'],\n w: ['eine Woche', 'einer Woche'],\n M: ['ein Monat', 'einem Monat'],\n MM: [number + ' Monate', number + ' Monaten'],\n y: ['ein Jahr', 'einem Jahr'],\n yy: [number + ' Jahre', number + ' Jahren'],\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n\n var de = moment.defineLocale('de', {\n months: 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split(\n '_'\n ),\n monthsShort:\n 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'),\n monthsParseExact: true,\n weekdays:\n 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split(\n '_'\n ),\n weekdaysShort: 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),\n weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY HH:mm',\n LLLL: 'dddd, D. MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[heute um] LT [Uhr]',\n sameElse: 'L',\n nextDay: '[morgen um] LT [Uhr]',\n nextWeek: 'dddd [um] LT [Uhr]',\n lastDay: '[gestern um] LT [Uhr]',\n lastWeek: '[letzten] dddd [um] LT [Uhr]',\n },\n relativeTime: {\n future: 'in %s',\n past: 'vor %s',\n s: 'ein paar Sekunden',\n ss: '%d Sekunden',\n m: processRelativeTime,\n mm: '%d Minuten',\n h: processRelativeTime,\n hh: '%d Stunden',\n d: processRelativeTime,\n dd: processRelativeTime,\n w: processRelativeTime,\n ww: '%d Wochen',\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return de;\n\n})));\n","//! moment.js locale configuration\n//! locale : Maldivian [dv]\n//! author : Jawish Hameed : https://github.com/jawish\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months = [\n 'ޖެނުއަރީ',\n 'ފެބްރުއަރީ',\n 'މާރިޗު',\n 'އޭޕްރީލު',\n 'މޭ',\n 'ޖޫން',\n 'ޖުލައި',\n 'އޯގަސްޓު',\n 'ސެޕްޓެމްބަރު',\n 'އޮކްޓޯބަރު',\n 'ނޮވެމްބަރު',\n 'ޑިސެމްބަރު',\n ],\n weekdays = [\n 'އާދިއްތަ',\n 'ހޯމަ',\n 'އަންގާރަ',\n 'ބުދަ',\n 'ބުރާސްފަތި',\n 'ހުކުރު',\n 'ހޮނިހިރު',\n ];\n\n var dv = moment.defineLocale('dv', {\n months: months,\n monthsShort: months,\n weekdays: weekdays,\n weekdaysShort: weekdays,\n weekdaysMin: 'އާދި_ހޯމަ_އަން_ބުދަ_ބުރާ_ހުކު_ހޮނި'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'D/M/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /މކ|މފ/,\n isPM: function (input) {\n return 'މފ' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'މކ';\n } else {\n return 'މފ';\n }\n },\n calendar: {\n sameDay: '[މިއަދު] LT',\n nextDay: '[މާދަމާ] LT',\n nextWeek: 'dddd LT',\n lastDay: '[އިއްޔެ] LT',\n lastWeek: '[ފާއިތުވި] dddd LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'ތެރޭގައި %s',\n past: 'ކުރިން %s',\n s: 'ސިކުންތުކޮޅެއް',\n ss: 'd% ސިކުންތު',\n m: 'މިނިޓެއް',\n mm: 'މިނިޓު %d',\n h: 'ގަޑިއިރެއް',\n hh: 'ގަޑިއިރު %d',\n d: 'ދުވަހެއް',\n dd: 'ދުވަސް %d',\n M: 'މަހެއް',\n MM: 'މަސް %d',\n y: 'އަހަރެއް',\n yy: 'އަހަރު %d',\n },\n preparse: function (string) {\n return string.replace(/،/g, ',');\n },\n postformat: function (string) {\n return string.replace(/,/g, '،');\n },\n week: {\n dow: 7, // Sunday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return dv;\n\n})));\n","//! moment.js locale configuration\n//! locale : Greek [el]\n//! author : Aggelos Karalias : https://github.com/mehiel\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function isFunction(input) {\n return (\n (typeof Function !== 'undefined' && input instanceof Function) ||\n Object.prototype.toString.call(input) === '[object Function]'\n );\n }\n\n var el = moment.defineLocale('el', {\n monthsNominativeEl:\n 'Ιανουάριος_Φεβρουάριος_Μάρτιος_Απρίλιος_Μάιος_Ιούνιος_Ιούλιος_Αύγουστος_Σεπτέμβριος_Οκτώβριος_Νοέμβριος_Δεκέμβριος'.split(\n '_'\n ),\n monthsGenitiveEl:\n 'Ιανουαρίου_Φεβρουαρίου_Μαρτίου_Απριλίου_Μαΐου_Ιουνίου_Ιουλίου_Αυγούστου_Σεπτεμβρίου_Οκτωβρίου_Νοεμβρίου_Δεκεμβρίου'.split(\n '_'\n ),\n months: function (momentToFormat, format) {\n if (!momentToFormat) {\n return this._monthsNominativeEl;\n } else if (\n typeof format === 'string' &&\n /D/.test(format.substring(0, format.indexOf('MMMM')))\n ) {\n // if there is a day number before 'MMMM'\n return this._monthsGenitiveEl[momentToFormat.month()];\n } else {\n return this._monthsNominativeEl[momentToFormat.month()];\n }\n },\n monthsShort: 'Ιαν_Φεβ_Μαρ_Απρ_Μαϊ_Ιουν_Ιουλ_Αυγ_Σεπ_Οκτ_Νοε_Δεκ'.split('_'),\n weekdays: 'Κυριακή_Δευτέρα_Τρίτη_Τετάρτη_Πέμπτη_Παρασκευή_Σάββατο'.split(\n '_'\n ),\n weekdaysShort: 'Κυρ_Δευ_Τρι_Τετ_Πεμ_Παρ_Σαβ'.split('_'),\n weekdaysMin: 'Κυ_Δε_Τρ_Τε_Πε_Πα_Σα'.split('_'),\n meridiem: function (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'μμ' : 'ΜΜ';\n } else {\n return isLower ? 'πμ' : 'ΠΜ';\n }\n },\n isPM: function (input) {\n return (input + '').toLowerCase()[0] === 'μ';\n },\n meridiemParse: /[ΠΜ]\\.?Μ?\\.?/i,\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendarEl: {\n sameDay: '[Σήμερα {}] LT',\n nextDay: '[Αύριο {}] LT',\n nextWeek: 'dddd [{}] LT',\n lastDay: '[Χθες {}] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 6:\n return '[το προηγούμενο] dddd [{}] LT';\n default:\n return '[την προηγούμενη] dddd [{}] LT';\n }\n },\n sameElse: 'L',\n },\n calendar: function (key, mom) {\n var output = this._calendarEl[key],\n hours = mom && mom.hours();\n if (isFunction(output)) {\n output = output.apply(mom);\n }\n return output.replace('{}', hours % 12 === 1 ? 'στη' : 'στις');\n },\n relativeTime: {\n future: 'σε %s',\n past: '%s πριν',\n s: 'λίγα δευτερόλεπτα',\n ss: '%d δευτερόλεπτα',\n m: 'ένα λεπτό',\n mm: '%d λεπτά',\n h: 'μία ώρα',\n hh: '%d ώρες',\n d: 'μία μέρα',\n dd: '%d μέρες',\n M: 'ένας μήνας',\n MM: '%d μήνες',\n y: 'ένας χρόνος',\n yy: '%d χρόνια',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}η/,\n ordinal: '%dη',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4st is the first week of the year.\n },\n });\n\n return el;\n\n})));\n","//! moment.js locale configuration\n//! locale : English (Australia) [en-au]\n//! author : Jared Morse : https://github.com/jarcoal\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enAu = moment.defineLocale('en-au', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return enAu;\n\n})));\n","//! moment.js locale configuration\n//! locale : English (Canada) [en-ca]\n//! author : Jonathan Abourbih : https://github.com/jonbca\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enCa = moment.defineLocale('en-ca', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'YYYY-MM-DD',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY h:mm A',\n LLLL: 'dddd, MMMM D, YYYY h:mm A',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n });\n\n return enCa;\n\n})));\n","//! moment.js locale configuration\n//! locale : English (United Kingdom) [en-gb]\n//! author : Chris Gedrim : https://github.com/chrisgedrim\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enGb = moment.defineLocale('en-gb', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return enGb;\n\n})));\n","//! moment.js locale configuration\n//! locale : English (Ireland) [en-ie]\n//! author : Chris Cartlidge : https://github.com/chriscartlidge\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enIe = moment.defineLocale('en-ie', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return enIe;\n\n})));\n","//! moment.js locale configuration\n//! locale : English (Israel) [en-il]\n//! author : Chris Gedrim : https://github.com/chrisgedrim\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enIl = moment.defineLocale('en-il', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n });\n\n return enIl;\n\n})));\n","//! moment.js locale configuration\n//! locale : English (India) [en-in]\n//! author : Jatin Agrawal : https://github.com/jatinag22\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enIn = moment.defineLocale('en-in', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 1st is the first week of the year.\n },\n });\n\n return enIn;\n\n})));\n","//! moment.js locale configuration\n//! locale : English (New Zealand) [en-nz]\n//! author : Luke McGregor : https://github.com/lukemcgregor\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enNz = moment.defineLocale('en-nz', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return enNz;\n\n})));\n","//! moment.js locale configuration\n//! locale : English (Singapore) [en-sg]\n//! author : Matthew Castrillon-Madrigal : https://github.com/techdimension\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enSg = moment.defineLocale('en-sg', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return enSg;\n\n})));\n","//! moment.js locale configuration\n//! locale : Esperanto [eo]\n//! author : Colin Dean : https://github.com/colindean\n//! author : Mia Nordentoft Imperatori : https://github.com/miestasmia\n//! comment : miestasmia corrected the translation by colindean\n//! comment : Vivakvo corrected the translation by colindean and miestasmia\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var eo = moment.defineLocale('eo', {\n months: 'januaro_februaro_marto_aprilo_majo_junio_julio_aŭgusto_septembro_oktobro_novembro_decembro'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mart_apr_maj_jun_jul_aŭg_sept_okt_nov_dec'.split('_'),\n weekdays: 'dimanĉo_lundo_mardo_merkredo_ĵaŭdo_vendredo_sabato'.split('_'),\n weekdaysShort: 'dim_lun_mard_merk_ĵaŭ_ven_sab'.split('_'),\n weekdaysMin: 'di_lu_ma_me_ĵa_ve_sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: '[la] D[-an de] MMMM, YYYY',\n LLL: '[la] D[-an de] MMMM, YYYY HH:mm',\n LLLL: 'dddd[n], [la] D[-an de] MMMM, YYYY HH:mm',\n llll: 'ddd, [la] D[-an de] MMM, YYYY HH:mm',\n },\n meridiemParse: /[ap]\\.t\\.m/i,\n isPM: function (input) {\n return input.charAt(0).toLowerCase() === 'p';\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'p.t.m.' : 'P.T.M.';\n } else {\n return isLower ? 'a.t.m.' : 'A.T.M.';\n }\n },\n calendar: {\n sameDay: '[Hodiaŭ je] LT',\n nextDay: '[Morgaŭ je] LT',\n nextWeek: 'dddd[n je] LT',\n lastDay: '[Hieraŭ je] LT',\n lastWeek: '[pasintan] dddd[n je] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'post %s',\n past: 'antaŭ %s',\n s: 'kelkaj sekundoj',\n ss: '%d sekundoj',\n m: 'unu minuto',\n mm: '%d minutoj',\n h: 'unu horo',\n hh: '%d horoj',\n d: 'unu tago', //ne 'diurno', ĉar estas uzita por proksimumo\n dd: '%d tagoj',\n M: 'unu monato',\n MM: '%d monatoj',\n y: 'unu jaro',\n yy: '%d jaroj',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}a/,\n ordinal: '%da',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return eo;\n\n})));\n","//! moment.js locale configuration\n//! locale : Spanish (Dominican Republic) [es-do]\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortDot =\n 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(\n '_'\n ),\n monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\n monthsParse = [\n /^ene/i,\n /^feb/i,\n /^mar/i,\n /^abr/i,\n /^may/i,\n /^jun/i,\n /^jul/i,\n /^ago/i,\n /^sep/i,\n /^oct/i,\n /^nov/i,\n /^dic/i,\n ],\n monthsRegex =\n /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n\n var esDo = moment.defineLocale('es-do', {\n months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortDot;\n } else if (/-MMM-/.test(format)) {\n return monthsShort[m.month()];\n } else {\n return monthsShortDot[m.month()];\n }\n },\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex:\n /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex:\n /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY h:mm A',\n LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A',\n },\n calendar: {\n sameDay: function () {\n return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextDay: function () {\n return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastDay: function () {\n return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastWeek: function () {\n return (\n '[el] dddd [pasado a la' +\n (this.hours() !== 1 ? 's' : '') +\n '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'en %s',\n past: 'hace %s',\n s: 'unos segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'una hora',\n hh: '%d horas',\n d: 'un día',\n dd: '%d días',\n w: 'una semana',\n ww: '%d semanas',\n M: 'un mes',\n MM: '%d meses',\n y: 'un año',\n yy: '%d años',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return esDo;\n\n})));\n","//! moment.js locale configuration\n//! locale : Spanish (Mexico) [es-mx]\n//! author : JC Franco : https://github.com/jcfranco\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortDot =\n 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(\n '_'\n ),\n monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\n monthsParse = [\n /^ene/i,\n /^feb/i,\n /^mar/i,\n /^abr/i,\n /^may/i,\n /^jun/i,\n /^jul/i,\n /^ago/i,\n /^sep/i,\n /^oct/i,\n /^nov/i,\n /^dic/i,\n ],\n monthsRegex =\n /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n\n var esMx = moment.defineLocale('es-mx', {\n months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortDot;\n } else if (/-MMM-/.test(format)) {\n return monthsShort[m.month()];\n } else {\n return monthsShortDot[m.month()];\n }\n },\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex:\n /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex:\n /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY H:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm',\n },\n calendar: {\n sameDay: function () {\n return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextDay: function () {\n return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastDay: function () {\n return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastWeek: function () {\n return (\n '[el] dddd [pasado a la' +\n (this.hours() !== 1 ? 's' : '') +\n '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'en %s',\n past: 'hace %s',\n s: 'unos segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'una hora',\n hh: '%d horas',\n d: 'un día',\n dd: '%d días',\n w: 'una semana',\n ww: '%d semanas',\n M: 'un mes',\n MM: '%d meses',\n y: 'un año',\n yy: '%d años',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n invalidDate: 'Fecha inválida',\n });\n\n return esMx;\n\n})));\n","//! moment.js locale configuration\n//! locale : Spanish (United States) [es-us]\n//! author : bustta : https://github.com/bustta\n//! author : chrisrodz : https://github.com/chrisrodz\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortDot =\n 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(\n '_'\n ),\n monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\n monthsParse = [\n /^ene/i,\n /^feb/i,\n /^mar/i,\n /^abr/i,\n /^may/i,\n /^jun/i,\n /^jul/i,\n /^ago/i,\n /^sep/i,\n /^oct/i,\n /^nov/i,\n /^dic/i,\n ],\n monthsRegex =\n /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n\n var esUs = moment.defineLocale('es-us', {\n months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortDot;\n } else if (/-MMM-/.test(format)) {\n return monthsShort[m.month()];\n } else {\n return monthsShortDot[m.month()];\n }\n },\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex:\n /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex:\n /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'MM/DD/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY h:mm A',\n LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A',\n },\n calendar: {\n sameDay: function () {\n return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextDay: function () {\n return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastDay: function () {\n return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastWeek: function () {\n return (\n '[el] dddd [pasado a la' +\n (this.hours() !== 1 ? 's' : '') +\n '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'en %s',\n past: 'hace %s',\n s: 'unos segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'una hora',\n hh: '%d horas',\n d: 'un día',\n dd: '%d días',\n w: 'una semana',\n ww: '%d semanas',\n M: 'un mes',\n MM: '%d meses',\n y: 'un año',\n yy: '%d años',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return esUs;\n\n})));\n","//! moment.js locale configuration\n//! locale : Spanish [es]\n//! author : Julio Napurí : https://github.com/julionc\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortDot =\n 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(\n '_'\n ),\n monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\n monthsParse = [\n /^ene/i,\n /^feb/i,\n /^mar/i,\n /^abr/i,\n /^may/i,\n /^jun/i,\n /^jul/i,\n /^ago/i,\n /^sep/i,\n /^oct/i,\n /^nov/i,\n /^dic/i,\n ],\n monthsRegex =\n /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n\n var es = moment.defineLocale('es', {\n months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortDot;\n } else if (/-MMM-/.test(format)) {\n return monthsShort[m.month()];\n } else {\n return monthsShortDot[m.month()];\n }\n },\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex:\n /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex:\n /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY H:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm',\n },\n calendar: {\n sameDay: function () {\n return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextDay: function () {\n return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastDay: function () {\n return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastWeek: function () {\n return (\n '[el] dddd [pasado a la' +\n (this.hours() !== 1 ? 's' : '') +\n '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'en %s',\n past: 'hace %s',\n s: 'unos segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'una hora',\n hh: '%d horas',\n d: 'un día',\n dd: '%d días',\n w: 'una semana',\n ww: '%d semanas',\n M: 'un mes',\n MM: '%d meses',\n y: 'un año',\n yy: '%d años',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n invalidDate: 'Fecha inválida',\n });\n\n return es;\n\n})));\n","//! moment.js locale configuration\n//! locale : Estonian [et]\n//! author : Henry Kehlmann : https://github.com/madhenry\n//! improvements : Illimar Tambek : https://github.com/ragulka\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n s: ['mõne sekundi', 'mõni sekund', 'paar sekundit'],\n ss: [number + 'sekundi', number + 'sekundit'],\n m: ['ühe minuti', 'üks minut'],\n mm: [number + ' minuti', number + ' minutit'],\n h: ['ühe tunni', 'tund aega', 'üks tund'],\n hh: [number + ' tunni', number + ' tundi'],\n d: ['ühe päeva', 'üks päev'],\n M: ['kuu aja', 'kuu aega', 'üks kuu'],\n MM: [number + ' kuu', number + ' kuud'],\n y: ['ühe aasta', 'aasta', 'üks aasta'],\n yy: [number + ' aasta', number + ' aastat'],\n };\n if (withoutSuffix) {\n return format[key][2] ? format[key][2] : format[key][1];\n }\n return isFuture ? format[key][0] : format[key][1];\n }\n\n var et = moment.defineLocale('et', {\n months: 'jaanuar_veebruar_märts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember'.split(\n '_'\n ),\n monthsShort:\n 'jaan_veebr_märts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets'.split('_'),\n weekdays:\n 'pühapäev_esmaspäev_teisipäev_kolmapäev_neljapäev_reede_laupäev'.split(\n '_'\n ),\n weekdaysShort: 'P_E_T_K_N_R_L'.split('_'),\n weekdaysMin: 'P_E_T_K_N_R_L'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[Täna,] LT',\n nextDay: '[Homme,] LT',\n nextWeek: '[Järgmine] dddd LT',\n lastDay: '[Eile,] LT',\n lastWeek: '[Eelmine] dddd LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s pärast',\n past: '%s tagasi',\n s: processRelativeTime,\n ss: processRelativeTime,\n m: processRelativeTime,\n mm: processRelativeTime,\n h: processRelativeTime,\n hh: processRelativeTime,\n d: processRelativeTime,\n dd: '%d päeva',\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return et;\n\n})));\n","//! moment.js locale configuration\n//! locale : Basque [eu]\n//! author : Eneko Illarramendi : https://github.com/eillarra\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var eu = moment.defineLocale('eu', {\n months: 'urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua'.split(\n '_'\n ),\n monthsShort:\n 'urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays:\n 'igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata'.split(\n '_'\n ),\n weekdaysShort: 'ig._al._ar._az._og._ol._lr.'.split('_'),\n weekdaysMin: 'ig_al_ar_az_og_ol_lr'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'YYYY[ko] MMMM[ren] D[a]',\n LLL: 'YYYY[ko] MMMM[ren] D[a] HH:mm',\n LLLL: 'dddd, YYYY[ko] MMMM[ren] D[a] HH:mm',\n l: 'YYYY-M-D',\n ll: 'YYYY[ko] MMM D[a]',\n lll: 'YYYY[ko] MMM D[a] HH:mm',\n llll: 'ddd, YYYY[ko] MMM D[a] HH:mm',\n },\n calendar: {\n sameDay: '[gaur] LT[etan]',\n nextDay: '[bihar] LT[etan]',\n nextWeek: 'dddd LT[etan]',\n lastDay: '[atzo] LT[etan]',\n lastWeek: '[aurreko] dddd LT[etan]',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s barru',\n past: 'duela %s',\n s: 'segundo batzuk',\n ss: '%d segundo',\n m: 'minutu bat',\n mm: '%d minutu',\n h: 'ordu bat',\n hh: '%d ordu',\n d: 'egun bat',\n dd: '%d egun',\n M: 'hilabete bat',\n MM: '%d hilabete',\n y: 'urte bat',\n yy: '%d urte',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return eu;\n\n})));\n","//! moment.js locale configuration\n//! locale : Persian [fa]\n//! author : Ebrahim Byagowi : https://github.com/ebraminio\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '۱',\n 2: '۲',\n 3: '۳',\n 4: '۴',\n 5: '۵',\n 6: '۶',\n 7: '۷',\n 8: '۸',\n 9: '۹',\n 0: '۰',\n },\n numberMap = {\n '۱': '1',\n '۲': '2',\n '۳': '3',\n '۴': '4',\n '۵': '5',\n '۶': '6',\n '۷': '7',\n '۸': '8',\n '۹': '9',\n '۰': '0',\n };\n\n var fa = moment.defineLocale('fa', {\n months: 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split(\n '_'\n ),\n monthsShort:\n 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split(\n '_'\n ),\n weekdays:\n 'یک\\u200cشنبه_دوشنبه_سه\\u200cشنبه_چهارشنبه_پنج\\u200cشنبه_جمعه_شنبه'.split(\n '_'\n ),\n weekdaysShort:\n 'یک\\u200cشنبه_دوشنبه_سه\\u200cشنبه_چهارشنبه_پنج\\u200cشنبه_جمعه_شنبه'.split(\n '_'\n ),\n weekdaysMin: 'ی_د_س_چ_پ_ج_ش'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n meridiemParse: /قبل از ظهر|بعد از ظهر/,\n isPM: function (input) {\n return /بعد از ظهر/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'قبل از ظهر';\n } else {\n return 'بعد از ظهر';\n }\n },\n calendar: {\n sameDay: '[امروز ساعت] LT',\n nextDay: '[فردا ساعت] LT',\n nextWeek: 'dddd [ساعت] LT',\n lastDay: '[دیروز ساعت] LT',\n lastWeek: 'dddd [پیش] [ساعت] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'در %s',\n past: '%s پیش',\n s: 'چند ثانیه',\n ss: '%d ثانیه',\n m: 'یک دقیقه',\n mm: '%d دقیقه',\n h: 'یک ساعت',\n hh: '%d ساعت',\n d: 'یک روز',\n dd: '%d روز',\n M: 'یک ماه',\n MM: '%d ماه',\n y: 'یک سال',\n yy: '%d سال',\n },\n preparse: function (string) {\n return string\n .replace(/[۰-۹]/g, function (match) {\n return numberMap[match];\n })\n .replace(/،/g, ',');\n },\n postformat: function (string) {\n return string\n .replace(/\\d/g, function (match) {\n return symbolMap[match];\n })\n .replace(/,/g, '،');\n },\n dayOfMonthOrdinalParse: /\\d{1,2}م/,\n ordinal: '%dم',\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return fa;\n\n})));\n","//! moment.js locale configuration\n//! locale : Finnish [fi]\n//! author : Tarmo Aidantausta : https://github.com/bleadof\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var numbersPast =\n 'nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän'.split(\n ' '\n ),\n numbersFuture = [\n 'nolla',\n 'yhden',\n 'kahden',\n 'kolmen',\n 'neljän',\n 'viiden',\n 'kuuden',\n numbersPast[7],\n numbersPast[8],\n numbersPast[9],\n ];\n function translate(number, withoutSuffix, key, isFuture) {\n var result = '';\n switch (key) {\n case 's':\n return isFuture ? 'muutaman sekunnin' : 'muutama sekunti';\n case 'ss':\n result = isFuture ? 'sekunnin' : 'sekuntia';\n break;\n case 'm':\n return isFuture ? 'minuutin' : 'minuutti';\n case 'mm':\n result = isFuture ? 'minuutin' : 'minuuttia';\n break;\n case 'h':\n return isFuture ? 'tunnin' : 'tunti';\n case 'hh':\n result = isFuture ? 'tunnin' : 'tuntia';\n break;\n case 'd':\n return isFuture ? 'päivän' : 'päivä';\n case 'dd':\n result = isFuture ? 'päivän' : 'päivää';\n break;\n case 'M':\n return isFuture ? 'kuukauden' : 'kuukausi';\n case 'MM':\n result = isFuture ? 'kuukauden' : 'kuukautta';\n break;\n case 'y':\n return isFuture ? 'vuoden' : 'vuosi';\n case 'yy':\n result = isFuture ? 'vuoden' : 'vuotta';\n break;\n }\n result = verbalNumber(number, isFuture) + ' ' + result;\n return result;\n }\n function verbalNumber(number, isFuture) {\n return number < 10\n ? isFuture\n ? numbersFuture[number]\n : numbersPast[number]\n : number;\n }\n\n var fi = moment.defineLocale('fi', {\n months: 'tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kesäkuu_heinäkuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu'.split(\n '_'\n ),\n monthsShort:\n 'tammi_helmi_maalis_huhti_touko_kesä_heinä_elo_syys_loka_marras_joulu'.split(\n '_'\n ),\n weekdays:\n 'sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai'.split(\n '_'\n ),\n weekdaysShort: 'su_ma_ti_ke_to_pe_la'.split('_'),\n weekdaysMin: 'su_ma_ti_ke_to_pe_la'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD.MM.YYYY',\n LL: 'Do MMMM[ta] YYYY',\n LLL: 'Do MMMM[ta] YYYY, [klo] HH.mm',\n LLLL: 'dddd, Do MMMM[ta] YYYY, [klo] HH.mm',\n l: 'D.M.YYYY',\n ll: 'Do MMM YYYY',\n lll: 'Do MMM YYYY, [klo] HH.mm',\n llll: 'ddd, Do MMM YYYY, [klo] HH.mm',\n },\n calendar: {\n sameDay: '[tänään] [klo] LT',\n nextDay: '[huomenna] [klo] LT',\n nextWeek: 'dddd [klo] LT',\n lastDay: '[eilen] [klo] LT',\n lastWeek: '[viime] dddd[na] [klo] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s päästä',\n past: '%s sitten',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return fi;\n\n})));\n","//! moment.js locale configuration\n//! locale : Filipino [fil]\n//! author : Dan Hagman : https://github.com/hagmandan\n//! author : Matthew Co : https://github.com/matthewdeeco\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var fil = moment.defineLocale('fil', {\n months: 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split(\n '_'\n ),\n monthsShort: 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'),\n weekdays: 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split(\n '_'\n ),\n weekdaysShort: 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'),\n weekdaysMin: 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'MM/D/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY HH:mm',\n LLLL: 'dddd, MMMM DD, YYYY HH:mm',\n },\n calendar: {\n sameDay: 'LT [ngayong araw]',\n nextDay: '[Bukas ng] LT',\n nextWeek: 'LT [sa susunod na] dddd',\n lastDay: 'LT [kahapon]',\n lastWeek: 'LT [noong nakaraang] dddd',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'sa loob ng %s',\n past: '%s ang nakalipas',\n s: 'ilang segundo',\n ss: '%d segundo',\n m: 'isang minuto',\n mm: '%d minuto',\n h: 'isang oras',\n hh: '%d oras',\n d: 'isang araw',\n dd: '%d araw',\n M: 'isang buwan',\n MM: '%d buwan',\n y: 'isang taon',\n yy: '%d taon',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal: function (number) {\n return number;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return fil;\n\n})));\n","//! moment.js locale configuration\n//! locale : Faroese [fo]\n//! author : Ragnar Johannesen : https://github.com/ragnar123\n//! author : Kristian Sakarisson : https://github.com/sakarisson\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var fo = moment.defineLocale('fo', {\n months: 'januar_februar_mars_apríl_mai_juni_juli_august_september_oktober_november_desember'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'),\n weekdays:\n 'sunnudagur_mánadagur_týsdagur_mikudagur_hósdagur_fríggjadagur_leygardagur'.split(\n '_'\n ),\n weekdaysShort: 'sun_mán_týs_mik_hós_frí_ley'.split('_'),\n weekdaysMin: 'su_má_tý_mi_hó_fr_le'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D. MMMM, YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Í dag kl.] LT',\n nextDay: '[Í morgin kl.] LT',\n nextWeek: 'dddd [kl.] LT',\n lastDay: '[Í gjár kl.] LT',\n lastWeek: '[síðstu] dddd [kl] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'um %s',\n past: '%s síðani',\n s: 'fá sekund',\n ss: '%d sekundir',\n m: 'ein minuttur',\n mm: '%d minuttir',\n h: 'ein tími',\n hh: '%d tímar',\n d: 'ein dagur',\n dd: '%d dagar',\n M: 'ein mánaður',\n MM: '%d mánaðir',\n y: 'eitt ár',\n yy: '%d ár',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return fo;\n\n})));\n","//! moment.js locale configuration\n//! locale : French (Canada) [fr-ca]\n//! author : Jonathan Abourbih : https://github.com/jonbca\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var frCa = moment.defineLocale('fr-ca', {\n months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split(\n '_'\n ),\n monthsShort:\n 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),\n weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),\n weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Aujourd’hui à] LT',\n nextDay: '[Demain à] LT',\n nextWeek: 'dddd [à] LT',\n lastDay: '[Hier à] LT',\n lastWeek: 'dddd [dernier à] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dans %s',\n past: 'il y a %s',\n s: 'quelques secondes',\n ss: '%d secondes',\n m: 'une minute',\n mm: '%d minutes',\n h: 'une heure',\n hh: '%d heures',\n d: 'un jour',\n dd: '%d jours',\n M: 'un mois',\n MM: '%d mois',\n y: 'un an',\n yy: '%d ans',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er|e)/,\n ordinal: function (number, period) {\n switch (period) {\n // Words with masculine grammatical gender: mois, trimestre, jour\n default:\n case 'M':\n case 'Q':\n case 'D':\n case 'DDD':\n case 'd':\n return number + (number === 1 ? 'er' : 'e');\n\n // Words with feminine grammatical gender: semaine\n case 'w':\n case 'W':\n return number + (number === 1 ? 're' : 'e');\n }\n },\n });\n\n return frCa;\n\n})));\n","//! moment.js locale configuration\n//! locale : French (Switzerland) [fr-ch]\n//! author : Gaspard Bucher : https://github.com/gaspard\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var frCh = moment.defineLocale('fr-ch', {\n months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split(\n '_'\n ),\n monthsShort:\n 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),\n weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),\n weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Aujourd’hui à] LT',\n nextDay: '[Demain à] LT',\n nextWeek: 'dddd [à] LT',\n lastDay: '[Hier à] LT',\n lastWeek: 'dddd [dernier à] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dans %s',\n past: 'il y a %s',\n s: 'quelques secondes',\n ss: '%d secondes',\n m: 'une minute',\n mm: '%d minutes',\n h: 'une heure',\n hh: '%d heures',\n d: 'un jour',\n dd: '%d jours',\n M: 'un mois',\n MM: '%d mois',\n y: 'un an',\n yy: '%d ans',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er|e)/,\n ordinal: function (number, period) {\n switch (period) {\n // Words with masculine grammatical gender: mois, trimestre, jour\n default:\n case 'M':\n case 'Q':\n case 'D':\n case 'DDD':\n case 'd':\n return number + (number === 1 ? 'er' : 'e');\n\n // Words with feminine grammatical gender: semaine\n case 'w':\n case 'W':\n return number + (number === 1 ? 're' : 'e');\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return frCh;\n\n})));\n","//! moment.js locale configuration\n//! locale : French [fr]\n//! author : John Fischer : https://github.com/jfroffice\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsStrictRegex =\n /^(janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i,\n monthsShortStrictRegex =\n /(janv\\.?|févr\\.?|mars|avr\\.?|mai|juin|juil\\.?|août|sept\\.?|oct\\.?|nov\\.?|déc\\.?)/i,\n monthsRegex =\n /(janv\\.?|févr\\.?|mars|avr\\.?|mai|juin|juil\\.?|août|sept\\.?|oct\\.?|nov\\.?|déc\\.?|janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i,\n monthsParse = [\n /^janv/i,\n /^févr/i,\n /^mars/i,\n /^avr/i,\n /^mai/i,\n /^juin/i,\n /^juil/i,\n /^août/i,\n /^sept/i,\n /^oct/i,\n /^nov/i,\n /^déc/i,\n ];\n\n var fr = moment.defineLocale('fr', {\n months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split(\n '_'\n ),\n monthsShort:\n 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split(\n '_'\n ),\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: monthsStrictRegex,\n monthsShortStrictRegex: monthsShortStrictRegex,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),\n weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),\n weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Aujourd’hui à] LT',\n nextDay: '[Demain à] LT',\n nextWeek: 'dddd [à] LT',\n lastDay: '[Hier à] LT',\n lastWeek: 'dddd [dernier à] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dans %s',\n past: 'il y a %s',\n s: 'quelques secondes',\n ss: '%d secondes',\n m: 'une minute',\n mm: '%d minutes',\n h: 'une heure',\n hh: '%d heures',\n d: 'un jour',\n dd: '%d jours',\n w: 'une semaine',\n ww: '%d semaines',\n M: 'un mois',\n MM: '%d mois',\n y: 'un an',\n yy: '%d ans',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er|)/,\n ordinal: function (number, period) {\n switch (period) {\n // TODO: Return 'e' when day of month > 1. Move this case inside\n // block for masculine words below.\n // See https://github.com/moment/moment/issues/3375\n case 'D':\n return number + (number === 1 ? 'er' : '');\n\n // Words with masculine grammatical gender: mois, trimestre, jour\n default:\n case 'M':\n case 'Q':\n case 'DDD':\n case 'd':\n return number + (number === 1 ? 'er' : 'e');\n\n // Words with feminine grammatical gender: semaine\n case 'w':\n case 'W':\n return number + (number === 1 ? 're' : 'e');\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return fr;\n\n})));\n","//! moment.js locale configuration\n//! locale : Frisian [fy]\n//! author : Robin van der Vliet : https://github.com/robin0van0der0v\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortWithDots =\n 'jan._feb._mrt._apr._mai_jun._jul._aug._sep._okt._nov._des.'.split('_'),\n monthsShortWithoutDots =\n 'jan_feb_mrt_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_');\n\n var fy = moment.defineLocale('fy', {\n months: 'jannewaris_febrewaris_maart_april_maaie_juny_july_augustus_septimber_oktober_novimber_desimber'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortWithDots;\n } else if (/-MMM-/.test(format)) {\n return monthsShortWithoutDots[m.month()];\n } else {\n return monthsShortWithDots[m.month()];\n }\n },\n monthsParseExact: true,\n weekdays: 'snein_moandei_tiisdei_woansdei_tongersdei_freed_sneon'.split(\n '_'\n ),\n weekdaysShort: 'si._mo._ti._wo._to._fr._so.'.split('_'),\n weekdaysMin: 'Si_Mo_Ti_Wo_To_Fr_So'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD-MM-YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[hjoed om] LT',\n nextDay: '[moarn om] LT',\n nextWeek: 'dddd [om] LT',\n lastDay: '[juster om] LT',\n lastWeek: '[ôfrûne] dddd [om] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'oer %s',\n past: '%s lyn',\n s: 'in pear sekonden',\n ss: '%d sekonden',\n m: 'ien minút',\n mm: '%d minuten',\n h: 'ien oere',\n hh: '%d oeren',\n d: 'ien dei',\n dd: '%d dagen',\n M: 'ien moanne',\n MM: '%d moannen',\n y: 'ien jier',\n yy: '%d jierren',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n ordinal: function (number) {\n return (\n number +\n (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de')\n );\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return fy;\n\n})));\n","//! moment.js locale configuration\n//! locale : Irish or Irish Gaelic [ga]\n//! author : André Silva : https://github.com/askpt\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months = [\n 'Eanáir',\n 'Feabhra',\n 'Márta',\n 'Aibreán',\n 'Bealtaine',\n 'Meitheamh',\n 'Iúil',\n 'Lúnasa',\n 'Meán Fómhair',\n 'Deireadh Fómhair',\n 'Samhain',\n 'Nollaig',\n ],\n monthsShort = [\n 'Ean',\n 'Feabh',\n 'Márt',\n 'Aib',\n 'Beal',\n 'Meith',\n 'Iúil',\n 'Lún',\n 'M.F.',\n 'D.F.',\n 'Samh',\n 'Noll',\n ],\n weekdays = [\n 'Dé Domhnaigh',\n 'Dé Luain',\n 'Dé Máirt',\n 'Dé Céadaoin',\n 'Déardaoin',\n 'Dé hAoine',\n 'Dé Sathairn',\n ],\n weekdaysShort = ['Domh', 'Luan', 'Máirt', 'Céad', 'Déar', 'Aoine', 'Sath'],\n weekdaysMin = ['Do', 'Lu', 'Má', 'Cé', 'Dé', 'A', 'Sa'];\n\n var ga = moment.defineLocale('ga', {\n months: months,\n monthsShort: monthsShort,\n monthsParseExact: true,\n weekdays: weekdays,\n weekdaysShort: weekdaysShort,\n weekdaysMin: weekdaysMin,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Inniu ag] LT',\n nextDay: '[Amárach ag] LT',\n nextWeek: 'dddd [ag] LT',\n lastDay: '[Inné ag] LT',\n lastWeek: 'dddd [seo caite] [ag] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'i %s',\n past: '%s ó shin',\n s: 'cúpla soicind',\n ss: '%d soicind',\n m: 'nóiméad',\n mm: '%d nóiméad',\n h: 'uair an chloig',\n hh: '%d uair an chloig',\n d: 'lá',\n dd: '%d lá',\n M: 'mí',\n MM: '%d míonna',\n y: 'bliain',\n yy: '%d bliain',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(d|na|mh)/,\n ordinal: function (number) {\n var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return ga;\n\n})));\n","//! moment.js locale configuration\n//! locale : Scottish Gaelic [gd]\n//! author : Jon Ashdown : https://github.com/jonashdown\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months = [\n 'Am Faoilleach',\n 'An Gearran',\n 'Am Màrt',\n 'An Giblean',\n 'An Cèitean',\n 'An t-Ògmhios',\n 'An t-Iuchar',\n 'An Lùnastal',\n 'An t-Sultain',\n 'An Dàmhair',\n 'An t-Samhain',\n 'An Dùbhlachd',\n ],\n monthsShort = [\n 'Faoi',\n 'Gear',\n 'Màrt',\n 'Gibl',\n 'Cèit',\n 'Ògmh',\n 'Iuch',\n 'Lùn',\n 'Sult',\n 'Dàmh',\n 'Samh',\n 'Dùbh',\n ],\n weekdays = [\n 'Didòmhnaich',\n 'Diluain',\n 'Dimàirt',\n 'Diciadain',\n 'Diardaoin',\n 'Dihaoine',\n 'Disathairne',\n ],\n weekdaysShort = ['Did', 'Dil', 'Dim', 'Dic', 'Dia', 'Dih', 'Dis'],\n weekdaysMin = ['Dò', 'Lu', 'Mà', 'Ci', 'Ar', 'Ha', 'Sa'];\n\n var gd = moment.defineLocale('gd', {\n months: months,\n monthsShort: monthsShort,\n monthsParseExact: true,\n weekdays: weekdays,\n weekdaysShort: weekdaysShort,\n weekdaysMin: weekdaysMin,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[An-diugh aig] LT',\n nextDay: '[A-màireach aig] LT',\n nextWeek: 'dddd [aig] LT',\n lastDay: '[An-dè aig] LT',\n lastWeek: 'dddd [seo chaidh] [aig] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'ann an %s',\n past: 'bho chionn %s',\n s: 'beagan diogan',\n ss: '%d diogan',\n m: 'mionaid',\n mm: '%d mionaidean',\n h: 'uair',\n hh: '%d uairean',\n d: 'latha',\n dd: '%d latha',\n M: 'mìos',\n MM: '%d mìosan',\n y: 'bliadhna',\n yy: '%d bliadhna',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(d|na|mh)/,\n ordinal: function (number) {\n var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return gd;\n\n})));\n","//! moment.js locale configuration\n//! locale : Galician [gl]\n//! author : Juan G. Hurtado : https://github.com/juanghurtado\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var gl = moment.defineLocale('gl', {\n months: 'xaneiro_febreiro_marzo_abril_maio_xuño_xullo_agosto_setembro_outubro_novembro_decembro'.split(\n '_'\n ),\n monthsShort:\n 'xan._feb._mar._abr._mai._xuñ._xul._ago._set._out._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'domingo_luns_martes_mércores_xoves_venres_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mér._xov._ven._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mé_xo_ve_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY H:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm',\n },\n calendar: {\n sameDay: function () {\n return '[hoxe ' + (this.hours() !== 1 ? 'ás' : 'á') + '] LT';\n },\n nextDay: function () {\n return '[mañá ' + (this.hours() !== 1 ? 'ás' : 'á') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [' + (this.hours() !== 1 ? 'ás' : 'a') + '] LT';\n },\n lastDay: function () {\n return '[onte ' + (this.hours() !== 1 ? 'á' : 'a') + '] LT';\n },\n lastWeek: function () {\n return (\n '[o] dddd [pasado ' + (this.hours() !== 1 ? 'ás' : 'a') + '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: function (str) {\n if (str.indexOf('un') === 0) {\n return 'n' + str;\n }\n return 'en ' + str;\n },\n past: 'hai %s',\n s: 'uns segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'unha hora',\n hh: '%d horas',\n d: 'un día',\n dd: '%d días',\n M: 'un mes',\n MM: '%d meses',\n y: 'un ano',\n yy: '%d anos',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return gl;\n\n})));\n","//! moment.js locale configuration\n//! locale : Konkani Devanagari script [gom-deva]\n//! author : The Discoverer : https://github.com/WikiDiscoverer\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n s: ['थोडया सॅकंडांनी', 'थोडे सॅकंड'],\n ss: [number + ' सॅकंडांनी', number + ' सॅकंड'],\n m: ['एका मिणटान', 'एक मिनूट'],\n mm: [number + ' मिणटांनी', number + ' मिणटां'],\n h: ['एका वरान', 'एक वर'],\n hh: [number + ' वरांनी', number + ' वरां'],\n d: ['एका दिसान', 'एक दीस'],\n dd: [number + ' दिसांनी', number + ' दीस'],\n M: ['एका म्हयन्यान', 'एक म्हयनो'],\n MM: [number + ' म्हयन्यानी', number + ' म्हयने'],\n y: ['एका वर्सान', 'एक वर्स'],\n yy: [number + ' वर्सांनी', number + ' वर्सां'],\n };\n return isFuture ? format[key][0] : format[key][1];\n }\n\n var gomDeva = moment.defineLocale('gom-deva', {\n months: {\n standalone:\n 'जानेवारी_फेब्रुवारी_मार्च_एप्रील_मे_जून_जुलय_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर'.split(\n '_'\n ),\n format: 'जानेवारीच्या_फेब्रुवारीच्या_मार्चाच्या_एप्रीलाच्या_मेयाच्या_जूनाच्या_जुलयाच्या_ऑगस्टाच्या_सप्टेंबराच्या_ऑक्टोबराच्या_नोव्हेंबराच्या_डिसेंबराच्या'.split(\n '_'\n ),\n isFormat: /MMMM(\\s)+D[oD]?/,\n },\n monthsShort:\n 'जाने._फेब्रु._मार्च_एप्री._मे_जून_जुल._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'आयतार_सोमार_मंगळार_बुधवार_बिरेस्तार_सुक्रार_शेनवार'.split('_'),\n weekdaysShort: 'आयत._सोम._मंगळ._बुध._ब्रेस्त._सुक्र._शेन.'.split('_'),\n weekdaysMin: 'आ_सो_मं_बु_ब्रे_सु_शे'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'A h:mm [वाजतां]',\n LTS: 'A h:mm:ss [वाजतां]',\n L: 'DD-MM-YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY A h:mm [वाजतां]',\n LLLL: 'dddd, MMMM Do, YYYY, A h:mm [वाजतां]',\n llll: 'ddd, D MMM YYYY, A h:mm [वाजतां]',\n },\n calendar: {\n sameDay: '[आयज] LT',\n nextDay: '[फाल्यां] LT',\n nextWeek: '[फुडलो] dddd[,] LT',\n lastDay: '[काल] LT',\n lastWeek: '[फाटलो] dddd[,] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s',\n past: '%s आदीं',\n s: processRelativeTime,\n ss: processRelativeTime,\n m: processRelativeTime,\n mm: processRelativeTime,\n h: processRelativeTime,\n hh: processRelativeTime,\n d: processRelativeTime,\n dd: processRelativeTime,\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(वेर)/,\n ordinal: function (number, period) {\n switch (period) {\n // the ordinal 'वेर' only applies to day of the month\n case 'D':\n return number + 'वेर';\n default:\n case 'M':\n case 'Q':\n case 'DDD':\n case 'd':\n case 'w':\n case 'W':\n return number;\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week\n doy: 3, // The week that contains Jan 4th is the first week of the year (7 + 0 - 4)\n },\n meridiemParse: /राती|सकाळीं|दनपारां|सांजे/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'राती') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'सकाळीं') {\n return hour;\n } else if (meridiem === 'दनपारां') {\n return hour > 12 ? hour : hour + 12;\n } else if (meridiem === 'सांजे') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'राती';\n } else if (hour < 12) {\n return 'सकाळीं';\n } else if (hour < 16) {\n return 'दनपारां';\n } else if (hour < 20) {\n return 'सांजे';\n } else {\n return 'राती';\n }\n },\n });\n\n return gomDeva;\n\n})));\n","//! moment.js locale configuration\n//! locale : Konkani Latin script [gom-latn]\n//! author : The Discoverer : https://github.com/WikiDiscoverer\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n s: ['thoddea sekondamni', 'thodde sekond'],\n ss: [number + ' sekondamni', number + ' sekond'],\n m: ['eka mintan', 'ek minut'],\n mm: [number + ' mintamni', number + ' mintam'],\n h: ['eka voran', 'ek vor'],\n hh: [number + ' voramni', number + ' voram'],\n d: ['eka disan', 'ek dis'],\n dd: [number + ' disamni', number + ' dis'],\n M: ['eka mhoinean', 'ek mhoino'],\n MM: [number + ' mhoineamni', number + ' mhoine'],\n y: ['eka vorsan', 'ek voros'],\n yy: [number + ' vorsamni', number + ' vorsam'],\n };\n return isFuture ? format[key][0] : format[key][1];\n }\n\n var gomLatn = moment.defineLocale('gom-latn', {\n months: {\n standalone:\n 'Janer_Febrer_Mars_Abril_Mai_Jun_Julai_Agost_Setembr_Otubr_Novembr_Dezembr'.split(\n '_'\n ),\n format: 'Janerachea_Febrerachea_Marsachea_Abrilachea_Maiachea_Junachea_Julaiachea_Agostachea_Setembrachea_Otubrachea_Novembrachea_Dezembrachea'.split(\n '_'\n ),\n isFormat: /MMMM(\\s)+D[oD]?/,\n },\n monthsShort:\n 'Jan._Feb._Mars_Abr._Mai_Jun_Jul._Ago._Set._Otu._Nov._Dez.'.split('_'),\n monthsParseExact: true,\n weekdays: \"Aitar_Somar_Mongllar_Budhvar_Birestar_Sukrar_Son'var\".split('_'),\n weekdaysShort: 'Ait._Som._Mon._Bud._Bre._Suk._Son.'.split('_'),\n weekdaysMin: 'Ai_Sm_Mo_Bu_Br_Su_Sn'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'A h:mm [vazta]',\n LTS: 'A h:mm:ss [vazta]',\n L: 'DD-MM-YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY A h:mm [vazta]',\n LLLL: 'dddd, MMMM Do, YYYY, A h:mm [vazta]',\n llll: 'ddd, D MMM YYYY, A h:mm [vazta]',\n },\n calendar: {\n sameDay: '[Aiz] LT',\n nextDay: '[Faleam] LT',\n nextWeek: '[Fuddlo] dddd[,] LT',\n lastDay: '[Kal] LT',\n lastWeek: '[Fattlo] dddd[,] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s',\n past: '%s adim',\n s: processRelativeTime,\n ss: processRelativeTime,\n m: processRelativeTime,\n mm: processRelativeTime,\n h: processRelativeTime,\n hh: processRelativeTime,\n d: processRelativeTime,\n dd: processRelativeTime,\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er)/,\n ordinal: function (number, period) {\n switch (period) {\n // the ordinal 'er' only applies to day of the month\n case 'D':\n return number + 'er';\n default:\n case 'M':\n case 'Q':\n case 'DDD':\n case 'd':\n case 'w':\n case 'W':\n return number;\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week\n doy: 3, // The week that contains Jan 4th is the first week of the year (7 + 0 - 4)\n },\n meridiemParse: /rati|sokallim|donparam|sanje/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'rati') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'sokallim') {\n return hour;\n } else if (meridiem === 'donparam') {\n return hour > 12 ? hour : hour + 12;\n } else if (meridiem === 'sanje') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'rati';\n } else if (hour < 12) {\n return 'sokallim';\n } else if (hour < 16) {\n return 'donparam';\n } else if (hour < 20) {\n return 'sanje';\n } else {\n return 'rati';\n }\n },\n });\n\n return gomLatn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Gujarati [gu]\n//! author : Kaushik Thanki : https://github.com/Kaushik1987\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '૧',\n 2: '૨',\n 3: '૩',\n 4: '૪',\n 5: '૫',\n 6: '૬',\n 7: '૭',\n 8: '૮',\n 9: '૯',\n 0: '૦',\n },\n numberMap = {\n '૧': '1',\n '૨': '2',\n '૩': '3',\n '૪': '4',\n '૫': '5',\n '૬': '6',\n '૭': '7',\n '૮': '8',\n '૯': '9',\n '૦': '0',\n };\n\n var gu = moment.defineLocale('gu', {\n months: 'જાન્યુઆરી_ફેબ્રુઆરી_માર્ચ_એપ્રિલ_મે_જૂન_જુલાઈ_ઑગસ્ટ_સપ્ટેમ્બર_ઑક્ટ્બર_નવેમ્બર_ડિસેમ્બર'.split(\n '_'\n ),\n monthsShort:\n 'જાન્યુ._ફેબ્રુ._માર્ચ_એપ્રિ._મે_જૂન_જુલા._ઑગ._સપ્ટે._ઑક્ટ્._નવે._ડિસે.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'રવિવાર_સોમવાર_મંગળવાર_બુધ્વાર_ગુરુવાર_શુક્રવાર_શનિવાર'.split(\n '_'\n ),\n weekdaysShort: 'રવિ_સોમ_મંગળ_બુધ્_ગુરુ_શુક્ર_શનિ'.split('_'),\n weekdaysMin: 'ર_સો_મં_બુ_ગુ_શુ_શ'.split('_'),\n longDateFormat: {\n LT: 'A h:mm વાગ્યે',\n LTS: 'A h:mm:ss વાગ્યે',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm વાગ્યે',\n LLLL: 'dddd, D MMMM YYYY, A h:mm વાગ્યે',\n },\n calendar: {\n sameDay: '[આજ] LT',\n nextDay: '[કાલે] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[ગઇકાલે] LT',\n lastWeek: '[પાછલા] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s મા',\n past: '%s પહેલા',\n s: 'અમુક પળો',\n ss: '%d સેકંડ',\n m: 'એક મિનિટ',\n mm: '%d મિનિટ',\n h: 'એક કલાક',\n hh: '%d કલાક',\n d: 'એક દિવસ',\n dd: '%d દિવસ',\n M: 'એક મહિનો',\n MM: '%d મહિનો',\n y: 'એક વર્ષ',\n yy: '%d વર્ષ',\n },\n preparse: function (string) {\n return string.replace(/[૧૨૩૪૫૬૭૮૯૦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n // Gujarati notation for meridiems are quite fuzzy in practice. While there exists\n // a rigid notion of a 'Pahar' it is not used as rigidly in modern Gujarati.\n meridiemParse: /રાત|બપોર|સવાર|સાંજ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'રાત') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'સવાર') {\n return hour;\n } else if (meridiem === 'બપોર') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'સાંજ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'રાત';\n } else if (hour < 10) {\n return 'સવાર';\n } else if (hour < 17) {\n return 'બપોર';\n } else if (hour < 20) {\n return 'સાંજ';\n } else {\n return 'રાત';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return gu;\n\n})));\n","//! moment.js locale configuration\n//! locale : Hebrew [he]\n//! author : Tomer Cohen : https://github.com/tomer\n//! author : Moshe Simantov : https://github.com/DevelopmentIL\n//! author : Tal Ater : https://github.com/TalAter\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var he = moment.defineLocale('he', {\n months: 'ינואר_פברואר_מרץ_אפריל_מאי_יוני_יולי_אוגוסט_ספטמבר_אוקטובר_נובמבר_דצמבר'.split(\n '_'\n ),\n monthsShort:\n 'ינו׳_פבר׳_מרץ_אפר׳_מאי_יוני_יולי_אוג׳_ספט׳_אוק׳_נוב׳_דצמ׳'.split('_'),\n weekdays: 'ראשון_שני_שלישי_רביעי_חמישי_שישי_שבת'.split('_'),\n weekdaysShort: 'א׳_ב׳_ג׳_ד׳_ה׳_ו׳_ש׳'.split('_'),\n weekdaysMin: 'א_ב_ג_ד_ה_ו_ש'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [ב]MMMM YYYY',\n LLL: 'D [ב]MMMM YYYY HH:mm',\n LLLL: 'dddd, D [ב]MMMM YYYY HH:mm',\n l: 'D/M/YYYY',\n ll: 'D MMM YYYY',\n lll: 'D MMM YYYY HH:mm',\n llll: 'ddd, D MMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[היום ב־]LT',\n nextDay: '[מחר ב־]LT',\n nextWeek: 'dddd [בשעה] LT',\n lastDay: '[אתמול ב־]LT',\n lastWeek: '[ביום] dddd [האחרון בשעה] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'בעוד %s',\n past: 'לפני %s',\n s: 'מספר שניות',\n ss: '%d שניות',\n m: 'דקה',\n mm: '%d דקות',\n h: 'שעה',\n hh: function (number) {\n if (number === 2) {\n return 'שעתיים';\n }\n return number + ' שעות';\n },\n d: 'יום',\n dd: function (number) {\n if (number === 2) {\n return 'יומיים';\n }\n return number + ' ימים';\n },\n M: 'חודש',\n MM: function (number) {\n if (number === 2) {\n return 'חודשיים';\n }\n return number + ' חודשים';\n },\n y: 'שנה',\n yy: function (number) {\n if (number === 2) {\n return 'שנתיים';\n } else if (number % 10 === 0 && number !== 10) {\n return number + ' שנה';\n }\n return number + ' שנים';\n },\n },\n meridiemParse:\n /אחה\"צ|לפנה\"צ|אחרי הצהריים|לפני הצהריים|לפנות בוקר|בבוקר|בערב/i,\n isPM: function (input) {\n return /^(אחה\"צ|אחרי הצהריים|בערב)$/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 5) {\n return 'לפנות בוקר';\n } else if (hour < 10) {\n return 'בבוקר';\n } else if (hour < 12) {\n return isLower ? 'לפנה\"צ' : 'לפני הצהריים';\n } else if (hour < 18) {\n return isLower ? 'אחה\"צ' : 'אחרי הצהריים';\n } else {\n return 'בערב';\n }\n },\n });\n\n return he;\n\n})));\n","//! moment.js locale configuration\n//! locale : Hindi [hi]\n//! author : Mayank Singhal : https://github.com/mayanksinghal\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '१',\n 2: '२',\n 3: '३',\n 4: '४',\n 5: '५',\n 6: '६',\n 7: '७',\n 8: '८',\n 9: '९',\n 0: '०',\n },\n numberMap = {\n '१': '1',\n '२': '2',\n '३': '3',\n '४': '4',\n '५': '5',\n '६': '6',\n '७': '7',\n '८': '8',\n '९': '9',\n '०': '0',\n },\n monthsParse = [\n /^जन/i,\n /^फ़र|फर/i,\n /^मार्च/i,\n /^अप्रै/i,\n /^मई/i,\n /^जून/i,\n /^जुल/i,\n /^अग/i,\n /^सितं|सित/i,\n /^अक्टू/i,\n /^नव|नवं/i,\n /^दिसं|दिस/i,\n ],\n shortMonthsParse = [\n /^जन/i,\n /^फ़र/i,\n /^मार्च/i,\n /^अप्रै/i,\n /^मई/i,\n /^जून/i,\n /^जुल/i,\n /^अग/i,\n /^सित/i,\n /^अक्टू/i,\n /^नव/i,\n /^दिस/i,\n ];\n\n var hi = moment.defineLocale('hi', {\n months: {\n format: 'जनवरी_फ़रवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितम्बर_अक्टूबर_नवम्बर_दिसम्बर'.split(\n '_'\n ),\n standalone:\n 'जनवरी_फरवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितंबर_अक्टूबर_नवंबर_दिसंबर'.split(\n '_'\n ),\n },\n monthsShort:\n 'जन._फ़र._मार्च_अप्रै._मई_जून_जुल._अग._सित._अक्टू._नव._दिस.'.split('_'),\n weekdays: 'रविवार_सोमवार_मंगलवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'),\n weekdaysShort: 'रवि_सोम_मंगल_बुध_गुरू_शुक्र_शनि'.split('_'),\n weekdaysMin: 'र_सो_मं_बु_गु_शु_श'.split('_'),\n longDateFormat: {\n LT: 'A h:mm बजे',\n LTS: 'A h:mm:ss बजे',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm बजे',\n LLLL: 'dddd, D MMMM YYYY, A h:mm बजे',\n },\n\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: shortMonthsParse,\n\n monthsRegex:\n /^(जनवरी|जन\\.?|फ़रवरी|फरवरी|फ़र\\.?|मार्च?|अप्रैल|अप्रै\\.?|मई?|जून?|जुलाई|जुल\\.?|अगस्त|अग\\.?|सितम्बर|सितंबर|सित\\.?|अक्टूबर|अक्टू\\.?|नवम्बर|नवंबर|नव\\.?|दिसम्बर|दिसंबर|दिस\\.?)/i,\n\n monthsShortRegex:\n /^(जनवरी|जन\\.?|फ़रवरी|फरवरी|फ़र\\.?|मार्च?|अप्रैल|अप्रै\\.?|मई?|जून?|जुलाई|जुल\\.?|अगस्त|अग\\.?|सितम्बर|सितंबर|सित\\.?|अक्टूबर|अक्टू\\.?|नवम्बर|नवंबर|नव\\.?|दिसम्बर|दिसंबर|दिस\\.?)/i,\n\n monthsStrictRegex:\n /^(जनवरी?|फ़रवरी|फरवरी?|मार्च?|अप्रैल?|मई?|जून?|जुलाई?|अगस्त?|सितम्बर|सितंबर|सित?\\.?|अक्टूबर|अक्टू\\.?|नवम्बर|नवंबर?|दिसम्बर|दिसंबर?)/i,\n\n monthsShortStrictRegex:\n /^(जन\\.?|फ़र\\.?|मार्च?|अप्रै\\.?|मई?|जून?|जुल\\.?|अग\\.?|सित\\.?|अक्टू\\.?|नव\\.?|दिस\\.?)/i,\n\n calendar: {\n sameDay: '[आज] LT',\n nextDay: '[कल] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[कल] LT',\n lastWeek: '[पिछले] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s में',\n past: '%s पहले',\n s: 'कुछ ही क्षण',\n ss: '%d सेकंड',\n m: 'एक मिनट',\n mm: '%d मिनट',\n h: 'एक घंटा',\n hh: '%d घंटे',\n d: 'एक दिन',\n dd: '%d दिन',\n M: 'एक महीने',\n MM: '%d महीने',\n y: 'एक वर्ष',\n yy: '%d वर्ष',\n },\n preparse: function (string) {\n return string.replace(/[१२३४५६७८९०]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n // Hindi notation for meridiems are quite fuzzy in practice. While there exists\n // a rigid notion of a 'Pahar' it is not used as rigidly in modern Hindi.\n meridiemParse: /रात|सुबह|दोपहर|शाम/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'रात') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'सुबह') {\n return hour;\n } else if (meridiem === 'दोपहर') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'शाम') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'रात';\n } else if (hour < 10) {\n return 'सुबह';\n } else if (hour < 17) {\n return 'दोपहर';\n } else if (hour < 20) {\n return 'शाम';\n } else {\n return 'रात';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return hi;\n\n})));\n","//! moment.js locale configuration\n//! locale : Croatian [hr]\n//! author : Bojan Marković : https://github.com/bmarkovic\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function translate(number, withoutSuffix, key) {\n var result = number + ' ';\n switch (key) {\n case 'ss':\n if (number === 1) {\n result += 'sekunda';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'sekunde';\n } else {\n result += 'sekundi';\n }\n return result;\n case 'm':\n return withoutSuffix ? 'jedna minuta' : 'jedne minute';\n case 'mm':\n if (number === 1) {\n result += 'minuta';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'minute';\n } else {\n result += 'minuta';\n }\n return result;\n case 'h':\n return withoutSuffix ? 'jedan sat' : 'jednog sata';\n case 'hh':\n if (number === 1) {\n result += 'sat';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'sata';\n } else {\n result += 'sati';\n }\n return result;\n case 'dd':\n if (number === 1) {\n result += 'dan';\n } else {\n result += 'dana';\n }\n return result;\n case 'MM':\n if (number === 1) {\n result += 'mjesec';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'mjeseca';\n } else {\n result += 'mjeseci';\n }\n return result;\n case 'yy':\n if (number === 1) {\n result += 'godina';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'godine';\n } else {\n result += 'godina';\n }\n return result;\n }\n }\n\n var hr = moment.defineLocale('hr', {\n months: {\n format: 'siječnja_veljače_ožujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca'.split(\n '_'\n ),\n standalone:\n 'siječanj_veljača_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac'.split(\n '_'\n ),\n },\n monthsShort:\n 'sij._velj._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split(\n '_'\n ),\n weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),\n weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'Do MMMM YYYY',\n LLL: 'Do MMMM YYYY H:mm',\n LLLL: 'dddd, Do MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[danas u] LT',\n nextDay: '[sutra u] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[u] [nedjelju] [u] LT';\n case 3:\n return '[u] [srijedu] [u] LT';\n case 6:\n return '[u] [subotu] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[u] dddd [u] LT';\n }\n },\n lastDay: '[jučer u] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[prošlu] [nedjelju] [u] LT';\n case 3:\n return '[prošlu] [srijedu] [u] LT';\n case 6:\n return '[prošle] [subote] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[prošli] dddd [u] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'prije %s',\n s: 'par sekundi',\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: 'dan',\n dd: translate,\n M: 'mjesec',\n MM: translate,\n y: 'godinu',\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return hr;\n\n})));\n","//! moment.js locale configuration\n//! locale : Hungarian [hu]\n//! author : Adam Brunner : https://github.com/adambrunner\n//! author : Peter Viszt : https://github.com/passatgt\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var weekEndings =\n 'vasárnap hétfőn kedden szerdán csütörtökön pénteken szombaton'.split(' ');\n function translate(number, withoutSuffix, key, isFuture) {\n var num = number;\n switch (key) {\n case 's':\n return isFuture || withoutSuffix\n ? 'néhány másodperc'\n : 'néhány másodperce';\n case 'ss':\n return num + (isFuture || withoutSuffix)\n ? ' másodperc'\n : ' másodperce';\n case 'm':\n return 'egy' + (isFuture || withoutSuffix ? ' perc' : ' perce');\n case 'mm':\n return num + (isFuture || withoutSuffix ? ' perc' : ' perce');\n case 'h':\n return 'egy' + (isFuture || withoutSuffix ? ' óra' : ' órája');\n case 'hh':\n return num + (isFuture || withoutSuffix ? ' óra' : ' órája');\n case 'd':\n return 'egy' + (isFuture || withoutSuffix ? ' nap' : ' napja');\n case 'dd':\n return num + (isFuture || withoutSuffix ? ' nap' : ' napja');\n case 'M':\n return 'egy' + (isFuture || withoutSuffix ? ' hónap' : ' hónapja');\n case 'MM':\n return num + (isFuture || withoutSuffix ? ' hónap' : ' hónapja');\n case 'y':\n return 'egy' + (isFuture || withoutSuffix ? ' év' : ' éve');\n case 'yy':\n return num + (isFuture || withoutSuffix ? ' év' : ' éve');\n }\n return '';\n }\n function week(isFuture) {\n return (\n (isFuture ? '' : '[múlt] ') +\n '[' +\n weekEndings[this.day()] +\n '] LT[-kor]'\n );\n }\n\n var hu = moment.defineLocale('hu', {\n months: 'január_február_március_április_május_június_július_augusztus_szeptember_október_november_december'.split(\n '_'\n ),\n monthsShort:\n 'jan._feb._márc._ápr._máj._jún._júl._aug._szept._okt._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'vasárnap_hétfő_kedd_szerda_csütörtök_péntek_szombat'.split('_'),\n weekdaysShort: 'vas_hét_kedd_sze_csüt_pén_szo'.split('_'),\n weekdaysMin: 'v_h_k_sze_cs_p_szo'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'YYYY.MM.DD.',\n LL: 'YYYY. MMMM D.',\n LLL: 'YYYY. MMMM D. H:mm',\n LLLL: 'YYYY. MMMM D., dddd H:mm',\n },\n meridiemParse: /de|du/i,\n isPM: function (input) {\n return input.charAt(1).toLowerCase() === 'u';\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower === true ? 'de' : 'DE';\n } else {\n return isLower === true ? 'du' : 'DU';\n }\n },\n calendar: {\n sameDay: '[ma] LT[-kor]',\n nextDay: '[holnap] LT[-kor]',\n nextWeek: function () {\n return week.call(this, true);\n },\n lastDay: '[tegnap] LT[-kor]',\n lastWeek: function () {\n return week.call(this, false);\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s múlva',\n past: '%s',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return hu;\n\n})));\n","//! moment.js locale configuration\n//! locale : Armenian [hy-am]\n//! author : Armendarabyan : https://github.com/armendarabyan\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var hyAm = moment.defineLocale('hy-am', {\n months: {\n format: 'հունվարի_փետրվարի_մարտի_ապրիլի_մայիսի_հունիսի_հուլիսի_օգոստոսի_սեպտեմբերի_հոկտեմբերի_նոյեմբերի_դեկտեմբերի'.split(\n '_'\n ),\n standalone:\n 'հունվար_փետրվար_մարտ_ապրիլ_մայիս_հունիս_հուլիս_օգոստոս_սեպտեմբեր_հոկտեմբեր_նոյեմբեր_դեկտեմբեր'.split(\n '_'\n ),\n },\n monthsShort: 'հնվ_փտր_մրտ_ապր_մյս_հնս_հլս_օգս_սպտ_հկտ_նմբ_դկտ'.split('_'),\n weekdays:\n 'կիրակի_երկուշաբթի_երեքշաբթի_չորեքշաբթի_հինգշաբթի_ուրբաթ_շաբաթ'.split(\n '_'\n ),\n weekdaysShort: 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'),\n weekdaysMin: 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY թ.',\n LLL: 'D MMMM YYYY թ., HH:mm',\n LLLL: 'dddd, D MMMM YYYY թ., HH:mm',\n },\n calendar: {\n sameDay: '[այսօր] LT',\n nextDay: '[վաղը] LT',\n lastDay: '[երեկ] LT',\n nextWeek: function () {\n return 'dddd [օրը ժամը] LT';\n },\n lastWeek: function () {\n return '[անցած] dddd [օրը ժամը] LT';\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s հետո',\n past: '%s առաջ',\n s: 'մի քանի վայրկյան',\n ss: '%d վայրկյան',\n m: 'րոպե',\n mm: '%d րոպե',\n h: 'ժամ',\n hh: '%d ժամ',\n d: 'օր',\n dd: '%d օր',\n M: 'ամիս',\n MM: '%d ամիս',\n y: 'տարի',\n yy: '%d տարի',\n },\n meridiemParse: /գիշերվա|առավոտվա|ցերեկվա|երեկոյան/,\n isPM: function (input) {\n return /^(ցերեկվա|երեկոյան)$/.test(input);\n },\n meridiem: function (hour) {\n if (hour < 4) {\n return 'գիշերվա';\n } else if (hour < 12) {\n return 'առավոտվա';\n } else if (hour < 17) {\n return 'ցերեկվա';\n } else {\n return 'երեկոյան';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}|\\d{1,2}-(ին|րդ)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'DDD':\n case 'w':\n case 'W':\n case 'DDDo':\n if (number === 1) {\n return number + '-ին';\n }\n return number + '-րդ';\n default:\n return number;\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return hyAm;\n\n})));\n","//! moment.js locale configuration\n//! locale : Indonesian [id]\n//! author : Mohammad Satrio Utomo : https://github.com/tyok\n//! reference: http://id.wikisource.org/wiki/Pedoman_Umum_Ejaan_Bahasa_Indonesia_yang_Disempurnakan\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var id = moment.defineLocale('id', {\n months: 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Agt_Sep_Okt_Nov_Des'.split('_'),\n weekdays: 'Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu'.split('_'),\n weekdaysShort: 'Min_Sen_Sel_Rab_Kam_Jum_Sab'.split('_'),\n weekdaysMin: 'Mg_Sn_Sl_Rb_Km_Jm_Sb'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [pukul] HH.mm',\n LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',\n },\n meridiemParse: /pagi|siang|sore|malam/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'pagi') {\n return hour;\n } else if (meridiem === 'siang') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'sore' || meridiem === 'malam') {\n return hour + 12;\n }\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'pagi';\n } else if (hours < 15) {\n return 'siang';\n } else if (hours < 19) {\n return 'sore';\n } else {\n return 'malam';\n }\n },\n calendar: {\n sameDay: '[Hari ini pukul] LT',\n nextDay: '[Besok pukul] LT',\n nextWeek: 'dddd [pukul] LT',\n lastDay: '[Kemarin pukul] LT',\n lastWeek: 'dddd [lalu pukul] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dalam %s',\n past: '%s yang lalu',\n s: 'beberapa detik',\n ss: '%d detik',\n m: 'semenit',\n mm: '%d menit',\n h: 'sejam',\n hh: '%d jam',\n d: 'sehari',\n dd: '%d hari',\n M: 'sebulan',\n MM: '%d bulan',\n y: 'setahun',\n yy: '%d tahun',\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return id;\n\n})));\n","//! moment.js locale configuration\n//! locale : Icelandic [is]\n//! author : Hinrik Örn Sigurðsson : https://github.com/hinrik\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function plural(n) {\n if (n % 100 === 11) {\n return true;\n } else if (n % 10 === 1) {\n return false;\n }\n return true;\n }\n function translate(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n switch (key) {\n case 's':\n return withoutSuffix || isFuture\n ? 'nokkrar sekúndur'\n : 'nokkrum sekúndum';\n case 'ss':\n if (plural(number)) {\n return (\n result +\n (withoutSuffix || isFuture ? 'sekúndur' : 'sekúndum')\n );\n }\n return result + 'sekúnda';\n case 'm':\n return withoutSuffix ? 'mínúta' : 'mínútu';\n case 'mm':\n if (plural(number)) {\n return (\n result + (withoutSuffix || isFuture ? 'mínútur' : 'mínútum')\n );\n } else if (withoutSuffix) {\n return result + 'mínúta';\n }\n return result + 'mínútu';\n case 'hh':\n if (plural(number)) {\n return (\n result +\n (withoutSuffix || isFuture\n ? 'klukkustundir'\n : 'klukkustundum')\n );\n }\n return result + 'klukkustund';\n case 'd':\n if (withoutSuffix) {\n return 'dagur';\n }\n return isFuture ? 'dag' : 'degi';\n case 'dd':\n if (plural(number)) {\n if (withoutSuffix) {\n return result + 'dagar';\n }\n return result + (isFuture ? 'daga' : 'dögum');\n } else if (withoutSuffix) {\n return result + 'dagur';\n }\n return result + (isFuture ? 'dag' : 'degi');\n case 'M':\n if (withoutSuffix) {\n return 'mánuður';\n }\n return isFuture ? 'mánuð' : 'mánuði';\n case 'MM':\n if (plural(number)) {\n if (withoutSuffix) {\n return result + 'mánuðir';\n }\n return result + (isFuture ? 'mánuði' : 'mánuðum');\n } else if (withoutSuffix) {\n return result + 'mánuður';\n }\n return result + (isFuture ? 'mánuð' : 'mánuði');\n case 'y':\n return withoutSuffix || isFuture ? 'ár' : 'ári';\n case 'yy':\n if (plural(number)) {\n return result + (withoutSuffix || isFuture ? 'ár' : 'árum');\n }\n return result + (withoutSuffix || isFuture ? 'ár' : 'ári');\n }\n }\n\n var is = moment.defineLocale('is', {\n months: 'janúar_febrúar_mars_apríl_maí_júní_júlí_ágúst_september_október_nóvember_desember'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mar_apr_maí_jún_júl_ágú_sep_okt_nóv_des'.split('_'),\n weekdays:\n 'sunnudagur_mánudagur_þriðjudagur_miðvikudagur_fimmtudagur_föstudagur_laugardagur'.split(\n '_'\n ),\n weekdaysShort: 'sun_mán_þri_mið_fim_fös_lau'.split('_'),\n weekdaysMin: 'Su_Má_Þr_Mi_Fi_Fö_La'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY [kl.] H:mm',\n LLLL: 'dddd, D. MMMM YYYY [kl.] H:mm',\n },\n calendar: {\n sameDay: '[í dag kl.] LT',\n nextDay: '[á morgun kl.] LT',\n nextWeek: 'dddd [kl.] LT',\n lastDay: '[í gær kl.] LT',\n lastWeek: '[síðasta] dddd [kl.] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'eftir %s',\n past: 'fyrir %s síðan',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: 'klukkustund',\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return is;\n\n})));\n","//! moment.js locale configuration\n//! locale : Italian (Switzerland) [it-ch]\n//! author : xfh : https://github.com/xfh\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var itCh = moment.defineLocale('it-ch', {\n months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split(\n '_'\n ),\n monthsShort: 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'),\n weekdays: 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split(\n '_'\n ),\n weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'),\n weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Oggi alle] LT',\n nextDay: '[Domani alle] LT',\n nextWeek: 'dddd [alle] LT',\n lastDay: '[Ieri alle] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[la scorsa] dddd [alle] LT';\n default:\n return '[lo scorso] dddd [alle] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: function (s) {\n return (/^[0-9].+$/.test(s) ? 'tra' : 'in') + ' ' + s;\n },\n past: '%s fa',\n s: 'alcuni secondi',\n ss: '%d secondi',\n m: 'un minuto',\n mm: '%d minuti',\n h: \"un'ora\",\n hh: '%d ore',\n d: 'un giorno',\n dd: '%d giorni',\n M: 'un mese',\n MM: '%d mesi',\n y: 'un anno',\n yy: '%d anni',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return itCh;\n\n})));\n","//! moment.js locale configuration\n//! locale : Italian [it]\n//! author : Lorenzo : https://github.com/aliem\n//! author: Mattia Larentis: https://github.com/nostalgiaz\n//! author: Marco : https://github.com/Manfre98\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var it = moment.defineLocale('it', {\n months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split(\n '_'\n ),\n monthsShort: 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'),\n weekdays: 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split(\n '_'\n ),\n weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'),\n weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: function () {\n return (\n '[Oggi a' +\n (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") +\n ']LT'\n );\n },\n nextDay: function () {\n return (\n '[Domani a' +\n (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") +\n ']LT'\n );\n },\n nextWeek: function () {\n return (\n 'dddd [a' +\n (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") +\n ']LT'\n );\n },\n lastDay: function () {\n return (\n '[Ieri a' +\n (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") +\n ']LT'\n );\n },\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return (\n '[La scorsa] dddd [a' +\n (this.hours() > 1\n ? 'lle '\n : this.hours() === 0\n ? ' '\n : \"ll'\") +\n ']LT'\n );\n default:\n return (\n '[Lo scorso] dddd [a' +\n (this.hours() > 1\n ? 'lle '\n : this.hours() === 0\n ? ' '\n : \"ll'\") +\n ']LT'\n );\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'tra %s',\n past: '%s fa',\n s: 'alcuni secondi',\n ss: '%d secondi',\n m: 'un minuto',\n mm: '%d minuti',\n h: \"un'ora\",\n hh: '%d ore',\n d: 'un giorno',\n dd: '%d giorni',\n w: 'una settimana',\n ww: '%d settimane',\n M: 'un mese',\n MM: '%d mesi',\n y: 'un anno',\n yy: '%d anni',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return it;\n\n})));\n","//! moment.js locale configuration\n//! locale : Japanese [ja]\n//! author : LI Long : https://github.com/baryon\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ja = moment.defineLocale('ja', {\n eras: [\n {\n since: '2019-05-01',\n offset: 1,\n name: '令和',\n narrow: '㋿',\n abbr: 'R',\n },\n {\n since: '1989-01-08',\n until: '2019-04-30',\n offset: 1,\n name: '平成',\n narrow: '㍻',\n abbr: 'H',\n },\n {\n since: '1926-12-25',\n until: '1989-01-07',\n offset: 1,\n name: '昭和',\n narrow: '㍼',\n abbr: 'S',\n },\n {\n since: '1912-07-30',\n until: '1926-12-24',\n offset: 1,\n name: '大正',\n narrow: '㍽',\n abbr: 'T',\n },\n {\n since: '1873-01-01',\n until: '1912-07-29',\n offset: 6,\n name: '明治',\n narrow: '㍾',\n abbr: 'M',\n },\n {\n since: '0001-01-01',\n until: '1873-12-31',\n offset: 1,\n name: '西暦',\n narrow: 'AD',\n abbr: 'AD',\n },\n {\n since: '0000-12-31',\n until: -Infinity,\n offset: 1,\n name: '紀元前',\n narrow: 'BC',\n abbr: 'BC',\n },\n ],\n eraYearOrdinalRegex: /(元|\\d+)年/,\n eraYearOrdinalParse: function (input, match) {\n return match[1] === '元' ? 1 : parseInt(match[1] || input, 10);\n },\n months: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n '_'\n ),\n weekdays: '日曜日_月曜日_火曜日_水曜日_木曜日_金曜日_土曜日'.split('_'),\n weekdaysShort: '日_月_火_水_木_金_土'.split('_'),\n weekdaysMin: '日_月_火_水_木_金_土'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYY年M月D日',\n LLL: 'YYYY年M月D日 HH:mm',\n LLLL: 'YYYY年M月D日 dddd HH:mm',\n l: 'YYYY/MM/DD',\n ll: 'YYYY年M月D日',\n lll: 'YYYY年M月D日 HH:mm',\n llll: 'YYYY年M月D日(ddd) HH:mm',\n },\n meridiemParse: /午前|午後/i,\n isPM: function (input) {\n return input === '午後';\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return '午前';\n } else {\n return '午後';\n }\n },\n calendar: {\n sameDay: '[今日] LT',\n nextDay: '[明日] LT',\n nextWeek: function (now) {\n if (now.week() !== this.week()) {\n return '[来週]dddd LT';\n } else {\n return 'dddd LT';\n }\n },\n lastDay: '[昨日] LT',\n lastWeek: function (now) {\n if (this.week() !== now.week()) {\n return '[先週]dddd LT';\n } else {\n return 'dddd LT';\n }\n },\n sameElse: 'L',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}日/,\n ordinal: function (number, period) {\n switch (period) {\n case 'y':\n return number === 1 ? '元年' : number + '年';\n case 'd':\n case 'D':\n case 'DDD':\n return number + '日';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s後',\n past: '%s前',\n s: '数秒',\n ss: '%d秒',\n m: '1分',\n mm: '%d分',\n h: '1時間',\n hh: '%d時間',\n d: '1日',\n dd: '%d日',\n M: '1ヶ月',\n MM: '%dヶ月',\n y: '1年',\n yy: '%d年',\n },\n });\n\n return ja;\n\n})));\n","//! moment.js locale configuration\n//! locale : Javanese [jv]\n//! author : Rony Lantip : https://github.com/lantip\n//! reference: http://jv.wikipedia.org/wiki/Basa_Jawa\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var jv = moment.defineLocale('jv', {\n months: 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_Nopember_Desember'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nop_Des'.split('_'),\n weekdays: 'Minggu_Senen_Seloso_Rebu_Kemis_Jemuwah_Septu'.split('_'),\n weekdaysShort: 'Min_Sen_Sel_Reb_Kem_Jem_Sep'.split('_'),\n weekdaysMin: 'Mg_Sn_Sl_Rb_Km_Jm_Sp'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [pukul] HH.mm',\n LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',\n },\n meridiemParse: /enjing|siyang|sonten|ndalu/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'enjing') {\n return hour;\n } else if (meridiem === 'siyang') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'sonten' || meridiem === 'ndalu') {\n return hour + 12;\n }\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'enjing';\n } else if (hours < 15) {\n return 'siyang';\n } else if (hours < 19) {\n return 'sonten';\n } else {\n return 'ndalu';\n }\n },\n calendar: {\n sameDay: '[Dinten puniko pukul] LT',\n nextDay: '[Mbenjang pukul] LT',\n nextWeek: 'dddd [pukul] LT',\n lastDay: '[Kala wingi pukul] LT',\n lastWeek: 'dddd [kepengker pukul] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'wonten ing %s',\n past: '%s ingkang kepengker',\n s: 'sawetawis detik',\n ss: '%d detik',\n m: 'setunggal menit',\n mm: '%d menit',\n h: 'setunggal jam',\n hh: '%d jam',\n d: 'sedinten',\n dd: '%d dinten',\n M: 'sewulan',\n MM: '%d wulan',\n y: 'setaun',\n yy: '%d taun',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return jv;\n\n})));\n","//! moment.js locale configuration\n//! locale : Georgian [ka]\n//! author : Irakli Janiashvili : https://github.com/IrakliJani\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ka = moment.defineLocale('ka', {\n months: 'იანვარი_თებერვალი_მარტი_აპრილი_მაისი_ივნისი_ივლისი_აგვისტო_სექტემბერი_ოქტომბერი_ნოემბერი_დეკემბერი'.split(\n '_'\n ),\n monthsShort: 'იან_თებ_მარ_აპრ_მაი_ივნ_ივლ_აგვ_სექ_ოქტ_ნოე_დეკ'.split('_'),\n weekdays: {\n standalone:\n 'კვირა_ორშაბათი_სამშაბათი_ოთხშაბათი_ხუთშაბათი_პარასკევი_შაბათი'.split(\n '_'\n ),\n format: 'კვირას_ორშაბათს_სამშაბათს_ოთხშაბათს_ხუთშაბათს_პარასკევს_შაბათს'.split(\n '_'\n ),\n isFormat: /(წინა|შემდეგ)/,\n },\n weekdaysShort: 'კვი_ორშ_სამ_ოთხ_ხუთ_პარ_შაბ'.split('_'),\n weekdaysMin: 'კვ_ორ_სა_ოთ_ხუ_პა_შა'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[დღეს] LT[-ზე]',\n nextDay: '[ხვალ] LT[-ზე]',\n lastDay: '[გუშინ] LT[-ზე]',\n nextWeek: '[შემდეგ] dddd LT[-ზე]',\n lastWeek: '[წინა] dddd LT-ზე',\n sameElse: 'L',\n },\n relativeTime: {\n future: function (s) {\n return s.replace(\n /(წამ|წუთ|საათ|წელ|დღ|თვ)(ი|ე)/,\n function ($0, $1, $2) {\n return $2 === 'ი' ? $1 + 'ში' : $1 + $2 + 'ში';\n }\n );\n },\n past: function (s) {\n if (/(წამი|წუთი|საათი|დღე|თვე)/.test(s)) {\n return s.replace(/(ი|ე)$/, 'ის წინ');\n }\n if (/წელი/.test(s)) {\n return s.replace(/წელი$/, 'წლის წინ');\n }\n return s;\n },\n s: 'რამდენიმე წამი',\n ss: '%d წამი',\n m: 'წუთი',\n mm: '%d წუთი',\n h: 'საათი',\n hh: '%d საათი',\n d: 'დღე',\n dd: '%d დღე',\n M: 'თვე',\n MM: '%d თვე',\n y: 'წელი',\n yy: '%d წელი',\n },\n dayOfMonthOrdinalParse: /0|1-ლი|მე-\\d{1,2}|\\d{1,2}-ე/,\n ordinal: function (number) {\n if (number === 0) {\n return number;\n }\n if (number === 1) {\n return number + '-ლი';\n }\n if (\n number < 20 ||\n (number <= 100 && number % 20 === 0) ||\n number % 100 === 0\n ) {\n return 'მე-' + number;\n }\n return number + '-ე';\n },\n week: {\n dow: 1,\n doy: 7,\n },\n });\n\n return ka;\n\n})));\n","//! moment.js locale configuration\n//! locale : Kazakh [kk]\n//! authors : Nurlan Rakhimzhanov : https://github.com/nurlan\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var suffixes = {\n 0: '-ші',\n 1: '-ші',\n 2: '-ші',\n 3: '-ші',\n 4: '-ші',\n 5: '-ші',\n 6: '-шы',\n 7: '-ші',\n 8: '-ші',\n 9: '-шы',\n 10: '-шы',\n 20: '-шы',\n 30: '-шы',\n 40: '-шы',\n 50: '-ші',\n 60: '-шы',\n 70: '-ші',\n 80: '-ші',\n 90: '-шы',\n 100: '-ші',\n };\n\n var kk = moment.defineLocale('kk', {\n months: 'қаңтар_ақпан_наурыз_сәуір_мамыр_маусым_шілде_тамыз_қыркүйек_қазан_қараша_желтоқсан'.split(\n '_'\n ),\n monthsShort: 'қаң_ақп_нау_сәу_мам_мау_шіл_там_қыр_қаз_қар_жел'.split('_'),\n weekdays: 'жексенбі_дүйсенбі_сейсенбі_сәрсенбі_бейсенбі_жұма_сенбі'.split(\n '_'\n ),\n weekdaysShort: 'жек_дүй_сей_сәр_бей_жұм_сен'.split('_'),\n weekdaysMin: 'жк_дй_сй_ср_бй_жм_сн'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Бүгін сағат] LT',\n nextDay: '[Ертең сағат] LT',\n nextWeek: 'dddd [сағат] LT',\n lastDay: '[Кеше сағат] LT',\n lastWeek: '[Өткен аптаның] dddd [сағат] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s ішінде',\n past: '%s бұрын',\n s: 'бірнеше секунд',\n ss: '%d секунд',\n m: 'бір минут',\n mm: '%d минут',\n h: 'бір сағат',\n hh: '%d сағат',\n d: 'бір күн',\n dd: '%d күн',\n M: 'бір ай',\n MM: '%d ай',\n y: 'бір жыл',\n yy: '%d жыл',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ші|шы)/,\n ordinal: function (number) {\n var a = number % 10,\n b = number >= 100 ? 100 : null;\n return number + (suffixes[number] || suffixes[a] || suffixes[b]);\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return kk;\n\n})));\n","//! moment.js locale configuration\n//! locale : Cambodian [km]\n//! author : Kruy Vanna : https://github.com/kruyvanna\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '១',\n 2: '២',\n 3: '៣',\n 4: '៤',\n 5: '៥',\n 6: '៦',\n 7: '៧',\n 8: '៨',\n 9: '៩',\n 0: '០',\n },\n numberMap = {\n '១': '1',\n '២': '2',\n '៣': '3',\n '៤': '4',\n '៥': '5',\n '៦': '6',\n '៧': '7',\n '៨': '8',\n '៩': '9',\n '០': '0',\n };\n\n var km = moment.defineLocale('km', {\n months: 'មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split(\n '_'\n ),\n monthsShort:\n 'មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split(\n '_'\n ),\n weekdays: 'អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍'.split('_'),\n weekdaysShort: 'អា_ច_អ_ព_ព្រ_សុ_ស'.split('_'),\n weekdaysMin: 'អា_ច_អ_ព_ព្រ_សុ_ស'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n meridiemParse: /ព្រឹក|ល្ងាច/,\n isPM: function (input) {\n return input === 'ល្ងាច';\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ព្រឹក';\n } else {\n return 'ល្ងាច';\n }\n },\n calendar: {\n sameDay: '[ថ្ងៃនេះ ម៉ោង] LT',\n nextDay: '[ស្អែក ម៉ោង] LT',\n nextWeek: 'dddd [ម៉ោង] LT',\n lastDay: '[ម្សិលមិញ ម៉ោង] LT',\n lastWeek: 'dddd [សប្តាហ៍មុន] [ម៉ោង] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%sទៀត',\n past: '%sមុន',\n s: 'ប៉ុន្មានវិនាទី',\n ss: '%d វិនាទី',\n m: 'មួយនាទី',\n mm: '%d នាទី',\n h: 'មួយម៉ោង',\n hh: '%d ម៉ោង',\n d: 'មួយថ្ងៃ',\n dd: '%d ថ្ងៃ',\n M: 'មួយខែ',\n MM: '%d ខែ',\n y: 'មួយឆ្នាំ',\n yy: '%d ឆ្នាំ',\n },\n dayOfMonthOrdinalParse: /ទី\\d{1,2}/,\n ordinal: 'ទី%d',\n preparse: function (string) {\n return string.replace(/[១២៣៤៥៦៧៨៩០]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return km;\n\n})));\n","//! moment.js locale configuration\n//! locale : Kannada [kn]\n//! author : Rajeev Naik : https://github.com/rajeevnaikte\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '೧',\n 2: '೨',\n 3: '೩',\n 4: '೪',\n 5: '೫',\n 6: '೬',\n 7: '೭',\n 8: '೮',\n 9: '೯',\n 0: '೦',\n },\n numberMap = {\n '೧': '1',\n '೨': '2',\n '೩': '3',\n '೪': '4',\n '೫': '5',\n '೬': '6',\n '೭': '7',\n '೮': '8',\n '೯': '9',\n '೦': '0',\n };\n\n var kn = moment.defineLocale('kn', {\n months: 'ಜನವರಿ_ಫೆಬ್ರವರಿ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂಬರ್_ಅಕ್ಟೋಬರ್_ನವೆಂಬರ್_ಡಿಸೆಂಬರ್'.split(\n '_'\n ),\n monthsShort:\n 'ಜನ_ಫೆಬ್ರ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂ_ಅಕ್ಟೋ_ನವೆಂ_ಡಿಸೆಂ'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'ಭಾನುವಾರ_ಸೋಮವಾರ_ಮಂಗಳವಾರ_ಬುಧವಾರ_ಗುರುವಾರ_ಶುಕ್ರವಾರ_ಶನಿವಾರ'.split(\n '_'\n ),\n weekdaysShort: 'ಭಾನು_ಸೋಮ_ಮಂಗಳ_ಬುಧ_ಗುರು_ಶುಕ್ರ_ಶನಿ'.split('_'),\n weekdaysMin: 'ಭಾ_ಸೋ_ಮಂ_ಬು_ಗು_ಶು_ಶ'.split('_'),\n longDateFormat: {\n LT: 'A h:mm',\n LTS: 'A h:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm',\n LLLL: 'dddd, D MMMM YYYY, A h:mm',\n },\n calendar: {\n sameDay: '[ಇಂದು] LT',\n nextDay: '[ನಾಳೆ] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[ನಿನ್ನೆ] LT',\n lastWeek: '[ಕೊನೆಯ] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s ನಂತರ',\n past: '%s ಹಿಂದೆ',\n s: 'ಕೆಲವು ಕ್ಷಣಗಳು',\n ss: '%d ಸೆಕೆಂಡುಗಳು',\n m: 'ಒಂದು ನಿಮಿಷ',\n mm: '%d ನಿಮಿಷ',\n h: 'ಒಂದು ಗಂಟೆ',\n hh: '%d ಗಂಟೆ',\n d: 'ಒಂದು ದಿನ',\n dd: '%d ದಿನ',\n M: 'ಒಂದು ತಿಂಗಳು',\n MM: '%d ತಿಂಗಳು',\n y: 'ಒಂದು ವರ್ಷ',\n yy: '%d ವರ್ಷ',\n },\n preparse: function (string) {\n return string.replace(/[೧೨೩೪೫೬೭೮೯೦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /ರಾತ್ರಿ|ಬೆಳಿಗ್ಗೆ|ಮಧ್ಯಾಹ್ನ|ಸಂಜೆ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'ರಾತ್ರಿ') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'ಬೆಳಿಗ್ಗೆ') {\n return hour;\n } else if (meridiem === 'ಮಧ್ಯಾಹ್ನ') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'ಸಂಜೆ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ರಾತ್ರಿ';\n } else if (hour < 10) {\n return 'ಬೆಳಿಗ್ಗೆ';\n } else if (hour < 17) {\n return 'ಮಧ್ಯಾಹ್ನ';\n } else if (hour < 20) {\n return 'ಸಂಜೆ';\n } else {\n return 'ರಾತ್ರಿ';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ನೇ)/,\n ordinal: function (number) {\n return number + 'ನೇ';\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return kn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Korean [ko]\n//! author : Kyungwook, Park : https://github.com/kyungw00k\n//! author : Jeeeyul Lee \n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ko = moment.defineLocale('ko', {\n months: '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split('_'),\n monthsShort: '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split(\n '_'\n ),\n weekdays: '일요일_월요일_화요일_수요일_목요일_금요일_토요일'.split('_'),\n weekdaysShort: '일_월_화_수_목_금_토'.split('_'),\n weekdaysMin: '일_월_화_수_목_금_토'.split('_'),\n longDateFormat: {\n LT: 'A h:mm',\n LTS: 'A h:mm:ss',\n L: 'YYYY.MM.DD.',\n LL: 'YYYY년 MMMM D일',\n LLL: 'YYYY년 MMMM D일 A h:mm',\n LLLL: 'YYYY년 MMMM D일 dddd A h:mm',\n l: 'YYYY.MM.DD.',\n ll: 'YYYY년 MMMM D일',\n lll: 'YYYY년 MMMM D일 A h:mm',\n llll: 'YYYY년 MMMM D일 dddd A h:mm',\n },\n calendar: {\n sameDay: '오늘 LT',\n nextDay: '내일 LT',\n nextWeek: 'dddd LT',\n lastDay: '어제 LT',\n lastWeek: '지난주 dddd LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s 후',\n past: '%s 전',\n s: '몇 초',\n ss: '%d초',\n m: '1분',\n mm: '%d분',\n h: '한 시간',\n hh: '%d시간',\n d: '하루',\n dd: '%d일',\n M: '한 달',\n MM: '%d달',\n y: '일 년',\n yy: '%d년',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(일|월|주)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '일';\n case 'M':\n return number + '월';\n case 'w':\n case 'W':\n return number + '주';\n default:\n return number;\n }\n },\n meridiemParse: /오전|오후/,\n isPM: function (token) {\n return token === '오후';\n },\n meridiem: function (hour, minute, isUpper) {\n return hour < 12 ? '오전' : '오후';\n },\n });\n\n return ko;\n\n})));\n","//! moment.js locale configuration\n//! locale : Northern Kurdish [ku-kmr]\n//! authors : Mazlum Özdogan : https://github.com/mergehez\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(num, withoutSuffix, key, isFuture) {\n var format = {\n s: ['çend sanîye', 'çend sanîyeyan'],\n ss: [num + ' sanîye', num + ' sanîyeyan'],\n m: ['deqîqeyek', 'deqîqeyekê'],\n mm: [num + ' deqîqe', num + ' deqîqeyan'],\n h: ['saetek', 'saetekê'],\n hh: [num + ' saet', num + ' saetan'],\n d: ['rojek', 'rojekê'],\n dd: [num + ' roj', num + ' rojan'],\n w: ['hefteyek', 'hefteyekê'],\n ww: [num + ' hefte', num + ' hefteyan'],\n M: ['mehek', 'mehekê'],\n MM: [num + ' meh', num + ' mehan'],\n y: ['salek', 'salekê'],\n yy: [num + ' sal', num + ' salan'],\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n // function obliqueNumSuffix(num) {\n // if(num.includes(':'))\n // num = parseInt(num.split(':')[0]);\n // else\n // num = parseInt(num);\n // return num == 0 || num % 10 == 1 ? 'ê'\n // : (num > 10 && num % 10 == 0 ? 'î' : 'an');\n // }\n function ezafeNumSuffix(num) {\n num = '' + num;\n var l = num.substring(num.length - 1),\n ll = num.length > 1 ? num.substring(num.length - 2) : '';\n if (\n !(ll == 12 || ll == 13) &&\n (l == '2' || l == '3' || ll == '50' || l == '70' || l == '80')\n )\n return 'yê';\n return 'ê';\n }\n\n var kuKmr = moment.defineLocale('ku-kmr', {\n // According to the spelling rules defined by the work group of Weqfa Mezopotamyayê (Mesopotamia Foundation)\n // this should be: 'Kanûna Paşîn_Sibat_Adar_Nîsan_Gulan_Hezîran_Tîrmeh_Tebax_Îlon_Çirîya Pêşîn_Çirîya Paşîn_Kanûna Pêşîn'\n // But the names below are more well known and handy\n months: 'Rêbendan_Sibat_Adar_Nîsan_Gulan_Hezîran_Tîrmeh_Tebax_Îlon_Cotmeh_Mijdar_Berfanbar'.split(\n '_'\n ),\n monthsShort: 'Rêb_Sib_Ada_Nîs_Gul_Hez_Tîr_Teb_Îlo_Cot_Mij_Ber'.split('_'),\n monthsParseExact: true,\n weekdays: 'Yekşem_Duşem_Sêşem_Çarşem_Pêncşem_În_Şemî'.split('_'),\n weekdaysShort: 'Yek_Du_Sê_Çar_Pên_În_Şem'.split('_'),\n weekdaysMin: 'Ye_Du_Sê_Ça_Pê_În_Şe'.split('_'),\n meridiem: function (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower ? 'bn' : 'BN';\n } else {\n return isLower ? 'pn' : 'PN';\n }\n },\n meridiemParse: /bn|BN|pn|PN/,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'Do MMMM[a] YYYY[an]',\n LLL: 'Do MMMM[a] YYYY[an] HH:mm',\n LLLL: 'dddd, Do MMMM[a] YYYY[an] HH:mm',\n ll: 'Do MMM[.] YYYY[an]',\n lll: 'Do MMM[.] YYYY[an] HH:mm',\n llll: 'ddd[.], Do MMM[.] YYYY[an] HH:mm',\n },\n calendar: {\n sameDay: '[Îro di saet] LT [de]',\n nextDay: '[Sibê di saet] LT [de]',\n nextWeek: 'dddd [di saet] LT [de]',\n lastDay: '[Duh di saet] LT [de]',\n lastWeek: 'dddd[a borî di saet] LT [de]',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'di %s de',\n past: 'berî %s',\n s: processRelativeTime,\n ss: processRelativeTime,\n m: processRelativeTime,\n mm: processRelativeTime,\n h: processRelativeTime,\n hh: processRelativeTime,\n d: processRelativeTime,\n dd: processRelativeTime,\n w: processRelativeTime,\n ww: processRelativeTime,\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(?:yê|ê|\\.)/,\n ordinal: function (num, period) {\n var p = period.toLowerCase();\n if (p.includes('w') || p.includes('m')) return num + '.';\n\n return num + ezafeNumSuffix(num);\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return kuKmr;\n\n})));\n","//! moment.js locale configuration\n//! locale : Kurdish [ku]\n//! author : Shahram Mebashar : https://github.com/ShahramMebashar\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '١',\n 2: '٢',\n 3: '٣',\n 4: '٤',\n 5: '٥',\n 6: '٦',\n 7: '٧',\n 8: '٨',\n 9: '٩',\n 0: '٠',\n },\n numberMap = {\n '١': '1',\n '٢': '2',\n '٣': '3',\n '٤': '4',\n '٥': '5',\n '٦': '6',\n '٧': '7',\n '٨': '8',\n '٩': '9',\n '٠': '0',\n },\n months = [\n 'کانونی دووەم',\n 'شوبات',\n 'ئازار',\n 'نیسان',\n 'ئایار',\n 'حوزەیران',\n 'تەمموز',\n 'ئاب',\n 'ئەیلوول',\n 'تشرینی یەكەم',\n 'تشرینی دووەم',\n 'كانونی یەکەم',\n ];\n\n var ku = moment.defineLocale('ku', {\n months: months,\n monthsShort: months,\n weekdays:\n 'یه‌كشه‌ممه‌_دووشه‌ممه‌_سێشه‌ممه‌_چوارشه‌ممه‌_پێنجشه‌ممه‌_هه‌ینی_شه‌ممه‌'.split(\n '_'\n ),\n weekdaysShort:\n 'یه‌كشه‌م_دووشه‌م_سێشه‌م_چوارشه‌م_پێنجشه‌م_هه‌ینی_شه‌ممه‌'.split('_'),\n weekdaysMin: 'ی_د_س_چ_پ_ه_ش'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n meridiemParse: /ئێواره‌|به‌یانی/,\n isPM: function (input) {\n return /ئێواره‌/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'به‌یانی';\n } else {\n return 'ئێواره‌';\n }\n },\n calendar: {\n sameDay: '[ئه‌مرۆ كاتژمێر] LT',\n nextDay: '[به‌یانی كاتژمێر] LT',\n nextWeek: 'dddd [كاتژمێر] LT',\n lastDay: '[دوێنێ كاتژمێر] LT',\n lastWeek: 'dddd [كاتژمێر] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'له‌ %s',\n past: '%s',\n s: 'چه‌ند چركه‌یه‌ك',\n ss: 'چركه‌ %d',\n m: 'یه‌ك خوله‌ك',\n mm: '%d خوله‌ك',\n h: 'یه‌ك كاتژمێر',\n hh: '%d كاتژمێر',\n d: 'یه‌ك ڕۆژ',\n dd: '%d ڕۆژ',\n M: 'یه‌ك مانگ',\n MM: '%d مانگ',\n y: 'یه‌ك ساڵ',\n yy: '%d ساڵ',\n },\n preparse: function (string) {\n return string\n .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {\n return numberMap[match];\n })\n .replace(/،/g, ',');\n },\n postformat: function (string) {\n return string\n .replace(/\\d/g, function (match) {\n return symbolMap[match];\n })\n .replace(/,/g, '،');\n },\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return ku;\n\n})));\n","//! moment.js locale configuration\n//! locale : Kyrgyz [ky]\n//! author : Chyngyz Arystan uulu : https://github.com/chyngyz\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var suffixes = {\n 0: '-чү',\n 1: '-чи',\n 2: '-чи',\n 3: '-чү',\n 4: '-чү',\n 5: '-чи',\n 6: '-чы',\n 7: '-чи',\n 8: '-чи',\n 9: '-чу',\n 10: '-чу',\n 20: '-чы',\n 30: '-чу',\n 40: '-чы',\n 50: '-чү',\n 60: '-чы',\n 70: '-чи',\n 80: '-чи',\n 90: '-чу',\n 100: '-чү',\n };\n\n var ky = moment.defineLocale('ky', {\n months: 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split(\n '_'\n ),\n monthsShort: 'янв_фев_март_апр_май_июнь_июль_авг_сен_окт_ноя_дек'.split(\n '_'\n ),\n weekdays: 'Жекшемби_Дүйшөмбү_Шейшемби_Шаршемби_Бейшемби_Жума_Ишемби'.split(\n '_'\n ),\n weekdaysShort: 'Жек_Дүй_Шей_Шар_Бей_Жум_Ише'.split('_'),\n weekdaysMin: 'Жк_Дй_Шй_Шр_Бй_Жм_Иш'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Бүгүн саат] LT',\n nextDay: '[Эртең саат] LT',\n nextWeek: 'dddd [саат] LT',\n lastDay: '[Кечээ саат] LT',\n lastWeek: '[Өткөн аптанын] dddd [күнү] [саат] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s ичинде',\n past: '%s мурун',\n s: 'бирнече секунд',\n ss: '%d секунд',\n m: 'бир мүнөт',\n mm: '%d мүнөт',\n h: 'бир саат',\n hh: '%d саат',\n d: 'бир күн',\n dd: '%d күн',\n M: 'бир ай',\n MM: '%d ай',\n y: 'бир жыл',\n yy: '%d жыл',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(чи|чы|чү|чу)/,\n ordinal: function (number) {\n var a = number % 10,\n b = number >= 100 ? 100 : null;\n return number + (suffixes[number] || suffixes[a] || suffixes[b]);\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return ky;\n\n})));\n","//! moment.js locale configuration\n//! locale : Luxembourgish [lb]\n//! author : mweimerskirch : https://github.com/mweimerskirch\n//! author : David Raison : https://github.com/kwisatz\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n m: ['eng Minutt', 'enger Minutt'],\n h: ['eng Stonn', 'enger Stonn'],\n d: ['een Dag', 'engem Dag'],\n M: ['ee Mount', 'engem Mount'],\n y: ['ee Joer', 'engem Joer'],\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n function processFutureTime(string) {\n var number = string.substr(0, string.indexOf(' '));\n if (eifelerRegelAppliesToNumber(number)) {\n return 'a ' + string;\n }\n return 'an ' + string;\n }\n function processPastTime(string) {\n var number = string.substr(0, string.indexOf(' '));\n if (eifelerRegelAppliesToNumber(number)) {\n return 'viru ' + string;\n }\n return 'virun ' + string;\n }\n /**\n * Returns true if the word before the given number loses the '-n' ending.\n * e.g. 'an 10 Deeg' but 'a 5 Deeg'\n *\n * @param number {integer}\n * @returns {boolean}\n */\n function eifelerRegelAppliesToNumber(number) {\n number = parseInt(number, 10);\n if (isNaN(number)) {\n return false;\n }\n if (number < 0) {\n // Negative Number --> always true\n return true;\n } else if (number < 10) {\n // Only 1 digit\n if (4 <= number && number <= 7) {\n return true;\n }\n return false;\n } else if (number < 100) {\n // 2 digits\n var lastDigit = number % 10,\n firstDigit = number / 10;\n if (lastDigit === 0) {\n return eifelerRegelAppliesToNumber(firstDigit);\n }\n return eifelerRegelAppliesToNumber(lastDigit);\n } else if (number < 10000) {\n // 3 or 4 digits --> recursively check first digit\n while (number >= 10) {\n number = number / 10;\n }\n return eifelerRegelAppliesToNumber(number);\n } else {\n // Anything larger than 4 digits: recursively check first n-3 digits\n number = number / 1000;\n return eifelerRegelAppliesToNumber(number);\n }\n }\n\n var lb = moment.defineLocale('lb', {\n months: 'Januar_Februar_Mäerz_Abrëll_Mee_Juni_Juli_August_September_Oktober_November_Dezember'.split(\n '_'\n ),\n monthsShort:\n 'Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays:\n 'Sonndeg_Méindeg_Dënschdeg_Mëttwoch_Donneschdeg_Freideg_Samschdeg'.split(\n '_'\n ),\n weekdaysShort: 'So._Mé._Dë._Më._Do._Fr._Sa.'.split('_'),\n weekdaysMin: 'So_Mé_Dë_Më_Do_Fr_Sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm [Auer]',\n LTS: 'H:mm:ss [Auer]',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm [Auer]',\n LLLL: 'dddd, D. MMMM YYYY H:mm [Auer]',\n },\n calendar: {\n sameDay: '[Haut um] LT',\n sameElse: 'L',\n nextDay: '[Muer um] LT',\n nextWeek: 'dddd [um] LT',\n lastDay: '[Gëschter um] LT',\n lastWeek: function () {\n // Different date string for 'Dënschdeg' (Tuesday) and 'Donneschdeg' (Thursday) due to phonological rule\n switch (this.day()) {\n case 2:\n case 4:\n return '[Leschten] dddd [um] LT';\n default:\n return '[Leschte] dddd [um] LT';\n }\n },\n },\n relativeTime: {\n future: processFutureTime,\n past: processPastTime,\n s: 'e puer Sekonnen',\n ss: '%d Sekonnen',\n m: processRelativeTime,\n mm: '%d Minutten',\n h: processRelativeTime,\n hh: '%d Stonnen',\n d: processRelativeTime,\n dd: '%d Deeg',\n M: processRelativeTime,\n MM: '%d Méint',\n y: processRelativeTime,\n yy: '%d Joer',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return lb;\n\n})));\n","//! moment.js locale configuration\n//! locale : Lao [lo]\n//! author : Ryan Hart : https://github.com/ryanhart2\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var lo = moment.defineLocale('lo', {\n months: 'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split(\n '_'\n ),\n monthsShort:\n 'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split(\n '_'\n ),\n weekdays: 'ອາທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'),\n weekdaysShort: 'ທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'),\n weekdaysMin: 'ທ_ຈ_ອຄ_ພ_ພຫ_ສກ_ສ'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'ວັນdddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /ຕອນເຊົ້າ|ຕອນແລງ/,\n isPM: function (input) {\n return input === 'ຕອນແລງ';\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ຕອນເຊົ້າ';\n } else {\n return 'ຕອນແລງ';\n }\n },\n calendar: {\n sameDay: '[ມື້ນີ້ເວລາ] LT',\n nextDay: '[ມື້ອື່ນເວລາ] LT',\n nextWeek: '[ວັນ]dddd[ໜ້າເວລາ] LT',\n lastDay: '[ມື້ວານນີ້ເວລາ] LT',\n lastWeek: '[ວັນ]dddd[ແລ້ວນີ້ເວລາ] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'ອີກ %s',\n past: '%sຜ່ານມາ',\n s: 'ບໍ່ເທົ່າໃດວິນາທີ',\n ss: '%d ວິນາທີ',\n m: '1 ນາທີ',\n mm: '%d ນາທີ',\n h: '1 ຊົ່ວໂມງ',\n hh: '%d ຊົ່ວໂມງ',\n d: '1 ມື້',\n dd: '%d ມື້',\n M: '1 ເດືອນ',\n MM: '%d ເດືອນ',\n y: '1 ປີ',\n yy: '%d ປີ',\n },\n dayOfMonthOrdinalParse: /(ທີ່)\\d{1,2}/,\n ordinal: function (number) {\n return 'ທີ່' + number;\n },\n });\n\n return lo;\n\n})));\n","//! moment.js locale configuration\n//! locale : Lithuanian [lt]\n//! author : Mindaugas Mozūras : https://github.com/mmozuras\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var units = {\n ss: 'sekundė_sekundžių_sekundes',\n m: 'minutė_minutės_minutę',\n mm: 'minutės_minučių_minutes',\n h: 'valanda_valandos_valandą',\n hh: 'valandos_valandų_valandas',\n d: 'diena_dienos_dieną',\n dd: 'dienos_dienų_dienas',\n M: 'mėnuo_mėnesio_mėnesį',\n MM: 'mėnesiai_mėnesių_mėnesius',\n y: 'metai_metų_metus',\n yy: 'metai_metų_metus',\n };\n function translateSeconds(number, withoutSuffix, key, isFuture) {\n if (withoutSuffix) {\n return 'kelios sekundės';\n } else {\n return isFuture ? 'kelių sekundžių' : 'kelias sekundes';\n }\n }\n function translateSingular(number, withoutSuffix, key, isFuture) {\n return withoutSuffix\n ? forms(key)[0]\n : isFuture\n ? forms(key)[1]\n : forms(key)[2];\n }\n function special(number) {\n return number % 10 === 0 || (number > 10 && number < 20);\n }\n function forms(key) {\n return units[key].split('_');\n }\n function translate(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n if (number === 1) {\n return (\n result + translateSingular(number, withoutSuffix, key[0], isFuture)\n );\n } else if (withoutSuffix) {\n return result + (special(number) ? forms(key)[1] : forms(key)[0]);\n } else {\n if (isFuture) {\n return result + forms(key)[1];\n } else {\n return result + (special(number) ? forms(key)[1] : forms(key)[2]);\n }\n }\n }\n var lt = moment.defineLocale('lt', {\n months: {\n format: 'sausio_vasario_kovo_balandžio_gegužės_birželio_liepos_rugpjūčio_rugsėjo_spalio_lapkričio_gruodžio'.split(\n '_'\n ),\n standalone:\n 'sausis_vasaris_kovas_balandis_gegužė_birželis_liepa_rugpjūtis_rugsėjis_spalis_lapkritis_gruodis'.split(\n '_'\n ),\n isFormat: /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?|MMMM?(\\[[^\\[\\]]*\\]|\\s)+D[oD]?/,\n },\n monthsShort: 'sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd'.split('_'),\n weekdays: {\n format: 'sekmadienį_pirmadienį_antradienį_trečiadienį_ketvirtadienį_penktadienį_šeštadienį'.split(\n '_'\n ),\n standalone:\n 'sekmadienis_pirmadienis_antradienis_trečiadienis_ketvirtadienis_penktadienis_šeštadienis'.split(\n '_'\n ),\n isFormat: /dddd HH:mm/,\n },\n weekdaysShort: 'Sek_Pir_Ant_Tre_Ket_Pen_Šeš'.split('_'),\n weekdaysMin: 'S_P_A_T_K_Pn_Š'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'YYYY [m.] MMMM D [d.]',\n LLL: 'YYYY [m.] MMMM D [d.], HH:mm [val.]',\n LLLL: 'YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]',\n l: 'YYYY-MM-DD',\n ll: 'YYYY [m.] MMMM D [d.]',\n lll: 'YYYY [m.] MMMM D [d.], HH:mm [val.]',\n llll: 'YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]',\n },\n calendar: {\n sameDay: '[Šiandien] LT',\n nextDay: '[Rytoj] LT',\n nextWeek: 'dddd LT',\n lastDay: '[Vakar] LT',\n lastWeek: '[Praėjusį] dddd LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'po %s',\n past: 'prieš %s',\n s: translateSeconds,\n ss: translate,\n m: translateSingular,\n mm: translate,\n h: translateSingular,\n hh: translate,\n d: translateSingular,\n dd: translate,\n M: translateSingular,\n MM: translate,\n y: translateSingular,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-oji/,\n ordinal: function (number) {\n return number + '-oji';\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return lt;\n\n})));\n","//! moment.js locale configuration\n//! locale : Latvian [lv]\n//! author : Kristaps Karlsons : https://github.com/skakri\n//! author : Jānis Elmeris : https://github.com/JanisE\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var units = {\n ss: 'sekundes_sekundēm_sekunde_sekundes'.split('_'),\n m: 'minūtes_minūtēm_minūte_minūtes'.split('_'),\n mm: 'minūtes_minūtēm_minūte_minūtes'.split('_'),\n h: 'stundas_stundām_stunda_stundas'.split('_'),\n hh: 'stundas_stundām_stunda_stundas'.split('_'),\n d: 'dienas_dienām_diena_dienas'.split('_'),\n dd: 'dienas_dienām_diena_dienas'.split('_'),\n M: 'mēneša_mēnešiem_mēnesis_mēneši'.split('_'),\n MM: 'mēneša_mēnešiem_mēnesis_mēneši'.split('_'),\n y: 'gada_gadiem_gads_gadi'.split('_'),\n yy: 'gada_gadiem_gads_gadi'.split('_'),\n };\n /**\n * @param withoutSuffix boolean true = a length of time; false = before/after a period of time.\n */\n function format(forms, number, withoutSuffix) {\n if (withoutSuffix) {\n // E.g. \"21 minūte\", \"3 minūtes\".\n return number % 10 === 1 && number % 100 !== 11 ? forms[2] : forms[3];\n } else {\n // E.g. \"21 minūtes\" as in \"pēc 21 minūtes\".\n // E.g. \"3 minūtēm\" as in \"pēc 3 minūtēm\".\n return number % 10 === 1 && number % 100 !== 11 ? forms[0] : forms[1];\n }\n }\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n return number + ' ' + format(units[key], number, withoutSuffix);\n }\n function relativeTimeWithSingular(number, withoutSuffix, key) {\n return format(units[key], number, withoutSuffix);\n }\n function relativeSeconds(number, withoutSuffix) {\n return withoutSuffix ? 'dažas sekundes' : 'dažām sekundēm';\n }\n\n var lv = moment.defineLocale('lv', {\n months: 'janvāris_februāris_marts_aprīlis_maijs_jūnijs_jūlijs_augusts_septembris_oktobris_novembris_decembris'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mar_apr_mai_jūn_jūl_aug_sep_okt_nov_dec'.split('_'),\n weekdays:\n 'svētdiena_pirmdiena_otrdiena_trešdiena_ceturtdiena_piektdiena_sestdiena'.split(\n '_'\n ),\n weekdaysShort: 'Sv_P_O_T_C_Pk_S'.split('_'),\n weekdaysMin: 'Sv_P_O_T_C_Pk_S'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY.',\n LL: 'YYYY. [gada] D. MMMM',\n LLL: 'YYYY. [gada] D. MMMM, HH:mm',\n LLLL: 'YYYY. [gada] D. MMMM, dddd, HH:mm',\n },\n calendar: {\n sameDay: '[Šodien pulksten] LT',\n nextDay: '[Rīt pulksten] LT',\n nextWeek: 'dddd [pulksten] LT',\n lastDay: '[Vakar pulksten] LT',\n lastWeek: '[Pagājušā] dddd [pulksten] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'pēc %s',\n past: 'pirms %s',\n s: relativeSeconds,\n ss: relativeTimeWithPlural,\n m: relativeTimeWithSingular,\n mm: relativeTimeWithPlural,\n h: relativeTimeWithSingular,\n hh: relativeTimeWithPlural,\n d: relativeTimeWithSingular,\n dd: relativeTimeWithPlural,\n M: relativeTimeWithSingular,\n MM: relativeTimeWithPlural,\n y: relativeTimeWithSingular,\n yy: relativeTimeWithPlural,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return lv;\n\n})));\n","//! moment.js locale configuration\n//! locale : Montenegrin [me]\n//! author : Miodrag Nikač : https://github.com/miodragnikac\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var translator = {\n words: {\n //Different grammatical cases\n ss: ['sekund', 'sekunda', 'sekundi'],\n m: ['jedan minut', 'jednog minuta'],\n mm: ['minut', 'minuta', 'minuta'],\n h: ['jedan sat', 'jednog sata'],\n hh: ['sat', 'sata', 'sati'],\n dd: ['dan', 'dana', 'dana'],\n MM: ['mjesec', 'mjeseca', 'mjeseci'],\n yy: ['godina', 'godine', 'godina'],\n },\n correctGrammaticalCase: function (number, wordKey) {\n return number === 1\n ? wordKey[0]\n : number >= 2 && number <= 4\n ? wordKey[1]\n : wordKey[2];\n },\n translate: function (number, withoutSuffix, key) {\n var wordKey = translator.words[key];\n if (key.length === 1) {\n return withoutSuffix ? wordKey[0] : wordKey[1];\n } else {\n return (\n number +\n ' ' +\n translator.correctGrammaticalCase(number, wordKey)\n );\n }\n },\n };\n\n var me = moment.defineLocale('me', {\n months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split(\n '_'\n ),\n monthsShort:\n 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split('_'),\n monthsParseExact: true,\n weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split(\n '_'\n ),\n weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),\n weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[danas u] LT',\n nextDay: '[sjutra u] LT',\n\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[u] [nedjelju] [u] LT';\n case 3:\n return '[u] [srijedu] [u] LT';\n case 6:\n return '[u] [subotu] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[u] dddd [u] LT';\n }\n },\n lastDay: '[juče u] LT',\n lastWeek: function () {\n var lastWeekDays = [\n '[prošle] [nedjelje] [u] LT',\n '[prošlog] [ponedjeljka] [u] LT',\n '[prošlog] [utorka] [u] LT',\n '[prošle] [srijede] [u] LT',\n '[prošlog] [četvrtka] [u] LT',\n '[prošlog] [petka] [u] LT',\n '[prošle] [subote] [u] LT',\n ];\n return lastWeekDays[this.day()];\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'prije %s',\n s: 'nekoliko sekundi',\n ss: translator.translate,\n m: translator.translate,\n mm: translator.translate,\n h: translator.translate,\n hh: translator.translate,\n d: 'dan',\n dd: translator.translate,\n M: 'mjesec',\n MM: translator.translate,\n y: 'godinu',\n yy: translator.translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return me;\n\n})));\n","//! moment.js locale configuration\n//! locale : Maori [mi]\n//! author : John Corrigan : https://github.com/johnideal\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var mi = moment.defineLocale('mi', {\n months: 'Kohi-tāte_Hui-tanguru_Poutū-te-rangi_Paenga-whāwhā_Haratua_Pipiri_Hōngoingoi_Here-turi-kōkā_Mahuru_Whiringa-ā-nuku_Whiringa-ā-rangi_Hakihea'.split(\n '_'\n ),\n monthsShort:\n 'Kohi_Hui_Pou_Pae_Hara_Pipi_Hōngoi_Here_Mahu_Whi-nu_Whi-ra_Haki'.split(\n '_'\n ),\n monthsRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,3}/i,\n monthsStrictRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,3}/i,\n monthsShortRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,3}/i,\n monthsShortStrictRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,2}/i,\n weekdays: 'Rātapu_Mane_Tūrei_Wenerei_Tāite_Paraire_Hātarei'.split('_'),\n weekdaysShort: 'Ta_Ma_Tū_We_Tāi_Pa_Hā'.split('_'),\n weekdaysMin: 'Ta_Ma_Tū_We_Tāi_Pa_Hā'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [i] HH:mm',\n LLLL: 'dddd, D MMMM YYYY [i] HH:mm',\n },\n calendar: {\n sameDay: '[i teie mahana, i] LT',\n nextDay: '[apopo i] LT',\n nextWeek: 'dddd [i] LT',\n lastDay: '[inanahi i] LT',\n lastWeek: 'dddd [whakamutunga i] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'i roto i %s',\n past: '%s i mua',\n s: 'te hēkona ruarua',\n ss: '%d hēkona',\n m: 'he meneti',\n mm: '%d meneti',\n h: 'te haora',\n hh: '%d haora',\n d: 'he ra',\n dd: '%d ra',\n M: 'he marama',\n MM: '%d marama',\n y: 'he tau',\n yy: '%d tau',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return mi;\n\n})));\n","//! moment.js locale configuration\n//! locale : Macedonian [mk]\n//! author : Borislav Mickov : https://github.com/B0k0\n//! author : Sashko Todorov : https://github.com/bkyceh\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var mk = moment.defineLocale('mk', {\n months: 'јануари_февруари_март_април_мај_јуни_јули_август_септември_октомври_ноември_декември'.split(\n '_'\n ),\n monthsShort: 'јан_фев_мар_апр_мај_јун_јул_авг_сеп_окт_ное_дек'.split('_'),\n weekdays: 'недела_понеделник_вторник_среда_четврток_петок_сабота'.split(\n '_'\n ),\n weekdaysShort: 'нед_пон_вто_сре_чет_пет_саб'.split('_'),\n weekdaysMin: 'нe_пo_вт_ср_че_пе_сa'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'D.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY H:mm',\n LLLL: 'dddd, D MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[Денес во] LT',\n nextDay: '[Утре во] LT',\n nextWeek: '[Во] dddd [во] LT',\n lastDay: '[Вчера во] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n case 6:\n return '[Изминатата] dddd [во] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[Изминатиот] dddd [во] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'за %s',\n past: 'пред %s',\n s: 'неколку секунди',\n ss: '%d секунди',\n m: 'една минута',\n mm: '%d минути',\n h: 'еден час',\n hh: '%d часа',\n d: 'еден ден',\n dd: '%d дена',\n M: 'еден месец',\n MM: '%d месеци',\n y: 'една година',\n yy: '%d години',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ев|ен|ти|ви|ри|ми)/,\n ordinal: function (number) {\n var lastDigit = number % 10,\n last2Digits = number % 100;\n if (number === 0) {\n return number + '-ев';\n } else if (last2Digits === 0) {\n return number + '-ен';\n } else if (last2Digits > 10 && last2Digits < 20) {\n return number + '-ти';\n } else if (lastDigit === 1) {\n return number + '-ви';\n } else if (lastDigit === 2) {\n return number + '-ри';\n } else if (lastDigit === 7 || lastDigit === 8) {\n return number + '-ми';\n } else {\n return number + '-ти';\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return mk;\n\n})));\n","//! moment.js locale configuration\n//! locale : Malayalam [ml]\n//! author : Floyd Pink : https://github.com/floydpink\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ml = moment.defineLocale('ml', {\n months: 'ജനുവരി_ഫെബ്രുവരി_മാർച്ച്_ഏപ്രിൽ_മേയ്_ജൂൺ_ജൂലൈ_ഓഗസ്റ്റ്_സെപ്റ്റംബർ_ഒക്ടോബർ_നവംബർ_ഡിസംബർ'.split(\n '_'\n ),\n monthsShort:\n 'ജനു._ഫെബ്രു._മാർ._ഏപ്രി._മേയ്_ജൂൺ_ജൂലൈ._ഓഗ._സെപ്റ്റ._ഒക്ടോ._നവം._ഡിസം.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays:\n 'ഞായറാഴ്ച_തിങ്കളാഴ്ച_ചൊവ്വാഴ്ച_ബുധനാഴ്ച_വ്യാഴാഴ്ച_വെള്ളിയാഴ്ച_ശനിയാഴ്ച'.split(\n '_'\n ),\n weekdaysShort: 'ഞായർ_തിങ്കൾ_ചൊവ്വ_ബുധൻ_വ്യാഴം_വെള്ളി_ശനി'.split('_'),\n weekdaysMin: 'ഞാ_തി_ചൊ_ബു_വ്യാ_വെ_ശ'.split('_'),\n longDateFormat: {\n LT: 'A h:mm -നു',\n LTS: 'A h:mm:ss -നു',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm -നു',\n LLLL: 'dddd, D MMMM YYYY, A h:mm -നു',\n },\n calendar: {\n sameDay: '[ഇന്ന്] LT',\n nextDay: '[നാളെ] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[ഇന്നലെ] LT',\n lastWeek: '[കഴിഞ്ഞ] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s കഴിഞ്ഞ്',\n past: '%s മുൻപ്',\n s: 'അൽപ നിമിഷങ്ങൾ',\n ss: '%d സെക്കൻഡ്',\n m: 'ഒരു മിനിറ്റ്',\n mm: '%d മിനിറ്റ്',\n h: 'ഒരു മണിക്കൂർ',\n hh: '%d മണിക്കൂർ',\n d: 'ഒരു ദിവസം',\n dd: '%d ദിവസം',\n M: 'ഒരു മാസം',\n MM: '%d മാസം',\n y: 'ഒരു വർഷം',\n yy: '%d വർഷം',\n },\n meridiemParse: /രാത്രി|രാവിലെ|ഉച്ച കഴിഞ്ഞ്|വൈകുന്നേരം|രാത്രി/i,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (\n (meridiem === 'രാത്രി' && hour >= 4) ||\n meridiem === 'ഉച്ച കഴിഞ്ഞ്' ||\n meridiem === 'വൈകുന്നേരം'\n ) {\n return hour + 12;\n } else {\n return hour;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'രാത്രി';\n } else if (hour < 12) {\n return 'രാവിലെ';\n } else if (hour < 17) {\n return 'ഉച്ച കഴിഞ്ഞ്';\n } else if (hour < 20) {\n return 'വൈകുന്നേരം';\n } else {\n return 'രാത്രി';\n }\n },\n });\n\n return ml;\n\n})));\n","//! moment.js locale configuration\n//! locale : Mongolian [mn]\n//! author : Javkhlantugs Nyamdorj : https://github.com/javkhaanj7\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function translate(number, withoutSuffix, key, isFuture) {\n switch (key) {\n case 's':\n return withoutSuffix ? 'хэдхэн секунд' : 'хэдхэн секундын';\n case 'ss':\n return number + (withoutSuffix ? ' секунд' : ' секундын');\n case 'm':\n case 'mm':\n return number + (withoutSuffix ? ' минут' : ' минутын');\n case 'h':\n case 'hh':\n return number + (withoutSuffix ? ' цаг' : ' цагийн');\n case 'd':\n case 'dd':\n return number + (withoutSuffix ? ' өдөр' : ' өдрийн');\n case 'M':\n case 'MM':\n return number + (withoutSuffix ? ' сар' : ' сарын');\n case 'y':\n case 'yy':\n return number + (withoutSuffix ? ' жил' : ' жилийн');\n default:\n return number;\n }\n }\n\n var mn = moment.defineLocale('mn', {\n months: 'Нэгдүгээр сар_Хоёрдугаар сар_Гуравдугаар сар_Дөрөвдүгээр сар_Тавдугаар сар_Зургадугаар сар_Долдугаар сар_Наймдугаар сар_Есдүгээр сар_Аравдугаар сар_Арван нэгдүгээр сар_Арван хоёрдугаар сар'.split(\n '_'\n ),\n monthsShort:\n '1 сар_2 сар_3 сар_4 сар_5 сар_6 сар_7 сар_8 сар_9 сар_10 сар_11 сар_12 сар'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'Ням_Даваа_Мягмар_Лхагва_Пүрэв_Баасан_Бямба'.split('_'),\n weekdaysShort: 'Ням_Дав_Мяг_Лха_Пүр_Баа_Бям'.split('_'),\n weekdaysMin: 'Ня_Да_Мя_Лх_Пү_Ба_Бя'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'YYYY оны MMMMын D',\n LLL: 'YYYY оны MMMMын D HH:mm',\n LLLL: 'dddd, YYYY оны MMMMын D HH:mm',\n },\n meridiemParse: /ҮӨ|ҮХ/i,\n isPM: function (input) {\n return input === 'ҮХ';\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ҮӨ';\n } else {\n return 'ҮХ';\n }\n },\n calendar: {\n sameDay: '[Өнөөдөр] LT',\n nextDay: '[Маргааш] LT',\n nextWeek: '[Ирэх] dddd LT',\n lastDay: '[Өчигдөр] LT',\n lastWeek: '[Өнгөрсөн] dddd LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s дараа',\n past: '%s өмнө',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2} өдөр/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + ' өдөр';\n default:\n return number;\n }\n },\n });\n\n return mn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Marathi [mr]\n//! author : Harshad Kale : https://github.com/kalehv\n//! author : Vivek Athalye : https://github.com/vnathalye\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '१',\n 2: '२',\n 3: '३',\n 4: '४',\n 5: '५',\n 6: '६',\n 7: '७',\n 8: '८',\n 9: '९',\n 0: '०',\n },\n numberMap = {\n '१': '1',\n '२': '2',\n '३': '3',\n '४': '4',\n '५': '5',\n '६': '6',\n '७': '7',\n '८': '8',\n '९': '9',\n '०': '0',\n };\n\n function relativeTimeMr(number, withoutSuffix, string, isFuture) {\n var output = '';\n if (withoutSuffix) {\n switch (string) {\n case 's':\n output = 'काही सेकंद';\n break;\n case 'ss':\n output = '%d सेकंद';\n break;\n case 'm':\n output = 'एक मिनिट';\n break;\n case 'mm':\n output = '%d मिनिटे';\n break;\n case 'h':\n output = 'एक तास';\n break;\n case 'hh':\n output = '%d तास';\n break;\n case 'd':\n output = 'एक दिवस';\n break;\n case 'dd':\n output = '%d दिवस';\n break;\n case 'M':\n output = 'एक महिना';\n break;\n case 'MM':\n output = '%d महिने';\n break;\n case 'y':\n output = 'एक वर्ष';\n break;\n case 'yy':\n output = '%d वर्षे';\n break;\n }\n } else {\n switch (string) {\n case 's':\n output = 'काही सेकंदां';\n break;\n case 'ss':\n output = '%d सेकंदां';\n break;\n case 'm':\n output = 'एका मिनिटा';\n break;\n case 'mm':\n output = '%d मिनिटां';\n break;\n case 'h':\n output = 'एका तासा';\n break;\n case 'hh':\n output = '%d तासां';\n break;\n case 'd':\n output = 'एका दिवसा';\n break;\n case 'dd':\n output = '%d दिवसां';\n break;\n case 'M':\n output = 'एका महिन्या';\n break;\n case 'MM':\n output = '%d महिन्यां';\n break;\n case 'y':\n output = 'एका वर्षा';\n break;\n case 'yy':\n output = '%d वर्षां';\n break;\n }\n }\n return output.replace(/%d/i, number);\n }\n\n var mr = moment.defineLocale('mr', {\n months: 'जानेवारी_फेब्रुवारी_मार्च_एप्रिल_मे_जून_जुलै_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर'.split(\n '_'\n ),\n monthsShort:\n 'जाने._फेब्रु._मार्च._एप्रि._मे._जून._जुलै._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'रविवार_सोमवार_मंगळवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'),\n weekdaysShort: 'रवि_सोम_मंगळ_बुध_गुरू_शुक्र_शनि'.split('_'),\n weekdaysMin: 'र_सो_मं_बु_गु_शु_श'.split('_'),\n longDateFormat: {\n LT: 'A h:mm वाजता',\n LTS: 'A h:mm:ss वाजता',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm वाजता',\n LLLL: 'dddd, D MMMM YYYY, A h:mm वाजता',\n },\n calendar: {\n sameDay: '[आज] LT',\n nextDay: '[उद्या] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[काल] LT',\n lastWeek: '[मागील] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%sमध्ये',\n past: '%sपूर्वी',\n s: relativeTimeMr,\n ss: relativeTimeMr,\n m: relativeTimeMr,\n mm: relativeTimeMr,\n h: relativeTimeMr,\n hh: relativeTimeMr,\n d: relativeTimeMr,\n dd: relativeTimeMr,\n M: relativeTimeMr,\n MM: relativeTimeMr,\n y: relativeTimeMr,\n yy: relativeTimeMr,\n },\n preparse: function (string) {\n return string.replace(/[१२३४५६७८९०]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /पहाटे|सकाळी|दुपारी|सायंकाळी|रात्री/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'पहाटे' || meridiem === 'सकाळी') {\n return hour;\n } else if (\n meridiem === 'दुपारी' ||\n meridiem === 'सायंकाळी' ||\n meridiem === 'रात्री'\n ) {\n return hour >= 12 ? hour : hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour >= 0 && hour < 6) {\n return 'पहाटे';\n } else if (hour < 12) {\n return 'सकाळी';\n } else if (hour < 17) {\n return 'दुपारी';\n } else if (hour < 20) {\n return 'सायंकाळी';\n } else {\n return 'रात्री';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return mr;\n\n})));\n","//! moment.js locale configuration\n//! locale : Malay [ms-my]\n//! note : DEPRECATED, the correct one is [ms]\n//! author : Weldan Jamili : https://github.com/weldan\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var msMy = moment.defineLocale('ms-my', {\n months: 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'),\n weekdays: 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'),\n weekdaysShort: 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'),\n weekdaysMin: 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [pukul] HH.mm',\n LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',\n },\n meridiemParse: /pagi|tengahari|petang|malam/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'pagi') {\n return hour;\n } else if (meridiem === 'tengahari') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'petang' || meridiem === 'malam') {\n return hour + 12;\n }\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'pagi';\n } else if (hours < 15) {\n return 'tengahari';\n } else if (hours < 19) {\n return 'petang';\n } else {\n return 'malam';\n }\n },\n calendar: {\n sameDay: '[Hari ini pukul] LT',\n nextDay: '[Esok pukul] LT',\n nextWeek: 'dddd [pukul] LT',\n lastDay: '[Kelmarin pukul] LT',\n lastWeek: 'dddd [lepas pukul] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dalam %s',\n past: '%s yang lepas',\n s: 'beberapa saat',\n ss: '%d saat',\n m: 'seminit',\n mm: '%d minit',\n h: 'sejam',\n hh: '%d jam',\n d: 'sehari',\n dd: '%d hari',\n M: 'sebulan',\n MM: '%d bulan',\n y: 'setahun',\n yy: '%d tahun',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return msMy;\n\n})));\n","//! moment.js locale configuration\n//! locale : Malay [ms]\n//! author : Weldan Jamili : https://github.com/weldan\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ms = moment.defineLocale('ms', {\n months: 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'),\n weekdays: 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'),\n weekdaysShort: 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'),\n weekdaysMin: 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [pukul] HH.mm',\n LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',\n },\n meridiemParse: /pagi|tengahari|petang|malam/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'pagi') {\n return hour;\n } else if (meridiem === 'tengahari') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'petang' || meridiem === 'malam') {\n return hour + 12;\n }\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'pagi';\n } else if (hours < 15) {\n return 'tengahari';\n } else if (hours < 19) {\n return 'petang';\n } else {\n return 'malam';\n }\n },\n calendar: {\n sameDay: '[Hari ini pukul] LT',\n nextDay: '[Esok pukul] LT',\n nextWeek: 'dddd [pukul] LT',\n lastDay: '[Kelmarin pukul] LT',\n lastWeek: 'dddd [lepas pukul] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dalam %s',\n past: '%s yang lepas',\n s: 'beberapa saat',\n ss: '%d saat',\n m: 'seminit',\n mm: '%d minit',\n h: 'sejam',\n hh: '%d jam',\n d: 'sehari',\n dd: '%d hari',\n M: 'sebulan',\n MM: '%d bulan',\n y: 'setahun',\n yy: '%d tahun',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return ms;\n\n})));\n","//! moment.js locale configuration\n//! locale : Maltese (Malta) [mt]\n//! author : Alessandro Maruccia : https://github.com/alesma\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var mt = moment.defineLocale('mt', {\n months: 'Jannar_Frar_Marzu_April_Mejju_Ġunju_Lulju_Awwissu_Settembru_Ottubru_Novembru_Diċembru'.split(\n '_'\n ),\n monthsShort: 'Jan_Fra_Mar_Apr_Mej_Ġun_Lul_Aww_Set_Ott_Nov_Diċ'.split('_'),\n weekdays:\n 'Il-Ħadd_It-Tnejn_It-Tlieta_L-Erbgħa_Il-Ħamis_Il-Ġimgħa_Is-Sibt'.split(\n '_'\n ),\n weekdaysShort: 'Ħad_Tne_Tli_Erb_Ħam_Ġim_Sib'.split('_'),\n weekdaysMin: 'Ħa_Tn_Tl_Er_Ħa_Ġi_Si'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Illum fil-]LT',\n nextDay: '[Għada fil-]LT',\n nextWeek: 'dddd [fil-]LT',\n lastDay: '[Il-bieraħ fil-]LT',\n lastWeek: 'dddd [li għadda] [fil-]LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'f’ %s',\n past: '%s ilu',\n s: 'ftit sekondi',\n ss: '%d sekondi',\n m: 'minuta',\n mm: '%d minuti',\n h: 'siegħa',\n hh: '%d siegħat',\n d: 'ġurnata',\n dd: '%d ġranet',\n M: 'xahar',\n MM: '%d xhur',\n y: 'sena',\n yy: '%d sni',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return mt;\n\n})));\n","//! moment.js locale configuration\n//! locale : Burmese [my]\n//! author : Squar team, mysquar.com\n//! author : David Rossellat : https://github.com/gholadr\n//! author : Tin Aung Lin : https://github.com/thanyawzinmin\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '၁',\n 2: '၂',\n 3: '၃',\n 4: '၄',\n 5: '၅',\n 6: '၆',\n 7: '၇',\n 8: '၈',\n 9: '၉',\n 0: '၀',\n },\n numberMap = {\n '၁': '1',\n '၂': '2',\n '၃': '3',\n '၄': '4',\n '၅': '5',\n '၆': '6',\n '၇': '7',\n '၈': '8',\n '၉': '9',\n '၀': '0',\n };\n\n var my = moment.defineLocale('my', {\n months: 'ဇန်နဝါရီ_ဖေဖော်ဝါရီ_မတ်_ဧပြီ_မေ_ဇွန်_ဇူလိုင်_သြဂုတ်_စက်တင်ဘာ_အောက်တိုဘာ_နိုဝင်ဘာ_ဒီဇင်ဘာ'.split(\n '_'\n ),\n monthsShort: 'ဇန်_ဖေ_မတ်_ပြီ_မေ_ဇွန်_လိုင်_သြ_စက်_အောက်_နို_ဒီ'.split('_'),\n weekdays: 'တနင်္ဂနွေ_တနင်္လာ_အင်္ဂါ_ဗုဒ္ဓဟူး_ကြာသပတေး_သောကြာ_စနေ'.split(\n '_'\n ),\n weekdaysShort: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'),\n weekdaysMin: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'),\n\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[ယနေ.] LT [မှာ]',\n nextDay: '[မနက်ဖြန်] LT [မှာ]',\n nextWeek: 'dddd LT [မှာ]',\n lastDay: '[မနေ.က] LT [မှာ]',\n lastWeek: '[ပြီးခဲ့သော] dddd LT [မှာ]',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'လာမည့် %s မှာ',\n past: 'လွန်ခဲ့သော %s က',\n s: 'စက္ကန်.အနည်းငယ်',\n ss: '%d စက္ကန့်',\n m: 'တစ်မိနစ်',\n mm: '%d မိနစ်',\n h: 'တစ်နာရီ',\n hh: '%d နာရီ',\n d: 'တစ်ရက်',\n dd: '%d ရက်',\n M: 'တစ်လ',\n MM: '%d လ',\n y: 'တစ်နှစ်',\n yy: '%d နှစ်',\n },\n preparse: function (string) {\n return string.replace(/[၁၂၃၄၅၆၇၈၉၀]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return my;\n\n})));\n","//! moment.js locale configuration\n//! locale : Norwegian Bokmål [nb]\n//! authors : Espen Hovlandsdal : https://github.com/rexxars\n//! Sigurd Gartmann : https://github.com/sigurdga\n//! Stephen Ramthun : https://github.com/stephenramthun\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var nb = moment.defineLocale('nb', {\n months: 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split(\n '_'\n ),\n monthsShort:\n 'jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.'.split('_'),\n monthsParseExact: true,\n weekdays: 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'),\n weekdaysShort: 'sø._ma._ti._on._to._fr._lø.'.split('_'),\n weekdaysMin: 'sø_ma_ti_on_to_fr_lø'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY [kl.] HH:mm',\n LLLL: 'dddd D. MMMM YYYY [kl.] HH:mm',\n },\n calendar: {\n sameDay: '[i dag kl.] LT',\n nextDay: '[i morgen kl.] LT',\n nextWeek: 'dddd [kl.] LT',\n lastDay: '[i går kl.] LT',\n lastWeek: '[forrige] dddd [kl.] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'om %s',\n past: '%s siden',\n s: 'noen sekunder',\n ss: '%d sekunder',\n m: 'ett minutt',\n mm: '%d minutter',\n h: 'én time',\n hh: '%d timer',\n d: 'én dag',\n dd: '%d dager',\n w: 'én uke',\n ww: '%d uker',\n M: 'én måned',\n MM: '%d måneder',\n y: 'ett år',\n yy: '%d år',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return nb;\n\n})));\n","//! moment.js locale configuration\n//! locale : Nepalese [ne]\n//! author : suvash : https://github.com/suvash\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '१',\n 2: '२',\n 3: '३',\n 4: '४',\n 5: '५',\n 6: '६',\n 7: '७',\n 8: '८',\n 9: '९',\n 0: '०',\n },\n numberMap = {\n '१': '1',\n '२': '2',\n '३': '3',\n '४': '4',\n '५': '5',\n '६': '6',\n '७': '7',\n '८': '8',\n '९': '9',\n '०': '0',\n };\n\n var ne = moment.defineLocale('ne', {\n months: 'जनवरी_फेब्रुवरी_मार्च_अप्रिल_मई_जुन_जुलाई_अगष्ट_सेप्टेम्बर_अक्टोबर_नोभेम्बर_डिसेम्बर'.split(\n '_'\n ),\n monthsShort:\n 'जन._फेब्रु._मार्च_अप्रि._मई_जुन_जुलाई._अग._सेप्ट._अक्टो._नोभे._डिसे.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'आइतबार_सोमबार_मङ्गलबार_बुधबार_बिहिबार_शुक्रबार_शनिबार'.split(\n '_'\n ),\n weekdaysShort: 'आइत._सोम._मङ्गल._बुध._बिहि._शुक्र._शनि.'.split('_'),\n weekdaysMin: 'आ._सो._मं._बु._बि._शु._श.'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'Aको h:mm बजे',\n LTS: 'Aको h:mm:ss बजे',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, Aको h:mm बजे',\n LLLL: 'dddd, D MMMM YYYY, Aको h:mm बजे',\n },\n preparse: function (string) {\n return string.replace(/[१२३४५६७८९०]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /राति|बिहान|दिउँसो|साँझ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'राति') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'बिहान') {\n return hour;\n } else if (meridiem === 'दिउँसो') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'साँझ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 3) {\n return 'राति';\n } else if (hour < 12) {\n return 'बिहान';\n } else if (hour < 16) {\n return 'दिउँसो';\n } else if (hour < 20) {\n return 'साँझ';\n } else {\n return 'राति';\n }\n },\n calendar: {\n sameDay: '[आज] LT',\n nextDay: '[भोलि] LT',\n nextWeek: '[आउँदो] dddd[,] LT',\n lastDay: '[हिजो] LT',\n lastWeek: '[गएको] dddd[,] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%sमा',\n past: '%s अगाडि',\n s: 'केही क्षण',\n ss: '%d सेकेण्ड',\n m: 'एक मिनेट',\n mm: '%d मिनेट',\n h: 'एक घण्टा',\n hh: '%d घण्टा',\n d: 'एक दिन',\n dd: '%d दिन',\n M: 'एक महिना',\n MM: '%d महिना',\n y: 'एक बर्ष',\n yy: '%d बर्ष',\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return ne;\n\n})));\n","//! moment.js locale configuration\n//! locale : Dutch (Belgium) [nl-be]\n//! author : Joris Röling : https://github.com/jorisroling\n//! author : Jacob Middag : https://github.com/middagj\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortWithDots =\n 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_'),\n monthsShortWithoutDots =\n 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_'),\n monthsParse = [\n /^jan/i,\n /^feb/i,\n /^(maart|mrt\\.?)$/i,\n /^apr/i,\n /^mei$/i,\n /^jun[i.]?$/i,\n /^jul[i.]?$/i,\n /^aug/i,\n /^sep/i,\n /^okt/i,\n /^nov/i,\n /^dec/i,\n ],\n monthsRegex =\n /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\\.?|feb\\.?|mrt\\.?|apr\\.?|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i;\n\n var nlBe = moment.defineLocale('nl-be', {\n months: 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortWithDots;\n } else if (/-MMM-/.test(format)) {\n return monthsShortWithoutDots[m.month()];\n } else {\n return monthsShortWithDots[m.month()];\n }\n },\n\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex:\n /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,\n monthsShortStrictRegex:\n /^(jan\\.?|feb\\.?|mrt\\.?|apr\\.?|mei|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i,\n\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n\n weekdays:\n 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split('_'),\n weekdaysShort: 'zo._ma._di._wo._do._vr._za.'.split('_'),\n weekdaysMin: 'zo_ma_di_wo_do_vr_za'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[vandaag om] LT',\n nextDay: '[morgen om] LT',\n nextWeek: 'dddd [om] LT',\n lastDay: '[gisteren om] LT',\n lastWeek: '[afgelopen] dddd [om] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'over %s',\n past: '%s geleden',\n s: 'een paar seconden',\n ss: '%d seconden',\n m: 'één minuut',\n mm: '%d minuten',\n h: 'één uur',\n hh: '%d uur',\n d: 'één dag',\n dd: '%d dagen',\n M: 'één maand',\n MM: '%d maanden',\n y: 'één jaar',\n yy: '%d jaar',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n ordinal: function (number) {\n return (\n number +\n (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de')\n );\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return nlBe;\n\n})));\n","//! moment.js locale configuration\n//! locale : Dutch [nl]\n//! author : Joris Röling : https://github.com/jorisroling\n//! author : Jacob Middag : https://github.com/middagj\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortWithDots =\n 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_'),\n monthsShortWithoutDots =\n 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_'),\n monthsParse = [\n /^jan/i,\n /^feb/i,\n /^(maart|mrt\\.?)$/i,\n /^apr/i,\n /^mei$/i,\n /^jun[i.]?$/i,\n /^jul[i.]?$/i,\n /^aug/i,\n /^sep/i,\n /^okt/i,\n /^nov/i,\n /^dec/i,\n ],\n monthsRegex =\n /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\\.?|feb\\.?|mrt\\.?|apr\\.?|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i;\n\n var nl = moment.defineLocale('nl', {\n months: 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortWithDots;\n } else if (/-MMM-/.test(format)) {\n return monthsShortWithoutDots[m.month()];\n } else {\n return monthsShortWithDots[m.month()];\n }\n },\n\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex:\n /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,\n monthsShortStrictRegex:\n /^(jan\\.?|feb\\.?|mrt\\.?|apr\\.?|mei|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i,\n\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n\n weekdays:\n 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split('_'),\n weekdaysShort: 'zo._ma._di._wo._do._vr._za.'.split('_'),\n weekdaysMin: 'zo_ma_di_wo_do_vr_za'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD-MM-YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[vandaag om] LT',\n nextDay: '[morgen om] LT',\n nextWeek: 'dddd [om] LT',\n lastDay: '[gisteren om] LT',\n lastWeek: '[afgelopen] dddd [om] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'over %s',\n past: '%s geleden',\n s: 'een paar seconden',\n ss: '%d seconden',\n m: 'één minuut',\n mm: '%d minuten',\n h: 'één uur',\n hh: '%d uur',\n d: 'één dag',\n dd: '%d dagen',\n w: 'één week',\n ww: '%d weken',\n M: 'één maand',\n MM: '%d maanden',\n y: 'één jaar',\n yy: '%d jaar',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n ordinal: function (number) {\n return (\n number +\n (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de')\n );\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return nl;\n\n})));\n","//! moment.js locale configuration\n//! locale : Nynorsk [nn]\n//! authors : https://github.com/mechuwind\n//! Stephen Ramthun : https://github.com/stephenramthun\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var nn = moment.defineLocale('nn', {\n months: 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split(\n '_'\n ),\n monthsShort:\n 'jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.'.split('_'),\n monthsParseExact: true,\n weekdays: 'sundag_måndag_tysdag_onsdag_torsdag_fredag_laurdag'.split('_'),\n weekdaysShort: 'su._må._ty._on._to._fr._lau.'.split('_'),\n weekdaysMin: 'su_må_ty_on_to_fr_la'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY [kl.] H:mm',\n LLLL: 'dddd D. MMMM YYYY [kl.] HH:mm',\n },\n calendar: {\n sameDay: '[I dag klokka] LT',\n nextDay: '[I morgon klokka] LT',\n nextWeek: 'dddd [klokka] LT',\n lastDay: '[I går klokka] LT',\n lastWeek: '[Føregåande] dddd [klokka] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'om %s',\n past: '%s sidan',\n s: 'nokre sekund',\n ss: '%d sekund',\n m: 'eit minutt',\n mm: '%d minutt',\n h: 'ein time',\n hh: '%d timar',\n d: 'ein dag',\n dd: '%d dagar',\n w: 'ei veke',\n ww: '%d veker',\n M: 'ein månad',\n MM: '%d månader',\n y: 'eit år',\n yy: '%d år',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return nn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Occitan, lengadocian dialecte [oc-lnc]\n//! author : Quentin PAGÈS : https://github.com/Quenty31\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ocLnc = moment.defineLocale('oc-lnc', {\n months: {\n standalone:\n 'genièr_febrièr_març_abril_mai_junh_julhet_agost_setembre_octòbre_novembre_decembre'.split(\n '_'\n ),\n format: \"de genièr_de febrièr_de març_d'abril_de mai_de junh_de julhet_d'agost_de setembre_d'octòbre_de novembre_de decembre\".split(\n '_'\n ),\n isFormat: /D[oD]?(\\s)+MMMM/,\n },\n monthsShort:\n 'gen._febr._març_abr._mai_junh_julh._ago._set._oct._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'dimenge_diluns_dimars_dimècres_dijòus_divendres_dissabte'.split(\n '_'\n ),\n weekdaysShort: 'dg._dl._dm._dc._dj._dv._ds.'.split('_'),\n weekdaysMin: 'dg_dl_dm_dc_dj_dv_ds'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM [de] YYYY',\n ll: 'D MMM YYYY',\n LLL: 'D MMMM [de] YYYY [a] H:mm',\n lll: 'D MMM YYYY, H:mm',\n LLLL: 'dddd D MMMM [de] YYYY [a] H:mm',\n llll: 'ddd D MMM YYYY, H:mm',\n },\n calendar: {\n sameDay: '[uèi a] LT',\n nextDay: '[deman a] LT',\n nextWeek: 'dddd [a] LT',\n lastDay: '[ièr a] LT',\n lastWeek: 'dddd [passat a] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: \"d'aquí %s\",\n past: 'fa %s',\n s: 'unas segondas',\n ss: '%d segondas',\n m: 'una minuta',\n mm: '%d minutas',\n h: 'una ora',\n hh: '%d oras',\n d: 'un jorn',\n dd: '%d jorns',\n M: 'un mes',\n MM: '%d meses',\n y: 'un an',\n yy: '%d ans',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(r|n|t|è|a)/,\n ordinal: function (number, period) {\n var output =\n number === 1\n ? 'r'\n : number === 2\n ? 'n'\n : number === 3\n ? 'r'\n : number === 4\n ? 't'\n : 'è';\n if (period === 'w' || period === 'W') {\n output = 'a';\n }\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4,\n },\n });\n\n return ocLnc;\n\n})));\n","//! moment.js locale configuration\n//! locale : Punjabi (India) [pa-in]\n//! author : Harpreet Singh : https://github.com/harpreetkhalsagtbit\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '੧',\n 2: '੨',\n 3: '੩',\n 4: '੪',\n 5: '੫',\n 6: '੬',\n 7: '੭',\n 8: '੮',\n 9: '੯',\n 0: '੦',\n },\n numberMap = {\n '੧': '1',\n '੨': '2',\n '੩': '3',\n '੪': '4',\n '੫': '5',\n '੬': '6',\n '੭': '7',\n '੮': '8',\n '੯': '9',\n '੦': '0',\n };\n\n var paIn = moment.defineLocale('pa-in', {\n // There are months name as per Nanakshahi Calendar but they are not used as rigidly in modern Punjabi.\n months: 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split(\n '_'\n ),\n monthsShort:\n 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split(\n '_'\n ),\n weekdays: 'ਐਤਵਾਰ_ਸੋਮਵਾਰ_ਮੰਗਲਵਾਰ_ਬੁਧਵਾਰ_ਵੀਰਵਾਰ_ਸ਼ੁੱਕਰਵਾਰ_ਸ਼ਨੀਚਰਵਾਰ'.split(\n '_'\n ),\n weekdaysShort: 'ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ'.split('_'),\n weekdaysMin: 'ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ'.split('_'),\n longDateFormat: {\n LT: 'A h:mm ਵਜੇ',\n LTS: 'A h:mm:ss ਵਜੇ',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm ਵਜੇ',\n LLLL: 'dddd, D MMMM YYYY, A h:mm ਵਜੇ',\n },\n calendar: {\n sameDay: '[ਅਜ] LT',\n nextDay: '[ਕਲ] LT',\n nextWeek: '[ਅਗਲਾ] dddd, LT',\n lastDay: '[ਕਲ] LT',\n lastWeek: '[ਪਿਛਲੇ] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s ਵਿੱਚ',\n past: '%s ਪਿਛਲੇ',\n s: 'ਕੁਝ ਸਕਿੰਟ',\n ss: '%d ਸਕਿੰਟ',\n m: 'ਇਕ ਮਿੰਟ',\n mm: '%d ਮਿੰਟ',\n h: 'ਇੱਕ ਘੰਟਾ',\n hh: '%d ਘੰਟੇ',\n d: 'ਇੱਕ ਦਿਨ',\n dd: '%d ਦਿਨ',\n M: 'ਇੱਕ ਮਹੀਨਾ',\n MM: '%d ਮਹੀਨੇ',\n y: 'ਇੱਕ ਸਾਲ',\n yy: '%d ਸਾਲ',\n },\n preparse: function (string) {\n return string.replace(/[੧੨੩੪੫੬੭੮੯੦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n // Punjabi notation for meridiems are quite fuzzy in practice. While there exists\n // a rigid notion of a 'Pahar' it is not used as rigidly in modern Punjabi.\n meridiemParse: /ਰਾਤ|ਸਵੇਰ|ਦੁਪਹਿਰ|ਸ਼ਾਮ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'ਰਾਤ') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'ਸਵੇਰ') {\n return hour;\n } else if (meridiem === 'ਦੁਪਹਿਰ') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'ਸ਼ਾਮ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ਰਾਤ';\n } else if (hour < 10) {\n return 'ਸਵੇਰ';\n } else if (hour < 17) {\n return 'ਦੁਪਹਿਰ';\n } else if (hour < 20) {\n return 'ਸ਼ਾਮ';\n } else {\n return 'ਰਾਤ';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return paIn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Polish [pl]\n//! author : Rafal Hirsz : https://github.com/evoL\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsNominative =\n 'styczeń_luty_marzec_kwiecień_maj_czerwiec_lipiec_sierpień_wrzesień_październik_listopad_grudzień'.split(\n '_'\n ),\n monthsSubjective =\n 'stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_września_października_listopada_grudnia'.split(\n '_'\n ),\n monthsParse = [\n /^sty/i,\n /^lut/i,\n /^mar/i,\n /^kwi/i,\n /^maj/i,\n /^cze/i,\n /^lip/i,\n /^sie/i,\n /^wrz/i,\n /^paź/i,\n /^lis/i,\n /^gru/i,\n ];\n function plural(n) {\n return n % 10 < 5 && n % 10 > 1 && ~~(n / 10) % 10 !== 1;\n }\n function translate(number, withoutSuffix, key) {\n var result = number + ' ';\n switch (key) {\n case 'ss':\n return result + (plural(number) ? 'sekundy' : 'sekund');\n case 'm':\n return withoutSuffix ? 'minuta' : 'minutę';\n case 'mm':\n return result + (plural(number) ? 'minuty' : 'minut');\n case 'h':\n return withoutSuffix ? 'godzina' : 'godzinę';\n case 'hh':\n return result + (plural(number) ? 'godziny' : 'godzin');\n case 'ww':\n return result + (plural(number) ? 'tygodnie' : 'tygodni');\n case 'MM':\n return result + (plural(number) ? 'miesiące' : 'miesięcy');\n case 'yy':\n return result + (plural(number) ? 'lata' : 'lat');\n }\n }\n\n var pl = moment.defineLocale('pl', {\n months: function (momentToFormat, format) {\n if (!momentToFormat) {\n return monthsNominative;\n } else if (/D MMMM/.test(format)) {\n return monthsSubjective[momentToFormat.month()];\n } else {\n return monthsNominative[momentToFormat.month()];\n }\n },\n monthsShort: 'sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru'.split('_'),\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays:\n 'niedziela_poniedziałek_wtorek_środa_czwartek_piątek_sobota'.split('_'),\n weekdaysShort: 'ndz_pon_wt_śr_czw_pt_sob'.split('_'),\n weekdaysMin: 'Nd_Pn_Wt_Śr_Cz_Pt_So'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Dziś o] LT',\n nextDay: '[Jutro o] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[W niedzielę o] LT';\n\n case 2:\n return '[We wtorek o] LT';\n\n case 3:\n return '[W środę o] LT';\n\n case 6:\n return '[W sobotę o] LT';\n\n default:\n return '[W] dddd [o] LT';\n }\n },\n lastDay: '[Wczoraj o] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[W zeszłą niedzielę o] LT';\n case 3:\n return '[W zeszłą środę o] LT';\n case 6:\n return '[W zeszłą sobotę o] LT';\n default:\n return '[W zeszły] dddd [o] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: '%s temu',\n s: 'kilka sekund',\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: '1 dzień',\n dd: '%d dni',\n w: 'tydzień',\n ww: translate,\n M: 'miesiąc',\n MM: translate,\n y: 'rok',\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return pl;\n\n})));\n","//! moment.js locale configuration\n//! locale : Portuguese (Brazil) [pt-br]\n//! author : Caio Ribeiro Pereira : https://github.com/caio-ribeiro-pereira\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ptBr = moment.defineLocale('pt-br', {\n months: 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split(\n '_'\n ),\n monthsShort: 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'),\n weekdays:\n 'domingo_segunda-feira_terça-feira_quarta-feira_quinta-feira_sexta-feira_sábado'.split(\n '_'\n ),\n weekdaysShort: 'dom_seg_ter_qua_qui_sex_sáb'.split('_'),\n weekdaysMin: 'do_2ª_3ª_4ª_5ª_6ª_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY [às] HH:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY [às] HH:mm',\n },\n calendar: {\n sameDay: '[Hoje às] LT',\n nextDay: '[Amanhã às] LT',\n nextWeek: 'dddd [às] LT',\n lastDay: '[Ontem às] LT',\n lastWeek: function () {\n return this.day() === 0 || this.day() === 6\n ? '[Último] dddd [às] LT' // Saturday + Sunday\n : '[Última] dddd [às] LT'; // Monday - Friday\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'em %s',\n past: 'há %s',\n s: 'poucos segundos',\n ss: '%d segundos',\n m: 'um minuto',\n mm: '%d minutos',\n h: 'uma hora',\n hh: '%d horas',\n d: 'um dia',\n dd: '%d dias',\n M: 'um mês',\n MM: '%d meses',\n y: 'um ano',\n yy: '%d anos',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n invalidDate: 'Data inválida',\n });\n\n return ptBr;\n\n})));\n","//! moment.js locale configuration\n//! locale : Portuguese [pt]\n//! author : Jefferson : https://github.com/jalex79\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var pt = moment.defineLocale('pt', {\n months: 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split(\n '_'\n ),\n monthsShort: 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'),\n weekdays:\n 'Domingo_Segunda-feira_Terça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado'.split(\n '_'\n ),\n weekdaysShort: 'Dom_Seg_Ter_Qua_Qui_Sex_Sáb'.split('_'),\n weekdaysMin: 'Do_2ª_3ª_4ª_5ª_6ª_Sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY HH:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Hoje às] LT',\n nextDay: '[Amanhã às] LT',\n nextWeek: 'dddd [às] LT',\n lastDay: '[Ontem às] LT',\n lastWeek: function () {\n return this.day() === 0 || this.day() === 6\n ? '[Último] dddd [às] LT' // Saturday + Sunday\n : '[Última] dddd [às] LT'; // Monday - Friday\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'em %s',\n past: 'há %s',\n s: 'segundos',\n ss: '%d segundos',\n m: 'um minuto',\n mm: '%d minutos',\n h: 'uma hora',\n hh: '%d horas',\n d: 'um dia',\n dd: '%d dias',\n w: 'uma semana',\n ww: '%d semanas',\n M: 'um mês',\n MM: '%d meses',\n y: 'um ano',\n yy: '%d anos',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return pt;\n\n})));\n","//! moment.js locale configuration\n//! locale : Romanian [ro]\n//! author : Vlad Gurdiga : https://github.com/gurdiga\n//! author : Valentin Agachi : https://github.com/avaly\n//! author : Emanuel Cepoi : https://github.com/cepem\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n var format = {\n ss: 'secunde',\n mm: 'minute',\n hh: 'ore',\n dd: 'zile',\n ww: 'săptămâni',\n MM: 'luni',\n yy: 'ani',\n },\n separator = ' ';\n if (number % 100 >= 20 || (number >= 100 && number % 100 === 0)) {\n separator = ' de ';\n }\n return number + separator + format[key];\n }\n\n var ro = moment.defineLocale('ro', {\n months: 'ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie'.split(\n '_'\n ),\n monthsShort:\n 'ian._feb._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'duminică_luni_marți_miercuri_joi_vineri_sâmbătă'.split('_'),\n weekdaysShort: 'Dum_Lun_Mar_Mie_Joi_Vin_Sâm'.split('_'),\n weekdaysMin: 'Du_Lu_Ma_Mi_Jo_Vi_Sâ'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY H:mm',\n LLLL: 'dddd, D MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[azi la] LT',\n nextDay: '[mâine la] LT',\n nextWeek: 'dddd [la] LT',\n lastDay: '[ieri la] LT',\n lastWeek: '[fosta] dddd [la] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'peste %s',\n past: '%s în urmă',\n s: 'câteva secunde',\n ss: relativeTimeWithPlural,\n m: 'un minut',\n mm: relativeTimeWithPlural,\n h: 'o oră',\n hh: relativeTimeWithPlural,\n d: 'o zi',\n dd: relativeTimeWithPlural,\n w: 'o săptămână',\n ww: relativeTimeWithPlural,\n M: 'o lună',\n MM: relativeTimeWithPlural,\n y: 'un an',\n yy: relativeTimeWithPlural,\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return ro;\n\n})));\n","//! moment.js locale configuration\n//! locale : Russian [ru]\n//! author : Viktorminator : https://github.com/Viktorminator\n//! author : Menelion Elensúle : https://github.com/Oire\n//! author : Коренберг Марк : https://github.com/socketpair\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function plural(word, num) {\n var forms = word.split('_');\n return num % 10 === 1 && num % 100 !== 11\n ? forms[0]\n : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20)\n ? forms[1]\n : forms[2];\n }\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n var format = {\n ss: withoutSuffix ? 'секунда_секунды_секунд' : 'секунду_секунды_секунд',\n mm: withoutSuffix ? 'минута_минуты_минут' : 'минуту_минуты_минут',\n hh: 'час_часа_часов',\n dd: 'день_дня_дней',\n ww: 'неделя_недели_недель',\n MM: 'месяц_месяца_месяцев',\n yy: 'год_года_лет',\n };\n if (key === 'm') {\n return withoutSuffix ? 'минута' : 'минуту';\n } else {\n return number + ' ' + plural(format[key], +number);\n }\n }\n var monthsParse = [\n /^янв/i,\n /^фев/i,\n /^мар/i,\n /^апр/i,\n /^ма[йя]/i,\n /^июн/i,\n /^июл/i,\n /^авг/i,\n /^сен/i,\n /^окт/i,\n /^ноя/i,\n /^дек/i,\n ];\n\n // http://new.gramota.ru/spravka/rules/139-prop : § 103\n // Сокращения месяцев: http://new.gramota.ru/spravka/buro/search-answer?s=242637\n // CLDR data: http://www.unicode.org/cldr/charts/28/summary/ru.html#1753\n var ru = moment.defineLocale('ru', {\n months: {\n format: 'января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря'.split(\n '_'\n ),\n standalone:\n 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split(\n '_'\n ),\n },\n monthsShort: {\n // по CLDR именно \"июл.\" и \"июн.\", но какой смысл менять букву на точку?\n format: 'янв._февр._мар._апр._мая_июня_июля_авг._сент._окт._нояб._дек.'.split(\n '_'\n ),\n standalone:\n 'янв._февр._март_апр._май_июнь_июль_авг._сент._окт._нояб._дек.'.split(\n '_'\n ),\n },\n weekdays: {\n standalone:\n 'воскресенье_понедельник_вторник_среда_четверг_пятница_суббота'.split(\n '_'\n ),\n format: 'воскресенье_понедельник_вторник_среду_четверг_пятницу_субботу'.split(\n '_'\n ),\n isFormat: /\\[ ?[Вв] ?(?:прошлую|следующую|эту)? ?] ?dddd/,\n },\n weekdaysShort: 'вс_пн_вт_ср_чт_пт_сб'.split('_'),\n weekdaysMin: 'вс_пн_вт_ср_чт_пт_сб'.split('_'),\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n\n // полные названия с падежами, по три буквы, для некоторых, по 4 буквы, сокращения с точкой и без точки\n monthsRegex:\n /^(январ[ья]|янв\\.?|феврал[ья]|февр?\\.?|марта?|мар\\.?|апрел[ья]|апр\\.?|ма[йя]|июн[ья]|июн\\.?|июл[ья]|июл\\.?|августа?|авг\\.?|сентябр[ья]|сент?\\.?|октябр[ья]|окт\\.?|ноябр[ья]|нояб?\\.?|декабр[ья]|дек\\.?)/i,\n\n // копия предыдущего\n monthsShortRegex:\n /^(январ[ья]|янв\\.?|феврал[ья]|февр?\\.?|марта?|мар\\.?|апрел[ья]|апр\\.?|ма[йя]|июн[ья]|июн\\.?|июл[ья]|июл\\.?|августа?|авг\\.?|сентябр[ья]|сент?\\.?|октябр[ья]|окт\\.?|ноябр[ья]|нояб?\\.?|декабр[ья]|дек\\.?)/i,\n\n // полные названия с падежами\n monthsStrictRegex:\n /^(январ[яь]|феврал[яь]|марта?|апрел[яь]|ма[яй]|июн[яь]|июл[яь]|августа?|сентябр[яь]|октябр[яь]|ноябр[яь]|декабр[яь])/i,\n\n // Выражение, которое соответствует только сокращённым формам\n monthsShortStrictRegex:\n /^(янв\\.|февр?\\.|мар[т.]|апр\\.|ма[яй]|июн[ья.]|июл[ья.]|авг\\.|сент?\\.|окт\\.|нояб?\\.|дек\\.)/i,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY г.',\n LLL: 'D MMMM YYYY г., H:mm',\n LLLL: 'dddd, D MMMM YYYY г., H:mm',\n },\n calendar: {\n sameDay: '[Сегодня, в] LT',\n nextDay: '[Завтра, в] LT',\n lastDay: '[Вчера, в] LT',\n nextWeek: function (now) {\n if (now.week() !== this.week()) {\n switch (this.day()) {\n case 0:\n return '[В следующее] dddd, [в] LT';\n case 1:\n case 2:\n case 4:\n return '[В следующий] dddd, [в] LT';\n case 3:\n case 5:\n case 6:\n return '[В следующую] dddd, [в] LT';\n }\n } else {\n if (this.day() === 2) {\n return '[Во] dddd, [в] LT';\n } else {\n return '[В] dddd, [в] LT';\n }\n }\n },\n lastWeek: function (now) {\n if (now.week() !== this.week()) {\n switch (this.day()) {\n case 0:\n return '[В прошлое] dddd, [в] LT';\n case 1:\n case 2:\n case 4:\n return '[В прошлый] dddd, [в] LT';\n case 3:\n case 5:\n case 6:\n return '[В прошлую] dddd, [в] LT';\n }\n } else {\n if (this.day() === 2) {\n return '[Во] dddd, [в] LT';\n } else {\n return '[В] dddd, [в] LT';\n }\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'через %s',\n past: '%s назад',\n s: 'несколько секунд',\n ss: relativeTimeWithPlural,\n m: relativeTimeWithPlural,\n mm: relativeTimeWithPlural,\n h: 'час',\n hh: relativeTimeWithPlural,\n d: 'день',\n dd: relativeTimeWithPlural,\n w: 'неделя',\n ww: relativeTimeWithPlural,\n M: 'месяц',\n MM: relativeTimeWithPlural,\n y: 'год',\n yy: relativeTimeWithPlural,\n },\n meridiemParse: /ночи|утра|дня|вечера/i,\n isPM: function (input) {\n return /^(дня|вечера)$/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ночи';\n } else if (hour < 12) {\n return 'утра';\n } else if (hour < 17) {\n return 'дня';\n } else {\n return 'вечера';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(й|го|я)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'M':\n case 'd':\n case 'DDD':\n return number + '-й';\n case 'D':\n return number + '-го';\n case 'w':\n case 'W':\n return number + '-я';\n default:\n return number;\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return ru;\n\n})));\n","//! moment.js locale configuration\n//! locale : Sindhi [sd]\n//! author : Narain Sagar : https://github.com/narainsagar\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months = [\n 'جنوري',\n 'فيبروري',\n 'مارچ',\n 'اپريل',\n 'مئي',\n 'جون',\n 'جولاءِ',\n 'آگسٽ',\n 'سيپٽمبر',\n 'آڪٽوبر',\n 'نومبر',\n 'ڊسمبر',\n ],\n days = ['آچر', 'سومر', 'اڱارو', 'اربع', 'خميس', 'جمع', 'ڇنڇر'];\n\n var sd = moment.defineLocale('sd', {\n months: months,\n monthsShort: months,\n weekdays: days,\n weekdaysShort: days,\n weekdaysMin: days,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd، D MMMM YYYY HH:mm',\n },\n meridiemParse: /صبح|شام/,\n isPM: function (input) {\n return 'شام' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'صبح';\n }\n return 'شام';\n },\n calendar: {\n sameDay: '[اڄ] LT',\n nextDay: '[سڀاڻي] LT',\n nextWeek: 'dddd [اڳين هفتي تي] LT',\n lastDay: '[ڪالهه] LT',\n lastWeek: '[گزريل هفتي] dddd [تي] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s پوء',\n past: '%s اڳ',\n s: 'چند سيڪنڊ',\n ss: '%d سيڪنڊ',\n m: 'هڪ منٽ',\n mm: '%d منٽ',\n h: 'هڪ ڪلاڪ',\n hh: '%d ڪلاڪ',\n d: 'هڪ ڏينهن',\n dd: '%d ڏينهن',\n M: 'هڪ مهينو',\n MM: '%d مهينا',\n y: 'هڪ سال',\n yy: '%d سال',\n },\n preparse: function (string) {\n return string.replace(/،/g, ',');\n },\n postformat: function (string) {\n return string.replace(/,/g, '،');\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return sd;\n\n})));\n","//! moment.js locale configuration\n//! locale : Northern Sami [se]\n//! authors : Bård Rolstad Henriksen : https://github.com/karamell\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var se = moment.defineLocale('se', {\n months: 'ođđajagemánnu_guovvamánnu_njukčamánnu_cuoŋománnu_miessemánnu_geassemánnu_suoidnemánnu_borgemánnu_čakčamánnu_golggotmánnu_skábmamánnu_juovlamánnu'.split(\n '_'\n ),\n monthsShort:\n 'ođđj_guov_njuk_cuo_mies_geas_suoi_borg_čakč_golg_skáb_juov'.split('_'),\n weekdays:\n 'sotnabeaivi_vuossárga_maŋŋebárga_gaskavahkku_duorastat_bearjadat_lávvardat'.split(\n '_'\n ),\n weekdaysShort: 'sotn_vuos_maŋ_gask_duor_bear_láv'.split('_'),\n weekdaysMin: 's_v_m_g_d_b_L'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'MMMM D. [b.] YYYY',\n LLL: 'MMMM D. [b.] YYYY [ti.] HH:mm',\n LLLL: 'dddd, MMMM D. [b.] YYYY [ti.] HH:mm',\n },\n calendar: {\n sameDay: '[otne ti] LT',\n nextDay: '[ihttin ti] LT',\n nextWeek: 'dddd [ti] LT',\n lastDay: '[ikte ti] LT',\n lastWeek: '[ovddit] dddd [ti] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s geažes',\n past: 'maŋit %s',\n s: 'moadde sekunddat',\n ss: '%d sekunddat',\n m: 'okta minuhta',\n mm: '%d minuhtat',\n h: 'okta diimmu',\n hh: '%d diimmut',\n d: 'okta beaivi',\n dd: '%d beaivvit',\n M: 'okta mánnu',\n MM: '%d mánut',\n y: 'okta jahki',\n yy: '%d jagit',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return se;\n\n})));\n","//! moment.js locale configuration\n//! locale : Sinhalese [si]\n//! author : Sampath Sitinamaluwa : https://github.com/sampathsris\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n /*jshint -W100*/\n var si = moment.defineLocale('si', {\n months: 'ජනවාරි_පෙබරවාරි_මාර්තු_අප්‍රේල්_මැයි_ජූනි_ජූලි_අගෝස්තු_සැප්තැම්බර්_ඔක්තෝබර්_නොවැම්බර්_දෙසැම්බර්'.split(\n '_'\n ),\n monthsShort: 'ජන_පෙබ_මාර්_අප්_මැයි_ජූනි_ජූලි_අගෝ_සැප්_ඔක්_නොවැ_දෙසැ'.split(\n '_'\n ),\n weekdays:\n 'ඉරිදා_සඳුදා_අඟහරුවාදා_බදාදා_බ්‍රහස්පතින්දා_සිකුරාදා_සෙනසුරාදා'.split(\n '_'\n ),\n weekdaysShort: 'ඉරි_සඳු_අඟ_බදා_බ්‍රහ_සිකු_සෙන'.split('_'),\n weekdaysMin: 'ඉ_ස_අ_බ_බ්‍ර_සි_සෙ'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'a h:mm',\n LTS: 'a h:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYY MMMM D',\n LLL: 'YYYY MMMM D, a h:mm',\n LLLL: 'YYYY MMMM D [වැනි] dddd, a h:mm:ss',\n },\n calendar: {\n sameDay: '[අද] LT[ට]',\n nextDay: '[හෙට] LT[ට]',\n nextWeek: 'dddd LT[ට]',\n lastDay: '[ඊයේ] LT[ට]',\n lastWeek: '[පසුගිය] dddd LT[ට]',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%sකින්',\n past: '%sකට පෙර',\n s: 'තත්පර කිහිපය',\n ss: 'තත්පර %d',\n m: 'මිනිත්තුව',\n mm: 'මිනිත්තු %d',\n h: 'පැය',\n hh: 'පැය %d',\n d: 'දිනය',\n dd: 'දින %d',\n M: 'මාසය',\n MM: 'මාස %d',\n y: 'වසර',\n yy: 'වසර %d',\n },\n dayOfMonthOrdinalParse: /\\d{1,2} වැනි/,\n ordinal: function (number) {\n return number + ' වැනි';\n },\n meridiemParse: /පෙර වරු|පස් වරු|පෙ.ව|ප.ව./,\n isPM: function (input) {\n return input === 'ප.ව.' || input === 'පස් වරු';\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'ප.ව.' : 'පස් වරු';\n } else {\n return isLower ? 'පෙ.ව.' : 'පෙර වරු';\n }\n },\n });\n\n return si;\n\n})));\n","//! moment.js locale configuration\n//! locale : Slovak [sk]\n//! author : Martin Minka : https://github.com/k2s\n//! based on work of petrbela : https://github.com/petrbela\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months =\n 'január_február_marec_apríl_máj_jún_júl_august_september_október_november_december'.split(\n '_'\n ),\n monthsShort = 'jan_feb_mar_apr_máj_jún_júl_aug_sep_okt_nov_dec'.split('_');\n function plural(n) {\n return n > 1 && n < 5;\n }\n function translate(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n switch (key) {\n case 's': // a few seconds / in a few seconds / a few seconds ago\n return withoutSuffix || isFuture ? 'pár sekúnd' : 'pár sekundami';\n case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'sekundy' : 'sekúnd');\n } else {\n return result + 'sekundami';\n }\n case 'm': // a minute / in a minute / a minute ago\n return withoutSuffix ? 'minúta' : isFuture ? 'minútu' : 'minútou';\n case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'minúty' : 'minút');\n } else {\n return result + 'minútami';\n }\n case 'h': // an hour / in an hour / an hour ago\n return withoutSuffix ? 'hodina' : isFuture ? 'hodinu' : 'hodinou';\n case 'hh': // 9 hours / in 9 hours / 9 hours ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'hodiny' : 'hodín');\n } else {\n return result + 'hodinami';\n }\n case 'd': // a day / in a day / a day ago\n return withoutSuffix || isFuture ? 'deň' : 'dňom';\n case 'dd': // 9 days / in 9 days / 9 days ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'dni' : 'dní');\n } else {\n return result + 'dňami';\n }\n case 'M': // a month / in a month / a month ago\n return withoutSuffix || isFuture ? 'mesiac' : 'mesiacom';\n case 'MM': // 9 months / in 9 months / 9 months ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'mesiace' : 'mesiacov');\n } else {\n return result + 'mesiacmi';\n }\n case 'y': // a year / in a year / a year ago\n return withoutSuffix || isFuture ? 'rok' : 'rokom';\n case 'yy': // 9 years / in 9 years / 9 years ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'roky' : 'rokov');\n } else {\n return result + 'rokmi';\n }\n }\n }\n\n var sk = moment.defineLocale('sk', {\n months: months,\n monthsShort: monthsShort,\n weekdays: 'nedeľa_pondelok_utorok_streda_štvrtok_piatok_sobota'.split('_'),\n weekdaysShort: 'ne_po_ut_st_št_pi_so'.split('_'),\n weekdaysMin: 'ne_po_ut_st_št_pi_so'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd D. MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[dnes o] LT',\n nextDay: '[zajtra o] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[v nedeľu o] LT';\n case 1:\n case 2:\n return '[v] dddd [o] LT';\n case 3:\n return '[v stredu o] LT';\n case 4:\n return '[vo štvrtok o] LT';\n case 5:\n return '[v piatok o] LT';\n case 6:\n return '[v sobotu o] LT';\n }\n },\n lastDay: '[včera o] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[minulú nedeľu o] LT';\n case 1:\n case 2:\n return '[minulý] dddd [o] LT';\n case 3:\n return '[minulú stredu o] LT';\n case 4:\n case 5:\n return '[minulý] dddd [o] LT';\n case 6:\n return '[minulú sobotu o] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'pred %s',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return sk;\n\n})));\n","//! moment.js locale configuration\n//! locale : Slovenian [sl]\n//! author : Robert Sedovšek : https://github.com/sedovsek\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n switch (key) {\n case 's':\n return withoutSuffix || isFuture\n ? 'nekaj sekund'\n : 'nekaj sekundami';\n case 'ss':\n if (number === 1) {\n result += withoutSuffix ? 'sekundo' : 'sekundi';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'sekundi' : 'sekundah';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'sekunde' : 'sekundah';\n } else {\n result += 'sekund';\n }\n return result;\n case 'm':\n return withoutSuffix ? 'ena minuta' : 'eno minuto';\n case 'mm':\n if (number === 1) {\n result += withoutSuffix ? 'minuta' : 'minuto';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'minuti' : 'minutama';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'minute' : 'minutami';\n } else {\n result += withoutSuffix || isFuture ? 'minut' : 'minutami';\n }\n return result;\n case 'h':\n return withoutSuffix ? 'ena ura' : 'eno uro';\n case 'hh':\n if (number === 1) {\n result += withoutSuffix ? 'ura' : 'uro';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'uri' : 'urama';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'ure' : 'urami';\n } else {\n result += withoutSuffix || isFuture ? 'ur' : 'urami';\n }\n return result;\n case 'd':\n return withoutSuffix || isFuture ? 'en dan' : 'enim dnem';\n case 'dd':\n if (number === 1) {\n result += withoutSuffix || isFuture ? 'dan' : 'dnem';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'dni' : 'dnevoma';\n } else {\n result += withoutSuffix || isFuture ? 'dni' : 'dnevi';\n }\n return result;\n case 'M':\n return withoutSuffix || isFuture ? 'en mesec' : 'enim mesecem';\n case 'MM':\n if (number === 1) {\n result += withoutSuffix || isFuture ? 'mesec' : 'mesecem';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'meseca' : 'mesecema';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'mesece' : 'meseci';\n } else {\n result += withoutSuffix || isFuture ? 'mesecev' : 'meseci';\n }\n return result;\n case 'y':\n return withoutSuffix || isFuture ? 'eno leto' : 'enim letom';\n case 'yy':\n if (number === 1) {\n result += withoutSuffix || isFuture ? 'leto' : 'letom';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'leti' : 'letoma';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'leta' : 'leti';\n } else {\n result += withoutSuffix || isFuture ? 'let' : 'leti';\n }\n return result;\n }\n }\n\n var sl = moment.defineLocale('sl', {\n months: 'januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december'.split(\n '_'\n ),\n monthsShort:\n 'jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'nedelja_ponedeljek_torek_sreda_četrtek_petek_sobota'.split('_'),\n weekdaysShort: 'ned._pon._tor._sre._čet._pet._sob.'.split('_'),\n weekdaysMin: 'ne_po_to_sr_če_pe_so'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD. MM. YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[danes ob] LT',\n nextDay: '[jutri ob] LT',\n\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[v] [nedeljo] [ob] LT';\n case 3:\n return '[v] [sredo] [ob] LT';\n case 6:\n return '[v] [soboto] [ob] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[v] dddd [ob] LT';\n }\n },\n lastDay: '[včeraj ob] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[prejšnjo] [nedeljo] [ob] LT';\n case 3:\n return '[prejšnjo] [sredo] [ob] LT';\n case 6:\n return '[prejšnjo] [soboto] [ob] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[prejšnji] dddd [ob] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'čez %s',\n past: 'pred %s',\n s: processRelativeTime,\n ss: processRelativeTime,\n m: processRelativeTime,\n mm: processRelativeTime,\n h: processRelativeTime,\n hh: processRelativeTime,\n d: processRelativeTime,\n dd: processRelativeTime,\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return sl;\n\n})));\n","//! moment.js locale configuration\n//! locale : Albanian [sq]\n//! author : Flakërim Ismani : https://github.com/flakerimi\n//! author : Menelion Elensúle : https://github.com/Oire\n//! author : Oerd Cukalla : https://github.com/oerd\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var sq = moment.defineLocale('sq', {\n months: 'Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_Nëntor_Dhjetor'.split(\n '_'\n ),\n monthsShort: 'Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_Nën_Dhj'.split('_'),\n weekdays: 'E Diel_E Hënë_E Martë_E Mërkurë_E Enjte_E Premte_E Shtunë'.split(\n '_'\n ),\n weekdaysShort: 'Die_Hën_Mar_Mër_Enj_Pre_Sht'.split('_'),\n weekdaysMin: 'D_H_Ma_Më_E_P_Sh'.split('_'),\n weekdaysParseExact: true,\n meridiemParse: /PD|MD/,\n isPM: function (input) {\n return input.charAt(0) === 'M';\n },\n meridiem: function (hours, minutes, isLower) {\n return hours < 12 ? 'PD' : 'MD';\n },\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Sot në] LT',\n nextDay: '[Nesër në] LT',\n nextWeek: 'dddd [në] LT',\n lastDay: '[Dje në] LT',\n lastWeek: 'dddd [e kaluar në] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'në %s',\n past: '%s më parë',\n s: 'disa sekonda',\n ss: '%d sekonda',\n m: 'një minutë',\n mm: '%d minuta',\n h: 'një orë',\n hh: '%d orë',\n d: 'një ditë',\n dd: '%d ditë',\n M: 'një muaj',\n MM: '%d muaj',\n y: 'një vit',\n yy: '%d vite',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return sq;\n\n})));\n","//! moment.js locale configuration\n//! locale : Serbian Cyrillic [sr-cyrl]\n//! author : Milan Janačković : https://github.com/milan-j\n//! author : Stefan Crnjaković : https://github.com/crnjakovic\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var translator = {\n words: {\n //Different grammatical cases\n ss: ['секунда', 'секунде', 'секунди'],\n m: ['један минут', 'једног минута'],\n mm: ['минут', 'минута', 'минута'],\n h: ['један сат', 'једног сата'],\n hh: ['сат', 'сата', 'сати'],\n d: ['један дан', 'једног дана'],\n dd: ['дан', 'дана', 'дана'],\n M: ['један месец', 'једног месеца'],\n MM: ['месец', 'месеца', 'месеци'],\n y: ['једну годину', 'једне године'],\n yy: ['годину', 'године', 'година'],\n },\n correctGrammaticalCase: function (number, wordKey) {\n if (\n number % 10 >= 1 &&\n number % 10 <= 4 &&\n (number % 100 < 10 || number % 100 >= 20)\n ) {\n return number % 10 === 1 ? wordKey[0] : wordKey[1];\n }\n return wordKey[2];\n },\n translate: function (number, withoutSuffix, key, isFuture) {\n var wordKey = translator.words[key],\n word;\n\n if (key.length === 1) {\n // Nominativ\n if (key === 'y' && withoutSuffix) return 'једна година';\n return isFuture || withoutSuffix ? wordKey[0] : wordKey[1];\n }\n\n word = translator.correctGrammaticalCase(number, wordKey);\n // Nominativ\n if (key === 'yy' && withoutSuffix && word === 'годину') {\n return number + ' година';\n }\n\n return number + ' ' + word;\n },\n };\n\n var srCyrl = moment.defineLocale('sr-cyrl', {\n months: 'јануар_фебруар_март_април_мај_јун_јул_август_септембар_октобар_новембар_децембар'.split(\n '_'\n ),\n monthsShort:\n 'јан._феб._мар._апр._мај_јун_јул_авг._сеп._окт._нов._дец.'.split('_'),\n monthsParseExact: true,\n weekdays: 'недеља_понедељак_уторак_среда_четвртак_петак_субота'.split('_'),\n weekdaysShort: 'нед._пон._уто._сре._чет._пет._суб.'.split('_'),\n weekdaysMin: 'не_по_ут_ср_че_пе_су'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'D. M. YYYY.',\n LL: 'D. MMMM YYYY.',\n LLL: 'D. MMMM YYYY. H:mm',\n LLLL: 'dddd, D. MMMM YYYY. H:mm',\n },\n calendar: {\n sameDay: '[данас у] LT',\n nextDay: '[сутра у] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[у] [недељу] [у] LT';\n case 3:\n return '[у] [среду] [у] LT';\n case 6:\n return '[у] [суботу] [у] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[у] dddd [у] LT';\n }\n },\n lastDay: '[јуче у] LT',\n lastWeek: function () {\n var lastWeekDays = [\n '[прошле] [недеље] [у] LT',\n '[прошлог] [понедељка] [у] LT',\n '[прошлог] [уторка] [у] LT',\n '[прошле] [среде] [у] LT',\n '[прошлог] [четвртка] [у] LT',\n '[прошлог] [петка] [у] LT',\n '[прошле] [суботе] [у] LT',\n ];\n return lastWeekDays[this.day()];\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'за %s',\n past: 'пре %s',\n s: 'неколико секунди',\n ss: translator.translate,\n m: translator.translate,\n mm: translator.translate,\n h: translator.translate,\n hh: translator.translate,\n d: translator.translate,\n dd: translator.translate,\n M: translator.translate,\n MM: translator.translate,\n y: translator.translate,\n yy: translator.translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 1st is the first week of the year.\n },\n });\n\n return srCyrl;\n\n})));\n","//! moment.js locale configuration\n//! locale : Serbian [sr]\n//! author : Milan Janačković : https://github.com/milan-j\n//! author : Stefan Crnjaković : https://github.com/crnjakovic\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var translator = {\n words: {\n //Different grammatical cases\n ss: ['sekunda', 'sekunde', 'sekundi'],\n m: ['jedan minut', 'jednog minuta'],\n mm: ['minut', 'minuta', 'minuta'],\n h: ['jedan sat', 'jednog sata'],\n hh: ['sat', 'sata', 'sati'],\n d: ['jedan dan', 'jednog dana'],\n dd: ['dan', 'dana', 'dana'],\n M: ['jedan mesec', 'jednog meseca'],\n MM: ['mesec', 'meseca', 'meseci'],\n y: ['jednu godinu', 'jedne godine'],\n yy: ['godinu', 'godine', 'godina'],\n },\n correctGrammaticalCase: function (number, wordKey) {\n if (\n number % 10 >= 1 &&\n number % 10 <= 4 &&\n (number % 100 < 10 || number % 100 >= 20)\n ) {\n return number % 10 === 1 ? wordKey[0] : wordKey[1];\n }\n return wordKey[2];\n },\n translate: function (number, withoutSuffix, key, isFuture) {\n var wordKey = translator.words[key],\n word;\n\n if (key.length === 1) {\n // Nominativ\n if (key === 'y' && withoutSuffix) return 'jedna godina';\n return isFuture || withoutSuffix ? wordKey[0] : wordKey[1];\n }\n\n word = translator.correctGrammaticalCase(number, wordKey);\n // Nominativ\n if (key === 'yy' && withoutSuffix && word === 'godinu') {\n return number + ' godina';\n }\n\n return number + ' ' + word;\n },\n };\n\n var sr = moment.defineLocale('sr', {\n months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split(\n '_'\n ),\n monthsShort:\n 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split('_'),\n monthsParseExact: true,\n weekdays: 'nedelja_ponedeljak_utorak_sreda_četvrtak_petak_subota'.split(\n '_'\n ),\n weekdaysShort: 'ned._pon._uto._sre._čet._pet._sub.'.split('_'),\n weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'D. M. YYYY.',\n LL: 'D. MMMM YYYY.',\n LLL: 'D. MMMM YYYY. H:mm',\n LLLL: 'dddd, D. MMMM YYYY. H:mm',\n },\n calendar: {\n sameDay: '[danas u] LT',\n nextDay: '[sutra u] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[u] [nedelju] [u] LT';\n case 3:\n return '[u] [sredu] [u] LT';\n case 6:\n return '[u] [subotu] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[u] dddd [u] LT';\n }\n },\n lastDay: '[juče u] LT',\n lastWeek: function () {\n var lastWeekDays = [\n '[prošle] [nedelje] [u] LT',\n '[prošlog] [ponedeljka] [u] LT',\n '[prošlog] [utorka] [u] LT',\n '[prošle] [srede] [u] LT',\n '[prošlog] [četvrtka] [u] LT',\n '[prošlog] [petka] [u] LT',\n '[prošle] [subote] [u] LT',\n ];\n return lastWeekDays[this.day()];\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'pre %s',\n s: 'nekoliko sekundi',\n ss: translator.translate,\n m: translator.translate,\n mm: translator.translate,\n h: translator.translate,\n hh: translator.translate,\n d: translator.translate,\n dd: translator.translate,\n M: translator.translate,\n MM: translator.translate,\n y: translator.translate,\n yy: translator.translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return sr;\n\n})));\n","//! moment.js locale configuration\n//! locale : siSwati [ss]\n//! author : Nicolai Davies : https://github.com/nicolaidavies\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ss = moment.defineLocale('ss', {\n months: \"Bhimbidvwane_Indlovana_Indlov'lenkhulu_Mabasa_Inkhwekhweti_Inhlaba_Kholwane_Ingci_Inyoni_Imphala_Lweti_Ingongoni\".split(\n '_'\n ),\n monthsShort: 'Bhi_Ina_Inu_Mab_Ink_Inh_Kho_Igc_Iny_Imp_Lwe_Igo'.split('_'),\n weekdays:\n 'Lisontfo_Umsombuluko_Lesibili_Lesitsatfu_Lesine_Lesihlanu_Umgcibelo'.split(\n '_'\n ),\n weekdaysShort: 'Lis_Umb_Lsb_Les_Lsi_Lsh_Umg'.split('_'),\n weekdaysMin: 'Li_Us_Lb_Lt_Ls_Lh_Ug'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendar: {\n sameDay: '[Namuhla nga] LT',\n nextDay: '[Kusasa nga] LT',\n nextWeek: 'dddd [nga] LT',\n lastDay: '[Itolo nga] LT',\n lastWeek: 'dddd [leliphelile] [nga] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'nga %s',\n past: 'wenteka nga %s',\n s: 'emizuzwana lomcane',\n ss: '%d mzuzwana',\n m: 'umzuzu',\n mm: '%d emizuzu',\n h: 'lihora',\n hh: '%d emahora',\n d: 'lilanga',\n dd: '%d emalanga',\n M: 'inyanga',\n MM: '%d tinyanga',\n y: 'umnyaka',\n yy: '%d iminyaka',\n },\n meridiemParse: /ekuseni|emini|entsambama|ebusuku/,\n meridiem: function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'ekuseni';\n } else if (hours < 15) {\n return 'emini';\n } else if (hours < 19) {\n return 'entsambama';\n } else {\n return 'ebusuku';\n }\n },\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'ekuseni') {\n return hour;\n } else if (meridiem === 'emini') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'entsambama' || meridiem === 'ebusuku') {\n if (hour === 0) {\n return 0;\n }\n return hour + 12;\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal: '%d',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return ss;\n\n})));\n","//! moment.js locale configuration\n//! locale : Swedish [sv]\n//! author : Jens Alm : https://github.com/ulmus\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var sv = moment.defineLocale('sv', {\n months: 'januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'),\n weekdays: 'söndag_måndag_tisdag_onsdag_torsdag_fredag_lördag'.split('_'),\n weekdaysShort: 'sön_mån_tis_ons_tor_fre_lör'.split('_'),\n weekdaysMin: 'sö_må_ti_on_to_fr_lö'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [kl.] HH:mm',\n LLLL: 'dddd D MMMM YYYY [kl.] HH:mm',\n lll: 'D MMM YYYY HH:mm',\n llll: 'ddd D MMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Idag] LT',\n nextDay: '[Imorgon] LT',\n lastDay: '[Igår] LT',\n nextWeek: '[På] dddd LT',\n lastWeek: '[I] dddd[s] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'om %s',\n past: 'för %s sedan',\n s: 'några sekunder',\n ss: '%d sekunder',\n m: 'en minut',\n mm: '%d minuter',\n h: 'en timme',\n hh: '%d timmar',\n d: 'en dag',\n dd: '%d dagar',\n M: 'en månad',\n MM: '%d månader',\n y: 'ett år',\n yy: '%d år',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(\\:e|\\:a)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? ':e'\n : b === 1\n ? ':a'\n : b === 2\n ? ':a'\n : b === 3\n ? ':e'\n : ':e';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return sv;\n\n})));\n","//! moment.js locale configuration\n//! locale : Swahili [sw]\n//! author : Fahad Kassim : https://github.com/fadsel\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var sw = moment.defineLocale('sw', {\n months: 'Januari_Februari_Machi_Aprili_Mei_Juni_Julai_Agosti_Septemba_Oktoba_Novemba_Desemba'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ago_Sep_Okt_Nov_Des'.split('_'),\n weekdays:\n 'Jumapili_Jumatatu_Jumanne_Jumatano_Alhamisi_Ijumaa_Jumamosi'.split(\n '_'\n ),\n weekdaysShort: 'Jpl_Jtat_Jnne_Jtan_Alh_Ijm_Jmos'.split('_'),\n weekdaysMin: 'J2_J3_J4_J5_Al_Ij_J1'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'hh:mm A',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[leo saa] LT',\n nextDay: '[kesho saa] LT',\n nextWeek: '[wiki ijayo] dddd [saat] LT',\n lastDay: '[jana] LT',\n lastWeek: '[wiki iliyopita] dddd [saat] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s baadaye',\n past: 'tokea %s',\n s: 'hivi punde',\n ss: 'sekunde %d',\n m: 'dakika moja',\n mm: 'dakika %d',\n h: 'saa limoja',\n hh: 'masaa %d',\n d: 'siku moja',\n dd: 'siku %d',\n M: 'mwezi mmoja',\n MM: 'miezi %d',\n y: 'mwaka mmoja',\n yy: 'miaka %d',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return sw;\n\n})));\n","//! moment.js locale configuration\n//! locale : Tamil [ta]\n//! author : Arjunkumar Krishnamoorthy : https://github.com/tk120404\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '௧',\n 2: '௨',\n 3: '௩',\n 4: '௪',\n 5: '௫',\n 6: '௬',\n 7: '௭',\n 8: '௮',\n 9: '௯',\n 0: '௦',\n },\n numberMap = {\n '௧': '1',\n '௨': '2',\n '௩': '3',\n '௪': '4',\n '௫': '5',\n '௬': '6',\n '௭': '7',\n '௮': '8',\n '௯': '9',\n '௦': '0',\n };\n\n var ta = moment.defineLocale('ta', {\n months: 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split(\n '_'\n ),\n monthsShort:\n 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split(\n '_'\n ),\n weekdays:\n 'ஞாயிற்றுக்கிழமை_திங்கட்கிழமை_செவ்வாய்கிழமை_புதன்கிழமை_வியாழக்கிழமை_வெள்ளிக்கிழமை_சனிக்கிழமை'.split(\n '_'\n ),\n weekdaysShort: 'ஞாயிறு_திங்கள்_செவ்வாய்_புதன்_வியாழன்_வெள்ளி_சனி'.split(\n '_'\n ),\n weekdaysMin: 'ஞா_தி_செ_பு_வி_வெ_ச'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, HH:mm',\n LLLL: 'dddd, D MMMM YYYY, HH:mm',\n },\n calendar: {\n sameDay: '[இன்று] LT',\n nextDay: '[நாளை] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[நேற்று] LT',\n lastWeek: '[கடந்த வாரம்] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s இல்',\n past: '%s முன்',\n s: 'ஒரு சில விநாடிகள்',\n ss: '%d விநாடிகள்',\n m: 'ஒரு நிமிடம்',\n mm: '%d நிமிடங்கள்',\n h: 'ஒரு மணி நேரம்',\n hh: '%d மணி நேரம்',\n d: 'ஒரு நாள்',\n dd: '%d நாட்கள்',\n M: 'ஒரு மாதம்',\n MM: '%d மாதங்கள்',\n y: 'ஒரு வருடம்',\n yy: '%d ஆண்டுகள்',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}வது/,\n ordinal: function (number) {\n return number + 'வது';\n },\n preparse: function (string) {\n return string.replace(/[௧௨௩௪௫௬௭௮௯௦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n // refer http://ta.wikipedia.org/s/1er1\n meridiemParse: /யாமம்|வைகறை|காலை|நண்பகல்|எற்பாடு|மாலை/,\n meridiem: function (hour, minute, isLower) {\n if (hour < 2) {\n return ' யாமம்';\n } else if (hour < 6) {\n return ' வைகறை'; // வைகறை\n } else if (hour < 10) {\n return ' காலை'; // காலை\n } else if (hour < 14) {\n return ' நண்பகல்'; // நண்பகல்\n } else if (hour < 18) {\n return ' எற்பாடு'; // எற்பாடு\n } else if (hour < 22) {\n return ' மாலை'; // மாலை\n } else {\n return ' யாமம்';\n }\n },\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'யாமம்') {\n return hour < 2 ? hour : hour + 12;\n } else if (meridiem === 'வைகறை' || meridiem === 'காலை') {\n return hour;\n } else if (meridiem === 'நண்பகல்') {\n return hour >= 10 ? hour : hour + 12;\n } else {\n return hour + 12;\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return ta;\n\n})));\n","//! moment.js locale configuration\n//! locale : Telugu [te]\n//! author : Krishna Chaitanya Thota : https://github.com/kcthota\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var te = moment.defineLocale('te', {\n months: 'జనవరి_ఫిబ్రవరి_మార్చి_ఏప్రిల్_మే_జూన్_జులై_ఆగస్టు_సెప్టెంబర్_అక్టోబర్_నవంబర్_డిసెంబర్'.split(\n '_'\n ),\n monthsShort:\n 'జన._ఫిబ్ర._మార్చి_ఏప్రి._మే_జూన్_జులై_ఆగ._సెప్._అక్టో._నవ._డిసె.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays:\n 'ఆదివారం_సోమవారం_మంగళవారం_బుధవారం_గురువారం_శుక్రవారం_శనివారం'.split(\n '_'\n ),\n weekdaysShort: 'ఆది_సోమ_మంగళ_బుధ_గురు_శుక్ర_శని'.split('_'),\n weekdaysMin: 'ఆ_సో_మం_బు_గు_శు_శ'.split('_'),\n longDateFormat: {\n LT: 'A h:mm',\n LTS: 'A h:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm',\n LLLL: 'dddd, D MMMM YYYY, A h:mm',\n },\n calendar: {\n sameDay: '[నేడు] LT',\n nextDay: '[రేపు] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[నిన్న] LT',\n lastWeek: '[గత] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s లో',\n past: '%s క్రితం',\n s: 'కొన్ని క్షణాలు',\n ss: '%d సెకన్లు',\n m: 'ఒక నిమిషం',\n mm: '%d నిమిషాలు',\n h: 'ఒక గంట',\n hh: '%d గంటలు',\n d: 'ఒక రోజు',\n dd: '%d రోజులు',\n M: 'ఒక నెల',\n MM: '%d నెలలు',\n y: 'ఒక సంవత్సరం',\n yy: '%d సంవత్సరాలు',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}వ/,\n ordinal: '%dవ',\n meridiemParse: /రాత్రి|ఉదయం|మధ్యాహ్నం|సాయంత్రం/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'రాత్రి') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'ఉదయం') {\n return hour;\n } else if (meridiem === 'మధ్యాహ్నం') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'సాయంత్రం') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'రాత్రి';\n } else if (hour < 10) {\n return 'ఉదయం';\n } else if (hour < 17) {\n return 'మధ్యాహ్నం';\n } else if (hour < 20) {\n return 'సాయంత్రం';\n } else {\n return 'రాత్రి';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return te;\n\n})));\n","//! moment.js locale configuration\n//! locale : Tetun Dili (East Timor) [tet]\n//! author : Joshua Brooks : https://github.com/joshbrooks\n//! author : Onorio De J. Afonso : https://github.com/marobo\n//! author : Sonia Simoes : https://github.com/soniasimoes\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var tet = moment.defineLocale('tet', {\n months: 'Janeiru_Fevereiru_Marsu_Abril_Maiu_Juñu_Jullu_Agustu_Setembru_Outubru_Novembru_Dezembru'.split(\n '_'\n ),\n monthsShort: 'Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez'.split('_'),\n weekdays: 'Domingu_Segunda_Tersa_Kuarta_Kinta_Sesta_Sabadu'.split('_'),\n weekdaysShort: 'Dom_Seg_Ters_Kua_Kint_Sest_Sab'.split('_'),\n weekdaysMin: 'Do_Seg_Te_Ku_Ki_Ses_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Ohin iha] LT',\n nextDay: '[Aban iha] LT',\n nextWeek: 'dddd [iha] LT',\n lastDay: '[Horiseik iha] LT',\n lastWeek: 'dddd [semana kotuk] [iha] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'iha %s',\n past: '%s liuba',\n s: 'segundu balun',\n ss: 'segundu %d',\n m: 'minutu ida',\n mm: 'minutu %d',\n h: 'oras ida',\n hh: 'oras %d',\n d: 'loron ida',\n dd: 'loron %d',\n M: 'fulan ida',\n MM: 'fulan %d',\n y: 'tinan ida',\n yy: 'tinan %d',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return tet;\n\n})));\n","//! moment.js locale configuration\n//! locale : Tajik [tg]\n//! author : Orif N. Jr. : https://github.com/orif-jr\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var suffixes = {\n 0: '-ум',\n 1: '-ум',\n 2: '-юм',\n 3: '-юм',\n 4: '-ум',\n 5: '-ум',\n 6: '-ум',\n 7: '-ум',\n 8: '-ум',\n 9: '-ум',\n 10: '-ум',\n 12: '-ум',\n 13: '-ум',\n 20: '-ум',\n 30: '-юм',\n 40: '-ум',\n 50: '-ум',\n 60: '-ум',\n 70: '-ум',\n 80: '-ум',\n 90: '-ум',\n 100: '-ум',\n };\n\n var tg = moment.defineLocale('tg', {\n months: {\n format: 'январи_феврали_марти_апрели_майи_июни_июли_августи_сентябри_октябри_ноябри_декабри'.split(\n '_'\n ),\n standalone:\n 'январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр'.split(\n '_'\n ),\n },\n monthsShort: 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split('_'),\n weekdays: 'якшанбе_душанбе_сешанбе_чоршанбе_панҷшанбе_ҷумъа_шанбе'.split(\n '_'\n ),\n weekdaysShort: 'яшб_дшб_сшб_чшб_пшб_ҷум_шнб'.split('_'),\n weekdaysMin: 'яш_дш_сш_чш_пш_ҷм_шб'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Имрӯз соати] LT',\n nextDay: '[Фардо соати] LT',\n lastDay: '[Дирӯз соати] LT',\n nextWeek: 'dddd[и] [ҳафтаи оянда соати] LT',\n lastWeek: 'dddd[и] [ҳафтаи гузашта соати] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'баъди %s',\n past: '%s пеш',\n s: 'якчанд сония',\n m: 'як дақиқа',\n mm: '%d дақиқа',\n h: 'як соат',\n hh: '%d соат',\n d: 'як рӯз',\n dd: '%d рӯз',\n M: 'як моҳ',\n MM: '%d моҳ',\n y: 'як сол',\n yy: '%d сол',\n },\n meridiemParse: /шаб|субҳ|рӯз|бегоҳ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'шаб') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'субҳ') {\n return hour;\n } else if (meridiem === 'рӯз') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'бегоҳ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'шаб';\n } else if (hour < 11) {\n return 'субҳ';\n } else if (hour < 16) {\n return 'рӯз';\n } else if (hour < 19) {\n return 'бегоҳ';\n } else {\n return 'шаб';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ум|юм)/,\n ordinal: function (number) {\n var a = number % 10,\n b = number >= 100 ? 100 : null;\n return number + (suffixes[number] || suffixes[a] || suffixes[b]);\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 1th is the first week of the year.\n },\n });\n\n return tg;\n\n})));\n","//! moment.js locale configuration\n//! locale : Thai [th]\n//! author : Kridsada Thanabulpong : https://github.com/sirn\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var th = moment.defineLocale('th', {\n months: 'มกราคม_กุมภาพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_กรกฎาคม_สิงหาคม_กันยายน_ตุลาคม_พฤศจิกายน_ธันวาคม'.split(\n '_'\n ),\n monthsShort:\n 'ม.ค._ก.พ._มี.ค._เม.ย._พ.ค._มิ.ย._ก.ค._ส.ค._ก.ย._ต.ค._พ.ย._ธ.ค.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัสบดี_ศุกร์_เสาร์'.split('_'),\n weekdaysShort: 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัส_ศุกร์_เสาร์'.split('_'), // yes, three characters difference\n weekdaysMin: 'อา._จ._อ._พ._พฤ._ศ._ส.'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY เวลา H:mm',\n LLLL: 'วันddddที่ D MMMM YYYY เวลา H:mm',\n },\n meridiemParse: /ก่อนเที่ยง|หลังเที่ยง/,\n isPM: function (input) {\n return input === 'หลังเที่ยง';\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ก่อนเที่ยง';\n } else {\n return 'หลังเที่ยง';\n }\n },\n calendar: {\n sameDay: '[วันนี้ เวลา] LT',\n nextDay: '[พรุ่งนี้ เวลา] LT',\n nextWeek: 'dddd[หน้า เวลา] LT',\n lastDay: '[เมื่อวานนี้ เวลา] LT',\n lastWeek: '[วัน]dddd[ที่แล้ว เวลา] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'อีก %s',\n past: '%sที่แล้ว',\n s: 'ไม่กี่วินาที',\n ss: '%d วินาที',\n m: '1 นาที',\n mm: '%d นาที',\n h: '1 ชั่วโมง',\n hh: '%d ชั่วโมง',\n d: '1 วัน',\n dd: '%d วัน',\n w: '1 สัปดาห์',\n ww: '%d สัปดาห์',\n M: '1 เดือน',\n MM: '%d เดือน',\n y: '1 ปี',\n yy: '%d ปี',\n },\n });\n\n return th;\n\n})));\n","//! moment.js locale configuration\n//! locale : Turkmen [tk]\n//! author : Atamyrat Abdyrahmanov : https://github.com/atamyratabdy\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var suffixes = {\n 1: \"'inji\",\n 5: \"'inji\",\n 8: \"'inji\",\n 70: \"'inji\",\n 80: \"'inji\",\n 2: \"'nji\",\n 7: \"'nji\",\n 20: \"'nji\",\n 50: \"'nji\",\n 3: \"'ünji\",\n 4: \"'ünji\",\n 100: \"'ünji\",\n 6: \"'njy\",\n 9: \"'unjy\",\n 10: \"'unjy\",\n 30: \"'unjy\",\n 60: \"'ynjy\",\n 90: \"'ynjy\",\n };\n\n var tk = moment.defineLocale('tk', {\n months: 'Ýanwar_Fewral_Mart_Aprel_Maý_Iýun_Iýul_Awgust_Sentýabr_Oktýabr_Noýabr_Dekabr'.split(\n '_'\n ),\n monthsShort: 'Ýan_Few_Mar_Apr_Maý_Iýn_Iýl_Awg_Sen_Okt_Noý_Dek'.split('_'),\n weekdays: 'Ýekşenbe_Duşenbe_Sişenbe_Çarşenbe_Penşenbe_Anna_Şenbe'.split(\n '_'\n ),\n weekdaysShort: 'Ýek_Duş_Siş_Çar_Pen_Ann_Şen'.split('_'),\n weekdaysMin: 'Ýk_Dş_Sş_Çr_Pn_An_Şn'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[bugün sagat] LT',\n nextDay: '[ertir sagat] LT',\n nextWeek: '[indiki] dddd [sagat] LT',\n lastDay: '[düýn] LT',\n lastWeek: '[geçen] dddd [sagat] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s soň',\n past: '%s öň',\n s: 'birnäçe sekunt',\n m: 'bir minut',\n mm: '%d minut',\n h: 'bir sagat',\n hh: '%d sagat',\n d: 'bir gün',\n dd: '%d gün',\n M: 'bir aý',\n MM: '%d aý',\n y: 'bir ýyl',\n yy: '%d ýyl',\n },\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'Do':\n case 'DD':\n return number;\n default:\n if (number === 0) {\n // special case for zero\n return number + \"'unjy\";\n }\n var a = number % 10,\n b = (number % 100) - a,\n c = number >= 100 ? 100 : null;\n return number + (suffixes[a] || suffixes[b] || suffixes[c]);\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return tk;\n\n})));\n","//! moment.js locale configuration\n//! locale : Tagalog (Philippines) [tl-ph]\n//! author : Dan Hagman : https://github.com/hagmandan\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var tlPh = moment.defineLocale('tl-ph', {\n months: 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split(\n '_'\n ),\n monthsShort: 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'),\n weekdays: 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split(\n '_'\n ),\n weekdaysShort: 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'),\n weekdaysMin: 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'MM/D/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY HH:mm',\n LLLL: 'dddd, MMMM DD, YYYY HH:mm',\n },\n calendar: {\n sameDay: 'LT [ngayong araw]',\n nextDay: '[Bukas ng] LT',\n nextWeek: 'LT [sa susunod na] dddd',\n lastDay: 'LT [kahapon]',\n lastWeek: 'LT [noong nakaraang] dddd',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'sa loob ng %s',\n past: '%s ang nakalipas',\n s: 'ilang segundo',\n ss: '%d segundo',\n m: 'isang minuto',\n mm: '%d minuto',\n h: 'isang oras',\n hh: '%d oras',\n d: 'isang araw',\n dd: '%d araw',\n M: 'isang buwan',\n MM: '%d buwan',\n y: 'isang taon',\n yy: '%d taon',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal: function (number) {\n return number;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return tlPh;\n\n})));\n","//! moment.js locale configuration\n//! locale : Klingon [tlh]\n//! author : Dominika Kruk : https://github.com/amaranthrose\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var numbersNouns = 'pagh_wa’_cha’_wej_loS_vagh_jav_Soch_chorgh_Hut'.split('_');\n\n function translateFuture(output) {\n var time = output;\n time =\n output.indexOf('jaj') !== -1\n ? time.slice(0, -3) + 'leS'\n : output.indexOf('jar') !== -1\n ? time.slice(0, -3) + 'waQ'\n : output.indexOf('DIS') !== -1\n ? time.slice(0, -3) + 'nem'\n : time + ' pIq';\n return time;\n }\n\n function translatePast(output) {\n var time = output;\n time =\n output.indexOf('jaj') !== -1\n ? time.slice(0, -3) + 'Hu’'\n : output.indexOf('jar') !== -1\n ? time.slice(0, -3) + 'wen'\n : output.indexOf('DIS') !== -1\n ? time.slice(0, -3) + 'ben'\n : time + ' ret';\n return time;\n }\n\n function translate(number, withoutSuffix, string, isFuture) {\n var numberNoun = numberAsNoun(number);\n switch (string) {\n case 'ss':\n return numberNoun + ' lup';\n case 'mm':\n return numberNoun + ' tup';\n case 'hh':\n return numberNoun + ' rep';\n case 'dd':\n return numberNoun + ' jaj';\n case 'MM':\n return numberNoun + ' jar';\n case 'yy':\n return numberNoun + ' DIS';\n }\n }\n\n function numberAsNoun(number) {\n var hundred = Math.floor((number % 1000) / 100),\n ten = Math.floor((number % 100) / 10),\n one = number % 10,\n word = '';\n if (hundred > 0) {\n word += numbersNouns[hundred] + 'vatlh';\n }\n if (ten > 0) {\n word += (word !== '' ? ' ' : '') + numbersNouns[ten] + 'maH';\n }\n if (one > 0) {\n word += (word !== '' ? ' ' : '') + numbersNouns[one];\n }\n return word === '' ? 'pagh' : word;\n }\n\n var tlh = moment.defineLocale('tlh', {\n months: 'tera’ jar wa’_tera’ jar cha’_tera’ jar wej_tera’ jar loS_tera’ jar vagh_tera’ jar jav_tera’ jar Soch_tera’ jar chorgh_tera’ jar Hut_tera’ jar wa’maH_tera’ jar wa’maH wa’_tera’ jar wa’maH cha’'.split(\n '_'\n ),\n monthsShort:\n 'jar wa’_jar cha’_jar wej_jar loS_jar vagh_jar jav_jar Soch_jar chorgh_jar Hut_jar wa’maH_jar wa’maH wa’_jar wa’maH cha’'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split(\n '_'\n ),\n weekdaysShort:\n 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'),\n weekdaysMin:\n 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[DaHjaj] LT',\n nextDay: '[wa’leS] LT',\n nextWeek: 'LLL',\n lastDay: '[wa’Hu’] LT',\n lastWeek: 'LLL',\n sameElse: 'L',\n },\n relativeTime: {\n future: translateFuture,\n past: translatePast,\n s: 'puS lup',\n ss: translate,\n m: 'wa’ tup',\n mm: translate,\n h: 'wa’ rep',\n hh: translate,\n d: 'wa’ jaj',\n dd: translate,\n M: 'wa’ jar',\n MM: translate,\n y: 'wa’ DIS',\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return tlh;\n\n})));\n","//! moment.js locale configuration\n//! locale : Turkish [tr]\n//! authors : Erhan Gundogan : https://github.com/erhangundogan,\n//! Burak Yiğit Kaya: https://github.com/BYK\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var suffixes = {\n 1: \"'inci\",\n 5: \"'inci\",\n 8: \"'inci\",\n 70: \"'inci\",\n 80: \"'inci\",\n 2: \"'nci\",\n 7: \"'nci\",\n 20: \"'nci\",\n 50: \"'nci\",\n 3: \"'üncü\",\n 4: \"'üncü\",\n 100: \"'üncü\",\n 6: \"'ncı\",\n 9: \"'uncu\",\n 10: \"'uncu\",\n 30: \"'uncu\",\n 60: \"'ıncı\",\n 90: \"'ıncı\",\n };\n\n var tr = moment.defineLocale('tr', {\n months: 'Ocak_Şubat_Mart_Nisan_Mayıs_Haziran_Temmuz_Ağustos_Eylül_Ekim_Kasım_Aralık'.split(\n '_'\n ),\n monthsShort: 'Oca_Şub_Mar_Nis_May_Haz_Tem_Ağu_Eyl_Eki_Kas_Ara'.split('_'),\n weekdays: 'Pazar_Pazartesi_Salı_Çarşamba_Perşembe_Cuma_Cumartesi'.split(\n '_'\n ),\n weekdaysShort: 'Paz_Pzt_Sal_Çar_Per_Cum_Cmt'.split('_'),\n weekdaysMin: 'Pz_Pt_Sa_Ça_Pe_Cu_Ct'.split('_'),\n meridiem: function (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower ? 'öö' : 'ÖÖ';\n } else {\n return isLower ? 'ös' : 'ÖS';\n }\n },\n meridiemParse: /öö|ÖÖ|ös|ÖS/,\n isPM: function (input) {\n return input === 'ös' || input === 'ÖS';\n },\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[bugün saat] LT',\n nextDay: '[yarın saat] LT',\n nextWeek: '[gelecek] dddd [saat] LT',\n lastDay: '[dün] LT',\n lastWeek: '[geçen] dddd [saat] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s sonra',\n past: '%s önce',\n s: 'birkaç saniye',\n ss: '%d saniye',\n m: 'bir dakika',\n mm: '%d dakika',\n h: 'bir saat',\n hh: '%d saat',\n d: 'bir gün',\n dd: '%d gün',\n w: 'bir hafta',\n ww: '%d hafta',\n M: 'bir ay',\n MM: '%d ay',\n y: 'bir yıl',\n yy: '%d yıl',\n },\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'Do':\n case 'DD':\n return number;\n default:\n if (number === 0) {\n // special case for zero\n return number + \"'ıncı\";\n }\n var a = number % 10,\n b = (number % 100) - a,\n c = number >= 100 ? 100 : null;\n return number + (suffixes[a] || suffixes[b] || suffixes[c]);\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return tr;\n\n})));\n","//! moment.js locale configuration\n//! locale : Talossan [tzl]\n//! author : Robin van der Vliet : https://github.com/robin0van0der0v\n//! author : Iustì Canun\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n // After the year there should be a slash and the amount of years since December 26, 1979 in Roman numerals.\n // This is currently too difficult (maybe even impossible) to add.\n var tzl = moment.defineLocale('tzl', {\n months: 'Januar_Fevraglh_Març_Avrïu_Mai_Gün_Julia_Guscht_Setemvar_Listopäts_Noemvar_Zecemvar'.split(\n '_'\n ),\n monthsShort: 'Jan_Fev_Mar_Avr_Mai_Gün_Jul_Gus_Set_Lis_Noe_Zec'.split('_'),\n weekdays: 'Súladi_Lúneçi_Maitzi_Márcuri_Xhúadi_Viénerçi_Sáturi'.split('_'),\n weekdaysShort: 'Súl_Lún_Mai_Már_Xhú_Vié_Sát'.split('_'),\n weekdaysMin: 'Sú_Lú_Ma_Má_Xh_Vi_Sá'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM [dallas] YYYY',\n LLL: 'D. MMMM [dallas] YYYY HH.mm',\n LLLL: 'dddd, [li] D. MMMM [dallas] YYYY HH.mm',\n },\n meridiemParse: /d\\'o|d\\'a/i,\n isPM: function (input) {\n return \"d'o\" === input.toLowerCase();\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? \"d'o\" : \"D'O\";\n } else {\n return isLower ? \"d'a\" : \"D'A\";\n }\n },\n calendar: {\n sameDay: '[oxhi à] LT',\n nextDay: '[demà à] LT',\n nextWeek: 'dddd [à] LT',\n lastDay: '[ieiri à] LT',\n lastWeek: '[sür el] dddd [lasteu à] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'osprei %s',\n past: 'ja%s',\n s: processRelativeTime,\n ss: processRelativeTime,\n m: processRelativeTime,\n mm: processRelativeTime,\n h: processRelativeTime,\n hh: processRelativeTime,\n d: processRelativeTime,\n dd: processRelativeTime,\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n s: ['viensas secunds', \"'iensas secunds\"],\n ss: [number + ' secunds', '' + number + ' secunds'],\n m: [\"'n míut\", \"'iens míut\"],\n mm: [number + ' míuts', '' + number + ' míuts'],\n h: [\"'n þora\", \"'iensa þora\"],\n hh: [number + ' þoras', '' + number + ' þoras'],\n d: [\"'n ziua\", \"'iensa ziua\"],\n dd: [number + ' ziuas', '' + number + ' ziuas'],\n M: [\"'n mes\", \"'iens mes\"],\n MM: [number + ' mesen', '' + number + ' mesen'],\n y: [\"'n ar\", \"'iens ar\"],\n yy: [number + ' ars', '' + number + ' ars'],\n };\n return isFuture\n ? format[key][0]\n : withoutSuffix\n ? format[key][0]\n : format[key][1];\n }\n\n return tzl;\n\n})));\n","//! moment.js locale configuration\n//! locale : Central Atlas Tamazight Latin [tzm-latn]\n//! author : Abdel Said : https://github.com/abdelsaid\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var tzmLatn = moment.defineLocale('tzm-latn', {\n months: 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split(\n '_'\n ),\n monthsShort:\n 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split(\n '_'\n ),\n weekdays: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),\n weekdaysShort: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),\n weekdaysMin: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[asdkh g] LT',\n nextDay: '[aska g] LT',\n nextWeek: 'dddd [g] LT',\n lastDay: '[assant g] LT',\n lastWeek: 'dddd [g] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dadkh s yan %s',\n past: 'yan %s',\n s: 'imik',\n ss: '%d imik',\n m: 'minuḍ',\n mm: '%d minuḍ',\n h: 'saɛa',\n hh: '%d tassaɛin',\n d: 'ass',\n dd: '%d ossan',\n M: 'ayowr',\n MM: '%d iyyirn',\n y: 'asgas',\n yy: '%d isgasn',\n },\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return tzmLatn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Central Atlas Tamazight [tzm]\n//! author : Abdel Said : https://github.com/abdelsaid\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var tzm = moment.defineLocale('tzm', {\n months: 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split(\n '_'\n ),\n monthsShort:\n 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split(\n '_'\n ),\n weekdays: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),\n weekdaysShort: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),\n weekdaysMin: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[ⴰⵙⴷⵅ ⴴ] LT',\n nextDay: '[ⴰⵙⴽⴰ ⴴ] LT',\n nextWeek: 'dddd [ⴴ] LT',\n lastDay: '[ⴰⵚⴰⵏⵜ ⴴ] LT',\n lastWeek: 'dddd [ⴴ] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'ⴷⴰⴷⵅ ⵙ ⵢⴰⵏ %s',\n past: 'ⵢⴰⵏ %s',\n s: 'ⵉⵎⵉⴽ',\n ss: '%d ⵉⵎⵉⴽ',\n m: 'ⵎⵉⵏⵓⴺ',\n mm: '%d ⵎⵉⵏⵓⴺ',\n h: 'ⵙⴰⵄⴰ',\n hh: '%d ⵜⴰⵙⵙⴰⵄⵉⵏ',\n d: 'ⴰⵙⵙ',\n dd: '%d oⵙⵙⴰⵏ',\n M: 'ⴰⵢoⵓⵔ',\n MM: '%d ⵉⵢⵢⵉⵔⵏ',\n y: 'ⴰⵙⴳⴰⵙ',\n yy: '%d ⵉⵙⴳⴰⵙⵏ',\n },\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return tzm;\n\n})));\n","//! moment.js locale configuration\n//! locale : Uyghur (China) [ug-cn]\n//! author: boyaq : https://github.com/boyaq\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ugCn = moment.defineLocale('ug-cn', {\n months: 'يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر'.split(\n '_'\n ),\n monthsShort:\n 'يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر'.split(\n '_'\n ),\n weekdays: 'يەكشەنبە_دۈشەنبە_سەيشەنبە_چارشەنبە_پەيشەنبە_جۈمە_شەنبە'.split(\n '_'\n ),\n weekdaysShort: 'يە_دۈ_سە_چا_پە_جۈ_شە'.split('_'),\n weekdaysMin: 'يە_دۈ_سە_چا_پە_جۈ_شە'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'YYYY-يىلىM-ئاينىڭD-كۈنى',\n LLL: 'YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm',\n LLLL: 'dddd، YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm',\n },\n meridiemParse: /يېرىم كېچە|سەھەر|چۈشتىن بۇرۇن|چۈش|چۈشتىن كېيىن|كەچ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (\n meridiem === 'يېرىم كېچە' ||\n meridiem === 'سەھەر' ||\n meridiem === 'چۈشتىن بۇرۇن'\n ) {\n return hour;\n } else if (meridiem === 'چۈشتىن كېيىن' || meridiem === 'كەچ') {\n return hour + 12;\n } else {\n return hour >= 11 ? hour : hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return 'يېرىم كېچە';\n } else if (hm < 900) {\n return 'سەھەر';\n } else if (hm < 1130) {\n return 'چۈشتىن بۇرۇن';\n } else if (hm < 1230) {\n return 'چۈش';\n } else if (hm < 1800) {\n return 'چۈشتىن كېيىن';\n } else {\n return 'كەچ';\n }\n },\n calendar: {\n sameDay: '[بۈگۈن سائەت] LT',\n nextDay: '[ئەتە سائەت] LT',\n nextWeek: '[كېلەركى] dddd [سائەت] LT',\n lastDay: '[تۆنۈگۈن] LT',\n lastWeek: '[ئالدىنقى] dddd [سائەت] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s كېيىن',\n past: '%s بۇرۇن',\n s: 'نەچچە سېكونت',\n ss: '%d سېكونت',\n m: 'بىر مىنۇت',\n mm: '%d مىنۇت',\n h: 'بىر سائەت',\n hh: '%d سائەت',\n d: 'بىر كۈن',\n dd: '%d كۈن',\n M: 'بىر ئاي',\n MM: '%d ئاي',\n y: 'بىر يىل',\n yy: '%d يىل',\n },\n\n dayOfMonthOrdinalParse: /\\d{1,2}(-كۈنى|-ئاي|-ھەپتە)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '-كۈنى';\n case 'w':\n case 'W':\n return number + '-ھەپتە';\n default:\n return number;\n }\n },\n preparse: function (string) {\n return string.replace(/،/g, ',');\n },\n postformat: function (string) {\n return string.replace(/,/g, '،');\n },\n week: {\n // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 1st is the first week of the year.\n },\n });\n\n return ugCn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Ukrainian [uk]\n//! author : zemlanin : https://github.com/zemlanin\n//! Author : Menelion Elensúle : https://github.com/Oire\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function plural(word, num) {\n var forms = word.split('_');\n return num % 10 === 1 && num % 100 !== 11\n ? forms[0]\n : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20)\n ? forms[1]\n : forms[2];\n }\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n var format = {\n ss: withoutSuffix ? 'секунда_секунди_секунд' : 'секунду_секунди_секунд',\n mm: withoutSuffix ? 'хвилина_хвилини_хвилин' : 'хвилину_хвилини_хвилин',\n hh: withoutSuffix ? 'година_години_годин' : 'годину_години_годин',\n dd: 'день_дні_днів',\n MM: 'місяць_місяці_місяців',\n yy: 'рік_роки_років',\n };\n if (key === 'm') {\n return withoutSuffix ? 'хвилина' : 'хвилину';\n } else if (key === 'h') {\n return withoutSuffix ? 'година' : 'годину';\n } else {\n return number + ' ' + plural(format[key], +number);\n }\n }\n function weekdaysCaseReplace(m, format) {\n var weekdays = {\n nominative:\n 'неділя_понеділок_вівторок_середа_четвер_п’ятниця_субота'.split(\n '_'\n ),\n accusative:\n 'неділю_понеділок_вівторок_середу_четвер_п’ятницю_суботу'.split(\n '_'\n ),\n genitive:\n 'неділі_понеділка_вівторка_середи_четверга_п’ятниці_суботи'.split(\n '_'\n ),\n },\n nounCase;\n\n if (m === true) {\n return weekdays['nominative']\n .slice(1, 7)\n .concat(weekdays['nominative'].slice(0, 1));\n }\n if (!m) {\n return weekdays['nominative'];\n }\n\n nounCase = /(\\[[ВвУу]\\]) ?dddd/.test(format)\n ? 'accusative'\n : /\\[?(?:минулої|наступної)? ?\\] ?dddd/.test(format)\n ? 'genitive'\n : 'nominative';\n return weekdays[nounCase][m.day()];\n }\n function processHoursFunction(str) {\n return function () {\n return str + 'о' + (this.hours() === 11 ? 'б' : '') + '] LT';\n };\n }\n\n var uk = moment.defineLocale('uk', {\n months: {\n format: 'січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня'.split(\n '_'\n ),\n standalone:\n 'січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень'.split(\n '_'\n ),\n },\n monthsShort: 'січ_лют_бер_квіт_трав_черв_лип_серп_вер_жовт_лист_груд'.split(\n '_'\n ),\n weekdays: weekdaysCaseReplace,\n weekdaysShort: 'нд_пн_вт_ср_чт_пт_сб'.split('_'),\n weekdaysMin: 'нд_пн_вт_ср_чт_пт_сб'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY р.',\n LLL: 'D MMMM YYYY р., HH:mm',\n LLLL: 'dddd, D MMMM YYYY р., HH:mm',\n },\n calendar: {\n sameDay: processHoursFunction('[Сьогодні '),\n nextDay: processHoursFunction('[Завтра '),\n lastDay: processHoursFunction('[Вчора '),\n nextWeek: processHoursFunction('[У] dddd ['),\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n case 5:\n case 6:\n return processHoursFunction('[Минулої] dddd [').call(this);\n case 1:\n case 2:\n case 4:\n return processHoursFunction('[Минулого] dddd [').call(this);\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'за %s',\n past: '%s тому',\n s: 'декілька секунд',\n ss: relativeTimeWithPlural,\n m: relativeTimeWithPlural,\n mm: relativeTimeWithPlural,\n h: 'годину',\n hh: relativeTimeWithPlural,\n d: 'день',\n dd: relativeTimeWithPlural,\n M: 'місяць',\n MM: relativeTimeWithPlural,\n y: 'рік',\n yy: relativeTimeWithPlural,\n },\n // M. E.: those two are virtually unused but a user might want to implement them for his/her website for some reason\n meridiemParse: /ночі|ранку|дня|вечора/,\n isPM: function (input) {\n return /^(дня|вечора)$/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ночі';\n } else if (hour < 12) {\n return 'ранку';\n } else if (hour < 17) {\n return 'дня';\n } else {\n return 'вечора';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(й|го)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'M':\n case 'd':\n case 'DDD':\n case 'w':\n case 'W':\n return number + '-й';\n case 'D':\n return number + '-го';\n default:\n return number;\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return uk;\n\n})));\n","//! moment.js locale configuration\n//! locale : Urdu [ur]\n//! author : Sawood Alam : https://github.com/ibnesayeed\n//! author : Zack : https://github.com/ZackVision\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months = [\n 'جنوری',\n 'فروری',\n 'مارچ',\n 'اپریل',\n 'مئی',\n 'جون',\n 'جولائی',\n 'اگست',\n 'ستمبر',\n 'اکتوبر',\n 'نومبر',\n 'دسمبر',\n ],\n days = ['اتوار', 'پیر', 'منگل', 'بدھ', 'جمعرات', 'جمعہ', 'ہفتہ'];\n\n var ur = moment.defineLocale('ur', {\n months: months,\n monthsShort: months,\n weekdays: days,\n weekdaysShort: days,\n weekdaysMin: days,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd، D MMMM YYYY HH:mm',\n },\n meridiemParse: /صبح|شام/,\n isPM: function (input) {\n return 'شام' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'صبح';\n }\n return 'شام';\n },\n calendar: {\n sameDay: '[آج بوقت] LT',\n nextDay: '[کل بوقت] LT',\n nextWeek: 'dddd [بوقت] LT',\n lastDay: '[گذشتہ روز بوقت] LT',\n lastWeek: '[گذشتہ] dddd [بوقت] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s بعد',\n past: '%s قبل',\n s: 'چند سیکنڈ',\n ss: '%d سیکنڈ',\n m: 'ایک منٹ',\n mm: '%d منٹ',\n h: 'ایک گھنٹہ',\n hh: '%d گھنٹے',\n d: 'ایک دن',\n dd: '%d دن',\n M: 'ایک ماہ',\n MM: '%d ماہ',\n y: 'ایک سال',\n yy: '%d سال',\n },\n preparse: function (string) {\n return string.replace(/،/g, ',');\n },\n postformat: function (string) {\n return string.replace(/,/g, '،');\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return ur;\n\n})));\n","//! moment.js locale configuration\n//! locale : Uzbek Latin [uz-latn]\n//! author : Rasulbek Mirzayev : github.com/Rasulbeeek\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var uzLatn = moment.defineLocale('uz-latn', {\n months: 'Yanvar_Fevral_Mart_Aprel_May_Iyun_Iyul_Avgust_Sentabr_Oktabr_Noyabr_Dekabr'.split(\n '_'\n ),\n monthsShort: 'Yan_Fev_Mar_Apr_May_Iyun_Iyul_Avg_Sen_Okt_Noy_Dek'.split('_'),\n weekdays:\n 'Yakshanba_Dushanba_Seshanba_Chorshanba_Payshanba_Juma_Shanba'.split(\n '_'\n ),\n weekdaysShort: 'Yak_Dush_Sesh_Chor_Pay_Jum_Shan'.split('_'),\n weekdaysMin: 'Ya_Du_Se_Cho_Pa_Ju_Sha'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'D MMMM YYYY, dddd HH:mm',\n },\n calendar: {\n sameDay: '[Bugun soat] LT [da]',\n nextDay: '[Ertaga] LT [da]',\n nextWeek: 'dddd [kuni soat] LT [da]',\n lastDay: '[Kecha soat] LT [da]',\n lastWeek: \"[O'tgan] dddd [kuni soat] LT [da]\",\n sameElse: 'L',\n },\n relativeTime: {\n future: 'Yaqin %s ichida',\n past: 'Bir necha %s oldin',\n s: 'soniya',\n ss: '%d soniya',\n m: 'bir daqiqa',\n mm: '%d daqiqa',\n h: 'bir soat',\n hh: '%d soat',\n d: 'bir kun',\n dd: '%d kun',\n M: 'bir oy',\n MM: '%d oy',\n y: 'bir yil',\n yy: '%d yil',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return uzLatn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Uzbek [uz]\n//! author : Sardor Muminov : https://github.com/muminoff\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var uz = moment.defineLocale('uz', {\n months: 'январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр'.split(\n '_'\n ),\n monthsShort: 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split('_'),\n weekdays: 'Якшанба_Душанба_Сешанба_Чоршанба_Пайшанба_Жума_Шанба'.split('_'),\n weekdaysShort: 'Якш_Душ_Сеш_Чор_Пай_Жум_Шан'.split('_'),\n weekdaysMin: 'Як_Ду_Се_Чо_Па_Жу_Ша'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'D MMMM YYYY, dddd HH:mm',\n },\n calendar: {\n sameDay: '[Бугун соат] LT [да]',\n nextDay: '[Эртага] LT [да]',\n nextWeek: 'dddd [куни соат] LT [да]',\n lastDay: '[Кеча соат] LT [да]',\n lastWeek: '[Утган] dddd [куни соат] LT [да]',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'Якин %s ичида',\n past: 'Бир неча %s олдин',\n s: 'фурсат',\n ss: '%d фурсат',\n m: 'бир дакика',\n mm: '%d дакика',\n h: 'бир соат',\n hh: '%d соат',\n d: 'бир кун',\n dd: '%d кун',\n M: 'бир ой',\n MM: '%d ой',\n y: 'бир йил',\n yy: '%d йил',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return uz;\n\n})));\n","//! moment.js locale configuration\n//! locale : Vietnamese [vi]\n//! author : Bang Nguyen : https://github.com/bangnk\n//! author : Chien Kira : https://github.com/chienkira\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var vi = moment.defineLocale('vi', {\n months: 'tháng 1_tháng 2_tháng 3_tháng 4_tháng 5_tháng 6_tháng 7_tháng 8_tháng 9_tháng 10_tháng 11_tháng 12'.split(\n '_'\n ),\n monthsShort:\n 'Thg 01_Thg 02_Thg 03_Thg 04_Thg 05_Thg 06_Thg 07_Thg 08_Thg 09_Thg 10_Thg 11_Thg 12'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'chủ nhật_thứ hai_thứ ba_thứ tư_thứ năm_thứ sáu_thứ bảy'.split(\n '_'\n ),\n weekdaysShort: 'CN_T2_T3_T4_T5_T6_T7'.split('_'),\n weekdaysMin: 'CN_T2_T3_T4_T5_T6_T7'.split('_'),\n weekdaysParseExact: true,\n meridiemParse: /sa|ch/i,\n isPM: function (input) {\n return /^ch$/i.test(input);\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower ? 'sa' : 'SA';\n } else {\n return isLower ? 'ch' : 'CH';\n }\n },\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM [năm] YYYY',\n LLL: 'D MMMM [năm] YYYY HH:mm',\n LLLL: 'dddd, D MMMM [năm] YYYY HH:mm',\n l: 'DD/M/YYYY',\n ll: 'D MMM YYYY',\n lll: 'D MMM YYYY HH:mm',\n llll: 'ddd, D MMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Hôm nay lúc] LT',\n nextDay: '[Ngày mai lúc] LT',\n nextWeek: 'dddd [tuần tới lúc] LT',\n lastDay: '[Hôm qua lúc] LT',\n lastWeek: 'dddd [tuần trước lúc] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s tới',\n past: '%s trước',\n s: 'vài giây',\n ss: '%d giây',\n m: 'một phút',\n mm: '%d phút',\n h: 'một giờ',\n hh: '%d giờ',\n d: 'một ngày',\n dd: '%d ngày',\n w: 'một tuần',\n ww: '%d tuần',\n M: 'một tháng',\n MM: '%d tháng',\n y: 'một năm',\n yy: '%d năm',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal: function (number) {\n return number;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return vi;\n\n})));\n","//! moment.js locale configuration\n//! locale : Pseudo [x-pseudo]\n//! author : Andrew Hood : https://github.com/andrewhood125\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var xPseudo = moment.defineLocale('x-pseudo', {\n months: 'J~áñúá~rý_F~ébrú~árý_~Márc~h_Áp~ríl_~Máý_~Júñé~_Júl~ý_Áú~gúst~_Sép~témb~ér_Ó~ctób~ér_Ñ~óvém~bér_~Décé~mbér'.split(\n '_'\n ),\n monthsShort:\n 'J~áñ_~Féb_~Már_~Ápr_~Máý_~Júñ_~Júl_~Áúg_~Sép_~Óct_~Ñóv_~Déc'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays:\n 'S~úñdá~ý_Mó~ñdáý~_Túé~sdáý~_Wéd~ñésd~áý_T~húrs~dáý_~Fríd~áý_S~átúr~dáý'.split(\n '_'\n ),\n weekdaysShort: 'S~úñ_~Móñ_~Túé_~Wéd_~Thú_~Frí_~Sát'.split('_'),\n weekdaysMin: 'S~ú_Mó~_Tú_~Wé_T~h_Fr~_Sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[T~ódá~ý át] LT',\n nextDay: '[T~ómó~rró~w át] LT',\n nextWeek: 'dddd [át] LT',\n lastDay: '[Ý~ést~érdá~ý át] LT',\n lastWeek: '[L~ást] dddd [át] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'í~ñ %s',\n past: '%s á~gó',\n s: 'á ~féw ~sécó~ñds',\n ss: '%d s~écóñ~ds',\n m: 'á ~míñ~úté',\n mm: '%d m~íñú~tés',\n h: 'á~ñ hó~úr',\n hh: '%d h~óúrs',\n d: 'á ~dáý',\n dd: '%d d~áýs',\n M: 'á ~móñ~th',\n MM: '%d m~óñt~hs',\n y: 'á ~ýéár',\n yy: '%d ý~éárs',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return xPseudo;\n\n})));\n","//! moment.js locale configuration\n//! locale : Yoruba Nigeria [yo]\n//! author : Atolagbe Abisoye : https://github.com/andela-batolagbe\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var yo = moment.defineLocale('yo', {\n months: 'Sẹ́rẹ́_Èrèlè_Ẹrẹ̀nà_Ìgbé_Èbibi_Òkùdu_Agẹmo_Ògún_Owewe_Ọ̀wàrà_Bélú_Ọ̀pẹ̀̀'.split(\n '_'\n ),\n monthsShort: 'Sẹ́r_Èrl_Ẹrn_Ìgb_Èbi_Òkù_Agẹ_Ògú_Owe_Ọ̀wà_Bél_Ọ̀pẹ̀̀'.split('_'),\n weekdays: 'Àìkú_Ajé_Ìsẹ́gun_Ọjọ́rú_Ọjọ́bọ_Ẹtì_Àbámẹ́ta'.split('_'),\n weekdaysShort: 'Àìk_Ajé_Ìsẹ́_Ọjr_Ọjb_Ẹtì_Àbá'.split('_'),\n weekdaysMin: 'Àì_Aj_Ìs_Ọr_Ọb_Ẹt_Àb'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendar: {\n sameDay: '[Ònì ni] LT',\n nextDay: '[Ọ̀la ni] LT',\n nextWeek: \"dddd [Ọsẹ̀ tón'bọ] [ni] LT\",\n lastDay: '[Àna ni] LT',\n lastWeek: 'dddd [Ọsẹ̀ tólọ́] [ni] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'ní %s',\n past: '%s kọjá',\n s: 'ìsẹjú aayá die',\n ss: 'aayá %d',\n m: 'ìsẹjú kan',\n mm: 'ìsẹjú %d',\n h: 'wákati kan',\n hh: 'wákati %d',\n d: 'ọjọ́ kan',\n dd: 'ọjọ́ %d',\n M: 'osù kan',\n MM: 'osù %d',\n y: 'ọdún kan',\n yy: 'ọdún %d',\n },\n dayOfMonthOrdinalParse: /ọjọ́\\s\\d{1,2}/,\n ordinal: 'ọjọ́ %d',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return yo;\n\n})));\n","//! moment.js locale configuration\n//! locale : Chinese (China) [zh-cn]\n//! author : suupic : https://github.com/suupic\n//! author : Zeno Zeng : https://github.com/zenozeng\n//! author : uu109 : https://github.com/uu109\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var zhCn = moment.defineLocale('zh-cn', {\n months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(\n '_'\n ),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n '_'\n ),\n weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\n weekdaysShort: '周日_周一_周二_周三_周四_周五_周六'.split('_'),\n weekdaysMin: '日_一_二_三_四_五_六'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYY年M月D日',\n LLL: 'YYYY年M月D日Ah点mm分',\n LLLL: 'YYYY年M月D日ddddAh点mm分',\n l: 'YYYY/M/D',\n ll: 'YYYY年M月D日',\n lll: 'YYYY年M月D日 HH:mm',\n llll: 'YYYY年M月D日dddd HH:mm',\n },\n meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {\n return hour;\n } else if (meridiem === '下午' || meridiem === '晚上') {\n return hour + 12;\n } else {\n // '中午'\n return hour >= 11 ? hour : hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return '凌晨';\n } else if (hm < 900) {\n return '早上';\n } else if (hm < 1130) {\n return '上午';\n } else if (hm < 1230) {\n return '中午';\n } else if (hm < 1800) {\n return '下午';\n } else {\n return '晚上';\n }\n },\n calendar: {\n sameDay: '[今天]LT',\n nextDay: '[明天]LT',\n nextWeek: function (now) {\n if (now.week() !== this.week()) {\n return '[下]dddLT';\n } else {\n return '[本]dddLT';\n }\n },\n lastDay: '[昨天]LT',\n lastWeek: function (now) {\n if (this.week() !== now.week()) {\n return '[上]dddLT';\n } else {\n return '[本]dddLT';\n }\n },\n sameElse: 'L',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(日|月|周)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '日';\n case 'M':\n return number + '月';\n case 'w':\n case 'W':\n return number + '周';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s后',\n past: '%s前',\n s: '几秒',\n ss: '%d 秒',\n m: '1 分钟',\n mm: '%d 分钟',\n h: '1 小时',\n hh: '%d 小时',\n d: '1 天',\n dd: '%d 天',\n w: '1 周',\n ww: '%d 周',\n M: '1 个月',\n MM: '%d 个月',\n y: '1 年',\n yy: '%d 年',\n },\n week: {\n // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return zhCn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Chinese (Hong Kong) [zh-hk]\n//! author : Ben : https://github.com/ben-lin\n//! author : Chris Lam : https://github.com/hehachris\n//! author : Konstantin : https://github.com/skfd\n//! author : Anthony : https://github.com/anthonylau\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var zhHk = moment.defineLocale('zh-hk', {\n months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(\n '_'\n ),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n '_'\n ),\n weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\n weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'),\n weekdaysMin: '日_一_二_三_四_五_六'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYY年M月D日',\n LLL: 'YYYY年M月D日 HH:mm',\n LLLL: 'YYYY年M月D日dddd HH:mm',\n l: 'YYYY/M/D',\n ll: 'YYYY年M月D日',\n lll: 'YYYY年M月D日 HH:mm',\n llll: 'YYYY年M月D日dddd HH:mm',\n },\n meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {\n return hour;\n } else if (meridiem === '中午') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === '下午' || meridiem === '晚上') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return '凌晨';\n } else if (hm < 900) {\n return '早上';\n } else if (hm < 1200) {\n return '上午';\n } else if (hm === 1200) {\n return '中午';\n } else if (hm < 1800) {\n return '下午';\n } else {\n return '晚上';\n }\n },\n calendar: {\n sameDay: '[今天]LT',\n nextDay: '[明天]LT',\n nextWeek: '[下]ddddLT',\n lastDay: '[昨天]LT',\n lastWeek: '[上]ddddLT',\n sameElse: 'L',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(日|月|週)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '日';\n case 'M':\n return number + '月';\n case 'w':\n case 'W':\n return number + '週';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s後',\n past: '%s前',\n s: '幾秒',\n ss: '%d 秒',\n m: '1 分鐘',\n mm: '%d 分鐘',\n h: '1 小時',\n hh: '%d 小時',\n d: '1 天',\n dd: '%d 天',\n M: '1 個月',\n MM: '%d 個月',\n y: '1 年',\n yy: '%d 年',\n },\n });\n\n return zhHk;\n\n})));\n","//! moment.js locale configuration\n//! locale : Chinese (Macau) [zh-mo]\n//! author : Ben : https://github.com/ben-lin\n//! author : Chris Lam : https://github.com/hehachris\n//! author : Tan Yuanhong : https://github.com/le0tan\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var zhMo = moment.defineLocale('zh-mo', {\n months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(\n '_'\n ),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n '_'\n ),\n weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\n weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'),\n weekdaysMin: '日_一_二_三_四_五_六'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'YYYY年M月D日',\n LLL: 'YYYY年M月D日 HH:mm',\n LLLL: 'YYYY年M月D日dddd HH:mm',\n l: 'D/M/YYYY',\n ll: 'YYYY年M月D日',\n lll: 'YYYY年M月D日 HH:mm',\n llll: 'YYYY年M月D日dddd HH:mm',\n },\n meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {\n return hour;\n } else if (meridiem === '中午') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === '下午' || meridiem === '晚上') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return '凌晨';\n } else if (hm < 900) {\n return '早上';\n } else if (hm < 1130) {\n return '上午';\n } else if (hm < 1230) {\n return '中午';\n } else if (hm < 1800) {\n return '下午';\n } else {\n return '晚上';\n }\n },\n calendar: {\n sameDay: '[今天] LT',\n nextDay: '[明天] LT',\n nextWeek: '[下]dddd LT',\n lastDay: '[昨天] LT',\n lastWeek: '[上]dddd LT',\n sameElse: 'L',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(日|月|週)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '日';\n case 'M':\n return number + '月';\n case 'w':\n case 'W':\n return number + '週';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s內',\n past: '%s前',\n s: '幾秒',\n ss: '%d 秒',\n m: '1 分鐘',\n mm: '%d 分鐘',\n h: '1 小時',\n hh: '%d 小時',\n d: '1 天',\n dd: '%d 天',\n M: '1 個月',\n MM: '%d 個月',\n y: '1 年',\n yy: '%d 年',\n },\n });\n\n return zhMo;\n\n})));\n","//! moment.js locale configuration\n//! locale : Chinese (Taiwan) [zh-tw]\n//! author : Ben : https://github.com/ben-lin\n//! author : Chris Lam : https://github.com/hehachris\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var zhTw = moment.defineLocale('zh-tw', {\n months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(\n '_'\n ),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n '_'\n ),\n weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\n weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'),\n weekdaysMin: '日_一_二_三_四_五_六'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYY年M月D日',\n LLL: 'YYYY年M月D日 HH:mm',\n LLLL: 'YYYY年M月D日dddd HH:mm',\n l: 'YYYY/M/D',\n ll: 'YYYY年M月D日',\n lll: 'YYYY年M月D日 HH:mm',\n llll: 'YYYY年M月D日dddd HH:mm',\n },\n meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {\n return hour;\n } else if (meridiem === '中午') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === '下午' || meridiem === '晚上') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return '凌晨';\n } else if (hm < 900) {\n return '早上';\n } else if (hm < 1130) {\n return '上午';\n } else if (hm < 1230) {\n return '中午';\n } else if (hm < 1800) {\n return '下午';\n } else {\n return '晚上';\n }\n },\n calendar: {\n sameDay: '[今天] LT',\n nextDay: '[明天] LT',\n nextWeek: '[下]dddd LT',\n lastDay: '[昨天] LT',\n lastWeek: '[上]dddd LT',\n sameElse: 'L',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(日|月|週)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '日';\n case 'M':\n return number + '月';\n case 'w':\n case 'W':\n return number + '週';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s後',\n past: '%s前',\n s: '幾秒',\n ss: '%d 秒',\n m: '1 分鐘',\n mm: '%d 分鐘',\n h: '1 小時',\n hh: '%d 小時',\n d: '1 天',\n dd: '%d 天',\n M: '1 個月',\n MM: '%d 個月',\n y: '1 年',\n yy: '%d 年',\n },\n });\n\n return zhTw;\n\n})));\n","var map = {\n\t\"./af\": 2786,\n\t\"./af.js\": 2786,\n\t\"./ar\": 867,\n\t\"./ar-dz\": 4130,\n\t\"./ar-dz.js\": 4130,\n\t\"./ar-kw\": 6135,\n\t\"./ar-kw.js\": 6135,\n\t\"./ar-ly\": 6440,\n\t\"./ar-ly.js\": 6440,\n\t\"./ar-ma\": 7702,\n\t\"./ar-ma.js\": 7702,\n\t\"./ar-ps\": 315,\n\t\"./ar-ps.js\": 315,\n\t\"./ar-sa\": 6040,\n\t\"./ar-sa.js\": 6040,\n\t\"./ar-tn\": 7100,\n\t\"./ar-tn.js\": 7100,\n\t\"./ar.js\": 867,\n\t\"./az\": 1083,\n\t\"./az.js\": 1083,\n\t\"./be\": 9808,\n\t\"./be.js\": 9808,\n\t\"./bg\": 8338,\n\t\"./bg.js\": 8338,\n\t\"./bm\": 7438,\n\t\"./bm.js\": 7438,\n\t\"./bn\": 8905,\n\t\"./bn-bd\": 6225,\n\t\"./bn-bd.js\": 6225,\n\t\"./bn.js\": 8905,\n\t\"./bo\": 1560,\n\t\"./bo.js\": 1560,\n\t\"./br\": 1278,\n\t\"./br.js\": 1278,\n\t\"./bs\": 622,\n\t\"./bs.js\": 622,\n\t\"./ca\": 2468,\n\t\"./ca.js\": 2468,\n\t\"./cs\": 5822,\n\t\"./cs.js\": 5822,\n\t\"./cv\": 877,\n\t\"./cv.js\": 877,\n\t\"./cy\": 7373,\n\t\"./cy.js\": 7373,\n\t\"./da\": 4780,\n\t\"./da.js\": 4780,\n\t\"./de\": 9740,\n\t\"./de-at\": 217,\n\t\"./de-at.js\": 217,\n\t\"./de-ch\": 894,\n\t\"./de-ch.js\": 894,\n\t\"./de.js\": 9740,\n\t\"./dv\": 5300,\n\t\"./dv.js\": 5300,\n\t\"./el\": 837,\n\t\"./el.js\": 837,\n\t\"./en-au\": 8348,\n\t\"./en-au.js\": 8348,\n\t\"./en-ca\": 7925,\n\t\"./en-ca.js\": 7925,\n\t\"./en-gb\": 2243,\n\t\"./en-gb.js\": 2243,\n\t\"./en-ie\": 6436,\n\t\"./en-ie.js\": 6436,\n\t\"./en-il\": 7207,\n\t\"./en-il.js\": 7207,\n\t\"./en-in\": 4175,\n\t\"./en-in.js\": 4175,\n\t\"./en-nz\": 6319,\n\t\"./en-nz.js\": 6319,\n\t\"./en-sg\": 1662,\n\t\"./en-sg.js\": 1662,\n\t\"./eo\": 2915,\n\t\"./eo.js\": 2915,\n\t\"./es\": 5655,\n\t\"./es-do\": 5251,\n\t\"./es-do.js\": 5251,\n\t\"./es-mx\": 6112,\n\t\"./es-mx.js\": 6112,\n\t\"./es-us\": 1146,\n\t\"./es-us.js\": 1146,\n\t\"./es.js\": 5655,\n\t\"./et\": 5603,\n\t\"./et.js\": 5603,\n\t\"./eu\": 7763,\n\t\"./eu.js\": 7763,\n\t\"./fa\": 6959,\n\t\"./fa.js\": 6959,\n\t\"./fi\": 1897,\n\t\"./fi.js\": 1897,\n\t\"./fil\": 2549,\n\t\"./fil.js\": 2549,\n\t\"./fo\": 4694,\n\t\"./fo.js\": 4694,\n\t\"./fr\": 4470,\n\t\"./fr-ca\": 3049,\n\t\"./fr-ca.js\": 3049,\n\t\"./fr-ch\": 2330,\n\t\"./fr-ch.js\": 2330,\n\t\"./fr.js\": 4470,\n\t\"./fy\": 5044,\n\t\"./fy.js\": 5044,\n\t\"./ga\": 9295,\n\t\"./ga.js\": 9295,\n\t\"./gd\": 2101,\n\t\"./gd.js\": 2101,\n\t\"./gl\": 8794,\n\t\"./gl.js\": 8794,\n\t\"./gom-deva\": 7884,\n\t\"./gom-deva.js\": 7884,\n\t\"./gom-latn\": 3168,\n\t\"./gom-latn.js\": 3168,\n\t\"./gu\": 5349,\n\t\"./gu.js\": 5349,\n\t\"./he\": 4206,\n\t\"./he.js\": 4206,\n\t\"./hi\": 94,\n\t\"./hi.js\": 94,\n\t\"./hr\": 316,\n\t\"./hr.js\": 316,\n\t\"./hu\": 2138,\n\t\"./hu.js\": 2138,\n\t\"./hy-am\": 1423,\n\t\"./hy-am.js\": 1423,\n\t\"./id\": 9218,\n\t\"./id.js\": 9218,\n\t\"./is\": 135,\n\t\"./is.js\": 135,\n\t\"./it\": 626,\n\t\"./it-ch\": 150,\n\t\"./it-ch.js\": 150,\n\t\"./it.js\": 626,\n\t\"./ja\": 9183,\n\t\"./ja.js\": 9183,\n\t\"./jv\": 4286,\n\t\"./jv.js\": 4286,\n\t\"./ka\": 2105,\n\t\"./ka.js\": 2105,\n\t\"./kk\": 7772,\n\t\"./kk.js\": 7772,\n\t\"./km\": 8758,\n\t\"./km.js\": 8758,\n\t\"./kn\": 9282,\n\t\"./kn.js\": 9282,\n\t\"./ko\": 3730,\n\t\"./ko.js\": 3730,\n\t\"./ku\": 1408,\n\t\"./ku-kmr\": 563,\n\t\"./ku-kmr.js\": 563,\n\t\"./ku.js\": 1408,\n\t\"./ky\": 3291,\n\t\"./ky.js\": 3291,\n\t\"./lb\": 6841,\n\t\"./lb.js\": 6841,\n\t\"./lo\": 5466,\n\t\"./lo.js\": 5466,\n\t\"./lt\": 7010,\n\t\"./lt.js\": 7010,\n\t\"./lv\": 7595,\n\t\"./lv.js\": 7595,\n\t\"./me\": 9861,\n\t\"./me.js\": 9861,\n\t\"./mi\": 5493,\n\t\"./mi.js\": 5493,\n\t\"./mk\": 5966,\n\t\"./mk.js\": 5966,\n\t\"./ml\": 7341,\n\t\"./ml.js\": 7341,\n\t\"./mn\": 5115,\n\t\"./mn.js\": 5115,\n\t\"./mr\": 370,\n\t\"./mr.js\": 370,\n\t\"./ms\": 9847,\n\t\"./ms-my\": 1237,\n\t\"./ms-my.js\": 1237,\n\t\"./ms.js\": 9847,\n\t\"./mt\": 2126,\n\t\"./mt.js\": 2126,\n\t\"./my\": 6165,\n\t\"./my.js\": 6165,\n\t\"./nb\": 4924,\n\t\"./nb.js\": 4924,\n\t\"./ne\": 6744,\n\t\"./ne.js\": 6744,\n\t\"./nl\": 3901,\n\t\"./nl-be\": 9814,\n\t\"./nl-be.js\": 9814,\n\t\"./nl.js\": 3901,\n\t\"./nn\": 3877,\n\t\"./nn.js\": 3877,\n\t\"./oc-lnc\": 2135,\n\t\"./oc-lnc.js\": 2135,\n\t\"./pa-in\": 5858,\n\t\"./pa-in.js\": 5858,\n\t\"./pl\": 4495,\n\t\"./pl.js\": 4495,\n\t\"./pt\": 9520,\n\t\"./pt-br\": 7971,\n\t\"./pt-br.js\": 7971,\n\t\"./pt.js\": 9520,\n\t\"./ro\": 6459,\n\t\"./ro.js\": 6459,\n\t\"./ru\": 1793,\n\t\"./ru.js\": 1793,\n\t\"./sd\": 950,\n\t\"./sd.js\": 950,\n\t\"./se\": 490,\n\t\"./se.js\": 490,\n\t\"./si\": 124,\n\t\"./si.js\": 124,\n\t\"./sk\": 4249,\n\t\"./sk.js\": 4249,\n\t\"./sl\": 4985,\n\t\"./sl.js\": 4985,\n\t\"./sq\": 1104,\n\t\"./sq.js\": 1104,\n\t\"./sr\": 9131,\n\t\"./sr-cyrl\": 9915,\n\t\"./sr-cyrl.js\": 9915,\n\t\"./sr.js\": 9131,\n\t\"./ss\": 5893,\n\t\"./ss.js\": 5893,\n\t\"./sv\": 8760,\n\t\"./sv.js\": 8760,\n\t\"./sw\": 1172,\n\t\"./sw.js\": 1172,\n\t\"./ta\": 7333,\n\t\"./ta.js\": 7333,\n\t\"./te\": 3110,\n\t\"./te.js\": 3110,\n\t\"./tet\": 2095,\n\t\"./tet.js\": 2095,\n\t\"./tg\": 7321,\n\t\"./tg.js\": 7321,\n\t\"./th\": 9041,\n\t\"./th.js\": 9041,\n\t\"./tk\": 9005,\n\t\"./tk.js\": 9005,\n\t\"./tl-ph\": 5768,\n\t\"./tl-ph.js\": 5768,\n\t\"./tlh\": 9444,\n\t\"./tlh.js\": 9444,\n\t\"./tr\": 2397,\n\t\"./tr.js\": 2397,\n\t\"./tzl\": 8254,\n\t\"./tzl.js\": 8254,\n\t\"./tzm\": 1106,\n\t\"./tzm-latn\": 699,\n\t\"./tzm-latn.js\": 699,\n\t\"./tzm.js\": 1106,\n\t\"./ug-cn\": 9288,\n\t\"./ug-cn.js\": 9288,\n\t\"./uk\": 7691,\n\t\"./uk.js\": 7691,\n\t\"./ur\": 3795,\n\t\"./ur.js\": 3795,\n\t\"./uz\": 6791,\n\t\"./uz-latn\": 588,\n\t\"./uz-latn.js\": 588,\n\t\"./uz.js\": 6791,\n\t\"./vi\": 5666,\n\t\"./vi.js\": 5666,\n\t\"./x-pseudo\": 4378,\n\t\"./x-pseudo.js\": 4378,\n\t\"./yo\": 5805,\n\t\"./yo.js\": 5805,\n\t\"./zh-cn\": 3839,\n\t\"./zh-cn.js\": 3839,\n\t\"./zh-hk\": 5726,\n\t\"./zh-hk.js\": 5726,\n\t\"./zh-mo\": 9807,\n\t\"./zh-mo.js\": 9807,\n\t\"./zh-tw\": 4152,\n\t\"./zh-tw.js\": 4152\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 6700;","//! moment.js\n//! version : 2.30.1\n//! authors : Tim Wood, Iskren Chernev, Moment.js contributors\n//! license : MIT\n//! momentjs.com\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n global.moment = factory()\n}(this, (function () { 'use strict';\n\n var hookCallback;\n\n function hooks() {\n return hookCallback.apply(null, arguments);\n }\n\n // This is done to register the method called with moment()\n // without creating circular dependencies.\n function setHookCallback(callback) {\n hookCallback = callback;\n }\n\n function isArray(input) {\n return (\n input instanceof Array ||\n Object.prototype.toString.call(input) === '[object Array]'\n );\n }\n\n function isObject(input) {\n // IE8 will treat undefined and null as object if it wasn't for\n // input != null\n return (\n input != null &&\n Object.prototype.toString.call(input) === '[object Object]'\n );\n }\n\n function hasOwnProp(a, b) {\n return Object.prototype.hasOwnProperty.call(a, b);\n }\n\n function isObjectEmpty(obj) {\n if (Object.getOwnPropertyNames) {\n return Object.getOwnPropertyNames(obj).length === 0;\n } else {\n var k;\n for (k in obj) {\n if (hasOwnProp(obj, k)) {\n return false;\n }\n }\n return true;\n }\n }\n\n function isUndefined(input) {\n return input === void 0;\n }\n\n function isNumber(input) {\n return (\n typeof input === 'number' ||\n Object.prototype.toString.call(input) === '[object Number]'\n );\n }\n\n function isDate(input) {\n return (\n input instanceof Date ||\n Object.prototype.toString.call(input) === '[object Date]'\n );\n }\n\n function map(arr, fn) {\n var res = [],\n i,\n arrLen = arr.length;\n for (i = 0; i < arrLen; ++i) {\n res.push(fn(arr[i], i));\n }\n return res;\n }\n\n function extend(a, b) {\n for (var i in b) {\n if (hasOwnProp(b, i)) {\n a[i] = b[i];\n }\n }\n\n if (hasOwnProp(b, 'toString')) {\n a.toString = b.toString;\n }\n\n if (hasOwnProp(b, 'valueOf')) {\n a.valueOf = b.valueOf;\n }\n\n return a;\n }\n\n function createUTC(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, true).utc();\n }\n\n function defaultParsingFlags() {\n // We need to deep clone this object.\n return {\n empty: false,\n unusedTokens: [],\n unusedInput: [],\n overflow: -2,\n charsLeftOver: 0,\n nullInput: false,\n invalidEra: null,\n invalidMonth: null,\n invalidFormat: false,\n userInvalidated: false,\n iso: false,\n parsedDateParts: [],\n era: null,\n meridiem: null,\n rfc2822: false,\n weekdayMismatch: false,\n };\n }\n\n function getParsingFlags(m) {\n if (m._pf == null) {\n m._pf = defaultParsingFlags();\n }\n return m._pf;\n }\n\n var some;\n if (Array.prototype.some) {\n some = Array.prototype.some;\n } else {\n some = function (fun) {\n var t = Object(this),\n len = t.length >>> 0,\n i;\n\n for (i = 0; i < len; i++) {\n if (i in t && fun.call(this, t[i], i, t)) {\n return true;\n }\n }\n\n return false;\n };\n }\n\n function isValid(m) {\n var flags = null,\n parsedParts = false,\n isNowValid = m._d && !isNaN(m._d.getTime());\n if (isNowValid) {\n flags = getParsingFlags(m);\n parsedParts = some.call(flags.parsedDateParts, function (i) {\n return i != null;\n });\n isNowValid =\n flags.overflow < 0 &&\n !flags.empty &&\n !flags.invalidEra &&\n !flags.invalidMonth &&\n !flags.invalidWeekday &&\n !flags.weekdayMismatch &&\n !flags.nullInput &&\n !flags.invalidFormat &&\n !flags.userInvalidated &&\n (!flags.meridiem || (flags.meridiem && parsedParts));\n if (m._strict) {\n isNowValid =\n isNowValid &&\n flags.charsLeftOver === 0 &&\n flags.unusedTokens.length === 0 &&\n flags.bigHour === undefined;\n }\n }\n if (Object.isFrozen == null || !Object.isFrozen(m)) {\n m._isValid = isNowValid;\n } else {\n return isNowValid;\n }\n return m._isValid;\n }\n\n function createInvalid(flags) {\n var m = createUTC(NaN);\n if (flags != null) {\n extend(getParsingFlags(m), flags);\n } else {\n getParsingFlags(m).userInvalidated = true;\n }\n\n return m;\n }\n\n // Plugins that add properties should also add the key here (null value),\n // so we can properly clone ourselves.\n var momentProperties = (hooks.momentProperties = []),\n updateInProgress = false;\n\n function copyConfig(to, from) {\n var i,\n prop,\n val,\n momentPropertiesLen = momentProperties.length;\n\n if (!isUndefined(from._isAMomentObject)) {\n to._isAMomentObject = from._isAMomentObject;\n }\n if (!isUndefined(from._i)) {\n to._i = from._i;\n }\n if (!isUndefined(from._f)) {\n to._f = from._f;\n }\n if (!isUndefined(from._l)) {\n to._l = from._l;\n }\n if (!isUndefined(from._strict)) {\n to._strict = from._strict;\n }\n if (!isUndefined(from._tzm)) {\n to._tzm = from._tzm;\n }\n if (!isUndefined(from._isUTC)) {\n to._isUTC = from._isUTC;\n }\n if (!isUndefined(from._offset)) {\n to._offset = from._offset;\n }\n if (!isUndefined(from._pf)) {\n to._pf = getParsingFlags(from);\n }\n if (!isUndefined(from._locale)) {\n to._locale = from._locale;\n }\n\n if (momentPropertiesLen > 0) {\n for (i = 0; i < momentPropertiesLen; i++) {\n prop = momentProperties[i];\n val = from[prop];\n if (!isUndefined(val)) {\n to[prop] = val;\n }\n }\n }\n\n return to;\n }\n\n // Moment prototype object\n function Moment(config) {\n copyConfig(this, config);\n this._d = new Date(config._d != null ? config._d.getTime() : NaN);\n if (!this.isValid()) {\n this._d = new Date(NaN);\n }\n // Prevent infinite loop in case updateOffset creates new moment\n // objects.\n if (updateInProgress === false) {\n updateInProgress = true;\n hooks.updateOffset(this);\n updateInProgress = false;\n }\n }\n\n function isMoment(obj) {\n return (\n obj instanceof Moment || (obj != null && obj._isAMomentObject != null)\n );\n }\n\n function warn(msg) {\n if (\n hooks.suppressDeprecationWarnings === false &&\n typeof console !== 'undefined' &&\n console.warn\n ) {\n console.warn('Deprecation warning: ' + msg);\n }\n }\n\n function deprecate(msg, fn) {\n var firstTime = true;\n\n return extend(function () {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(null, msg);\n }\n if (firstTime) {\n var args = [],\n arg,\n i,\n key,\n argLen = arguments.length;\n for (i = 0; i < argLen; i++) {\n arg = '';\n if (typeof arguments[i] === 'object') {\n arg += '\\n[' + i + '] ';\n for (key in arguments[0]) {\n if (hasOwnProp(arguments[0], key)) {\n arg += key + ': ' + arguments[0][key] + ', ';\n }\n }\n arg = arg.slice(0, -2); // Remove trailing comma and space\n } else {\n arg = arguments[i];\n }\n args.push(arg);\n }\n warn(\n msg +\n '\\nArguments: ' +\n Array.prototype.slice.call(args).join('') +\n '\\n' +\n new Error().stack\n );\n firstTime = false;\n }\n return fn.apply(this, arguments);\n }, fn);\n }\n\n var deprecations = {};\n\n function deprecateSimple(name, msg) {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(name, msg);\n }\n if (!deprecations[name]) {\n warn(msg);\n deprecations[name] = true;\n }\n }\n\n hooks.suppressDeprecationWarnings = false;\n hooks.deprecationHandler = null;\n\n function isFunction(input) {\n return (\n (typeof Function !== 'undefined' && input instanceof Function) ||\n Object.prototype.toString.call(input) === '[object Function]'\n );\n }\n\n function set(config) {\n var prop, i;\n for (i in config) {\n if (hasOwnProp(config, i)) {\n prop = config[i];\n if (isFunction(prop)) {\n this[i] = prop;\n } else {\n this['_' + i] = prop;\n }\n }\n }\n this._config = config;\n // Lenient ordinal parsing accepts just a number in addition to\n // number + (possibly) stuff coming from _dayOfMonthOrdinalParse.\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n this._dayOfMonthOrdinalParseLenient = new RegExp(\n (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) +\n '|' +\n /\\d{1,2}/.source\n );\n }\n\n function mergeConfigs(parentConfig, childConfig) {\n var res = extend({}, parentConfig),\n prop;\n for (prop in childConfig) {\n if (hasOwnProp(childConfig, prop)) {\n if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) {\n res[prop] = {};\n extend(res[prop], parentConfig[prop]);\n extend(res[prop], childConfig[prop]);\n } else if (childConfig[prop] != null) {\n res[prop] = childConfig[prop];\n } else {\n delete res[prop];\n }\n }\n }\n for (prop in parentConfig) {\n if (\n hasOwnProp(parentConfig, prop) &&\n !hasOwnProp(childConfig, prop) &&\n isObject(parentConfig[prop])\n ) {\n // make sure changes to properties don't modify parent config\n res[prop] = extend({}, res[prop]);\n }\n }\n return res;\n }\n\n function Locale(config) {\n if (config != null) {\n this.set(config);\n }\n }\n\n var keys;\n\n if (Object.keys) {\n keys = Object.keys;\n } else {\n keys = function (obj) {\n var i,\n res = [];\n for (i in obj) {\n if (hasOwnProp(obj, i)) {\n res.push(i);\n }\n }\n return res;\n };\n }\n\n var defaultCalendar = {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n };\n\n function calendar(key, mom, now) {\n var output = this._calendar[key] || this._calendar['sameElse'];\n return isFunction(output) ? output.call(mom, now) : output;\n }\n\n function zeroFill(number, targetLength, forceSign) {\n var absNumber = '' + Math.abs(number),\n zerosToFill = targetLength - absNumber.length,\n sign = number >= 0;\n return (\n (sign ? (forceSign ? '+' : '') : '-') +\n Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) +\n absNumber\n );\n }\n\n var formattingTokens =\n /(\\[[^\\[]*\\])|(\\\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,\n localFormattingTokens = /(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g,\n formatFunctions = {},\n formatTokenFunctions = {};\n\n // token: 'M'\n // padded: ['MM', 2]\n // ordinal: 'Mo'\n // callback: function () { this.month() + 1 }\n function addFormatToken(token, padded, ordinal, callback) {\n var func = callback;\n if (typeof callback === 'string') {\n func = function () {\n return this[callback]();\n };\n }\n if (token) {\n formatTokenFunctions[token] = func;\n }\n if (padded) {\n formatTokenFunctions[padded[0]] = function () {\n return zeroFill(func.apply(this, arguments), padded[1], padded[2]);\n };\n }\n if (ordinal) {\n formatTokenFunctions[ordinal] = function () {\n return this.localeData().ordinal(\n func.apply(this, arguments),\n token\n );\n };\n }\n }\n\n function removeFormattingTokens(input) {\n if (input.match(/\\[[\\s\\S]/)) {\n return input.replace(/^\\[|\\]$/g, '');\n }\n return input.replace(/\\\\/g, '');\n }\n\n function makeFormatFunction(format) {\n var array = format.match(formattingTokens),\n i,\n length;\n\n for (i = 0, length = array.length; i < length; i++) {\n if (formatTokenFunctions[array[i]]) {\n array[i] = formatTokenFunctions[array[i]];\n } else {\n array[i] = removeFormattingTokens(array[i]);\n }\n }\n\n return function (mom) {\n var output = '',\n i;\n for (i = 0; i < length; i++) {\n output += isFunction(array[i])\n ? array[i].call(mom, format)\n : array[i];\n }\n return output;\n };\n }\n\n // format date using native date object\n function formatMoment(m, format) {\n if (!m.isValid()) {\n return m.localeData().invalidDate();\n }\n\n format = expandFormat(format, m.localeData());\n formatFunctions[format] =\n formatFunctions[format] || makeFormatFunction(format);\n\n return formatFunctions[format](m);\n }\n\n function expandFormat(format, locale) {\n var i = 5;\n\n function replaceLongDateFormatTokens(input) {\n return locale.longDateFormat(input) || input;\n }\n\n localFormattingTokens.lastIndex = 0;\n while (i >= 0 && localFormattingTokens.test(format)) {\n format = format.replace(\n localFormattingTokens,\n replaceLongDateFormatTokens\n );\n localFormattingTokens.lastIndex = 0;\n i -= 1;\n }\n\n return format;\n }\n\n var defaultLongDateFormat = {\n LTS: 'h:mm:ss A',\n LT: 'h:mm A',\n L: 'MM/DD/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY h:mm A',\n LLLL: 'dddd, MMMM D, YYYY h:mm A',\n };\n\n function longDateFormat(key) {\n var format = this._longDateFormat[key],\n formatUpper = this._longDateFormat[key.toUpperCase()];\n\n if (format || !formatUpper) {\n return format;\n }\n\n this._longDateFormat[key] = formatUpper\n .match(formattingTokens)\n .map(function (tok) {\n if (\n tok === 'MMMM' ||\n tok === 'MM' ||\n tok === 'DD' ||\n tok === 'dddd'\n ) {\n return tok.slice(1);\n }\n return tok;\n })\n .join('');\n\n return this._longDateFormat[key];\n }\n\n var defaultInvalidDate = 'Invalid date';\n\n function invalidDate() {\n return this._invalidDate;\n }\n\n var defaultOrdinal = '%d',\n defaultDayOfMonthOrdinalParse = /\\d{1,2}/;\n\n function ordinal(number) {\n return this._ordinal.replace('%d', number);\n }\n\n var defaultRelativeTime = {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n w: 'a week',\n ww: '%d weeks',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n };\n\n function relativeTime(number, withoutSuffix, string, isFuture) {\n var output = this._relativeTime[string];\n return isFunction(output)\n ? output(number, withoutSuffix, string, isFuture)\n : output.replace(/%d/i, number);\n }\n\n function pastFuture(diff, output) {\n var format = this._relativeTime[diff > 0 ? 'future' : 'past'];\n return isFunction(format) ? format(output) : format.replace(/%s/i, output);\n }\n\n var aliases = {\n D: 'date',\n dates: 'date',\n date: 'date',\n d: 'day',\n days: 'day',\n day: 'day',\n e: 'weekday',\n weekdays: 'weekday',\n weekday: 'weekday',\n E: 'isoWeekday',\n isoweekdays: 'isoWeekday',\n isoweekday: 'isoWeekday',\n DDD: 'dayOfYear',\n dayofyears: 'dayOfYear',\n dayofyear: 'dayOfYear',\n h: 'hour',\n hours: 'hour',\n hour: 'hour',\n ms: 'millisecond',\n milliseconds: 'millisecond',\n millisecond: 'millisecond',\n m: 'minute',\n minutes: 'minute',\n minute: 'minute',\n M: 'month',\n months: 'month',\n month: 'month',\n Q: 'quarter',\n quarters: 'quarter',\n quarter: 'quarter',\n s: 'second',\n seconds: 'second',\n second: 'second',\n gg: 'weekYear',\n weekyears: 'weekYear',\n weekyear: 'weekYear',\n GG: 'isoWeekYear',\n isoweekyears: 'isoWeekYear',\n isoweekyear: 'isoWeekYear',\n w: 'week',\n weeks: 'week',\n week: 'week',\n W: 'isoWeek',\n isoweeks: 'isoWeek',\n isoweek: 'isoWeek',\n y: 'year',\n years: 'year',\n year: 'year',\n };\n\n function normalizeUnits(units) {\n return typeof units === 'string'\n ? aliases[units] || aliases[units.toLowerCase()]\n : undefined;\n }\n\n function normalizeObjectUnits(inputObject) {\n var normalizedInput = {},\n normalizedProp,\n prop;\n\n for (prop in inputObject) {\n if (hasOwnProp(inputObject, prop)) {\n normalizedProp = normalizeUnits(prop);\n if (normalizedProp) {\n normalizedInput[normalizedProp] = inputObject[prop];\n }\n }\n }\n\n return normalizedInput;\n }\n\n var priorities = {\n date: 9,\n day: 11,\n weekday: 11,\n isoWeekday: 11,\n dayOfYear: 4,\n hour: 13,\n millisecond: 16,\n minute: 14,\n month: 8,\n quarter: 7,\n second: 15,\n weekYear: 1,\n isoWeekYear: 1,\n week: 5,\n isoWeek: 5,\n year: 1,\n };\n\n function getPrioritizedUnits(unitsObj) {\n var units = [],\n u;\n for (u in unitsObj) {\n if (hasOwnProp(unitsObj, u)) {\n units.push({ unit: u, priority: priorities[u] });\n }\n }\n units.sort(function (a, b) {\n return a.priority - b.priority;\n });\n return units;\n }\n\n var match1 = /\\d/, // 0 - 9\n match2 = /\\d\\d/, // 00 - 99\n match3 = /\\d{3}/, // 000 - 999\n match4 = /\\d{4}/, // 0000 - 9999\n match6 = /[+-]?\\d{6}/, // -999999 - 999999\n match1to2 = /\\d\\d?/, // 0 - 99\n match3to4 = /\\d\\d\\d\\d?/, // 999 - 9999\n match5to6 = /\\d\\d\\d\\d\\d\\d?/, // 99999 - 999999\n match1to3 = /\\d{1,3}/, // 0 - 999\n match1to4 = /\\d{1,4}/, // 0 - 9999\n match1to6 = /[+-]?\\d{1,6}/, // -999999 - 999999\n matchUnsigned = /\\d+/, // 0 - inf\n matchSigned = /[+-]?\\d+/, // -inf - inf\n matchOffset = /Z|[+-]\\d\\d:?\\d\\d/gi, // +00:00 -00:00 +0000 -0000 or Z\n matchShortOffset = /Z|[+-]\\d\\d(?::?\\d\\d)?/gi, // +00 -00 +00:00 -00:00 +0000 -0000 or Z\n matchTimestamp = /[+-]?\\d+(\\.\\d{1,3})?/, // 123456789 123456789.123\n // any word (or two) characters or numbers including two/three word month in arabic.\n // includes scottish gaelic two word and hyphenated months\n matchWord =\n /[0-9]{0,256}['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFF07\\uFF10-\\uFFEF]{1,256}|[\\u0600-\\u06FF\\/]{1,256}(\\s*?[\\u0600-\\u06FF]{1,256}){1,2}/i,\n match1to2NoLeadingZero = /^[1-9]\\d?/, // 1-99\n match1to2HasZero = /^([1-9]\\d|\\d)/, // 0-99\n regexes;\n\n regexes = {};\n\n function addRegexToken(token, regex, strictRegex) {\n regexes[token] = isFunction(regex)\n ? regex\n : function (isStrict, localeData) {\n return isStrict && strictRegex ? strictRegex : regex;\n };\n }\n\n function getParseRegexForToken(token, config) {\n if (!hasOwnProp(regexes, token)) {\n return new RegExp(unescapeFormat(token));\n }\n\n return regexes[token](config._strict, config._locale);\n }\n\n // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript\n function unescapeFormat(s) {\n return regexEscape(\n s\n .replace('\\\\', '')\n .replace(\n /\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g,\n function (matched, p1, p2, p3, p4) {\n return p1 || p2 || p3 || p4;\n }\n )\n );\n }\n\n function regexEscape(s) {\n return s.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n }\n\n function absFloor(number) {\n if (number < 0) {\n // -0 -> 0\n return Math.ceil(number) || 0;\n } else {\n return Math.floor(number);\n }\n }\n\n function toInt(argumentForCoercion) {\n var coercedNumber = +argumentForCoercion,\n value = 0;\n\n if (coercedNumber !== 0 && isFinite(coercedNumber)) {\n value = absFloor(coercedNumber);\n }\n\n return value;\n }\n\n var tokens = {};\n\n function addParseToken(token, callback) {\n var i,\n func = callback,\n tokenLen;\n if (typeof token === 'string') {\n token = [token];\n }\n if (isNumber(callback)) {\n func = function (input, array) {\n array[callback] = toInt(input);\n };\n }\n tokenLen = token.length;\n for (i = 0; i < tokenLen; i++) {\n tokens[token[i]] = func;\n }\n }\n\n function addWeekParseToken(token, callback) {\n addParseToken(token, function (input, array, config, token) {\n config._w = config._w || {};\n callback(input, config._w, config, token);\n });\n }\n\n function addTimeToArrayFromToken(token, input, config) {\n if (input != null && hasOwnProp(tokens, token)) {\n tokens[token](input, config._a, config, token);\n }\n }\n\n function isLeapYear(year) {\n return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;\n }\n\n var YEAR = 0,\n MONTH = 1,\n DATE = 2,\n HOUR = 3,\n MINUTE = 4,\n SECOND = 5,\n MILLISECOND = 6,\n WEEK = 7,\n WEEKDAY = 8;\n\n // FORMATTING\n\n addFormatToken('Y', 0, 0, function () {\n var y = this.year();\n return y <= 9999 ? zeroFill(y, 4) : '+' + y;\n });\n\n addFormatToken(0, ['YY', 2], 0, function () {\n return this.year() % 100;\n });\n\n addFormatToken(0, ['YYYY', 4], 0, 'year');\n addFormatToken(0, ['YYYYY', 5], 0, 'year');\n addFormatToken(0, ['YYYYYY', 6, true], 0, 'year');\n\n // PARSING\n\n addRegexToken('Y', matchSigned);\n addRegexToken('YY', match1to2, match2);\n addRegexToken('YYYY', match1to4, match4);\n addRegexToken('YYYYY', match1to6, match6);\n addRegexToken('YYYYYY', match1to6, match6);\n\n addParseToken(['YYYYY', 'YYYYYY'], YEAR);\n addParseToken('YYYY', function (input, array) {\n array[YEAR] =\n input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input);\n });\n addParseToken('YY', function (input, array) {\n array[YEAR] = hooks.parseTwoDigitYear(input);\n });\n addParseToken('Y', function (input, array) {\n array[YEAR] = parseInt(input, 10);\n });\n\n // HELPERS\n\n function daysInYear(year) {\n return isLeapYear(year) ? 366 : 365;\n }\n\n // HOOKS\n\n hooks.parseTwoDigitYear = function (input) {\n return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);\n };\n\n // MOMENTS\n\n var getSetYear = makeGetSet('FullYear', true);\n\n function getIsLeapYear() {\n return isLeapYear(this.year());\n }\n\n function makeGetSet(unit, keepTime) {\n return function (value) {\n if (value != null) {\n set$1(this, unit, value);\n hooks.updateOffset(this, keepTime);\n return this;\n } else {\n return get(this, unit);\n }\n };\n }\n\n function get(mom, unit) {\n if (!mom.isValid()) {\n return NaN;\n }\n\n var d = mom._d,\n isUTC = mom._isUTC;\n\n switch (unit) {\n case 'Milliseconds':\n return isUTC ? d.getUTCMilliseconds() : d.getMilliseconds();\n case 'Seconds':\n return isUTC ? d.getUTCSeconds() : d.getSeconds();\n case 'Minutes':\n return isUTC ? d.getUTCMinutes() : d.getMinutes();\n case 'Hours':\n return isUTC ? d.getUTCHours() : d.getHours();\n case 'Date':\n return isUTC ? d.getUTCDate() : d.getDate();\n case 'Day':\n return isUTC ? d.getUTCDay() : d.getDay();\n case 'Month':\n return isUTC ? d.getUTCMonth() : d.getMonth();\n case 'FullYear':\n return isUTC ? d.getUTCFullYear() : d.getFullYear();\n default:\n return NaN; // Just in case\n }\n }\n\n function set$1(mom, unit, value) {\n var d, isUTC, year, month, date;\n\n if (!mom.isValid() || isNaN(value)) {\n return;\n }\n\n d = mom._d;\n isUTC = mom._isUTC;\n\n switch (unit) {\n case 'Milliseconds':\n return void (isUTC\n ? d.setUTCMilliseconds(value)\n : d.setMilliseconds(value));\n case 'Seconds':\n return void (isUTC ? d.setUTCSeconds(value) : d.setSeconds(value));\n case 'Minutes':\n return void (isUTC ? d.setUTCMinutes(value) : d.setMinutes(value));\n case 'Hours':\n return void (isUTC ? d.setUTCHours(value) : d.setHours(value));\n case 'Date':\n return void (isUTC ? d.setUTCDate(value) : d.setDate(value));\n // case 'Day': // Not real\n // return void (isUTC ? d.setUTCDay(value) : d.setDay(value));\n // case 'Month': // Not used because we need to pass two variables\n // return void (isUTC ? d.setUTCMonth(value) : d.setMonth(value));\n case 'FullYear':\n break; // See below ...\n default:\n return; // Just in case\n }\n\n year = value;\n month = mom.month();\n date = mom.date();\n date = date === 29 && month === 1 && !isLeapYear(year) ? 28 : date;\n void (isUTC\n ? d.setUTCFullYear(year, month, date)\n : d.setFullYear(year, month, date));\n }\n\n // MOMENTS\n\n function stringGet(units) {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units]();\n }\n return this;\n }\n\n function stringSet(units, value) {\n if (typeof units === 'object') {\n units = normalizeObjectUnits(units);\n var prioritized = getPrioritizedUnits(units),\n i,\n prioritizedLen = prioritized.length;\n for (i = 0; i < prioritizedLen; i++) {\n this[prioritized[i].unit](units[prioritized[i].unit]);\n }\n } else {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units](value);\n }\n }\n return this;\n }\n\n function mod(n, x) {\n return ((n % x) + x) % x;\n }\n\n var indexOf;\n\n if (Array.prototype.indexOf) {\n indexOf = Array.prototype.indexOf;\n } else {\n indexOf = function (o) {\n // I know\n var i;\n for (i = 0; i < this.length; ++i) {\n if (this[i] === o) {\n return i;\n }\n }\n return -1;\n };\n }\n\n function daysInMonth(year, month) {\n if (isNaN(year) || isNaN(month)) {\n return NaN;\n }\n var modMonth = mod(month, 12);\n year += (month - modMonth) / 12;\n return modMonth === 1\n ? isLeapYear(year)\n ? 29\n : 28\n : 31 - ((modMonth % 7) % 2);\n }\n\n // FORMATTING\n\n addFormatToken('M', ['MM', 2], 'Mo', function () {\n return this.month() + 1;\n });\n\n addFormatToken('MMM', 0, 0, function (format) {\n return this.localeData().monthsShort(this, format);\n });\n\n addFormatToken('MMMM', 0, 0, function (format) {\n return this.localeData().months(this, format);\n });\n\n // PARSING\n\n addRegexToken('M', match1to2, match1to2NoLeadingZero);\n addRegexToken('MM', match1to2, match2);\n addRegexToken('MMM', function (isStrict, locale) {\n return locale.monthsShortRegex(isStrict);\n });\n addRegexToken('MMMM', function (isStrict, locale) {\n return locale.monthsRegex(isStrict);\n });\n\n addParseToken(['M', 'MM'], function (input, array) {\n array[MONTH] = toInt(input) - 1;\n });\n\n addParseToken(['MMM', 'MMMM'], function (input, array, config, token) {\n var month = config._locale.monthsParse(input, token, config._strict);\n // if we didn't find a month name, mark the date as invalid.\n if (month != null) {\n array[MONTH] = month;\n } else {\n getParsingFlags(config).invalidMonth = input;\n }\n });\n\n // LOCALES\n\n var defaultLocaleMonths =\n 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n defaultLocaleMonthsShort =\n 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n MONTHS_IN_FORMAT = /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/,\n defaultMonthsShortRegex = matchWord,\n defaultMonthsRegex = matchWord;\n\n function localeMonths(m, format) {\n if (!m) {\n return isArray(this._months)\n ? this._months\n : this._months['standalone'];\n }\n return isArray(this._months)\n ? this._months[m.month()]\n : this._months[\n (this._months.isFormat || MONTHS_IN_FORMAT).test(format)\n ? 'format'\n : 'standalone'\n ][m.month()];\n }\n\n function localeMonthsShort(m, format) {\n if (!m) {\n return isArray(this._monthsShort)\n ? this._monthsShort\n : this._monthsShort['standalone'];\n }\n return isArray(this._monthsShort)\n ? this._monthsShort[m.month()]\n : this._monthsShort[\n MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'\n ][m.month()];\n }\n\n function handleStrictParse(monthName, format, strict) {\n var i,\n ii,\n mom,\n llc = monthName.toLocaleLowerCase();\n if (!this._monthsParse) {\n // this is not used\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n for (i = 0; i < 12; ++i) {\n mom = createUTC([2000, i]);\n this._shortMonthsParse[i] = this.monthsShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeMonthsParse(monthName, format, strict) {\n var i, mom, regex;\n\n if (this._monthsParseExact) {\n return handleStrictParse.call(this, monthName, format, strict);\n }\n\n if (!this._monthsParse) {\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n }\n\n // TODO: add sorting\n // Sorting makes sure if one month (or abbr) is a prefix of another\n // see sorting in computeMonthsParse\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n if (strict && !this._longMonthsParse[i]) {\n this._longMonthsParse[i] = new RegExp(\n '^' + this.months(mom, '').replace('.', '') + '$',\n 'i'\n );\n this._shortMonthsParse[i] = new RegExp(\n '^' + this.monthsShort(mom, '').replace('.', '') + '$',\n 'i'\n );\n }\n if (!strict && !this._monthsParse[i]) {\n regex =\n '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');\n this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'MMMM' &&\n this._longMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'MMM' &&\n this._shortMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (!strict && this._monthsParse[i].test(monthName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function setMonth(mom, value) {\n if (!mom.isValid()) {\n // No op\n return mom;\n }\n\n if (typeof value === 'string') {\n if (/^\\d+$/.test(value)) {\n value = toInt(value);\n } else {\n value = mom.localeData().monthsParse(value);\n // TODO: Another silent failure?\n if (!isNumber(value)) {\n return mom;\n }\n }\n }\n\n var month = value,\n date = mom.date();\n\n date = date < 29 ? date : Math.min(date, daysInMonth(mom.year(), month));\n void (mom._isUTC\n ? mom._d.setUTCMonth(month, date)\n : mom._d.setMonth(month, date));\n return mom;\n }\n\n function getSetMonth(value) {\n if (value != null) {\n setMonth(this, value);\n hooks.updateOffset(this, true);\n return this;\n } else {\n return get(this, 'Month');\n }\n }\n\n function getDaysInMonth() {\n return daysInMonth(this.year(), this.month());\n }\n\n function monthsShortRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsShortStrictRegex;\n } else {\n return this._monthsShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsShortRegex')) {\n this._monthsShortRegex = defaultMonthsShortRegex;\n }\n return this._monthsShortStrictRegex && isStrict\n ? this._monthsShortStrictRegex\n : this._monthsShortRegex;\n }\n }\n\n function monthsRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsStrictRegex;\n } else {\n return this._monthsRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsRegex')) {\n this._monthsRegex = defaultMonthsRegex;\n }\n return this._monthsStrictRegex && isStrict\n ? this._monthsStrictRegex\n : this._monthsRegex;\n }\n }\n\n function computeMonthsParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom,\n shortP,\n longP;\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n shortP = regexEscape(this.monthsShort(mom, ''));\n longP = regexEscape(this.months(mom, ''));\n shortPieces.push(shortP);\n longPieces.push(longP);\n mixedPieces.push(longP);\n mixedPieces.push(shortP);\n }\n // Sorting makes sure if one month (or abbr) is a prefix of another it\n // will match the longer piece.\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n\n this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._monthsShortRegex = this._monthsRegex;\n this._monthsStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._monthsShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n }\n\n function createDate(y, m, d, h, M, s, ms) {\n // can't just apply() to create a date:\n // https://stackoverflow.com/q/181348\n var date;\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n date = new Date(y + 400, m, d, h, M, s, ms);\n if (isFinite(date.getFullYear())) {\n date.setFullYear(y);\n }\n } else {\n date = new Date(y, m, d, h, M, s, ms);\n }\n\n return date;\n }\n\n function createUTCDate(y) {\n var date, args;\n // the Date.UTC function remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n args = Array.prototype.slice.call(arguments);\n // preserve leap years using a full 400 year cycle, then reset\n args[0] = y + 400;\n date = new Date(Date.UTC.apply(null, args));\n if (isFinite(date.getUTCFullYear())) {\n date.setUTCFullYear(y);\n }\n } else {\n date = new Date(Date.UTC.apply(null, arguments));\n }\n\n return date;\n }\n\n // start-of-first-week - start-of-year\n function firstWeekOffset(year, dow, doy) {\n var // first-week day -- which january is always in the first week (4 for iso, 1 for other)\n fwd = 7 + dow - doy,\n // first-week day local weekday -- which local weekday is fwd\n fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7;\n\n return -fwdlw + fwd - 1;\n }\n\n // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday\n function dayOfYearFromWeeks(year, week, weekday, dow, doy) {\n var localWeekday = (7 + weekday - dow) % 7,\n weekOffset = firstWeekOffset(year, dow, doy),\n dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset,\n resYear,\n resDayOfYear;\n\n if (dayOfYear <= 0) {\n resYear = year - 1;\n resDayOfYear = daysInYear(resYear) + dayOfYear;\n } else if (dayOfYear > daysInYear(year)) {\n resYear = year + 1;\n resDayOfYear = dayOfYear - daysInYear(year);\n } else {\n resYear = year;\n resDayOfYear = dayOfYear;\n }\n\n return {\n year: resYear,\n dayOfYear: resDayOfYear,\n };\n }\n\n function weekOfYear(mom, dow, doy) {\n var weekOffset = firstWeekOffset(mom.year(), dow, doy),\n week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1,\n resWeek,\n resYear;\n\n if (week < 1) {\n resYear = mom.year() - 1;\n resWeek = week + weeksInYear(resYear, dow, doy);\n } else if (week > weeksInYear(mom.year(), dow, doy)) {\n resWeek = week - weeksInYear(mom.year(), dow, doy);\n resYear = mom.year() + 1;\n } else {\n resYear = mom.year();\n resWeek = week;\n }\n\n return {\n week: resWeek,\n year: resYear,\n };\n }\n\n function weeksInYear(year, dow, doy) {\n var weekOffset = firstWeekOffset(year, dow, doy),\n weekOffsetNext = firstWeekOffset(year + 1, dow, doy);\n return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;\n }\n\n // FORMATTING\n\n addFormatToken('w', ['ww', 2], 'wo', 'week');\n addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek');\n\n // PARSING\n\n addRegexToken('w', match1to2, match1to2NoLeadingZero);\n addRegexToken('ww', match1to2, match2);\n addRegexToken('W', match1to2, match1to2NoLeadingZero);\n addRegexToken('WW', match1to2, match2);\n\n addWeekParseToken(\n ['w', 'ww', 'W', 'WW'],\n function (input, week, config, token) {\n week[token.substr(0, 1)] = toInt(input);\n }\n );\n\n // HELPERS\n\n // LOCALES\n\n function localeWeek(mom) {\n return weekOfYear(mom, this._week.dow, this._week.doy).week;\n }\n\n var defaultLocaleWeek = {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n };\n\n function localeFirstDayOfWeek() {\n return this._week.dow;\n }\n\n function localeFirstDayOfYear() {\n return this._week.doy;\n }\n\n // MOMENTS\n\n function getSetWeek(input) {\n var week = this.localeData().week(this);\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n function getSetISOWeek(input) {\n var week = weekOfYear(this, 1, 4).week;\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('d', 0, 'do', 'day');\n\n addFormatToken('dd', 0, 0, function (format) {\n return this.localeData().weekdaysMin(this, format);\n });\n\n addFormatToken('ddd', 0, 0, function (format) {\n return this.localeData().weekdaysShort(this, format);\n });\n\n addFormatToken('dddd', 0, 0, function (format) {\n return this.localeData().weekdays(this, format);\n });\n\n addFormatToken('e', 0, 0, 'weekday');\n addFormatToken('E', 0, 0, 'isoWeekday');\n\n // PARSING\n\n addRegexToken('d', match1to2);\n addRegexToken('e', match1to2);\n addRegexToken('E', match1to2);\n addRegexToken('dd', function (isStrict, locale) {\n return locale.weekdaysMinRegex(isStrict);\n });\n addRegexToken('ddd', function (isStrict, locale) {\n return locale.weekdaysShortRegex(isStrict);\n });\n addRegexToken('dddd', function (isStrict, locale) {\n return locale.weekdaysRegex(isStrict);\n });\n\n addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) {\n var weekday = config._locale.weekdaysParse(input, token, config._strict);\n // if we didn't get a weekday name, mark the date as invalid\n if (weekday != null) {\n week.d = weekday;\n } else {\n getParsingFlags(config).invalidWeekday = input;\n }\n });\n\n addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {\n week[token] = toInt(input);\n });\n\n // HELPERS\n\n function parseWeekday(input, locale) {\n if (typeof input !== 'string') {\n return input;\n }\n\n if (!isNaN(input)) {\n return parseInt(input, 10);\n }\n\n input = locale.weekdaysParse(input);\n if (typeof input === 'number') {\n return input;\n }\n\n return null;\n }\n\n function parseIsoWeekday(input, locale) {\n if (typeof input === 'string') {\n return locale.weekdaysParse(input) % 7 || 7;\n }\n return isNaN(input) ? null : input;\n }\n\n // LOCALES\n function shiftWeekdays(ws, n) {\n return ws.slice(n, 7).concat(ws.slice(0, n));\n }\n\n var defaultLocaleWeekdays =\n 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n defaultWeekdaysRegex = matchWord,\n defaultWeekdaysShortRegex = matchWord,\n defaultWeekdaysMinRegex = matchWord;\n\n function localeWeekdays(m, format) {\n var weekdays = isArray(this._weekdays)\n ? this._weekdays\n : this._weekdays[\n m && m !== true && this._weekdays.isFormat.test(format)\n ? 'format'\n : 'standalone'\n ];\n return m === true\n ? shiftWeekdays(weekdays, this._week.dow)\n : m\n ? weekdays[m.day()]\n : weekdays;\n }\n\n function localeWeekdaysShort(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysShort, this._week.dow)\n : m\n ? this._weekdaysShort[m.day()]\n : this._weekdaysShort;\n }\n\n function localeWeekdaysMin(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysMin, this._week.dow)\n : m\n ? this._weekdaysMin[m.day()]\n : this._weekdaysMin;\n }\n\n function handleStrictParse$1(weekdayName, format, strict) {\n var i,\n ii,\n mom,\n llc = weekdayName.toLocaleLowerCase();\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._minWeekdaysParse = [];\n\n for (i = 0; i < 7; ++i) {\n mom = createUTC([2000, 1]).day(i);\n this._minWeekdaysParse[i] = this.weekdaysMin(\n mom,\n ''\n ).toLocaleLowerCase();\n this._shortWeekdaysParse[i] = this.weekdaysShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeWeekdaysParse(weekdayName, format, strict) {\n var i, mom, regex;\n\n if (this._weekdaysParseExact) {\n return handleStrictParse$1.call(this, weekdayName, format, strict);\n }\n\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._minWeekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._fullWeekdaysParse = [];\n }\n\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n\n mom = createUTC([2000, 1]).day(i);\n if (strict && !this._fullWeekdaysParse[i]) {\n this._fullWeekdaysParse[i] = new RegExp(\n '^' + this.weekdays(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._shortWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysShort(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._minWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysMin(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n }\n if (!this._weekdaysParse[i]) {\n regex =\n '^' +\n this.weekdays(mom, '') +\n '|^' +\n this.weekdaysShort(mom, '') +\n '|^' +\n this.weekdaysMin(mom, '');\n this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'dddd' &&\n this._fullWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'ddd' &&\n this._shortWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'dd' &&\n this._minWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function getSetDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n var day = get(this, 'Day');\n if (input != null) {\n input = parseWeekday(input, this.localeData());\n return this.add(input - day, 'd');\n } else {\n return day;\n }\n }\n\n function getSetLocaleDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;\n return input == null ? weekday : this.add(input - weekday, 'd');\n }\n\n function getSetISODayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n // behaves the same as moment#day except\n // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)\n // as a setter, sunday should belong to the previous week.\n\n if (input != null) {\n var weekday = parseIsoWeekday(input, this.localeData());\n return this.day(this.day() % 7 ? weekday : weekday - 7);\n } else {\n return this.day() || 7;\n }\n }\n\n function weekdaysRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysStrictRegex;\n } else {\n return this._weekdaysRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n this._weekdaysRegex = defaultWeekdaysRegex;\n }\n return this._weekdaysStrictRegex && isStrict\n ? this._weekdaysStrictRegex\n : this._weekdaysRegex;\n }\n }\n\n function weekdaysShortRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysShortStrictRegex;\n } else {\n return this._weekdaysShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysShortRegex')) {\n this._weekdaysShortRegex = defaultWeekdaysShortRegex;\n }\n return this._weekdaysShortStrictRegex && isStrict\n ? this._weekdaysShortStrictRegex\n : this._weekdaysShortRegex;\n }\n }\n\n function weekdaysMinRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysMinStrictRegex;\n } else {\n return this._weekdaysMinRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysMinRegex')) {\n this._weekdaysMinRegex = defaultWeekdaysMinRegex;\n }\n return this._weekdaysMinStrictRegex && isStrict\n ? this._weekdaysMinStrictRegex\n : this._weekdaysMinRegex;\n }\n }\n\n function computeWeekdaysParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var minPieces = [],\n shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom,\n minp,\n shortp,\n longp;\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, 1]).day(i);\n minp = regexEscape(this.weekdaysMin(mom, ''));\n shortp = regexEscape(this.weekdaysShort(mom, ''));\n longp = regexEscape(this.weekdays(mom, ''));\n minPieces.push(minp);\n shortPieces.push(shortp);\n longPieces.push(longp);\n mixedPieces.push(minp);\n mixedPieces.push(shortp);\n mixedPieces.push(longp);\n }\n // Sorting makes sure if one weekday (or abbr) is a prefix of another it\n // will match the longer piece.\n minPieces.sort(cmpLenRev);\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n\n this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._weekdaysShortRegex = this._weekdaysRegex;\n this._weekdaysMinRegex = this._weekdaysRegex;\n\n this._weekdaysStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysMinStrictRegex = new RegExp(\n '^(' + minPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n function hFormat() {\n return this.hours() % 12 || 12;\n }\n\n function kFormat() {\n return this.hours() || 24;\n }\n\n addFormatToken('H', ['HH', 2], 0, 'hour');\n addFormatToken('h', ['hh', 2], 0, hFormat);\n addFormatToken('k', ['kk', 2], 0, kFormat);\n\n addFormatToken('hmm', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('hmmss', 0, 0, function () {\n return (\n '' +\n hFormat.apply(this) +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n addFormatToken('Hmm', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('Hmmss', 0, 0, function () {\n return (\n '' +\n this.hours() +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n function meridiem(token, lowercase) {\n addFormatToken(token, 0, 0, function () {\n return this.localeData().meridiem(\n this.hours(),\n this.minutes(),\n lowercase\n );\n });\n }\n\n meridiem('a', true);\n meridiem('A', false);\n\n // PARSING\n\n function matchMeridiem(isStrict, locale) {\n return locale._meridiemParse;\n }\n\n addRegexToken('a', matchMeridiem);\n addRegexToken('A', matchMeridiem);\n addRegexToken('H', match1to2, match1to2HasZero);\n addRegexToken('h', match1to2, match1to2NoLeadingZero);\n addRegexToken('k', match1to2, match1to2NoLeadingZero);\n addRegexToken('HH', match1to2, match2);\n addRegexToken('hh', match1to2, match2);\n addRegexToken('kk', match1to2, match2);\n\n addRegexToken('hmm', match3to4);\n addRegexToken('hmmss', match5to6);\n addRegexToken('Hmm', match3to4);\n addRegexToken('Hmmss', match5to6);\n\n addParseToken(['H', 'HH'], HOUR);\n addParseToken(['k', 'kk'], function (input, array, config) {\n var kInput = toInt(input);\n array[HOUR] = kInput === 24 ? 0 : kInput;\n });\n addParseToken(['a', 'A'], function (input, array, config) {\n config._isPm = config._locale.isPM(input);\n config._meridiem = input;\n });\n addParseToken(['h', 'hh'], function (input, array, config) {\n array[HOUR] = toInt(input);\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('Hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n });\n addParseToken('Hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n });\n\n // LOCALES\n\n function localeIsPM(input) {\n // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays\n // Using charAt should be more compatible.\n return (input + '').toLowerCase().charAt(0) === 'p';\n }\n\n var defaultLocaleMeridiemParse = /[ap]\\.?m?\\.?/i,\n // Setting the hour should keep the time, because the user explicitly\n // specified which hour they want. So trying to maintain the same hour (in\n // a new timezone) makes sense. Adding/subtracting hours does not follow\n // this rule.\n getSetHour = makeGetSet('Hours', true);\n\n function localeMeridiem(hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'pm' : 'PM';\n } else {\n return isLower ? 'am' : 'AM';\n }\n }\n\n var baseConfig = {\n calendar: defaultCalendar,\n longDateFormat: defaultLongDateFormat,\n invalidDate: defaultInvalidDate,\n ordinal: defaultOrdinal,\n dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,\n relativeTime: defaultRelativeTime,\n\n months: defaultLocaleMonths,\n monthsShort: defaultLocaleMonthsShort,\n\n week: defaultLocaleWeek,\n\n weekdays: defaultLocaleWeekdays,\n weekdaysMin: defaultLocaleWeekdaysMin,\n weekdaysShort: defaultLocaleWeekdaysShort,\n\n meridiemParse: defaultLocaleMeridiemParse,\n };\n\n // internal storage for locale config files\n var locales = {},\n localeFamilies = {},\n globalLocale;\n\n function commonPrefix(arr1, arr2) {\n var i,\n minl = Math.min(arr1.length, arr2.length);\n for (i = 0; i < minl; i += 1) {\n if (arr1[i] !== arr2[i]) {\n return i;\n }\n }\n return minl;\n }\n\n function normalizeLocale(key) {\n return key ? key.toLowerCase().replace('_', '-') : key;\n }\n\n // pick the locale from the array\n // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each\n // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root\n function chooseLocale(names) {\n var i = 0,\n j,\n next,\n locale,\n split;\n\n while (i < names.length) {\n split = normalizeLocale(names[i]).split('-');\n j = split.length;\n next = normalizeLocale(names[i + 1]);\n next = next ? next.split('-') : null;\n while (j > 0) {\n locale = loadLocale(split.slice(0, j).join('-'));\n if (locale) {\n return locale;\n }\n if (\n next &&\n next.length >= j &&\n commonPrefix(split, next) >= j - 1\n ) {\n //the next array item is better than a shallower substring of this one\n break;\n }\n j--;\n }\n i++;\n }\n return globalLocale;\n }\n\n function isLocaleNameSane(name) {\n // Prevent names that look like filesystem paths, i.e contain '/' or '\\'\n // Ensure name is available and function returns boolean\n return !!(name && name.match('^[^/\\\\\\\\]*$'));\n }\n\n function loadLocale(name) {\n var oldLocale = null,\n aliasedRequire;\n // TODO: Find a better way to register and load all the locales in Node\n if (\n locales[name] === undefined &&\n typeof module !== 'undefined' &&\n module &&\n module.exports &&\n isLocaleNameSane(name)\n ) {\n try {\n oldLocale = globalLocale._abbr;\n aliasedRequire = require;\n aliasedRequire('./locale/' + name);\n getSetGlobalLocale(oldLocale);\n } catch (e) {\n // mark as not found to avoid repeating expensive file require call causing high CPU\n // when trying to find en-US, en_US, en-us for every format call\n locales[name] = null; // null means not found\n }\n }\n return locales[name];\n }\n\n // This function will load locale and then set the global locale. If\n // no arguments are passed in, it will simply return the current global\n // locale key.\n function getSetGlobalLocale(key, values) {\n var data;\n if (key) {\n if (isUndefined(values)) {\n data = getLocale(key);\n } else {\n data = defineLocale(key, values);\n }\n\n if (data) {\n // moment.duration._locale = moment._locale = data;\n globalLocale = data;\n } else {\n if (typeof console !== 'undefined' && console.warn) {\n //warn user if arguments are passed but the locale could not be set\n console.warn(\n 'Locale ' + key + ' not found. Did you forget to load it?'\n );\n }\n }\n }\n\n return globalLocale._abbr;\n }\n\n function defineLocale(name, config) {\n if (config !== null) {\n var locale,\n parentConfig = baseConfig;\n config.abbr = name;\n if (locales[name] != null) {\n deprecateSimple(\n 'defineLocaleOverride',\n 'use moment.updateLocale(localeName, config) to change ' +\n 'an existing locale. moment.defineLocale(localeName, ' +\n 'config) should only be used for creating a new locale ' +\n 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.'\n );\n parentConfig = locales[name]._config;\n } else if (config.parentLocale != null) {\n if (locales[config.parentLocale] != null) {\n parentConfig = locales[config.parentLocale]._config;\n } else {\n locale = loadLocale(config.parentLocale);\n if (locale != null) {\n parentConfig = locale._config;\n } else {\n if (!localeFamilies[config.parentLocale]) {\n localeFamilies[config.parentLocale] = [];\n }\n localeFamilies[config.parentLocale].push({\n name: name,\n config: config,\n });\n return null;\n }\n }\n }\n locales[name] = new Locale(mergeConfigs(parentConfig, config));\n\n if (localeFamilies[name]) {\n localeFamilies[name].forEach(function (x) {\n defineLocale(x.name, x.config);\n });\n }\n\n // backwards compat for now: also set the locale\n // make sure we set the locale AFTER all child locales have been\n // created, so we won't end up with the child locale set.\n getSetGlobalLocale(name);\n\n return locales[name];\n } else {\n // useful for testing\n delete locales[name];\n return null;\n }\n }\n\n function updateLocale(name, config) {\n if (config != null) {\n var locale,\n tmpLocale,\n parentConfig = baseConfig;\n\n if (locales[name] != null && locales[name].parentLocale != null) {\n // Update existing child locale in-place to avoid memory-leaks\n locales[name].set(mergeConfigs(locales[name]._config, config));\n } else {\n // MERGE\n tmpLocale = loadLocale(name);\n if (tmpLocale != null) {\n parentConfig = tmpLocale._config;\n }\n config = mergeConfigs(parentConfig, config);\n if (tmpLocale == null) {\n // updateLocale is called for creating a new locale\n // Set abbr so it will have a name (getters return\n // undefined otherwise).\n config.abbr = name;\n }\n locale = new Locale(config);\n locale.parentLocale = locales[name];\n locales[name] = locale;\n }\n\n // backwards compat for now: also set the locale\n getSetGlobalLocale(name);\n } else {\n // pass null for config to unupdate, useful for tests\n if (locales[name] != null) {\n if (locales[name].parentLocale != null) {\n locales[name] = locales[name].parentLocale;\n if (name === getSetGlobalLocale()) {\n getSetGlobalLocale(name);\n }\n } else if (locales[name] != null) {\n delete locales[name];\n }\n }\n }\n return locales[name];\n }\n\n // returns locale data\n function getLocale(key) {\n var locale;\n\n if (key && key._locale && key._locale._abbr) {\n key = key._locale._abbr;\n }\n\n if (!key) {\n return globalLocale;\n }\n\n if (!isArray(key)) {\n //short-circuit everything else\n locale = loadLocale(key);\n if (locale) {\n return locale;\n }\n key = [key];\n }\n\n return chooseLocale(key);\n }\n\n function listLocales() {\n return keys(locales);\n }\n\n function checkOverflow(m) {\n var overflow,\n a = m._a;\n\n if (a && getParsingFlags(m).overflow === -2) {\n overflow =\n a[MONTH] < 0 || a[MONTH] > 11\n ? MONTH\n : a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH])\n ? DATE\n : a[HOUR] < 0 ||\n a[HOUR] > 24 ||\n (a[HOUR] === 24 &&\n (a[MINUTE] !== 0 ||\n a[SECOND] !== 0 ||\n a[MILLISECOND] !== 0))\n ? HOUR\n : a[MINUTE] < 0 || a[MINUTE] > 59\n ? MINUTE\n : a[SECOND] < 0 || a[SECOND] > 59\n ? SECOND\n : a[MILLISECOND] < 0 || a[MILLISECOND] > 999\n ? MILLISECOND\n : -1;\n\n if (\n getParsingFlags(m)._overflowDayOfYear &&\n (overflow < YEAR || overflow > DATE)\n ) {\n overflow = DATE;\n }\n if (getParsingFlags(m)._overflowWeeks && overflow === -1) {\n overflow = WEEK;\n }\n if (getParsingFlags(m)._overflowWeekday && overflow === -1) {\n overflow = WEEKDAY;\n }\n\n getParsingFlags(m).overflow = overflow;\n }\n\n return m;\n }\n\n // iso 8601 regex\n // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00)\n var extendedIsoRegex =\n /^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n basicIsoRegex =\n /^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d|))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n tzRegex = /Z|[+-]\\d\\d(?::?\\d\\d)?/,\n isoDates = [\n ['YYYYYY-MM-DD', /[+-]\\d{6}-\\d\\d-\\d\\d/],\n ['YYYY-MM-DD', /\\d{4}-\\d\\d-\\d\\d/],\n ['GGGG-[W]WW-E', /\\d{4}-W\\d\\d-\\d/],\n ['GGGG-[W]WW', /\\d{4}-W\\d\\d/, false],\n ['YYYY-DDD', /\\d{4}-\\d{3}/],\n ['YYYY-MM', /\\d{4}-\\d\\d/, false],\n ['YYYYYYMMDD', /[+-]\\d{10}/],\n ['YYYYMMDD', /\\d{8}/],\n ['GGGG[W]WWE', /\\d{4}W\\d{3}/],\n ['GGGG[W]WW', /\\d{4}W\\d{2}/, false],\n ['YYYYDDD', /\\d{7}/],\n ['YYYYMM', /\\d{6}/, false],\n ['YYYY', /\\d{4}/, false],\n ],\n // iso time formats and regexes\n isoTimes = [\n ['HH:mm:ss.SSSS', /\\d\\d:\\d\\d:\\d\\d\\.\\d+/],\n ['HH:mm:ss,SSSS', /\\d\\d:\\d\\d:\\d\\d,\\d+/],\n ['HH:mm:ss', /\\d\\d:\\d\\d:\\d\\d/],\n ['HH:mm', /\\d\\d:\\d\\d/],\n ['HHmmss.SSSS', /\\d\\d\\d\\d\\d\\d\\.\\d+/],\n ['HHmmss,SSSS', /\\d\\d\\d\\d\\d\\d,\\d+/],\n ['HHmmss', /\\d\\d\\d\\d\\d\\d/],\n ['HHmm', /\\d\\d\\d\\d/],\n ['HH', /\\d\\d/],\n ],\n aspNetJsonRegex = /^\\/?Date\\((-?\\d+)/i,\n // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3\n rfc2822 =\n /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\\s)?(\\d{1,2})\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(\\d{2,4})\\s(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\\d{4}))$/,\n obsOffsets = {\n UT: 0,\n GMT: 0,\n EDT: -4 * 60,\n EST: -5 * 60,\n CDT: -5 * 60,\n CST: -6 * 60,\n MDT: -6 * 60,\n MST: -7 * 60,\n PDT: -7 * 60,\n PST: -8 * 60,\n };\n\n // date from iso format\n function configFromISO(config) {\n var i,\n l,\n string = config._i,\n match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string),\n allowTime,\n dateFormat,\n timeFormat,\n tzFormat,\n isoDatesLen = isoDates.length,\n isoTimesLen = isoTimes.length;\n\n if (match) {\n getParsingFlags(config).iso = true;\n for (i = 0, l = isoDatesLen; i < l; i++) {\n if (isoDates[i][1].exec(match[1])) {\n dateFormat = isoDates[i][0];\n allowTime = isoDates[i][2] !== false;\n break;\n }\n }\n if (dateFormat == null) {\n config._isValid = false;\n return;\n }\n if (match[3]) {\n for (i = 0, l = isoTimesLen; i < l; i++) {\n if (isoTimes[i][1].exec(match[3])) {\n // match[2] should be 'T' or space\n timeFormat = (match[2] || ' ') + isoTimes[i][0];\n break;\n }\n }\n if (timeFormat == null) {\n config._isValid = false;\n return;\n }\n }\n if (!allowTime && timeFormat != null) {\n config._isValid = false;\n return;\n }\n if (match[4]) {\n if (tzRegex.exec(match[4])) {\n tzFormat = 'Z';\n } else {\n config._isValid = false;\n return;\n }\n }\n config._f = dateFormat + (timeFormat || '') + (tzFormat || '');\n configFromStringAndFormat(config);\n } else {\n config._isValid = false;\n }\n }\n\n function extractFromRFC2822Strings(\n yearStr,\n monthStr,\n dayStr,\n hourStr,\n minuteStr,\n secondStr\n ) {\n var result = [\n untruncateYear(yearStr),\n defaultLocaleMonthsShort.indexOf(monthStr),\n parseInt(dayStr, 10),\n parseInt(hourStr, 10),\n parseInt(minuteStr, 10),\n ];\n\n if (secondStr) {\n result.push(parseInt(secondStr, 10));\n }\n\n return result;\n }\n\n function untruncateYear(yearStr) {\n var year = parseInt(yearStr, 10);\n if (year <= 49) {\n return 2000 + year;\n } else if (year <= 999) {\n return 1900 + year;\n }\n return year;\n }\n\n function preprocessRFC2822(s) {\n // Remove comments and folding whitespace and replace multiple-spaces with a single space\n return s\n .replace(/\\([^()]*\\)|[\\n\\t]/g, ' ')\n .replace(/(\\s\\s+)/g, ' ')\n .replace(/^\\s\\s*/, '')\n .replace(/\\s\\s*$/, '');\n }\n\n function checkWeekday(weekdayStr, parsedInput, config) {\n if (weekdayStr) {\n // TODO: Replace the vanilla JS Date object with an independent day-of-week check.\n var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr),\n weekdayActual = new Date(\n parsedInput[0],\n parsedInput[1],\n parsedInput[2]\n ).getDay();\n if (weekdayProvided !== weekdayActual) {\n getParsingFlags(config).weekdayMismatch = true;\n config._isValid = false;\n return false;\n }\n }\n return true;\n }\n\n function calculateOffset(obsOffset, militaryOffset, numOffset) {\n if (obsOffset) {\n return obsOffsets[obsOffset];\n } else if (militaryOffset) {\n // the only allowed military tz is Z\n return 0;\n } else {\n var hm = parseInt(numOffset, 10),\n m = hm % 100,\n h = (hm - m) / 100;\n return h * 60 + m;\n }\n }\n\n // date and time from ref 2822 format\n function configFromRFC2822(config) {\n var match = rfc2822.exec(preprocessRFC2822(config._i)),\n parsedArray;\n if (match) {\n parsedArray = extractFromRFC2822Strings(\n match[4],\n match[3],\n match[2],\n match[5],\n match[6],\n match[7]\n );\n if (!checkWeekday(match[1], parsedArray, config)) {\n return;\n }\n\n config._a = parsedArray;\n config._tzm = calculateOffset(match[8], match[9], match[10]);\n\n config._d = createUTCDate.apply(null, config._a);\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n\n getParsingFlags(config).rfc2822 = true;\n } else {\n config._isValid = false;\n }\n }\n\n // date from 1) ASP.NET, 2) ISO, 3) RFC 2822 formats, or 4) optional fallback if parsing isn't strict\n function configFromString(config) {\n var matched = aspNetJsonRegex.exec(config._i);\n if (matched !== null) {\n config._d = new Date(+matched[1]);\n return;\n }\n\n configFromISO(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n configFromRFC2822(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n if (config._strict) {\n config._isValid = false;\n } else {\n // Final attempt, use Input Fallback\n hooks.createFromInputFallback(config);\n }\n }\n\n hooks.createFromInputFallback = deprecate(\n 'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' +\n 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' +\n 'discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.',\n function (config) {\n config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));\n }\n );\n\n // Pick the first defined of two or three arguments.\n function defaults(a, b, c) {\n if (a != null) {\n return a;\n }\n if (b != null) {\n return b;\n }\n return c;\n }\n\n function currentDateArray(config) {\n // hooks is actually the exported moment object\n var nowValue = new Date(hooks.now());\n if (config._useUTC) {\n return [\n nowValue.getUTCFullYear(),\n nowValue.getUTCMonth(),\n nowValue.getUTCDate(),\n ];\n }\n return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];\n }\n\n // convert an array to a date.\n // the array should mirror the parameters below\n // note: all values past the year are optional and will default to the lowest possible value.\n // [year, month, day , hour, minute, second, millisecond]\n function configFromArray(config) {\n var i,\n date,\n input = [],\n currentDate,\n expectedWeekday,\n yearToUse;\n\n if (config._d) {\n return;\n }\n\n currentDate = currentDateArray(config);\n\n //compute day of the year from weeks and weekdays\n if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {\n dayOfYearFromWeekInfo(config);\n }\n\n //if the day of the year is set, figure out what it is\n if (config._dayOfYear != null) {\n yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);\n\n if (\n config._dayOfYear > daysInYear(yearToUse) ||\n config._dayOfYear === 0\n ) {\n getParsingFlags(config)._overflowDayOfYear = true;\n }\n\n date = createUTCDate(yearToUse, 0, config._dayOfYear);\n config._a[MONTH] = date.getUTCMonth();\n config._a[DATE] = date.getUTCDate();\n }\n\n // Default to current date.\n // * if no year, month, day of month are given, default to today\n // * if day of month is given, default month and year\n // * if month is given, default only year\n // * if year is given, don't default anything\n for (i = 0; i < 3 && config._a[i] == null; ++i) {\n config._a[i] = input[i] = currentDate[i];\n }\n\n // Zero out whatever was not defaulted, including time\n for (; i < 7; i++) {\n config._a[i] = input[i] =\n config._a[i] == null ? (i === 2 ? 1 : 0) : config._a[i];\n }\n\n // Check for 24:00:00.000\n if (\n config._a[HOUR] === 24 &&\n config._a[MINUTE] === 0 &&\n config._a[SECOND] === 0 &&\n config._a[MILLISECOND] === 0\n ) {\n config._nextDay = true;\n config._a[HOUR] = 0;\n }\n\n config._d = (config._useUTC ? createUTCDate : createDate).apply(\n null,\n input\n );\n expectedWeekday = config._useUTC\n ? config._d.getUTCDay()\n : config._d.getDay();\n\n // Apply timezone offset from input. The actual utcOffset can be changed\n // with parseZone.\n if (config._tzm != null) {\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n }\n\n if (config._nextDay) {\n config._a[HOUR] = 24;\n }\n\n // check for mismatching day of week\n if (\n config._w &&\n typeof config._w.d !== 'undefined' &&\n config._w.d !== expectedWeekday\n ) {\n getParsingFlags(config).weekdayMismatch = true;\n }\n }\n\n function dayOfYearFromWeekInfo(config) {\n var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow, curWeek;\n\n w = config._w;\n if (w.GG != null || w.W != null || w.E != null) {\n dow = 1;\n doy = 4;\n\n // TODO: We need to take the current isoWeekYear, but that depends on\n // how we interpret now (local, utc, fixed offset). So create\n // a now version of current config (take local/utc/offset flags, and\n // create now).\n weekYear = defaults(\n w.GG,\n config._a[YEAR],\n weekOfYear(createLocal(), 1, 4).year\n );\n week = defaults(w.W, 1);\n weekday = defaults(w.E, 1);\n if (weekday < 1 || weekday > 7) {\n weekdayOverflow = true;\n }\n } else {\n dow = config._locale._week.dow;\n doy = config._locale._week.doy;\n\n curWeek = weekOfYear(createLocal(), dow, doy);\n\n weekYear = defaults(w.gg, config._a[YEAR], curWeek.year);\n\n // Default to current week.\n week = defaults(w.w, curWeek.week);\n\n if (w.d != null) {\n // weekday -- low day numbers are considered next week\n weekday = w.d;\n if (weekday < 0 || weekday > 6) {\n weekdayOverflow = true;\n }\n } else if (w.e != null) {\n // local weekday -- counting starts from beginning of week\n weekday = w.e + dow;\n if (w.e < 0 || w.e > 6) {\n weekdayOverflow = true;\n }\n } else {\n // default to beginning of week\n weekday = dow;\n }\n }\n if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {\n getParsingFlags(config)._overflowWeeks = true;\n } else if (weekdayOverflow != null) {\n getParsingFlags(config)._overflowWeekday = true;\n } else {\n temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);\n config._a[YEAR] = temp.year;\n config._dayOfYear = temp.dayOfYear;\n }\n }\n\n // constant that refers to the ISO standard\n hooks.ISO_8601 = function () {};\n\n // constant that refers to the RFC 2822 form\n hooks.RFC_2822 = function () {};\n\n // date from string and format string\n function configFromStringAndFormat(config) {\n // TODO: Move this to another part of the creation flow to prevent circular deps\n if (config._f === hooks.ISO_8601) {\n configFromISO(config);\n return;\n }\n if (config._f === hooks.RFC_2822) {\n configFromRFC2822(config);\n return;\n }\n config._a = [];\n getParsingFlags(config).empty = true;\n\n // This array is used to make a Date, either with `new Date` or `Date.UTC`\n var string = '' + config._i,\n i,\n parsedInput,\n tokens,\n token,\n skipped,\n stringLength = string.length,\n totalParsedInputLength = 0,\n era,\n tokenLen;\n\n tokens =\n expandFormat(config._f, config._locale).match(formattingTokens) || [];\n tokenLen = tokens.length;\n for (i = 0; i < tokenLen; i++) {\n token = tokens[i];\n parsedInput = (string.match(getParseRegexForToken(token, config)) ||\n [])[0];\n if (parsedInput) {\n skipped = string.substr(0, string.indexOf(parsedInput));\n if (skipped.length > 0) {\n getParsingFlags(config).unusedInput.push(skipped);\n }\n string = string.slice(\n string.indexOf(parsedInput) + parsedInput.length\n );\n totalParsedInputLength += parsedInput.length;\n }\n // don't parse if it's not a known token\n if (formatTokenFunctions[token]) {\n if (parsedInput) {\n getParsingFlags(config).empty = false;\n } else {\n getParsingFlags(config).unusedTokens.push(token);\n }\n addTimeToArrayFromToken(token, parsedInput, config);\n } else if (config._strict && !parsedInput) {\n getParsingFlags(config).unusedTokens.push(token);\n }\n }\n\n // add remaining unparsed input length to the string\n getParsingFlags(config).charsLeftOver =\n stringLength - totalParsedInputLength;\n if (string.length > 0) {\n getParsingFlags(config).unusedInput.push(string);\n }\n\n // clear _12h flag if hour is <= 12\n if (\n config._a[HOUR] <= 12 &&\n getParsingFlags(config).bigHour === true &&\n config._a[HOUR] > 0\n ) {\n getParsingFlags(config).bigHour = undefined;\n }\n\n getParsingFlags(config).parsedDateParts = config._a.slice(0);\n getParsingFlags(config).meridiem = config._meridiem;\n // handle meridiem\n config._a[HOUR] = meridiemFixWrap(\n config._locale,\n config._a[HOUR],\n config._meridiem\n );\n\n // handle era\n era = getParsingFlags(config).era;\n if (era !== null) {\n config._a[YEAR] = config._locale.erasConvertYear(era, config._a[YEAR]);\n }\n\n configFromArray(config);\n checkOverflow(config);\n }\n\n function meridiemFixWrap(locale, hour, meridiem) {\n var isPm;\n\n if (meridiem == null) {\n // nothing to do\n return hour;\n }\n if (locale.meridiemHour != null) {\n return locale.meridiemHour(hour, meridiem);\n } else if (locale.isPM != null) {\n // Fallback\n isPm = locale.isPM(meridiem);\n if (isPm && hour < 12) {\n hour += 12;\n }\n if (!isPm && hour === 12) {\n hour = 0;\n }\n return hour;\n } else {\n // this is not supposed to happen\n return hour;\n }\n }\n\n // date from string and array of format strings\n function configFromStringAndArray(config) {\n var tempConfig,\n bestMoment,\n scoreToBeat,\n i,\n currentScore,\n validFormatFound,\n bestFormatIsValid = false,\n configfLen = config._f.length;\n\n if (configfLen === 0) {\n getParsingFlags(config).invalidFormat = true;\n config._d = new Date(NaN);\n return;\n }\n\n for (i = 0; i < configfLen; i++) {\n currentScore = 0;\n validFormatFound = false;\n tempConfig = copyConfig({}, config);\n if (config._useUTC != null) {\n tempConfig._useUTC = config._useUTC;\n }\n tempConfig._f = config._f[i];\n configFromStringAndFormat(tempConfig);\n\n if (isValid(tempConfig)) {\n validFormatFound = true;\n }\n\n // if there is any input that was not parsed add a penalty for that format\n currentScore += getParsingFlags(tempConfig).charsLeftOver;\n\n //or tokens\n currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;\n\n getParsingFlags(tempConfig).score = currentScore;\n\n if (!bestFormatIsValid) {\n if (\n scoreToBeat == null ||\n currentScore < scoreToBeat ||\n validFormatFound\n ) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n if (validFormatFound) {\n bestFormatIsValid = true;\n }\n }\n } else {\n if (currentScore < scoreToBeat) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n }\n }\n }\n\n extend(config, bestMoment || tempConfig);\n }\n\n function configFromObject(config) {\n if (config._d) {\n return;\n }\n\n var i = normalizeObjectUnits(config._i),\n dayOrDate = i.day === undefined ? i.date : i.day;\n config._a = map(\n [i.year, i.month, dayOrDate, i.hour, i.minute, i.second, i.millisecond],\n function (obj) {\n return obj && parseInt(obj, 10);\n }\n );\n\n configFromArray(config);\n }\n\n function createFromConfig(config) {\n var res = new Moment(checkOverflow(prepareConfig(config)));\n if (res._nextDay) {\n // Adding is smart enough around DST\n res.add(1, 'd');\n res._nextDay = undefined;\n }\n\n return res;\n }\n\n function prepareConfig(config) {\n var input = config._i,\n format = config._f;\n\n config._locale = config._locale || getLocale(config._l);\n\n if (input === null || (format === undefined && input === '')) {\n return createInvalid({ nullInput: true });\n }\n\n if (typeof input === 'string') {\n config._i = input = config._locale.preparse(input);\n }\n\n if (isMoment(input)) {\n return new Moment(checkOverflow(input));\n } else if (isDate(input)) {\n config._d = input;\n } else if (isArray(format)) {\n configFromStringAndArray(config);\n } else if (format) {\n configFromStringAndFormat(config);\n } else {\n configFromInput(config);\n }\n\n if (!isValid(config)) {\n config._d = null;\n }\n\n return config;\n }\n\n function configFromInput(config) {\n var input = config._i;\n if (isUndefined(input)) {\n config._d = new Date(hooks.now());\n } else if (isDate(input)) {\n config._d = new Date(input.valueOf());\n } else if (typeof input === 'string') {\n configFromString(config);\n } else if (isArray(input)) {\n config._a = map(input.slice(0), function (obj) {\n return parseInt(obj, 10);\n });\n configFromArray(config);\n } else if (isObject(input)) {\n configFromObject(config);\n } else if (isNumber(input)) {\n // from milliseconds\n config._d = new Date(input);\n } else {\n hooks.createFromInputFallback(config);\n }\n }\n\n function createLocalOrUTC(input, format, locale, strict, isUTC) {\n var c = {};\n\n if (format === true || format === false) {\n strict = format;\n format = undefined;\n }\n\n if (locale === true || locale === false) {\n strict = locale;\n locale = undefined;\n }\n\n if (\n (isObject(input) && isObjectEmpty(input)) ||\n (isArray(input) && input.length === 0)\n ) {\n input = undefined;\n }\n // object construction must be done this way.\n // https://github.com/moment/moment/issues/1423\n c._isAMomentObject = true;\n c._useUTC = c._isUTC = isUTC;\n c._l = locale;\n c._i = input;\n c._f = format;\n c._strict = strict;\n\n return createFromConfig(c);\n }\n\n function createLocal(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, false);\n }\n\n var prototypeMin = deprecate(\n 'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other < this ? this : other;\n } else {\n return createInvalid();\n }\n }\n ),\n prototypeMax = deprecate(\n 'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other > this ? this : other;\n } else {\n return createInvalid();\n }\n }\n );\n\n // Pick a moment m from moments so that m[fn](other) is true for all\n // other. This relies on the function fn to be transitive.\n //\n // moments should either be an array of moment objects or an array, whose\n // first element is an array of moment objects.\n function pickBy(fn, moments) {\n var res, i;\n if (moments.length === 1 && isArray(moments[0])) {\n moments = moments[0];\n }\n if (!moments.length) {\n return createLocal();\n }\n res = moments[0];\n for (i = 1; i < moments.length; ++i) {\n if (!moments[i].isValid() || moments[i][fn](res)) {\n res = moments[i];\n }\n }\n return res;\n }\n\n // TODO: Use [].sort instead?\n function min() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isBefore', args);\n }\n\n function max() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isAfter', args);\n }\n\n var now = function () {\n return Date.now ? Date.now() : +new Date();\n };\n\n var ordering = [\n 'year',\n 'quarter',\n 'month',\n 'week',\n 'day',\n 'hour',\n 'minute',\n 'second',\n 'millisecond',\n ];\n\n function isDurationValid(m) {\n var key,\n unitHasDecimal = false,\n i,\n orderLen = ordering.length;\n for (key in m) {\n if (\n hasOwnProp(m, key) &&\n !(\n indexOf.call(ordering, key) !== -1 &&\n (m[key] == null || !isNaN(m[key]))\n )\n ) {\n return false;\n }\n }\n\n for (i = 0; i < orderLen; ++i) {\n if (m[ordering[i]]) {\n if (unitHasDecimal) {\n return false; // only allow non-integers for smallest unit\n }\n if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) {\n unitHasDecimal = true;\n }\n }\n }\n\n return true;\n }\n\n function isValid$1() {\n return this._isValid;\n }\n\n function createInvalid$1() {\n return createDuration(NaN);\n }\n\n function Duration(duration) {\n var normalizedInput = normalizeObjectUnits(duration),\n years = normalizedInput.year || 0,\n quarters = normalizedInput.quarter || 0,\n months = normalizedInput.month || 0,\n weeks = normalizedInput.week || normalizedInput.isoWeek || 0,\n days = normalizedInput.day || 0,\n hours = normalizedInput.hour || 0,\n minutes = normalizedInput.minute || 0,\n seconds = normalizedInput.second || 0,\n milliseconds = normalizedInput.millisecond || 0;\n\n this._isValid = isDurationValid(normalizedInput);\n\n // representation for dateAddRemove\n this._milliseconds =\n +milliseconds +\n seconds * 1e3 + // 1000\n minutes * 6e4 + // 1000 * 60\n hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978\n // Because of dateAddRemove treats 24 hours as different from a\n // day when working around DST, we need to store them separately\n this._days = +days + weeks * 7;\n // It is impossible to translate months into days without knowing\n // which months you are are talking about, so we have to store\n // it separately.\n this._months = +months + quarters * 3 + years * 12;\n\n this._data = {};\n\n this._locale = getLocale();\n\n this._bubble();\n }\n\n function isDuration(obj) {\n return obj instanceof Duration;\n }\n\n function absRound(number) {\n if (number < 0) {\n return Math.round(-1 * number) * -1;\n } else {\n return Math.round(number);\n }\n }\n\n // compare two arrays, return the number of differences\n function compareArrays(array1, array2, dontConvert) {\n var len = Math.min(array1.length, array2.length),\n lengthDiff = Math.abs(array1.length - array2.length),\n diffs = 0,\n i;\n for (i = 0; i < len; i++) {\n if (\n (dontConvert && array1[i] !== array2[i]) ||\n (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))\n ) {\n diffs++;\n }\n }\n return diffs + lengthDiff;\n }\n\n // FORMATTING\n\n function offset(token, separator) {\n addFormatToken(token, 0, 0, function () {\n var offset = this.utcOffset(),\n sign = '+';\n if (offset < 0) {\n offset = -offset;\n sign = '-';\n }\n return (\n sign +\n zeroFill(~~(offset / 60), 2) +\n separator +\n zeroFill(~~offset % 60, 2)\n );\n });\n }\n\n offset('Z', ':');\n offset('ZZ', '');\n\n // PARSING\n\n addRegexToken('Z', matchShortOffset);\n addRegexToken('ZZ', matchShortOffset);\n addParseToken(['Z', 'ZZ'], function (input, array, config) {\n config._useUTC = true;\n config._tzm = offsetFromString(matchShortOffset, input);\n });\n\n // HELPERS\n\n // timezone chunker\n // '+10:00' > ['10', '00']\n // '-1530' > ['-15', '30']\n var chunkOffset = /([\\+\\-]|\\d\\d)/gi;\n\n function offsetFromString(matcher, string) {\n var matches = (string || '').match(matcher),\n chunk,\n parts,\n minutes;\n\n if (matches === null) {\n return null;\n }\n\n chunk = matches[matches.length - 1] || [];\n parts = (chunk + '').match(chunkOffset) || ['-', 0, 0];\n minutes = +(parts[1] * 60) + toInt(parts[2]);\n\n return minutes === 0 ? 0 : parts[0] === '+' ? minutes : -minutes;\n }\n\n // Return a moment from input, that is local/utc/zone equivalent to model.\n function cloneWithOffset(input, model) {\n var res, diff;\n if (model._isUTC) {\n res = model.clone();\n diff =\n (isMoment(input) || isDate(input)\n ? input.valueOf()\n : createLocal(input).valueOf()) - res.valueOf();\n // Use low-level api, because this fn is low-level api.\n res._d.setTime(res._d.valueOf() + diff);\n hooks.updateOffset(res, false);\n return res;\n } else {\n return createLocal(input).local();\n }\n }\n\n function getDateOffset(m) {\n // On Firefox.24 Date#getTimezoneOffset returns a floating point.\n // https://github.com/moment/moment/pull/1871\n return -Math.round(m._d.getTimezoneOffset());\n }\n\n // HOOKS\n\n // This function will be called whenever a moment is mutated.\n // It is intended to keep the offset in sync with the timezone.\n hooks.updateOffset = function () {};\n\n // MOMENTS\n\n // keepLocalTime = true means only change the timezone, without\n // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->\n // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset\n // +0200, so we adjust the time as needed, to be valid.\n //\n // Keeping the time actually adds/subtracts (one hour)\n // from the actual represented time. That is why we call updateOffset\n // a second time. In case it wants us to change the offset again\n // _changeInProgress == true case, then we have to adjust, because\n // there is no such time in the given timezone.\n function getSetOffset(input, keepLocalTime, keepMinutes) {\n var offset = this._offset || 0,\n localAdjust;\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n if (input != null) {\n if (typeof input === 'string') {\n input = offsetFromString(matchShortOffset, input);\n if (input === null) {\n return this;\n }\n } else if (Math.abs(input) < 16 && !keepMinutes) {\n input = input * 60;\n }\n if (!this._isUTC && keepLocalTime) {\n localAdjust = getDateOffset(this);\n }\n this._offset = input;\n this._isUTC = true;\n if (localAdjust != null) {\n this.add(localAdjust, 'm');\n }\n if (offset !== input) {\n if (!keepLocalTime || this._changeInProgress) {\n addSubtract(\n this,\n createDuration(input - offset, 'm'),\n 1,\n false\n );\n } else if (!this._changeInProgress) {\n this._changeInProgress = true;\n hooks.updateOffset(this, true);\n this._changeInProgress = null;\n }\n }\n return this;\n } else {\n return this._isUTC ? offset : getDateOffset(this);\n }\n }\n\n function getSetZone(input, keepLocalTime) {\n if (input != null) {\n if (typeof input !== 'string') {\n input = -input;\n }\n\n this.utcOffset(input, keepLocalTime);\n\n return this;\n } else {\n return -this.utcOffset();\n }\n }\n\n function setOffsetToUTC(keepLocalTime) {\n return this.utcOffset(0, keepLocalTime);\n }\n\n function setOffsetToLocal(keepLocalTime) {\n if (this._isUTC) {\n this.utcOffset(0, keepLocalTime);\n this._isUTC = false;\n\n if (keepLocalTime) {\n this.subtract(getDateOffset(this), 'm');\n }\n }\n return this;\n }\n\n function setOffsetToParsedOffset() {\n if (this._tzm != null) {\n this.utcOffset(this._tzm, false, true);\n } else if (typeof this._i === 'string') {\n var tZone = offsetFromString(matchOffset, this._i);\n if (tZone != null) {\n this.utcOffset(tZone);\n } else {\n this.utcOffset(0, true);\n }\n }\n return this;\n }\n\n function hasAlignedHourOffset(input) {\n if (!this.isValid()) {\n return false;\n }\n input = input ? createLocal(input).utcOffset() : 0;\n\n return (this.utcOffset() - input) % 60 === 0;\n }\n\n function isDaylightSavingTime() {\n return (\n this.utcOffset() > this.clone().month(0).utcOffset() ||\n this.utcOffset() > this.clone().month(5).utcOffset()\n );\n }\n\n function isDaylightSavingTimeShifted() {\n if (!isUndefined(this._isDSTShifted)) {\n return this._isDSTShifted;\n }\n\n var c = {},\n other;\n\n copyConfig(c, this);\n c = prepareConfig(c);\n\n if (c._a) {\n other = c._isUTC ? createUTC(c._a) : createLocal(c._a);\n this._isDSTShifted =\n this.isValid() && compareArrays(c._a, other.toArray()) > 0;\n } else {\n this._isDSTShifted = false;\n }\n\n return this._isDSTShifted;\n }\n\n function isLocal() {\n return this.isValid() ? !this._isUTC : false;\n }\n\n function isUtcOffset() {\n return this.isValid() ? this._isUTC : false;\n }\n\n function isUtc() {\n return this.isValid() ? this._isUTC && this._offset === 0 : false;\n }\n\n // ASP.NET json date format regex\n var aspNetRegex = /^(-|\\+)?(?:(\\d*)[. ])?(\\d+):(\\d+)(?::(\\d+)(\\.\\d*)?)?$/,\n // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html\n // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere\n // and further modified to allow for strings containing both week and day\n isoRegex =\n /^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;\n\n function createDuration(input, key) {\n var duration = input,\n // matching against regexp is expensive, do it on demand\n match = null,\n sign,\n ret,\n diffRes;\n\n if (isDuration(input)) {\n duration = {\n ms: input._milliseconds,\n d: input._days,\n M: input._months,\n };\n } else if (isNumber(input) || !isNaN(+input)) {\n duration = {};\n if (key) {\n duration[key] = +input;\n } else {\n duration.milliseconds = +input;\n }\n } else if ((match = aspNetRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: 0,\n d: toInt(match[DATE]) * sign,\n h: toInt(match[HOUR]) * sign,\n m: toInt(match[MINUTE]) * sign,\n s: toInt(match[SECOND]) * sign,\n ms: toInt(absRound(match[MILLISECOND] * 1000)) * sign, // the millisecond decimal point is included in the match\n };\n } else if ((match = isoRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: parseIso(match[2], sign),\n M: parseIso(match[3], sign),\n w: parseIso(match[4], sign),\n d: parseIso(match[5], sign),\n h: parseIso(match[6], sign),\n m: parseIso(match[7], sign),\n s: parseIso(match[8], sign),\n };\n } else if (duration == null) {\n // checks for null or undefined\n duration = {};\n } else if (\n typeof duration === 'object' &&\n ('from' in duration || 'to' in duration)\n ) {\n diffRes = momentsDifference(\n createLocal(duration.from),\n createLocal(duration.to)\n );\n\n duration = {};\n duration.ms = diffRes.milliseconds;\n duration.M = diffRes.months;\n }\n\n ret = new Duration(duration);\n\n if (isDuration(input) && hasOwnProp(input, '_locale')) {\n ret._locale = input._locale;\n }\n\n if (isDuration(input) && hasOwnProp(input, '_isValid')) {\n ret._isValid = input._isValid;\n }\n\n return ret;\n }\n\n createDuration.fn = Duration.prototype;\n createDuration.invalid = createInvalid$1;\n\n function parseIso(inp, sign) {\n // We'd normally use ~~inp for this, but unfortunately it also\n // converts floats to ints.\n // inp may be undefined, so careful calling replace on it.\n var res = inp && parseFloat(inp.replace(',', '.'));\n // apply sign while we're at it\n return (isNaN(res) ? 0 : res) * sign;\n }\n\n function positiveMomentsDifference(base, other) {\n var res = {};\n\n res.months =\n other.month() - base.month() + (other.year() - base.year()) * 12;\n if (base.clone().add(res.months, 'M').isAfter(other)) {\n --res.months;\n }\n\n res.milliseconds = +other - +base.clone().add(res.months, 'M');\n\n return res;\n }\n\n function momentsDifference(base, other) {\n var res;\n if (!(base.isValid() && other.isValid())) {\n return { milliseconds: 0, months: 0 };\n }\n\n other = cloneWithOffset(other, base);\n if (base.isBefore(other)) {\n res = positiveMomentsDifference(base, other);\n } else {\n res = positiveMomentsDifference(other, base);\n res.milliseconds = -res.milliseconds;\n res.months = -res.months;\n }\n\n return res;\n }\n\n // TODO: remove 'name' arg after deprecation is removed\n function createAdder(direction, name) {\n return function (val, period) {\n var dur, tmp;\n //invert the arguments, but complain about it\n if (period !== null && !isNaN(+period)) {\n deprecateSimple(\n name,\n 'moment().' +\n name +\n '(period, number) is deprecated. Please use moment().' +\n name +\n '(number, period). ' +\n 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.'\n );\n tmp = val;\n val = period;\n period = tmp;\n }\n\n dur = createDuration(val, period);\n addSubtract(this, dur, direction);\n return this;\n };\n }\n\n function addSubtract(mom, duration, isAdding, updateOffset) {\n var milliseconds = duration._milliseconds,\n days = absRound(duration._days),\n months = absRound(duration._months);\n\n if (!mom.isValid()) {\n // No op\n return;\n }\n\n updateOffset = updateOffset == null ? true : updateOffset;\n\n if (months) {\n setMonth(mom, get(mom, 'Month') + months * isAdding);\n }\n if (days) {\n set$1(mom, 'Date', get(mom, 'Date') + days * isAdding);\n }\n if (milliseconds) {\n mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);\n }\n if (updateOffset) {\n hooks.updateOffset(mom, days || months);\n }\n }\n\n var add = createAdder(1, 'add'),\n subtract = createAdder(-1, 'subtract');\n\n function isString(input) {\n return typeof input === 'string' || input instanceof String;\n }\n\n // type MomentInput = Moment | Date | string | number | (number | string)[] | MomentInputObject | void; // null | undefined\n function isMomentInput(input) {\n return (\n isMoment(input) ||\n isDate(input) ||\n isString(input) ||\n isNumber(input) ||\n isNumberOrStringArray(input) ||\n isMomentInputObject(input) ||\n input === null ||\n input === undefined\n );\n }\n\n function isMomentInputObject(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'years',\n 'year',\n 'y',\n 'months',\n 'month',\n 'M',\n 'days',\n 'day',\n 'd',\n 'dates',\n 'date',\n 'D',\n 'hours',\n 'hour',\n 'h',\n 'minutes',\n 'minute',\n 'm',\n 'seconds',\n 'second',\n 's',\n 'milliseconds',\n 'millisecond',\n 'ms',\n ],\n i,\n property,\n propertyLen = properties.length;\n\n for (i = 0; i < propertyLen; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function isNumberOrStringArray(input) {\n var arrayTest = isArray(input),\n dataTypeTest = false;\n if (arrayTest) {\n dataTypeTest =\n input.filter(function (item) {\n return !isNumber(item) && isString(input);\n }).length === 0;\n }\n return arrayTest && dataTypeTest;\n }\n\n function isCalendarSpec(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'sameDay',\n 'nextDay',\n 'lastDay',\n 'nextWeek',\n 'lastWeek',\n 'sameElse',\n ],\n i,\n property;\n\n for (i = 0; i < properties.length; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function getCalendarFormat(myMoment, now) {\n var diff = myMoment.diff(now, 'days', true);\n return diff < -6\n ? 'sameElse'\n : diff < -1\n ? 'lastWeek'\n : diff < 0\n ? 'lastDay'\n : diff < 1\n ? 'sameDay'\n : diff < 2\n ? 'nextDay'\n : diff < 7\n ? 'nextWeek'\n : 'sameElse';\n }\n\n function calendar$1(time, formats) {\n // Support for single parameter, formats only overload to the calendar function\n if (arguments.length === 1) {\n if (!arguments[0]) {\n time = undefined;\n formats = undefined;\n } else if (isMomentInput(arguments[0])) {\n time = arguments[0];\n formats = undefined;\n } else if (isCalendarSpec(arguments[0])) {\n formats = arguments[0];\n time = undefined;\n }\n }\n // We want to compare the start of today, vs this.\n // Getting start-of-today depends on whether we're local/utc/offset or not.\n var now = time || createLocal(),\n sod = cloneWithOffset(now, this).startOf('day'),\n format = hooks.calendarFormat(this, sod) || 'sameElse',\n output =\n formats &&\n (isFunction(formats[format])\n ? formats[format].call(this, now)\n : formats[format]);\n\n return this.format(\n output || this.localeData().calendar(format, this, createLocal(now))\n );\n }\n\n function clone() {\n return new Moment(this);\n }\n\n function isAfter(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() > localInput.valueOf();\n } else {\n return localInput.valueOf() < this.clone().startOf(units).valueOf();\n }\n }\n\n function isBefore(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() < localInput.valueOf();\n } else {\n return this.clone().endOf(units).valueOf() < localInput.valueOf();\n }\n }\n\n function isBetween(from, to, units, inclusivity) {\n var localFrom = isMoment(from) ? from : createLocal(from),\n localTo = isMoment(to) ? to : createLocal(to);\n if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) {\n return false;\n }\n inclusivity = inclusivity || '()';\n return (\n (inclusivity[0] === '('\n ? this.isAfter(localFrom, units)\n : !this.isBefore(localFrom, units)) &&\n (inclusivity[1] === ')'\n ? this.isBefore(localTo, units)\n : !this.isAfter(localTo, units))\n );\n }\n\n function isSame(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input),\n inputMs;\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() === localInput.valueOf();\n } else {\n inputMs = localInput.valueOf();\n return (\n this.clone().startOf(units).valueOf() <= inputMs &&\n inputMs <= this.clone().endOf(units).valueOf()\n );\n }\n }\n\n function isSameOrAfter(input, units) {\n return this.isSame(input, units) || this.isAfter(input, units);\n }\n\n function isSameOrBefore(input, units) {\n return this.isSame(input, units) || this.isBefore(input, units);\n }\n\n function diff(input, units, asFloat) {\n var that, zoneDelta, output;\n\n if (!this.isValid()) {\n return NaN;\n }\n\n that = cloneWithOffset(input, this);\n\n if (!that.isValid()) {\n return NaN;\n }\n\n zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4;\n\n units = normalizeUnits(units);\n\n switch (units) {\n case 'year':\n output = monthDiff(this, that) / 12;\n break;\n case 'month':\n output = monthDiff(this, that);\n break;\n case 'quarter':\n output = monthDiff(this, that) / 3;\n break;\n case 'second':\n output = (this - that) / 1e3;\n break; // 1000\n case 'minute':\n output = (this - that) / 6e4;\n break; // 1000 * 60\n case 'hour':\n output = (this - that) / 36e5;\n break; // 1000 * 60 * 60\n case 'day':\n output = (this - that - zoneDelta) / 864e5;\n break; // 1000 * 60 * 60 * 24, negate dst\n case 'week':\n output = (this - that - zoneDelta) / 6048e5;\n break; // 1000 * 60 * 60 * 24 * 7, negate dst\n default:\n output = this - that;\n }\n\n return asFloat ? output : absFloor(output);\n }\n\n function monthDiff(a, b) {\n if (a.date() < b.date()) {\n // end-of-month calculations work correct when the start month has more\n // days than the end month.\n return -monthDiff(b, a);\n }\n // difference in months\n var wholeMonthDiff = (b.year() - a.year()) * 12 + (b.month() - a.month()),\n // b is in (anchor - 1 month, anchor + 1 month)\n anchor = a.clone().add(wholeMonthDiff, 'months'),\n anchor2,\n adjust;\n\n if (b - anchor < 0) {\n anchor2 = a.clone().add(wholeMonthDiff - 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor - anchor2);\n } else {\n anchor2 = a.clone().add(wholeMonthDiff + 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor2 - anchor);\n }\n\n //check for negative zero, return zero if negative zero\n return -(wholeMonthDiff + adjust) || 0;\n }\n\n hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';\n hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';\n\n function toString() {\n return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');\n }\n\n function toISOString(keepOffset) {\n if (!this.isValid()) {\n return null;\n }\n var utc = keepOffset !== true,\n m = utc ? this.clone().utc() : this;\n if (m.year() < 0 || m.year() > 9999) {\n return formatMoment(\n m,\n utc\n ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]'\n : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n if (isFunction(Date.prototype.toISOString)) {\n // native implementation is ~50x faster, use it when we can\n if (utc) {\n return this.toDate().toISOString();\n } else {\n return new Date(this.valueOf() + this.utcOffset() * 60 * 1000)\n .toISOString()\n .replace('Z', formatMoment(m, 'Z'));\n }\n }\n return formatMoment(\n m,\n utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n\n /**\n * Return a human readable representation of a moment that can\n * also be evaluated to get a new moment which is the same\n *\n * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects\n */\n function inspect() {\n if (!this.isValid()) {\n return 'moment.invalid(/* ' + this._i + ' */)';\n }\n var func = 'moment',\n zone = '',\n prefix,\n year,\n datetime,\n suffix;\n if (!this.isLocal()) {\n func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone';\n zone = 'Z';\n }\n prefix = '[' + func + '(\"]';\n year = 0 <= this.year() && this.year() <= 9999 ? 'YYYY' : 'YYYYYY';\n datetime = '-MM-DD[T]HH:mm:ss.SSS';\n suffix = zone + '[\")]';\n\n return this.format(prefix + year + datetime + suffix);\n }\n\n function format(inputString) {\n if (!inputString) {\n inputString = this.isUtc()\n ? hooks.defaultFormatUtc\n : hooks.defaultFormat;\n }\n var output = formatMoment(this, inputString);\n return this.localeData().postformat(output);\n }\n\n function from(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ to: this, from: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function fromNow(withoutSuffix) {\n return this.from(createLocal(), withoutSuffix);\n }\n\n function to(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ from: this, to: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function toNow(withoutSuffix) {\n return this.to(createLocal(), withoutSuffix);\n }\n\n // If passed a locale key, it will set the locale for this\n // instance. Otherwise, it will return the locale configuration\n // variables for this instance.\n function locale(key) {\n var newLocaleData;\n\n if (key === undefined) {\n return this._locale._abbr;\n } else {\n newLocaleData = getLocale(key);\n if (newLocaleData != null) {\n this._locale = newLocaleData;\n }\n return this;\n }\n }\n\n var lang = deprecate(\n 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.',\n function (key) {\n if (key === undefined) {\n return this.localeData();\n } else {\n return this.locale(key);\n }\n }\n );\n\n function localeData() {\n return this._locale;\n }\n\n var MS_PER_SECOND = 1000,\n MS_PER_MINUTE = 60 * MS_PER_SECOND,\n MS_PER_HOUR = 60 * MS_PER_MINUTE,\n MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR;\n\n // actual modulo - handles negative numbers (for dates before 1970):\n function mod$1(dividend, divisor) {\n return ((dividend % divisor) + divisor) % divisor;\n }\n\n function localStartOfDate(y, m, d) {\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return new Date(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return new Date(y, m, d).valueOf();\n }\n }\n\n function utcStartOfDate(y, m, d) {\n // Date.UTC remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return Date.UTC(y, m, d);\n }\n }\n\n function startOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year(), 0, 1);\n break;\n case 'quarter':\n time = startOfDate(\n this.year(),\n this.month() - (this.month() % 3),\n 1\n );\n break;\n case 'month':\n time = startOfDate(this.year(), this.month(), 1);\n break;\n case 'week':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday()\n );\n break;\n case 'isoWeek':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1)\n );\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date());\n break;\n case 'hour':\n time = this._d.valueOf();\n time -= mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n );\n break;\n case 'minute':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_MINUTE);\n break;\n case 'second':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_SECOND);\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function endOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year() + 1, 0, 1) - 1;\n break;\n case 'quarter':\n time =\n startOfDate(\n this.year(),\n this.month() - (this.month() % 3) + 3,\n 1\n ) - 1;\n break;\n case 'month':\n time = startOfDate(this.year(), this.month() + 1, 1) - 1;\n break;\n case 'week':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday() + 7\n ) - 1;\n break;\n case 'isoWeek':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1) + 7\n ) - 1;\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date() + 1) - 1;\n break;\n case 'hour':\n time = this._d.valueOf();\n time +=\n MS_PER_HOUR -\n mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n ) -\n 1;\n break;\n case 'minute':\n time = this._d.valueOf();\n time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1;\n break;\n case 'second':\n time = this._d.valueOf();\n time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1;\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function valueOf() {\n return this._d.valueOf() - (this._offset || 0) * 60000;\n }\n\n function unix() {\n return Math.floor(this.valueOf() / 1000);\n }\n\n function toDate() {\n return new Date(this.valueOf());\n }\n\n function toArray() {\n var m = this;\n return [\n m.year(),\n m.month(),\n m.date(),\n m.hour(),\n m.minute(),\n m.second(),\n m.millisecond(),\n ];\n }\n\n function toObject() {\n var m = this;\n return {\n years: m.year(),\n months: m.month(),\n date: m.date(),\n hours: m.hours(),\n minutes: m.minutes(),\n seconds: m.seconds(),\n milliseconds: m.milliseconds(),\n };\n }\n\n function toJSON() {\n // new Date(NaN).toJSON() === null\n return this.isValid() ? this.toISOString() : null;\n }\n\n function isValid$2() {\n return isValid(this);\n }\n\n function parsingFlags() {\n return extend({}, getParsingFlags(this));\n }\n\n function invalidAt() {\n return getParsingFlags(this).overflow;\n }\n\n function creationData() {\n return {\n input: this._i,\n format: this._f,\n locale: this._locale,\n isUTC: this._isUTC,\n strict: this._strict,\n };\n }\n\n addFormatToken('N', 0, 0, 'eraAbbr');\n addFormatToken('NN', 0, 0, 'eraAbbr');\n addFormatToken('NNN', 0, 0, 'eraAbbr');\n addFormatToken('NNNN', 0, 0, 'eraName');\n addFormatToken('NNNNN', 0, 0, 'eraNarrow');\n\n addFormatToken('y', ['y', 1], 'yo', 'eraYear');\n addFormatToken('y', ['yy', 2], 0, 'eraYear');\n addFormatToken('y', ['yyy', 3], 0, 'eraYear');\n addFormatToken('y', ['yyyy', 4], 0, 'eraYear');\n\n addRegexToken('N', matchEraAbbr);\n addRegexToken('NN', matchEraAbbr);\n addRegexToken('NNN', matchEraAbbr);\n addRegexToken('NNNN', matchEraName);\n addRegexToken('NNNNN', matchEraNarrow);\n\n addParseToken(\n ['N', 'NN', 'NNN', 'NNNN', 'NNNNN'],\n function (input, array, config, token) {\n var era = config._locale.erasParse(input, token, config._strict);\n if (era) {\n getParsingFlags(config).era = era;\n } else {\n getParsingFlags(config).invalidEra = input;\n }\n }\n );\n\n addRegexToken('y', matchUnsigned);\n addRegexToken('yy', matchUnsigned);\n addRegexToken('yyy', matchUnsigned);\n addRegexToken('yyyy', matchUnsigned);\n addRegexToken('yo', matchEraYearOrdinal);\n\n addParseToken(['y', 'yy', 'yyy', 'yyyy'], YEAR);\n addParseToken(['yo'], function (input, array, config, token) {\n var match;\n if (config._locale._eraYearOrdinalRegex) {\n match = input.match(config._locale._eraYearOrdinalRegex);\n }\n\n if (config._locale.eraYearOrdinalParse) {\n array[YEAR] = config._locale.eraYearOrdinalParse(input, match);\n } else {\n array[YEAR] = parseInt(input, 10);\n }\n });\n\n function localeEras(m, format) {\n var i,\n l,\n date,\n eras = this._eras || getLocale('en')._eras;\n for (i = 0, l = eras.length; i < l; ++i) {\n switch (typeof eras[i].since) {\n case 'string':\n // truncate time\n date = hooks(eras[i].since).startOf('day');\n eras[i].since = date.valueOf();\n break;\n }\n\n switch (typeof eras[i].until) {\n case 'undefined':\n eras[i].until = +Infinity;\n break;\n case 'string':\n // truncate time\n date = hooks(eras[i].until).startOf('day').valueOf();\n eras[i].until = date.valueOf();\n break;\n }\n }\n return eras;\n }\n\n function localeErasParse(eraName, format, strict) {\n var i,\n l,\n eras = this.eras(),\n name,\n abbr,\n narrow;\n eraName = eraName.toUpperCase();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n name = eras[i].name.toUpperCase();\n abbr = eras[i].abbr.toUpperCase();\n narrow = eras[i].narrow.toUpperCase();\n\n if (strict) {\n switch (format) {\n case 'N':\n case 'NN':\n case 'NNN':\n if (abbr === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNN':\n if (name === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNNN':\n if (narrow === eraName) {\n return eras[i];\n }\n break;\n }\n } else if ([name, abbr, narrow].indexOf(eraName) >= 0) {\n return eras[i];\n }\n }\n }\n\n function localeErasConvertYear(era, year) {\n var dir = era.since <= era.until ? +1 : -1;\n if (year === undefined) {\n return hooks(era.since).year();\n } else {\n return hooks(era.since).year() + (year - era.offset) * dir;\n }\n }\n\n function getEraName() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].name;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].name;\n }\n }\n\n return '';\n }\n\n function getEraNarrow() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].narrow;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].narrow;\n }\n }\n\n return '';\n }\n\n function getEraAbbr() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].abbr;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].abbr;\n }\n }\n\n return '';\n }\n\n function getEraYear() {\n var i,\n l,\n dir,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n dir = eras[i].since <= eras[i].until ? +1 : -1;\n\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (\n (eras[i].since <= val && val <= eras[i].until) ||\n (eras[i].until <= val && val <= eras[i].since)\n ) {\n return (\n (this.year() - hooks(eras[i].since).year()) * dir +\n eras[i].offset\n );\n }\n }\n\n return this.year();\n }\n\n function erasNameRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNameRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNameRegex : this._erasRegex;\n }\n\n function erasAbbrRegex(isStrict) {\n if (!hasOwnProp(this, '_erasAbbrRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasAbbrRegex : this._erasRegex;\n }\n\n function erasNarrowRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNarrowRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNarrowRegex : this._erasRegex;\n }\n\n function matchEraAbbr(isStrict, locale) {\n return locale.erasAbbrRegex(isStrict);\n }\n\n function matchEraName(isStrict, locale) {\n return locale.erasNameRegex(isStrict);\n }\n\n function matchEraNarrow(isStrict, locale) {\n return locale.erasNarrowRegex(isStrict);\n }\n\n function matchEraYearOrdinal(isStrict, locale) {\n return locale._eraYearOrdinalRegex || matchUnsigned;\n }\n\n function computeErasParse() {\n var abbrPieces = [],\n namePieces = [],\n narrowPieces = [],\n mixedPieces = [],\n i,\n l,\n erasName,\n erasAbbr,\n erasNarrow,\n eras = this.eras();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n erasName = regexEscape(eras[i].name);\n erasAbbr = regexEscape(eras[i].abbr);\n erasNarrow = regexEscape(eras[i].narrow);\n\n namePieces.push(erasName);\n abbrPieces.push(erasAbbr);\n narrowPieces.push(erasNarrow);\n mixedPieces.push(erasName);\n mixedPieces.push(erasAbbr);\n mixedPieces.push(erasNarrow);\n }\n\n this._erasRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._erasNameRegex = new RegExp('^(' + namePieces.join('|') + ')', 'i');\n this._erasAbbrRegex = new RegExp('^(' + abbrPieces.join('|') + ')', 'i');\n this._erasNarrowRegex = new RegExp(\n '^(' + narrowPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n addFormatToken(0, ['gg', 2], 0, function () {\n return this.weekYear() % 100;\n });\n\n addFormatToken(0, ['GG', 2], 0, function () {\n return this.isoWeekYear() % 100;\n });\n\n function addWeekYearFormatToken(token, getter) {\n addFormatToken(0, [token, token.length], 0, getter);\n }\n\n addWeekYearFormatToken('gggg', 'weekYear');\n addWeekYearFormatToken('ggggg', 'weekYear');\n addWeekYearFormatToken('GGGG', 'isoWeekYear');\n addWeekYearFormatToken('GGGGG', 'isoWeekYear');\n\n // ALIASES\n\n // PARSING\n\n addRegexToken('G', matchSigned);\n addRegexToken('g', matchSigned);\n addRegexToken('GG', match1to2, match2);\n addRegexToken('gg', match1to2, match2);\n addRegexToken('GGGG', match1to4, match4);\n addRegexToken('gggg', match1to4, match4);\n addRegexToken('GGGGG', match1to6, match6);\n addRegexToken('ggggg', match1to6, match6);\n\n addWeekParseToken(\n ['gggg', 'ggggg', 'GGGG', 'GGGGG'],\n function (input, week, config, token) {\n week[token.substr(0, 2)] = toInt(input);\n }\n );\n\n addWeekParseToken(['gg', 'GG'], function (input, week, config, token) {\n week[token] = hooks.parseTwoDigitYear(input);\n });\n\n // MOMENTS\n\n function getSetWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.week(),\n this.weekday() + this.localeData()._week.dow,\n this.localeData()._week.dow,\n this.localeData()._week.doy\n );\n }\n\n function getSetISOWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.isoWeek(),\n this.isoWeekday(),\n 1,\n 4\n );\n }\n\n function getISOWeeksInYear() {\n return weeksInYear(this.year(), 1, 4);\n }\n\n function getISOWeeksInISOWeekYear() {\n return weeksInYear(this.isoWeekYear(), 1, 4);\n }\n\n function getWeeksInYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);\n }\n\n function getWeeksInWeekYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.weekYear(), weekInfo.dow, weekInfo.doy);\n }\n\n function getSetWeekYearHelper(input, week, weekday, dow, doy) {\n var weeksTarget;\n if (input == null) {\n return weekOfYear(this, dow, doy).year;\n } else {\n weeksTarget = weeksInYear(input, dow, doy);\n if (week > weeksTarget) {\n week = weeksTarget;\n }\n return setWeekAll.call(this, input, week, weekday, dow, doy);\n }\n }\n\n function setWeekAll(weekYear, week, weekday, dow, doy) {\n var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy),\n date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);\n\n this.year(date.getUTCFullYear());\n this.month(date.getUTCMonth());\n this.date(date.getUTCDate());\n return this;\n }\n\n // FORMATTING\n\n addFormatToken('Q', 0, 'Qo', 'quarter');\n\n // PARSING\n\n addRegexToken('Q', match1);\n addParseToken('Q', function (input, array) {\n array[MONTH] = (toInt(input) - 1) * 3;\n });\n\n // MOMENTS\n\n function getSetQuarter(input) {\n return input == null\n ? Math.ceil((this.month() + 1) / 3)\n : this.month((input - 1) * 3 + (this.month() % 3));\n }\n\n // FORMATTING\n\n addFormatToken('D', ['DD', 2], 'Do', 'date');\n\n // PARSING\n\n addRegexToken('D', match1to2, match1to2NoLeadingZero);\n addRegexToken('DD', match1to2, match2);\n addRegexToken('Do', function (isStrict, locale) {\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n return isStrict\n ? locale._dayOfMonthOrdinalParse || locale._ordinalParse\n : locale._dayOfMonthOrdinalParseLenient;\n });\n\n addParseToken(['D', 'DD'], DATE);\n addParseToken('Do', function (input, array) {\n array[DATE] = toInt(input.match(match1to2)[0]);\n });\n\n // MOMENTS\n\n var getSetDayOfMonth = makeGetSet('Date', true);\n\n // FORMATTING\n\n addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear');\n\n // PARSING\n\n addRegexToken('DDD', match1to3);\n addRegexToken('DDDD', match3);\n addParseToken(['DDD', 'DDDD'], function (input, array, config) {\n config._dayOfYear = toInt(input);\n });\n\n // HELPERS\n\n // MOMENTS\n\n function getSetDayOfYear(input) {\n var dayOfYear =\n Math.round(\n (this.clone().startOf('day') - this.clone().startOf('year')) / 864e5\n ) + 1;\n return input == null ? dayOfYear : this.add(input - dayOfYear, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('m', ['mm', 2], 0, 'minute');\n\n // PARSING\n\n addRegexToken('m', match1to2, match1to2HasZero);\n addRegexToken('mm', match1to2, match2);\n addParseToken(['m', 'mm'], MINUTE);\n\n // MOMENTS\n\n var getSetMinute = makeGetSet('Minutes', false);\n\n // FORMATTING\n\n addFormatToken('s', ['ss', 2], 0, 'second');\n\n // PARSING\n\n addRegexToken('s', match1to2, match1to2HasZero);\n addRegexToken('ss', match1to2, match2);\n addParseToken(['s', 'ss'], SECOND);\n\n // MOMENTS\n\n var getSetSecond = makeGetSet('Seconds', false);\n\n // FORMATTING\n\n addFormatToken('S', 0, 0, function () {\n return ~~(this.millisecond() / 100);\n });\n\n addFormatToken(0, ['SS', 2], 0, function () {\n return ~~(this.millisecond() / 10);\n });\n\n addFormatToken(0, ['SSS', 3], 0, 'millisecond');\n addFormatToken(0, ['SSSS', 4], 0, function () {\n return this.millisecond() * 10;\n });\n addFormatToken(0, ['SSSSS', 5], 0, function () {\n return this.millisecond() * 100;\n });\n addFormatToken(0, ['SSSSSS', 6], 0, function () {\n return this.millisecond() * 1000;\n });\n addFormatToken(0, ['SSSSSSS', 7], 0, function () {\n return this.millisecond() * 10000;\n });\n addFormatToken(0, ['SSSSSSSS', 8], 0, function () {\n return this.millisecond() * 100000;\n });\n addFormatToken(0, ['SSSSSSSSS', 9], 0, function () {\n return this.millisecond() * 1000000;\n });\n\n // PARSING\n\n addRegexToken('S', match1to3, match1);\n addRegexToken('SS', match1to3, match2);\n addRegexToken('SSS', match1to3, match3);\n\n var token, getSetMillisecond;\n for (token = 'SSSS'; token.length <= 9; token += 'S') {\n addRegexToken(token, matchUnsigned);\n }\n\n function parseMs(input, array) {\n array[MILLISECOND] = toInt(('0.' + input) * 1000);\n }\n\n for (token = 'S'; token.length <= 9; token += 'S') {\n addParseToken(token, parseMs);\n }\n\n getSetMillisecond = makeGetSet('Milliseconds', false);\n\n // FORMATTING\n\n addFormatToken('z', 0, 0, 'zoneAbbr');\n addFormatToken('zz', 0, 0, 'zoneName');\n\n // MOMENTS\n\n function getZoneAbbr() {\n return this._isUTC ? 'UTC' : '';\n }\n\n function getZoneName() {\n return this._isUTC ? 'Coordinated Universal Time' : '';\n }\n\n var proto = Moment.prototype;\n\n proto.add = add;\n proto.calendar = calendar$1;\n proto.clone = clone;\n proto.diff = diff;\n proto.endOf = endOf;\n proto.format = format;\n proto.from = from;\n proto.fromNow = fromNow;\n proto.to = to;\n proto.toNow = toNow;\n proto.get = stringGet;\n proto.invalidAt = invalidAt;\n proto.isAfter = isAfter;\n proto.isBefore = isBefore;\n proto.isBetween = isBetween;\n proto.isSame = isSame;\n proto.isSameOrAfter = isSameOrAfter;\n proto.isSameOrBefore = isSameOrBefore;\n proto.isValid = isValid$2;\n proto.lang = lang;\n proto.locale = locale;\n proto.localeData = localeData;\n proto.max = prototypeMax;\n proto.min = prototypeMin;\n proto.parsingFlags = parsingFlags;\n proto.set = stringSet;\n proto.startOf = startOf;\n proto.subtract = subtract;\n proto.toArray = toArray;\n proto.toObject = toObject;\n proto.toDate = toDate;\n proto.toISOString = toISOString;\n proto.inspect = inspect;\n if (typeof Symbol !== 'undefined' && Symbol.for != null) {\n proto[Symbol.for('nodejs.util.inspect.custom')] = function () {\n return 'Moment<' + this.format() + '>';\n };\n }\n proto.toJSON = toJSON;\n proto.toString = toString;\n proto.unix = unix;\n proto.valueOf = valueOf;\n proto.creationData = creationData;\n proto.eraName = getEraName;\n proto.eraNarrow = getEraNarrow;\n proto.eraAbbr = getEraAbbr;\n proto.eraYear = getEraYear;\n proto.year = getSetYear;\n proto.isLeapYear = getIsLeapYear;\n proto.weekYear = getSetWeekYear;\n proto.isoWeekYear = getSetISOWeekYear;\n proto.quarter = proto.quarters = getSetQuarter;\n proto.month = getSetMonth;\n proto.daysInMonth = getDaysInMonth;\n proto.week = proto.weeks = getSetWeek;\n proto.isoWeek = proto.isoWeeks = getSetISOWeek;\n proto.weeksInYear = getWeeksInYear;\n proto.weeksInWeekYear = getWeeksInWeekYear;\n proto.isoWeeksInYear = getISOWeeksInYear;\n proto.isoWeeksInISOWeekYear = getISOWeeksInISOWeekYear;\n proto.date = getSetDayOfMonth;\n proto.day = proto.days = getSetDayOfWeek;\n proto.weekday = getSetLocaleDayOfWeek;\n proto.isoWeekday = getSetISODayOfWeek;\n proto.dayOfYear = getSetDayOfYear;\n proto.hour = proto.hours = getSetHour;\n proto.minute = proto.minutes = getSetMinute;\n proto.second = proto.seconds = getSetSecond;\n proto.millisecond = proto.milliseconds = getSetMillisecond;\n proto.utcOffset = getSetOffset;\n proto.utc = setOffsetToUTC;\n proto.local = setOffsetToLocal;\n proto.parseZone = setOffsetToParsedOffset;\n proto.hasAlignedHourOffset = hasAlignedHourOffset;\n proto.isDST = isDaylightSavingTime;\n proto.isLocal = isLocal;\n proto.isUtcOffset = isUtcOffset;\n proto.isUtc = isUtc;\n proto.isUTC = isUtc;\n proto.zoneAbbr = getZoneAbbr;\n proto.zoneName = getZoneName;\n proto.dates = deprecate(\n 'dates accessor is deprecated. Use date instead.',\n getSetDayOfMonth\n );\n proto.months = deprecate(\n 'months accessor is deprecated. Use month instead',\n getSetMonth\n );\n proto.years = deprecate(\n 'years accessor is deprecated. Use year instead',\n getSetYear\n );\n proto.zone = deprecate(\n 'moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/',\n getSetZone\n );\n proto.isDSTShifted = deprecate(\n 'isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information',\n isDaylightSavingTimeShifted\n );\n\n function createUnix(input) {\n return createLocal(input * 1000);\n }\n\n function createInZone() {\n return createLocal.apply(null, arguments).parseZone();\n }\n\n function preParsePostFormat(string) {\n return string;\n }\n\n var proto$1 = Locale.prototype;\n\n proto$1.calendar = calendar;\n proto$1.longDateFormat = longDateFormat;\n proto$1.invalidDate = invalidDate;\n proto$1.ordinal = ordinal;\n proto$1.preparse = preParsePostFormat;\n proto$1.postformat = preParsePostFormat;\n proto$1.relativeTime = relativeTime;\n proto$1.pastFuture = pastFuture;\n proto$1.set = set;\n proto$1.eras = localeEras;\n proto$1.erasParse = localeErasParse;\n proto$1.erasConvertYear = localeErasConvertYear;\n proto$1.erasAbbrRegex = erasAbbrRegex;\n proto$1.erasNameRegex = erasNameRegex;\n proto$1.erasNarrowRegex = erasNarrowRegex;\n\n proto$1.months = localeMonths;\n proto$1.monthsShort = localeMonthsShort;\n proto$1.monthsParse = localeMonthsParse;\n proto$1.monthsRegex = monthsRegex;\n proto$1.monthsShortRegex = monthsShortRegex;\n proto$1.week = localeWeek;\n proto$1.firstDayOfYear = localeFirstDayOfYear;\n proto$1.firstDayOfWeek = localeFirstDayOfWeek;\n\n proto$1.weekdays = localeWeekdays;\n proto$1.weekdaysMin = localeWeekdaysMin;\n proto$1.weekdaysShort = localeWeekdaysShort;\n proto$1.weekdaysParse = localeWeekdaysParse;\n\n proto$1.weekdaysRegex = weekdaysRegex;\n proto$1.weekdaysShortRegex = weekdaysShortRegex;\n proto$1.weekdaysMinRegex = weekdaysMinRegex;\n\n proto$1.isPM = localeIsPM;\n proto$1.meridiem = localeMeridiem;\n\n function get$1(format, index, field, setter) {\n var locale = getLocale(),\n utc = createUTC().set(setter, index);\n return locale[field](utc, format);\n }\n\n function listMonthsImpl(format, index, field) {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n\n if (index != null) {\n return get$1(format, index, field, 'month');\n }\n\n var i,\n out = [];\n for (i = 0; i < 12; i++) {\n out[i] = get$1(format, i, field, 'month');\n }\n return out;\n }\n\n // ()\n // (5)\n // (fmt, 5)\n // (fmt)\n // (true)\n // (true, 5)\n // (true, fmt, 5)\n // (true, fmt)\n function listWeekdaysImpl(localeSorted, format, index, field) {\n if (typeof localeSorted === 'boolean') {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n } else {\n format = localeSorted;\n index = format;\n localeSorted = false;\n\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n }\n\n var locale = getLocale(),\n shift = localeSorted ? locale._week.dow : 0,\n i,\n out = [];\n\n if (index != null) {\n return get$1(format, (index + shift) % 7, field, 'day');\n }\n\n for (i = 0; i < 7; i++) {\n out[i] = get$1(format, (i + shift) % 7, field, 'day');\n }\n return out;\n }\n\n function listMonths(format, index) {\n return listMonthsImpl(format, index, 'months');\n }\n\n function listMonthsShort(format, index) {\n return listMonthsImpl(format, index, 'monthsShort');\n }\n\n function listWeekdays(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdays');\n }\n\n function listWeekdaysShort(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');\n }\n\n function listWeekdaysMin(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');\n }\n\n getSetGlobalLocale('en', {\n eras: [\n {\n since: '0001-01-01',\n until: +Infinity,\n offset: 1,\n name: 'Anno Domini',\n narrow: 'AD',\n abbr: 'AD',\n },\n {\n since: '0000-12-31',\n until: -Infinity,\n offset: 1,\n name: 'Before Christ',\n narrow: 'BC',\n abbr: 'BC',\n },\n ],\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n toInt((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n });\n\n // Side effect imports\n\n hooks.lang = deprecate(\n 'moment.lang is deprecated. Use moment.locale instead.',\n getSetGlobalLocale\n );\n hooks.langData = deprecate(\n 'moment.langData is deprecated. Use moment.localeData instead.',\n getLocale\n );\n\n var mathAbs = Math.abs;\n\n function abs() {\n var data = this._data;\n\n this._milliseconds = mathAbs(this._milliseconds);\n this._days = mathAbs(this._days);\n this._months = mathAbs(this._months);\n\n data.milliseconds = mathAbs(data.milliseconds);\n data.seconds = mathAbs(data.seconds);\n data.minutes = mathAbs(data.minutes);\n data.hours = mathAbs(data.hours);\n data.months = mathAbs(data.months);\n data.years = mathAbs(data.years);\n\n return this;\n }\n\n function addSubtract$1(duration, input, value, direction) {\n var other = createDuration(input, value);\n\n duration._milliseconds += direction * other._milliseconds;\n duration._days += direction * other._days;\n duration._months += direction * other._months;\n\n return duration._bubble();\n }\n\n // supports only 2.0-style add(1, 's') or add(duration)\n function add$1(input, value) {\n return addSubtract$1(this, input, value, 1);\n }\n\n // supports only 2.0-style subtract(1, 's') or subtract(duration)\n function subtract$1(input, value) {\n return addSubtract$1(this, input, value, -1);\n }\n\n function absCeil(number) {\n if (number < 0) {\n return Math.floor(number);\n } else {\n return Math.ceil(number);\n }\n }\n\n function bubble() {\n var milliseconds = this._milliseconds,\n days = this._days,\n months = this._months,\n data = this._data,\n seconds,\n minutes,\n hours,\n years,\n monthsFromDays;\n\n // if we have a mix of positive and negative values, bubble down first\n // check: https://github.com/moment/moment/issues/2166\n if (\n !(\n (milliseconds >= 0 && days >= 0 && months >= 0) ||\n (milliseconds <= 0 && days <= 0 && months <= 0)\n )\n ) {\n milliseconds += absCeil(monthsToDays(months) + days) * 864e5;\n days = 0;\n months = 0;\n }\n\n // The following code bubbles up values, see the tests for\n // examples of what that means.\n data.milliseconds = milliseconds % 1000;\n\n seconds = absFloor(milliseconds / 1000);\n data.seconds = seconds % 60;\n\n minutes = absFloor(seconds / 60);\n data.minutes = minutes % 60;\n\n hours = absFloor(minutes / 60);\n data.hours = hours % 24;\n\n days += absFloor(hours / 24);\n\n // convert days to months\n monthsFromDays = absFloor(daysToMonths(days));\n months += monthsFromDays;\n days -= absCeil(monthsToDays(monthsFromDays));\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n data.days = days;\n data.months = months;\n data.years = years;\n\n return this;\n }\n\n function daysToMonths(days) {\n // 400 years have 146097 days (taking into account leap year rules)\n // 400 years have 12 months === 4800\n return (days * 4800) / 146097;\n }\n\n function monthsToDays(months) {\n // the reverse of daysToMonths\n return (months * 146097) / 4800;\n }\n\n function as(units) {\n if (!this.isValid()) {\n return NaN;\n }\n var days,\n months,\n milliseconds = this._milliseconds;\n\n units = normalizeUnits(units);\n\n if (units === 'month' || units === 'quarter' || units === 'year') {\n days = this._days + milliseconds / 864e5;\n months = this._months + daysToMonths(days);\n switch (units) {\n case 'month':\n return months;\n case 'quarter':\n return months / 3;\n case 'year':\n return months / 12;\n }\n } else {\n // handle milliseconds separately because of floating point math errors (issue #1867)\n days = this._days + Math.round(monthsToDays(this._months));\n switch (units) {\n case 'week':\n return days / 7 + milliseconds / 6048e5;\n case 'day':\n return days + milliseconds / 864e5;\n case 'hour':\n return days * 24 + milliseconds / 36e5;\n case 'minute':\n return days * 1440 + milliseconds / 6e4;\n case 'second':\n return days * 86400 + milliseconds / 1000;\n // Math.floor prevents floating point math errors here\n case 'millisecond':\n return Math.floor(days * 864e5) + milliseconds;\n default:\n throw new Error('Unknown unit ' + units);\n }\n }\n }\n\n function makeAs(alias) {\n return function () {\n return this.as(alias);\n };\n }\n\n var asMilliseconds = makeAs('ms'),\n asSeconds = makeAs('s'),\n asMinutes = makeAs('m'),\n asHours = makeAs('h'),\n asDays = makeAs('d'),\n asWeeks = makeAs('w'),\n asMonths = makeAs('M'),\n asQuarters = makeAs('Q'),\n asYears = makeAs('y'),\n valueOf$1 = asMilliseconds;\n\n function clone$1() {\n return createDuration(this);\n }\n\n function get$2(units) {\n units = normalizeUnits(units);\n return this.isValid() ? this[units + 's']() : NaN;\n }\n\n function makeGetter(name) {\n return function () {\n return this.isValid() ? this._data[name] : NaN;\n };\n }\n\n var milliseconds = makeGetter('milliseconds'),\n seconds = makeGetter('seconds'),\n minutes = makeGetter('minutes'),\n hours = makeGetter('hours'),\n days = makeGetter('days'),\n months = makeGetter('months'),\n years = makeGetter('years');\n\n function weeks() {\n return absFloor(this.days() / 7);\n }\n\n var round = Math.round,\n thresholds = {\n ss: 44, // a few seconds to seconds\n s: 45, // seconds to minute\n m: 45, // minutes to hour\n h: 22, // hours to day\n d: 26, // days to month/week\n w: null, // weeks to month\n M: 11, // months to year\n };\n\n // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize\n function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {\n return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);\n }\n\n function relativeTime$1(posNegDuration, withoutSuffix, thresholds, locale) {\n var duration = createDuration(posNegDuration).abs(),\n seconds = round(duration.as('s')),\n minutes = round(duration.as('m')),\n hours = round(duration.as('h')),\n days = round(duration.as('d')),\n months = round(duration.as('M')),\n weeks = round(duration.as('w')),\n years = round(duration.as('y')),\n a =\n (seconds <= thresholds.ss && ['s', seconds]) ||\n (seconds < thresholds.s && ['ss', seconds]) ||\n (minutes <= 1 && ['m']) ||\n (minutes < thresholds.m && ['mm', minutes]) ||\n (hours <= 1 && ['h']) ||\n (hours < thresholds.h && ['hh', hours]) ||\n (days <= 1 && ['d']) ||\n (days < thresholds.d && ['dd', days]);\n\n if (thresholds.w != null) {\n a =\n a ||\n (weeks <= 1 && ['w']) ||\n (weeks < thresholds.w && ['ww', weeks]);\n }\n a = a ||\n (months <= 1 && ['M']) ||\n (months < thresholds.M && ['MM', months]) ||\n (years <= 1 && ['y']) || ['yy', years];\n\n a[2] = withoutSuffix;\n a[3] = +posNegDuration > 0;\n a[4] = locale;\n return substituteTimeAgo.apply(null, a);\n }\n\n // This function allows you to set the rounding function for relative time strings\n function getSetRelativeTimeRounding(roundingFunction) {\n if (roundingFunction === undefined) {\n return round;\n }\n if (typeof roundingFunction === 'function') {\n round = roundingFunction;\n return true;\n }\n return false;\n }\n\n // This function allows you to set a threshold for relative time strings\n function getSetRelativeTimeThreshold(threshold, limit) {\n if (thresholds[threshold] === undefined) {\n return false;\n }\n if (limit === undefined) {\n return thresholds[threshold];\n }\n thresholds[threshold] = limit;\n if (threshold === 's') {\n thresholds.ss = limit - 1;\n }\n return true;\n }\n\n function humanize(argWithSuffix, argThresholds) {\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var withSuffix = false,\n th = thresholds,\n locale,\n output;\n\n if (typeof argWithSuffix === 'object') {\n argThresholds = argWithSuffix;\n argWithSuffix = false;\n }\n if (typeof argWithSuffix === 'boolean') {\n withSuffix = argWithSuffix;\n }\n if (typeof argThresholds === 'object') {\n th = Object.assign({}, thresholds, argThresholds);\n if (argThresholds.s != null && argThresholds.ss == null) {\n th.ss = argThresholds.s - 1;\n }\n }\n\n locale = this.localeData();\n output = relativeTime$1(this, !withSuffix, th, locale);\n\n if (withSuffix) {\n output = locale.pastFuture(+this, output);\n }\n\n return locale.postformat(output);\n }\n\n var abs$1 = Math.abs;\n\n function sign(x) {\n return (x > 0) - (x < 0) || +x;\n }\n\n function toISOString$1() {\n // for ISO strings we do not use the normal bubbling rules:\n // * milliseconds bubble up until they become hours\n // * days do not bubble at all\n // * months bubble up until they become years\n // This is because there is no context-free conversion between hours and days\n // (think of clock changes)\n // and also not between days and months (28-31 days per month)\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var seconds = abs$1(this._milliseconds) / 1000,\n days = abs$1(this._days),\n months = abs$1(this._months),\n minutes,\n hours,\n years,\n s,\n total = this.asSeconds(),\n totalSign,\n ymSign,\n daysSign,\n hmsSign;\n\n if (!total) {\n // this is the same as C#'s (Noda) and python (isodate)...\n // but not other JS (goog.date)\n return 'P0D';\n }\n\n // 3600 seconds -> 60 minutes -> 1 hour\n minutes = absFloor(seconds / 60);\n hours = absFloor(minutes / 60);\n seconds %= 60;\n minutes %= 60;\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js\n s = seconds ? seconds.toFixed(3).replace(/\\.?0+$/, '') : '';\n\n totalSign = total < 0 ? '-' : '';\n ymSign = sign(this._months) !== sign(total) ? '-' : '';\n daysSign = sign(this._days) !== sign(total) ? '-' : '';\n hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : '';\n\n return (\n totalSign +\n 'P' +\n (years ? ymSign + years + 'Y' : '') +\n (months ? ymSign + months + 'M' : '') +\n (days ? daysSign + days + 'D' : '') +\n (hours || minutes || seconds ? 'T' : '') +\n (hours ? hmsSign + hours + 'H' : '') +\n (minutes ? hmsSign + minutes + 'M' : '') +\n (seconds ? hmsSign + s + 'S' : '')\n );\n }\n\n var proto$2 = Duration.prototype;\n\n proto$2.isValid = isValid$1;\n proto$2.abs = abs;\n proto$2.add = add$1;\n proto$2.subtract = subtract$1;\n proto$2.as = as;\n proto$2.asMilliseconds = asMilliseconds;\n proto$2.asSeconds = asSeconds;\n proto$2.asMinutes = asMinutes;\n proto$2.asHours = asHours;\n proto$2.asDays = asDays;\n proto$2.asWeeks = asWeeks;\n proto$2.asMonths = asMonths;\n proto$2.asQuarters = asQuarters;\n proto$2.asYears = asYears;\n proto$2.valueOf = valueOf$1;\n proto$2._bubble = bubble;\n proto$2.clone = clone$1;\n proto$2.get = get$2;\n proto$2.milliseconds = milliseconds;\n proto$2.seconds = seconds;\n proto$2.minutes = minutes;\n proto$2.hours = hours;\n proto$2.days = days;\n proto$2.weeks = weeks;\n proto$2.months = months;\n proto$2.years = years;\n proto$2.humanize = humanize;\n proto$2.toISOString = toISOString$1;\n proto$2.toString = toISOString$1;\n proto$2.toJSON = toISOString$1;\n proto$2.locale = locale;\n proto$2.localeData = localeData;\n\n proto$2.toIsoString = deprecate(\n 'toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)',\n toISOString$1\n );\n proto$2.lang = lang;\n\n // FORMATTING\n\n addFormatToken('X', 0, 0, 'unix');\n addFormatToken('x', 0, 0, 'valueOf');\n\n // PARSING\n\n addRegexToken('x', matchSigned);\n addRegexToken('X', matchTimestamp);\n addParseToken('X', function (input, array, config) {\n config._d = new Date(parseFloat(input) * 1000);\n });\n addParseToken('x', function (input, array, config) {\n config._d = new Date(toInt(input));\n });\n\n //! moment.js\n\n hooks.version = '2.30.1';\n\n setHookCallback(createLocal);\n\n hooks.fn = proto;\n hooks.min = min;\n hooks.max = max;\n hooks.now = now;\n hooks.utc = createUTC;\n hooks.unix = createUnix;\n hooks.months = listMonths;\n hooks.isDate = isDate;\n hooks.locale = getSetGlobalLocale;\n hooks.invalid = createInvalid;\n hooks.duration = createDuration;\n hooks.isMoment = isMoment;\n hooks.weekdays = listWeekdays;\n hooks.parseZone = createInZone;\n hooks.localeData = getLocale;\n hooks.isDuration = isDuration;\n hooks.monthsShort = listMonthsShort;\n hooks.weekdaysMin = listWeekdaysMin;\n hooks.defineLocale = defineLocale;\n hooks.updateLocale = updateLocale;\n hooks.locales = listLocales;\n hooks.weekdaysShort = listWeekdaysShort;\n hooks.normalizeUnits = normalizeUnits;\n hooks.relativeTimeRounding = getSetRelativeTimeRounding;\n hooks.relativeTimeThreshold = getSetRelativeTimeThreshold;\n hooks.calendarFormat = getCalendarFormat;\n hooks.prototype = proto;\n\n // currently HTML5 input type only supports 24-hour formats\n hooks.HTML5_FMT = {\n DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', // \n DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // \n DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // \n DATE: 'YYYY-MM-DD', // \n TIME: 'HH:mm', // \n TIME_SECONDS: 'HH:mm:ss', // \n TIME_MS: 'HH:mm:ss.SSS', // \n WEEK: 'GGGG-[W]WW', // \n MONTH: 'YYYY-MM', // \n };\n\n return hooks;\n\n})));\n","/**!\n * AngularJS file upload directives and services. Supports: file upload/drop/paste, resume, cancel/abort,\n * progress, resize, thumbnail, preview, validation and CORS\n * FileAPI Flash shim for old browsers not supporting FormData\n * @author Danial \n * @version 12.2.13\n */\n\n(function () {\n /** @namespace FileAPI.noContentTimeout */\n\n function patchXHR(fnName, newFn) {\n window.XMLHttpRequest.prototype[fnName] = newFn(window.XMLHttpRequest.prototype[fnName]);\n }\n\n function redefineProp(xhr, prop, fn) {\n try {\n Object.defineProperty(xhr, prop, {get: fn});\n } catch (e) {/*ignore*/\n }\n }\n\n if (!window.FileAPI) {\n window.FileAPI = {};\n }\n\n if (!window.XMLHttpRequest) {\n throw 'AJAX is not supported. XMLHttpRequest is not defined.';\n }\n\n FileAPI.shouldLoad = !window.FormData || FileAPI.forceLoad;\n if (FileAPI.shouldLoad) {\n var initializeUploadListener = function (xhr) {\n if (!xhr.__listeners) {\n if (!xhr.upload) xhr.upload = {};\n xhr.__listeners = [];\n var origAddEventListener = xhr.upload.addEventListener;\n xhr.upload.addEventListener = function (t, fn) {\n xhr.__listeners[t] = fn;\n if (origAddEventListener) origAddEventListener.apply(this, arguments);\n };\n }\n };\n\n patchXHR('open', function (orig) {\n return function (m, url, b) {\n initializeUploadListener(this);\n this.__url = url;\n try {\n orig.apply(this, [m, url, b]);\n } catch (e) {\n if (e.message.indexOf('Access is denied') > -1) {\n this.__origError = e;\n orig.apply(this, [m, '_fix_for_ie_crossdomain__', b]);\n }\n }\n };\n });\n\n patchXHR('getResponseHeader', function (orig) {\n return function (h) {\n return this.__fileApiXHR && this.__fileApiXHR.getResponseHeader ? this.__fileApiXHR.getResponseHeader(h) : (orig == null ? null : orig.apply(this, [h]));\n };\n });\n\n patchXHR('getAllResponseHeaders', function (orig) {\n return function () {\n return this.__fileApiXHR && this.__fileApiXHR.getAllResponseHeaders ? this.__fileApiXHR.getAllResponseHeaders() : (orig == null ? null : orig.apply(this));\n };\n });\n\n patchXHR('abort', function (orig) {\n return function () {\n return this.__fileApiXHR && this.__fileApiXHR.abort ? this.__fileApiXHR.abort() : (orig == null ? null : orig.apply(this));\n };\n });\n\n patchXHR('setRequestHeader', function (orig) {\n return function (header, value) {\n if (header === '__setXHR_') {\n initializeUploadListener(this);\n var val = value(this);\n // fix for angular < 1.2.0\n if (val instanceof Function) {\n val(this);\n }\n } else {\n this.__requestHeaders = this.__requestHeaders || {};\n this.__requestHeaders[header] = value;\n orig.apply(this, arguments);\n }\n };\n });\n\n patchXHR('send', function (orig) {\n return function () {\n var xhr = this;\n if (arguments[0] && arguments[0].__isFileAPIShim) {\n var formData = arguments[0];\n var config = {\n url: xhr.__url,\n jsonp: false, //removes the callback form param\n cache: true, //removes the ?fileapiXXX in the url\n complete: function (err, fileApiXHR) {\n if (err && angular.isString(err) && err.indexOf('#2174') !== -1) {\n // this error seems to be fine the file is being uploaded properly.\n err = null;\n }\n xhr.__completed = true;\n if (!err && xhr.__listeners.load)\n xhr.__listeners.load({\n type: 'load',\n loaded: xhr.__loaded,\n total: xhr.__total,\n target: xhr,\n lengthComputable: true\n });\n if (!err && xhr.__listeners.loadend)\n xhr.__listeners.loadend({\n type: 'loadend',\n loaded: xhr.__loaded,\n total: xhr.__total,\n target: xhr,\n lengthComputable: true\n });\n if (err === 'abort' && xhr.__listeners.abort)\n xhr.__listeners.abort({\n type: 'abort',\n loaded: xhr.__loaded,\n total: xhr.__total,\n target: xhr,\n lengthComputable: true\n });\n if (fileApiXHR.status !== undefined) redefineProp(xhr, 'status', function () {\n return (fileApiXHR.status === 0 && err && err !== 'abort') ? 500 : fileApiXHR.status;\n });\n if (fileApiXHR.statusText !== undefined) redefineProp(xhr, 'statusText', function () {\n return fileApiXHR.statusText;\n });\n redefineProp(xhr, 'readyState', function () {\n return 4;\n });\n if (fileApiXHR.response !== undefined) redefineProp(xhr, 'response', function () {\n return fileApiXHR.response;\n });\n var resp = fileApiXHR.responseText || (err && fileApiXHR.status === 0 && err !== 'abort' ? err : undefined);\n redefineProp(xhr, 'responseText', function () {\n return resp;\n });\n redefineProp(xhr, 'response', function () {\n return resp;\n });\n if (err) redefineProp(xhr, 'err', function () {\n return err;\n });\n xhr.__fileApiXHR = fileApiXHR;\n if (xhr.onreadystatechange) xhr.onreadystatechange();\n if (xhr.onload) xhr.onload();\n },\n progress: function (e) {\n e.target = xhr;\n if (xhr.__listeners.progress) xhr.__listeners.progress(e);\n xhr.__total = e.total;\n xhr.__loaded = e.loaded;\n if (e.total === e.loaded) {\n // fix flash issue that doesn't call complete if there is no response text from the server\n var _this = this;\n setTimeout(function () {\n if (!xhr.__completed) {\n xhr.getAllResponseHeaders = function () {\n };\n _this.complete(null, {status: 204, statusText: 'No Content'});\n }\n }, FileAPI.noContentTimeout || 10000);\n }\n },\n headers: xhr.__requestHeaders\n };\n config.data = {};\n config.files = {};\n for (var i = 0; i < formData.data.length; i++) {\n var item = formData.data[i];\n if (item.val != null && item.val.name != null && item.val.size != null && item.val.type != null) {\n config.files[item.key] = item.val;\n } else {\n config.data[item.key] = item.val;\n }\n }\n\n setTimeout(function () {\n if (!FileAPI.hasFlash) {\n throw 'Adode Flash Player need to be installed. To check ahead use \"FileAPI.hasFlash\"';\n }\n xhr.__fileApiXHR = FileAPI.upload(config);\n }, 1);\n } else {\n if (this.__origError) {\n throw this.__origError;\n }\n orig.apply(xhr, arguments);\n }\n };\n });\n window.XMLHttpRequest.__isFileAPIShim = true;\n window.FormData = FormData = function () {\n return {\n append: function (key, val, name) {\n if (val.__isFileAPIBlobShim) {\n val = val.data[0];\n }\n this.data.push({\n key: key,\n val: val,\n name: name\n });\n },\n data: [],\n __isFileAPIShim: true\n };\n };\n\n window.Blob = Blob = function (b) {\n return {\n data: b,\n __isFileAPIBlobShim: true\n };\n };\n }\n\n})();\n\n(function () {\n /** @namespace FileAPI.forceLoad */\n /** @namespace window.FileAPI.jsUrl */\n /** @namespace window.FileAPI.jsPath */\n\n function isInputTypeFile(elem) {\n return elem[0].tagName.toLowerCase() === 'input' && elem.attr('type') && elem.attr('type').toLowerCase() === 'file';\n }\n\n function hasFlash() {\n try {\n var fo = new ActiveXObject('ShockwaveFlash.ShockwaveFlash');\n if (fo) return true;\n } catch (e) {\n if (navigator.mimeTypes['application/x-shockwave-flash'] !== undefined) return true;\n }\n return false;\n }\n\n function getOffset(obj) {\n var left = 0, top = 0;\n\n if (window.jQuery) {\n return jQuery(obj).offset();\n }\n\n if (obj.offsetParent) {\n do {\n left += (obj.offsetLeft - obj.scrollLeft);\n top += (obj.offsetTop - obj.scrollTop);\n obj = obj.offsetParent;\n } while (obj);\n }\n return {\n left: left,\n top: top\n };\n }\n\n if (FileAPI.shouldLoad) {\n FileAPI.hasFlash = hasFlash();\n\n //load FileAPI\n if (FileAPI.forceLoad) {\n FileAPI.html5 = false;\n }\n\n if (!FileAPI.upload) {\n var jsUrl, basePath, script = document.createElement('script'), allScripts = document.getElementsByTagName('script'), i, index, src;\n if (window.FileAPI.jsUrl) {\n jsUrl = window.FileAPI.jsUrl;\n } else if (window.FileAPI.jsPath) {\n basePath = window.FileAPI.jsPath;\n } else {\n for (i = 0; i < allScripts.length; i++) {\n src = allScripts[i].src;\n index = src.search(/\\/ng\\-file\\-upload[\\-a-zA-z0-9\\.]*\\.js/);\n if (index > -1) {\n basePath = src.substring(0, index + 1);\n break;\n }\n }\n }\n\n if (FileAPI.staticPath == null) FileAPI.staticPath = basePath;\n script.setAttribute('src', jsUrl || basePath + 'FileAPI.min.js');\n document.getElementsByTagName('head')[0].appendChild(script);\n }\n\n FileAPI.ngfFixIE = function (elem, fileElem, changeFn) {\n if (!hasFlash()) {\n throw 'Adode Flash Player need to be installed. To check ahead use \"FileAPI.hasFlash\"';\n }\n var fixInputStyle = function () {\n var label = fileElem.parent();\n if (elem.attr('disabled')) {\n if (label) label.removeClass('js-fileapi-wrapper');\n } else {\n if (!fileElem.attr('__ngf_flash_')) {\n fileElem.unbind('change');\n fileElem.unbind('click');\n fileElem.bind('change', function (evt) {\n fileApiChangeFn.apply(this, [evt]);\n changeFn.apply(this, [evt]);\n });\n fileElem.attr('__ngf_flash_', 'true');\n }\n label.addClass('js-fileapi-wrapper');\n if (!isInputTypeFile(elem)) {\n label.css('position', 'absolute')\n .css('top', getOffset(elem[0]).top + 'px').css('left', getOffset(elem[0]).left + 'px')\n .css('width', elem[0].offsetWidth + 'px').css('height', elem[0].offsetHeight + 'px')\n .css('filter', 'alpha(opacity=0)').css('display', elem.css('display'))\n .css('overflow', 'hidden').css('z-index', '900000')\n .css('visibility', 'visible');\n fileElem.css('width', elem[0].offsetWidth + 'px').css('height', elem[0].offsetHeight + 'px')\n .css('position', 'absolute').css('top', '0px').css('left', '0px');\n }\n }\n };\n\n elem.bind('mouseenter', fixInputStyle);\n\n var fileApiChangeFn = function (evt) {\n var files = FileAPI.getFiles(evt);\n //just a double check for #233\n for (var i = 0; i < files.length; i++) {\n if (files[i].size === undefined) files[i].size = 0;\n if (files[i].name === undefined) files[i].name = 'file';\n if (files[i].type === undefined) files[i].type = 'undefined';\n }\n if (!evt.target) {\n evt.target = {};\n }\n evt.target.files = files;\n // if evt.target.files is not writable use helper field\n if (evt.target.files !== files) {\n evt.__files_ = files;\n }\n (evt.__files_ || evt.target.files).item = function (i) {\n return (evt.__files_ || evt.target.files)[i] || null;\n };\n };\n };\n\n FileAPI.disableFileInput = function (elem, disable) {\n if (disable) {\n elem.removeClass('js-fileapi-wrapper');\n } else {\n elem.addClass('js-fileapi-wrapper');\n }\n };\n }\n})();\n\nif (!window.FileReader) {\n window.FileReader = function () {\n var _this = this, loadStarted = false;\n this.listeners = {};\n this.addEventListener = function (type, fn) {\n _this.listeners[type] = _this.listeners[type] || [];\n _this.listeners[type].push(fn);\n };\n this.removeEventListener = function (type, fn) {\n if (_this.listeners[type]) _this.listeners[type].splice(_this.listeners[type].indexOf(fn), 1);\n };\n this.dispatchEvent = function (evt) {\n var list = _this.listeners[evt.type];\n if (list) {\n for (var i = 0; i < list.length; i++) {\n list[i].call(_this, evt);\n }\n }\n };\n this.onabort = this.onerror = this.onload = this.onloadstart = this.onloadend = this.onprogress = null;\n\n var constructEvent = function (type, evt) {\n var e = {type: type, target: _this, loaded: evt.loaded, total: evt.total, error: evt.error};\n if (evt.result != null) e.target.result = evt.result;\n return e;\n };\n var listener = function (evt) {\n if (!loadStarted) {\n loadStarted = true;\n if (_this.onloadstart) _this.onloadstart(constructEvent('loadstart', evt));\n }\n var e;\n if (evt.type === 'load') {\n if (_this.onloadend) _this.onloadend(constructEvent('loadend', evt));\n e = constructEvent('load', evt);\n if (_this.onload) _this.onload(e);\n _this.dispatchEvent(e);\n } else if (evt.type === 'progress') {\n e = constructEvent('progress', evt);\n if (_this.onprogress) _this.onprogress(e);\n _this.dispatchEvent(e);\n } else {\n e = constructEvent('error', evt);\n if (_this.onerror) _this.onerror(e);\n _this.dispatchEvent(e);\n }\n };\n this.readAsDataURL = function (file) {\n FileAPI.readAsDataURL(file, listener);\n };\n this.readAsText = function (file) {\n FileAPI.readAsText(file, listener);\n };\n };\n}\n","/**!\n * AngularJS file upload directives and services. Supoorts: file upload/drop/paste, resume, cancel/abort,\n * progress, resize, thumbnail, preview, validation and CORS\n * @author Danial \n * @version 12.2.13\n */\n\nif (window.XMLHttpRequest && !(window.FileAPI && FileAPI.shouldLoad)) {\n window.XMLHttpRequest.prototype.setRequestHeader = (function (orig) {\n return function (header, value) {\n if (header === '__setXHR_') {\n var val = value(this);\n // fix for angular < 1.2.0\n if (val instanceof Function) {\n val(this);\n }\n } else {\n orig.apply(this, arguments);\n }\n };\n })(window.XMLHttpRequest.prototype.setRequestHeader);\n}\n\nvar ngFileUpload = angular.module('ngFileUpload', []);\n\nngFileUpload.version = '12.2.13';\n\nngFileUpload.service('UploadBase', ['$http', '$q', '$timeout', function ($http, $q, $timeout) {\n var upload = this;\n upload.promisesCount = 0;\n\n this.isResumeSupported = function () {\n return window.Blob && window.Blob.prototype.slice;\n };\n\n var resumeSupported = this.isResumeSupported();\n\n function sendHttp(config) {\n config.method = config.method || 'POST';\n config.headers = config.headers || {};\n\n var deferred = config._deferred = config._deferred || $q.defer();\n var promise = deferred.promise;\n\n function notifyProgress(e) {\n if (deferred.notify) {\n deferred.notify(e);\n }\n if (promise.progressFunc) {\n $timeout(function () {\n promise.progressFunc(e);\n });\n }\n }\n\n function getNotifyEvent(n) {\n if (config._start != null && resumeSupported) {\n return {\n loaded: n.loaded + config._start,\n total: (config._file && config._file.size) || n.total,\n type: n.type, config: config,\n lengthComputable: true, target: n.target\n };\n } else {\n return n;\n }\n }\n\n if (!config.disableProgress) {\n config.headers.__setXHR_ = function () {\n return function (xhr) {\n if (!xhr || !xhr.upload || !xhr.upload.addEventListener) return;\n config.__XHR = xhr;\n if (config.xhrFn) config.xhrFn(xhr);\n xhr.upload.addEventListener('progress', function (e) {\n e.config = config;\n notifyProgress(getNotifyEvent(e));\n }, false);\n //fix for firefox not firing upload progress end, also IE8-9\n xhr.upload.addEventListener('load', function (e) {\n if (e.lengthComputable) {\n e.config = config;\n notifyProgress(getNotifyEvent(e));\n }\n }, false);\n };\n };\n }\n\n function uploadWithAngular() {\n $http(config).then(function (r) {\n if (resumeSupported && config._chunkSize && !config._finished && config._file) {\n var fileSize = config._file && config._file.size || 0;\n notifyProgress({\n loaded: Math.min(config._end, fileSize),\n total: fileSize,\n config: config,\n type: 'progress'\n }\n );\n upload.upload(config, true);\n } else {\n if (config._finished) delete config._finished;\n deferred.resolve(r);\n }\n }, function (e) {\n deferred.reject(e);\n }, function (n) {\n deferred.notify(n);\n }\n );\n }\n\n if (!resumeSupported) {\n uploadWithAngular();\n } else if (config._chunkSize && config._end && !config._finished) {\n config._start = config._end;\n config._end += config._chunkSize;\n uploadWithAngular();\n } else if (config.resumeSizeUrl) {\n $http.get(config.resumeSizeUrl).then(function (resp) {\n if (config.resumeSizeResponseReader) {\n config._start = config.resumeSizeResponseReader(resp.data);\n } else {\n config._start = parseInt((resp.data.size == null ? resp.data : resp.data.size).toString());\n }\n if (config._chunkSize) {\n config._end = config._start + config._chunkSize;\n }\n uploadWithAngular();\n }, function (e) {\n throw e;\n });\n } else if (config.resumeSize) {\n config.resumeSize().then(function (size) {\n config._start = size;\n if (config._chunkSize) {\n config._end = config._start + config._chunkSize;\n }\n uploadWithAngular();\n }, function (e) {\n throw e;\n });\n } else {\n if (config._chunkSize) {\n config._start = 0;\n config._end = config._start + config._chunkSize;\n }\n uploadWithAngular();\n }\n\n\n promise.success = function (fn) {\n promise.then(function (response) {\n fn(response.data, response.status, response.headers, config);\n });\n return promise;\n };\n\n promise.error = function (fn) {\n promise.then(null, function (response) {\n fn(response.data, response.status, response.headers, config);\n });\n return promise;\n };\n\n promise.progress = function (fn) {\n promise.progressFunc = fn;\n promise.then(null, null, function (n) {\n fn(n);\n });\n return promise;\n };\n promise.abort = promise.pause = function () {\n if (config.__XHR) {\n $timeout(function () {\n config.__XHR.abort();\n });\n }\n return promise;\n };\n promise.xhr = function (fn) {\n config.xhrFn = (function (origXhrFn) {\n return function () {\n if (origXhrFn) origXhrFn.apply(promise, arguments);\n fn.apply(promise, arguments);\n };\n })(config.xhrFn);\n return promise;\n };\n\n upload.promisesCount++;\n if (promise['finally'] && promise['finally'] instanceof Function) {\n promise['finally'](function () {\n upload.promisesCount--;\n });\n }\n return promise;\n }\n\n this.isUploadInProgress = function () {\n return upload.promisesCount > 0;\n };\n\n this.rename = function (file, name) {\n file.ngfName = name;\n return file;\n };\n\n this.jsonBlob = function (val) {\n if (val != null && !angular.isString(val)) {\n val = JSON.stringify(val);\n }\n var blob = new window.Blob([val], {type: 'application/json'});\n blob._ngfBlob = true;\n return blob;\n };\n\n this.json = function (val) {\n return angular.toJson(val);\n };\n\n function copy(obj) {\n var clone = {};\n for (var key in obj) {\n if (obj.hasOwnProperty(key)) {\n clone[key] = obj[key];\n }\n }\n return clone;\n }\n\n this.isFile = function (file) {\n return file != null && (file instanceof window.Blob || (file.flashId && file.name && file.size));\n };\n\n this.upload = function (config, internal) {\n function toResumeFile(file, formData) {\n if (file._ngfBlob) return file;\n config._file = config._file || file;\n if (config._start != null && resumeSupported) {\n if (config._end && config._end >= file.size) {\n config._finished = true;\n config._end = file.size;\n }\n var slice = file.slice(config._start, config._end || file.size);\n slice.name = file.name;\n slice.ngfName = file.ngfName;\n if (config._chunkSize) {\n formData.append('_chunkSize', config._chunkSize);\n formData.append('_currentChunkSize', config._end - config._start);\n formData.append('_chunkNumber', Math.floor(config._start / config._chunkSize));\n formData.append('_totalSize', config._file.size);\n }\n return slice;\n }\n return file;\n }\n\n function addFieldToFormData(formData, val, key) {\n if (val !== undefined) {\n if (angular.isDate(val)) {\n val = val.toISOString();\n }\n if (angular.isString(val)) {\n formData.append(key, val);\n } else if (upload.isFile(val)) {\n var file = toResumeFile(val, formData);\n var split = key.split(',');\n if (split[1]) {\n file.ngfName = split[1].replace(/^\\s+|\\s+$/g, '');\n key = split[0];\n }\n config._fileKey = config._fileKey || key;\n formData.append(key, file, file.ngfName || file.name);\n } else {\n if (angular.isObject(val)) {\n if (val.$$ngfCircularDetection) throw 'ngFileUpload: Circular reference in config.data. Make sure specified data for Upload.upload() has no circular reference: ' + key;\n\n val.$$ngfCircularDetection = true;\n try {\n for (var k in val) {\n if (val.hasOwnProperty(k) && k !== '$$ngfCircularDetection') {\n var objectKey = config.objectKey == null ? '[i]' : config.objectKey;\n if (val.length && parseInt(k) > -1) {\n objectKey = config.arrayKey == null ? objectKey : config.arrayKey;\n }\n addFieldToFormData(formData, val[k], key + objectKey.replace(/[ik]/g, k));\n }\n }\n } finally {\n delete val.$$ngfCircularDetection;\n }\n } else {\n formData.append(key, val);\n }\n }\n }\n }\n\n function digestConfig() {\n config._chunkSize = upload.translateScalars(config.resumeChunkSize);\n config._chunkSize = config._chunkSize ? parseInt(config._chunkSize.toString()) : null;\n\n config.headers = config.headers || {};\n config.headers['Content-Type'] = undefined;\n config.transformRequest = config.transformRequest ?\n (angular.isArray(config.transformRequest) ?\n config.transformRequest : [config.transformRequest]) : [];\n config.transformRequest.push(function (data) {\n var formData = new window.FormData(), key;\n data = data || config.fields || {};\n if (config.file) {\n data.file = config.file;\n }\n for (key in data) {\n if (data.hasOwnProperty(key)) {\n var val = data[key];\n if (config.formDataAppender) {\n config.formDataAppender(formData, key, val);\n } else {\n addFieldToFormData(formData, val, key);\n }\n }\n }\n\n return formData;\n });\n }\n\n if (!internal) config = copy(config);\n if (!config._isDigested) {\n config._isDigested = true;\n digestConfig();\n }\n\n return sendHttp(config);\n };\n\n this.http = function (config) {\n config = copy(config);\n config.transformRequest = config.transformRequest || function (data) {\n if ((window.ArrayBuffer && data instanceof window.ArrayBuffer) || data instanceof window.Blob) {\n return data;\n }\n return $http.defaults.transformRequest[0].apply(this, arguments);\n };\n config._chunkSize = upload.translateScalars(config.resumeChunkSize);\n config._chunkSize = config._chunkSize ? parseInt(config._chunkSize.toString()) : null;\n\n return sendHttp(config);\n };\n\n this.translateScalars = function (str) {\n if (angular.isString(str)) {\n if (str.search(/kb/i) === str.length - 2) {\n return parseFloat(str.substring(0, str.length - 2) * 1024);\n } else if (str.search(/mb/i) === str.length - 2) {\n return parseFloat(str.substring(0, str.length - 2) * 1048576);\n } else if (str.search(/gb/i) === str.length - 2) {\n return parseFloat(str.substring(0, str.length - 2) * 1073741824);\n } else if (str.search(/b/i) === str.length - 1) {\n return parseFloat(str.substring(0, str.length - 1));\n } else if (str.search(/s/i) === str.length - 1) {\n return parseFloat(str.substring(0, str.length - 1));\n } else if (str.search(/m/i) === str.length - 1) {\n return parseFloat(str.substring(0, str.length - 1) * 60);\n } else if (str.search(/h/i) === str.length - 1) {\n return parseFloat(str.substring(0, str.length - 1) * 3600);\n }\n }\n return str;\n };\n\n this.urlToBlob = function(url) {\n var defer = $q.defer();\n $http({url: url, method: 'get', responseType: 'arraybuffer'}).then(function (resp) {\n var arrayBufferView = new Uint8Array(resp.data);\n var type = resp.headers('content-type') || 'image/WebP';\n var blob = new window.Blob([arrayBufferView], {type: type});\n var matches = url.match(/.*\\/(.+?)(\\?.*)?$/);\n if (matches.length > 1) {\n blob.name = matches[1];\n }\n defer.resolve(blob);\n }, function (e) {\n defer.reject(e);\n });\n return defer.promise;\n };\n\n this.setDefaults = function (defaults) {\n this.defaults = defaults || {};\n };\n\n this.defaults = {};\n this.version = ngFileUpload.version;\n}\n\n]);\n\nngFileUpload.service('Upload', ['$parse', '$timeout', '$compile', '$q', 'UploadExif', function ($parse, $timeout, $compile, $q, UploadExif) {\n var upload = UploadExif;\n upload.getAttrWithDefaults = function (attr, name) {\n if (attr[name] != null) return attr[name];\n var def = upload.defaults[name];\n return (def == null ? def : (angular.isString(def) ? def : JSON.stringify(def)));\n };\n\n upload.attrGetter = function (name, attr, scope, params) {\n var attrVal = this.getAttrWithDefaults(attr, name);\n if (scope) {\n try {\n if (params) {\n return $parse(attrVal)(scope, params);\n } else {\n return $parse(attrVal)(scope);\n }\n } catch (e) {\n // hangle string value without single qoute\n if (name.search(/min|max|pattern/i)) {\n return attrVal;\n } else {\n throw e;\n }\n }\n } else {\n return attrVal;\n }\n };\n\n upload.shouldUpdateOn = function (type, attr, scope) {\n var modelOptions = upload.attrGetter('ngfModelOptions', attr, scope);\n if (modelOptions && modelOptions.updateOn) {\n return modelOptions.updateOn.split(' ').indexOf(type) > -1;\n }\n return true;\n };\n\n upload.emptyPromise = function () {\n var d = $q.defer();\n var args = arguments;\n $timeout(function () {\n d.resolve.apply(d, args);\n });\n return d.promise;\n };\n\n upload.rejectPromise = function () {\n var d = $q.defer();\n var args = arguments;\n $timeout(function () {\n d.reject.apply(d, args);\n });\n return d.promise;\n };\n\n upload.happyPromise = function (promise, data) {\n var d = $q.defer();\n promise.then(function (result) {\n d.resolve(result);\n }, function (error) {\n $timeout(function () {\n throw error;\n });\n d.resolve(data);\n });\n return d.promise;\n };\n\n function applyExifRotations(files, attr, scope) {\n var promises = [upload.emptyPromise()];\n angular.forEach(files, function (f, i) {\n if (f.type.indexOf('image/jpeg') === 0 && upload.attrGetter('ngfFixOrientation', attr, scope, {$file: f})) {\n promises.push(upload.happyPromise(upload.applyExifRotation(f), f).then(function (fixedFile) {\n files.splice(i, 1, fixedFile);\n }));\n }\n });\n return $q.all(promises);\n }\n\n function resizeFile(files, attr, scope, ngModel) {\n var resizeVal = upload.attrGetter('ngfResize', attr, scope);\n if (!resizeVal || !upload.isResizeSupported() || !files.length) return upload.emptyPromise();\n if (resizeVal instanceof Function) {\n var defer = $q.defer();\n return resizeVal(files).then(function (p) {\n resizeWithParams(p, files, attr, scope, ngModel).then(function (r) {\n defer.resolve(r);\n }, function (e) {\n defer.reject(e);\n });\n }, function (e) {\n defer.reject(e);\n });\n } else {\n return resizeWithParams(resizeVal, files, attr, scope, ngModel);\n }\n }\n\n function resizeWithParams(params, files, attr, scope, ngModel) {\n var promises = [upload.emptyPromise()];\n\n function handleFile(f, i) {\n if (f.type.indexOf('image') === 0) {\n if (params.pattern && !upload.validatePattern(f, params.pattern)) return;\n params.resizeIf = function (width, height) {\n return upload.attrGetter('ngfResizeIf', attr, scope,\n {$width: width, $height: height, $file: f});\n };\n var promise = upload.resize(f, params);\n promises.push(promise);\n promise.then(function (resizedFile) {\n files.splice(i, 1, resizedFile);\n }, function (e) {\n f.$error = 'resize';\n (f.$errorMessages = (f.$errorMessages || {})).resize = true;\n f.$errorParam = (e ? (e.message ? e.message : e) + ': ' : '') + (f && f.name);\n ngModel.$ngfValidations.push({name: 'resize', valid: false});\n upload.applyModelValidation(ngModel, files);\n });\n }\n }\n\n for (var i = 0; i < files.length; i++) {\n handleFile(files[i], i);\n }\n return $q.all(promises);\n }\n\n upload.updateModel = function (ngModel, attr, scope, fileChange, files, evt, noDelay) {\n function update(files, invalidFiles, newFiles, dupFiles, isSingleModel) {\n attr.$$ngfPrevValidFiles = files;\n attr.$$ngfPrevInvalidFiles = invalidFiles;\n var file = files && files.length ? files[0] : null;\n var invalidFile = invalidFiles && invalidFiles.length ? invalidFiles[0] : null;\n\n if (ngModel) {\n upload.applyModelValidation(ngModel, files);\n ngModel.$setViewValue(isSingleModel ? file : files);\n }\n\n if (fileChange) {\n $parse(fileChange)(scope, {\n $files: files,\n $file: file,\n $newFiles: newFiles,\n $duplicateFiles: dupFiles,\n $invalidFiles: invalidFiles,\n $invalidFile: invalidFile,\n $event: evt\n });\n }\n\n var invalidModel = upload.attrGetter('ngfModelInvalid', attr);\n if (invalidModel) {\n $timeout(function () {\n $parse(invalidModel).assign(scope, isSingleModel ? invalidFile : invalidFiles);\n });\n }\n $timeout(function () {\n // scope apply changes\n });\n }\n\n var allNewFiles, dupFiles = [], prevValidFiles, prevInvalidFiles,\n invalids = [], valids = [];\n\n function removeDuplicates() {\n function equals(f1, f2) {\n return f1.name === f2.name && (f1.$ngfOrigSize || f1.size) === (f2.$ngfOrigSize || f2.size) &&\n f1.type === f2.type;\n }\n\n function isInPrevFiles(f) {\n var j;\n for (j = 0; j < prevValidFiles.length; j++) {\n if (equals(f, prevValidFiles[j])) {\n return true;\n }\n }\n for (j = 0; j < prevInvalidFiles.length; j++) {\n if (equals(f, prevInvalidFiles[j])) {\n return true;\n }\n }\n return false;\n }\n\n if (files) {\n allNewFiles = [];\n dupFiles = [];\n for (var i = 0; i < files.length; i++) {\n if (isInPrevFiles(files[i])) {\n dupFiles.push(files[i]);\n } else {\n allNewFiles.push(files[i]);\n }\n }\n }\n }\n\n function toArray(v) {\n return angular.isArray(v) ? v : [v];\n }\n\n function resizeAndUpdate() {\n function updateModel() {\n $timeout(function () {\n update(keep ? prevValidFiles.concat(valids) : valids,\n keep ? prevInvalidFiles.concat(invalids) : invalids,\n files, dupFiles, isSingleModel);\n }, options && options.debounce ? options.debounce.change || options.debounce : 0);\n }\n\n var resizingFiles = validateAfterResize ? allNewFiles : valids;\n resizeFile(resizingFiles, attr, scope, ngModel).then(function () {\n if (validateAfterResize) {\n upload.validate(allNewFiles, keep ? prevValidFiles.length : 0, ngModel, attr, scope)\n .then(function (validationResult) {\n valids = validationResult.validsFiles;\n invalids = validationResult.invalidsFiles;\n updateModel();\n });\n } else {\n updateModel();\n }\n }, function () {\n for (var i = 0; i < resizingFiles.length; i++) {\n var f = resizingFiles[i];\n if (f.$error === 'resize') {\n var index = valids.indexOf(f);\n if (index > -1) {\n valids.splice(index, 1);\n invalids.push(f);\n }\n updateModel();\n }\n }\n });\n }\n\n prevValidFiles = attr.$$ngfPrevValidFiles || [];\n prevInvalidFiles = attr.$$ngfPrevInvalidFiles || [];\n if (ngModel && ngModel.$modelValue) {\n prevValidFiles = toArray(ngModel.$modelValue);\n }\n\n var keep = upload.attrGetter('ngfKeep', attr, scope);\n allNewFiles = (files || []).slice(0);\n if (keep === 'distinct' || upload.attrGetter('ngfKeepDistinct', attr, scope) === true) {\n removeDuplicates(attr, scope);\n }\n\n var isSingleModel = !keep && !upload.attrGetter('ngfMultiple', attr, scope) && !upload.attrGetter('multiple', attr);\n\n if (keep && !allNewFiles.length) return;\n\n upload.attrGetter('ngfBeforeModelChange', attr, scope, {\n $files: files,\n $file: files && files.length ? files[0] : null,\n $newFiles: allNewFiles,\n $duplicateFiles: dupFiles,\n $event: evt\n });\n\n var validateAfterResize = upload.attrGetter('ngfValidateAfterResize', attr, scope);\n\n var options = upload.attrGetter('ngfModelOptions', attr, scope);\n upload.validate(allNewFiles, keep ? prevValidFiles.length : 0, ngModel, attr, scope)\n .then(function (validationResult) {\n if (noDelay) {\n update(allNewFiles, [], files, dupFiles, isSingleModel);\n } else {\n if ((!options || !options.allowInvalid) && !validateAfterResize) {\n valids = validationResult.validFiles;\n invalids = validationResult.invalidFiles;\n } else {\n valids = allNewFiles;\n }\n if (upload.attrGetter('ngfFixOrientation', attr, scope) && upload.isExifSupported()) {\n applyExifRotations(valids, attr, scope).then(function () {\n resizeAndUpdate();\n });\n } else {\n resizeAndUpdate();\n }\n }\n });\n };\n\n return upload;\n}]);\n\nngFileUpload.directive('ngfSelect', ['$parse', '$timeout', '$compile', 'Upload', function ($parse, $timeout, $compile, Upload) {\n var generatedElems = [];\n\n function isDelayedClickSupported(ua) {\n // fix for android native browser < 4.4 and safari windows\n var m = ua.match(/Android[^\\d]*(\\d+)\\.(\\d+)/);\n if (m && m.length > 2) {\n var v = Upload.defaults.androidFixMinorVersion || 4;\n return parseInt(m[1]) < 4 || (parseInt(m[1]) === v && parseInt(m[2]) < v);\n }\n\n // safari on windows\n return ua.indexOf('Chrome') === -1 && /.*Windows.*Safari.*/.test(ua);\n }\n\n function linkFileSelect(scope, elem, attr, ngModel, $parse, $timeout, $compile, upload) {\n /** @namespace attr.ngfSelect */\n /** @namespace attr.ngfChange */\n /** @namespace attr.ngModel */\n /** @namespace attr.ngfModelOptions */\n /** @namespace attr.ngfMultiple */\n /** @namespace attr.ngfCapture */\n /** @namespace attr.ngfValidate */\n /** @namespace attr.ngfKeep */\n var attrGetter = function (name, scope) {\n return upload.attrGetter(name, attr, scope);\n };\n\n function isInputTypeFile() {\n return elem[0].tagName.toLowerCase() === 'input' && attr.type && attr.type.toLowerCase() === 'file';\n }\n\n function fileChangeAttr() {\n return attrGetter('ngfChange') || attrGetter('ngfSelect');\n }\n\n function changeFn(evt) {\n if (upload.shouldUpdateOn('change', attr, scope)) {\n var fileList = evt.__files_ || (evt.target && evt.target.files), files = [];\n /* Handle duplicate call in IE11 */\n if (!fileList) return;\n for (var i = 0; i < fileList.length; i++) {\n files.push(fileList[i]);\n }\n upload.updateModel(ngModel, attr, scope, fileChangeAttr(),\n files.length ? files : null, evt);\n }\n }\n\n upload.registerModelChangeValidator(ngModel, attr, scope);\n\n var unwatches = [];\n if (attrGetter('ngfMultiple')) {\n unwatches.push(scope.$watch(attrGetter('ngfMultiple'), function () {\n fileElem.attr('multiple', attrGetter('ngfMultiple', scope));\n }));\n }\n if (attrGetter('ngfCapture')) {\n unwatches.push(scope.$watch(attrGetter('ngfCapture'), function () {\n fileElem.attr('capture', attrGetter('ngfCapture', scope));\n }));\n }\n if (attrGetter('ngfAccept')) {\n unwatches.push(scope.$watch(attrGetter('ngfAccept'), function () {\n fileElem.attr('accept', attrGetter('ngfAccept', scope));\n }));\n }\n unwatches.push(attr.$observe('accept', function () {\n fileElem.attr('accept', attrGetter('accept'));\n }));\n function bindAttrToFileInput(fileElem, label) {\n function updateId(val) {\n fileElem.attr('id', 'ngf-' + val);\n label.attr('id', 'ngf-label-' + val);\n }\n\n for (var i = 0; i < elem[0].attributes.length; i++) {\n var attribute = elem[0].attributes[i];\n if (attribute.name !== 'type' && attribute.name !== 'class' && attribute.name !== 'style') {\n if (attribute.name === 'id') {\n updateId(attribute.value);\n unwatches.push(attr.$observe('id', updateId));\n } else {\n fileElem.attr(attribute.name, (!attribute.value && (attribute.name === 'required' ||\n attribute.name === 'multiple')) ? attribute.name : attribute.value);\n }\n }\n }\n }\n\n function createFileInput() {\n if (isInputTypeFile()) {\n return elem;\n }\n\n var fileElem = angular.element('');\n\n var label = angular.element('');\n label.css('visibility', 'hidden').css('position', 'absolute').css('overflow', 'hidden')\n .css('width', '0px').css('height', '0px').css('border', 'none')\n .css('margin', '0px').css('padding', '0px').attr('tabindex', '-1');\n bindAttrToFileInput(fileElem, label);\n\n generatedElems.push({el: elem, ref: label});\n\n document.body.appendChild(label.append(fileElem)[0]);\n\n return fileElem;\n }\n\n function clickHandler(evt) {\n if (elem.attr('disabled')) return false;\n if (attrGetter('ngfSelectDisabled', scope)) return;\n\n var r = detectSwipe(evt);\n // prevent the click if it is a swipe\n if (r != null) return r;\n\n resetModel(evt);\n\n // fix for md when the element is removed from the DOM and added back #460\n try {\n if (!isInputTypeFile() && !document.body.contains(fileElem[0])) {\n generatedElems.push({el: elem, ref: fileElem.parent()});\n document.body.appendChild(fileElem.parent()[0]);\n fileElem.bind('change', changeFn);\n }\n } catch (e) {/*ignore*/\n }\n\n if (isDelayedClickSupported(navigator.userAgent)) {\n setTimeout(function () {\n fileElem[0].click();\n }, 0);\n } else {\n fileElem[0].click();\n }\n\n return false;\n }\n\n\n var initialTouchStartY = 0;\n var initialTouchStartX = 0;\n\n function detectSwipe(evt) {\n var touches = evt.changedTouches || (evt.originalEvent && evt.originalEvent.changedTouches);\n if (touches) {\n if (evt.type === 'touchstart') {\n initialTouchStartX = touches[0].clientX;\n initialTouchStartY = touches[0].clientY;\n return true; // don't block event default\n } else {\n // prevent scroll from triggering event\n if (evt.type === 'touchend') {\n var currentX = touches[0].clientX;\n var currentY = touches[0].clientY;\n if ((Math.abs(currentX - initialTouchStartX) > 20) ||\n (Math.abs(currentY - initialTouchStartY) > 20)) {\n evt.stopPropagation();\n evt.preventDefault();\n return false;\n }\n }\n return true;\n }\n }\n }\n\n var fileElem = elem;\n\n function resetModel(evt) {\n if (upload.shouldUpdateOn('click', attr, scope) && fileElem.val()) {\n fileElem.val(null);\n upload.updateModel(ngModel, attr, scope, fileChangeAttr(), null, evt, true);\n }\n }\n\n if (!isInputTypeFile()) {\n fileElem = createFileInput();\n }\n fileElem.bind('change', changeFn);\n\n if (!isInputTypeFile()) {\n elem.bind('click touchstart touchend', clickHandler);\n } else {\n elem.bind('click', resetModel);\n }\n\n function ie10SameFileSelectFix(evt) {\n if (fileElem && !fileElem.attr('__ngf_ie10_Fix_')) {\n if (!fileElem[0].parentNode) {\n fileElem = null;\n return;\n }\n evt.preventDefault();\n evt.stopPropagation();\n fileElem.unbind('click');\n var clone = fileElem.clone();\n fileElem.replaceWith(clone);\n fileElem = clone;\n fileElem.attr('__ngf_ie10_Fix_', 'true');\n fileElem.bind('change', changeFn);\n fileElem.bind('click', ie10SameFileSelectFix);\n fileElem[0].click();\n return false;\n } else {\n fileElem.removeAttr('__ngf_ie10_Fix_');\n }\n }\n\n if (navigator.appVersion.indexOf('MSIE 10') !== -1) {\n fileElem.bind('click', ie10SameFileSelectFix);\n }\n\n if (ngModel) ngModel.$formatters.push(function (val) {\n if (val == null || val.length === 0) {\n if (fileElem.val()) {\n fileElem.val(null);\n }\n }\n return val;\n });\n\n scope.$on('$destroy', function () {\n if (!isInputTypeFile()) fileElem.parent().remove();\n angular.forEach(unwatches, function (unwatch) {\n unwatch();\n });\n });\n\n $timeout(function () {\n for (var i = 0; i < generatedElems.length; i++) {\n var g = generatedElems[i];\n if (!document.body.contains(g.el[0])) {\n generatedElems.splice(i, 1);\n g.ref.remove();\n }\n }\n });\n\n if (window.FileAPI && window.FileAPI.ngfFixIE) {\n window.FileAPI.ngfFixIE(elem, fileElem, changeFn);\n }\n }\n\n return {\n restrict: 'AEC',\n require: '?ngModel',\n link: function (scope, elem, attr, ngModel) {\n linkFileSelect(scope, elem, attr, ngModel, $parse, $timeout, $compile, Upload);\n }\n };\n}]);\n\n(function () {\n\n ngFileUpload.service('UploadDataUrl', ['UploadBase', '$timeout', '$q', function (UploadBase, $timeout, $q) {\n var upload = UploadBase;\n upload.base64DataUrl = function (file) {\n if (angular.isArray(file)) {\n var d = $q.defer(), count = 0;\n angular.forEach(file, function (f) {\n upload.dataUrl(f, true)['finally'](function () {\n count++;\n if (count === file.length) {\n var urls = [];\n angular.forEach(file, function (ff) {\n urls.push(ff.$ngfDataUrl);\n });\n d.resolve(urls, file);\n }\n });\n });\n return d.promise;\n } else {\n return upload.dataUrl(file, true);\n }\n };\n upload.dataUrl = function (file, disallowObjectUrl) {\n if (!file) return upload.emptyPromise(file, file);\n if ((disallowObjectUrl && file.$ngfDataUrl != null) || (!disallowObjectUrl && file.$ngfBlobUrl != null)) {\n return upload.emptyPromise(disallowObjectUrl ? file.$ngfDataUrl : file.$ngfBlobUrl, file);\n }\n var p = disallowObjectUrl ? file.$$ngfDataUrlPromise : file.$$ngfBlobUrlPromise;\n if (p) return p;\n\n var deferred = $q.defer();\n $timeout(function () {\n if (window.FileReader && file &&\n (!window.FileAPI || navigator.userAgent.indexOf('MSIE 8') === -1 || file.size < 20000) &&\n (!window.FileAPI || navigator.userAgent.indexOf('MSIE 9') === -1 || file.size < 4000000)) {\n //prefer URL.createObjectURL for handling refrences to files of all sizes\n //since it doesn´t build a large string in memory\n var URL = window.URL || window.webkitURL;\n if (URL && URL.createObjectURL && !disallowObjectUrl) {\n var url;\n try {\n url = URL.createObjectURL(file);\n } catch (e) {\n $timeout(function () {\n file.$ngfBlobUrl = '';\n deferred.reject();\n });\n return;\n }\n $timeout(function () {\n file.$ngfBlobUrl = url;\n if (url) {\n deferred.resolve(url, file);\n upload.blobUrls = upload.blobUrls || [];\n upload.blobUrlsTotalSize = upload.blobUrlsTotalSize || 0;\n upload.blobUrls.push({url: url, size: file.size});\n upload.blobUrlsTotalSize += file.size || 0;\n var maxMemory = upload.defaults.blobUrlsMaxMemory || 268435456;\n var maxLength = upload.defaults.blobUrlsMaxQueueSize || 200;\n while ((upload.blobUrlsTotalSize > maxMemory || upload.blobUrls.length > maxLength) && upload.blobUrls.length > 1) {\n var obj = upload.blobUrls.splice(0, 1)[0];\n URL.revokeObjectURL(obj.url);\n upload.blobUrlsTotalSize -= obj.size;\n }\n }\n });\n } else {\n var fileReader = new FileReader();\n fileReader.onload = function (e) {\n $timeout(function () {\n file.$ngfDataUrl = e.target.result;\n deferred.resolve(e.target.result, file);\n $timeout(function () {\n delete file.$ngfDataUrl;\n }, 1000);\n });\n };\n fileReader.onerror = function () {\n $timeout(function () {\n file.$ngfDataUrl = '';\n deferred.reject();\n });\n };\n fileReader.readAsDataURL(file);\n }\n } else {\n $timeout(function () {\n file[disallowObjectUrl ? '$ngfDataUrl' : '$ngfBlobUrl'] = '';\n deferred.reject();\n });\n }\n });\n\n if (disallowObjectUrl) {\n p = file.$$ngfDataUrlPromise = deferred.promise;\n } else {\n p = file.$$ngfBlobUrlPromise = deferred.promise;\n }\n p['finally'](function () {\n delete file[disallowObjectUrl ? '$$ngfDataUrlPromise' : '$$ngfBlobUrlPromise'];\n });\n return p;\n };\n return upload;\n }]);\n\n function getTagType(el) {\n if (el.tagName.toLowerCase() === 'img') return 'image';\n if (el.tagName.toLowerCase() === 'audio') return 'audio';\n if (el.tagName.toLowerCase() === 'video') return 'video';\n return /./;\n }\n\n function linkFileDirective(Upload, $timeout, scope, elem, attr, directiveName, resizeParams, isBackground) {\n function constructDataUrl(file) {\n var disallowObjectUrl = Upload.attrGetter('ngfNoObjectUrl', attr, scope);\n Upload.dataUrl(file, disallowObjectUrl)['finally'](function () {\n $timeout(function () {\n var src = (disallowObjectUrl ? file.$ngfDataUrl : file.$ngfBlobUrl) || file.$ngfDataUrl;\n if (isBackground) {\n elem.css('background-image', 'url(\\'' + (src || '') + '\\')');\n } else {\n elem.attr('src', src);\n }\n if (src) {\n elem.removeClass('ng-hide');\n } else {\n elem.addClass('ng-hide');\n }\n });\n });\n }\n\n $timeout(function () {\n var unwatch = scope.$watch(attr[directiveName], function (file) {\n var size = resizeParams;\n if (directiveName === 'ngfThumbnail') {\n if (!size) {\n size = {\n width: elem[0].naturalWidth || elem[0].clientWidth,\n height: elem[0].naturalHeight || elem[0].clientHeight\n };\n }\n if (size.width === 0 && window.getComputedStyle) {\n var style = getComputedStyle(elem[0]);\n if (style.width && style.width.indexOf('px') > -1 && style.height && style.height.indexOf('px') > -1) {\n size = {\n width: parseInt(style.width.slice(0, -2)),\n height: parseInt(style.height.slice(0, -2))\n };\n }\n }\n }\n\n if (angular.isString(file)) {\n elem.removeClass('ng-hide');\n if (isBackground) {\n return elem.css('background-image', 'url(\\'' + file + '\\')');\n } else {\n return elem.attr('src', file);\n }\n }\n if (file && file.type && file.type.search(getTagType(elem[0])) === 0 &&\n (!isBackground || file.type.indexOf('image') === 0)) {\n if (size && Upload.isResizeSupported()) {\n size.resizeIf = function (width, height) {\n return Upload.attrGetter('ngfResizeIf', attr, scope,\n {$width: width, $height: height, $file: file});\n };\n Upload.resize(file, size).then(\n function (f) {\n constructDataUrl(f);\n }, function (e) {\n throw e;\n }\n );\n } else {\n constructDataUrl(file);\n }\n } else {\n elem.addClass('ng-hide');\n }\n });\n\n scope.$on('$destroy', function () {\n unwatch();\n });\n });\n }\n\n\n /** @namespace attr.ngfSrc */\n /** @namespace attr.ngfNoObjectUrl */\n ngFileUpload.directive('ngfSrc', ['Upload', '$timeout', function (Upload, $timeout) {\n return {\n restrict: 'AE',\n link: function (scope, elem, attr) {\n linkFileDirective(Upload, $timeout, scope, elem, attr, 'ngfSrc',\n Upload.attrGetter('ngfResize', attr, scope), false);\n }\n };\n }]);\n\n /** @namespace attr.ngfBackground */\n /** @namespace attr.ngfNoObjectUrl */\n ngFileUpload.directive('ngfBackground', ['Upload', '$timeout', function (Upload, $timeout) {\n return {\n restrict: 'AE',\n link: function (scope, elem, attr) {\n linkFileDirective(Upload, $timeout, scope, elem, attr, 'ngfBackground',\n Upload.attrGetter('ngfResize', attr, scope), true);\n }\n };\n }]);\n\n /** @namespace attr.ngfThumbnail */\n /** @namespace attr.ngfAsBackground */\n /** @namespace attr.ngfSize */\n /** @namespace attr.ngfNoObjectUrl */\n ngFileUpload.directive('ngfThumbnail', ['Upload', '$timeout', function (Upload, $timeout) {\n return {\n restrict: 'AE',\n link: function (scope, elem, attr) {\n var size = Upload.attrGetter('ngfSize', attr, scope);\n linkFileDirective(Upload, $timeout, scope, elem, attr, 'ngfThumbnail', size,\n Upload.attrGetter('ngfAsBackground', attr, scope));\n }\n };\n }]);\n\n ngFileUpload.config(['$compileProvider', function ($compileProvider) {\n if ($compileProvider.imgSrcSanitizationWhitelist) $compileProvider.imgSrcSanitizationWhitelist(/^\\s*(https?|ftp|mailto|tel|webcal|local|file|data|blob):/);\n if ($compileProvider.aHrefSanitizationWhitelist) $compileProvider.aHrefSanitizationWhitelist(/^\\s*(https?|ftp|mailto|tel|webcal|local|file|data|blob):/);\n }]);\n\n ngFileUpload.filter('ngfDataUrl', ['UploadDataUrl', '$sce', function (UploadDataUrl, $sce) {\n return function (file, disallowObjectUrl, trustedUrl) {\n if (angular.isString(file)) {\n return $sce.trustAsResourceUrl(file);\n }\n var src = file && ((disallowObjectUrl ? file.$ngfDataUrl : file.$ngfBlobUrl) || file.$ngfDataUrl);\n if (file && !src) {\n if (!file.$ngfDataUrlFilterInProgress && angular.isObject(file)) {\n file.$ngfDataUrlFilterInProgress = true;\n UploadDataUrl.dataUrl(file, disallowObjectUrl);\n }\n return '';\n }\n if (file) delete file.$ngfDataUrlFilterInProgress;\n return (file && src ? (trustedUrl ? $sce.trustAsResourceUrl(src) : src) : file) || '';\n };\n }]);\n\n})();\n\nngFileUpload.service('UploadValidate', ['UploadDataUrl', '$q', '$timeout', function (UploadDataUrl, $q, $timeout) {\n var upload = UploadDataUrl;\n\n function globStringToRegex(str) {\n var regexp = '', excludes = [];\n if (str.length > 2 && str[0] === '/' && str[str.length - 1] === '/') {\n regexp = str.substring(1, str.length - 1);\n } else {\n var split = str.split(',');\n if (split.length > 1) {\n for (var i = 0; i < split.length; i++) {\n var r = globStringToRegex(split[i]);\n if (r.regexp) {\n regexp += '(' + r.regexp + ')';\n if (i < split.length - 1) {\n regexp += '|';\n }\n } else {\n excludes = excludes.concat(r.excludes);\n }\n }\n } else {\n if (str.indexOf('!') === 0) {\n excludes.push('^((?!' + globStringToRegex(str.substring(1)).regexp + ').)*$');\n } else {\n if (str.indexOf('.') === 0) {\n str = '*' + str;\n }\n regexp = '^' + str.replace(new RegExp('[.\\\\\\\\+*?\\\\[\\\\^\\\\]$(){}=!<>|:\\\\-]', 'g'), '\\\\$&') + '$';\n regexp = regexp.replace(/\\\\\\*/g, '.*').replace(/\\\\\\?/g, '.');\n }\n }\n }\n return {regexp: regexp, excludes: excludes};\n }\n\n upload.validatePattern = function (file, val) {\n if (!val) {\n return true;\n }\n var pattern = globStringToRegex(val), valid = true;\n if (pattern.regexp && pattern.regexp.length) {\n var regexp = new RegExp(pattern.regexp, 'i');\n valid = (file.type != null && regexp.test(file.type)) ||\n (file.name != null && regexp.test(file.name));\n }\n var len = pattern.excludes.length;\n while (len--) {\n var exclude = new RegExp(pattern.excludes[len], 'i');\n valid = valid && (file.type == null || exclude.test(file.type)) &&\n (file.name == null || exclude.test(file.name));\n }\n return valid;\n };\n\n upload.ratioToFloat = function (val) {\n var r = val.toString(), xIndex = r.search(/[x:]/i);\n if (xIndex > -1) {\n r = parseFloat(r.substring(0, xIndex)) / parseFloat(r.substring(xIndex + 1));\n } else {\n r = parseFloat(r);\n }\n return r;\n };\n\n upload.registerModelChangeValidator = function (ngModel, attr, scope) {\n if (ngModel) {\n ngModel.$formatters.push(function (files) {\n if (ngModel.$dirty) {\n var filesArray = files;\n if (files && !angular.isArray(files)) {\n filesArray = [files];\n }\n upload.validate(filesArray, 0, ngModel, attr, scope).then(function () {\n upload.applyModelValidation(ngModel, filesArray);\n });\n }\n return files;\n });\n }\n };\n\n function markModelAsDirty(ngModel, files) {\n if (files != null && !ngModel.$dirty) {\n if (ngModel.$setDirty) {\n ngModel.$setDirty();\n } else {\n ngModel.$dirty = true;\n }\n }\n }\n\n upload.applyModelValidation = function (ngModel, files) {\n markModelAsDirty(ngModel, files);\n angular.forEach(ngModel.$ngfValidations, function (validation) {\n ngModel.$setValidity(validation.name, validation.valid);\n });\n };\n\n upload.getValidationAttr = function (attr, scope, name, validationName, file) {\n var dName = 'ngf' + name[0].toUpperCase() + name.substr(1);\n var val = upload.attrGetter(dName, attr, scope, {$file: file});\n if (val == null) {\n val = upload.attrGetter('ngfValidate', attr, scope, {$file: file});\n if (val) {\n var split = (validationName || name).split('.');\n val = val[split[0]];\n if (split.length > 1) {\n val = val && val[split[1]];\n }\n }\n }\n return val;\n };\n\n upload.validate = function (files, prevLength, ngModel, attr, scope) {\n ngModel = ngModel || {};\n ngModel.$ngfValidations = ngModel.$ngfValidations || [];\n\n angular.forEach(ngModel.$ngfValidations, function (v) {\n v.valid = true;\n });\n\n var attrGetter = function (name, params) {\n return upload.attrGetter(name, attr, scope, params);\n };\n\n var ignoredErrors = (upload.attrGetter('ngfIgnoreInvalid', attr, scope) || '').split(' ');\n var runAllValidation = upload.attrGetter('ngfRunAllValidations', attr, scope);\n\n if (files == null || files.length === 0) {\n return upload.emptyPromise({'validFiles': files, 'invalidFiles': []});\n }\n\n files = files.length === undefined ? [files] : files.slice(0);\n var invalidFiles = [];\n\n function validateSync(name, validationName, fn) {\n if (files) {\n var i = files.length, valid = null;\n while (i--) {\n var file = files[i];\n if (file) {\n var val = upload.getValidationAttr(attr, scope, name, validationName, file);\n if (val != null) {\n if (!fn(file, val, i)) {\n if (ignoredErrors.indexOf(name) === -1) {\n file.$error = name;\n (file.$errorMessages = (file.$errorMessages || {}))[name] = true;\n file.$errorParam = val;\n if (invalidFiles.indexOf(file) === -1) {\n invalidFiles.push(file);\n }\n if (!runAllValidation) {\n files.splice(i, 1);\n }\n valid = false;\n } else {\n files.splice(i, 1);\n }\n }\n }\n }\n }\n if (valid !== null) {\n ngModel.$ngfValidations.push({name: name, valid: valid});\n }\n }\n }\n\n validateSync('pattern', null, upload.validatePattern);\n validateSync('minSize', 'size.min', function (file, val) {\n return file.size + 0.1 >= upload.translateScalars(val);\n });\n validateSync('maxSize', 'size.max', function (file, val) {\n return file.size - 0.1 <= upload.translateScalars(val);\n });\n var totalSize = 0;\n validateSync('maxTotalSize', null, function (file, val) {\n totalSize += file.size;\n if (totalSize > upload.translateScalars(val)) {\n files.splice(0, files.length);\n return false;\n }\n return true;\n });\n\n validateSync('validateFn', null, function (file, r) {\n return r === true || r === null || r === '';\n });\n\n if (!files.length) {\n return upload.emptyPromise({'validFiles': [], 'invalidFiles': invalidFiles});\n }\n\n function validateAsync(name, validationName, type, asyncFn, fn) {\n function resolveResult(defer, file, val) {\n function resolveInternal(fn) {\n if (fn()) {\n if (ignoredErrors.indexOf(name) === -1) {\n file.$error = name;\n (file.$errorMessages = (file.$errorMessages || {}))[name] = true;\n file.$errorParam = val;\n if (invalidFiles.indexOf(file) === -1) {\n invalidFiles.push(file);\n }\n if (!runAllValidation) {\n var i = files.indexOf(file);\n if (i > -1) files.splice(i, 1);\n }\n defer.resolve(false);\n } else {\n var j = files.indexOf(file);\n if (j > -1) files.splice(j, 1);\n defer.resolve(true);\n }\n } else {\n defer.resolve(true);\n }\n }\n\n if (val != null) {\n asyncFn(file, val).then(function (d) {\n resolveInternal(function () {\n return !fn(d, val);\n });\n }, function () {\n resolveInternal(function () {\n return attrGetter('ngfValidateForce', {$file: file});\n });\n });\n } else {\n defer.resolve(true);\n }\n }\n\n var promises = [upload.emptyPromise(true)];\n if (files) {\n files = files.length === undefined ? [files] : files;\n angular.forEach(files, function (file) {\n var defer = $q.defer();\n promises.push(defer.promise);\n if (type && (file.type == null || file.type.search(type) !== 0)) {\n defer.resolve(true);\n return;\n }\n if (name === 'dimensions' && upload.attrGetter('ngfDimensions', attr) != null) {\n upload.imageDimensions(file).then(function (d) {\n resolveResult(defer, file,\n attrGetter('ngfDimensions', {$file: file, $width: d.width, $height: d.height}));\n }, function () {\n defer.resolve(false);\n });\n } else if (name === 'duration' && upload.attrGetter('ngfDuration', attr) != null) {\n upload.mediaDuration(file).then(function (d) {\n resolveResult(defer, file,\n attrGetter('ngfDuration', {$file: file, $duration: d}));\n }, function () {\n defer.resolve(false);\n });\n } else {\n resolveResult(defer, file,\n upload.getValidationAttr(attr, scope, name, validationName, file));\n }\n });\n }\n var deffer = $q.defer();\n $q.all(promises).then(function (values) {\n var isValid = true;\n for (var i = 0; i < values.length; i++) {\n if (!values[i]) {\n isValid = false;\n break;\n }\n }\n ngModel.$ngfValidations.push({name: name, valid: isValid});\n deffer.resolve(isValid);\n });\n return deffer.promise;\n }\n\n var deffer = $q.defer();\n var promises = [];\n\n promises.push(validateAsync('maxHeight', 'height.max', /image/,\n this.imageDimensions, function (d, val) {\n return d.height <= val;\n }));\n promises.push(validateAsync('minHeight', 'height.min', /image/,\n this.imageDimensions, function (d, val) {\n return d.height >= val;\n }));\n promises.push(validateAsync('maxWidth', 'width.max', /image/,\n this.imageDimensions, function (d, val) {\n return d.width <= val;\n }));\n promises.push(validateAsync('minWidth', 'width.min', /image/,\n this.imageDimensions, function (d, val) {\n return d.width >= val;\n }));\n promises.push(validateAsync('dimensions', null, /image/,\n function (file, val) {\n return upload.emptyPromise(val);\n }, function (r) {\n return r;\n }));\n promises.push(validateAsync('ratio', null, /image/,\n this.imageDimensions, function (d, val) {\n var split = val.toString().split(','), valid = false;\n for (var i = 0; i < split.length; i++) {\n if (Math.abs((d.width / d.height) - upload.ratioToFloat(split[i])) < 0.01) {\n valid = true;\n }\n }\n return valid;\n }));\n promises.push(validateAsync('maxRatio', 'ratio.max', /image/,\n this.imageDimensions, function (d, val) {\n return (d.width / d.height) - upload.ratioToFloat(val) < 0.0001;\n }));\n promises.push(validateAsync('minRatio', 'ratio.min', /image/,\n this.imageDimensions, function (d, val) {\n return (d.width / d.height) - upload.ratioToFloat(val) > -0.0001;\n }));\n promises.push(validateAsync('maxDuration', 'duration.max', /audio|video/,\n this.mediaDuration, function (d, val) {\n return d <= upload.translateScalars(val);\n }));\n promises.push(validateAsync('minDuration', 'duration.min', /audio|video/,\n this.mediaDuration, function (d, val) {\n return d >= upload.translateScalars(val);\n }));\n promises.push(validateAsync('duration', null, /audio|video/,\n function (file, val) {\n return upload.emptyPromise(val);\n }, function (r) {\n return r;\n }));\n\n promises.push(validateAsync('validateAsyncFn', null, null,\n function (file, val) {\n return val;\n }, function (r) {\n return r === true || r === null || r === '';\n }));\n\n $q.all(promises).then(function () {\n\n if (runAllValidation) {\n for (var i = 0; i < files.length; i++) {\n var file = files[i];\n if (file.$error) {\n files.splice(i--, 1);\n }\n }\n }\n\n runAllValidation = false;\n validateSync('maxFiles', null, function (file, val, i) {\n return prevLength + i < val;\n });\n\n deffer.resolve({'validFiles': files, 'invalidFiles': invalidFiles});\n });\n return deffer.promise;\n };\n\n upload.imageDimensions = function (file) {\n if (file.$ngfWidth && file.$ngfHeight) {\n var d = $q.defer();\n $timeout(function () {\n d.resolve({width: file.$ngfWidth, height: file.$ngfHeight});\n });\n return d.promise;\n }\n if (file.$ngfDimensionPromise) return file.$ngfDimensionPromise;\n\n var deferred = $q.defer();\n $timeout(function () {\n if (file.type.indexOf('image') !== 0) {\n deferred.reject('not image');\n return;\n }\n upload.dataUrl(file).then(function (dataUrl) {\n var img = angular.element('').attr('src', dataUrl)\n .css('visibility', 'hidden').css('position', 'fixed')\n .css('max-width', 'none !important').css('max-height', 'none !important');\n\n function success() {\n var width = img[0].naturalWidth || img[0].clientWidth;\n var height = img[0].naturalHeight || img[0].clientHeight;\n img.remove();\n file.$ngfWidth = width;\n file.$ngfHeight = height;\n deferred.resolve({width: width, height: height});\n }\n\n function error() {\n img.remove();\n deferred.reject('load error');\n }\n\n img.on('load', success);\n img.on('error', error);\n\n var secondsCounter = 0;\n function checkLoadErrorInCaseOfNoCallback() {\n $timeout(function () {\n if (img[0].parentNode) {\n if (img[0].clientWidth) {\n success();\n } else if (secondsCounter++ > 10) {\n error();\n } else {\n checkLoadErrorInCaseOfNoCallback();\n }\n }\n }, 1000);\n }\n\n checkLoadErrorInCaseOfNoCallback();\n\n angular.element(document.getElementsByTagName('body')[0]).append(img);\n }, function () {\n deferred.reject('load error');\n });\n });\n\n file.$ngfDimensionPromise = deferred.promise;\n file.$ngfDimensionPromise['finally'](function () {\n delete file.$ngfDimensionPromise;\n });\n return file.$ngfDimensionPromise;\n };\n\n upload.mediaDuration = function (file) {\n if (file.$ngfDuration) {\n var d = $q.defer();\n $timeout(function () {\n d.resolve(file.$ngfDuration);\n });\n return d.promise;\n }\n if (file.$ngfDurationPromise) return file.$ngfDurationPromise;\n\n var deferred = $q.defer();\n $timeout(function () {\n if (file.type.indexOf('audio') !== 0 && file.type.indexOf('video') !== 0) {\n deferred.reject('not media');\n return;\n }\n upload.dataUrl(file).then(function (dataUrl) {\n var el = angular.element(file.type.indexOf('audio') === 0 ? '