{"version":3,"file":"js/272-82a85d0f34403eac7993.js","mappings":";+FAKA,SAASA,EAAcC,EAAWC,EAAO,CAAEC,YAAY,IA4CnD,MA3Ce,CACXC,OAAQ,gBACRC,YAAYC,GACR,IAAIC,EACJ,IAGI,MAAO,CACHC,YAFiBP,EAAUQ,SAASH,EAAQI,OAAOC,OAAO,CAAC,EAAGT,IAG9DU,OAAQ,GAuBhB,CApBA,MAAOC,GACH,MAAMC,EAAQD,EAGd,GAAmB,oBAAfC,EAAMC,KACN,MAAMF,EAEV,KAA6B,QAAtBN,EAAKO,EAAME,aAA0B,IAAPT,OAAgB,EAASA,EAAGU,SAAWH,EAAMF,OAAOK,OACrF,MAAO,CAAEL,OAAQ,CAAC,CAAEM,KAAMJ,EAAMI,KAAMN,OAAQE,EAAMF,UAExD,MAAMA,EAASE,EAAME,MAAMG,QAAO,CAACC,EAAKC,KACpC,MAAMH,EAAOG,EAAKH,MAAQ,GAK1B,OAJKE,EAAIF,KACLE,EAAIF,GAAQ,CAAEN,OAAQ,GAAIM,SAE9BE,EAAIF,GAAMN,OAAOU,QAAQD,EAAKT,QACvBQ,CAAG,GACX,CAAC,GAEJ,MAAO,CAAER,OAAQF,OAAOJ,OAAOM,GACnC,CACJ,EACAW,KAAKjB,GACD,IACI,OAAOL,EAAUsB,KAAKjB,EAI1B,CAFA,MAAOC,GACH,OAAOD,CACX,CACJ,EAGR,oEClDe,SAASkB,EAAaC,EAAUC,GAC7C,GAAIA,EAAKT,OAASQ,EAChB,MAAM,IAAIE,UAAUF,EAAW,aAAeA,EAAW,EAAI,IAAM,IAAM,uBAAyBC,EAAKT,OAAS,WAEpH,oECJe,SAASW,EAAUC,GAChC,GAAoB,OAAhBA,IAAwC,IAAhBA,IAAwC,IAAhBA,EAClD,OAAOC,IAET,IAAIC,EAASC,OAAOH,GACpB,OAAII,MAAMF,GACDA,EAEFA,EAAS,EAAIG,KAAKC,KAAKJ,GAAUG,KAAKE,MAAML,EACrD,oECTe,SAASM,EAAQC,GAG9B,OAAOD,EAAU,mBAAqBE,QAAU,iBAAmBA,OAAOC,SAAW,SAAUF,GAC7F,cAAcA,CAChB,EAAI,SAAUA,GACZ,OAAOA,GAAO,mBAAqBC,QAAUD,EAAIG,cAAgBF,QAAUD,IAAQC,OAAOG,UAAY,gBAAkBJ,CAC1H,EAAGD,EAAQC,EACb,gDC0Be,SAASK,EAAOnC,GAE7B,OADA,EAAAgB,EAAA,GAAa,EAAGoB,WACTpC,aAAiBqC,MAA2B,WAAnBR,EAAQ7B,IAAiE,kBAA1CE,OAAOgC,UAAUI,SAASC,KAAKvC,EAChG,CCLe,SAASwC,EAAOC,IAC7B,EAAAzB,EAAA,GAAa,EAAGoB,WAChB,IAAIM,EAASxC,OAAOgC,UAAUI,SAASC,KAAKE,GAG5C,OAAIA,aAAoBJ,MAA8B,WAAtBR,EAAQY,IAAqC,kBAAXC,EAEzD,IAAIL,KAAKI,EAASE,WACI,kBAAbF,GAAoC,oBAAXC,EAClC,IAAIL,KAAKI,IAES,kBAAbA,GAAoC,oBAAXC,GAAoD,qBAAZE,UAE3EA,QAAQC,KAAK,sNAEbD,QAAQC,MAAK,IAAIC,OAAQC,QAEpB,IAAIV,KAAKf,KAEpB,CCjBe,SAAS0B,EAAQC,GAE9B,IADA,EAAAjC,EAAA,GAAa,EAAGoB,YACXD,EAAOc,IAAmC,kBAAdA,EAC/B,OAAO,EAET,IAAIC,EAAOV,EAAOS,GAClB,OAAQxB,MAAMD,OAAO0B,GACvB,eCpBe,SAASC,EAAgBF,EAAWG,IACjD,EAAApC,EAAA,GAAa,EAAGoB,WAChB,IAAIiB,EAAYb,EAAOS,GAAWN,UAC9BW,GAAS,EAAAlC,EAAA,GAAUgC,GACvB,OAAO,IAAIf,KAAKgB,EAAYC,EAC9B,CCLe,SAASC,EAAgBN,EAAWG,IACjD,EAAApC,EAAA,GAAa,EAAGoB,WAChB,IAAIkB,GAAS,EAAAlC,EAAA,GAAUgC,GACvB,OAAOD,EAAgBF,GAAYK,EACrC,CCvBA,IAAIE,EAAsB,MCAX,SAASC,EAAkBR,IACxC,EAAAjC,EAAA,GAAa,EAAGoB,WAChB,IAAIsB,EAAe,EACfR,EAAOV,EAAOS,GACdU,EAAMT,EAAKU,YACXC,GAAQF,EAAMD,EAAe,EAAI,GAAKC,EAAMD,EAGhD,OAFAR,EAAKY,WAAWZ,EAAKa,aAAeF,GACpCX,EAAKc,YAAY,EAAG,EAAG,EAAG,GACnBd,CACT,CCRe,SAASe,EAAkBhB,IACxC,EAAAjC,EAAA,GAAa,EAAGoB,WAChB,IAAIc,EAAOV,EAAOS,GACdiB,EAAOhB,EAAKiB,iBACZC,EAA4B,IAAI/B,KAAK,GACzC+B,EAA0BC,eAAeH,EAAO,EAAG,EAAG,GACtDE,EAA0BJ,YAAY,EAAG,EAAG,EAAG,GAC/C,IAAIM,EAAkBb,EAAkBW,GACpCG,EAA4B,IAAIlC,KAAK,GACzCkC,EAA0BF,eAAeH,EAAM,EAAG,GAClDK,EAA0BP,YAAY,EAAG,EAAG,EAAG,GAC/C,IAAIQ,EAAkBf,EAAkBc,GACxC,OAAIrB,EAAKP,WAAa2B,EAAgB3B,UAC7BuB,EAAO,EACLhB,EAAKP,WAAa6B,EAAgB7B,UACpCuB,EAEAA,EAAO,CAElB,CCnBe,SAASO,EAAsBxB,IAC5C,EAAAjC,EAAA,GAAa,EAAGoB,WAChB,IAAI8B,EAAOD,EAAkBhB,GACzByB,EAAkB,IAAIrC,KAAK,GAC/BqC,EAAgBL,eAAeH,EAAM,EAAG,GACxCQ,EAAgBV,YAAY,EAAG,EAAG,EAAG,GACrC,IAAId,EAAOO,EAAkBiB,GAC7B,OAAOxB,CACT,CCPA,IAAIyB,EAAuB,OCJ3B,IAAIC,EAAiB,CAAC,EACf,SAASC,IACd,OAAOD,CACT,CCCe,SAASE,EAAe7B,EAAW8B,GAChD,IAAIC,EAAMC,EAAOC,EAAOC,EAAuBC,EAAiBC,EAAuBC,EAAuBC,GAC9G,EAAAvE,EAAA,GAAa,EAAGoB,WAChB,IAAIwC,EAAiBC,IACjBnB,GAAe,EAAAtC,EAAA,GAA+0B,QAAp0B4D,EAA8hB,QAAthBC,EAAkd,QAAzcC,EAA6G,QAApGC,EAAoC,OAAZJ,QAAgC,IAAZA,OAAqB,EAASA,EAAQrB,oBAAoD,IAA1ByB,EAAmCA,EAAoC,OAAZJ,QAAgC,IAAZA,GAAqE,QAAtCK,EAAkBL,EAAQS,cAAwC,IAApBJ,GAA4F,QAArDC,EAAwBD,EAAgBL,eAA+C,IAA1BM,OAA5J,EAAwMA,EAAsB3B,oBAAoC,IAAVwB,EAAmBA,EAAQN,EAAelB,oBAAoC,IAAVuB,EAAmBA,EAA4D,QAAnDK,EAAwBV,EAAeY,cAA8C,IAA1BF,GAAyG,QAA5DC,EAAyBD,EAAsBP,eAAgD,IAA3BQ,OAA9E,EAA2HA,EAAuB7B,oBAAmC,IAATsB,EAAkBA,EAAO,GAGn4B,KAAMtB,GAAgB,GAAKA,GAAgB,GACzC,MAAM,IAAI+B,WAAW,oDAEvB,IAAIvC,EAAOV,EAAOS,GACdU,EAAMT,EAAKU,YACXC,GAAQF,EAAMD,EAAe,EAAI,GAAKC,EAAMD,EAGhD,OAFAR,EAAKY,WAAWZ,EAAKa,aAAeF,GACpCX,EAAKc,YAAY,EAAG,EAAG,EAAG,GACnBd,CACT,CCfe,SAASwC,EAAezC,EAAW8B,GAChD,IAAIC,EAAMC,EAAOC,EAAOS,EAAuBP,EAAiBC,EAAuBC,EAAuBC,GAC9G,EAAAvE,EAAA,GAAa,EAAGoB,WAChB,IAAIc,EAAOV,EAAOS,GACdiB,EAAOhB,EAAKiB,iBACZS,EAAiBC,IACjBe,GAAwB,EAAAxE,EAAA,GAAm3B,QAAx2B4D,EAAyjB,QAAjjBC,EAAoe,QAA3dC,EAAsH,QAA7GS,EAAoC,OAAZZ,QAAgC,IAAZA,OAAqB,EAASA,EAAQa,6BAA6D,IAA1BD,EAAmCA,EAAoC,OAAZZ,QAAgC,IAAZA,GAAqE,QAAtCK,EAAkBL,EAAQS,cAAwC,IAApBJ,GAA4F,QAArDC,EAAwBD,EAAgBL,eAA+C,IAA1BM,OAA5J,EAAwMA,EAAsBO,6BAA6C,IAAVV,EAAmBA,EAAQN,EAAegB,6BAA6C,IAAVX,EAAmBA,EAA4D,QAAnDK,EAAwBV,EAAeY,cAA8C,IAA1BF,GAAyG,QAA5DC,EAAyBD,EAAsBP,eAAgD,IAA3BQ,OAA9E,EAA2HA,EAAuBK,6BAA4C,IAATZ,EAAkBA,EAAO,GAGh7B,KAAMY,GAAyB,GAAKA,GAAyB,GAC3D,MAAM,IAAIH,WAAW,6DAEvB,IAAII,EAAsB,IAAIxD,KAAK,GACnCwD,EAAoBxB,eAAeH,EAAO,EAAG,EAAG0B,GAChDC,EAAoB7B,YAAY,EAAG,EAAG,EAAG,GACzC,IAAIM,EAAkBQ,EAAee,EAAqBd,GACtDe,EAAsB,IAAIzD,KAAK,GACnCyD,EAAoBzB,eAAeH,EAAM,EAAG0B,GAC5CE,EAAoB9B,YAAY,EAAG,EAAG,EAAG,GACzC,IAAIQ,EAAkBM,EAAegB,EAAqBf,GAC1D,OAAI7B,EAAKP,WAAa2B,EAAgB3B,UAC7BuB,EAAO,EACLhB,EAAKP,WAAa6B,EAAgB7B,UACpCuB,EAEAA,EAAO,CAElB,CC3Be,SAAS6B,EAAmB9C,EAAW8B,GACpD,IAAIC,EAAMC,EAAOC,EAAOS,EAAuBP,EAAiBC,EAAuBC,EAAuBC,GAC9G,EAAAvE,EAAA,GAAa,EAAGoB,WAChB,IAAIwC,EAAiBC,IACjBe,GAAwB,EAAAxE,EAAA,GAAm3B,QAAx2B4D,EAAyjB,QAAjjBC,EAAoe,QAA3dC,EAAsH,QAA7GS,EAAoC,OAAZZ,QAAgC,IAAZA,OAAqB,EAASA,EAAQa,6BAA6D,IAA1BD,EAAmCA,EAAoC,OAAZZ,QAAgC,IAAZA,GAAqE,QAAtCK,EAAkBL,EAAQS,cAAwC,IAApBJ,GAA4F,QAArDC,EAAwBD,EAAgBL,eAA+C,IAA1BM,OAA5J,EAAwMA,EAAsBO,6BAA6C,IAAVV,EAAmBA,EAAQN,EAAegB,6BAA6C,IAAVX,EAAmBA,EAA4D,QAAnDK,EAAwBV,EAAeY,cAA8C,IAA1BF,GAAyG,QAA5DC,EAAyBD,EAAsBP,eAAgD,IAA3BQ,OAA9E,EAA2HA,EAAuBK,6BAA4C,IAATZ,EAAkBA,EAAO,GAC56Bd,EAAOwB,EAAezC,EAAW8B,GACjCiB,EAAY,IAAI3D,KAAK,GACzB2D,EAAU3B,eAAeH,EAAM,EAAG0B,GAClCI,EAAUhC,YAAY,EAAG,EAAG,EAAG,GAC/B,IAAId,EAAO4B,EAAekB,EAAWjB,GACrC,OAAO7B,CACT,CCZA,IAAI,EAAuB,OCJZ,SAAS+C,EAAgB1E,EAAQ2E,GAG9C,IAFA,IAAIC,EAAO5E,EAAS,EAAI,IAAM,GAC1B6E,EAAS1E,KAAK2E,IAAI9E,GAAQe,WACvB8D,EAAO3F,OAASyF,GACrBE,EAAS,IAAMA,EAEjB,OAAOD,EAAOC,CAChB,CCMA,IAkEA,EAlEiB,CAEfE,EAAG,SAAWpD,EAAMqD,GAUlB,IAAIC,EAAatD,EAAKiB,iBAElBD,EAAOsC,EAAa,EAAIA,EAAa,EAAIA,EAC7C,OAAOP,EAA0B,OAAVM,EAAiBrC,EAAO,IAAMA,EAAMqC,EAAM9F,OACnE,EAEAgG,EAAG,SAAWvD,EAAMqD,GAClB,IAAIG,EAAQxD,EAAKyD,cACjB,MAAiB,MAAVJ,EAAgBK,OAAOF,EAAQ,GAAKT,EAAgBS,EAAQ,EAAG,EACxE,EAEAG,EAAG,SAAW3D,EAAMqD,GAClB,OAAON,EAAgB/C,EAAKa,aAAcwC,EAAM9F,OAClD,EAEAqG,EAAG,SAAW5D,EAAMqD,GAClB,IAAIQ,EAAqB7D,EAAK8D,cAAgB,IAAM,EAAI,KAAO,KAC/D,OAAQT,GACN,IAAK,IACL,IAAK,KACH,OAAOQ,EAAmBE,cAC5B,IAAK,MACH,OAAOF,EACT,IAAK,QACH,OAAOA,EAAmB,GAE5B,QACE,MAA8B,OAAvBA,EAA8B,OAAS,OAEpD,EAEAG,EAAG,SAAWhE,EAAMqD,GAClB,OAAON,EAAgB/C,EAAK8D,cAAgB,IAAM,GAAIT,EAAM9F,OAC9D,EAEA0G,EAAG,SAAWjE,EAAMqD,GAClB,OAAON,EAAgB/C,EAAK8D,cAAeT,EAAM9F,OACnD,EAEA2G,EAAG,SAAWlE,EAAMqD,GAClB,OAAON,EAAgB/C,EAAKmE,gBAAiBd,EAAM9F,OACrD,EAEA6G,EAAG,SAAWpE,EAAMqD,GAClB,OAAON,EAAgB/C,EAAKqE,gBAAiBhB,EAAM9F,OACrD,EAEA+G,EAAG,SAAWtE,EAAMqD,GAClB,IAAIkB,EAAiBlB,EAAM9F,OACvBiH,EAAexE,EAAKyE,qBAExB,OAAO1B,EADiBvE,KAAKE,MAAM8F,EAAehG,KAAKkG,IAAI,GAAIH,EAAiB,IACtClB,EAAM9F,OAClD,GCtEEoH,EAGQ,WAHRA,EAII,OAJJA,EAKO,UALPA,EAMS,YANTA,EAOO,UAPPA,EAQK,QAgDL,EAAa,CAEfC,EAAG,SAAW5E,EAAMqD,EAAOwB,GACzB,IAAIC,EAAM9E,EAAKiB,iBAAmB,EAAI,EAAI,EAC1C,OAAQoC,GAEN,IAAK,IACL,IAAK,KACL,IAAK,MACH,OAAOwB,EAASC,IAAIA,EAAK,CACvBC,MAAO,gBAGX,IAAK,QACH,OAAOF,EAASC,IAAIA,EAAK,CACvBC,MAAO,WAIX,QACE,OAAOF,EAASC,IAAIA,EAAK,CACvBC,MAAO,SAGf,EAEA3B,EAAG,SAAWpD,EAAMqD,EAAOwB,GAEzB,GAAc,OAAVxB,EAAgB,CAClB,IAAIC,EAAatD,EAAKiB,iBAElBD,EAAOsC,EAAa,EAAIA,EAAa,EAAIA,EAC7C,OAAOuB,EAASG,cAAchE,EAAM,CAClCiE,KAAM,QAEV,CACA,OAAOC,EAAgB9B,EAAEpD,EAAMqD,EACjC,EAEA8B,EAAG,SAAWnF,EAAMqD,EAAOwB,EAAUhD,GACnC,IAAIuD,EAAiB5C,EAAexC,EAAM6B,GAEtCwD,EAAWD,EAAiB,EAAIA,EAAiB,EAAIA,EAGzD,MAAc,OAAV/B,EAEKN,EADYsC,EAAW,IACO,GAIzB,OAAVhC,EACKwB,EAASG,cAAcK,EAAU,CACtCJ,KAAM,SAKHlC,EAAgBsC,EAAUhC,EAAM9F,OACzC,EAEA+H,EAAG,SAAWtF,EAAMqD,GAIlB,OAAON,EAHWhC,EAAkBf,GAGAqD,EAAM9F,OAC5C,EAUAgI,EAAG,SAAWvF,EAAMqD,GAElB,OAAON,EADI/C,EAAKiB,iBACaoC,EAAM9F,OACrC,EAEAiI,EAAG,SAAWxF,EAAMqD,EAAOwB,GACzB,IAAIY,EAAUjH,KAAKC,MAAMuB,EAAKyD,cAAgB,GAAK,GACnD,OAAQJ,GAEN,IAAK,IACH,OAAOK,OAAO+B,GAEhB,IAAK,KACH,OAAO1C,EAAgB0C,EAAS,GAElC,IAAK,KACH,OAAOZ,EAASG,cAAcS,EAAS,CACrCR,KAAM,YAGV,IAAK,MACH,OAAOJ,EAASY,QAAQA,EAAS,CAC/BV,MAAO,cACPW,QAAS,eAGb,IAAK,QACH,OAAOb,EAASY,QAAQA,EAAS,CAC/BV,MAAO,SACPW,QAAS,eAIb,QACE,OAAOb,EAASY,QAAQA,EAAS,CAC/BV,MAAO,OACPW,QAAS,eAGjB,EAEAC,EAAG,SAAW3F,EAAMqD,EAAOwB,GACzB,IAAIY,EAAUjH,KAAKC,MAAMuB,EAAKyD,cAAgB,GAAK,GACnD,OAAQJ,GAEN,IAAK,IACH,OAAOK,OAAO+B,GAEhB,IAAK,KACH,OAAO1C,EAAgB0C,EAAS,GAElC,IAAK,KACH,OAAOZ,EAASG,cAAcS,EAAS,CACrCR,KAAM,YAGV,IAAK,MACH,OAAOJ,EAASY,QAAQA,EAAS,CAC/BV,MAAO,cACPW,QAAS,eAGb,IAAK,QACH,OAAOb,EAASY,QAAQA,EAAS,CAC/BV,MAAO,SACPW,QAAS,eAIb,QACE,OAAOb,EAASY,QAAQA,EAAS,CAC/BV,MAAO,OACPW,QAAS,eAGjB,EAEAnC,EAAG,SAAWvD,EAAMqD,EAAOwB,GACzB,IAAIrB,EAAQxD,EAAKyD,cACjB,OAAQJ,GACN,IAAK,IACL,IAAK,KACH,OAAO6B,EAAgB3B,EAAEvD,EAAMqD,GAEjC,IAAK,KACH,OAAOwB,EAASG,cAAcxB,EAAQ,EAAG,CACvCyB,KAAM,UAGV,IAAK,MACH,OAAOJ,EAASrB,MAAMA,EAAO,CAC3BuB,MAAO,cACPW,QAAS,eAGb,IAAK,QACH,OAAOb,EAASrB,MAAMA,EAAO,CAC3BuB,MAAO,SACPW,QAAS,eAIb,QACE,OAAOb,EAASrB,MAAMA,EAAO,CAC3BuB,MAAO,OACPW,QAAS,eAGjB,EAEAE,EAAG,SAAW5F,EAAMqD,EAAOwB,GACzB,IAAIrB,EAAQxD,EAAKyD,cACjB,OAAQJ,GAEN,IAAK,IACH,OAAOK,OAAOF,EAAQ,GAExB,IAAK,KACH,OAAOT,EAAgBS,EAAQ,EAAG,GAEpC,IAAK,KACH,OAAOqB,EAASG,cAAcxB,EAAQ,EAAG,CACvCyB,KAAM,UAGV,IAAK,MACH,OAAOJ,EAASrB,MAAMA,EAAO,CAC3BuB,MAAO,cACPW,QAAS,eAGb,IAAK,QACH,OAAOb,EAASrB,MAAMA,EAAO,CAC3BuB,MAAO,SACPW,QAAS,eAIb,QACE,OAAOb,EAASrB,MAAMA,EAAO,CAC3BuB,MAAO,OACPW,QAAS,eAGjB,EAEAG,EAAG,SAAW7F,EAAMqD,EAAOwB,EAAUhD,GACnC,IAAIiE,EHzRO,SAAoB/F,EAAW8B,IAC5C,EAAA/D,EAAA,GAAa,EAAGoB,WAChB,IAAIc,EAAOV,EAAOS,GACdY,EAAOiB,EAAe5B,EAAM6B,GAASpC,UAAYoD,EAAmB7C,EAAM6B,GAASpC,UAKvF,OAAOjB,KAAKuH,MAAMpF,EAAO,GAAwB,CACnD,CGgReqF,CAAWhG,EAAM6B,GAC5B,MAAc,OAAVwB,EACKwB,EAASG,cAAcc,EAAM,CAClCb,KAAM,SAGHlC,EAAgB+C,EAAMzC,EAAM9F,OACrC,EAEA0I,EAAG,SAAWjG,EAAMqD,EAAOwB,GACzB,IAAIqB,ERnSO,SAAuBnG,IACpC,EAAAjC,EAAA,GAAa,EAAGoB,WAChB,IAAIc,EAAOV,EAAOS,GACdY,EAAOJ,EAAkBP,GAAMP,UAAY8B,EAAsBvB,GAAMP,UAK3E,OAAOjB,KAAKuH,MAAMpF,EAAOc,GAAwB,CACnD,CQ0RkB0E,CAAcnG,GAC5B,MAAc,OAAVqD,EACKwB,EAASG,cAAckB,EAAS,CACrCjB,KAAM,SAGHlC,EAAgBmD,EAAS7C,EAAM9F,OACxC,EAEAoG,EAAG,SAAW3D,EAAMqD,EAAOwB,GACzB,MAAc,OAAVxB,EACKwB,EAASG,cAAchF,EAAKa,aAAc,CAC/CoE,KAAM,SAGHC,EAAgBvB,EAAE3D,EAAMqD,EACjC,EAEA+C,EAAG,SAAWpG,EAAMqD,EAAOwB,GACzB,IAAIwB,EZxTO,SAAyBtG,IACtC,EAAAjC,EAAA,GAAa,EAAGoB,WAChB,IAAIc,EAAOV,EAAOS,GACdI,EAAYH,EAAKP,UACrBO,EAAKsG,YAAY,EAAG,GACpBtG,EAAKc,YAAY,EAAG,EAAG,EAAG,GAC1B,IAAIyF,EAAuBvG,EAAKP,UAC5B+G,EAAarG,EAAYoG,EAC7B,OAAO/H,KAAKE,MAAM8H,EAAalG,GAAuB,CACxD,CY+SoBmG,CAAgBzG,GAChC,MAAc,OAAVqD,EACKwB,EAASG,cAAcqB,EAAW,CACvCpB,KAAM,cAGHlC,EAAgBsD,EAAWhD,EAAM9F,OAC1C,EAEAmJ,EAAG,SAAW1G,EAAMqD,EAAOwB,GACzB,IAAI8B,EAAY3G,EAAKU,YACrB,OAAQ2C,GAEN,IAAK,IACL,IAAK,KACL,IAAK,MACH,OAAOwB,EAASpE,IAAIkG,EAAW,CAC7B5B,MAAO,cACPW,QAAS,eAGb,IAAK,QACH,OAAOb,EAASpE,IAAIkG,EAAW,CAC7B5B,MAAO,SACPW,QAAS,eAGb,IAAK,SACH,OAAOb,EAASpE,IAAIkG,EAAW,CAC7B5B,MAAO,QACPW,QAAS,eAIb,QACE,OAAOb,EAASpE,IAAIkG,EAAW,CAC7B5B,MAAO,OACPW,QAAS,eAGjB,EAEAkB,EAAG,SAAW5G,EAAMqD,EAAOwB,EAAUhD,GACnC,IAAI8E,EAAY3G,EAAKU,YACjBmG,GAAkBF,EAAY9E,EAAQrB,aAAe,GAAK,GAAK,EACnE,OAAQ6C,GAEN,IAAK,IACH,OAAOK,OAAOmD,GAEhB,IAAK,KACH,OAAO9D,EAAgB8D,EAAgB,GAEzC,IAAK,KACH,OAAOhC,EAASG,cAAc6B,EAAgB,CAC5C5B,KAAM,QAEV,IAAK,MACH,OAAOJ,EAASpE,IAAIkG,EAAW,CAC7B5B,MAAO,cACPW,QAAS,eAGb,IAAK,QACH,OAAOb,EAASpE,IAAIkG,EAAW,CAC7B5B,MAAO,SACPW,QAAS,eAGb,IAAK,SACH,OAAOb,EAASpE,IAAIkG,EAAW,CAC7B5B,MAAO,QACPW,QAAS,eAIb,QACE,OAAOb,EAASpE,IAAIkG,EAAW,CAC7B5B,MAAO,OACPW,QAAS,eAGjB,EAEAoB,EAAG,SAAW9G,EAAMqD,EAAOwB,EAAUhD,GACnC,IAAI8E,EAAY3G,EAAKU,YACjBmG,GAAkBF,EAAY9E,EAAQrB,aAAe,GAAK,GAAK,EACnE,OAAQ6C,GAEN,IAAK,IACH,OAAOK,OAAOmD,GAEhB,IAAK,KACH,OAAO9D,EAAgB8D,EAAgBxD,EAAM9F,QAE/C,IAAK,KACH,OAAOsH,EAASG,cAAc6B,EAAgB,CAC5C5B,KAAM,QAEV,IAAK,MACH,OAAOJ,EAASpE,IAAIkG,EAAW,CAC7B5B,MAAO,cACPW,QAAS,eAGb,IAAK,QACH,OAAOb,EAASpE,IAAIkG,EAAW,CAC7B5B,MAAO,SACPW,QAAS,eAGb,IAAK,SACH,OAAOb,EAASpE,IAAIkG,EAAW,CAC7B5B,MAAO,QACPW,QAAS,eAIb,QACE,OAAOb,EAASpE,IAAIkG,EAAW,CAC7B5B,MAAO,OACPW,QAAS,eAGjB,EAEAqB,EAAG,SAAW/G,EAAMqD,EAAOwB,GACzB,IAAI8B,EAAY3G,EAAKU,YACjBsG,EAA6B,IAAdL,EAAkB,EAAIA,EACzC,OAAQtD,GAEN,IAAK,IACH,OAAOK,OAAOsD,GAEhB,IAAK,KACH,OAAOjE,EAAgBiE,EAAc3D,EAAM9F,QAE7C,IAAK,KACH,OAAOsH,EAASG,cAAcgC,EAAc,CAC1C/B,KAAM,QAGV,IAAK,MACH,OAAOJ,EAASpE,IAAIkG,EAAW,CAC7B5B,MAAO,cACPW,QAAS,eAGb,IAAK,QACH,OAAOb,EAASpE,IAAIkG,EAAW,CAC7B5B,MAAO,SACPW,QAAS,eAGb,IAAK,SACH,OAAOb,EAASpE,IAAIkG,EAAW,CAC7B5B,MAAO,QACPW,QAAS,eAIb,QACE,OAAOb,EAASpE,IAAIkG,EAAW,CAC7B5B,MAAO,OACPW,QAAS,eAGjB,EAEA9B,EAAG,SAAW5D,EAAMqD,EAAOwB,GACzB,IACIhB,EADQ7D,EAAK8D,cACgB,IAAM,EAAI,KAAO,KAClD,OAAQT,GACN,IAAK,IACL,IAAK,KACH,OAAOwB,EAASoC,UAAUpD,EAAoB,CAC5CkB,MAAO,cACPW,QAAS,eAEb,IAAK,MACH,OAAOb,EAASoC,UAAUpD,EAAoB,CAC5CkB,MAAO,cACPW,QAAS,eACRwB,cACL,IAAK,QACH,OAAOrC,EAASoC,UAAUpD,EAAoB,CAC5CkB,MAAO,SACPW,QAAS,eAGb,QACE,OAAOb,EAASoC,UAAUpD,EAAoB,CAC5CkB,MAAO,OACPW,QAAS,eAGjB,EAEAyB,EAAG,SAAWnH,EAAMqD,EAAOwB,GACzB,IACIhB,EADAuD,EAAQpH,EAAK8D,cASjB,OANED,EADY,KAAVuD,EACmBzC,EACF,IAAVyC,EACYzC,EAEAyC,EAAQ,IAAM,EAAI,KAAO,KAExC/D,GACN,IAAK,IACL,IAAK,KACH,OAAOwB,EAASoC,UAAUpD,EAAoB,CAC5CkB,MAAO,cACPW,QAAS,eAEb,IAAK,MACH,OAAOb,EAASoC,UAAUpD,EAAoB,CAC5CkB,MAAO,cACPW,QAAS,eACRwB,cACL,IAAK,QACH,OAAOrC,EAASoC,UAAUpD,EAAoB,CAC5CkB,MAAO,SACPW,QAAS,eAGb,QACE,OAAOb,EAASoC,UAAUpD,EAAoB,CAC5CkB,MAAO,OACPW,QAAS,eAGjB,EAEA2B,EAAG,SAAWrH,EAAMqD,EAAOwB,GACzB,IACIhB,EADAuD,EAAQpH,EAAK8D,cAWjB,OARED,EADEuD,GAAS,GACUzC,EACZyC,GAAS,GACGzC,EACZyC,GAAS,EACGzC,EAEAA,EAEftB,GACN,IAAK,IACL,IAAK,KACL,IAAK,MACH,OAAOwB,EAASoC,UAAUpD,EAAoB,CAC5CkB,MAAO,cACPW,QAAS,eAEb,IAAK,QACH,OAAOb,EAASoC,UAAUpD,EAAoB,CAC5CkB,MAAO,SACPW,QAAS,eAGb,QACE,OAAOb,EAASoC,UAAUpD,EAAoB,CAC5CkB,MAAO,OACPW,QAAS,eAGjB,EAEA1B,EAAG,SAAWhE,EAAMqD,EAAOwB,GACzB,GAAc,OAAVxB,EAAgB,CAClB,IAAI+D,EAAQpH,EAAK8D,cAAgB,GAEjC,OADc,IAAVsD,IAAaA,EAAQ,IAClBvC,EAASG,cAAcoC,EAAO,CACnCnC,KAAM,QAEV,CACA,OAAOC,EAAgBlB,EAAEhE,EAAMqD,EACjC,EAEAY,EAAG,SAAWjE,EAAMqD,EAAOwB,GACzB,MAAc,OAAVxB,EACKwB,EAASG,cAAchF,EAAK8D,cAAe,CAChDmB,KAAM,SAGHC,EAAgBjB,EAAEjE,EAAMqD,EACjC,EAEAiE,EAAG,SAAWtH,EAAMqD,EAAOwB,GACzB,IAAIuC,EAAQpH,EAAK8D,cAAgB,GACjC,MAAc,OAAVT,EACKwB,EAASG,cAAcoC,EAAO,CACnCnC,KAAM,SAGHlC,EAAgBqE,EAAO/D,EAAM9F,OACtC,EAEAgK,EAAG,SAAWvH,EAAMqD,EAAOwB,GACzB,IAAIuC,EAAQpH,EAAK8D,cAEjB,OADc,IAAVsD,IAAaA,EAAQ,IACX,OAAV/D,EACKwB,EAASG,cAAcoC,EAAO,CACnCnC,KAAM,SAGHlC,EAAgBqE,EAAO/D,EAAM9F,OACtC,EAEA2G,EAAG,SAAWlE,EAAMqD,EAAOwB,GACzB,MAAc,OAAVxB,EACKwB,EAASG,cAAchF,EAAKmE,gBAAiB,CAClDc,KAAM,WAGHC,EAAgBhB,EAAElE,EAAMqD,EACjC,EAEAe,EAAG,SAAWpE,EAAMqD,EAAOwB,GACzB,MAAc,OAAVxB,EACKwB,EAASG,cAAchF,EAAKqE,gBAAiB,CAClDY,KAAM,WAGHC,EAAgBd,EAAEpE,EAAMqD,EACjC,EAEAiB,EAAG,SAAWtE,EAAMqD,GAClB,OAAO6B,EAAgBZ,EAAEtE,EAAMqD,EACjC,EAEAmE,EAAG,SAAWxH,EAAMqD,EAAOoE,EAAW5F,GACpC,IACI6F,GADe7F,EAAQ8F,eAAiB3H,GACV4H,oBAClC,GAAuB,IAAnBF,EACF,MAAO,IAET,OAAQrE,GAEN,IAAK,IACH,OAAOwE,EAAkCH,GAK3C,IAAK,OACL,IAAK,KAEH,OAAOI,EAAeJ,GAOxB,QACE,OAAOI,EAAeJ,EAAgB,KAE5C,EAEAK,EAAG,SAAW/H,EAAMqD,EAAOoE,EAAW5F,GACpC,IACI6F,GADe7F,EAAQ8F,eAAiB3H,GACV4H,oBAClC,OAAQvE,GAEN,IAAK,IACH,OAAOwE,EAAkCH,GAK3C,IAAK,OACL,IAAK,KAEH,OAAOI,EAAeJ,GAOxB,QACE,OAAOI,EAAeJ,EAAgB,KAE5C,EAEAM,EAAG,SAAWhI,EAAMqD,EAAOoE,EAAW5F,GACpC,IACI6F,GADe7F,EAAQ8F,eAAiB3H,GACV4H,oBAClC,OAAQvE,GAEN,IAAK,IACL,IAAK,KACL,IAAK,MACH,MAAO,MAAQ4E,EAAoBP,EAAgB,KAGrD,QACE,MAAO,MAAQI,EAAeJ,EAAgB,KAEpD,EAEAQ,EAAG,SAAWlI,EAAMqD,EAAOoE,EAAW5F,GACpC,IACI6F,GADe7F,EAAQ8F,eAAiB3H,GACV4H,oBAClC,OAAQvE,GAEN,IAAK,IACL,IAAK,KACL,IAAK,MACH,MAAO,MAAQ4E,EAAoBP,EAAgB,KAGrD,QACE,MAAO,MAAQI,EAAeJ,EAAgB,KAEpD,EAEAS,EAAG,SAAWnI,EAAMqD,EAAOoE,EAAW5F,GACpC,IAAIuG,EAAevG,EAAQ8F,eAAiB3H,EAE5C,OAAO+C,EADSvE,KAAKE,MAAM0J,EAAa3I,UAAY,KAClB4D,EAAM9F,OAC1C,EAEA8K,EAAG,SAAWrI,EAAMqD,EAAOoE,EAAW5F,GAGpC,OAAOkB,GAFYlB,EAAQ8F,eAAiB3H,GACfP,UACK4D,EAAM9F,OAC1C,GAEF,SAAS0K,EAAoBK,EAAQC,GACnC,IAAItF,EAAOqF,EAAS,EAAI,IAAM,IAC1BE,EAAYhK,KAAK2E,IAAImF,GACrBlB,EAAQ5I,KAAKE,MAAM8J,EAAY,IAC/BC,EAAUD,EAAY,GAC1B,GAAgB,IAAZC,EACF,OAAOxF,EAAOS,OAAO0D,GAEvB,IAAIsB,EAAYH,GAAkB,GAClC,OAAOtF,EAAOS,OAAO0D,GAASsB,EAAY3F,EAAgB0F,EAAS,EACrE,CACA,SAASZ,EAAkCS,EAAQC,GACjD,OAAID,EAAS,KAAO,GACPA,EAAS,EAAI,IAAM,KAChBvF,EAAgBvE,KAAK2E,IAAImF,GAAU,GAAI,GAEhDR,EAAeQ,EAAQC,EAChC,CACA,SAAST,EAAeQ,EAAQC,GAC9B,IAAIG,EAAYH,GAAkB,GAC9BtF,EAAOqF,EAAS,EAAI,IAAM,IAC1BE,EAAYhK,KAAK2E,IAAImF,GAGzB,OAAOrF,EAFKF,EAAgBvE,KAAKE,MAAM8J,EAAY,IAAK,GAElCE,EADR3F,EAAgByF,EAAY,GAAI,EAEhD,CACA,QCnwBIG,EAAoB,SAA2BC,EAASC,GAC1D,OAAQD,GACN,IAAK,IACH,OAAOC,EAAW7I,KAAK,CACrB+E,MAAO,UAEX,IAAK,KACH,OAAO8D,EAAW7I,KAAK,CACrB+E,MAAO,WAEX,IAAK,MACH,OAAO8D,EAAW7I,KAAK,CACrB+E,MAAO,SAGX,QACE,OAAO8D,EAAW7I,KAAK,CACrB+E,MAAO,SAGf,EACI+D,EAAoB,SAA2BF,EAASC,GAC1D,OAAQD,GACN,IAAK,IACH,OAAOC,EAAWE,KAAK,CACrBhE,MAAO,UAEX,IAAK,KACH,OAAO8D,EAAWE,KAAK,CACrBhE,MAAO,WAEX,IAAK,MACH,OAAO8D,EAAWE,KAAK,CACrBhE,MAAO,SAGX,QACE,OAAO8D,EAAWE,KAAK,CACrBhE,MAAO,SAGf,EAkCIiE,EAAiB,CACnBC,EAAGH,EACHI,EAnC0B,SAA+BN,EAASC,GAClE,IAMIM,EANAC,EAAcR,EAAQS,MAAM,cAAgB,GAC5CC,EAAcF,EAAY,GAC1BG,EAAcH,EAAY,GAC9B,IAAKG,EACH,OAAOZ,EAAkBC,EAASC,GAGpC,OAAQS,GACN,IAAK,IACHH,EAAiBN,EAAWW,SAAS,CACnCzE,MAAO,UAET,MACF,IAAK,KACHoE,EAAiBN,EAAWW,SAAS,CACnCzE,MAAO,WAET,MACF,IAAK,MACHoE,EAAiBN,EAAWW,SAAS,CACnCzE,MAAO,SAET,MAEF,QACEoE,EAAiBN,EAAWW,SAAS,CACnCzE,MAAO,SAIb,OAAOoE,EAAeM,QAAQ,WAAYd,EAAkBW,EAAaT,IAAaY,QAAQ,WAAYX,EAAkBS,EAAaV,GAC3I,GAKA,ICpEe,SAASa,EAAgC1J,GACtD,IAAI2J,EAAU,IAAIxK,KAAKA,KAAKyK,IAAI5J,EAAK6J,cAAe7J,EAAK8J,WAAY9J,EAAK+J,UAAW/J,EAAKgK,WAAYhK,EAAKiK,aAAcjK,EAAKkK,aAAclK,EAAKmK,oBAEjJ,OADAR,EAAQxI,eAAenB,EAAK6J,eACrB7J,EAAKP,UAAYkK,EAAQlK,SAClC,CCfA,IAAI2K,EAA2B,CAAC,IAAK,MACjCC,EAA0B,CAAC,KAAM,QAC9B,SAASC,EAA0BjH,GACxC,OAAoD,IAA7C+G,EAAyBG,QAAQlH,EAC1C,CACO,SAASmH,EAAyBnH,GACvC,OAAmD,IAA5CgH,EAAwBE,QAAQlH,EACzC,CACO,SAASoH,EAAoBpH,EAAOqH,EAAQC,GACjD,GAAc,SAAVtH,EACF,MAAM,IAAId,WAAW,qCAAqCqI,OAAOF,EAAQ,0CAA0CE,OAAOD,EAAO,mFAC5H,GAAc,OAAVtH,EACT,MAAM,IAAId,WAAW,iCAAiCqI,OAAOF,EAAQ,0CAA0CE,OAAOD,EAAO,mFACxH,GAAc,MAAVtH,EACT,MAAM,IAAId,WAAW,+BAA+BqI,OAAOF,EAAQ,sDAAsDE,OAAOD,EAAO,mFAClI,GAAc,OAAVtH,EACT,MAAM,IAAId,WAAW,iCAAiCqI,OAAOF,EAAQ,sDAAsDE,OAAOD,EAAO,kFAE7I,CClBA,IAAIE,EAAuB,CACzBC,iBAAkB,CAChBC,IAAK,qBACLC,MAAO,+BAETC,SAAU,CACRF,IAAK,WACLC,MAAO,qBAETE,YAAa,gBACbC,iBAAkB,CAChBJ,IAAK,qBACLC,MAAO,+BAETI,SAAU,CACRL,IAAK,WACLC,MAAO,qBAETK,YAAa,CACXN,IAAK,eACLC,MAAO,yBAETM,OAAQ,CACNP,IAAK,SACLC,MAAO,mBAETO,MAAO,CACLR,IAAK,QACLC,MAAO,kBAETQ,YAAa,CACXT,IAAK,eACLC,MAAO,yBAETS,OAAQ,CACNV,IAAK,SACLC,MAAO,mBAETU,aAAc,CACZX,IAAK,gBACLC,MAAO,0BAETW,QAAS,CACPZ,IAAK,UACLC,MAAO,oBAETY,YAAa,CACXb,IAAK,eACLC,MAAO,yBAETa,OAAQ,CACNd,IAAK,SACLC,MAAO,mBAETc,WAAY,CACVf,IAAK,cACLC,MAAO,wBAETe,aAAc,CACZhB,IAAK,gBACLC,MAAO,2BAsBX,EAnBqB,SAAwB3H,EAAO2I,EAAOnK,GACzD,IAAIoK,EACAC,EAAarB,EAAqBxH,GAQtC,OANE4I,EADwB,kBAAfC,EACAA,EACU,IAAVF,EACAE,EAAWnB,IAEXmB,EAAWlB,MAAMvB,QAAQ,YAAauC,EAAM5M,YAEvC,OAAZyC,QAAgC,IAAZA,GAAsBA,EAAQsK,UAChDtK,EAAQuK,YAAcvK,EAAQuK,WAAa,EACtC,MAAQH,EAERA,EAAS,OAGbA,CACT,ECjFe,SAASI,EAAkBrO,GACxC,OAAO,WACL,IAAI6D,EAAU3C,UAAU3B,OAAS,QAAsB+O,IAAjBpN,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAE/E6F,EAAQlD,EAAQkD,MAAQrB,OAAO7B,EAAQkD,OAAS/G,EAAKuO,aACrD7B,EAAS1M,EAAKwO,QAAQzH,IAAU/G,EAAKwO,QAAQxO,EAAKuO,cACtD,OAAO7B,CACT,CACF,CCPA,IAgCA,EAdiB,CACf1K,KAAMqM,EAAkB,CACtBG,QApBc,CAChBC,KAAM,mBACNC,KAAM,aACNC,OAAQ,WACRC,MAAO,cAiBLL,aAAc,SAEhBxD,KAAMsD,EAAkB,CACtBG,QAlBc,CAChBC,KAAM,iBACNC,KAAM,cACNC,OAAQ,YACRC,MAAO,UAeLL,aAAc,SAEhB/C,SAAU6C,EAAkB,CAC1BG,QAhBkB,CACpBC,KAAM,yBACNC,KAAM,yBACNC,OAAQ,qBACRC,MAAO,sBAaLL,aAAc,UC9BdM,EAAuB,CACzBC,SAAU,qBACVC,UAAW,mBACXC,MAAO,eACPC,SAAU,kBACVC,SAAU,cACVlC,MAAO,KAKT,EAHqB,SAAwB3H,EAAO8J,EAAOC,EAAWC,GACpE,OAAOR,EAAqBxJ,EAC9B,ECVe,SAASiK,EAAgBtP,GACtC,OAAO,SAAUuP,EAAY1L,GAC3B,IACI2L,EACJ,GAAgB,gBAFU,OAAZ3L,QAAgC,IAAZA,GAAsBA,EAAQ6D,QAAUhC,OAAO7B,EAAQ6D,SAAW,eAEpE1H,EAAKyP,iBAAkB,CACrD,IAAIlB,EAAevO,EAAK0P,wBAA0B1P,EAAKuO,aACnDxH,EAAoB,OAAZlD,QAAgC,IAAZA,GAAsBA,EAAQkD,MAAQrB,OAAO7B,EAAQkD,OAASwH,EAC9FiB,EAAcxP,EAAKyP,iBAAiB1I,IAAU/G,EAAKyP,iBAAiBlB,EACtE,KAAO,CACL,IAAIoB,EAAgB3P,EAAKuO,aACrBqB,EAAqB,OAAZ/L,QAAgC,IAAZA,GAAsBA,EAAQkD,MAAQrB,OAAO7B,EAAQkD,OAAS/G,EAAKuO,aACpGiB,EAAcxP,EAAKpB,OAAOgR,IAAW5P,EAAKpB,OAAO+Q,EACnD,CAGA,OAAOH,EAFKxP,EAAK6P,iBAAmB7P,EAAK6P,iBAAiBN,GAAcA,EAG1E,CACF,CChBA,IA6IA,EA5Be,CACbvI,cAxBkB,SAAuB7G,EAAakP,GACtD,IAAIhP,EAASC,OAAOH,GAShB2P,EAASzP,EAAS,IACtB,GAAIyP,EAAS,IAAMA,EAAS,GAC1B,OAAQA,EAAS,IACf,KAAK,EACH,OAAOzP,EAAS,KAClB,KAAK,EACH,OAAOA,EAAS,KAClB,KAAK,EACH,OAAOA,EAAS,KAGtB,OAAOA,EAAS,IAClB,EAGEyG,IAAKwI,EAAgB,CACnB1Q,OApHY,CACdmR,OAAQ,CAAC,IAAK,KACdC,YAAa,CAAC,KAAM,MACpBC,KAAM,CAAC,gBAAiB,gBAkHtB1B,aAAc,SAEhB9G,QAAS6H,EAAgB,CACvB1Q,OAnHgB,CAClBmR,OAAQ,CAAC,IAAK,IAAK,IAAK,KACxBC,YAAa,CAAC,KAAM,KAAM,KAAM,MAChCC,KAAM,CAAC,cAAe,cAAe,cAAe,gBAiHlD1B,aAAc,OACdsB,iBAAkB,SAA0BpI,GAC1C,OAAOA,EAAU,CACnB,IAEFjC,MAAO8J,EAAgB,CACrB1Q,OAhHc,CAChBmR,OAAQ,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAChEC,YAAa,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OAC3FC,KAAM,CAAC,UAAW,WAAY,QAAS,QAAS,MAAO,OAAQ,OAAQ,SAAU,YAAa,UAAW,WAAY,aA8GnH1B,aAAc,SAEhB9L,IAAK6M,EAAgB,CACnB1Q,OA/GY,CACdmR,OAAQ,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACvCnB,MAAO,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAC5CoB,YAAa,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OACxDC,KAAM,CAAC,SAAU,SAAU,UAAW,YAAa,WAAY,SAAU,aA4GvE1B,aAAc,SAEhBtF,UAAWqG,EAAgB,CACzB1Q,OA7GkB,CACpBmR,OAAQ,CACNG,GAAI,IACJC,GAAI,IACJC,SAAU,KACVC,KAAM,IACNC,QAAS,UACTC,UAAW,YACXC,QAAS,UACTC,MAAO,SAETT,YAAa,CACXE,GAAI,KACJC,GAAI,KACJC,SAAU,WACVC,KAAM,OACNC,QAAS,UACTC,UAAW,YACXC,QAAS,UACTC,MAAO,SAETR,KAAM,CACJC,GAAI,OACJC,GAAI,OACJC,SAAU,WACVC,KAAM,OACNC,QAAS,UACTC,UAAW,YACXC,QAAS,UACTC,MAAO,UAiFPlC,aAAc,OACdkB,iBA/E4B,CAC9BM,OAAQ,CACNG,GAAI,IACJC,GAAI,IACJC,SAAU,KACVC,KAAM,IACNC,QAAS,iBACTC,UAAW,mBACXC,QAAS,iBACTC,MAAO,YAETT,YAAa,CACXE,GAAI,KACJC,GAAI,KACJC,SAAU,WACVC,KAAM,OACNC,QAAS,iBACTC,UAAW,mBACXC,QAAS,iBACTC,MAAO,YAETR,KAAM,CACJC,GAAI,OACJC,GAAI,OACJC,SAAU,WACVC,KAAM,OACNC,QAAS,iBACTC,UAAW,mBACXC,QAAS,iBACTC,MAAO,aAmDPf,uBAAwB,UC3Ib,SAASgB,EAAa1Q,GACnC,OAAO,SAAU2Q,GACf,IAAI9M,EAAU3C,UAAU3B,OAAS,QAAsB+O,IAAjBpN,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAC/E6F,EAAQlD,EAAQkD,MAChB6J,EAAe7J,GAAS/G,EAAK6Q,cAAc9J,IAAU/G,EAAK6Q,cAAc7Q,EAAK8Q,mBAC7E1F,EAAcuF,EAAOtF,MAAMuF,GAC/B,IAAKxF,EACH,OAAO,KAET,IAOItM,EAPAiS,EAAgB3F,EAAY,GAC5B4F,EAAgBjK,GAAS/G,EAAKgR,cAAcjK,IAAU/G,EAAKgR,cAAchR,EAAKiR,mBAC9EC,EAAMC,MAAMC,QAAQJ,GAAiBK,GAAUL,GAAe,SAAUpG,GAC1E,OAAOA,EAAQ0G,KAAKP,EACtB,IAAKQ,GAAQP,GAAe,SAAUpG,GACpC,OAAOA,EAAQ0G,KAAKP,EACtB,IAEAjS,EAAQkB,EAAKwR,cAAgBxR,EAAKwR,cAAcN,GAAOA,EACvDpS,EAAQ+E,EAAQ2N,cAAgB3N,EAAQ2N,cAAc1S,GAASA,EAC/D,IAAI2S,EAAOd,EAAOe,MAAMX,EAAcxR,QACtC,MAAO,CACLT,MAAOA,EACP2S,KAAMA,EAEV,CACF,CACA,SAASF,GAAQI,EAAQC,GACvB,IAAK,IAAIV,KAAOS,EACd,GAAIA,EAAOE,eAAeX,IAAQU,EAAUD,EAAOT,IACjD,OAAOA,CAIb,CACA,SAASG,GAAUS,EAAOF,GACxB,IAAK,IAAIV,EAAM,EAAGA,EAAMY,EAAMvS,OAAQ2R,IACpC,GAAIU,EAAUE,EAAMZ,IAClB,OAAOA,CAIb,CCvCA,ICF4ClR,GDuDxCqL,GAAQ,CACVrE,eCxD0ChH,GDwDP,CACjC4Q,aAvD4B,wBAwD5BmB,aAvD4B,OAwD5BP,cAAe,SAAuB1S,GACpC,OAAOkT,SAASlT,EAAO,GACzB,GC5DK,SAAU6R,GACf,IAAI9M,EAAU3C,UAAU3B,OAAS,QAAsB+O,IAAjBpN,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAC/EkK,EAAcuF,EAAOtF,MAAMrL,GAAK4Q,cACpC,IAAKxF,EAAa,OAAO,KACzB,IAAI2F,EAAgB3F,EAAY,GAC5B6G,EAActB,EAAOtF,MAAMrL,GAAK+R,cACpC,IAAKE,EAAa,OAAO,KACzB,IAAInT,EAAQkB,GAAKwR,cAAgBxR,GAAKwR,cAAcS,EAAY,IAAMA,EAAY,GAClFnT,EAAQ+E,EAAQ2N,cAAgB3N,EAAQ2N,cAAc1S,GAASA,EAC/D,IAAI2S,EAAOd,EAAOe,MAAMX,EAAcxR,QACtC,MAAO,CACLT,MAAOA,EACP2S,KAAMA,EAEV,GDgDA3K,IAAK4J,EAAa,CAChBG,cA5DmB,CACrBd,OAAQ,UACRC,YAAa,6DACbC,KAAM,8DA0DJa,kBAAmB,OACnBE,cAzDmB,CACrBkB,IAAK,CAAC,MAAO,YAyDXjB,kBAAmB,QAErBxJ,QAASiJ,EAAa,CACpBG,cA1DuB,CACzBd,OAAQ,WACRC,YAAa,YACbC,KAAM,kCAwDJa,kBAAmB,OACnBE,cAvDuB,CACzBkB,IAAK,CAAC,KAAM,KAAM,KAAM,OAuDtBjB,kBAAmB,MACnBO,cAAe,SAAuBW,GACpC,OAAOA,EAAQ,CACjB,IAEF3M,MAAOkL,EAAa,CAClBG,cA3DqB,CACvBd,OAAQ,eACRC,YAAa,sDACbC,KAAM,6FAyDJa,kBAAmB,OACnBE,cAxDqB,CACvBjB,OAAQ,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OACtFmC,IAAK,CAAC,OAAQ,MAAO,QAAS,OAAQ,QAAS,QAAS,QAAS,OAAQ,MAAO,MAAO,MAAO,QAuD5FjB,kBAAmB,QAErBxO,IAAKiO,EAAa,CAChBG,cAxDmB,CACrBd,OAAQ,YACRnB,MAAO,2BACPoB,YAAa,kCACbC,KAAM,gEAqDJa,kBAAmB,OACnBE,cApDmB,CACrBjB,OAAQ,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OACnDmC,IAAK,CAAC,OAAQ,MAAO,OAAQ,MAAO,OAAQ,MAAO,SAmDjDjB,kBAAmB,QAErBhI,UAAWyH,EAAa,CACtBG,cApDyB,CAC3Bd,OAAQ,6DACRmC,IAAK,kFAmDHpB,kBAAmB,MACnBE,cAlDyB,CAC3BkB,IAAK,CACHhC,GAAI,MACJC,GAAI,MACJC,SAAU,OACVC,KAAM,OACNC,QAAS,WACTC,UAAW,aACXC,QAAS,WACTC,MAAO,WA0CPQ,kBAAmB,SE7FvB,GCaa,CACXmB,KAAM,QACNC,eAAgB,EAChBxH,WAAY,EACZyH,eAAgB,EAChBzL,SAAU,EACVwE,MH6EF,GG5EExH,QAAS,CACPrB,aAAc,EACdkC,sBAAuB,ICFvB6N,GAAyB,wDAIzBC,GAA6B,oCAC7BC,GAAsB,eACtBC,GAAoB,MACpBC,GAAgC,WAsSrB,SAASjG,GAAO3K,EAAW6Q,EAAgB/O,GACxD,IAAIC,EAAMI,EAAiBH,EAAOC,EAAO6O,EAAOpO,EAAuBqO,EAAkBC,EAAuB3O,EAAuBC,EAAwB2O,EAAOC,EAAOC,EAAOjP,EAAuBkP,EAAkBC,EAAuBC,EAAwBC,GAC5Q,EAAAxT,EAAA,GAAa,EAAGoB,WAChB,IAAIqS,EAAY7N,OAAOkN,GACnBlP,EAAiBC,IACjBW,EAA4L,QAAlLR,EAAgG,QAAxFI,EAA8B,OAAZL,QAAgC,IAAZA,OAAqB,EAASA,EAAQS,cAAwC,IAApBJ,EAA6BA,EAAkBR,EAAeY,cAA6B,IAATR,EAAkBA,EAAO0P,GAC7N9O,GAAwB,EAAAxE,EAAA,GAAu3B,QAA52B6D,EAA6jB,QAApjBC,EAAue,QAA9d6O,EAAsH,QAA7GpO,EAAoC,OAAZZ,QAAgC,IAAZA,OAAqB,EAASA,EAAQa,6BAA6D,IAA1BD,EAAmCA,EAAoC,OAAZZ,QAAgC,IAAZA,GAAsE,QAAvCiP,EAAmBjP,EAAQS,cAAyC,IAArBwO,GAA8F,QAAtDC,EAAwBD,EAAiBjP,eAA+C,IAA1BkP,OAA/J,EAA2MA,EAAsBrO,6BAA6C,IAAVmO,EAAmBA,EAAQnP,EAAegB,6BAA6C,IAAVV,EAAmBA,EAA4D,QAAnDI,EAAwBV,EAAeY,cAA8C,IAA1BF,GAAyG,QAA5DC,EAAyBD,EAAsBP,eAAgD,IAA3BQ,OAA9E,EAA2HA,EAAuBK,6BAA6C,IAAVX,EAAmBA,EAAQ,GAGt7B,KAAMW,GAAyB,GAAKA,GAAyB,GAC3D,MAAM,IAAIH,WAAW,6DAEvB,IAAI/B,GAAe,EAAAtC,EAAA,GAAs1B,QAA30B8S,EAAkiB,QAAzhBC,EAAqd,QAA5cC,EAA6G,QAApGjP,EAAoC,OAAZJ,QAAgC,IAAZA,OAAqB,EAASA,EAAQrB,oBAAoD,IAA1ByB,EAAmCA,EAAoC,OAAZJ,QAAgC,IAAZA,GAAsE,QAAvCsP,EAAmBtP,EAAQS,cAAyC,IAArB6O,GAA8F,QAAtDC,EAAwBD,EAAiBtP,eAA+C,IAA1BuP,OAA/J,EAA2MA,EAAsB5Q,oBAAoC,IAAV0Q,EAAmBA,EAAQxP,EAAelB,oBAAoC,IAAVyQ,EAAmBA,EAA6D,QAApDI,EAAyB3P,EAAeY,cAA+C,IAA3B+O,GAA2G,QAA7DC,EAAyBD,EAAuBxP,eAAgD,IAA3ByP,OAA/E,EAA4HA,EAAuB9Q,oBAAoC,IAAVwQ,EAAmBA,EAAQ,GAG54B,KAAMxQ,GAAgB,GAAKA,GAAgB,GACzC,MAAM,IAAI+B,WAAW,oDAEvB,IAAKD,EAAOuC,SACV,MAAM,IAAItC,WAAW,yCAEvB,IAAKD,EAAOuG,WACV,MAAM,IAAItG,WAAW,2CAEvB,IAAI6F,EAAe9I,EAAOS,GAC1B,IAAKD,EAAQsI,GACX,MAAM,IAAI7F,WAAW,sBAMvB,IAAImF,EAAiBgC,EAAgCtB,GACjDuB,EAAUtJ,EAAgB+H,EAAcV,GACxC+J,EAAmB,CACrB/O,sBAAuBA,EACvBlC,aAAcA,EACd8B,OAAQA,EACRqF,cAAeS,GAEb6D,EAASsF,EAAUlI,MAAMmH,IAA4BkB,KAAI,SAAUC,GACrE,IAAIC,EAAiBD,EAAU,GAC/B,MAAuB,MAAnBC,GAA6C,MAAnBA,GAErBC,EADa,EAAeD,IACdD,EAAWrP,EAAOuG,YAElC8I,CACT,IAAGG,KAAK,IAAIzI,MAAMkH,IAAwBmB,KAAI,SAAUC,GAEtD,GAAkB,OAAdA,EACF,MAAO,IAET,IAAIC,EAAiBD,EAAU,GAC/B,GAAuB,MAAnBC,EACF,OAAOG,GAAmBJ,GAE5B,IAAIK,EAAY,EAAWJ,GAC3B,GAAII,EAOF,OANkB,OAAZnQ,QAAgC,IAAZA,GAAsBA,EAAQoQ,8BAAgCzH,EAAyBmH,IAC/GlH,EAAoBkH,EAAWf,EAAgBlN,OAAO3D,IAEtC,OAAZ8B,QAAgC,IAAZA,GAAsBA,EAAQqQ,+BAAiC5H,EAA0BqH,IACjHlH,EAAoBkH,EAAWf,EAAgBlN,OAAO3D,IAEjDiS,EAAUrI,EAASgI,EAAWrP,EAAOuC,SAAU4M,GAExD,GAAIG,EAAevI,MAAMsH,IACvB,MAAM,IAAIpO,WAAW,iEAAmEqP,EAAiB,KAE3G,OAAOD,CACT,IAAGG,KAAK,IACR,OAAO7F,CACT,CACA,SAAS8F,GAAmBpH,GAC1B,IAAIwH,EAAUxH,EAAMtB,MAAMoH,IAC1B,OAAK0B,EAGEA,EAAQ,GAAG1I,QAAQiH,GAAmB,KAFpC/F,CAGX,qECjXqBnM,KAAKkG,IAAI,GAAI,GAxB3B,IA4CI0N,EAAqB,yBCjBjB,SAASC,EAAS9S,EAAUsC,GACzC,IAAIyQ,GACJ,EAAAxU,EAAA,GAAa,EAAGoB,WAChB,IAAIqT,GAAmB,EAAArU,EAAA,GAAmH,QAAxGoU,EAAoC,OAAZzQ,QAAgC,IAAZA,OAAqB,EAASA,EAAQ0Q,wBAAwD,IAA1BD,EAAmCA,EAAwB,GAC7M,GAAyB,IAArBC,GAA+C,IAArBA,GAA+C,IAArBA,EACtD,MAAM,IAAIhQ,WAAW,sCAEvB,GAA0B,kBAAbhD,GAAsE,oBAA7CvC,OAAOgC,UAAUI,SAASC,KAAKE,GACnE,OAAO,IAAIJ,KAAKf,KAElB,IACI4B,EADAwS,EAAcC,EAAgBlT,GAElC,GAAIiT,EAAYxS,KAAM,CACpB,IAAI0S,EAAkBC,EAAUH,EAAYxS,KAAMuS,GAClDvS,EAAO4S,EAAUF,EAAgBG,eAAgBH,EAAgB1R,KACnE,CACA,IAAKhB,GAAQzB,MAAMyB,EAAKP,WACtB,OAAO,IAAIN,KAAKf,KAElB,IAEIkK,EAFAnI,EAAYH,EAAKP,UACjBsJ,EAAO,EAEX,GAAIyJ,EAAYzJ,OACdA,EAAO+J,EAAUN,EAAYzJ,MACzBxK,MAAMwK,IACR,OAAO,IAAI5J,KAAKf,KAGpB,IAAIoU,EAAYO,SAKT,CACL,IAAIhT,EAAY,IAAIZ,KAAKgB,EAAY4I,GAMjCkD,EAAS,IAAI9M,KAAK,GAGtB,OAFA8M,EAAO+G,YAAYjT,EAAUkB,iBAAkBlB,EAAU0D,cAAe1D,EAAUc,cAClFoL,EAAOgH,SAASlT,EAAU+D,cAAe/D,EAAUoE,gBAAiBpE,EAAUsE,gBAAiBtE,EAAU0E,sBAClGwH,CACT,CAdE,OADA3D,EAAS4K,EAAcV,EAAYO,UAC/BxU,MAAM+J,GACD,IAAInJ,KAAKf,KAcb,IAAIe,KAAKgB,EAAY4I,EAAOT,EACrC,CACA,IAAI6K,EAAW,CACbC,kBAAmB,OACnBC,kBAAmB,QACnBN,SAAU,cAERO,EAAY,gEACZC,EAAY,4EACZC,EAAgB,gCACpB,SAASf,EAAgBgB,GACvB,IAEIC,EAFAlB,EAAc,CAAC,EACf1C,EAAQ2D,EAAWE,MAAMR,EAASC,mBAKtC,GAAItD,EAAMvS,OAAS,EACjB,OAAOiV,EAYT,GAVI,IAAIlD,KAAKQ,EAAM,IACjB4D,EAAa5D,EAAM,IAEnB0C,EAAYxS,KAAO8P,EAAM,GACzB4D,EAAa5D,EAAM,GACfqD,EAASE,kBAAkB/D,KAAKkD,EAAYxS,QAC9CwS,EAAYxS,KAAOyT,EAAWE,MAAMR,EAASE,mBAAmB,GAChEK,EAAaD,EAAWG,OAAOpB,EAAYxS,KAAKzC,OAAQkW,EAAWlW,UAGnEmW,EAAY,CACd,IAAIrQ,EAAQ8P,EAASJ,SAASc,KAAKH,GAC/BrQ,GACFmP,EAAYzJ,KAAO2K,EAAWjK,QAAQpG,EAAM,GAAI,IAChDmP,EAAYO,SAAW1P,EAAM,IAE7BmP,EAAYzJ,KAAO2K,CAEvB,CACA,OAAOlB,CACT,CACA,SAASG,EAAUc,EAAYlB,GAC7B,IAAIuB,EAAQ,IAAIC,OAAO,wBAA0B,EAAIxB,GAAoB,uBAAyB,EAAIA,GAAoB,QACtHyB,EAAWP,EAAWpK,MAAMyK,GAEhC,IAAKE,EAAU,MAAO,CACpBhT,KAAM5C,IACNyU,eAAgB,IAElB,IAAI7R,EAAOgT,EAAS,GAAKhE,SAASgE,EAAS,IAAM,KAC7CC,EAAUD,EAAS,GAAKhE,SAASgE,EAAS,IAAM,KAGpD,MAAO,CACLhT,KAAkB,OAAZiT,EAAmBjT,EAAiB,IAAViT,EAChCpB,eAAgBY,EAAW/D,OAAOsE,EAAS,IAAMA,EAAS,IAAIzW,QAElE,CACA,SAASqV,EAAUa,EAAYzS,GAE7B,GAAa,OAATA,EAAe,OAAO,IAAI7B,KAAKf,KACnC,IAAI4V,EAAWP,EAAWpK,MAAMiK,GAEhC,IAAKU,EAAU,OAAO,IAAI7U,KAAKf,KAC/B,IAAI8V,IAAeF,EAAS,GACxB3N,EAAY8N,EAAcH,EAAS,IACnCxQ,EAAQ2Q,EAAcH,EAAS,IAAM,EACrCvT,EAAM0T,EAAcH,EAAS,IAC7BlO,EAAOqO,EAAcH,EAAS,IAC9BrN,EAAYwN,EAAcH,EAAS,IAAM,EAC7C,GAAIE,EACF,OAiEJ,SAA0BE,EAAOtO,EAAMrF,GACrC,OAAOqF,GAAQ,GAAKA,GAAQ,IAAMrF,GAAO,GAAKA,GAAO,CACvD,CAnES4T,CAAiBrT,EAAM8E,EAAMa,GA2CtC,SAA0B2N,EAAaxO,EAAMrF,GAC3C,IAAIT,EAAO,IAAIb,KAAK,GACpBa,EAAKmB,eAAemT,EAAa,EAAG,GACpC,IAAIC,EAAqBvU,EAAKU,aAAe,EACzCC,EAAoB,GAAZmF,EAAO,GAASrF,EAAM,EAAI8T,EAEtC,OADAvU,EAAKY,WAAWZ,EAAKa,aAAeF,GAC7BX,CACT,CA/CWwU,CAAiBxT,EAAM8E,EAAMa,GAF3B,IAAIxH,KAAKf,KAIlB,IAAI4B,EAAO,IAAIb,KAAK,GACpB,OAqDJ,SAAsB6B,EAAMwC,EAAOxD,GACjC,OAAOwD,GAAS,GAAKA,GAAS,IAAMxD,GAAQ,GAAKA,IAASyU,EAAajR,KAAWkR,EAAgB1T,GAAQ,GAAK,IACjH,CAvDS2T,CAAa3T,EAAMwC,EAAO/C,IAwDnC,SAA+BO,EAAMqF,GACnC,OAAOA,GAAa,GAAKA,IAAcqO,EAAgB1T,GAAQ,IAAM,IACvE,CA1D4C4T,CAAsB5T,EAAMqF,IAGpErG,EAAKmB,eAAeH,EAAMwC,EAAOhF,KAAKqW,IAAIxO,EAAW5F,IAC9CT,GAHE,IAAIb,KAAKf,IAKtB,CACA,SAAS+V,EAAcrX,GACrB,OAAOA,EAAQkT,SAASlT,GAAS,CACnC,CACA,SAASgW,EAAUY,GACjB,IAAIM,EAAWN,EAAWrK,MAAMkK,GAChC,IAAKS,EAAU,OAAO5V,IAEtB,IAAIgJ,EAAQ0N,EAAcd,EAAS,IAC/BvL,EAAUqM,EAAcd,EAAS,IACjCe,EAAUD,EAAcd,EAAS,IACrC,OA6CF,SAAsB5M,EAAOqB,EAASsM,GACpC,GAAc,KAAV3N,EACF,OAAmB,IAAZqB,GAA6B,IAAZsM,EAE1B,OAAOA,GAAW,GAAKA,EAAU,IAAMtM,GAAW,GAAKA,EAAU,IAAMrB,GAAS,GAAKA,EAAQ,EAC/F,CAlDO4N,CAAa5N,EAAOqB,EAASsM,GAG3B3N,EAAQgL,EDvIiB,ICuII3J,EAA2C,IAAVsM,EAF5D3W,GAGX,CACA,SAAS0W,EAAchY,GACrB,OAAOA,GAASmY,WAAWnY,EAAM2M,QAAQ,IAAK,OAAS,CACzD,CACA,SAASyJ,EAAcgC,GACrB,GAAuB,MAAnBA,EAAwB,OAAO,EACnC,IAAIlB,EAAWkB,EAAe7L,MAAMmK,GACpC,IAAKQ,EAAU,OAAO,EACtB,IAAI/Q,EAAuB,MAAhB+Q,EAAS,IAAc,EAAI,EAClC5M,EAAQ4I,SAASgE,EAAS,IAC1BvL,EAAUuL,EAAS,IAAMhE,SAASgE,EAAS,KAAO,EACtD,OAoCF,SAA0BmB,EAAQ1M,GAChC,OAAOA,GAAW,GAAKA,GAAW,EACpC,CAtCO2M,CAAiBhO,EAAOqB,GAGtBxF,GAAQmE,EAAQgL,EDtJS,ICsJY3J,GAFnCrK,GAGX,CAaA,IAAIqW,EAAe,CAAC,GAAI,KAAM,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAClE,SAASC,EAAgB1T,GACvB,OAAOA,EAAO,MAAQ,GAAKA,EAAO,IAAM,GAAKA,EAAO,MAAQ,CAC9D,qFCjNA,SAASqU,EAAiBC,GACxB,OAAOA,EAAU3B,MAAM,KAAK,EAC9B,CAEA,SAAS4B,EAAaD,GACpB,OAAOA,EAAU3B,MAAM,KAAK,EAC9B,CAEA,SAAS6B,EAAyBF,GAChC,MAAO,CAAC,MAAO,UAAUG,SAASJ,EAAiBC,IAAc,IAAM,GACzE,CAEA,SAASI,EAAkBC,GACzB,MAAgB,MAATA,EAAe,SAAW,OACnC,CAEA,SAASC,EAA2B9T,GAClC,IAAI,UACF+T,EAAS,SACTC,EAAQ,UACRR,GACExT,EACJ,MAAMiU,EAAUF,EAAU9N,EAAI8N,EAAU9Q,MAAQ,EAAI+Q,EAAS/Q,MAAQ,EAC/DiR,EAAUH,EAAUzS,EAAIyS,EAAUI,OAAS,EAAIH,EAASG,OAAS,EACvE,IAAIC,EAEJ,OAAQb,EAAiBC,IACvB,IAAK,MACHY,EAAS,CACPnO,EAAGgO,EACH3S,EAAGyS,EAAUzS,EAAI0S,EAASG,QAE5B,MAEF,IAAK,SACHC,EAAS,CACPnO,EAAGgO,EACH3S,EAAGyS,EAAUzS,EAAIyS,EAAUI,QAE7B,MAEF,IAAK,QACHC,EAAS,CACPnO,EAAG8N,EAAU9N,EAAI8N,EAAU9Q,MAC3B3B,EAAG4S,GAEL,MAEF,IAAK,OACHE,EAAS,CACPnO,EAAG8N,EAAU9N,EAAI+N,EAAS/Q,MAC1B3B,EAAG4S,GAEL,MAEF,QACEE,EAAS,CACPnO,EAAG8N,EAAU9N,EACb3E,EAAGyS,EAAUzS,GAInB,MAAM+S,EAAWX,EAAyBF,GACpC/X,EAASmY,EAAkBS,GAEjC,OAAQZ,EAAaD,IACnB,IAAK,QACHY,EAAOC,GAAYD,EAAOC,IAAaN,EAAUtY,GAAU,EAAIuY,EAASvY,GAAU,GAClF,MAEF,IAAK,MACH2Y,EAAOC,GAAYD,EAAOC,IAAaN,EAAUtY,GAAU,EAAIuY,EAASvY,GAAU,GAItF,OAAO2Y,CACT,CA4HA,SAASE,EAAyBC,GAChC,MAA0B,kBAAZA,EAXhB,SAA6BA,GAC3B,MAAO,CACLC,IAAK,EACLC,MAAO,EACPC,OAAQ,EACRC,KAAM,KACHJ,EAEP,CAGuCK,CAAoBL,GAAW,CAClEC,IAAKD,EACLE,MAAOF,EACPG,OAAQH,EACRI,KAAMJ,EAEV,CAEA,SAASM,EAAiBC,GACxB,MAAO,IAAKA,EACVN,IAAKM,EAAKxT,EACVqT,KAAMG,EAAK7O,EACXwO,MAAOK,EAAK7O,EAAI6O,EAAK7R,MACrByR,OAAQI,EAAKxT,EAAIwT,EAAKX,OAE1B,CAEAtZ,eAAeka,EAAeC,EAAqBjV,QACjC,IAAZA,IACFA,EAAU,CAAC,GAGb,MAAM,EACJkG,EAAC,EACD3E,EAAC,SACD2T,EAAQ,MACRC,EAAK,SACLC,EAAQ,SACRC,GACEJ,GACE,SACJK,EAAW,kBAAiB,aAC5BC,EAAe,WAAU,eACzBC,EAAiB,WAAU,YAC3BC,GAAc,EAAK,QACnBjB,EAAU,GACRxU,EACE0V,EAAgBnB,EAAyBC,GAEzCmB,EAAUP,EAASK,EADa,aAAnBD,EAAgC,YAAc,WACbA,GAC9CI,QAA2BV,EAASW,sBAAsB,CAC9DF,cAAgBT,EAASY,UAAUH,GAAYA,EAAUA,EAAQI,sBAAyBb,EAASc,mBAAmB,CACpHL,QAASP,EAASnB,WAEpBqB,WACAC,iBAEIU,EAAoBnB,QAAuBI,EAASgB,sDAAsD,CAC9GnB,KAAyB,aAAnBS,EAAgC,IAAKL,EAAMlB,SAC/C/N,IACA3E,KACE4T,EAAMnB,UACVmC,mBAAoBjB,EAASkB,gBAAgB,CAC3CT,QAASP,EAASnB,WAEpBoB,cAIF,MAAO,CACLZ,IAAKmB,EAAmBnB,IAAMwB,EAAkBxB,IAAMiB,EAAcjB,IACpEE,OAAQsB,EAAkBtB,OAASiB,EAAmBjB,OAASe,EAAcf,OAC7EC,KAAMgB,EAAmBhB,KAAOqB,EAAkBrB,KAAOc,EAAcd,KACvEF,MAAOuB,EAAkBvB,MAAQkB,EAAmBlB,MAAQgB,EAAchB,MAE9E,CAEA,MAAM2B,EAAM1Z,KAAK0Z,IACXrD,EAAMrW,KAAKqW,IAEjB,SAASsD,EAAOC,EAAOtb,EAAOub,GAC5B,OAAOxD,EAAIuD,EAAOF,EAAIpb,EAAOub,GAC/B,CAEA,MA8DMC,EAAS,CACb7B,KAAM,QACNF,MAAO,OACPC,OAAQ,MACRF,IAAK,UAEP,SAASiC,EAAqBjD,GAC5B,OAAOA,EAAU7L,QAAQ,0BAA0B0I,GAAWmG,EAAOnG,IACvE,CAEA,SAASqG,EAAkBlD,EAAW0B,GACpC,MAAMyB,EAAsC,UAA5BlD,EAAaD,GACvBa,EAAWX,EAAyBF,GACpC/X,EAASmY,EAAkBS,GACjC,IAAIuC,EAAiC,MAAbvC,EAAmBsC,EAAU,QAAU,OAASA,EAAU,SAAW,MAM7F,OAJIzB,EAAMnB,UAAUtY,GAAUyZ,EAAMlB,SAASvY,KAC3Cmb,EAAoBH,EAAqBG,IAGpC,CACLC,KAAMD,EACNE,MAAOL,EAAqBG,GAEhC,CAEA,MAAMG,EAAO,CACXC,MAAO,MACPC,IAAK,SAEP,SAASC,EAA8B1D,GACrC,OAAOA,EAAU7L,QAAQ,cAAc0I,GAAW0G,EAAK1G,IACzD,CAEA,MAAM8G,EAAiB,CAAC,MAAO,QAAS,SAAU,QAC5CC,EAA6BD,EAAexb,QAAO,CAACC,EAAKyb,IAAkBzb,EAAIkN,OAAOuO,EAAeA,EAAgB,SAAUA,EAAgB,SAAS,IAY9J,MAAMC,EAAgB,SAAUvX,GAK9B,YAJgB,IAAZA,IACFA,EAAU,CAAC,GAGN,CACLxE,KAAM,gBACNwE,UAEAlF,SAASma,GACP,IAAIuC,EAAuBC,EAAwBC,EAAwBC,EAAwBC,EAAwBC,EAE3H,MAAM,EACJ3R,EAAC,EACD3E,EAAC,MACD4T,EAAK,eACL2C,EAAc,UACdrE,GACEwB,GACE,UACJ8C,EAAY,KAAI,kBAChBC,EAAoBX,EAAa,cACjCY,GAAgB,KACbC,GACDlY,EAEJ,GAA8D,OAAzDwX,EAAwBM,EAAeP,gBAA0BC,EAAsBW,KAC1F,MAAO,CAAC,EAGV,MAAMC,EAxCZ,SAA0BL,EAAWE,EAAeD,GAElD,OAD2CD,EAAY,IAAIC,EAAkBK,QAAO5E,GAAaC,EAAaD,KAAesE,OAAeC,EAAkBK,QAAO5E,GAAaC,EAAaD,KAAesE,KAAcC,EAAkBK,QAAO5E,GAAaD,EAAiBC,KAAeA,KACxP4E,QAAO5E,IAC3CsE,GACKrE,EAAaD,KAAesE,KAAcE,GAAgBd,EAA8B1D,KAAeA,GAKpH,CA+ByB6E,CAAiBP,EAAWE,EAAeD,GACxDO,QAAiBvD,EAAeC,EAAqBiD,GACrDM,EAAqJ,OAArIf,EAAoF,OAA1DC,EAAyBI,EAAeP,oBAAyB,EAASG,EAAuBpJ,OAAiBmJ,EAAyB,EACrLgB,EAAmBL,EAAWI,IAC9B,KACJ1B,EAAI,MACJC,GACEJ,EAAkB8B,EAAkBtD,GAExC,GAAI1B,IAAcgF,EAChB,MAAO,CACLvS,IACA3E,IACAmX,MAAO,CACLjF,UAAW2E,EAAW,KAK5B,MAAMO,EAAmB,CAACJ,EAAS/E,EAAiBiF,IAAoBF,EAASzB,GAAOyB,EAASxB,IAC3F6B,EAAe,IAA+I,OAAzIjB,EAAoF,OAA1DC,EAAyBE,EAAeP,oBAAyB,EAASK,EAAuBiB,WAAqBlB,EAAyB,GAAK,CACvMlE,UAAWgF,EACXI,UAAWF,IAEPG,EAAgBV,EAAWI,EAAe,GAEhD,GAAIM,EACF,MAAO,CACLC,KAAM,CACJzK,MAAOkK,EAAe,EACtBK,UAAWD,GAEbF,MAAO,CACLjF,UAAWqF,IAKjB,MAAME,EAAkCJ,EAAa/K,QAAQoL,MAAK,CAAClX,EAAGuD,IAAMvD,EAAE8W,UAAU,GAAKvT,EAAEuT,UAAU,KACnGK,EAKC,OAL8BrB,EAAwBmB,EAAgCG,MAAKlZ,IAChG,IAAI,UACF4Y,GACE5Y,EACJ,OAAO4Y,EAAUO,OAAMb,GAAYA,GAAY,GAAE,UACrC,EAASV,EAAsBpE,UAC7C,MAAO,CACLsF,KAAM,CACJZ,MAAM,GAERO,MAAO,CACLjF,UAA0C,MAA/ByF,EAAsCA,EAA8BF,EAAgC,GAAGvF,WAGxH,EAGJ,EAOA,MAAM4F,EAAO,SAAUrZ,GAKrB,YAJgB,IAAZA,IACFA,EAAU,CAAC,GAGN,CACLxE,KAAM,OACNwE,UAEAlF,SAASma,GACP,IAAIqE,EAAsBC,EAE1B,MAAM,UACJ9F,EAAS,eACTqE,EAAc,MACd3C,EAAK,iBACLqE,GACEvE,EAEJ,GAAoD,OAA/CqE,EAAuBxB,EAAeuB,OAAiBC,EAAqBnB,KAC/E,MAAO,CAAC,EAGV,MACE7D,SAAUmF,GAAgB,EAC1BC,UAAWC,GAAiB,EAC5BC,mBAAoBC,EAA2B,iBAC/CC,EAAmB,UAAS,cAC5BC,GAAgB,KACb7B,GACDlY,EACEsX,EAAgB9D,EAAiBC,GAEjCmG,EAAqBC,IADHvC,IAAkBkC,IACqCO,EAAgB,CAACrD,EAAqB8C,IAtC3H,SAA+B/F,GAC7B,MAAMuG,EAAoBtD,EAAqBjD,GAC/C,MAAO,CAAC0D,EAA8B1D,GAAYuG,EAAmB7C,EAA8B6C,GACrG,CAmCgJC,CAAsBT,IAC1JpB,EAAa,CAACoB,KAAqBI,GACnCrB,QAAiBvD,EAAeC,EAAqBiD,GACrDW,EAAY,GAClB,IAAIqB,GAAkE,OAAhDX,EAAwBzB,EAAeuB,WAAgB,EAASE,EAAsBV,YAAc,GAM1H,GAJIY,GACFZ,EAAU9c,KAAKwc,EAASjB,IAGtBqC,EAAgB,CAClB,MAAM,KACJ7C,EAAI,MACJC,GACEJ,EAAkBlD,EAAW0B,GACjC0D,EAAU9c,KAAKwc,EAASzB,GAAOyB,EAASxB,GAC1C,CAOA,GALAmD,EAAgB,IAAIA,EAAe,CACjCzG,YACAoF,eAGGA,EAAUO,OAAMe,GAAQA,GAAQ,IAAI,CACvC,IAAIC,EAAuBC,EAE3B,MAAMC,GAAuI,OAAzHF,EAAyE,OAAhDC,EAAwBvC,EAAeuB,WAAgB,EAASgB,EAAsB/L,OAAiB8L,EAAwB,GAAK,EAC3KtB,EAAgBV,EAAWkC,GAEjC,GAAIxB,EAEF,MAAO,CACLC,KAAM,CACJzK,MAAOgM,EACPzB,UAAWqB,GAEbxB,MAAO,CACLjF,UAAWqF,IAKjB,IAAIyB,EAAiB,SAErB,OAAQT,GACN,IAAK,UACH,CACE,IAAIU,EAEJ,MAAM/G,EAAwQ,OAA3P+G,EAAwBN,EAAcrM,QAAQoL,MAAK,CAAClX,EAAGuD,IAAMvD,EAAE8W,UAAUR,QAAOE,GAAYA,EAAW,IAAG3c,QAAO,CAACC,EAAK0c,IAAa1c,EAAM0c,GAAU,GAAKjT,EAAEuT,UAAUR,QAAOE,GAAYA,EAAW,IAAG3c,QAAO,CAACC,EAAK0c,IAAa1c,EAAM0c,GAAU,KAAI,SAAc,EAASiC,EAAsB/G,UAEhTA,IACF8G,EAAiB9G,GAGnB,KACF,CAEF,IAAK,mBACH8G,EAAiBf,EAIrB,MAAO,CACLT,KAAM,CACJZ,MAAM,GAERO,MAAO,CACLjF,UAAW8G,GAGjB,CAEA,MAAO,CAAC,CACV,EAGJ,EAuEA,MAAM9T,EAAS,SAAUxL,GAKvB,YAJc,IAAVA,IACFA,EAAQ,GAGH,CACLO,KAAM,SACNwE,QAAS/E,EAETwf,GAAGxF,GACD,MAAM,EACJ/O,EAAC,EACD3E,EAAC,UACDkS,EAAS,MACT0B,GACEF,EACEyF,EA9CZ,SAA8Bza,GAC5B,IAAI,UACFwT,EAAS,MACT0B,EAAK,MACLla,GACEgF,EACJ,MAAMqX,EAAgB9D,EAAiBC,GACjCkH,EAAa,CAAC,OAAQ,OAAO/G,SAAS0D,IAAkB,EAAI,EAC5DsD,EAA4B,oBAAV3f,EAAuBA,EAAM,IAAKka,EACxD1B,cACGxY,GACC,SACJqZ,EAAQ,UACRoF,GACsB,kBAAbkB,EAAwB,CACjCtG,SAAUsG,EACVlB,UAAW,GACT,CACFpF,SAAU,EACVoF,UAAW,KACRkB,GAEL,MAAmD,MAA5CjH,EAAyB2D,GAAyB,CACvDpR,EAAGwT,EACHnY,EAAG+S,EAAWqG,GACZ,CACFzU,EAAGoO,EAAWqG,EACdpZ,EAAGmY,EAEP,CAiByBmB,CAAqB,CACtCpH,YACA0B,QACAla,UAEF,MAAO,CACLiL,EAAGA,EAAIwU,EAAWxU,EAClB3E,EAAGA,EAAImZ,EAAWnZ,EAClBwX,KAAM2B,EAEV,EAGJ,EAEA,SAASI,EAAahH,GACpB,MAAgB,MAATA,EAAe,IAAM,GAC9B,CChrBA,SAASiH,EAAS9f,GAChB,MAAuD,qBAAtC,MAATA,OAAgB,EAASA,EAAMsC,WACzC,CACA,SAASyd,EAAUC,GACjB,GAAY,MAARA,EACF,OAAOC,OAGT,IAAKH,EAASE,GAAO,CACnB,MAAME,EAAgBF,EAAKE,cAC3B,OAAOA,GAAgBA,EAAcC,aAAwBF,MAC/D,CAEA,OAAOD,CACT,CAEA,SAASI,EAAmB1F,GAC1B,OAAOqF,EAAUrF,GAAS2F,iBAAiB3F,EAC7C,CAEA,SAAS4F,EAAYN,GACnB,OAAOF,EAASE,GAAQ,GAAKA,GAAQA,EAAKO,UAAY,IAAInW,cAAgB,EAC5E,CAEA,SAASoW,EAAcxgB,GACrB,OAAOA,aAAiB+f,EAAU/f,GAAOygB,WAC3C,CACA,SAAS5F,EAAU7a,GACjB,OAAOA,aAAiB+f,EAAU/f,GAAO0gB,OAC3C,CAIA,SAASC,EAAaX,GAEpB,OAAOA,aADYD,EAAUC,GAAMY,YACEZ,aAAgBY,UACvD,CACA,SAASC,EAAenG,GAEtB,MAAM,SACJ4C,EAAQ,UACRwD,EAAS,UACTC,GACEX,EAAmB1F,GACvB,MAAO,6BAA6BlI,KAAK8K,EAAWyD,EAAYD,EAClE,CACA,SAASE,EAAetG,GACtB,MAAO,CAAC,QAAS,KAAM,MAAM/B,SAAS2H,EAAY5F,GACpD,CACA,SAASuG,EAAkBvG,GAEzB,MAAMwG,EAAYC,UAAUC,UAAUhX,cAAcuO,SAAS,WACvD0I,EAAMjB,EAAmB1F,GAI/B,MAAyB,SAAlB2G,EAAIC,WAA4C,SAApBD,EAAIE,aAA0C,UAAhBF,EAAIG,SAAuB,CAAC,YAAa,eAAe7I,SAAS0I,EAAII,aAAeP,GAAgC,WAAnBG,EAAII,YAA2BP,KAAcG,EAAIjE,QAAwB,SAAfiE,EAAIjE,MAClO,CAEA,MAAM,EAAM1b,KAAK0Z,IACX,EAAM1Z,KAAKqW,IACX9O,EAAQvH,KAAKuH,MAEnB,SAASyY,EAAsBhH,EAASiH,QACjB,IAAjBA,IACFA,GAAe,GAGjB,MAAMC,EAAalH,EAAQgH,wBAC3B,IAAIG,EAAS,EACTC,EAAS,EAOb,OALIH,GAAgBnB,EAAc9F,KAChCmH,EAASnH,EAAQqH,YAAc,GAAI9Y,EAAM2Y,EAAW3Z,OAASyS,EAAQqH,aAAmB,EACxFD,EAASpH,EAAQsH,aAAe,GAAI/Y,EAAM2Y,EAAWzI,QAAUuB,EAAQsH,cAAoB,GAGtF,CACL/Z,MAAO2Z,EAAW3Z,MAAQ4Z,EAC1B1I,OAAQyI,EAAWzI,OAAS2I,EAC5BtI,IAAKoI,EAAWpI,IAAMsI,EACtBrI,MAAOmI,EAAWnI,MAAQoI,EAC1BnI,OAAQkI,EAAWlI,OAASoI,EAC5BnI,KAAMiI,EAAWjI,KAAOkI,EACxB5W,EAAG2W,EAAWjI,KAAOkI,EACrBvb,EAAGsb,EAAWpI,IAAMsI,EAExB,CAEA,SAAS/G,EAAmBiF,GAC1B,OA5DchgB,EA4DEggB,GA3DThgB,aAAiB+f,EAAU/f,GAAOiiB,KA2DjBjC,EAAKE,cAAgBF,EAAKkC,WAAajC,OAAOiC,UAAUC,gBA5DlF,IAAgBniB,CA6DhB,CAEA,SAASoiB,EAAc1H,GACrB,OAAIoF,EAASpF,GACJ,CACL2H,WAAY3H,EAAQ4H,YACpBC,UAAW7H,EAAQ8H,aAIhB,CACLH,WAAY3H,EAAQ2H,WACpBE,UAAW7H,EAAQ6H,UAEvB,CAEA,SAASE,EAAoB/H,GAG3B,OAAOgH,EAAsB3G,EAAmBL,IAAUf,KAAOyI,EAAc1H,GAAS2H,UAC1F,CAOA,SAASK,EAA8BhI,EAASQ,EAAcd,GAC5D,MAAMuI,EAA0BnC,EAActF,GACxCiH,EAAkBpH,EAAmBG,GACrCpB,EAAO4H,EAAsBhH,EAASiI,GAR9C,SAAkBjI,GAChB,MAAMZ,EAAO4H,EAAsBhH,GACnC,OAAOzR,EAAM6Q,EAAK7R,SAAWyS,EAAQqH,aAAe9Y,EAAM6Q,EAAKX,UAAYuB,EAAQsH,YACrF,CAKyEY,CAAS1H,IAChF,IAAI2H,EAAS,CACXR,WAAY,EACZE,UAAW,GAEb,MAAMO,EAAU,CACd7X,EAAG,EACH3E,EAAG,GAGL,GAAIqc,IAA4BA,GAAwC,UAAbvI,EAKzD,IAJkC,SAA9BkG,EAAYpF,IAA4B2F,EAAesB,MACzDU,EAAST,EAAclH,IAGrBsF,EAActF,GAAe,CAC/B,MAAM6H,EAAarB,EAAsBxG,GAAc,GACvD4H,EAAQ7X,EAAI8X,EAAW9X,EAAIiQ,EAAa8H,WACxCF,EAAQxc,EAAIyc,EAAWzc,EAAI4U,EAAa+H,SAC1C,MAAWd,IACTW,EAAQ7X,EAAIwX,EAAoBN,IAIpC,MAAO,CACLlX,EAAG6O,EAAKH,KAAOkJ,EAAOR,WAAaS,EAAQ7X,EAC3C3E,EAAGwT,EAAKN,IAAMqJ,EAAON,UAAYO,EAAQxc,EACzC2B,MAAO6R,EAAK7R,MACZkR,OAAQW,EAAKX,OAEjB,CAEA,SAAS+J,EAAclD,GACrB,MAA0B,SAAtBM,EAAYN,GACPA,EAKPA,EAAKmD,cACLnD,EAAKoD,aACLzC,EAAaX,GAAQA,EAAKqD,KAAO,OACjCtI,EAAmBiF,EAGvB,CAEA,SAASsD,EAAoB5I,GAC3B,OAAK8F,EAAc9F,IAAmD,UAAvC2F,iBAAiB3F,GAAS6I,SAIlD7I,EAAQQ,aAHN,IAIX,CAkBA,SAASC,EAAgBT,GACvB,MAAMuF,EAASF,EAAUrF,GACzB,IAAIQ,EAAeoI,EAAoB5I,GAEvC,KAAOQ,GAAgB8F,EAAe9F,IAA6D,WAA5CmF,iBAAiBnF,GAAcqI,UACpFrI,EAAeoI,EAAoBpI,GAGrC,OAAIA,IAA+C,SAA9BoF,EAAYpF,IAA0D,SAA9BoF,EAAYpF,IAAwE,WAA5CmF,iBAAiBnF,GAAcqI,WAA0BtC,EAAkB/F,IACvK+E,EAGF/E,GA5BT,SAA4BR,GAC1B,IAAI8I,EAAcN,EAAcxI,GAEhC,KAAO8F,EAAcgD,KAAiB,CAAC,OAAQ,QAAQ7K,SAAS2H,EAAYkD,KAAe,CACzF,GAAIvC,EAAkBuC,GACpB,OAAOA,EAEPA,EAAcA,EAAYJ,UAE9B,CAEA,OAAO,IACT,CAgByBK,CAAmB/I,IAAYuF,CACxD,CAEA,SAASyD,EAAchJ,GACrB,MAAO,CACLzS,MAAOyS,EAAQqH,YACf5I,OAAQuB,EAAQsH,aAEpB,CAqGA,SAAS2B,EAAgB3D,GACvB,MAAI,CAAC,OAAQ,OAAQ,aAAarH,SAAS2H,EAAYN,IAE9CA,EAAKE,cAAc0D,KAGxBpD,EAAcR,IAASa,EAAeb,GACjCA,EAGF2D,EAAgBT,EAAclD,GACvC,CAEA,SAAS6D,EAAiB7D,EAAM8D,GAC9B,IAAIC,OAES,IAATD,IACFA,EAAO,IAGT,MAAME,EAAeL,EAAgB3D,GAC/BiE,EAASD,KAAgE,OAA7CD,EAAsB/D,EAAKE,oBAAyB,EAAS6D,EAAoBH,MAC7GM,EAAMnE,EAAUiE,GAChBG,EAASF,EAAS,CAACC,GAAKpW,OAAOoW,EAAIE,gBAAkB,GAAIvD,EAAemD,GAAgBA,EAAe,IAAMA,EAC7GK,EAAcP,EAAKhW,OAAOqW,GAChC,OAAOF,EAASI,EAChBA,EAAYvW,OAAO+V,EAAiBX,EAAciB,IACpD,CAyCA,SAASG,EAAgC5J,EAAS6J,GAChD,MAAuB,aAAnBA,EACK1K,EA7HX,SAAyBa,GACvB,MAAMwJ,EAAMnE,EAAUrF,GAChB8J,EAAOzJ,EAAmBL,GAC1B0J,EAAiBF,EAAIE,eAC3B,IAAInc,EAAQuc,EAAKC,YACbtL,EAASqL,EAAKE,aACdzZ,EAAI,EACJ3E,EAAI,EAeR,OAbI8d,IACFnc,EAAQmc,EAAenc,MACvBkR,EAASiL,EAAejL,OAKpBzX,KAAK2E,IAAI6d,EAAIS,WAAaP,EAAeQ,MAAQR,EAAenc,OAAS,MAC3EgD,EAAImZ,EAAeS,WACnBve,EAAI8d,EAAeU,YAIhB,CACL7c,QACAkR,SACAlO,IACA3E,IAEJ,CAiG4Bye,CAAgBrK,IAGtCG,EAAU0J,GArBhB,SAAoC7J,GAClC,MAAMkH,EAAaF,EAAsBhH,GACnClB,EAAMoI,EAAWpI,IAAMkB,EAAQuI,UAC/BtJ,EAAOiI,EAAWjI,KAAOe,EAAQsI,WACvC,MAAO,CACLxJ,MACAG,OACA1O,EAAG0O,EACHrT,EAAGkT,EACHC,MAAOE,EAAOe,EAAQ+J,YACtB/K,OAAQF,EAAMkB,EAAQgK,aACtBzc,MAAOyS,EAAQ+J,YACftL,OAAQuB,EAAQgK,aAEpB,CAQWM,CAA2BT,GAG7B1K,EApGT,SAAyBa,GACvB,IAAIuK,EAEJ,MAAMT,EAAOzJ,EAAmBL,GAC1BmI,EAAST,EAAc1H,GACvBkJ,EAA0D,OAAlDqB,EAAwBvK,EAAQwF,oBAAyB,EAAS+E,EAAsBrB,KAChG3b,EAAQ,EAAIuc,EAAKU,YAAaV,EAAKC,YAAab,EAAOA,EAAKsB,YAAc,EAAGtB,EAAOA,EAAKa,YAAc,GACvGtL,EAAS,EAAIqL,EAAKW,aAAcX,EAAKE,aAAcd,EAAOA,EAAKuB,aAAe,EAAGvB,EAAOA,EAAKc,aAAe,GAClH,IAAIzZ,GAAK4X,EAAOR,WAAaI,EAAoB/H,GACjD,MAAMpU,GAAKuc,EAAON,UAMlB,MAJmD,QAA/CnC,EAAmBwD,GAAQY,GAAMY,YACnCna,GAAK,EAAIuZ,EAAKC,YAAab,EAAOA,EAAKa,YAAc,GAAKxc,GAGrD,CACLA,QACAkR,SACAlO,IACA3E,IAEJ,CA+E0B+e,CAAgBtK,EAAmBL,IAC7D,CAKA,SAAS4K,EAAmB5K,GAC1B,MAAM6K,EAAkB1B,EAAiBX,EAAcxI,IAEjD8K,EADoB,CAAC,WAAY,SAAS7M,SAASyH,EAAmB1F,GAAS6I,WACzC/C,EAAc9F,GAAWS,EAAgBT,GAAWA,EAEhG,OAAKG,EAAU2K,GAKRD,EAAgBnI,QAAOmH,GAAkB1J,EAAU0J,IAhE5D,SAAkBkB,EAAQC,GACxB,MAAMC,EAAgC,MAArBD,EAAME,iBAAsB,EAASF,EAAME,cAE5D,GAAIH,EAAOI,SAASH,GAClB,OAAO,EAEJ,GAAIC,GAAYhF,EAAagF,GAAW,CAC3C,IAAIG,EAAOJ,EAEX,EAAG,CAED,GAAII,GAAQL,IAAWK,EACrB,OAAO,EAITA,EAAOA,EAAK1C,YAAc0C,EAAKzC,IACjC,OAASyC,EACX,CAEA,OAAO,CACT,CA2C+ED,CAAStB,EAAgBiB,IAAmD,SAAhClF,EAAYiE,KAJ5H,EAKX,CA4BA,MAAMtK,EAAW,CACf8L,gBAAiB/gB,IACf,IAAI,UACF+T,EAAS,SACTC,EAAQ,SACRoB,GACEpV,EACJ,MAAO,CACL+T,UAAW2J,EAA8B3J,EAAWoC,EAAgBnC,GAAWoB,GAC/EpB,SAAU,IAAK0K,EAAc1K,GAC3B/N,EAAG,EACH3E,EAAG,GAEN,EAEH2U,sDAAuD/Z,GA5OzD,SAA+D8D,GAC7D,IAAI,KACF8U,EAAI,aACJoB,EAAY,SACZd,GACEpV,EACJ,MAAM2d,EAA0BnC,EAActF,GACxCiH,EAAkBpH,EAAmBG,GAE3C,GAAIA,IAAiBiH,EACnB,OAAOrI,EAGT,IAAI+I,EAAS,CACXR,WAAY,EACZE,UAAW,GAEb,MAAMO,EAAU,CACd7X,EAAG,EACH3E,EAAG,GAGL,IAAIqc,IAA4BA,GAAwC,UAAbvI,MACvB,SAA9BkG,EAAYpF,IAA4B2F,EAAesB,MACzDU,EAAST,EAAclH,IAGrBsF,EAActF,IAAe,CAC/B,MAAM6H,EAAarB,EAAsBxG,GAAc,GACvD4H,EAAQ7X,EAAI8X,EAAW9X,EAAIiQ,EAAa8H,WACxCF,EAAQxc,EAAIyc,EAAWzc,EAAI4U,EAAa+H,SAC1C,CAOF,MAAO,IAAKnJ,EACV7O,EAAG6O,EAAK7O,EAAI4X,EAAOR,WAAaS,EAAQ7X,EACxC3E,EAAGwT,EAAKxT,EAAIuc,EAAON,UAAYO,EAAQxc,EAE3C,CAkMiE2U,CAAsD/Z,GACrHia,gBAAiBlW,IACf,IAAI,QACFyV,GACEzV,EACJ,OAAOkW,EAAgBT,EAAQ,EAEjCG,UAAW7a,GAAS6a,EAAU7a,GAC9B+a,mBAAoB7V,IAClB,IAAI,QACFwV,GACExV,EACJ,OAAO6V,EAAmBL,EAAQ,EAEpCE,sBAAuB1Z,GArDzB,SAA+B8D,GAC7B,IAAI,QACF0V,EAAO,SACPL,EAAQ,aACRC,GACEtV,EACJ,MACMugB,EAAkB,IADiB,oBAAblL,EAAiCiL,EAAmB5K,GAAW,GAAG5M,OAAOuM,GACpDC,GAC3C0L,EAAsBT,EAAgB,GACtCU,EAAeV,EAAgB5kB,QAAO,CAACulB,EAAS3B,KACpD,MAAMzK,EAAOwK,EAAgC5J,EAAS6J,GAKtD,OAJA2B,EAAQ1M,IAAM,EAAIM,EAAKN,IAAK0M,EAAQ1M,KACpC0M,EAAQzM,MAAQ,EAAIK,EAAKL,MAAOyM,EAAQzM,OACxCyM,EAAQxM,OAAS,EAAII,EAAKJ,OAAQwM,EAAQxM,QAC1CwM,EAAQvM,KAAO,EAAIG,EAAKH,KAAMuM,EAAQvM,MAC/BuM,CAAO,GACb5B,EAAgC5J,EAASsL,IAK5C,OAJAC,EAAahe,MAAQge,EAAaxM,MAAQwM,EAAatM,KACvDsM,EAAa9M,OAAS8M,EAAavM,OAASuM,EAAazM,IACzDyM,EAAahb,EAAIgb,EAAatM,KAC9BsM,EAAa3f,EAAI2f,EAAazM,IACvByM,CACT,CA+BiCrL,CAAsB1Z,GACrDwiB,cAAe3P,IACb,IAAI,QACF2G,GACE3G,EACJ,OAAO2P,EAAchJ,EAAQ,EAE/ByL,eAAgBjS,IACd,IAAI,QACFwG,GACExG,EACJ,OAAOwG,EAAQyL,gBAAgB,GAI7B,EAAkB,CAACpN,EAAWC,EAAUjU,IDpZtBlF,OAAOkZ,EAAWC,EAAUoN,KAClD,MAAM,UACJ5N,EAAY,SAAQ,SACpB4B,EAAW,WAAU,WACrBiM,EAAa,GAAE,SACfpM,GACEmM,EAiBJ,IAAIlM,QAAcD,EAAS8L,gBAAgB,CACzChN,YACAC,WACAoB,cAEE,EACFnP,EAAC,EACD3E,GACEwS,EAA2B,IAAKoB,EAClC1B,cAEE8N,EAAoB9N,EACpBqE,EAAiB,CAAC,EAGtB,IAAK,IAAI5S,EAAI,EAAGA,EAAIoc,EAAW5lB,OAAQwJ,IAAK,CAS1C,MAAM,KACJ1J,EAAI,GACJif,GACE6G,EAAWpc,IAEbgB,EAAGsb,EACHjgB,EAAGkgB,EAAK,KACR1I,EAAI,MACJL,SACQ+B,EAAG,CACXvU,IACA3E,IACAiY,iBAAkB/F,EAClBA,UAAW8N,EACXlM,WACAyC,iBACA3C,QACAD,WACAE,SAAU,CACRpB,YACAC,cAGJ/N,EAAa,MAATsb,EAAgBA,EAAQtb,EAC5B3E,EAAa,MAATkgB,EAAgBA,EAAQlgB,EAC5BuW,EAAiB,IAAKA,EACpB,CAACtc,GAAe,MAARud,EAAeA,EAAO,CAAC,GAG7BL,IACmB,kBAAVA,IACLA,EAAMjF,YACR8N,EAAoB7I,EAAMjF,WAGxBiF,EAAMvD,QACRA,GAAwB,IAAhBuD,EAAMvD,YAAuBD,EAAS8L,gBAAgB,CAC5DhN,YACAC,WACAoB,aACGqD,EAAMvD,SAIXjP,IACA3E,KACEwS,EAA2B,IAAKoB,EAClC1B,UAAW8N,MAIfrc,GAAK,EAGT,CAEA,MAAO,CACLgB,IACA3E,IACAkS,UAAW8N,EACXlM,WACAyC,iBACD,ECuSuD4J,CAAkB1N,EAAWC,EAAU,CAC/FiB,cACGlV,ICpeL,IAAI2hB,GAAYxmB,OAAOymB,eACnBC,GAAa1mB,OAAO2mB,iBACpBC,GAAoB5mB,OAAO6mB,0BAC3BC,GAAsB9mB,OAAO+mB,sBAC7BC,GAAehnB,OAAOgC,UAAU6Q,eAChCoU,GAAejnB,OAAOgC,UAAUklB,qBAChCC,GAAkB,CAACvlB,EAAKsQ,EAAKpS,IAAUoS,KAAOtQ,EAAM4kB,GAAU5kB,EAAKsQ,EAAK,CAAEkV,YAAY,EAAMC,cAAc,EAAMC,UAAU,EAAMxnB,UAAW8B,EAAIsQ,GAAOpS,EACtJynB,GAAiB,CAAC3gB,EAAGuD,KACvB,IAAK,IAAIqd,KAAQrd,IAAMA,EAAI,CAAC,GACtB6c,GAAa3kB,KAAK8H,EAAGqd,IACvBL,GAAgBvgB,EAAG4gB,EAAMrd,EAAEqd,IAC/B,GAAIV,GACF,IAAK,IAAIU,KAAQV,GAAoB3c,GAC/B8c,GAAa5kB,KAAK8H,EAAGqd,IACvBL,GAAgBvgB,EAAG4gB,EAAMrd,EAAEqd,IAEjC,OAAO5gB,CAAC,EAEN6gB,GAAgB,CAAC7gB,EAAGuD,IAAMuc,GAAW9f,EAAGggB,GAAkBzc,IAG9D,SAAS,GAAOud,EAAIC,GAClB,IAAK,MAAMzV,KAAOyV,EACZ3nB,OAAOgC,UAAU6Q,eAAexQ,KAAKslB,EAAMzV,KACpB,kBAAdyV,EAAKzV,IAAqBwV,EAAGxV,GACtC,GAAOwV,EAAGxV,GAAMyV,EAAKzV,IAErBwV,EAAGxV,GAAOyV,EAAKzV,GAIvB,CACA,MAAMgU,GAAS,CACb0B,UAAU,EACVC,SAAU,EACVC,SAAU,EACVC,UAAW,OACX5N,cAAU,EACV6N,aAAa,EACbC,eAAgB,IAChBC,eAAgB,GAChBhO,SAAU,WACViO,iBAAiB,EACjBjK,MAAM,EACNkK,OAAO,EACPC,gBAAiB,EACjBC,aAAc,EACdC,eAAe,EACfC,OAAQ,CACNC,QAAS,CACPnQ,UAAW,MACXoQ,SAAU,CAAC,QAAS,QAAS,SAC7BC,aAAeC,GAAW,IAAIA,EAAQ,SACtCC,MAAO,CACLC,KAAM,IACNC,KAAM,GAERC,cAAc,EACd1E,MAAM,EACN2E,eAAgB,OAElBC,SAAU,CACR5Q,UAAW,SACXoQ,SAAU,CAAC,SACXG,MAAO,EACPG,cAAc,EACdG,UAAU,GAEZC,KAAM,CACJC,QAAS,WACTX,SAAU,CAAC,QAAS,SACpBR,eAAgB,CAAC,QAAS,SAC1BW,MAAO,CACLC,KAAM,EACNC,KAAM,QAKd,SAASO,GAAiBC,EAAOrX,GAC/B,IACIpS,EADA0pB,EAActD,GAAOsC,OAAOe,IAAU,CAAC,EAE3C,GACEzpB,EAAQ0pB,EAAYtX,GACC,qBAAVpS,EACL0pB,EAAYH,QACdG,EAActD,GAAOsC,OAAOgB,EAAYH,UAAY,CAAC,GAErDG,EAAc,KACd1pB,EAAQomB,GAAOhU,IAGjBsX,EAAc,WAETA,GACT,OAAO1pB,CACT,CAcA,SAAS2pB,GAAmBF,GAC1B,MAAMta,EAAS,CAACsa,GAChB,IAAIC,EAActD,GAAOsC,OAAOe,IAAU,CAAC,EAC3C,GACMC,EAAYH,SACdpa,EAAOrO,KAAK4oB,EAAYH,SACxBG,EAActD,GAAOsC,OAAOgB,EAAYH,UAAY,CAAC,GAErDG,EAAc,WAETA,GACT,OAAOva,CACT,CAEA,IAAIya,IAAkB,EACtB,GAAsB,qBAAX3J,OAAwB,CACjC2J,IAAkB,EAClB,IACE,MAAMlqB,EAAOQ,OAAOymB,eAAe,CAAC,EAAG,UAAW,CAChDkD,MACED,IAAkB,CACpB,IAEF3J,OAAO6J,iBAAiB,OAAQ,KAAMpqB,EAExC,CADE,MAAOoK,IACT,CACF,CACA,IAAIigB,IAAQ,EACU,qBAAX9J,QAA+C,qBAAdkB,YAC1C4I,GAAQ,mBAAmBvX,KAAK2O,UAAUC,aAAenB,OAAO+J,UAElE,MAAM7M,GAAa,CAAC,OAAQ,MAAO,SAAU,OAAQ,SAASxc,QAAO,CAACC,EAAKqpB,IAASrpB,EAAIkN,OAAO,CAC7Fmc,EACA,GAAGA,UACH,GAAGA,WACD,IACEC,GAAiB,CACrBC,MAAO,aACPC,MAAO,QACPC,MAAO,QACPC,MAAO,cAEHC,GAAiB,CACrBJ,MAAO,aACPC,MAAO,OACPC,MAAO,QACPC,MAAO,YAET,SAASE,GAAgBxX,EAAOyX,GAC9B,MAAMpX,EAAQL,EAAMvF,QAAQgd,IACb,IAAXpX,GACFL,EAAM0X,OAAOrX,EAAO,EAExB,CACA,SAASsX,KACP,OAAO,IAAIC,SAASC,GAAYC,uBAAsB,KACpDA,sBAAsBD,EAAQ,KAElC,CACA,MAAME,GAAe,GACrB,IAAIC,GAAe,KACnB,MAAMC,GAAsB,CAAC,EAC7B,SAASC,GAAuBzB,GAC9B,IAAI3F,EAAOmH,GAAoBxB,GAI/B,OAHK3F,IACHA,EAAOmH,GAAoBxB,GAAS,IAE/B3F,CACT,CACA,IAAIpD,GAAU,WACd,EAIA,SAASyK,GAAmBzD,GAC1B,OAAO,SAAS0D,GACd,OAAO5B,GAAiB4B,EAAM3B,MAAO/B,EACvC,CACF,CAPsB,qBAAXzH,SACTS,GAAUT,OAAOS,SAOnB,MAAM2K,GAAc,yBACpB,IAAIC,GAAgB,KAAM,QAAgB,CACxC/qB,KAAM,UACNgrB,UACE,MAAO,CACL,CAACF,IAAc,CACbG,aAAcC,MAGpB,EACAC,OAAQ,CACN,CAACL,IAAc,CAAEM,QAAS,OAE5BP,MAAO,CACL3B,MAAO,CACLmC,KAAMhlB,OACN3F,UAAU,GAEZ4qB,YAAa,CACXD,KAAME,SACN7qB,UAAU,GAEZ8qB,cAAe,CACbH,KAAME,SACNH,QAAS,MAEXK,WAAY,CACVJ,KAAME,SACN7qB,UAAU,GAEZgrB,MAAO,CACLL,KAAMM,QACNP,SAAS,GAEXQ,UAAW,CACTP,KAAMhlB,OACN+kB,QAAS,MAEXS,OAAQ,CACNT,QAAS,MAEX7D,SAAU,CACR8D,KAAMM,QACNP,QAASR,GAAmB,aAE9BkB,oBAAqB,CACnBT,KAAMM,QACNP,QAASR,GAAmB,wBAE9B3S,UAAW,CACToT,KAAMhlB,OACN+kB,QAASR,GAAmB,aAC5BmB,UAAYtsB,GAAUmd,GAAWxE,SAAS3Y,IAE5C+oB,MAAO,CACL6C,KAAM,CAAChlB,OAAQpF,OAAQtB,QACvByrB,QAASR,GAAmB,UAE9BpD,SAAU,CACR6D,KAAM,CAACpqB,OAAQoF,QACf+kB,QAASR,GAAmB,aAE9BnD,SAAU,CACR4D,KAAM,CAACpqB,OAAQoF,QACf+kB,QAASR,GAAmB,aAE9BvC,SAAU,CACRgD,KAAMvZ,MACNsZ,QAASR,GAAmB,aAE9BoB,aAAc,CACZX,KAAM,CAACvZ,MAAOyZ,UACdH,QAASR,GAAmB,iBAE9BtC,aAAc,CACZ+C,KAAM,CAACvZ,MAAOyZ,UACdH,QAASR,GAAmB,iBAE9B/C,eAAgB,CACdwD,KAAMvZ,MACNsZ,QAASR,GAAmB,mBAE9BqB,mBAAoB,CAClBZ,KAAM,CAACvZ,MAAOyZ,UACdH,QAASR,GAAmB,uBAE9BsB,mBAAoB,CAClBb,KAAM,CAACvZ,MAAOyZ,UACdH,QAASR,GAAmB,uBAE9BlD,UAAW,CACT2D,KAAM,CAAChlB,OAAQ1G,OAAQwgB,GAASwL,SAChCP,QAASR,GAAmB,cAE9B9Q,SAAU,CACRuR,KAAM,CAAChlB,OAAQ8Z,IACfiL,QAASR,GAAmB,aAE9B/Q,SAAU,CACRwR,KAAMhlB,OACN0lB,UAAYtsB,GAAU,CAAC,WAAY,SAAS2Y,SAAS3Y,GACrD2rB,QAASR,GAAmB,aAE9B9B,SAAU,CACRuC,KAAM,CAACM,QAASJ,UAChBH,QAASR,GAAmB,aAE9BjC,aAAc,CACZ0C,KAAMM,QACNP,QAASR,GAAmB,iBAE9BjD,YAAa,CACX0D,KAAMM,QACNP,QAASR,GAAmB,gBAE9BuB,WAAY,CACVd,KAAMM,QACNP,QAASR,GAAmB,eAE9BwB,YAAa,CACXf,KAAM,CAAChlB,OAAQyL,MAAOnS,QACtByrB,QAASR,GAAmB,gBAE9ByB,uBAAwB,CACtBhB,KAAMM,QACNP,QAASR,GAAmB,2BAE9B0B,YAAa,CACXjB,KAAMM,QACNP,QAASR,GAAmB,gBAE9B2B,SAAU,CACRlB,KAAM,CAACM,QAAStlB,QAChB+kB,QAASR,GAAmB,aAE9B4B,YAAa,CACXnB,KAAMM,QACNP,QAASR,GAAmB,gBAE9B6B,oBAAqB,CACnBpB,KAAMM,QACNP,QAASR,GAAmB,wBAE9B9C,gBAAiB,CACfuD,KAAMM,QACNP,QAASR,GAAmB,oBAE9B5C,gBAAiB,CACfqD,KAAM,CAACpqB,OAAQoF,QACf+kB,QAASR,GAAmB,oBAE9B3C,aAAc,CACZoD,KAAM,CAACpqB,OAAQoF,QACf+kB,QAASR,GAAmB,iBAE9B1C,cAAe,CACbmD,KAAMM,QACNP,QAASR,GAAmB,kBAE9B/M,KAAM,CACJwN,KAAMM,QACNP,QAASR,GAAmB,SAE9B7C,MAAO,CACLsD,KAAMM,QACNP,QAASR,GAAmB,UAE9B8B,eAAgB,CACdrB,KAAMM,QACNP,QAASR,GAAmB,mBAE9B+B,YAAa,CACXtB,KAAMM,QACNP,QAASR,GAAmB,iBAGhCgC,MAAO,CACL,OACA,OACA,eACA,aACA,aACA,cACA,kBACA,YACA,SACA,WAEFrP,OACE,MAAO,CACLsP,SAAS,EACTC,WAAW,EACXC,gBAAgB,EAChBC,QAAS,CACPC,UAAU,EACVC,QAAQ,EACRC,UAAU,EACVC,QAAQ,GAEVxe,OAAQ,CACNlE,EAAG,EACH3E,EAAG,EACHkS,UAAW,GACX4B,SAAUqR,KAAKrR,SACfwT,MAAO,CACL3iB,EAAG,EACH3E,EAAG,EACHunB,aAAc,GAEhBC,gBAAiB,MAEnBC,cAAe,IAAIC,IACnBC,cAAc,EAElB,EACAC,SAAU,CACRC,WACE,OAAsB,MAAf1C,KAAKW,OAAiBX,KAAKW,OAASX,KAAK2C,QAClD,EACAC,qBACE,OAAO5C,KAAKiB,YAAcjB,KAAK4B,SACjC,EACAiB,WACE,MAAO,CACLH,SAAU1C,KAAK0C,SACff,QAAS3B,KAAK2B,QACdiB,mBAAoB5C,KAAK4C,mBACzBf,eAAgB7B,KAAK6B,eACrBjE,SAAmC,oBAAlBoC,KAAKpC,SAA0BoC,KAAKwC,aAAexC,KAAKpC,SACzEL,KAAMyC,KAAKzC,KACXC,KAAMwC,KAAKxC,KACXC,aAAcuC,KAAKvC,aACnBqF,SAAU9C,KAAK8C,SACfhB,QAAS5F,GAAcF,GAAe,CAAC,EAAGgE,KAAK8B,SAAU,CACvDZ,YAAalB,KAAKkB,cAEpBxd,OAAQsc,KAAKY,oBAAsB,KAAOZ,KAAKtc,OAC/Cqf,MAAO/C,KAAKgD,OAEhB,EACAjD,eACE,IAAIzrB,EACJ,OAAmC,OAA3BA,EAAK0rB,KAAKJ,UAAwB,EAAStrB,EAAGyrB,YACxD,EACAkD,4BACE,IAAI3uB,EAAI4uB,EACR,OAAsC,OAA7B5uB,EAAK0rB,KAAKrD,qBAA0B,EAASroB,EAAG4Y,SAAS,YAAgD,OAAjCgW,EAAKlD,KAAKe,yBAA8B,EAASmC,EAAGhW,SAAS,SAChJ,GAEFiW,MAAOnH,GAAeA,GAAe,CACnCwE,MAAO,iBACPnE,SAAS9nB,GACHA,EACFyrB,KAAKoD,UAELpD,KAAKqD,MAET,EACAjvB,kBACM4rB,KAAK2B,UACP3B,KAAKsD,yBACCtD,KAAKuD,oBAEf,GACC,CACD,WACA,uBACAruB,QAAO,CAACC,EAAK8mB,KACb9mB,EAAI8mB,GAAQ,qBACL9mB,IACN,CAAC,IAAK,CACP,YACA,WACA,WACA,WACA,WACA,kBACA,eACA,kBACA,QACA,iBACA,QACAD,QAAO,CAACC,EAAK8mB,KACb9mB,EAAI8mB,GAAQ,oBACL9mB,IACN,CAAC,IACJquB,UACExD,KAAKyD,cAAe,EACpBzD,KAAK2C,SAAW,UAAU,CAAC1sB,KAAKytB,SAAU9sB,KAAK+sB,OAAOxa,KAAKya,GAAMA,EAAE/sB,SAAS,IAAIuS,UAAU,EAAG,MAAKG,KAAK,OACnGyW,KAAKoB,aACPjqB,QAAQC,KAAK,oFAEX4oB,KAAKsB,aACPnqB,QAAQC,KAAK,wFAEjB,EACAysB,UACE7D,KAAKqD,OACLrD,KAAK8D,oBACP,EACAC,YACE/D,KAAKgE,gBACP,EACAC,cACEjE,KAAKxC,MACP,EACA0G,gBACElE,KAAKoD,SACP,EACAe,QAAS,CACP5G,MAAK,MAAE6G,EAAQ,KAAI,UAAEC,GAAY,EAAK,MAAEC,GAAQ,GAAU,CAAC,GACzD,IAAIhwB,EAAI4uB,GACyB,OAA3B5uB,EAAK0rB,KAAKD,mBAAwB,EAASzrB,EAAGiwB,cAAgBvE,KAAKD,aAAawE,cAAgBvE,OAEtGA,KAAKwE,eAAgB,GACjBF,GAAUtE,KAAK3D,YACgB,OAA3B6G,EAAKlD,KAAKD,mBAAwB,EAASmD,EAAGqB,eAAiBvE,OACnEA,KAAKD,aAAawE,YAAc,MAElCvE,KAAKyE,eAAeL,EAAOC,GAC3BrE,KAAK0E,MAAM,QACX1E,KAAK2E,mBAAoB,EACzBtF,uBAAsB,KACpBW,KAAK2E,mBAAoB,CAAK,KAGlC3E,KAAK0E,MAAM,gBAAgB,GAC7B,EACAlH,MAAK,MAAE4G,EAAQ,KAAI,UAAEC,GAAY,GAAU,CAAC,GAC1C,IAAI/vB,EACA0rB,KAAK4E,mBAEL5E,KAAKsC,cAAcuC,KAAO,EAC5B7E,KAAKwE,eAAgB,EAGnBxE,KAAKiD,2BAA6BjD,KAAK8E,mBACrC9E,KAAKD,eACPC,KAAKD,aAAawE,YAAcvE,KAChC+E,aAAa/E,KAAKD,aAAaiF,kBAC/BhF,KAAKD,aAAaiF,iBAAmBC,YAAW,KAC1CjF,KAAKD,aAAawE,cAAgBvE,OACpCA,KAAKD,aAAawE,YAAY/G,KAAK,CAAE6G,cACrCrE,KAAKD,aAAawE,YAAc,KAClC,GACC,QAI0B,OAA3BjwB,EAAK0rB,KAAKD,mBAAwB,EAASzrB,EAAGiwB,eAAiBvE,OACnEA,KAAKD,aAAawE,YAAc,MAElCvE,KAAKwE,eAAgB,EACrBxE,KAAKkF,eAAed,EAAOC,GAC3BrE,KAAK0E,MAAM,QACX1E,KAAK0E,MAAM,gBAAgB,IAC7B,EACArB,OACE,IAAI/uB,EAAI4uB,EACHlD,KAAKyD,eAEVzD,KAAKyD,cAAe,EACpBzD,KAAK4B,WAAY,EACjB5B,KAAKmF,SAAW,GAChBnF,KAAKoF,eAAgB,EACrBpF,KAAKqF,gBAAuF,OAApEnC,EAAkC,OAA5B5uB,EAAK0rB,KAAKM,oBAAyB,EAAShsB,EAAGwC,KAAKkpB,OAAiBkD,EAAKlD,KAAKsF,IAC7GtF,KAAKuF,cAAgBvF,KAAKI,cAAczO,QAAQtT,GAAMA,EAAEmnB,WAAannB,EAAEonB,eACvEzF,KAAK0F,aAAe1F,KAAKO,aACzBP,KAAK2F,YAAc3F,KAAK0F,aAAaE,cAAc,oBACnD5F,KAAK6F,YAAc7F,KAAK0F,aAAaE,cAAc,8BACnD5F,KAAK8F,kBAAkB,QAAS,uBAChC9F,KAAK8D,qBACD9D,KAAK7C,SAASnoB,QAChBgrB,KAAK+F,sBAEH/F,KAAKQ,OACPR,KAAKzC,OAET,EACA6F,UACMpD,KAAKyD,eAETzD,KAAKyD,cAAe,EACpBzD,KAAKgG,yBACLhG,KAAKxC,KAAK,CAAE6G,WAAW,IACvBrE,KAAK8D,qBACL9D,KAAK4B,WAAY,EACjB5B,KAAK2B,SAAU,EACf3B,KAAKiG,6BAA4B,GACjCjG,KAAK8F,kBAAkB,sBAAuB,SAC9C9F,KAAK0E,MAAM,WACb,EACAtwB,iBACM4rB,KAAK2B,gBACD3B,KAAKuD,oBACXvD,KAAK0E,MAAM,UAEf,EACAtwB,0BACE,IAAIE,EACJ,GAAI0rB,KAAKyD,cAAgBzD,KAAKY,oBAC5B,OACF,MAAMsF,EAAW,CACfvX,SAAUqR,KAAKrR,SACfiM,WAAY,KAEVoF,KAAK1D,UAAY0D,KAAKzD,WACxB2J,EAAStL,WAAWvlB,KAAK0K,EAAO,CAC9B6N,SAAUoS,KAAK1D,SACftJ,UAAWgN,KAAKzD,YAGpB,MAAM4J,EAAkBnG,KAAKjT,UAAUqZ,WAAW,QA8ClD,GA7CID,EACFD,EAAStL,WAAWvlB,KAAKwb,EAAc,CACrCQ,UAAkD,OAAtC/c,EAAK0rB,KAAKjT,UAAU3B,MAAM,KAAK,IAAc9W,EAAK,MAGhE4xB,EAASnZ,UAAYiT,KAAKjT,UAExBiT,KAAKpD,kBACHoD,KAAKnD,OACPqJ,EAAStL,WAAWvlB,KFkFhB,SAAUiE,GAKtB,YAJgB,IAAZA,IACFA,EAAU,CAAC,GAGN,CACLxE,KAAM,QACNwE,UAEAlF,SAASma,GACP,MAAM,EACJ/O,EAAC,EACD3E,EAAC,UACDkS,GACEwB,GAEFX,SAAUmF,GAAgB,EAC1BC,UAAWC,GAAiB,EAAK,QACjCoT,EAAU,CACRtS,GAAIxa,IACF,IAAI,EACFiG,EAAC,EACD3E,GACEtB,EACJ,MAAO,CACLiG,IACA3E,IACD,MAGF2W,GACDlY,EACEqU,EAAS,CACbnO,IACA3E,KAEIgX,QAAiBvD,EAAeC,EAAqBiD,GACrD5D,EAAWX,EAAyBH,EAAiBC,IACrDiG,EAAYoB,EAAaxG,GAC/B,IAAI0Y,EAAgB3Y,EAAOC,GACvB2Y,EAAiB5Y,EAAOqF,GAE5B,GAAID,EAAe,CACjB,MACMyT,EAAuB,MAAb5Y,EAAmB,SAAW,QAG9C0Y,EAAgB1W,EAFJ0W,EAAgBzU,EAFC,MAAbjE,EAAmB,MAAQ,QAIf0Y,EADhBA,EAAgBzU,EAAS2U,GAEvC,CAEA,GAAIvT,EAAgB,CAClB,MACMuT,EAAwB,MAAdxT,EAAoB,SAAW,QAG/CuT,EAAiB3W,EAFL2W,EAAiB1U,EAFC,MAAdmB,EAAoB,MAAQ,QAIfuT,EADjBA,EAAiB1U,EAAS2U,GAExC,CAEA,MAAMC,EAAgBJ,EAAQtS,GAAG,IAAKxF,EACpC,CAACX,GAAW0Y,EACZ,CAACtT,GAAYuT,IAEf,MAAO,IAAKE,EACVpU,KAAM,CACJ7S,EAAGinB,EAAcjnB,EAAIA,EACrB3E,EAAG4rB,EAAc5rB,EAAIA,GAG3B,EAGJ,CEzJmCgiB,CAAM,CAC7B/O,QAASkS,KAAKlD,gBACdlO,SAAUoR,KAAKpR,SACfoE,UAAWgN,KAAKwB,mBAGf2E,GAAmBnG,KAAKrN,MAC3BuT,EAAStL,WAAWvlB,KAAKsd,EAAK,CAC5B7E,QAASkS,KAAKlD,gBACdlO,SAAUoR,KAAKpR,aAIrBsX,EAAStL,WAAWvlB,KF7VZiE,KAAW,CACvBxE,KAAM,QACNwE,UAEAlF,SAASma,GAEP,MAAM,QACJU,EAAO,QACPnB,EAAU,GACG,MAAXxU,EAAkBA,EAAU,CAAC,GAC3B,EACJkG,EAAC,EACD3E,EAAC,UACDkS,EAAS,MACT0B,EAAK,SACLD,GACED,EAEJ,GAAe,MAAXU,EAKF,MAAO,CAAC,EAGV,MAAMD,EAAgBnB,EAAyBC,GACzCH,EAAS,CACbnO,IACA3E,KAGIuS,EAAOH,EADSH,EAAiBC,IAEjC/X,EAASmY,EAAkBC,GAC3BsZ,QAAwBlY,EAASyJ,cAAc,CACnDhJ,YAEI0X,EAAmB,MAATvZ,EAAe,MAAQ,OACjCwZ,EAAmB,MAATxZ,EAAe,SAAW,QACpCyZ,EAAUpY,EAAMnB,UAAUtY,GAAUyZ,EAAMnB,UAAUF,GAAQO,EAAOP,GAAQqB,EAAMlB,SAASvY,GAC1F8xB,EAAYnZ,EAAOP,GAAQqB,EAAMnB,UAAUF,GAC3C2Z,QAA0BvY,EAASkB,gBAAgB,CACvDT,YAEI+X,EAAaD,EAA6B,MAAT3Z,EAAe2Z,EAAkB9N,cAAgB,EAAI8N,EAAkB/N,aAAe,EAAI,EAC3HiO,EAAoBJ,EAAU,EAAIC,EAAY,EAG9CnX,EAAMX,EAAc2X,GACpBra,EAAM0a,EAAaN,EAAgB1xB,GAAUga,EAAc4X,GAC3DM,EAASF,EAAa,EAAIN,EAAgB1xB,GAAU,EAAIiyB,EACxDlnB,EAAS6P,EAAOD,EAAKuX,EAAQ5a,GACnC,MAAO,CACL+F,KAAM,CACJ,CAACjF,GAAOrN,EACRqiB,aAAc8E,EAASnnB,GAG7B,IEmS6BoiB,CAAM,CAC7BlT,QAAS+Q,KAAK6F,YACd/X,QAASkS,KAAKjD,gBAEZiD,KAAKhD,eACPkJ,EAAStL,WAAWvlB,KAAK,CACvBP,KAAM,gBACNif,GAAI,EAAGhH,YAAW0B,QAAO2C,qBACvB,IAAIS,EACJ,MAAM,aAAEuQ,GAAiBhR,EAAe+Q,MAMxC,OAJEtQ,EADE9E,EAAUqZ,WAAW,QAAUrZ,EAAUqZ,WAAW,UAC3CnwB,KAAK2E,IAAIwnB,GAAgB3T,EAAMnB,UAAU9Q,MAAQ,EAEjDvG,KAAK2E,IAAIwnB,GAAgB3T,EAAMnB,UAAUI,OAAS,EAExD,CACL2E,KAAM,CACJR,YAEH,IAIHmO,KAAKoB,aAAepB,KAAKqB,SAAU,CACrC,MAAMA,EAAWrB,KAAKqB,SAAWrB,KAAKqB,SAAWrB,KAAKoB,YAAc,MAAQ,KAC5E8E,EAAStL,WAAWvlB,KAAK,CACvBP,KAAM,WACNif,GAAI,EAAGtF,QAAO1B,YAAWqE,qBACvB,IAAI+V,EACJ,GAAuC,OAAlCA,EAAM/V,EAAeiQ,eAAoB,EAAS8F,EAAI1V,KACzD,MAAO,CAAC,EAEV,IAAIjV,EACAkR,EAQJ,OAPIX,EAAUqZ,WAAW,QAAUrZ,EAAUqZ,WAAW,UACtD5pB,EAAQiS,EAAMnB,UAAU9Q,MAExBkR,EAASe,EAAMnB,UAAUI,OAE3BsS,KAAK2F,YAAYyB,MAAmB,QAAb/F,EAAqB,WAA0B,QAAbA,EAAqB,WAAa,SAAoB,MAAT7kB,EAAgB,GAAGA,MAAY,KACrIwjB,KAAK2F,YAAYyB,MAAmB,QAAb/F,EAAqB,YAA2B,QAAbA,EAAqB,YAAc,UAAsB,MAAV3T,EAAiB,GAAGA,MAAa,KACnI,CACL2E,KAAM,CACJZ,MAAM,GAERO,MAAO,CACLvD,OAAO,GAEV,GAGP,EACIuR,KAAKsB,aAAetB,KAAKuB,uBAC3BvB,KAAK2F,YAAYyB,MAAMC,SAAW,KAClCrH,KAAK2F,YAAYyB,MAAME,UAAY,KACnCpB,EAAStL,WAAWvlB,KFmKf,SAAUiE,GAKrB,YAJgB,IAAZA,IACFA,EAAU,CAAC,GAGN,CACLxE,KAAM,OACNwE,UAEAlF,SAASma,GACP,IAAIgZ,EAEJ,MAAM,UACJxa,EAAS,MACT0B,EAAK,eACL2C,GACE7C,GACE,MACJiZ,KACGhW,GACDlY,EAEJ,GAAoD,OAA/CiuB,EAAuBnW,EAAeyT,OAAiB0C,EAAqB9V,KAC/E,MAAO,CAAC,EAGV,MAAMI,QAAiBvD,EAAeC,EAAqBiD,GACrDZ,EAAgB9D,EAAiBC,GACjC0a,EAAoC,QAA5Bza,EAAaD,GAC3B,IAAI2a,EACAC,EAEkB,QAAlB/W,GAA6C,WAAlBA,GAC7B8W,EAAa9W,EACb+W,EAAYF,EAAQ,OAAS,UAE7BE,EAAY/W,EACZ8W,EAAaD,EAAQ,MAAQ,UAG/B,MAAMG,EAAOtb,EAAIuF,EAAS3D,KAAM,GAC1B2Z,EAAOvb,EAAIuF,EAAS7D,MAAO,GAC3B8Z,EAAOxb,EAAIuF,EAAS9D,IAAK,GACzBga,EAAOzb,EAAIuF,EAAS5D,OAAQ,GAC5B+Z,EAAa,CACjBta,OAAQe,EAAMlB,SAASG,QAAU,CAAC,OAAQ,SAASR,SAASH,GAAa,GAAc,IAAT+a,GAAuB,IAATC,EAAaD,EAAOC,EAAOzb,EAAIuF,EAAS9D,IAAK8D,EAAS5D,SAAW4D,EAAS6V,IACtKlrB,MAAOiS,EAAMlB,SAAS/Q,OAAS,CAAC,MAAO,UAAU0Q,SAASH,GAAa,GAAc,IAAT6a,GAAuB,IAATC,EAAaD,EAAOC,EAAOvb,EAAIuF,EAAS3D,KAAM2D,EAAS7D,QAAU6D,EAAS8V,KAKtK,OAHS,MAATH,GAAyBA,EAAM,IAAKQ,KAC/BvZ,IAEE,CACL4D,KAAM,CACJZ,MAAM,GAERO,MAAO,CACLvD,OAAO,GAGb,EAGJ,CEjOiCoW,CAAK,CAC5BjW,SAAUoR,KAAKpR,SACfd,QAASkS,KAAKlD,gBACd0K,MAAO,EAAGhrB,QAAOkR,aACfsS,KAAK2F,YAAYyB,MAAMC,SAAoB,MAAT7qB,EAAgB,GAAGA,MAAY,KACjEwjB,KAAK2F,YAAYyB,MAAME,UAAsB,MAAV5Z,EAAiB,GAAGA,MAAa,IAAI,MAI9E,MAAM2E,QAAa,EAAgB2N,KAAKqF,gBAAiBrF,KAAK0F,aAAcQ,GAC5EzxB,OAAOC,OAAOsrB,KAAKtc,OAAQ,CACzBlE,EAAG6S,EAAK7S,EACR3E,EAAGwX,EAAKxX,EACRkS,UAAWsF,EAAKtF,UAChB4B,SAAU0D,EAAK1D,SACfwT,MAAOnG,GAAeA,GAAe,CAAC,EAAG3J,EAAKjB,eAAe+Q,OAAQ9P,EAAKjB,eAAe4L,gBAE7F,EACAyH,eAAeL,EAAQ,KAAMC,GAAY,GAIvC,GAHArE,KAAKiG,6BAA4B,GACjCjG,KAAK4E,kBAAmB,EACxBG,aAAa/E,KAAKiI,iBACd1I,IAAgBS,KAAKvD,aAAe8C,GAAa9C,aAAe8C,KAAiBS,KAAKD,aAGxF,OAFAR,GAAa2I,aAAY,QACzBlI,KAAKmI,aAAY,GAGf9D,EACFrE,KAAKmI,cAELnI,KAAKiI,gBAAkBhD,WAAWjF,KAAKmI,YAAYC,KAAKpI,MAAOA,KAAKqI,eAAe,QAEvF,EACAnD,eAAed,EAAQ,KAAMC,GAAY,GACnCrE,KAAKsC,cAAcuC,KAAO,EAC5B7E,KAAKwE,eAAgB,GAGvBxE,KAAKiG,6BAA4B,GACjCjG,KAAK4E,kBAAmB,EACxBG,aAAa/E,KAAKiI,iBACdjI,KAAK2B,UACPpC,GAAeS,MAEbqE,EACFrE,KAAKkI,cAELlI,KAAKiI,gBAAkBhD,WAAWjF,KAAKkI,YAAYE,KAAKpI,MAAOA,KAAKqI,eAAe,SAEvF,EACAA,eAAelI,GACb,MAAM7C,EAAQ0C,KAAK1C,MACnB,OAAO7V,SAAS6V,GAASA,EAAM6C,IAAS7C,GAAS,EACnD,EACAlpB,kBAAkBytB,GAAiB,GACjCkD,aAAa/E,KAAKsI,gBAClBvD,aAAa/E,KAAKiI,iBAClBjI,KAAK6B,eAAiBA,EAClB7B,KAAK2B,UAGT3B,KAAKsD,yBACCpE,WACAc,KAAKuD,0BACLvD,KAAKuI,oBACNvI,KAAKY,qBACRZ,KAAKwI,yBAAyB,IACzBpQ,EAAiB4H,KAAKqF,oBACtBjN,EAAiB4H,KAAK0F,eACxB,UAAU,KACX1F,KAAKuD,mBAAmB,IAG9B,EACAnvB,0BACE,GAAI4rB,KAAK4E,iBACP,OACF,GAAI5E,KAAKmB,uBAAwB,CAC/B,MAAMsH,EAASzI,KAAKqF,gBAAgBpP,wBAC9ByS,EAAgB1I,KAAK0F,aAAaE,cAAc,sBAChD+C,EAAeD,EAAc/Q,WAAW1B,wBACxCzW,EAAIipB,EAAOjpB,EAAIipB,EAAOjsB,MAAQ,GAAKmsB,EAAaza,KAAOwa,EAActP,YACrEve,EAAI4tB,EAAO5tB,EAAI4tB,EAAO/a,OAAS,GAAKib,EAAa5a,IAAM2a,EAAcrP,WAC3E2G,KAAKtc,OAAO2e,gBAAkB,GAAG7iB,OAAO3E,KAC1C,CACAmlB,KAAK2B,SAAU,EACf3B,KAAK4I,qBAAqB,CACxB,mBAAoB5I,KAAK0C,SACzB,oBAAqB,KAEvB,MAAMhC,EAAYV,KAAKU,UACvB,GAAIA,EAAW,CACb,IAAImI,EACJ,IAAK,IAAIrqB,EAAI,EAAGA,EAAI8gB,GAAatqB,OAAQwJ,IACvCqqB,EAAUvJ,GAAa9gB,GACnBqqB,EAAQnI,YAAcA,IACxBmI,EAAQrL,OACRqL,EAAQnE,MAAM,eAGpB,CACApF,GAAajqB,KAAK2qB,MAClBvJ,SAAS0B,KAAK2Q,UAAUC,IAAI,uBAC5B,IAAK,MAAM/K,KAASE,GAAmB8B,KAAKhC,OAC1CyB,GAAuBzB,GAAO3oB,KAAK2qB,MACnCvJ,SAAS0B,KAAK2Q,UAAUC,IAAI,wBAAwB/K,KAEtDgC,KAAK0E,MAAM,cACX1E,KAAK8B,QAAQC,UAAW,EACxB/B,KAAK8B,QAAQE,QAAS,EACtBhC,KAAK8B,QAAQG,UAAW,EACxBjC,KAAK8B,QAAQI,QAAS,QAChBhD,KACNc,KAAK8B,QAAQC,UAAW,EACxB/B,KAAK8B,QAAQE,QAAS,EACjBhC,KAAKyB,aACRzB,KAAK0F,aAAa/G,OACtB,EACAvqB,kBAAkBytB,GAAiB,GACjC,GAAI7B,KAAKsC,cAAcuC,KAAO,EAG5B,OAFA7E,KAAKwE,eAAgB,OACrBxE,KAAK4E,kBAAmB,GAI1B,GADAG,aAAa/E,KAAKiI,kBACbjI,KAAK2B,QACR,OAEF3B,KAAK6B,eAAiBA,EACtB9C,GAAgBO,GAAcU,MACF,IAAxBV,GAAatqB,QACfyhB,SAAS0B,KAAK2Q,UAAUE,OAAO,uBAEjC,IAAK,MAAMhL,KAASE,GAAmB8B,KAAKhC,OAAQ,CAClD,MAAM3F,EAAOoH,GAAuBzB,GACpCe,GAAgB1G,EAAM2H,MACF,IAAhB3H,EAAKrjB,QACPyhB,SAAS0B,KAAK2Q,UAAUE,OAAO,wBAAwBhL,IAE3D,CACIuB,KAAiBS,OACnBT,GAAe,MAEjBS,KAAK2B,SAAU,EACf3B,KAAK4I,qBAAqB,CACxB,wBAAoB,EACpB,yBAAqB,IAEvB7D,aAAa/E,KAAKsI,gBAClB,MAAMW,EAAclL,GAAiBiC,KAAKhC,MAAO,kBAC7B,OAAhBiL,IACFjJ,KAAKsI,eAAiBrD,YAAW,KAC3BjF,KAAK0F,eACP1F,KAAK8D,qBACL9D,KAAK4B,WAAY,EACnB,GACCqH,IAELjJ,KAAKgG,uBAAuB,UAC5BhG,KAAK0E,MAAM,cACX1E,KAAK8B,QAAQC,UAAW,EACxB/B,KAAK8B,QAAQE,QAAS,EACtBhC,KAAK8B,QAAQG,UAAW,EACxBjC,KAAK8B,QAAQI,QAAS,QAChBhD,KACNc,KAAK8B,QAAQG,UAAW,EACxBjC,KAAK8B,QAAQI,QAAS,CACxB,EACA8B,iBACMhE,KAAKQ,MACPR,KAAKzC,OAELyC,KAAKxC,MAET,EACA8F,mBACE,GAAItD,KAAKyD,aACP,OACF,IAAIjH,EAAYwD,KAAKxD,UAMrB,GALyB,kBAAdA,EACTA,EAAYhI,OAAOiC,SAASmP,cAAcpJ,IACnB,IAAdA,IACTA,EAAYwD,KAAKuF,cAAc,GAAG5N,aAE/B6E,EACH,MAAM,IAAInlB,MAAM,6BAA+B2oB,KAAKxD,WAEtDA,EAAU0M,YAAYlJ,KAAK0F,cAC3B1F,KAAK4B,WAAY,CACnB,EACAmE,sBACE,MAAMoD,EAAc/E,IACdpE,KAAK2B,UAAY3B,KAAK4E,mBAG1BR,EAAMgF,eAAgB,GACrBpJ,KAAKoF,eAAiBpF,KAAKzC,KAAK,CAAE6G,UAAQ,EAE7CpE,KAAKqJ,2BAA2BrJ,KAAKuF,cAAe9G,GAAgBuB,KAAK7C,SAAU6C,KAAKc,aAAcqI,GACtGnJ,KAAKqJ,2BAA2B,CAACrJ,KAAK0F,cAAejH,GAAgBuB,KAAKrD,eAAgBqD,KAAKe,mBAAoBoI,GACnH,MAAMG,EAAclF,IACdA,EAAMgF,eAGVpJ,KAAKxC,KAAK,CAAE4G,SAAQ,EAEtBpE,KAAKqJ,2BAA2BrJ,KAAKuF,cAAezG,GAAgBkB,KAAK7C,SAAU6C,KAAK5C,aAAckM,GACtGtJ,KAAKqJ,2BAA2B,CAACrJ,KAAK0F,cAAe5G,GAAgBkB,KAAKrD,eAAgBqD,KAAKgB,mBAAoBsI,EACrH,EACAd,yBAAyBpI,EAAamJ,EAAWC,GAC/CxJ,KAAKmF,SAAS9vB,KAAK,CAAE+qB,cAAamJ,YAAWC,YAC7CpJ,EAAYqJ,SAASlV,GAASA,EAAK8J,iBAAiBkL,EAAWC,EAASrL,GAAkB,CACxFuL,SAAS,QACP,IACN,EACAL,2BAA2BjJ,EAAauJ,EAAUC,EAAgBC,EAAeL,GAC/E,IAAIrM,EAAWyM,EACM,MAAjBC,IACF1M,EAAoC,oBAAlB0M,EAA+BA,EAAc1M,GAAY0M,GAE7E1M,EAASsM,SAASK,IAChB,MAAMP,EAAYI,EAASG,GACvBP,GACFvJ,KAAKwI,yBAAyBpI,EAAamJ,EAAWC,EACxD,GAEJ,EACAxD,uBAAuB+D,GACrB,MAAMC,EAAU,GAChBhK,KAAKmF,SAASsE,SAASQ,IACrB,MAAM,YAAE7J,EAAW,UAAEmJ,EAAS,QAAEC,GAAYS,EACvCF,GAAmBA,IAAoBR,EAG1CS,EAAQ30B,KAAK40B,GAFb7J,EAAYqJ,SAASlV,GAASA,EAAK2V,oBAAoBX,EAAWC,IAGpE,IAEFxJ,KAAKmF,SAAW6E,CAClB,EACAG,qBACOnK,KAAKyD,eACRzD,KAAKgG,yBACLhG,KAAK+F,sBAET,EACAqE,oBAAoBhG,EAAOvF,GAAQ,GAC7BmB,KAAK2E,oBAET3E,KAAKxC,KAAK,CAAE4G,UACRA,EAAMiG,aACRrK,KAAK0E,MAAM,mBAEX1E,KAAK0E,MAAM,aAET7F,IACFmB,KAAKoF,eAAgB,EACrBH,YAAW,KACTjF,KAAKoF,eAAgB,CAAK,GACzB,MAEP,EACAtB,qBACE9D,KAAK0F,aAAa/N,YAAcqI,KAAK0F,aAAa/N,WAAW2S,YAAYtK,KAAK0F,aAChF,EACAI,kBAAkByE,EAAUC,GAC1B,IAAK,MAAMC,KAAMzK,KAAKuF,cAAe,CACnC,MAAMhxB,EAAQk2B,EAAGC,aAAaH,GAC1Bh2B,IACFk2B,EAAGE,gBAAgBJ,GACnBE,EAAGG,aAAaJ,EAAQj2B,GAE5B,CACF,EACAq0B,qBAAqB7F,GACnB,IAAK,MAAM0H,KAAMzK,KAAKuF,cACpB,IAAK,MAAM3B,KAAKb,EAAO,CACrB,MAAMxuB,EAAQwuB,EAAMa,GACP,MAATrvB,EACFk2B,EAAGE,gBAAgB/G,GAEnB6G,EAAGG,aAAahH,EAAGrvB,EAEvB,CAEJ,EACA0xB,4BAA4B1xB,GAC1B,IAAIylB,EAASgG,KAAKD,aAClB,KAAO/F,GACDzlB,EACFylB,EAAOsI,cAAcyG,IAAI/I,KAAK2C,WAE9B3I,EAAOsI,cAAcuI,OAAO7K,KAAK2C,UAC7B3I,EAAOwK,eACTxK,EAAOwD,QAGXxD,EAASA,EAAO+F,YAEpB,EACA+E,mBACE,MAAMgG,EAAkB9K,KAAKqF,gBAAgBpP,wBAC7C,GAAI8U,IAAUD,EAAgB5c,MAAQ6c,IAAUD,EAAgB9c,OAASgd,IAAUF,EAAgB/c,KAAOid,IAAUF,EAAgB7c,OAAQ,CAC1I,MAAMgd,EAAejL,KAAK0F,aAAazP,wBACjCiV,EAAUH,GAASI,GACnBC,EAAUJ,GAASK,GAEnBC,EADWL,EAAa/c,KAAO+c,EAAazuB,MAAQ,EAAI2uB,IAAkBF,EAAald,IAAMkd,EAAavd,OAAS,GAAK2d,GAC3FJ,EAAazuB,MAAQyuB,EAAavd,OAC/D6d,EAAQJ,GAAiBD,EAAUI,EACnCE,EAAQH,GAAiBD,EAAUE,EACzC,OAAOG,GAAmBN,GAAgBE,GAAgBE,EAAOC,EAAOP,EAAa/c,KAAM+c,EAAald,IAAKkd,EAAa/c,KAAM+c,EAAahd,SAAWwd,GAAmBN,GAAgBE,GAAgBE,EAAOC,EAAOP,EAAa/c,KAAM+c,EAAald,IAAKkd,EAAajd,MAAOid,EAAald,MAAQ0d,GAAmBN,GAAgBE,GAAgBE,EAAOC,EAAOP,EAAajd,MAAOid,EAAald,IAAKkd,EAAajd,MAAOid,EAAahd,SAAWwd,GAAmBN,GAAgBE,GAAgBE,EAAOC,EAAOP,EAAa/c,KAAM+c,EAAahd,OAAQgd,EAAajd,MAAOid,EAAahd,OACtkB,CACA,OAAO,CACT,GAEFyd,SACE,OAAO1L,KAAK2L,OAAOzL,QAAQF,KAAK6C,SAClC,IAkBF,SAAS+I,GAAsBxH,GAC7B,IAAK,IAAI5lB,EAAI,EAAGA,EAAI8gB,GAAatqB,OAAQwJ,IAAK,CAC5C,MAAMqtB,EAASvM,GAAa9gB,GAC5B,IACE,MAAMstB,EAAgBD,EAAOtL,aAC7BsL,EAAOE,oBAAsBD,EAAc1R,SAASgK,EAAM1L,OAE5D,CADE,MAAOra,IACT,CACF,CACF,CAOA,SAAS2tB,GAAkB5H,EAAOvF,GAAQ,GACxC,MAAMoN,EAAe,CAAC,EACtB,IAAK,IAAIztB,EAAI8gB,GAAatqB,OAAS,EAAGwJ,GAAK,EAAGA,IAAK,CACjD,MAAMqtB,EAASvM,GAAa9gB,GAC5B,IACE,MAAM4b,EAAWyR,EAAOK,uBAAyBC,GAAwBN,EAAQzH,GACjFyH,EAAOrH,eAAgB,EACvBnF,uBAAsB,KAEpB,GADAwM,EAAOrH,eAAgB,GACnByH,EAAaJ,EAAOlJ,WAEpByJ,GAAeP,EAAQzR,EAAUgK,GAAQ,CAE3C,GADAyH,EAAOzB,oBAAoBhG,EAAOvF,IAC7BuF,EAAMiI,iBAAmBjI,EAAMiG,cAAgBjQ,EAAU,CAC5D,IAAIkS,EAAUT,EAAO9L,aACrB,KAAOuM,GACLL,EAAaK,EAAQ3J,WAAY,EACjC2J,EAAUA,EAAQvM,aAEpB,MACF,CACA,IAAI/F,EAAS6R,EAAO9L,aACpB,KAAO/F,GACDoS,GAAepS,EAAQA,EAAOkS,uBAAwB9H,IACxDpK,EAAOoQ,oBAAoBhG,EAAOvF,GAIpC7E,EAASA,EAAO+F,YAEpB,IAGJ,CADE,MAAO1hB,IACT,CACF,CACF,CACA,SAAS8tB,GAAwBN,EAAQzH,GACvC,MAAM0H,EAAgBD,EAAOtL,aAC7B,OAAOsL,EAAOE,qBAAuBD,EAAc1R,SAASgK,EAAM1L,OACpE,CACA,SAAS0T,GAAeP,EAAQzR,EAAUgK,GACxC,OAAOA,EAAMiI,iBAAmBjI,EAAMiG,cAAgBjQ,GAExD,SAA2ByR,EAAQzH,GACjC,GAA+B,oBAApByH,EAAOjO,SAAyB,CACzC,MAAMla,EAASmoB,EAAOjO,SAASwG,GAE/B,OADAyH,EAAOrJ,aAAe9e,EACfA,CACT,CACA,OAAOmoB,EAAOjO,QAChB,CAToE2O,CAAkBV,EAAQzH,KAAWhK,CACzG,CA1EwB,qBAAb3D,UAA8C,qBAAXjC,SACxC8J,IACF7H,SAAS4H,iBAAiB,aAAcuN,IAAuBzN,IAAkB,CAC/EuL,SAAS,EACT8C,SAAS,IAEX/V,SAAS4H,iBAAiB,YAuB9B,SAA8B+F,GAC5B4H,GAAkB5H,GAAO,EAC3B,IAzBgEjG,IAAkB,CAC5EuL,SAAS,EACT8C,SAAS,MAGXhY,OAAO6J,iBAAiB,YAAauN,IAAuB,GAC5DpX,OAAO6J,iBAAiB,SAc5B,SAA2B+F,GACzB4H,GAAkB5H,EACpB,IAhBwD,IAEtD5P,OAAO6J,iBAAiB,UAqE1B,SAAwC+F,GACtC,IAAK,IAAI5lB,EAAI,EAAGA,EAAI8gB,GAAatqB,OAAQwJ,IAAK,CAC7B8gB,GAAa9gB,GACrB+kB,kBAAkBa,EAC3B,CACF,KAOA,IAAI+G,GAAiB,EACjBE,GAAiB,EACjBN,GAAS,EACTC,GAAS,EAWb,SAASS,GAAmBgB,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,GACtD,MAAMC,IAAOF,EAAKF,IAAOH,EAAKI,IAAOE,EAAKF,IAAOL,EAAKI,MAASG,EAAKF,IAAOH,EAAKF,IAAOM,EAAKF,IAAOD,EAAKF,IAClGQ,IAAOP,EAAKF,IAAOC,EAAKI,IAAOF,EAAKF,IAAOD,EAAKI,MAASG,EAAKF,IAAOH,EAAKF,IAAOM,EAAKF,IAAOD,EAAKF,IACxG,OAAOO,GAAM,GAAKA,GAAM,GAAKC,GAAM,GAAKA,GAAM,CAChD,CAdsB,qBAAX1Y,QACTA,OAAO6J,iBAAiB,aAAc+F,IACpC+G,GAAiBJ,GACjBM,GAAiBL,GACjBD,GAAS3G,EAAM+I,QACfnC,GAAS5G,EAAMgJ,OAAO,GACrBjP,GAAkB,CACnBuL,SAAS,QACP,GAON,IAAI2D,GAAc,CAACC,EAAK3N,KACtB,MAAMjH,EAAS4U,EAAIC,WAAaD,EAChC,IAAK,MAAO3mB,EAAK6mB,KAAQ7N,EACvBjH,EAAO/R,GAAO6mB,EAEhB,OAAO9U,CAAM,EAef,IAAI+U,GAA2BJ,GAbX,CAClBK,QAAS7N,MAY6C,CAAC,CAAC,SAV1D,SAAuB8N,EAAMC,EAAQC,EAAQC,EAAQC,EAAOC,GAC1D,OAAO,WAAa,QAAmB,MAAO,CAC5CC,IAAK,YACLC,OAAO,QAAe,CAAC,WAAY,CACjC,kBAAmBP,EAAK9K,SAASlB,YAElC,EACD,QAAWgM,EAAKhC,OAAQ,WAAW,SAAe,QAAmBgC,EAAK9K,aACzE,EACL,KAmBA,IAAIsL,GACJ,SAASC,KACFA,GAAW/K,OACd+K,GAAW/K,MAAO,EAClB8K,IAAyC,IArB7C,WACE,IAAIE,EAAK7Z,OAAOkB,UAAUC,UACtB2Y,EAAOD,EAAGrsB,QAAQ,SACtB,GAAIssB,EAAO,EACT,OAAO7mB,SAAS4mB,EAAGjlB,UAAUklB,EAAO,EAAGD,EAAGrsB,QAAQ,IAAKssB,IAAQ,IAGjE,GADcD,EAAGrsB,QAAQ,YACX,EAAG,CACf,IAAIusB,EAAKF,EAAGrsB,QAAQ,OACpB,OAAOyF,SAAS4mB,EAAGjlB,UAAUmlB,EAAK,EAAGF,EAAGrsB,QAAQ,IAAKusB,IAAM,GAC7D,CACA,IAAIC,EAAOH,EAAGrsB,QAAQ,SACtB,OAAIwsB,EAAO,EACF/mB,SAAS4mB,EAAGjlB,UAAUolB,EAAO,EAAGH,EAAGrsB,QAAQ,IAAKwsB,IAAQ,KAEzD,CACV,CAKWC,GAEX,CACA,IAAIC,GAAS,CACX55B,KAAM,iBACN6qB,MAAO,CACLgP,YAAa,CACXxO,KAAMM,QACNP,SAAS,GAEX0O,YAAa,CACXzO,KAAMM,QACNP,SAAS,GAEX2O,aAAc,CACZ1O,KAAMM,QACNP,SAAS,IAGbwB,MAAO,CACL,UAEFmC,UACEuK,MACA,SAAS,KACPpO,KAAK8O,GAAK9O,KAAKsF,IAAIhP,YACnB0J,KAAK+O,GAAK/O,KAAKsF,IAAI/O,aACfyJ,KAAK2O,aACP3O,KAAKgP,UACP,IAEF,MAAM5nB,EAASqP,SAASwY,cAAc,UACtCjP,KAAKkP,cAAgB9nB,EACrBA,EAAOwjB,aAAa,cAAe,QACnCxjB,EAAOwjB,aAAa,YAAa,GACjCxjB,EAAO+nB,OAASnP,KAAKoP,kBACrBhoB,EAAO+Y,KAAO,YACVgO,IACFnO,KAAKsF,IAAI4D,YAAY9hB,GAEvBA,EAAOiL,KAAO,cACT8b,IACHnO,KAAKsF,IAAI4D,YAAY9hB,EAEzB,EACA8c,gBACElE,KAAKqP,sBACP,EACAlL,QAAS,CACPmL,qBACOtP,KAAK4O,aAAe5O,KAAK8O,KAAO9O,KAAKsF,IAAIhP,cAAgB0J,KAAK6O,cAAgB7O,KAAK+O,KAAO/O,KAAKsF,IAAI/O,gBACtGyJ,KAAK8O,GAAK9O,KAAKsF,IAAIhP,YACnB0J,KAAK+O,GAAK/O,KAAKsF,IAAI/O,aACnByJ,KAAKgP,WAET,EACAA,WACEhP,KAAK0E,MAAM,SAAU,CACnBloB,MAAOwjB,KAAK8O,GACZphB,OAAQsS,KAAK+O,IAEjB,EACAK,oBACEpP,KAAKkP,cAAcK,gBAAgB7a,YAAY2J,iBAAiB,SAAU2B,KAAKsP,kBAC/EtP,KAAKsP,kBACP,EACAD,uBACMrP,KAAKkP,eAAiBlP,KAAKkP,cAAcC,UACtChB,IAAQnO,KAAKkP,cAAcK,iBAC9BvP,KAAKkP,cAAcK,gBAAgB7a,YAAYwV,oBAAoB,SAAUlK,KAAKsP,kBAEpFtP,KAAKsF,IAAIgF,YAAYtK,KAAKkP,eAC1BlP,KAAKkP,cAAcC,OAAS,KAC5BnP,KAAKkP,cAAgB,KAEzB,IAGJ,MAAMM,IAA0B,QAAY,oBAC5C,QAAY,mBACZ,MAAMC,GAAe,CACnBvB,MAAO,kBACPwB,SAAU,OAEZ,UACA,MAAMhE,GAAyB8D,IAAQ,CAAC7B,EAAMC,EAAQC,EAAQC,EAAQC,EAAOC,MACpE,WAAa,QAAY,MAAOyB,OAEzCf,GAAOhD,OAASA,GAChBgD,GAAOiB,UAAY,kBACnBjB,GAAOkB,OAAS,oCAChB,IAAIC,GAAoB,CAAC5T,EAAO,WAAY,CAC1CwG,SAAU,CACRqN,aACE,OA9nCN,SAAyB9R,GACvB,MAAMta,EAAS,CAACsa,GAChB,IAAIC,EAActD,GAAOsC,OAAOe,IAAU,CAAC,EAC3C,GACMC,EAAYH,UAAYG,EAAY8R,WACtCrsB,EAAOrO,KAAK4oB,EAAYH,SACxBG,EAActD,GAAOsC,OAAOgB,EAAYH,UAAY,CAAC,GAErDG,EAAc,WAETA,GACT,OAAOva,EAAOyF,KAAK5K,GAAM,mBAAmBA,KAC9C,CAknCayxB,CAAgBhQ,KAAK/D,GAC9B,KAIJ,MAAMgU,IAAc,QAAgB,CAClCn7B,KAAM,iBACNo7B,WAAY,CACVC,eAAgBzB,IAElB0B,OAAQ,CACNP,MAEFlQ,MAAO,CACL+C,SAAUvnB,OACV6iB,MAAO7iB,OACPqlB,MAAOC,QACPoD,QAASpD,QACToB,eAAgBpB,QAChB7C,SAAU6C,QACVhD,aAAcgD,QACdqB,QAASrtB,OACTiP,OAAQjP,QAEVitB,MAAO,CACL,OACA,UAEFyC,QAAS,CACPkM,KAAK97B,GACH,OAAa,MAATA,GAAkByB,MAAMzB,GAGrB,KAFE,GAAGA,KAGd,KAGE+7B,GAAe,CAAC,KAAM,cAAe,WAAY,yBACjDC,GAAe,CACnBtC,IAAK,QACLC,MAAO,mBAIHsC,GAAa,EAFgB,OAAmB,MAAO,CAAEtC,MAAO,yBAA2B,MAAO,IACrE,OAAmB,MAAO,CAAEA,MAAO,yBAA2B,MAAO,IAkExG,IAAIuC,GAAuCpD,GAAY4C,GAAa,CAAC,CAAC,SA7DtE,SAAuBtC,EAAMC,EAAQC,EAAQC,EAAQC,EAAOC,GAC1D,MAAM0C,GAA4B,QAAiB,kBACnD,OAAO,WAAa,QAAmB,MAAO,CAC5CC,GAAIhD,EAAKjL,SACTuL,IAAK,UACLC,OAAO,QAAe,CAAC,mBAAoB,CACzCP,EAAKmC,WACLnC,EAAK7L,QAAQZ,YACb,CACE,0BAA2ByM,EAAKnN,MAChC,4BAA6BmN,EAAKnN,MAClC,8BAA+BmN,EAAK7L,QAAQC,SAC5C,4BAA6B4L,EAAK7L,QAAQE,OAC1C,8BAA+B2L,EAAK7L,QAAQG,SAC5C,4BAA6B0L,EAAK7L,QAAQI,OAC1C,oCAAqCyL,EAAK9L,eAC1C,mCAAoC8L,EAAKjqB,QAAUiqB,EAAKjqB,OAAOye,MAAMtQ,SACrE,oCAAqC8b,EAAKjqB,WAG9C0jB,OAAO,QAAeuG,EAAKjqB,OAAS,CAClCoU,SAAU6V,EAAKjqB,OAAOiL,SACtBkH,UAAW,eAAe5f,KAAKuH,MAAMmwB,EAAKjqB,OAAOlE,QAAQvJ,KAAKuH,MAAMmwB,EAAKjqB,OAAO7I,gBAC9E,GACJ,cAAe8yB,EAAKnN,MAAQ,QAAU,OACtCkP,SAAU/B,EAAK/P,SAAW,OAAI,EAC9B,wBAAyB+P,EAAKjqB,OAASiqB,EAAKjqB,OAAOqJ,eAAY,EAC/D6jB,QAAShD,EAAO,KAAOA,EAAO,IAAK,SAAUiD,GAAWlD,EAAK/P,UAAY+P,EAAKjJ,MAAM,SAAS,CAAC,UAC7F,EACD,OAAmB,MAAO,CACxBwJ,MAAO,qBACP4C,QAASlD,EAAO,KAAOA,EAAO,GAAMiD,GAAWlD,EAAK/P,UAAY+P,EAAKjJ,MAAM,YAE7E,OAAmB,MAAO,CACxBwJ,MAAO,oBACP9G,OAAO,QAAeuG,EAAKjqB,OAAS,CAClC2e,gBAAiBsL,EAAKjqB,OAAO2e,sBAC3B,IACH,EACD,OAAmB,MAAOkO,GAAc,CACtC5C,EAAK9J,UAAW,WAAa,QAAmB,KAAU,CAAEld,IAAK,GAAK,EACpE,OAAmB,MAAO,KAAM,EAC9B,QAAWgnB,EAAKhC,OAAQ,aAE1BgC,EAAKlQ,eAAgB,WAAa,QAAYiT,EAA2B,CACvE/pB,IAAK,EACLoqB,SAAUnD,EAAO,KAAOA,EAAO,GAAMiD,GAAWlD,EAAKjJ,MAAM,SAAUmM,QACjE,QAAmB,IAAI,IAC5B,MAAO,QAAmB,IAAI,IAChC,MACH,OAAmB,MAAO,CACxB5C,IAAK,QACLC,MAAO,4BACP9G,OAAO,QAAeuG,EAAKjqB,OAAS,CAClCwK,KAAMyf,EAAK0C,KAAK1C,EAAKjqB,OAAOye,MAAM3iB,GAClCuO,IAAK4f,EAAK0C,KAAK1C,EAAKjqB,OAAOye,MAAMtnB,SAC/B,IACH21B,GAAY,IACd,IACF,GAAIF,GACT,KAEIU,GAAuB,CACzB7M,QAAS,CACP5G,QAAQ9nB,GACN,OAAOuqB,KAAKiR,MAAMpF,OAAOtO,QAAQ9nB,EACnC,EACA+nB,QAAQ/nB,GACN,OAAOuqB,KAAKiR,MAAMpF,OAAOrO,QAAQ/nB,EACnC,EACA2tB,WAAW3tB,GACT,OAAOuqB,KAAKiR,MAAMpF,OAAOzI,WAAW3tB,EACtC,EACAqtB,YAAYrtB,GACV,OAAOuqB,KAAKiR,MAAMpF,OAAO/I,YAAYrtB,EACvC,IAuFJ,IAAIy7B,GAAuC7D,IApFvB,QAAgB,CAClCv4B,KAAM,iBACNo7B,WAAY,CACViB,OAAQ1D,GACR2D,cAAeX,IAEjBL,OAAQ,CACNY,GACAnB,GAAkB,eAEpBlQ,MAAO,CACL3B,MAAO,CACLmC,KAAMhlB,OACN+kB,QAAS,OAGbuC,SAAU,CACR4O,aACE,IAAI/8B,EACJ,OAA4B,OAApBA,EAAK0rB,KAAKhC,OAAiB1pB,EAAK0rB,KAAKgO,SAASsD,YACxD,GAEFnN,QAAS,CACPoN,iBACE,OAAO3qB,MAAMwV,KAAK4D,KAAKsF,IAAIkM,UAAU7f,QAAQ4C,GAASA,IAASyL,KAAKiR,MAAMnF,cAAcxG,KAC1F,KA2DgE,CAAC,CAAC,SAxDtE,SAAuBqI,EAAMC,EAAQC,EAAQC,EAAQC,EAAOC,GAC1D,MAAMyD,GAA2B,QAAiB,iBAC5CC,GAAoB,QAAiB,UAC3C,OAAO,WAAa,QAAYA,EAAmB,CACjDzD,IAAK,SACLjQ,MAAO2P,EAAK0D,WACZ,eAAgB1D,EAAK4D,eACrB,cAAe,IAAM5D,EAAKsD,MAAMnF,cAAcxG,IAC9C4I,OAAO,QAAe,CACpBP,EAAKmC,cAEN,CACD5P,SAAS,SAAQ,EACfwC,WACAf,UACAiB,qBACAf,iBACAjE,WACAL,OACAC,OACAC,eACAqF,WACAhB,UACApe,YACI,EACJ,QAAWiqB,EAAKhC,OAAQ,UAAW,CACjCnL,MAAOmB,EACPpE,OACAC,UAEF,QAAYiU,EAA0B,CACpCxD,IAAK,gBACL,YAAavL,EACb1E,MAAO2P,EAAK0D,WACZ7Q,MAAOmB,EACPkC,QAASjB,EACT,kBAAmBf,EACnB,YAAajE,EACb,gBAAiBH,EACjBqE,UACApe,SACAiuB,OAAQnU,EACRsF,YACC,CACD5C,SAAS,SAAQ,IAAM,EACrB,QAAWyN,EAAKhC,OAAQ,SAAU,CAChCnL,MAAOmB,EACPnE,YAGJoU,EAAG,GACF,KAAM,CAAC,YAAa,QAAS,QAAS,UAAW,kBAAmB,YAAa,gBAAiB,UAAW,SAAU,SAAU,gBAEtIA,EAAG,GACF,EAAG,CAAC,QAAS,eAAgB,cAAe,SACjD,KAGA,MAAMC,IAAc,QAAgB3V,GAAcF,GAAe,CAAC,EAAGkV,IAAuB,CAC1Fp8B,KAAM,YACNw8B,aAAc,cAEVQ,IAAc,QAAgB5V,GAAcF,GAAe,CAAC,EAAGkV,IAAuB,CAC1Fp8B,KAAM,QACNw8B,aAAc,UAGhB,MAAMS,IAAc,QAAgB7V,GAAcF,GAAe,CAAC,EAAGkV,IAAuB,CAC1Fp8B,KAAM,WACNw8B,aAAc,aAEVU,IAAY,QAAgB,CAChCl9B,KAAM,oBACNo7B,WAAY,CACViB,OAAQtR,KACRuR,cAAeX,IAEjBL,OAAQ,CACNY,IAEFiB,cAAc,EACdtS,MAAO,CACL3B,MAAO,CACLmC,KAAMhlB,OACN+kB,QAAS,WAEXnH,KAAM,CACJoH,KAAMM,QACNP,QAAUP,GAAU5B,GAAiB4B,EAAM3B,MAAO,SAEpDkU,QAAS,CACP/R,KAAM,CAAChlB,OAAQpF,OAAQsqB,UACvBH,QAAS,MAEXxC,eAAgB,CACdyC,KAAMhlB,OACN+kB,QAAUP,GAAU5B,GAAiB4B,EAAM3B,MAAO,oBAGtD3L,OACE,MAAO,CACL8f,aAAc,KAElB,EACA1P,SAAU,CACR2P,iBACE,MAA+B,oBAAjBpS,KAAKkS,OACrB,EACAG,UACE,OAAOrS,KAAKoS,gBAAuC,MAArBpS,KAAKmS,YACrC,EACAG,eACE,OAAItS,KAAKoS,eACApS,KAAKqS,QAAUrS,KAAKtC,eAAiBsC,KAAKmS,aAE5CnS,KAAKkS,OACd,GAEF/O,MAAO,CACL+O,QAAS,CACP1I,UACExJ,KAAKuS,cAAa,EACpB,EACAC,WAAW,GAEbp+B,2BACQ4rB,KAAKyS,YACXzS,KAAKiR,MAAMpF,OAAO/I,UACpB,GAEFU,UACExD,KAAK0S,UAAY,CACnB,EACAvO,QAAS,CACPoO,aAAajO,GACX,GAA4B,oBAAjBtE,KAAKkS,SAA0BlS,KAAK2S,YAAcrO,IAAUtE,KAAK4S,WAAkC,MAArB5S,KAAKmS,cAAuB,CACnHnS,KAAKmS,aAAe,KACpBnS,KAAK4S,WAAY,EACjB,MAAMC,IAAY7S,KAAK0S,UACjBhvB,EAASsc,KAAKkS,QAAQlS,MACxBtc,EAAOovB,KACTpvB,EAAOovB,MAAMC,GAAQ/S,KAAKgT,SAASH,EAASE,KAE5C/S,KAAKgT,SAASH,EAASnvB,EAE3B,CACF,EACAsvB,SAASH,EAASnvB,GACZmvB,IAAY7S,KAAK0S,YAErB1S,KAAK4S,WAAY,EACjB5S,KAAKmS,aAAezuB,EACtB,EACAuvB,SACEjT,KAAK2S,WAAY,EACjB3S,KAAKuS,cACP,EACAZ,SACE3R,KAAK2S,WAAY,CACnB,KAGEO,GAAa,CAAC,aACdC,GAAa,CAAC,eAsDpB,IAAIC,GAA0C/F,GAAY2E,GAAW,CAAC,CAAC,SArDvE,SAAqBrE,EAAMC,EAAQC,EAAQC,EAAQC,EAAOC,GACxD,MAAMyD,GAA2B,QAAiB,iBAC5CC,GAAoB,QAAiB,UAC3C,OAAO,WAAa,QAAYA,GAAmB,QAAW,CAAEzD,IAAK,UAAYN,EAAK3K,OAAQ,CAC5FhF,MAAO2P,EAAK3P,MACZ,cAAe,IAAM2P,EAAKsD,MAAMnF,cAAcxG,IAC9C+N,YAAa1F,EAAKsF,OAClBK,YAAa3F,EAAKgE,SAChB,CACFzR,SAAS,SAAQ,EACfwC,WACAf,UACAiB,qBACAf,iBACAjE,WACAJ,OACAC,eACAqF,WACAhB,UACApe,YACI,EACJ,QAAY+tB,EAA0B,CACpCxD,IAAK,gBACLC,OAAO,QAAe,CACpB,4BAA6BP,EAAK0E,UAEpC,YAAa3P,EACb1E,MAAO2P,EAAK3P,MACZwC,MAAOmB,EACPkC,QAASjB,EACT,kBAAmBf,EACnB,YAAajE,EACb,gBAAiBH,EACjBqE,UACApe,SACAiuB,OAAQnU,EACRsF,YACC,CACD5C,SAAS,SAAQ,IAAM,CACrByN,EAAK5U,OAAQ,WAAa,QAAmB,MAAO,CAClDpS,IAAK,EACL4sB,UAAW5F,EAAK2E,cACf,KAAM,EAAGY,OAAgB,WAAa,QAAmB,MAAO,CACjEvsB,IAAK,EACL6sB,aAAa,QAAgB7F,EAAK2E,eACjC,KAAM,EAAGa,QAEdvB,EAAG,GACF,KAAM,CAAC,QAAS,YAAa,QAAS,QAAS,UAAW,kBAAmB,YAAa,gBAAiB,UAAW,SAAU,SAAU,gBAE/IA,EAAG,GACF,GAAI,CAAC,QAAS,cAAe,cAAe,eACjD,KAEA,MAAM6B,GAAe,wBAerB,SAASC,GAAWjJ,EAAIl2B,EAAOo/B,GAC7B,IAAIzN,EACJ,MAAM/F,SAAc5rB,EAWpB,OATE2xB,EADW,WAAT/F,EACS,CAAE+R,QAAS39B,GACbA,GAAkB,WAAT4rB,EACP5rB,EAEA,CAAE29B,SAAS,GAExBhM,EAASnZ,UAxBX,SAAsBmZ,EAAUyN,GAC9B,IAAIjwB,EAASwiB,EAASnZ,UACtB,IAAKrJ,GAAUiwB,EACb,IAAK,MAAMC,KAAOliB,GACZiiB,EAAUC,KACZlwB,EAASkwB,GAOf,OAHKlwB,IACHA,EAASqa,GAAiBmI,EAASlI,OAAS,UAAW,cAElDta,CACT,CAWuBmwB,CAAa3N,EAAUyN,GAC5CzN,EAAS9F,YAAc,IAAM,CAACqK,GAC9BvE,EAAS5F,cAAgB,IAAMmK,EACxBvE,CACT,CACA,IAAI4N,GACAC,GACAC,GAAM,EA4BV,SAASC,GAAcxJ,EAAIl2B,EAAOo/B,IA3BlC,WACE,GAAIG,GACF,OACFC,IAAa,QAAI,IACjBD,IAAe,QAAU,CACvBh/B,KAAM,uBACNo/B,QACE,MAAO,CACLH,cAEJ,EACArI,SACE,OAAO1L,KAAK+T,WAAW5qB,KAAKgrB,IACnB,IAAA14B,GAAE23B,GAAyBlX,GAAcF,GAAe,CAAC,EAAGmY,EAAU76B,SAAU,CACrFknB,MAAO2T,EAAU3T,OAAS2T,EAAU76B,QAAQknB,MAC5C7Z,IAAKwtB,EAAUxD,OAGrB,EACAyD,SAAU,CACR5W,MAAM,KAGV,MAAM6W,EAAc5d,SAASwY,cAAc,OAC3CxY,SAAS0B,KAAK+Q,YAAYmL,GAC1BP,GAAaQ,MAAMD,EACrB,CAEEE,GACA,MAAMrO,GAAW,QAAIwN,GAAWjJ,EAAIl2B,EAAOo/B,IACrCnT,GAAQ,SAAI,GACZxB,EAAO,CACX2R,GAAIqD,KACJ16B,QAAS4sB,EACT1F,SAEFuT,GAAWx/B,MAAMc,KAAK2pB,GAClByL,EAAG3B,WACL2B,EAAG3B,UAAUC,IAAI0K,IAYnB,OAVehJ,EAAG+J,SAAW,CAC3Bl7B,QAAS4sB,EACTlH,OACAzB,OACEiD,EAAMjsB,OAAQ,CAChB,EACAipB,OACEgD,EAAMjsB,OAAQ,CAChB,EAGJ,CACA,SAASkgC,GAAehK,GACtB,GAAIA,EAAG+J,SAAU,CACf,MAAM5sB,EAAQmsB,GAAWx/B,MAAMyN,QAAQyoB,EAAG+J,SAASxV,OACpC,IAAXpX,GACFmsB,GAAWx/B,MAAM0qB,OAAOrX,EAAO,UAC1B6iB,EAAG+J,gBACH/J,EAAGiK,wBACHjK,EAAGkK,mBACZ,CACIlK,EAAG3B,WACL2B,EAAG3B,UAAUE,OAAOyK,GAExB,CACA,SAASrL,GAAKqC,GAAI,MAAEl2B,EAAK,UAAEo/B,IACzB,MAAMzN,EAAWwN,GAAWjJ,EAAIl2B,EAAOo/B,GACvC,IAAKzN,EAASgM,SAAWnU,GAAiBmI,EAASlI,OAAS,UAAW,YACrEyW,GAAehK,OACV,CACL,IAAI0J,EACA1J,EAAG+J,UACLL,EAAY1J,EAAG+J,SACfL,EAAU76B,QAAQ/E,MAAQ2xB,GAE1BiO,EAAYF,GAAcxJ,EAAIl2B,EAAOo/B,GAEZ,qBAAhBp/B,EAAMisB,OAAyBjsB,EAAMisB,QAAUiK,EAAGiK,mBAC3DjK,EAAGiK,iBAAmBngC,EAAMisB,MAC5BjsB,EAAMisB,MAAQ2T,EAAU5W,OAAS4W,EAAU3W,OAE/C,CACF,CACA,IAAIoX,GAAkB,CACpBC,YAAazM,GACb0M,QAAS1M,GACTlE,cAAcuG,GACZgK,GAAehK,EACjB,GAEF,SAASsK,GAAatK,GACpBA,EAAGpM,iBAAiB,QAASyS,IAC7BrG,EAAGpM,iBAAiB,aAAc2W,KAAc7W,IAAkB,CAChEuL,SAAS,GAEb,CACA,SAASuL,GAAgBxK,GACvBA,EAAGP,oBAAoB,QAAS4G,IAChCrG,EAAGP,oBAAoB,aAAc8K,IACrCvK,EAAGP,oBAAoB,WAAYgL,IACnCzK,EAAGP,oBAAoB,cAAeiL,GACxC,CACA,SAASrE,GAAQ1M,GACf,MAAMqG,EAAKrG,EAAMgR,cACjBhR,EAAMiG,cAAgBI,EAAG4K,sBACzBjR,EAAMiI,gBAAkB5B,EAAG6K,2BAA6B7K,EAAG6K,wBAAwBC,GACrF,CACA,SAASP,GAAa5Q,GACpB,GAAoC,IAAhCA,EAAMoR,eAAexgC,OAAc,CACrC,MAAMy1B,EAAKrG,EAAMgR,cACjB3K,EAAG4K,uBAAwB,EAC3B,MAAMxW,EAAQuF,EAAMoR,eAAe,GACnC/K,EAAGgL,2BAA6B5W,EAChC4L,EAAGpM,iBAAiB,WAAY6W,IAChCzK,EAAGpM,iBAAiB,cAAe8W,GACrC,CACF,CACA,SAASD,GAAW9Q,GAClB,MAAMqG,EAAKrG,EAAMgR,cAEjB,GADA3K,EAAG4K,uBAAwB,EACS,IAAhCjR,EAAMoR,eAAexgC,OAAc,CACrC,MAAM6pB,EAAQuF,EAAMoR,eAAe,GAC7BE,EAAajL,EAAGgL,2BACtBrR,EAAMiG,aAAep0B,KAAK2E,IAAIikB,EAAM8W,QAAUD,EAAWC,SAAW,IAAM1/B,KAAK2E,IAAIikB,EAAM+W,QAAUF,EAAWE,SAAW,GACzHxR,EAAMiI,gBAAkB5B,EAAG6K,2BAA6B7K,EAAG6K,wBAAwBC,GACrF,CACF,CACA,SAASJ,GAAc/Q,GACVA,EAAMgR,cACdC,uBAAwB,CAC7B,CACA,IAAIQ,GAAsB,CACxBhB,YAAYpK,GAAI,MAAEl2B,EAAK,UAAEo/B,IACvBlJ,EAAG6K,wBAA0B3B,GACR,qBAAVp/B,GAAyBA,IAClCwgC,GAAatK,EAEjB,EACAqK,QAAQrK,GAAI,MAAEl2B,EAAK,SAAEuhC,EAAQ,UAAEnC,IAC7BlJ,EAAG6K,wBAA0B3B,EACzBp/B,IAAUuhC,IACS,qBAAVvhC,GAAyBA,EAClCwgC,GAAatK,GAEbwK,GAAgBxK,GAGtB,EACAvG,cAAcuG,GACZwK,GAAgBxK,EAClB,GAyBF,MAAM,GAAS,CACbsL,QAAS,gBACTC,QAbF,SAAiBC,EAAK/P,EAAW,CAAC,GAC5B+P,EAAIC,sBAERD,EAAIC,qBAAsB,EAC1B,GAAOvb,GAAQuL,GACf+P,EAAI9B,UAAU,UAAWS,IACzBqB,EAAI9B,UAAU,eAAgB0B,IAC9BI,EAAIE,UAAU,WAAYpE,IAC1BkE,EAAIE,UAAU,YAAatE,IAC3BoE,EAAIE,UAAU,QAASrE,IACzB,EAIEx4B,QAASqhB,sBCryDXyb,EAAOC,QAAyB,iBAARC,KAAmBA,KAAKC,SAAW/hB,OAAO+hB,+BCDlE,QAYMC,EAoCAC,EAWAC,EAMAC,EAOA9/B,EAEA+/B,EAGAC,EAGAC,EAGAC,EAGAC,EAGAC,EAKAC,EAOAC,EAYAC,EArGAZ,EAAe,SAASa,EAAShhC,EAAKiD,GACxC,IAAIu9B,EAAUxgC,IAAQ0gC,EAAQ1gC,IAAQ2gC,EAAU3gC,IAAQ4gC,EAAW5gC,IAAQugC,EAAYvgC,GACrF,OAAOA,EAGT,IAAIsE,EACA6D,EAAI,EACJ84B,EAAI,EAER,GAAGR,EAASzgC,GAEV,IADAsE,EAAS,GACL28B,EAAEjhC,EAAIrB,OAAQwJ,EAAE84B,EAAG94B,IACrB7D,EAAOtF,KAAKmhC,EAAaa,EAAShhC,EAAImI,GAAIlF,SAK5C,IAAI,IAAIqN,KADRhM,EAAS,CAAC,EACKtE,EACV5B,OAAOgC,UAAU6Q,eAAexQ,KAAKT,EAAKsQ,KAC3ChM,EAAO08B,EAAQ1wB,EAAKrN,IAAYk9B,EAAaa,EAAShhC,EAAIsQ,GAAMrN,IAItE,OAAOqB,CACT,EAYI87B,EAAW,SAASrwB,GACtB,OAAI8wB,EAAa9wB,GACRA,GAETA,EAASA,EAAOlF,QAAQ,iBAAiB,SAASJ,EAAOy2B,GACvD,OAAOA,EAAMA,EAAI/7B,cAAgB,EACnC,KAEc6P,OAAO,EAAG,GAAG1M,cAAgByH,EAAOiF,OAAO,EAC3D,EAEIqrB,EAAY,SAAStwB,GACvB,IAAIoxB,EAAYf,EAASrwB,GAEzB,OAAOoxB,EAAUnsB,OAAO,EAAG,GAAG7P,cAAgBg8B,EAAUnsB,OAAO,EACjE,EAEIsrB,EAAa,SAASvwB,EAAQ9M,GAChC,OA1BkB,SAAS8M,EAAQ9M,GAEnC,IAAIm+B,GADJn+B,EAAUA,GAAW,CAAC,GACEm+B,WAAa,IACjCrsB,EAAQ9R,EAAQ8R,OAAS,YAE7B,OAAOhF,EAAOgF,MAAMA,GAAO7B,KAAKkuB,EAClC,CAoBSC,CAActxB,EAAQ9M,GAASqF,aACxC,EAKI9H,EAAWpC,OAAOgC,UAAUI,SAE5B+/B,EAAc,SAASvgC,GACzB,MAAuB,oBAAV,CACf,EACIwgC,EAAY,SAASxgC,GACvB,OAAOA,IAAQ5B,OAAO4B,EACxB,EACIygC,EAAW,SAASzgC,GACtB,MAA6B,kBAAtBQ,EAASC,KAAKT,EACvB,EACI0gC,EAAU,SAAS1gC,GACrB,MAA6B,iBAAtBQ,EAASC,KAAKT,EACvB,EACI2gC,EAAY,SAAS3gC,GACvB,MAA6B,mBAAtBQ,EAASC,KAAKT,EACvB,EACI4gC,EAAa,SAAS5gC,GACxB,MAA6B,oBAAtBQ,EAASC,KAAKT,EACvB,EAGI6gC,EAAe,SAAS7gC,GAE1B,OADAA,GAAY,KACGA,CACjB,EAII8gC,EAAa,SAASE,EAAS/9B,GACjC,IAAIq+B,EAAWr+B,GAAW,YAAaA,EAAUA,EAAQs+B,QAAUt+B,EAEnE,MAAwB,oBAAf,EACA+9B,EAGF,SAASjxB,EAAQ9M,GACtB,OAAOq+B,EAASvxB,EAAQixB,EAAS/9B,EACnC,CACF,EAEI89B,EAAQ,CACVX,SAAUA,EACVE,WAAYA,EACZD,UAAWA,EACXmB,YAAalB,EACbmB,aAAc,SAAS1wB,EAAQ9N,GAC7B,OAAOk9B,EAAaW,EAAWV,EAAUn9B,GAAU8N,EACrD,EACA2wB,eAAgB,SAAS3wB,EAAQ9N,GAC/B,OAAOk9B,EAAaW,EAAWR,EAAYr9B,GAAU8N,EAAQ9N,EAC/D,EACA0+B,cAAe,SAAS5wB,EAAQ9N,GAC9B,OAAOk9B,EAAaW,EAAWT,EAAWp9B,GAAU8N,EACtD,EACA6wB,gBAAiB,WACf,OAAOjY,KAAK+X,eAAevQ,MAAMxH,KAAMrpB,UACzC,QAIY,2BAAZ,KAAY,iEChIhB,SAASuhC,EAAMC,GACbnY,KAAKoY,SAAWD,EAChBnY,KAAKqY,OACP,CACAH,EAAMzhC,UAAU4hC,MAAQ,WACtBrY,KAAKsY,MAAQ,EACbtY,KAAKuY,QAAU9jC,OAAO+jC,OAAO,KAC/B,EACAN,EAAMzhC,UAAU2nB,IAAM,SAAUzX,GAC9B,OAAOqZ,KAAKuY,QAAQ5xB,EACtB,EACAuxB,EAAMzhC,UAAUgiC,IAAM,SAAU9xB,EAAKpS,GAInC,OAHAyrB,KAAKsY,OAAStY,KAAKoY,UAAYpY,KAAKqY,QAC9B1xB,KAAOqZ,KAAKuY,SAAUvY,KAAKsY,QAEzBtY,KAAKuY,QAAQ5xB,GAAOpS,CAC9B,EAEA,IAAImkC,EAAc,4BAChBC,EAAc,QACdC,EAAmB,MACnBC,EAAkB,yCAClBC,EAAqB,2BAGnBC,EAAY,IAAIb,EAFD,KAGjBc,EAAW,IAAId,EAHE,KAIjBe,EAAW,IAAIf,EAJE,KA0EnB,SAASgB,EAAcjkC,GACrB,OACE8jC,EAAU3a,IAAInpB,IACd8jC,EAAUN,IACRxjC,EACAmW,EAAMnW,GAAMkU,KAAI,SAAUgwB,GACxB,OAAOA,EAAKj4B,QAAQ43B,EAAoB,KAC1C,IAGN,CAEA,SAAS1tB,EAAMnW,GACb,OAAOA,EAAK6L,MAAM43B,IAAgB,CAAC,GACrC,CAyBA,SAASU,EAASC,GAChB,MACiB,kBAARA,GAAoBA,IAA8C,IAAvC,CAAC,IAAK,KAAKr3B,QAAQq3B,EAAIC,OAAO,GAEpE,CAUA,SAASC,EAAeJ,GACtB,OAAQC,EAASD,KATnB,SAA0BA,GACxB,OAAOA,EAAKr4B,MAAM83B,KAAsBO,EAAKr4B,MAAM63B,EACrD,CAO6Ba,CAAiBL,IAL9C,SAAyBA,GACvB,OAAON,EAAgB9xB,KAAKoyB,EAC9B,CAGuDM,CAAgBN,GACvE,CAzHA/C,EAAOC,QAAU,CACf6B,MAAOA,EAEP9sB,MAAOA,EAEP8tB,cAAeA,EAEfQ,OAAQ,SAAUzkC,GAChB,IAAI0kC,EAAQT,EAAcjkC,GAE1B,OACE+jC,EAAS5a,IAAInpB,IACb+jC,EAASP,IAAIxjC,GAAM,SAAgBoB,EAAK9B,GAKtC,IAJA,IAAIqT,EAAQ,EACRgyB,EAAMD,EAAM3kC,OACZqd,EAAOhc,EAEJuR,EAAQgyB,EAAM,GAAG,CACtB,IAAIT,EAAOQ,EAAM/xB,GACjB,GACW,cAATuxB,GACS,gBAATA,GACS,cAATA,EAEA,OAAO9iC,EAGTgc,EAAOA,EAAKsnB,EAAM/xB,KACpB,CACAyK,EAAKsnB,EAAM/xB,IAAUrT,CACvB,GAEJ,EAEAslC,OAAQ,SAAU5kC,EAAM6kC,GACtB,IAAIH,EAAQT,EAAcjkC,GAC1B,OACEgkC,EAAS7a,IAAInpB,IACbgkC,EAASR,IAAIxjC,GAAM,SAAgBod,GAGjC,IAFA,IAAIzK,EAAQ,EACVgyB,EAAMD,EAAM3kC,OACP4S,EAAQgyB,GAAK,CAClB,GAAY,MAARvnB,GAAiBynB,EAChB,OADsBznB,EAAOA,EAAKsnB,EAAM/xB,KAE/C,CACA,OAAOyK,CACT,GAEJ,EAEA9I,KAAM,SAAUwwB,GACd,OAAOA,EAAS7kC,QAAO,SAAUD,EAAMkkC,GACrC,OACElkC,GACCmkC,EAASD,IAASR,EAAY5xB,KAAKoyB,GAChC,IAAMA,EAAO,KACZlkC,EAAO,IAAM,IAAMkkC,EAE5B,GAAG,GACL,EAEA1P,QAAS,SAAUx0B,EAAM+kC,EAAIC,IAqB/B,SAAiBN,EAAOO,EAAMD,GAC5B,IACEd,EACAgB,EACAtzB,EACAuzB,EAJER,EAAMD,EAAM3kC,OAMhB,IAAKmlC,EAAM,EAAGA,EAAMP,EAAKO,KACvBhB,EAAOQ,EAAMQ,MAGPZ,EAAeJ,KACjBA,EAAO,IAAMA,EAAO,KAItBtyB,IADAuzB,EAAYhB,EAASD,KACG,QAAQpyB,KAAKoyB,GAErCe,EAAKpjC,KAAKmjC,EAASd,EAAMiB,EAAWvzB,EAASszB,EAAKR,GAGxD,CAzCIlQ,CAAQ7iB,MAAMC,QAAQ5R,GAAQA,EAAOmW,EAAMnW,GAAO+kC,EAAIC,EACxD,oCClGF,SAASI,EAAS9lC,GACd,MAAwB,kBAAVA,EAAqBA,EAAM2M,QAAQ,aAAc,IAAI1F,cAAgB,EACvF,CAiBA66B,EAAQ,GAfR,SAAqB9hC,GACjB,GAAqB,kBAAVA,EACP,OAAO,EAMX,IAJA,IAAI+lC,EAAMD,EAAS9lC,GACfgmC,EAAY9yB,SAAS6yB,EAAInzB,MAAM,GAAI,GAAI,IACvCxL,EAAI,EACJE,EAAI,EACD0+B,EAAY,GACf1+B,GAAKA,EAAI0+B,EAAY,IAAM,EAAI5+B,IAAM,IAAM,GAC3C4+B,EAAYtkC,KAAKE,MAAMokC,EAAY,IAGvC,OADkB1+B,EAAI,EAAKV,OAAQU,EAAI,GAAM,OACtBy+B,EAAInzB,OAAO,EACtC,EAaAkvB,EAAQ,GAXR,SAAmB9hC,GACf,IAAI+lC,EAAMD,EAAS9lC,GACnB,GAAI+lC,EAAItlC,QAAU,EACd,OAAOslC,EAGX,IADA,IAAI52B,EAAS42B,EAAInzB,OAAO,GAAI,GAAK,IAAMmzB,EAAIjvB,OAAOivB,EAAItlC,OAAS,GACtDwJ,EAAI,EAAGA,EAAI87B,EAAItlC,OAAQwJ,GAAK,EACjCkF,EAAS42B,EAAInzB,OAAO,EAAI3I,GAAIA,GAAK,IAAMkF,EAE3C,OAAOA,CACX,oBC/BA,MAAM82B,EAAU,w+DAEVC,EAASpB,GAAQA,EAAIv4B,MAAM05B,IAAY,GAEvCE,EAAcrB,GAAQA,EAAI,GAAG79B,cAAgB69B,EAAIlyB,MAAM,GAEvDoC,EAAO,CAAC8vB,EAAKj+B,IAAMq/B,EAAMpB,GAAK9vB,KAAKnO,GAAGuD,cAEtCg8B,EAAatB,GACjBoB,EAAMpB,GAAKnkC,QACT,CAACC,EAAKklB,IACJ,GAAGllB,IACAA,EAEGklB,EAAK,GAAG7e,cAAgB6e,EAAKlT,MAAM,GAAGxI,cADtC0b,EAAK1b,iBAGb,IAaJy3B,EAAOC,QAAU,CACfoE,QACAC,aACAC,YACAC,WAdkBvB,GAAQqB,EAAWC,EAAUtB,IAe/CwB,UAbiBxB,GAAQ9vB,EAAK8vB,EAAK,KAcnCyB,UAZiBzB,GAAQ9vB,EAAK8vB,EAAK,KAanC0B,aAXoB1B,GAAQqB,EAAWnxB,EAAK8vB,EAAK,MAYjD2B,UAViB3B,GAAQoB,EAAMpB,GAAKlwB,IAAIuxB,GAAYnxB,KAAK,wBCb3D,SAAS0xB,EAASC,EAAOC,GACvB,IAAIC,EAASF,EAAMlmC,OACfqmC,EAAS,IAAIz0B,MAAMw0B,GACnBE,EAAU,CAAC,EACX98B,EAAI48B,EAEJG,EA4DN,SAA2BC,GAEzB,IADA,IAAIL,EAAQ,IAAIM,IACPj9B,EAAI,EAAGo7B,EAAM4B,EAAIxmC,OAAQwJ,EAAIo7B,EAAKp7B,IAAK,CAC9C,IAAIgwB,EAAOgN,EAAIh9B,GACV28B,EAAMO,IAAIlN,EAAK,KAAK2M,EAAM1C,IAAIjK,EAAK,GAAI,IAAIjM,KAC3C4Y,EAAMO,IAAIlN,EAAK,KAAK2M,EAAM1C,IAAIjK,EAAK,GAAI,IAAIjM,KAChD4Y,EAAM/c,IAAIoQ,EAAK,IAAIzF,IAAIyF,EAAK,GAC9B,CACA,OAAO2M,CACT,CArEsBQ,CAAkBR,GAClCS,EAsEN,SAAuBJ,GAErB,IADA,IAAIzI,EAAM,IAAI0I,IACLj9B,EAAI,EAAGo7B,EAAM4B,EAAIxmC,OAAQwJ,EAAIo7B,EAAKp7B,IACzCu0B,EAAI0F,IAAI+C,EAAIh9B,GAAIA,GAElB,OAAOu0B,CACT,CA5EkB8I,CAAcX,GAS9B,IANAC,EAAM1R,SAAQ,SAAS+E,GACrB,IAAKoN,EAAUF,IAAIlN,EAAK,MAAQoN,EAAUF,IAAIlN,EAAK,IACjD,MAAM,IAAIn3B,MAAM,gEAEpB,IAEOmH,KACA88B,EAAQ98B,IAAIs9B,EAAMZ,EAAM18B,GAAIA,EAAG,IAAI+jB,KAG1C,OAAO8Y,EAEP,SAASS,EAAMvnB,EAAM/V,EAAGu9B,GACtB,GAAGA,EAAaL,IAAInnB,GAAO,CACzB,IAAIynB,EACJ,IACEA,EAAU,cAAgBC,KAAKC,UAAU3nB,EAG3C,CAFE,MAAMlW,GACN29B,EAAU,EACZ,CACA,MAAM,IAAI3kC,MAAM,oBAAsB2kC,EACxC,CAEA,IAAKJ,EAAUF,IAAInnB,GACjB,MAAM,IAAIld,MAAM,+EAA+E4kC,KAAKC,UAAU3nB,IAGhH,IAAI+mB,EAAQ98B,GAAZ,CACA88B,EAAQ98B,IAAK,EAEb,IAAI29B,EAAWZ,EAAcnd,IAAI7J,IAAS,IAAIgO,IAG9C,GAAI/jB,GAFJ29B,EAAWv1B,MAAMwV,KAAK+f,IAELnnC,OAAQ,CACvB+mC,EAAahT,IAAIxU,GACjB,EAAG,CACD,IAAI0F,EAAQkiB,IAAW39B,GACvBs9B,EAAM7hB,EAAO2hB,EAAUxd,IAAInE,GAAQ8hB,EACrC,OAASv9B,GACTu9B,EAAalR,OAAOtW,EACtB,CAEA8mB,IAASD,GAAU7mB,CAfG,CAgBxB,CACF,CA5DA6hB,EAAOC,QAAU,SAAS8E,GACxB,OAAOF,EA6DT,SAAqBO,GAEnB,IADA,IAAIzI,EAAM,IAAIxQ,IACL/jB,EAAI,EAAGo7B,EAAM4B,EAAIxmC,OAAQwJ,EAAIo7B,EAAKp7B,IAAK,CAC9C,IAAIgwB,EAAOgN,EAAIh9B,GACfu0B,EAAIhK,IAAIyF,EAAK,IACbuE,EAAIhK,IAAIyF,EAAK,GACf,CACA,OAAO5nB,MAAMwV,KAAK2W,EACpB,CArEkBqJ,CAAYjB,GAAQA,EACtC,EAEA/E,EAAOC,QAAQ9uB,MAAQ0zB,uICJvB,SAASoB,EAAWtoB,GAChB,MAAqB,oBAAPA,CAClB,CACA,SAASuoB,EAAkB/nC,GACvB,OAAiB,OAAVA,QAA4BwP,IAAVxP,CAC7B,CACA,MAAMgoC,EAAYlmC,GAAgB,OAARA,KAAkBA,GAAsB,kBAARA,IAAqBuQ,MAAMC,QAAQxQ,GAC7F,SAASmmC,EAAQjoC,GACb,OAAOwB,OAAOxB,IAAU,CAC5B,CAMA,MAAMkoC,EAAQ,CAAC,EAyBf,MAAMC,EAAiBpmC,OAAO,qBACxBqmC,EAAkBrmC,OAAO,+BACzBsmC,EAAYtmC,OAAO,uBAEnBumC,EAA6B,qBAAXroB,OACxB,SAASsoB,EAAUvoC,GACf,OAAO8nC,EAAW9nC,MAAYA,EAAMwoC,YACxC,CACA,SAASC,EAAczoC,GACnB,QAASA,GAAS8nC,EAAW9nC,EAAM0oC,QAA2B,kBAAjB1oC,EAAMJ,MACvD,CACA,SAAS+oC,EAAe3oC,GACpB,QAASA,GAAS8nC,EAAW9nC,EAAMC,SACvC,CACA,SAAS2oC,EAAehd,GACpB,MAAgB,aAATA,GAAgC,UAATA,CAClC,CAOA,SAASid,EAAiB7oC,GACtB,OAAIqS,MAAMC,QAAQtS,GACU,IAAjBA,EAAMS,OAEVunC,EAAShoC,IAAwC,IAA9BE,OAAO4oC,KAAK9oC,GAAOS,MACjD,CAIA,SAASsoC,EAAgBroC,GACrB,MAAO,YAAY8R,KAAK9R,EAC5B,CAUA,SAASsoC,EAAe9S,GACpB,MAAsB,WAAfA,EAAG+S,OACd,CAgBA,SAASC,EAAuBC,EAAK3a,GACjC,OAbJ,SAAiC2a,EAAK3a,GAElC,MAAM4a,GAAyB,EAAC,EAAO,UAAM55B,EAAW,GAAGmJ,SAAS6V,EAAM6a,YAAc7nC,OAAOC,MAAM+sB,EAAM6a,UAC3G,MAAe,WAARF,GAAoB,aAAc3a,GAAS4a,CACtD,CASYE,CAAwBH,EAAK3a,IAAyB,SAAfA,EAAM5C,OAAoBgd,EAAepa,EAAM5C,KAClG,CACA,SAAS2d,EAAkBC,GACvB,OAAOC,EAAQD,IAAQA,EAAIrlB,QAAU,WAAYqlB,EAAIrlB,MACzD,CACA,SAASslB,EAAQD,GACb,QAAKA,OAGgB,qBAAVE,OAAyB5B,EAAW4B,QAAUF,aAAeE,WAKpEF,IAAOA,EAAIG,YAInB,CACA,SAASC,EAAc9nC,EAAK4lB,GACxB,OAAOA,KAAQ5lB,GAAOA,EAAI4lB,KAAU2gB,CACxC,CAMA,SAASwB,EAAQ/iC,EAAGuD,GAChB,GAAIvD,IAAMuD,EACN,OAAO,EACX,GAAIvD,GAAKuD,GAAkB,kBAANvD,GAA+B,kBAANuD,EAAgB,CAC1D,GAAIvD,EAAE7E,cAAgBoI,EAAEpI,YACpB,OAAO,EAEX,IAAIxB,EAAQwJ,EAAG6+B,EACf,GAAIz2B,MAAMC,QAAQxL,GAAI,CAGlB,IAFArG,EAASqG,EAAErG,SAEG4J,EAAE5J,OACZ,OAAO,EACX,IAAKwJ,EAAIxJ,EAAgB,IAARwJ,KACb,IAAK4/B,EAAQ/iC,EAAEmD,GAAII,EAAEJ,IACjB,OAAO,EACf,OAAO,CACX,CACA,GAAInD,aAAaogC,KAAO78B,aAAa68B,IAAK,CACtC,GAAIpgC,EAAEwpB,OAASjmB,EAAEimB,KACb,OAAO,EACX,IAAKrmB,KAAKnD,EAAEgjC,UACR,IAAKz/B,EAAE88B,IAAIl9B,EAAE,IACT,OAAO,EACf,IAAKA,KAAKnD,EAAEgjC,UACR,IAAKD,EAAQ5/B,EAAE,GAAII,EAAEwf,IAAI5f,EAAE,KACvB,OAAO,EACf,OAAO,CACX,CAGA,GAAI8/B,EAAOjjC,IAAMijC,EAAO1/B,GACpB,OAAIvD,EAAEwpB,OAASjmB,EAAEimB,OAEbxpB,EAAEvG,OAAS8J,EAAE9J,OAEbuG,EAAEkjC,eAAiB3/B,EAAE2/B,cAErBljC,EAAE8kB,OAASvhB,EAAEuhB,OAIrB,GAAI9kB,aAAaknB,KAAO3jB,aAAa2jB,IAAK,CACtC,GAAIlnB,EAAEwpB,OAASjmB,EAAEimB,KACb,OAAO,EACX,IAAKrmB,KAAKnD,EAAEgjC,UACR,IAAKz/B,EAAE88B,IAAIl9B,EAAE,IACT,OAAO,EACf,OAAO,CACX,CACA,GAAIggC,YAAYC,OAAOpjC,IAAMmjC,YAAYC,OAAO7/B,GAAI,CAGhD,IAFA5J,EAASqG,EAAErG,SAEG4J,EAAE5J,OACZ,OAAO,EACX,IAAKwJ,EAAIxJ,EAAgB,IAARwJ,KACb,GAAInD,EAAEmD,KAAOI,EAAEJ,GACX,OAAO,EACf,OAAO,CACX,CACA,GAAInD,EAAE7E,cAAgBgV,OAClB,OAAOnQ,EAAEqjC,SAAW9/B,EAAE8/B,QAAUrjC,EAAEsjC,QAAU//B,EAAE+/B,MAClD,GAAItjC,EAAEujC,UAAYnqC,OAAOgC,UAAUmoC,QAC/B,OAAOvjC,EAAEujC,YAAchgC,EAAEggC,UAC7B,GAAIvjC,EAAExE,WAAapC,OAAOgC,UAAUI,SAChC,OAAOwE,EAAExE,aAAe+H,EAAE/H,WAG9B,IADA7B,GADAqoC,EAAO5oC,OAAO4oC,KAAKhiC,IACLrG,UACCP,OAAO4oC,KAAKz+B,GAAG5J,OAC1B,OAAO,EACX,IAAKwJ,EAAIxJ,EAAgB,IAARwJ,KACb,IAAK/J,OAAOgC,UAAU6Q,eAAexQ,KAAK8H,EAAGy+B,EAAK7+B,IAC9C,OAAO,EACf,IAAKA,EAAIxJ,EAAgB,IAARwJ,KAAY,CAEzB,IAAImI,EAAM02B,EAAK7+B,GACf,IAAK4/B,EAAQ/iC,EAAEsL,GAAM/H,EAAE+H,IACnB,OAAO,CACf,CACA,OAAO,CACX,CAGA,OAAOtL,IAAMA,GAAKuD,IAAMA,CAC5B,CACA,SAAS0/B,EAAOjjC,GACZ,QAAKwhC,GAGExhC,aAAawjC,IACxB,CAEA,SAASpG,EAAIpiC,EAAKsQ,EAAK6mB,GACG,kBAAdA,EAAIj5B,QAAoBi5B,EAAIj5B,MAAQuqC,EAAMtR,EAAIj5B,QACpDi5B,EAAI3R,aAAc2R,EAAIpP,MAAOoP,EAAIiL,KAAQjL,EAAI1R,cAAiB0R,EAAIzR,UAAoB,cAARpV,EAE5EtQ,EAAIsQ,GAAO6mB,EAAIj5B,MADrBE,OAAOymB,eAAe7kB,EAAKsQ,EAAK6mB,EAElC,CAEA,SAASsR,EAAMt/B,GACd,GAAiB,kBAANA,EAAgB,OAAOA,EAElC,IAASR,EAAGqZ,EAAM0mB,EAAdvgC,EAAE,EAAiB66B,EAAI5kC,OAAOgC,UAAUI,SAASC,KAAK0I,GA8B1D,GA5BY,oBAAR65B,EACH0F,EAAMtqC,OAAO+jC,OAAOh5B,EAAEw/B,WAAa,MACjB,mBAAR3F,EACV0F,EAAMn4B,MAAMpH,EAAExK,QACI,iBAARqkC,GACV0F,EAAM,IAAIxc,IACV/iB,EAAEiqB,SAAQ,SAAU+D,GACnBuR,EAAIhW,IAAI+V,EAAMtR,GACf,KACkB,iBAAR6L,GACV0F,EAAM,IAAItD,IACVj8B,EAAEiqB,SAAQ,SAAU+D,EAAK7mB,GACxBo4B,EAAItG,IAAIqG,EAAMn4B,GAAMm4B,EAAMtR,GAC3B,KACkB,kBAAR6L,EACV0F,EAAM,IAAInoC,MAAM4I,GACE,oBAAR65B,EACV0F,EAAM,IAAIvzB,OAAOhM,EAAEk/B,OAAQl/B,EAAEm/B,OACX,sBAARtF,EACV0F,EAAM,IAAIv/B,EAAEhJ,YAAasoC,EAAMt/B,EAAEy/B,SACf,yBAAR5F,EACV0F,EAAMv/B,EAAE2H,MAAM,GACc,WAAlBkyB,EAAIlyB,OAAO,KAGrB43B,EAAM,IAAIv/B,EAAEhJ,YAAYgJ,IAGrBu/B,EAAK,CACR,IAAK1mB,EAAK5jB,OAAO+mB,sBAAsBhc,GAAIhB,EAAI6Z,EAAKrjB,OAAQwJ,IAC3Di6B,EAAIsG,EAAK1mB,EAAK7Z,GAAI/J,OAAOyqC,yBAAyB1/B,EAAG6Y,EAAK7Z,KAG3D,IAAKA,EAAE,EAAG6Z,EAAK5jB,OAAO0qC,oBAAoB3/B,GAAIhB,EAAI6Z,EAAKrjB,OAAQwJ,IAC1D/J,OAAO6S,eAAexQ,KAAKioC,EAAK//B,EAAEqZ,EAAK7Z,KAAOugC,EAAI//B,KAAOQ,EAAER,IAC/Dy5B,EAAIsG,EAAK//B,EAAGvK,OAAOyqC,yBAAyB1/B,EAAGR,GAEjD,CAEA,OAAO+/B,GAAOv/B,CACf,CAEA,SAAS4/B,EAAqBnqC,GAC1B,OAAIqoC,EAAgBroC,GACTA,EAAKiM,QAAQ,UAAW,IAE5BjM,CACX,CACA,SAASoqC,EAAYj4B,EAAQnS,EAAMqqC,GAC/B,IAAKl4B,EACD,OAAOk4B,EAEX,GAAIhC,EAAgBroC,GAChB,OAAOmS,EAAOg4B,EAAqBnqC,IAWvC,OATuBA,GAAQ,IAC1BmW,MAAM,gBACNuG,OAAO8O,SACPvrB,QAAO,CAACC,EAAKoqC,KACd,OA3OGhD,EADehoC,EA4OGY,IA3OCyR,MAAMC,QAAQtS,KA2OPgrC,KAAWpqC,EAC7BA,EAAIoqC,GAERD,EA/Of,IAA0B/qC,CA+OH,GAChB6S,EAEP,CAIA,SAASo4B,EAAUp4B,EAAQnS,EAAMV,GAC7B,GAAI+oC,EAAgBroC,GAEhB,YADAmS,EAAOg4B,EAAqBnqC,IAASV,GAGzC,MAAM8oC,EAAOpoC,EAAKmW,MAAM,gBAAgBuG,OAAO8O,SAC/C,IAAItrB,EAAMiS,EACV,IAAK,IAAI5I,EAAI,EAAGA,EAAI6+B,EAAKroC,OAAQwJ,IAAK,CAElC,GAAIA,IAAM6+B,EAAKroC,OAAS,EAEpB,YADAG,EAAIkoC,EAAK7+B,IAAMjK,GAIb8oC,EAAK7+B,KAAMrJ,IAAQmnC,EAAkBnnC,EAAIkoC,EAAK7+B,OAEhDrJ,EAAIkoC,EAAK7+B,IAAMg+B,EAAQa,EAAK7+B,EAAI,IAAM,GAAK,CAAC,GAEhDrJ,EAAMA,EAAIkoC,EAAK7+B,GACnB,CACJ,CACA,SAASihC,EAAMr4B,EAAQT,GACfC,MAAMC,QAAQO,IAAWo1B,EAAQ71B,GACjCS,EAAO6X,OAAOlpB,OAAO4Q,GAAM,GAG3B41B,EAASn1B,WACFA,EAAOT,EAEtB,CAIA,SAAS+4B,EAAUt4B,EAAQnS,GACvB,GAAIqoC,EAAgBroC,GAEhB,mBADOmS,EAAOg4B,EAAqBnqC,IAGvC,MAAMooC,EAAOpoC,EAAKmW,MAAM,gBAAgBuG,OAAO8O,SAC/C,IAAItrB,EAAMiS,EACV,IAAK,IAAI5I,EAAI,EAAGA,EAAI6+B,EAAKroC,OAAQwJ,IAAK,CAElC,GAAIA,IAAM6+B,EAAKroC,OAAS,EAAG,CACvByqC,EAAMtqC,EAAKkoC,EAAK7+B,IAChB,KACJ,CAEA,KAAM6+B,EAAK7+B,KAAMrJ,IAAQmnC,EAAkBnnC,EAAIkoC,EAAK7+B,KAChD,MAEJrJ,EAAMA,EAAIkoC,EAAK7+B,GACnB,CACA,MAAMmhC,EAAatC,EAAKl0B,KAAI,CAACyoB,EAAGuI,IACrBkF,EAAYj4B,EAAQi2B,EAAKl2B,MAAM,EAAGgzB,GAAK5wB,KAAK,QAEvD,IAAK,IAAI/K,EAAImhC,EAAW3qC,OAAS,EAAGwJ,GAAK,EAAGA,IACnC4+B,EAAiBuC,EAAWnhC,MAGvB,IAANA,EAIJihC,EAAME,EAAWnhC,EAAI,GAAI6+B,EAAK7+B,EAAI,IAH9BihC,EAAMr4B,EAAQi2B,EAAK,IAK/B,CAIA,SAASuC,EAAOC,GACZ,OAAOprC,OAAO4oC,KAAKwC,EACvB,CAGA,SAASC,EAAeC,EAAQC,GAC5B,MAAMC,GAAK,UACX,OAAe,OAAPA,QAAsB,IAAPA,OAAgB,EAASA,EAAGC,SAASH,MAAY,QAAOA,EAAQC,EAC3F,CACA,SAAS5oC,EAAK+oC,IACV,QAAO,mBAAmBA,IAC9B,CAUA,SAASC,EAAyBC,EAAcC,EAAcC,GAC1D,GAAI35B,MAAMC,QAAQw5B,GAAe,CAC7B,MAAMG,EAAS,IAAIH,GAEblG,EAAMqG,EAAO15B,WAAU25B,GAAKrC,EAAQqC,EAAGH,KAE7C,OADAnG,GAAO,EAAIqG,EAAOvhB,OAAOkb,EAAK,GAAKqG,EAAOnrC,KAAKirC,GACxCE,CACX,CACA,OAAOpC,EAAQiC,EAAcC,GAAgBC,EAAiBD,CAClE,CAmBA,SAASI,EAAc3rC,EAAO4rC,EAAK,GAC/B,IAAIC,EAAQ,KACRC,EAAW,GACf,OAAO,YAAaprC,GAYhB,OAVImrC,GACApsB,OAAOuQ,aAAa6b,GAExBA,EAAQpsB,OAAOyQ,YAAW,KAGtB,MAAMvhB,EAAS3O,KAASU,GACxBorC,EAASpX,SAAQqX,GAAKA,EAAEp9B,KACxBm9B,EAAW,EAAE,GACdF,GACI,IAAIxhB,SAAQC,GAAWyhB,EAASxrC,KAAK+pB,IAChD,CACJ,CACA,SAAS2hB,EAAoBxsC,EAAOo/B,GAChC,OAAK4I,EAAS5I,IAGVA,EAAU79B,OAjblB,SAAkBvB,GACd,MAAMqvB,EAAIlX,WAAWnY,GACrB,OAAOyB,MAAM4tB,GAAKrvB,EAAQqvB,CAC9B,CA+aeod,CAASzsC,GAHTA,CAMf,CACA,SAAS0sC,EAAWltB,EAAImtB,GACpB,IAAIC,EACJ,OAAO/sC,kBAA4BqB,GAC/B,MAAM2rC,EAAUrtB,KAAMte,GACtB0rC,EAAYC,EACZ,MAAM19B,QAAe09B,EACrB,OAAIA,IAAYD,IAGhBA,OAAYp9B,EACZm9B,EAAOx9B,EAAQjO,IAHJiO,CAKf,CACJ,CACA,SAAS29B,GAAa,IAAEjjB,EAAG,IAAEqa,IACzB,MAAM6I,GAAU,QAAIxC,EAAM1gB,MAiB1B,OAhBA,QAAMA,GAAKmjB,IACHnD,EAAQmD,EAAUD,EAAQ/sC,SAG9B+sC,EAAQ/sC,MAAQuqC,EAAMyC,GAAS,GAChC,CACCC,MAAM,KAEV,QAAMF,GAASC,IACPnD,EAAQmD,EAAUnjB,MAGtBqa,EAAIqG,EAAMyC,GAAU,GACrB,CACCC,MAAM,IAEHF,CACX,CAOA,SAASG,EAAUltC,GACf,OAAO,SAAS,IAPpB,SAAiBA,GACb,OAAI8nC,EAAW9nC,GACJA,KAEJ,QAAMA,EACjB,CAE0BmtC,CAAQntC,IAClC,CAGA,MAAMotC,EAAoB,CAACjE,EAAKvgC,EAASykC,IAChCzkC,EAAQ0kC,MAAM3hB,QAGA,kBAARwd,GAAqBA,EAGzB,CACHxd,QAAS,KAAQ,IAAI5rB,EAAI4uB,EAAI,OAA+C,QAAvCA,GAAM5uB,EAAK6I,EAAQ0kC,OAAO3hB,eAA4B,IAAPgD,OAAgB,EAASA,EAAGpsB,KAAKxC,EAAIstC,IAAY,GAH9HzkC,EAAQ0kC,MAAM3hB,QAAQ0hB,KAHtBzkC,EAAQ0kC,MAAM3hB,QAa7B,SAAS4hB,EAAcrX,GACnB,GAAIsX,EAAgBtX,GAChB,OAAOA,EAAGuX,MAGlB,CAKA,SAASD,EAAgBtX,GACrB,MAAO,WAAYA,CACvB,CAEA,SAASwX,EAAoB1tC,GACzB,IAAKypC,EAAQzpC,GACT,OAAOA,EAEX,MAAM6N,EAAQ7N,EAAMmkB,OAGpB,GAAIykB,EAAe/6B,EAAM+d,OAAS4hB,EAAgB3/B,GAC9C,OAAO0/B,EAAc1/B,GAEzB,GAAmB,SAAfA,EAAM+d,MAAmB/d,EAAM8/B,MAAO,CACtC,MAAMA,EAAQt7B,MAAMwV,KAAKha,EAAM8/B,OAC/B,OAAO9/B,EAAMw7B,SAAWsE,EAAQA,EAAM,EAC1C,CACA,GAzcO3E,EADkB9S,EA0cDroB,IAzcKqoB,EAAGmT,SA0c5B,OAAOh3B,MAAMwV,KAAKha,EAAM9I,SACnBqY,QAAOwwB,GAAOA,EAAIC,WAAaD,EAAI9lB,WACnClT,IAAI24B,GA7cjB,IAA6BrX,EAidzB,GAAI8S,EAAen7B,GAAQ,CACvB,MAAMigC,EAAiBz7B,MAAMwV,KAAKha,EAAM9I,SAASmZ,MAAK0vB,GAAOA,EAAIC,WACjE,OAAOC,EAAiBP,EAAcO,GAAkBjgC,EAAM7N,KAClE,CACA,OAAO6N,EAAM7N,KACjB,CAKA,SAAS+tC,EAAeC,GACpB,MAAMptC,EAAM,CAAC,EAOb,OANAV,OAAOymB,eAAe/lB,EAAK,kBAAmB,CAC1CZ,OAAO,EACPwnB,UAAU,EACVF,YAAY,EACZC,cAAc,IAEbymB,EAIDhG,EAASgG,IAAUA,EAAMC,gBAClBD,EAEPhG,EAASgG,GACF9tC,OAAO4oC,KAAKkF,GAAOrtC,QAAO,CAACutC,EAAMrtC,KACpC,MAAMstC,EAuBlB,SAAyBA,GACrB,IAAe,IAAXA,EACA,MAAO,GAEX,GAAI97B,MAAMC,QAAQ67B,GACd,OAAOA,EAEX,GAAInG,EAASmG,GACT,OAAOA,EAEX,MAAO,CAACA,EACZ,CAlC2BC,CAAgBJ,EAAMntC,IAIrC,OAHoB,IAAhBmtC,EAAMntC,KACNqtC,EAAKrtC,GAAQwtC,EAAYF,IAEtBD,CAAI,GACZttC,GAGc,kBAAVotC,EACAptC,EAEJotC,EAAMn3B,MAAM,KAAKlW,QAAO,CAACutC,EAAMI,KAClC,MAAMC,EAAaC,EAAUF,GAC7B,OAAKC,EAAWhuC,MAGhB2tC,EAAKK,EAAWhuC,MAAQ8tC,EAAYE,EAAWJ,QACxCD,GAHIA,CAGA,GACZttC,GA1BQA,CA2Bf,CAgBA,SAASytC,EAAYI,GACjB,MAAMC,EAAqB1uC,GAEF,kBAAVA,GAAmC,MAAbA,EAAM,GA4B/C,SAAuBA,GACnB,MAAM2uC,EAAWC,GACD9D,EAAY8D,EAAY5uC,IAAU4uC,EAAW5uC,GAI7D,OADA2uC,EAAQnG,aAAexoC,EAChB2uC,CACX,CAlCmBE,CAAc7uC,EAAM4S,MAAM,IAE9B5S,EAEX,OAAIqS,MAAMC,QAAQm8B,GACPA,EAAS75B,IAAI85B,GAGpBD,aAAoBx3B,OACb,CAACw3B,GAELvuC,OAAO4oC,KAAK2F,GAAU9tC,QAAO,CAACutC,EAAM97B,KACvC87B,EAAK97B,GAAOs8B,EAAkBD,EAASr8B,IAChC87B,IACR,CAAC,EACR,CAIA,MAAMM,EAAaF,IACf,IAAIH,EAAS,GACb,MAAM5tC,EAAO+tC,EAAKz3B,MAAM,KAAK,GAI7B,OAHIy3B,EAAK31B,SAAS,OACdw1B,EAASG,EAAKz3B,MAAM,KAAKjE,MAAM,GAAGoC,KAAK,KAAK6B,MAAM,MAE/C,CAAEtW,OAAM4tC,SAAQ,EA2B3B,IAAIW,EAAgB5uC,OAAOC,OAAO,CAAC,EARZ,CACnB4uC,gBAAiB,EAAGC,WAAY,GAAGA,kBACnCC,OAAO,EACPC,gBAAgB,EAChBC,kBAAkB,EAClBC,iBAAiB,EACjBC,uBAAuB,IAG3B,MAAMC,EAAY,IAAMR,EASxBjvC,eAAeI,EAASD,EAAOguC,EAAOjpC,EAAU,CAAC,GAC7C,MAAMwqC,EAAyB,OAAZxqC,QAAgC,IAAZA,OAAqB,EAASA,EAAQkqC,MACvED,EAAQ,CACVzuC,MAAmB,OAAZwE,QAAgC,IAAZA,OAAqB,EAASA,EAAQxE,OAAS,UAC1EytC,QACAwB,MAAmB,OAAZzqC,QAAgC,IAAZA,OAAqB,EAASA,EAAQyqC,MACjEP,MAAsB,OAAfM,QAAsC,IAAfA,GAAwBA,EACtDE,UAAuB,OAAZ1qC,QAAgC,IAAZA,OAAqB,EAASA,EAAQjF,SAAW,CAAC,GAE/EqP,QAUVtP,eAAyBmvC,EAAOhvC,GAC5B,GAAIyoC,EAAcuG,EAAMhB,QAAUrF,EAAeqG,EAAMhB,OACnD,OAkGRnuC,eAA4CG,EAAO0vC,GAC/C,MAAMC,EAAclH,EAAciH,GAAUA,EAASE,EAAiBF,GAChEvgC,QAAewgC,EAAYjH,MAAM1oC,GACjC6vC,EAAW,GACjB,IAAK,MAAMvvC,KAAS6O,EAAO/O,OACnBE,EAAMF,OAAOK,QACbovC,EAAS/uC,QAAQR,EAAMF,QAG/B,MAAO,CACHA,OAAQyvC,EAEhB,CA9GeC,CAA6B9vC,EAAOgvC,EAAMhB,OAGrD,GAAIlG,EAAWkH,EAAMhB,QAAU37B,MAAMC,QAAQ08B,EAAMhB,OAAQ,CACvD,MAAM+B,EAAM,CACRf,MAAOA,EAAMQ,OAASR,EAAMzuC,KAC5BA,KAAMyuC,EAAMzuC,KACZivC,MAAOR,EAAMQ,MACbQ,KAAMhB,EAAMS,SACZzvC,SAGEiwC,EAAW59B,MAAMC,QAAQ08B,EAAMhB,OAASgB,EAAMhB,MAAQ,CAACgB,EAAMhB,OAC7DvtC,EAASwvC,EAASxvC,OAClBL,EAAS,GACf,IAAK,IAAI6J,EAAI,EAAGA,EAAIxJ,EAAQwJ,IAAK,CAC7B,MAAMqkC,EAAO2B,EAAShmC,GAChBkF,QAAem/B,EAAKtuC,EAAO+vC,GAEjC,GADkC,kBAAX5gC,GAAuBA,EAE1C,SAEJ,MAAMy8B,EAA4B,kBAAXz8B,EAAsBA,EAAS+gC,GAAoBH,GAE1E,GADA3vC,EAAOU,KAAK8qC,GACRoD,EAAMC,MACN,MAAO,CACH7uC,SAGZ,CACA,MAAO,CACHA,SAER,CACA,MAAM+vC,EAAoBjwC,OAAOC,OAAOD,OAAOC,OAAO,CAAC,EAAG6uC,GAAQ,CAAEhB,MAAOD,EAAeiB,EAAMhB,SAC1F5tC,EAAS,GACTgwC,EAAYlwC,OAAO4oC,KAAKqH,EAAkBnC,OAC1CvtC,EAAS2vC,EAAU3vC,OACzB,IAAK,IAAIwJ,EAAI,EAAGA,EAAIxJ,EAAQwJ,IAAK,CAC7B,MAAMqkC,EAAO8B,EAAUnmC,GACjBkF,QAAekhC,EAAMF,EAAmBnwC,EAAO,CACjDO,KAAM+tC,EACNH,OAAQgC,EAAkBnC,MAAMM,KAEpC,GAAIn/B,EAAO7O,QACPF,EAAOU,KAAKqO,EAAO7O,OACf0uC,EAAMC,OACN,MAAO,CACH7uC,SAIhB,CACA,MAAO,CACHA,SAER,CApEyBkwC,CAAUtB,EAAOhvC,GAChCI,EAAS+O,EAAO/O,OACtB,MAAO,CACHA,SACAmwC,OAAQnwC,EAAOK,OAEvB,CAkEA,SAASmvC,EAAiBnwC,GAiCtB,MAhCe,CACXG,OAAQ,gBACRC,YAAYC,GACR,IAAIC,EACJ,IAEI,MAAO,CACHqG,aAFiB3G,EAAUQ,SAASH,EAAQ,CAAEH,YAAY,IAG1DS,OAAQ,GAqBhB,CAlBA,MAAOC,GAGH,IAlBhB,SAAoBA,GAChB,QAASA,GAAoB,oBAAbA,EAAIE,IACxB,CAgBqBiwC,CAAWnwC,GACZ,MAAMA,EAEV,KAA2B,QAApBN,EAAKM,EAAIG,aAA0B,IAAPT,OAAgB,EAASA,EAAGU,SAAWJ,EAAID,OAAOK,OACjF,MAAO,CAAEL,OAAQ,CAAC,CAAEM,KAAML,EAAIK,KAAMN,OAAQC,EAAID,UAEpD,MAAMA,EAASC,EAAIG,MAAMG,QAAO,CAACC,EAAKC,KAClC,MAAMH,EAAOG,EAAKH,MAAQ,GAK1B,OAJKE,EAAIF,KACLE,EAAIF,GAAQ,CAAEN,OAAQ,GAAIM,SAE9BE,EAAIF,GAAMN,OAAOU,QAAQD,EAAKT,QACvBQ,CAAG,GACX,CAAC,GACJ,MAAO,CAAER,OAAQF,OAAOJ,OAAOM,GACnC,CACJ,EAGR,CAoBAP,eAAewwC,EAAMrB,EAAOhvC,EAAOsuC,GAC/B,MAAMhiB,GA5wBW8P,EA4wBakS,EAAK/tC,KA3wB5B2nC,EAAM9L,IADjB,IAAqBA,EA6wBjB,IAAK9P,EACD,MAAM,IAAIxpB,MAAM,sBAAsBwrC,EAAK/tC,iBAE/C,MAAM4tC,EA6BV,SAA0BA,EAAQS,GAC9B,MAAM6B,EAAazwC,GACXuoC,EAAUvoC,GACHA,EAAM4uC,GAEV5uC,EAEX,GAAIqS,MAAMC,QAAQ67B,GACd,OAAOA,EAAOv5B,IAAI67B,GAEtB,OAAOvwC,OAAO4oC,KAAKqF,GAAQxtC,QAAO,CAACC,EAAK8vC,KACpC9vC,EAAI8vC,GAASD,EAAUtC,EAAOuC,IACvB9vC,IACR,CAAC,EACR,CA3CmB+vC,CAAiBrC,EAAKH,OAAQa,EAAMS,UAC7CM,EAAM,CACRf,MAAOA,EAAMQ,OAASR,EAAMzuC,KAC5BA,KAAMyuC,EAAMzuC,KACZivC,MAAOR,EAAMQ,MACbxvC,QACAgwC,KAAMhB,EAAMS,SACZnB,KAAMpuC,OAAOC,OAAOD,OAAOC,OAAO,CAAC,EAAGmuC,GAAO,CAAEH,YAE7Ch/B,QAAemd,EAAUtsB,EAAOmuC,EAAQ4B,GAC9C,MAAsB,kBAAX5gC,EACA,CACH7O,MAAO6O,GAGR,CACH7O,MAAO6O,OAASK,EAAY0gC,GAAoBH,GAExD,CAIA,SAASG,GAAoBU,GACzB,MAAMhF,EAAU0D,IAAYP,gBAC5B,OAAKnD,EAGEA,EAAQgF,GAFJ,kBAGf,CAuCA/wC,eAAegxC,GAAqBnB,EAAQ5vC,EAAQJ,GAChD,MACMoxC,EADQzF,EAAOqE,GACK96B,KAAI/U,MAAOa,IACjC,IAAIX,EAAI4uB,EAAIoiB,EACZ,MAAMC,EAA4E,QAAjEjxC,EAAc,OAATL,QAA0B,IAATA,OAAkB,EAASA,EAAKuxC,aAA0B,IAAPlxC,OAAgB,EAASA,EAAGW,GAChHwwC,QAAoBjxC,EAAS6qC,EAAYhrC,EAAQY,GAAOgvC,EAAOhvC,GAAO,CACxEH,MAAmB,OAAZywC,QAAgC,IAAZA,OAAqB,EAASA,EAAQzwC,OAASG,EAC1E8uC,MAAmB,OAAZwB,QAAgC,IAAZA,OAAqB,EAASA,EAAQxB,MACjE1vC,OAAQA,EACRmvC,MAAiI,QAAzH8B,EAA0E,QAApEpiB,EAAc,OAATjvB,QAA0B,IAATA,OAAkB,EAASA,EAAKyxC,gBAA6B,IAAPxiB,OAAgB,EAASA,EAAGjuB,UAA0B,IAAPqwC,GAAgBA,IAE7J,OAAO7wC,OAAOC,OAAOD,OAAOC,OAAO,CAAC,EAAG+wC,GAAc,CAAExwC,QAAO,IAElE,IAAI0wC,GAAa,EACjB,MAAMC,QAA0BzmB,QAAQoW,IAAI8P,GACtCQ,EAAU,CAAC,EACXlxC,EAAS,CAAC,EAChB,IAAK,MAAM+O,KAAUkiC,EACjBC,EAAQniC,EAAOzO,MAAQ,CACnB6vC,MAAOphC,EAAOohC,MACdnwC,OAAQ+O,EAAO/O,QAEd+O,EAAOohC,QACRa,GAAa,EACbhxC,EAAO+O,EAAOzO,MAAQyO,EAAO/O,OAAO,IAG5C,MAAO,CACHmwC,MAAOa,EACPE,UACAlxC,SAER,CAEA,IAAImxC,GAAa,EACjB,SAASC,GAAc9wC,EAAMouB,GACzB,MAAM,MAAE9uB,EAAK,aAAEyxC,EAAY,gBAAEC,GAAoBC,GAAejxC,EAAMouB,EAAK8iB,WAAY9iB,EAAKkhB,OACtF,aAAE6B,EAAY,OAAEzxC,EAAM,UAAE0xC,GAsHlC,SAAyBpxC,EAAMsvC,GAC3B,SAAS+B,EAAgBlC,GACrB,OAAKA,EAGEx9B,MAAMC,QAAQu9B,GAAYA,EAAW,CAACA,GAFlC,EAGf,CACA,IAAKG,EAAM,CACP,MAAM5vC,GAAS,QAAI,IACnB,MAAO,CACHA,SACAyxC,cAAc,SAAS,IAAMzxC,EAAOJ,MAAM,KAC1C8xC,UAAYjC,IACRzvC,EAAOJ,MAAQ+xC,EAAgBlC,EAAS,EAGpD,CACA,MAAMzvC,GAAS,SAAS,IAAM4vC,EAAKgC,SAAShyC,OAAM,QAAMU,KAAU,KAClE,MAAO,CACHN,SACAyxC,cAAc,SAAS,IAAMzxC,EAAOJ,MAAM,KAC1C8xC,UAAYjC,IACRG,EAAKiC,kBAAiB,QAAMvxC,GAAOqxC,EAAgBlC,GAAU,EAGzE,CA/IgDqC,CAAgBxxC,EAAMouB,EAAKkhB,MACjEmC,EA+FV,SAAuBrG,EAAc2F,EAAcrxC,GAC/C,MAAM+xC,GAAO,QAAS,CAClBC,SAAS,EACTvF,SAAS,EACT0D,OAAO,EACP8B,aAAa,QAAMjyC,GAAQK,OAC3BgxC,cAAc,SAAS,KAAM,QAAMA,KACnCa,OAAO,SAAS,KACJzI,GAAQ,QAAMiC,IAAe,QAAM2F,QASnD,OANA,QAAMrxC,GAAQJ,IACVmyC,EAAK5B,OAASvwC,EAAMS,MAAM,GAC3B,CACCw9B,WAAW,EACXsU,MAAO,SAEJJ,CACX,CAjHiBK,CAAcxyC,EAAOyxC,EAAcrxC,GAiBhD,MAAO,CACHg8B,GAjBOmV,IAAc/vC,OAAOixC,iBAAmB,IAAMlB,GAkBrD7wC,OACAV,QACAyxC,eACAU,OACA/xC,SACAyxC,eACAa,SAvBJ,SAAkBC,GACd,IAAI5yC,EACA,UAAW4yC,IACX3yC,EAAMA,MAAQ2yC,EAAM3yC,OAEpB,WAAY2yC,GACZb,EAAUa,EAAMvyC,QAEhB,YAAauyC,IACbR,EAAKC,QAAmC,QAAxBryC,EAAK4yC,EAAMP,eAA4B,IAAPryC,EAAgBA,EAAKoyC,EAAKC,SAE1E,iBAAkBO,GAClBjB,EAAgBiB,EAAMlB,aAE9B,EAWJ,CAIA,SAASE,GAAejxC,EAAMkxC,EAAY5B,GACtC,MAAM4C,GAAW,SAAI,QAAMhB,IAC3B,SAASiB,IACL,OAAK7C,EAGElF,EAAYkF,EAAKmC,KAAKnyC,MAAM8yC,eAAe,QAAMpyC,IAAO,QAAMkyC,KAF1D,QAAMA,EAGrB,CACA,SAASlB,EAAgB1xC,GAChBgwC,EAILA,EAAK+C,mBAAkB,QAAMryC,GAAOV,GAAO,GAHvC4yC,EAAS5yC,MAAQA,CAIzB,CACA,MAAMyxC,GAAe,QAASoB,GAE9B,IAAK7C,EAAM,CAEP,MAAO,CACHhwC,OAFU,QAAI6yC,KAGdpB,eACAC,kBAER,CAKA,MAAM5F,EAuBV,SAA2B8F,EAAY5B,EAAMyB,EAAc/wC,GACvD,IAAI,QAAMkxC,GACN,OAAO,QAAMA,GAEjB,QAAmBpiC,IAAfoiC,EACA,OAAOA,EAEX,OAAO9G,EAAYkF,EAAKlwC,QAAQ,QAAMY,IAAO,QAAM+wC,GACvD,CA/ByBuB,CAAkBpB,EAAY5B,EAAMyB,EAAc/wC,GACvEsvC,EAAK+C,mBAAkB,QAAMryC,GAAOorC,GAAc,GAUlD,MAAO,CACH9rC,OATU,QAAS,CACnB6pB,MACI,OAAOihB,EAAYkF,EAAKlwC,QAAQ,QAAMY,GAC1C,EACAwjC,IAAI+H,GACA+D,EAAKiD,eAAc,QAAMvyC,GAAOurC,EACpC,IAIAwF,eACAC,kBAER,CAkFA,IAAIwB,IA3pBJ,SAAkBC,EAAMC,GACpB,IAAIC,EACAC,CAWR,CA+oByBC,EAAS,KAC9B7iB,YAAW7wB,gBACD,UACE,OAARqzC,SAAwB,IAARA,IAA0BA,GAAIM,mBAAmBC,IACzD,OAARP,SAAwB,IAARA,IAA0BA,GAAIQ,kBAAkBD,GAAa,GAC9E,IAAI,GACR,KAmCH,MAAMA,GAAe,yBAkTrB,SAASE,GAASjzC,EAAMstC,EAAOtuC,GAC3B,OAAIkpC,EAAwB,OAATlpC,QAA0B,IAATA,OAAkB,EAASA,EAAKksB,MA8QxE,SAA0BrrB,EAAMytC,EAAOtuC,GACnC,MAAMswC,GAAkB,OAATtwC,QAA0B,IAATA,OAAkB,EAASA,EAAKk0C,iBAA+CpkC,EAAjC+7B,EAAepD,GACvF4D,EAAwB,OAATrsC,QAA0B,IAATA,OAAkB,EAASA,EAAKqsC,aAChEC,EAA0B,OAATtsC,QAA0B,IAATA,OAAkB,EAASA,EAAKssC,eACxE,SAAS6H,EAAiB7E,GACtB,MAAM8E,EAAe9E,EAAM8E,aACrBC,GAAU,SAAS,KACrB,MAAMjI,GAAe,QAAMkD,EAAMhvC,OAC3Bg0C,GAAa,QAAMjI,GACzB,OAAO15B,MAAMC,QAAQw5B,GACfA,EAAav5B,WAAU25B,GAAKrC,EAAQqC,EAAG8H,MAAgB,EACvDnK,EAAQmK,EAAYlI,EAAa,IAE3C,SAASmI,EAAqBnqC,EAAGoqC,GAAiB,GAC9C,IAAIn0C,EACJ,GAAIg0C,EAAQ/zC,SAAqE,QAAzDD,EAAW,OAAN+J,QAAoB,IAANA,OAAe,EAASA,EAAEqa,cAA2B,IAAPpkB,OAAgB,EAASA,EAAGg0C,SAIjH,YAHIG,GACAlF,EAAM/uC,YAId,IAAI+sC,EAAWU,EAAoB5jC,GAE9BkmC,IACDhD,EAAWnB,GAAyB,QAAMmD,EAAMhvC,QAAQ,QAAM+rC,IAAe,QAAMC,KAEvF8H,EAAa9G,EAAUkH,EAC3B,CACA,OAAOh0C,OAAOC,OAAOD,OAAOC,OAAO,CAAC,EAAG6uC,GAAQ,CAAE+E,UAC7ChI,eACAC,iBAAgB8H,aAAcG,GACtC,CACA,OAAOJ,EAAiBM,GAAU5zC,EAAMytC,EAAOtuC,GACnD,CA9Se00C,CAAiB1zC,EAAMstC,EAAOtuC,GAElCy0C,GAAUzzC,EAAMstC,EAAOtuC,EAClC,CACA,SAASy0C,GAAUzzC,EAAMstC,EAAOtuC,GAC5B,MAAQ+xC,aAAcG,EAAU,gBAAEyC,EAAe,MAAEpF,EAAK,KAAErjB,EAAI,aAAEmgB,EAAY,MAAEyD,EAAK,sBAAE8E,EAAqB,eAAEtI,EAAc,WAAEuI,EAAU,mBAAEC,EAAkB,cAAEC,EAAa,WAAEC,EAAY1E,KAAM2E,GAoOjM,SAA0Bj1C,GACtB,IAAIK,EACJ,MAAM60C,EAAW,KAAM,CACnBnD,kBAAcjiC,EACd6kC,iBAAiB,EACjBpF,OAAO,EACPO,WAAOhgC,EACP8kC,uBAAuB,EACvBE,wBAAoBhlC,EACpBilC,cAAe,aACfC,YAAY,EACZH,YAAY,IAEVM,EAAwF,QAAtE90C,EAAc,OAATL,QAA0B,IAATA,OAAkB,EAASA,EAAKg1C,kBAA+B,IAAP30C,GAAgBA,EAChH0xC,EAAeoD,KAAoB,iBAAmBn1C,GAAQ,CAAC,IAC/Do1C,IAAqB,WAAgC,OAATp1C,QAA0B,IAATA,OAAkB,EAASA,EAAK+0C,gBAAkB,cACtG,OAAT/0C,QAA0B,IAATA,OAAkB,EAASA,EAAK+xC,aACvD,IAAK/xC,EACD,OAAOQ,OAAOC,OAAOD,OAAOC,OAAO,CAAC,EAAGy0C,KAAa,CAAEnD,iBAG1D,MAAM1F,EAAe,cAAersC,EAAOA,EAAKq1C,UAAYr1C,EAAKqsC,aAC3DwI,EAAa,eAAgB70C,GAAQA,EAAKk0C,WAAal0C,EAAK60C,WAClE,OAAOr0C,OAAOC,OAAOD,OAAOC,OAAOD,OAAOC,OAAO,CAAC,EAAGy0C,KAAcl1C,GAAQ,CAAC,GAAK,CAAE+xC,eAAc8C,WAA2B,OAAfA,QAAsC,IAAfA,GAAwBA,EAAmBxI,gBACnL,CA5PkNiJ,CAAiBt1C,GACzNu1C,EAAeV,EAAahJ,EAAepD,QAAkB34B,EAC7DwgC,EAAO2E,GAAeM,EACtB10C,EAAO2sC,EAAUxsC,GAEvB,IAAIw0C,GAAmB,EACvB,MAAM,GAAE9Y,EAAE,MAAEp8B,EAAK,aAAEyxC,EAAY,KAAEU,EAAI,SAAEO,EAAQ,OAAEtyC,EAAM,aAAEyxC,GAAiBL,GAAcjxC,EAAM,CAC1FqxC,aACA5B,SAEA0E,GAgSR,UAAmB,KAAEhtB,EAAI,MAAE1nB,EAAK,aAAE8zC,IAC9B,MAAMpI,GAAK,UAEX,IAAKA,EAID,cAEJ,MAAMyJ,EAAWztB,GAAQ,aACnB0tB,EAAW,UAAUD,IAE3B,KAAMA,KAAYzJ,EAAGtgB,OACjB,QAEJ,QAAMprB,GAAOgtC,IACLnD,EAAQmD,EAAU8H,GAAqBpJ,EAAIyJ,KAG/CzJ,EAAG2J,KAAKD,EAAUpI,EAAS,KAE/B,SAAM,IAAM8H,GAAqBpJ,EAAIyJ,KAAWG,IAC5C,GAAIA,IAAcjN,QAA6B74B,IAAhBxP,EAAMA,MACjC,OAEJ,MAAMgtC,EAAWsI,IAAcjN,OAAY74B,EAAY8lC,EACnDzL,EAAQmD,EAAUR,EAAoBxsC,EAAMA,MAAO0rC,EAAGtgB,MAAMmqB,kBAGhEzB,EAAa9G,EAAS,GAE9B,CA9TQwI,CAAU,CAAEx1C,QAAO0nB,KAAM+sB,EAAeX,iBAK5C,MAGM2B,GAAkB,SAAS,KAC7B,IAAIC,GAAa,QAAM1H,GACvB,MAAM0B,GAAS,QAAe,OAATM,QAA0B,IAATA,OAAkB,EAASA,EAAKN,QAItE,OAHIA,GAAW/G,EAAe+G,IAAYjH,EAAciH,KACpDgG,EAyOZ,SAA+BhG,EAAQiG,GAEnC,IAAKjG,EACD,OAGJ,OAAOA,EAAOiG,EAClB,CAhPyBC,CAAsBlG,GAAQ,QAAMnvC,KAAUm1C,GAE3D/M,EAAe+M,IACfjN,EAAciN,IACd5N,EAAW4N,IACXrjC,MAAMC,QAAQojC,GACPA,EAEJ3H,EAAe2H,EAAW,IAErC71C,eAAeg2C,EAAqBC,GAChC,IAAI/1C,EAAI4uB,EACR,OAAa,OAATqhB,QAA0B,IAATA,OAAkB,EAASA,EAAK+F,gBACwB,QAAjEh2C,SAAYiwC,EAAK+F,eAAeD,IAAOxE,SAAQ,QAAM/wC,WAA2B,IAAPR,EAAgBA,EAAK,CAAEwwC,OAAO,EAAMnwC,OAAQ,IAE1HH,EAASD,EAAMA,MAAOy1C,EAAgBz1C,MAAO,CAChDO,MAAM,QAAMA,GACZivC,OAAO,QAAMA,GACb1vC,OAA2E,QAAlE6uB,EAAc,OAATqhB,QAA0B,IAATA,OAAkB,EAASA,EAAKlwC,cAA2B,IAAP6uB,EAAgBA,EAAK,CAAC,EACzGsgB,SAER,CACA,MAAM+G,EAA4BtJ,GAAW7sC,UACzCsyC,EAAKtF,SAAU,EACfsF,EAAKE,WAAY,EACVwD,EAAqB,qBAC7B1mC,IACK+lC,IACA/lC,EAAOohC,OAAQ,EACfphC,EAAO/O,OAAS,IAEpBsyC,EAAS,CAAEtyC,OAAQ+O,EAAO/O,SAC1B+xC,EAAKtF,SAAU,EACR19B,KAEL8mC,EAAyBvJ,GAAW7sC,SAC/Bg2C,EAAqB,YAC7B1mC,IACK+lC,IACA/lC,EAAOohC,OAAQ,GAEnB4B,EAAK5B,MAAQphC,EAAOohC,MACbphC,KASX,SAAS2kC,EAAahqC,EAAGoqC,GAAiB,GACtC,MAAMlH,EAAWU,EAAoB5jC,GACrC9J,EAAMA,MAAQgtC,GACTsH,GAAyBJ,GAC1B8B,GAER,CAeA,IAAIE,GAbJ,SAAU,KACN,GAAI7B,EACA,OAAO2B,IAINhG,GAASA,EAAK+F,gBACfE,GACJ,IAMJ,IAAIE,EAAmB5L,EAAMvqC,EAAMA,OACnC,SAASo2C,IACLF,GAAe,QAAMl2C,GAAO,CAACi5B,EAAKod,KAC9B,GAAIxM,EAAQ5Q,EAAKod,IAAWxM,EAAQ5Q,EAAKkd,GACrC,QAEe7B,EAAwB0B,EAA4BC,KAEvEE,EAAmB5L,EAAMtR,EAAI,GAC9B,CACCgU,MAAM,GAEd,CAEA,SAASqJ,GAAW3D,GAChB,IAAI5yC,EACa,OAAjBm2C,QAA0C,IAAjBA,GAAmCA,IAC5D,MAAMlJ,EAAW2F,GAAS,UAAWA,EAAQA,EAAM3yC,MAAQyxC,EAAazxC,MACxE0yC,EAAS,CACL1yC,MAAOuqC,EAAMyC,GACbyE,aAAclH,EAAMyC,GACpBoF,QAAgF,QAAtEryC,EAAe,OAAV4yC,QAA4B,IAAVA,OAAmB,EAASA,EAAMP,eAA4B,IAAPryC,GAAgBA,EACxGK,QAAmB,OAAVuyC,QAA4B,IAAVA,OAAmB,EAASA,EAAMvyC,SAAW,KAE5E+xC,EAAKtF,SAAU,EACfsF,EAAKE,WAAY,EACjB4D,KAEA,SAAS,KACLG,GAAY,GAEpB,CAlBAA,IAyBA,MAAMpH,GAAQ,CACV5S,KACA77B,OACAivC,QACAxvC,QACAmyC,OACA/xC,SACAyxC,eACAjmB,OACAmgB,eACAC,iBACAiD,QACAuF,qBACA8B,cACAC,YAAa,IAAMD,KACnBr2C,SAlFJ,SAAoBP,GAChB,MAAgE,YAAlD,OAATA,QAA0B,IAATA,OAAkB,EAASA,EAAKo2C,MAC3CG,IAEJD,GACX,EA8EIlC,eACA0C,WAvIe,KACfrE,EAAKC,SAAU,CAAI,EAuInBM,WACA+D,WA7DJ,SAAoBC,GAChBvE,EAAKC,QAAUsE,CACnB,EA4DI5E,UAvBJ,SAAmB1xC,GACfsyC,EAAS,CAAEtyC,OAAQiS,MAAMC,QAAQlS,GAAUA,EAAS,CAACA,IACzD,EAsBIu2C,SA3BJ,SAAkB3J,GACdhtC,EAAMA,MAAQgtC,CAClB,GAgDA,IArBA,QAAQ5E,EAAiB4G,KACrB,QAAMhB,IAAkC,oBAAjB,QAAMA,KAC7B,QAAMA,GAAO,CAAChuC,EAAOuhC,KACbsI,EAAQ7pC,EAAOuhC,KAGnB4Q,EAAKE,UAAY2D,IAA8BC,IAAwB,GACxE,CACChJ,MAAM,KAaT+C,EACD,OAAOhB,GAGXgB,EAAK4G,SAAS5H,KACd,SAAgB,KACZkG,GAAmB,EACnBlF,EAAK6G,WAAW7H,GAAM,IAG1B,MAAM8H,IAAe,SAAS,KAC1B,MAAMC,EAAWtB,EAAgBz1C,MAEjC,OAAK+2C,GACDjP,EAAWiP,IACXpO,EAAeoO,IACftO,EAAcsO,IACd1kC,MAAMC,QAAQykC,GACP,CAAC,EAEL72C,OAAO4oC,KAAKiO,GAAUp2C,QAAO,CAACC,EAAK0tC,KACtC,MAAM0I,GAx9BO7I,EAw9BgB4I,EAASzI,GAv9B1Cj8B,MAAMC,QAAQ67B,GACPA,EAAO/wB,OAAOmrB,GAElB8C,EAAO8C,GACT/wB,QAAOhL,GAAOm2B,EAAU4F,EAAO/7B,MAC/BwC,KAAIxC,GAAO+7B,EAAO/7B,MAm9BVwC,KAAKqiC,GAAQA,EAAIzO,eACjB7nC,QAAO,CAACu2C,EAAQC,KACjB,MAAMC,EAAWtM,EAAYkF,EAAKlwC,OAAQq3C,IAAYnH,EAAKlwC,OAAOq3C,GAIlE,YAHiB3nC,IAAb4nC,IACAF,EAAOC,GAAWC,GAEfF,CAAM,GACd,CAAC,GAh+BhB,IAAyB/I,EAk+Bb,OADAjuC,OAAOC,OAAOS,EAAKo2C,GACZp2C,CAAG,GACX,CAAC,EAAE,IAaV,OAVA,QAAMk2C,IAAc,CAACE,EAAMK,KAEvB,IAAKn3C,OAAO4oC,KAAKkO,GAAMv2C,OACnB,QAEoBopC,EAAQmN,EAAMK,KAElClF,EAAKE,UAAY2D,IAA8BC,IACnD,IAEGjH,EACX,CA0GA,SAAS8F,GAAqBpJ,EAAIyJ,GAC9B,GAAKzJ,EAGL,OAAOA,EAAGtgB,MAAM+pB,EACpB,EAEkB,QAAgB,CAC9B50C,KAAM,QACNm9B,cAAc,EACdtS,MAAO,CACHksB,GAAI,CACA1rB,KAAM,CAAChlB,OAAQ1G,QACfyrB,aAASnc,GAEbjP,KAAM,CACFqrB,KAAMhlB,OACN3F,UAAU,GAEd+sC,MAAO,CACHpiB,KAAM,CAAC1rB,OAAQ0G,OAAQklB,UACvBH,aAASnc,GAEb6kC,gBAAiB,CACbzoB,KAAMM,QACNP,SAAS,GAEbujB,eAAgB,CACZtjB,KAAMM,QACNP,aAASnc,GAEb2/B,iBAAkB,CACdvjB,KAAMM,QACNP,aAASnc,GAEb4/B,gBAAiB,CACbxjB,KAAMM,QACNP,aAASnc,GAEb6/B,sBAAuB,CACnBzjB,KAAMM,QACNP,aAASnc,GAEby/B,MAAO,CACHrjB,KAAMM,QACNP,QAAS,IAAM2jB,IAAYL,OAE/BO,MAAO,CACH5jB,KAAMhlB,OACN+kB,aAASnc,GAEbw8B,eAAgB,CACZpgB,KAAM,KACND,aAASnc,GAEboiC,WAAY,CACRhmB,KAAM,KACND,QAAS0c,GAEbkN,eAAgB,CACZ3pB,KAAM,KACND,QAAS,KAAM,CAAG,IAEtB,sBAAuB,CACnBC,KAAM,KACND,aAASnc,GAEbokC,WAAY,CACRhoB,KAAMM,QACNP,SAAS,GAEb4rB,UAAW,CACP3rB,KAAMM,QACNP,aAASnc,IAGjBmwB,MAAMvU,EAAO2kB,GACT,MAAM/B,GAAQ,QAAM5iB,EAAO,SACrB7qB,GAAO,QAAM6qB,EAAO,QACpBokB,GAAQ,QAAMpkB,EAAO,SACrB4gB,GAAiB,QAAM5gB,EAAO,kBAC9BmsB,GAAY,QAAMnsB,EAAO,cACzB,OAAEhrB,EAAM,MAAEJ,EAAK,aAAE6xC,EAAc5xC,SAAUu3C,EAAa,aAAE1D,EAAY,WAAE0C,EAAU,WAAEC,EAAU,WAAEH,EAAU,YAAEC,EAAW,KAAEpE,EAAI,QAAE4B,EAAO,UAAEjC,GAAe6B,GAASpzC,EAAMytC,EAAO,CAC7KqG,gBAAiBjpB,EAAMipB,gBACvBpF,MAAO7jB,EAAM6jB,MACb2E,WAAYxoB,EAAMwoB,WAClBhoB,KAAMmkB,EAAIvhB,MAAM5C,KAChB6lB,aAAcoB,GAAoBznB,EAAO2kB,GAEzChE,aAAcgE,EAAIvhB,MAAMxuB,MACxBgsC,iBACAwD,QACA8E,uBAAuB,EACvBE,mBAAoB+C,IAGlBE,EAAkB,SAA+B3tC,EAAGoqC,GAAiB,GACvEJ,EAAahqC,EAAGoqC,GAChBnE,EAAIsF,KAAK,oBAAqBr1C,EAAMA,MACxC,EAMM03C,EAAiB,SAA8B5tC,GALjC,CAACA,IACZ8+B,EAAemH,EAAIvhB,MAAM5C,QAC1B5rB,EAAMA,MAAQ0tC,EAAoB5jC,GACtC,EAGA6tC,CAAY7tC,GACZimC,EAAIsF,KAAK,oBAAqBr1C,EAAMA,MACxC,EACM43C,GAAa,SAAS,KACxB,MAAM,gBAAExI,EAAe,iBAAED,EAAgB,eAAED,EAAc,sBAAEG,GA6DvE,SAAmCjkB,GAC/B,IAAIrrB,EAAI4uB,EAAIoiB,EAAI8G,EAChB,MAAM,gBAAEzI,EAAe,iBAAED,EAAgB,eAAED,EAAc,sBAAEG,GAA0BC,IACrF,MAAO,CACHF,gBAAkD,QAAhCrvC,EAAKqrB,EAAMgkB,uBAAoC,IAAPrvC,EAAgBA,EAAKqvC,EAC/ED,iBAAoD,QAAjCxgB,EAAKvD,EAAM+jB,wBAAqC,IAAPxgB,EAAgBA,EAAKwgB,EACjFD,eAAgD,QAA/B6B,EAAK3lB,EAAM8jB,sBAAmC,IAAP6B,EAAgBA,EAAK7B,EAC7EG,sBAA8D,QAAtCwI,EAAKzsB,EAAMikB,6BAA0C,IAAPwI,EAAgBA,EAAKxI,EAEnG,CAtEiGyI,CAA0B1sB,GACzG2sB,EAAa,CAACvB,EAAYzG,EAAIvhB,MAAMwpB,OAAQ9I,EAAiBsI,OAAgBhoC,GAAW4N,OAAO8O,SAC/F+rB,EAAc,CAAEnuC,GAAM2tC,EAAgB3tC,EAAGslC,GAAkBW,EAAIvhB,MAAM0pB,SAAS96B,OAAO8O,SACrFisB,EAAe,CAAEruC,GAAM2tC,EAAgB3tC,EAAGqlC,GAAmBY,EAAIvhB,MAAM4pB,UAAUh7B,OAAO8O,SACxFsC,EAAQ,CACVjuB,KAAM6qB,EAAM7qB,KACZy3C,OAAQD,EACRG,QAASD,EACTG,SAAUD,EAEd3pB,sBAA+B1kB,GAAK2tC,EAAgB3tC,EAAGulC,IACnDzG,EAAemH,EAAIvhB,MAAM5C,OAASmoB,IAClCvlB,EAAMulB,QAAUA,EAAQ/zC,OAM5B,OAHIkpC,EADQmP,GAAWjtB,EAAO2kB,GACEA,EAAIvhB,SAChCA,EAAMxuB,MAAQA,EAAMA,OAEjBwuB,CAAK,IAEhB,SAAS6e,IACL,MAAO,CACH2B,MAAO4I,EAAW53C,MAClBA,MAAOA,EAAMA,MACbmyC,OACA/xC,OAAQA,EAAOJ,MACf6xC,aAAcA,EAAa7xC,MAC3BC,SAAUu3C,EACVlB,aACAxC,aAAc2D,EACdE,YAAaD,EACbnB,cACAC,aACAC,aACA3E,YAER,CAQA,OAPA/B,EAAIuI,OAAO,CACPxG,YACA2E,aACAh5B,MAAO64B,EACPr2C,SAAUu3C,EACV1D,iBAEG,KACH,MAAM3K,GAAM,QAAwBkP,GAAWjtB,EAAO2kB,IAChD9S,EAAWmQ,EAAkBjE,EAAK4G,EAAK1C,GAC7C,OAAIlE,GACO,IAAAjiC,GAAEiiC,EAAKjpC,OAAOC,OAAOD,OAAOC,OAAO,CAAC,EAAG4vC,EAAIvhB,OAAQopB,EAAW53C,OAAQi9B,GAE1EA,CAAQ,CAEvB,IAEJ,SAASob,GAAWjtB,EAAO2kB,GACvB,IAAI5G,EAAM/d,EAAMksB,IAAM,GAItB,OAHKlsB,EAAMksB,IAAOvH,EAAIzC,MAAM3hB,UACxBwd,EAAM,SAEHA,CACX,CAWA,SAAS0J,GAAoBznB,EAAO2kB,GAGhC,OAAKnH,EAAemH,EAAIvhB,MAAM5C,MAGvBge,EAAcxe,EAAO,cAAgBA,EAAMwmB,gBAAapiC,EAFpDo6B,EAAcxe,EAAO,cAAgBA,EAAMwmB,WAAa7B,EAAIvhB,MAAMxuB,KAGjF,CAGA,IAAIu4C,GAAe,EACnB,SAASC,GAAqB94C,GAC1B,MAAM+4C,GAAiB,QAAe,OAAT/4C,QAA0B,IAATA,OAAkB,EAASA,EAAKozC,gBAAkB,CAAC,EAC3FpD,GAAS,QAAe,OAAThwC,QAA0B,IAATA,OAAkB,EAASA,EAAKg5C,kBACtE,OAAIhJ,GAAUjH,EAAciH,IAAW5H,EAAW4H,EAAO3uC,MAC9CwpC,EAAMmF,EAAO3uC,KAAK03C,IAAmB,CAAC,GAE1ClO,EAAMkO,EACjB,CACA,SAASE,GAAQj5C,GACb,IAAIK,EACJ,MAAM64C,EAASL,KACTM,EAAuB,IAAI7qB,IAGjC,IAAI8qB,GAAa,EAEjB,MAAMC,GAAe,QAAI,CAAC,GAEpBC,GAAe,SAAI,GAEnBC,GAAc,QAAI,GAElBC,EAAc,GAEdC,GAAa,QAASX,GAAqB94C,KAE3C,SAAEsyC,EAAQ,YAAEoH,EAAW,iBAAEnH,GAwoBnC,SAAqBoH,GACjB,MAAMrH,GAAW,QAAI,CAAC,GACtB,SAASsH,EAAmB1N,GACxB,OAAOv5B,MAAMC,QAAQs5B,GAAWA,EAAUA,EAAU,CAACA,GAAW,EACpE,CAIA,SAASqG,EAAiBjD,EAAOpD,GACxBA,EAILoG,EAAShyC,MAAMgvC,GAASsK,EAAmB1N,UAHhCoG,EAAShyC,MAAMgvC,EAI9B,CAIA,SAASoK,EAAYG,GACjBvH,EAAShyC,MAAQqrC,EAAOkO,GAAQ54C,QAAO,CAACC,EAAKwR,KACzC,MAAMw5B,EAAU2N,EAAOnnC,GAIvB,OAHIw5B,IACAhrC,EAAIwR,GAAOknC,EAAmB1N,IAE3BhrC,CAAG,GACX,CAAC,EACR,CACIy4C,GACAD,EAAYC,GAEhB,MAAO,CACHrH,WACAoH,cACAnH,mBAER,CA3qBwDuH,CAAqB,OAAT95C,QAA0B,IAATA,OAAkB,EAASA,EAAK25C,eAE3Gj5C,GAAS,SAAS,IACbirC,EAAO2G,EAAShyC,OAAOW,QAAO,CAACC,EAAKwR,KACvC,MAAMqnC,EAAMzH,EAAShyC,MAAMoS,GAI3B,OAHIqnC,GAAOA,EAAIh5C,SACXG,EAAIwR,GAAOqnC,EAAI,IAEZ74C,CAAG,GACX,CAAC,KAER,SAAS84C,EAAoBh5C,GACzB,MAAMi5C,EAAeZ,EAAa/4C,MAAMU,GACxC,OAAO2R,MAAMC,QAAQqnC,GAAgBA,EAAa,GAAKA,CAC3D,CACA,SAASC,EAAYl5C,GACjB,QAASq4C,EAAa/4C,MAAMU,EAChC,CAIA,MAAMm5C,GAAa,SAAS,IACjBxO,EAAO0N,EAAa/4C,OAAOW,QAAO,CAACswC,EAAOvwC,KAC7C,MAAMsuC,EAAQ0K,EAAoBh5C,GAIlC,OAHIsuC,IACAiC,EAAMvwC,GAAQ,CAAEH,MAAM,QAAMyuC,EAAMzuC,OAAS,GAAIivC,OAAO,QAAMR,EAAMQ,QAAU,KAEzEyB,CAAK,GACb,CAAC,KAEF6I,GAAgB,SAAS,IACpBzO,EAAO0N,EAAa/4C,OAAOW,QAAO,CAACiU,EAAKlU,KAC3C,IAAIX,EACJ,MAAMivC,EAAQ0K,EAAoBh5C,GAIlC,OAHIsuC,IACAp6B,EAAIlU,GAA+B,QAAtBX,EAAKivC,EAAMC,aAA0B,IAAPlvC,GAAgBA,GAExD6U,CAAG,GACX,CAAC,KAIFykC,EAAgBn5C,OAAOC,OAAO,CAAC,GAAc,OAATT,QAA0B,IAATA,OAAkB,EAASA,EAAK25C,gBAAkB,CAAC,GACxGU,EAAsG,QAA/Eh6C,EAAc,OAATL,QAA0B,IAATA,OAAkB,EAASA,EAAKq6C,2BAAwC,IAAPh6C,GAAgBA,GAE9H,cAAE+yC,EAAa,sBAAEkH,EAAqB,iBAAEC,GA+iBlD,SAA8BV,EAAQJ,EAAYz5C,GAC9C,MAAMI,EAAS04C,GAAqB94C,GAC9B+4C,EAA0B,OAAT/4C,QAA0B,IAATA,OAAkB,EAASA,EAAKozC,cAElEA,GAAgB,QAAIhzC,GAMpBk6C,GAAwB,QAAIzP,EAAMzqC,IACxC,SAASm6C,EAAiBn6C,EAAQo6C,GAAe,GAC7CpH,EAAc9yC,MAAQuqC,EAAMzqC,GAC5Bk6C,EAAsBh6C,MAAQuqC,EAAMzqC,GAC/Bo6C,GAOL7O,EAAOkO,EAAOv5C,OAAOk1B,SAAQilB,IACzB,MAAMnL,EAAQuK,EAAOv5C,MAAMm6C,GACrBC,EAAa/nC,MAAMC,QAAQ08B,GAASA,EAAMqL,MAAKC,GAAKA,EAAEnI,KAAKC,UAAqB,OAAVpD,QAA4B,IAAVA,OAAmB,EAASA,EAAMmD,KAAKC,QACrI,IAAKpD,GAASoL,EACV,OAEJ,MAAMpN,EAAWlC,EAAYgI,EAAc9yC,MAAOm6C,GAClDlP,EAAUkO,EAAYgB,EAAW5P,EAAMyC,GAAU,GAEzD,EACI,QAAMyL,KACN,QAAMA,GAAgBz4C,IAClBi6C,EAAiBj6C,GAAO,EAAK,GAC9B,CACCitC,MAAM,IAGd,MAAO,CACH6F,gBACAkH,wBACAC,mBAER,CA1lBuEM,CAAqBxB,EAAcI,EAAYz5C,GAE5GyyC,EA8gBV,SAAqB4G,EAAcyB,EAAe1H,EAAe1yC,GAC7D,MAAMq6C,EAAmB,CACrBrI,QAAS,OACTvF,QAAS,OACT0D,MAAO,SAELmK,GAAU,SAAS,KACb7Q,EAAQ2Q,GAAe,QAAM1H,MAEzC,SAAS6H,IACL,MAAMpB,EAASr5C,OAAOJ,OAAOi5C,EAAa/4C,OAAO46C,KAAK,GAAGx9B,OAAO8O,SAChE,OAAOmf,EAAOoP,GAAkB95C,QAAO,CAACC,EAAKi6C,KACzC,MAAMC,EAAcL,EAAiBI,GAErC,OADAj6C,EAAIi6C,GAAQtB,EAAOuB,IAAa9L,GAASA,EAAMmD,KAAK0I,KAC7Cj6C,CAAG,GACX,CAAC,EACR,CACA,MAAMwpC,GAAQ,QAASuQ,KAOvB,OANA,SAAY,KACR,MAAM36C,EAAQ26C,IACdvQ,EAAMgI,QAAUpyC,EAAMoyC,QACtBhI,EAAMmG,MAAQvwC,EAAMuwC,MACpBnG,EAAMyC,QAAU7sC,EAAM6sC,OAAO,KAE1B,SAAS,IACL3sC,OAAOC,OAAOD,OAAOC,OAAO,CAAE2yC,eAAe,QAAMA,IAAkB1I,GAAQ,CAAEmG,MAAOnG,EAAMmG,QAAUlF,EAAOjrC,EAAOJ,OAAOS,OAAQ6xC,MAAOoI,EAAQ16C,SAEjK,CAziBiB+6C,CAAYhC,EAAcI,EAAYa,EAAuB55C,GACpE46C,GAAmB,SAAS,IACvB,IAAInC,KAAyBxN,EAAO0N,EAAa/4C,QAAQW,QAAO,CAACC,EAAKF,KAEzEuqC,EAAUrqC,EAAKF,EADDoqC,EAAYqO,EAAYz4C,IAE/BE,IACR,CAAC,KAEF8uC,EAAkB,OAAThwC,QAA0B,IAATA,OAAkB,EAASA,EAAKg5C,iBAK1DuC,EAA4B9O,EAAc+O,GAAiB,GAC3DC,EAAsBhP,EAAc+O,GAAiB,GACrDnF,EAAiBrJ,GAAW7sC,MAAOi2C,GACb,iBAAVA,EAAqBmF,IAA8BE,MAClE,CAACC,GAAatF,MAEb,MAAMuF,EAAaC,EAAQvC,aAAa/4C,OAAS,CAAC,EAE5Cu7C,EAAqBlQ,EAAOiQ,EAAQtJ,SAAShyC,OAOnD,MAJc,IACP,IAAIguB,IAAI,IAAIqd,EAAO+P,EAAW9J,YAAajG,EAAOgQ,MAAgBE,KAG5D56C,QAAO,CAAC66C,EAAY96C,KAC7B,MAAMsuC,EAAQqM,EAAW36C,GACnBmvC,GAAYuL,EAAW9J,QAAQ5wC,IAAS,CAAEN,OAAQ,KAAMA,OACxD8wC,EAAc,CAChB9wC,OAAQyvC,EACRU,OAAQV,EAASpvC,QAOrB,GALA+6C,EAAWlK,QAAQ5wC,GAAQwwC,EACtBA,EAAYX,QACbiL,EAAWp7C,OAAOM,GAAQwwC,EAAY9wC,OAAO,KAG5C4uC,EAED,OADAyM,EAAc/6C,EAAMmvC,GACb2L,EAIX,GADAE,EAAmB1M,GAAOsL,GAAMA,EAAEnI,KAAK5B,MAAQW,EAAYX,QAC9C,WAATuF,EACA,OAAO0F,EAEX,MAAMG,EAAetpC,MAAMC,QAAQ08B,GAASA,EAAMqL,MAAKC,GAAKA,EAAEnI,KAAKE,YAAarD,EAAMmD,KAAKE,UAC3F,MAAa,mBAATyD,GAA8B6F,GAGlCD,EAAmB1M,GAAOsL,GAAKA,EAAE5H,SAAS,CAAEtyC,OAAQ8wC,EAAY9wC,WACzDo7C,GAHIA,CAGM,GAClB,CAAEjL,MAAO6K,EAAW7K,MAAOe,QAAS,CAAC,EAAGlxC,OAAQ,CAAC,GAAI,IAE5D,SAASw7C,EAAsBC,GAC3B,OAAO,SAA8Br8B,EAAIs8B,GACrC,OAAO,SAA2BhyC,GAY9B,OAXIA,aAAa4/B,QACb5/B,EAAEiyC,iBACFjyC,EAAEkyC,mBAGNvF,GAAWpL,EAAO0N,EAAa/4C,OAAOW,QAAO,CAACC,EAAKouC,KAC/CpuC,EAAIouC,IAAS,EACNpuC,IACR,CAAC,IACJo4C,EAAah5C,OAAQ,EACrBi5C,EAAYj5C,QACLC,KACFs+B,MAAKpvB,IACN,MAAMrP,EAASyqC,EAAM4O,GACrB,GAAIhqC,EAAOohC,OAAuB,oBAAP/wB,EAAmB,CAC1C,MAAM+0B,EAAahK,EAAMyQ,EAAiBh7C,OAC1C,IAAIi8C,EAAkBJ,EAAiBtH,EAAaz0C,EAIpD,OAHIqP,EAAOrP,SACPm8C,EAAkB9sC,EAAOrP,QAEtB0f,EAAGy8B,EAAiB,CACvBzS,IAAK1/B,EACLkxC,iBAAkBzG,EAClBzC,YACA2J,gBACAhF,cACAyF,mBACAC,aACAlJ,gBACAmJ,aACA9F,eAER,CACKnnC,EAAOohC,OAAsC,oBAAtBuL,GACxBA,EAAkB,CACdh8C,SACA0pC,IAAK1/B,EACL1J,OAAQ+O,EAAO/O,OACfkxC,QAASniC,EAAOmiC,SAExB,IAEC/S,MAAK8d,IACNrD,EAAah5C,OAAQ,EACdq8C,KACRh8C,IAGC,MAFA24C,EAAah5C,OAAQ,EAEfK,CAAG,GAEjB,CACJ,CACJ,CACA,MACMi8C,EADmBV,GAAsB,GAE/CU,EAAaC,eAAiBX,GAAsB,GACpD,MAAMN,EAAU,CACZ1C,SACAG,eACAj5C,OAAQq5C,EACR6B,mBACAhJ,WACA5xC,SACAsvC,SACAuJ,cACA9G,OACA6G,eACAE,cACAa,sBACAhE,gBAAgB,QAAMrG,GAAUqG,OAAiBvmC,EACjDvP,YACA22C,SA0LJ,SAAuB5H,GACnB,MAAMmL,GAAY,QAAMnL,EAAMzuC,MAC9Bi8C,GAAkBxN,EAAOmL,IACrB,QAAMnL,EAAMzuC,QAGZ,QAAMyuC,EAAMzuC,MAAMV,MAAO48C,EAASC,WAExB,UACNC,GAAoB3N,EAAO0N,GAC3BF,GAAkBxN,EAAOyN,IAErBr8C,EAAOJ,MAAM08C,IAAYt8C,EAAOJ,MAAMy8C,MAEtChB,EAAciB,OAASltC,GACvBgoC,GAAciF,UAIZ,UACD7C,EAAY8C,IACbvR,EAAUgO,EAAYuD,EAC1B,IAMR,MAAME,GAAsB,QAAM5N,EAAM6C,cACpC+K,IAA0C,OAAlBvD,QAA4C,IAAlBA,OAA2B,EAASA,EAAcc,MAAgByC,GACpHpF,GAAc2C,UAGXd,EAAcc,EACzB,EA3NItD,WA4NJ,SAAyB7H,GACrB,MAAM2G,GAAY,QAAM3G,EAAMzuC,MACxBs8C,EAAgB9D,EAAa/4C,MAAM21C,GACnCmH,IAAYD,GAAiBE,EAAaF,GAChDF,GAAoB3N,EAAO2G,IAG3B,SAAS,KACL,IAAI51C,EACJ,MAAMi9C,EAA6D,QAA1Cj9C,GAAK,QAAMivC,EAAMwF,2BAAwC,IAAPz0C,EAAgBA,GAAK,QAAMg6C,GAChGkD,EAAoBnS,EAAYqO,EAAYxD,GAUlD,GALoBmH,IAAYD,IAAkB9D,EAAa/4C,MAAM21C,KAAeoD,EAAa/4C,MAAM21C,MAKnFqH,EAChB,GAAI3qC,MAAMC,QAAQ2qC,GAAoB,CAClC,MAAMC,EAAWD,EAAkB1qC,WAAUtI,GAAK4/B,EAAQ5/B,GAAG,QAAM+kC,EAAMjD,iBACzE,GAAImR,GAAY,EAAG,CACf,MAAMjR,EAAS,IAAIgR,GACnBhR,EAAOvhB,OAAOwyB,EAAU,GACxBjK,EAAc0C,EAAW1J,EAAQ,CAAElc,OAAO,GAC9C,CACJ,MACSktB,KAAsB,QAAMjO,EAAMjD,eAEvCZ,EAAUgO,EAAYxD,GAK9B,IAAKiE,EAAYjE,GAAY,CAKzB,GAJA8F,EAAc9F,OAAWnmC,GAIrBwtC,EACA,OAGJ,GAAIF,GAAWzqC,MAAMC,QAAQ2qC,KAAuBpU,EAAiBoU,GACjE,OAEJ9R,EAAUgO,EAAYxD,EAC1B,IAER,EA9QI1D,mBACAuF,iBACAvE,gBACAkJ,aACArK,YACA2J,gBACAS,mBACAzF,cACA2F,aACA9F,cACAgG,eACAvJ,kBA4TJ,SAA2BryC,EAAMV,EAAOm9C,GAAiB,GACrDlS,EAAUkO,EAAYz4C,EAAMV,GAC5Bo9C,GAAqB18C,EAAMV,GACvBm9C,KAA6B,OAATz9C,QAA0B,IAATA,OAAkB,EAASA,EAAKozC,gBACrE7H,EAAU+O,EAAsBh6C,MAAOU,EAAM6pC,EAAMvqC,GAE3D,EAjUIq9C,kBAqTJ,SAA2B38C,GACvByqC,EAAU2H,EAAc9yC,MAAOU,EACnC,EAtTI08C,wBACAE,cAoFJ,SAAuB58C,GACnB,IAAK2R,MAAMC,QAAQ5R,GACf,OAAO68C,GAAY78C,GAEvB,OAAOA,EAAKkU,IAAI2oC,GACpB,GAvFA,SAASR,EAAapD,GAClB,OAAOtnC,MAAMC,QAAQqnC,EACzB,CACA,SAAS+B,EAAmB/B,EAAc6D,GACtC,OAAInrC,MAAMC,QAAQqnC,GACPA,EAAazkB,QAAQsoB,GAEzBA,EAAS7D,EACpB,CACA,SAAS8D,EAAgBD,GACrBt9C,OAAOJ,OAAOi5C,EAAa/4C,OAAOk1B,SAAQ8Z,IACjCA,GAIL0M,EAAmB1M,EAAOwO,EAAS,GAE3C,CAIA,SAAS/B,EAAczM,EAAOpD,GAC1BqG,EAAiBjD,EAAOpD,EAC5B,CAIA,SAASkG,EAAUyH,GACfH,EAAYG,EAChB,CAIA,SAAStG,EAAcjE,EAAOhvC,GAAO,MAAE+vB,GAAU,CAAEA,OAAO,IACtD,IAAIhwB,EACJ,MAAM88C,EAAgB9D,EAAa/4C,MAAMgvC,GACnC0O,EAAcnT,EAAMvqC,GAE1B,IAAK68C,EAED,YADA5R,EAAUkO,EAAYnK,EAAO0O,GAGjC,GAAIX,EAAaF,IAA6F,cAA9C,QAA3B98C,EAAK88C,EAAc,UAAuB,IAAP98C,OAAgB,EAASA,EAAG6rB,QAAyBvZ,MAAMC,QAAQtS,GAAQ,CAE/I,MAAMgtC,EAAWzC,EAAMsB,EAAyBf,EAAYqO,EAAYnK,IAAU,GAAIhvC,OAAOwP,IAE7F,YADAy7B,EAAUkO,EAAYnK,EAAOhC,EAEjC,CACA,IAAIA,EAAW0Q,EAEVX,EAAaF,IAAyC,aAAvBA,EAAcjxB,MAAwBmE,GAAU+oB,IAChF9L,EAAWzC,EAAMsB,EAAyBf,EAAYqO,EAAYnK,GAAQhvC,GAAO,QAAM68C,EAAc7Q,mBAEzGf,EAAUkO,EAAYnK,EAAOhC,EACjC,CAIA,SAASmP,GAAU5C,GAEflO,EAAO8N,GAAYjkB,SAAQ9iB,WAChB+mC,EAAW/mC,EAAI,IAG1Bi5B,EAAOkO,GAAQrkB,SAAQx0B,IACnBuyC,EAAcvyC,EAAM64C,EAAO74C,GAAM,IAGrCw4C,EAAYhkB,SAAQolB,GAAKA,GAAKA,EAAE78B,SACpC,CACA,SAAS8/B,GAAY78C,GACjB,MAAM,MAAEV,GAAU2xC,GAAejxC,OAAM8O,EAAW8rC,GASlD,OARA,QAAMt7C,GAAO,KACJ45C,GAAY,QAAMl5C,KACnBT,GAAS,CAAE61C,KAAM,kBACrB,GACD,CACC7I,MAAM,IAEV4L,EAAqBrkB,KAAI,QAAM9zB,IACxBV,CACX,CAUA,SAASk8C,GAAgBlN,EAAO0H,GAC5B,MAAMmG,EAAgB9D,EAAa/4C,MAAMgvC,GACrC6N,GACAnB,EAAmBmB,GAAevC,GAAKA,EAAE7D,WAAWC,IAE5D,CAIA,SAASD,GAAW8C,GAChBlO,EAAOkO,GAAQrkB,SAAQ8Z,IACnBkN,GAAgBlN,IAASuK,EAAOvK,GAAO,GAE/C,CACA,SAASsH,GAAWtH,EAAO2D,GACvB,MAAMkK,EAAgB9D,EAAa/4C,MAAMgvC,GACrC6N,GACAnB,EAAmBmB,GAAevC,GAAKA,EAAEhE,WAAW3D,IAE5D,CAIA,SAASyJ,GAAUzJ,GACfmG,GAAa,EAEb2E,GAAgBnD,GAAKA,EAAEhE,eAEvB,MAAMqH,GAAuB,OAAVhL,QAA4B,IAAVA,OAAmB,EAASA,EAAM7yC,QAAU6yC,EAAM7yC,OAASk6C,EAAsBh6C,MACtHi6C,EAAiB0D,GACjBxB,GAAUwB,IACI,OAAVhL,QAA4B,IAAVA,OAAmB,EAASA,EAAMP,UACpDqE,GAAW9D,EAAMP,SAErBN,GAAqB,OAAVa,QAA4B,IAAVA,OAAmB,EAASA,EAAMvyC,SAAW,CAAC,GAC3E64C,EAAYj5C,OAAmB,OAAV2yC,QAA4B,IAAVA,OAAmB,EAASA,EAAMsG,cAAgB,GACzF,SAAS,KACLH,GAAa,CAAK,GAE1B,CACA,SAAS0D,GAAkBxN,EAAOtuC,GAC9B,MAAMk9C,GAAW,QAAQ5O,GACnBmL,EAAYz5C,EAElB,IAAKq4C,EAAa/4C,MAAMm6C,GAEpB,YADApB,EAAa/4C,MAAMm6C,GAAayD,GAGpC,MAAMC,EAAc9E,EAAa/4C,MAAMm6C,GACnC0D,IAAgBxrC,MAAMC,QAAQurC,KAC9B9E,EAAa/4C,MAAMm6C,GAAa,CAAC0D,IAGrC9E,EAAa/4C,MAAMm6C,GAAa,IAAIpB,EAAa/4C,MAAMm6C,GAAYyD,EACvE,CACA,SAASjB,GAAoB3N,EAAOtuC,GAChC,MAAMy5C,EAAYz5C,EACZm9C,EAAc9E,EAAa/4C,MAAMm6C,GACvC,GAAK0D,EAIL,GAAKd,EAAac,IAAgB7O,EAAM5S,KAAOyhB,EAAYzhB,IAI3D,GAAI2gB,EAAac,GAAc,CAC3B,MAAMjY,EAAMiY,EAAYtrC,WAAU+nC,GAAKA,EAAEle,KAAO4S,EAAM5S,KACtD,IAAa,IAATwJ,EACA,OAEJiY,EAAYnzB,OAAOkb,EAAK,GACnBiY,EAAYp9C,eACNs4C,EAAa/4C,MAAMm6C,EAElC,cAZWpB,EAAa/4C,MAAMm6C,EAalC,CAwFAt6C,eAAeI,GAASP,GACpB,MAAMo2C,GAAiB,OAATp2C,QAA0B,IAATA,OAAkB,EAASA,EAAKo2C,OAAS,QAIxE,GAHa,UAATA,GACA2H,GAAgBnD,GAAMA,EAAEnI,KAAKE,WAAY,IAEzCiJ,EAAQvF,eACR,OAAOuF,EAAQvF,eAAeD,GAGlC,MAAMhF,QAAoBlmB,QAAQoW,IAAI9gC,OAAOJ,OAAOi5C,EAAa/4C,OAAO4U,KAAIo6B,IACxE,MAAM6N,EAAgBxqC,MAAMC,QAAQ08B,GAASA,EAAM,GAAKA,EACxD,OAAK6N,EAGEA,EAAc58C,SAASP,GAAM6+B,MAAMpvB,IAC/B,CACHiD,KAAK,QAAMyqC,EAAct8C,MACzBgwC,MAAOphC,EAAOohC,MACdnwC,OAAQ+O,EAAO/O,WANZwqB,QAAQC,QAAQ,CAAEzY,IAAK,GAAIm+B,OAAO,EAAMnwC,OAAQ,IAQzD,KAEAkxC,EAAU,CAAC,EACXlxC,EAAS,CAAC,EAChB,IAAK,MAAMo7C,KAAc1K,EACrBQ,EAAQkK,EAAWppC,KAAO,CACtBm+B,MAAOiL,EAAWjL,MAClBnwC,OAAQo7C,EAAWp7C,QAEnBo7C,EAAWp7C,OAAOK,SAClBL,EAAOo7C,EAAWppC,KAAOopC,EAAWp7C,OAAO,IAGnD,MAAO,CACHmwC,MAAOO,EAAY3yB,OAAMouB,GAAKA,EAAEgE,QAChCe,UACAlxC,SAER,CACAP,eAAe23C,GAAcxI,GACzB,MAAM6N,EAAgB9D,EAAa/4C,MAAMgvC,GACzC,OAAK6N,EAIDxqC,MAAMC,QAAQuqC,GACPA,EAAcjoC,KAAI0lC,GAAKA,EAAEr6C,aAAY,GAEzC48C,EAAc58C,aANjB,QAAO,mBAAmB+uC,mBACnBpkB,QAAQC,QAAQ,CAAEzqB,OAAQ,GAAImwC,OAAO,IAMpD,CAcA,SAAS6M,GAAqB18C,EAAMV,GAChCirC,EAAU6H,EAAc9yC,MAAOU,EAAM6pC,EAAMvqC,GAC/C,CACAH,eAAeq7C,KACX,MAAM4C,GAAc,QAAMpO,GAC1B,IAAKoO,EACD,MAAO,CAAEvN,OAAO,EAAMe,QAAS,CAAC,EAAGlxC,OAAQ,CAAC,GAEhD,MAAMg7C,EAAazS,EAAemV,IAAgBrV,EAAcqV,SA5mDxEj+C,eAAmC6vC,EAAQ5vC,GACvC,MAAM6vC,EAAclH,EAAciH,GAAUA,EAASE,EAAiBF,GAChEqO,QAAyBpO,EAAYjH,MAAM5oC,GAC3CwxC,EAAU,CAAC,EACXlxC,EAAS,CAAC,EAChB,IAAK,MAAME,KAASy9C,EAAiB39C,OAAQ,CACzC,MAAMyvC,EAAWvvC,EAAMF,OAEjBM,GAAQJ,EAAMI,MAAQ,IAAIiM,QAAQ,gBAAgB,CAAC0wB,EAAGj2B,IACjD,IAAIA,OAEfkqC,EAAQ5wC,GAAQ,CAAE6vC,OAAQV,EAASpvC,OAAQL,OAAQyvC,GAC/CA,EAASpvC,SACTL,EAAOM,GAAQmvC,EAAS,GAEhC,CACA,MAAO,CACHU,OAAQwN,EAAiB39C,OAAOK,OAChC6wC,UACAlxC,SACAN,OAAQi+C,EAAiB/9C,MAEjC,CAulDoBg+C,CAAoBF,EAAa3E,SACjCtI,GAAqBiN,EAAa3E,EAAY,CAClDlI,MAAO4I,EAAW75C,MAClBmxC,SAAU2I,EAAc95C,QAEhC,OAAOo7C,CACX,CACA,MAAM6C,GAAa3B,GAAa,CAACjf,GAAKmM,UAC9BD,EAAkBC,IAClBA,EAAIrlB,OAAO+5B,QACf,IAmCJ,OAhCA,SAAU,MACO,OAATx+C,QAA0B,IAATA,OAAkB,EAASA,EAAK25C,gBACjDvH,EAAUpyC,EAAK25C,gBAEN,OAAT35C,QAA0B,IAATA,OAAkB,EAASA,EAAKy+C,iBACjD1H,GAAW/2C,EAAKy+C,iBAGP,OAATz+C,QAA0B,IAATA,OAAkB,EAASA,EAAK20C,iBACjDp0C,KAKAq7C,EAAQvF,gBACRuF,EAAQvF,eAAe,SAC3B,KAEA,QAAMrG,KACN,QAAMA,GAAQ,KACV,IAAI3vC,EAC8B,QAAjCA,EAAKu7C,EAAQvF,sBAAmC,IAAPh2C,GAAyBA,EAAGwC,KAAK+4C,EAAS,iBAAiB,KAI7G,QAAQnT,EAAgBmT,GAOjBp7C,OAAOC,OAAOD,OAAOC,OAAO,CAAC,EAAGm7C,GAAU,CAAE/E,YAAa,IAAM6F,KAAa6B,eACvF,EAoHiB,QAAgB,CAC7B19C,KAAM,OACNm9B,cAAc,EACdtS,MAAO,CACHksB,GAAI,CACA1rB,KAAMhlB,OACN+kB,QAAS,QAEb+sB,iBAAkB,CACd9sB,KAAM1rB,OACNyrB,aAASnc,GAEbsjC,cAAe,CACXlnB,KAAM1rB,OACNyrB,aAASnc,GAEb6pC,cAAe,CACXztB,KAAM1rB,OACNyrB,aAASnc,GAEb2uC,eAAgB,CACZvyB,KAAM1rB,OACNyrB,aAASnc,GAEb6kC,gBAAiB,CACbzoB,KAAMM,QACNP,SAAS,GAEbyyB,SAAU,CACNxyB,KAAME,SACNH,aAASnc,GAEb6uC,gBAAiB,CACbzyB,KAAME,SACNH,aAASnc,GAEb8uC,WAAY,CACR1yB,KAAMM,QACNP,SAAS,IAGjBgU,MAAMvU,EAAO2kB,GACT,MAAM+C,GAAgB,QAAM1nB,EAAO,iBAC7BstB,GAAmB,QAAMttB,EAAO,oBAChCkzB,GAAa,QAAMlzB,EAAO,eAC1B,OAAEhrB,EAAM,SAAE4xC,EAAQ,OAAElyC,EAAM,KAAEqyC,EAAI,aAAE6G,EAAY,YAAEC,EAAW,iBAAE+B,EAAgB,SAAE/6C,EAAQ,cAAEu3C,EAAa,YAAEjB,EAAW,UAAE6F,EAAS,aAAEE,EAAY,UAAExK,EAAS,cAAE2J,EAAa,cAAExI,EAAa,UAAEkJ,EAAS,gBAAED,EAAe,WAAEzF,EAAU,WAAEH,GAAgBqC,GAAQ,CACzPD,iBAAkBA,EAAiB14C,MAAQ04C,OAAmBlpC,EAC9DsjC,gBACAuG,cAAejuB,EAAMiuB,cACrB8E,eAAgB/yB,EAAM+yB,eACtB9J,gBAAiBjpB,EAAMipB,gBACvB0F,oBAAqBuE,IAEnBL,EAAa3B,GAAa,CAACjf,GAAKmM,UAC9BD,EAAkBC,IAClBA,EAAIrlB,OAAO+5B,QACf,GACD9yB,EAAMizB,iBACHD,EAAWhzB,EAAMgzB,SAAW9B,EAAalxB,EAAMgzB,SAAUhzB,EAAMizB,iBAAmBJ,EACxF,SAASM,EAAgBz0C,GACjB2/B,EAAQ3/B,IAERA,EAAEiyC,iBAENxF,IACiC,oBAAtBxG,EAAIvhB,MAAMgwB,SACjBzO,EAAIvhB,MAAMgwB,SAElB,CACA,SAASC,EAAuBjV,EAAK4U,GAEjC,OAAO9B,EAD0B,oBAAR9S,GAAuB4U,EAAiBA,EAAN5U,EAC5Bpe,EAAMizB,gBAA9B/B,CAA+C9S,EAC1D,CACA,SAASkV,IACL,OAAOnU,EAAMzqC,EACjB,CACA,SAAS6+C,IACL,OAAOpU,EAAM4H,EAAKnyC,MACtB,CACA,SAAS4+C,IACL,OAAOrU,EAAMnqC,EAAOJ,MACxB,CACA,SAASqtC,IACL,MAAO,CACH8E,KAAMA,EAAKnyC,MACXI,OAAQA,EAAOJ,MACfgyC,SAAUA,EAAShyC,MACnBF,SACAk5C,aAAcA,EAAah5C,MAC3Bi5C,YAAaA,EAAYj5C,MACzBg7C,iBAAkBA,EAAiBh7C,MACnCC,WACAu3C,gBACA8E,aAAcmC,EACdlI,cACA0H,aACAnM,YACA2J,gBACAxI,gBACAkJ,YACAD,kBACAzF,aACA2F,YACA9F,aACAoI,YACAC,UACAC,YAER,CAiBA,OAfA7O,EAAIuI,OAAO,CACPmD,gBACA3J,YACAmB,gBACAkJ,YACAD,kBACAzF,aACA2F,YACAn8C,WACAu3C,gBACAlB,aACAoI,YACAC,UACAC,cAEG,WAEH,MAAMzV,EAAmB,SAAb/d,EAAMksB,GAAgBlsB,EAAMksB,IAAK,QAAwBlsB,EAAMksB,IACrEra,EAAWmQ,EAAkBjE,EAAK4G,EAAK1C,GAC7C,IAAKjiB,EAAMksB,GACP,OAAOra,EAGX,MAAM4hB,EAAyB,SAAbzzB,EAAMksB,GAClB,CAEEwH,YAAY,GAEd,CAAC,EACP,OAAO,IAAA53C,GAAEiiC,EAAKjpC,OAAOC,OAAOD,OAAOC,OAAOD,OAAOC,OAAO,CAAC,EAAG0+C,GAAY9O,EAAIvhB,OAAQ,CAAE4vB,WAAUI,QAASD,IAAoBthB,EACjI,CACJ,KAuNmB,QAAgB,CACnC18B,KAAM,aACNm9B,cAAc,EACdtS,MAAO,CACH7qB,KAAM,CACFqrB,KAAMhlB,OACN3F,UAAU,IAGlB0+B,MAAMvU,EAAO2kB,GACT,MAAM,KAAEjvC,EAAI,OAAE2zB,EAAM,KAAEsqB,EAAI,OAAEC,EAAM,QAAEryC,EAAO,OAAEsyC,EAAM,QAAEC,EAAO,KAAEC,EAAI,OAAE5F,GA7N5E,SAAuB6F,GACnB,MAAMpP,EAAOzE,EAAepD,OAAgB34B,GACtC+pC,GAAS,QAAI,IAEb8F,EAAO,OACPC,EAAU,CACZ/F,SACA9kB,OAAQ4qB,EACRv+C,KAAMu+C,EACNN,KAAMM,EACNL,OAAQK,EACRJ,OAAQI,EACR1yC,QAAS0yC,EACTH,QAASG,EACTF,KAAME,GAEV,IAAKrP,EAED,OADAntC,EAAK,2HACEy8C,EAEX,KAAK,QAAMF,GAEP,OADAv8C,EAAK,4FACEy8C,EAEX,MAAMC,EAAgBvP,EAAKkJ,YAAYh7B,MAAKpX,IAAK,QAAMA,EAAEpG,SAAU,QAAM0+C,KACzE,GAAIG,EACA,OAAOA,EAEX,IAAIC,EAAe,EACnB,SAASC,IACL,OAAO3U,EAAqB,OAATkF,QAA0B,IAATA,OAAkB,EAASA,EAAKlwC,QAAQ,QAAMs/C,GAAY,KAAO,EACzG,CACA,SAASM,IACL,MAAMlF,EAAgBiF,IACtBlG,EAAOv5C,MAAQw6C,EAAc5lC,IAAI+qC,GACjCC,GACJ,CAEA,SAASA,IACL,MAAMC,EAAetG,EAAOv5C,MAAMS,OAClC,IAAK,IAAIwJ,EAAI,EAAGA,EAAI41C,EAAc51C,IAAK,CACnC,MAAM61C,EAAQvG,EAAOv5C,MAAMiK,GAC3B61C,EAAMC,QAAgB,IAAN91C,EAChB61C,EAAME,OAAS/1C,IAAM41C,EAAe,CACxC,CACJ,CACA,SAASF,EAAY3/C,GACjB,MAAMoS,EAAMotC,IACNM,EAAQ,CACV1tC,MACApS,MAAO8sC,EAAa,CAChBjjB,MACI,MAAM2wB,EAAgB1P,EAAqB,OAATkF,QAA0B,IAATA,OAAkB,EAASA,EAAKlwC,QAAQ,QAAMs/C,GAAY,KAAO,GAC9GxZ,EAAM2T,EAAOv5C,MAAMuS,WAAUzI,GAAKA,EAAEsI,MAAQA,IAClD,OAAgB,IAATwzB,EAAa5lC,EAAQw6C,EAAc5U,EAC9C,EACA1B,IAAIlkC,GACA,MAAM4lC,EAAM2T,EAAOv5C,MAAMuS,WAAUzI,GAAKA,EAAEsI,MAAQA,KACrC,IAATwzB,EAIJqZ,EAAOrZ,EAAK5lC,GAHR6C,EAAK,iDAIb,IAEJk9C,SAAS,EACTC,QAAQ,GAEZ,OAAOF,CACX,CACA,SAASG,IACLL,IAES,OAAT5P,QAA0B,IAATA,GAA2BA,EAAK/vC,SAAS,CAAE61C,KAAM,UACtE,CAmEA,SAASmJ,EAAOrZ,EAAK5lC,GACjB,MAAMkgD,GAAW,QAAMd,GACjBe,EAAYrV,EAAqB,OAATkF,QAA0B,IAATA,OAAkB,EAASA,EAAKlwC,OAAQogD,IAClF7tC,MAAMC,QAAQ6tC,IAAcA,EAAU1/C,OAAS,EAAImlC,IAG/C,OAAToK,QAA0B,IAATA,GAA2BA,EAAKiD,cAAc,GAAGiN,KAAYta,KAAQ5lC,GAC7E,OAATgwC,QAA0B,IAATA,GAA2BA,EAAK/vC,SAAS,CAAE61C,KAAM,mBACtE,CAhHA4J,IAgJA,MAAMU,EAAgB,CAClB7G,SACA9kB,OA5GJ,SAAgBmR,GACZ,MAAMsa,GAAW,QAAMd,GACjBe,EAAYrV,EAAqB,OAATkF,QAA0B,IAATA,OAAkB,EAASA,EAAKlwC,OAAQogD,GACvF,IAAKC,IAAc9tC,MAAMC,QAAQ6tC,GAC7B,OAEJ,MAAMnT,EAAW,IAAImT,GACrBnT,EAAStiB,OAAOkb,EAAK,GACZ,OAAToK,QAA0B,IAATA,GAA2BA,EAAKqN,kBAAkB6C,EAAW,IAAIta,MACzE,OAAToK,QAA0B,IAATA,GAA2BA,EAAKiD,cAAciN,EAAUlT,GACzEuM,EAAOv5C,MAAM0qB,OAAOkb,EAAK,GACzBqa,GACJ,EAiGIn/C,KAhGJ,SAAcd,GACV,MAAMkgD,GAAW,QAAMd,GACjBe,EAAYrV,EAAqB,OAATkF,QAA0B,IAATA,OAAkB,EAASA,EAAKlwC,OAAQogD,GACjFG,EAAsBtY,EAAkBoY,GAAa,GAAKA,EAChE,IAAK9tC,MAAMC,QAAQ+tC,GACf,OAEJ,MAAMrT,EAAW,IAAIqT,GACrBrT,EAASlsC,KAAKd,GACL,OAATgwC,QAA0B,IAATA,GAA2BA,EAAK+C,kBAAkBmN,EAAW,IAAIlT,EAASvsC,OAAS,KAAMT,GACjG,OAATgwC,QAA0B,IAATA,GAA2BA,EAAKiD,cAAciN,EAAUlT,GACzEuM,EAAOv5C,MAAMc,KAAK6+C,EAAY3/C,IAC9BigD,GACJ,EAoFIlB,KAnFJ,SAAcuB,EAAQC,GAClB,MAAML,GAAW,QAAMd,GACjBe,EAAYrV,EAAqB,OAATkF,QAA0B,IAATA,OAAkB,EAASA,EAAKlwC,OAAQogD,GACvF,IAAK7tC,MAAMC,QAAQ6tC,MAAgBG,KAAUH,MAAgBI,KAAUJ,GACnE,OAEJ,MAAMnT,EAAW,IAAImT,GACfK,EAAY,IAAIjH,EAAOv5C,OAEvBygD,EAAOzT,EAASsT,GACtBtT,EAASsT,GAAUtT,EAASuT,GAC5BvT,EAASuT,GAAUE,EACnB,MAAMC,EAAYF,EAAUF,GAC5BE,EAAUF,GAAUE,EAAUD,GAC9BC,EAAUD,GAAUG,EACX,OAAT1Q,QAA0B,IAATA,GAA2BA,EAAKiD,cAAciN,EAAUlT,GACzEuM,EAAOv5C,MAAQwgD,EACfZ,GACJ,EAkEIZ,OAjEJ,SAAgBpZ,EAAK5lC,GACjB,MAAMkgD,GAAW,QAAMd,GACjBe,EAAYrV,EAAqB,OAATkF,QAA0B,IAATA,OAAkB,EAASA,EAAKlwC,OAAQogD,GACvF,IAAK7tC,MAAMC,QAAQ6tC,IAAcA,EAAU1/C,OAASmlC,EAChD,OAEJ,MAAMoH,EAAW,IAAImT,GACfK,EAAY,IAAIjH,EAAOv5C,OAC7BgtC,EAAStiB,OAAOkb,EAAK,EAAG5lC,GACxBwgD,EAAU91B,OAAOkb,EAAK,EAAG+Z,EAAY3/C,IAC5B,OAATgwC,QAA0B,IAATA,GAA2BA,EAAKiD,cAAciN,EAAUlT,GACzEuM,EAAOv5C,MAAQwgD,EACfP,GACJ,EAqDIhB,SACAtyC,QArDJ,SAAiBs6B,GACb,MAAMiZ,GAAW,QAAMd,GACd,OAATpP,QAA0B,IAATA,GAA2BA,EAAKiD,cAAciN,EAAUjZ,GACzEyY,IACAO,GACJ,EAiDIf,QAvCJ,SAAiBl/C,GACb,MAAMkgD,GAAW,QAAMd,GACjBe,EAAYrV,EAAqB,OAATkF,QAA0B,IAATA,OAAkB,EAASA,EAAKlwC,OAAQogD,GACjFG,EAAsBtY,EAAkBoY,GAAa,GAAKA,EAChE,IAAK9tC,MAAMC,QAAQ+tC,GACf,OAEJ,MAAMrT,EAAW,CAAChtC,KAAUqgD,GACnB,OAATrQ,QAA0B,IAATA,GAA2BA,EAAK+C,kBAAkBmN,EAAW,IAAIlT,EAASvsC,OAAS,KAAMT,GACjG,OAATgwC,QAA0B,IAATA,GAA2BA,EAAKiD,cAAciN,EAAUlT,GACzEuM,EAAOv5C,MAAM2gD,QAAQhB,EAAY3/C,IACjCigD,GACJ,EA4BId,KA3BJ,SAAcyB,EAAQC,GAClB,MAAMX,GAAW,QAAMd,GACjBe,EAAYrV,EAAqB,OAATkF,QAA0B,IAATA,OAAkB,EAASA,EAAKlwC,OAAQogD,GACjFlT,EAAWjF,EAAkBoY,GAAa,GAAK,IAAIA,GACzD,IAAK9tC,MAAMC,QAAQ6tC,MAAgBS,KAAUT,MAAgBU,KAAUV,GACnE,OAEJ,MAAMK,EAAY,IAAIjH,EAAOv5C,OACvB8gD,EAAYN,EAAUI,GAC5BJ,EAAU91B,OAAOk2B,EAAQ,GACzBJ,EAAU91B,OAAOm2B,EAAQ,EAAGC,GAC5B,MAAMC,EAAa/T,EAAS4T,GAC5B5T,EAAStiB,OAAOk2B,EAAQ,GACxB5T,EAAStiB,OAAOm2B,EAAQ,EAAGE,GAClB,OAAT/Q,QAA0B,IAATA,GAA2BA,EAAKiD,cAAciN,EAAUlT,GACzEuM,EAAOv5C,MAAQwgD,EACfP,GACJ,GA4BA,OAhBAjQ,EAAKkJ,YAAYp4C,KAAKZ,OAAOC,OAAO,CAAEO,KAAM0+C,EAAW3hC,MAAOiiC,GAAcU,KAC5E,SAAgB,KACZ,MAAMxa,EAAMoK,EAAKkJ,YAAY3mC,WAAUtI,IAAK,QAAMA,EAAEvJ,SAAU,QAAM0+C,KAChExZ,GAAO,GACPoK,EAAKkJ,YAAYxuB,OAAOkb,EAAK,EACjC,KAIJ,QAAM6Z,GAAkBtG,IAGftP,EAAQsP,EAFQI,EAAOv5C,MAAM4U,KAAI0lC,GAAKA,EAAEt6C,UAGzC0/C,GACJ,IAEGU,CACX,CAYuFY,EAAc,QAAM51B,EAAO,SAC1G,SAASiiB,IACL,MAAO,CACHkM,OAAQA,EAAOv5C,MACfc,OACA2zB,SACAsqB,OACAC,SACAC,SACAtyC,UACAuyC,UACAC,OAER,CAWA,OAVApP,EAAIuI,OAAO,CACPx3C,OACA2zB,SACAsqB,OACAC,SACAC,SACAtyC,UACAuyC,UACAC,SAEG,IACc/R,OAAkB59B,EAAWugC,EAAK1C,EAG3D,KAIqB,QAAgB,CACrC9sC,KAAM,eACN6qB,MAAO,CACHksB,GAAI,CACA1rB,KAAMhlB,OACN+kB,aAASnc,GAEbjP,KAAM,CACFqrB,KAAMhlB,OACN3F,UAAU,IAGlB0+B,MAAMvU,EAAO2kB,GACT,MAAMC,GAAO,QAAO7H,OAAgB34B,GAC9Bo8B,GAAU,SAAS,IACL,OAAToE,QAA0B,IAATA,OAAkB,EAASA,EAAK5vC,OAAOJ,MAAMorB,EAAM7qB,QAE/E,SAAS8sC,IACL,MAAO,CACHzB,QAASA,EAAQ5rC,MAEzB,CACA,MAAO,KAEH,IAAK4rC,EAAQ5rC,MACT,OAEJ,MAAMmpC,EAAO/d,EAAMksB,IAAK,QAAwBlsB,EAAMksB,IAAMlsB,EAAMksB,GAC5Dra,EAAWmQ,EAAkBjE,EAAK4G,EAAK1C,GACvC7e,EAAQtuB,OAAOC,OAAO,CAAE8gD,KAAM,SAAWlR,EAAIvhB,OAGnD,OAAK2a,IAAQ92B,MAAMC,QAAQ2qB,IAAcA,KAA2B,OAAbA,QAAkC,IAAbA,OAAsB,EAASA,EAASx8B,SAK/G4R,MAAMC,QAAQ2qB,IAAcA,IAA4B,OAAbA,QAAkC,IAAbA,OAAsB,EAASA,EAASx8B,SAGtG,IAAAyG,GAAEiiC,EAAK3a,EAAOyO,IAFV,IAAA/1B,GAAEiiC,GAAO,OAAQ3a,EAAOod,EAAQ5rC,OALhCi9B,CAOmB,CAEtC,IA8NJ,SAASikB,GAAcxgD,GACnB,MAAMsvC,EAAOzE,EAAepD,GAEtB6G,EAAQtuC,OAAO8O,GAAY,QAAO44B,GACxC,OAAO,SAAS,IACR1nC,EACgB,OAATsvC,QAA0B,IAATA,OAAkB,EAASA,EAAK5vC,OAAOJ,OAAM,QAAMU,IAE9D,OAAVsuC,QAA4B,IAAVA,OAAmB,EAASA,EAAM6C,aAAa7xC,OAEhF,+FCrwGA,MAAMmhD,EAA8B,qBAAXlhC,OA+BzB,MAAMmhC,EAA8B,oBAAXr/C,QAAuD,kBAAvBA,OAAOs/C,YAC1DC,EAAc/gD,GAAS6gD,EAAYr/C,OAAOxB,GAAQA,EAElDghD,EAAyBC,GAAS9Z,KAAKC,UAAU6Z,GAClD70C,QAAQ,UAAW,WACnBA,QAAQ,UAAW,WACnBA,QAAQ,UAAW,WAClB80C,EAAYxoB,GAAuB,kBAARA,GAAoByoB,SAASzoB,GAExD0oB,EAAY1oB,GAA8B,oBAAtB2oB,EAAa3oB,GACjC4oB,EAAiB5oB,GAAQ6oB,EAAc7oB,IAAoC,IAA5B/4B,OAAO4oC,KAAK7P,GAAKx4B,OACtE,SAAS,EAAKshD,EAAK1hD,GACQ,qBAAZuC,UACPA,QAAQC,KAAK,aAAek/C,GAExB1hD,GACAuC,QAAQC,KAAKxC,EAAI0C,OAG7B,CACA,MAAM,EAAS7C,OAAOC,OACtB,IAAI6hD,EACJ,MAAMC,EAAgB,IAEVD,IACHA,EACyB,qBAAfE,WACDA,WACgB,qBAATngB,KACHA,KACkB,qBAAX9hB,OACHA,OACkB,qBAAX,EAAAkiC,EACH,EAAAA,EACA,CAAC,GAE/B,SAASC,EAAWC,GAChB,OAAOA,EACF11C,QAAQ,KAAM,QACdA,QAAQ,KAAM,QACdA,QAAQ,KAAM,UACdA,QAAQ,KAAM,SACvB,CACA,MAAM,EAAiBzM,OAAOgC,UAAU6Q,eACxC,SAASuvC,EAAOxgD,EAAKsQ,GACjB,OAAO,EAAe7P,KAAKT,EAAKsQ,EACpC,CASA,MAAME,EAAUD,MAAMC,QAChBiwC,EAActpB,GAAuB,oBAARA,EAC7BupB,EAAYvpB,GAAuB,kBAARA,EAC3B,EAAaA,GAAuB,mBAARA,EAE5B+O,EAAY/O,GACT,OAARA,GAA+B,kBAARA,EAIlBwpB,EAAiBviD,OAAOgC,UAAUI,SAClCs/C,EAAgB5hD,GAAUyiD,EAAelgD,KAAKvC,GAC9C8hD,EAAiB7oB,GAA8B,oBAAtB2oB,EAAa3oB,GAuD5C,SAASypB,IACL,MAAM55B,EAAS,IAAIoe,IAyBnB,MAxBgB,CACZpe,SACA65B,GAAG9yB,EAAOoF,GACN,MAAM2tB,EAAW95B,EAAOe,IAAIgG,GACd+yB,GAAYA,EAAS9hD,KAAKm0B,IAEpCnM,EAAOob,IAAIrU,EAAO,CAACoF,GAE3B,EACA4tB,IAAIhzB,EAAOoF,GACP,MAAM2tB,EAAW95B,EAAOe,IAAIgG,GACxB+yB,GACAA,EAASl4B,OAAOk4B,EAASn1C,QAAQwnB,KAAa,EAAG,EAEzD,EACAogB,KAAKxlB,EAAOizB,IACPh6B,EAAOe,IAAIgG,IAAU,IACjBjd,QACAgC,KAAIqgB,GAAWA,EAAQ6tB,MAC3Bh6B,EAAOe,IAAI,MAAQ,IACfjX,QACAgC,KAAIqgB,GAAWA,EAAQpF,EAAOizB,IACvC,EAGR,CCtLA,MAAMC,EAEc,EAFdA,EAG4B,EAH5BA,EAIwC,EAJxCA,EAKuB,EALvBA,EAM+B,EAN/BA,EAOwB,EAPxBA,EAQ0B,EAR1BA,EASiB,EATjBA,EAU0B,EAV1BA,EAWqB,GAXrBA,EAa4B,GAb5BA,EAcgC,GAdhCA,EAe2B,GAf3BA,EAgB2B,GAhB3BA,EAoBgB,GAqBtB,SAASC,EAAmB1vC,EAAM2vC,EAAKl+C,EAAU,CAAC,GAC9C,MAAM,OAAEm+C,EAAM,SAAErT,EAAQ,KAAE3uC,GAAS6D,EAI7BzE,EAAQ,IAAI6iD,YAAYv8C,OADxB0M,IAON,OALAhT,EAAMgT,KAAOA,EACT2vC,IACA3iD,EAAM8iD,SAAWH,GAErB3iD,EAAM4iD,OAASA,EACR5iD,CACX,CAEA,SAAS+iD,EAAe/iD,GACpB,MAAMA,CACV,CASA,SAASgjD,EAAetnC,EAAOC,EAAKkuB,GAChC,MAAM8Y,EAAM,CAAEjnC,QAAOC,OAIrB,OAHc,MAAVkuB,IACA8Y,EAAI9Y,OAASA,GAEV8Y,CACX,CAEA,MAAMM,EAAU,IAEVC,EAAU,KACVC,EAAU78C,OAAO88C,aAAa,MAC9BC,EAAU/8C,OAAO88C,aAAa,MACpC,SAASE,EAAc9e,GACnB,MAAM+e,EAAO/e,EACb,IAAIgf,EAAS,EACTC,EAAQ,EACRC,EAAU,EACVC,EAAc,EAClB,MAAMC,EAAU7wC,GAVJ,OAUcwwC,EAAKxwC,IAAsBwwC,EAAKxwC,EAAQ,KAAOmwC,EAEnEW,EAAQ9wC,GAAUwwC,EAAKxwC,KAAWswC,EAClCS,EAAQ/wC,GAAUwwC,EAAKxwC,KAAWowC,EAClCY,EAAahxC,GAAU6wC,EAAO7wC,IAHvB,CAACA,GAAUwwC,EAAKxwC,KAAWmwC,EAGMc,CAAKjxC,IAAU8wC,EAAK9wC,IAAU+wC,EAAK/wC,GAK3E0xB,EAAUv5B,GAAW04C,EAAO14C,IAAW24C,EAAK34C,IAAW44C,EAAK54C,GAAUg4C,EAAUK,EAAKr4C,GAG3F,SAASsa,IAWL,OAVAm+B,EAAc,EACVI,EAAUP,KACVC,IACAC,EAAU,GAEVE,EAAOJ,IACPA,IAEJA,IACAE,IACOH,EAAKC,EAChB,CAyBA,MAAO,CACHzwC,MA7CU,IAAMywC,EA8ChBS,KA7CS,IAAMR,EA8CfS,OA7CW,IAAMR,EA8CjBS,WA7Ce,IAAMR,EA8CrBlf,SACA2f,YA7CgB,IAAM3f,EAAO+e,GA8C7Ba,YA7CgB,IAAM5f,EAAO+e,EAASG,GA8CtCn+B,OACA8+B,KAjCJ,WAKI,OAJIV,EAAOJ,EAASG,IAChBA,IAEJA,IACOJ,EAAKC,EAASG,EACzB,EA4BIxmC,MA3BJ,WACIqmC,EAAS,EACTC,EAAQ,EACRC,EAAU,EACVC,EAAc,CAClB,EAuBIY,UAtBJ,SAAmBr5C,EAAS,GACxBy4C,EAAcz4C,CAClB,EAqBIs5C,WApBJ,WACI,MAAM3gC,EAAS2/B,EAASG,EAExB,KAAO9/B,IAAW2/B,GACdh+B,IAEJm+B,EAAc,CAClB,EAeJ,CAEA,MAAMc,OAAMv1C,EAGZ,SAASw1C,EAAgB7a,EAAQplC,EAAU,CAAC,GACxC,MAAMq+C,GAAgC,IAArBr+C,EAAQq+C,SACnB6B,EAAQrB,EAAczZ,GACtB+a,EAAgB,IAAMD,EAAM5xC,QAC5B8xC,EAAkB,KAAMC,OA9FVb,EA8FyBU,EAAMV,OA9FzBC,EA8FiCS,EAAMT,SA9F/Bh5C,EA8FyCy5C,EAAM5xC,QA7F1E,CAAEkxC,OAAMC,SAAQh5C,UAD3B,IAAwB+4C,EAAMC,EAAQh5C,CA8FuD,EACnF65C,EAAWF,IACXG,EAAcJ,IACdK,EAAW,CACbC,YAAa,GACbh6C,OAAQ85C,EACRG,SAAUJ,EACVK,OAAQL,EACRM,SAAU,GACVC,WAAYN,EACZO,aAAcR,EACdS,WAAYT,EACZU,UAAW,EACXC,UAAU,EACVC,KAAM,IAEJr9C,EAAU,IAAM28C,GAChB,QAAEW,GAAYnhD,EACpB,SAASohD,EAAU7yC,EAAM+rB,EAAK7zB,KAAWtK,GACrC,MAAM6uC,EAAMnnC,IAGZ,GAFAy2B,EAAImlB,QAAUh5C,EACd6zB,EAAI7zB,QAAUA,EACV06C,EAAS,CACT,MACM7lD,EAAM2iD,EAAmB1vC,EADnBgwC,EAAevT,EAAI0V,SAAUpmB,GACC,CACtC6jB,OA9BO,YA+BPhiD,SAEJglD,EAAQ7lD,EACZ,CACJ,CACA,SAAS+lD,EAASx9C,EAASgjB,EAAM5rB,GAC7B4I,EAAQ88C,OAASP,IACjBv8C,EAAQ48C,YAAc55B,EACtB,MAAMrlB,EAAQ,CAAEqlB,QAOhB,OANIw3B,IACA78C,EAAM08C,IAAMK,EAAe16C,EAAQ68C,SAAU78C,EAAQ88C,SAE5C,MAAT1lD,IACAuG,EAAMvG,MAAQA,GAEXuG,CACX,CACA,MAAM8/C,EAAez9C,GAAYw9C,EAASx9C,EAAS,IACnD,SAAS09C,EAAIC,EAAMC,GACf,OAAID,EAAK7B,gBAAkB8B,GACvBD,EAAKzgC,OACE0gC,IAGPL,EAAUpD,EAAkCoC,IAAmB,EAAGqB,GAC3D,GAEf,CACA,SAASC,EAAWF,GAChB,IAAIG,EAAM,GACV,KAAOH,EAAK5B,gBAAkBpB,GAAWgD,EAAK5B,gBAAkBnB,GAC5DkD,GAAOH,EAAK5B,cACZ4B,EAAK3B,OAET,OAAO8B,CACX,CACA,SAASC,EAAWJ,GAChB,MAAMG,EAAMD,EAAWF,GAEvB,OADAA,EAAKzB,aACE4B,CACX,CACA,SAASE,EAAkBJ,GACvB,GAAIA,IAAOzB,EACP,OAAO,EAEX,MAAM8B,EAAKL,EAAGM,WAAW,GACzB,OAASD,GAAM,IAAMA,GAAM,KACtBA,GAAM,IAAMA,GAAM,IACZ,KAAPA,CAER,CAkBA,SAASE,EAAsBR,EAAM39C,GACjC,MAAM,YAAE48C,GAAgB58C,EACxB,GAAoB,IAAhB48C,EACA,OAAO,EAEXiB,EAAWF,GACX,MACMS,EAxBV,SAAuBR,GACnB,GAAIA,IAAOzB,EACP,OAAO,EAEX,MAAM8B,EAAKL,EAAGM,WAAW,GACzB,OAAOD,GAAM,IAAMA,GAAM,EAC7B,CAkBgBI,CADsB,MAAvBV,EAAK5B,cAAwB4B,EAAK3B,OAAS2B,EAAK5B,eAG3D,OADA4B,EAAK1B,YACEmC,CACX,CA0EA,SAASE,EAAcX,GACnBE,EAAWF,GACX,MAAMS,EAA6B,MAAvBT,EAAK5B,cAEjB,OADA4B,EAAK1B,YACEmC,CACX,CAWA,SAASG,EAAYZ,EAAM9oC,GAAQ,GAC/B,MAAM+B,EAAK,CAAC4nC,GAAW,EAAOlZ,EAAO,GAAImZ,GAAe,KACpD,MAAMb,EAAKD,EAAK5B,cAChB,MAAW,MAAP6B,EACgB,MAATtY,GAAoCkZ,EAE/B,MAAPZ,GAAiCA,EAG1B,MAAPA,GACLD,EAAK3B,OACEplC,EAAG4nC,EAAU,KAAkB,IAE1B,MAAPZ,IACW,MAATtY,IAA6BmZ,MAE5BnZ,IAASqV,GAAWrV,IAASsV,GAEhCgD,IAAOjD,GACZgD,EAAK3B,OACEplC,GAAG,EAAM+jC,EAAS8D,IAEpBb,IAAOhD,IACZ+C,EAAK3B,OACEplC,GAAG,EAAMgkC,EAAS6D,IAjBT,MAATnZ,GAAmCkZ,CAqB9C,EAEEJ,EAAMxnC,IAEZ,OADA/B,GAAS8oC,EAAK1B,YACPmC,CACX,CACA,SAASM,EAASf,EAAM/mC,GACpB,MAAMgnC,EAAKD,EAAK7B,cAChB,OAAI8B,IAAOzB,EACAA,EAEPvlC,EAAGgnC,IACHD,EAAKzgC,OACE0gC,GAEJ,IACX,CACA,SAASe,EAAmBhB,GAUxB,OAAOe,EAASf,GATCC,IACb,MAAMK,EAAKL,EAAGM,WAAW,GACzB,OAASD,GAAM,IAAMA,GAAM,KACtBA,GAAM,IAAMA,GAAM,IAClBA,GAAM,IAAMA,GAAM,IACZ,KAAPA,GACO,KAAPA,CACH,GAGT,CACA,SAASW,EAAUjB,GAKf,OAAOe,EAASf,GAJCC,IACb,MAAMK,EAAKL,EAAGM,WAAW,GACzB,OAAOD,GAAM,IAAMA,GAAM,EAAE,GAGnC,CACA,SAASY,EAAalB,GAOlB,OAAOe,EAASf,GANCC,IACb,MAAMK,EAAKL,EAAGM,WAAW,GACzB,OAASD,GAAM,IAAMA,GAAM,IACtBA,GAAM,IAAMA,GAAM,IAClBA,GAAM,IAAMA,GAAM,GAAK,GAGpC,CACA,SAASa,EAAUnB,GACf,IAAIC,EAAK,GACLmB,EAAM,GACV,KAAQnB,EAAKgB,EAAUjB,IACnBoB,GAAOnB,EAEX,OAAOmB,CACX,CAUA,SAASC,EAASrB,GACd,IAAIG,EAAM,GACV,OAAa,CACT,MAAMF,EAAKD,EAAK7B,cAChB,GAAW,MAAP8B,GACO,MAAPA,GACO,MAAPA,GACO,MAAPA,IACCA,EACD,MAEC,GAAW,MAAPA,EAAyB,CAC9B,IAAIW,EAAYZ,GAKZ,MAJAG,GAAOF,EACPD,EAAKzgC,MAKb,MACK,GAAI0gC,IAAOjD,GAAWiD,IAAOhD,EAC9B,GAAI2D,EAAYZ,GACZG,GAAOF,EACPD,EAAKzgC,WAEJ,IAAIohC,EAAcX,GACnB,MAGAG,GAAOF,EACPD,EAAKzgC,MACT,MAGA4gC,GAAOF,EACPD,EAAKzgC,MAEb,CACA,OAAO4gC,CACX,CAuDA,SAASmB,EAAmBtB,GACxB,MAAMC,EAAKD,EAAK7B,cAChB,OAAQ8B,GACJ,IAAK,KACL,IAAK,IAED,OADAD,EAAKzgC,OACE,KAAK0gC,IAChB,IAAK,IACD,OAAOsB,EAA0BvB,EAAMC,EAAI,GAC/C,IAAK,IACD,OAAOsB,EAA0BvB,EAAMC,EAAI,GAC/C,QAEI,OADAL,EAAUpD,EAA2CoC,IAAmB,EAAGqB,GACpE,GAEnB,CACA,SAASsB,EAA0BvB,EAAMwB,EAASC,GAC9C1B,EAAIC,EAAMwB,GACV,IAAIE,EAAW,GACf,IAAK,IAAIh+C,EAAI,EAAGA,EAAI+9C,EAAQ/9C,IAAK,CAC7B,MAAMu8C,EAAKiB,EAAalB,GACxB,IAAKC,EAAI,CACLL,EAAUpD,EAAmDoC,IAAmB,EAAG,KAAK4C,IAAUE,IAAW1B,EAAK7B,iBAClH,KACJ,CACAuD,GAAYzB,CAChB,CACA,MAAO,KAAKuB,IAAUE,GAC1B,CAgDA,SAASC,EAAW3B,GAChBI,EAAWJ,GACX,MAAM4B,EAAS7B,EAAIC,EAAM,KAEzB,OADAI,EAAWJ,GACJ4B,CACX,CAEA,SAASC,EAAuB7B,EAAM39C,GAClC,IAAIrC,EAAQ,KAEZ,OADWggD,EAAK7B,eAEZ,IAAK,IAQD,OAPI97C,EAAQm9C,WAAa,GACrBI,EAAUpD,EAA8CoC,IAAmB,GAE/EoB,EAAKzgC,OACLvf,EAAQ6/C,EAASx9C,EAAS,EAAmB,KAC7C+9C,EAAWJ,GACX39C,EAAQm9C,YACDx/C,EACX,IAAK,IAYD,OAXIqC,EAAQm9C,UAAY,GACI,IAAxBn9C,EAAQ48C,aACRW,EAAUpD,EAAqCoC,IAAmB,GAEtEoB,EAAKzgC,OACLvf,EAAQ6/C,EAASx9C,EAAS,EAAoB,KAC9CA,EAAQm9C,YACRn9C,EAAQm9C,UAAY,GAAKY,EAAWJ,GAChC39C,EAAQo9C,UAAkC,IAAtBp9C,EAAQm9C,YAC5Bn9C,EAAQo9C,UAAW,GAEhBz/C,EACX,IAAK,IAMD,OALIqC,EAAQm9C,UAAY,GACpBI,EAAUpD,EAA8CoC,IAAmB,GAE/E5+C,EAAQ8hD,EAAkB9B,EAAM39C,IAAYy9C,EAAYz9C,GACxDA,EAAQm9C,UAAY,EACbx/C,EACX,QACI,IAAI+hD,GAAuB,EACvBC,GAAsB,EACtBC,GAAe,EACnB,GAAItB,EAAcX,GAQd,OAPI39C,EAAQm9C,UAAY,GACpBI,EAAUpD,EAA8CoC,IAAmB,GAE/E5+C,EAAQ6/C,EAASx9C,EAAS,EAAcs/C,EAAW3B,IAEnD39C,EAAQm9C,UAAY,EACpBn9C,EAAQo9C,UAAW,EACZz/C,EAEX,GAAIqC,EAAQm9C,UAAY,IACK,IAAxBn9C,EAAQ48C,aACmB,IAAxB58C,EAAQ48C,aACgB,IAAxB58C,EAAQ48C,aAGZ,OAFAW,EAAUpD,EAA8CoC,IAAmB,GAC3Ev8C,EAAQm9C,UAAY,EACb0C,EAAUlC,EAAM39C,GAE3B,GAAK0/C,EAhbjB,SAAgC/B,EAAM39C,GAClC,MAAM,YAAE48C,GAAgB58C,EACxB,GAAoB,IAAhB48C,EACA,OAAO,EAEXiB,EAAWF,GACX,MAAMS,EAAMJ,EAAkBL,EAAK5B,eAEnC,OADA4B,EAAK1B,YACEmC,CACX,CAuawC0B,CAAuBnC,EAAM39C,GAGrD,OAFArC,EAAQ6/C,EAASx9C,EAAS,EAjM1C,SAA6B29C,GACzBI,EAAWJ,GACX,IAAIC,EAAK,GACLjmD,EAAO,GACX,KAAQimD,EAAKe,EAAmBhB,IAC5BhmD,GAAQimD,EAKZ,OAHID,EAAK7B,gBAAkBK,GACvBoB,EAAUpD,EAA8CoC,IAAmB,GAExE5kD,CACX,CAsLyDooD,CAAoBpC,IAC7DI,EAAWJ,GACJhgD,EAEX,GAAKgiD,EAAsBxB,EAAsBR,EAAM39C,GAGnD,OAFArC,EAAQ6/C,EAASx9C,EAAS,EA1L1C,SAA4B29C,GACxBI,EAAWJ,GACX,IAAIvmD,EAAQ,GAWZ,MAV2B,MAAvBumD,EAAK7B,eACL6B,EAAKzgC,OACL9lB,GAAS,IAAI0nD,EAAUnB,MAGvBvmD,GAAS0nD,EAAUnB,GAEnBA,EAAK7B,gBAAkBK,GACvBoB,EAAUpD,EAA8CoC,IAAmB,GAExEnlD,CACX,CA4KwD4oD,CAAmBrC,IAC3DI,EAAWJ,GACJhgD,EAEX,GAAKiiD,EArajB,SAAwBjC,EAAM39C,GAC1B,MAAM,YAAE48C,GAAgB58C,EACxB,GAAoB,IAAhB48C,EACA,OAAO,EAEXiB,EAAWF,GACX,MAAMS,EArHY,MAqHNT,EAAK5B,cAEjB,OADA4B,EAAK1B,YACEmC,CACX,CA4ZgC6B,CAAetC,EAAM39C,GAGrC,OAFArC,EAAQ6/C,EAASx9C,EAAS,EAhL1C,SAAqB29C,GACjBI,EAAWJ,GACXD,EAAIC,EAAM,KACV,IAAIC,EAAK,GACLsC,EAAU,GACd,MAAMtpC,EAAMvU,GA1WM,MA0WAA,GAA2BA,IAAMu4C,EACnD,KAAQgD,EAAKc,EAASf,EAAM/mC,IAEpBspC,GADO,OAAPtC,EACWqB,EAAmBtB,GAGnBC,EAGnB,MAAMuC,EAAUxC,EAAK7B,cACrB,OAAIqE,IAAYvF,GAAWuF,IAAYhE,GACnCoB,EAAUpD,EAA4DoC,IAAmB,GAErF4D,IAAYvF,IACZ+C,EAAKzgC,OACLwgC,EAAIC,EAAM,MAEPuC,IAEXxC,EAAIC,EAAM,KACHuC,EACX,CAsJ2DE,CAAYzC,IACvDI,EAAWJ,GACJhgD,EAEX,IAAK+hD,IAAyBC,IAAwBC,EAKlD,OAHAjiD,EAAQ6/C,EAASx9C,EAAS,GA9H1C,SAA+B29C,GAC3BI,EAAWJ,GACX,IAAIC,EAAK,GACLyC,EAAc,GAClB,MAAMC,EAAW1C,GAAc,MAAPA,GACb,MAAPA,GACAA,IAAOjD,GACPiD,IAAOhD,EACX,KAAQgD,EAAKc,EAASf,EAAM2C,IACxBD,GAAezC,EAEnB,OAAOyC,CACX,CAkHiEE,CAAsB5C,IACvEJ,EAAUpD,EAAgDoC,IAAmB,EAAG5+C,EAAMvG,OACtF2mD,EAAWJ,GACJhgD,EAInB,OAAOA,CACX,CAEA,SAAS8hD,EAAkB9B,EAAM39C,GAC7B,MAAM,YAAE48C,GAAgB58C,EACxB,IAAIrC,EAAQ,KACZ,MAAMigD,EAAKD,EAAK7B,cAQhB,OAPqB,IAAhBc,GACe,IAAhBA,GACgB,KAAhBA,GACgB,KAAhBA,GACCgB,IAAOhD,GAAWgD,IAAOjD,GAC1B4C,EAAUpD,EAAyCoC,IAAmB,GAElEqB,GACJ,IAAK,IAID,OAHAD,EAAKzgC,OACLvf,EAAQ6/C,EAASx9C,EAAS,EAAqB,KAC/CA,EAAQo9C,UAAW,EACZz/C,EACX,IAAK,IAGD,OAFAogD,EAAWJ,GACXA,EAAKzgC,OACEsgC,EAASx9C,EAAS,EAAmB,KAChD,IAAK,IAGD,OAFA+9C,EAAWJ,GACXA,EAAKzgC,OACEsgC,EAASx9C,EAAS,GAA0B,KACvD,QACI,OAAIs+C,EAAcX,IACdhgD,EAAQ6/C,EAASx9C,EAAS,EAAcs/C,EAAW3B,IAEnD39C,EAAQm9C,UAAY,EACpBn9C,EAAQo9C,UAAW,EACZz/C,GA3cvB,SAA0BggD,EAAM39C,GAC5B,MAAM,YAAE48C,GAAgB58C,EACxB,GAAoB,IAAhB48C,EACA,OAAO,EAEXiB,EAAWF,GACX,MAAMS,EAA6B,MAAvBT,EAAK5B,cAEjB,OADA4B,EAAK1B,YACEmC,CACX,CAocgBoC,CAAiB7C,EAAM39C,IAzbvC,SAAgC29C,EAAM39C,GAClC,MAAM,YAAE48C,GAAgB58C,EACxB,GAAsB,IAAhB48C,GACc,KAAhBA,EACA,OAAO,EAEXiB,EAAWF,GACX,MAAMS,EAA6B,MAAvBT,EAAK5B,cAEjB,OADA4B,EAAK1B,YACEmC,CACX,CAgbgBqC,CAAuB9C,EAAM39C,IAC7B+9C,EAAWJ,GACJ8B,EAAkB9B,EAAM39C,IAtc/C,SAA+B29C,EAAM39C,GACjC,MAAM,YAAE48C,GAAgB58C,EACxB,GAAoB,IAAhB48C,EACA,OAAO,EAEXiB,EAAWF,GACX,MAAMS,EAAMJ,EAAkBL,EAAK5B,eAEnC,OADA4B,EAAK1B,YACEmC,CACX,CA+bgBsC,CAAsB/C,EAAM39C,IAC5B+9C,EAAWJ,GACJH,EAASx9C,EAAS,GAnKzC,SAA4B29C,GACxB,IAAIC,EAAK,GACLjmD,EAAO,GACX,KAAQimD,EAAKe,EAAmBhB,IAC5BhmD,GAAQimD,EAEZ,OAAOjmD,CACX,CA4JkEgpD,CAAmBhD,KArbrF,SAA4BA,EAAM39C,GAC9B,MAAM,YAAE48C,GAAgB58C,EACxB,GAAoB,KAAhB48C,EACA,OAAO,EAEX,MAAMhmC,EAAK,KACP,MAAMgnC,EAAKD,EAAK5B,cAChB,MAAW,MAAP6B,EACOI,EAAkBL,EAAK3B,UAElB,MAAP4B,GACE,MAAPA,GACO,MAAPA,GACO,MAAPA,GACO,MAAPA,GACAA,IAAOjD,IACNiD,KAGIA,IAAOhD,GACZ+C,EAAK3B,OACEplC,KAIAonC,EAAkBJ,GAC7B,EAEEQ,EAAMxnC,IAEZ,OADA+mC,EAAK1B,YACEmC,CACX,CAwZgBwC,CAAmBjD,EAAM39C,IACzB+9C,EAAWJ,GACA,MAAPC,EAEO4B,EAAuB7B,EAAM39C,IAAYrC,EAGzC6/C,EAASx9C,EAAS,GApK7C,SAAyB29C,GACrB,MAAM/mC,EAAK,CAACiqC,GAAS,EAAO/C,KACxB,MAAMF,EAAKD,EAAK7B,cAChB,MAAW,MAAP8B,GACO,MAAPA,GACO,MAAPA,GACO,MAAPA,GACCA,EAGIA,IAAOjD,EACLmD,EAEFF,IAAOhD,GACZkD,GAAOF,EACPD,EAAKzgC,OACEtG,EAAGiqC,EAAQ/C,KAGlBA,GAAOF,EACPD,EAAKzgC,OACEtG,GAAG,EAAMknC,IAbTA,CAcX,EAEJ,OAAOlnC,GAAG,EAAO,GACrB,CA2IiEkqC,CAAgBnD,MAGjD,IAAhBf,GACAW,EAAUpD,EAAyCoC,IAAmB,GAE1Ev8C,EAAQm9C,UAAY,EACpBn9C,EAAQo9C,UAAW,EACZyC,EAAUlC,EAAM39C,IAEnC,CAEA,SAAS6/C,EAAUlC,EAAM39C,GACrB,IAAIrC,EAAQ,CAAEqlB,KAAM,IACpB,GAAIhjB,EAAQm9C,UAAY,EACpB,OAAOqC,EAAuB7B,EAAM39C,IAAYy9C,EAAYz9C,GAEhE,GAAIA,EAAQo9C,SACR,OAAOqC,EAAkB9B,EAAM39C,IAAYy9C,EAAYz9C,GAG3D,OADW29C,EAAK7B,eAEZ,IAAK,IACD,OAAO0D,EAAuB7B,EAAM39C,IAAYy9C,EAAYz9C,GAChE,IAAK,IAGD,OAFAu9C,EAAUpD,EAA4CoC,IAAmB,GACzEoB,EAAKzgC,OACEsgC,EAASx9C,EAAS,EAAoB,KACjD,IAAK,IACD,OAAOy/C,EAAkB9B,EAAM39C,IAAYy9C,EAAYz9C,GAC3D,QACI,GAAIs+C,EAAcX,GAKd,OAJAhgD,EAAQ6/C,EAASx9C,EAAS,EAAcs/C,EAAW3B,IAEnD39C,EAAQm9C,UAAY,EACpBn9C,EAAQo9C,UAAW,EACZz/C,EAEX,MAAM,SAAEojD,EAAQ,SAAEvC,GA9b9B,SAA2Bb,GACvB,MAAMqD,EAASnD,EAAWF,GACpBS,EAA6B,MAAvBT,EAAK5B,eACG,MAAhB4B,EAAK3B,OAET,OADA2B,EAAK1B,YACE,CACH8E,SAAU3C,EACVI,SAAUwC,EAAOnpD,OAAS,EAElC,CAqb2CopD,CAAkBtD,GACjD,GAAIoD,EACA,OAAOvC,EACDhB,EAASx9C,EAAS,EAAcg/C,EAASrB,IACzCH,EAASx9C,EAAS,EAvWxC,SAAoB29C,GAChBI,EAAWJ,GACX,MAAMC,EAAKD,EAAK7B,cAKhB,MAJW,MAAP8B,GACAL,EAAUpD,EAAkCoC,IAAmB,EAAGqB,GAEtED,EAAKzgC,OACE,GACX,CA+VwDgkC,CAAWvD,IAEvD,GAAIY,EAAYZ,GACZ,OAAOH,EAASx9C,EAAS,EAAcg/C,EAASrB,IAI5D,OAAOhgD,CACX,CAcA,MAAO,CACHwjD,UAdJ,WACI,MAAM,YAAEvE,EAAW,OAAEh6C,EAAM,SAAEi6C,EAAQ,OAAEC,GAAWH,EAOlD,OANAA,EAASI,SAAWH,EACpBD,EAASK,WAAap6C,EACtB+5C,EAASM,aAAeJ,EACxBF,EAASO,WAAaJ,EACtBH,EAAS/5C,OAAS05C,IAClBK,EAASE,SAAWN,IAChBF,EAAMP,gBAAkBK,EACjBqB,EAASb,EAAU,IAEvBkD,EAAUxD,EAAOM,EAC5B,EAGIL,gBACAC,kBACAv8C,UAER,CAEA,MAEMohD,EAAgB,wDACtB,SAASC,EAAmB19C,EAAO29C,EAAYC,GAC3C,OAAQ59C,GACJ,IAAK,OACD,MAAO,KACX,IAAK,MACD,MAAO,IACX,QAAS,CACL,MAAM69C,EAAYl3C,SAASg3C,GAAcC,EAAY,IACrD,OAAIC,GAAa,OAAUA,GAAa,MAC7BxjD,OAAOyjD,cAAcD,GAIzB,QACX,EAER,CACA,SAASE,EAAavlD,EAAU,CAAC,GAC7B,MAAMq+C,GAAgC,IAArBr+C,EAAQq+C,UACnB,QAAE8C,GAAYnhD,EACpB,SAASohD,EAAUoE,EAAUj3C,EAAM0I,EAAOxQ,KAAWtK,GACjD,MAAM+a,EAAMsuC,EAASpF,kBAGrB,GAFAlpC,EAAIzQ,QAAUA,EACdyQ,EAAIuoC,QAAUh5C,EACV06C,EAAS,CACT,MACM7lD,EAAM2iD,EAAmB1vC,EADnBgwC,EAAetnC,EAAOC,GACQ,CACtCinC,OA9BK,SA+BLhiD,SAEJglD,EAAQ7lD,EACZ,CACJ,CACA,SAASmqD,EAAU5+B,EAAMpgB,EAAQy3C,GAC7B,MAAMjjC,EAAO,CACT4L,OACA5P,MAAOxQ,EACPyQ,IAAKzQ,GAKT,OAHI43C,IACApjC,EAAKijC,IAAM,CAAEjnC,MAAOinC,EAAKhnC,IAAKgnC,IAE3BjjC,CACX,CACA,SAASyqC,EAAQzqC,EAAMxU,EAAQ6zB,EAAKzT,GAChC5L,EAAK/D,IAAMzQ,EACPogB,IACA5L,EAAK4L,KAAOA,GAEZw3B,GAAYpjC,EAAKijC,MACjBjjC,EAAKijC,IAAIhnC,IAAMojB,EAEvB,CACA,SAASqrB,EAAUC,EAAW3qD,GAC1B,MAAM4I,EAAU+hD,EAAU/hD,UACpBoX,EAAOwqC,EAAU,EAAc5hD,EAAQ4C,OAAQ5C,EAAQ68C,UAG7D,OAFAzlC,EAAKhgB,MAAQA,EACbyqD,EAAQzqC,EAAM2qC,EAAUzF,gBAAiByF,EAAUxF,mBAC5CnlC,CACX,CACA,SAAS4qC,EAAUD,EAAWt3C,GAC1B,MAAMzK,EAAU+hD,EAAU/hD,WAClBg9C,WAAYp6C,EAAQq6C,aAAc5C,GAAQr6C,EAC5CoX,EAAOwqC,EAAU,EAAch/C,EAAQy3C,GAI7C,OAHAjjC,EAAK3M,MAAQH,SAASG,EAAO,IAC7Bs3C,EAAUZ,YACVU,EAAQzqC,EAAM2qC,EAAUzF,gBAAiByF,EAAUxF,mBAC5CnlC,CACX,CACA,SAAS6qC,EAAWF,EAAWv4C,GAC3B,MAAMxJ,EAAU+hD,EAAU/hD,WAClBg9C,WAAYp6C,EAAQq6C,aAAc5C,GAAQr6C,EAC5CoX,EAAOwqC,EAAU,EAAeh/C,EAAQy3C,GAI9C,OAHAjjC,EAAK5N,IAAMA,EACXu4C,EAAUZ,YACVU,EAAQzqC,EAAM2qC,EAAUzF,gBAAiByF,EAAUxF,mBAC5CnlC,CACX,CACA,SAAS8qC,EAAaH,EAAW3qD,GAC7B,MAAM4I,EAAU+hD,EAAU/hD,WAClBg9C,WAAYp6C,EAAQq6C,aAAc5C,GAAQr6C,EAC5CoX,EAAOwqC,EAAU,EAAiBh/C,EAAQy3C,GAIhD,OAHAjjC,EAAKhgB,MAAQA,EAAM2M,QAAQq9C,EAAeC,GAC1CU,EAAUZ,YACVU,EAAQzqC,EAAM2qC,EAAUzF,gBAAiByF,EAAUxF,mBAC5CnlC,CACX,CAiCA,SAAS+qC,EAAYJ,GACjB,MAAM/hD,EAAU+hD,EAAU/hD,UACpBoiD,EAAaR,EAAU,EAAgB5hD,EAAQ4C,OAAQ5C,EAAQ68C,UACrE,IAAIl/C,EAAQokD,EAAUZ,YACtB,GAAmB,IAAfxjD,EAAMqlB,KAA4B,CAClC,MAAMq/B,EArCd,SAA6BN,GACzB,MAAMpkD,EAAQokD,EAAUZ,YAClBnhD,EAAU+hD,EAAU/hD,WAClBg9C,WAAYp6C,EAAQq6C,aAAc5C,GAAQr6C,EAC5CoX,EAAOwqC,EAAU,EAAwBh/C,EAAQy3C,GACvD,OAAmB,KAAf18C,EAAMqlB,MAENu6B,EAAUwE,EAAW5H,EAAoDn6C,EAAQi9C,aAAc,GAC/F7lC,EAAKhgB,MAAQ,GACbyqD,EAAQzqC,EAAMxU,EAAQy3C,GACf,CACHiI,iBAAkB3kD,EAClByZ,UAIW,MAAfzZ,EAAMvG,OACNmmD,EAAUwE,EAAW5H,EAA+Cn6C,EAAQi9C,aAAc,EAAGsF,GAAgB5kD,IAEjHyZ,EAAKhgB,MAAQuG,EAAMvG,OAAS,GAC5ByqD,EAAQzqC,EAAM2qC,EAAUzF,gBAAiByF,EAAUxF,mBAC5C,CACHnlC,QAER,CAauBorC,CAAoBT,GACnCK,EAAWK,SAAWJ,EAAOjrC,KAC7BzZ,EAAQ0kD,EAAOC,kBAAoBP,EAAUZ,WACjD,CAUA,OARmB,KAAfxjD,EAAMqlB,MACNu6B,EAAUwE,EAAW5H,EAA+Cn6C,EAAQi9C,aAAc,EAAGsF,GAAgB5kD,IAEjHA,EAAQokD,EAAUZ,YAEC,IAAfxjD,EAAMqlB,OACNrlB,EAAQokD,EAAUZ,aAEdxjD,EAAMqlB,MACV,KAAK,GACkB,MAAfrlB,EAAMvG,OACNmmD,EAAUwE,EAAW5H,EAA+Cn6C,EAAQi9C,aAAc,EAAGsF,GAAgB5kD,IAEjHykD,EAAW54C,IA9BvB,SAAwBu4C,EAAW3qD,GAC/B,MAAM4I,EAAU+hD,EAAU/hD,UACpBoX,EAAOwqC,EAAU,EAAmB5hD,EAAQ4C,OAAQ5C,EAAQ68C,UAGlE,OAFAzlC,EAAKhgB,MAAQA,EACbyqD,EAAQzqC,EAAM2qC,EAAUzF,gBAAiByF,EAAUxF,mBAC5CnlC,CACX,CAwB6BsrC,CAAeX,EAAWpkD,EAAMvG,OAAS,IAC1D,MACJ,KAAK,EACkB,MAAfuG,EAAMvG,OACNmmD,EAAUwE,EAAW5H,EAA+Cn6C,EAAQi9C,aAAc,EAAGsF,GAAgB5kD,IAEjHykD,EAAW54C,IAAMy4C,EAAWF,EAAWpkD,EAAMvG,OAAS,IACtD,MACJ,KAAK,EACkB,MAAfuG,EAAMvG,OACNmmD,EAAUwE,EAAW5H,EAA+Cn6C,EAAQi9C,aAAc,EAAGsF,GAAgB5kD,IAEjHykD,EAAW54C,IAAMw4C,EAAUD,EAAWpkD,EAAMvG,OAAS,IACrD,MACJ,KAAK,EACkB,MAAfuG,EAAMvG,OACNmmD,EAAUwE,EAAW5H,EAA+Cn6C,EAAQi9C,aAAc,EAAGsF,GAAgB5kD,IAEjHykD,EAAW54C,IAAM04C,EAAaH,EAAWpkD,EAAMvG,OAAS,IACxD,MACJ,QAEImmD,EAAUwE,EAAW5H,EAA+Cn6C,EAAQi9C,aAAc,GAC1F,MAAM0F,EAAcZ,EAAU/hD,UACxB4iD,EAAqBhB,EAAU,EAAmBe,EAAY//C,OAAQ+/C,EAAY9F,UAKxF,OAJA+F,EAAmBxrD,MAAQ,GAC3ByqD,EAAQe,EAAoBD,EAAY//C,OAAQ+/C,EAAY9F,UAC5DuF,EAAW54C,IAAMo5C,EACjBf,EAAQO,EAAYO,EAAY//C,OAAQ+/C,EAAY9F,UAC7C,CACHyF,iBAAkB3kD,EAClByZ,KAAMgrC,GAIlB,OADAP,EAAQO,EAAYL,EAAUzF,gBAAiByF,EAAUxF,mBAClD,CACHnlC,KAAMgrC,EAEd,CACA,SAASS,EAAad,GAClB,MAAM/hD,EAAU+hD,EAAU/hD,UAOpBoX,EAAOwqC,EAAU,EANqB,IAAxB5hD,EAAQ48C,YACtBmF,EAAUzF,gBACVt8C,EAAQ4C,OAC2B,IAAxB5C,EAAQ48C,YACnB58C,EAAQ88C,OACR98C,EAAQ68C,UAEdzlC,EAAK0rC,MAAQ,GACb,IAAI3B,EAAY,KAChB,EAAG,CACC,MAAMxjD,EAAQwjD,GAAaY,EAAUZ,YAErC,OADAA,EAAY,KACJxjD,EAAMqlB,MACV,KAAK,EACkB,MAAfrlB,EAAMvG,OACNmmD,EAAUwE,EAAW5H,EAA+Cn6C,EAAQi9C,aAAc,EAAGsF,GAAgB5kD,IAEjHyZ,EAAK0rC,MAAM5qD,KAAK4pD,EAAUC,EAAWpkD,EAAMvG,OAAS,KACpD,MACJ,KAAK,EACkB,MAAfuG,EAAMvG,OACNmmD,EAAUwE,EAAW5H,EAA+Cn6C,EAAQi9C,aAAc,EAAGsF,GAAgB5kD,IAEjHyZ,EAAK0rC,MAAM5qD,KAAK8pD,EAAUD,EAAWpkD,EAAMvG,OAAS,KACpD,MACJ,KAAK,EACkB,MAAfuG,EAAMvG,OACNmmD,EAAUwE,EAAW5H,EAA+Cn6C,EAAQi9C,aAAc,EAAGsF,GAAgB5kD,IAEjHyZ,EAAK0rC,MAAM5qD,KAAK+pD,EAAWF,EAAWpkD,EAAMvG,OAAS,KACrD,MACJ,KAAK,EACkB,MAAfuG,EAAMvG,OACNmmD,EAAUwE,EAAW5H,EAA+Cn6C,EAAQi9C,aAAc,EAAGsF,GAAgB5kD,IAEjHyZ,EAAK0rC,MAAM5qD,KAAKgqD,EAAaH,EAAWpkD,EAAMvG,OAAS,KACvD,MACJ,KAAK,EACD,MAAMirD,EAASF,EAAYJ,GAC3B3qC,EAAK0rC,MAAM5qD,KAAKmqD,EAAOjrC,MACvB+pC,EAAYkB,EAAOC,kBAAoB,KAGnD,OAAiC,KAAxBtiD,EAAQ48C,aACW,IAAxB58C,EAAQ48C,aASZ,OADAiF,EAAQzqC,EANkC,IAAxBpX,EAAQ48C,YACpB58C,EAAQg9C,WACR+E,EAAUzF,gBACuB,IAAxBt8C,EAAQ48C,YACjB58C,EAAQk9C,WACR6E,EAAUxF,mBAETnlC,CACX,CAoBA,SAAS2rC,EAAchB,GACnB,MAAM/hD,EAAU+hD,EAAU/hD,WACpB,OAAE4C,EAAM,SAAEi6C,GAAa78C,EACvBgjD,EAAUH,EAAad,GAC7B,OAA4B,KAAxB/hD,EAAQ48C,YACDoG,EAxBf,SAAqBjB,EAAWn/C,EAAQy3C,EAAK2I,GACzC,MAAMhjD,EAAU+hD,EAAU/hD,UAC1B,IAAIijD,EAA2C,IAAzBD,EAAQF,MAAMjrD,OACpC,MAAMuf,EAAOwqC,EAAU,EAAgBh/C,EAAQy3C,GAC/CjjC,EAAK8rC,MAAQ,GACb9rC,EAAK8rC,MAAMhrD,KAAK8qD,GAChB,EAAG,CACC,MAAM7J,EAAM0J,EAAad,GACpBkB,IACDA,EAAuC,IAArB9J,EAAI2J,MAAMjrD,QAEhCuf,EAAK8rC,MAAMhrD,KAAKihD,EACpB,OAAiC,KAAxBn5C,EAAQ48C,aAKjB,OAJIqG,GACA1F,EAAUwE,EAAW5H,EAAgDE,EAAK,GAE9EwH,EAAQzqC,EAAM2qC,EAAUzF,gBAAiByF,EAAUxF,mBAC5CnlC,CACX,CASe+rC,CAAYpB,EAAWn/C,EAAQi6C,EAAUmG,EAExD,CAgBA,MAAO,CAAEljB,MAfT,SAAeyB,GACX,MAAMwgB,EAAY3F,EAAgB7a,EAAQ,EAAO,CAAC,EAAGplC,IAC/C6D,EAAU+hD,EAAU/hD,UACpBoX,EAAOwqC,EAAU,EAAkB5hD,EAAQ4C,OAAQ5C,EAAQ68C,UAUjE,OATIrC,GAAYpjC,EAAKijC,MACjBjjC,EAAKijC,IAAI9Y,OAASA,GAEtBnqB,EAAK4D,KAAO+nC,EAAchB,GAEE,KAAxB/hD,EAAQ48C,aACRW,EAAUwE,EAAW5H,EAA+Cn6C,EAAQi9C,aAAc,EAAG1b,EAAOvhC,EAAQ4C,SAAW,IAE3Hi/C,EAAQzqC,EAAM2qC,EAAUzF,gBAAiByF,EAAUxF,mBAC5CnlC,CACX,EAEJ,CACA,SAASmrC,GAAgB5kD,GACrB,GAAmB,KAAfA,EAAMqlB,KACN,MAAO,MAEX,MAAMrrB,GAAQgG,EAAMvG,OAAS,IAAI2M,QAAQ,UAAW,OACpD,OAAOpM,EAAKE,OAAS,GAAKF,EAAKqS,MAAM,EAAG,GAAK,SAAMrS,CACvD,CAeA,SAASyrD,GAAcrlB,EAAOslB,GAC1B,IAAK,IAAIhiD,EAAI,EAAGA,EAAI08B,EAAMlmC,OAAQwJ,IAC9BiiD,GAAavlB,EAAM18B,GAAIgiD,EAE/B,CACA,SAASC,GAAalsC,EAAMisC,GAExB,OAAQjsC,EAAK4L,MACT,KAAK,EACDogC,GAAchsC,EAAK8rC,MAAOG,GAC1BA,EAAYE,OAAO,UACnB,MACJ,KAAK,EACDH,GAAchsC,EAAK0rC,MAAOO,GAC1B,MACJ,KAAK,EAEDC,GADelsC,EACK5N,IAAK65C,GACzBA,EAAYE,OAAO,UACnBF,EAAYE,OAAO,QACnB,MACJ,KAAK,EACDF,EAAYE,OAAO,eACnBF,EAAYE,OAAO,QACnB,MACJ,KAAK,EACDF,EAAYE,OAAO,eACnBF,EAAYE,OAAO,SAI/B,CAEA,SAAS7qC,GAAU8qC,EAAKrnD,EAAU,CAAC,GAE/B,MAAMknD,EAhDV,SAA2BG,EAAKrnD,EAAU,CAAC,GAEvC,MAAMwgD,EAAW,CACb6G,MACAC,QAAS,IAAIr+B,KAOjB,MAAO,CAAEplB,QALO,IAAM28C,EAKJ4G,OAJF5rD,IACZglD,EAAS8G,QAAQ73B,IAAIj0B,GACdA,GAGf,CAoCwB+rD,CAAkBF,GACtCH,EAAYE,OAAO,aAEnBC,EAAIxoC,MAAQsoC,GAAaE,EAAIxoC,KAAMqoC,GAEnC,MAAMrjD,EAAUqjD,EAAYrjD,UAC5BwjD,EAAIC,QAAUh6C,MAAMwV,KAAKjf,EAAQyjD,QACrC,CAqGA,SAASE,GAAaC,EAAWxsC,GAC7B,MAAM,OAAEmsC,GAAWK,EACnB,OAAQxsC,EAAK4L,MACT,KAAK,GAXb,SAA0B4gC,EAAWxsC,GAC7BA,EAAK4D,KACL2oC,GAAaC,EAAWxsC,EAAK4D,MAG7B4oC,EAAU1rD,KAAK,OAEvB,CAKY2rD,CAAiBD,EAAWxsC,GAC5B,MACJ,KAAK,GA/Bb,SAA4BwsC,EAAWxsC,GACnC,MAAM,OAAEmsC,EAAM,WAAEO,GAAeF,EAC/B,GAAIxsC,EAAK8rC,MAAMrrD,OAAS,EAAG,CACvB+rD,EAAU1rD,KAAK,GAAGqrD,EAAO,eACzBK,EAAUG,OAAOD,KACjB,MAAMjsD,EAASuf,EAAK8rC,MAAMrrD,OAC1B,IAAK,IAAIwJ,EAAI,EAAGA,EAAIxJ,IAChB8rD,GAAaC,EAAWxsC,EAAK8rC,MAAM7hD,IAC/BA,IAAMxJ,EAAS,GAFKwJ,IAKxBuiD,EAAU1rD,KAAK,MAEnB0rD,EAAUI,SAASF,KACnBF,EAAU1rD,KAAK,KACnB,CACJ,CAgBY+rD,CAAmBL,EAAWxsC,GAC9B,MACJ,KAAK,GAjDb,SAA6BwsC,EAAWxsC,GACpC,MAAM,OAAEmsC,EAAM,WAAEO,GAAeF,EAC/BA,EAAU1rD,KAAK,GAAGqrD,EAAO,kBACzBK,EAAUG,OAAOD,KACjB,MAAMjsD,EAASuf,EAAK0rC,MAAMjrD,OAC1B,IAAK,IAAIwJ,EAAI,EAAGA,EAAIxJ,IAChB8rD,GAAaC,EAAWxsC,EAAK0rC,MAAMzhD,IAC/BA,IAAMxJ,EAAS,GAFKwJ,IAKxBuiD,EAAU1rD,KAAK,MAEnB0rD,EAAUI,SAASF,KACnBF,EAAU1rD,KAAK,KACnB,CAoCYgsD,CAAoBN,EAAWxsC,GAC/B,MACJ,KAAK,GAlEb,SAA4BwsC,EAAWxsC,GACnC,MAAM,OAAEmsC,GAAWK,EACnBA,EAAU1rD,KAAK,GAAGqrD,EAAO,cACzBI,GAAaC,EAAWxsC,EAAK5N,KACzB4N,EAAKqrC,UACLmB,EAAU1rD,KAAK,MACfyrD,GAAaC,EAAWxsC,EAAKqrC,UAC7BmB,EAAU1rD,KAAK,YAGf0rD,EAAU1rD,KAAK,sBAEnB0rD,EAAU1rD,KAAK,IACnB,CAsDYisD,CAAmBP,EAAWxsC,GAC9B,MACJ,KAAK,EAGL,KAAK,EASL,KAAK,EAGL,KAAK,EACDwsC,EAAU1rD,KAAK4mC,KAAKC,UAAU3nB,EAAKhgB,OAAQggB,GAC3C,MAXJ,KAAK,EACDwsC,EAAU1rD,KAAK,GAAGqrD,EAAO,kBAAoCA,EAAO,WAAsBnsC,EAAK3M,UAAW2M,GAC1G,MACJ,KAAK,EACDwsC,EAAU1rD,KAAK,GAAGqrD,EAAO,kBAAoCA,EAAO,YAAwBzkB,KAAKC,UAAU3nB,EAAK5N,SAAU4N,GAatI,CA0CA,SAASgtC,GAAY7iB,EAAQplC,EAAU,CAAC,GACpC,MAAMkoD,EAAkB,EAAO,CAAC,EAAGloD,GAG7BqnD,EADS9B,EAAa2C,GACTvkB,MAAMyB,GAIzB,OAFA7oB,GAAU8qC,EAAKa,GA9CF,EAACb,EAAKrnD,EAAU,CAAC,KAE9B,MAAM+wC,EAAO0M,EAASz9C,EAAQ+wC,MAAQ/wC,EAAQ+wC,KAAO,SAC/CoX,EAAW1K,EAASz9C,EAAQmoD,UAC5BnoD,EAAQmoD,SACR,eACAC,IAAcpoD,EAAQooD,UAEtBC,EAAyC,MAAzBroD,EAAQqoD,cACxBroD,EAAQqoD,cACC,UAATtX,EACI,IACA,KACJ4W,EAAa3nD,EAAQ2nD,WAAa3nD,EAAQ2nD,WAAsB,UAAT5W,EACvDuW,EAAUD,EAAIC,SAAW,GACzBG,EA1JV,SAA6BJ,EAAKrnD,GAC9B,MAAM,UAAEooD,EAAS,SAAED,EAAQ,cAAEE,EAAeV,WAAYW,GAAgBtoD,EAClEwgD,EAAW,CACbpb,OAAQiiB,EAAInJ,IAAI9Y,OAChB+iB,WACA55C,KAAM,GACNkxC,OAAQ,EACRD,KAAM,EACN/4C,OAAQ,EACRoJ,SAAKpF,EACL49C,gBACAV,WAAYW,EACZC,YAAa,GAGjB,SAASxsD,EAAKwS,EAAM0M,GAChBulC,EAASjyC,MAAQA,CACrB,CACA,SAASi6C,EAASl+B,EAAGm+B,GAAgB,GACjC,MAAMC,EAAiBD,EAAgBJ,EAAgB,GACvDtsD,EAAKusD,EAAcI,EAAiB,KAAKC,OAAOr+B,GAAKo+B,EACzD,CAcA,MAAO,CACH7kD,QAtBY,IAAM28C,EAuBlBzkD,OACA6rD,OAhBJ,SAAgBgB,GAAc,GAC1B,MAAMC,IAAUrI,EAAS+H,YACzBK,GAAeJ,EAASK,EAC5B,EAcIhB,SAbJ,SAAkBe,GAAc,GAC5B,MAAMC,IAAUrI,EAAS+H,YACzBK,GAAeJ,EAASK,EAC5B,EAWIC,QAVJ,WACIN,EAAShI,EAAS+H,YACtB,EASInB,OARY/5C,GAAQ,IAAIA,IASxBs6C,WARe,IAAMnH,EAASmH,WAUtC,CA8GsBoB,CAAoB1B,EAAK,CACvCtW,OACAoX,WACAC,YACAC,gBACAV,eAEJF,EAAU1rD,KAAc,WAATg1C,EAAoB,2BAA6B,cAChE0W,EAAUG,OAAOD,GACbL,EAAQ5rD,OAAS,IACjB+rD,EAAU1rD,KAAK,WAAWurD,EAAQz3C,KAAItN,GAAK,GAAGA,OAAOA,MAAK0N,KAAK,iBAC/Dw3C,EAAUqB,WAEdrB,EAAU1rD,KAAK,WACfyrD,GAAaC,EAAWJ,GACxBI,EAAUI,SAASF,GACnBF,EAAU1rD,KAAK,KACf,MAAM,KAAEwS,EAAI,IAAEsB,GAAQ43C,EAAU5jD,UAChC,MAAO,CACHwjD,MACA94C,OACAsB,IAAKA,EAAMA,EAAIm5C,cAAWv+C,EAC7B,EAWMw+C,CAAS5B,EAAKa,EACzB,CCp1CA,MAAMgB,GACQ,YADRA,GAEiB,qBCGjBC,GAAoB,GAC1BA,GAAiB,GAAuB,CACpC,EAAuB,CAAC,GACxB,EAAmB,CAAC,EAAkB,GACtC,IAA0B,CAAC,GAC3B,EAAyB,CAAC,IAE9BA,GAAiB,GAAmB,CAChC,EAAuB,CAAC,GACxB,IAAiB,CAAC,GAClB,IAA0B,CAAC,GAC3B,EAAyB,CAAC,IAE9BA,GAAiB,GAAwB,CACrC,EAAuB,CAAC,GACxB,EAAmB,CAAC,EAAkB,GACtC,EAAkB,CAAC,EAAkB,IAEzCA,GAAiB,GAAoB,CACjC,EAAmB,CAAC,EAAkB,GACtC,EAAkB,CAAC,EAAkB,GACrC,EAAuB,CAAC,EAAiB,GACzC,IAAiB,CAAC,EAAsB,GACxC,IAA0B,CAAC,EAAqB,GAChD,EAAyB,CAAC,EAAoB,IAElDA,GAAiB,GAAuB,CACpC,IAA0B,CAAC,EAAyB,GACpD,IAA2B,CAAC,EAAyB,GACrD,IAA0B,CACtB,EACA,GAEJ,IAA2B,CAAC,EAAiB,GAC7C,EAAyB,EACzB,EAAkB,CAAC,EAAqB,IAE5CA,GAAiB,GAA2B,CACxC,IAA0B,CAAC,EAAqB,GAChD,EAAyB,EACzB,EAAkB,CAAC,EAAyB,IAEhDA,GAAiB,GAA2B,CACxC,IAA2B,CAAC,EAAqB,GACjD,EAAyB,EACzB,EAAkB,CAAC,EAAyB,IAKhD,MAAMC,GAAiB,kDAevB,SAASC,GAAgB5H,GACrB,QAAWh3C,IAAPg3C,GAA2B,OAAPA,EACpB,MAAO,IAGX,OADaA,EAAGM,WAAW,IAEvB,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACD,OAAON,EACX,KAAK,GACL,KAAK,GACL,KAAK,GACD,MAAO,IACX,KAAK,EACL,KAAK,GACL,KAAK,GACL,KAAK,IACL,KAAK,MACL,KAAK,KACL,KAAK,KACD,MAAO,IAEf,MAAO,GACX,CAMA,SAAS6H,GAAc3tD,GACnB,MAAM4tD,EAAU5tD,EAAK6tD,OAErB,OAAuB,MAAnB7tD,EAAKqkC,OAAO,KAActjC,MAAMyR,SAASxS,OAjD9B8tD,EAoDEF,EAnDVH,GAAe37C,KAAKg8C,GAK/B,SAAqB1pB,GACjB,MAAMh+B,EAAIg+B,EAAIgiB,WAAW,GAEzB,OAAOhgD,IADGg+B,EAAIgiB,WAAWhiB,EAAIrkC,OAAS,IACb,KAANqG,GAAoB,KAANA,EAAiCg+B,EAAnBA,EAAIlyB,MAAM,GAAI,EACjE,CA2CU67C,CAAYH,GACZ,IAAqBA,GAtD/B,IAAmBE,CAuDnB,CAiGA,MAAME,GAAQ,IAAIxnB,IAclB,SAASynB,GAAoB7sD,EAAKpB,GAC9B,OAAOsnC,EAASlmC,GAAOA,EAAIpB,GAAQ,IACvC,CA8CA,MAAMkuD,GAAoB9pB,GAAQA,EAC5B+pB,GAAmB9e,GAAQ,GAE3B+e,GAAqBhvD,GAA6B,IAAlBA,EAAOW,OAAe,GAAKX,EAAOkV,KAAK,IACvE+5C,GH1KmB91B,GACP,MAAPA,EACD,GACA3mB,EAAQ2mB,IAAS6oB,EAAc7oB,IAAQA,EAAI32B,WAAamgD,EACpD/a,KAAKC,UAAU1O,EAAK,KAAM,GAC1BryB,OAAOqyB,GGsKrB,SAAS+1B,GAAcC,EAAQC,GAE3B,OADAD,EAASvtD,KAAK2E,IAAI4oD,GACI,IAAlBC,EAEOD,EACDA,EAAS,EACL,EACA,EACJ,EAEHA,EAASvtD,KAAK0Z,IAAI6zC,EAAQ,GAAK,CAC1C,CAuBA,SAASE,GAAqBpqD,EAAU,CAAC,GACrC,MAAMS,EAAST,EAAQS,OACjB4pD,EAxBV,SAAwBrqD,GAEpB,MAAMsO,EAAQouC,EAAS18C,EAAQqqD,aACzBrqD,EAAQqqD,aACP,EAEP,OAAOrqD,EAAQsqD,QAAU5N,EAAS18C,EAAQsqD,MAAMngD,QAAUuyC,EAAS18C,EAAQsqD,MAAMhgC,IAC3EoyB,EAAS18C,EAAQsqD,MAAMngD,OACnBnK,EAAQsqD,MAAMngD,MACduyC,EAAS18C,EAAQsqD,MAAMhgC,GACnBtqB,EAAQsqD,MAAMhgC,EACdhc,EACRA,CACV,CAWwBi8C,CAAevqD,GAC7BwqD,EAAavnB,EAASjjC,EAAQyqD,cAChChN,EAASh9C,IACT+8C,EAAWx9C,EAAQyqD,YAAYhqD,IAC7BT,EAAQyqD,YAAYhqD,GACpBwpD,GACAS,EAAgBznB,EAASjjC,EAAQyqD,cACnChN,EAASh9C,IACT+8C,EAAWx9C,EAAQyqD,YAAYhqD,IAC7BwpD,QACAx/C,EAIAkgD,EAAQ3qD,EAAQ+e,MAAQ,GAGxB6rC,EAAS5qD,EAAQsqD,OAAS,CAAC,EACjC5N,EAAS18C,EAAQqqD,cA5BrB,SAAwBA,EAAahkC,GAC5BA,EAAMlc,QACPkc,EAAMlc,MAAQkgD,GAEbhkC,EAAMiE,IACPjE,EAAMiE,EAAI+/B,EAElB,CAqBqCQ,CAAeR,EAAaO,GAE7D,SAAS/jB,EAAQx5B,GAEb,MAAM2vC,EAAMQ,EAAWx9C,EAAQ8qC,UACzB9qC,EAAQ8qC,SAASz9B,KACjB41B,EAASjjC,EAAQ8qC,WACb9qC,EAAQ8qC,SAASz9B,GAE3B,OAAQ2vC,IACFh9C,EAAQ0gB,OACJ1gB,EAAQ0gB,OAAOmmB,QAAQx5B,GACvBy8C,GAEd,CACA,MAGMpe,EAAYqR,EAAc/8C,EAAQ8qD,YAActN,EAAWx9C,EAAQ8qD,UAAUpf,WAC7E1rC,EAAQ8qD,UAAUpf,UAClBqe,GACAgB,EAAchO,EAAc/8C,EAAQ8qD,YACtCtN,EAAWx9C,EAAQ8qD,UAAUC,aAC3B/qD,EAAQ8qD,UAAUC,YAClBf,GAgCAhf,EAAM,CACR,KA5DU18B,GAAUq8C,EAAMr8C,GA6D1B,MAzDWjB,GAAQu9C,EAAOv9C,GA0D1B,OAlEYy9B,GACLA,EAAS0f,EAAWH,EAAavf,EAASpvC,OAAQgvD,IAkEzD,OAhCW,CAACr9C,KAAQlR,KACpB,MAAO6uD,EAAMC,GAAQ9uD,EACrB,IAAI0qB,EAAO,OACPy/B,EAAW,GACK,IAAhBnqD,EAAKT,OACDunC,EAAS+nB,IACT1E,EAAW0E,EAAK1E,UAAYA,EAC5Bz/B,EAAOmkC,EAAKnkC,MAAQA,GAEf42B,EAASuN,KACd1E,EAAW0E,GAAQ1E,GAGF,IAAhBnqD,EAAKT,SACN+hD,EAASuN,KACT1E,EAAW0E,GAAQ1E,GAEnB7I,EAASwN,KACTpkC,EAAOokC,GAAQpkC,IAGvB,IAAIm2B,EAAMnW,EAAQx5B,EAARw5B,CAAamE,GAKvB,MAHa,UAATnkB,GAAoBtZ,EAAQyvC,IAAQsJ,IACpCtJ,EAAMA,EAAI,IAEPsJ,GAvCQ9qD,EAuCa8qD,EAvCJtmD,EAAQq6B,UAC9Br6B,EAAQq6B,UAAU7+B,GAClBquD,IAqCoC7M,EAAKn2B,GAAQm2B,EAvCrC,IAACxhD,CAuCuC,EAOtD,QAA2BqrC,EAC3B,KArCSkW,EAAc/8C,EAAQ8qD,YAAcrN,EAASz9C,EAAQ8qD,UAAUjkC,MACtE7mB,EAAQ8qD,UAAUjkC,KAnFM,OAwH1B,YAAmCkkC,EACnC,UAA+Brf,GAEnC,OAAOV,CACX,CAEA,IAAIlQ,GAAW,KAiBf,MAAMowB,GAAmCC,GAAmBjC,IAC5D,SAASiC,GAAmBC,GACxB,OAAQC,GAAavwB,IAAYA,GAASwV,KAAK8a,EAAMC,EACzD,CAEA,MAAMC,GAOgB,EA+BtB,SAASC,GAAmBvgB,EAAKhF,EAAU/uB,GAGvC,MAAO,IAAI,IAAIgS,IAAI,CACXhS,KACI1J,EAAQy4B,GACNA,EACA/C,EAAS+C,GACL7qC,OAAO4oC,KAAKiC,GACZyX,EAASzX,GACL,CAACA,GACD,CAAC/uB,KAE3B,CAiBA,SAASu0C,GAAwBxgB,EAAKhF,EAAU/uB,GAC5C,MAAMw0C,EAAchO,EAASxmC,GAASA,EAAQy0C,GACxC7nD,EAAUmnC,EACXnnC,EAAQ8nD,qBACT9nD,EAAQ8nD,mBAAqB,IAAIxpB,KAErC,IAAIypB,EAAQ/nD,EAAQ8nD,mBAAmB7mC,IAAI2mC,GAC3C,IAAKG,EAAO,CACRA,EAAQ,GAER,IAAIC,EAAQ,CAAC50C,GAEb,KAAO1J,EAAQs+C,IACXA,EAAQC,GAAmBF,EAAOC,EAAO7lB,GAI7C,MAAM6J,EAAWtiC,EAAQy4B,KAAc+W,EAAc/W,GAC/CA,EACAA,EAAkB,QACdA,EAAkB,QAClB,KAEV6lB,EAAQpO,EAAS5N,GAAY,CAACA,GAAYA,EACtCtiC,EAAQs+C,IACRC,GAAmBF,EAAOC,GAAO,GAErChoD,EAAQ8nD,mBAAmBxsB,IAAIssB,EAAaG,EAChD,CACA,OAAOA,CACX,CACA,SAASE,GAAmBF,EAAOC,EAAOE,GACtC,IAAIC,GAAS,EACb,IAAK,IAAI9mD,EAAI,EAAGA,EAAI2mD,EAAMnwD,QAAU,EAAUswD,GAAS9mD,IAAK,CACxD,MAAMzE,EAASorD,EAAM3mD,GACjBu4C,EAASh9C,KACTurD,EAASC,GAAoBL,EAAOC,EAAM3mD,GAAI6mD,GAEtD,CACA,OAAOC,CACX,CACA,SAASC,GAAoBL,EAAOnrD,EAAQsrD,GACxC,IAAIC,EACJ,MAAME,EAASzrD,EAAOqR,MAAM,KAC5B,EAAG,CAECk6C,EAASG,GAAkBP,EADZM,EAAOj8C,KAAK,KACe87C,GAC1CG,EAAOvmC,QAAQ,EAAG,EACtB,OAASumC,EAAOxwD,SAAqB,IAAXswD,GAC1B,OAAOA,CACX,CACA,SAASG,GAAkBP,EAAOxsC,EAAQ2sC,GACtC,IAAIC,GAAS,EACb,IAAKJ,EAAMh4C,SAASwL,KAChB4sC,GAAS,EACL5sC,GAAQ,CACR4sC,EAAuC,MAA9B5sC,EAAOA,EAAO1jB,OAAS,GAChC,MAAM+E,EAAS2e,EAAOxX,QAAQ,KAAM,IACpCgkD,EAAM7vD,KAAK0E,IACN8M,EAAQw+C,IAAWhP,EAAcgP,KAClCA,EAAOtrD,KAGPurD,EAASD,EAAOtrD,GAExB,CAEJ,OAAOurD,CACX,CAOA,MAEMN,GAAiB,QAEjBU,GAAcrsB,GAAQ,GAAGA,EAAIC,OAAO,GAAGqsB,sBAAsBtsB,EAAIhuB,OAAO,KA6B9E,IAAIu6C,GAIAC,GAWAC,GAYJ,IAAIC,GAAkB,KACtB,MAAMC,GAAsBtf,IACxBqf,GAAkBrf,CAAI,EAG1B,IAAIuf,GAAmB,KACvB,MAAMC,GAAsB/oD,IACxB8oD,GAAmB9oD,CAAO,EAI9B,IAAIgpD,GAAO,EACX,SAASC,GAAkB9sD,EAAU,CAAC,GAElC,MAAMy8B,EAAUghB,EAASz9C,EAAQy8B,SAAWz8B,EAAQy8B,QA1ExC,QA2ENh8B,EAASg9C,EAASz9C,EAAQS,QAAUT,EAAQS,OAASirD,GACrDqB,EAAiBx/C,EAAQvN,EAAQ+sD,iBACnChQ,EAAc/8C,EAAQ+sD,iBACtBtP,EAASz9C,EAAQ+sD,kBACU,IAA3B/sD,EAAQ+sD,eACN/sD,EAAQ+sD,eACRtsD,EACAqqC,EAAWiS,EAAc/8C,EAAQ8qC,UACjC9qC,EAAQ8qC,SACR,CAAE,CAACrqC,GAAS,CAAC,GACbusD,EAAkBjQ,EAAc/8C,EAAQgtD,iBACpChtD,EAAQgtD,gBACR,CAAE,CAACvsD,GAAS,CAAC,GAEjBwsD,EAAgBlQ,EAAc/8C,EAAQitD,eAClCjtD,EAAQitD,cACR,CAAE,CAACxsD,GAAS,CAAC,GAEjB45B,EAAY,EAAO,CAAC,EAAGr6B,EAAQq6B,WAAa,CAAC,EAvF5C,CACH6yB,MAAO,CAACh5B,EAAKrN,IAEO,SAATA,GAAmB42B,EAASvpB,GAC7BA,EAAIhyB,cACK,UAAT2kB,GAAoBoc,EAAS/O,IAAQ,gBAAiBA,EAClDA,EAAIgE,SAASh2B,cACbgyB,EAEdi5B,MAAO,CAACj5B,EAAKrN,IAEO,SAATA,GAAmB42B,EAASvpB,GAC7BA,EAAI7uB,cACK,UAATwhB,GAAoBoc,EAAS/O,IAAQ,gBAAiBA,EAClDA,EAAIgE,SAAS7yB,cACb6uB,EAEdk4B,WAAY,CAACl4B,EAAKrN,IAEG,SAATA,GAAmB42B,EAASvpB,GAC9Bk4B,GAAWl4B,GACF,UAATrN,GAAoBoc,EAAS/O,IAAQ,gBAAiBA,EAClDk4B,GAAWl4B,EAAIgE,UACfhE,IAiEZu2B,EAAczqD,EAAQyqD,aAAe,CAAC,EACtC2C,EAAU5P,EAAWx9C,EAAQotD,SAAWptD,EAAQotD,QAAU,KAC1DC,GAAc,EAAUrtD,EAAQqtD,eAAgBzQ,EAAS58C,EAAQqtD,cACjErtD,EAAQqtD,YAERC,GAAe,EAAUttD,EAAQstD,gBAAiB1Q,EAAS58C,EAAQstD,eACnEttD,EAAQstD,aAERC,IAAmBvtD,EAAQutD,eAC3BC,IAAgBxtD,EAAQwtD,YACxBC,EAAkBjQ,EAAWx9C,EAAQytD,iBACrCztD,EAAQytD,gBACR,KACA3C,EAAY/N,EAAc/8C,EAAQ8qD,WAAa9qD,EAAQ8qD,UAAY,KACnE4C,GAAkB,EAAU1tD,EAAQ0tD,kBACpC1tD,EAAQ0tD,gBAERC,IAAoB3tD,EAAQ2tD,gBAC5BC,EAAkBpQ,EAAWx9C,EAAQ4tD,iBACrC5tD,EAAQ4tD,gBACRtB,GACAuB,EAAkBrQ,EAAWx9C,EAAQ6tD,iBACrC7tD,EAAQ6tD,gBACRtB,IAAa3C,GACbkE,EAAmBtQ,EAAWx9C,EAAQ8tD,kBACtC9tD,EAAQ8tD,iBACRtB,IAAejB,GACfwC,EAAkB9qB,EAASjjC,EAAQ+tD,iBACnC/tD,EAAQ+tD,qBACRtjD,EACAujD,EAASxQ,EAAWx9C,EAAQguD,QAAUhuD,EAAQguD,OAAS,EAEvDC,EAAkBjuD,EAClBkuD,EAAuBjrB,EAASgrB,EAAgBC,sBAC5CD,EAAgBC,qBAChB,IAAI/rB,IAERgsB,EAAqBlrB,EAASgrB,EAAgBE,oBAC1CF,EAAgBE,mBAChB,IAAIhsB,IAERisB,EAASnrB,EAASgrB,EAAgBG,QAAUH,EAAgBG,OAAS,CAAC,EAC5EvB,KACA,MAAMhpD,EAAU,CACZ44B,UACA4xB,IAAKxB,GACLpsD,SACAssD,iBACAjiB,WACAzQ,YACAowB,cACA2C,UACAC,cACAC,eACAC,iBACAC,cACAC,kBACA3C,YACA4C,kBACAC,kBACAC,kBACAC,kBACAC,mBACAC,kBACAC,SACAI,UAmBJ,OAhBIvqD,EAAQmpD,gBAAkBA,EAC1BnpD,EAAQopD,cAAgBA,EACxBppD,EAAQqqD,qBAAuBA,EAC/BrqD,EAAQsqD,mBAAqBA,EAUcG,2BA7UnD,SAA0BC,EAAM9xB,EAAS2Q,GAErCtS,IACIA,GAASwV,KAAK4Y,GAA+B,CACzC5qD,UAAWhB,KAAK+sB,MAChBkkC,OACA9xB,UACA2Q,QAEZ,CAqUQohB,CAAiB3qD,EAAS44B,EAAS2xB,GAEhCvqD,CACX,CAUA,SAAS4qD,GAAc5qD,EAASwJ,EAAK5M,EAAQ4sD,EAAaxmC,GACtD,MAAM,QAAEumC,EAAO,OAAEY,GAAWnqD,EAa5B,GAAgB,OAAZupD,EAAkB,CAClB,MAAMnL,EAAMmL,EAAQvpD,EAASpD,EAAQ4M,EAAKwZ,GAC1C,OAAO42B,EAASwE,GAAOA,EAAM50C,CACjC,CAKI,OAAOA,CAEf,CAEA,SAASqhD,GAAqB1jB,EAAKvqC,EAAQulC,GACvBgF,EACR2gB,mBAAqB,IAAIxpB,IACjC6I,EAAI8iB,iBAAiB9iB,EAAKhF,EAAUvlC,EACxC,CAaA,MAAMkuD,GAAqBvpB,GAAWA,EACtC,IAAIwpB,GAAezzD,OAAO+jC,OAAO,MA+BjC,IAAI3wB,GAAOyvC,EACX,MAAM6Q,GAAM,MAAQtgD,GACdugD,GAAiB,CACnBC,iBAAkBxgD,GAClBygD,sBAAuBH,KACvBI,0BAA2BJ,KAC3BK,iBAAkBL,MAEtB,SAASM,GAAgB5gD,GACrB,OAAO0vC,EAAmB1vC,EAAM,UAA8E9D,EAClH,CAEA,MAOM2kD,GAAwB,IAAM,GAC9BC,GAAqBn7B,GAAQspB,EAAWtpB,GAE9C,SAASo7B,GAAUzrD,KAAY1H,GAC3B,MAAM,eAAEoxD,EAAc,gBAAEE,EAAe,YAAED,EAAW,gBAAEI,EAAe,eAAEb,EAAc,SAAEjiB,GAAajnC,GAC7FwJ,EAAKrN,GAAWuvD,MAAsBpzD,GACvCkxD,EAAc,EAAUrtD,EAAQqtD,aAChCrtD,EAAQqtD,YACRxpD,EAAQwpD,YACRC,EAAe,EAAUttD,EAAQstD,cACjCttD,EAAQstD,aACRzpD,EAAQypD,aACRK,EAAkB,EAAU3tD,EAAQ2tD,iBACpC3tD,EAAQ2tD,gBACR9pD,EAAQ8pD,gBACR6B,IAAoBxvD,EAAQwvD,gBAE5BC,EAAkBhS,EAASz9C,EAAQ4mB,UAAY,EAAU5mB,EAAQ4mB,SAChE,EAAU5mB,EAAQ4mB,SAEbgnC,EAA8BvgD,EAAZ,IAAMA,EAD1BrN,EAAQ4mB,QAEZ2mC,EACMK,EAA8BvgD,EAAZ,IAAMA,EAC1B,GACJqiD,EAAmBnC,GAAsC,KAApBkC,EACrChvD,EAASg9C,EAASz9C,EAAQS,QAAUT,EAAQS,OAASoD,EAAQpD,OAEnEktD,GAoFJ,SAAsB3tD,GACduN,EAAQvN,EAAQ+e,MAChB/e,EAAQ+e,KAAO/e,EAAQ+e,KAAKlP,KAAI6V,GAAQ+3B,EAAS/3B,GAAQ23B,EAAW33B,GAAQA,IAEvEud,EAASjjC,EAAQsqD,QACtBnvD,OAAO4oC,KAAK/jC,EAAQsqD,OAAOn6B,SAAQ9iB,IAC3BowC,EAASz9C,EAAQsqD,MAAMj9C,MACvBrN,EAAQsqD,MAAMj9C,GAAOgwC,EAAWr9C,EAAQsqD,MAAMj9C,IAClD,GAGZ,CA/FuBsiD,CAAa3vD,GAGhC,IAAK4vD,EAAaC,EAAchpB,GAAY2oB,EAEtC,CACEniD,EACA5M,EACAqqC,EAASrqC,IAAW,CAAC,GAJvBqvD,GAAqBjsD,EAASwJ,EAAK5M,EAAQssD,EAAgBO,EAAcD,GAW3ExkD,EAAS+mD,EAETG,EAAe1iD,EASnB,GARKmiD,GACC/R,EAAS50C,IAAWwmD,GAAkBxmD,IACpC6mD,IACA7mD,EAAS4mD,EACTM,EAAelnD,IAIlB2mD,KACE/R,EAAS50C,KAAWwmD,GAAkBxmD,KACpC40C,EAASoS,IACd,OAAOrC,GAlVM,EAkVuBngD,EAUxC,IAAI2iD,GAAW,EACf,MAIMhT,EAAOqS,GAAkBxmD,GAEzBA,EADAonD,GAAqBpsD,EAASwJ,EAAKwiD,EAAchnD,EAAQknD,GALzC,KAClBC,GAAW,CAAI,IAOnB,GAAIA,EACA,OAAOnnD,EAGX,MAAMqnD,EAuQV,SAAkCrsD,EAASpD,EAAQomC,EAAS7mC,GACxD,MAAM,UAAEq6B,EAAS,YAAEowB,EAAaoD,gBAAiBsC,EAAY,eAAEpD,EAAc,aAAEO,EAAY,YAAED,EAAW,gBAAEU,GAAoBlqD,EACxHusD,EAAkB/iD,IACpB,IAAI6mB,EAAMi8B,EAAatpB,EAASx5B,GAEhC,GAAW,MAAP6mB,GAAe65B,EAAiB,CAChC,MAAO,CAAE,CAAElnB,GAAWipB,GAAqB/B,EAAiB1gD,EAAK5M,EAAQssD,EAAgBO,EAAcD,GACvGn5B,EAAMi8B,EAAatpB,EAASx5B,EAChC,CACA,GAAIowC,EAASvpB,GAAM,CACf,IAAI87B,GAAW,EACf,MAGMhT,EAAMiT,GAAqBpsD,EAASwJ,EAAK5M,EAAQyzB,EAAK7mB,GAHtC,KAClB2iD,GAAW,CAAI,IAGnB,OAAQA,EAEFZ,GADApS,CAEV,CACK,OAAIqS,GAAkBn7B,GAChBA,EAIAk7B,EACX,EAEEc,EAAa,CACfzvD,SACA45B,YACAowB,cACA3f,SAAUslB,GAEVvsD,EAAQinD,YACRoF,EAAWpF,UAAYjnD,EAAQinD,WAE/B9qD,EAAQ+e,OACRmxC,EAAWnxC,KAAO/e,EAAQ+e,MAE1B/e,EAAQsqD,QACR4F,EAAW5F,MAAQtqD,EAAQsqD,OAE3B5N,EAAS18C,EAAQojD,UACjB8M,EAAW7F,YAAcrqD,EAAQojD,QAErC,OAAO8M,CACX,CArTuBG,CAAyBxsD,EAASgsD,EAAchpB,EAAS7mC,GAEtEswD,EAsKV,SAAyBzsD,EAASm5C,EAAKuT,GAK/B,EAMJ,MAAMD,EAAWtT,EAAIuT,GAEjB,EAgBJ,OAAOD,CACX,CApMqBE,CAAgB3sD,EAASm5C,EADvBoN,GAAqB8F,IAGlCjO,EAAMwL,EACNA,EAAgB6C,EAAUjjD,GAC1BijD,EAEN,GAA+ChC,0BAA2B,CAEtE,MAAMjD,EAAW,CACb/sD,UAAWhB,KAAK+sB,MAChBhd,IAAKowC,EAASpwC,GACRA,EACAgiD,GAAkBxmD,GACdA,EAAOwE,IACP,GACV5M,OAAQovD,IAAiBR,GAAkBxmD,GACrCA,EAAOpI,OACP,IACNoI,OAAQ40C,EAAS50C,GACXA,EACAwmD,GAAkBxmD,GACdA,EAAOu8B,OACP,GACVyB,QAASob,GAEboJ,EAASje,KAAO,EAAO,CAAC,EAAGvpC,EAAQuqD,OArUV3B,IAqUyC,CAAC,GACnEvB,GAAkBG,EACtB,CACA,OAAOpJ,CACX,CAaA,SAAS6N,GAAqBjsD,EAASwJ,EAAK5M,EAAQssD,EAAgBO,EAAcD,GAC9E,MAAM,SAAEviB,EAAQ,OAAEkjB,EAAQH,gBAAiBsC,EAAY,iBAAErC,GAAqBjqD,EACxE4sD,EAAU3C,EAAiBjqD,EAASkpD,EAAgBtsD,GAC1D,IACIovD,EADAhpB,EAAU,CAAC,EAEXh+B,EAAS,KACTia,EAAOriB,EACPoiB,EAAK,KAET,IAAK,IAAI3d,EAAI,EAAGA,EAAIurD,EAAQ/0D,OAAQwJ,IAAK,CACrC2qD,EAAehtC,EAAK4tC,EAAQvrD,GAsB5B2hC,EACIiE,EAAS+kB,IAAiB,CAAC,EAiC/B,GAtB8C,QAAzChnD,EAASsnD,EAAatpB,EAASx5B,MAEhCxE,EAASg+B,EAAQx5B,IAoBjBowC,EAAS50C,IAAW20C,EAAW30C,GAC/B,MACJ,MAAM6nD,EAAajC,GAAc5qD,EACjCwJ,EAAKwiD,EAAcxC,EA7DV,aA8DLqD,IAAerjD,IACfxE,EAAS6nD,GAEb5tC,EAAOD,CACX,CACA,MAAO,CAACha,EAAQgnD,EAAchpB,EAClC,CACA,SAASopB,GAAqBpsD,EAASwJ,EAAKwiD,EAAchnD,EAAQknD,EAAcY,GAC5E,MAAM,gBAAE/C,EAAe,gBAAEF,GAAoB7pD,EAC7C,GAAIwrD,GAAkBxmD,GAAS,CAC3B,MAAMm0C,EAAMn0C,EAGZ,OAFAm0C,EAAIv8C,OAASu8C,EAAIv8C,QAAUovD,EAC3B7S,EAAI3vC,IAAM2vC,EAAI3vC,KAAOA,EACd2vC,CACX,CACA,GAAuB,MAAnB4Q,EAAyB,CACzB,MAAM5Q,EAAM,IAAOn0C,EAGnB,OAFAm0C,EAAIv8C,OAASovD,EACb7S,EAAI3vC,IAAMA,EACH2vC,CACX,CAWA,MAAMA,EAAM4Q,EAAgB/kD,EA0FhC,SAA2BhF,EAASpD,EAAQ4M,EAAK+3B,EAAQsoB,EAAiBiD,GACtE,MAAO,CACHjD,kBACAvM,QAAU7lD,IAmBF,MAlBJq1D,GAAiBA,EAAcr1D,GAkBrBA,CACV,EAEJs1D,WAAaxrB,GH5nCU,EAAC3kC,EAAQ4M,EAAK+3B,IAAWoX,EAAsB,CAAExe,EAAGv9B,EAAQiF,EAAG2H,EAAK9K,EAAG6iC,IG4nCtEyrB,CAAuBpwD,EAAQ4M,EAAK+3B,GAEpE,CArHwC0rB,CAAkBjtD,EAASgsD,EAAcE,EAAclnD,EAAQ6kD,EAAiBiD,IAqBpH,OAHA3T,EAAIv8C,OAASovD,EACb7S,EAAI3vC,IAAMA,EACV2vC,EAAI5X,OAASv8B,EACNm0C,CACX,CAiCA,SAASuS,MAAsBpzD,GAC3B,MAAO6uD,EAAMC,EAAM8F,GAAQ50D,EACrB6D,EAAU,CAAC,EACjB,IAAKy9C,EAASuN,KAAUtO,EAASsO,KAAUqE,GAAkBrE,GACzD,MAAMmE,GAAgBL,GAAeC,kBAGzC,MAAM1hD,EAAMqvC,EAASsO,GACfnpD,OAAOmpD,IACPqE,GAAkBrE,GACdA,GAuBV,OArBItO,EAASuO,GACTjrD,EAAQojD,OAAS6H,EAEZxN,EAASwN,GACdjrD,EAAQ4mB,QAAUqkC,EAEblO,EAAckO,KAAUnO,EAAcmO,GAC3CjrD,EAAQsqD,MAAQW,EAEX19C,EAAQ09C,KACbjrD,EAAQ+e,KAAOksC,GAEfvO,EAASqU,GACT/wD,EAAQojD,OAAS2N,EAEZtT,EAASsT,GACd/wD,EAAQ4mB,QAAUmqC,EAEbhU,EAAcgU,IACnB,EAAO/wD,EAAS+wD,GAEb,CAAC1jD,EAAKrN,EACjB,CA6EA,MAAMgxD,GAA8B,qBAATC,KAEPD,IAAsBC,KAAKC,eAC7BF,IAAsBC,KAAKE,aAI7C,SAASC,GAASvtD,KAAY1H,GAC1B,MAAM,gBAAE6wD,EAAe,YAAEQ,EAAW,eAAET,EAAc,OAAEiB,EAAM,iBAAEF,GAAqBjqD,GAC7E,qBAAEqqD,GAAyBrqD,EAKjC,MAAOwJ,EAAKpS,EAAO+E,EAASqxD,GAAaC,MAAqBn1D,GAOxD0jC,GANc,EAAU7/B,EAAQqtD,aAChCrtD,EAAQqtD,YACRxpD,EAAQwpD,YACO,EAAUrtD,EAAQstD,cACjCttD,EAAQstD,aACRzpD,EAAQypD,eACCttD,EAAQ6/B,MACjBp/B,EAASg9C,EAASz9C,EAAQS,QAAUT,EAAQS,OAASoD,EAAQpD,OAC7DgwD,EAAU3C,EAAiBjqD,EACjCkpD,EAAgBtsD,GAChB,IAAKg9C,EAASpwC,IAAgB,KAARA,EAClB,OAAO,IAAI4jD,KAAKC,eAAezwD,EAAQ4wD,GAAWxoD,OAAO5N,GAG7D,IACI40D,EADA0B,EAAiB,CAAC,EAElB1oD,EAAS,KACTia,EAAOriB,EACPoiB,EAAK,KAET,IAAK,IAAI3d,EAAI,EAAGA,EAAIurD,EAAQ/0D,SACxBm0D,EAAehtC,EAAK4tC,EAAQvrD,GAsB5BqsD,EACIvE,EAAgB6C,IAAiB,CAAC,EACtChnD,EAAS0oD,EAAelkD,IACpB0vC,EAAcl0C,IA1Bc3D,IA4BhCupD,GAAc5qD,EAASwJ,EAAKwiD,EAAcxC,EA7BjC,mBA8BTvqC,EAAOD,EAGX,IAAKk6B,EAAcl0C,KAAY40C,EAASoS,GACpC,OAAOrC,GApuBM,EAouBuBngD,EAExC,IAAIgqB,EAAK,GAAGw4B,MAAiBxiD,IACxByvC,EAAcuU,KACfh6B,EAAK,GAAGA,MAAOsL,KAAKC,UAAUyuB,MAElC,IAAIlhD,EAAY+9C,EAAqBppC,IAAIuS,GAKzC,OAJKlnB,IACDA,EAAY,IAAI8gD,KAAKC,eAAerB,EAAc,EAAO,CAAC,EAAGhnD,EAAQwoD,IACrEnD,EAAqB/uB,IAAI9H,EAAIlnB,IAEzB0vB,EAAiC1vB,EAAUqhD,cAAcv2D,GAAlDkV,EAAUtH,OAAO5N,EACpC,CAEA,MAAMw2D,GAA+B,CACjC,gBACA,UACA,MACA,OACA,QACA,MACA,OACA,SACA,SACA,eACA,gBACA,SACA,WACA,YACA,YACA,WACA,YACA,kBACA,YACA,0BAGJ,SAASH,MAAqBn1D,GAC1B,MAAO6uD,EAAMC,EAAM8F,EAAMW,GAAQv1D,EAC3B6D,EAAU,CAAC,EACjB,IACI/E,EADAo2D,EAAY,CAAC,EAEjB,GAAI5T,EAASuN,GAAO,CAGhB,MAAM2G,EAAU3G,EAAKxjD,MAAM,kCAC3B,IAAKmqD,EACD,MAAMxC,GAAgBL,GAAeG,2BAIzC,MAAMtnD,EAAWgqD,EAAQ,GACnBA,EAAQ,GAAGnI,OAAO18B,WAAW,KACzB,GAAG6kC,EAAQ,GAAGnI,SAASmI,EAAQ,GAAGnI,SAClC,GAAGmI,EAAQ,GAAGnI,UAAUmI,EAAQ,GAAGnI,SACvCmI,EAAQ,GAAGnI,OACjBvuD,EAAQ,IAAIqC,KAAKqK,GACjB,IAEI1M,EAAM22D,aAIV,CAFA,MAAO7sD,GACH,MAAMoqD,GAAgBL,GAAeG,0BACzC,CACJ,MACK,GH9yCqC,kBAAtBpS,EG8yCJmO,GAAO,CACnB,GAAItuD,MAAMsuD,EAAKptD,WACX,MAAMuxD,GAAgBL,GAAeE,uBAEzC/zD,EAAQ+vD,CACZ,KACK,KAAItO,EAASsO,GAId,MAAMmE,GAAgBL,GAAeC,kBAHrC9zD,EAAQ+vD,CAIZ,CAuBA,OAtBIvN,EAASwN,GACTjrD,EAAQqN,IAAM49C,EAETlO,EAAckO,IACnB9vD,OAAO4oC,KAAKknB,GAAM96B,SAAQ9iB,IAClBokD,GAA6B79C,SAASvG,GACtCgkD,EAAUhkD,GAAO49C,EAAK59C,GAGtBrN,EAAQqN,GAAO49C,EAAK59C,EACxB,IAGJowC,EAASsT,GACT/wD,EAAQS,OAASswD,EAEZhU,EAAcgU,KACnBM,EAAYN,GAEZhU,EAAc2U,KACdL,EAAYK,GAET,CAAC1xD,EAAQqN,KAAO,GAAIpS,EAAO+E,EAASqxD,EAC/C,CAEA,SAASQ,GAAoB7mB,EAAKvqC,EAAQoI,GACtC,MAAMhF,EAAUmnC,EAChB,IAAK,MAAM39B,KAAOxE,EAAQ,CACtB,MAAMwuB,EAAK,GAAG52B,MAAW4M,IACpBxJ,EAAQqqD,qBAAqB9rB,IAAI/K,IAGtCxzB,EAAQqqD,qBAAqB38B,OAAO8F,EACxC,CACJ,CAGA,SAAS76B,GAAOqH,KAAY1H,GACxB,MAAM,cAAE8wD,EAAa,YAAEO,EAAW,eAAET,EAAc,OAAEiB,EAAM,iBAAEF,GAAqBjqD,GAC3E,mBAAEsqD,GAAuBtqD,EAK/B,MAAOwJ,EAAKpS,EAAO+E,EAASqxD,GAAaS,MAAmB31D,GAOtD0jC,GANc,EAAU7/B,EAAQqtD,aAChCrtD,EAAQqtD,YACRxpD,EAAQwpD,YACO,EAAUrtD,EAAQstD,cACjCttD,EAAQstD,aACRzpD,EAAQypD,eACCttD,EAAQ6/B,MACjBp/B,EAASg9C,EAASz9C,EAAQS,QAAUT,EAAQS,OAASoD,EAAQpD,OAC7DgwD,EAAU3C,EAAiBjqD,EACjCkpD,EAAgBtsD,GAChB,IAAKg9C,EAASpwC,IAAgB,KAARA,EAClB,OAAO,IAAI4jD,KAAKE,aAAa1wD,EAAQ4wD,GAAWxoD,OAAO5N,GAG3D,IACI40D,EADAkC,EAAe,CAAC,EAEhBlpD,EAAS,KACTia,EAAOriB,EACPoiB,EAAK,KAET,IAAK,IAAI3d,EAAI,EAAGA,EAAIurD,EAAQ/0D,SACxBm0D,EAAehtC,EAAK4tC,EAAQvrD,GAsB5B6sD,EACI9E,EAAc4C,IAAiB,CAAC,EACpChnD,EAASkpD,EAAa1kD,IAClB0vC,EAAcl0C,IA1Bc3D,IA4BhCupD,GAAc5qD,EAASwJ,EAAKwiD,EAAcxC,EA7BjC,iBA8BTvqC,EAAOD,EAGX,IAAKk6B,EAAcl0C,KAAY40C,EAASoS,GACpC,OAAOrC,GAn5BM,EAm5BuBngD,EAExC,IAAIgqB,EAAK,GAAGw4B,MAAiBxiD,IACxByvC,EAAcuU,KACfh6B,EAAK,GAAGA,MAAOsL,KAAKC,UAAUyuB,MAElC,IAAIlhD,EAAYg+C,EAAmBrpC,IAAIuS,GAKvC,OAJKlnB,IACDA,EAAY,IAAI8gD,KAAKE,aAAatB,EAAc,EAAO,CAAC,EAAGhnD,EAAQwoD,IACnElD,EAAmBhvB,IAAI9H,EAAIlnB,IAEvB0vB,EAAiC1vB,EAAUqhD,cAAcv2D,GAAlDkV,EAAUtH,OAAO5N,EACpC,CAEA,MAAM+2D,GAA6B,CAC/B,gBACA,QACA,WACA,kBACA,eACA,cACA,uBACA,wBACA,wBACA,2BACA,2BACA,iBACA,WACA,cACA,OACA,cACA,eACA,mBACA,oBACA,uBAGJ,SAASF,MAAmB31D,GACxB,MAAO6uD,EAAMC,EAAM8F,EAAMW,GAAQv1D,EAC3B6D,EAAU,CAAC,EACjB,IAAIqxD,EAAY,CAAC,EACjB,IAAK3U,EAASsO,GACV,MAAMmE,GAAgBL,GAAeC,kBAEzC,MAAM9zD,EAAQ+vD,EAuBd,OAtBIvN,EAASwN,GACTjrD,EAAQqN,IAAM49C,EAETlO,EAAckO,IACnB9vD,OAAO4oC,KAAKknB,GAAM96B,SAAQ9iB,IAClB2kD,GAA2Bp+C,SAASvG,GACpCgkD,EAAUhkD,GAAO49C,EAAK59C,GAGtBrN,EAAQqN,GAAO49C,EAAK59C,EACxB,IAGJowC,EAASsT,GACT/wD,EAAQS,OAASswD,EAEZhU,EAAcgU,KACnBM,EAAYN,GAEZhU,EAAc2U,KACdL,EAAYK,GAET,CAAC1xD,EAAQqN,KAAO,GAAIpS,EAAO+E,EAASqxD,EAC/C,CAEA,SAASY,GAAkBjnB,EAAKvqC,EAAQoI,GACpC,MAAMhF,EAAUmnC,EAChB,IAAK,MAAM39B,KAAOxE,EAAQ,CACtB,MAAMwuB,EAAK,GAAG52B,MAAW4M,IACpBxJ,EAAQsqD,mBAAmB/rB,IAAI/K,IAGpCxzB,EAAQsqD,mBAAmB58B,OAAO8F,EACtC,CACJ,CAI6C,mBAA9Bi3B,4BACPpR,IAAgBoR,2BAA4B,kBC7hD7C,SAAS4D,KAEZ,MAA6B,qBAAd91C,WAA+C,qBAAXlB,OAC7CA,OACkB,qBAAX,EAAAkiC,EACH,EAAAA,EACA,CAAC,CACf,CACO,MAAM+U,GAAoC,oBAAVC,MCXvC,IAAIC,GACAC,GAmBG,SAASjoC,KACZ,YAjBkB5f,IAAd4nD,KAGkB,qBAAXn3C,QAA0BA,OAAOq3C,aACxCF,IAAY,EACZC,GAAOp3C,OAAOq3C,aAES,qBAAX,EAAAnV,IAAwD,QAA5BpiD,EAAK,EAAAoiD,EAAOoV,kBAA+B,IAAPx3D,OAAgB,EAASA,EAAGu3D,cACxGF,IAAY,EACZC,GAAO,EAAAlV,EAAOoV,WAAWD,aAGzBF,IAAY,GAXLA,GAgBuBC,GAAKjoC,MAAQ/sB,KAAK+sB,MAnBjD,IACCrvB,CAmBR,CCpBO,MAAMy3D,GACTv1D,YAAYw1D,EAAQtH,GAChB1kC,KAAKtH,OAAS,KACdsH,KAAKisC,YAAc,GACnBjsC,KAAKksC,QAAU,GACflsC,KAAKgsC,OAASA,EACdhsC,KAAK0kC,KAAOA,EACZ,MAAMyH,EAAkB,CAAC,EACzB,GAAIH,EAAOI,SACP,IAAK,MAAMz7B,KAAMq7B,EAAOI,SAAU,CAC9B,MAAMptC,EAAOgtC,EAAOI,SAASz7B,GAC7Bw7B,EAAgBx7B,GAAM3R,EAAKqtC,YAC/B,CAEJ,MAAMC,EAAsB,mCAAmCN,EAAOr7B,KACtE,IAAI47B,EAAkB93D,OAAOC,OAAO,CAAC,EAAGy3D,GACxC,IACI,MAAMK,EAAMC,aAAaC,QAAQJ,GAC3Bj6C,EAAO4pB,KAAKgB,MAAMuvB,GACxB/3D,OAAOC,OAAO63D,EAAiBl6C,EAInC,CAFA,MAAOhU,GAEP,CACA2hB,KAAK2sC,UAAY,CACbC,cACI,OAAOL,CACX,EACAM,YAAYt4D,GACR,IACIk4D,aAAaK,QAAQR,EAAqBrwB,KAAKC,UAAU3nC,GAI7D,CAFA,MAAO8J,GAEP,CACAkuD,EAAkBh4D,CACtB,EACAovB,MACI,OAAOA,IACX,GAEA+gC,GACAA,EAAKxN,GC3CuB,uBD2CM,CAAC6V,EAAUx4D,KACrCw4D,IAAa/sC,KAAKgsC,OAAOr7B,IACzB3Q,KAAK2sC,UAAUE,YAAYt4D,EAC/B,IAGRyrB,KAAKgtC,UAAY,IAAItB,MAAM,CAAC,EAAG,CAC3BttC,IAAK,CAAC6uC,EAAShxC,IACP+D,KAAKtH,OACEsH,KAAKtH,OAAOw+B,GAAGj7B,GAGf,IAAIxmB,KACPuqB,KAAKksC,QAAQ72D,KAAK,CACd63D,OAAQjxC,EACRxmB,QACF,IAKlBuqB,KAAKmtC,cAAgB,IAAIzB,MAAM,CAAC,EAAG,CAC/BttC,IAAK,CAAC6uC,EAAShxC,IACP+D,KAAKtH,OACEsH,KAAKtH,OAAOuD,GAEL,OAATA,EACE+D,KAAKgtC,UAEPv4D,OAAO4oC,KAAKrd,KAAK2sC,WAAWz/C,SAAS+O,GACnC,IAAIxmB,KACPuqB,KAAKisC,YAAY52D,KAAK,CAClB63D,OAAQjxC,EACRxmB,OACA2pB,QAAS,SAENY,KAAK2sC,UAAU1wC,MAASxmB,IAI5B,IAAIA,IACA,IAAI0pB,SAAQC,IACfY,KAAKisC,YAAY52D,KAAK,CAClB63D,OAAQjxC,EACRxmB,OACA2pB,WACF,KAM1B,CACAhrB,oBAAoBskB,GAChBsH,KAAKtH,OAASA,EACd,IAAK,MAAMsG,KAAQgB,KAAKksC,QACpBlsC,KAAKtH,OAAOw+B,GAAGl4B,EAAKkuC,WAAWluC,EAAKvpB,MAExC,IAAK,MAAMupB,KAAQgB,KAAKisC,YACpBjtC,EAAKI,cAAcY,KAAKtH,OAAOsG,EAAKkuC,WAAWluC,EAAKvpB,MAE5D,EEnGG,SAAS23D,GAAoBC,EAAkBC,GAClD,MAAMC,EAAaF,EACb30C,EAAS8yC,KACT9G,EJRC8G,KAAYgC,6BISbC,EAAchC,IAAoB8B,EAAWG,iBACnD,IAAIhJ,IAAShsC,EAAOi1C,uCAA0CF,EAGzD,CACD,MAAMG,EAAQH,EAAc,IAAI1B,GAASwB,EAAY7I,GAAQ,MAChDhsC,EAAOm1C,yBAA2Bn1C,EAAOm1C,0BAA4B,IAC7Ex4D,KAAK,CACNg4D,iBAAkBE,EAClBD,UACAM,UAEAA,GACAN,EAAQM,EAAMT,cACtB,MAZIzI,EAAK9a,KDZa,wBCYIyjB,EAAkBC,EAahD,CCpBA,MAAMQ,GAAoB,CACtB,+BAA+C,oBAC/C,8BAAwD,iBACxD,oBAAsC,YAEpCC,GAA0B,CAC5B,8BAAwD,yBAEtDC,GAA4B,CAC9B,oBAAsC,UC8B1C,IAAIC,GAASrJ,GACb,MAAMsJ,GAAQ,MAAQD,GAGMC,KACCA,KACSA,KACFA,KACEA,KACVA,KAe5B,IAAI,GAAO5W,EACX,MAAM,GAAM,MAAQ,GACd6W,GAAiB,CAEnBC,uBAAwB,GAExB/F,iBAAkB,KAElBgG,uBAAwB,KACxBC,cAAe,KACfC,6BAA8B,KAE9BC,eAAgB,KAChBC,cAAe,KAEfC,iCAAkC,KAClCC,2BAA4B,KAE5BC,iBAAkB,KAElBC,+BAAgC,KAEhCC,0BAA2B,KAE3BC,6CAA8C,KAE9CC,oCAAqC,KAErCxG,iBAAkB,MAEtB,SAASyG,GAAgBpnD,KAASpS,GAC9B,OAAO8hD,EAAmB1vC,EAAM,UAAoF9D,EACxH,CACA,MAiBMmrD,GACSrZ,EAAW,oBACpBsZ,GAAqCtZ,EAAW,mBAChDuZ,GAAmCvZ,EAAW,iBAC9CwZ,GAA+BxZ,EAAW,mBAC1CyZ,GAAgCzZ,EAAW,oBAC3C0Z,GAAuB1Z,EAAW,oBACxCA,EAAW,iBACX,MAAM2Z,GAAkC3Z,EAAW,sBAOnD,SAAS4Z,GAAep5D,GAEpB,IAAKkmC,EAASlmC,GACV,OAAOA,EAEX,IAAK,MAAMsQ,KAAOtQ,EAEd,GAAKwgD,EAAOxgD,EAAKsQ,GAIjB,GAAKA,EAAIuG,SAAS,KAOb,CAED,MAAMwiD,EAAU/oD,EAAIyE,MAAM,KACpBukD,EAAYD,EAAQ16D,OAAS,EACnC,IAAI46D,EAAav5D,EACjB,IAAK,IAAImI,EAAI,EAAGA,EAAImxD,EAAWnxD,IACrBkxD,EAAQlxD,KAAMoxD,IAChBA,EAAWF,EAAQlxD,IAAM,CAAC,GAE9BoxD,EAAaA,EAAWF,EAAQlxD,IAGpCoxD,EAAWF,EAAQC,IAAct5D,EAAIsQ,UAC9BtQ,EAAIsQ,GAEP41B,EAASqzB,EAAWF,EAAQC,MAC5BF,GAAeG,EAAWF,EAAQC,IAE1C,MAvBQpzB,EAASlmC,EAAIsQ,KACb8oD,GAAep5D,EAAIsQ,IAwB/B,OAAOtQ,CACX,CACA,SAASw5D,GAAkB91D,EAAQT,GAC/B,MAAM,SAAE8qC,EAAQ,OAAE0rB,EAAM,gBAAE3I,EAAe,SAAE4I,GAAaz2D,EAElDiiD,EAAMlF,EAAcjS,GACpBA,EACAv9B,EAAQipD,GACJ,CAAC,EACD,CAAE,CAAC/1D,GAAS,CAAC,GAoBvB,GAlBI8M,EAAQipD,IACRA,EAAOrmC,SAAQumC,IACX,GAAI,WAAYA,GAAU,aAAcA,EAAQ,CAC5C,MAAM,OAAEj2D,EAAM,SAAEk2D,GAAaD,EACzBj2D,GACAwhD,EAAIxhD,GAAUwhD,EAAIxhD,IAAW,CAAC,EAC9Bm2D,GAASD,EAAU1U,EAAIxhD,KAGvBm2D,GAASD,EAAU1U,EAE3B,MAEIxE,EAASiZ,IAAWE,GAASj0B,KAAKgB,MAAM+yB,GAASzU,EACrD,IAIe,MAAnB4L,GAA2B4I,EAC3B,IAAK,MAAMppD,KAAO40C,EACV1E,EAAO0E,EAAK50C,IACZ8oD,GAAelU,EAAI50C,IAI/B,OAAO40C,CACX,CACA,MAAM4U,GAAwB3iC,IAAS+O,EAAS/O,IAAQ3mB,EAAQ2mB,GAEhE,SAAS0iC,GAASE,EAAKC,GAEnB,GAAIF,GAAqBC,IAAQD,GAAqBE,GAClD,MAAMpB,GAAgBd,GAAeM,eAEzC,IAAK,MAAM9nD,KAAOypD,EACVvZ,EAAOuZ,EAAKzpD,KACRwpD,GAAqBC,EAAIzpD,KAASwpD,GAAqBE,EAAI1pD,IAI3D0pD,EAAI1pD,GAAOypD,EAAIzpD,GAIfupD,GAASE,EAAIzpD,GAAM0pD,EAAI1pD,IAIvC,CAEA,SAAS2pD,GAAoBC,GACzB,OAAOA,EAASpwC,IACpB,CACA,SAASqwC,GAAoBC,EAAQn3D,EAASo3D,GAE1C,IAAItsB,EAAW7H,EAASjjC,EAAQ8qC,UAAY9qC,EAAQ8qC,SAAW,CAAC,EAC5D,iBAAkBssB,IAClBtsB,EAAWyrB,GAAkBY,EAAO12D,OAAOxF,MAAO,CAC9C6vC,WACA0rB,OAAQY,EAAiBC,gBAIjC,MAAM5G,EAAUt1D,OAAO4oC,KAAK+G,GAQxB,GAPA2lB,EAAQ/0D,QACR+0D,EAAQtgC,SAAQ1vB,IACZ02D,EAAOG,mBAAmB72D,EAAQqqC,EAASrqC,GAAQ,IAKnDwiC,EAASjjC,EAAQgtD,iBAAkB,CACnC,MAAMyD,EAAUt1D,OAAO4oC,KAAK/jC,EAAQgtD,iBAChCyD,EAAQ/0D,QACR+0D,EAAQtgC,SAAQ1vB,IACZ02D,EAAOI,oBAAoB92D,EAAQT,EAAQgtD,gBAAgBvsD,GAAQ,GAG/E,CAEA,GAAIwiC,EAASjjC,EAAQitD,eAAgB,CACjC,MAAMwD,EAAUt1D,OAAO4oC,KAAK/jC,EAAQitD,eAChCwD,EAAQ/0D,QACR+0D,EAAQtgC,SAAQ1vB,IACZ02D,EAAOK,kBAAkB/2D,EAAQT,EAAQitD,cAAcxsD,GAAQ,GAG3E,CAER,CACA,SAASg3D,GAAepqD,GACpB,OAAO,SAAY,MAAM,KAAMA,EAAK,EAExC,CAKA,MAAMqqD,GAAgB,mBACtB,IAAIC,GAAa,EACjB,SAASC,GAAyBxK,GAC9B,MAAO,CAAEpiB,EAAKvqC,EAAQ4M,EAAKwZ,IAChBumC,EAAQ3sD,EAAQ4M,GAAK,iBAAwB5C,EAAWoc,EAEvE,CAeA,SAASgxC,GAAe73D,EAAU,CAAC,EAAG83D,GAClC,MAAM,OAAEC,GAAW/3D,EACbg4D,OAAuBvtD,IAAXstD,EAClB,IAAIE,GAAiB,EAAUj4D,EAAQk4D,gBACjCl4D,EAAQk4D,cAEd,MAAMC,GAAU,SAEhBJ,GAAUE,EACJF,EAAOt3D,OAAOxF,MACdwiD,EAASz9C,EAAQS,QACbT,EAAQS,OACRirD,IACJ0M,GAAkB,SAExBL,GAAUE,EACJF,EAAOhL,eAAe9xD,MACtBwiD,EAASz9C,EAAQ+sD,iBACfx/C,EAAQvN,EAAQ+sD,iBAChBhQ,EAAc/8C,EAAQ+sD,kBACK,IAA3B/sD,EAAQ+sD,eACN/sD,EAAQ+sD,eACRoL,EAAQl9D,OACZo9D,GAAY,SAAI9B,GAAkB4B,EAAQl9D,MAAO+E,IAEjDs4D,GAAmB,SAAIvb,EAAc/8C,EAAQgtD,iBACzChtD,EAAQgtD,gBACR,CAAE,CAACmL,EAAQl9D,OAAQ,CAAC,IAGxBs9D,GAAiB,SAAIxb,EAAc/8C,EAAQitD,eACvCjtD,EAAQitD,cACR,CAAE,CAACkL,EAAQl9D,OAAQ,CAAC,IAI9B,IAAIu9D,EAAeT,EACbA,EAAO1K,aACP,EAAUrtD,EAAQqtD,eAAgBzQ,EAAS58C,EAAQqtD,cAC/CrtD,EAAQqtD,YAGdoL,EAAgBV,EACdA,EAAOzK,cACP,EAAUttD,EAAQstD,gBAAiB1Q,EAAS58C,EAAQstD,eAChDttD,EAAQstD,aAGdoL,EAAgBX,EACdA,EAAOY,cACP,EAAU34D,EAAQ24D,eACd34D,EAAQ24D,aAGdC,IAAoB54D,EAAQutD,eAE5BsL,EAAWrb,EAAWx9C,EAAQotD,SAAWptD,EAAQotD,QAAU,KAC3D0L,EAAkBtb,EAAWx9C,EAAQotD,SACnCwK,GAAyB53D,EAAQotD,SACjC,KAEF2L,EAAmBvb,EAAWx9C,EAAQytD,iBACpCztD,EAAQytD,gBACR,KAEFuL,EAAmBjB,EACjBA,EAAOrK,iBACP,EAAU1tD,EAAQ0tD,kBACd1tD,EAAQ0tD,gBAEduL,IAAqBj5D,EAAQ2tD,gBAGjC,MAAMuL,EAAanB,EACbA,EAAO19B,UACP0iB,EAAc/8C,EAAQq6B,WAClBr6B,EAAQq6B,UACR,CAAC,EAEX,IAGImmB,EAHA2Y,EAAen5D,EAAQyqD,aAAgBsN,GAAUA,EAAOtN,YA2C5DjK,EAvCuB,MACnBwX,GAAapL,GAAmB,MAChC,MAAMsD,EAAa,CACfzzB,QAhXI,QAiXJh8B,OAAQ03D,EAAQl9D,MAChB8xD,eAAgBqL,EAAgBn9D,MAChC6vC,SAAUutB,EAAUp9D,MACpBo/B,UAAW6+B,EACXzO,YAAa0O,EACb/L,QAA6B,OAApB0L,OAA2BruD,EAAYquD,EAChDzL,YAAamL,EACblL,aAAcmL,EACdlL,eAAgBqL,EAChBpL,aAAa,EACbC,gBAAsC,OAArBsL,OAA4BtuD,EAAYsuD,EACzDrL,gBAAiBsL,EACjBrL,gBAAiBsL,EACjBpL,gBAAiB7tD,EAAQ6tD,gBACzBO,OAAQ,CAAEgL,UAAW,QAGrBlJ,EAAWlD,gBAAkBsL,EAAiBr9D,MAC9Ci1D,EAAWjD,cAAgBsL,EAAet9D,MAC1Ci1D,EAAWhC,qBAAuBnR,EAAcyD,GAC1CA,EAAS0N,0BACTzjD,EACNylD,EAAW/B,mBAAqBpR,EAAcyD,GACxCA,EAAS2N,wBACT1jD,EAOV,MAAMugC,EAAM8hB,GAAkBoD,GAE9B,OADA8H,GAAapL,GAAmB5hB,GACzBA,CAAG,EAEHquB,GACX3K,GAAqBlO,EAAU2X,EAAQl9D,MAAOm9D,EAAgBn9D,OAa9D,MAAMwF,GAAS,SAAS,CACpBqkB,IAAK,IAAMqzC,EAAQl9D,MACnBkkC,IAAKjL,IACDikC,EAAQl9D,MAAQi5B,EAChBssB,EAAS//C,OAAS03D,EAAQl9D,KAAK,IAIjC8xD,GAAiB,SAAS,CAC5BjoC,IAAK,IAAMszC,EAAgBn9D,MAC3BkkC,IAAKjL,IACDkkC,EAAgBn9D,MAAQi5B,EACxBssB,EAASuM,eAAiBqL,EAAgBn9D,MAC1CyzD,GAAqBlO,EAAU2X,EAAQl9D,MAAOi5B,EAAI,IAIpD4W,GAAW,UAAS,IAAMutB,EAAUp9D,QAEpC+xD,GAAiC,UAAS,IAAMsL,EAAiBr9D,QAEjEgyD,GAA+B,UAAS,IAAMsL,EAAet9D,QA0BnE,MAAMq+D,EAAe,CAAC7+C,EAAI8+C,EAAgBC,EAAUC,EAAiBC,EAAcC,KAG/E,IAAI1X,EACJ,GA5DQkW,EAAQl9D,MACRm9D,EAAgBn9D,MAChBo9D,EAAUp9D,MACVq9D,EAAiBr9D,MACjBs9D,EAAet9D,MAwDwBqzD,0BAC3C,IACI5B,GA1MK,MACjB,MAAMuK,GAAW,WACjB,IAAI7pB,EAAO,KACX,OAAO6pB,IAAa7pB,EAAO4pB,GAAoBC,GAAUS,KACnD,CAAE,CAACA,IAAgBtqB,GACnB,IAAI,EAqMoBwsB,IACb5B,IACDxX,EAASuN,gBAAkBgK,EPiJdpL,QO/IPliD,GAEVw3C,EAAMxnC,EAAG+lC,EAOb,CALA,QACIkM,GAAkB,MACbsL,IACDxX,EAASuN,qBAAkBtjD,EAEnC,MAGAw3C,EAAMxnC,EAAG+lC,GAEb,GAAI9D,EAASuF,KP6DA,IO7DQA,EAAsB,CACvC,MAAO50C,EAAK49C,GAAQsO,IA0BpB,OAAOxB,GAAUW,EACXe,EAAgB1B,GAChB2B,EAAarsD,EACvB,CACK,GAAIssD,EAAiB1X,GACtB,OAAOA,EAIP,MAAM0T,GAAgBd,GAAeC,uBACzC,EAGJ,SAASxuD,KAAKnK,GACV,OAAOm9D,GAAaz1D,GAAWg2D,QAAQ3rC,MAAMohC,GAAW,KAAM,CAACzrD,KAAY1H,MAAQ,IAAMozD,MAAsBpzD,IAAO,GAAa29D,GAAQD,QAAQ3rC,MAAM4rC,EAAKxzD,EAAGwzD,EAAM,IAAI39D,MAAQkR,GAAOA,IAAK6mB,GAAOupB,EAASvpB,IACnN,CAuBA,MACM42B,EAAY,CACdpf,UAPJ,SAAmB3wC,GACf,OAAOA,EAAO8U,KAAIqkB,GAAOupB,EAASvpB,IAAQwoB,EAASxoB,IAAQ,EAAUA,GAC/DujC,GAAe51D,OAAOqyB,IACtBA,GACV,EAII62B,YAHiB72B,GAAQA,EAIzBrN,KAAM,SAiEV,SAASkzC,EAAiBt5D,GACtB,OAAQ43D,EAAUp9D,MAAMwF,IAAW,CAAC,CACxC,CA6CAk3D,KAEII,GAAU3b,KACV,SAAM2b,EAAOt3D,QAASyzB,IACd+jC,IACAE,EAAQl9D,MAAQi5B,EAChBssB,EAAS//C,OAASyzB,EAClBw6B,GAAqBlO,EAAU2X,EAAQl9D,MAAOm9D,EAAgBn9D,OAClE,KAEJ,SAAM88D,EAAOhL,gBAAiB74B,IACtB+jC,IACAG,EAAgBn9D,MAAQi5B,EACxBssB,EAASuM,eAAiB74B,EAC1Bw6B,GAAqBlO,EAAU2X,EAAQl9D,MAAOm9D,EAAgBn9D,OAClE,KAIR,MAAM++D,EAAW,CACb3iC,GAAIsgC,GACJl3D,SACAssD,iBACImL,oBACA,OAAOD,CACX,EACIC,kBAAchkC,GACd+jC,EAAiB/jC,EACbA,GAAO6jC,IACPI,EAAQl9D,MAAQ88D,EAAOt3D,OAAOxF,MAC9Bm9D,EAAgBn9D,MAAQ88D,EAAOhL,eAAe9xD,MAC9CyzD,GAAqBlO,EAAU2X,EAAQl9D,MAAOm9D,EAAgBn9D,OAEtE,EACIg/D,uBACA,OAAO9+D,OAAO4oC,KAAKs0B,EAAUp9D,OAAOge,MACxC,EACA6xB,WACIzQ,gBACA,OAAO6+B,CACX,EACIzO,kBACA,OAAO0O,GAAgB,CAAC,CAC5B,EACIe,eACA,OAAOlC,CACX,EACI3K,kBACA,OAAOmL,CACX,EACInL,gBAAYn5B,GACZskC,EAAetkC,EACfssB,EAAS6M,YAAcmL,CAC3B,EACIlL,mBACA,OAAOmL,CACX,EACInL,iBAAap5B,GACbukC,EAAgBvkC,EAChBssB,EAAS8M,aAAemL,CAC5B,EACIE,mBACA,OAAOD,CACX,EACIC,iBAAazkC,GACbwkC,EAAgBxkC,CACpB,EACIq5B,qBACA,OAAOqL,CACX,EACIrL,mBAAer5B,GACf0kC,EAAkB1kC,EAClBssB,EAAS+M,eAAiBqL,CAC9B,EACIlL,sBACA,OAAOsL,CACX,EACItL,oBAAgBx5B,GAChB8kC,EAAmB9kC,EACnBssB,EAASkN,gBAAkBx5B,CAC/B,EACIy5B,sBACA,OAAOsL,CACX,EACItL,oBAAgBz5B,GAChB+kC,EAAmB/kC,EACnBssB,EAASmN,gBAAkBz5B,CAC/B,EACA5tB,IACAyzD,mBACAI,iBArIJ,SAA0B15D,EAAQomC,GAC9BwxB,EAAUp9D,MAAMwF,GAAUomC,EAC1B2Z,EAAS1V,SAAWutB,EAAUp9D,KAClC,EAmIIq8D,mBAjIJ,SAA4B72D,EAAQomC,GAChCwxB,EAAUp9D,MAAMwF,GAAU43D,EAAUp9D,MAAMwF,IAAW,CAAC,EACtDm2D,GAAS/vB,EAASwxB,EAAUp9D,MAAMwF,IAClC+/C,EAAS1V,SAAWutB,EAAUp9D,KAClC,EA8HIm/D,0BAjUJ,WACI,OAAO5c,EAAWub,GAAoBA,EAAmB,IAC7D,EAgUIsB,0BA9TJ,SAAmCnqC,GAC/B6oC,EAAmB7oC,EACnBswB,EAASiN,gBAAkBv9B,CAC/B,EA4TIoqC,kBA1TJ,WACI,OAAOzB,CACX,EAyTI0B,kBAvTJ,SAA2BrqC,GACP,OAAZA,IACA4oC,EAAkBlB,GAAyB1nC,IAE/C2oC,EAAW3oC,EACXswB,EAAS4M,QAAU0L,CACvB,EAkTI,CAAC7C,IAjLL,SAAwBhtB,GACpBkwB,EAAelwB,EACfuX,EAASiK,YAAc0O,CAC3B,GA4MA,OA3BIa,EAAShN,gBAAkBA,EAC3BgN,EAAS/M,cAAgBA,EACzB+M,EAASQ,GA9Ob,YAAer+D,GACX,MAAO6uD,EAAMC,EAAM8F,GAAQ50D,EAC3B,GAAI40D,IAAS9tB,EAAS8tB,GAClB,MAAM4E,GAAgBd,GAAe9F,kBAEzC,OAAOzoD,EAAM0kD,EAAMC,EAAM,EAAO,CAAEuE,iBAAiB,GAAQuB,GAAQ,CAAC,GACxE,EAyOIiJ,EAASS,GAlLb,SAAYptD,EAAK5M,GACb,MACMomC,EAAUkzB,EADKtc,EAASh9C,GAAUA,EAAS03D,EAAQl9D,OAEzD,OAAkD,OAA3CulD,EAASqN,gBAAgBhnB,EAASx5B,EAC7C,EA+KI2sD,EAASU,GAhKb,SAAYrtD,GACR,MAAMy9B,EAfV,SAAyBz9B,GACrB,IAAIy9B,EAAW,KACf,MAAM2lB,EAAUjF,GAAwBhL,EAAU4X,EAAgBn9D,MAAOk9D,EAAQl9D,OACjF,IAAK,IAAIiK,EAAI,EAAGA,EAAIurD,EAAQ/0D,OAAQwJ,IAAK,CACrC,MAAMy1D,EAAuBtC,EAAUp9D,MAAMw1D,EAAQvrD,KAAO,CAAC,EACvD01D,EAAepa,EAASqN,gBAAgB8M,EAAsBttD,GACpE,GAAoB,MAAhButD,EAAsB,CACtB9vB,EAAW8vB,EACX,KACJ,CACJ,CACA,OAAO9vB,CACX,CAGqB+vB,CAAgBxtD,GAEjC,OAAmB,MAAZy9B,EACDA,EACAitB,GACIA,EAAO2C,GAAGrtD,IACV,CAAC,CACf,EAyJI2sD,EAASl4D,EAzOb,YAAc3F,GACV,OAAOm9D,GAAaz1D,GAAWg2D,QAAQ3rC,MAAMkjC,GAAU,KAAM,CAACvtD,KAAY1H,MAAQ,IAAMm1D,MAAqBn1D,IAAO,GAAmB29D,GAAQD,QAAQ3rC,MAAM4rC,EAAKh4D,EAAGg4D,EAAM,IAAI39D,MAAQ,IPUjK,KOV8L+3B,GAAOupB,EAASvpB,IACxO,EAwOI8lC,EAAS1vC,EAtOb,YAAcnuB,GACV,OAAOm9D,GAAaz1D,GAAWg2D,QAAQ3rC,MAAM1xB,GAAQ,KAAM,CAACqH,KAAY1H,MAAQ,IAAM21D,MAAmB31D,IAAO,GAAiB29D,GAAQD,QAAQ3rC,MAAM4rC,EAAKxvC,EAAGwvC,EAAM,IAAI39D,MAAQ,IPM3J,KONwL+3B,GAAOupB,EAASvpB,IAClO,EAqOI8lC,EAASc,kBA1Ib,SAA2Br6D,GACvB,OAAO63D,EAAiBr9D,MAAMwF,IAAW,CAAC,CAC9C,EAyIIu5D,EAASe,kBAvIb,SAA2Bt6D,EAAQoI,GAC/ByvD,EAAiBr9D,MAAMwF,GAAUoI,EACjC23C,EAASwM,gBAAkBsL,EAAiBr9D,MAC5C42D,GAAoBrR,EAAU//C,EAAQoI,EAC1C,EAoIImxD,EAASzC,oBAlIb,SAA6B92D,EAAQoI,GACjCyvD,EAAiBr9D,MAAMwF,GAAU,EAAO63D,EAAiBr9D,MAAMwF,IAAW,CAAC,EAAGoI,GAC9E23C,EAASwM,gBAAkBsL,EAAiBr9D,MAC5C42D,GAAoBrR,EAAU//C,EAAQoI,EAC1C,EA+HImxD,EAASgB,gBA7Hb,SAAyBv6D,GACrB,OAAO83D,EAAet9D,MAAMwF,IAAW,CAAC,CAC5C,EA4HIu5D,EAASiB,gBA1Hb,SAAyBx6D,EAAQoI,GAC7B0vD,EAAet9D,MAAMwF,GAAUoI,EAC/B23C,EAASyM,cAAgBsL,EAAet9D,MACxCg3D,GAAkBzR,EAAU//C,EAAQoI,EACxC,EAuHImxD,EAASxC,kBArHb,SAA2B/2D,EAAQoI,GAC/B0vD,EAAet9D,MAAMwF,GAAU,EAAO83D,EAAet9D,MAAMwF,IAAW,CAAC,EAAGoI,GAC1E23C,EAASyM,cAAgBsL,EAAet9D,MACxCg3D,GAAkBzR,EAAU//C,EAAQoI,EACxC,EAkHImxD,EAAS9D,IAAoBl2D,EAAQk7D,mBACrClB,EAASpE,IA9Nb,YAA2Bz5D,GACvB,OAAOm9D,GAAaz1D,IAChB,IAAIo+C,EACJ,MAAMzB,EAAW38C,EACjB,IACI28C,EAASsK,UAAYA,EACrB7I,EAAM4X,QAAQ3rC,MAAMohC,GAAW,KAAM,CAAC9O,KAAarkD,GAIvD,CAFA,QACIqkD,EAASsK,UAAY,IACzB,CACA,OAAO7I,CAAG,IACX,IAAMsN,MAAsBpzD,IAAO,GAEtC29D,GAAQA,EAAKlE,OAAyBz5D,KAAOkR,GAAO,CAACoqD,GAAepqD,MAAO6mB,GAAO3mB,EAAQ2mB,IAC9F,EAgNI8lC,EAASnE,IAxMb,YAA0B15D,GACtB,OAAOm9D,GAAaz1D,GAAWg2D,QAAQ3rC,MAAMkjC,GAAU,KAAM,CAACvtD,KAAY1H,MAAQ,IAAMm1D,MAAqBn1D,IAAO,GAEpH29D,GAAQA,EAAKjE,OAAwB15D,KAAO,IAAM,KAAI+3B,GAAOupB,EAASvpB,IAAQ3mB,EAAQ2mB,IAC1F,EAqMI8lC,EAASlE,IA/Mb,YAAwB35D,GACpB,OAAOm9D,GAAaz1D,GAAWg2D,QAAQ3rC,MAAM1xB,GAAQ,KAAM,CAACqH,KAAY1H,MAAQ,IAAM21D,MAAmB31D,IAAO,GAEhH29D,GAAQA,EAAKhE,OAAsB35D,KAAO,IAAM,KAAI+3B,GAAOupB,EAASvpB,IAAQ3mB,EAAQ2mB,IACxF,EAsNO8lC,CACX,CA0FA,SAASmB,GAAcn7D,EAAU,CAAC,EAAG83D,GACjC,CACI,MAAMkC,EAAWnC,GAnFzB,SAAgC73D,GAC5B,MAAMS,EAASg9C,EAASz9C,EAAQS,QAAUT,EAAQS,OAASirD,GACrDqB,EAAiBtP,EAASz9C,EAAQ+sD,iBACpCx/C,EAAQvN,EAAQ+sD,iBAChBhQ,EAAc/8C,EAAQ+sD,kBACK,IAA3B/sD,EAAQ+sD,eACN/sD,EAAQ+sD,eACRtsD,EACA2sD,EAAU5P,EAAWx9C,EAAQotD,SAAWptD,EAAQotD,aAAU3iD,EAC1D4iD,GAAc,EAAUrtD,EAAQo7D,yBAClCxe,EAAS58C,EAAQo7D,yBACdp7D,EAAQo7D,sBAET9N,GAAe,EAAUttD,EAAQq7D,sBACnCze,EAAS58C,EAAQq7D,sBACdr7D,EAAQq7D,mBAET1C,GAAe,EAAU34D,EAAQ24D,eACjC34D,EAAQ24D,aAERpL,IAAmBvtD,EAAQs7D,uBAC3BjhC,EAAY0iB,EAAc/8C,EAAQq6B,WAAar6B,EAAQq6B,UAAY,CAAC,EACpEkhC,EAAqBv7D,EAAQu7D,mBAC7B9N,EAAkBjQ,EAAWx9C,EAAQytD,iBACrCztD,EAAQytD,qBACRhjD,EACAijD,GAAkBjQ,EAASz9C,EAAQw7D,oBACL,QAA9Bx7D,EAAQw7D,kBAER7N,IAAoB3tD,EAAQy7D,oBAC5BvD,GAAgB,EAAUl4D,EAAQ07D,OAAQ17D,EAAQ07D,KAOxD,IAAI5wB,EAAW9qC,EAAQ8qC,SACvB,GAAIiS,EAAc/8C,EAAQ27D,gBAAiB,CACvC,MAAMA,EAAiB37D,EAAQ27D,eAE/B7wB,EADgB3vC,OAAO4oC,KAAK43B,GACT//D,QAAO,CAACkvC,EAAUrqC,KACjC,MAAMomC,EAAUiE,EAASrqC,KAAYqqC,EAASrqC,GAAU,CAAC,GAEzD,OADA,EAAOomC,EAAS80B,EAAel7D,IACxBqqC,CAAQ,GACfA,GAAY,CAAC,EACrB,CACA,MAAM,OAAE0rB,EAAM,OAAEuB,EAAM,mBAAEmD,GAAuBl7D,EACzCgtD,EAAkBhtD,EAAQgtD,gBAC1BC,EAAgBjtD,EAAQitD,cAE9B,MAAO,CACHxsD,SACAssD,iBACAjiB,WACA2rB,SALaz2D,EAAQy2D,SAMrBzJ,kBACAC,gBACAG,UACAC,cACAC,eACAqL,eACApL,iBACAlzB,YACAowB,YAAa8Q,EACb9N,kBACAC,kBACAC,kBACAE,gBAAiB7tD,EAAQ6tD,gBACzBqK,gBACA1B,SACAuB,SACAmD,qBAER,CASwCU,CAAuB57D,IAEjD67D,EAAU,CAEZxkC,GAAI2iC,EAAS3iC,GAET52B,aACA,OAAOu5D,EAASv5D,OAAOxF,KAC3B,EACIwF,WAAOyzB,GACP8lC,EAASv5D,OAAOxF,MAAQi5B,CAC5B,EAEI64B,qBACA,OAAOiN,EAASjN,eAAe9xD,KACnC,EACI8xD,mBAAe74B,GACf8lC,EAASjN,eAAe9xD,MAAQi5B,CACpC,EAEI4W,eACA,OAAOkvB,EAASlvB,SAAS7vC,KAC7B,EAEI+xD,sBACA,OAAOgN,EAAShN,gBAAgB/xD,KACpC,EAEIgyD,oBACA,OAAO+M,EAAS/M,cAAchyD,KAClC,EAEIg/D,uBACA,OAAOD,EAASC,gBACpB,EAEI9pD,gBAGA,MAAO,CACH46C,cACI,MAAO,EACX,EAER,EACI56C,cAAU+jB,GAEd,EAEIk5B,cACA,OAAO4M,EAASM,mBACpB,EACIlN,YAAQl9B,GACR8pC,EAASO,kBAAkBrqC,EAC/B,EAEIkrC,4BACA,OAAO,EAAUpB,EAAS3M,cACnB2M,EAAS3M,YACV2M,EAAS3M,WACnB,EACI+N,0BAAsBlnC,GACtB8lC,EAAS3M,YAAc,EAAUn5B,IAAQA,EAAMA,CACnD,EAEImnC,yBACA,OAAO,EAAUrB,EAAS1M,eACnB0M,EAAS1M,aACV0M,EAAS1M,YACnB,EACI+N,uBAAmBnnC,GACnB8lC,EAAS1M,aAAe,EAAUp5B,IAAQA,EAAMA,CACpD,EAEImG,gBACA,OAAO2/B,EAAS3/B,SACpB,EAEIihC,6BACA,OAAOtB,EAASzM,cACpB,EACI+N,2BAAuBpnC,GACvB8lC,EAASzM,eAAiBr5B,CAC9B,EAEIu5B,sBACA,OAAOuM,EAASI,2BACpB,EACI3M,oBAAgBv9B,GAChB8pC,EAASK,0BAA0BnqC,EACvC,EAEIwrC,WACA,OAAO1B,EAAS9B,aACpB,EACIwD,SAAKxnC,GACL8lC,EAAS9B,cAAgBhkC,CAC7B,EAEIsnC,wBACA,OAAOxB,EAAStM,gBAAkB,OAAS,KAC/C,EACI8N,sBAAkBtnC,GAClB8lC,EAAStM,gBAA0B,QAARx5B,CAC/B,EAEIunC,0BACA,OAAOzB,EAASrM,eACpB,EACI8N,wBAAoBvnC,GACpB8lC,EAASrM,gBAAkBz5B,CAC/B,EAEI4nC,+BAGA,OAAO,CACX,EACIA,6BAAyB5nC,GAG7B,EAEIqnC,yBACA,OAAOvB,EAASvP,aAAe,CAAC,CACpC,EAEAsR,WAAY/B,EAEZ1zD,KAAKnK,GACD,MAAO6uD,EAAMC,EAAM8F,GAAQ50D,EACrB6D,EAAU,CAAC,EACjB,IAAI+e,EAAO,KACPurC,EAAQ,KACZ,IAAK7M,EAASuN,GACV,MAAM2K,GAAgBd,GAAe9F,kBAEzC,MAAM1hD,EAAM29C,EAiBZ,OAhBIvN,EAASwN,GACTjrD,EAAQS,OAASwqD,EAEZ19C,EAAQ09C,GACblsC,EAAOksC,EAEFlO,EAAckO,KACnBX,EAAQW,GAER19C,EAAQwjD,GACRhyC,EAAOgyC,EAEFhU,EAAcgU,KACnBzG,EAAQyG,GAGL8I,QAAQ3rC,MAAM8rC,EAAS1zD,EAAG0zD,EAAU,CACvC3sD,EACC0R,GAAQurC,GAAS,CAAC,EACnBtqD,GAER,EACAw6D,MAAMr+D,GACF,OAAO09D,QAAQ3rC,MAAM8rC,EAASQ,GAAIR,EAAU,IAAI79D,GACpD,EAEA6/D,MAAM7/D,GACF,MAAO6uD,EAAMC,EAAM8F,GAAQ50D,EACrB6D,EAAU,CAAEojD,OAAQ,GAC1B,IAAIrkC,EAAO,KACPurC,EAAQ,KACZ,IAAK7M,EAASuN,GACV,MAAM2K,GAAgBd,GAAe9F,kBAEzC,MAAM1hD,EAAM29C,EAuBZ,OAtBIvN,EAASwN,GACTjrD,EAAQS,OAASwqD,EAEZvO,EAASuO,GACdjrD,EAAQojD,OAAS6H,EAEZ19C,EAAQ09C,GACblsC,EAAOksC,EAEFlO,EAAckO,KACnBX,EAAQW,GAERxN,EAASsT,GACT/wD,EAAQS,OAASswD,EAEZxjD,EAAQwjD,GACbhyC,EAAOgyC,EAEFhU,EAAcgU,KACnBzG,EAAQyG,GAGL8I,QAAQ3rC,MAAM8rC,EAAS1zD,EAAG0zD,EAAU,CACvC3sD,EACC0R,GAAQurC,GAAS,CAAC,EACnBtqD,GAER,EAEAy6D,GAAGptD,EAAK5M,GACJ,OAAOu5D,EAASS,GAAGptD,EAAK5M,EAC5B,EAEAi6D,GAAGrtD,GACC,OAAO2sD,EAASU,GAAGrtD,EACvB,EAEA0sD,iBAAiBt5D,GACb,OAAOu5D,EAASD,iBAAiBt5D,EACrC,EAEA05D,iBAAiB15D,EAAQomC,GACrBmzB,EAASG,iBAAiB15D,EAAQomC,EACtC,EAEAywB,mBAAmB72D,EAAQomC,GACvBmzB,EAAS1C,mBAAmB72D,EAAQomC,EACxC,EAEA/kC,KAAK3F,GACD,OAAO09D,QAAQ3rC,MAAM8rC,EAASl4D,EAAGk4D,EAAU,IAAI79D,GACnD,EAEA2+D,kBAAkBr6D,GACd,OAAOu5D,EAASc,kBAAkBr6D,EACtC,EAEAs6D,kBAAkBt6D,EAAQoI,GACtBmxD,EAASe,kBAAkBt6D,EAAQoI,EACvC,EAEA0uD,oBAAoB92D,EAAQoI,GACxBmxD,EAASzC,oBAAoB92D,EAAQoI,EACzC,EAEAyhB,KAAKnuB,GACD,OAAO09D,QAAQ3rC,MAAM8rC,EAAS1vC,EAAG0vC,EAAU,IAAI79D,GACnD,EAEA6+D,gBAAgBv6D,GACZ,OAAOu5D,EAASgB,gBAAgBv6D,EACpC,EAEAw6D,gBAAgBx6D,EAAQoI,GACpBmxD,EAASiB,gBAAgBx6D,EAAQoI,EACrC,EAEA2uD,kBAAkB/2D,EAAQoI,GACtBmxD,EAASxC,kBAAkB/2D,EAAQoI,EACvC,EAGAozD,eAAe/R,EAAQC,GAGnB,OAAQ,CACZ,EAEA+R,6BAA6B98C,GACzB,MAAM,iCAAE+8C,GAAqCn8D,EACzCm8D,GACAA,EAAiC/8C,EAAQy8C,EAEjD,GAaJ,OAAOA,CACX,CACJ,CAGA,MAAMO,GAAkB,CACpBh4B,IAAK,CACDvd,KAAM,CAAChlB,OAAQ1G,SAEnBsF,OAAQ,CACJomB,KAAMhlB,QAEVw6D,MAAO,CACHx1C,KAAMhlB,OAEN0lB,UAAY2M,GAAwC,WAARA,GAA4B,WAARA,EAChEtN,QAAS,UAEb2nC,KAAM,CACF1nC,KAAM1rB,SA+Bd,SAASmhE,GAAmBl4B,GACxB,OAAO,KACX,CAmDA,MAAMm4B,GAAqC,CAEvC/gE,KAAM,SACN6qB,MAAO,EAAO,CACVm2C,QAAS,CACL31C,KAAMhlB,OACN3F,UAAU,GAEdknD,OAAQ,CACJv8B,KAAM,CAACpqB,OAAQoF,QAEf0lB,UAAY2M,GAAQwoB,EAASxoB,KAASx3B,MAAMw3B,KAEjDkoC,IAGHxhC,MAAMvU,EAAOxiB,GACT,MAAM,MAAE0kC,EAAK,MAAE9e,GAAU5lB,EAEnB0qD,EAAOloC,EAAMkoC,MACfkO,GAAQ,CACJC,SAAUr2C,EAAMg2C,MAChBM,gBAAgB,IAExB,MAAO,KACH,MAAM54B,EAAO5oC,OAAO4oC,KAAKwE,GAAOlwB,QAAOhL,GAAe,MAARA,IACxCrN,EAAU,CAAC,EACbqmB,EAAM5lB,SACNT,EAAQS,OAAS4lB,EAAM5lB,aAENgK,IAAjB4b,EAAM+8B,SACNpjD,EAAQojD,OAAS3F,EAASp3B,EAAM+8B,SAAW/8B,EAAM+8B,OAAS/8B,EAAM+8B,QAEpE,MAAMwZ,EAjHlB,UAEA,MAAEr0B,GACFxE,GACI,GAAoB,IAAhBA,EAAKroC,QAA4B,YAAZqoC,EAAK,GAI1B,OAFYwE,EAAM3hB,QAAU2hB,EAAM3hB,UAAY,IAEnChrB,QAAO,CAACihE,EAAM7Y,IACN,IACR6Y,KACCtvD,EAAQy2C,EAAQ9rB,UAAY8rB,EAAQ9rB,SAAW,CAAC8rB,KAEzD,IAIH,OAAOjgB,EAAKnoC,QAAO,CAACghE,EAAKvvD,KACrB,MAAMwvD,EAAOt0B,EAAMl7B,GAInB,OAHIwvD,IACAD,EAAIvvD,GAAOwvD,KAERD,CAAG,GACX,CAAC,EAEZ,CAwFwBE,CAAkBj5D,EAASkgC,GAEjC7L,EAAWq2B,EAAKqH,IAAsBvvC,EAAMm2C,QAASI,EAAK58D,GAC1D+8D,EAAgB,EAAO,CAAC,EAAGtzC,GAC3B2a,EAAMqZ,EAASp3B,EAAM+d,MAAQnB,EAAS5c,EAAM+d,KAC5C/d,EAAM+d,IACNk4B,KACN,OAAO,KAAAn6D,GAAEiiC,EAAK24B,EAAe7kC,EAAS,CAE9C,GAMJ,SAAS8kC,GAAgB32C,EAAOxiB,EAASo5D,EAAUC,GAC/C,MAAM,MAAE30B,EAAK,MAAE9e,GAAU5lB,EACzB,MAAO,KACH,MAAM7D,EAAU,CAAE6/B,MAAM,GACxB,IAAIwxB,EAAY,CAAC,EACbhrC,EAAM5lB,SACNT,EAAQS,OAAS4lB,EAAM5lB,QAEvBg9C,EAASp3B,EAAMxd,QACf7I,EAAQqN,IAAMgZ,EAAMxd,OAEfo6B,EAAS5c,EAAMxd,UAEhB40C,EAASp3B,EAAMxd,OAAOwE,OAEtBrN,EAAQqN,IAAMgZ,EAAMxd,OAAOwE,KAG/BgkD,EAAYl2D,OAAO4oC,KAAK1d,EAAMxd,QAAQjN,QAAO,CAACoE,EAAS2iB,IAC5Cs6C,EAASrpD,SAAS+O,GACnB,EAAO,CAAC,EAAG3iB,EAAS,CAAE,CAAC2iB,GAAO0D,EAAMxd,OAAO8Z,KAC3C3iB,GACP,CAAC,IAER,MAAMqgC,EAAQ68B,EAAkB72C,EAAMprB,MAAO+E,EAASqxD,GACtD,IAAIn5B,EAAW,CAACl4B,EAAQqN,KACpBE,EAAQ8yB,GACRnI,EAAWmI,EAAMxwB,KAAI,CAACgwB,EAAMvxB,KACxB,MAAMuuD,EAAOt0B,EAAM1I,EAAKhZ,MAClB5L,EAAO4hD,EACPA,EAAK,CAAE,CAACh9B,EAAKhZ,MAAOgZ,EAAK5kC,MAAOqT,QAAO+xB,UACvC,CAACR,EAAK5kC,OAlC5B,IAAiBmkB,EAsCD,OArCL7R,EADM6R,EAmCWnE,KAlCGwiC,EAASr+B,EAAO,MAmC3BnE,EAAK,GAAG5N,IAAM,GAAGwyB,EAAKhZ,QAAQvY,KAE3B2M,CAAI,IAGVwiC,EAASpd,KACdnI,EAAW,CAACmI,IAEhB,MAAM08B,EAAgB,EAAO,CAAC,EAAGtzC,GAC3B2a,EAAMqZ,EAASp3B,EAAM+d,MAAQnB,EAAS5c,EAAM+d,KAC5C/d,EAAM+d,IACNk4B,KACN,OAAO,KAAAn6D,GAAEiiC,EAAK24B,EAAe7kC,EAAS,CAE9C,CAmBA,MAAMi5B,GAAsC,CAExC31D,KAAM,SACN6qB,MAAO,EAAO,CACVprB,MAAO,CACH4rB,KAAMpqB,OACNP,UAAU,GAEd2M,OAAQ,CACJge,KAAM,CAAChlB,OAAQ1G,UAEpBihE,IAGHxhC,MAAMvU,EAAOxiB,GACT,MAAM0qD,EAAOloC,EAAMkoC,MACfkO,GAAQ,CAAEC,SAAU,SAAUC,gBAAgB,IAClD,OAAOK,GAAgB32C,EAAOxiB,EAASmuD,IAA4B,IAAI71D,IAEvEoyD,EAAKuH,OAAsB35D,IAC/B,GAoBEghE,GAAuC,CAEzC3hE,KAAM,SACN6qB,MAAO,EAAO,CACVprB,MAAO,CACH4rB,KAAM,CAACpqB,OAAQa,MACfpB,UAAU,GAEd2M,OAAQ,CACJge,KAAM,CAAChlB,OAAQ1G,UAEpBihE,IAGHxhC,MAAMvU,EAAOxiB,GACT,MAAM0qD,EAAOloC,EAAMkoC,MACfkO,GAAQ,CAAEC,SAAU,SAAUC,gBAAgB,IAClD,OAAOK,GAAgB32C,EAAOxiB,EAAS4tD,IAA8B,IAAIt1D,IAEzEoyD,EAAKsH,OAAwB15D,IACjC,GA0EJ,SAASihE,GAAWniE,GAChB,GAAIwiD,EAASxiD,GACT,MAAO,CAAEU,KAAMV,GAEd,GAAI8hD,EAAc9hD,GAAQ,CAC3B,KAAM,SAAUA,GACZ,MAAM06D,GAAgBd,GAAeK,gBAEzC,OAAOj6D,CACX,CAEI,MAAM06D,GAAgBd,GAAeM,cAE7C,CACA,SAASkI,GAAWpiE,GAChB,MAAM,KAAEU,EAAI,OAAE8E,EAAM,KAAEtE,EAAI,OAAE+tD,EAAM,OAAE9G,GAAWnoD,EACzC+E,EAAU,CAAC,EACXsqD,EAAQnuD,GAAQ,CAAC,EAUvB,OATIshD,EAASh9C,KACTT,EAAQS,OAASA,GAEjBi8C,EAASwN,KACTlqD,EAAQojD,OAAS8G,GAEjBxN,EAAS0G,KACTpjD,EAAQojD,OAASA,GAEd,CAACznD,EAAM2uD,EAAOtqD,EACzB,CAEA,SAASkuB,GAAMyO,EAAK4xB,KAASvuD,GACzB,MAAMs9D,EAAgBvgB,EAAc/8C,EAAQ,IACtCA,EAAQ,GACR,CAAC,EACDu9D,IAAyBD,EAAcC,uBACvB,EAAUD,EAAcE,gBACxCF,EAAcE,iBAShB7gC,EAAIE,UAAW0gC,EAA0C,OAAnBhB,GAAY/gE,KAAe+gE,IACjE5/B,EAAIE,UAAUs0B,GAAa31D,KAAM21D,IACjCx0B,EAAIE,UAAUsgC,GAAe3hE,KAAM2hE,KAInCxgC,EAAI9B,UAAU,IA9GtB,SAAqB0zB,GACjB,MAAMkP,EAAYC,IACd,MAAM,SAAEzG,EAAQ,UAAE58B,EAAS,MAAEp/B,GAAUyiE,EAEvC,IAAKzG,IAAaA,EAAS0G,EACvB,MAAMhI,GAAgBd,GAAeS,kBAEzC,MAAM0E,EAnBd,SAAuBzL,EAAM0I,GACzB,MAAM2G,EAAerP,EACrB,GAAkB,gBAAdA,EAAKxd,KACL,OAAQ6sB,EAAaC,cAAc5G,IAAa1I,EAAK4I,OAEpD,CACD,MAAM0E,EAAU+B,EAAaC,cAAc5G,GAC3C,OAAkB,MAAX4E,EACDA,EAAQE,WACRxN,EAAK4I,OAAO4E,UACtB,CACJ,CAQyB+B,CAAcvP,EAAM0I,EAAS0G,GAIxCI,EAAcX,GAAWniE,GAC/B,MAAO,CACH4+D,QAAQ3rC,MAAM8rC,EAAS1zD,EAAG0zD,EAAU,IAAIqD,GAAWU,KACnD/D,EACH,EAqCL,MAAO,CACH9vC,QApCa,CAACiH,EAAIusC,KAClB,MAAOxjC,EAAa8/B,GAAYyD,EAASC,GACrCthB,GAAamS,EAAK4I,SAAW6C,IAE7B7oC,EAAG6sC,eAAgB,SAAMhE,EAASv5D,QAAQ,KACtCi9D,EAAQzG,UAAYyG,EAAQzG,SAASgH,cAAc,KAG3D9sC,EAAG4qC,WAAa/B,EAChB7oC,EAAG+I,YAAcA,CAAW,EA4B5BgkC,UA1BgB/sC,IACZirB,GAAajrB,EAAG6sC,gBAChB7sC,EAAG6sC,gBACH7sC,EAAG6sC,mBAAgBvzD,SACZ0mB,EAAG6sC,eAEV7sC,EAAG4qC,aACH5qC,EAAG4qC,gBAAatxD,SACT0mB,EAAG4qC,WACd,EAkBAoC,aAhBW,CAAChtC,GAAMl2B,YAClB,GAAIk2B,EAAG4qC,WAAY,CACf,MAAM/B,EAAW7oC,EAAG4qC,WACdgC,EAAcX,GAAWniE,GAC/Bk2B,EAAG+I,YAAc2/B,QAAQ3rC,MAAM8rC,EAAS1zD,EAAG0zD,EAAU,IAC9CqD,GAAWU,IAEtB,GAUAK,YARiBV,IACjB,MAAOxjC,GAAeujC,EAASC,GAC/B,MAAO,CAAExjC,cAAa,EAQ9B,CAoD2BmkC,CAAY9P,GAEvC,CAEA,MAAM+P,GAA2B,gCACjC,IAAIC,GACJzjE,eAAe0jE,GAAe7hC,EAAK4xB,GAC/B,OAAO,IAAI1oC,SAAQ,CAACC,EAAS24C,KACzB,IACI3K,GAAoB,CAChBz8B,GAAI,+BACJoT,MAAO+pB,GAAkB,gCACzBkK,YAAa,WACbC,SAAU,+BACVC,KAAM,0DACNC,oBAAqB,CAACP,IACtB3hC,IAAKA,IACNmiC,IACCP,GAAcO,EACdA,EAAIlhB,GAAGmhB,oBAAmB,EAAGC,oBAAmBC,gBA6EhE,SAAiChI,EACjCgI,EAAU1Q,GAEN,MAAM4I,EAAuB,gBAAd5I,EAAKxd,KACdwd,EAAK4I,OACL5I,EAAK4I,OAAO4E,WAClB,GAAI9E,GAAYA,EAASiI,MAAM/tC,IAAM8lC,EAASiI,MAAM/tC,GAAGguC,cAE/ClI,EAASiI,MAAM/tC,GAAGguC,eAAiBhI,EAAQ,CAC3C,MAAM/yB,EAAM,CACRqG,MAAO,SAAS20B,GAAkBnI,YAClCoI,UAAW,EACXC,gBAAiB,UAErBL,EAASM,KAAKxjE,KAAKqoC,EACvB,CAER,CA7FoBo7B,CAAwBR,EAAmBC,EAAU1Q,EAAK,IAE9DuQ,EAAIlhB,GAAG6hB,kBAAiB,EAAGT,oBAAmBU,mBACtCV,EAAkBE,MAAM/tC,IACxB6tC,EAAkBE,MAAM/tC,GAAGguC,cAC3BO,IACkB,WAAdnR,EAAKxd,KAEDiuB,EAAkBE,MAAM/tC,GAAGguC,eAC3B5Q,EAAK4I,OAAO4E,YACZ4D,GAAgBD,EAAcV,EAAkBE,MAAM/tC,GAAGguC,cAI7DQ,GAAgBD,EAAcV,EAAkBE,MAAM/tC,GAAGguC,cAEjE,IAEJL,EAAIc,aAAa,CACbvoC,GAAI,8BACJoT,MAAO+pB,GAAkB,+BACzBqL,KAAM,WACNC,sBAAuBrL,GAAwB,iCAEnDqK,EAAIlhB,GAAGmiB,kBAAiBhiB,IAChBA,EAAQphB,MAAQA,GACQ,gCAAxBohB,EAAQiiB,aA0JhC,SAAuBjiB,EAASwQ,GAC5BxQ,EAAQkiB,UAAUlkE,KAAK,CACnBs7B,GAAI,SACJoT,MAAO,iBAGX,MAAM0sB,EAAuB,gBAAd5I,EAAKxd,KACdwd,EAAK4I,OACL5I,EAAK4I,OAAO4E,WAClB,IAAK,MAAOmE,EAAajJ,KAAa1I,EAAK4R,YAAa,CAEpD,MAAMnG,EAAyB,gBAAdzL,EAAKxd,KAChBkmB,EACAA,EAAS8E,WACX5E,IAAW6C,GAGfjc,EAAQkiB,UAAUlkE,KAAK,CACnBs7B,GAAI2iC,EAAS3iC,GAAG95B,WAChBktC,MAAO,GAAG20B,GAAkBc,YAEpC,CACJ,CA/KwBE,CAAcriB,EAASwQ,EAC3B,IAEJ,MAAM8R,EAAQ,IAAIl+B,IAClB28B,EAAIlhB,GAAG0iB,mBAAkBxlE,MAAOijD,IAC5B,GAAIA,EAAQphB,MAAQA,GACQ,gCAAxBohB,EAAQiiB,YAGR,GAFAlB,EAAIyB,qBAuM5B,SAAsBxiB,EAASwQ,GAG3B,MAAMyL,EAAWwG,GAAcziB,EAAQ0iB,OAAQlS,GAC3CyL,IAGAjc,EAAQnQ,MAIhB,SAA+BosB,GAC3B,MAAMpsB,EAAQ,CAAC,EACT8yB,EAAa,sBACbC,EAAe,CACjB,CACI95C,KAAM65C,EACNrzD,IAAK,SACLuzD,UAAU,EACV3lE,MAAO++D,EAASv5D,OAAOxF,OAE3B,CACI4rB,KAAM65C,EACNrzD,IAAK,iBACLuzD,UAAU,EACV3lE,MAAO++D,EAASjN,eAAe9xD,OAEnC,CACI4rB,KAAM65C,EACNrzD,IAAK,mBACLuzD,UAAU,EACV3lE,MAAO++D,EAASC,kBAEpB,CACIpzC,KAAM65C,EACNrzD,IAAK,gBACLuzD,UAAU,EACV3lE,MAAO++D,EAAS9B,gBAGxBtqB,EAAM8yB,GAAcC,EACpB,MAAME,EAAqB,uBACrBC,EAAuB,CACzB,CACIj6C,KAAMg6C,EACNxzD,IAAK,WACLuzD,UAAU,EACV3lE,MAAO8lE,GAAsB/G,EAASlvB,SAAS7vC,SAGvD2yC,EAAMizB,GAAsBC,EAC5B,CACI,MAAME,EAAsB,wBACtBC,EAAwB,CAC1B,CACIp6C,KAAMm6C,EACN3zD,IAAK,kBACLuzD,UAAU,EACV3lE,MAAO++D,EAAShN,gBAAgB/xD,QAGxC2yC,EAAMozB,GAAuBC,EAC7B,MAAMC,EAAoB,wBACpBC,EAAsB,CACxB,CACIt6C,KAAMq6C,EACN7zD,IAAK,gBACLuzD,UAAU,EACV3lE,MAAO++D,EAAS/M,cAAchyD,QAGtC2yC,EAAMszB,GAAqBC,CAC/B,CACA,OAAOvzB,CACX,CAnEwBwzB,CAAsBpH,GAG9C,CAhNwBqH,CAAatjB,EAASwQ,GACC,WAAnBxQ,EAAQ0iB,OAAqB,CAC7B,IAAKJ,EAAMj+B,IAAI2b,EAAQphB,KAAM,CACzB,MAAOm9B,SAAcgF,EAAIwC,sBAAsBvjB,EAAQphB,KACvD0jC,EAAMlhC,IAAI4e,EAAQphB,IAAKm9B,EAC3B,CACAgF,EAAIyC,iBAAiBlB,EAAMv7C,IAAIi5B,EAAQphB,KAC3C,KACK,CACD,MAAMs6B,EA+JlC,SAA8BwJ,EAAQlS,GAClC,IAAI0I,EAAW,KACf,GAAe,WAAXwJ,EACA,IAAK,MAAO5jC,EAAWm9B,KAAazL,EAAK4R,YAAYp7B,UACjD,GAAIi1B,EAAS3iC,GAAG95B,aAAekjE,EAAQ,CACnCxJ,EAAWp6B,EACX,KACJ,CAGR,OAAOo6B,CACX,CA1K6CuK,CAAqBzjB,EAAQ0iB,OAAQlS,GACtD0I,GAAY6H,EAAIyC,iBAAiBtK,EACrC,CACJ,IAEJ6H,EAAIlhB,GAAG6jB,oBAAmB1jB,IAClBA,EAAQphB,MAAQA,GACQ,gCAAxBohB,EAAQiiB,aA0RhC,SAAmBjiB,EAASwQ,GACxB,MAAMyL,EAAWwG,GAAcziB,EAAQ0iB,OAAQlS,GAC/C,GAAIyL,EAAU,CACV,MAAO/vB,GAAS8T,EAAQpiD,KACV,WAAVsuC,GAAsBwT,EAASM,EAAQnQ,MAAM3yC,OAC7C++D,EAASv5D,OAAOxF,MAAQ8iD,EAAQnQ,MAAM3yC,MAEvB,mBAAVgvC,IACJwT,EAASM,EAAQnQ,MAAM3yC,QACpBsS,EAAQwwC,EAAQnQ,MAAM3yC,QACtBgoC,EAAS8a,EAAQnQ,MAAM3yC,QAC3B++D,EAASjN,eAAe9xD,MAAQ8iD,EAAQnQ,MAAM3yC,MAE/B,kBAAVgvC,GAA6B,EAAU8T,EAAQnQ,MAAM3yC,SAC1D++D,EAAS9B,cAAgBna,EAAQnQ,MAAM3yC,MAE/C,CACJ,CA1SwBymE,CAAU3jB,EAASwQ,EACvB,IAEJuQ,EAAI6C,iBAAiB,CACjBtqC,GAAI,oBACJoT,MAAO+pB,GAAkB,qBACzBoN,MAAOlN,GAA0B,uBAErC5uC,GAAQ,EAAK,GAMrB,CAHA,MAAO/gB,GACHlH,QAAQtC,MAAMwJ,GACd05D,GAAO,EACX,IAER,CAEA,SAASW,GAAkBnI,GACvB,OAAQA,EAASpwC,KAAKrrB,MAClBy7D,EAASpwC,KAAKg7C,aACd5K,EAASpwC,KAAKyP,QACd,WACR,CAmBA,SAASqpC,GAAgBD,EAAc1F,GACnC,MAAMnzC,EAAOy3C,GACboB,EAAa9xB,MAAM7xC,KAAK,CACpB8qB,OACAxZ,IAAK,SACLuzD,UAAU,EACV3lE,MAAO++D,EAASv5D,OAAOxF,QAE3BykE,EAAa9xB,MAAM7xC,KAAK,CACpB8qB,OACAxZ,IAAK,mBACLuzD,UAAU,EACV3lE,MAAO++D,EAASC,mBAEpByF,EAAa9xB,MAAM7xC,KAAK,CACpB8qB,OACAxZ,IAAK,iBACLuzD,UAAU,EACV3lE,MAAO++D,EAASjN,eAAe9xD,QAEnCykE,EAAa9xB,MAAM7xC,KAAK,CACpB8qB,OACAxZ,IAAK,gBACLuzD,UAAU,EACV3lE,MAAO++D,EAAS9B,gBAEpBwH,EAAa9xB,MAAM7xC,KAAK,CACpB8qB,OACAxZ,IAAK,WACLuzD,UAAU,EACV3lE,MAAO8lE,GAAsB/G,EAASlvB,SAAS7vC,SAG/CykE,EAAa9xB,MAAM7xC,KAAK,CACpB8qB,OACAxZ,IAAK,kBACLuzD,UAAU,EACV3lE,MAAO++D,EAAShN,gBAAgB/xD,QAEpCykE,EAAa9xB,MAAM7xC,KAAK,CACpB8qB,OACAxZ,IAAK,gBACLuzD,UAAU,EACV3lE,MAAO++D,EAAS/M,cAAchyD,OAG1C,CAEA,SAAS8lE,GAAsBj2B,GAC3B,MAAM7vC,EAAQ,CAAC,EAaf,OAZAE,OAAO4oC,KAAK+G,GAAU3a,SAAS9iB,IAC3B,MAAM85B,EAAI2D,EAASz9B,GA0B3B,IAAmC+gC,EAzBvBoP,EAAWrW,IAAM,WAAYA,EAC7BlsC,EAAMoS,GA0BP,CACHy0D,QAAS,CACLj7C,KAAM,WACNk7C,QAAS,yBALc3zB,EAxBgBjH,GAyBxB/B,OAAS,KAAK,GAAOgJ,EAAKhJ,YAAc,SAvBlDnC,EAASkE,GACdlsC,EAAMoS,GAAO0zD,GAAsB55B,GAGnClsC,EAAMoS,GAAO85B,CACjB,IAEGlsC,CACX,CACA,MAAM+mE,GAAM,CACR,IAAK,OACL,IAAK,OACL,IAAK,SACL,IAAK,SAET,SAAS,GAAOz/D,GACZ,OAAOA,EAAEqF,QAAQ,UAAWq6D,GAChC,CACA,SAASA,GAAWlgE,GAChB,OAAOigE,GAAIjgE,IAAMA,CACrB,CA8CA,SAASy+D,GAAcC,EAAQlS,GAC3B,GAAe,WAAXkS,EACA,MAAqB,gBAAdlS,EAAKxd,KACNwd,EAAK4I,OACL5I,EAAK4I,OAAO4E,WAEjB,CACD,MAAM9E,EAAW3pD,MAAMwV,KAAKyrC,EAAK4R,YAAYplE,UAAUoe,MAAKuM,GAAQA,EAAK2R,GAAG95B,aAAekjE,IAC3F,OAAIxJ,EACqB,gBAAd1I,EAAKxd,KACNkmB,EACAA,EAAS8E,WAGR,IAEf,CACJ,CA4EA,SAASmG,GAAiBp3C,EAAOizB,GAC7B,GAAIwgB,GAAa,CACb,IAAI4D,EACApkB,GAAW,YAAaA,IACxBokB,EAAUpkB,EAAQokB,eACXpkB,EAAQokB,SAEnB5D,GAAY2D,iBAAiB,CACzBE,QAAS,oBACTt3C,MAAO,CACHu3C,MAAOv3C,EACPq3C,UACAj7D,KAAM5J,KAAK+sB,MACX+iB,KAAM,CAAC,EACPr0B,KAAMglC,GAAW,CAAC,EAClBukB,QAAmB,kBAAVx3C,EACH,QACU,aAAVA,GACY,YAAVA,EACE,UACA,YAGtB,CACJ,CA4HA,SAASy3C,GAAYzI,EAAM95D,GACvB85D,EAAKr5D,OAAST,EAAQS,QAAUq5D,EAAKr5D,OACrCq5D,EAAK/M,eAAiB/sD,EAAQ+sD,gBAAkB+M,EAAK/M,eACrD+M,EAAK1M,QAAUptD,EAAQotD,SAAW0M,EAAK1M,QACvC0M,EAAKsB,sBACDp7D,EAAQo7D,uBAAyBtB,EAAKuB,mBAC1CvB,EAAKuB,mBACDr7D,EAAQq7D,oBAAsBvB,EAAKuB,mBACvCvB,EAAKwB,uBACDt7D,EAAQs7D,wBAA0BxB,EAAKwB,uBAC3CxB,EAAKrM,gBAAkBztD,EAAQytD,iBAAmBqM,EAAKrM,gBACvDqM,EAAK0B,kBAAoBx7D,EAAQw7D,mBAAqB1B,EAAK0B,kBAC3D1B,EAAK2B,oBACDz7D,EAAQy7D,qBAAuB3B,EAAK2B,oBACxC3B,EAAK4B,KAAO17D,EAAQ07D,MAAQ5B,EAAK4B,KACjC5B,EAAKiC,WAAW9F,IAAsBj2D,EAAQu7D,oBAAsBzB,EAAKyB,oBACzE,MAAMzwB,EAAWyrB,GAAkBuD,EAAKr5D,OAAQ,CAC5CqqC,SAAU9qC,EAAQ8qC,SAClB0rB,OAAQx2D,EAAQw2D,SASpB,OAPAr7D,OAAO4oC,KAAK+G,GAAU3a,SAAQ1vB,GAAUq5D,EAAKxC,mBAAmB72D,EAAQqqC,EAASrqC,MAC7ET,EAAQgtD,iBACR7xD,OAAO4oC,KAAK/jC,EAAQgtD,iBAAiB78B,SAAQ1vB,GAAUq5D,EAAKvC,oBAAoB92D,EAAQT,EAAQgtD,gBAAgBvsD,MAEhHT,EAAQitD,eACR9xD,OAAO4oC,KAAK/jC,EAAQitD,eAAe98B,SAAQ1vB,GAAUq5D,EAAKtC,kBAAkB/2D,EAAQT,EAAQitD,cAAcxsD,MAEvGq5D,CACX,CAWA,MAAM0I,GACSjmB,EAAW,mBAE1B,SAASkmB,GAAWziE,EAAU,CAAC,EAAG83D,GAE9B,MAAM4K,EAAeC,yBAA2B,EAAU3iE,EAAQ4iE,QACxD5iE,EAAQ4iE,OACRD,wBAEJE,GAAoB,EAAU7iE,EAAQ8iE,kBACtC9iE,EAAQ8iE,gBAGRC,GAAqBJ,0BAA2BD,KAC1C1iE,EAAQgjE,iBAEd7C,EAAc,IAAIh+B,KACjB8gC,EAAaC,GAuKxB,SAAsBljE,EAASmjE,EAAYrL,GAEvC,MAAMuE,GAAQ,UACd,CACI,MAAMt/D,EAAM4lE,yBAA2BQ,EACjC9G,EAAM+G,KAAI,IAAMjI,GAAcn7D,KAC9Bq8D,EAAM+G,KAAI,IAAMvL,GAAe73D,KACrC,GAAW,MAAPjD,EACA,MAAM44D,GAAgBd,GAAeS,kBAEzC,MAAO,CAAC+G,EAAOt/D,EACnB,CACJ,CAnLoCsmE,CAAarjE,EAAS0iE,GAChDj8B,EAAS8V,EAAkE,IAUjF,CACI,MAAMgS,EAAO,CAELxd,WACA,OAAO4xB,yBAA2BD,EAC5B,SACA,aACV,EAEIM,uBACA,OAAOD,CACX,EAEAjoE,cAAc6hC,KAAQ38B,GAC8BsjE,wBAE5C3mC,EAAIwiC,aAAe5Q,GAGvB5xB,EAAI4mC,oBAAsB98B,EAC1B9J,EAAInW,QAAQmW,EAAI4mC,oBAAqBhV,IAEhCmU,GAAgBG,GAmmBrC,SAA4BlmC,EAAKq9B,GAC7B,MAAMzL,EAAOpzD,OAAO+jC,OAAO,MAC3BskC,GAAkBrzC,SAAQxN,IACtB,MAAM8gD,EAAOtoE,OAAOyqC,yBAAyBo0B,EAAUr3C,GACvD,IAAK8gD,EACD,MAAM9N,GAAgBd,GAAeS,kBAEzC,MAAMoO,GAAO,SAAMD,EAAKxoE,OAClB,CACE6pB,MACI,OAAO2+C,EAAKxoE,MAAMA,KACtB,EAEAkkC,IAAIjL,GACAuvC,EAAKxoE,MAAMA,MAAQi5B,CACvB,GAEF,CACEpP,MACI,OAAO2+C,EAAK3+C,KAAO2+C,EAAK3+C,KAC5B,GAER3pB,OAAOymB,eAAe2sC,EAAM5rC,EAAM+gD,EAAK,IAE3C/mC,EAAItb,OAAOsiD,iBAAiBC,MAAQrV,EACpCsV,GAAoB1zC,SAAQyjC,IACxB,MAAM6P,EAAOtoE,OAAOyqC,yBAAyBo0B,EAAUpG,GACvD,IAAK6P,IAASA,EAAKxoE,MACf,MAAM06D,GAAgBd,GAAeS,kBAEzCn6D,OAAOymB,eAAe+a,EAAItb,OAAOsiD,iBAAkB,IAAI/P,IAAU6P,EAAK,GAE9E,CAloBoBK,CAAmBnnC,EAAK4xB,EAAK4I,QAG7B4M,2BACA71C,GAAMyO,EAAK4xB,KAASvuD,GAGpB2iE,yBAA2BD,GAC3B/lC,EAAIqnC,MAtMxB,SAAqBC,EAASjK,EAAUzL,GACpC,MAAO,CACH2V,eACI,MAAMjN,GAAW,WAEjB,IAAKA,EACD,MAAMtB,GAAgBd,GAAeS,kBAEzC,MAAMt1D,EAAU0mB,KAAKgO,SACrB,GAAI10B,EAAQuuD,KAAM,CACd,MAAM4V,EAAcnkE,EAAQuuD,KACxBvuD,EAAQw2D,SACR2N,EAAY3N,OAASx2D,EAAQw2D,QAEjC2N,EAAYpM,OAASiC,EACjBtzC,OAASA,KAAK09C,MACd19C,KAAKk9C,MAAQrB,GAAY0B,EAASE,IAGlCA,EAAYjJ,oBAAqB,EACjCx0C,KAAKk9C,MAAQzI,GAAcgJ,GAEnC,MACSnkE,EAAQw2D,OACT9vC,OAASA,KAAK09C,MACd19C,KAAKk9C,MAAQrB,GAAY0B,EAASjkE,GAGlC0mB,KAAKk9C,MAAQzI,GAAc,CACvB3E,OAAQx2D,EAAQw2D,OAChB0E,oBAAoB,EACpBnD,OAAQiC,IAMhBtzC,KAAKk9C,MAAQK,EAEbjkE,EAAQq3D,cACRH,GAAoB8C,EAAUh6D,EAASA,GAE3CikE,EAAQ/H,6BAA6Bx1C,KAAKk9C,OAC1CrV,EAAK8V,cAAcpN,EAAUvwC,KAAKk9C,OAElCl9C,KAAK49C,GAAK,IAAInoE,IAASuqB,KAAKk9C,MAAMt9D,KAAKnK,GACvCuqB,KAAK69C,IAAM,IAAIpoE,IAASuqB,KAAKk9C,MAAMpJ,MAAMr+D,GACzCuqB,KAAK89C,IAAM,IAAIroE,IAASuqB,KAAKk9C,MAAM5H,MAAM7/D,GACzCuqB,KAAK+9C,IAAM,CAACp3D,EAAK5M,IAAWimB,KAAKk9C,MAAMnJ,GAAGptD,EAAK5M,GAC/CimB,KAAKg+C,GAAK,IAAIvoE,IAASuqB,KAAKk9C,MAAM9hE,KAAK3F,GACvCuqB,KAAKi+C,GAAK,IAAIxoE,IAASuqB,KAAKk9C,MAAMt5C,KAAKnuB,GACvCuqB,KAAKk+C,IAAOv3D,GAAQqZ,KAAKk9C,MAAMlJ,GAAGrtD,EACtC,EACAkd,UAEI,GAAgD+4C,uBAE5C58C,KAAKsF,KACLtF,KAAKk9C,MAAO,CACZl9C,KAAKsF,IAAImzC,aAAez4C,KAAKk9C,MAAM7H,WACnC,MAAM8I,EAAWn+C,KAAKo+C,YAClBnnB,IACEonB,EAAWr+C,KAAKk9C,MACtBmB,EAASC,iBAAmBD,EAASC,gBAAgBH,GACrDA,EAAQjnB,GAAG,IAAKskB,GACpB,CACJ,EACAhE,YACI,MAAMjH,GAAW,WAEjB,IAAKA,EACD,MAAMtB,GAAgBd,GAAeS,kBAGzC,GAAgDgO,uBAE5C58C,KAAKsF,KACLtF,KAAKsF,IAAImzC,eACLz4C,KAAKo+C,cACLp+C,KAAKo+C,YAAYhnB,IAAI,IAAKokB,WACnBx7C,KAAKo+C,aAEZp+C,KAAKk9C,OAAO,CACZ,MAAMmB,EAAWr+C,KAAKk9C,MACtBmB,EAASE,kBAAoBF,EAASE,0BAC/Bv+C,KAAKsF,IAAImzC,YACpB,QAEGz4C,KAAK49C,UACL59C,KAAK69C,WACL79C,KAAK89C,WACL99C,KAAK+9C,WACL/9C,KAAKg+C,UACLh+C,KAAKi+C,UACLj+C,KAAKk+C,IACZrW,EAAK2W,iBAAiBjO,UACfvwC,KAAKk9C,KAChB,EAER,CAmG8BuB,CAAYjC,EAAUA,EAASnH,WAAYxN,IAGzD,MAAM6W,EAAazoC,EAAI0oC,QAMvB,GALA1oC,EAAI0oC,QAAU,KACV9W,EAAKzkC,UACLs7C,GAAY,EAGgC9B,sBAAkC,CAE9E,UADkB9E,GAAe7hC,EAAK4xB,GAElC,MAAMoH,GAAgBd,GAAeO,kCAEzC,MAAMyP,EAAUlnB,IAChB,GAAI+kB,EAAc,CACd,MAAMqC,EAAW7B,EACjB6B,EAASC,iBAAmBD,EAASC,gBAAgBH,EACzD,KACK,CAED,MAAMS,EAAYpC,EAClBoC,EAAUvP,KAAkBuP,EAAUvP,IAAe8O,EACzD,CACAA,EAAQjnB,GAAG,IAAKskB,GACpB,CACJ,EAEI/K,aACA,OAAO+L,CACX,EACAp5C,UACIm5C,EAAYsC,MAChB,EAEApF,cAEAtC,cA7ER,SAAuBhhC,GACnB,OAAOsjC,EAAYr7C,IAAI+X,IAAc,IACzC,EA6EQwnC,cA5ER,SAAuBxnC,EAAWo6B,GAC9BkJ,EAAYhhC,IAAItC,EAAWo6B,EAC/B,EA4EQiO,iBA3ER,SAA0BroC,GACtBsjC,EAAY5uC,OAAOsL,EACvB,GA2EI,OAAO0xB,CACX,CACJ,CAEA,SAASkO,GAAQz8D,EAAU,CAAC,GACxB,MAAMi3D,GAAW,WACjB,GAAgB,MAAZA,EACA,MAAMtB,GAAgBd,GAAeE,wBAEzC,IAAKkC,EAASuO,MACiB,MAA3BvO,EAASwO,WAAW9oC,MACnBs6B,EAASwO,WAAW9oC,IAAI4mC,oBACzB,MAAM5N,GAAgBd,GAAeG,eAEzC,MAAMzG,EAiFV,SAAyB0I,GACrB,CACI,MAAM1I,GAAO,SAAQ0I,EAASuO,KAExBhD,GADAvL,EAASwO,WAAW9oC,IAAI4mC,qBAG9B,IAAKhV,EACD,MAAMoH,GAAiBsB,EAASuO,KAE1B3Q,GAAeQ,2BADfR,GAAeS,kBAGzB,OAAO/G,CACX,CACJ,CA9FiBmX,CAAgBzO,GACvBE,EAyGV,SAA2B5I,GAEvB,MAAqB,gBAAdA,EAAKxd,KACFwd,EAAK4I,OACL5I,EAAK4I,OAAO4E,UAE1B,CA/GmB4J,CAAkBpX,GAC3B6I,EAAmBJ,GAAoBC,GACvCoF,EA6FV,SAAkBr8D,EAASo3D,GAEvB,OAAOta,EAAc98C,GACd,WAAYo3D,EACT,QACA,SACHp3D,EAAQ08D,SAEL18D,EAAQ08D,SADR,OAEd,CAtGkBkJ,CAAS5lE,EAASo3D,GAChC,GAAIuL,yBAEkB,WAAdpU,EAAKxd,OAAsB/wC,EAAQ28D,eAAgB,CACnD,IAAKpO,EAAKyU,iBACN,MAAMrN,GAAgBd,GAAeI,8BAEzC,OAyKZ,SAA0BgC,EAAUoF,EAAOvC,EAAM95D,EAAU,CAAC,GAExD,MAAM6lE,EAAqB,UAAVxJ,EACXiJ,GAAY,SAAW,MAC7B,GAAIO,GACA5O,EAAS3C,QACP2C,EAAS3C,MAAM5/B,SAAS65B,OAAQ0I,EAAS3C,MAAM5/B,SAAS8hC,OAC1D,MAAMb,GAAgBd,GAAeY,8CAEzC,MAAMwC,GAAiB,EAAUj4D,EAAQk4D,gBACnCl4D,EAAQk4D,cAERC,GAAU,SAEhB0N,GAAY5N,EACN6B,EAAKr5D,OAAOxF,MACZwiD,EAASz9C,EAAQS,QACbT,EAAQS,OACRirD,IACJ0M,GAAkB,SAExByN,GAAY5N,EACN6B,EAAK/M,eAAe9xD,MACpBwiD,EAASz9C,EAAQ+sD,iBACfx/C,EAAQvN,EAAQ+sD,iBAChBhQ,EAAc/8C,EAAQ+sD,kBACK,IAA3B/sD,EAAQ+sD,eACN/sD,EAAQ+sD,eACRoL,EAAQl9D,OACZo9D,GAAY,SAAI9B,GAAkB4B,EAAQl9D,MAAO+E,IAEjDs4D,GAAmB,SAAIvb,EAAc/8C,EAAQgtD,iBAC7ChtD,EAAQgtD,gBACR,CAAE,CAACmL,EAAQl9D,OAAQ,CAAC,IAEpBs9D,GAAiB,SAAIxb,EAAc/8C,EAAQitD,eAC3CjtD,EAAQitD,cACR,CAAE,CAACkL,EAAQl9D,OAAQ,CAAC,IAEpBu9D,EAAeqN,EACf/L,EAAKzM,aACL,EAAUrtD,EAAQqtD,eAAgBzQ,EAAS58C,EAAQqtD,cAC/CrtD,EAAQqtD,YAGZoL,EAAgBoN,EAChB/L,EAAKxM,cACL,EAAUttD,EAAQstD,gBAAiB1Q,EAAS58C,EAAQstD,eAChDttD,EAAQstD,aAGZoL,EAAgBmN,EAChB/L,EAAKnB,cACL,EAAU34D,EAAQ24D,eACd34D,EAAQ24D,aAGZC,IAAoB54D,EAAQutD,eAE5BsL,EAAWrb,EAAWx9C,EAAQotD,SAAWptD,EAAQotD,QAAU,KAE3D2L,EAAmBvb,EAAWx9C,EAAQytD,iBACtCztD,EAAQytD,gBACR,KAEAuL,EAAmB6M,EACnB/L,EAAKpM,iBACL,EAAU1tD,EAAQ0tD,kBACd1tD,EAAQ0tD,gBAEZuL,IAAqBj5D,EAAQ2tD,gBAE7BuL,EAAa2M,EACb/L,EAAKz/B,UACL0iB,EAAc/8C,EAAQq6B,WAClBr6B,EAAQq6B,UACR,CAAC,EAEL8+B,EAAen5D,EAAQyqD,aAAgBob,GAAY/L,EAAKrP,YAE9D,SAASqb,IACL,MAAO,CACH3N,EAAQl9D,MACRm9D,EAAgBn9D,MAChBo9D,EAAUp9D,MACVq9D,EAAiBr9D,MACjBs9D,EAAet9D,MAEvB,CAEA,MAAMwF,GAAS,SAAS,CACpBqkB,IAAK,IACMwgD,EAAUrqE,MAAQqqE,EAAUrqE,MAAMwF,OAAOxF,MAAQk9D,EAAQl9D,MAEpEkkC,IAAKjL,IACGoxC,EAAUrqE,QACVqqE,EAAUrqE,MAAMwF,OAAOxF,MAAQi5B,GAEnCikC,EAAQl9D,MAAQi5B,CAAG,IAIrB64B,GAAiB,SAAS,CAC5BjoC,IAAK,IACMwgD,EAAUrqE,MACXqqE,EAAUrqE,MAAM8xD,eAAe9xD,MAC/Bm9D,EAAgBn9D,MAE1BkkC,IAAKjL,IACGoxC,EAAUrqE,QACVqqE,EAAUrqE,MAAM8xD,eAAe9xD,MAAQi5B,GAE3CkkC,EAAgBn9D,MAAQi5B,CAAG,IAI7B4W,GAAW,UAAS,IAClBw6B,EAAUrqE,MAEHqqE,EAAUrqE,MAAM6vC,SAAS7vC,MAIzBo9D,EAAUp9D,QAGnB+xD,GAAkB,UAAS,IAAMsL,EAAiBr9D,QAClDgyD,GAAgB,UAAS,IAAMsL,EAAet9D,QACpD,SAASm/D,IACL,OAAOkL,EAAUrqE,MACXqqE,EAAUrqE,MAAMm/D,4BAChBrB,CACV,CACA,SAASsB,EAA0BnqC,GAC3Bo1C,EAAUrqE,OACVqqE,EAAUrqE,MAAMo/D,0BAA0BnqC,EAElD,CACA,SAASoqC,IACL,OAAOgL,EAAUrqE,MAAQqqE,EAAUrqE,MAAMq/D,oBAAsBzB,CACnE,CACA,SAAS0B,EAAkBrqC,GACnBo1C,EAAUrqE,OACVqqE,EAAUrqE,MAAMs/D,kBAAkBrqC,EAE1C,CACA,SAAS61C,EAAatrD,GAElB,OADAqrD,IACOrrD,GACX,CACA,SAASnU,KAAKnK,GACV,OAAOmpE,EAAUrqE,MACX8qE,GAAa,IAAMlM,QAAQ3rC,MAAMo3C,EAAUrqE,MAAMqL,EAAG,KAAM,IAAInK,MAC9D4pE,GAAa,IAAM,IAC7B,CACA,SAASvL,KAAMr+D,GACX,OAAOmpE,EAAUrqE,MACX4+D,QAAQ3rC,MAAMo3C,EAAUrqE,MAAMu/D,GAAI,KAAM,IAAIr+D,IAC5C,EACV,CACA,SAAS2F,KAAK3F,GACV,OAAOmpE,EAAUrqE,MACX8qE,GAAa,IAAMlM,QAAQ3rC,MAAMo3C,EAAUrqE,MAAM6G,EAAG,KAAM,IAAI3F,MAC9D4pE,GAAa,IAAM,IAC7B,CACA,SAASz7C,KAAKnuB,GACV,OAAOmpE,EAAUrqE,MACX8qE,GAAa,IAAMlM,QAAQ3rC,MAAMo3C,EAAUrqE,MAAMqvB,EAAG,KAAM,IAAInuB,MAC9D4pE,GAAa,IAAM,IAC7B,CACA,SAASrL,EAAGrtD,GACR,OAAOi4D,EAAUrqE,MAAQqqE,EAAUrqE,MAAMy/D,GAAGrtD,GAAO,CAAC,CACxD,CACA,SAASotD,EAAGptD,EAAK5M,GACb,QAAO6kE,EAAUrqE,OAAQqqE,EAAUrqE,MAAMw/D,GAAGptD,EAAK5M,EACrD,CACA,SAASs5D,EAAiBt5D,GACtB,OAAO6kE,EAAUrqE,MAAQqqE,EAAUrqE,MAAM8+D,iBAAiBt5D,GAAU,CAAC,CACzE,CACA,SAAS05D,EAAiB15D,EAAQomC,GAC1By+B,EAAUrqE,QACVqqE,EAAUrqE,MAAMk/D,iBAAiB15D,EAAQomC,GACzCwxB,EAAUp9D,MAAMwF,GAAUomC,EAElC,CACA,SAASywB,EAAmB72D,EAAQomC,GAC5By+B,EAAUrqE,OACVqqE,EAAUrqE,MAAMq8D,mBAAmB72D,EAAQomC,EAEnD,CACA,SAASi0B,EAAkBr6D,GACvB,OAAO6kE,EAAUrqE,MAAQqqE,EAAUrqE,MAAM6/D,kBAAkBr6D,GAAU,CAAC,CAC1E,CACA,SAASs6D,EAAkBt6D,EAAQoI,GAC3By8D,EAAUrqE,QACVqqE,EAAUrqE,MAAM8/D,kBAAkBt6D,EAAQoI,GAC1CyvD,EAAiBr9D,MAAMwF,GAAUoI,EAEzC,CACA,SAAS0uD,EAAoB92D,EAAQoI,GAC7By8D,EAAUrqE,OACVqqE,EAAUrqE,MAAMs8D,oBAAoB92D,EAAQoI,EAEpD,CACA,SAASmyD,EAAgBv6D,GACrB,OAAO6kE,EAAUrqE,MAAQqqE,EAAUrqE,MAAM+/D,gBAAgBv6D,GAAU,CAAC,CACxE,CACA,SAASw6D,EAAgBx6D,EAAQoI,GACzBy8D,EAAUrqE,QACVqqE,EAAUrqE,MAAMggE,gBAAgBx6D,EAAQoI,GACxC0vD,EAAet9D,MAAMwF,GAAUoI,EAEvC,CACA,SAAS2uD,EAAkB/2D,EAAQoI,GAC3By8D,EAAUrqE,OACVqqE,EAAUrqE,MAAMu8D,kBAAkB/2D,EAAQoI,EAElD,CACA,MAAMm9D,GAAU,CACR3uC,SACA,OAAOiuC,EAAUrqE,MAAQqqE,EAAUrqE,MAAMo8B,IAAM,CACnD,EACA52B,SACAssD,iBACAjiB,WACAkiB,kBACAC,gBACIiL,oBACA,OAAOoN,EAAUrqE,MAAQqqE,EAAUrqE,MAAMi9D,cAAgBD,CAC7D,EACIC,kBAAchkC,GACVoxC,EAAUrqE,QACVqqE,EAAUrqE,MAAMi9D,cAAgBhkC,EAExC,EACI+lC,uBACA,OAAOqL,EAAUrqE,MACXqqE,EAAUrqE,MAAMg/D,iBAChB9+D,OAAO4oC,KAAKs0B,EAAUp9D,MAChC,EACIo/B,gBACA,OAAQirC,EAAUrqE,MAAQqqE,EAAUrqE,MAAMo/B,UAAY6+B,CAC1D,EACIzO,kBACA,OAAQ6a,EAAUrqE,MAAQqqE,EAAUrqE,MAAMwvD,YAAc0O,CAC5D,EACIe,eACA,QAAOoL,EAAUrqE,OAAQqqE,EAAUrqE,MAAMi/D,QAC7C,EACI7M,kBACA,OAAOiY,EAAUrqE,MAAQqqE,EAAUrqE,MAAMoyD,YAAcmL,CAC3D,EACInL,gBAAYn5B,GACRoxC,EAAUrqE,QACVqqE,EAAUrqE,MAAMoyD,YAAcn5B,EAEtC,EACIo5B,mBACA,OAAOgY,EAAUrqE,MAAQqqE,EAAUrqE,MAAMqyD,aAAemL,CAC5D,EACInL,iBAAap5B,GACToxC,EAAUrqE,QACVqqE,EAAUrqE,MAAMoyD,YAAcn5B,EAEtC,EACIykC,mBACA,OAAO2M,EAAUrqE,MAAQqqE,EAAUrqE,MAAM09D,aAAeD,CAC5D,EACIC,iBAAazkC,GACToxC,EAAUrqE,QACVqqE,EAAUrqE,MAAM09D,aAAezkC,EAEvC,EACIq5B,qBACA,OAAO+X,EAAUrqE,MAAQqqE,EAAUrqE,MAAMsyD,eAAiBqL,CAC9D,EACIrL,mBAAer5B,GACXoxC,EAAUrqE,QACVqqE,EAAUrqE,MAAMsyD,eAAiBr5B,EAEzC,EACIw5B,sBACA,OAAO4X,EAAUrqE,MACXqqE,EAAUrqE,MAAMyyD,gBAChBsL,CACV,EACItL,oBAAgBx5B,GACZoxC,EAAUrqE,QACVqqE,EAAUrqE,MAAMyyD,gBAAkBx5B,EAE1C,EACIy5B,sBACA,OAAO2X,EAAUrqE,MACXqqE,EAAUrqE,MAAM0yD,gBAChBsL,CACV,EACItL,oBAAgBz5B,GACZoxC,EAAUrqE,QACVqqE,EAAUrqE,MAAM0yD,gBAAkBz5B,EAE1C,EACA5tB,IACA8zD,4BACAC,4BACAC,oBACAC,oBACAC,KACA14D,IACAwoB,IACAowC,KACAD,KACAV,mBACAI,mBACA7C,qBACAwD,oBACAC,oBACAxD,sBACAyD,kBACAC,kBACAzD,qBAEJ,SAASkE,GAAK1B,GACVA,EAASv5D,OAAOxF,MAAQk9D,EAAQl9D,MAChC++D,EAASjN,eAAe9xD,MAAQm9D,EAAgBn9D,MAChDE,OAAO4oC,KAAKs0B,EAAUp9D,OAAOk1B,SAAQ1vB,IACjCu5D,EAAS1C,mBAAmB72D,EAAQ43D,EAAUp9D,MAAMwF,GAAQ,IAEhEtF,OAAO4oC,KAAKu0B,EAAiBr9D,OAAOk1B,SAAQ1vB,IACxCu5D,EAASzC,oBAAoB92D,EAAQ63D,EAAiBr9D,MAAMwF,GAAQ,IAExEtF,OAAO4oC,KAAKw0B,EAAet9D,OAAOk1B,SAAQ1vB,IACtCu5D,EAASxC,kBAAkB/2D,EAAQ83D,EAAet9D,MAAMwF,GAAQ,IAEpEu5D,EAASrM,gBAAkBsL,EAC3Be,EAASzM,eAAiBqL,EAC1BoB,EAASrB,aAAeD,EACxBsB,EAAS1M,aAAemL,EACxBuB,EAAS3M,YAAcmL,EACvBwB,EAAStM,gBAAkBsL,CAC/B,CAmBA,OAlBA,UAAc,KACV,GAAsB,MAAlB/B,EAAS3C,OAAyC,MAAxB2C,EAAS3C,MAAMsP,MACzC,MAAMjO,GAAgBd,GAAea,qCAGzC,MAAMsE,EAAYsL,EAAUrqE,MAAQg8D,EAAS3C,MAAMsP,MAC9C7H,WACS,WAAVM,GACAlE,EAAQl9D,MAAQ++D,EAASv5D,OAAOxF,MAChCm9D,EAAgBn9D,MAAQ++D,EAASjN,eAAe9xD,MAChDo9D,EAAUp9D,MAAQ++D,EAASlvB,SAAS7vC,MACpCq9D,EAAiBr9D,MAAQ++D,EAAShN,gBAAgB/xD,MAClDs9D,EAAet9D,MAAQ++D,EAAS/M,cAAchyD,OAEzC4qE,GACLnK,GAAK1B,EACT,IAEGgM,EACX,CAhhBmBC,CAAiBhP,EAAUoF,EAAOlF,EAAQn3D,EACrD,CAEJ,GAAc,WAAVq8D,EAEA,OADAnF,GAAoBC,EAAQn3D,EAASo3D,GAC9BD,EAEX,GAAc,WAAVkF,EAAoB,CAEpB,IAAIrC,EA8FZ,SAAqBzL,EAAMnvC,EAAQ8mD,GAAe,GAC9C,IAAIlM,EAAW,KACf,MAAMF,EAAO16C,EAAO06C,KACpB,IAAI9V,EAAU5kC,EAAOsB,OACrB,KAAkB,MAAXsjC,GAAiB,CACpB,MAAM4Z,EAAerP,EACrB,GAAkB,gBAAdA,EAAKxd,KACLipB,EAAW4D,EAAaC,cAAc7Z,QAGtC,GAAI2e,wBAAyB,CACzB,MAAM9G,EAAU+B,EAAaC,cAAc7Z,GAC5B,MAAX6X,IACA7B,EAAW6B,EACNE,WACDmK,GACAlM,IACCA,EAAS9D,MAEV8D,EAAW,MAGvB,CAEJ,GAAgB,MAAZA,EACA,MAEJ,GAAIF,IAAS9V,EACT,MAEJA,EAAUA,EAAQtjC,MACtB,CACA,OAAOs5C,CACX,CA/HuBmM,CAAY5X,EAAM0I,EAAUj3D,EAAQ28D,gBAOnD,OANgB,MAAZ3C,IAIAA,EAAW7C,GAER6C,CACX,CACA,MAAM4D,EAAerP,EACrB,IAAIyL,EAAW4D,EAAaC,cAAc5G,GAC1C,GAAgB,MAAZ+C,EAAkB,CAClB,MAAMoM,EAAkB,EAAO,CAAC,EAAGpmE,GAC/B,WAAYo3D,IACZgP,EAAgB5P,OAASY,EAAiBZ,QAE1CW,IACAiP,EAAgBrO,OAASZ,GAE7B6C,EAAWnC,GAAeuO,GA6GlC,SAAwB7X,EAAMnvC,EAAQ46C,GAClC,IAAI6K,EAAU,MAEV,UAAU,KAEN,GAAgDvB,uBAE5ClkD,EAAO8/C,MAAM/tC,GAAI,CACjB/R,EAAO8/C,MAAM/tC,GAAGguC,aAAenF,EAC/B6K,EAAUlnB,IAEV,MAAM2nB,EAAYtL,EAClBsL,EAAUvP,KAAkBuP,EAAUvP,IAAe8O,GACrDA,EAAQjnB,GAAG,IAAKskB,GACpB,IACD9iD,IACH,UAAY,KAER,GAAgDkkD,uBAE5ClkD,EAAO8/C,MAAM/tC,IACb/R,EAAO8/C,MAAM/tC,GAAGguC,aAAc,CAC9B0F,GAAWA,EAAQ/mB,IAAI,IAAKokB,IAE5B,MAAMoD,EAAYtL,EAClBsL,EAAUtP,KAAmBsP,EAAUtP,aAChC52C,EAAO8/C,MAAM/tC,GAAGguC,YAC3B,CACA5Q,EAAK2W,iBAAiB9lD,EAAO,GAC9BA,EAEX,CA3IQinD,CAAezI,EAAc3G,EAAU+C,GACvC4D,EAAayG,cAAcpN,EAAU+C,EACzC,CACA,OAAOA,CACX,CAgfA,MAAMwJ,GAAoB,CACtB,SACA,iBACA,oBAEEK,GAAsB,CAAC,IAAK,KAAM,IAAK,IAAK,MPlnElD,IAAiCyC,GAtMRlb,GOq2EzB,GP/pEiCkb,GA2MjC,SAA2BlhC,EAAQplC,EAAU,CAAC,GAC1C,CAII,MACMqN,GADarN,EAAQ4wD,YAAcjC,IAClBvpB,GACjBmhC,EAAS3X,GAAavhD,GAC5B,GAAIk5D,EACA,OAAOA,EAGX,IAAIvW,GAAW,EACf,MAAM7O,EAAUnhD,EAAQmhD,SAAW7C,EACnCt+C,EAAQmhD,QAAW7lD,IACf00D,GAAW,EACX7O,EAAQ7lD,EAAI,EAGhB,MAAM,KAAEiT,GAAS05C,GAAY7iB,EAAQplC,GAE/Bg9C,EAAM,IAAIj2B,SAAS,UAAUxY,IAAvB,GAEZ,OAAQyhD,EAAuChT,EAA3B4R,GAAavhD,GAAO2vC,CAC5C,CACJ,EAnOIsP,GAAYga,GAWZ/Z,GAnXJ,SAAsBxvD,EAAKpB,GAEvB,IAAKsnC,EAASlmC,GACV,OAAO,KAGX,IAAIypE,EAAM7c,GAAM7kC,IAAInpB,GAQpB,GAPK6qE,IACDA,EAnIR,SAAe7qE,GACX,MAAMooC,EAAO,GACb,IAGI9+B,EACAoI,EACAo5D,EACA5/C,EACA6/C,EACAC,EACAC,EATAt4D,GAAS,EACTyiC,EAAO,EACP81B,EAAe,EAQnB,MAAMC,EAAU,GAuChB,SAASC,IACL,MAAMC,EAAWrrE,EAAK2S,EAAQ,GAC9B,GAAc,IAATyiC,GACY,MAAbi2B,GACU,IAATj2B,GACgB,MAAbi2B,EAIJ,OAHA14D,IACAm4D,EAAU,KAAOO,EACjBF,EAAQ,MACD,CAEf,CACA,IAlDAA,EAAQ,GAAkB,UACVr8D,IAAR4C,EACAA,EAAMo5D,EAGNp5D,GAAOo5D,CACX,EAEJK,EAAQ,GAAgB,UACRr8D,IAAR4C,IACA02B,EAAKhoC,KAAKsR,GACVA,OAAM5C,EACV,EAEJq8D,EAAQ,GAA8B,KAClCA,EAAQ,KACRD,GAAc,EAElBC,EAAQ,GAAyB,KAC7B,GAAID,EAAe,EACfA,IACA91B,EAAO,EACP+1B,EAAQ,SAEP,CAED,GADAD,EAAe,OACHp8D,IAAR4C,EACA,OAAO,EAGX,GADAA,EAAMi8C,GAAcj8C,IACR,IAARA,EACA,OAAO,EAGPy5D,EAAQ,IAEhB,GAcY,OAAT/1B,GAGH,GAFAziC,IACArJ,EAAItJ,EAAK2S,GACC,OAANrJ,IAAc8hE,IAAlB,CAOA,GAJAlgD,EAAOwiC,GAAgBpkD,GACvB2hE,EAAUzd,GAAiBpY,GAC3B21B,EAAaE,EAAQ//C,IAAS+/C,EAAsB,GAAK,EAEtC,IAAfF,EACA,OAGJ,GADA31B,EAAO21B,EAAW,QACIj8D,IAAlBi8D,EAAW,KACXC,EAASG,EAAQJ,EAAW,IACxBC,IACAF,EAAUxhE,GACO,IAAb0hE,MACA,OAKZ,GAAa,IAAT51B,EACA,OAAOhN,CApBX,CAuBR,CAwCcJ,CAAMhoC,GACR6qE,GACA7c,GAAMxqB,IAAIxjC,EAAM6qE,KAInBA,EACD,OAAO,KAGX,MAAMlmC,EAAMkmC,EAAI9qE,OAChB,IAAIurE,EAAOlqE,EACPmI,EAAI,EACR,KAAOA,EAAIo7B,GAAK,CACZ,MAAMpM,EAAM+yC,EAAKT,EAAIthE,IACrB,QAAYuF,IAARypB,EACA,OAAO,KAEX+yC,EAAO/yC,EACPhvB,GACJ,CACA,OAAO+hE,CACX,EAgWIza,GOmoEqBhB,GA5tFzB,WACI,IAAI0b,GAAW,EAC0B,mBAA9BnD,4BACPmD,GAAW,EACXhqB,IAAgB6mB,2BAA4B,GAET,mBAA5BpB,0BACPuE,GAAW,EACXhqB,IAAgBylB,yBAA0B,GAEL,mBAA9BrU,4BACPpR,IAAgBoR,2BAA4B,EAOpD,CA4sFI6Y,GAG2C7Y,0BAA2B,CACtE,MAAMlvC,EAAS89B,IACf99B,EAAOgoD,aAAc,EPv2EAhc,GOw2ELhsC,EAAOioD,iCPv2EvBvsC,GAAWswB,EOw2Ef,mCCzvFAruB,EAAQ,EAAU,CAAC/I,EAAK3N,KACpB,MAAMjH,EAAS4U,EAAIC,WAAaD,EAChC,IAAK,MAAO3mB,EAAK6mB,KAAQ7N,EACrBjH,EAAO/R,GAAO6mB,EAElB,OAAO9U,CAAM,mDCPjB,SAASkoD,EAASz+B,GAChB,OAAY,IAARA,OACAv7B,MAAMC,QAAQs7B,IAAuB,IAAfA,EAAIntC,UACtBmtC,EACV,CAeA,SAAS0+B,EAAevnE,EAASwnE,EAAQ/8B,EAAOg9B,GAC9C,OAAOD,EAASxnE,EACbqY,QAAQqvD,IAAW9zD,OAXLmsB,EAWc0nC,EAAYC,EAAQj9B,GAX7Bk9B,EAWqCH,OAT/C/8D,IAARs1B,IAAmBA,EAAM,aACjB,OAARA,IAAcA,EAAM,SACZ,IAARA,IAAeA,EAAM,UAEc,IAD1BA,EAAIxiC,WAAW8H,cAChBqD,QAAQi/D,EAAMne,QAN5B,IAAmBzpB,EAAK4nC,CAW4C,IAC/D1uD,MAAK,CAAClX,EAAGuD,IAAMmiE,EAAY1lE,EAAG0oC,GAAO/uC,OAAS+rE,EAAYniE,EAAGmlC,GAAO/uC,SAAUsE,CACnF,CAEA,SAAS4nE,EAAa5nE,GACpB,OAAOA,EAAQqY,QAAQqvD,IAAYA,EAAOG,UAC5C,CAEA,SAASC,EAAgB/sE,EAAQ0vC,GAC/B,OAAQzqC,GACNA,EAAQpE,QAAO,CAACutC,EAAMrtC,IAEhBA,EAAKf,IAAWe,EAAKf,GAAQW,QAC/BytC,EAAKptC,KAAK,CACRgsE,YAAajsE,EAAK2uC,GAClBo9B,UAAU,IAEL1+B,EAAKpgC,OAAOjN,EAAKf,KAEnBouC,GACN,GACP,CAqBA,MAAM6+B,EAAO,IAAIC,IAAS/hE,GAAM+hE,EAAIrsE,QAAO,CAACurC,EAAGoO,IAAMA,EAAEpO,IAAIjhC,GAE3D,IAkyBIkvB,EAAS,CACX55B,KAAM,kBACNs7B,OAAQ,CApyBa,CACrB/d,OACE,MAAO,CACLyuD,OAAQ,GACRU,QAAQ,EACRC,uBAAwB,QACxBC,gBAAiB1hD,KAAKsH,UAE1B,EACA3H,MAAO,CAMLgiD,eAAgB,CACdxhD,KAAMM,QACNP,SAAS,GAQX5mB,QAAS,CACP6mB,KAAMvZ,MACNpR,UAAU,GAOZooC,SAAU,CACRzd,KAAMM,QACNP,SAAS,GAOX0hD,QAAS,CACPzhD,KAAMhlB,QAOR4oC,MAAO,CACL5jB,KAAMhlB,QAOR0mE,WAAY,CACV1hD,KAAMM,QACNP,SAAS,GAOX4hD,cAAe,CACb3hD,KAAMM,QACNP,SAAS,GAOX6hD,aAAc,CACZ5hD,KAAMM,QACNP,SAAS,GAOX8hD,YAAa,CACX7hD,KAAMhlB,OACN+kB,QAAS,iBAOX+hD,WAAY,CACV9hD,KAAMM,QACNP,SAAS,GAQXgiD,WAAY,CACV/hD,KAAMM,QACNP,SAAS,GAOXiiD,cAAe,CACbhiD,KAAMM,QACNP,SAAS,GAOX6gD,YAAa,CACX5gD,KAAME,SACNH,QAAS8gD,EAAQj9B,GACf,OAAI68B,EAAQI,GAAgB,GACrBj9B,EAAQi9B,EAAOj9B,GAASi9B,CACjC,GAOFoB,SAAU,CACRjiD,KAAMM,QACNP,SAAS,GAOXmiD,eAAgB,CACdliD,KAAMhlB,OACN+kB,QAAS,+BASXoiD,YAAa,CACXniD,KAAMhlB,OACN+kB,QAAS,OAOX5T,IAAK,CACH6T,KAAM,CAACpqB,OAAQ0qB,SACfP,SAAS,GAQXyQ,GAAI,CACFzQ,QAAS,MAQXqiD,aAAc,CACZpiD,KAAMpqB,OACNmqB,QAAS,KAQXsiD,YAAa,CACXriD,KAAMhlB,QAQRsnE,WAAY,CACVtiD,KAAMhlB,QAQRunE,YAAa,CACXviD,KAAMM,QACNP,SAAS,GAQXyiD,UAAW,CACTxiD,KAAMvZ,MACNsZ,UACE,MAAO,EACT,GAOF0iD,eAAgB,CACdziD,KAAMM,QACNP,SAAS,GAOX2iD,eAAgB,CACd1iD,KAAMM,QACNP,SAAS,GAOX4iD,iBAAkB,CAChB3iD,KAAMM,QACNP,SAAS,IAGb2D,WAEO7D,KAAK4d,UAAY5d,KAAK1T,KACzBnV,QAAQC,KAAK,wFAGb4oB,KAAK6iD,iBACJ7iD,KAAK+iD,cAAc/tE,QACpBgrB,KAAK1mB,QAAQtE,QAEbgrB,KAAKgjD,OAAOhjD,KAAKijD,gBAAgB,GAErC,EACAxgD,SAAU,CACRsgD,gBACE,OAAO/iD,KAAKmmB,YAAkC,IAApBnmB,KAAKmmB,WAC3Bv/B,MAAMC,QAAQmZ,KAAKmmB,YAAcnmB,KAAKmmB,WAAa,CAACnmB,KAAKmmB,YACzD,EACN,EACA88B,kBACE,MAAMnC,EAAS9gD,KAAK8gD,QAAU,GACxBoC,EAAmBpC,EAAOniE,cAAcmkD,OAE9C,IAAIxpD,EAAU0mB,KAAK1mB,QAAQ+I,SAjVjC,IAAc8gE,EAyWR,OApBE7pE,EADE0mB,KAAK2hD,eACG3hD,KAAKwiD,YACXxiD,KAAKojD,cAAc9pE,EAAS4pE,EAAkBljD,KAAK+jB,OACnD88B,EAAcvnE,EAAS4pE,EAAkBljD,KAAK+jB,MAAO/jB,KAAK+gD,aAEpD/gD,KAAKwiD,YAAcpB,EAAephD,KAAKwiD,YAAaxiD,KAAKyiD,WAAtCrB,CAAkD9nE,GAAWA,EAG5FA,EAAU0mB,KAAK+hD,aACXzoE,EAAQqY,QA7VJwxD,EA6VenjD,KAAKqjD,WA5VzB,IAAI3gC,KAAYygC,KAAOzgC,KA6VtBppC,EAGA0mB,KAAKoiD,UAAYc,EAAiBluE,SAAWgrB,KAAKsjD,iBAAiBJ,KAC5C,WAArBljD,KAAKsiD,YACPhpE,EAAQjE,KAAK,CAACkuE,OAAO,EAAMx/B,MAAO+8B,IAElCxnE,EAAQ47C,QAAQ,CAACquB,OAAO,EAAMx/B,MAAO+8B,KAIlCxnE,EAAQ6N,MAAM,EAAG6Y,KAAKuiD,aAC/B,EACAiB,YACE,OAAIxjD,KAAK4hD,QACA5hD,KAAK+iD,cAAc55D,KAAK8F,GAAYA,EAAQ+Q,KAAK4hD,WAEjD5hD,KAAK+iD,aAEhB,EACAU,aAEE,OADgBzjD,KAAKwiD,YAAcxiD,KAAK0jD,aAAa1jD,KAAK1mB,SAAW0mB,KAAK1mB,SAC3D6P,KAAK8F,GAAY+Q,KAAK+gD,YAAY9xD,EAAS+Q,KAAK+jB,OAAOltC,WAAW8H,eACnF,EACAglE,qBACE,OAAO3jD,KAAK4d,SACR5d,KAAK6hD,WAAa,GAAK7hD,KAAKgiD,YAC5BhiD,KAAK+iD,cAAc/tE,OACjBgrB,KAAK4jD,eAAe5jD,KAAK+iD,cAAc,IACvC/iD,KAAK6hD,WAAa,GAAK7hD,KAAKgiD,WACpC,GAEF7+C,MAAO,CACL4/C,gBAEM/iD,KAAKkiD,YAAcliD,KAAK+iD,cAAc/tE,SACxCgrB,KAAK8gD,OAAS,GACd9gD,KAAK0E,MAAM,oBAAqB1E,KAAK4d,SAAW,GAAK,MAEzD,EACAkjC,SACE9gD,KAAK0E,MAAM,gBAAiB1E,KAAK8gD,OACnC,GAEFp/C,MAAO,CAAC,OAAQ,gBAAiB,QAAS,SAAU,oBAAqB,SAAU,OACnFyC,QAAS,CAKP0/C,WACE,OAAO7jD,KAAK4d,SACR5d,KAAK+iD,cACyB,IAA9B/iD,KAAK+iD,cAAc/tE,OACjB,KACAgrB,KAAK+iD,cAAc,EAC3B,EAMAK,cAAe9pE,EAASwnE,EAAQ/8B,GAC9B,OAAOu9B,EAvXb,SAAuBR,EAAQ/8B,EAAO1vC,EAAQouE,EAAY1B,GACxD,OAAQ+C,GACNA,EAAO36D,KAAK46D,IAEV,IAAKA,EAAM1vE,GAET,OADA8C,QAAQC,KAAK,gFACN,GAET,MAAM4sE,EAAenD,EAAckD,EAAM1vE,GAASysE,EAAQ/8B,EAAOg9B,GAEjE,OAAOiD,EAAahvE,OAChB,CACA,CAACytE,GAAasB,EAAMtB,GACpB,CAACpuE,GAAS2vE,GAEV,EAAC,GAEX,CAuWQC,CAAanD,EAAQ/8B,EAAO/jB,KAAKwiD,YAAaxiD,KAAKyiD,WAAYziD,KAAK+gD,aACpEK,EAAephD,KAAKwiD,YAAaxiD,KAAKyiD,YAFjCnB,CAGLhoE,EACJ,EAMAoqE,aAAcpqE,GACZ,OAAOgoE,EACLF,EAAephD,KAAKwiD,YAAaxiD,KAAKyiD,YACtCvB,EAFKI,CAGLhoE,EACJ,EAKA4qE,aAAcjD,GACZjhD,KAAK8gD,OAASG,CAChB,EAOAqC,iBAAkBrC,GAChB,QAAQjhD,KAAK1mB,SAET0mB,KAAKyjD,WAAWzhE,QAAQi/D,IAAU,CACxC,EAOAoC,WAAYrC,GACV,MAAM7+B,EAAMniB,KAAK4hD,QACbZ,EAAOhhD,KAAK4hD,SACZZ,EACJ,OAAOhhD,KAAKwjD,UAAUxhE,QAAQmgC,IAAQ,CACxC,EAMAgiC,iBAAkBnD,GAChB,QAASA,EAAOoD,WAClB,EASAR,eAAgB5C,GACd,GAAIJ,EAAQI,GAAS,MAAO,GAE5B,GAAIA,EAAOuC,MAAO,OAAOvC,EAAOj9B,MAEhC,GAAIi9B,EAAOG,SAAU,OAAOH,EAAOK,YAEnC,MAAMt9B,EAAQ/jB,KAAK+gD,YAAYC,EAAQhhD,KAAK+jB,OAE5C,OAAI68B,EAAQ78B,GAAe,GACpBA,CACT,EASAi/B,OAAQhC,EAAQr6D,GAEd,GAAIq6D,EAAOG,UAAYnhD,KAAK0iD,YAC1B1iD,KAAKqkD,YAAYrD,QAGnB,MAAqC,IAAjChhD,KAAK2iD,UAAU3gE,QAAQ2E,IACzBqZ,KAAK3D,UACL2kD,EAAOoD,aACPpD,EAAOG,aAGLnhD,KAAK1T,MAAO0T,KAAK4d,UAAY5d,KAAK+iD,cAAc/tE,SAAWgrB,KAAK1T,OAExD,QAAR3F,GAAkBqZ,KAAKskD,cAA3B,CACA,GAAItD,EAAOuC,MACTvjD,KAAK0E,MAAM,MAAOs8C,EAAOj9B,MAAO/jB,KAAK2Q,IACrC3Q,KAAK8gD,OAAS,GACV9gD,KAAKmiD,gBAAkBniD,KAAK4d,UAAU5d,KAAKukD,iBAC1C,CAGL,GAFmBvkD,KAAKqjD,WAAWrC,GAIjC,YADY,QAARr6D,GAAeqZ,KAAKwkD,cAAcxD,IAIpChhD,KAAK4d,SACP5d,KAAK0E,MAAM,oBAAqB1E,KAAK+iD,cAAc1gE,OAAO,CAAC2+D,KAE3DhhD,KAAK0E,MAAM,oBAAqBs8C,GAGlChhD,KAAK0E,MAAM,SAAUs8C,EAAQhhD,KAAK2Q,IAG9B3Q,KAAK8hD,gBAAe9hD,KAAK8gD,OAAS,GACxC,CAEI9gD,KAAKmiD,eAAeniD,KAAKukD,YAzBY,CA0B3C,EAOAF,YAAaI,GACX,MAAMV,EAAQ/jD,KAAK1mB,QAAQmZ,MAAMuuD,GACxBA,EAAOhhD,KAAKyiD,cAAgBgC,EAAcpD,cAGnD,GAAK0C,EAAL,CAEA,GAAI/jD,KAAK0kD,mBAAmBX,GAAQ,CAClC/jD,KAAK0E,MAAM,SAAUq/C,EAAM/jD,KAAKwiD,aAAcxiD,KAAK2Q,IAEnD,MAAM4Q,EAAWvhB,KAAK+iD,cAAcpxD,QACjCqvD,IAAwD,IAA7C+C,EAAM/jD,KAAKwiD,aAAaxgE,QAAQg/D,KAG9ChhD,KAAK0E,MAAM,oBAAqB6c,EAClC,KAAO,CACL,IAAIojC,EAAeZ,EAAM/jD,KAAKwiD,aAAa7wD,QACzCqvD,KAAYhhD,KAAKmkD,iBAAiBnD,IAAWhhD,KAAKqjD,WAAWrC,MAI3DhhD,KAAK1T,KACPq4D,EAAa1lD,OAAOe,KAAK1T,IAAM0T,KAAK+iD,cAAc/tE,QAGpDgrB,KAAK0E,MAAM,SAAUigD,EAAc3kD,KAAK2Q,IACxC3Q,KAAK0E,MACH,oBACA1E,KAAK+iD,cAAc1gE,OAAOsiE,GAE9B,CAEI3kD,KAAKmiD,eAAeniD,KAAKukD,YA3BjB,CA4Bd,EAMAG,mBAAoBX,GAClB,OAAOA,EAAM/jD,KAAKwiD,aAAa9vD,OAAOsuD,GAAWhhD,KAAKqjD,WAAWrC,IAAWhhD,KAAKmkD,iBAAiBnD,IAEpG,EAMA4D,mBAAoBb,GAClB,OAAOA,EAAM/jD,KAAKwiD,aAAa9vD,MAAMsN,KAAKmkD,iBAC5C,EASAK,cAAexD,EAAQ6D,GAAc,GAEnC,GAAI7kD,KAAK3D,SAAU,OAEnB,GAAI2kD,EAAOoD,YAAa,OAExB,IAAKpkD,KAAKiiD,YAAcjiD,KAAK+iD,cAAc/tE,QAAU,EAEnD,YADAgrB,KAAKukD,aAIP,MAAM38D,EAA0B,kBAAXo5D,EACjBhhD,KAAKwjD,UAAUxhE,QAAQg/D,EAAOhhD,KAAK4hD,UACnC5hD,KAAKwjD,UAAUxhE,QAAQg/D,GAE3B,GAAIhhD,KAAK4d,SAAU,CACjB,MAAM2D,EAAWvhB,KAAK+iD,cAAc57D,MAAM,EAAGS,GAAOvF,OAAO2d,KAAK+iD,cAAc57D,MAAMS,EAAQ,IAC5FoY,KAAK0E,MAAM,oBAAqB6c,EAClC,MACEvhB,KAAK0E,MAAM,oBAAqB,MAElC1E,KAAK0E,MAAM,SAAUs8C,EAAQhhD,KAAK2Q,IAG9B3Q,KAAKmiD,eAAiB0C,GAAa7kD,KAAKukD,YAC9C,EAOAO,qBAE4C,IAAtC9kD,KAAK2iD,UAAU3gE,QAAQ,WAEA,IAAvBge,KAAK8gD,OAAO9rE,QAAgB4R,MAAMC,QAAQmZ,KAAK+iD,gBAAkB/iD,KAAK+iD,cAAc/tE,QACtFgrB,KAAKwkD,cAAcxkD,KAAK+iD,cAAc/iD,KAAK+iD,cAAc/tE,OAAS,IAAI,EAE1E,EAKA+vE,WAEM/kD,KAAKwhD,QAAUxhD,KAAK3D,WAExB2D,KAAKglD,iBAEDhlD,KAAKwiD,aAAgC,IAAjBxiD,KAAKilD,SAAiBjlD,KAAKijD,gBAAgBjuE,SACjEgrB,KAAKilD,QAAU,GAGjBjlD,KAAKwhD,QAAS,EAEVxhD,KAAK6hD,YACF7hD,KAAK4iD,iBAAgB5iD,KAAK8gD,OAAS,IACnC9gD,KAAK8iD,kBAAkB9iD,KAAKyS,WAAU,IAAMzS,KAAKiR,MAAM6vC,QAAU9gD,KAAKiR,MAAM6vC,OAAOniD,WAC9EqB,KAAK8iD,kBACS,qBAAb9iD,KAAKsF,KAAqBtF,KAAKsF,IAAI3G,QAEhDqB,KAAK0E,MAAM,OAAQ1E,KAAK2Q,IAC1B,EAKA4zC,aAEOvkD,KAAKwhD,SAEVxhD,KAAKwhD,QAAS,EAEVxhD,KAAK6hD,WAC0B,qBAAtB7hD,KAAKiR,MAAM6vC,QAAwB9gD,KAAKiR,MAAM6vC,OAAOoE,OAExC,qBAAbllD,KAAKsF,KAAqBtF,KAAKsF,IAAI4/C,OAE3CllD,KAAK4iD,iBAAgB5iD,KAAK8gD,OAAS,IACxC9gD,KAAK0E,MAAM,QAAS1E,KAAK6jD,WAAY7jD,KAAK2Q,IAC5C,EAQAw0C,SACEnlD,KAAKwhD,OACDxhD,KAAKukD,aACLvkD,KAAK+kD,UACX,EAKAC,iBACE,GAAsB,qBAAXxwD,OAAwB,OAEnC,MAAM4wD,EAAaplD,KAAKsF,IAAIrP,wBAAwBlI,IAC9Cs3D,EAAa7wD,OAAO8wD,YAActlD,KAAKsF,IAAIrP,wBAAwBhI,OAC7Co3D,EAAarlD,KAAKsH,WAEnB+9C,EAAaD,GAAqC,UAAvBplD,KAAKulD,eAAoD,WAAvBvlD,KAAKulD,eAC3FvlD,KAAKyhD,uBAAyB,QAC9BzhD,KAAK0hD,gBAAkBzrE,KAAK0Z,IAAI01D,EAAa,GAAIrlD,KAAKsH,aAEtDtH,KAAKyhD,uBAAyB,QAC9BzhD,KAAK0hD,gBAAkBzrE,KAAK0Z,IAAIy1D,EAAa,GAAIplD,KAAKsH,WAE1D,IAIe,CACjBjV,OACE,MAAO,CACL4yD,QAAS,EACTX,cAAc,EAElB,EACA3kD,MAAO,CAML6lD,YAAa,CACXrlD,KAAMM,QACNP,SAAS,GAEXulD,aAAc,CACZtlD,KAAMpqB,OACNmqB,QAAS,KAGbuC,SAAU,CACRijD,kBACE,OAAO1lD,KAAKilD,QAAUjlD,KAAKylD,YAC7B,EACAE,kBACE,OAAO3lD,KAAK0hD,gBAAkB1hD,KAAKylD,YACrC,GAEFtiD,MAAO,CACL8/C,kBACEjjD,KAAK4lD,eACP,EACApE,SACExhD,KAAKskD,cAAe,CACtB,EACAW,UACEjlD,KAAKiR,MAAM6vC,QAAU9gD,KAAKiR,MAAM6vC,OAAOl2C,aAAa,wBAAyB5K,KAAK2Q,GAAK,IAAM3Q,KAAKilD,QAAQpuE,WAC5G,GAEFstB,QAAS,CACP0hD,gBAAiBj+D,EAAOo5D,GACtB,MAAO,CACL,iCAAkCp5D,IAAUoY,KAAKilD,SAAWjlD,KAAKwlD,YACjE,gCAAiCxlD,KAAKqjD,WAAWrC,GAErD,EACA8E,eAAgBl+D,EAAO68D,GACrB,IAAKzkD,KAAK0iD,YACR,MAAO,CACL,gCACA,CAAC,6BAA8B+B,EAActD,WAIjD,MAAM4C,EAAQ/jD,KAAK1mB,QAAQmZ,MAAMuuD,GACxBA,EAAOhhD,KAAKyiD,cAAgBgC,EAAcpD,cAGnD,OAAO0C,IAAU/jD,KAAK4kD,mBAAmBb,GAAS,CAChD,6BACA,CAAC,iCAAkCn8D,IAAUoY,KAAKilD,SAAWjlD,KAAKwlD,aAClE,CAAC,sCAAuCxlD,KAAK0kD,mBAAmBX,KAC9D,+BACN,EACAgC,mBAAmB,IAACp/D,GAAO,SAErBqZ,KAAKijD,gBAAgBjuE,OAAS,GAChCgrB,KAAKgjD,OAAOhjD,KAAKijD,gBAAgBjjD,KAAKilD,SAAUt+D,GAElDqZ,KAAKgmD,cACP,EACAC,iBAEMjmD,KAAKilD,QAAUjlD,KAAKijD,gBAAgBjuE,OAAS,IAC/CgrB,KAAKilD,UAEDjlD,KAAKiR,MAAM5Y,KAAKvB,WAAakJ,KAAK0lD,iBAAmB1lD,KAAK2lD,gBAAkB,GAAK3lD,KAAKylD,eACxFzlD,KAAKiR,MAAM5Y,KAAKvB,UAAYkJ,KAAK0lD,iBAAmB1lD,KAAK2lD,gBAAkB,GAAK3lD,KAAKylD,cAIrFzlD,KAAKijD,gBAAgBjjD,KAAKilD,UAC1BjlD,KAAKijD,gBAAgBjjD,KAAKilD,SAAS9D,WAClCnhD,KAAK0iD,aACN1iD,KAAKimD,kBAETjmD,KAAKskD,cAAe,CACtB,EACA4B,kBACMlmD,KAAKilD,QAAU,GACjBjlD,KAAKilD,UAEDjlD,KAAKiR,MAAM5Y,KAAKvB,WAAakJ,KAAK0lD,kBACpC1lD,KAAKiR,MAAM5Y,KAAKvB,UAAYkJ,KAAK0lD,iBAIjC1lD,KAAKijD,gBAAgBjjD,KAAKilD,UAC1BjlD,KAAKijD,gBAAgBjjD,KAAKilD,SAAS9D,WAClCnhD,KAAK0iD,aACN1iD,KAAKkmD,mBAILlmD,KAAKijD,gBAAgBjjD,KAAKilD,UAC1BjlD,KAAKijD,gBAAgB,GAAG9B,WACvBnhD,KAAK0iD,aACN1iD,KAAKimD,iBAETjmD,KAAKskD,cAAe,CACtB,EACA0B,eAEOhmD,KAAKmiD,gBACVniD,KAAKilD,QAAU,EAEXjlD,KAAKiR,MAAM5Y,OACb2H,KAAKiR,MAAM5Y,KAAKvB,UAAY,GAEhC,EACA8uD,gBAEM5lD,KAAKilD,SAAWjlD,KAAKijD,gBAAgBjuE,OAAS,IAChDgrB,KAAKilD,QAAUjlD,KAAKijD,gBAAgBjuE,OAChCgrB,KAAKijD,gBAAgBjuE,OAAS,EAC9B,GAGFgrB,KAAKijD,gBAAgBjuE,OAAS,GAChCgrB,KAAKijD,gBAAgBjjD,KAAKilD,SAAS9D,WAClCnhD,KAAK0iD,aAEN1iD,KAAKimD,gBAET,EACAE,WAAYv+D,GACVoY,KAAKilD,QAAUr9D,EACfoY,KAAKskD,cAAe,CACtB,KAOF3kD,MAAO,CAML7qB,KAAM,CACJqrB,KAAMhlB,OACN+kB,QAAS,IAMXimB,WAAY,CACVhmB,KAAM,KACND,UACE,MAAO,EACT,GAOFkmD,YAAa,CACXjmD,KAAMhlB,OACN+kB,QAAS,yBAOXmmD,iBAAkB,CAChBlmD,KAAMhlB,OACN+kB,QAAS,+BAOXomD,cAAe,CACbnmD,KAAMhlB,OACN+kB,QAAS,YAOXqmD,cAAe,CACbpmD,KAAMhlB,OACN+kB,QAAS,yBAOXsmD,mBAAoB,CAClBrmD,KAAMhlB,OACN+kB,QAAS,iCAOXumD,WAAY,CACVtmD,KAAMM,QACNP,SAAS,GAOXynB,MAAO,CACLxnB,KAAMpqB,OACNmqB,QAAS,OAOXoH,UAAW,CACTnH,KAAMpqB,OACNmqB,QAAS,KASXwmD,UAAW,CACTvmD,KAAME,SACNH,QAAUzc,GAAU,OAAOA,UAO7B4uB,QAAS,CACPlS,KAAMM,QACNP,SAAS,GAOX7D,SAAU,CACR8D,KAAMM,QACNP,SAAS,GAOXqlD,cAAe,CACbplD,KAAMhlB,OACN+kB,QAAS,IAOXymD,cAAe,CACbxmD,KAAMM,QACNP,SAAS,GAEX0mD,cAAe,CACbzmD,KAAMM,QACNP,SAAS,GAEXwP,SAAU,CACRvP,KAAMpqB,OACNmqB,QAAS,IAGbuC,SAAU,CACRokD,iBACE,OAAO7mD,KAAKwiD,aAAexiD,KAAKyiD,YAAcziD,KAAK0iD,WACrD,EACAoE,uBACE,OACG9mD,KAAK+mD,aAAoC,IAArB/mD,KAAK+mD,gBACtB/mD,KAAKwhD,SAAWxhD,KAAK6hD,cACtB7hD,KAAKgnD,cAAchyE,MAE1B,EACAiyE,uBACE,OAAQjnD,KAAK+iD,cAAc/tE,UAAYgrB,KAAK6hD,aAAe7hD,KAAKwhD,OAClE,EACAwF,gBACE,OAAOhnD,KAAK4d,SAAW5d,KAAK+iD,cAAc57D,MAAM,EAAG6Y,KAAK2nB,OAAS,EACnE,EACAo/B,cACE,OAAO/mD,KAAK+iD,cAAc,EAC5B,EACAmE,oBACE,OAAOlnD,KAAKymD,WAAazmD,KAAKumD,cAAgB,EAChD,EACAY,yBACE,OAAOnnD,KAAKymD,WAAazmD,KAAKwmD,mBAAqB,EACrD,EACAY,kBACE,OAAOpnD,KAAKymD,WAAazmD,KAAKomD,YAAc,EAC9C,EACAiB,uBACE,OAAOrnD,KAAKymD,WAAazmD,KAAKqmD,iBAAmB,EACnD,EACAiB,oBACE,OAAOtnD,KAAKymD,WAAazmD,KAAKsmD,cAAgB,EAChD,EACAiB,aACE,OACEvnD,KAAK6hD,YACF7hD,KAAK4d,UAAY5d,KAAKmmB,YAAcnmB,KAAKmmB,WAAWnxC,OAGhDgrB,KAAKwhD,OACR,CAAChlE,MAAO,QACR,CAACA,MAAO,IAAKsb,SAAU,WAAYhK,QAAS,KAE3C,EACT,EACA05D,eACE,OAAOxnD,KAAK1mB,QAAQtE,OAChB,CAACqmE,QAAS,gBACV,CAACA,QAAS,QAChB,EACAoM,UACE,MAA2B,UAAvBznD,KAAKulD,eAAoD,QAAvBvlD,KAAKulD,eAGlB,UAAvBvlD,KAAKulD,eACoB,WAAvBvlD,KAAKulD,eAIgC,UAAhCvlD,KAAKyhD,sBAEhB,EACAiG,kBACE,OACE1nD,KAAK6hD,cACF7hD,KAAK2nD,wBACH3nD,KAAK4nD,oBAAkD,IAA5B5nD,KAAK4nD,oBAC/B5nD,KAAKwhD,OAGf,IAIJ,MAAMtuC,EAAa,CACjBjF,IAAK,OACLC,MAAO,qBAEHiF,EAAa,CAAEjF,MAAO,0BACtB25C,EAAa,CAAE35C,MAAO,wBACtB45C,EAAa,CAAEnhE,IAAK,GACpB6pB,EAAa,CAAEtC,MAAO,uBACtB65C,EAAa,CAAE75C,MAAO,uBACtB85C,GAA0B,QAAgB,0DAC1CC,EAAa,CAAE/5C,MAAO,uBACtBg6C,GAA0B,QAAgB,kBAsOhDx5C,EAAOhD,OApOP,SAAgBiC,EAAMC,EAAQC,EAAQC,EAAQC,EAAOC,GACnD,OAAQ,WAAa,QAAY,MAAO,CACtC0B,SAAU/B,EAAKk0C,YAAc,EAAIh0C,EAAO6B,SACxCxB,MAAO,CAAC,CAAE,sBAAuBP,EAAK6zC,OAAQ,wBAAyB3zC,EAAOxR,SAAU,qBAAsB2R,EAASy5C,QAAS,iCAAkCz5C,EAAS64C,gBAAkB,eAC7LsB,QAASv6C,EAAO,MAAQA,EAAO,IAAMiD,GAAWlD,EAAKo3C,YACrDx4B,OAAQ3e,EAAO,MAAQA,EAAO,IAAMiD,IAAWlD,EAAKk0C,YAAqBl0C,EAAK42C,cAC9E6D,UAAW,CACTx6C,EAAO,MAAQA,EAAO,KAAM,SAAS,SAAciD,GAAWlD,EAAKs4C,kBAAmB,CAAC,OAAO,YAAa,CAAC,UAC5Gr4C,EAAO,MAAQA,EAAO,KAAM,SAAS,SAAciD,GAAWlD,EAAKu4C,mBAAoB,CAAC,OAAO,YAAa,CAAC,SAE/GmC,WAAYz6C,EAAO,MAAQA,EAAO,KAAM,SAAS,SAAciD,GAAWlD,EAAKo4C,kBAAkBl1C,IAAU,CAAC,OAAO,SAAU,CAAC,QAAQ,SACtID,QAAShD,EAAO,MAAQA,EAAO,KAAM,SAASiD,GAAWlD,EAAK42C,cAAe,CAAC,SAC9E/uB,KAAM,WACN,YAAa,WAAW7nB,EAAKgD,IAC5B,EACD,QAAWhD,EAAKhC,OAAQ,QAAS,CAAEw5C,OAAQx3C,EAAKw3C,SAAU,IAAM,EAC9D,QAAY,MAAO,CACjBmD,YAAa16C,EAAO,KAAOA,EAAO,IAAK,SAAciD,GAAWlD,EAAKw3C,UAAW,CAAC,UAAU,UAC3Fj3C,MAAO,uBACN,KAAM,QAEX,QAAWP,EAAKhC,OAAQ,QAAS,CAAEm1C,OAAQnzC,EAAKmzC,UAChD,QAAY,MAAO5tC,EAAY,EAC7B,QAAWvF,EAAKhC,OAAQ,YAAa,CACnCm1C,OAAQnzC,EAAKmzC,OACb93C,OAAQ2E,EAAK62C,cACbnwE,OAAQ25B,EAASg5C,cACjBxF,OAAQ7zC,EAAK6zC,SACZ,IAAM,EACP,SAAe,QAAY,MAAOruC,EAAY,GAC3C,SAAU,IAAO,QAAY,KAAU,MAAM,QAAWnF,EAASg5C,eAAe,CAAChG,EAAQp5D,KACjF,QAAW+lB,EAAKhC,OAAQ,MAAO,CACpCq1C,OAAQA,EACRF,OAAQnzC,EAAKmzC,OACb93C,OAAQ2E,EAAK62C,gBACZ,IAAM,GACN,WAAa,QAAY,OAAQ,CAChCt2C,MAAO,mBACPvnB,IAAKiB,GACJ,EACD,QAAY,OAAQ,CAClB4rB,aAAa,QAAgB7F,EAAKi2C,eAAe5C,KAChD,KAAM,EAAe,CAAC,iBACzB,QAAY,IAAK,CACftxC,SAAU,IACV24C,YAAY,SAAS,SAAcx3C,GAAWlD,EAAK62C,cAAcxD,IAAU,CAAC,YAAa,CAAC,UAC1FsH,aAAa,SAAcz3C,GAAWlD,EAAK62C,cAAcxD,IAAU,CAAC,YACpE9yC,MAAO,yBACN,KAAM,GAAgC,CAAC,aAAc,wBAG1D,OACH,KAAuB,CACxB,CAAC,KAAOF,EAASg5C,cAAchyE,OAAS,KAEzC24B,EAAKo1C,eAAiBp1C,EAAKo1C,cAAc/tE,OAAS64B,EAAO8Z,OACtD,QAAWha,EAAKhC,OAAQ,QAAS,CAAEhlB,IAAK,IAAK,IAAM,EACjD,QAAY,SAAU,CACpBunB,MAAO,sBACPsF,aAAa,QAAgB3F,EAAO64C,UAAU/4C,EAAKo1C,cAAc/tE,OAAS64B,EAAO8Z,SAChF,KAAM,EAAe,CAAC,oBAE3B,QAAmB,QAAQ,OAEjC,QAAY,KAAY,CAAE7yC,KAAM,wBAA0B,CACxDorB,SAAS,SAAQ,IAAM,EACrB,QAAWyN,EAAKhC,OAAQ,UAAW,CAAC,GAAG,IAAM,EAC3C,SAAe,QAAY,MAAOk8C,EAAY,KAAM,KAAuB,CACzE,CAAC,KAAOh6C,EAAOwE,iBAIrBT,EAAG,IAEJjE,EAAe,aACX,WAAa,QAAY,QAAS,CACjChnB,IAAK,EACLsnB,IAAK,SACLn5B,KAAM+4B,EAAO/4B,KACb67B,GAAIhD,EAAKgD,GACTxQ,KAAM,OACNooD,aAAc,MACdC,WAAY,QACZxG,YAAar0C,EAAKq0C,YAClB56C,MAAO4G,EAASu5C,WAChBhzE,MAAOo5B,EAAKmzC,OACZzkD,SAAUwR,EAAOxR,SACjBqT,SAAU7B,EAAO6B,SACjB+c,QAAS7e,EAAO,KAAOA,EAAO,GAAKiD,GAAWlD,EAAKu2C,aAAarzC,EAAOnY,OAAOnkB,QAC9E4zE,QAASv6C,EAAO,KAAOA,EAAO,IAAK,SAAciD,GAAWlD,EAAKo3C,YAAa,CAAC,aAC/Ex4B,OAAQ3e,EAAO,KAAOA,EAAO,IAAK,SAAciD,GAAWlD,EAAK42C,cAAe,CAAC,aAChF3zC,QAAShD,EAAO,KAAOA,EAAO,IAAK,SAASiD,GAAWlD,EAAK42C,cAAe,CAAC,SAC5E6D,UAAW,CACTx6C,EAAO,KAAOA,EAAO,IAAK,SAAS,SAAciD,GAAWlD,EAAKs4C,kBAAmB,CAAC,YAAa,CAAC,UACnGr4C,EAAO,KAAOA,EAAO,IAAK,SAAS,SAAciD,GAAWlD,EAAKu4C,mBAAoB,CAAC,YAAa,CAAC,QACpGt4C,EAAO,KAAOA,EAAO,IAAK,SAAS,SAAciD,GAAWlD,EAAKm3C,qBAAsB,CAAC,SAAU,CAAC,aAErGuD,WAAYz6C,EAAO,KAAOA,EAAO,IAAK,SAAS,SAAciD,GAAWlD,EAAKo4C,kBAAkBl1C,IAAU,CAAC,UAAU,OAAO,SAAU,CAAC,WACtI3C,MAAO,qBACP,gBAAiB,WAAWP,EAAKgD,IAChC,KAAM,GAAuC,CAAC,OAAQ,KAAM,cAAe,QAAS,WAAY,WAAY,oBAC/G,QAAmB,QAAQ,GAC9B3C,EAA6B,uBACzB,WAAa,QAAY,OAAQ,CAChCrnB,IAAK,EACLunB,MAAO,sBACPo6C,YAAa16C,EAAO,MAAQA,EAAO,KAAM,SAAc,IAAIn4B,IAAUk4B,EAAKw3C,QAAUx3C,EAAKw3C,UAAU1vE,IAAQ,CAAC,cAC3G,EACD,QAAWk4B,EAAKhC,OAAQ,cAAe,CAAEq1C,OAAQhzC,EAAS+4C,cAAe,IAAM,EAC7E,SAAgB,QAAgBp5C,EAAKg2C,oBAAqB,OAE3D,MACH,QAAmB,QAAQ,GAC9B31C,EAA6B,uBACzB,WAAa,QAAY,OAAQ,CAChCrnB,IAAK,EACLunB,MAAO,2BACPo6C,YAAa16C,EAAO,MAAQA,EAAO,KAAM,SAAc,IAAIn4B,IAAUk4B,EAAKw3C,QAAUx3C,EAAKw3C,UAAU1vE,IAAQ,CAAC,cAC3G,EACD,QAAWk4B,EAAKhC,OAAQ,cAAe,CAAC,GAAG,IAAM,EAC/C,SAAgB,QAAgBgC,EAAKq0C,aAAc,OAEpD,MACH,QAAmB,QAAQ,IAC9B,MACH,QAAY,KAAY,CAAEltE,KAAM,eAAiB,CAC/CorB,SAAS,SAAQ,IAAM,EACrB,SAAe,QAAY,MAAO,CAChCgO,MAAO,+BACPi6C,QAASv6C,EAAO,MAAQA,EAAO,IAAM,IAAIn4B,IAAUk4B,EAAKo3C,UAAYp3C,EAAKo3C,YAAYtvE,IACrFi6B,SAAU,KACV44C,YAAa16C,EAAO,MAAQA,EAAO,KAAM,SAAc,QAAU,CAAC,aAClExG,MAAO,CAAEE,UAAWqG,EAAK+zC,gBAAkB,MAC3CzzC,IAAK,QACJ,EACD,QAAY,KAAM,CAChBC,MAAO,uBACP9G,MAAO4G,EAASw5C,aAChBhyB,KAAM,UACN7kB,GAAI,WAAWhD,EAAKgD,IACnB,EACD,QAAWhD,EAAKhC,OAAQ,cACvBgC,EAAKiQ,UAAYjQ,EAAKrhB,MAAQqhB,EAAKo1C,cAAc/tE,SAC7C,WAAa,QAAY,KAAM8yE,EAAY,EAC1C,QAAY,OAAQt3C,EAAY,EAC9B,QAAW7C,EAAKhC,OAAQ,cAAe,CAAC,GAAG,IAAM,EAC/C,QAAgB,eAAgB,QAAgBgC,EAAKrhB,KAAO,uEAAwE,YAI1I,QAAmB,QAAQ,IAC7BqhB,EAAKrhB,KAAOqhB,EAAKo1C,cAAc/tE,OAAS24B,EAAKrhB,MAC1C,SAAU,IAAO,QAAY,KAAU,CAAE3F,IAAK,IAAK,QAAWgnB,EAAKs1C,iBAAiB,CAACjC,EAAQp5D,MACpF,WAAa,QAAY,KAAM,CACrCsmB,MAAO,uBACPvnB,IAAKiB,EACL+oB,GAAIhD,EAAKgD,GAAK,IAAM/oB,EACpB4tC,KAAQwrB,IAAWA,EAAOG,UAAYH,EAAOoD,aAA2B,KAAX,UAC5D,CACEpD,IAAWA,EAAOG,UAAYH,EAAOoD,cAkBpC,QAAmB,QAAQ,KAjB1B,WAAa,QAAY,OAAQ,CAChCz9D,IAAK,EACLunB,MAAO,CAACP,EAAKk4C,gBAAgBj+D,EAAOo5D,GAAS,uBAC7ClwC,SAAS,SAAcD,GAAWlD,EAAKq1C,OAAOhC,IAAU,CAAC,SACzDyH,cAAc,SAAc53C,GAAWlD,EAAKw4C,WAAWv+D,IAAS,CAAC,SACjE,cAAeo5D,GAAUA,EAAOuC,MAAQ51C,EAAK00C,eAAiBr0C,EAASo5C,gBACvE,gBAAiBp5C,EAASs5C,kBAC1B,gBAAiBt5C,EAASk5C,mBACzB,EACD,QAAWv5C,EAAKhC,OAAQ,SAAU,CAChCq1C,OAAQA,EACRF,OAAQnzC,EAAKmzC,OACbl5D,MAAOA,IACN,IAAM,EACP,QAAY,OAAQ,MAAM,QAAgB+lB,EAAKi2C,eAAe5C,IAAU,OAEzE,GAAuC,CAAC,UAAW,eAAgB,cAAe,gBAAiB,mBAEzGA,IAAWA,EAAOG,UAAYH,EAAOoD,eACjC,WAAa,QAAY,OAAQ,CAChCz9D,IAAK,EACL,cAAegnB,EAAK+0C,aAAe10C,EAASq5C,qBAC5C,gBAAiB15C,EAAK+0C,aAAe10C,EAASm5C,uBAC9Cj5C,MAAO,CAACP,EAAKm4C,eAAel+D,EAAOo5D,GAAS,uBAC5CyH,cAAc,SAAc53C,GAAWlD,EAAK+0C,aAAe/0C,EAAKw4C,WAAWv+D,IAAS,CAAC,SACrF0gE,aAAa,SAAcz3C,GAAWlD,EAAK02C,YAAYrD,IAAU,CAAC,aACjE,EACD,QAAWrzC,EAAKhC,OAAQ,SAAU,CAChCq1C,OAAQA,EACRF,OAAQnzC,EAAKmzC,OACbl5D,MAAOA,IACN,IAAM,EACP,QAAY,OAAQ,MAAM,QAAgB+lB,EAAKi2C,eAAe5C,IAAU,OAEzE,GAAuC,CAAC,cAAe,gBAAiB,eAAgB,kBAC3F,QAAmB,QAAQ,IAC9B,EAAe,CAAC,KAAM,YACvB,OACJ,QAAmB,QAAQ,IAC/B,SAAe,QAAY,KAAM,KAAM,EACrC,QAAY,OAAQ+G,EAAY,EAC9B,QAAWp6C,EAAKhC,OAAQ,WAAY,CAAEm1C,OAAQnzC,EAAKmzC,SAAU,IAAM,CACjEkH,QAGH,KAAuB,CACxB,CAAC,KAAOn6C,EAAO+4C,eAAkD,IAAhCj5C,EAAKs1C,gBAAgBjuE,QAAgB24B,EAAKmzC,SAAWjzC,EAAOwE,YAE/F,SAAe,QAAY,KAAM,KAAM,EACrC,QAAY,OAAQ41C,EAAY,EAC9B,QAAWt6C,EAAKhC,OAAQ,YAAa,CAAC,GAAG,IAAM,CAC7Cu8C,QAGH,KAAuB,CACxB,CAAC,KAAOr6C,EAAO84C,gBAA2C,IAAxBh5C,EAAKr0B,QAAQtE,SAA6C,IAA5Bg5B,EAAS64C,gBAA2D,IAAhCl5C,EAAKs1C,gBAAgBjuE,UAAmB24B,EAAKmzC,SAAWjzC,EAAOwE,YAErK,QAAW1E,EAAKhC,OAAQ,cACvB,GAAuB,CAAC,QAC1B,IAAiC,CAClC,CAAC,KAAOgC,EAAK6zC,aAGjB5vC,EAAG,KAEJ,GAAuC,CAAC,WAAY,aACzD,EAIA,2EC1zCA,IAAI/6B,EAAWpC,OAAOgC,UAAUI,SAC5B6xE,EAAgBrxE,MAAMZ,UAAUI,SAChC8xE,EAAiBn9D,OAAO/U,UAAUI,SAClC+xE,EAAmC,qBAAXtyE,OAAyBA,OAAOG,UAAUI,SAAW,WAC/E,MAAO,EACT,EACIgyE,EAAgB,uBAQpB,SAASC,EAAiBt7C,EAAKu7C,GAK7B,QAJqB,IAAjBA,IACFA,GAAe,GAGL,OAARv7C,IAAwB,IAARA,IAAwB,IAARA,EAAe,MAAO,GAAKA,EAC/D,IAAIw7C,SAAgBx7C,EACpB,GAAe,WAAXw7C,EAAqB,OAb3B,SAAqBx7C,GACnB,OAAIA,KAASA,EAAY,MACI,IAARA,GAAa,EAAIA,EAAM,EACpB,KAAO,GAAKA,CACtC,CASkCy7C,CAAYz7C,GAC5C,GAAe,WAAXw7C,EAAqB,OAAOD,EAAe,IAAOv7C,EAAM,IAAOA,EACnE,GAAe,aAAXw7C,EAAuB,MAAO,cAAgBx7C,EAAI14B,MAAQ,aAAe,IAC7E,GAAe,WAAXk0E,EAAqB,OAAOJ,EAAe9xE,KAAK02B,GAAKtsB,QAAQ2nE,EAAe,cAChF,IAAInrC,EAAM7mC,EAASC,KAAK02B,GAAKrmB,MAAM,GAAI,GACvC,MAAY,SAARu2B,EAAuB1nC,MAAMw3B,EAAIt2B,WAAa,GAAKs2B,EAAMA,EAAI09B,YAAY19B,GACjE,UAARkQ,GAAmBlQ,aAAen2B,MAAc,IAAMqxE,EAAc5xE,KAAK02B,GAAO,IACxE,WAARkQ,EAAyBirC,EAAe7xE,KAAK02B,GAC1C,IACT,CAEA,SAAS07C,EAAW30E,EAAOw0E,GACzB,IAAIrlE,EAASolE,EAAiBv0E,EAAOw0E,GACrC,OAAe,OAAXrlE,EAAwBA,EACrBu4B,KAAKC,UAAU3nC,GAAO,SAAUoS,EAAKpS,GAC1C,IAAImP,EAASolE,EAAiB9oD,KAAKrZ,GAAMoiE,GACzC,OAAe,OAAXrlE,EAAwBA,EACrBnP,CACT,GAAG,EACL,CAIA,IAsMI40E,EAAU,CACZ,QAAW,2BACX3zE,SAAU,kCACV4zE,MAAO,4DACPC,SAAU,+DACVC,QAAS,SAAiB/vE,GACxB,IAAItE,EAAOsE,EAAKtE,KACZkrB,EAAO5mB,EAAK4mB,KACZ5rB,EAAQgF,EAAKhF,MACbg1E,EAAgBhwE,EAAKgwE,cACrBC,EAA0B,MAAjBD,GAAyBA,IAAkBh1E,EACpD+hD,EAAMrhD,EAAO,iBAAmBkrB,EAA1BlrB,qCAA8Ei0E,EAAW30E,GAAO,GAAQ,KAAQi1E,EAAS,yBAA2BN,EAAWK,GAAe,GAAQ,MAAQ,KAMxM,OAJc,OAAVh1E,IACF+hD,GAAO,4GAGFA,CACT,GAmCEmzB,EAAK,CACPzqC,UAAW,KACX0qC,MAAOP,EACP/iE,OApCa,CACbpR,OAAQ,sDACR2a,IAAK,sDACLrD,IAAK,sDACL2+C,QAAS,sDACT0e,MAAO,sDACPC,IAAK,qCACL9mB,KAAM,wCACN+mB,UAAW,+CACXC,UAAW,gDA4BXh0E,OA1Ba,CACb6Z,IAAK,0CACLrD,IAAK,0CACLy9D,SAAU,mCACVC,SAAU,mCACVC,SAAU,yCACVC,SAAU,yCACVC,QAAS,8BAoBT1yE,KAlBW,CACXkY,IAAK,+CACLrD,IAAK,+CAiBL89D,QAfe,CAAC,EAgBhBhjE,OAfa,CACbijE,UAAW,+DAeX9iE,MAbY,CACZoI,IAAK,8DACLrD,IAAK,ySCjSP,MAAMzV,EAAWpC,OAAOgC,UAAUI,SAC5B6xE,EAAgBrxE,MAAMZ,UAAUI,SAChC8xE,EAAiBn9D,OAAO/U,UAAUI,SAClC+xE,EAAmC,qBAAXtyE,OAAyBA,OAAOG,UAAUI,SAAW,IAAM,GACnFgyE,EAAgB,uBAMtB,SAASC,EAAiBt7C,EAAKu7C,GAAe,GAC5C,GAAW,MAAPv7C,IAAuB,IAARA,IAAwB,IAARA,EAAe,MAAO,GAAKA,EAC9D,MAAMw7C,SAAgBx7C,EACtB,GAAe,WAAXw7C,EAAqB,OAR3B,SAAqBx7C,GACnB,OAAIA,IAAQA,EAAY,MACO,IAARA,GAAa,EAAIA,EAAM,EACtB,KAAO,GAAKA,CACtC,CAIkCy7C,CAAYz7C,GAC5C,GAAe,WAAXw7C,EAAqB,OAAOD,EAAe,IAAIv7C,KAASA,EAC5D,GAAe,aAAXw7C,EAAuB,MAAO,cAAgBx7C,EAAI14B,MAAQ,aAAe,IAC7E,GAAe,WAAXk0E,EAAqB,OAAOJ,EAAe9xE,KAAK02B,GAAKtsB,QAAQ2nE,EAAe,cAChF,MAAMnrC,EAAM7mC,EAASC,KAAK02B,GAAKrmB,MAAM,GAAI,GACzC,MAAY,SAARu2B,EAAuB1nC,MAAMw3B,EAAIt2B,WAAa,GAAKs2B,EAAMA,EAAI09B,YAAY19B,GACjE,UAARkQ,GAAmBlQ,aAAen2B,MAAc,IAAMqxE,EAAc5xE,KAAK02B,GAAO,IACxE,WAARkQ,EAAyBirC,EAAe7xE,KAAK02B,GAC1C,IACT,CACA,SAAS07C,EAAW30E,EAAOw0E,GACzB,IAAIrlE,EAASolE,EAAiBv0E,EAAOw0E,GACrC,OAAe,OAAXrlE,EAAwBA,EACrBu4B,KAAKC,UAAU3nC,GAAO,SAAUoS,EAAKpS,GAC1C,IAAImP,EAASolE,EAAiB9oD,KAAKrZ,GAAMoiE,GACzC,OAAe,OAAXrlE,EAAwBA,EACrBnP,CACT,GAAG,EACL,CAEA,SAAS+1E,EAAQ/1E,GACf,OAAgB,MAATA,EAAgB,GAAK,GAAG8N,OAAO9N,EACxC,CAEA,IAAIg2E,EAAS,qBACb,MAAMC,UAAwBnzE,MAC5BozE,mBAAmBtqC,EAASuC,GAC1B,MAAMztC,EAAOytC,EAAOqB,OAASrB,EAAOztC,MAAQ,OAI5C,OAHIA,IAASytC,EAAOztC,OAAMytC,EAASjuC,OAAOC,OAAO,CAAC,EAAGguC,EAAQ,CAC3DztC,UAEqB,kBAAZkrC,EAA6BA,EAAQj/B,QAAQqpE,GAAQ,CAAC34C,EAAGjrB,IAAQuiE,EAAWxmC,EAAO/7B,MACvE,oBAAZw5B,EAA+BA,EAAQuC,GAC3CvC,CACT,CACAsqC,eAAe71E,GACb,OAAOA,GAAoB,oBAAbA,EAAIE,IACpB,CACA0B,YAAYk0E,EAAen2E,EAAOgvC,EAAOpjB,GACvCwqD,QACA3qD,KAAKzrB,WAAQ,EACbyrB,KAAK/qB,UAAO,EACZ+qB,KAAKG,UAAO,EACZH,KAAKrrB,YAAS,EACdqrB,KAAK0iB,YAAS,EACd1iB,KAAKjrB,WAAQ,EACbirB,KAAKlrB,KAAO,kBACZkrB,KAAKzrB,MAAQA,EACbyrB,KAAK/qB,KAAOsuC,EACZvjB,KAAKG,KAAOA,EACZH,KAAKrrB,OAAS,GACdqrB,KAAKjrB,MAAQ,GACbu1E,EAAQI,GAAejhD,SAAQ70B,IACzB41E,EAAgBI,QAAQh2E,IAC1BorB,KAAKrrB,OAAOU,QAAQT,EAAID,QACxBqrB,KAAKjrB,MAAQirB,KAAKjrB,MAAMsN,OAAOzN,EAAIG,MAAMC,OAASJ,EAAIG,MAAQH,IAE9DorB,KAAKrrB,OAAOU,KAAKT,EACnB,IAEForB,KAAKmgB,QAAUngB,KAAKrrB,OAAOK,OAAS,EAAI,GAAGgrB,KAAKrrB,OAAOK,yBAA2BgrB,KAAKrrB,OAAO,GAC1F0C,MAAMwzE,mBAAmBxzE,MAAMwzE,kBAAkB7qD,KAAMwqD,EAC7D,EAGF,IAAId,EAAQ,CACVxpD,QAAS,qBACT1qB,SAAU,8BACVs1E,QAAS,0BACTC,QAAS,yBACT3B,MAAO,yDACPC,SAAU,6DACVC,QAAS,EACPr0E,OACAkrB,OACA5rB,QACAg1E,oBAEA,MAAMyB,EAA2B,MAAjBzB,GAAyBA,IAAkBh1E,EAAQ,2BAA2B20E,EAAWK,GAAe,SAAc,IACtI,MAAgB,UAATppD,EAAmB,GAAGlrB,iBAAoBkrB,wCAAgD+oD,EAAW30E,GAAO,OAAYy2E,EAAU,GAAG/1E,gEAAwEi0E,EAAW30E,GAAO,OAAYy2E,CAAO,GAGzP5kE,EAAS,CACXpR,OAAQ,+CACR2a,IAAK,6CACLrD,IAAK,4CACL2+C,QAAS,+CACT0e,MAAO,gCACPC,IAAK,8BACLqB,KAAM,+BACNnoB,KAAM,mCACN+mB,UAAW,qCACXC,UAAW,uCAETh0E,EAAS,CACX6Z,IAAK,kDACLrD,IAAK,+CACLy9D,SAAU,oCACVC,SAAU,uCACVC,SAAU,oCACVC,SAAU,oCACVC,QAAS,8BAEP1yE,EAAO,CACTkY,IAAK,0CACLrD,IAAK,gDAEH89D,EAAU,CACZc,QAAS,kCAEP9jE,EAAS,CACXijE,UAAW,kDAET9iE,EAAQ,CACVoI,IAAK,gDACLrD,IAAK,6DACLtX,OAAQ,qCAiBV,IAAI+E,EAAStF,OAAOC,OAAOD,OAAO+jC,OAAO,MAAO,CAC9CkxC,QACAtjE,SACAtQ,SACA2B,OACA2P,SACAG,QACA6iE,YAGF,MAAMe,EAAW90E,GAAOA,GAAOA,EAAI+0E,gBAEnC,MAAMC,EACJZ,mBAAmBa,EAAM3wD,GACvB,IAAKA,EAAOmY,OAASnY,EAAO4wD,UAAW,MAAM,IAAI71E,UAAU,sEAC3D,IAAI,GACF81E,EAAE,KACF14C,EAAI,UACJy4C,GACE5wD,EACA8wD,EAAsB,oBAAPD,EAAoBA,EAAK,IAAIn3E,IAAWA,EAAOqe,OAAMne,GAASA,IAAUi3E,IAC3F,OAAO,IAAIH,EAAUC,GAAM,CAACj3E,EAAQ4vC,KAClC,IAAIynC,EACJ,IAAIC,EAASF,KAASp3E,GAAUy+B,EAAOy4C,EACvC,OAA+D,OAAvDG,EAAoB,MAAVC,OAAiB,EAASA,EAAO1nC,IAAmBynC,EAAUznC,CAAM,GAE1F,CACAztC,YAAY80E,EAAMM,GAChB5rD,KAAKjM,QAAK,EACViM,KAAKsrD,KAAOA,EACZtrD,KAAKsrD,KAAOA,EACZtrD,KAAKjM,GAAK63D,CACZ,CACAxsD,QAAQZ,EAAMllB,GACZ,IAAIjF,EAAS2rB,KAAKsrD,KAAKniE,KAAI8kB,GAE3BA,EAAI41C,SAAoB,MAAXvqE,OAAkB,EAASA,EAAQ/E,MAAkB,MAAX+E,OAAkB,EAASA,EAAQ0gB,OAAmB,MAAX1gB,OAAkB,EAASA,EAAQ6D,WACjI8mC,EAASjkB,KAAKjM,GAAG1f,EAAQmqB,EAAMllB,GACnC,QAAeyK,IAAXkgC,GAEJA,IAAWzlB,EACT,OAAOA,EAET,IAAK2sD,EAASlnC,GAAS,MAAM,IAAIvuC,UAAU,0CAC3C,OAAOuuC,EAAO7kB,QAAQ9lB,EACxB,EAGF,MAAMuyE,EACK,IADLA,EAEG,IAET,SAASC,EAASnlE,EAAKrN,GACrB,OAAO,IAAIyyE,EAAUplE,EAAKrN,EAC5B,CACA,MAAMyyE,EACJv1E,YAAYmQ,EAAKrN,EAAU,CAAC,GAQ1B,GAPA0mB,KAAKrZ,SAAM,EACXqZ,KAAKgsD,eAAY,EACjBhsD,KAAKkrD,aAAU,EACflrD,KAAKisD,eAAY,EACjBjsD,KAAK/qB,UAAO,EACZ+qB,KAAK6Z,YAAS,EACd7Z,KAAK7W,SAAM,EACQ,kBAARxC,EAAkB,MAAM,IAAIjR,UAAU,8BAAgCiR,GAEjF,GADAqZ,KAAKrZ,IAAMA,EAAIm8C,OACH,KAARn8C,EAAY,MAAM,IAAIjR,UAAU,kCACpCsqB,KAAKgsD,UAAYhsD,KAAKrZ,IAAI,KAAOklE,EACjC7rD,KAAKkrD,QAAUlrD,KAAKrZ,IAAI,KAAOklE,EAC/B7rD,KAAKisD,WAAajsD,KAAKgsD,YAAchsD,KAAKkrD,QAC1C,IAAIgB,EAASlsD,KAAKgsD,UAAYH,EAAmB7rD,KAAKkrD,QAAUW,EAAiB,GACjF7rD,KAAK/qB,KAAO+qB,KAAKrZ,IAAIQ,MAAM+kE,EAAOl3E,QAClCgrB,KAAK6Z,OAAS7Z,KAAK/qB,OAAQ,IAAA4kC,QAAO7Z,KAAK/qB,MAAM,GAC7C+qB,KAAK7W,IAAM7P,EAAQ6P,GACrB,CACA06D,SAAStvE,EAAOylB,EAAQ7c,GACtB,IAAIuG,EAASsc,KAAKgsD,UAAY7uE,EAAU6iB,KAAKkrD,QAAU32E,EAAQylB,EAG/D,OAFIgG,KAAK6Z,SAAQn2B,EAASsc,KAAK6Z,OAAOn2B,GAAU,CAAC,IAC7Csc,KAAK7W,MAAKzF,EAASsc,KAAK7W,IAAIzF,IACzBA,CACT,CASApO,KAAKf,EAAO+E,GACV,OAAO0mB,KAAK6jD,SAAStvE,EAAkB,MAAX+E,OAAkB,EAASA,EAAQ0gB,OAAmB,MAAX1gB,OAAkB,EAASA,EAAQ6D,QAC5G,CACAiiB,UACE,OAAOY,IACT,CACAmsD,WACE,MAAO,CACLhsD,KAAM,MACNxZ,IAAKqZ,KAAKrZ,IAEd,CACA9P,WACE,MAAO,OAAOmpB,KAAKrZ,MACrB,CACA8jE,aAAal2E,GACX,OAAOA,GAASA,EAAM63E,UACxB,EAIFL,EAAUt1E,UAAU21E,YAAa,EAEjC,MAAMC,EAAW93E,GAAkB,MAATA,EAE1B,SAAS+3E,EAAiB3xD,GACxB,SAASnmB,GAAS,MAChBD,EAAK,KACLU,EAAO,GAAE,QACTqE,EAAO,cACPiwE,EAAa,OACbtlC,GACCsoC,EAAOlyD,GACR,MAAM,KACJvlB,EAAI,KACJiS,EAAI,OACJ27B,EAAM,QACNvC,EAAO,WACPqsC,GACE7xD,EACJ,IAAI,OACFX,EAAM,QACN7c,EAAO,WACPjJ,EAAa+vC,EAAOwoC,KAAKv4E,YACvBoF,EACJ,SAAS8lB,EAAQJ,GACf,OAAO+sD,EAAUW,MAAM1tD,GAAQA,EAAK6kD,SAAStvE,EAAOylB,EAAQ7c,GAAW6hB,CACzE,CACA,SAAS2tD,EAAYhiB,EAAY,CAAC,GAChC,MAAMiiB,EAAan4E,OAAOC,OAAO,CAC/BH,QACAg1E,gBACAxlC,MAAOE,EAAOwoC,KAAK1oC,MACnB9uC,KAAM01D,EAAU11D,MAAQA,EACxBw3E,KAAMxoC,EAAOwoC,MACZ/pC,EAAQioB,EAAUjoB,QACrB,IAAK,MAAM/7B,KAAOlS,OAAO4oC,KAAKuvC,GAAaA,EAAWjmE,GAAOyY,EAAQwtD,EAAWjmE,IAChF,MAAM9R,EAAQ,IAAI21E,EAAgBA,EAAgBqC,YAAYliB,EAAUxqB,SAAWA,EAASysC,GAAar4E,EAAOq4E,EAAW33E,KAAM01D,EAAUxqC,MAAQrrB,GAEnJ,OADAD,EAAM6tC,OAASkqC,EACR/3E,CACT,CACA,MAAMi4E,EAAU54E,EAAaq4E,EAAQlyD,EACrC,IAAIiqB,EAAM,CACRrvC,OACA+kB,SACAmG,KAAMrrB,EACNsnB,KAAM9iB,EAAQ8iB,KACduwD,cACAvtD,UACA9lB,UACAiwE,gBACAtlC,UAEF,MAAM8oC,EAAeC,IACfxC,EAAgBI,QAAQoC,GAAeF,EAAQE,GAAwBA,EAA0C3yD,EAAK,MAAjCyyD,EAAQH,IAA8B,EAE3HM,EAAcr4E,IACd41E,EAAgBI,QAAQh2E,GAAMk4E,EAAQl4E,GAAU23E,EAAM33E,EAAI,EAE1Ds4E,EAAaV,GAAcH,EAAS93E,GAC1C,IAAK+E,EAAQ07D,KAAM,CACjB,IACE71C,QAAQC,UAAS8tD,GAAanmE,EAAKjQ,KAAKwtC,EAAK/vC,EAAO+vC,IAAaxR,KAAKi6C,EAAcE,EAGtF,CAFE,MAAOr4E,GACPq4E,EAAYr4E,EACd,CACA,MACF,CACA,IAAI8O,EACJ,IACE,IAAIypE,EAEJ,GADAzpE,IAAUwpE,GAAanmE,EAAKjQ,KAAKwtC,EAAK/vC,EAAO+vC,GACuB,oBAAlC,OAArB6oC,EAAUzpE,QAAkB,EAASypE,EAAQr6C,MACxD,MAAM,IAAIz7B,MAAM,6BAA6BitC,EAAInkB,qHAKrD,CAHE,MAAOvrB,GAEP,YADAq4E,EAAYr4E,EAEd,CACAm4E,EAAarpE,EACf,CAEA,OADAlP,EAAS44E,QAAUzyD,EACZnmB,CACT,CAEA,SAAS64E,EAAMppC,EAAQhvC,EAAMV,EAAO4I,EAAU5I,GAC5C,IAAIylB,EAAQszD,EAAUC,EAGtB,OAAKt4E,IAKL,IAAAw0B,SAAQx0B,GAAM,CAACu4E,EAAOpzC,EAAWvzB,KAC/B,IAAIsyB,EAAOiB,EAAYozC,EAAMrmE,MAAM,EAAGqmE,EAAMx4E,OAAS,GAAKw4E,EAMtDC,EAA0B,WAL9BxpC,EAASA,EAAO7kB,QAAQ,CACtBjiB,UACA6c,SACAzlB,WAEmB4rB,KACjBga,EAAMtzB,EAAUY,SAAS0xB,EAAM,IAAM,EACzC,GAAI8K,EAAOypC,WAAaD,EAAS,CAC/B,GAAIA,IAAY5mE,EAAS,MAAM,IAAIxP,MAAM,uEAAuEk2E,wDAAoEA,SACpL,GAAIh5E,GAAS4lC,GAAO5lC,EAAMS,OACxB,MAAM,IAAIqC,MAAM,oDAAoDm2E,mBAAuBv4E,gDAE7F+kB,EAASzlB,EACTA,EAAQA,GAASA,EAAM4lC,GACvB8J,EAASwpC,EAAUxpC,EAAOwoC,KAAKkB,MAAMxzC,GAAO8J,EAAOypC,SACrD,CAMA,IAAK7mE,EAAS,CACZ,IAAKo9B,EAAO6J,SAAW7J,EAAO6J,OAAO3U,GAAO,MAAM,IAAI9hC,MAAM,yCAAyCpC,kBAA0Bs4E,uBAAmCtpC,EAAO9jB,UACzKnG,EAASzlB,EACTA,EAAQA,GAASA,EAAM4kC,GACvB8K,EAASA,EAAO6J,OAAO3U,EACzB,CACAm0C,EAAWn0C,EACXo0C,EAAgBnzC,EAAY,IAAMozC,EAAQ,IAAM,IAAMA,CAAK,IAEtD,CACLvpC,SACAjqB,SACA4zD,WAAYN,IAxCI,CAChBtzD,SACA4zD,WAAY34E,EACZgvC,SAuCJ,CAKA,MAAM4pC,UAAqBtrD,IACzB4pD,WACE,MAAM2B,EAAc,GACpB,IAAK,MAAM9uD,KAAQgB,KAAK3rB,SACtBy5E,EAAYz4E,KAAK02E,EAAUW,MAAM1tD,GAAQA,EAAKmtD,WAAantD,GAE7D,OAAO8uD,CACT,CACAC,WAAW3uD,GACT,IAAI1b,EAAS,GACb,IAAK,MAAMsb,KAAQgB,KAAK3rB,SACtBqP,EAAOrO,KAAK+pB,EAAQJ,IAEtB,OAAOtb,CACT,CACAsqE,QACE,OAAO,IAAIH,EAAa7tD,KAAK3rB,SAC/B,CACA45E,MAAMC,EAAUC,GACd,MAAM9zD,EAAO2F,KAAKguD,QAGlB,OAFAE,EAASzkD,SAAQl1B,GAAS8lB,EAAK0O,IAAIx0B,KACnC45E,EAAY1kD,SAAQl1B,GAAS8lB,EAAKwQ,OAAOt2B,KAClC8lB,CACT,EAIF,SAAS2zD,EAAM5d,EAAKge,EAAO,IAAI3yC,KAC7B,GAAI0vC,EAAS/a,KAASA,GAAsB,kBAARA,EAAkB,OAAOA,EAC7D,GAAIge,EAAK1yC,IAAI00B,GAAM,OAAOge,EAAKhwD,IAAIgyC,GACnC,IAAIie,EACJ,GAAIje,aAAex5D,KAEjBy3E,EAAO,IAAIz3E,KAAKw5D,EAAIl5D,WACpBk3E,EAAK31C,IAAI23B,EAAKie,QACT,GAAIje,aAAe5kD,OAExB6iE,EAAO,IAAI7iE,OAAO4kD,GAClBge,EAAK31C,IAAI23B,EAAKie,QACT,GAAIznE,MAAMC,QAAQupD,GAAM,CAE7Bie,EAAO,IAAIznE,MAAMwpD,EAAIp7D,QACrBo5E,EAAK31C,IAAI23B,EAAKie,GACd,IAAK,IAAI7vE,EAAI,EAAGA,EAAI4xD,EAAIp7D,OAAQwJ,IAAK6vE,EAAK7vE,GAAKwvE,EAAM5d,EAAI5xD,GAAI4vE,EAC/D,MAAO,GAAIhe,aAAe30B,IAAK,CAE7B4yC,EAAO,IAAI5yC,IACX2yC,EAAK31C,IAAI23B,EAAKie,GACd,IAAK,MAAOrvE,EAAGyhC,KAAM2vB,EAAI/xB,UAAWgwC,EAAK51C,IAAIz5B,EAAGgvE,EAAMvtC,EAAG2tC,GAC3D,MAAO,GAAIhe,aAAe7tC,IAAK,CAE7B8rD,EAAO,IAAI9rD,IACX6rD,EAAK31C,IAAI23B,EAAKie,GACd,IAAK,MAAM5tC,KAAK2vB,EAAKie,EAAKtlD,IAAIilD,EAAMvtC,EAAG2tC,GACzC,KAAO,MAAIhe,aAAe37D,QAMxB,MAAM4C,MAAM,mBAAmB+4D,KAJ/Bie,EAAO,CAAC,EACRD,EAAK31C,IAAI23B,EAAKie,GACd,IAAK,MAAOrvE,EAAGyhC,KAAMhsC,OAAO4pC,QAAQ+xB,GAAMie,EAAKrvE,GAAKgvE,EAAMvtC,EAAG2tC,EAG/D,CACA,OAAOC,CACT,CAEA,MAAMC,EACJ93E,YAAY8C,GACV0mB,KAAKG,UAAO,EACZH,KAAKurB,KAAO,GACZvrB,KAAKuuD,WAAQ,EACbvuD,KAAKwuD,gBAAa,EAClBxuD,KAAKyuD,WAAa,GAClBzuD,KAAK0uD,aAAU,EACf1uD,KAAK2uD,cAAgB,CAAC,EACtB3uD,KAAK4uD,WAAa,IAAIf,EACtB7tD,KAAK6uD,WAAa,IAAIhB,EACtB7tD,KAAK8uD,eAAiBr6E,OAAO+jC,OAAO,MACpCxY,KAAK+uD,gBAAa,EAClB/uD,KAAKysD,UAAO,EACZzsD,KAAKuuD,MAAQ,GACbvuD,KAAKwuD,WAAa,GAClBxuD,KAAKgvD,cAAa,KAChBhvD,KAAKivD,UAAUvF,EAAMJ,QAAQ,IAE/BtpD,KAAKG,KAAO7mB,EAAQ6mB,KACpBH,KAAK+uD,WAAaz1E,EAAQmyE,MAC1BzrD,KAAKysD,KAAOh4E,OAAOC,OAAO,CACxBw6E,OAAO,EACPC,QAAQ,EACRj7E,YAAY,EACZk7E,WAAW,EACXC,UAAU,EACVC,UAAU,EACVC,QAAQ,GACI,MAAXj2E,OAAkB,EAASA,EAAQmzE,MACtCzsD,KAAKgvD,cAAanzE,IAChBA,EAAE2zE,aAAa,GAEnB,CAGIC,YACF,OAAOzvD,KAAKG,IACd,CACA6tD,MAAMvB,GACJ,GAAIzsD,KAAK0uD,QAEP,OADIjC,GAAMh4E,OAAOC,OAAOsrB,KAAKysD,KAAMA,GAC5BzsD,KAKT,MAAM3F,EAAO5lB,OAAO+jC,OAAO/jC,OAAOi7E,eAAe1vD,OAgBjD,OAbA3F,EAAK8F,KAAOH,KAAKG,KACjB9F,EAAK00D,WAAa/uD,KAAK+uD,WACvB10D,EAAKu0D,WAAa5uD,KAAK4uD,WAAWZ,QAClC3zD,EAAKw0D,WAAa7uD,KAAK6uD,WAAWb,QAClC3zD,EAAKs0D,cAAgBl6E,OAAOC,OAAO,CAAC,EAAGsrB,KAAK2uD,eAC5Ct0D,EAAKy0D,eAAiBr6E,OAAOC,OAAO,CAAC,EAAGsrB,KAAK8uD,gBAG7Cz0D,EAAKkxB,KAAO,IAAIvrB,KAAKurB,MACrBlxB,EAAKo0D,WAAa,IAAIzuD,KAAKyuD,YAC3Bp0D,EAAKk0D,MAAQ,IAAIvuD,KAAKuuD,OACtBl0D,EAAKm0D,WAAa,IAAIxuD,KAAKwuD,YAC3Bn0D,EAAKoyD,KAAOuB,EAAMv5E,OAAOC,OAAO,CAAC,EAAGsrB,KAAKysD,KAAMA,IACxCpyD,CACT,CACA0pB,MAAMA,GACJ,IAAI1pB,EAAO2F,KAAKguD,QAEhB,OADA3zD,EAAKoyD,KAAK1oC,MAAQA,EACX1pB,CACT,CACAqsB,QAAQjxC,GACN,GAAoB,IAAhBA,EAAKT,OAAc,OAAOgrB,KAAKysD,KAAK/lC,KACxC,IAAIrsB,EAAO2F,KAAKguD,QAEhB,OADA3zD,EAAKoyD,KAAK/lC,KAAOjyC,OAAOC,OAAO2lB,EAAKoyD,KAAK/lC,MAAQ,CAAC,EAAGjxC,EAAK,IACnD4kB,CACT,CACA20D,aAAaj7D,GACX,IAAI47D,EAAS3vD,KAAK0uD,QAClB1uD,KAAK0uD,SAAU,EACf,IAAIhrE,EAASqQ,EAAGiM,MAEhB,OADAA,KAAK0uD,QAAUiB,EACRjsE,CACT,CACArB,OAAO4hC,GACL,IAAKA,GAAUA,IAAWjkB,KAAM,OAAOA,KACvC,GAAIikB,EAAO9jB,OAASH,KAAKG,MAAsB,UAAdH,KAAKG,KAAkB,MAAM,IAAIzqB,UAAU,wDAAwDsqB,KAAKG,YAAY8jB,EAAO9jB,QAC5J,IAAI3B,EAAOwB,KACP4vD,EAAW3rC,EAAO+pC,QACtB,MAAM6B,EAAap7E,OAAOC,OAAO,CAAC,EAAG8pB,EAAKiuD,KAAMmD,EAASnD,MAqBzD,OApBAmD,EAASnD,KAAOoD,EAChBD,EAASjB,cAAgBl6E,OAAOC,OAAO,CAAC,EAAG8pB,EAAKmwD,cAAeiB,EAASjB,eAIxEiB,EAAShB,WAAapwD,EAAKowD,WAAWX,MAAMhqC,EAAO2qC,WAAY3qC,EAAO4qC,YACtEe,EAASf,WAAarwD,EAAKqwD,WAAWZ,MAAMhqC,EAAO4qC,WAAY5qC,EAAO2qC,YAGtEgB,EAASrB,MAAQ/vD,EAAK+vD,MACtBqB,EAASd,eAAiBtwD,EAAKswD,eAI/Bc,EAASZ,cAAa30D,IACpB4pB,EAAOsqC,MAAM9kD,SAAQ1V,IACnBsG,EAAKtT,KAAKgN,EAAGq5D,QAAQ,GACrB,IAEJwC,EAASpB,WAAa,IAAIhwD,EAAKgwD,cAAeoB,EAASpB,YAChDoB,CACT,CACAE,OAAOrvC,GACL,OAAS,MAALA,KACEzgB,KAAKysD,KAAK4C,UAAkB,OAAN5uC,OACtBzgB,KAAKysD,KAAK6C,eAAkBvrE,IAAN08B,GAGrBzgB,KAAK+uD,WAAWtuC,EACzB,CACArhB,QAAQ9lB,GACN,IAAI2qC,EAASjkB,KACb,GAAIikB,EAAOwqC,WAAWz5E,OAAQ,CAC5B,IAAIy5E,EAAaxqC,EAAOwqC,WACxBxqC,EAASA,EAAO+pC,QAChB/pC,EAAOwqC,WAAa,GACpBxqC,EAASwqC,EAAWv5E,QAAO,CAAC66E,EAAYC,IAAcA,EAAU5wD,QAAQ2wD,EAAYz2E,IAAU2qC,GAC9FA,EAASA,EAAO7kB,QAAQ9lB,EAC1B,CACA,OAAO2qC,CACT,CACAgsC,eAAe32E,GACb,IAAI42E,EAAiBC,EAAqBC,EAC1C,OAAO37E,OAAOC,OAAO,CAAC,EAAG4E,EAAS,CAChC8iB,KAAM9iB,EAAQ8iB,MAAQ,GACtB+yD,OAA8C,OAArCe,EAAkB52E,EAAQ61E,QAAkBe,EAAkBlwD,KAAKysD,KAAK0C,OACjFj7E,WAA0D,OAA7Ci8E,EAAsB72E,EAAQpF,YAAsBi8E,EAAsBnwD,KAAKysD,KAAKv4E,WACjGk7E,UAAuD,OAA3CgB,EAAqB92E,EAAQ81E,WAAqBgB,EAAqBpwD,KAAKysD,KAAK2C,WAEjG,CAMA95E,KAAKf,EAAO+E,EAAU,CAAC,GACrB,IAAI+2E,EAAiBrwD,KAAKZ,QAAQ3qB,OAAOC,OAAO,CAC9CH,SACC+E,IACCg3E,EAAsC,uBAAnBh3E,EAAQi3E,OAC3B7sE,EAAS2sE,EAAeG,MAAMj8E,EAAO+E,GACzC,IAAuB,IAAnBA,EAAQi3E,SAAqBF,EAAeP,OAAOpsE,GAAS,CAC9D,GAAI4sE,GAAoBjE,EAAS3oE,GAC/B,OAAOA,EAET,IAAI+sE,EAAiBvH,EAAW30E,GAC5Bm8E,EAAkBxH,EAAWxlE,GACjC,MAAM,IAAIhO,UAAU,gBAAgB4D,EAAQrE,MAAQ,yEAA8Eo7E,EAAelwD,+BAAoCswD,QAAuBC,IAAoBD,EAAiB,mBAAmBC,IAAoB,IAC1R,CACA,OAAOhtE,CACT,CACA8sE,MAAMt8D,EAAU5a,GACd,IAAI/E,OAAqBwP,IAAbmQ,EAAyBA,EAAW8L,KAAKwuD,WAAWt5E,QAAO,CAACy7E,EAAW58D,IAAOA,EAAGjd,KAAKkpB,KAAM2wD,EAAWz8D,EAAU8L,OAAO9L,GAIpI,YAHcnQ,IAAVxP,IACFA,EAAQyrB,KAAK4wD,WAAWt3E,IAEnB/E,CACT,CACAswC,UAAU7C,EAAQ1oC,EAAU,CAAC,EAAGizE,EAAOlyD,GACrC,IAAI,KACFplB,EAAI,cACJs0E,EAAgBvnC,EAAM,OACtBmtC,EAASnvD,KAAKysD,KAAK0C,QACjB71E,EACA/E,EAAQytC,EACPmtC,IACH56E,EAAQyrB,KAAKwwD,MAAMj8E,EAAOE,OAAOC,OAAO,CACtC67E,QAAQ,GACPj3E,KAEL,IAAIu3E,EAAe,GACnB,IAAK,IAAI9pE,KAAQtS,OAAOJ,OAAO2rB,KAAK2uD,eAC9B5nE,GAAM8pE,EAAax7E,KAAK0R,GAE9BiZ,KAAK8wD,SAAS,CACZ77E,OACAV,QACAg1E,gBACAjwE,UACAi1E,MAAOsC,GACNtE,GAAO3+B,IAER,GAAIA,EAAc54C,OAChB,OAAOqlB,EAAKuzB,EAAer5C,GAE7ByrB,KAAK8wD,SAAS,CACZ77E,OACAV,QACAg1E,gBACAjwE,UACAi1E,MAAOvuD,KAAKuuD,OACXhC,EAAOlyD,EAAK,GAEnB,CAMAy2D,SAASC,EAAYxE,EAAOlyD,GAC1B,IAAI22D,GAAQ,GACR,MACFzC,EAAK,MACLh6E,EAAK,cACLg1E,EAAa,KACbt0E,EAAI,QACJqE,GACEy3E,EACAE,EAAY/a,IACV8a,IACJA,GAAQ,EACRzE,EAAMrW,EAAK3hE,GAAM,EAEf28E,EAAWhb,IACT8a,IACJA,GAAQ,EACR32D,EAAK67C,EAAK3hE,GAAM,EAEdkP,EAAQ8qE,EAAMv5E,OACdm8E,EAAe,GACnB,IAAK1tE,EAAO,OAAOytE,EAAS,IAC5B,IAAIz7E,EAAO,CACTlB,QACAg1E,gBACAt0E,OACAqE,UACA2qC,OAAQjkB,MAEV,IAAK,IAAIxhB,EAAI,EAAGA,EAAI+vE,EAAMv5E,OAAQwJ,IAAK,EAErCuI,EADawnE,EAAM/vE,IACd/I,EAAMw7E,GAAW,SAAuBr8E,GACvCA,IACFu8E,EAAeA,EAAa9uE,OAAOzN,MAE/B6O,GAAS,GACbytE,EAASC,EAEb,GACF,CACF,CACAC,cAAa,IACXzqE,EAAG,MACHiB,EAAK,OACLoS,EAAM,WACN4zD,EAAU,eACVyD,EAAc,QACd/3E,IAEA,MAAM0F,EAAW,MAAP2H,EAAcA,EAAMiB,EAC9B,GAAS,MAAL5I,EACF,MAAMtJ,UAAU,wDAElB,MAAM8mC,EAAuB,kBAANx9B,EACvB,IAAIzK,EAAQylB,EAAOhb,GACnB,MAAMsyE,EAAc78E,OAAOC,OAAO,CAAC,EAAG4E,EAAS,CAI7C61E,QAAQ,EACRn1D,SACAzlB,QACAg1E,cAAe8H,EAAeryE,GAG9B2H,SAAK5C,EAEL,CAACy4B,EAAU,QAAU,OAAQx9B,EAC7B/J,KAAMunC,GAAWx9B,EAAEkO,SAAS,KAAO,GAAG0gE,GAAc,MAAMr5E,EAAQyK,EAAI,IAAIA,SAAW4uE,EAAa,GAAGA,KAAgB,IAAMjnE,IAE7H,MAAO,CAACirB,EAAG26C,EAAOlyD,IAAS2F,KAAKZ,QAAQkyD,GAAazsC,UAAUtwC,EAAO+8E,EAAa/E,EAAOlyD,EAC5F,CACA7lB,SAASD,EAAO+E,GACd,IAAI2qC,EAASjkB,KAAKZ,QAAQ3qB,OAAOC,OAAO,CAAC,EAAG4E,EAAS,CACnD/E,WAEF,OAAO,IAAI4qB,SAAQ,CAACC,EAAS24C,IAAW9zB,EAAOY,UAAUtwC,EAAO+E,GAAS,CAACzE,EAAO2qD,KAC3EgrB,EAAgBI,QAAQ/1E,KAAQA,EAAMN,MAAQirD,GAClDuY,EAAOljE,EAAM,IACZ,CAACF,EAAQiyC,KACNjyC,EAAOK,OAAQ+iE,EAAO,IAAIyS,EAAgB71E,EAAQiyC,IAAiBxnB,EAAQwnB,EAAU,KAE7F,CACA2qC,aAAah9E,EAAO+E,GAClB,IAGIoK,EAUJ,OAbasc,KAAKZ,QAAQ3qB,OAAOC,OAAO,CAAC,EAAG4E,EAAS,CACnD/E,WAGKswC,UAAUtwC,EAAOE,OAAOC,OAAO,CAAC,EAAG4E,EAAS,CACjD07D,MAAM,KACJ,CAACngE,EAAO2qD,KAEV,MADIgrB,EAAgBI,QAAQ/1E,KAAQA,EAAMN,MAAQirD,GAC5C3qD,CAAK,IACV,CAACF,EAAQiyC,KACV,GAAIjyC,EAAOK,OAAQ,MAAM,IAAIw1E,EAAgB71E,EAAQJ,GACrDmP,EAASkjC,CAAS,IAEbljC,CACT,CACAnM,QAAQhD,EAAO+E,GACb,OAAO0mB,KAAKxrB,SAASD,EAAO+E,GAASw5B,MAAK,KAAM,IAAMl+B,IACpD,GAAI41E,EAAgBI,QAAQh2E,GAAM,OAAO,EACzC,MAAMA,CAAG,GAEb,CACA48E,YAAYj9E,EAAO+E,GACjB,IAEE,OADA0mB,KAAKuxD,aAAah9E,EAAO+E,IAClB,CAIT,CAHE,MAAO1E,GACP,GAAI41E,EAAgBI,QAAQh2E,GAAM,OAAO,EACzC,MAAMA,CACR,CACF,CACA68E,YAAY3sE,GACV,IAAIunD,EAAersC,KAAKysD,KAAKvsD,QAC7B,OAAoB,MAAhBmsC,EACKA,EAEsB,oBAAjBA,EAA8BA,EAAav1D,KAAKkpB,MAAQguD,EAAM3hB,EAC9E,CACAukB,WAAWt3E,GAIT,OADa0mB,KAAKZ,QAAQ9lB,GAAW,CAAC,GACxBm4E,YAAYn4E,EAC5B,CACA4mB,QAAQ8f,GACN,GAAyB,IAArBrpC,UAAU3B,OACZ,OAAOgrB,KAAKyxD,cAKd,OAHWzxD,KAAKguD,MAAM,CACpB9tD,QAAS8f,GAGb,CACAmvC,OAAOuC,GAAW,GAChB,OAAO1xD,KAAKguD,MAAM,CAChBmB,OAAQuC,GAEZ,CACAC,YAAYtC,EAAUlvC,GACpB,MAAM9lB,EAAO2F,KAAKguD,MAAM,CACtBqB,aASF,OAPAh1D,EAAKs0D,cAAcU,SAAW/C,EAAiB,CAC7CnsC,UACArrC,KAAM,WACNiS,KAAKxS,GACH,OAAiB,OAAVA,GAAiByrB,KAAKikB,OAAOwoC,KAAK4C,QAC3C,IAEKh1D,CACT,CACAu3D,YAAYtC,EAAUnvC,GACpB,MAAM9lB,EAAO2F,KAAKguD,MAAM,CACtBsB,aASF,OAPAj1D,EAAKs0D,cAAciD,YAActF,EAAiB,CAChDnsC,UACArrC,KAAM,cACNiS,KAAKxS,GACH,YAAiBwP,IAAVxP,GAAsByrB,KAAKikB,OAAOwoC,KAAK6C,QAChD,IAEKj1D,CACT,CACAi1D,WACE,OAAOtvD,KAAK4xD,aAAY,EAC1B,CACA9G,QAAQ3qC,EAAUupC,EAAMoB,SACtB,OAAO9qD,KAAK4xD,aAAY,EAAOzxC,EACjC,CACAkvC,WACE,OAAOrvD,KAAK2xD,aAAY,EAC1B,CACAnC,YAAYrvC,EAAUupC,EAAMqB,SAC1B,OAAO/qD,KAAK2xD,aAAY,EAAOxxC,EACjC,CACA3qC,SAAS2qC,EAAUupC,EAAMl0E,UACvB,OAAOwqB,KAAKguD,QAAQgB,cAAa30D,GAAQA,EAAKm1D,YAAYrvC,GAAS2qC,QAAQ3qC,IAC7E,CACA0xC,cACE,OAAO7xD,KAAKguD,QAAQgB,cAAa30D,GAAQA,EAAKg1D,WAAWC,YAC3D,CACAz5D,UAAU9B,GACR,IAAIsG,EAAO2F,KAAKguD,QAEhB,OADA3zD,EAAKm0D,WAAWn5E,KAAK0e,GACdsG,CACT,CAgBAtT,QAAQtR,GACN,IAAIxB,EAsBJ,GAnBIA,EAFgB,IAAhBwB,EAAKT,OACgB,oBAAZS,EAAK,GACP,CACLsR,KAAMtR,EAAK,IAGNA,EAAK,GAEW,IAAhBA,EAAKT,OACP,CACLF,KAAMW,EAAK,GACXsR,KAAMtR,EAAK,IAGN,CACLX,KAAMW,EAAK,GACX0qC,QAAS1qC,EAAK,GACdsR,KAAMtR,EAAK,SAGMsO,IAAjB9P,EAAKksC,UAAuBlsC,EAAKksC,QAAUupC,EAAMxpD,SAC5B,oBAAdjsB,EAAK8S,KAAqB,MAAM,IAAIrR,UAAU,mCACzD,IAAI2kB,EAAO2F,KAAKguD,QACZx5E,EAAW83E,EAAiBr4E,GAC5B69E,EAAc79E,EAAK89E,WAAa99E,EAAKa,OAA2C,IAAnCulB,EAAKy0D,eAAe76E,EAAKa,MAC1E,GAAIb,EAAK89E,YACF99E,EAAKa,KAAM,MAAM,IAAIY,UAAU,qEAWtC,OATIzB,EAAKa,OAAMulB,EAAKy0D,eAAe76E,EAAKa,QAAUb,EAAK89E,WACvD13D,EAAKk0D,MAAQl0D,EAAKk0D,MAAM58D,QAAOoC,IAC7B,GAAIA,EAAGq5D,QAAQt4E,OAASb,EAAKa,KAAM,CACjC,GAAIg9E,EAAa,OAAO,EACxB,GAAI/9D,EAAGq5D,QAAQrmE,OAASvS,EAAS44E,QAAQrmE,KAAM,OAAO,CACxD,CACA,OAAO,CAAI,IAEbsT,EAAKk0D,MAAMl5E,KAAKb,GACT6lB,CACT,CACA23D,KAAK30C,EAAM/jC,GACJsN,MAAMC,QAAQw2B,IAAyB,kBAATA,IACjC/jC,EAAU+jC,EACVA,EAAO,KAET,IAAIhjB,EAAO2F,KAAKguD,QACZziC,EAAO++B,EAAQjtC,GAAMl0B,KAAIxC,GAAO,IAAIolE,EAAUplE,KAMlD,OALA4kC,EAAK9hB,SAAQ+hB,IAEPA,EAAIygC,WAAW5xD,EAAKkxB,KAAKl2C,KAAKm2C,EAAI7kC,IAAI,IAE5C0T,EAAKo0D,WAAWp5E,KAAwB,oBAAZiE,EAAyB,IAAI+xE,EAAU9/B,EAAMjyC,GAAW+xE,EAAU4G,YAAY1mC,EAAMjyC,IACzG+gB,CACT,CACA40D,UAAU9uC,GACR,IAAI9lB,EAAO2F,KAAKguD,QAchB,OAbA3zD,EAAKs0D,cAAcM,UAAY3C,EAAiB,CAC9CnsC,UACArrC,KAAM,YACN03E,YAAY,EACZzlE,KAAKxS,GACH,QAAKyrB,KAAKikB,OAAO8qC,WAAWx6E,IAAeyrB,KAAK2sD,YAAY,CAC1DjqC,OAAQ,CACNviB,KAAMH,KAAKikB,OAAO9jB,OAIxB,IAEK9F,CACT,CACA+uD,MAAM8I,EAAO/xC,EAAUupC,EAAMN,OAC3B,IAAI/uD,EAAO2F,KAAKguD,QAoBhB,OAnBAkE,EAAMzoD,SAAQ+D,IACZnT,EAAKu0D,WAAW7lD,IAAIyE,GACpBnT,EAAKw0D,WAAWhkD,OAAO2C,EAAI,IAE7BnT,EAAKs0D,cAAcwD,UAAY7F,EAAiB,CAC9CnsC,UACArrC,KAAM,QACN03E,YAAY,EACZzlE,KAAKxS,GACH,IAAI69E,EAASpyD,KAAKikB,OAAO2qC,WACrByD,EAAWD,EAAOrE,WAAW/tD,KAAKZ,SACtC,QAAOizD,EAASnlE,SAAS3Y,IAAgByrB,KAAK2sD,YAAY,CACxDjqC,OAAQ,CACNruC,OAAQuS,MAAMwV,KAAKg2D,GAAQ7oE,KAAK,MAChC8oE,aAGN,IAEKh4D,CACT,CACAgvD,SAAS6I,EAAO/xC,EAAUupC,EAAML,UAC9B,IAAIhvD,EAAO2F,KAAKguD,QAoBhB,OAnBAkE,EAAMzoD,SAAQ+D,IACZnT,EAAKw0D,WAAW9lD,IAAIyE,GACpBnT,EAAKu0D,WAAW/jD,OAAO2C,EAAI,IAE7BnT,EAAKs0D,cAAc2D,UAAYhG,EAAiB,CAC9CnsC,UACArrC,KAAM,WACNiS,KAAKxS,GACH,IAAIg+E,EAAWvyD,KAAKikB,OAAO4qC,WACvBwD,EAAWE,EAASxE,WAAW/tD,KAAKZ,SACxC,OAAIizD,EAASnlE,SAAS3Y,IAAeyrB,KAAK2sD,YAAY,CACpDjqC,OAAQ,CACNruC,OAAQuS,MAAMwV,KAAKm2D,GAAUhpE,KAAK,MAClC8oE,aAIN,IAEKh4D,CACT,CACA60D,MAAMA,GAAQ,GACZ,IAAI70D,EAAO2F,KAAKguD,QAEhB,OADA3zD,EAAKoyD,KAAKyC,MAAQA,EACX70D,CACT,CAOA8xD,SAAS7yE,GACP,MAAM+gB,GAAQ/gB,EAAU0mB,KAAKZ,QAAQ9lB,GAAW0mB,MAAMguD,SAChD,MACJjqC,EAAK,KACL2C,EAAI,SACJ4oC,EAAQ,SACRD,GACEh1D,EAAKoyD,KAeT,MAdoB,CAClB/lC,OACA3C,QACAurC,WACAD,WACAnvD,QAAS7F,EAAKu2D,WAAWt3E,GACzB6mB,KAAM9F,EAAK8F,KACXipD,MAAO/uD,EAAKu0D,WAAWzC,WACvB9C,SAAUhvD,EAAKw0D,WAAW1C,WAC1BoC,MAAOl0D,EAAKk0D,MAAMplE,KAAI4K,IAAM,CAC1Bjf,KAAMif,EAAGq5D,QAAQt4E,KACjB4tC,OAAQ3uB,EAAGq5D,QAAQ1qC,WACjB/wB,QAAO,CAACiS,EAAGuW,EAAK9hB,IAASA,EAAKvR,WAAUvI,GAAKA,EAAEzJ,OAAS8uB,EAAE9uB,SAAUqlC,IAG5E,EAGFm0C,EAAO73E,UAAU20E,iBAAkB,EACnC,IAAK,MAAMle,KAAU,CAAC,WAAY,gBAAiBohB,EAAO73E,UAAU,GAAGy2D,QAAc,SAAUj4D,EAAMV,EAAO+E,EAAU,CAAC,GACrH,MAAM,OACJ0gB,EAAM,WACN4zD,EAAU,OACV3pC,GACEopC,EAAMrtD,KAAM/qB,EAAMV,EAAO+E,EAAQ6D,SACrC,OAAO8mC,EAAOipB,IAAQlzC,GAAUA,EAAO4zD,GAAan5E,OAAOC,OAAO,CAAC,EAAG4E,EAAS,CAC7E0gB,SACA/kB,SAEJ,EACA,IAAK,MAAMu9E,KAAS,CAAC,SAAU,MAAOlE,EAAO73E,UAAU+7E,IAASlE,EAAO73E,UAAU2yE,MACjF,IAAK,MAAMoJ,KAAS,CAAC,MAAO,QAASlE,EAAO73E,UAAU+7E,IAASlE,EAAO73E,UAAU4yE,SAmBhF,SAASoJ,IACP,OAAO,IAAIC,CACb,CACA,MAAMA,UAAsBpE,EAC1B93E,cACEm0E,MAAM,CACJxqD,KAAM,UACNsrD,MAAMhrC,GAEJ,OADIA,aAAahgB,UAASggB,EAAIA,EAAE7B,WACZ,mBAAN6B,CAChB,IAEFzgB,KAAKgvD,cAAa,KAChBhvD,KAAKnK,WAAU,CAACthB,EAAOo+E,EAAMruC,KAC3B,GAAIA,EAAImoC,KAAK8C,SAAWjrC,EAAIwrC,OAAOv7E,GAAQ,CACzC,GAAI,cAAcwS,KAAK5L,OAAO5G,IAAS,OAAO,EAC9C,GAAI,eAAewS,KAAK5L,OAAO5G,IAAS,OAAO,CACjD,CACA,OAAOA,CAAK,GACZ,GAEN,CACAq+E,OAAOzyC,EAAUiqC,EAAQc,SACvB,OAAOlrD,KAAKjZ,KAAK,CACfo5B,UACArrC,KAAM,WACNi9E,WAAW,EACXrvC,OAAQ,CACNnuC,MAAO,QAETwS,KAAKxS,GACH,OAAO83E,EAAS93E,KAAoB,IAAVA,CAC5B,GAEJ,CACAs+E,QAAQ1yC,EAAUiqC,EAAQc,SACxB,OAAOlrD,KAAKjZ,KAAK,CACfo5B,UACArrC,KAAM,WACNi9E,WAAW,EACXrvC,OAAQ,CACNnuC,MAAO,SAETwS,KAAKxS,GACH,OAAO83E,EAAS93E,KAAoB,IAAVA,CAC5B,GAEJ,CACA2rB,QAAQ8f,GACN,OAAO2qC,MAAMzqD,QAAQ8f,EACvB,CACA8qC,QAAQx0B,GACN,OAAOq0B,MAAMG,QAAQx0B,EACvB,CACAg5B,WACE,OAAO3E,MAAM2E,UACf,CACA95E,SAAS8gD,GACP,OAAOq0B,MAAMn1E,SAAS8gD,EACxB,CACAu7B,cACE,OAAOlH,MAAMkH,aACf,CACAxC,WACE,OAAO1E,MAAM0E,UACf,CACAG,YAAYl5B,GACV,OAAOq0B,MAAM6E,YAAYl5B,EAC3B,CACA44B,MAAMzuC,GACJ,OAAOkqC,MAAMuE,MAAMzuC,EACrB,EAEFgyC,EAASh8E,UAAYi8E,EAAcj8E,UAGnC,IAAIq8E,EAEJ,wIACIC,EAEJ,yqCAGIC,EAAQ,sHACRC,EAAY1+E,GAAS83E,EAAS93E,IAAUA,IAAUA,EAAMuuD,OACxDowB,EAAe,CAAC,EAAEr8E,WACtB,SAASs8E,IACP,OAAO,IAAIC,CACb,CACA,MAAMA,UAAqB9E,EACzB93E,cACEm0E,MAAM,CACJxqD,KAAM,SACNsrD,MAAMl3E,GAEJ,OADIA,aAAiB4G,SAAQ5G,EAAQA,EAAMqqC,WACnB,kBAAVrqC,CAChB,IAEFyrB,KAAKgvD,cAAa,KAChBhvD,KAAKnK,WAAU,CAACthB,EAAOo+E,EAAMruC,KAC3B,IAAKA,EAAImoC,KAAK8C,QAAUjrC,EAAIwrC,OAAOv7E,GAAQ,OAAOA,EAGlD,GAAIqS,MAAMC,QAAQtS,GAAQ,OAAOA,EACjC,MAAM8+E,EAAoB,MAAT9+E,GAAiBA,EAAMsC,SAAWtC,EAAMsC,WAAatC,EAGtE,OAAI8+E,IAAaH,EAAqB3+E,EAC/B8+E,CAAQ,GACf,GAEN,CACA79E,SAAS2qC,GACP,OAAOwqC,MAAMn1E,SAAS2qC,GAAS6uC,cAAa/qC,GAAUA,EAAOl9B,KAAK,CAChEo5B,QAASA,GAAWupC,EAAMl0E,SAC1BV,KAAM,WACN03E,YAAY,EACZzlE,KAAMxS,KAAWA,EAAMS,UAE3B,CACA68E,cACE,OAAOlH,MAAMkH,cAAc7C,cAAa/qC,IACtCA,EAAOsqC,MAAQtqC,EAAOsqC,MAAM58D,QAAO/R,GAAwB,aAAnBA,EAAEwtE,QAAQt4E,OAC3CmvC,IAEX,CACAjvC,OAAOA,EAAQmrC,EAAU/5B,EAAOpR,QAC9B,OAAOgrB,KAAKjZ,KAAK,CACfo5B,UACArrC,KAAM,SACNi9E,WAAW,EACXrvC,OAAQ,CACN1tC,UAEFw3E,YAAY,EACZzlE,KAAKxS,GACH,OAAOA,EAAMS,SAAWgrB,KAAKZ,QAAQpqB,EACvC,GAEJ,CACA2a,IAAIA,EAAKwwB,EAAU/5B,EAAOuJ,KACxB,OAAOqQ,KAAKjZ,KAAK,CACfo5B,UACArrC,KAAM,MACNi9E,WAAW,EACXrvC,OAAQ,CACN/yB,OAEF68D,YAAY,EACZzlE,KAAKxS,GACH,OAAOA,EAAMS,QAAUgrB,KAAKZ,QAAQzP,EACtC,GAEJ,CACArD,IAAIA,EAAK6zB,EAAU/5B,EAAOkG,KACxB,OAAO0T,KAAKjZ,KAAK,CACfjS,KAAM,MACNi9E,WAAW,EACX5xC,UACAuC,OAAQ,CACNp2B,OAEFkgE,YAAY,EACZzlE,KAAKxS,GACH,OAAOA,EAAMS,QAAUgrB,KAAKZ,QAAQ9S,EACtC,GAEJ,CACA2+C,QAAQ1/C,EAAOjS,GACb,IACI6mC,EACArrC,EAFAw+E,GAAqB,EAczB,OAXIh6E,IACqB,kBAAZA,IAEPg6E,sBAAqB,EACrBnzC,UACArrC,QACEwE,GAEJ6mC,EAAU7mC,GAGP0mB,KAAKjZ,KAAK,CACfjS,KAAMA,GAAQ,UACdqrC,QAASA,GAAW/5B,EAAO6kD,QAC3BvoB,OAAQ,CACNn3B,SAEFihE,YAAY,EACZzlE,KAAMxS,GAAmB,KAAVA,GAAgB++E,IAA+C,IAAzB/+E,EAAMusE,OAAOv1D,IAEtE,CACAo+D,MAAMxpC,EAAU/5B,EAAOujE,OACrB,OAAO3pD,KAAKirC,QAAQ6nB,EAAQ,CAC1Bh+E,KAAM,QACNqrC,UACAmzC,oBAAoB,GAExB,CACA1J,IAAIzpC,EAAU/5B,EAAOwjE,KACnB,OAAO5pD,KAAKirC,QAAQ8nB,EAAM,CACxBj+E,KAAM,MACNqrC,UACAmzC,oBAAoB,GAExB,CACArI,KAAK9qC,EAAU/5B,EAAO6kE,MACpB,OAAOjrD,KAAKirC,QAAQ+nB,EAAO,CACzBl+E,KAAM,OACNqrC,UACAmzC,oBAAoB,GAExB,CAGAC,SACE,OAAOvzD,KAAKE,QAAQ,IAAIrK,WAAU2X,GAAe,OAARA,EAAe,GAAKA,GAC/D,CACAs1B,KAAK3iB,EAAU/5B,EAAO08C,MACpB,OAAO9iC,KAAKnK,WAAU2X,GAAc,MAAPA,EAAcA,EAAIs1B,OAASt1B,IAAKzmB,KAAK,CAChEo5B,UACArrC,KAAM,OACNiS,KAAMksE,GAEV,CACApJ,UAAU1pC,EAAU/5B,EAAOyjE,WACzB,OAAO7pD,KAAKnK,WAAUthB,GAAU83E,EAAS93E,GAA+BA,EAAtBA,EAAMoK,gBAAuBoI,KAAK,CAClFo5B,UACArrC,KAAM,cACNi9E,WAAW,EACXvF,YAAY,EACZzlE,KAAMxS,GAAS83E,EAAS93E,IAAUA,IAAUA,EAAMoK,eAEtD,CACAmrE,UAAU3pC,EAAU/5B,EAAO0jE,WACzB,OAAO9pD,KAAKnK,WAAUthB,GAAU83E,EAAS93E,GAA+BA,EAAtBA,EAAMiH,gBAAuBuL,KAAK,CAClFo5B,UACArrC,KAAM,cACNi9E,WAAW,EACXvF,YAAY,EACZzlE,KAAMxS,GAAS83E,EAAS93E,IAAUA,IAAUA,EAAMiH,eAEtD,EAEF23E,EAAS18E,UAAY28E,EAAa38E,UAOlC,SAAS+8E,IACP,OAAO,IAAIC,CACb,CACA,MAAMA,UAAqBnF,EACzB93E,cACEm0E,MAAM,CACJxqD,KAAM,SACNsrD,MAAMl3E,GAEJ,OADIA,aAAiBwB,SAAQxB,EAAQA,EAAMqqC,WACnB,kBAAVrqC,IAVRA,IAASA,IAAUA,EAUYm/E,CAAQn/E,EAC/C,IAEFyrB,KAAKgvD,cAAa,KAChBhvD,KAAKnK,WAAU,CAACthB,EAAOo+E,EAAMruC,KAC3B,IAAKA,EAAImoC,KAAK8C,OAAQ,OAAOh7E,EAC7B,IAAIirD,EAASjrD,EACb,GAAsB,kBAAXirD,EAAqB,CAE9B,GADAA,EAASA,EAAOt+C,QAAQ,MAAO,IAChB,KAAXs+C,EAAe,OAAO3pD,IAE1B2pD,GAAUA,CACZ,CAIA,OAAIlb,EAAIwrC,OAAOtwB,IAAsB,OAAXA,EAAwBA,EAC3C9yC,WAAW8yC,EAAO,GACzB,GAEN,CACA7vC,IAAIA,EAAKwwB,EAAUrqC,EAAO6Z,KACxB,OAAOqQ,KAAKjZ,KAAK,CACfo5B,UACArrC,KAAM,MACNi9E,WAAW,EACXrvC,OAAQ,CACN/yB,OAEF68D,YAAY,EACZzlE,KAAKxS,GACH,OAAOA,GAASyrB,KAAKZ,QAAQzP,EAC/B,GAEJ,CACArD,IAAIA,EAAK6zB,EAAUrqC,EAAOwW,KACxB,OAAO0T,KAAKjZ,KAAK,CACfo5B,UACArrC,KAAM,MACNi9E,WAAW,EACXrvC,OAAQ,CACNp2B,OAEFkgE,YAAY,EACZzlE,KAAKxS,GACH,OAAOA,GAASyrB,KAAKZ,QAAQ9S,EAC/B,GAEJ,CACAy9D,SAAS4J,EAAMxzC,EAAUrqC,EAAOi0E,UAC9B,OAAO/pD,KAAKjZ,KAAK,CACfo5B,UACArrC,KAAM,MACNi9E,WAAW,EACXrvC,OAAQ,CACNixC,QAEFnH,YAAY,EACZzlE,KAAKxS,GACH,OAAOA,EAAQyrB,KAAKZ,QAAQu0D,EAC9B,GAEJ,CACA3J,SAAS4J,EAAMzzC,EAAUrqC,EAAOk0E,UAC9B,OAAOhqD,KAAKjZ,KAAK,CACfo5B,UACArrC,KAAM,MACNi9E,WAAW,EACXrvC,OAAQ,CACNkxC,QAEFpH,YAAY,EACZzlE,KAAKxS,GACH,OAAOA,EAAQyrB,KAAKZ,QAAQw0D,EAC9B,GAEJ,CACA3J,SAAS3zB,EAAMxgD,EAAOm0E,UACpB,OAAOjqD,KAAKgqD,SAAS,EAAG1zB,EAC1B,CACA4zB,SAAS5zB,EAAMxgD,EAAOo0E,UACpB,OAAOlqD,KAAK+pD,SAAS,EAAGzzB,EAC1B,CACA6zB,QAAQhqC,EAAUrqC,EAAOq0E,SACvB,OAAOnqD,KAAKjZ,KAAK,CACfjS,KAAM,UACNqrC,UACAqsC,YAAY,EACZzlE,KAAMymB,GAAOz3B,OAAO89E,UAAUrmD,IAElC,CACAsmD,WACE,OAAO9zD,KAAKnK,WAAUthB,GAAU83E,EAAS93E,GAAqBA,EAAJ,EAARA,GACpD,CACAiJ,MAAM0vD,GACJ,IAAI6mB,EACJ,IAAIC,EAAQ,CAAC,OAAQ,QAAS,QAAS,SAIvC,GAAe,WAHf9mB,GAAgC,OAArB6mB,EAAU7mB,QAAkB,EAAS6mB,EAAQp1E,gBAAkB,SAGlD,OAAOqhB,KAAK8zD,WACpC,IAA6C,IAAzCE,EAAMhyE,QAAQkrD,EAAOvuD,eAAuB,MAAM,IAAIjJ,UAAU,uCAAyCs+E,EAAMzqE,KAAK,OACxH,OAAOyW,KAAKnK,WAAUthB,GAAU83E,EAAS93E,GAA+BA,EAAtB0B,KAAKi3D,GAAQ34D,IACjE,EAEFi/E,EAAS/8E,UAAYg9E,EAAah9E,UAgBlC,IAAIw9E,EAAS,kJA8Bb,IAAIC,EAAc,IAAIt9E,KAAK,IAE3B,SAASu9E,IACP,OAAO,IAAIC,CACb,CACA,MAAMA,UAAmB9F,EACvB93E,cACEm0E,MAAM,CACJxqD,KAAM,OACNsrD,MAAMhrC,GACJ,OATKpqC,EASSoqC,EATsC,kBAAxChsC,OAAOgC,UAAUI,SAASC,KAAKT,KAStBL,MAAMyqC,EAAEvpC,WATxBb,KAUP,IAEF2pB,KAAKgvD,cAAa,KAChBhvD,KAAKnK,WAAU,CAACthB,EAAOo+E,EAAMruC,KAGtBA,EAAImoC,KAAK8C,QAAUjrC,EAAIwrC,OAAOv7E,IAAoB,OAAVA,EAAuBA,GACpEA,EA/CR,SAAsBkD,GACpB,IAEEG,EACAy8E,EAHEC,EAAc,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,IACpCC,EAAgB,EAGlB,GAAIF,EAASJ,EAAO3oE,KAAK7T,GAAO,CAE9B,IAAK,IAAWuH,EAAPR,EAAI,EAAMQ,EAAIs1E,EAAY91E,KAAMA,EAAG61E,EAAOr1E,IAAMq1E,EAAOr1E,IAAM,EAGtEq1E,EAAO,KAAOA,EAAO,IAAM,GAAK,EAChCA,EAAO,IAAMA,EAAO,IAAM,EAG1BA,EAAO,GAAKA,EAAO,GAAKl5E,OAAOk5E,EAAO,IAAIhpE,OAAO,EAAG,GAAK,OAGtCtH,IAAdswE,EAAO,IAAkC,KAAdA,EAAO,SAA6BtwE,IAAdswE,EAAO,IAAkC,KAAdA,EAAO,IACpE,MAAdA,EAAO,SAA4BtwE,IAAdswE,EAAO,KAC9BE,EAA6B,GAAbF,EAAO,IAAWA,EAAO,IACvB,MAAdA,EAAO,KAAYE,EAAgB,EAAIA,IAE7C38E,EAAYhB,KAAKyK,IAAIgzE,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAKE,EAAeF,EAAO,GAAIA,EAAO,KALZz8E,GAAa,IAAIhB,KAAKy9E,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAOrM,MAAOz8E,EAAYhB,KAAKqmC,MAAQrmC,KAAKqmC,MAAMxlC,GAAQ5B,IACnD,OAAO+B,CACT,CAqBgB48E,CAAajgF,GAGbyB,MAAMzB,GAA2B6/E,EAAWK,aAA7B,IAAI79E,KAAKrC,KAChC,GAEN,CACAmgF,aAAazmD,EAAKn5B,GAChB,IAAImwC,EACJ,GAAK8mC,EAAUW,MAAMz+C,GAKnBgX,EAAQhX,MALiB,CACzB,IAAI34B,EAAO0qB,KAAK1qB,KAAK24B,GACrB,IAAKjO,KAAK+uD,WAAWz5E,GAAO,MAAM,IAAII,UAAU,KAAKZ,kEACrDmwC,EAAQ3vC,CACV,CAGA,OAAO2vC,CACT,CACAt1B,IAAIA,EAAKwwB,EAAU1oC,EAAKkY,KACtB,IAAIg4B,EAAQ3nB,KAAK00D,aAAa/kE,EAAK,OACnC,OAAOqQ,KAAKjZ,KAAK,CACfo5B,UACArrC,KAAM,MACNi9E,WAAW,EACXrvC,OAAQ,CACN/yB,OAEF68D,YAAY,EACZzlE,KAAKxS,GACH,OAAOA,GAASyrB,KAAKZ,QAAQuoB,EAC/B,GAEJ,CACAr7B,IAAIA,EAAK6zB,EAAU1oC,EAAK6U,KACtB,IAAIq7B,EAAQ3nB,KAAK00D,aAAapoE,EAAK,OACnC,OAAO0T,KAAKjZ,KAAK,CACfo5B,UACArrC,KAAM,MACNi9E,WAAW,EACXrvC,OAAQ,CACNp2B,OAEFkgE,YAAY,EACZzlE,KAAKxS,GACH,OAAOA,GAASyrB,KAAKZ,QAAQuoB,EAC/B,GAEJ,EAwBF,SAAS7gC,EAAU00B,EAAK5mC,GACtB,IAAIulC,EAAMw6C,IAQV,OAPAn5C,EAAIoT,MAAK,CAACjoC,EAAKiuE,KACb,IAAIC,EACJ,GAA8B,OAAzBA,EAAYjgF,EAAIK,OAAiB4/E,EAAU3nE,SAASvG,GAEvD,OADAwzB,EAAMy6C,GACC,CACT,IAEKz6C,CACT,CACA,SAAS26C,EAAez3C,GACtB,MAAO,CAAChiC,EAAGuD,IACFkI,EAAUu2B,EAAMhiC,GAAKyL,EAAUu2B,EAAMz+B,EAEhD,CArCAw1E,EAAWK,aAAeP,EAC1BC,EAAS19E,UAAY29E,EAAW39E,UAChC09E,EAASM,aAAeP,EAqCxB,MAAMa,GAAY,CAACxgF,EAAOq9B,EAAG0S,KAC3B,GAAqB,kBAAV/vC,EACT,OAAOA,EAET,IAAIirD,EAASjrD,EACb,IACEirD,EAASvjB,KAAKgB,MAAM1oC,EAGtB,CAFE,MAAOK,GAET,CACA,OAAO0vC,EAAIwrC,OAAOtwB,GAAUA,EAASjrD,CAAK,EAI5C,SAASygF,GAAY/wC,GACnB,GAAI,WAAYA,EAAQ,CACtB,MAAMgxC,EAAU,CAAC,EACjB,IAAK,MAAOtuE,EAAKuuE,KAAgBzgF,OAAO4pC,QAAQ4F,EAAO6J,QACrDmnC,EAAQtuE,GAAOquE,GAAYE,GAE7B,OAAOjxC,EAAOkxC,UAAUF,EAC1B,CACA,GAAoB,UAAhBhxC,EAAO9jB,KAAkB,CAC3B,MAAMi1D,EAAYnxC,EAAOqrC,WAEzB,OADI8F,EAAU1H,YAAW0H,EAAU1H,UAAYsH,GAAYI,EAAU1H,YAC9D0H,CACT,CACA,MAAoB,UAAhBnxC,EAAO9jB,KACF8jB,EAAOqrC,WAAWtB,MAAM,CAC7BL,MAAO1pC,EAAOwoC,KAAKkB,MAAMxkE,IAAI6rE,MAG7B,aAAc/wC,EACTA,EAAOqrC,WAETrrC,CACT,CAQA,IAAI1H,GAAWlmC,GAA+C,oBAAxC5B,OAAOgC,UAAUI,SAASC,KAAKT,GAKrD,MAAMg/E,GAAcP,EAAe,IACnC,SAASQ,GAAS7I,GAChB,OAAO,IAAI8I,GAAa9I,EAC1B,CACA,MAAM8I,WAAqBjH,EACzB93E,YAAYi2E,GACV9B,MAAM,CACJxqD,KAAM,SACNsrD,MAAMl3E,GACJ,OAAOgoC,GAAShoC,IAA2B,oBAAVA,CACnC,IAEFyrB,KAAK8tB,OAASr5C,OAAO+jC,OAAO,MAC5BxY,KAAKw1D,YAAcH,GACnBr1D,KAAKy1D,OAAS,GACdz1D,KAAK01D,eAAiB,GACtB11D,KAAKgvD,cAAa,KACZvC,GACFzsD,KAAK21D,MAAMlJ,EACb,GAEJ,CACA+D,MAAMxuC,EAAQ1oC,EAAU,CAAC,GACvB,IAAIs8E,EACJ,IAAIrhF,EAAQo2E,MAAM6F,MAAMxuC,EAAQ1oC,GAGhC,QAAcyK,IAAVxP,EAAqB,OAAOyrB,KAAK4wD,WAAWt3E,GAChD,IAAK0mB,KAAK+uD,WAAWx6E,GAAQ,OAAOA,EACpC,IAAIu5C,EAAS9tB,KAAK8tB,OACdohC,EAA0D,OAAjD0G,EAAwBt8E,EAAQu8E,cAAwBD,EAAwB51D,KAAKysD,KAAKpC,UACnG1qD,EAAQ,GAAGtd,OAAO2d,KAAKy1D,OAAQhhF,OAAO4oC,KAAK9oC,GAAOod,QAAO8uB,IAAMzgB,KAAKy1D,OAAOvoE,SAASuzB,MACpFq1C,EAAoB,CAAC,EACrBC,EAAethF,OAAOC,OAAO,CAAC,EAAG4E,EAAS,CAC5C0gB,OAAQ87D,EACRE,aAAc18E,EAAQ08E,eAAgB,IAEpCC,GAAY,EAChB,IAAK,MAAMh6D,KAAQ0D,EAAO,CACxB,IAAI4jB,EAAQuK,EAAO7xB,GACfi6D,EAAUj6D,KAAQ1nB,EACtB,GAAIgvC,EAAO,CACT,IAAI4yC,EACAC,EAAa7hF,EAAM0nB,GAGvB85D,EAAa9gF,MAAQqE,EAAQrE,KAAO,GAAGqE,EAAQrE,QAAU,IAAMgnB,EAC/DsnB,EAAQA,EAAMnkB,QAAQ,CACpB7qB,MAAO6hF,EACPj5E,QAAS7D,EAAQ6D,QACjB6c,OAAQ87D,IAEV,IAAIO,EAAY9yC,aAAiB+qC,EAAS/qC,EAAMkpC,UAAO1oE,EACnDorE,EAAsB,MAAbkH,OAAoB,EAASA,EAAUlH,OACpD,GAAiB,MAAbkH,GAAqBA,EAAUnH,MAAO,CACxC+G,EAAYA,GAAah6D,KAAQ1nB,EACjC,QACF,CACA4hF,EAAc78E,EAAQ08E,cAAiB7G,EAEC56E,EAAM0nB,GAA9CsnB,EAAMjuC,KAAKf,EAAM0nB,GAAO85D,QACLhyE,IAAfoyE,IACFL,EAAkB75D,GAAQk6D,EAE9B,MAAWD,IAAWhH,IACpB4G,EAAkB75D,GAAQ1nB,EAAM0nB,IAE9Bi6D,IAAWj6D,KAAQ65D,GAAqBA,EAAkB75D,KAAU1nB,EAAM0nB,KAC5Eg6D,GAAY,EAEhB,CACA,OAAOA,EAAYH,EAAoBvhF,CACzC,CACAswC,UAAU7C,EAAQ1oC,EAAU,CAAC,EAAGizE,EAAOlyD,GACrC,IAAI,KACF+B,EAAO,GAAE,cACTmtD,EAAgBvnC,EAAM,UACtBotC,EAAYpvD,KAAKysD,KAAK2C,WACpB91E,EACJA,EAAQ8iB,KAAO,CAAC,CACd6nB,OAAQjkB,KACRzrB,MAAOg1E,MACHntD,GAGN9iB,EAAQ08E,cAAe,EACvB18E,EAAQiwE,cAAgBA,EACxBoB,MAAM9lC,UAAU7C,EAAQ1oC,EAASizE,GAAO,CAAC+J,EAAc/hF,KACrD,IAAK66E,IAAc7yC,GAAShoC,GAE1B,YADA8lB,EAAKi8D,EAAc/hF,GAGrBg1E,EAAgBA,GAAiBh1E,EACjC,IAAIg6E,EAAQ,GACZ,IAAK,IAAI5nE,KAAOqZ,KAAKy1D,OAAQ,CAC3B,IAAIlyC,EAAQvjB,KAAK8tB,OAAOnnC,GACnB48B,IAASwoC,EAAUW,MAAMnpC,IAG9BgrC,EAAMl5E,KAAKkuC,EAAM6tC,aAAa,CAC5B93E,UACAqN,MACAqT,OAAQzlB,EACRq5E,WAAYt0E,EAAQrE,KACpBo8E,eAAgB9H,IAEpB,CACAvpD,KAAK8wD,SAAS,CACZvC,QACAh6E,QACAg1E,gBACAjwE,WACCizE,GAAOgK,IACRl8D,EAAKk8D,EAAYhkE,KAAKyN,KAAKw1D,aAAanzE,OAAOi0E,GAAe/hF,EAAM,GACpE,GAEN,CACAy5E,MAAMvB,GACJ,MAAMpyD,EAAOswD,MAAMqD,MAAMvB,GAKzB,OAJApyD,EAAKyzB,OAASr5C,OAAOC,OAAO,CAAC,EAAGsrB,KAAK8tB,QACrCzzB,EAAKo7D,OAASz1D,KAAKy1D,OACnBp7D,EAAKq7D,eAAiB11D,KAAK01D,eAC3Br7D,EAAKm7D,YAAcx1D,KAAKw1D,YACjBn7D,CACT,CACAhY,OAAO4hC,GACL,IAAI5pB,EAAOswD,MAAMtoE,OAAO4hC,GACpBuyC,EAAan8D,EAAKyzB,OACtB,IAAK,IAAKvK,EAAOkzC,KAAgBhiF,OAAO4pC,QAAQre,KAAK8tB,QAAS,CAC5D,MAAMp1B,EAAS89D,EAAWjzC,GAC1BizC,EAAWjzC,QAAoBx/B,IAAX2U,EAAuB+9D,EAAc/9D,CAC3D,CACA,OAAO2B,EAAK20D,cAAanzE,GAEzBA,EAAEs5E,UAAUqB,EAAY,IAAIx2D,KAAK01D,kBAAmBzxC,EAAOyxC,kBAC7D,CACAjE,YAAYn4E,GACV,GAAI,YAAa0mB,KAAKysD,KACpB,OAAO9B,MAAM8G,YAAYn4E,GAI3B,IAAK0mB,KAAKy1D,OAAOzgF,OACf,OAEF,IAAI0hF,EAAM,CAAC,EAaX,OAZA12D,KAAKy1D,OAAOhsD,SAAQ9iB,IAClB,IAAIgwE,EACJ,MAAMpzC,EAAQvjB,KAAK8tB,OAAOnnC,GAC1B,IAAIovE,EAAez8E,EACmB,OAAjCq9E,EAAgBZ,IAAyBY,EAAcpiF,QAC1DwhF,EAAethF,OAAOC,OAAO,CAAC,EAAGqhF,EAAc,CAC7C/7D,OAAQ+7D,EAAaxhF,MACrBA,MAAOwhF,EAAaxhF,MAAMoS,MAG9B+vE,EAAI/vE,GAAO48B,GAAS,eAAgBA,EAAQA,EAAMqtC,WAAWmF,QAAgBhyE,CAAS,IAEjF2yE,CACT,CACAvB,UAAUQ,EAAOiB,GACf,IAAIv8D,EAAO2F,KAAKguD,QAMhB,OALA3zD,EAAKyzB,OAAS6nC,EACdt7D,EAAKo7D,OAtPT,SAAoB3nC,EAAQ8oC,EAAgB,IAC1C,IAAIz7C,EAAQ,GACRD,EAAQ,IAAI3Y,IACZs0D,EAAW,IAAIt0D,IAAIq0D,EAAcztE,KAAI,EAAE9N,EAAGuD,KAAO,GAAGvD,KAAKuD,OAC7D,SAASk4E,EAAQC,EAASpwE,GACxB,IAAI4N,GAAO,IAAAnJ,OAAM2rE,GAAS,GAC1B77C,EAAMnS,IAAIxU,GACLsiE,EAASn7C,IAAI,GAAG/0B,KAAO4N,MAAS4mB,EAAM9lC,KAAK,CAACsR,EAAK4N,GACxD,CACA,IAAK,MAAM5N,KAAOlS,OAAO4oC,KAAKyQ,GAAS,CACrC,IAAIv5C,EAAQu5C,EAAOnnC,GACnBu0B,EAAMnS,IAAIpiB,GACNolE,EAAUW,MAAMn4E,IAAUA,EAAM03E,UAAW6K,EAAQviF,EAAMU,KAAM0R,GAAcwkE,EAAS52E,IAAU,SAAUA,GAAOA,EAAMg3C,KAAK9hB,SAAQx0B,GAAQ6hF,EAAQ7hF,EAAM0R,IAChK,CACA,OAAO,UAAeC,MAAMwV,KAAK8e,GAAQC,GAAO67C,SAClD,CAuOkBC,CAAWtB,EAAOiB,GAChCv8D,EAAKm7D,YAAcV,EAAergF,OAAO4oC,KAAKs4C,IAE1CiB,IAAev8D,EAAKq7D,eAAiBkB,GAClCv8D,CACT,CACAs7D,MAAMuB,EAAWL,EAAW,IAC1B,OAAO72D,KAAKguD,QAAQgB,cAAa30D,IAC/B,IAAI8gB,EAAQ9gB,EAAKq7D,eAOjB,OANImB,EAAS7hF,SACN4R,MAAMC,QAAQgwE,EAAS,MAAKA,EAAW,CAACA,IAC7C17C,EAAQ,IAAI9gB,EAAKq7D,kBAAmBmB,IAI/Bx8D,EAAK86D,UAAU1gF,OAAOC,OAAO2lB,EAAKyzB,OAAQopC,GAAY/7C,EAAM,GAEvE,CACA85C,UACE,MAAMA,EAAU,CAAC,EACjB,IAAK,MAAOtuE,EAAKs9B,KAAWxvC,OAAO4pC,QAAQre,KAAK8tB,QAC9CmnC,EAAQtuE,GAAO,aAAcs9B,GAAUA,EAAOqrC,oBAAoBjvD,SAAW4jB,EAAOqrC,WAAarrC,EAEnG,OAAOjkB,KAAKm1D,UAAUF,EACxB,CACAD,cAEE,OADaA,GAAYh1D,KAE3B,CACAm3D,KAAK95C,GACH,MAAM+5C,EAAS,CAAC,EAChB,IAAK,MAAMzwE,KAAO02B,EACZrd,KAAK8tB,OAAOnnC,KAAMywE,EAAOzwE,GAAOqZ,KAAK8tB,OAAOnnC,IAElD,OAAOqZ,KAAKm1D,UAAUiC,EACxB,CACAC,KAAKh6C,GACH,MAAMyQ,EAASr5C,OAAOC,OAAO,CAAC,EAAGsrB,KAAK8tB,QACtC,IAAK,MAAMnnC,KAAO02B,SACTyQ,EAAOnnC,GAEhB,OAAOqZ,KAAKm1D,UAAUrnC,EACxB,CACA1xB,KAAKA,EAAMD,EAAIq2D,GACb,IAAI8E,GAAa,IAAAz9C,QAAOzd,GAAM,GAC9B,OAAO4D,KAAKnK,WAAUxf,IACpB,IAAKA,EAAK,OAAOA,EACjB,IAAIkhF,EAASlhF,EAMb,MApOU,EAACA,EAAKqK,KACpB,MAAMzL,EAAO,KAAI,IAAAikC,eAAcx4B,IAC/B,GAAoB,IAAhBzL,EAAKD,OAAc,OAAOC,EAAK,KAAMoB,EACzC,IAAIkqE,EAAOtrE,EAAKuiF,MACZx9D,GAAS,IAAA6f,SAAO,IAAAtwB,MAAKtU,IAAO,EAAnB,CAAyBoB,GACtC,SAAU2jB,KAAUumD,KAAQvmD,GAAO,EA0N3By9D,CAAQphF,EAAK+lB,KACfm7D,EAAS9iF,OAAOC,OAAO,CAAC,EAAG2B,GACtBm8E,UAAc+E,EAAOn7D,GAC1Bm7D,EAAOp7D,GAAMm7D,EAAWjhF,IAEnBkhF,CAAM,GAEjB,CAGAxhC,OACE,OAAO/1B,KAAKnK,UAAUk/D,GACxB,CACA1K,UAAUqN,GAAU,EAAMv3C,EAAU/4B,EAAOijE,WAClB,mBAAZqN,IACTv3C,EAAUu3C,EACVA,GAAU,GAEZ,IAAIr9D,EAAO2F,KAAKjZ,KAAK,CACnBjS,KAAM,YACNi9E,WAAW,EACX5xC,QAASA,EACTp5B,KAAKxS,GACH,GAAa,MAATA,EAAe,OAAO,EAC1B,MAAMojF,EA/Od,SAAiBrzC,EAAK/vC,GACpB,IAAIqjF,EAAQnjF,OAAO4oC,KAAKiH,EAAIwJ,QAC5B,OAAOr5C,OAAO4oC,KAAK9oC,GAAOod,QAAOhL,IAA+B,IAAxBixE,EAAM51E,QAAQ2E,IACxD,CA4O4BkxE,CAAQ73D,KAAKikB,OAAQ1vC,GACzC,OAAQmjF,GAAkC,IAAvBC,EAAY3iF,QAAgBgrB,KAAK2sD,YAAY,CAC9DjqC,OAAQ,CACNm1C,QAASF,EAAYpuE,KAAK,QAGhC,IAGF,OADA8Q,EAAKoyD,KAAKpC,UAAYqN,EACfr9D,CACT,CACAw9D,QAAQC,GAAQ,EAAM33C,EAAU/4B,EAAOijE,WACrC,OAAOrqD,KAAKqqD,WAAWyN,EAAO33C,EAChC,CACA43C,cAAchkE,GACZ,OAAOiM,KAAKnK,WAAUxf,IACpB,IAAKA,EAAK,OAAOA,EACjB,MAAMqN,EAAS,CAAC,EAChB,IAAK,MAAMiD,KAAOlS,OAAO4oC,KAAKhnC,GAAMqN,EAAOqQ,EAAGpN,IAAQtQ,EAAIsQ,GAC1D,OAAOjD,CAAM,GAEjB,CACAi3B,YACE,OAAO3a,KAAK+3D,cAAc,EAAAp9C,UAC5B,CACAE,YACE,OAAO7a,KAAK+3D,cAAc,EAAAl9C,UAC5B,CACAm9C,eACE,OAAOh4D,KAAK+3D,eAAcpxE,IAAO,IAAAk0B,WAAUl0B,GAAKnL,eAClD,CACA2wE,SAAS7yE,GACP,IAAIklB,EAAOmsD,MAAMwB,SAAS7yE,GAC1BklB,EAAKsvB,OAAS,CAAC,EACf,IAAK,MAAOnnC,EAAKpS,KAAUE,OAAO4pC,QAAQre,KAAK8tB,QAAS,CACtD,IAAImqC,EACJ,IAAIlC,EAAez8E,EACoB,OAAlC2+E,EAAiBlC,IAAyBkC,EAAe1jF,QAC5DwhF,EAAethF,OAAOC,OAAO,CAAC,EAAGqhF,EAAc,CAC7C/7D,OAAQ+7D,EAAaxhF,MACrBA,MAAOwhF,EAAaxhF,MAAMoS,MAG9B6X,EAAKsvB,OAAOnnC,GAAOpS,EAAM43E,SAAS4J,EACpC,CACA,OAAOv3D,CACT,EAEF82D,GAAS7+E,UAAY8+E,GAAa9+E,UAkWlC,SAASyhF,GAAUloB,GACjBv7D,OAAO4oC,KAAK2yB,GAAQvmC,SAAQtJ,IAE1B1rB,OAAO4oC,KAAK2yB,EAAO7vC,IAAOsJ,SAAQyjC,IAEhCnzD,EAAOomB,GAAM+sC,GAAU8C,EAAO7vC,GAAM+sC,EAAO,GAC3C,GAEN,uICjuEA,SAAS,EAAEpsB,EAAEld,KAAKvoB,GAAG,GAAGylC,KAAKld,EAAE,CAAC,IAAIvlB,EAAEulB,EAAEkd,GAAG,MAAiB,mBAAHziC,EAAcA,KAAKhD,GAAGgD,CAAC,CAAC,IAAIuB,EAAE,IAAIvI,MAAM,oBAAoBypC,kEAAkErsC,OAAO4oC,KAAKzZ,GAAGza,KAAI9K,GAAG,IAAIA,OAAMkL,KAAK,UAAU,MAAMlS,MAAMwzE,mBAAmBxzE,MAAMwzE,kBAAkBjrE,EAAE,GAAGA,CAAC,CCA1M,IAAI,EAAE,CAACu4E,IAAIA,EAAEA,EAAEC,KAAK,GAAG,OAAOD,EAAEA,EAAEE,eAAe,GAAG,iBAAiBF,EAAEA,EAAEG,OAAO,GAAG,SAASH,GAAtF,CAA0F,GAAG,CAAC,GAAGp8E,EAAE,CAACsC,IAAIA,EAAEA,EAAEk6E,QAAQ,GAAG,UAAUl6E,EAAEA,EAAEm6E,OAAO,GAAG,SAASn6E,GAArD,CAAyDtC,GAAG,CAAC,GAAG,SAAS,GAAG08E,QAAQ33C,GAAE,EAAG43C,SAAS94E,EAAE,EAAE+4E,SAASt6E,EAAEu6E,WAAWT,KAAK35E,IAAI,IAAInD,EAAE,IAAIuoB,EAAEi1D,EAAEV,EAAE95E,GAAGi5B,EAAE7iC,OAAOC,OAAO8J,EAAE,CAACmhB,MAAMiE,IAAI,GAAGkd,GAAK,EAAFlhC,GAAKgkB,EAAE6mD,OAAO,OAAO5vE,EAAEy8B,GAAG,GAAK,EAAF13B,EAAI,CAAkC,OAAO,EAAnB,OAAdvE,EAAEuoB,EAAE+6C,UAAgBtjE,EAAE,EAAE,EAAa,CAAC,IAAM,OAAO,IAAI,EAAE,IAAM,OAAOR,EAAE,IAAI2D,EAAEmhB,MAAM,IAAIiE,EAAEk1D,QAAO,EAAG1xD,MAAM,CAACi0C,QAAQ,UAAU,GAAG,CAAC,OAAOxgE,EAAEy8B,EAAE,CAAC,SAASz8B,GAAG8kB,MAAMmhB,EAAE/d,MAAMnjB,EAAEiiC,MAAMxjC,EAAE83D,KAAKgiB,EAAErjF,KAAK0J,IAAI,IAAI7C,EAAEF,EAAE,IAAIowC,GAAGjoB,KAAK0T,GAG2N,SAAWwJ,EAAElhC,EAAE,IAAI,IAAIvB,EAAE5J,OAAOC,OAAO,CAAC,EAAEosC,GAAG,IAAI,IAAIq3C,KAAKv4E,EAAEu4E,KAAK95E,UAAUA,EAAE85E,GAAG,OAAO95E,CAAC,CAHhTyB,CAAEghC,EAAE,CAAC,UAAU,WAAWzlC,EAAiB,OAAdM,EAAE0C,EAAE6hB,cAAe,EAAOvkB,EAAE7E,KAAKuH,EAAE85E,GAAG/8E,EAAE,CAAC,EAAE,GAAG+8E,EAAE,CAAC,IAAIn7E,GAAE,EAAGuB,EAAE,GAAG,IAAI,IAAImC,EAAEmuC,KAAKp6C,OAAO4pC,QAAQ85C,GAAa,kBAAHtpC,IAAe7xC,GAAE,IAAQ,IAAJ6xC,GAAQtwC,EAAElJ,KAAKqL,GAAG1D,IAAI5B,EAAE,yBAAyBmD,EAAEgL,KAAK,KAAK,CAAC,GAAO,aAAJqa,EAAe,CAAC,GAAGvoB,EAAE,EAAK,MAAHA,EAAQA,EAAE,IAAI5G,OAAO4oC,KAAK/F,GAAGtiC,OAAO,GAAGP,OAAO4oC,KAAKz9B,GAAG5K,OAAO,EAAE,CAAC,IAAIgI,KAAKuB,GAAM,MAAHlD,EAAQA,EAAE,GAAG,IAGzB,SAAWylC,GAAG,OAAU,MAAHA,IAA0B,iBAARA,EAAE3gB,MAA+B,iBAAR2gB,EAAE3gB,MAA+B,mBAAR2gB,EAAE3gB,KAAgB,CAH9EsgB,CAAEzjC,IAAIuB,EAAEvJ,OAAO,EAAE,MAAM,IAAIqC,MAAM,CAAC,+BAA+B,GAAG,0BAA0BmH,kCAAkC,sDAAsD/J,OAAO4oC,KAAK/F,GAAGj1B,OAAO5N,OAAO4oC,KAAKz9B,IAAIuJ,KAAItN,GAAGA,EAAEinD,SAAQnxC,QAAO,CAAC9V,EAAE66C,EAAE35C,IAAIA,EAAEiF,QAAQnG,KAAK66C,IAAGnkC,MAAK,CAAC1W,EAAE66C,IAAI76C,EAAEk9E,cAAcriC,KAAIvtC,KAAItN,GAAG,OAAOA,MAAK0N,KAAK,MAChxC,GAAG,iCAAiC,CAAC,8FAA8F,4FAA4FJ,KAAItN,GAAG,OAAOA,MAAK0N,KAAK,OACtPA,KAAK,OACL,IAAI7I,EAAEm4E,EAAe,OAAZp9E,EAAEuB,EAAE2iB,OAAalkB,EAAE,CAAC,EAAE67B,GAAGuX,GAAE,QAAE7xC,EAAE0D,GAAG,IAAI,IAAI7E,KAAK6E,EAAE7E,EAAEuqB,WAAW,QAAQyoB,EAAElvB,QAAQkvB,EAAElvB,MAAM,CAAC,GAAGkvB,EAAElvB,MAAM9jB,GAAG6E,EAAE7E,IAAI,OAAOgzC,CAAC,CAAC,OAAOjoC,MAAMC,QAAQxL,IAAe,IAAXA,EAAErG,OAAWqG,EAAE,GAAGA,CAAC,CAAC,OAAO,OAAEuoB,EAAEnvB,OAAOC,OAAO,CAAC,EAAE4iC,EAAEl8B,GAAG,CAAC8kB,QAAQ,IAAI7kB,GAAG,CAAC,SAAS,EAAEylC,GAAG,OAAOA,EAAEk4C,SAAQp5E,GAAGA,EAAEugB,OAAO,KAAE,EAAEvgB,EAAE4xB,UAAU,CAAC5xB,IAAG,CAAC,SAASi5E,KAAK/3C,GAAS,GAAc,IAAXA,EAAE9rC,OAAW,MAAM,CAAC,EAAE,GAAc,IAAX8rC,EAAE9rC,OAAW,OAAO8rC,EAAE,GAAG,IAAIlhC,EAAE,CAAC,EAAEvB,EAAE,CAAC,EAAE,IAAI,IAAIG,KAAKsiC,EAAE,IAAI,IAAIld,KAAKplB,EAAEolB,EAAEwC,WAAW,OAAoB,mBAAN5nB,EAAEolB,IAA0B,MAAPvlB,EAAEulB,KAAYvlB,EAAEulB,GAAG,IAAIvlB,EAAEulB,GAAGvuB,KAAKmJ,EAAEolB,KAAKhkB,EAAEgkB,GAAGplB,EAAEolB,GAAG,GAAGhkB,EAAEyc,UAAUzc,EAAE,iBAAiB,OAAOnL,OAAOC,OAAOkL,EAAEnL,OAAOwkF,YAAYxkF,OAAO4oC,KAAKh/B,GAAG8K,KAAI3K,GAAG,CAACA,OAAE,OAAW,IAAI,IAAIA,KAAKH,EAAE5J,OAAOC,OAAOkL,EAAE,CAAC,CAACpB,GAAGolB,KAAK0T,GAAG,IAAIj8B,EAAEgD,EAAEG,GAAG,IAAI,IAAIpD,KAAKC,EAAE,CAAC,GAAGuoB,aAAaqa,OAAOra,EAAEs1D,iBAAiB,OAAO99E,EAAEwoB,KAAK0T,EAAE,CAAC,IAAI,OAAO13B,CAAC,CCH1vB,IAAIu4E,EAAE,CAACr3C,IAAIA,EAAEq4C,MAAM,IAAIr4C,EAAEs4C,MAAM,QAAQt4C,EAAEu4C,OAAO,SAASv4C,EAAEw4C,UAAU,YAAYx4C,EAAEy4C,OAAO,SAASz4C,EAAE04C,UAAU,YAAY14C,EAAE24C,QAAQ,UAAU34C,EAAE44C,WAAW,aAAa54C,EAAE64C,UAAU,YAAY74C,EAAE84C,KAAK,OAAO94C,EAAE+4C,IAAI,MAAM/4C,EAAEg5C,OAAO,SAASh5C,EAAEi5C,SAAS,WAAWj5C,EAAEk5C,IAAI,MAAMl5C,GAAzQ,CAA6Qq3C,GAAG,CAAC,GCAvR,IAAI95E,EAAE,EAAyB,SAASuB,IAAI,QAAfvB,CAAyB,CCA4B,IAAI,EAAE,CAACA,IAAIA,EAAEA,EAAE+5E,KAAK,GAAG,OAAO/5E,EAAEA,EAAE47E,UAAU,GAAG,YAAY57E,EAAEA,EAAEm6E,OAAO,GAAG,SAASn6E,GAA5E,CAAgF,GAAG,CAAC,GAAG,IAAI,GAAE,QAAE,CAACvJ,KAAK,SAAS6qB,MAAM,CAACksB,GAAG,CAAC1rB,KAAK,CAAC1rB,OAAO0G,QAAQ+kB,QAAQ,OAAOw4D,SAAS,CAACv4D,KAAKpqB,OAAOmqB,QAAQ,IAAIgU,MAAM4M,GAAGe,MAAMjiC,EAAEmjB,MAAM3nB,IAAI,MAAM,KAAK,IAAIs9E,SAASr6E,KAAK85E,GAAGr3C,EAA2O,OAAO,EAAE,CAAC63C,SAAjP,CAAC,cAAsB,KAAL,EAAFt6E,SAAY,EAAO+oB,MAAM,CAACtP,SAAS,QAAQ/J,IAAI,EAAEG,KAAK,EAAE1R,MAAM,EAAEkR,OAAO,EAAEI,QAAQ,EAAEosE,QAAQ,EAAEroE,SAAS,SAASsoE,KAAK,mBAAmBC,WAAW,SAASC,YAAY,OAAe,KAAL,EAAFh8E,IAAkB,KAAL,EAAFA,IAAU,CAACg9D,QAAQ,UAA+Bud,WAAWT,EAAEhiB,KAAK,CAAC,EAAEpzC,MAAM3nB,EAAEymC,MAAMjiC,EAAE9K,KAAK,UAAS,CAAE,ICAvoB,SAAS,EAAE8uB,GAAG,IAAI0T,EAAE,OAAU,MAAH1T,GAAkB,MAATA,EAAErvB,MAAY,KAAsB,OAAhB+iC,EAAE1T,EAAErvB,MAAM+wB,KAAWgS,EAAE1T,EAAErvB,KAAK,CCAtF,IAAI,EAAEE,OAAOymB,eAA2G,EAAE,CAACtb,EAAEvB,EAAEyiC,KAA7F,EAAClhC,EAAEvB,EAAEyiC,KAAIziC,KAAKuB,EAAE,EAAEA,EAAEvB,EAAE,CAACwd,YAAW,EAAGC,cAAa,EAAGC,UAAS,EAAGxnB,MAAMusC,IAAIlhC,EAAEvB,GAAGyiC,CAAC,EAAiB1lC,CAAEwE,EAAY,iBAAHvB,EAAYA,EAAE,GAAGA,EAAEyiC,GAAGA,GAAkY,IAAIviC,EAAE,IAArY,MAAQ/H,cAAc,EAAEwpB,KAAK,UAAUA,KAAKg+B,UAAU,EAAEh+B,KAAK,YAAY,EAAE,CAACyY,IAAIp6B,GAAG2hB,KAAKs9B,UAAUj/C,IAAI2hB,KAAKs6D,UAAU,EAAEt6D,KAAKs9B,QAAQj/C,EAAE,CAAC2T,QAAQgO,KAAKyY,IAAIzY,KAAKg+B,SAAS,CAACu8B,SAAS,QAAQv6D,KAAKs6D,SAAS,CAAKE,eAAW,MAAsB,WAAfx6D,KAAKs9B,OAAkB,CAAKzgB,eAAW,MAAsB,WAAf7c,KAAKs9B,OAAkB,CAACU,SAAS,MAAsB,oBAARxpC,QAAsC,oBAAViC,SAAsB,SAAS,QAAQ,GCAve,SAAS,EAAEqqB,GAAG,GAAG,WAAW,OAAO,KAAK,GAAGA,aAAatqB,KAAK,OAAOsqB,EAAErsB,cAAc,GAAM,MAAHqsB,GAASA,EAAEx5B,eAAe,SAAS,CAAC,IAAIsc,EAAE,EAAEkd,GAAG,GAAGld,EAAE,OAAOA,EAAEnP,aAAa,CAAC,OAAOgC,QAAQ,CCA/H,IAAI,EAAE,CAAC,yBAAyB,aAAa,UAAU,aAAa,yBAAyB,SAAS,wBAAwB,yBAAyB,4BAA4BtN,KAAI9K,GAAG,GAAGA,2BAA0BkL,KAAK,KAAK,IAAIkxE,EAAE,CAAC72D,IAAIA,EAAEA,EAAE82D,MAAM,GAAG,QAAQ92D,EAAEA,EAAE+2D,SAAS,GAAG,WAAW/2D,EAAEA,EAAEg3D,KAAK,GAAG,OAAOh3D,EAAEA,EAAEi3D,KAAK,GAAG,OAAOj3D,EAAEA,EAAEk3D,WAAW,IAAI,aAAal3D,EAAEA,EAAEm3D,SAAS,IAAI,WAAWn3D,GAAvJ,CAA2J62D,GAAG,CAAC,GAAG,EAAE,CAACtC,IAAIA,EAAEA,EAAE9gF,MAAM,GAAG,QAAQ8gF,EAAEA,EAAE6C,SAAS,GAAG,WAAW7C,EAAEA,EAAE8C,QAAQ,GAAG,UAAU9C,EAAEA,EAAE+C,UAAU,GAAG,YAAY/C,GAA3G,CAA+G,GAAG,CAAC,GAAGgD,EAAE,CAACv7E,IAAIA,EAAEA,EAAE+6E,UAAU,GAAG,WAAW/6E,EAAEA,EAAEg7E,KAAK,GAAG,OAAOh7E,GAApD,CAAwDu7E,GAAG,CAAC,GAAG,SAASh9E,EAAEE,EAAEoY,SAAS0B,MAAM,OAAU,MAAH9Z,EAAQ,GAAGuI,MAAMwV,KAAK/d,EAAE+8E,iBAAiB,IAAI7oE,MAAK,CAACuuB,EAAElhC,IAAI3J,KAAKyE,MAAMomC,EAAEu6C,UAAUtlF,OAAOixC,mBAAmBpnC,EAAEy7E,UAAUtlF,OAAOixC,oBAAmB,CAAC,IAAIvrC,EAAE,CAACmE,IAAIA,EAAEA,EAAE07E,OAAO,GAAG,SAAS17E,EAAEA,EAAE27E,MAAM,GAAG,QAAQ37E,GAAjD,CAAqDnE,GAAG,CAAC,GAAG,SAAS6B,EAAEe,EAAEyiC,EAAE,GAAG,IAAIlhC,EAAE,OAAOvB,KAAe,OAATuB,EAAE,EAAEvB,SAAU,EAAOuB,EAAEuY,OAAS,EAAE2oB,EAAE,CAAC,IAAM,OAAOziC,EAAE4sD,QAAQ,EAAE,EAAE,IAAM,IAAI3zB,EAAEj5B,EAAE,KAAS,OAAJi5B,GAAU,CAAC,GAAGA,EAAE2zB,QAAQ,GAAG,OAAM,EAAG3zB,EAAEA,EAAEkkD,aAAa,CAAC,OAAM,CAAE,GAAG,CAAkE,IAAI,EAAE,CAAC57E,IAAIA,EAAEA,EAAE67E,SAAS,GAAG,WAAW77E,EAAEA,EAAE87E,MAAM,GAAG,QAAQ97E,GAArD,CAAyD,GAAG,CAAC,GAA2Y,SAAS,EAAEvB,GAAM,MAAHA,GAASA,EAAEsgB,MAAM,CAACg9D,eAAc,GAAI,CAA3a,oBAARnnE,QAAsC,oBAAViC,WAAwBA,SAAS4H,iBAAiB,WAAUhgB,IAAIA,EAAEu9E,SAASv9E,EAAEw9E,QAAQx9E,EAAEy9E,UAAUrlE,SAASC,gBAAgBqlE,QAAQC,uBAAuB,GAAE,IAAG,GAAIvlE,SAAS4H,iBAAiB,SAAQhgB,IAAe,IAAXA,EAAE49E,cAAkBxlE,SAASC,gBAAgBqlE,QAAQC,uBAAkC,IAAX39E,EAAE49E,SAAaxlE,SAASC,gBAAgBqlE,QAAQC,uBAAuB,GAAE,IAAG,IAAwD,IAAItgF,EAAE,CAAC,WAAW,SAAS6N,KAAK,KAAkX,SAAS5I,EAAEtC,EAAEyiC,GAAGzF,OAAOz7B,GAAE,EAAGs8E,WAAW5kD,EAAE,KAAK6kD,aAAahE,EAAE,IAAI,CAAC,GAAG,IAAIx8E,EAAE,IAAI6C,EAA8F,OAA3F7C,EAAEiL,MAAMC,QAAQxI,GAAGA,EAAErJ,OAAO,EAAEqJ,EAAE,GAAGoW,cAAcgC,SAAY,MAAHpY,OAAQ,EAAOA,EAAEoW,eAAqB9Y,EAAE8a,SAASmN,EAAEhd,MAAMC,QAAQxI,GAAGuB,EAA5d,SAAWvB,EAAEyiC,EAAElhC,IAAGA,IAAG,OAAOvB,EAAE8I,QAAQoL,MAAK,CAAC3S,EAAE03B,KAAK,IAAI6gD,EAAEr3C,EAAElhC,GAAGpB,EAAEsiC,EAAExJ,GAAG,GAAO,OAAJ6gD,GAAc,OAAJ35E,EAAS,OAAO,EAAE,IAAIolB,EAAEu0D,EAAEiE,wBAAwB59E,GAAG,OAAOolB,EAAEpN,KAAK6lE,6BAA6B,EAAEz4D,EAAEpN,KAAK8lE,4BAA4B,EAAE,IAAG,CAAkQ78E,CAAEpB,GAAGA,EAAEF,EAAEE,GAAG85E,EAAEnjF,OAAO,GAAG4uB,EAAE5uB,OAAO,IAAI4uB,EAAEA,EAAEjS,QAAO9V,IAAIs8E,EAAEjrE,SAASrR,MAAKy7B,EAAK,MAAHA,EAAQA,EAAE94B,EAAE+9E,cAAc,IAAsYv/E,EAAlYwC,EAAE,MAAM,GAAK,EAAFshC,EAAI,OAAO,EAAE,GAAK,GAAFA,EAAK,OAAO,EAAE,MAAM,IAAIzpC,MAAM,gEAAiE,EAAxH,GAA4HqJ,EAAE,MAAM,GAAK,EAAFogC,EAAI,OAAO,EAAE,GAAK,EAAFA,EAAI,OAAO7qC,KAAKqW,IAAI,EAAEsX,EAAE5hB,QAAQs1B,IAAI,EAAE,GAAK,EAAFwJ,EAAI,OAAO7qC,KAAKqW,IAAI,EAAEsX,EAAE5hB,QAAQs1B,IAAI,EAAE,GAAK,EAAFwJ,EAAI,OAAOld,EAAE5uB,OAAO,EAAE,MAAM,IAAIqC,MAAM,gEAAiE,EAAlN,GAAsNgG,EAAI,GAAFyjC,EAAK,CAAC66C,eAAc,GAAI,CAAC,EAAEtgF,EAAE,EAAED,EAAEwoB,EAAE5uB,OAAS,EAAE,CAAC,GAAGqG,GAAGD,GAAGC,EAAED,GAAG,EAAE,OAAO,EAAE,IAAIS,EAAE6E,EAAErF,EAAE,GAAK,GAAFylC,EAAKjlC,GAAGA,EAAET,GAAGA,MAAM,CAAC,GAAGS,EAAE,EAAE,OAAO,EAAE,GAAGA,GAAGT,EAAE,OAAO,CAAC,CAAC4B,EAAE4mB,EAAE/nB,GAAM,MAAHmB,GAASA,EAAE2hB,MAAMthB,GAAGhC,GAAGmE,CAAC,OAAOxC,IAAIwB,EAAE+9E,eAAe,OAAS,EAAFz7C,GAAvsC,SAAWziC,GAAG,IAAIyiC,EAAElhC,EAAE,OAAiE,OAA1DA,EAAgC,OAA7BkhC,EAAK,MAAHziC,OAAQ,EAAOA,EAAE4sD,cAAe,EAAOnqB,EAAEhqC,KAAKuH,EAAE3C,KAAUkE,CAAI,CAA4mClC,CAAEV,IAAIA,EAAEgmE,SAAS,CAAC,CCAt1F,IAAI,EAAE,CAACliC,IAAIA,EAAEA,EAAE07C,SAAS,GAAG,WAAW17C,EAAEA,EAAE27C,UAAU,GAAG,YAAY37C,GAA7D,CAAiE,GAAG,CAAC,GAAG,SAAS,IAAI,IAAIq3C,GAAE,QAAE,GAAG,OCA/G,SAAW95E,EAAEulB,EAAEhkB,GAAG,aAAY,SAAEu4E,IAAI3jE,OAAO6J,iBAAiBhgB,EAAEulB,EAAEhkB,GAAGu4E,GAAE,IAAI3jE,OAAO0V,oBAAoB7rB,EAAEulB,EAAEhkB,IAAE,GAAG,CDAS,CAAE,WAAUvB,IAAY,QAARA,EAAEsI,MAAcwxE,EAAE5jF,MAAM8J,EAAEq+E,SAAS,EAAE,EAAC,IAAIvE,CAAC,CEAjL,SAAS,EAAEv0D,EAAEvlB,EAAE85E,EAAEr3C,GAAG,aAAY,SAAElhC,KAAIgkB,EAAK,MAAHA,EAAQA,EAAEpP,QAAS6J,iBAAiBhgB,EAAE85E,EAAEr3C,GAAGlhC,GAAE,IAAIgkB,EAAEsG,oBAAoB7rB,EAAE85E,EAAEr3C,IAAE,GAAG,CCAhM,SAAS,EAAEziC,GAA0B,mBAAhBs+E,eAA2BA,eAAet+E,GAAG8gB,QAAQC,UAAU0T,KAAKz0B,GAAGu+E,OAAMzE,GAAGlzD,YAAW,KAAK,MAAMkzD,MAAI,CCA4nB,SAASr5E,EAAET,GAAG,IAAIA,EAAE,OAAO,IAAIkkB,IAAI,GAAa,mBAAHlkB,EAAc,OAAO,IAAIkkB,IAAIlkB,KAAK,IAAIuB,EAAE,IAAI2iB,IAAI,IAAI,IAAI+U,KAAKj5B,EAAE9J,MAAM,CAAC,IAAI4jF,EAAE,EAAE7gD,GAAG6gD,aAAanjE,aAAapV,EAAEmpB,IAAIovD,EAAE,CAAC,OAAOv4E,CAAC,CAAC,IAAIi9E,EAAE,CAACj5D,IAAIA,EAAEA,EAAEw0D,KAAK,GAAG,OAAOx0D,EAAEA,EAAEk5D,aAAa,GAAG,eAAel5D,EAAEA,EAAEm5D,QAAQ,GAAG,UAAUn5D,EAAEA,EAAEo5D,UAAU,GAAG,YAAYp5D,EAAEA,EAAEq5D,aAAa,IAAI,eAAer5D,EAAEA,EAAEs5D,IAAI,IAAI,MAAMt5D,GAAvK,CAA2Ki5D,GAAG,CAAC,GAAG,IAAIM,EAAG1oF,OAAOC,QAAO,QAAE,CAACI,KAAK,YAAY6qB,MAAM,CAACksB,GAAG,CAAC1rB,KAAK,CAAC1rB,OAAO0G,QAAQ+kB,QAAQ,OAAOk9D,aAAa,CAACj9D,KAAK1rB,OAAOyrB,QAAQ,MAAMw4D,SAAS,CAACv4D,KAAKpqB,OAAOmqB,QAAQ,IAAIm9D,WAAW,CAACl9D,KAAK,CAAC1rB,OAAO4rB,UAAUH,SAAQ,QAAE,IAAIqC,OAAO0P,cAAa,EAAGiC,MAAM71B,GAAG0kB,MAAMnjB,EAAEiiC,MAAMvK,EAAEuV,OAAOsrC,IAAI,IAAIr3C,GAAE,QAAE,MAAMq3C,EAAE,CAAC1tD,GAAGqW,EAAExb,IAAIwb,IAAI,IAAItiC,GAAE,SAAE,IAAI,EAAEsiC,KAAIld,GAAE,SAAE,IAAI,SAAE,IAAIA,EAAErvB,OAAM,KAAI,SAAE,IAAIqvB,EAAErvB,OAAM,IAAgkE,UAAYkgB,cAAcpW,GAAGuB,GAAG,IAAI03B,EAAxQ,SAAWj5B,GAAG,IAAIuB,GAAE,QAAEvC,EAAE8J,SAAS,OAAO,QAAE,CAAC9I,IAAG,EAAEi5B,IAAI6gD,OAAU,IAAJA,IAAY,IAAJ7gD,EAAO,GAAE,KAAK13B,EAAErL,MAAM0qB,OAAO,EAAC,KAAQ,IAAJk5D,IAAY,IAAJ7gD,IAAS13B,EAAErL,MAAM8I,EAAE8J,QAAO,GAAG,CAAC2/B,MAAM,SAAS,KAAK,IAAIxP,EAAE,OAAmD,OAA5CA,EAAE13B,EAAErL,MAAMke,MAAK0lE,GAAM,MAAHA,GAASA,EAAEmF,eAAoBhmD,EAAE,KAAK,CAAuC93B,CAAEI,IAAG,SAAE,MAAK,SAAE,KAAK,IAAIu4E,EAAEr3C,EAAElhC,EAAErL,QAAqB,OAAZ4jF,EAAE95E,EAAE9J,YAAa,EAAO4jF,EAAEoE,kBAA+B,OAAZz7C,EAAEziC,EAAE9J,YAAa,EAAOusC,EAAE3oB,OAAO,EAAEmf,IAAG,GAAG,CAACwP,MAAM,QAAO,KAAI,SAAE,KAAK,EAAExP,IAAG,GAAG,CAA/vE33B,CAAE,CAAC8U,cAAcjW,IAAG,SAAE,IAAIolB,EAAErvB,OAAOksB,QAAmB,GAAXpiB,EAAEq6E,aAAe,IAAI/8E,EAAgsE,UAAY8Y,cAAcpW,EAAEme,UAAU5c,EAAEw9E,aAAa9lD,GAAG6gD,GAAG,IAAIr3C,GAAE,QAAE,MAAMtiC,GAAE,SAAE,GAAI,OAAO,SAAE,IAAIA,EAAEjK,OAAM,KAAI,SAAE,IAAIiK,EAAEjK,OAAM,KAAI,SAAE,MAAK,QAAE,CAACqL,EAAE03B,EAAE6gD,IAAG,CAACv0D,EAAEjoB,KAAK,GAAGioB,EAAElR,OAAM,CAAC1V,EAAEnB,KAAQ,MAAHF,OAAQ,EAAOA,EAAEE,MAAMmB,MAAKm7E,EAAE5jF,MAAM,OAAO,IAAIgK,EAAE,EAAEqB,GAAGrB,GAAG,GAAE,KAAK,IAAI7C,EAAEV,EAAE,IAAIwD,EAAEjK,MAAM,OAAO,IAAIyI,EAAE,EAAEs6B,GAAGz7B,EAAe,OAAZH,EAAE2C,EAAE9J,YAAa,EAAOmH,EAAE6gF,cAAc,GAAGv/E,GAAG,GAAGA,IAAInB,EAAa,YAAVilC,EAAEvsC,MAAMsH,QAAe,GAAG0C,EAAE6b,SAASve,GAAc,YAAVilC,EAAEvsC,MAAMsH,GAASmB,EAAE,EAAEA,GAAG,EAAEuB,EAAE,QAAQ,cAAc,SAASpH,QAAQC,KAAK,4DAA4D0pC,EAAEvsC,MAAmB,OAAZyG,EAAEqD,EAAE9J,YAAa,EAAOyG,EAAEuhF,gBAAc,GAAG,CAAC/pD,WAAU,EAAGsU,MAAM,QAAO,IAAIhG,CAAC,CAAxwFy8C,CAAE,CAAC9oE,cAAcjW,EAAEge,UAAUskB,EAAEs8C,cAAa,SAAE,IAAI/+E,EAAE++E,iBAAe,SAAE,IAAIx5D,EAAErvB,OAAOksB,QAAmB,EAAXpiB,EAAEq6E,cAA6qF,UAAYjkE,cAAcpW,EAAEme,UAAU5c,EAAEy9E,WAAW/lD,EAAEkmD,sBAAsBrF,GAAGr3C,GAAG,IAAItiC,EAAE,EAAe,OAAZA,EAAEH,EAAE9J,YAAa,EAAOiK,EAAEkW,YAAY,SAAQkP,IAAI,IAAIkd,EAAEvsC,MAAM,OAAO,IAAIoH,EAAEmD,EAAEw4B,GAAG,EAAE13B,aAAaoV,aAAarZ,EAAEotB,IAAI,EAAEnpB,IAAI,IAAIrB,EAAE45E,EAAE5jF,MAAM,IAAIgK,EAAE,OAAO,IAAIvB,EAAE4mB,EAAElL,OAAO1b,GAAGA,aAAagY,YAAY,EAAErZ,EAAEqB,IAAIm7E,EAAE5jF,MAAMyI,EAAE,EAAEA,KAAK4mB,EAAE0sB,iBAAiB1sB,EAAE2sB,kBAAkB,EAAEhyC,IAAI,EAAE45E,EAAE5jF,MAAK,IAAG,EAAG,CAA5gG0I,CAAE,CAACwX,cAAcjW,EAAEge,UAAUskB,EAAEu8C,WAAWh/E,EAAEg/E,WAAWG,sBAAsB7hF,IAAG,SAAE,IAAIioB,EAAErvB,OAAOksB,QAAmB,EAAXpiB,EAAEq6E,aAAc,IAAIn6E,EAAE,IAAI,SAASvB,EAAE3B,GAAG,IAAID,EAAE,EAAE0lC,GAAO1lC,GAAuB,EAAEmD,EAAEhK,MAAM,CAAC,CAAC,YAAY,KAAK,EAAE6G,EAAE,QAAQ,CAAC+gF,aAAa,CAAC9gF,EAAEoiF,gBAAe,EAAG,CAAC,aAAa,KAAK,EAAEriF,EAAE,OAAO,CAAC+gF,aAAa,CAAC9gF,EAAEoiF,gBAAe,GAAM,CAAC,IAAI5hF,GAAE,SAAE,GAAI,SAASH,EAAEL,GAAW,QAARA,EAAEsL,MAAc9K,EAAEtH,OAAM,EAAG8qB,uBAAsB,KAAKxjB,EAAEtH,OAAM,CAAC,IAAI,CAAC,SAASyG,EAAEK,GAAG,IAAIuoB,EAAErvB,MAAM,OAAO,IAAI6G,EAAE0D,EAAET,EAAEg/E,YAAY,EAAEv8C,aAAa9rB,aAAa5Z,EAAE2tB,IAAI,EAAE+X,IAAI,IAAI3iC,EAAE9C,EAAEoiF,cAAct/E,aAAa6W,aAA8C,SAAjC7W,EAAE49E,QAAQ2B,uBAAgC,EAAEtiF,EAAE+C,KAAKtC,EAAEtH,MAAM,EAAE,EAAEusC,GAAG,EAAEviC,EAAEhK,MAAM,CAAC,CAAC,YAAY,IAAI,OAAO,CAAC,aAAa,IAAI,aAAa,aAAa,CAAC2nF,WAAW7gF,EAAEqd,SAASrd,EAAEqd,kBAAkB1D,aAAa,EAAE3Z,EAAEqd,SAAS,CAAC,MAAM,KAAK,IAAStd,EAAE,CAAC6yB,IAAI6S,EAAEsnC,UAAU1sE,EAAEiiF,WAAW3iF,IAAI09E,SAASv6E,EAAEi/E,aAAa1mC,EAAE2mC,WAAWp+E,KAAKQ,GAAGpB,EAAE,OAAO,IAAA5C,GAAE,KAAE,CAACglB,QAAU,EAAFtiB,KAAM,IAAA1C,GAAE,EAAE,CAACowC,GAAG,SAAS1rB,KAAK,SAAS,+BAA8B,EAAGgoD,QAAQnrE,EAAE07E,SAAS,cAAc,EAAE,CAACC,SAASv9E,EAAEw9E,WAAW,IAAIh5E,KAAKH,GAAG02D,KAAtP,CAAC,EAA4PpzC,MAAMnjB,EAAEiiC,MAAMvK,EAAExiC,KAAK,cAAc2rB,QAAU,EAAFtiB,KAAM,IAAA1C,GAAE,EAAE,CAACowC,GAAG,SAAS1rB,KAAK,SAAS,+BAA8B,EAAGgoD,QAAQnrE,EAAE07E,SAAS,eAAc,CAAE,IAAI,CAACA,SAASmE,IAAIx/E,EAAE,GAA60D,SAAS,EAAEgB,EAAEuB,GAAG,IAAI,IAAI03B,KAAKj5B,EAAE,GAAGi5B,EAAEld,SAASxa,GAAG,OAAM,EAAG,OAAM,CAAE,ECAjsJ,SAAWgkB,GAAG,SAASvlB,IAA0B,YAAtBoY,SAASmnE,aAAyBh6D,IAAInN,SAASyT,oBAAoB,mBAAmB7rB,GAAG,CAAgB,oBAARmW,QAAsC,oBAAViC,WAAwBA,SAAS4H,iBAAiB,mBAAmBhgB,GAAGA,IAAI,CDAklF,EAAE,KAAK,SAASA,EAAEuB,GAAGA,EAAE8Y,kBAAkB1D,aAAapV,EAAE8Y,SAASjC,SAAS0B,MAAM9a,EAAE,KAAKuC,EAAE8Y,SAASrb,EAAE63C,QAAQt1C,EAAE8Y,QAAQrb,EAAEA,EAAEsU,QAAO2lB,GAAM,MAAHA,GAASA,EAAEgmD,cAAajgF,EAAE4hB,OAAO,IAAI,CAACzK,OAAO6J,iBAAiB,QAAQhgB,EAAE,CAACmuB,SAAQ,IAAKhY,OAAO6J,iBAAiB,YAAYhgB,EAAE,CAACmuB,SAAQ,IAAKhY,OAAO6J,iBAAiB,QAAQhgB,EAAE,CAACmuB,SAAQ,IAAK/V,SAAS0B,KAAKkG,iBAAiB,QAAQhgB,EAAE,CAACmuB,SAAQ,IAAK/V,SAAS0B,KAAKkG,iBAAiB,YAAYhgB,EAAE,CAACmuB,SAAQ,IAAK/V,SAAS0B,KAAKkG,iBAAiB,QAAQhgB,EAAE,CAACmuB,SAAQ,GAAG,IEA1sG,IAAI,EAAE,IAAIiP,IAAI,EAAE,IAAIA,IAAI,SAAS,EAAErgC,EAAEyzC,GAAE,SAAE,KAAK,SAAEspC,IAAI,IAAI98E,EAAE,IAAIwzC,EAAEt6C,MAAM,OAAO,IAAI8J,EAAE,EAAEjD,GAAG,IAAIiD,EAAE,OAAO85E,GAAE,WAAW,IAAIn7E,EAAE,IAAIqB,EAAE,OAAO,IAAIyiC,EAAgB,OAAb9jC,EAAE,EAAEohB,IAAI/f,IAAUrB,EAAE,EAAE,GAAO,IAAJ8jC,EAAM,EAAEjW,OAAOxsB,GAAG,EAAEo6B,IAAIp6B,EAAEyiC,EAAE,GAAO,IAAJA,EAAM,OAAO,IAAIld,EAAE,EAAExF,IAAI/f,GAAGulB,IAAuB,OAAnBA,EAAE,eAAsBvlB,EAAEssB,gBAAgB,eAAetsB,EAAEusB,aAAa,cAAchH,EAAE,gBAAgBvlB,EAAEw/E,MAAMj6D,EAAEi6D,MAAM,EAAEhzD,OAAOxsB,GAAG,IAAG,IAAIi5B,EAAgB,OAAbj8B,EAAE,EAAE+iB,IAAI/f,IAAUhD,EAAE,EAAE,EAAEo9B,IAAIp6B,EAAEi5B,EAAE,GAAO,IAAJA,IAAQ,EAAEmB,IAAIp6B,EAAE,CAAC,cAAcA,EAAEqsB,aAAa,eAAemzD,MAAMx/E,EAAEw/E,QAAQx/E,EAAEusB,aAAa,cAAc,QAAQvsB,EAAEw/E,OAAM,EAAE,GAAG,CCA1f,IAAI,EAAEvnF,OAAO,0BAAsD,IAAI,GAAE,QAAE,CAACxB,KAAK,kBAAkB6qB,MAAM,CAACksB,GAAG,CAAC1rB,KAAK,CAAC1rB,OAAO0G,QAAQ+kB,QAAQ,YAAYoE,MAAM,CAACnE,KAAKM,QAAQP,SAAQ,IAAKgU,MAAMikD,GAAGt2C,MAAMjiC,EAAEmjB,MAAM+d,IAAI,OAAO,QAAE,EAAEq3C,EAAE7zD,OAAO,KAAK,IAAIA,MAAMuqB,KAAKjrB,GAAGu0D,EAAE,OAAO,EAAE,CAACS,WAAWh1D,EAAE+0D,SAAS,CAAC,EAAExiB,KAAK,CAAC,EAAEt0B,MAAMjiC,EAAEmjB,MAAM+d,EAAEhsC,KAAK,mBAAkB,CAAE,ICAsL,IAAI,GAAE,QAAE,CAACA,KAAK,SAAS6qB,MAAM,CAACksB,GAAG,CAAC1rB,KAAK,CAAC1rB,OAAO0G,QAAQ+kB,QAAQ,QAAQgU,MAAMt0B,GAAGiiC,MAAMf,EAAE/d,MAAMo1D,IAAI,IAAI95E,GAAE,QAAE,MAAMqC,GAAE,SAAE,IAAI,EAAErC,KAAIulB,GDA7kB,QAAE,GAAE,GCA+kB5mB,GAAE,QAAE05C,EAAE,MAAMpf,GAAE,SAAM,IAAJ1T,GAAW,MAAH5mB,EAAhd,SAAW4C,GAAG,IAAIkhC,EAAE,EAAElhC,GAAG,IAAIkhC,EAAE,CAAC,GAAO,OAAJlhC,EAAS,OAAO,KAAK,MAAM,IAAIvI,MAAM,gEAAgEuI,IAAI,CAAC,IAAIu4E,EAAEr3C,EAAEg9C,eAAe,0BAA0B,GAAG3F,EAAE,OAAOA,EAAE,IAAI95E,EAAEyiC,EAAE7R,cAAc,OAAO,OAAO5wB,EAAEusB,aAAa,KAAK,0BAA0BkW,EAAE3oB,KAAK+Q,YAAY7qB,EAAE,CAAqK,CAAEA,EAAE9J,OAAOyI,EAAE+gF,iBAAiB,OAAO,SAAE,KAAKn6D,GAAM,MAAH5mB,IAAUs6B,EAAE/iC,MAAMyI,EAAE+gF,gBAAe,KAAI,SAAE,KAAK,IAAIv/E,EAAE7C,EAAE,IAAIN,EAAe,OAAZmD,EAAEkC,EAAEnM,YAAa,EAAOiK,EAAEs/E,eAAe,0BAA0BziF,GAAGi8B,EAAE/iC,QAAQ8G,GAAGi8B,EAAE/iC,MAAMi9B,SAASx8B,QAAQ,IAA+B,OAA1B2G,EAAE27B,EAAE/iC,MAAMinF,gBAAsB7/E,EAAE2uB,YAAYgN,EAAE/iC,OAAM,IAAI,KAAK,GAAa,OAAV+iC,EAAE/iC,MAAa,OAAO,KAAK,IAAI8G,EAAE,CAAC4yB,IAAI5vB,EAAE,yBAAyB,IAAI,OAAO,IAAA5C,GAAE,KAAE,CAAC0gB,GAAGmb,EAAE/iC,OAAO,EAAE,CAACokF,SAASt9E,EAAEu9E,WAAWh5E,EAAEu2D,KAAK,CAAC,EAAEpzC,MAAMo1D,EAAEt2C,MAAMf,EAAEhsC,KAAK,WAAU,CAAE,IAAI4hD,EAAEpgD,OAAO,sBAAsB,GAAE,QAAE,CAACxB,KAAK,cAAc6qB,MAAM,CAACksB,GAAG,CAAC1rB,KAAK,CAAC1rB,OAAO0G,QAAQ+kB,QAAQ,YAAYxH,OAAO,CAACyH,KAAK1rB,OAAOyrB,QAAQ,OAAOgU,MAAMt0B,GAAGmjB,MAAM+d,EAAEe,MAAMs2C,IAAI,IAAI95E,GAAE,QAAE,CAAC0/E,gBAAgB,OAAOn+E,EAAE8Y,MAAM,IAAI,OAAO,QAAEg+B,EAAEr4C,GAAG,KAAK,IAAIqa,OAAOhY,KAAKkjB,GAAGhkB,EAAE,OAAO,EAAE,CAACg5E,WAAWh1D,EAAE+0D,SAAS,CAAC,EAAExiB,KAAK,CAAC,EAAEpzC,MAAM+d,EAAEe,MAAMs2C,EAAErjF,KAAK,eAAc,CAAE,ICAj9CkI,EAAE1G,OAAO,gBAAgB,IAAI,EAAE,CAAC+H,IAAIA,EAAEA,EAAE2/E,IAAI,GAAG,MAAM3/E,EAAEA,EAAE4/E,OAAO,GAAG,SAAS5/E,GAA7C,CAAiD,GAAG,CAAC,GAAmC,SAAS,GAAG8hB,KAAKg4D,EAAE+F,QAAQp9C,EAAE7xB,QAAQ5Q,EAAE8/E,SAAS3/E,IAAI,IAAInD,GAApE,QAAE2B,GAAE,SAAsE,SAAS4C,KAAKgkB,GAAM,MAAHplB,GAASA,KAAKolB,GAAGvoB,KAAKuoB,EAAE,EAAC,SAAE,MAAK,QAAEkd,GAAE,CAACld,EAAExoB,KAAKwoB,EAAEhkB,EAAE,EAAEu4E,EAAE95E,IAAO,IAAJjD,GAAQwE,EAAE,EAAEu4E,EAAE95E,EAAC,GAAG,CAACm0B,WAAU,EAAGsU,MAAM,QAAO,KAAI,SAAE,KAAKhG,EAAEvsC,OAAOqL,EAAE,EAAEu4E,EAAE95E,EAAC,KAAI,QAAErB,EAAE4C,EAAE,CCA1M,IAAIc,EAAEpK,OAAO,sBAA0G,SAAS,GAAG6/D,KAAKv2D,GAAE,QAAE,CAAC,GAAG9K,KAAK0J,EAAE,cAAcmhB,MAAMw4D,EAAE,CAAC,GAAG,CAAC,GAAG,IAAI95E,GAAE,QAAE,IAAoG,OAAO,QAAEqC,EAAE,CAACyqC,SAA5G,SAAWvnB,GAAG,OAAOvlB,EAAE9J,MAAMc,KAAKuuB,GAAG,KAAK,IAAIkd,EAAEziC,EAAE9J,MAAMyN,QAAQ4hB,IAAQ,IAALkd,GAAQziC,EAAE9J,MAAM0qB,OAAO6hB,EAAE,EAAC,CAAE,EAAwBq1B,KAAKv2D,EAAE9K,KAAK0J,EAAEmhB,MAAMw4D,KAAI,SAAE,IAAI95E,EAAE9J,MAAMS,OAAO,EAAEqJ,EAAE9J,MAAMgV,KAAK,UAAK,GAAO,EAAO,QAAE,CAACzU,KAAK,cAAc6qB,MAAM,CAACksB,GAAG,CAAC1rB,KAAK,CAAC1rB,OAAO0G,QAAQ+kB,QAAQ,KAAKyQ,GAAG,CAACxQ,KAAKhlB,OAAO+kB,QAAQ,IAAI,0BAA0B,QAAQgU,MAAMt0B,GAAGmjB,MAAMvkB,EAAEqjC,MAAMs2C,IAAI,IAAI95E,EAApgB,WAAa,IAAIuB,GAAE,QAAEc,EAAE,MAAM,GAAO,OAAJd,EAAS,MAAM,IAAIvI,MAAM,kBAAkB,OAAOuI,CAAC,CAAmb,GAAI,OAAO,SAAE,KAAI,QAAEvB,EAAE8sC,SAASvrC,EAAE+wB,OAAM,KAAK,IAAI77B,KAAK+G,EAAE,cAAcs6D,KAAKvyC,GAAE,QAAE,CAAC,GAAGjE,MAAMmhB,EAAE,CAAC,GAAGziC,GAAGsyB,GAAGv1B,KAAKk8B,GAAG13B,EAAErB,EAAE,IAAI9J,OAAO4pC,QAAQyC,GAAG5rC,QAAO,CAAC25C,GAAGxzC,EAAEq7C,KAAKjiD,OAAOC,OAAOm6C,EAAE,CAAC,CAACxzC,IAAG,QAAEq7C,MAAK,CAAC,GAAG/lB,GAAGv1B,GAAG,OAAO,EAAE,CAACu9E,SAASp6E,EAAEq6E,WAAWthD,EAAE6+B,KAAKvyC,EAAErvB,MAAMwuB,MAAMvkB,EAAEqjC,MAAMs2C,EAAErjF,KAAK+G,GAAE,CAAE,IAA7a,ICAjjB,GAAEvF,OAAO,WAAW,IAAI,GAAE,CAAC+H,IAAIA,EAAEA,EAAE+/E,KAAK,GAAG,OAAO//E,EAAEA,EAAEggF,OAAO,GAAG,SAAShgF,EAAEA,EAAEigF,QAAQ,GAAG,UAAUjgF,EAAEA,EAAEkgF,QAAQ,GAAG,UAAUlgF,GAAjG,CAAqG,IAAG,CAAC,GAAkC,SAAS,KAAI,OAAO,QAAE,GAAE,KAAK,CCAxK,SAAS,GAAEA,EAAEuB,EAAEgkB,GAAG,aAAY,SAAEu0D,IAAI1hE,SAAS4H,iBAAiBhgB,EAAEuB,EAAEgkB,GAAGu0D,GAAE,IAAI1hE,SAASyT,oBAAoB7rB,EAAEuB,EAAEgkB,IAAE,GAAG,CCAqC,SAAS,GAAEirB,EAAElzC,EAAE6C,GAAE,SAAE,KAAI,KAAK,SAASnD,EAAEgD,EAAErB,GAAG,IAAIwB,EAAEjK,OAAO8J,EAAE66E,iBAAiB,OAAO,IAAIt1D,EAAE5mB,EAAEqB,GAAG,GAAO,OAAJulB,IAAWA,EAAEzJ,cAAcC,SAASwJ,GAAG,OAAO,IAAIrlB,EAAE,SAAS45E,EAAEv4E,GAAG,MAAiB,mBAAHA,EAAcu4E,EAAEv4E,KAAKgH,MAAMC,QAAQjH,IAAIA,aAAa2iB,IAAI3iB,EAAE,CAACA,EAAE,CAAzF,CAA2FivC,GAAG,IAAI,IAAIspC,KAAK55E,EAAE,CAAC,GAAO,OAAJ45E,EAAS,SAAS,IAAIv4E,EAAEu4E,aAAanjE,YAAYmjE,EAAE,EAAEA,GAAG,GAAM,MAAHv4E,GAASA,EAAEwa,SAASwJ,IAAIvlB,EAAEmgF,UAAUngF,EAAEogF,eAAevxE,SAAStN,GAAG,MAAM,CAAC,OAAO,EAAEgkB,EAAE,WAAwB,IAAdA,EAAEy3D,UAAeh9E,EAAEiyC,iBAAiB30C,EAAE0C,EAAEulB,EAAE,CAAC,IAAIkd,GAAE,QAAE,MAAM,GAAE,aAAYziC,IAAI,IAAIrB,EAAE4mB,EAAEplB,EAAEjK,QAAQusC,EAAEvsC,OAAsD,OAA9CqvB,EAAsB,OAAnB5mB,EAAEqB,EAAEogF,mBAAoB,EAAOzhF,EAAElG,KAAKuH,SAAU,EAAOulB,EAAE,KAAKvlB,EAAEqa,OAAM,IAAG,GAAI,GAAE,SAAQra,IAAIyiC,EAAEvsC,QAAQ8G,EAAEgD,GAAE,IAAIyiC,EAAEvsC,QAAOusC,EAAEvsC,MAAM,KAAI,IAAG,GAAI,GAAE,QAAO8J,GAAGhD,EAAEgD,GAAE,IAAImW,OAAOiC,SAAS8lE,yBAAyBmC,kBAAkBlqE,OAAOiC,SAAS8lE,cAAc,SAAM,EAAG,CCAr+B,SAASz7C,KAAI,IAAIld,EAAE,GAAG/nB,EAAE,CAACwiB,iBAAiBhgB,EAAEuB,EAAEpB,EAAEnD,GAAG,OAAOgD,EAAEggB,iBAAiBze,EAAEpB,EAAEnD,GAAGQ,EAAEktB,KAAI,IAAI1qB,EAAE6rB,oBAAoBtqB,EAAEpB,EAAEnD,IAAG,EAAEgkB,yBAAyBhhB,GAAG,IAAIuB,EAAEyf,yBAAyBhhB,GAAGxC,EAAEktB,KAAI,IAAI41D,qBAAqB/+E,IAAG,EAAEsf,aAAa7gB,GAAGxC,EAAEwjB,uBAAsB,KAAKxjB,EAAEwjB,yBAAyBhhB,EAAC,GAAG,EAAE4mB,cAAc5mB,GAAG,IAAIuB,EAAEqlB,cAAc5mB,GAAGxC,EAAEktB,KAAI,IAAIhE,aAAanlB,IAAG,EAAEwnB,MAAM/oB,EAAEuB,EAAEpB,GAAG,IAAInD,EAAEgD,EAAE+oB,MAAMw3D,iBAAiBh/E,GAAG,OAAOnL,OAAOC,OAAO2J,EAAE+oB,MAAM,CAAC,CAACxnB,GAAGpB,IAAIwhB,KAAK+I,KAAI,KAAKt0B,OAAOC,OAAO2J,EAAE+oB,MAAM,CAAC,CAACxnB,GAAGvE,GAAE,GAAG,EAAE0oE,MAAM1lE,GAAG,IAAIuB,EAAEkhC,KAAI,OAAOziC,EAAEuB,GAAGogB,KAAK+I,KAAI,IAAInpB,EAAEwjB,WAAU,EAAE2F,IAAI1qB,GAAG,OAAOulB,EAAEvuB,KAAKgJ,GAAG,KAAK,IAAIuB,EAAEgkB,EAAE5hB,QAAQ3D,GAAG,GAAGuB,GAAG,EAAE,IAAI,IAAIpB,KAAKolB,EAAE3E,OAAOrf,EAAE,GAAGpB,GAAE,CAAE,EAAE4kB,UAAU,IAAI,IAAI/kB,KAAKulB,EAAE3E,OAAO,GAAG5gB,GAAG,GAAG,OAAOxC,CAAC,CCA1rB,SAAS,KAAI,IAAIs8E,EAAE,MAAM,CAACxI,QAAQkP,IAAIxgF,IAAI,IAAIi5B,EAAE,IAAI1T,EAAEvlB,EAAEqY,gBAAgByhE,GAAsB,OAAlB7gD,EAAEj5B,EAAEqW,aAAmB4iB,EAAE9iB,QAAQ0E,WAAW0K,EAAE5K,WAAW,EAAE8lE,OAAOD,IAAIxgF,EAAEjD,EAAEwoB,IAAI,IAAIhkB,EAAEvB,EAAEqY,gBAAgB4gB,EAAE13B,EAAEoZ,YAAYpZ,EAAE0W,YAAYwqB,EAAEq3C,EAAE7gD,EAAE1T,EAAEwD,MAAMxnB,EAAE,eAAe,GAAGkhC,MAAM,EAAE,CCA1P,SAAS,KAAI,MAAM,WAAW/5B,KAAKyN,OAAOkB,UAAUlH,WAAW,QAAQzH,KAAKyN,OAAOkB,UAAUlH,WAAWgG,OAAOkB,UAAUqpE,eAAe,CAAC,CCAzF,SAAS,KAAI,IAAI,KAAI,MAAM,CAAC,EAAE,IAAI5G,EAAE,MAAM,CAACxI,SAASwI,EAAE3jE,OAAOuC,WAAW,EAAE+nE,OAAOD,IAAI/9C,EAAE1lC,EAAEk8B,EAAEoP,KAAK7qC,IAAI,SAAS2C,EAAEH,GAAG,OAAOxC,EAAEwhF,WAAWrE,SAAQp5E,GAAGA,MAAKgvC,MAAKhvC,GAAGA,EAAEwa,SAAS/b,IAAG,CAACi5B,EAAElQ,MAAM0Z,EAAE3oB,KAAK,YAAY,IAAIggE,OAAO3jE,OAAOwqE,SAAS,EAAE,GAAG,IAAIp7D,EAAE,KAAK0T,EAAEjZ,iBAAiByiB,EAAE,SAAQziC,IAAI,GAAGA,EAAEqa,kBAAkB1D,YAAY,IAAI,IAAIpV,EAAEvB,EAAEqa,OAAOumE,QAAQ,KAAK,IAAIr/E,EAAE,OAAO,IAAI0Q,KAAK/R,GAAG,IAAI2gF,IAAIt/E,EAAEu/E,MAAM9jF,EAAEylC,EAAElb,cAAcrnB,GAAGlD,IAAImD,EAAEnD,KAAKuoB,EAAEvoB,EAAS,CAAN,MAAM,KAAG,GAAIi8B,EAAEjZ,iBAAiByiB,EAAE,aAAYziC,IAAIA,EAAEqa,kBAAkB1D,cAAcxW,EAAEH,EAAEqa,SAASra,EAAEiyC,gBAAe,GAAG,CAAC5mB,SAAQ,IAAK4N,EAAEvO,KAAI,KAAKvU,OAAOwqE,SAAS,EAAExqE,OAAOuC,YAAYohE,GAAGv0D,GAAGA,EAAE05D,cAAc15D,EAAEw7D,eAAe,CAACj6B,MAAM,YAAYvhC,EAAE,KAAI,GAAG,EAAE,CCA3a,SAAS,GAAEvlB,GAAG,IAAIulB,EAAE,CAAC,EAAE,IAAI,IAAIhkB,KAAKvB,EAAE5J,OAAOC,OAAOkvB,EAAEhkB,EAAEgkB,IAAI,OAAOA,CAAC,CAAC,IAAI,GCA3W,SAAWu0D,EAAEr3C,GAAG,IAAIlhC,EAAEu4E,IAAIv0D,EAAE,IAAIrB,IAAI,MAAM,CAAC88D,cAAc,OAAOz/E,CAAC,EAAE0/E,UAAUjhF,GAAG,OAAOulB,EAAEmF,IAAI1qB,GAAG,IAAIulB,EAAEiH,OAAOxsB,EAAE,EAAEkhF,SAASlhF,KAAKxC,GAAG,IAAI2C,EAAEsiC,EAAEziC,GAAGvH,KAAK8I,KAAK/D,GAAG2C,IAAIoB,EAAEpB,EAAEolB,EAAE6F,SAAQlrB,GAAGA,MAAK,EAAE,CDAuL,EAAE,IAAI,IAAIk9B,KAAI,CAAC+jD,KAAKnhF,EAAEulB,GAAG,IAAIu0D,EAAE,IAAIv4E,EAAmB,OAAhBu4E,EAAEn4D,KAAK5B,IAAI/f,IAAU85E,EAAE,CAAC0G,IAAIxgF,EAAEoF,MAAM,EAAErI,EAAE,KAAIsrC,KAAK,IAAInkB,KAAK,OAAO3iB,EAAE6D,QAAQ7D,EAAE8mC,KAAK3d,IAAInF,GAAG5D,KAAKyY,IAAIp6B,EAAEuB,GAAGogB,IAAI,EAAEy/D,IAAIphF,EAAEulB,GAAG,IAAIhkB,EAAEogB,KAAK5B,IAAI/f,GAAG,OAAOuB,IAAIA,EAAE6D,QAAQ7D,EAAE8mC,KAAK7b,OAAOjH,IAAI5D,IAAI,EAAE0/D,gBAAgBb,IAAIxgF,EAAEjD,EAAEwoB,EAAE8iB,KAAK9mC,IAAI,IAAIu4E,EAAE,CAAC0G,IAAIxgF,EAAEjD,EAAEwoB,EAAE8iB,KAAK,GAAE9mC,IAAIrB,EAAE,CAAC,KAAI,KEA3nB,CAACoxE,QAAQkP,IAAIxgF,EAAEjD,EAAE+8E,IAAIA,EAAE/wD,MAAM/oB,EAAEqY,gBAAgB,WAAW,SAAS,IFAikBnY,EAAEkrB,SAAQ,EAAEkmD,OAAO7uC,KAAQ,MAAHA,OAAQ,EAAOA,EAAEq3C,KAAI55E,EAAEkrB,SAAQ,EAAEq1D,MAAMh+C,KAAQ,MAAHA,OAAQ,EAAOA,EAAEq3C,IAAG,EAAEwH,cAAcvkF,EAAEiD,IAAIA,EAAE+kB,SAAS,EAAEw8D,UAAUf,IAAIxgF,IAAI2hB,KAAK6K,OAAOxsB,EAAE,IGApqB,SAAS,GAAEuB,EAAEvE,EAAEuoB,GAAG,IAAIplB,ECAlH,SAAWoB,GAAG,IAAIvB,GAAE,QAAEuB,EAAEy/E,eAAe,OAAO,QAAEz/E,EAAE0/E,WAAU,KAAKjhF,EAAE9J,MAAMqL,EAAEy/E,aAAY,KAAKhhF,CAAC,CDAuB,CAAE,IAAGi5B,GAAE,SAAE,KAAK,IAAIj5B,EAAEuB,EAAErL,MAAMiK,EAAEjK,MAAM6pB,IAAIxe,EAAErL,YAAO,EAAO,QAAO8J,GAAEA,EAAEoF,MAAM,CAAG,IAAI,OAAO,QAAE,CAAC7D,EAAEvE,IAAG,EAAEgD,EAAE1C,IAAImlC,GAAGq3C,KAAK,IAAI95E,IAAI1C,EAAE,OAAO,YAAW,OAAO0C,EAAEulB,GAAG,IAAIirB,GAAE,EAAGspC,GAAE,KAAKtpC,IAAI,YAAW,MAAS,MAAH/N,EAAQA,EAAEziC,EAAEulB,GAAGirB,GAAE,EAAE,GAAE,GAAG,CAACrc,WAAU,IAAK8E,CAAC,CHA2a,GAAEgoD,WAAU,KAAK,IAAIjhF,EAAE,GAAEghF,cAAcz7D,EAAE,IAAI6X,IAAI,IAAI,IAAI77B,KAAKvB,EAAEulB,EAAE6U,IAAI74B,EAAEA,EAAE8W,gBAAgB0Q,MAAMvV,UAAU,IAAI,IAAIjS,KAAKvB,EAAEhK,SAAS,CAAC,IAAI8jF,EAAiB,WAAfv0D,EAAExF,IAAIxe,EAAEi/E,KAAgBtgF,EAAY,IAAVqB,EAAE6D,OAAWlF,IAAI45E,IAAI55E,GAAG45E,IAAI,GAAEoH,SAAS3/E,EAAE6D,MAAM,EAAE,iBAAiB,eAAe7D,GAAa,IAAVA,EAAE6D,OAAW,GAAE87E,SAAS,WAAW3/E,EAAE,KKA0J,IAAIigF,GAAG,CAACvoD,IAAIA,EAAEA,EAAE8mD,KAAK,GAAG,OAAO9mD,EAAEA,EAAE+mD,OAAO,GAAG,SAAS/mD,GAA/C,CAAmDuoD,IAAI,CAAC,GAAG,IAAI,GAAEvpF,OAAO,iBAAiB,SAAS,GAAEwqC,GAAG,IAAIld,GAAE,QAAE,GAAE,MAAM,GAAO,OAAJA,EAAS,CAAC,IAAI0T,EAAE,IAAIjgC,MAAM,IAAIypC,kDAAkD,MAAMzpC,MAAMwzE,mBAAmBxzE,MAAMwzE,kBAAkBvzC,EAAE,IAAGA,CAAC,CAAC,OAAO1T,CAAC,CAAC,IAAI,GAAE,uCAAuCk8D,IAAG,QAAE,CAAChrF,KAAK,SAASm9B,cAAa,EAAGtS,MAAM,CAACksB,GAAG,CAAC1rB,KAAK,CAAC1rB,OAAO0G,QAAQ+kB,QAAQ,OAAOuqD,OAAO,CAACtqD,KAAKM,QAAQP,SAAQ,GAAIy+C,QAAQ,CAACx+C,KAAKM,QAAQP,SAAQ,GAAI6/D,KAAK,CAAC5/D,KAAK,CAACM,QAAQtlB,QAAQ+kB,QAAQ,IAAGk9D,aAAa,CAACj9D,KAAK1rB,OAAOyrB,QAAQ,MAAMyQ,GAAG,CAACxQ,KAAKhlB,OAAO+kB,QAAQ,IAAI,qBAAqB,QAAQwB,MAAM,CAACs+D,MAAMl/C,IAAG,GAAI5M,MAAM4M,GAAG8I,KAAKhmB,EAAEb,MAAMuU,EAAEuK,MAAMnhC,EAAEmsC,OAAOruC,IAAI,IAAIi8E,EAAE,IAAIp/E,GAAE,SAAE,IAAI,SAAE,KAAKA,EAAE9G,OAAM,CAAC,IAAI,IAAIs6C,GAAE,QAAE,GAAGzzC,EAAE,KAAKO,GAAE,SAAE,IAAImlC,EAAEi/C,OAAO,IAAO,OAAJ3kF,GAAUA,EAAE7G,MAAM,WAAU,QAAOusC,EAAEi/C,OAAMt/C,GAAE,QAAE,MAAM1jC,GAAE,QAAE,MAAM0C,GAAE,SAAE,IAAI,EAAGghC,KAAI,GAAGjiC,EAAE,CAACisB,GAAGgW,EAAEnb,IAAImb,IAAMK,EAAEi/C,OAAO,IAAO,OAAJ3kF,EAAU,MAAM,IAAI/D,MAAM,yDAAyD,GAAmB,kBAATsE,EAAEpH,MAAiB,MAAM,IAAI8C,MAAM,8FAA8FsE,EAAEpH,QAAQ,QAAE,EAAOusC,EAAEi/C,QAAQ,IAAIxhF,GAAE,SAAE,IAAIlD,EAAE9G,OAAOoH,EAAEpH,MAAM,EAAE,IAAGyK,GAAE,SAAE,IAAc,IAAVT,EAAEhK,QAAW+I,GAAE,SAAE,IAAIuxC,EAAEt6C,MAAM,IAAG0iE,EAAc,QAAZ,QAAE,GAAE,MAAa56D,GAAE,SAAE,IAAIiB,EAAE/I,MAAM,SAAS,SAAQskF,GAAE,SAAE,IAAQ,OAAJz9E,IAAUA,EAAE7G,MAAM,cAAa,aAAc0rF,GAAE,SAAE,KAAIhpB,IAAG4hB,EAAEtkF,OAASyK,EAAEzK,QAAOgpF,GAAE,SAAE,KAAK,IAAIl/E,EAAEuB,EAAE5C,EAAE,OAAqL,OAA9KA,EAAE4J,MAAMwV,KAAkE,OAA5Dxc,EAAe,OAAZvB,EAAEoB,EAAElL,YAAa,EAAO8J,EAAE+8E,iBAAiB,aAAmBx7E,EAAE,IAAI6S,MAAK5W,GAAU,2BAAPA,EAAE80B,KAAiC90B,EAAEue,SAAS,EAAErd,KAAKlB,aAAamZ,gBAAoBhY,EAAE,QAAO,EAAEugF,EAAE0C,GAAG,IAAIhjF,GAAE,SAAE,MAAIK,EAAE/I,OAASyK,EAAEzK,QAAO2rF,GAAE,SAAE,KAAK,IAAI7hF,EAAEuB,EAAE5C,EAAE,OAAkK,OAA3JA,EAAE4J,MAAMwV,KAAkF,OAA5Exc,EAAe,OAAZvB,EAAEoB,EAAElL,YAAa,EAAO8J,EAAE+8E,iBAAiB,6BAAmCx7E,EAAE,IAAI6S,MAAK5W,GAAGA,EAAEue,SAAS,EAAErd,KAAKlB,aAAamZ,eAAoBhY,EAAE,QAAO,EAAEkjF,EAAEjjF,GAAG,EAAG,CAACkjB,KAAK,SAAS+9D,SAAQ,SAAE,IAAc,IAAV3/E,EAAEhK,QAAW0a,QAAQwxB,EAAE09C,SAAS,CAAC9/E,EAAEuB,KAAK,GAAO,WAAJA,EAAa,OAAO,EAAEvB,EAAE,CAAC,CAAC,OAAO,IAAIwwC,EAAEt6C,OAAO,EAAE,CAAC,UAAU,IAAIs6C,EAAEt6C,OAAO,GAAE,IAAK,IAAI0K,EAAE,EAAG,CAACnK,KAAK,oBAAoBqhE,MAAK,SAAE,KAAI,CAAE4pB,KAAKpkF,EAAEpH,YAAWyG,GAAE,QAAE,MAAMH,EAAE,CAACslF,QAAQnlF,EAAEolF,UAAS,QAAE,MAAMC,YAAY9hF,EAAE+hF,WAAWjiF,GAAGrD,EAAEzG,QAAQ8J,IAAIrD,EAAEzG,MAAM8J,EAAE,EAAE2hF,QAAQp8D,EAAE,SAAQ,EAAG,GAAW,SAASpkB,IAAI,IAAII,EAAE5C,EAAEnB,EAAE,MAAM,IAAI+K,MAAMwV,KAAsG,OAAhGpf,EAAe,OAAZ4C,EAAEH,EAAElL,YAAa,EAAOqL,EAAEw7E,iBAAiB,iDAAuDp+E,EAAE,IAAI2U,QAAO+kC,KAAKA,IAAIjgC,SAAS0B,MAAMu+B,IAAIjgC,SAAS8pE,QAAQ7pC,aAAa1hC,cAAc0hC,EAAEt8B,SAAS,EAAErd,KAAKlC,EAAEulF,SAAS7rF,OAAOmiD,EAAEt8B,SAASvf,EAAEulF,SAAS7rF,UAA+B,OAArBsH,EAAEhB,EAAEulF,SAAS7rF,OAAasH,EAAE4kC,EAAElsC,MAAM,EAAvV,QAAG,GAAEsG,GAAqX,IAAG,IAAI2E,MAAI,CAACnB,EAAEuB,KAAK/E,EAAEmlF,SAAQ,SAAG,IAAO,MAAHpgF,OAAQ,EAAOA,EAAE+e,SAAO,IAAxF,SAAE,OAAO3f,EAAEzK,OAAO+I,EAAE/I,UAA0E,IAAIisF,GAAG,SAAE,MAAMljF,EAAE/I,OAAiB,IAAVgK,EAAEhK,SAAY,EAAgB,OAAZkmF,EAAEh7E,EAAElL,YAAa,EAAOkmF,EAAE/lE,YAAY,WAAUrW,IAAImiF,EAAGjsF,QAAQ8J,EAAE66E,kBAAkB76E,EAAEsI,MAAM,WAAYtI,EAAEiyC,iBAAiBjyC,EAAEkyC,kBAAkB11C,EAAEmlF,SAAQ,IAAI,IAAIjsB,GAAG,SAAE,MAAM8kB,EAAEtkF,OAAiB,IAAVgK,EAAEhK,OAAW0iE,KAAI,OAAO,GAAGx3D,EAAEs0D,GAAG11D,IAAI,IAAIuB,EAAE,MAAM,CAACy9E,WAAW,IAAsB,OAAjBz9E,EAAEvB,EAAEg/E,YAAkBz9E,EAAE,GAAGJ,GAAE,KAAI,SAAGnB,IAAI,GAAa,IAAVE,EAAEhK,MAAU,OAAO,IAAIqL,EAAE,EAAE6gC,GAAG,IAAI7gC,EAAE,OAAO,IAAI5C,EAAE,IAAImzB,gBAAet0B,IAAI,IAAI,IAAI66C,KAAK76C,EAAE,CAAC,IAAIJ,EAAEi7C,EAAEh+B,OAAOzC,wBAA8B,IAANxa,EAAE+D,GAAa,IAAN/D,EAAEZ,GAAiB,IAAVY,EAAEe,OAAsB,IAAXf,EAAEiS,QAAY7S,EAAEmlF,OAAO,KAAIhjF,EAAEyjF,QAAQ7gF,GAAGvB,GAAE,IAAIrB,EAAE0jF,cAAY,IAAI,KAAK,IAAI/vD,GAAGtyB,EAAE0hF,KAAKngF,EAAEw9E,aAAapgF,KAAKnB,GAAGilC,EAAE4V,EAAE,IAAIpf,EAAErJ,IAAIwS,EAAE9P,GAAGtyB,EAAEm3C,KAAK,SAAS,aAAuB,IAAVj3C,EAAEhK,YAAa,EAAO,kBAAkByG,EAAEzG,MAAM,mBAAmB0K,EAAE1K,OAAOkH,EAAE,CAACskF,KAAe,IAAVxhF,EAAEhK,OAAW,OAAO,OAAE,EAAE,CAAC+vB,OAAM,IAAI,IAAI,EAAC,OAAE,GAAE,KAAI,OAAE,EAAG,CAAC5L,OAAO+nB,EAAElsC,QAAO,KAAI,OAAE,EAAE,CAAC+vB,OAAM,IAAI,KAAI,OAAE,EAAE,CAAC84D,aAAapgF,EAAEqgF,WAAW79E,EAAEk5E,SAAS15E,EAAEzK,MAAM,EAAE8H,EAAE9H,MAAM,CAACylB,OAAO,wBAAwB2mE,KAAK,gBAAgB,uBAAuB,kBAAiB,IAAI,EAAE,CAAChI,SAASjiC,EAAEkiC,WAAW/8E,EAAEs6D,KAAK16D,EAAEsnB,MAAMuU,EAAEuK,MAAMnhC,EAAE+3E,QAAkB,IAAVl6E,EAAEhK,MAAUmkF,SAAS,iBAAiB,SAAS5jF,KAAK,oBAAe,OAAE,EAAG,CAAC4jF,SAAS,SAAUzqD,IAAIlxB,MAAI,CAAE,IAAI6jF,IAAG,QAAE,CAAC9rF,KAAK,gBAAgB6qB,MAAM,CAACksB,GAAG,CAAC1rB,KAAK,CAAC1rB,OAAO0G,QAAQ+kB,QAAQ,OAAOyQ,GAAG,CAACxQ,KAAKhlB,OAAO+kB,QAAQ,IAAI,6BAA6B,QAAQgU,MAAM4M,GAAG/d,MAAMa,EAAEie,MAAMvK,IAAI,IAAI52B,EAAE,GAAE,iBAAiB,SAASlC,EAAEnD,GAAGA,EAAEqd,SAASrd,EAAE+5B,gBAAgB/5B,EAAEi1C,iBAAiBj1C,EAAEk1C,kBAAkB7vC,EAAEs/E,QAAQ,CAAC,MAAM,KAAK,IAAIrvD,GAAGt1B,KAAKwzC,GAAG/N,EAAE,OAAO,EAAE,CAAC63C,SAAS,CAAChoD,GAAGt1B,EAAE,eAAc,EAAGy1B,QAAQtyB,GAAGo6E,WAAW/pC,EAAEsnB,KAAK,CAAC4pB,KAA2B,IAAtBr/E,EAAE2/E,YAAY9rF,OAAWwuB,MAAMa,EAAEie,MAAMvK,EAAExiC,KAAK,iBAAgB,CAAE,IAAmhC+rF,KAA5gC,QAAE,CAAC/rF,KAAK,iBAAiB6qB,MAAM,CAACksB,GAAG,CAAC1rB,KAAK,CAAC1rB,OAAO0G,QAAQ+kB,QAAQ,OAAOyQ,GAAG,CAACxQ,KAAKhlB,OAAO+kB,QAAQ,IAAI,8BAA8B,QAAQ+R,cAAa,EAAGiC,MAAM4M,GAAG/d,MAAMa,EAAEie,MAAMvK,EAAEuV,OAAOnsC,IAAI,IAAIlC,EAAE,GAAE,kBAAkBnD,GAAE,QAAE,MAAM,OAAOqF,EAAE,CAAC+pB,GAAGpvB,EAAEiqB,IAAIjqB,KAAI,SAAE,KAAK,GAAsB,OAAnBmD,EAAE4hF,SAAS7rF,MAAa,MAAM,IAAI8C,MAAM,4FAA2F,IAAI,KAAK,IAAIs5B,GAAGke,KAAKzzC,GAAG0lC,EAAEnlC,EAAE,CAACg1B,GAAGke,EAAE5gB,IAAI5yB,EAAE,eAAc,GAAI,OAAO,OAAE,EAAE,CAACipB,OAAM,IAAI,KAAI,OAAE,GAAE,IAAI,EAAE,CAACq0D,SAASh9E,EAAEi9E,WAAW,IAAIh1D,KAAKxoB,GAAG+6D,KAAK,CAAC4pB,KAA2B,IAAtBvhF,EAAE6hF,YAAY9rF,OAAWwuB,MAAMa,EAAEie,MAAMvK,EAAExiC,KAAK,sBAAmB,CAAE,KAAO,QAAE,CAACA,KAAK,cAAc6qB,MAAM,CAACksB,GAAG,CAAC1rB,KAAK,CAAC1rB,OAAO0G,QAAQ+kB,QAAQ,OAAOyQ,GAAG,CAACxQ,KAAKhlB,OAAO+kB,QAAQ,IAAI,2BAA2B,QAAQgU,MAAM4M,GAAG/d,MAAMa,EAAEie,MAAMvK,EAAEuV,OAAOnsC,IAAI,IAAIlC,EAAE,GAAE,eAAiD,SAASnD,EAAEwzC,GAAGA,EAAE0B,iBAAiB,CAAC,OAApE7vC,EAAE,CAAC+pB,GAAGjsB,EAAE4hF,SAAS96D,IAAI9mB,EAAE4hF,WAAmD,KAAK,IAAIzvD,GAAGke,KAAKzzC,GAAG0lC,EAAoC,OAAO,EAAE,CAAC63C,SAA1C,CAAChoD,GAAGke,EAAE5gB,IAAIzvB,EAAE4hF,SAAStvD,QAAQz1B,GAAwBu9E,WAAWx9E,EAAE+6D,KAAK,CAAC4pB,KAA2B,IAAtBvhF,EAAE6hF,YAAY9rF,OAAWwuB,MAAMa,EAAEie,MAAMvK,EAAExiC,KAAK,eAAc,CAAE,KAAO,QAAE,CAACA,KAAK,cAAc6qB,MAAM,CAACksB,GAAG,CAAC1rB,KAAK,CAAC1rB,OAAO0G,QAAQ+kB,QAAQ,MAAMyQ,GAAG,CAACxQ,KAAKhlB,OAAO+kB,QAAQ,IAAI,2BAA2B,QAAQgU,MAAM4M,GAAG/d,MAAMa,EAAEie,MAAMvK,IAAI,IAAI52B,EAAE,GAAE,eAAe,OAAO,SAAE,KAAKA,EAAE4/E,WAAWx/C,EAAEnQ,KAAI,SAAG,IAAIjwB,EAAE4/E,WAAW,OAAK,IAAI,KAAK,IAAI3vD,GAAGnyB,KAAKnD,GAAGylC,EAAE,OAAO,EAAE,CAAC63C,SAAS,CAAChoD,GAAGnyB,GAAGo6E,WAAWv9E,EAAE86D,KAAK,CAAC4pB,KAA2B,IAAtBr/E,EAAE2/E,YAAY9rF,OAAWwuB,MAAMa,EAAEie,MAAMvK,EAAExiC,KAAK,eAAc,CAAE,gGCGnrN,MAAMgsF,UAAqB,IACzBtqF,cACEm0E,QAEA3qD,KAAKkU,MAAQi0C,IAGX,IAAK,MAAY3zD,OAAO6J,iBAAkB,CACxC,MAAM4L,EAAW,IAAMk+C,IAKvB,OAFA3zD,OAAO6J,iBAAiB,mBAAoB4L,GAAU,GACtDzV,OAAO6J,iBAAiB,QAAS4L,GAAU,GACpC,KAELzV,OAAO0V,oBAAoB,mBAAoBD,GAC/CzV,OAAO0V,oBAAoB,QAASD,EAAS,CAEjD,CAEM,CAEV,CAEA82D,cACO/gE,KAAKghE,SACRhhE,KAAKihE,iBAAiBjhE,KAAKkU,MAE/B,CAEAgtD,gBAEI,IAAIC,EADDnhE,KAAKohE,iBAG0B,OAAjCD,EAAgBnhE,KAAKghE,UAA4BG,EAAcrqF,KAAKkpB,MACrEA,KAAKghE,aAAUj9E,EAEnB,CAEAk9E,iBAAiB/sD,GACf,IAAImtD,EAEJrhE,KAAKkU,MAAQA,EACsB,OAAlCmtD,EAAiBrhE,KAAKghE,UAA4BK,EAAevqF,KAAKkpB,MACvEA,KAAKghE,QAAU9sD,GAAMotD,IACI,mBAAZA,EACTthE,KAAKuhE,WAAWD,GAEhBthE,KAAKmoD,SACP,GAEJ,CAEAoZ,WAAWD,GACTthE,KAAKshE,QAAUA,EAEXA,GACFthE,KAAKmoD,SAET,CAEAA,UACEnoD,KAAKwhE,UAAU/3D,SAAQQ,IACrBA,GAAU,GAEd,CAEAw3D,YACE,MAA4B,mBAAjBzhE,KAAKshE,QACPthE,KAAKshE,QAIU,qBAAb7qE,UAIJ,MAAC1S,EAAW,UAAW,aAAamJ,SAASuJ,SAASirE,gBAC/D,EAGF,MAAMC,EAAe,IAAIb,oECpFzB,MAAMc,EAAgBzqF,2ICMtB,MAAM0qF,UAAiB,IACrBrrF,YAAYmkB,GACVgwD,QACA3qD,KAAK1mB,QAAU,IAAKqhB,EAAOxhB,kBACtBwhB,EAAOrhB,SAEZ0mB,KAAK8hE,WAAannE,EAAOmnE,WACzB9hE,KAAK+hE,cAAgBpnE,EAAOonE,cAC5B/hE,KAAKgiE,OAASrnE,EAAOqnE,QAAU,IAC/BhiE,KAAKiiE,UAAY,GACjBjiE,KAAKknB,MAAQvsB,EAAOusB,OAASg7C,IAC7BliE,KAAKmiE,gBAAgBniE,KAAK1mB,QAAQ8oF,WAClCpiE,KAAKqiE,YACP,CAEI37C,WACF,OAAO1mB,KAAK1mB,QAAQotC,IACtB,CAEAO,SAASC,GACPlnB,KAAKu/D,SAAS,CACZp/D,KAAM,WACN+mB,SAEJ,CAEAo7C,YAAYC,IACgC,IAAtCviE,KAAKiiE,UAAUjgF,QAAQugF,KACzBviE,KAAKiiE,UAAU5sF,KAAKktF,GAEpBviE,KAAKwiE,iBACLxiE,KAAK+hE,cAAcU,OAAO,CACxBtiE,KAAM,gBACN4xB,SAAU/xB,KACVuiE,aAGN,CAEAG,eAAeH,GACbviE,KAAKiiE,UAAYjiE,KAAKiiE,UAAUtwE,QAAOnS,GAAKA,IAAM+iF,IAClDviE,KAAKqiE,aACLriE,KAAK+hE,cAAcU,OAAO,CACxBtiE,KAAM,kBACN4xB,SAAU/xB,KACVuiE,YAEJ,CAEAI,iBACO3iE,KAAKiiE,UAAUjtF,SACQ,YAAtBgrB,KAAKknB,MAAM07C,OACb5iE,KAAKqiE,aAELriE,KAAK+hE,cAAc/4D,OAAOhJ,MAGhC,CAEA6iE,WACE,IAAIC,EAAuBC,EAE3B,OAA+G,OAAvGD,EAA0D,OAAjCC,EAAgB/iE,KAAKgjE,cAAmB,EAASD,EAAcF,YAAsBC,EAAwB9iE,KAAKijE,SACrJ,CAEA7uF,gBACE,MAAM8uF,EAAkB,KACtB,IAAIC,EA+BJ,OA7BAnjE,KAAKgjE,SAAU,QAAc,CAC3BjvE,GAAI,IACGiM,KAAK1mB,QAAQ8pF,WAIXpjE,KAAK1mB,QAAQ8pF,WAAWpjE,KAAKknB,MAAMm8C,WAHjClkE,QAAQ44C,OAAO,uBAK1BurB,OAAQ,CAACC,EAAc1uF,KACrBmrB,KAAKu/D,SAAS,CACZp/D,KAAM,SACNojE,eACA1uF,SACA,EAEJ2uF,QAAS,KACPxjE,KAAKu/D,SAAS,CACZp/D,KAAM,SACN,EAEJsjE,WAAY,KACVzjE,KAAKu/D,SAAS,CACZp/D,KAAM,YACN,EAEJujE,MAAqD,OAA7CP,EAAsBnjE,KAAK1mB,QAAQoqF,OAAiBP,EAAsB,EAClFQ,WAAY3jE,KAAK1mB,QAAQqqF,WACzBC,YAAa5jE,KAAK1mB,QAAQsqF,cAErB5jE,KAAKgjE,QAAQa,OAAO,EAGvBC,EAAiC,YAAtB9jE,KAAKknB,MAAM07C,OAE5B,IACE,IAAImB,EAAwBC,EAAwBC,EAAuBC,EAAgBC,EAAuBC,EAElH,IAAKN,EAAU,CACb,IAAIO,EAAuBC,EAAwBC,EAAuBC,EAE1ExkE,KAAKu/D,SAAS,CACZp/D,KAAM,UACNkjE,UAAWrjE,KAAK1mB,QAAQ+pF,kBAGwE,OAA1FgB,GAAyBC,EAAyBtkE,KAAK+hE,cAAcpnE,QAAQ8pE,eAAoB,EAASJ,EAAsBvtF,KAAKwtF,EAAwBtkE,KAAKknB,MAAMm8C,UAAWrjE,OAC3L,MAAM7iB,QAAsF,OAApEonF,GAAyBC,EAAgBxkE,KAAK1mB,SAASmrF,eAAoB,EAASF,EAAsBztF,KAAK0tF,EAAexkE,KAAKknB,MAAMm8C,YAE7JlmF,IAAY6iB,KAAKknB,MAAM/pC,SACzB6iB,KAAKu/D,SAAS,CACZp/D,KAAM,UACNhjB,UACAkmF,UAAWrjE,KAAKknB,MAAMm8C,WAG5B,CAEA,MAAMhxE,QAAa6wE,IASnB,aAPoG,OAA5Fa,GAA0BC,EAAyBhkE,KAAK+hE,cAAcpnE,QAAQ+pE,gBAAqB,EAASX,EAAuBjtF,KAAKktF,EAAwB3xE,EAAM2N,KAAKknB,MAAMm8C,UAAWrjE,KAAKknB,MAAM/pC,QAAS6iB,aAC1I,OAAtEikE,GAAyBC,EAAiBlkE,KAAK1mB,SAASorF,gBAAqB,EAAST,EAAsBntF,KAAKotF,EAAgB7xE,EAAM2N,KAAKknB,MAAMm8C,UAAWrjE,KAAKknB,MAAM/pC,gBAClG,OAAtEgnF,GAAyBC,EAAiBpkE,KAAK1mB,SAASqrF,gBAAqB,EAASR,EAAsBrtF,KAAKstF,EAAgB/xE,EAAM,KAAM2N,KAAKknB,MAAMm8C,UAAWrjE,KAAKknB,MAAM/pC,UACtL6iB,KAAKu/D,SAAS,CACZp/D,KAAM,UACN9N,SAEKA,CAqBT,CApBE,MAAOxd,GACP,IACE,IAAI+vF,EAAwBC,EAAwBC,EAAuBC,EAAgBC,EAAwBC,EAWnH,YARkG,OAA1FL,GAA0BC,EAAyB7kE,KAAK+hE,cAAcpnE,QAAQ8/B,cAAmB,EAASmqC,EAAuB9tF,KAAK+tF,EAAwBhwF,EAAOmrB,KAAKknB,MAAMm8C,UAAWrjE,KAAKknB,MAAM/pC,QAAS6iB,aAM3I,OAApE8kE,GAAyBC,EAAiB/kE,KAAK1mB,SAASmhD,cAAmB,EAASqqC,EAAsBhuF,KAAKiuF,EAAgBlwF,EAAOmrB,KAAKknB,MAAMm8C,UAAWrjE,KAAKknB,MAAM/pC,gBAChG,OAAvE6nF,GAA0BC,EAAiBjlE,KAAK1mB,SAASqrF,gBAAqB,EAASK,EAAuBluF,KAAKmuF,OAAgBlhF,EAAWlP,EAAOmrB,KAAKknB,MAAMm8C,UAAWrjE,KAAKknB,MAAM/pC,UACxLtI,CAMR,CALE,QACAmrB,KAAKu/D,SAAS,CACZp/D,KAAM,QACNtrB,MAAOA,GAEX,CACF,CACF,CAEA0qF,SAAStf,GA0DPjgD,KAAKknB,MAzDWA,KACd,OAAQ+4B,EAAO9/C,MACb,IAAK,SACH,MAAO,IAAK+mB,EACVq8C,aAActjB,EAAOsjB,aACrB2B,cAAejlB,EAAOprE,OAG1B,IAAK,QACH,MAAO,IAAKqyC,EACVi+C,UAAU,GAGd,IAAK,WACH,MAAO,IAAKj+C,EACVi+C,UAAU,GAGd,IAAK,UACH,MAAO,IAAKj+C,EACV/pC,QAAS8iE,EAAO9iE,QAChBkV,UAAMtO,EACNw/E,aAAc,EACd2B,cAAe,KACfrwF,MAAO,KACPswF,WAAW,QAASnlE,KAAK1mB,QAAQsqF,aACjChB,OAAQ,UACRS,UAAWpjB,EAAOojB,WAGtB,IAAK,UACH,MAAO,IAAKn8C,EACV70B,KAAM4tD,EAAO5tD,KACbkxE,aAAc,EACd2B,cAAe,KACfrwF,MAAO,KACP+tF,OAAQ,UACRuC,UAAU,GAGd,IAAK,QACH,MAAO,IAAKj+C,EACV70B,UAAMtO,EACNlP,MAAOorE,EAAOprE,MACd0uF,aAAcr8C,EAAMq8C,aAAe,EACnC2B,cAAejlB,EAAOprE,MACtBswF,UAAU,EACVvC,OAAQ,SAGZ,IAAK,WACH,MAAO,IAAK17C,KACP+4B,EAAO/4B,OAEhB,EAGWk+C,CAAQplE,KAAKknB,OAC1B,WAAoB,KAClBlnB,KAAKiiE,UAAUx4D,SAAQ84D,IACrBA,EAAS8C,iBAAiBplB,EAAO,IAEnCjgD,KAAK+hE,cAAcU,OAAO,CACxB1wC,SAAU/xB,KACVG,KAAM,UACN8/C,UACA,GAEN,EAGF,SAASiiB,IACP,MAAO,CACL/kF,aAAS4G,EACTsO,UAAMtO,EACNlP,MAAO,KACP0uF,aAAc,EACd2B,cAAe,KACfC,UAAU,EACVvC,OAAQ,OACRS,eAAWt/E,EAEf,iFCzJA,MAAMuhF,EA7FN,WACE,IAAIC,EAAQ,GACRC,EAAe,EAEfC,EAAW9tD,IACbA,GAAU,EAGR+tD,EAAgB/tD,IAClBA,GAAU,EAGZ,MAiBMguD,EAAWhuD,IACX6tD,EACFD,EAAMlwF,KAAKsiC,IAEX,SAAkB,KAChB8tD,EAAS9tD,EAAS,GAEtB,EAeImP,EAAQ,KACZ,MAAM8+C,EAAgBL,EACtBA,EAAQ,GAEJK,EAAc5wF,SAChB,SAAkB,KAChB0wF,GAAc,KACZE,EAAcn8D,SAAQkO,IACpB8tD,EAAS9tD,EAAS,GAClB,GACF,GAEN,EAqBF,MAAO,CACLkuD,MAzEYluD,IACZ,IAAIj0B,EACJ8hF,IAEA,IACE9hF,EAASi0B,GAOX,CANE,QACA6tD,IAEKA,GACH1+C,GAEJ,CAEA,OAAOpjC,CAAM,EA4DboiF,WA3CiBnuD,GACV,IAAIliC,KACTkwF,GAAS,KACPhuD,KAAYliC,EAAK,GACjB,EAwCJkwF,WACAI,kBAjBwBhyE,IACxB0xE,EAAW1xE,CAAE,EAiBbiyE,uBAT6BjyE,IAC7B2xE,EAAgB3xE,CAAE,EAUtB,CAEsBkyE,8FC5FtB,MAAMC,UAAsB,IAC1B1vF,cACEm0E,QAEA3qD,KAAKkU,MAAQiyD,IAGX,IAAK,MAAY3xE,OAAO6J,iBAAkB,CACxC,MAAM4L,EAAW,IAAMk8D,IAKvB,OAFA3xE,OAAO6J,iBAAiB,SAAU4L,GAAU,GAC5CzV,OAAO6J,iBAAiB,UAAW4L,GAAU,GACtC,KAELzV,OAAO0V,oBAAoB,SAAUD,GACrCzV,OAAO0V,oBAAoB,UAAWD,EAAS,CAEnD,CAEM,CAEV,CAEA82D,cACO/gE,KAAKghE,SACRhhE,KAAKihE,iBAAiBjhE,KAAKkU,MAE/B,CAEAgtD,gBAEI,IAAIC,EADDnhE,KAAKohE,iBAG0B,OAAjCD,EAAgBnhE,KAAKghE,UAA4BG,EAAcrqF,KAAKkpB,MACrEA,KAAKghE,aAAUj9E,EAEnB,CAEAk9E,iBAAiB/sD,GACf,IAAImtD,EAEJrhE,KAAKkU,MAAQA,EACsB,OAAlCmtD,EAAiBrhE,KAAKghE,UAA4BK,EAAevqF,KAAKkpB,MACvEA,KAAKghE,QAAU9sD,GAAMkyD,IACG,mBAAXA,EACTpmE,KAAKqmE,UAAUD,GAEfpmE,KAAKmmE,UACP,GAEJ,CAEAE,UAAUD,GACRpmE,KAAKomE,OAASA,EAEVA,GACFpmE,KAAKmmE,UAET,CAEAA,WACEnmE,KAAKwhE,UAAU/3D,SAAQQ,IACrBA,GAAU,GAEd,CAEAq8D,WACE,MAA2B,mBAAhBtmE,KAAKomE,OACPpmE,KAAKomE,OAGW,qBAAd1wE,WAAyD,qBAArBA,UAAU6wE,QAIlD7wE,UAAU6wE,MACnB,EAGF,MAAMC,EAAgB,IAAIN,mFCjF1B,MAAMO,EACJC,UACE1mE,KAAKwiE,gBACP,CAEAH,aACEriE,KAAKwiE,kBAED,QAAexiE,KAAKoiE,aACtBpiE,KAAK2mE,UAAY1hE,YAAW,KAC1BjF,KAAK2iE,gBAAgB,GACpB3iE,KAAKoiE,WAEZ,CAEAD,gBAAgByE,GAEd5mE,KAAKoiE,UAAYnsF,KAAKqW,IAAI0T,KAAKoiE,WAAa,EAAmB,MAAhBwE,EAAuBA,EAAe,KAAWjS,IAAW,IAC7G,CAEA6N,iBACMxiE,KAAK2mE,YACP5hE,aAAa/E,KAAK2mE,WAClB3mE,KAAK2mE,eAAY5iF,EAErB,yJCvBF,SAAS8iF,EAAkBtD,GACzB,OAAOttF,KAAK0Z,IAAI,IAAO,GAAK4zE,EAAc,IAC5C,CAEA,SAASuD,EAASlD,GAChB,MAA0D,YAAnC,MAAfA,EAAsBA,EAAc,WAAyB,cACvE,CACA,MAAMmD,EACJvwF,YAAY8C,GACV0mB,KAAKgnE,OAAoB,MAAX1tF,OAAkB,EAASA,EAAQ0tF,OACjDhnE,KAAKinE,OAAoB,MAAX3tF,OAAkB,EAASA,EAAQ2tF,MACnD,EAGF,SAASC,EAAiB3yF,GACxB,OAAOA,aAAiBwyF,CAC1B,CACA,SAASI,EAAcxsE,GACrB,IAGIysE,EACAC,EACAC,EALAC,GAAmB,EACnBhE,EAAe,EACfiE,GAAa,EAIjB,MAAM3D,EAAU,IAAI1kE,SAAQ,CAACsoE,EAAcC,KACzCL,EAAiBI,EACjBH,EAAgBI,CAAW,IAkBvBC,EAAc,KAAO,iBAAmD,WAAvBhtE,EAAOipE,cAA6B,eAErFxkE,EAAU7qB,IACTizF,IACHA,GAAa,EACO,MAApB7sE,EAAO+pE,WAA6B/pE,EAAO+pE,UAAUnwF,GACvC,MAAd6yF,GAA8BA,IAC9BC,EAAe9yF,GACjB,EAGIwjE,EAASxjE,IACRizF,IACHA,GAAa,EACK,MAAlB7sE,EAAO8/B,SAA2B9/B,EAAO8/B,QAAQlmD,GACnC,MAAd6yF,GAA8BA,IAC9BE,EAAc/yF,GAChB,EAGIqzF,EAAQ,IACL,IAAIzoE,SAAQ0oE,IACjBT,EAAa7yF,IACX,MAAMuzF,EAAcN,IAAeG,IAMnC,OAJIG,GACFD,EAAgBtzF,GAGXuzF,CAAW,EAGF,MAAlBntE,EAAO6oE,SAA2B7oE,EAAO6oE,SAAS,IACjD1wD,MAAK,KACNs0D,OAAarjF,EAERyjF,GACkB,MAArB7sE,EAAO8oE,YAA8B9oE,EAAO8oE,YAC9C,IAKE/mB,EAAM,KAEV,GAAI8qB,EACF,OAGF,IAAIO,EAEJ,IACEA,EAAiBptE,EAAO5G,IAG1B,CAFE,MAAOlf,GACPkzF,EAAiB5oE,QAAQ44C,OAAOljE,EAClC,CAEAsqB,QAAQC,QAAQ2oE,GAAgBj1D,KAAK1T,GAASw9D,OAAM/nF,IAClD,IAAImzF,EAAeC,EAGnB,GAAIT,EACF,OAIF,MAAM9D,EAA0C,OAAjCsE,EAAgBrtE,EAAO+oE,OAAiBsE,EAAgB,EACjErE,EAAyD,OAA3CsE,EAAqBttE,EAAOgpE,YAAsBsE,EAAqBpB,EACrFvpE,EAA8B,oBAAfqmE,EAA4BA,EAAWJ,EAAc1uF,GAAS8uF,EAC7EuE,GAAwB,IAAVxE,GAAmC,kBAAVA,GAAsBH,EAAeG,GAA0B,oBAAVA,GAAwBA,EAAMH,EAAc1uF,IAE1I0yF,GAAqBW,GAMzB3E,IAEiB,MAAjB5oE,EAAO2oE,QAA0B3oE,EAAO2oE,OAAOC,EAAc1uF,IAE7D,QAAMyoB,GACLwV,MAAK,KACJ,GAAI60D,IACF,OAAOC,GAGH,IACL90D,MAAK,KACFy0D,EACFxvB,EAAOljE,GAEP6nE,GACF,KApBA3E,EAAOljE,EAqBP,GACF,EAUJ,OANIiyF,EAASnsE,EAAOipE,aAClBlnB,IAEAkrB,IAAQ90D,KAAK4pC,GAGR,CACLmnB,UACAsE,OA1HaC,IACRZ,IACHzvB,EAAO,IAAIgvB,EAAeqB,IACV,MAAhBztE,EAAO0tE,OAAyB1tE,EAAO0tE,QACzC,EAuHAxF,SAAU,KAC0B,MAAduE,OAAqB,EAASA,KAC7BvD,EAAU1kE,QAAQC,UAEzCkpE,YAxHkB,KAClBf,GAAmB,CAAI,EAwHvBgB,cArHoB,KACpBhB,GAAmB,CAAK,EAsH5B,qECnKA,MAAMiB,EACJhyF,cACEwpB,KAAKwhE,UAAY,GACjBxhE,KAAKs/D,UAAYt/D,KAAKs/D,UAAUl3D,KAAKpI,KACvC,CAEAs/D,UAAUr1D,GAGR,OAFAjK,KAAKwhE,UAAUnsF,KAAK40B,GACpBjK,KAAK+gE,cACE,KACL/gE,KAAKwhE,UAAYxhE,KAAKwhE,UAAU7vE,QAAOnS,GAAKA,IAAMyqB,IAClDjK,KAAKkhE,eAAe,CAExB,CAEAE,eACE,OAAOphE,KAAKwhE,UAAUxsF,OAAS,CACjC,CAEA+rF,cACA,CAEAG,gBACA,ucCrBF,MAAM1G,EAA6B,qBAAXhmE,QAA0B,SAAUA,OAC5D,SAASi0E,IAET,CACA,SAASC,EAAiBC,EAASvmF,GACjC,MAA0B,oBAAZumF,EAAyBA,EAAQvmF,GAASumF,CAC1D,CACA,SAASC,EAAer0F,GACtB,MAAwB,kBAAVA,GAAsBA,GAAS,GAAKA,IAAUogF,GAC9D,CASA,SAASkU,EAAeC,EAAWC,GACjC,OAAO9yF,KAAKqW,IAAIw8E,GAAaC,GAAa,GAAKnyF,KAAK+sB,MAAO,EAC7D,CACA,SAASqlE,EAAe1kC,EAAMC,EAAM8F,GAClC,OAAK4+B,EAAW3kC,GAII,oBAATC,EACF,IAAK8F,EACV6+B,SAAU5kC,EACV6kC,QAAS5kC,GAIN,IAAKA,EACV2kC,SAAU5kC,GAXHA,CAaX,CAwBA,SAAS8kC,EAAgB9kC,EAAMC,EAAM8F,GACnC,OAAO4+B,EAAW3kC,GAAQ,CAAC,IAAKC,EAC9B2kC,SAAU5kC,GACT+F,GAAQ,CAAC/F,GAAQ,CAAC,EAAGC,EAC1B,CAMA,SAAS8kC,EAAWC,EAASroB,GAC3B,MAAM,KACJ9gD,EAAO,MAAK,MACZopE,EAAK,YACLC,EAAW,UACXniF,EAAS,SACT6hF,EAAQ,MACRO,GACEH,EAEJ,GAAIL,EAAWC,GACb,GAAIK,GACF,GAAItoB,EAAMyoB,YAAcC,EAAsBT,EAAUjoB,EAAM3nE,SAC5D,OAAO,OAEJ,IAAKswF,EAAgB3oB,EAAMioB,SAAUA,GAC1C,OAAO,EAIX,GAAa,QAAT/oE,EAAgB,CAClB,MAAM0pE,EAAW5oB,EAAM4oB,WAEvB,GAAa,WAAT1pE,IAAsB0pE,EACxB,OAAO,EAGT,GAAa,aAAT1pE,GAAuB0pE,EACzB,OAAO,CAEX,CAEA,OAAqB,mBAAVJ,GAAuBxoB,EAAM6oB,YAAcL,MAI3B,qBAAhBD,GAA+BA,IAAgBvoB,EAAM/5B,MAAMsiD,gBAIlEniF,IAAcA,EAAU45D,IAK9B,CACA,SAAS8oB,EAAcT,EAASv3C,GAC9B,MAAM,MACJw3C,EAAK,SACLS,EAAQ,UACR3iF,EAAS,YACT4iF,GACEX,EAEJ,GAAIL,EAAWgB,GAAc,CAC3B,IAAKl4C,EAASz4C,QAAQ2wF,YACpB,OAAO,EAGT,GAAIV,GACF,GAAIW,EAAan4C,EAASz4C,QAAQ2wF,eAAiBC,EAAaD,GAC9D,OAAO,OAEJ,IAAKL,EAAgB73C,EAASz4C,QAAQ2wF,YAAaA,GACxD,OAAO,CAEX,CAEA,OAAwB,mBAAbD,GAAoD,YAA1Bj4C,EAAS7K,MAAM07C,SAAyBoH,MAIzE3iF,IAAcA,EAAU0qC,GAK9B,CACA,SAAS43C,EAAsBT,EAAU5vF,GAEvC,QAD2B,MAAXA,OAAkB,EAASA,EAAQ6wF,iBAAmBD,GACxDhB,EAChB,CAMA,SAASgB,EAAahB,GACpB,OAAOjtD,KAAKC,UAAUgtD,GAAU,CAACt3D,EAAGpE,IAAQ6oB,EAAc7oB,GAAO/4B,OAAO4oC,KAAK7P,GAAKjb,OAAOrd,QAAO,CAACwO,EAAQiD,KACvGjD,EAAOiD,GAAO6mB,EAAI7mB,GACXjD,IACN,CAAC,GAAK8pB,GACX,CAKA,SAASo8D,EAAgBvuF,EAAGuD,GAC1B,OAAOwrF,EAAiB/uF,EAAGuD,EAC7B,CAKA,SAASwrF,EAAiB/uF,EAAGuD,GAC3B,OAAIvD,IAAMuD,UAICvD,WAAauD,OAIpBvD,IAAKuD,GAAkB,kBAANvD,GAA+B,kBAANuD,KACpCnK,OAAO4oC,KAAKz+B,GAAGgwC,MAAKjoC,IAAQyjF,EAAiB/uF,EAAEsL,GAAM/H,EAAE+H,MAInE,CAOA,SAAS0jF,EAAiBhvF,EAAGuD,GAC3B,GAAIvD,IAAMuD,EACR,OAAOvD,EAGT,MAAMkM,EAAQ+iF,EAAajvF,IAAMivF,EAAa1rF,GAE9C,GAAI2I,GAAS8uC,EAAch7C,IAAMg7C,EAAcz3C,GAAI,CACjD,MAAM2rF,EAAQhjF,EAAQlM,EAAErG,OAASP,OAAO4oC,KAAKhiC,GAAGrG,OAC1Cw1F,EAASjjF,EAAQ3I,EAAInK,OAAO4oC,KAAKz+B,GACjC6rF,EAAQD,EAAOx1F,OACfq5E,EAAO9mE,EAAQ,GAAK,CAAC,EAC3B,IAAImjF,EAAa,EAEjB,IAAK,IAAIlsF,EAAI,EAAGA,EAAIisF,EAAOjsF,IAAK,CAC9B,MAAMmI,EAAMY,EAAQ/I,EAAIgsF,EAAOhsF,GAC/B6vE,EAAK1nE,GAAO0jF,EAAiBhvF,EAAEsL,GAAM/H,EAAE+H,IAEnC0nE,EAAK1nE,KAAStL,EAAEsL,IAClB+jF,GAEJ,CAEA,OAAOH,IAAUE,GAASC,IAAeH,EAAQlvF,EAAIgzE,CACvD,CAEA,OAAOzvE,CACT,CAKA,SAAS+rF,EAAoBtvF,EAAGuD,GAC9B,GAAIvD,IAAMuD,GAAKA,IAAMvD,EACnB,OAAO,EAGT,IAAK,MAAMsL,KAAOtL,EAChB,GAAIA,EAAEsL,KAAS/H,EAAE+H,GACf,OAAO,EAIX,OAAO,CACT,CACA,SAAS2jF,EAAa/1F,GACpB,OAAOqS,MAAMC,QAAQtS,IAAUA,EAAMS,SAAWP,OAAO4oC,KAAK9oC,GAAOS,MACrE,CAEA,SAASqhD,EAAc8hC,GACrB,IAAKyS,EAAmBzS,GACtB,OAAO,EAIT,MAAM0S,EAAO1S,EAAE3hF,YAEf,GAAoB,qBAATq0F,EACT,OAAO,EAIT,MAAMC,EAAOD,EAAKp0F,UAElB,QAAKm0F,EAAmBE,MAKnBA,EAAKxjF,eAAe,gBAM3B,CAEA,SAASsjF,EAAmBzS,GAC1B,MAA6C,oBAAtC1jF,OAAOgC,UAAUI,SAASC,KAAKqhF,EACxC,CAEA,SAAS8Q,EAAW10F,GAClB,OAAOqS,MAAMC,QAAQtS,EACvB,CAIA,SAASw2F,EAAMC,GACb,OAAO,IAAI7rE,SAAQC,IACjB6F,WAAW7F,EAAS4rE,EAAQ,GAEhC,CAMA,SAASC,EAAkBtzD,GACzBozD,EAAM,GAAGj4D,KAAK6E,EAChB,CACA,SAASuzD,IACP,GAA+B,oBAApBC,gBACT,OAAO,IAAIA,eAIf,CACA,SAASC,EAAYC,EAAUh5E,EAAM/Y,GAEnC,OAA2B,MAAvBA,EAAQgyF,aAAuBhyF,EAAQgyF,YAAYD,EAAUh5E,GACxDg5E,EACuC,oBAA9B/xF,EAAQiyF,kBACjBjyF,EAAQiyF,kBAAkBF,EAAUh5E,IACJ,IAA9B/Y,EAAQiyF,kBAEVlB,EAAiBgB,EAAUh5E,GAG7BA,CACT,uHCtTA,MAAMm5E,UAAyB,IAC7Bh1F,YAAYi1F,EAAQnyF,GAClBqxE,QACA3qD,KAAKyrE,OAASA,EACdzrE,KAAK0rE,WAAWpyF,GAChB0mB,KAAK2rE,cACL3rE,KAAK4rE,cACP,CAEAD,cACE3rE,KAAK6rE,OAAS7rE,KAAK6rE,OAAOzjE,KAAKpI,MAC/BA,KAAKhO,MAAQgO,KAAKhO,MAAMoW,KAAKpI,KAC/B,CAEA0rE,WAAWpyF,GACT,MAAMwyF,EAAc9rE,KAAK1mB,QACzB0mB,KAAK1mB,QAAU0mB,KAAKyrE,OAAOM,uBAAuBzyF,IAE7C,QAAoBwyF,EAAa9rE,KAAK1mB,UACzC0mB,KAAKyrE,OAAOO,mBAAmBvJ,OAAO,CACpCtiE,KAAM,yBACN4xB,SAAU/xB,KAAKisE,gBACf1J,SAAUviE,MAGhB,CAEAkhE,gBAEI,IAAIgL,EADDlsE,KAAKwhE,UAAUxsF,SAGgC,OAAjDk3F,EAAwBlsE,KAAKisE,kBAAoCC,EAAsBxJ,eAAe1iE,MAE3G,CAEAqlE,iBAAiBplB,GACfjgD,KAAK4rE,eAEL,MAAMO,EAAgB,CACpB3K,WAAW,GAGO,YAAhBvhB,EAAO9/C,KACTgsE,EAAczH,WAAY,EACD,UAAhBzkB,EAAO9/C,OAChBgsE,EAAc1xC,SAAU,GAG1Bz6B,KAAKyiE,OAAO0J,EACd,CAEAC,mBACE,OAAOpsE,KAAKqsE,aACd,CAEAr6E,QACEgO,KAAKisE,qBAAkBloF,EACvBic,KAAK4rE,eACL5rE,KAAKyiE,OAAO,CACVjB,WAAW,GAEf,CAEAqK,OAAOxI,EAAW/pF,GAWhB,OAVA0mB,KAAKssE,cAAgBhzF,EAEjB0mB,KAAKisE,iBACPjsE,KAAKisE,gBAAgBvJ,eAAe1iE,MAGtCA,KAAKisE,gBAAkBjsE,KAAKyrE,OAAOO,mBAAmBO,MAAMvsE,KAAKyrE,OAAQ,IAAKzrE,KAAK1mB,QACjF+pF,UAAgC,qBAAdA,EAA4BA,EAAYrjE,KAAK1mB,QAAQ+pF,YAEzErjE,KAAKisE,gBAAgB3J,YAAYtiE,MAC1BA,KAAKisE,gBAAgBhJ,SAC9B,CAEA2I,eACE,MAAM1kD,EAAQlnB,KAAKisE,gBAAkBjsE,KAAKisE,gBAAgB/kD,OAAQ,SAC5DxjC,EAAS,IAAKwjC,EAClBslD,UAA4B,YAAjBtlD,EAAM07C,OACjB6J,UAA4B,YAAjBvlD,EAAM07C,OACjBhY,QAA0B,UAAjB1jC,EAAM07C,OACf8J,OAAyB,SAAjBxlD,EAAM07C,OACdiJ,OAAQ7rE,KAAK6rE,OACb75E,MAAOgO,KAAKhO,OAEdgO,KAAKqsE,cAAgB3oF,CACvB,CAEA++E,OAAOnpF,GACLgsF,EAAA,SAAoB,KAId,IAAIqH,EAAuBC,EAAqBC,EAAwBC,EAF5E,GAAI9sE,KAAKssE,eAAiBtsE,KAAKohE,eAC7B,GAAI9nF,EAAQorF,UAGwE,OAAjFiI,GAAyBC,EAAsB5sE,KAAKssE,eAAe5H,YAA8BiI,EAAsB71F,KAAK81F,EAAqB5sE,KAAKqsE,cAAch6E,KAAM2N,KAAKqsE,cAAchJ,UAAWrjE,KAAKqsE,cAAclvF,SACxI,OAAnF0vF,GAA0BC,EAAuB9sE,KAAKssE,eAAe3H,YAA8BkI,EAAuB/1F,KAAKg2F,EAAsB9sE,KAAKqsE,cAAch6E,KAAM,KAAM2N,KAAKqsE,cAAchJ,UAAWrjE,KAAKqsE,cAAclvF,cACjO,GAAI7D,EAAQmhD,QAAS,CAC1B,IAAIsyC,EAAwBC,EAAsBC,EAAwBC,EAEQ,OAAjFH,GAA0BC,EAAuBhtE,KAAKssE,eAAe7xC,UAA4BsyC,EAAuBj2F,KAAKk2F,EAAsBhtE,KAAKqsE,cAAcx3F,MAAOmrB,KAAKqsE,cAAchJ,UAAWrjE,KAAKqsE,cAAclvF,SAC3I,OAAnF8vF,GAA0BC,EAAuBltE,KAAKssE,eAAe3H,YAA8BsI,EAAuBn2F,KAAKo2F,OAAsBnpF,EAAWic,KAAKqsE,cAAcx3F,MAAOmrB,KAAKqsE,cAAchJ,UAAWrjE,KAAKqsE,cAAclvF,QAC9O,CAIE7D,EAAQkoF,WACVxhE,KAAKwhE,UAAU/3D,SAAQQ,IACrBA,EAASjK,KAAKqsE,cAAc,GAEhC,GAEJ,0BCnHF,SAASc,EAAY7oC,EAAMC,EAAM8F,GAC/B,IAAI+iC,EAEJ,MAAM9zF,GAAU,SAAS,IA8B3B,SAA2BgrD,EAAMC,EAAM8F,GACrC,MAAMgjC,GAAY,QAAM/oC,GAClBgpC,GAAY,QAAM/oC,GACxB,IAAIjrD,EAAU+zF,EAEd,IAAI,QAAcA,GAChB,GAAyB,oBAAdC,EAA0B,CAEnCh0F,EAAU,KADQ,QAAM+wD,GAEtB4/B,YAAaoD,EACbjK,WAAYkK,EAEhB,MACEh0F,EAAU,IAAKg0F,EACbrD,YAAaoD,GAKM,oBAAdA,IACT/zF,EAAU,IAAKg0F,EACblK,WAAYiK,IAIhB,OAAO,QAAe/zF,EACxB,CAvDWi0F,CAAkBjpC,EAAMC,EAAM8F,KAEjCmjC,EAAqE,OAAtDJ,EAAwB9zF,EAAQ/E,MAAMi5F,aAAuBJ,GAAwB,EAAAK,EAAA,GAAen0F,EAAQ/E,MAAMm5F,gBACjInL,EAAW,IAAIiJ,EAAiBgC,EAAaA,EAAYzB,uBAAuBzyF,EAAQ/E,QACxF2yC,GAAQ,QAASq7C,EAAS6J,oBAC1BuB,EAAcpL,EAASjD,WAAU57E,KACrC,QAAYwjC,EAAOxjC,EAAO,KAQ5B,QAAMpK,GAAS,KACbipF,EAASmJ,WAAW8B,EAAYzB,uBAAuBzyF,EAAQ/E,OAAO,GACrE,CACDitC,MAAM,KAER,SAAe,KACbmsD,GAAa,IAGf,MAAO,KADY,SAAO,QAASzmD,IAEjC2kD,OAfa,CAACxI,EAAWiJ,KACzB/J,EAASsJ,OAAOxI,EAAWiJ,GAAe1P,OAAM,QAC9C,EAcFgR,YAAa1mD,EAAM2kD,OACnB75E,MAAOk1B,EAAMl1B,MAEjB,yHC/BA,MAAM67E,UAAsB,IAC1Br3F,YAAYi1F,EAAQnyF,GAClBqxE,QACA3qD,KAAKyrE,OAASA,EACdzrE,KAAK1mB,QAAUA,EACf0mB,KAAK8tE,aAAe,IAAIvrE,IACxBvC,KAAK+tE,YAAc,KACnB/tE,KAAK2rE,cACL3rE,KAAK0rE,WAAWpyF,EAClB,CAEAqyF,cACE3rE,KAAKgJ,OAAShJ,KAAKgJ,OAAOZ,KAAKpI,MAC/BA,KAAKguE,QAAUhuE,KAAKguE,QAAQ5lE,KAAKpI,KACnC,CAEA+gE,cACgC,IAA1B/gE,KAAKwhE,UAAUxsF,SACjBgrB,KAAKiuE,aAAa3L,YAAYtiE,MAE1BkuE,EAAmBluE,KAAKiuE,aAAcjuE,KAAK1mB,UAC7C0mB,KAAKmuE,eAGPnuE,KAAKouE,eAET,CAEAlN,gBACOlhE,KAAKwhE,UAAUxsF,QAClBgrB,KAAK0mE,SAET,CAEA2H,yBACE,OAAOC,EAActuE,KAAKiuE,aAAcjuE,KAAK1mB,QAAS0mB,KAAK1mB,QAAQi1F,mBACrE,CAEAC,2BACE,OAAOF,EAActuE,KAAKiuE,aAAcjuE,KAAK1mB,QAAS0mB,KAAK1mB,QAAQm1F,qBACrE,CAEA/H,UACE1mE,KAAKwhE,UAAY,GACjBxhE,KAAK0uE,oBACL1uE,KAAK2uE,uBACL3uE,KAAKiuE,aAAavL,eAAe1iE,KACnC,CAEA0rE,WAAWpyF,EAAS6yF,GAClB,MAAML,EAAc9rE,KAAK1mB,QACnBs1F,EAAY5uE,KAAKiuE,aAevB,GAdAjuE,KAAK1mB,QAAU0mB,KAAKyrE,OAAOoD,oBAAoBv1F,IAM1C,QAAoBwyF,EAAa9rE,KAAK1mB,UACzC0mB,KAAKyrE,OAAOqD,gBAAgBrM,OAAO,CACjCtiE,KAAM,yBACN8gD,MAAOjhD,KAAKiuE,aACZ1L,SAAUviE,OAIsB,qBAAzBA,KAAK1mB,QAAQ4kF,SAA2D,mBAAzBl+D,KAAK1mB,QAAQ4kF,QACrE,MAAM,IAAI7mF,MAAM,oCAIb2oB,KAAK1mB,QAAQ4vF,WAChBlpE,KAAK1mB,QAAQ4vF,SAAW4C,EAAY5C,UAGtClpE,KAAK+uE,cACL,MAAMlrE,EAAU7D,KAAKohE,eAEjBv9D,GAAWmrE,EAAsBhvE,KAAKiuE,aAAcW,EAAW5uE,KAAK1mB,QAASwyF,IAC/E9rE,KAAKmuE,eAIPnuE,KAAK4rE,aAAaO,IAEdtoE,GAAY7D,KAAKiuE,eAAiBW,GAAa5uE,KAAK1mB,QAAQ4kF,UAAY4N,EAAY5N,SAAWl+D,KAAK1mB,QAAQyvF,YAAc+C,EAAY/C,WACxI/oE,KAAKivE,qBAGP,MAAMC,EAAsBlvE,KAAKmvE,0BAE7BtrE,GAAY7D,KAAKiuE,eAAiBW,GAAa5uE,KAAK1mB,QAAQ4kF,UAAY4N,EAAY5N,SAAWgR,IAAwBlvE,KAAKovE,wBAC9HpvE,KAAKqvE,sBAAsBH,EAE/B,CAEAI,oBAAoBh2F,GAClB,MAAM2nE,EAAQjhD,KAAKyrE,OAAOqD,gBAAgBvC,MAAMvsE,KAAKyrE,OAAQnyF,GAC7D,OAAO0mB,KAAKuvE,aAAatuB,EAAO3nE,EAClC,CAEA8yF,mBACE,OAAOpsE,KAAKqsE,aACd,CAEAmD,YAAY9rF,GACV,MAAM+rF,EAAgB,CAAC,EAWvB,OAVAh7F,OAAO4oC,KAAK35B,GAAQ+lB,SAAQ9iB,IAC1BlS,OAAOymB,eAAeu0E,EAAe9oF,EAAK,CACxCmV,cAAc,EACdD,YAAY,EACZuC,IAAK,KACH4B,KAAK8tE,aAAa/kE,IAAIpiB,GACfjD,EAAOiD,KAEhB,IAEG8oF,CACT,CAEAC,kBACE,OAAO1vE,KAAKiuE,YACd,CAEAjlE,SACEhJ,KAAKyrE,OAAOqD,gBAAgB9lE,OAAOhJ,KAAKiuE,aAC1C,CAEAD,SAAQ,YACN2B,KACGr2F,GACD,CAAC,GACH,OAAO0mB,KAAK4vE,MAAM,IAAKt2F,EACrBotC,KAAM,CACJipD,gBAGN,CAEAE,gBAAgBv2F,GACd,MAAMw2F,EAAmB9vE,KAAKyrE,OAAOoD,oBAAoBv1F,GACnD2nE,EAAQjhD,KAAKyrE,OAAOqD,gBAAgBvC,MAAMvsE,KAAKyrE,OAAQqE,GAE7D,OADA7uB,EAAM8uB,sBAAuB,EACtB9uB,EAAM2uB,QAAQ98D,MAAK,IAAM9S,KAAKuvE,aAAatuB,EAAO6uB,IAC3D,CAEAF,MAAMI,GACJ,IAAIC,EAEJ,OAAOjwE,KAAKmuE,aAAa,IAAK6B,EAC5BE,cAAuE,OAAvDD,EAAwBD,EAAaE,gBAAyBD,IAC7En9D,MAAK,KACN9S,KAAK4rE,eACE5rE,KAAKqsE,gBAEhB,CAEA8B,aAAa6B,GAEXhwE,KAAK+uE,cAEL,IAAIlL,EAAU7jE,KAAKiuE,aAAa2B,MAAM5vE,KAAK1mB,QAAS02F,GAMpD,OAJsB,MAAhBA,GAAwBA,EAAaG,eACzCtM,EAAUA,EAAQjH,MAAM,OAGnBiH,CACT,CAEAoL,qBAGE,GAFAjvE,KAAK0uE,oBAED,MAAY1uE,KAAKqsE,cAAcvC,WAAY,QAAe9pE,KAAK1mB,QAAQyvF,WACzE,OAGF,MAGMiC,GAHO,QAAehrE,KAAKqsE,cAAc+D,cAAepwE,KAAK1mB,QAAQyvF,WAGpD,EACvB/oE,KAAKqwE,eAAiBprE,YAAW,KAC1BjF,KAAKqsE,cAAcvC,SACtB9pE,KAAK4rE,cACP,GACCZ,EACL,CAEAmE,yBACE,IAAImB,EAEJ,MAA+C,oBAAjCtwE,KAAK1mB,QAAQi3F,gBAAiCvwE,KAAK1mB,QAAQi3F,gBAAgBvwE,KAAKqsE,cAAch6E,KAAM2N,KAAKiuE,cAA0E,OAAzDqC,EAAwBtwE,KAAK1mB,QAAQi3F,kBAA2BD,CAC1M,CAEAjB,sBAAsBmB,GACpBxwE,KAAK2uE,uBACL3uE,KAAKovE,uBAAyBoB,GAE1B,OAAqC,IAAzBxwE,KAAK1mB,QAAQ4kF,UAAsB,QAAel+D,KAAKovE,yBAA2D,IAAhCpvE,KAAKovE,yBAIvGpvE,KAAKywE,kBAAoBC,aAAY,MAC/B1wE,KAAK1mB,QAAQq3F,6BAA+BhP,EAAA,gBAC9C3hE,KAAKmuE,cACP,GACCnuE,KAAKovE,wBACV,CAEAhB,eACEpuE,KAAKivE,qBACLjvE,KAAKqvE,sBAAsBrvE,KAAKmvE,yBAClC,CAEAT,oBACM1uE,KAAKqwE,iBACPtrE,aAAa/E,KAAKqwE,gBAClBrwE,KAAKqwE,oBAAiBtsF,EAE1B,CAEA4qF,uBACM3uE,KAAKywE,oBACPG,cAAc5wE,KAAKywE,mBACnBzwE,KAAKywE,uBAAoB1sF,EAE7B,CAEAwrF,aAAatuB,EAAO3nE,GAClB,MAAMs1F,EAAY5uE,KAAKiuE,aACjBnC,EAAc9rE,KAAK1mB,QACnBu3F,EAAa7wE,KAAKqsE,cAClByE,EAAkB9wE,KAAK+wE,mBACvBC,EAAoBhxE,KAAKixE,qBACzBC,EAAcjwB,IAAU2tB,EACxBuC,EAAoBD,EAAcjwB,EAAM/5B,MAAQlnB,KAAKoxE,yBACrDC,EAAkBH,EAAclxE,KAAKqsE,cAAgBrsE,KAAKsxE,qBAC1D,MACJpqD,GACE+5B,EACJ,IASI5uD,GATA,cACF+9E,EAAa,MACbv7F,EAAK,eACL08F,EAAc,YACd/H,EAAW,OACX5G,GACE17C,EACAsqD,GAAiB,EACjBC,GAAoB,EAGxB,GAAIn4F,EAAQo4F,mBAAoB,CAC9B,MAAM7tE,EAAU7D,KAAKohE,eACfuQ,GAAgB9tE,GAAWqqE,EAAmBjtB,EAAO3nE,GACrDs4F,EAAkB/tE,GAAWmrE,EAAsB/tB,EAAO2tB,EAAWt1F,EAASwyF,IAEhF6F,GAAgBC,KAClBpI,GAAc,QAASvoB,EAAM3nE,QAAQsqF,aAAe,WAAa,SAE5DwM,IACHxN,EAAS,YAIsB,gBAA/BtpF,EAAQo4F,qBACVlI,EAAc,OAElB,CAGA,GAAIlwF,EAAQu4F,mBAAqB3qD,EAAMkpD,eAAoC,MAAnBiB,GAA2BA,EAAgB5E,WAAwB,UAAX7J,EAC9GvwE,EAAOg/E,EAAgBh/E,KACvB+9E,EAAgBiB,EAAgBjB,cAChCxN,EAASyO,EAAgBzO,OACzB4O,GAAiB,OAEd,GAAIl4F,EAAQ0pE,QAAgC,qBAAf97B,EAAM70B,KAEtC,GAAIw+E,GAAc3pD,EAAM70B,QAA6B,MAAnBy+E,OAA0B,EAASA,EAAgBz+E,OAAS/Y,EAAQ0pE,SAAWhjD,KAAK8xE,SACpHz/E,EAAO2N,KAAK+xE,kBAEZ,IACE/xE,KAAK8xE,SAAWx4F,EAAQ0pE,OACxB3wD,EAAO/Y,EAAQ0pE,OAAO97B,EAAM70B,MAC5BA,GAAO,QAA0B,MAAdw+E,OAAqB,EAASA,EAAWx+E,KAAMA,EAAM/Y,GACxE0mB,KAAK+xE,aAAe1/E,EACpB2N,KAAK+tE,YAAc,IAOrB,CANE,MAAOA,GACH,EAIJ/tE,KAAK+tE,YAAcA,CACrB,MAIF17E,EAAO60B,EAAM70B,KAIf,GAAuC,qBAA5B/Y,EAAQ04F,iBAAmD,qBAAT3/E,GAAmC,YAAXuwE,EAAsB,CACzG,IAAIoP,EAEJ,GAAkB,MAAdnB,GAAsBA,EAAWY,mBAAqBn4F,EAAQ04F,mBAA0C,MAArBhB,OAA4B,EAASA,EAAkBgB,iBAC5IA,EAAkBnB,EAAWx+E,UAI7B,GAFA2/E,EAAqD,oBAA5B14F,EAAQ04F,gBAAiC14F,EAAQ04F,kBAAoB14F,EAAQ04F,gBAElG14F,EAAQ0pE,QAAqC,qBAApBgvB,EAC3B,IACEA,EAAkB14F,EAAQ0pE,OAAOgvB,GACjChyE,KAAK+tE,YAAc,IAOrB,CANE,MAAOA,GACH,EAIJ/tE,KAAK+tE,YAAcA,CACrB,CAI2B,qBAApBiE,IACTpP,EAAS,UACTvwE,GAAO,QAA0B,MAAdw+E,OAAqB,EAASA,EAAWx+E,KAAM2/E,EAAiB14F,GACnFm4F,GAAoB,EAExB,CAEIzxE,KAAK+tE,cACPl5F,EAAQmrB,KAAK+tE,YACb17E,EAAO2N,KAAK+xE,aACZR,EAAiB36F,KAAK+sB,MACtBi/D,EAAS,SAGX,MAAMqP,EAA6B,aAAhBzI,EACbgD,EAAuB,YAAX5J,EACZhY,EAAqB,UAAXgY,EA4BhB,MA3Be,CACbA,SACA4G,cACAgD,YACAC,UAAsB,YAAX7J,EACXhY,UACAsnB,iBAAkB1F,GAAayF,EAC/B5/E,OACA+9E,gBACAv7F,QACA08F,iBACAhO,aAAcr8C,EAAMirD,kBACpBjN,cAAeh+C,EAAMkrD,mBACrBC,iBAAkBnrD,EAAMmrD,iBACxBC,UAAWprD,EAAMqrD,gBAAkB,GAAKrrD,EAAMmrD,iBAAmB,EACjEG,oBAAqBtrD,EAAMqrD,gBAAkBpB,EAAkBoB,iBAAmBrrD,EAAMmrD,iBAAmBlB,EAAkBkB,iBAC7HJ,aACAQ,aAAcR,IAAezF,EAC7BkG,eAAgB9nB,GAAmC,IAAxB1jC,EAAMkpD,cACjCjL,SAA0B,WAAhBqE,EACViI,oBACAD,iBACAmB,eAAgB/nB,GAAmC,IAAxB1jC,EAAMkpD,cACjCtG,QAASA,EAAQ7oB,EAAO3nE,GACxB00F,QAAShuE,KAAKguE,QACdhlE,OAAQhJ,KAAKgJ,OAGjB,CAEA4iE,aAAaO,GACX,MAAM0E,EAAa7wE,KAAKqsE,cAClBuG,EAAa5yE,KAAKuvE,aAAavvE,KAAKiuE,aAAcjuE,KAAK1mB,SAI7D,GAHA0mB,KAAK+wE,mBAAqB/wE,KAAKiuE,aAAa/mD,MAC5ClnB,KAAKixE,qBAAuBjxE,KAAK1mB,SAE7B,QAAoBs5F,EAAY/B,GAClC,OAGF7wE,KAAKqsE,cAAgBuG,EAErB,MAAMC,EAAuB,CAC3B5vC,OAAO,IA6B0D,KAA7C,MAAjBkpC,OAAwB,EAASA,EAAc3K,YA1BtB,MAC5B,IAAKqP,EACH,OAAO,EAGT,MAAM,oBACJiC,GACE9yE,KAAK1mB,QAET,GAA4B,QAAxBw5F,IAAkCA,IAAwB9yE,KAAK8tE,aAAajpE,KAC9E,OAAO,EAGT,MAAMkuE,EAAgB,IAAIxwE,IAA2B,MAAvBuwE,EAA8BA,EAAsB9yE,KAAK8tE,cAMvF,OAJI9tE,KAAK1mB,QAAQ05F,kBACfD,EAAchqE,IAAI,SAGbt0B,OAAO4oC,KAAKrd,KAAKqsE,eAAez9C,MAAKjoC,IAC1C,MAAMssF,EAAWtsF,EAEjB,OADgBqZ,KAAKqsE,cAAc4G,KAAcpC,EAAWoC,IAC1CF,EAAcr3D,IAAIu3D,EAAS,GAC7C,EAGwEC,KAC1EL,EAAqBrR,WAAY,GAGnCxhE,KAAKyiE,OAAO,IAAKoQ,KACZ1G,GAEP,CAEA4C,cACE,MAAM9tB,EAAQjhD,KAAKyrE,OAAOqD,gBAAgBvC,MAAMvsE,KAAKyrE,OAAQzrE,KAAK1mB,SAElE,GAAI2nE,IAAUjhD,KAAKiuE,aACjB,OAGF,MAAMW,EAAY5uE,KAAKiuE,aACvBjuE,KAAKiuE,aAAehtB,EACpBjhD,KAAKoxE,yBAA2BnwB,EAAM/5B,MACtClnB,KAAKsxE,oBAAsBtxE,KAAKqsE,cAE5BrsE,KAAKohE,iBACM,MAAbwN,GAA6BA,EAAUlM,eAAe1iE,MACtDihD,EAAMqhB,YAAYtiE,MAEtB,CAEAmzE,cAAclzB,GACZ,MAAMksB,EAAgB,CAAC,EAEH,YAAhBlsB,EAAO9/C,KACTgsE,EAAczH,WAAazkB,EAAOmzB,OACT,UAAhBnzB,EAAO9/C,OAAqB,QAAiB8/C,EAAOprE,SAC7Ds3F,EAAc1xC,SAAU,GAG1Bz6B,KAAK4rE,aAAaO,GAEdnsE,KAAKohE,gBACPphE,KAAKouE,cAET,CAEA3L,OAAO0J,GACL7G,EAAA,SAAoB,KAGhB,IAAIrB,EAAuBO,EAAeL,EAAuBD,EADnE,GAAIiI,EAAczH,UAGsD,OAArET,GAAyBO,EAAgBxkE,KAAK1mB,SAASorF,YAA8BT,EAAsBntF,KAAK0tF,EAAexkE,KAAKqsE,cAAch6E,MAC5E,OAAtE8xE,GAAyBD,EAAiBlkE,KAAK1mB,SAASqrF,YAA8BR,EAAsBrtF,KAAKotF,EAAgBlkE,KAAKqsE,cAAch6E,KAAM,WACtJ,GAAI85E,EAAc1xC,QAAS,CAChC,IAAIqqC,EAAuBV,EAAgBY,EAAwBD,EAEE,OAApED,GAAyBV,EAAiBpkE,KAAK1mB,SAASmhD,UAA4BqqC,EAAsBhuF,KAAKstF,EAAgBpkE,KAAKqsE,cAAcx3F,OAC3E,OAAvEmwF,GAA0BD,EAAiB/kE,KAAK1mB,SAASqrF,YAA8BK,EAAuBluF,KAAKiuF,OAAgBhhF,EAAWic,KAAKqsE,cAAcx3F,MACpK,CAGIs3F,EAAc3K,WAChBxhE,KAAKwhE,UAAU/3D,SAAQQ,IACrBA,EAASjK,KAAKqsE,cAAc,IAK5BF,EAAclpC,OAChBjjC,KAAKyrE,OAAOqD,gBAAgBrM,OAAO,CACjCxhB,MAAOjhD,KAAKiuE,aACZ9tE,KAAM,0BAEV,GAEJ,EAQF,SAAS+tE,EAAmBjtB,EAAO3nE,GACjC,OALF,SAA2B2nE,EAAO3nE,GAChC,OAA2B,IAApBA,EAAQ4kF,UAAsBjd,EAAM/5B,MAAMkpD,iBAA0C,UAAvBnvB,EAAM/5B,MAAM07C,SAA+C,IAAzBtpF,EAAQ+5F,aAChH,CAGSC,CAAkBryB,EAAO3nE,IAAY2nE,EAAM/5B,MAAMkpD,cAAgB,GAAK9B,EAAcrtB,EAAO3nE,EAASA,EAAQi6F,eACrH,CAEA,SAASjF,EAAcrtB,EAAO3nE,EAASiqC,GACrC,IAAwB,IAApBjqC,EAAQ4kF,QAAmB,CAC7B,MAAM3pF,EAAyB,oBAAVgvC,EAAuBA,EAAM09B,GAAS19B,EAC3D,MAAiB,WAAVhvC,IAAgC,IAAVA,GAAmBu1F,EAAQ7oB,EAAO3nE,EACjE,CAEA,OAAO,CACT,CAEA,SAAS01F,EAAsB/tB,EAAO2tB,EAAWt1F,EAASwyF,GACxD,OAA2B,IAApBxyF,EAAQ4kF,UAAsBjd,IAAU2tB,IAAqC,IAAxB9C,EAAY5N,YAAwB5kF,EAAQk6F,UAAmC,UAAvBvyB,EAAM/5B,MAAM07C,SAAuBkH,EAAQ7oB,EAAO3nE,EACxK,CAEA,SAASwwF,EAAQ7oB,EAAO3nE,GACtB,OAAO2nE,EAAMwyB,cAAcn6F,EAAQyvF,UACrC,iCClgBA,SAAS2K,EAAaC,EAAUrvC,EAAMC,EAAO,CAAC,EAAG8F,EAAO,CAAC,GACvD,IAAI+iC,EAEJ,MAAM9zF,GAAU,SAAS,IA8D3B,SAAwBgrD,EAAMC,EAAO,CAAC,EAAG8F,EAAO,CAAC,GAC/C,MAAMgjC,GAAY,QAAM/oC,GAClBgpC,GAAY,QAAM/oC,GAClBqvC,GAAY,QAAMvpC,GACxB,IAAI/wD,EAAU+zF,EAKZ/zF,GAHG,QAAW+zF,GAEgB,oBAAdC,EACN,IAAKsG,EACb1K,SAAUmE,EACVlE,QAASmE,GAGD,IAAKA,EACbpE,SAAUmE,GARFA,EAYZ,OAAO,QAAe/zF,EACxB,CAlFiC0vF,CAAe1kC,EAAMC,EAAM8F,KACpDmjC,EAAqE,OAAtDJ,EAAwB9zF,EAAQ/E,MAAMi5F,aAAuBJ,GAAwB,EAAAK,EAAA,GAAen0F,EAAQ/E,MAAMm5F,gBACjIoC,GAAmB,SAAS,KAChC,MAAM+D,EAAYrG,EAAYqB,oBAAoBv1F,EAAQ/E,OAE1D,OADAs/F,EAAUnC,mBAAqBlE,EAAYsG,YAAYv/F,MAAQ,cAAgB,aACxEs/F,CAAS,IAEZtR,EAAW,IAAIoR,EAASnG,EAAasC,EAAiBv7F,OACtD2yC,GAAQ,QAASq7C,EAAS6J,oBAC1BuB,GAAc,SAAI,UAExB,QAAMH,EAAYsG,aAAaA,IAExBA,IACHnG,EAAYp5F,QACZo5F,EAAYp5F,MAAQguF,EAASjD,WAAU57E,KACrC,QAAYwjC,EAAOxjC,EAAO,IAE9B,GACC,CACD8uB,WAAW,KAEb,QAAMs9D,GAAkB,KACtBvN,EAASmJ,WAAWoE,EAAiBv7F,QACrC,QAAY2yC,EAAOq7C,EAAS6J,mBAAmB,GAC9C,CACD5qD,MAAM,KAER,SAAe,KACbmsD,EAAYp5F,OAAO,IA6BrB,MAAO,KAAK,SAAO,QAAS2yC,IAC1BssD,SA3Be,IACR,IAAIr0E,SAAQC,IACjB,IAAI20E,EAAY,OAGhB,MAAMr3B,EAAM,KACV,IAAuC,IAAnCozB,EAAiBv7F,MAAM2pF,QAAmB,CAC5C,MAAM8V,EAAmBzR,EAAS+M,oBAAoBQ,EAAiBv7F,OAEnEy/F,EAAiBlK,SACnBiK,IACA30E,EAAQmjE,EAASsN,gBAAgBC,EAAiBv7F,UAElDw/F,IACA30E,EAAQ40E,GAEZ,GAGFt3B,IACAq3B,GAAY,QAAMjE,EAAkBpzB,EAAK,CACvCl7B,MAAM,GACN,IAOR,CCjEA,SAASyyD,EAAS3vC,EAAMC,EAAM8F,GAC5B,MAAM3mD,EAASgwF,EAAa7F,EAAevpC,EAAMC,EAAM8F,GACvD,MAAO,IAAK3mD,EACVsqF,QAAStqF,EAAOsqF,QAAQz5F,MACxBy0B,OAAQtlB,EAAOslB,OAAOz0B,MAE1B,2FCNA,SAASk5F,EAAe98D,EAAK,IAC3B,IAAIujE,EAIJ,KAF2D,OAA/CA,GAAsB,gBAAgC,EAASA,EAAoBtmC,OAG7F,MAAM,IAAIv2D,MAAM,6DAGlB,MAAMsP,GAAM,QAAagqB,GACnB68D,GAAc,QAAO7mF,GAE3B,IAAK6mF,EACH,MAAM,IAAIn2F,MAAM,mGAGlB,OAAOm2F,CACT,kLChBA,SAAS2G,EAAaxtF,GAEpB,MAHuB,oBAERA,EAAM,IAAMA,EAAM,GAEnC,CACA,SAASsiF,EAAW10F,GAClB,OAAOqS,MAAMC,QAAQtS,EACvB,CACA,SAAS6/F,EAAc7/F,GACrB,OAAOqS,MAAMC,QAAQtS,EACvB,CACA,SAAS8/F,EAAYntD,EAAOsM,GAC1B/+C,OAAO4oC,KAAK6J,GAAOzd,SAAQ9iB,IACzBugC,EAAMvgC,GAAO6sC,EAAO7sC,EAAI,GAE5B,CACA,SAAS2tF,EAAU//F,EAAOggG,GACxB,GAAIA,EAAY,CACd,MAAM7wF,EAAS6wF,EAAWhgG,GAE1B,QAAewP,IAAXL,IAAwB,QAAMnP,GAChC,OAAOmP,CAEX,CAEA,GAAIkD,MAAMC,QAAQtS,GAChB,OAAOA,EAAM4U,KAAIqkB,GAAO8mE,EAAU9mE,EAAK+mE,KAGzC,GAAqB,kBAAVhgG,GAeb,SAAuBA,GACrB,GAA8C,oBAA1CE,OAAOgC,UAAUI,SAASC,KAAKvC,GACjC,OAAO,EAGT,MAAMkC,EAAYhC,OAAOi7E,eAAen7E,GACxC,OAAqB,OAAdkC,GAAsBA,IAAchC,OAAOgC,SACpD,CAtBmC4/C,CAAc9hD,GAAQ,CACrD,MAAM8pC,EAAU5pC,OAAO4pC,QAAQ9pC,GAAO4U,KAAI,EAAExC,EAAK6mB,KAAS,CAAC7mB,EAAK2tF,EAAU9mE,EAAK+mE,MAC/E,OAAO9/F,OAAOwkF,YAAY56C,EAC5B,CAEA,OAAO9pC,CACT,CACA,SAASigG,EAAen+F,GACtB,OAAOi+F,EAAUj+F,GAAKm3B,IACpB,IAAI,QAAMA,GACR,OAAOgnE,GAAe,QAAMhnE,GAC9B,GAEJ,+HCtCA,MAAMinE,UAAc,IAClBj+F,YAAYmkB,GACVgwD,QACA3qD,KAAK00E,qBAAsB,EAC3B10E,KAAK7mB,eAAiBwhB,EAAOxhB,eAC7B6mB,KAAK0rE,WAAW/wE,EAAOrhB,SACvB0mB,KAAKiiE,UAAY,GACjBjiE,KAAKijC,MAAQtoC,EAAOsoC,MACpBjjC,KAAKgiE,OAASrnE,EAAOqnE,QAAU,IAC/BhiE,KAAKkpE,SAAWvuE,EAAOuuE,SACvBlpE,KAAK0pE,UAAY/uE,EAAO+uE,UACxB1pE,KAAK20E,aAAeh6E,EAAOusB,OAgb/B,SAAyB5tC,GACvB,MAAM+Y,EAAsC,oBAAxB/Y,EAAQs7F,YAA6Bt7F,EAAQs7F,cAAgBt7F,EAAQs7F,YACnFC,EAA0B,qBAATxiF,EACjByiF,EAAuBD,EAAkD,oBAAjCv7F,EAAQw7F,qBAAsCx7F,EAAQw7F,uBAAyBx7F,EAAQw7F,qBAAuB,EAC5J,MAAO,CACLziF,OACAkgF,gBAAiB,EACjBnC,cAAeyE,EAAkC,MAAxBC,EAA+BA,EAAuBl+F,KAAK+sB,MAAQ,EAC5F9uB,MAAO,KACPw9F,iBAAkB,EAClBd,eAAgB,EAChBY,kBAAmB,EACnBC,mBAAoB,KACpB2C,UAAW,KACXC,eAAe,EACfpS,OAAQiS,EAAU,UAAY,UAC9BrL,YAAa,OAEjB,CAlcwCtH,CAAgBliE,KAAK1mB,SACzD0mB,KAAKknB,MAAQlnB,KAAK20E,aAClB30E,KAAKqiE,YACP,CAEI37C,WACF,OAAO1mB,KAAK1mB,QAAQotC,IACtB,CAEAglD,WAAWpyF,GACT0mB,KAAK1mB,QAAU,IAAK0mB,KAAK7mB,kBACpBG,GAEL0mB,KAAKmiE,gBAAgBniE,KAAK1mB,QAAQ8oF,UACpC,CAEAO,iBACO3iE,KAAKiiE,UAAUjtF,QAAqC,SAA3BgrB,KAAKknB,MAAMsiD,aACvCxpE,KAAKijC,MAAMj6B,OAAOhJ,KAEtB,CAEAi1E,QAAQC,EAAS57F,GACf,MAAM+Y,GAAO,QAAY2N,KAAKknB,MAAM70B,KAAM6iF,EAASl1E,KAAK1mB,SAQxD,OANA0mB,KAAKu/D,SAAS,CACZltE,OACA8N,KAAM,UACNiwE,cAA0B,MAAX92F,OAAkB,EAASA,EAAQwvF,UAClDsK,OAAmB,MAAX95F,OAAkB,EAASA,EAAQ85F,SAEtC/gF,CACT,CAEA40B,SAASC,EAAOiuD,GACdn1E,KAAKu/D,SAAS,CACZp/D,KAAM,WACN+mB,QACAiuD,mBAEJ,CAEAhN,OAAO7uF,GACL,IAAIypF,EAEJ,MAAMc,EAAU7jE,KAAK6jE,QAErB,OADkC,OAAjCd,EAAgB/iE,KAAKgjE,UAA4BD,EAAcoF,OAAO7uF,GAChEuqF,EAAUA,EAAQ/wD,KAAK,MAAM8pD,MAAM,MAAQz9D,QAAQC,SAC5D,CAEAsnE,UACE/b,MAAM+b,UACN1mE,KAAKmoE,OAAO,CACVlB,QAAQ,GAEZ,CAEAj1E,QACEgO,KAAK0mE,UACL1mE,KAAKinB,SAASjnB,KAAK20E,aACrB,CAEA9K,WACE,OAAO7pE,KAAKiiE,UAAUrzC,MAAK2zC,IAAyC,IAA7BA,EAASjpF,QAAQ4kF,SAC1D,CAEAkX,aACE,OAAOp1E,KAAKq1E,oBAAsB,IAAMr1E,KAAK6pE,UAC/C,CAEAC,UACE,OAAO9pE,KAAKknB,MAAM8tD,gBAAkBh1E,KAAKknB,MAAMkpD,eAAiBpwE,KAAKiiE,UAAUrzC,MAAK2zC,GAAYA,EAAS6J,mBAAmBtC,SAC9H,CAEA2J,cAAc1K,EAAY,GACxB,OAAO/oE,KAAKknB,MAAM8tD,gBAAkBh1E,KAAKknB,MAAMkpD,iBAAkB,QAAepwE,KAAKknB,MAAMkpD,cAAerH,EAC5G,CAEA5gB,UACE,IAAImtB,EAEJ,MAAM/S,EAAWviE,KAAKiiE,UAAUxvE,MAAKjT,GAAKA,EAAEgvF,6BAExCjM,GACFA,EAASyL,QAAQ,CACfkC,eAAe,IAKgB,OAAlCoF,EAAiBt1E,KAAKgjE,UAA4BsS,EAAezS,UACpE,CAEAsD,WACE,IAAIoP,EAEJ,MAAMhT,EAAWviE,KAAKiiE,UAAUxvE,MAAKjT,GAAKA,EAAE6uF,2BAExC9L,GACFA,EAASyL,QAAQ,CACfkC,eAAe,IAKgB,OAAlCqF,EAAiBv1E,KAAKgjE,UAA4BuS,EAAe1S,UACpE,CAEAP,YAAYC,IACgC,IAAtCviE,KAAKiiE,UAAUjgF,QAAQugF,KACzBviE,KAAKiiE,UAAU5sF,KAAKktF,GAEpBviE,KAAKwiE,iBACLxiE,KAAKijC,MAAMw/B,OAAO,CAChBtiE,KAAM,gBACN8gD,MAAOjhD,KACPuiE,aAGN,CAEAG,eAAeH,IAC6B,IAAtCviE,KAAKiiE,UAAUjgF,QAAQugF,KACzBviE,KAAKiiE,UAAYjiE,KAAKiiE,UAAUtwE,QAAOnS,GAAKA,IAAM+iF,IAE7CviE,KAAKiiE,UAAUjtF,SAGdgrB,KAAKgjE,UACHhjE,KAAK00E,oBACP10E,KAAKgjE,QAAQmF,OAAO,CAClBnB,QAAQ,IAGVhnE,KAAKgjE,QAAQsF,eAIjBtoE,KAAKqiE,cAGPriE,KAAKijC,MAAMw/B,OAAO,CAChBtiE,KAAM,kBACN8gD,MAAOjhD,KACPuiE,aAGN,CAEA8S,oBACE,OAAOr1E,KAAKiiE,UAAUjtF,MACxB,CAEAwgG,aACOx1E,KAAKknB,MAAM8tD,eACdh1E,KAAKu/D,SAAS,CACZp/D,KAAM,cAGZ,CAEAyvE,MAAMt2F,EAAS02F,GACb,IAAIyF,EAAuBC,EAE3B,GAA+B,SAA3B11E,KAAKknB,MAAMsiD,YACb,GAAIxpE,KAAKknB,MAAMkpD,eAAiC,MAAhBJ,GAAwBA,EAAaE,cAEnElwE,KAAKmoE,OAAO,CACVlB,QAAQ,SAEL,GAAIjnE,KAAK6jE,QAAS,CACvB,IAAI8R,EAKJ,OAFmC,OAAlCA,EAAiB31E,KAAKgjE,UAA4B2S,EAAepN,gBAE3DvoE,KAAK6jE,OACd,CAUF,GANIvqF,GACF0mB,KAAK0rE,WAAWpyF,IAKb0mB,KAAK1mB,QAAQ6vF,QAAS,CACzB,MAAM5G,EAAWviE,KAAKiiE,UAAUxvE,MAAKjT,GAAKA,EAAElG,QAAQ6vF,UAEhD5G,GACFviE,KAAK0rE,WAAWnJ,EAASjpF,QAE7B,CAEKsN,MAAMC,QAAQmZ,KAAK1mB,QAAQ4vF,UAMhC,MAAM0M,GAAkB,UAElBC,EAAiB,CACrB3M,SAAUlpE,KAAKkpE,SACf4M,eAAW/xF,EACX2iC,KAAM1mB,KAAK0mB,MAKPqvD,EAAoB3uF,IACxB3S,OAAOymB,eAAe9T,EAAQ,SAAU,CACtCyU,YAAY,EACZuC,IAAK,KACH,GAAIw3E,EAEF,OADA51E,KAAK00E,qBAAsB,EACpBkB,EAAgBI,MAGT,GAElB,EAGJD,EAAkBF,GAElB,MAUM14F,EAAU,CACd6yF,eACA12F,QAAS0mB,KAAK1mB,QACd4vF,SAAUlpE,KAAKkpE,SACfhiD,MAAOlnB,KAAKknB,MACZ+uD,QAfc,IACTj2E,KAAK1mB,QAAQ6vF,SAIlBnpE,KAAK00E,qBAAsB,EACpB10E,KAAK1mB,QAAQ6vF,QAAQ0M,IAJnB12E,QAAQ44C,OAAO,oBAqBxB,IAAIm+B,GANNH,EAAkB54F,GACiC,OAAlDs4F,EAAwBz1E,KAAK1mB,QAAQ68F,WAA6BV,EAAsBW,QAAQj5F,GAEjG6iB,KAAKq2E,YAAcr2E,KAAKknB,MAEO,SAA3BlnB,KAAKknB,MAAMsiD,aAA0BxpE,KAAKknB,MAAM6tD,aAAiE,OAAjDW,EAAwBv4F,EAAQ6yF,mBAAwB,EAAS0F,EAAsBhvD,QAGzJ1mB,KAAKu/D,SAAS,CACZp/D,KAAM,QACNumB,KAAyD,OAAlDwvD,EAAyB/4F,EAAQ6yF,mBAAwB,EAASkG,EAAuBxvD,OAIpG,MAAM+T,EAAU5lD,IAUZ,IAAIyhG,EAAuBC,IARvB,QAAiB1hG,IAAUA,EAAMoyF,QACrCjnE,KAAKu/D,SAAS,CACZp/D,KAAM,QACNtrB,MAAOA,KAIN,QAAiBA,MAI0D,OAA7EyhG,GAAyBC,EAAqBv2E,KAAKijC,MAAMtoC,QAAQ8/B,UAA4B67C,EAAsBx/F,KAAKy/F,EAAoB1hG,EAAOmrB,OAOjJA,KAAK+vE,sBAER/vE,KAAKqiE,aAGPriE,KAAK+vE,sBAAuB,CAAK,EAqDnC,OAjDA/vE,KAAKgjE,SAAU,QAAc,CAC3BjvE,GAAI5W,EAAQ84F,QACZ5N,MAA0B,MAAnBuN,OAA0B,EAASA,EAAgBvN,MAAMjgE,KAAKwtE,GACrElR,UAAWryE,IACT,IAAImkF,EAAwBC,EAER,qBAATpkF,GASX2N,KAAKi1E,QAAQ5iF,GAEqE,OAAjFmkF,GAA0BC,EAAsBz2E,KAAKijC,MAAMtoC,QAAQ+pE,YAA8B8R,EAAuB1/F,KAAK2/F,EAAqBpkF,EAAM2N,MAEpJA,KAAK+vE,sBAER/vE,KAAKqiE,aAGPriE,KAAK+vE,sBAAuB,GAb1Bt1C,EAAQ,IAAIpjD,MAAM,aAaa,EAEnCojD,UACA6oC,OAAQ,CAACC,EAAc1uF,KACrBmrB,KAAKu/D,SAAS,CACZp/D,KAAM,SACNojE,eACA1uF,SACA,EAEJ2uF,QAAS,KACPxjE,KAAKu/D,SAAS,CACZp/D,KAAM,SACN,EAEJsjE,WAAY,KACVzjE,KAAKu/D,SAAS,CACZp/D,KAAM,YACN,EAEJujE,MAAOvmF,EAAQ7D,QAAQoqF,MACvBC,WAAYxmF,EAAQ7D,QAAQqqF,WAC5BC,YAAazmF,EAAQ7D,QAAQsqF,cAE/B5jE,KAAK6jE,QAAU7jE,KAAKgjE,QAAQa,QACrB7jE,KAAK6jE,OACd,CAEAtE,SAAStf,GA8EPjgD,KAAKknB,MA7EWA,KACd,IAAIwvD,EAAcC,EAElB,OAAQ12B,EAAO9/C,MACb,IAAK,SACH,MAAO,IAAK+mB,EACVirD,kBAAmBlyB,EAAOsjB,aAC1B6O,mBAAoBnyB,EAAOprE,OAG/B,IAAK,QACH,MAAO,IAAKqyC,EACVsiD,YAAa,UAGjB,IAAK,WACH,MAAO,IAAKtiD,EACVsiD,YAAa,YAGjB,IAAK,QACH,MAAO,IAAKtiD,EACVirD,kBAAmB,EACnBC,mBAAoB,KACpB2C,UAA2C,OAA/B2B,EAAez2B,EAAOv5B,MAAgBgwD,EAAe,KACjElN,aAAa,QAASxpE,KAAK1mB,QAAQsqF,aAAe,WAAa,aAC1D18C,EAAMkpD,eAAiB,CAC1Bv7F,MAAO,KACP+tF,OAAQ,YAId,IAAK,UACH,MAAO,IAAK17C,EACV70B,KAAM4tD,EAAO5tD,KACbkgF,gBAAiBrrD,EAAMqrD,gBAAkB,EACzCnC,cAAiE,OAAjDuG,EAAwB12B,EAAOmwB,eAAyBuG,EAAwB//F,KAAK+sB,MACrG9uB,MAAO,KACPmgG,eAAe,EACfpS,OAAQ,cACH3iB,EAAOmzB,QAAU,CACpB5J,YAAa,OACb2I,kBAAmB,EACnBC,mBAAoB,OAI1B,IAAK,QACH,MAAMv9F,EAAQorE,EAAOprE,MAErB,OAAI,QAAiBA,IAAUA,EAAMmyF,QAAUhnE,KAAKq2E,YAC3C,IAAKr2E,KAAKq2E,aAIZ,IAAKnvD,EACVryC,MAAOA,EACPw9F,iBAAkBnrD,EAAMmrD,iBAAmB,EAC3Cd,eAAgB36F,KAAK+sB,MACrBwuE,kBAAmBjrD,EAAMirD,kBAAoB,EAC7CC,mBAAoBv9F,EACpB20F,YAAa,OACb5G,OAAQ,SAGZ,IAAK,aACH,MAAO,IAAK17C,EACV8tD,eAAe,GAGnB,IAAK,WACH,MAAO,IAAK9tD,KACP+4B,EAAO/4B,OAEhB,EAGWk+C,CAAQplE,KAAKknB,OAC1Bo+C,EAAA,SAAoB,KAClBtlE,KAAKiiE,UAAUx4D,SAAQ84D,IACrBA,EAAS4Q,cAAclzB,EAAO,IAEhCjgD,KAAKijC,MAAMw/B,OAAO,CAChBxhB,MAAOjhD,KACPG,KAAM,UACN8/C,UACA,GAEN,gBCxbF,MAAM,UAAmB,IACvBzpE,YAAYmkB,GACVgwD,QACA3qD,KAAKrF,OAASA,GAAU,CAAC,EACzBqF,KAAK42E,QAAU,GACf52E,KAAK62E,WAAa,CAAC,CACrB,CAEAtK,MAAMd,EAAQnyF,EAAS4tC,GACrB,IAAI4vD,EAEJ,MAAM5N,EAAW5vF,EAAQ4vF,SACnBQ,EAAwD,OAA3CoN,EAAqBx9F,EAAQowF,WAAqBoN,GAAqB,QAAsB5N,EAAU5vF,GAC1H,IAAI2nE,EAAQjhD,KAAK5B,IAAIsrE,GAerB,OAbKzoB,IACHA,EAAQ,IAAIwzB,EAAM,CAChBxxC,MAAOjjC,KACPgiE,OAAQyJ,EAAOsL,YACf7N,WACAQ,YACApwF,QAASmyF,EAAOoD,oBAAoBv1F,GACpC4tC,QACA/tC,eAAgBsyF,EAAOuL,iBAAiB9N,KAE1ClpE,KAAK+I,IAAIk4C,IAGJA,CACT,CAEAl4C,IAAIk4C,GACGjhD,KAAK62E,WAAW51B,EAAMyoB,aACzB1pE,KAAK62E,WAAW51B,EAAMyoB,WAAazoB,EACnCjhD,KAAK42E,QAAQvhG,KAAK4rE,GAClBjhD,KAAKyiE,OAAO,CACVtiE,KAAM,QACN8gD,UAGN,CAEAj4C,OAAOi4C,GACL,MAAMg2B,EAAaj3E,KAAK62E,WAAW51B,EAAMyoB,WAErCuN,IACFh2B,EAAMylB,UACN1mE,KAAK42E,QAAU52E,KAAK42E,QAAQjlF,QAAOnS,GAAKA,IAAMyhE,IAE1Cg2B,IAAeh2B,UACVjhD,KAAK62E,WAAW51B,EAAMyoB,WAG/B1pE,KAAKyiE,OAAO,CACVtiE,KAAM,UACN8gD,UAGN,CAEA5oC,QACEitD,EAAA,SAAoB,KAClBtlE,KAAK42E,QAAQntE,SAAQw3C,IACnBjhD,KAAKgJ,OAAOi4C,EAAM,GAClB,GAEN,CAEA7iD,IAAIsrE,GACF,OAAO1pE,KAAK62E,WAAWnN,EACzB,CAEAwN,SACE,OAAOl3E,KAAK42E,OACd,CAEAnkF,KAAK6xC,EAAMC,GACT,MAAO+kC,IAAW,QAAgBhlC,EAAMC,GAMxC,MAJ6B,qBAAlB+kC,EAAQC,QACjBD,EAAQC,OAAQ,GAGXvpE,KAAK42E,QAAQnkF,MAAKwuD,IAAS,QAAWqoB,EAASroB,IACxD,CAEAk2B,QAAQ7yC,EAAMC,GACZ,MAAO+kC,IAAW,QAAgBhlC,EAAMC,GACxC,OAAO9vD,OAAO4oC,KAAKisD,GAASt0F,OAAS,EAAIgrB,KAAK42E,QAAQjlF,QAAOsvD,IAAS,QAAWqoB,EAASroB,KAAUjhD,KAAK42E,OAC3G,CAEAnU,OAAOr+D,GACLkhE,EAAA,SAAoB,KAClBtlE,KAAKwhE,UAAU/3D,SAAQQ,IACrBA,EAAS7F,EAAM,GACf,GAEN,CAEA+jD,UACEmd,EAAA,SAAoB,KAClBtlE,KAAK42E,QAAQntE,SAAQw3C,IACnBA,EAAMkH,SAAS,GACf,GAEN,CAEAge,WACEb,EAAA,SAAoB,KAClBtlE,KAAK42E,QAAQntE,SAAQw3C,IACnBA,EAAMklB,UAAU,GAChB,GAEN,gBCjHF,MAAM,UAAsB,IAC1B3vF,YAAYmkB,GACVgwD,QACA3qD,KAAKrF,OAASA,GAAU,CAAC,EACzBqF,KAAKo3E,UAAY,GACjBp3E,KAAK8hE,WAAa,CACpB,CAEAyK,MAAMd,EAAQnyF,EAAS4tC,GACrB,MAAM6K,EAAW,IAAI,IAAS,CAC5BgwC,cAAe/hE,KACfgiE,OAAQyJ,EAAOsL,YACfjV,aAAc9hE,KAAK8hE,WACnBxoF,QAASmyF,EAAOM,uBAAuBzyF,GACvC4tC,QACA/tC,eAAgBG,EAAQ2wF,YAAcwB,EAAO4L,oBAAoB/9F,EAAQ2wF,kBAAelmF,IAG1F,OADAic,KAAK+I,IAAIgpB,GACFA,CACT,CAEAhpB,IAAIgpB,GACF/xB,KAAKo3E,UAAU/hG,KAAK08C,GACpB/xB,KAAKyiE,OAAO,CACVtiE,KAAM,QACN4xB,YAEJ,CAEA/oB,OAAO+oB,GACL/xB,KAAKo3E,UAAYp3E,KAAKo3E,UAAUzlF,QAAOnS,GAAKA,IAAMuyC,IAClD/xB,KAAKyiE,OAAO,CACVtiE,KAAM,UACN4xB,YAEJ,CAEA1Z,QACEitD,EAAA,SAAoB,KAClBtlE,KAAKo3E,UAAU3tE,SAAQsoB,IACrB/xB,KAAKgJ,OAAO+oB,EAAS,GACrB,GAEN,CAEAmlD,SACE,OAAOl3E,KAAKo3E,SACd,CAEA3kF,KAAK62E,GAKH,MAJ6B,qBAAlBA,EAAQC,QACjBD,EAAQC,OAAQ,GAGXvpE,KAAKo3E,UAAU3kF,MAAKs/B,IAAY,QAAcu3C,EAASv3C,IAChE,CAEAolD,QAAQ7N,GACN,OAAOtpE,KAAKo3E,UAAUzlF,QAAOogC,IAAY,QAAcu3C,EAASv3C,IAClE,CAEA0wC,OAAOr+D,GACLkhE,EAAA,SAAoB,KAClBtlE,KAAKwhE,UAAU/3D,SAAQQ,IACrBA,EAAS7F,EAAM,GACf,GAEN,CAEAkzE,wBACE,IAAIC,EAQJ,OANAv3E,KAAKw3E,UAAgD,OAAnCD,EAAiBv3E,KAAKw3E,UAAoBD,EAAiBp4E,QAAQC,WAAW0T,MAAK,KACnG,MAAM2kE,EAAkBz3E,KAAKo3E,UAAUzlF,QAAOnS,GAAKA,EAAE0nC,MAAMi+C,WAC3D,OAAOG,EAAA,SAAoB,IAAMmS,EAAgBviG,QAAO,CAAC2uF,EAAS9xC,IAAa8xC,EAAQ/wD,MAAK,IAAMif,EAAS8wC,WAAWjG,MAAM,SAAQz9D,QAAQC,YAAW,IACtJ0T,MAAK,KACN9S,KAAKw3E,cAAWzzF,CAAS,IAEpBic,KAAKw3E,QACd,0BCrFF,SAASE,IACP,MAAO,CACLtB,QAASj5F,IACPA,EAAQ84F,QAAU,KAChB,IAAIP,EAAuBQ,EAAwByB,EAAwBC,EAAwBC,EAAqBC,EAExH,MAAMnI,EAAgE,OAAjD+F,EAAwBv4F,EAAQ6yF,eAA0F,OAAxDkG,EAAyBR,EAAsBhvD,WAAzD,EAAkFwvD,EAAuBvG,YAChLoI,EAA+D,OAAlDJ,EAAyBx6F,EAAQ6yF,eAA2F,OAAzD4H,EAAyBD,EAAuBjxD,WAA1D,EAAmFkxD,EAAuBG,UAChLjC,EAAyB,MAAbiC,OAAoB,EAASA,EAAUjC,UACnDkC,EAA4E,aAAzC,MAAbD,OAAoB,EAASA,EAAUp+E,WAC7Ds+E,EAAgF,cAAzC,MAAbF,OAAoB,EAASA,EAAUp+E,WACjEu+E,GAA0D,OAA7CL,EAAsB16F,EAAQ+pC,MAAM70B,WAAgB,EAASwlF,EAAoBM,QAAU,GACxGC,GAAgE,OAA9CN,EAAuB36F,EAAQ+pC,MAAM70B,WAAgB,EAASylF,EAAqBO,aAAe,GAC1H,IAAIC,EAAgBF,EAChBG,GAAY,EAEhB,MAsBMpP,EAAUhsF,EAAQ7D,QAAQ6vF,SAAW,KAAOhqE,QAAQ44C,OAAO,oBAE3DygC,EAAgB,CAACL,EAAOlzD,EAAOwzD,EAAMC,KACzCJ,EAAgBI,EAAW,CAACzzD,KAAUqzD,GAAiB,IAAIA,EAAerzD,GACnEyzD,EAAW,CAACD,KAASN,GAAS,IAAIA,EAAOM,IAI5CE,EAAY,CAACR,EAAO/E,EAAQnuD,EAAOyzD,KACvC,GAAIH,EACF,OAAOp5E,QAAQ44C,OAAO,aAGxB,GAAqB,qBAAV9yB,IAA0BmuD,GAAU+E,EAAMnjG,OACnD,OAAOmqB,QAAQC,QAAQ+4E,GAGzB,MAAMtC,EAAiB,CACrB3M,SAAU/rF,EAAQ+rF,SAClB4M,UAAW7wD,EACXyB,KAAMvpC,EAAQ7D,QAAQotC,MA1CAt/B,QA4CNyuF,EA3ClBphG,OAAOymB,eAAe9T,EAAQ,SAAU,CACtCyU,YAAY,EACZuC,IAAK,KACH,IAAIw6E,EAKEC,EAON,OAV0C,OAArCD,EAAkBz7F,EAAQ64F,SAAmB4C,EAAgBE,QAChEP,GAAY,EAI2B,OAAtCM,EAAmB17F,EAAQ64F,SAA2B6C,EAAiBx6E,iBAAiB,SAAS,KAChGk6E,GAAY,CAAI,IAIbp7F,EAAQ64F,MAAM,IA6BzB,MAAM+C,EAAgB5P,EAAQ0M,GAE9B,OADgB12E,QAAQC,QAAQ25E,GAAejmE,MAAK2lE,GAAQD,EAAcL,EAAOlzD,EAAOwzD,EAAMC,IAChF,EAGhB,IAAI7U,EAEJ,GAAKqU,EAASljG,OAGT,GAAIgjG,EAAoB,CAC3B,MAAM5E,EAA8B,qBAAd0C,EAChB7wD,EAAQmuD,EAAS0C,EAAYkD,EAAiB77F,EAAQ7D,QAAS4+F,GACrErU,EAAU8U,EAAUT,EAAU9E,EAAQnuD,EACxC,MACK,GAAIgzD,EAAwB,CAC/B,MAAM7E,EAA8B,qBAAd0C,EAChB7wD,EAAQmuD,EAAS0C,EAAYmD,EAAqB97F,EAAQ7D,QAAS4+F,GACzErU,EAAU8U,EAAUT,EAAU9E,EAAQnuD,GAAO,EAC/C,KACK,CACHqzD,EAAgB,GAChB,MAAMlF,EAAqD,qBAArCj2F,EAAQ7D,QAAQ0/F,iBAGtCnV,GAF6B8L,IAAeuI,EAAS,IAAKvI,EAAYuI,EAAS,GAAI,EAAGA,GAErDS,EAAU,GAAIvF,EAAQgF,EAAc,IAAMj5E,QAAQC,QAAQo5E,EAAc,GAAIJ,EAAc,GAAIF,EAAS,KAExI,IAAK,IAAI15F,EAAI,EAAGA,EAAI05F,EAASljG,OAAQwJ,IACnCqlF,EAAUA,EAAQ/wD,MAAKqlE,IAGrB,IAF4BxI,IAAeuI,EAAS15F,IAAKmxF,EAAYuI,EAAS15F,GAAIA,EAAG05F,GAE5D,CACvB,MAAMjzD,EAAQmuD,EAASgF,EAAc55F,GAAKw6F,EAAiB77F,EAAQ7D,QAAS6+F,GAC5E,OAAOQ,EAAUR,EAAO/E,EAAQnuD,EAClC,CAEA,OAAO9lB,QAAQC,QAAQo5E,EAAcL,EAAOC,EAAc55F,GAAI05F,EAAS15F,IAAI,GAGjF,MA/BEqlF,EAAU8U,EAAU,IAqCtB,OAJqB9U,EAAQ/wD,MAAKqlE,IAAS,CACzCA,QACAE,WAAYC,KAEK,CACpB,EAGP,CACA,SAASU,EAAiB1/F,EAAS6+F,GACjC,OAAmC,MAA5B7+F,EAAQ0/F,sBAA2B,EAAS1/F,EAAQ0/F,iBAAiBb,EAAMA,EAAMnjG,OAAS,GAAImjG,EACvG,CACA,SAASc,EAAqB3/F,EAAS6+F,GACrC,OAAuC,MAAhC7+F,EAAQ2/F,0BAA+B,EAAS3/F,EAAQ2/F,qBAAqBd,EAAM,GAAIA,EAChG,CC1GA,MAAM,EACJ3hG,YAAYmkB,EAAS,CAAC,GACpBqF,KAAKk5E,WAAav+E,EAAOu+E,YAAc,IAAI,EAC3Cl5E,KAAK+hE,cAAgBpnE,EAAOonE,eAAiB,IAAI,EACjD/hE,KAAKgiE,OAASrnE,EAAOqnE,QAAU,IAC/BhiE,KAAK7mB,eAAiBwhB,EAAOxhB,gBAAkB,CAAC,EAChD6mB,KAAKm5E,cAAgB,GACrBn5E,KAAKo5E,iBAAmB,GACxBp5E,KAAKq5E,WAAa,CAKpB,CAEA/kE,QACEtU,KAAKq5E,aACmB,IAApBr5E,KAAKq5E,aACTr5E,KAAKs5E,iBAAmB3X,EAAA,aAAuB,KACzCA,EAAA,gBACF3hE,KAAKs3E,wBACLt3E,KAAKk5E,WAAW/wB,UAClB,IAEFnoD,KAAKu5E,kBAAoB/S,EAAA,aAAwB,KAC3CA,EAAA,eACFxmE,KAAKs3E,wBACLt3E,KAAKk5E,WAAW/S,WAClB,IAEJ,CAEAxnB,UACE,IAAI66B,EAAuBC,EAE3Bz5E,KAAKq5E,aACmB,IAApBr5E,KAAKq5E,aAC0C,OAAlDG,EAAwBx5E,KAAKs5E,mBAAqCE,EAAsB1iG,KAAKkpB,MAC9FA,KAAKs5E,sBAAmBv1F,EAC4B,OAAnD01F,EAAwBz5E,KAAKu5E,oBAAsCE,EAAsB3iG,KAAKkpB,MAC/FA,KAAKu5E,uBAAoBx1F,EAC3B,CAEAkuF,WAAW3tC,EAAMC,GACf,MAAO+kC,IAAW,QAAgBhlC,EAAMC,GAExC,OADA+kC,EAAQE,YAAc,WACfxpE,KAAKk5E,WAAW/B,QAAQ7N,GAASt0F,MAC1C,CAEA0kG,WAAWpQ,GACT,OAAOtpE,KAAK+hE,cAAcoV,QAAQ,IAAK7N,EACrCU,UAAU,IACTh1F,MACL,CAEA2kG,aAAazQ,EAAUI,GACrB,IAAIsQ,EAEJ,OAA4E,OAApEA,EAAwB55E,KAAKk5E,WAAWzmF,KAAKy2E,EAAUI,SAAoB,EAASsQ,EAAsB1yD,MAAM70B,IAC1H,CAEAwnF,gBAAgBv1C,EAAMC,EAAM8F,GAC1B,MAAMyvC,GAAgB,QAAex1C,EAAMC,EAAM8F,GAC3C0vC,EAAa/5E,KAAK25E,aAAaG,EAAc5Q,UACnD,OAAO6Q,EAAa56E,QAAQC,QAAQ26E,GAAc/5E,KAAKg6E,WAAWF,EACpE,CAEAG,eAAeC,GACb,OAAOl6E,KAAK8uE,gBAAgBqI,QAAQ+C,GAAmB/wF,KAAI,EACzD+/E,WACAhiD,WAGO,CAACgiD,EADKhiD,EAAM70B,OAGvB,CAEA8nF,aAAajR,EAAUP,EAASrvF,GAC9B,MAAM2nE,EAAQjhD,KAAKk5E,WAAWzmF,KAAKy2E,GAC7BmC,EAAoB,MAATpqB,OAAgB,EAASA,EAAM/5B,MAAM70B,KAChDA,GAAO,QAAiBs2E,EAAS0C,GAEvC,GAAoB,qBAATh5E,EACT,OAGF,MAAMynF,GAAgB,QAAe5Q,GAC/B4G,EAAmB9vE,KAAK6uE,oBAAoBiL,GAClD,OAAO95E,KAAKk5E,WAAW3M,MAAMvsE,KAAM8vE,GAAkBmF,QAAQ5iF,EAAM,IAAK/Y,EACtE85F,QAAQ,GAEZ,CAEAgH,eAAeF,EAAmBvR,EAASrvF,GACzC,OAAOgsF,EAAA,SAAoB,IAAMtlE,KAAK8uE,gBAAgBqI,QAAQ+C,GAAmB/wF,KAAI,EACnF+/E,cACI,CAACA,EAAUlpE,KAAKm6E,aAAajR,EAAUP,EAASrvF,OACxD,CAEA+gG,cAAcnR,EAAUI,GACtB,IAAIgR,EAEJ,OAA6E,OAArEA,EAAyBt6E,KAAKk5E,WAAWzmF,KAAKy2E,EAAUI,SAAoB,EAASgR,EAAuBpzD,KACtH,CAEAqzD,cAAcj2C,EAAMC,GAClB,MAAO+kC,IAAW,QAAgBhlC,EAAMC,GAClC20C,EAAal5E,KAAKk5E,WACxB5T,EAAA,SAAoB,KAClB4T,EAAW/B,QAAQ7N,GAAS7/D,SAAQw3C,IAClCi4B,EAAWlwE,OAAOi4C,EAAM,GACxB,GAEN,CAEAu5B,aAAal2C,EAAMC,EAAM8F,GACvB,MAAOi/B,EAAShwF,IAAW,QAAgBgrD,EAAMC,EAAM8F,GACjD6uC,EAAal5E,KAAKk5E,WAClBuB,EAAiB,CACrBt6E,KAAM,YACHmpE,GAEL,OAAOhE,EAAA,SAAoB,KACzB4T,EAAW/B,QAAQ7N,GAAS7/D,SAAQw3C,IAClCA,EAAMjvD,OAAO,IAERgO,KAAK06E,eAAeD,EAAgBnhG,KAE/C,CAEAqhG,cAAcr2C,EAAMC,EAAM8F,GACxB,MAAOi/B,EAASlB,EAAgB,CAAC,IAAK,QAAgB9jC,EAAMC,EAAM8F,GAE9B,qBAAzB+9B,EAAcpB,SACvBoB,EAAcpB,QAAS,GAGzB,MAAM4T,EAAWtV,EAAA,SAAoB,IAAMtlE,KAAKk5E,WAAW/B,QAAQ7N,GAASngF,KAAI83D,GAASA,EAAMknB,OAAOC,OACtG,OAAOjpE,QAAQoW,IAAIqlE,GAAU9nE,KAAK,MAAM8pD,MAAM,KAChD,CAEAie,kBAAkBv2C,EAAMC,EAAM8F,GAC5B,MAAOi/B,EAAShwF,IAAW,QAAgBgrD,EAAMC,EAAM8F,GACvD,OAAOi7B,EAAA,SAAoB,KACzB,IAAI/rF,EAAMuhG,EAMV,GAJA96E,KAAKk5E,WAAW/B,QAAQ7N,GAAS7/D,SAAQw3C,IACvCA,EAAMu0B,YAAY,IAGQ,SAAxBlM,EAAQyR,YACV,OAAO57E,QAAQC,UAGjB,MAAMq7E,EAAiB,IAAKnR,EAC1BnpE,KAA6G,OAAtG5mB,EAAuD,OAA/CuhG,EAAuBxR,EAAQyR,aAAuBD,EAAuBxR,EAAQnpE,MAAgB5mB,EAAO,UAE7H,OAAOymB,KAAK06E,eAAeD,EAAgBnhG,EAAQ,GAEvD,CAEAohG,eAAep2C,EAAMC,EAAM8F,GACzB,MAAOi/B,EAAShwF,IAAW,QAAgBgrD,EAAMC,EAAM8F,GACjDuwC,EAAWtV,EAAA,SAAoB,IAAMtlE,KAAKk5E,WAAW/B,QAAQ7N,GAAS33E,QAAOsvD,IAAUA,EAAMm0B,eAAcjsF,KAAI83D,IACnH,IAAI+5B,EAEJ,OAAO/5B,EAAM2uB,WAAM7rF,EAAW,IAAKzK,EACjC42F,cAA6F,OAA7E8K,EAAmC,MAAX1hG,OAAkB,EAASA,EAAQ42F,gBAAyB8K,EACpGt0D,KAAM,CACJipD,YAAarG,EAAQqG,cAEvB,MAEJ,IAAI9L,EAAU1kE,QAAQoW,IAAIqlE,GAAU9nE,KAAK,MAMzC,OAJiB,MAAXx5B,GAAmBA,EAAQ62F,eAC/BtM,EAAUA,EAAQjH,MAAM,OAGnBiH,CACT,CAEAmW,WAAW11C,EAAMC,EAAM8F,GACrB,MAAMyvC,GAAgB,QAAex1C,EAAMC,EAAM8F,GAC3CylC,EAAmB9vE,KAAK6uE,oBAAoBiL,GAEZ,qBAA3BhK,EAAiBpM,QAC1BoM,EAAiBpM,OAAQ,GAG3B,MAAMziB,EAAQjhD,KAAKk5E,WAAW3M,MAAMvsE,KAAM8vE,GAC1C,OAAO7uB,EAAMwyB,cAAc3D,EAAiB/G,WAAa9nB,EAAM2uB,MAAME,GAAoB3wE,QAAQC,QAAQ6hD,EAAM/5B,MAAM70B,KACvH,CAEA4oF,cAAc32C,EAAMC,EAAM8F,GACxB,OAAOrqC,KAAKg6E,WAAW11C,EAAMC,EAAM8F,GAAMv3B,KAAK,MAAM8pD,MAAM,KAC5D,CAEAse,mBAAmB52C,EAAMC,EAAM8F,GAC7B,MAAMyvC,GAAgB,QAAex1C,EAAMC,EAAM8F,GAEjD,OADAyvC,EAAc3D,SAAWuB,IAClB13E,KAAKg6E,WAAWF,EACzB,CAEAqB,sBAAsB72C,EAAMC,EAAM8F,GAChC,OAAOrqC,KAAKk7E,mBAAmB52C,EAAMC,EAAM8F,GAAMv3B,KAAK,MAAM8pD,MAAM,KACpE,CAEA0a,wBACE,OAAOt3E,KAAK+hE,cAAcuV,uBAC5B,CAEAxI,gBACE,OAAO9uE,KAAKk5E,UACd,CAEAlN,mBACE,OAAOhsE,KAAK+hE,aACd,CAEAgV,YACE,OAAO/2E,KAAKgiE,MACd,CAEA5oF,oBACE,OAAO4mB,KAAK7mB,cACd,CAEAiiG,kBAAkB9hG,GAChB0mB,KAAK7mB,eAAiBG,CACxB,CAEA+hG,iBAAiBnS,EAAU5vF,GACzB,MAAMoK,EAASsc,KAAKm5E,cAAc1mF,MAAKjT,IAAK,QAAa0pF,MAAc,QAAa1pF,EAAE0pF,YAElFxlF,EACFA,EAAOvK,eAAiBG,EAExB0mB,KAAKm5E,cAAc9jG,KAAK,CACtB6zF,WACA/vF,eAAgBG,GAGtB,CAEA09F,iBAAiB9N,GACf,IAAKA,EACH,OAIF,MAAMoS,EAAwBt7E,KAAKm5E,cAAc1mF,MAAKjT,IAAK,QAAgB0pF,EAAU1pF,EAAE0pF,YAWvF,OAAgC,MAAzBoS,OAAgC,EAASA,EAAsBniG,cACxE,CAEAoiG,oBAAoBtR,EAAa3wF,GAC/B,MAAMoK,EAASsc,KAAKo5E,iBAAiB3mF,MAAKjT,IAAK,QAAayqF,MAAiB,QAAazqF,EAAEyqF,eAExFvmF,EACFA,EAAOvK,eAAiBG,EAExB0mB,KAAKo5E,iBAAiB/jG,KAAK,CACzB40F,cACA9wF,eAAgBG,GAGtB,CAEA+9F,oBAAoBpN,GAClB,IAAKA,EACH,OAIF,MAAMqR,EAAwBt7E,KAAKo5E,iBAAiB3mF,MAAKjT,IAAK,QAAgByqF,EAAazqF,EAAEyqF,eAW7F,OAAgC,MAAzBqR,OAAgC,EAASA,EAAsBniG,cACxE,CAEA01F,oBAAoBv1F,GAClB,GAAe,MAAXA,GAAmBA,EAAQkiG,WAC7B,OAAOliG,EAGT,MAAMw2F,EAAmB,IAAK9vE,KAAK7mB,eAAey9F,WAC7C52E,KAAKg3E,iBAA4B,MAAX19F,OAAkB,EAASA,EAAQ4vF,aACzD5vF,EACHkiG,YAAY,GAgBd,OAbK1L,EAAiBpG,WAAaoG,EAAiB5G,WAClD4G,EAAiBpG,WAAY,QAAsBoG,EAAiB5G,SAAU4G,IAI7B,qBAAxCA,EAAiBvB,qBAC1BuB,EAAiBvB,mBAAsD,WAAjCuB,EAAiBlM,aAGR,qBAAtCkM,EAAiBkD,mBAC1BlD,EAAiBkD,mBAAqBlD,EAAiB0D,UAGlD1D,CACT,CAEA/D,uBAAuBzyF,GACrB,OAAe,MAAXA,GAAmBA,EAAQkiG,WACtBliG,EAGF,IAAK0mB,KAAK7mB,eAAei+F,aAC3Bp3E,KAAKq3E,oBAA+B,MAAX/9F,OAAkB,EAASA,EAAQ2wF,gBAC5D3wF,EACHkiG,YAAY,EAEhB,CAEAnjE,QACErY,KAAKk5E,WAAW7gE,QAChBrY,KAAK+hE,cAAc1pD,OACrB,gBC3VF,MAAMojE,UAAmB,EACvBhpF,KAAK6xC,EAAMC,GACT,MAAMm3C,GAAe,QAAep3C,GAC9Bq3C,GAAe,QAAep3C,GACpC,OAAOomB,MAAMl4D,KAAKipF,EAAcC,EAClC,CAEAxE,QAAQ7yC,EAAMC,GACZ,MAAMm3C,GAAe,QAAep3C,GAC9Bq3C,GAAe,QAAep3C,GAEpC,OAAI,QAAWm3C,GACN/wB,MAAMwsB,QAAQuE,EAAcC,GAG9BhxB,MAAMwsB,QAAQuE,EACvB,EChBF,MAAME,UAAsB,EAC1BnpF,KAAK62E,GACH,OAAO3e,MAAMl4D,MAAK,QAAe62E,GACnC,CAEA6N,QAAQ7N,GACN,OAAO3e,MAAMwsB,SAAQ,QAAe7N,GACtC,ECJF,MAAMuS,UAAoB,EACxBrlG,YAAYmkB,EAAS,CAAC,GACpB,MAAMmhF,GAAiB,QAAenhF,GAOtCgwD,MANuB,CACrBqX,QAAQ,QAAe8Z,EAAe9Z,QACtC7oF,gBAAgB,QAAe2iG,EAAe3iG,gBAC9C+/F,WAAY4C,EAAe5C,YAAc,IAAIuC,EAC7C1Z,cAAe+Z,EAAe/Z,eAAiB,IAAI6Z,IAGrD57E,KAAK8zE,aAAc,SAAI,EACzB,CAEA7B,WAAW3tC,EAAMC,GACf,MAAMm3C,GAAe,QAAep3C,GAC9Bq3C,GAAe,QAAep3C,GAEpC,OAAI,QAAWm3C,GACN/wB,MAAMsnB,WAAWyJ,EAAcC,GAGjChxB,MAAMsnB,WAAWyJ,EAC1B,CAEAhC,WAAWpQ,GACT,OAAO3e,MAAM+uB,YAAW,QAAepQ,GACzC,CAEAqQ,aAAazQ,EAAUI,GACrB,OAAO3e,MAAMgvB,cAAa,QAAezQ,IAAW,QAAeI,GACrE,CAEA2Q,eAAeC,GACb,MAAM6B,GAAW,QAAe7B,GAEhC,OAAI,QAAW6B,GACNpxB,MAAMsvB,eAAe8B,EAIhC,CAEA5B,aAAajR,EAAUP,EAASrvF,GAC9B,OAAOqxE,MAAMwvB,cAAa,QAAejR,GAAWP,GAAS,QAAervF,GAC9E,CAEA8gG,eAAeF,EAAmBvR,EAASrvF,GACzC,MAAMoiG,GAAe,QAAexB,GAC9B8B,GAAe,QAAe1iG,GAEpC,OAAI,QAAWoiG,GACN/wB,MAAMyvB,eAAesB,EAAc/S,EAASqT,EAIvD,CAEA3B,cAAcnR,EAAUI,GACtB,OAAO3e,MAAM0vB,eAAc,QAAenR,IAAW,QAAeI,GACtE,CAEAiR,cAAcj2C,EAAMC,GAClB,MAAMm3C,GAAe,QAAep3C,GAEpC,OAAI,QAAWo3C,GACN/wB,MAAM4vB,cAAcmB,GAAc,QAAen3C,IAGnDomB,MAAM4vB,cAAcmB,EAC7B,CAEAlB,aAAal2C,EAAMC,EAAM8F,GACvB,MAAMqxC,GAAe,QAAep3C,GAC9Bq3C,GAAe,QAAep3C,GAEpC,OAAI,QAAWm3C,GACN/wB,MAAM6vB,aAAakB,EAAcC,GAAc,QAAetxC,IAGhEsgB,MAAM6vB,aAAakB,EAAcC,EAC1C,CAEAhB,cAAcr2C,EAAMC,EAAM8F,GACxB,MAAMqxC,GAAe,QAAep3C,GAC9Bq3C,GAAe,QAAep3C,GAEpC,OAAI,QAAWm3C,GACN/wB,MAAMgwB,cAAce,EAAcC,GAAc,QAAetxC,IAGjEsgB,MAAMgwB,cAAce,EAAcC,EAC3C,CAEAd,kBAAkBv2C,EAAMC,EAAM8F,GAC5B,MAAMqxC,GAAe,QAAep3C,GAC9Bq3C,GAAe,QAAep3C,GAEpC,OAAI,QAAWm3C,GACN/wB,MAAMkwB,kBAAkBa,EAAcC,GAAc,QAAetxC,IAGrEsgB,MAAMkwB,kBAAkBa,EAAcC,EAC/C,CAEAjB,eAAep2C,EAAMC,EAAM8F,GACzB,MAAMqxC,GAAe,QAAep3C,GAC9Bq3C,GAAe,QAAep3C,GAEpC,OAAI,QAAWm3C,GACN/wB,MAAM+vB,eAAegB,EAAcC,GAAc,QAAetxC,IAGlEsgB,MAAM+vB,eAAegB,EAAcC,EAC5C,CAEA3B,WAAW11C,EAAMC,EAAM8F,GACrB,MAAMqxC,GAAe,QAAep3C,GAC9Bq3C,GAAe,QAAep3C,GAEpC,OAAI,QAAWm3C,GACN/wB,MAAMqvB,WAAW0B,EAAcC,GAAc,QAAetxC,IAG9DsgB,MAAMqvB,WAAW0B,EAC1B,CAEAT,cAAc32C,EAAMC,EAAM8F,GACxB,OAAOsgB,MAAMswB,eAAc,QAAe32C,IAAO,QAAeC,IAAO,QAAe8F,GACxF,CAEA6wC,mBAAmB52C,EAAMC,EAAM8F,GAC7B,MAAMqxC,GAAe,QAAep3C,GAC9Bq3C,GAAe,QAAep3C,GAEpC,OAAI,QAAWm3C,GACN/wB,MAAMuwB,mBAAmBQ,EAAcC,GAAc,QAAetxC,IAGtEsgB,MAAMuwB,mBAAmBQ,EAClC,CAEAP,sBAAsB72C,EAAMC,EAAM8F,GAChC,OAAOsgB,MAAMwwB,uBAAsB,QAAe72C,IAAO,QAAeC,IAAO,QAAe8F,GAChG,CAEA+wC,kBAAkB9hG,GAChBqxE,MAAMywB,mBAAkB,QAAe9hG,GACzC,CAEA+hG,iBAAiBnS,EAAU5vF,GACzBqxE,MAAM0wB,kBAAiB,QAAenS,IAAW,QAAe5vF,GAClE,CAEA09F,iBAAiB9N,GACf,OAAOve,MAAMqsB,kBAAiB,QAAe9N,GAC/C,CAEAqS,oBAAoBtR,EAAa3wF,GAC/BqxE,MAAM4wB,qBAAoB,QAAetR,IAAc,QAAe3wF,GACxE,CAEA+9F,oBAAoBpN,GAClB,OAAOtf,MAAM0sB,qBAAoB,QAAepN,GAClD,ECpKF,MAAMgS,EAAiB,CACrBjmE,QAAS,CAACC,EAAK38B,EAAU,CAAC,KACxB,MAAM4iG,GAAY,QAAa5iG,EAAQo0F,gBACvC,IAAIjC,EAEJ,GAAI,gBAAiBnyF,GAAWA,EAAQk0F,YACtC/B,EAASnyF,EAAQk0F,iBAEjB,GAAIl0F,EAAQ6iG,gBAAoC,qBAAX3nF,OACnC,GAAKA,OAAO4nF,sBAKV3Q,EAASj3E,OAAO4nF,0BALiB,CACjC,MAAMC,EAAe,sBAAuB/iG,EAAUA,EAAQgjG,uBAAoBv4F,EAClF0nF,EAAS,IAAIoQ,EAAYQ,GACzB7nF,OAAO4nF,sBAAwB3Q,CACjC,KAGK,CACL,MAAM4Q,EAAe,sBAAuB/iG,EAAUA,EAAQgjG,uBAAoBv4F,EAClF0nF,EAAS,IAAIoQ,EAAYQ,EAC3B,CAGF5Q,EAAOn3D,QAEP,IAAIioE,EAAmB,OAGvB,GAAIjjG,EAAQkjG,gBAAiB,CAC3B/Q,EAAOqI,YAAYv/F,OAAQ,EAC3B,MAAOoqE,EAASklB,GAAWvqF,EAAQkjG,gBAAgB/Q,GACnD8Q,EAAmB59B,EACnBklB,EAAQ/wD,MAAK,KACX24D,EAAOqI,YAAYv/F,OAAQ,CAAK,GAEpC,CAMA,MAAMysF,EAAU,KACdyK,EAAO9sB,UACP49B,GAAkB,EAGpB,GAAItmE,EAAIwmE,UACNxmE,EAAIwmE,UAAUzb,OACT,CACL,MAAM0b,EAAkBzmE,EAAI0oC,QAE5B1oC,EAAI0oC,QAAU,WACZqiB,IACA0b,GACF,CACF,CAII,KACFzmE,EAAIqnC,MAAM,CACRE,eAEE,IAAKx9C,KAAK28E,UAAW,CACnB,MAAMC,EAAe,CAAC,EACtBnoG,OAAOymB,eAAe8E,KAAM,YAAa,CACvC5B,IAAK,IAAMw+E,EACXnkE,IAAKgI,GAAKhsC,OAAOC,OAAOkoG,EAAcn8D,IAE1C,CAEAzgB,KAAK28E,UAAUT,GAAazQ,CAO9B,IAIFx1D,EAAInW,QAAQo8E,EAAWzQ,EAKzB,4XCzFAoR,GAAS,8GCAKpoG,OAAOymB,eACNzmB,OAAO2mB,iBACA3mB,OAAO6mB,0BACL7mB,OAAO+mB,sBACd/mB,OAAOgC,UAAU6Q,eACjB7S,OAAOgC,UAAUklB,qBA2DtC,SAAS,EAAkB5H,GACzB,SAAI,aACF,QAAeA,IACR,EAGX,CA4GkBtf,OAAOymB,eACGzmB,OAAO+mB,sBACd/mB,OAAOgC,UAAU6Q,eACjB7S,OAAOgC,UAAUklB,qBAkHtC,MAAM,EAA6B,qBAAXnH,OAYlB,GALW/f,OAAOgC,UAAUI,SAKrB,QAkMb,SAAS,KAASpB,GAChB,GAAoB,IAAhBA,EAAKT,OACP,OAAO,WAAWS,GACpB,MAAMqrC,EAAIrrC,EAAK,GACf,MAAoB,oBAANqrC,GAAmB,SAAS,SAAU,KAAM,CAAG1iB,IAAK0iB,EAAGrI,IAAK,QAAY,QAAIqI,EAC5F,CAoMkBrsC,OAAOymB,eACNzmB,OAAO2mB,iBACA3mB,OAAO6mB,0BACL7mB,OAAO+mB,sBACd/mB,OAAOgC,UAAU6Q,eACjB7S,OAAOgC,UAAUklB,qBAgbpBlnB,OAAOymB,eACGzmB,OAAO+mB,sBACd/mB,OAAOgC,UAAU6Q,eACjB7S,OAAOgC,UAAUklB,qBA2FpBlnB,OAAOymB,eACGzmB,OAAO+mB,sBACd/mB,OAAOgC,UAAU6Q,eACjB7S,OAAOgC,UAAUklB,qBAqGVlnB,OAAO+mB,sBACd/mB,OAAOgC,UAAU6Q,eACjB7S,OAAOgC,UAAUklB,qBA6BVlnB,OAAO+mB,sBACd/mB,OAAOgC,UAAU6Q,eACjB7S,OAAOgC,UAAUklB,qBAiCpBlnB,OAAOymB,eACNzmB,OAAO2mB,iBACA3mB,OAAO6mB,0BACL7mB,OAAO+mB,sBACd/mB,OAAOgC,UAAU6Q,eACjB7S,OAAOgC,UAAUklB,qBA2CpBlnB,OAAOymB,eACNzmB,OAAO2mB,iBACA3mB,OAAO6mB,0BACL7mB,OAAO+mB,sBACd/mB,OAAOgC,UAAU6Q,eACjB7S,OAAOgC,UAAUklB,qBAwBpBlnB,OAAOymB,eACNzmB,OAAO2mB,iBACA3mB,OAAO6mB,0BACL7mB,OAAO+mB,sBACd/mB,OAAOgC,UAAU6Q,eACjB7S,OAAOgC,UAAUklB,qBAkGpBlnB,OAAOymB,eACNzmB,OAAO2mB,iBACA3mB,OAAO6mB,0BACL7mB,OAAO+mB,sBACd/mB,OAAOgC,UAAU6Q,eACjB7S,OAAOgC,UAAUklB,qBA+BpBlnB,OAAOymB,eACNzmB,OAAO2mB,iBACA3mB,OAAO6mB,0BACL7mB,OAAO+mB,sBACd/mB,OAAOgC,UAAU6Q,eACjB7S,OAAOgC,UAAUklB,qBA2CpBlnB,OAAOymB,eACNzmB,OAAO2mB,iBACA3mB,OAAO6mB,0BACL7mB,OAAO+mB,sBACd/mB,OAAOgC,UAAU6Q,eACjB7S,OAAOgC,UAAUklB,qBA6CtBlnB,OAAOymB,eACNzmB,OAAO2mB,iBACA3mB,OAAO6mB,0BACL7mB,OAAO+mB,sBACd/mB,OAAOgC,UAAU6Q,eACjB7S,OAAOgC,UAAUklB,qBC9mDlBlnB,OAAOymB,eACNzmB,OAAO2mB,iBACA3mB,OAAO6mB,0BACL7mB,OAAO+mB,sBACd/mB,OAAOgC,UAAU6Q,eACjB7S,OAAOgC,UAAUklB,qBA8GtC,MAAMmhF,EAAgB,EAAWtoF,YAAS,EAClB,GAAWA,OAAOiC,SACjB,GAAWjC,OAAOkB,UACnB,GAAWlB,OAAOmjC,SAoGxBljD,OAAOymB,eACNzmB,OAAO2mB,iBACA3mB,OAAO6mB,0BACL7mB,OAAO+mB,sBACd/mB,OAAOgC,UAAU6Q,eACjB7S,OAAOgC,UAAUklB,qBA+LtC,SAASohF,EAAaplE,GACpB,MAAM/V,EAXR,WACE,MAAMA,GAAY,SAAI,GAMtB,OALI,YACF,SAAU,KACRA,EAAUrtB,OAAQ,CAAI,IAGnBqtB,CACT,CAGoBo7E,GAClB,OAAO,SAAS,KACdp7E,EAAUrtB,MACHksB,QAAQkX,OAEnB,CAuSkBljC,OAAOymB,eACNzmB,OAAO2mB,iBACA3mB,OAAO6mB,0BACL7mB,OAAO+mB,sBACd/mB,OAAOgC,UAAU6Q,eACjB7S,OAAOgC,UAAUklB,qBAgRtC,SAASshF,EAAch8B,EAAO3nE,EAAU,CAAC,GACvC,MAAM,OAAEkb,EAASsoF,GAAkBxjG,EAC7B4jG,EAAcH,GAAa,IAAMvoF,GAAU,eAAgBA,GAAuC,oBAAtBA,EAAO2oF,aACzF,IAAIC,EACJ,MAAMnyC,GAAU,SAAI,GACd+1B,EAAU,KACToc,IAED,wBAAyBA,EAC3BA,EAAWlzE,oBAAoB,SAAUspB,GAEzC4pD,EAAWC,eAAe7pD,GAAO,EAE/BA,EAAS,KACR0pD,EAAY3oG,QAEjBysF,IACAoc,EAAa5oF,EAAO2oF,WAAW,EAAMl8B,GAAO1sE,OAC5C02D,EAAQ12D,SAAyB,MAAd6oG,OAAqB,EAASA,EAAWnyC,SACvDmyC,IAED,qBAAsBA,EACxBA,EAAW/+E,iBAAiB,SAAUm1B,GAEtC4pD,EAAWE,YAAY9pD,IAAO,EAIlC,OAFA,QAAYA,GACZ,GAAkB,IAAMwtC,MACjB/1B,CACT,CAEA,MAAMsyC,EAAsB,CAC1B,GAAM,IACN,GAAM,IACN,GAAM,KACN,GAAM,KACN,MAAO,MAmDT,SAASC,EAAeC,EAAankG,EAAU,CAAC,GAC9C,SAASuqE,EAAS7kE,EAAG0+F,GACnB,IAAIj9D,EAAIg9D,EAAYz+F,GAKpB,OAJa,MAAT0+F,IACFj9D,ED/qBN,SAA0B/nB,EAAQglF,GAChC,IAAIppG,EACJ,GAAsB,kBAAXokB,EACT,OAAOA,EAASglF,EAClB,MAAMnpG,GAAsD,OAA5CD,EAAKokB,EAAO5X,MAAM,4BAAiC,EAASxM,EAAG,KAAO,GAChFoI,EAAOgc,EAAOvR,MAAM5S,EAAMS,QAC1B0O,EAASgJ,WAAWnY,GAASmpG,EACnC,OAAI3nG,OAAOC,MAAM0N,GACRgV,EACFhV,EAAShH,CAClB,CCqqBUihG,CAAiBl9D,EAAGi9D,IACT,kBAANj9D,IACTA,EAAI,GAAGA,OACFA,CACT,CACA,MAAM,OAAEjsB,EAASsoF,GAAkBxjG,EACnC,SAASwH,EAAMmgE,GACb,QAAKzsD,GAEEA,EAAO2oF,WAAWl8B,GAAOhW,OAClC,CACA,MAAM2yC,EAAkB5+F,GACfi+F,EAAc,eAAep5B,EAAS7kE,MAAO1F,GAEhDukG,EAAkBppG,OAAO4oC,KAAKogE,GAAavoG,QAAO,CAAC4oG,EAAW9+F,KAClEvK,OAAOymB,eAAe4iF,EAAW9+F,EAAG,CAClCof,IAAK,IAAMw/E,EAAe5+F,GAC1B6c,YAAY,EACZC,cAAc,IAETgiF,IACN,CAAC,GACJ,OAAOrpG,OAAOC,OAAOmpG,EAAiB,CACpCE,QAAQ/+F,GACN,OAAOi+F,EAAc,eAAep5B,EAAS7kE,EAAG,OAAS1F,EAC3D,EACAskG,iBACAI,QAAQh/F,GACN,OAAOi+F,EAAc,eAAep5B,EAAS7kE,GAAI,OAAS1F,EAC5D,EACA2kG,eAAej/F,GACb,OAAOi+F,EAAc,eAAep5B,EAAS7kE,MAAO1F,EACtD,EACA4kG,QAAQ7iG,EAAGuD,GACT,OAAOq+F,EAAc,eAAep5B,EAASxoE,uBAAuBwoE,EAASjlE,GAAI,OAAStF,EAC5F,EACA6kG,UAAUn/F,GACR,OAAO8B,EAAM,eAAe+iE,EAAS7kE,EAAG,OAC1C,EACAo/F,iBAAiBp/F,GACf,OAAO8B,EAAM,eAAe+iE,EAAS7kE,MACvC,EACAq/F,UAAUr/F,GACR,OAAO8B,EAAM,eAAe+iE,EAAS7kE,GAAI,OAC3C,EACAs/F,iBAAiBt/F,GACf,OAAO8B,EAAM,eAAe+iE,EAAS7kE,MACvC,EACAu/F,YAAYljG,EAAGuD,GACb,OAAOkC,EAAM,eAAe+iE,EAASxoE,uBAAuBwoE,EAASjlE,GAAI,OAC3E,EACA0+C,UACE,MAAMkhD,EAAS/pG,OAAO4oC,KAAKogE,GAAat0F,KAAK3K,GAAM,CAACA,EAAGo/F,EAAep/F,MACtE,OAAO,SAAS,IAAMggG,EAAO7sF,QAAO,EAAE,CAAE8uB,KAAOA,EAAElsC,QAAO4U,KAAI,EAAEnK,KAAOA,KACvE,GAEJ,CAkDkBvK,OAAOymB,eACGzmB,OAAO+mB,sBACd/mB,OAAOgC,UAAU6Q,eACjB7S,OAAOgC,UAAUklB,qBA4HpBlnB,OAAOymB,eACNzmB,OAAO2mB,iBACA3mB,OAAO6mB,0BACL7mB,OAAO+mB,sBACd/mB,OAAOgC,UAAU6Q,eACjB7S,OAAOgC,UAAUklB,qBAwCA,qBAAf86B,WAA6BA,WAA+B,qBAAXjiC,OAAyBA,OAA2B,qBAAXi8C,OAAyBA,OAAyB,qBAATn6B,MAAuBA,KAmB/J7hC,OAAOymB,eACGzmB,OAAO+mB,sBACd/mB,OAAOgC,UAAU6Q,eACjB7S,OAAOgC,UAAUklB,qBAoKpBlnB,OAAOymB,eACGzmB,OAAO+mB,sBACd/mB,OAAOgC,UAAU6Q,eACjB7S,OAAOgC,UAAUklB,qBA8HVlnB,OAAO+mB,sBACd/mB,OAAOgC,UAAU6Q,eACjB7S,OAAOgC,UAAUklB,qBA4IpBlnB,OAAOymB,eACNzmB,OAAO2mB,iBACA3mB,OAAO6mB,0BACL7mB,OAAO+mB,sBACd/mB,OAAOgC,UAAU6Q,eACjB7S,OAAOgC,UAAUklB,qBA+HpBlnB,OAAOymB,eACNzmB,OAAO2mB,iBACA3mB,OAAO6mB,0BACL7mB,OAAO+mB,sBACd/mB,OAAOgC,UAAU6Q,eACjB7S,OAAOgC,UAAUklB,qBA2EpBlnB,OAAOymB,eACNzmB,OAAO2mB,iBACA3mB,OAAO6mB,0BACL7mB,OAAO+mB,sBACd/mB,OAAOgC,UAAU6Q,eACjB7S,OAAOgC,UAAUklB,qBA+PpBlnB,OAAOymB,eACNzmB,OAAO2mB,iBACA3mB,OAAO6mB,0BACL7mB,OAAO+mB,sBACd/mB,OAAOgC,UAAU6Q,eACjB7S,OAAOgC,UAAUklB,qBAoIVlnB,OAAO+mB,sBACd/mB,OAAOgC,UAAU6Q,eACjB7S,OAAOgC,UAAUklB,qBAgHpBlnB,OAAOymB,eACGzmB,OAAO+mB,sBACd/mB,OAAOgC,UAAU6Q,eACjB7S,OAAOgC,UAAUklB,qBAoSpBlnB,OAAOymB,eACNzmB,OAAO2mB,iBACA3mB,OAAO6mB,0BACL7mB,OAAO+mB,sBACd/mB,OAAOgC,UAAU6Q,eACjB7S,OAAOgC,UAAUklB,qBAmTpBlnB,OAAOymB,eACGzmB,OAAO+mB,sBACd/mB,OAAOgC,UAAU6Q,eACjB7S,OAAOgC,UAAUklB,qBAwDpBlnB,OAAOymB,eACGzmB,OAAO+mB,sBACd/mB,OAAOgC,UAAU6Q,eACjB7S,OAAOgC,UAAUklB,qBAqfpBlnB,OAAOymB,eACGzmB,OAAO+mB,sBACd/mB,OAAOgC,UAAU6Q,eACjB7S,OAAOgC,UAAUklB,qBAyLpBlnB,OAAOymB,eACNzmB,OAAO2mB,iBACA3mB,OAAO6mB,0BACL7mB,OAAO+mB,sBACd/mB,OAAOgC,UAAU6Q,eACjB7S,OAAOgC,UAAUklB,qBAwLpBlnB,OAAOymB,eACGzmB,OAAO+mB,sBACd/mB,OAAOgC,UAAU6Q,eACjB7S,OAAOgC,UAAUklB,qBAghBpBlnB,OAAOymB,eACGzmB,OAAO+mB,sBACd/mB,OAAOgC,UAAU6Q,eACjB7S,OAAOgC,UAAUklB,qBA4LVlnB,OAAO+mB,sBACd/mB,OAAOgC,UAAU6Q,eACjB7S,OAAOgC,UAAUklB,qBA2CpBlnB,OAAOymB,eACNzmB,OAAO2mB,iBACA3mB,OAAO6mB,0BACL7mB,OAAO+mB,sBACd/mB,OAAOgC,UAAU6Q,eACjB7S,OAAOgC,UAAUklB,qBAgepBlnB,OAAOymB,eACGzmB,OAAO+mB,sBACd/mB,OAAOgC,UAAU6Q,eACjB7S,OAAOgC,UAAUklB,qBAkTpBlnB,OAAOymB,eACGzmB,OAAO+mB,sBACd/mB,OAAOgC,UAAU6Q,eACjB7S,OAAOgC,UAAUklB,qBAoWpBlnB,OAAOymB,eACNzmB,OAAO2mB,iBACA3mB,OAAO6mB,0BACL7mB,OAAO+mB,sBACd/mB,OAAOgC,UAAU6Q,eACjB7S,OAAOgC,UAAUklB,qBAqBpBlnB,OAAOymB,eACGzmB,OAAO+mB,sBACd/mB,OAAOgC,UAAU6Q,eACjB7S,OAAOgC,UAAUklB,qBA4IpBlnB,OAAOymB,eACGzmB,OAAO+mB,sBACd/mB,OAAOgC,UAAU6Q,eACjB7S,OAAOgC,UAAUklB,qBAuEtBlnB,OAAOymB,eACNzmB,OAAO2mB,iBACA3mB,OAAO6mB,0BACL7mB,OAAO+mB,sBACd/mB,OAAOgC,UAAU6Q,eACjB7S,OAAOgC,UAAUklB,wDC5rMrB,SAASyM,EAAKrU,EAAIkmB,GAC/B,OAAO,WACL,OAAOlmB,EAAGyT,MAAMyS,EAAStjC,UAC3B,CACF,kCCAA,MAAOE,SAAQ,GAAIpC,OAAOgC,WACpB,eAACi5E,GAAkBj7E,OAEnBgqG,GAAUx7C,EAGbxuD,OAAO+jC,OAAO,MAHQkmE,IACrB,MAAMrlE,EAAM,EAASviC,KAAK4nG,GAC1B,OAAOz7C,EAAM5pB,KAAS4pB,EAAM5pB,GAAOA,EAAIlyB,MAAM,GAAI,GAAGxI,cAAc,GAFvD,IAACskD,EAKhB,MAAM07C,EAAcx+E,IAClBA,EAAOA,EAAKxhB,cACJ+/F,GAAUD,EAAOC,KAAWv+E,GAGhCy+E,EAAaz+E,GAAQu+E,UAAgBA,IAAUv+E,GAS/C,QAACtZ,GAAWD,MASZi4F,EAAcD,EAAW,aAqB/B,MAAME,EAAgBH,EAAW,eA2BjC,MAAM5nD,EAAW6nD,EAAW,UAQtB9nD,EAAa8nD,EAAW,YASxB5oD,EAAW4oD,EAAW,UAStBriE,EAAYmiE,GAAoB,OAAVA,GAAmC,kBAAVA,EAiB/CroD,EAAiB7oB,IACrB,GAAoB,WAAhBixE,EAAOjxE,GACT,OAAO,EAGT,MAAM/2B,EAAYi5E,EAAeliD,GACjC,OAAsB,OAAd/2B,GAAsBA,IAAchC,OAAOgC,WAAkD,OAArChC,OAAOi7E,eAAej5E,OAA0BH,OAAOs/C,eAAepoB,MAAUl3B,OAAOC,YAAYi3B,EAAI,EAUnK92B,EAASioG,EAAW,QASpBrgE,EAASqgE,EAAW,QASpBI,EAASJ,EAAW,QASpBK,EAAaL,EAAW,YAkCxBM,EAAoBN,EAAW,mBA2BrC,SAASl1E,EAAQpzB,EAAK0d,GAAI,WAACmrF,GAAa,GAAS,CAAC,GAEhD,GAAY,OAAR7oG,GAA+B,qBAARA,EACzB,OAGF,IAAImI,EACA84B,EAQJ,GALmB,kBAARjhC,IAETA,EAAM,CAACA,IAGLwQ,EAAQxQ,GAEV,IAAKmI,EAAI,EAAG84B,EAAIjhC,EAAIrB,OAAQwJ,EAAI84B,EAAG94B,IACjCuV,EAAGjd,KAAK,KAAMT,EAAImI,GAAIA,EAAGnI,OAEtB,CAEL,MAAMgnC,EAAO6hE,EAAazqG,OAAO0qC,oBAAoB9oC,GAAO5B,OAAO4oC,KAAKhnC,GAClEujC,EAAMyD,EAAKroC,OACjB,IAAI2R,EAEJ,IAAKnI,EAAI,EAAGA,EAAIo7B,EAAKp7B,IACnBmI,EAAM02B,EAAK7+B,GACXuV,EAAGjd,KAAK,KAAMT,EAAIsQ,GAAMA,EAAKtQ,EAEjC,CACF,CAEA,SAAS2Q,EAAQ3Q,EAAKsQ,GACpBA,EAAMA,EAAIhI,cACV,MAAM0+B,EAAO5oC,OAAO4oC,KAAKhnC,GACzB,IACI8oG,EADA3gG,EAAI6+B,EAAKroC,OAEb,KAAOwJ,KAAM,GAEX,GADA2gG,EAAO9hE,EAAK7+B,GACRmI,IAAQw4F,EAAKxgG,cACf,OAAOwgG,EAGX,OAAO,IACT,CAEA,MAAMC,EAEsB,qBAAf3oD,WAAmCA,WACvB,qBAATngB,KAAuBA,KAA0B,qBAAX9hB,OAAyBA,OAASi8C,OAGlF4uC,EAAoBliG,IAAa0hG,EAAY1hG,IAAYA,IAAYiiG,EAoD3E,MA8HME,GAAgBC,EAKG,qBAAfC,YAA8B9vB,EAAe8vB,YAH9Cd,GACEa,GAAcb,aAAiBa,GAHrB,IAACA,EAetB,MAiCME,EAAad,EAAW,mBAWxB,EAAiB,GAAGr3F,oBAAoB,CAACjR,EAAK4lB,IAAS3U,EAAexQ,KAAKT,EAAK4lB,GAA/D,CAAsExnB,OAAOgC,WAS9Fy/C,EAAWyoD,EAAW,UAEtBe,EAAoB,CAACrpG,EAAK+uF,KAC9B,MAAMua,EAAclrG,OAAO6mB,0BAA0BjlB,GAC/CupG,EAAqB,CAAC,EAE5Bn2E,EAAQk2E,GAAa,CAACpyC,EAAYz4D,MACO,IAAnCswF,EAAQ73B,EAAYz4D,EAAMuB,KAC5BupG,EAAmB9qG,GAAQy4D,EAC7B,IAGF94D,OAAO2mB,iBAAiB/kB,EAAKupG,EAAmB,EAsFlD,OACE/4F,UACAi4F,gBACAe,SA1kBF,SAAkBryE,GAChB,OAAe,OAARA,IAAiBqxE,EAAYrxE,IAA4B,OAApBA,EAAIh3B,cAAyBqoG,EAAYrxE,EAAIh3B,cACpFsgD,EAAWtpB,EAAIh3B,YAAYqpG,WAAaryE,EAAIh3B,YAAYqpG,SAASryE,EACxE,EAwkBEsyE,WA5bkBpB,IAClB,MAAMr+F,EAAU,oBAChB,OAAOq+F,IACgB,oBAAbnoE,UAA2BmoE,aAAiBnoE,UACpD,EAASz/B,KAAK4nG,KAAWr+F,GACxBy2C,EAAW4nD,EAAM7nG,WAAa6nG,EAAM7nG,aAAewJ,EACrD,EAubD0/F,kBAtjBF,SAA2BvyE,GACzB,IAAI9pB,EAMJ,OAJEA,EAD0B,qBAAhB86B,aAAiCA,YAAkB,OACpDA,YAAYC,OAAOjR,GAEnB,GAAUA,EAAU,QAAMsxE,EAActxE,EAAIyR,QAEhDv7B,CACT,EA+iBEqzC,WACAf,WACAgqD,UAtgBgBtB,IAAmB,IAAVA,IAA4B,IAAVA,EAugB3CniE,WACA8Z,gBACAwoD,cACAnoG,SACA4nC,SACAygE,SACA7oD,WACAY,aACAmpD,SAldgBzyE,GAAQ+O,EAAS/O,IAAQspB,EAAWtpB,EAAI0yE,MAmdxDjB,oBACAK,eACAN,aACAv1E,UACAwkD,MA1VF,SAASA,IACP,MAAM,SAACkyB,GAAYd,EAAiBr/E,OAASA,MAAQ,CAAC,EAChDtc,EAAS,CAAC,EACV08F,EAAc,CAAC5yE,EAAK7mB,KACxB,MAAM05F,EAAYF,GAAYn5F,EAAQtD,EAAQiD,IAAQA,EAClD0vC,EAAc3yC,EAAO28F,KAAehqD,EAAc7oB,GACpD9pB,EAAO28F,GAAapyB,EAAMvqE,EAAO28F,GAAY7yE,GACpC6oB,EAAc7oB,GACvB9pB,EAAO28F,GAAapyB,EAAM,CAAC,EAAGzgD,GACrB3mB,EAAQ2mB,GACjB9pB,EAAO28F,GAAa7yE,EAAIrmB,QAExBzD,EAAO28F,GAAa7yE,CACtB,EAGF,IAAK,IAAIhvB,EAAI,EAAG84B,EAAI3gC,UAAU3B,OAAQwJ,EAAI84B,EAAG94B,IAC3C7H,UAAU6H,IAAMirB,EAAQ9yB,UAAU6H,GAAI4hG,GAExC,OAAO18F,CACT,EAuUE48F,OA3Ta,CAACjlG,EAAGuD,EAAGq7B,GAAUilE,cAAa,CAAC,KAC5Cz1E,EAAQ7qB,GAAG,CAAC4uB,EAAK7mB,KACXszB,GAAW6c,EAAWtpB,GACxBnyB,EAAEsL,GAAOyhB,EAAKoF,EAAKyM,GAEnB5+B,EAAEsL,GAAO6mB,CACX,GACC,CAAC0xE,eACG7jG,GAoTPynD,KAvbYzpB,GAAQA,EAAIypB,KACxBzpB,EAAIypB,OAASzpB,EAAIn4B,QAAQ,qCAAsC,IAub/Dq/F,SA3SgBruE,IACc,QAA1BA,EAAQmpB,WAAW,KACrBnpB,EAAUA,EAAQ/qB,MAAM,IAEnB+qB,GAwSPsuE,SA5Re,CAAChqG,EAAaiqG,EAAkB9gF,EAAOggF,KACtDnpG,EAAYC,UAAYhC,OAAO+jC,OAAOioE,EAAiBhqG,UAAWkpG,GAClEnpG,EAAYC,UAAUD,YAAcA,EACpC/B,OAAOymB,eAAe1kB,EAAa,QAAS,CAC1CjC,MAAOksG,EAAiBhqG,YAE1BkpB,GAASlrB,OAAOC,OAAO8B,EAAYC,UAAWkpB,EAAM,EAuRpD+gF,aA3QmB,CAACC,EAAWC,EAASjvF,EAAQkvF,KAChD,IAAIlhF,EACAnhB,EACAyd,EACJ,MAAM6kF,EAAS,CAAC,EAIhB,GAFAF,EAAUA,GAAW,CAAC,EAEL,MAAbD,EAAmB,OAAOC,EAE9B,EAAG,CAGD,IAFAjhF,EAAQlrB,OAAO0qC,oBAAoBwhE,GACnCniG,EAAImhB,EAAM3qB,OACHwJ,KAAM,GACXyd,EAAO0D,EAAMnhB,GACPqiG,IAAcA,EAAW5kF,EAAM0kF,EAAWC,IAAcE,EAAO7kF,KACnE2kF,EAAQ3kF,GAAQ0kF,EAAU1kF,GAC1B6kF,EAAO7kF,IAAQ,GAGnB0kF,GAAuB,IAAXhvF,GAAoB+9D,EAAeixB,EACjD,OAASA,KAAehvF,GAAUA,EAAOgvF,EAAWC,KAAaD,IAAclsG,OAAOgC,WAEtF,OAAOmqG,CAAO,EAqPdnC,SACAE,aACAoC,SA3Oe,CAAC1nE,EAAK2nE,EAAclpF,KACnCuhB,EAAMl+B,OAAOk+B,SACIt1B,IAAb+T,GAA0BA,EAAWuhB,EAAIrkC,UAC3C8iB,EAAWuhB,EAAIrkC,QAEjB8iB,GAAYkpF,EAAahsG,OACzB,MAAM26D,EAAYt2B,EAAIr3B,QAAQg/F,EAAclpF,GAC5C,OAAsB,IAAf63C,GAAoBA,IAAc73C,CAAQ,EAqOjDwyD,QA1Neo0B,IACf,IAAKA,EAAO,OAAO,KACnB,GAAI73F,EAAQ63F,GAAQ,OAAOA,EAC3B,IAAIlgG,EAAIkgG,EAAM1pG,OACd,IAAKghD,EAASx3C,GAAI,OAAO,KACzB,MAAMg9B,EAAM,IAAI50B,MAAMpI,GACtB,KAAOA,KAAM,GACXg9B,EAAIh9B,GAAKkgG,EAAMlgG,GAEjB,OAAOg9B,CAAG,EAkNVylE,aAvLmB,CAAC5qG,EAAK0d,KACzB,MAEMxd,GAFYF,GAAOA,EAAIC,OAAOC,WAETO,KAAKT,GAEhC,IAAIqN,EAEJ,MAAQA,EAASnN,EAAS8jB,UAAY3W,EAAOw9F,MAAM,CACjD,MAAMC,EAAOz9F,EAAOnP,MACpBwf,EAAGjd,KAAKT,EAAK8qG,EAAK,GAAIA,EAAK,GAC7B,GA8KAC,SAnKe,CAACC,EAAQhoE,KACxB,IAAI4xB,EACJ,MAAMzvB,EAAM,GAEZ,KAAwC,QAAhCyvB,EAAUo2C,EAAO/1F,KAAK+tB,KAC5BmC,EAAInmC,KAAK41D,GAGX,OAAOzvB,CAAG,EA4JVikE,aACAn4F,eAAc,EACdg6F,WAAY,EACZ5B,oBACA6B,cApHqBlrG,IACrBqpG,EAAkBrpG,GAAK,CAACk3D,EAAYz4D,KAElC,GAAIgiD,EAAWzgD,KAA6D,IAArD,CAAC,YAAa,SAAU,UAAU2L,QAAQlN,GAC/D,OAAO,EAGT,MAAMP,EAAQ8B,EAAIvB,GAEbgiD,EAAWviD,KAEhBg5D,EAAW1xC,YAAa,EAEpB,aAAc0xC,EAChBA,EAAWxxC,UAAW,EAInBwxC,EAAW90B,MACd80B,EAAW90B,IAAM,KACf,MAAMphC,MAAM,qCAAwCvC,EAAO,IAAK,GAEpE,GACA,EA8FF0sG,YA3FkB,CAACC,EAAethG,KAClC,MAAM9J,EAAM,CAAC,EAEPqrG,EAAUlmE,IACdA,EAAI/R,SAAQl1B,IACV8B,EAAI9B,IAAS,CAAI,GACjB,EAKJ,OAFAsS,EAAQ46F,GAAiBC,EAAOD,GAAiBC,EAAOvmG,OAAOsmG,GAAer2F,MAAMjL,IAE7E9J,CAAG,EAiFVsrG,YA5JkBtoE,GACXA,EAAI16B,cAAcuC,QAAQ,yBAC/B,SAAkBvF,EAAGimG,EAAIC,GACvB,OAAOD,EAAGpmG,cAAgBqmG,CAC5B,IAyJFpZ,KA/EW,OAgFXqZ,eA9EqB,CAACvtG,EAAO83D,KAC7B93D,GAASA,EACFwB,OAAOkgD,SAAS1hD,GAASA,EAAQ83D,GA6ExCrlD,UACAypD,OAAQ2uC,EACRC,mBACA0C,aA7EoB1rG,IACpB,MAAMiB,EAAQ,IAAIsP,MAAM,IAElBk1B,EAAQ,CAAC4C,EAAQlgC,KAErB,GAAI+9B,EAASmC,GAAS,CACpB,GAAIpnC,EAAM0K,QAAQ08B,IAAW,EAC3B,OAGF,KAAK,WAAYA,GAAS,CACxBpnC,EAAMkH,GAAKkgC,EACX,MAAMhmB,EAAS7R,EAAQ63B,GAAU,GAAK,CAAC,EASvC,OAPAjV,EAAQiV,GAAQ,CAACnqC,EAAOoS,KACtB,MAAMq7F,EAAelmE,EAAMvnC,EAAOiK,EAAI,IACrCqgG,EAAYmD,KAAkBtpF,EAAO/R,GAAOq7F,EAAa,IAG5D1qG,EAAMkH,QAAKuF,EAEJ2U,CACT,CACF,CAEA,OAAOgmB,CAAM,EAGf,OAAO5C,EAAMzlC,EAAK,EAAE,GCnmBtB,SAAS4rG,EAAW9hE,EAASt4B,EAAM8S,EAAQunF,EAASC,GAClD9qG,MAAMP,KAAKkpB,MAEP3oB,MAAMwzE,kBACRxzE,MAAMwzE,kBAAkB7qD,KAAMA,KAAKxpB,aAEnCwpB,KAAK1oB,OAAQ,IAAKD,OAASC,MAG7B0oB,KAAKmgB,QAAUA,EACfngB,KAAKlrB,KAAO,aACZ+S,IAASmY,KAAKnY,KAAOA,GACrB8S,IAAWqF,KAAKrF,OAASA,GACzBunF,IAAYliF,KAAKkiF,QAAUA,GAC3BC,IAAaniF,KAAKmiF,SAAWA,EAC/B,CAEAC,EAAM5B,SAASyB,EAAY5qG,MAAO,CAChCirD,OAAQ,WACN,MAAO,CAELniB,QAASngB,KAAKmgB,QACdrrC,KAAMkrB,KAAKlrB,KAEXg5E,YAAa9tD,KAAK8tD,YAClBh4E,OAAQkqB,KAAKlqB,OAEbusG,SAAUriF,KAAKqiF,SACfC,WAAYtiF,KAAKsiF,WACjBC,aAAcviF,KAAKuiF,aACnBjrG,MAAO0oB,KAAK1oB,MAEZqjB,OAAQynF,EAAML,aAAa/hF,KAAKrF,QAChC9S,KAAMmY,KAAKnY,KACX+6E,OAAQ5iE,KAAKmiF,UAAYniF,KAAKmiF,SAASvf,OAAS5iE,KAAKmiF,SAASvf,OAAS,KAE3E,IAGF,MAAM,EAAYqf,EAAWxrG,UACvBkpG,EAAc,CAAC,EAErB,CACE,uBACA,iBACA,eACA,YACA,cACA,4BACA,iBACA,mBACA,kBACA,eACA,kBACA,mBAEAl2E,SAAQ5hB,IACR83F,EAAY93F,GAAQ,CAACtT,MAAOsT,EAAK,IAGnCpT,OAAO2mB,iBAAiB6mF,EAAYtC,GACpClrG,OAAOymB,eAAe,EAAW,eAAgB,CAAC3mB,OAAO,IAGzD0tG,EAAW7lF,KAAO,CAACvnB,EAAOgT,EAAM8S,EAAQunF,EAASC,EAAUK,KACzD,MAAMC,EAAahuG,OAAO+jC,OAAO,GAgBjC,OAdA4pE,EAAM1B,aAAa7rG,EAAO4tG,GAAY,SAAgBpsG,GACpD,OAAOA,IAAQgB,MAAMZ,SACvB,IAAGwlB,GACe,iBAATA,IAGTgmF,EAAWnrG,KAAK2rG,EAAY5tG,EAAMsrC,QAASt4B,EAAM8S,EAAQunF,EAASC,GAElEM,EAAWC,MAAQ7tG,EAEnB4tG,EAAW3tG,KAAOD,EAAMC,KAExB0tG,GAAe/tG,OAAOC,OAAO+tG,EAAYD,GAElCC,CAAU,EAGnB,QClGA,UCYA,SAASE,EAAYjE,GACnB,OAAO0D,EAAM/rD,cAAcqoD,IAAU0D,EAAMv7F,QAAQ63F,EACrD,CASA,SAASkE,EAAej8F,GACtB,OAAOy7F,EAAMrB,SAASp6F,EAAK,MAAQA,EAAIQ,MAAM,GAAI,GAAKR,CACxD,CAWA,SAASk8F,EAAU5tG,EAAM0R,EAAKm8F,GAC5B,OAAK7tG,EACEA,EAAKoN,OAAOsE,GAAKwC,KAAI,SAAcrO,EAAO0D,GAG/C,OADA1D,EAAQ8nG,EAAe9nG,IACfgoG,GAAQtkG,EAAI,IAAM1D,EAAQ,IAAMA,CAC1C,IAAGyO,KAAKu5F,EAAO,IAAM,IALHn8F,CAMpB,CAaA,MAAMo8F,EAAaX,EAAM1B,aAAa0B,EAAO,CAAC,EAAG,MAAM,SAAgBnmF,GACrE,MAAO,WAAWlV,KAAKkV,EACzB,IAyKA,MArIA,SAAoB5lB,EAAK2tC,EAAU1qC,GACjC,IAAK8oG,EAAM7lE,SAASlmC,GAClB,MAAM,IAAIX,UAAU,4BAItBsuC,EAAWA,GAAY,IAAK,GAAezN,UAY3C,MAAMysE,GATN1pG,EAAU8oG,EAAM1B,aAAapnG,EAAS,CACpC0pG,YAAY,EACZF,MAAM,EACNG,SAAS,IACR,GAAO,SAAiBjiC,EAAQtiC,GAEjC,OAAQ0jE,EAAMvD,YAAYngE,EAAOsiC,GACnC,KAE2BgiC,WAErBE,EAAU5pG,EAAQ4pG,SAAWC,EAC7BL,EAAOxpG,EAAQwpG,KACfG,EAAU3pG,EAAQ2pG,QAElBG,GADQ9pG,EAAQ+pG,MAAwB,qBAATA,MAAwBA,SAlDtC3E,EAmDkB16D,IAlDzBo+D,EAAMtrD,WAAW4nD,EAAM4E,SAAyC,aAA9B5E,EAAMpoG,OAAOs/C,cAA+B8oD,EAAMpoG,OAAOC,WAD7G,IAAyBmoG,EAqDvB,IAAK0D,EAAMtrD,WAAWosD,GACpB,MAAM,IAAIxtG,UAAU,8BAGtB,SAAS6tG,EAAahvG,GACpB,GAAc,OAAVA,EAAgB,MAAO,GAE3B,GAAI6tG,EAAM1rG,OAAOnC,GACf,OAAOA,EAAM22D,cAGf,IAAKk4C,GAAWhB,EAAMrD,OAAOxqG,GAC3B,MAAM,IAAI,EAAW,gDAGvB,OAAI6tG,EAAMtD,cAAcvqG,IAAU6tG,EAAM9C,aAAa/qG,GAC5C6uG,GAA2B,oBAATC,KAAsB,IAAIA,KAAK,CAAC9uG,IAAUivG,OAAOpnF,KAAK7nB,GAG1EA,CACT,CAYA,SAAS4uG,EAAe5uG,EAAOoS,EAAK1R,GAClC,IAAIumC,EAAMjnC,EAEV,GAAIA,IAAUU,GAAyB,kBAAVV,EAC3B,GAAI6tG,EAAMrB,SAASp6F,EAAK,MAEtBA,EAAMq8F,EAAar8F,EAAMA,EAAIQ,MAAM,GAAI,GAEvC5S,EAAQ0nC,KAAKC,UAAU3nC,QAClB,GACJ6tG,EAAMv7F,QAAQtS,IA9GvB,SAAqBinC,GACnB,OAAO4mE,EAAMv7F,QAAQ20B,KAASA,EAAIoT,KAAK+zD,EACzC,CA4GiCc,CAAYlvG,IACpC6tG,EAAMpD,WAAWzqG,IAAU6tG,EAAMrB,SAASp6F,EAAK,QAAU60B,EAAM4mE,EAAM93B,QAAQ/1E,IAY9E,OATAoS,EAAMi8F,EAAej8F,GAErB60B,EAAI/R,SAAQ,SAAcgB,EAAI7iB,IAC1Bw6F,EAAMvD,YAAYp0E,IAAc,OAAPA,GAAgBuZ,EAASs/D,QAEtC,IAAZL,EAAmBJ,EAAU,CAACl8F,GAAMiB,EAAOk7F,GAAqB,OAAZG,EAAmBt8F,EAAMA,EAAM,KACnF48F,EAAa94E,GAEjB,KACO,EAIX,QAAIk4E,EAAYpuG,KAIhByvC,EAASs/D,OAAOT,EAAU5tG,EAAM0R,EAAKm8F,GAAOS,EAAahvG,KAElD,EACT,CAEA,MAAM+C,EAAQ,GAERosG,EAAiBjvG,OAAOC,OAAOquG,EAAY,CAC/CI,iBACAI,eACAZ,gBAyBF,IAAKP,EAAM7lE,SAASlmC,GAClB,MAAM,IAAIX,UAAU,0BAKtB,OA5BA,SAAS62F,EAAMh4F,EAAOU,GACpB,IAAImtG,EAAMvD,YAAYtqG,GAAtB,CAEA,IAA8B,IAA1B+C,EAAM0K,QAAQzN,GAChB,MAAM8C,MAAM,kCAAoCpC,EAAKsU,KAAK,MAG5DjS,EAAMjC,KAAKd,GAEX6tG,EAAM34E,QAAQl1B,GAAO,SAAck2B,EAAI9jB,IAKtB,OAJEy7F,EAAMvD,YAAYp0E,IAAc,OAAPA,IAAgBy4E,EAAQpsG,KAChEktC,EAAUvZ,EAAI23E,EAAMrrD,SAASpwC,GAAOA,EAAIm8C,OAASn8C,EAAK1R,EAAMyuG,KAI5DnX,EAAM9hE,EAAIx1B,EAAOA,EAAKoN,OAAOsE,GAAO,CAACA,GAEzC,IAEArP,EAAMkgF,KAlB8B,CAmBtC,CAMA+U,CAAMl2F,GAEC2tC,CACT,ECtNA,SAAS2/D,EAAOtqE,GACd,MAAMuqE,EAAU,CACd,IAAK,MACL,IAAK,MACL,IAAK,MACL,IAAK,MACL,IAAK,MACL,MAAO,IACP,MAAO,MAET,OAAOC,mBAAmBxqE,GAAKn4B,QAAQ,oBAAoB,SAAkBJ,GAC3E,OAAO8iG,EAAQ9iG,EACjB,GACF,CAUA,SAASgjG,EAAqBphE,EAAQppC,GACpC0mB,KAAK+jF,OAAS,GAEdrhE,GAAU,EAAWA,EAAQ1iB,KAAM1mB,EACrC,CAEA,MAAM,EAAYwqG,EAAqBrtG,UAEvC,EAAU6sG,OAAS,SAAgBxuG,EAAMP,GACvCyrB,KAAK+jF,OAAO1uG,KAAK,CAACP,EAAMP,GAC1B,EAEA,EAAUsC,SAAW,SAAkBmtG,GACrC,MAAMC,EAAUD,EAAU,SAASzvG,GACjC,OAAOyvG,EAAQltG,KAAKkpB,KAAMzrB,EAAOovG,EACnC,EAAIA,EAEJ,OAAO3jF,KAAK+jF,OAAO56F,KAAI,SAAcg4F,GACnC,OAAO8C,EAAQ9C,EAAK,IAAM,IAAM8C,EAAQ9C,EAAK,GAC/C,GAAG,IAAI53F,KAAK,IACd,EAEA,QC5CA,SAAS,EAAOikB,GACd,OAAOq2E,mBAAmBr2E,GACxBtsB,QAAQ,QAAS,KACjBA,QAAQ,OAAQ,KAChBA,QAAQ,QAAS,KACjBA,QAAQ,OAAQ,KAChBA,QAAQ,QAAS,KACjBA,QAAQ,QAAS,IACrB,CAWe,SAASgjG,EAASt6B,EAAKlnC,EAAQppC,GAE5C,IAAKopC,EACH,OAAOknC,EAGT,MAAMq6B,EAAU3qG,GAAWA,EAAQqqG,QAAU,EAEvCQ,EAAc7qG,GAAWA,EAAQ8qG,UAEvC,IAAIC,EAUJ,GAPEA,EADEF,EACiBA,EAAYzhE,EAAQppC,GAEpB8oG,EAAMnD,kBAAkBv8D,GACzCA,EAAO7rC,WACP,IAAI,EAAqB6rC,EAAQppC,GAASzC,SAASotG,GAGnDI,EAAkB,CACpB,MAAMC,EAAgB16B,EAAI5nE,QAAQ,MAEX,IAAnBsiG,IACF16B,EAAMA,EAAIziE,MAAM,EAAGm9F,IAErB16B,KAA8B,IAAtBA,EAAI5nE,QAAQ,KAAc,IAAM,KAAOqiG,CACjD,CAEA,OAAOz6B,CACT,CCQA,MAlEA,MACEpzE,cACEwpB,KAAKm3B,SAAW,EAClB,CAUAotD,IAAIC,EAAWC,EAAUnrG,GAOvB,OANA0mB,KAAKm3B,SAAS9hD,KAAK,CACjBmvG,YACAC,WACAC,cAAaprG,GAAUA,EAAQorG,YAC/BC,QAASrrG,EAAUA,EAAQqrG,QAAU,OAEhC3kF,KAAKm3B,SAASniD,OAAS,CAChC,CASA4vG,MAAMj0E,GACA3Q,KAAKm3B,SAASxmB,KAChB3Q,KAAKm3B,SAASxmB,GAAM,KAExB,CAOA0H,QACMrY,KAAKm3B,WACPn3B,KAAKm3B,SAAW,GAEpB,CAYA1tB,QAAQ1V,GACNquF,EAAM34E,QAAQzJ,KAAKm3B,UAAU,SAAwB17C,GACzC,OAANA,GACFsY,EAAGtY,EAEP,GACF,GCjEF,GACEopG,mBAAmB,EACnBC,mBAAmB,EACnBC,qBAAqB,GCFvB,EAA0C,qBAApBC,gBAAkCA,gBAAkB,ECD1E,WCkBA,MAAMC,GAAuB,MAC3B,IAAIC,EACJ,OAAyB,qBAAdxvF,WACyB,iBAAjCwvF,EAAUxvF,UAAUwvF,UACT,iBAAZA,GACY,OAAZA,KAKuB,qBAAX1wF,QAA8C,qBAAbiC,SAChD,EAX4B,GAsBtB0uF,GAE0B,qBAAtBC,mBAEP9uE,gBAAgB8uE,mBACc,oBAAvB9uE,KAAK+uE,cAKhB,QACEC,WAAW,EACXxjF,QAAS,CACPkjF,gBAAe,EACfzuE,SAAQ,EACR8sE,WAEF4B,wBACAE,iCACAI,UAAW,CAAC,OAAQ,QAAS,OAAQ,OAAQ,MAAO,SC8BtD,OA3CA,SAAwBvhE,GACtB,SAASwhE,EAAUvwG,EAAMV,EAAOmkB,EAAQ9Q,GACtC,IAAI9S,EAAOG,EAAK2S,KAChB,MAAM69F,EAAe1vG,OAAOkgD,UAAUnhD,GAChCy/C,EAAS3sC,GAAS3S,EAAKD,OAG7B,GAFAF,GAAQA,GAAQstG,EAAMv7F,QAAQ6R,GAAUA,EAAO1jB,OAASF,EAEpDy/C,EAOF,OANI6tD,EAAMd,WAAW5oF,EAAQ5jB,GAC3B4jB,EAAO5jB,GAAQ,CAAC4jB,EAAO5jB,GAAOP,GAE9BmkB,EAAO5jB,GAAQP,GAGTkxG,EAGL/sF,EAAO5jB,IAAUstG,EAAM7lE,SAAS7jB,EAAO5jB,MAC1C4jB,EAAO5jB,GAAQ,IASjB,OANe0wG,EAAUvwG,EAAMV,EAAOmkB,EAAO5jB,GAAO8S,IAEtCw6F,EAAMv7F,QAAQ6R,EAAO5jB,MACjC4jB,EAAO5jB,GA5Cb,SAAuB0mC,GACrB,MAAMnlC,EAAM,CAAC,EACPgnC,EAAO5oC,OAAO4oC,KAAK7B,GACzB,IAAIh9B,EACJ,MAAMo7B,EAAMyD,EAAKroC,OACjB,IAAI2R,EACJ,IAAKnI,EAAI,EAAGA,EAAIo7B,EAAKp7B,IACnBmI,EAAM02B,EAAK7+B,GACXnI,EAAIsQ,GAAO60B,EAAI70B,GAEjB,OAAOtQ,CACT,CAiCqBqvG,CAAchtF,EAAO5jB,MAG9B2wG,CACV,CAEA,GAAIrD,EAAMtC,WAAW97D,IAAao+D,EAAMtrD,WAAW9S,EAAS3F,SAAU,CACpE,MAAMhoC,EAAM,CAAC,EAMb,OAJA+rG,EAAMnB,aAAaj9D,GAAU,CAAClvC,EAAMP,KAClCixG,EAvEN,SAAuB1wG,GAKrB,OAAOstG,EAAMhB,SAAS,gBAAiBtsG,GAAMqU,KAAIrI,GAC3B,OAAbA,EAAM,GAAc,GAAKA,EAAM,IAAMA,EAAM,IAEtD,CA+DgB6kG,CAAc7wG,GAAOP,EAAO8B,EAAK,EAAE,IAGxCA,CACT,CAEA,OAAO,IACT,EC/EA,MAAMuvG,GAAuB,CAC3B,oBAAgB7hG,GA4BlB,MAAMolC,GAAW,CAEf08D,aAAc,EAEdC,QAAS,CAAC,MAAO,QAEjBC,iBAAkB,CAAC,SAA0B1zF,EAAM2zF,GACjD,MAAMC,EAAcD,EAAQE,kBAAoB,GAC1CC,EAAqBF,EAAYjkG,QAAQ,qBAAuB,EAChEokG,EAAkBhE,EAAM7lE,SAASlqB,GAEnC+zF,GAAmBhE,EAAM3C,WAAWptF,KACtCA,EAAO,IAAIkkB,SAASlkB,IAKtB,GAFmB+vF,EAAMtC,WAAWztF,GAGlC,OAAK8zF,GAGEA,EAAqBlqE,KAAKC,UAAU,GAAe7pB,IAFjDA,EAKX,GAAI+vF,EAAMtD,cAAczsF,IACtB+vF,EAAMvC,SAASxtF,IACf+vF,EAAMnC,SAAS5tF,IACf+vF,EAAM9jE,OAAOjsB,IACb+vF,EAAMrD,OAAO1sF,GAEb,OAAOA,EAET,GAAI+vF,EAAMrC,kBAAkB1tF,GAC1B,OAAOA,EAAK4sB,OAEd,GAAImjE,EAAMnD,kBAAkB5sF,GAE1B,OADA2zF,EAAQK,eAAe,mDAAmD,GACnEh0F,EAAKxb,WAGd,IAAImoG,EAEJ,GAAIoH,EAAiB,CACnB,GAAIH,EAAYjkG,QAAQ,sCAAwC,EAC9D,OC7EO,SAA0BqQ,EAAM/Y,GAC7C,OAAO,EAAW+Y,EAAM,IAAI,2BAAoC5d,OAAOC,OAAO,CAC5EwuG,QAAS,SAAS3uG,EAAOoS,EAAK1R,EAAM2rD,GAClC,OAAI,WAAmBwhD,EAAMvC,SAAStrG,IACpCyrB,KAAKsjF,OAAO38F,EAAKpS,EAAMsC,SAAS,YACzB,GAGF+pD,EAAQuiD,eAAe37E,MAAMxH,KAAMrpB,UAC5C,GACC2C,GACL,CDkEegtG,CAAiBj0F,EAAM2N,KAAKumF,gBAAgB1vG,WAGrD,IAAKmoG,EAAaoD,EAAMpD,WAAW3sF,KAAU4zF,EAAYjkG,QAAQ,wBAA0B,EAAG,CAC5F,MAAMwkG,EAAYxmF,KAAKymF,KAAOzmF,KAAKymF,IAAIlwE,SAEvC,OAAO,EACLyoE,EAAa,CAAC,UAAW3sF,GAAQA,EACjCm0F,GAAa,IAAIA,EACjBxmF,KAAKumF,eAET,CACF,CAEA,OAAIH,GAAmBD,GACrBH,EAAQK,eAAe,oBAAoB,GA1EjD,SAAyBnyF,EAAUwyF,EAAQ1C,GACzC,GAAI5B,EAAMrrD,SAAS7iC,GACjB,IAEE,OADCwyF,GAAUzqE,KAAKgB,OAAO/oB,GAChBkuF,EAAMt/C,KAAK5uC,EAKpB,CAJE,MAAO7V,GACP,GAAe,gBAAXA,EAAEvJ,KACJ,MAAMuJ,CAEV,CAGF,OAAQ2lG,GAAW/nE,KAAKC,WAAWhoB,EACrC,CA8DayyF,CAAgBt0F,IAGlBA,CACT,GAEAu0F,kBAAmB,CAAC,SAA2Bv0F,GAC7C,MAAMwzF,EAAe7lF,KAAK6lF,cAAgB18D,GAAS08D,aAC7Cf,EAAoBe,GAAgBA,EAAaf,kBACjD+B,EAAsC,SAAtB7mF,KAAK8mF,aAE3B,GAAIz0F,GAAQ+vF,EAAMrrD,SAAS1kC,KAAWyyF,IAAsB9kF,KAAK8mF,cAAiBD,GAAgB,CAChG,MACME,IADoBlB,GAAgBA,EAAahB,oBACPgC,EAEhD,IACE,OAAO5qE,KAAKgB,MAAM5qB,EAQpB,CAPE,MAAOhU,GACP,GAAI0oG,EAAmB,CACrB,GAAe,gBAAX1oG,EAAEvJ,KACJ,MAAM,OAAgBuJ,EAAG,mBAA6B2hB,KAAM,KAAMA,KAAKmiF,UAEzE,MAAM9jG,CACR,CACF,CACF,CAEA,OAAOgU,CACT,GAMA24E,QAAS,EAETgc,eAAgB,aAChBC,eAAgB,eAEhBC,kBAAmB,EACnBC,eAAgB,EAEhBV,IAAK,CACHlwE,SAAU,oBACV8sE,KAAM,iBAGR+D,eAAgB,SAAwBxkB,GACtC,OAAOA,GAAU,KAAOA,EAAS,GACnC,EAEAojB,QAAS,CACPqB,OAAQ,CACN,OAAU,uCAKhBjF,EAAM34E,QAAQ,CAAC,SAAU,MAAO,SAAS,SAA6ByjC,GACpE/jB,GAAS68D,QAAQ94C,GAAU,CAAC,CAC9B,IAEAk1C,EAAM34E,QAAQ,CAAC,OAAQ,MAAO,UAAU,SAA+ByjC,GACrE/jB,GAAS68D,QAAQ94C,GAAUk1C,EAAMn0B,MAAM23B,GACzC,IAEA,UE/JA,MAAM0B,GAAoBlF,EAAMZ,YAAY,CAC1C,MAAO,gBAAiB,iBAAkB,eAAgB,OAC1D,UAAW,OAAQ,OAAQ,oBAAqB,sBAChD,gBAAiB,WAAY,eAAgB,sBAC7C,UAAW,cAAe,eCL5B,MAAM+F,GAAajxG,OAAO,aAE1B,SAASkxG,GAAgBC,GACvB,OAAOA,GAAUtsG,OAAOssG,GAAQ3kD,OAAOnkD,aACzC,CAEA,SAAS+oG,GAAenzG,GACtB,OAAc,IAAVA,GAA4B,MAATA,EACdA,EAGF6tG,EAAMv7F,QAAQtS,GAASA,EAAM4U,IAAIu+F,IAAkBvsG,OAAO5G,EACnE,CAkBA,SAASozG,GAAiBxqG,EAAS5I,EAAOkzG,EAAQ91F,GAChD,OAAIywF,EAAMtrD,WAAWnlC,GACZA,EAAO7a,KAAKkpB,KAAMzrB,EAAOkzG,GAG7BrF,EAAMrrD,SAASxiD,GAEhB6tG,EAAMrrD,SAASplC,IACiB,IAA3Bpd,EAAMyN,QAAQ2P,GAGnBywF,EAAMlsD,SAASvkC,GACVA,EAAO5K,KAAKxS,QADrB,OANA,CASF,CAsBA,MAAMqzG,GACJpxG,YAAYwvG,GACVA,GAAWhmF,KAAKyY,IAAIutE,EACtB,CAEAvtE,IAAIgvE,EAAQI,EAAgBC,GAC1B,MAAMxxE,EAAOtW,KAEb,SAAS+nF,EAAU/lE,EAAQgmE,EAASC,GAClC,MAAMC,EAAUV,GAAgBQ,GAEhC,IAAKE,EACH,MAAM,IAAI7wG,MAAM,0CAGlB,MAAMsP,EAAMy7F,EAAMp7F,QAAQsvB,EAAM4xE,KAE5BvhG,QAAqB5C,IAAduyB,EAAK3vB,KAAmC,IAAbshG,QAAmClkG,IAAbkkG,IAAwC,IAAd3xE,EAAK3vB,MACzF2vB,EAAK3vB,GAAOqhG,GAAWN,GAAe1lE,GAE1C,CAEA,MAAMmmE,EAAa,CAACnC,EAASiC,IAC3B7F,EAAM34E,QAAQu8E,GAAS,CAAChkE,EAAQgmE,IAAYD,EAAU/lE,EAAQgmE,EAASC,KAUzE,OARI7F,EAAM/rD,cAAcoxD,IAAWA,aAAkBznF,KAAKxpB,YACxD2xG,EAAWV,EAAQI,GACXzF,EAAMrrD,SAAS0wD,KAAYA,EAASA,EAAO3kD,UAlEhD,gBAAgB/7C,KAkE8D0gG,EAlErD3kD,QAmE5BqlD,EDxEN,CAAeC,IACb,MAAM5oD,EAAS,CAAC,EAChB,IAAI74C,EACA6mB,EACAhvB,EAsBJ,OApBA4pG,GAAcA,EAAWh9F,MAAM,MAAMqe,SAAQ,SAAgBqvB,GAC3Dt6C,EAAIs6C,EAAK92C,QAAQ,KACjB2E,EAAMmyC,EAAK1vC,UAAU,EAAG5K,GAAGskD,OAAOnkD,cAClC6uB,EAAMsrB,EAAK1vC,UAAU5K,EAAI,GAAGskD,QAEvBn8C,GAAQ64C,EAAO74C,IAAQ2gG,GAAkB3gG,KAIlC,eAARA,EACE64C,EAAO74C,GACT64C,EAAO74C,GAAKtR,KAAKm4B,GAEjBgyB,EAAO74C,GAAO,CAAC6mB,GAGjBgyB,EAAO74C,GAAO64C,EAAO74C,GAAO64C,EAAO74C,GAAO,KAAO6mB,EAAMA,EAE3D,IAEOgyB,CACR,EC6CgB6oD,CAAaZ,GAASI,GAEvB,MAAVJ,GAAkBM,EAAUF,EAAgBJ,EAAQK,GAG/C9nF,IACT,CAEA5B,IAAIqpF,EAAQf,GAGV,GAFAe,EAASD,GAAgBC,GAEb,CACV,MAAM9gG,EAAMy7F,EAAMp7F,QAAQgZ,KAAMynF,GAEhC,GAAI9gG,EAAK,CACP,MAAMpS,EAAQyrB,KAAKrZ,GAEnB,IAAK+/F,EACH,OAAOnyG,EAGT,IAAe,IAAXmyG,EACF,OAtGV,SAAqBrtE,GACnB,MAAMmsB,EAAS/wD,OAAO+jC,OAAO,MACvB8vE,EAAW,mCACjB,IAAIxnG,EAEJ,KAAQA,EAAQwnG,EAASh9F,KAAK+tB,IAC5BmsB,EAAO1kD,EAAM,IAAMA,EAAM,GAG3B,OAAO0kD,CACT,CA4FiB+iD,CAAYh0G,GAGrB,GAAI6tG,EAAMtrD,WAAW4vD,GACnB,OAAOA,EAAO5vG,KAAKkpB,KAAMzrB,EAAOoS,GAGlC,GAAIy7F,EAAMlsD,SAASwwD,GACjB,OAAOA,EAAOp7F,KAAK/W,GAGrB,MAAM,IAAImB,UAAU,yCACtB,CACF,CACF,CAEAgmC,IAAI+rE,EAAQe,GAGV,GAFAf,EAASD,GAAgBC,GAEb,CACV,MAAM9gG,EAAMy7F,EAAMp7F,QAAQgZ,KAAMynF,GAEhC,SAAU9gG,GAAS6hG,IAAWb,GAAiB3nF,EAAMA,KAAKrZ,GAAMA,EAAK6hG,GACvE,CAEA,OAAO,CACT,CAEA39E,OAAO48E,EAAQe,GACb,MAAMlyE,EAAOtW,KACb,IAAIyoF,GAAU,EAEd,SAASC,EAAaV,GAGpB,GAFAA,EAAUR,GAAgBQ,GAEb,CACX,MAAMrhG,EAAMy7F,EAAMp7F,QAAQsvB,EAAM0xE,IAE5BrhG,GAAS6hG,IAAWb,GAAiBrxE,EAAMA,EAAK3vB,GAAMA,EAAK6hG,YACtDlyE,EAAK3vB,GAEZ8hG,GAAU,EAEd,CACF,CAQA,OANIrG,EAAMv7F,QAAQ4gG,GAChBA,EAAOh+E,QAAQi/E,GAEfA,EAAajB,GAGRgB,CACT,CAEApwE,QACE,OAAO5jC,OAAO4oC,KAAKrd,MAAMyJ,QAAQzJ,KAAK6K,OAAOzC,KAAKpI,MACpD,CAEAglB,UAAU7iC,GACR,MAAMm0B,EAAOtW,KACPgmF,EAAU,CAAC,EAsBjB,OApBA5D,EAAM34E,QAAQzJ,MAAM,CAACzrB,EAAOkzG,KAC1B,MAAM9gG,EAAMy7F,EAAMp7F,QAAQg/F,EAASyB,GAEnC,GAAI9gG,EAGF,OAFA2vB,EAAK3vB,GAAO+gG,GAAenzG,eACpB+hC,EAAKmxE,GAId,MAAMkB,EAAaxmG,EA9IzB,SAAsBslG,GACpB,OAAOA,EAAO3kD,OACXnkD,cAAcuC,QAAQ,mBAAmB,CAAC5D,EAAGsrG,EAAMvvE,IAC3CuvE,EAAKptG,cAAgB69B,GAElC,CAyIkCwvE,CAAapB,GAAUtsG,OAAOssG,GAAQ3kD,OAE9D6lD,IAAelB,UACVnxE,EAAKmxE,GAGdnxE,EAAKqyE,GAAcjB,GAAenzG,GAElCyxG,EAAQ2C,IAAc,CAAI,IAGrB3oF,IACT,CAEA3d,UAAUymG,GACR,OAAO9oF,KAAKxpB,YAAY6L,OAAO2d,QAAS8oF,EAC1C,CAEAxmD,OAAOymD,GACL,MAAM1yG,EAAM5B,OAAO+jC,OAAO,MAM1B,OAJA4pE,EAAM34E,QAAQzJ,MAAM,CAACzrB,EAAOkzG,KACjB,MAATlzG,IAA2B,IAAVA,IAAoB8B,EAAIoxG,GAAUsB,GAAa3G,EAAMv7F,QAAQtS,GAASA,EAAMgV,KAAK,MAAQhV,EAAM,IAG3G8B,CACT,CAEA,CAACC,OAAOC,YACN,OAAO9B,OAAO4pC,QAAQre,KAAKsiC,UAAUhsD,OAAOC,WAC9C,CAEAM,WACE,OAAOpC,OAAO4pC,QAAQre,KAAKsiC,UAAUn5C,KAAI,EAAEs+F,EAAQlzG,KAAWkzG,EAAS,KAAOlzG,IAAOgV,KAAK,KAC5F,CAEYqsC,IAAPt/C,OAAOs/C,eACV,MAAO,cACT,CAEA60B,YAAYi0B,GACV,OAAOA,aAAiB1+E,KAAO0+E,EAAQ,IAAI1+E,KAAK0+E,EAClD,CAEAj0B,cAAcu+B,KAAUF,GACtB,MAAMrmF,EAAW,IAAIzC,KAAKgpF,GAI1B,OAFAF,EAAQr/E,SAAS/Q,GAAW+J,EAASgW,IAAI/f,KAElC+J,CACT,CAEAgoD,gBAAgBg9B,GACd,MAIMwB,GAJYjpF,KAAKunF,IAAevnF,KAAKunF,IAAc,CACvD0B,UAAW,CAAC,IAGcA,UACtBxyG,EAAYupB,KAAKvpB,UAEvB,SAASyyG,EAAelB,GACtB,MAAME,EAAUV,GAAgBQ,GAE3BiB,EAAUf,MAtMrB,SAAwB7xG,EAAKoxG,GAC3B,MAAM0B,EAAe/G,EAAMT,YAAY,IAAM8F,GAE7C,CAAC,MAAO,MAAO,OAAOh+E,SAAQ2/E,IAC5B30G,OAAOymB,eAAe7kB,EAAK+yG,EAAaD,EAAc,CACpD50G,MAAO,SAAS+vD,EAAMC,EAAM8F,GAC1B,OAAOrqC,KAAKopF,GAAYtyG,KAAKkpB,KAAMynF,EAAQnjD,EAAMC,EAAM8F,EACzD,EACAvuC,cAAc,GACd,GAEN,CA4LQutF,CAAe5yG,EAAWuxG,GAC1BiB,EAAUf,IAAW,EAEzB,CAIA,OAFA9F,EAAMv7F,QAAQ4gG,GAAUA,EAAOh+E,QAAQy/E,GAAkBA,EAAezB,GAEjEznF,IACT,EAGF4nF,GAAa0B,SAAS,CAAC,eAAgB,iBAAkB,SAAU,kBAAmB,eAEtFlH,EAAMb,cAAcqG,GAAanxG,WACjC2rG,EAAMb,cAAcqG,IAEpB,UCnQe,SAAS2B,GAAchoC,EAAK4gC,GACzC,MAAMxnF,EAASqF,MAAQ,GACjB7iB,EAAUglG,GAAYxnF,EACtBqrF,EAAU,QAAkB7oG,EAAQ6oG,SAC1C,IAAI3zF,EAAOlV,EAAQkV,KAQnB,OANA+vF,EAAM34E,QAAQ83C,GAAK,SAAmBxtD,GACpC1B,EAAO0B,EAAGjd,KAAK6jB,EAAQtI,EAAM2zF,EAAQhhE,YAAam9D,EAAWA,EAASvf,YAAS7+E,EACjF,IAEAiiG,EAAQhhE,YAED3yB,CACT,CCzBe,SAASm3F,GAASj1G,GAC/B,SAAUA,IAASA,EAAMk1G,WAC3B,CCUA,SAASC,GAAcvpE,EAASxlB,EAAQunF,GAEtC,OAAgBliF,KAAiB,MAAXmgB,EAAkB,WAAaA,EAAS,eAAyBxlB,EAAQunF,GAC/FliF,KAAKlrB,KAAO,eACd,CAEAstG,EAAM5B,SAASkJ,GAAe,EAAY,CACxCD,YAAY,IAGd,UCnBA,OAAe,wBAIJ,CACLE,MAAO,SAAe70G,EAAMP,EAAOq1G,EAAS30G,EAAMwiD,EAAQoyD,GACxD,MAAMC,EAAS,GACfA,EAAOz0G,KAAKP,EAAO,IAAM+uG,mBAAmBtvG,IAExC6tG,EAAMpsD,SAAS4zD,IACjBE,EAAOz0G,KAAK,WAAa,IAAIuB,KAAKgzG,GAASG,eAGzC3H,EAAMrrD,SAAS9hD,IACjB60G,EAAOz0G,KAAK,QAAUJ,GAGpBmtG,EAAMrrD,SAASU,IACjBqyD,EAAOz0G,KAAK,UAAYoiD,IAGX,IAAXoyD,GACFC,EAAOz0G,KAAK,UAGdohB,SAASqzF,OAASA,EAAOvgG,KAAK,KAChC,EAEAygG,KAAM,SAAcl1G,GAClB,MAAMgM,EAAQ2V,SAASqzF,OAAOhpG,MAAM,IAAI0K,OAAO,aAAe1W,EAAO,cACrE,OAAQgM,EAAQmpG,mBAAmBnpG,EAAM,IAAM,IACjD,EAEAkoB,OAAQ,SAAgBl0B,GACtBkrB,KAAK2pF,MAAM70G,EAAM,GAAI8B,KAAK+sB,MAAQ,MACpC,GAMK,CACLgmF,MAAO,WAAkB,EACzBK,KAAM,WAAkB,OAAO,IAAM,EACrChhF,OAAQ,WAAmB,GClClB,SAASkhF,GAAcC,EAASC,GAC7C,OAAID,ICHG,8BAA8BpjG,KDGPqjG,GENjB,SAAqBD,EAASE,GAC3C,OAAOA,EACHF,EAAQjpG,QAAQ,OAAQ,IAAM,IAAMmpG,EAAYnpG,QAAQ,OAAQ,IAChEipG,CACN,CFGWG,CAAYH,EAASC,GAEvBA,CACT,CGfA,OAAe,wBAIb,WACE,MAAM97E,EAAO,kBAAkBvnB,KAAK2O,UAAUC,WACxC40F,EAAiB9zF,SAASwY,cAAc,KAC9C,IAAIu7E,EAQJ,SAASC,EAAW7gC,GAClB,IAAIuV,EAAOvV,EAWX,OATIt7C,IAEFi8E,EAAe3/E,aAAa,OAAQu0D,GACpCA,EAAOorB,EAAeprB,MAGxBorB,EAAe3/E,aAAa,OAAQu0D,GAG7B,CACLA,KAAMorB,EAAeprB,KACrBurB,SAAUH,EAAeG,SAAWH,EAAeG,SAASxpG,QAAQ,KAAM,IAAM,GAChF0W,KAAM2yF,EAAe3yF,KACrBkpD,OAAQypC,EAAezpC,OAASypC,EAAezpC,OAAO5/D,QAAQ,MAAO,IAAM,GAC3EoP,KAAMi6F,EAAej6F,KAAOi6F,EAAej6F,KAAKpP,QAAQ,KAAM,IAAM,GACpEypG,SAAUJ,EAAeI,SACzBC,KAAML,EAAeK,KACrBC,SAAiD,MAAtCN,EAAeM,SAASvxE,OAAO,GACxCixE,EAAeM,SACf,IAAMN,EAAeM,SAE3B,CAUA,OARAL,EAAYC,EAAWj2F,OAAOmjC,SAASwnC,MAQhC,SAAyB2rB,GAC9B,MAAMtrD,EAAU4iD,EAAMrrD,SAAS+zD,GAAeL,EAAWK,GAAcA,EACvE,OAAQtrD,EAAOkrD,WAAaF,EAAUE,UAClClrD,EAAO5nC,OAAS4yF,EAAU5yF,IAChC,CACD,CAlDD,GAsDS,WACL,OAAO,CACT,ECXJ,OA9CA,SAAqBmzF,EAAcp7F,GACjCo7F,EAAeA,GAAgB,GAC/B,MAAMC,EAAQ,IAAIpkG,MAAMmkG,GAClBE,EAAa,IAAIrkG,MAAMmkG,GAC7B,IAEIG,EAFA3qB,EAAO,EACP4qB,EAAO,EAKX,OAFAx7F,OAAc5L,IAAR4L,EAAoBA,EAAM,IAEzB,SAAcy7F,GACnB,MAAMznF,EAAM/sB,KAAK+sB,MAEX0nF,EAAYJ,EAAWE,GAExBD,IACHA,EAAgBvnF,GAGlBqnF,EAAMzqB,GAAQ6qB,EACdH,EAAW1qB,GAAQ58D,EAEnB,IAAInlB,EAAI2sG,EACJG,EAAa,EAEjB,KAAO9sG,IAAM+hF,GACX+qB,GAAcN,EAAMxsG,KACpBA,GAAQusG,EASV,GANAxqB,GAAQA,EAAO,GAAKwqB,EAEhBxqB,IAAS4qB,IACXA,GAAQA,EAAO,GAAKJ,GAGlBpnF,EAAMunF,EAAgBv7F,EACxB,OAGF,MAAM47F,EAASF,GAAa1nF,EAAM0nF,EAElC,OAAOE,EAASt1G,KAAKuH,MAAmB,IAAb8tG,EAAoBC,QAAUxnG,CAC3D,CACF,ECpCA,SAASynG,GAAqBvhF,EAAUwhF,GACtC,IAAIC,EAAgB,EACpB,MAAMC,EAAe,GAAY,GAAI,KAErC,OAAOttG,IACL,MAAMutG,EAASvtG,EAAEutG,OACXC,EAAQxtG,EAAEytG,iBAAmBztG,EAAEwtG,WAAQ9nG,EACvCgoG,EAAgBH,EAASF,EACzBM,EAAOL,EAAaI,GAG1BL,EAAgBE,EAEhB,MAAMv5F,EAAO,CACXu5F,SACAC,QACAI,SAAUJ,EAASD,EAASC,OAAS9nG,EACrCinG,MAAOe,EACPC,KAAMA,QAAcjoG,EACpBmoG,UAAWF,GAAQH,GAVLD,GAAUC,GAUeA,EAAQD,GAAUI,OAAOjoG,EAChEqgB,MAAO/lB,GAGTgU,EAAKo5F,EAAmB,WAAa,WAAY,EAEjDxhF,EAAS5X,EAAK,CAElB,CCtCA,MAAM85F,GAAgB,CACpBC,KCLF,KDMEC,IDsCsD,qBAAnBC,gBAEG,SAAU3xF,GAChD,OAAO,IAAIwE,SAAQ,SAA4BC,EAAS24C,GACtD,IAAIw0C,EAAc5xF,EAAOtI,KACzB,MAAMm6F,EAAiB,QAAkB7xF,EAAOqrF,SAAShhE,YACnD8hE,EAAensF,EAAOmsF,aAC5B,IAAI2F,EACJ,SAASvL,IACHvmF,EAAO+xF,aACT/xF,EAAO+xF,YAAY/e,YAAY8e,GAG7B9xF,EAAOq7E,QACTr7E,EAAOq7E,OAAO9rE,oBAAoB,QAASuiF,EAE/C,CAEIrK,EAAMtC,WAAWyM,KAAiB,yBAAiC,mCACrEC,EAAenG,gBAAe,GAGhC,IAAInE,EAAU,IAAIoK,eAGlB,GAAI3xF,EAAOgyF,KAAM,CACf,MAAMC,EAAWjyF,EAAOgyF,KAAKC,UAAY,GACnCC,EAAWlyF,EAAOgyF,KAAKE,SAAWC,SAASjJ,mBAAmBlpF,EAAOgyF,KAAKE,WAAa,GAC7FL,EAAe/zE,IAAI,gBAAiB,SAAWs0E,KAAKH,EAAW,IAAMC,GACvE,CAEA,MAAMG,EAAW9C,GAAcvvF,EAAOwvF,QAASxvF,EAAOivD,KAOtD,SAASqjC,IACP,IAAK/K,EACH,OAGF,MAAMgL,EAAkB,QACtB,0BAA2BhL,GAAWA,EAAQiL,0BG5EvC,SAAgB/tF,EAAS24C,EAAQoqC,GAC9C,MAAMiF,EAAiBjF,EAASxnF,OAAOysF,eAClCjF,EAASvf,QAAWwkB,IAAkBA,EAAejF,EAASvf,QAGjE7qB,EAAO,IAAI,EACT,mCAAqCoqC,EAASvf,OAC9C,CAAC,kBAA4B,oBAA6B3sF,KAAKE,MAAMgsG,EAASvf,OAAS,KAAO,GAC9Fuf,EAASxnF,OACTwnF,EAASD,QACTC,IAPF/iF,EAAQ+iF,EAUZ,CH4EMiL,EAAO,SAAkB74G,GACvB6qB,EAAQ7qB,GACR2sG,GACF,IAAG,SAAiBtsG,GAClBmjE,EAAOnjE,GACPssG,GACF,GAfiB,CACf7uF,KAHoBy0F,GAAiC,SAAjBA,GAA4C,SAAjBA,EACxC5E,EAAQC,SAA/BD,EAAQmL,aAGRzqB,OAAQsf,EAAQtf,OAChB0qB,WAAYpL,EAAQoL,WACpBtH,QAASkH,EACTvyF,SACAunF,YAYFA,EAAU,IACZ,CAmEA,GArGAA,EAAQniB,KAAKplE,EAAOuyC,OAAO1xD,cAAe0oG,EAAS8I,EAAUryF,EAAO+nB,OAAQ/nB,EAAO4yF,mBAAmB,GAGtGrL,EAAQlX,QAAUrwE,EAAOqwE,QAiCrB,cAAekX,EAEjBA,EAAQ+K,UAAYA,EAGpB/K,EAAQsL,mBAAqB,WACtBtL,GAAkC,IAAvBA,EAAQtkB,aAQD,IAAnBskB,EAAQtf,QAAkBsf,EAAQuL,aAAwD,IAAzCvL,EAAQuL,YAAYzrG,QAAQ,WAKjFijB,WAAWgoF,EACb,EAIF/K,EAAQwL,QAAU,WACXxL,IAILnqC,EAAO,IAAI,EAAW,kBAAmB,eAAyBp9C,EAAQunF,IAG1EA,EAAU,KACZ,EAGAA,EAAQyL,QAAU,WAGhB51C,EAAO,IAAI,EAAW,gBAAiB,cAAwBp9C,EAAQunF,IAGvEA,EAAU,IACZ,EAGAA,EAAQ0L,UAAY,WAClB,IAAIC,EAAsBlzF,EAAOqwE,QAAU,cAAgBrwE,EAAOqwE,QAAU,cAAgB,mBAC5F,MAAM6a,EAAelrF,EAAOkrF,cAAgB,EACxClrF,EAAOkzF,sBACTA,EAAsBlzF,EAAOkzF,qBAE/B91C,EAAO,IAAI,EACT81C,EACAhI,EAAad,oBAAsB,YAAuB,eAC1DpqF,EACAunF,IAGFA,EAAU,IACZ,EAKI,wBAA+B,CAEjC,MAAM4L,GAAanzF,EAAOozF,iBAAmBC,GAAgBhB,KACxDryF,EAAOqsF,gBAAkBiH,GAAQjE,KAAKrvF,EAAOqsF,gBAE9C8G,GACFtB,EAAe/zE,IAAI9d,EAAOssF,eAAgB6G,EAE9C,MAGgB/pG,IAAhBwoG,GAA6BC,EAAenG,eAAe,MAGvD,qBAAsBnE,GACxBE,EAAM34E,QAAQ+iF,EAAelqD,UAAU,SAA0B90B,EAAK7mB,GACpEu7F,EAAQgM,iBAAiBvnG,EAAK6mB,EAChC,IAIG40E,EAAMvD,YAAYlkF,EAAOozF,mBAC5B7L,EAAQ6L,kBAAoBpzF,EAAOozF,iBAIjCjH,GAAiC,SAAjBA,IAClB5E,EAAQ4E,aAAensF,EAAOmsF,cAIS,oBAA9BnsF,EAAOwzF,oBAChBjM,EAAQ7jF,iBAAiB,WAAYmtF,GAAqB7wF,EAAOwzF,oBAAoB,IAIhD,oBAA5BxzF,EAAOyzF,kBAAmClM,EAAQmM,QAC3DnM,EAAQmM,OAAOhwF,iBAAiB,WAAYmtF,GAAqB7wF,EAAOyzF,oBAGtEzzF,EAAO+xF,aAAe/xF,EAAOq7E,UAG/ByW,EAAatkB,IACN+Z,IAGLnqC,GAAQowB,GAAUA,EAAOhoE,KAAO,IAAI,GAAc,KAAMxF,EAAQunF,GAAW/Z,GAC3E+Z,EAAQ7Z,QACR6Z,EAAU,KAAI,EAGhBvnF,EAAO+xF,aAAe/xF,EAAO+xF,YAAYptB,UAAUmtB,GAC/C9xF,EAAOq7E,SACTr7E,EAAOq7E,OAAO8C,QAAU2T,IAAe9xF,EAAOq7E,OAAO33E,iBAAiB,QAASouF,KAInF,MAAM/B,EI3OK,SAAuB9gC,GACpC,MAAM9oE,EAAQ,4BAA4BwK,KAAKs+D,GAC/C,OAAO9oE,GAASA,EAAM,IAAM,EAC9B,CJwOqBwtG,CAActB,GAE3BtC,IAAsD,IAA1C,qBAA2BA,GACzC3yC,EAAO,IAAI,EAAW,wBAA0B2yC,EAAW,IAAK,kBAA4B/vF,IAM9FunF,EAAQqM,KAAKhC,GAAe,KAC9B,GACF,GC9OAnK,EAAM34E,QAAQ0iF,IAAe,CAACp4F,EAAIxf,KAChC,GAAGwf,EAAI,CACL,IACEtf,OAAOymB,eAAenH,EAAI,OAAQ,CAACxf,SAGrC,CAFE,MAAO8J,GAET,CACA5J,OAAOymB,eAAenH,EAAI,cAAe,CAACxf,SAC5C,KAGF,OACei6G,IACXA,EAAWpM,EAAMv7F,QAAQ2nG,GAAYA,EAAW,CAACA,GAEjD,MAAM,OAACx5G,GAAUw5G,EACjB,IAAIC,EACA3I,EAEJ,IAAK,IAAItnG,EAAI,EAAGA,EAAIxJ,IAClBy5G,EAAgBD,EAAShwG,KACrBsnG,EAAU1D,EAAMrrD,SAAS03D,GAAiBtC,GAAcsC,EAAc9vG,eAAiB8vG,IAFjEjwG,KAO5B,IAAKsnG,EAAS,CACZ,IAAgB,IAAZA,EACF,MAAM,IAAI,EACR,WAAW2I,wCACX,mBAIJ,MAAM,IAAIp3G,MACR+qG,EAAMd,WAAW6K,GAAesC,GAC9B,YAAYA,mCACZ,oBAAoBA,KAE1B,CAEA,IAAKrM,EAAMtrD,WAAWgvD,GACpB,MAAM,IAAIpwG,UAAU,6BAGtB,OAAOowG,CAAO,EIvClB,SAAS4I,GAA6B/zF,GAKpC,GAJIA,EAAO+xF,aACT/xF,EAAO+xF,YAAYiC,mBAGjBh0F,EAAOq7E,QAAUr7E,EAAOq7E,OAAO8C,QACjC,MAAM,IAAI,GAAc,KAAMn+E,EAElC,CASe,SAASi0F,GAAgBj0F,GACtC+zF,GAA6B/zF,GAE7BA,EAAOqrF,QAAU,QAAkBrrF,EAAOqrF,SAG1CrrF,EAAOtI,KAAOk3F,GAAczyG,KAC1B6jB,EACAA,EAAOorF,mBAGgD,IAArD,CAAC,OAAQ,MAAO,SAAS/jG,QAAQ2Y,EAAOuyC,SAC1CvyC,EAAOqrF,QAAQK,eAAe,qCAAqC,GAKrE,OAFgBmI,GAAoB7zF,EAAOmrF,SAAW,WAE/CA,CAAQnrF,GAAQmY,MAAK,SAA6BqvE,GAYvD,OAXAuM,GAA6B/zF,GAG7BwnF,EAAS9vF,KAAOk3F,GAAczyG,KAC5B6jB,EACAA,EAAOisF,kBACPzE,GAGFA,EAAS6D,QAAU,QAAkB7D,EAAS6D,SAEvC7D,CACT,IAAG,SAA4B0M,GAe7B,OAdKrF,GAASqF,KACZH,GAA6B/zF,GAGzBk0F,GAAUA,EAAO1M,WACnB0M,EAAO1M,SAAS9vF,KAAOk3F,GAAczyG,KACnC6jB,EACAA,EAAOisF,kBACPiI,EAAO1M,UAET0M,EAAO1M,SAAS6D,QAAU,QAAkB6I,EAAO1M,SAAS6D,WAIzD7mF,QAAQ44C,OAAO82C,EACxB,GACF,CC3EA,MAAMC,GAAmBpQ,GAAUA,aAAiB,GAAeA,EAAMp8C,SAAWo8C,EAWrE,SAASqQ,GAAYC,EAASC,GAE3CA,EAAUA,GAAW,CAAC,EACtB,MAAMt0F,EAAS,CAAC,EAEhB,SAASu0F,EAAex2F,EAAQgmB,EAAQyhE,GACtC,OAAIiC,EAAM/rD,cAAc39B,IAAW0pF,EAAM/rD,cAAc3X,GAC9C0jE,EAAMn0B,MAAMn3E,KAAK,CAACqpG,YAAWznF,EAAQgmB,GACnC0jE,EAAM/rD,cAAc3X,GACtB0jE,EAAMn0B,MAAM,CAAC,EAAGvvC,GACd0jE,EAAMv7F,QAAQ63B,GAChBA,EAAOv3B,QAETu3B,CACT,CAGA,SAASywE,EAAoB9zG,EAAGuD,EAAGuhG,GACjC,OAAKiC,EAAMvD,YAAYjgG,GAEXwjG,EAAMvD,YAAYxjG,QAAvB,EACE6zG,OAAenrG,EAAW1I,EAAG8kG,GAF7B+O,EAAe7zG,EAAGuD,EAAGuhG,EAIhC,CAGA,SAASiP,EAAiB/zG,EAAGuD,GAC3B,IAAKwjG,EAAMvD,YAAYjgG,GACrB,OAAOswG,OAAenrG,EAAWnF,EAErC,CAGA,SAASywG,EAAiBh0G,EAAGuD,GAC3B,OAAKwjG,EAAMvD,YAAYjgG,GAEXwjG,EAAMvD,YAAYxjG,QAAvB,EACE6zG,OAAenrG,EAAW1I,GAF1B6zG,OAAenrG,EAAWnF,EAIrC,CAGA,SAAS0wG,EAAgBj0G,EAAGuD,EAAGqd,GAC7B,OAAIA,KAAQgzF,EACHC,EAAe7zG,EAAGuD,GAChBqd,KAAQ+yF,EACVE,OAAenrG,EAAW1I,QAD5B,CAGT,CAEA,MAAMk0G,EAAW,CACf3lC,IAAKwlC,EACLliD,OAAQkiD,EACR/8F,KAAM+8F,EACNjF,QAASkF,EACTtJ,iBAAkBsJ,EAClBzI,kBAAmByI,EACnB9B,iBAAkB8B,EAClBrkB,QAASqkB,EACTG,eAAgBH,EAChBtB,gBAAiBsB,EACjBvJ,QAASuJ,EACTvI,aAAcuI,EACdrI,eAAgBqI,EAChBpI,eAAgBoI,EAChBjB,iBAAkBiB,EAClBlB,mBAAoBkB,EACpBI,WAAYJ,EACZnI,iBAAkBmI,EAClBlI,cAAekI,EACfK,eAAgBL,EAChBM,UAAWN,EACXO,UAAWP,EACXQ,WAAYR,EACZ3C,YAAa2C,EACbS,WAAYT,EACZU,iBAAkBV,EAClBjI,eAAgBkI,EAChBtJ,QAAS,CAAC3qG,EAAGuD,IAAMuwG,EAAoBL,GAAgBzzG,GAAIyzG,GAAgBlwG,IAAI,IASjF,OANAwjG,EAAM34E,QAAQh1B,OAAO4oC,KAAK2xE,GAAS3sG,OAAO5N,OAAO4oC,KAAK4xE,KAAW,SAA4BhzF,GAC3F,MAAMgyD,EAAQshC,EAAStzF,IAASkzF,EAC1Ba,EAAc/hC,EAAM+gC,EAAQ/yF,GAAOgzF,EAAQhzF,GAAOA,GACvDmmF,EAAMvD,YAAYmR,IAAgB/hC,IAAUqhC,IAAqB30F,EAAOsB,GAAQ+zF,EACnF,IAEOr1F,CACT,CCxGO,MAAMs1F,GAAU,QCKjBC,GAAa,CAAC,EAGpB,CAAC,SAAU,UAAW,SAAU,WAAY,SAAU,UAAUzmF,SAAQ,CAACtJ,EAAM3hB,KAC7E0xG,GAAW/vF,GAAQ,SAAmBu+E,GACpC,cAAcA,IAAUv+E,GAAQ,KAAO3hB,EAAI,EAAI,KAAO,KAAO2hB,CAC/D,CAAC,IAGH,MAAMgwF,GAAqB,CAAC,EAW5BD,GAAWrK,aAAe,SAAsBhlF,EAAWkV,EAASoK,GAClE,SAASiwE,EAAcjuE,EAAK46B,GAC1B,MAAO,uCAAoD56B,EAAM,IAAO46B,GAAQ58B,EAAU,KAAOA,EAAU,GAC7G,CAGA,MAAO,CAAC5rC,EAAO4tC,EAAKluC,KAClB,IAAkB,IAAd4sB,EACF,MAAM,IAAI,EACRuvF,EAAcjuE,EAAK,qBAAuBpM,EAAU,OAASA,EAAU,KACvE,kBAeJ,OAXIA,IAAYo6E,GAAmBhuE,KACjCguE,GAAmBhuE,IAAO,EAE1BhrC,QAAQC,KACNg5G,EACEjuE,EACA,+BAAiCpM,EAAU,8CAK1ClV,GAAYA,EAAUtsB,EAAO4tC,EAAKluC,EAAY,CAEzD,EAmCA,QACEo8G,cAxBF,SAAuB/2G,EAAS2qC,EAAQqsE,GACtC,GAAuB,kBAAZh3G,EACT,MAAM,IAAI,EAAW,4BAA6B,wBAEpD,MAAM+jC,EAAO5oC,OAAO4oC,KAAK/jC,GACzB,IAAIkF,EAAI6+B,EAAKroC,OACb,KAAOwJ,KAAM,GAAG,CACd,MAAM2jC,EAAM9E,EAAK7+B,GACXqiB,EAAYojB,EAAO9B,GACzB,GAAIthB,EAAJ,CACE,MAAMtsB,EAAQ+E,EAAQ6oC,GAChBz+B,OAAmBK,IAAVxP,GAAuBssB,EAAUtsB,EAAO4tC,EAAK7oC,GAC5D,IAAe,IAAXoK,EACF,MAAM,IAAI,EAAW,UAAYy+B,EAAM,YAAcz+B,EAAQ,uBAGjE,MACA,IAAqB,IAAjB4sG,EACF,MAAM,IAAI,EAAW,kBAAoBnuE,EAAK,iBAElD,CACF,EAIE+tE,eC9EF,MAAM,GAAarvF,GAAUqvF,WAS7B,MAAMK,GACJ/5G,YAAYg6G,GACVxwF,KAAKmpB,SAAWqnE,EAChBxwF,KAAKywF,aAAe,CAClBvO,QAAS,IAAI,EACbC,SAAU,IAAI,EAElB,CAUAD,QAAQwO,EAAa/1F,GAGQ,kBAAhB+1F,GACT/1F,EAASA,GAAU,CAAC,GACbivD,IAAM8mC,EAEb/1F,EAAS+1F,GAAe,CAAC,EAG3B/1F,EAASo0F,GAAY/uF,KAAKmpB,SAAUxuB,GAEpC,MAAM,aAACkrF,EAAY,iBAAE0H,EAAgB,QAAEvH,GAAWrrF,EAoBlD,IAAIg2F,OAlBiB5sG,IAAjB8hG,GACFhlF,GAAUwvF,cAAcxK,EAAc,CACpChB,kBAAmB,GAAWgB,aAAa,GAAWz7B,SACtD06B,kBAAmB,GAAWe,aAAa,GAAWz7B,SACtD26B,oBAAqB,GAAWc,aAAa,GAAWz7B,WACvD,QAGoBrmE,IAArBwpG,GACF1sF,GAAUwvF,cAAc9C,EAAkB,CACxC5J,OAAQ,GAAWiN,SACnBxM,UAAW,GAAWwM,WACrB,GAILj2F,EAAOuyC,QAAUvyC,EAAOuyC,QAAUltC,KAAKmpB,SAAS+jB,QAAU,OAAOvuD,cAKjEgyG,EAAiB3K,GAAW5D,EAAMn0B,MAChC+3B,EAAQqB,OACRrB,EAAQrrF,EAAOuyC,SAGjByjD,GAAkBvO,EAAM34E,QACtB,CAAC,SAAU,MAAO,OAAQ,OAAQ,MAAO,QAAS,WACjDyjC,WACQ84C,EAAQ94C,EAAO,IAI1BvyC,EAAOqrF,QAAU,UAAoB2K,EAAgB3K,GAGrD,MAAM6K,EAA0B,GAChC,IAAIC,GAAiC,EACrC9wF,KAAKywF,aAAavO,QAAQz4E,SAAQ,SAAoCsnF,GACjC,oBAAxBA,EAAYpM,UAA0D,IAAhCoM,EAAYpM,QAAQhqF,KAIrEm2F,EAAiCA,GAAkCC,EAAYrM,YAE/EmM,EAAwB37D,QAAQ67D,EAAYvM,UAAWuM,EAAYtM,UACrE,IAEA,MAAMuM,EAA2B,GAKjC,IAAIntB,EAJJ7jE,KAAKywF,aAAatO,SAAS14E,SAAQ,SAAkCsnF,GACnEC,EAAyB37G,KAAK07G,EAAYvM,UAAWuM,EAAYtM,SACnE,IAGA,IACI7qE,EADAp7B,EAAI,EAGR,IAAKsyG,EAAgC,CACnC,MAAM5rD,EAAQ,CAAC0pD,GAAgBxmF,KAAKpI,WAAOjc,GAO3C,IANAmhD,EAAMhQ,QAAQ1tB,MAAM09B,EAAO2rD,GAC3B3rD,EAAM7vD,KAAKmyB,MAAM09B,EAAO8rD,GACxBp3E,EAAMsrB,EAAMlwD,OAEZ6uF,EAAU1kE,QAAQC,QAAQzE,GAEnBnc,EAAIo7B,GACTiqD,EAAUA,EAAQ/wD,KAAKoyB,EAAM1mD,KAAM0mD,EAAM1mD,MAG3C,OAAOqlF,CACT,CAEAjqD,EAAMi3E,EAAwB77G,OAE9B,IAAIi8G,EAAYt2F,EAIhB,IAFAnc,EAAI,EAEGA,EAAIo7B,GAAK,CACd,MAAMs3E,EAAcL,EAAwBryG,KACtC2yG,EAAaN,EAAwBryG,KAC3C,IACEyyG,EAAYC,EAAYD,EAI1B,CAHE,MAAOp8G,GACPs8G,EAAWr6G,KAAKkpB,KAAMnrB,GACtB,KACF,CACF,CAEA,IACEgvF,EAAU+qB,GAAgB93G,KAAKkpB,KAAMixF,EAGvC,CAFE,MAAOp8G,GACP,OAAOsqB,QAAQ44C,OAAOljE,EACxB,CAKA,IAHA2J,EAAI,EACJo7B,EAAMo3E,EAAyBh8G,OAExBwJ,EAAIo7B,GACTiqD,EAAUA,EAAQ/wD,KAAKk+E,EAAyBxyG,KAAMwyG,EAAyBxyG,MAGjF,OAAOqlF,CACT,CAEAutB,OAAOz2F,GAGL,OAAOupF,EADUgG,IADjBvvF,EAASo0F,GAAY/uF,KAAKmpB,SAAUxuB,IACEwvF,QAASxvF,EAAOivD,KAC5BjvD,EAAO+nB,OAAQ/nB,EAAO4yF,iBAClD,EAIFnL,EAAM34E,QAAQ,CAAC,SAAU,MAAO,OAAQ,YAAY,SAA6ByjC,GAE/EqjD,GAAM95G,UAAUy2D,GAAU,SAAS0c,EAAKjvD,GACtC,OAAOqF,KAAKkiF,QAAQ6M,GAAYp0F,GAAU,CAAC,EAAG,CAC5CuyC,SACA0c,MACAv3D,MAAOsI,GAAU,CAAC,GAAGtI,OAEzB,CACF,IAEA+vF,EAAM34E,QAAQ,CAAC,OAAQ,MAAO,UAAU,SAA+ByjC,GAGrE,SAASmkD,EAAmBC,GAC1B,OAAO,SAAoB1nC,EAAKv3D,EAAMsI,GACpC,OAAOqF,KAAKkiF,QAAQ6M,GAAYp0F,GAAU,CAAC,EAAG,CAC5CuyC,SACA84C,QAASsL,EAAS,CAChB,eAAgB,uBACd,CAAC,EACL1nC,MACAv3D,SAEJ,CACF,CAEAk+F,GAAM95G,UAAUy2D,GAAUmkD,IAE1Bd,GAAM95G,UAAUy2D,EAAS,QAAUmkD,GAAmB,EACxD,IAEA,UCzLA,MAAME,GACJ/6G,YAAYg7G,GACV,GAAwB,oBAAbA,EACT,MAAM,IAAI97G,UAAU,gCAGtB,IAAI+7G,EAEJzxF,KAAK6jE,QAAU,IAAI1kE,SAAQ,SAAyBC,GAClDqyF,EAAiBryF,CACnB,IAEA,MAAMtkB,EAAQklB,KAGdA,KAAK6jE,QAAQ/wD,MAAKq1D,IAChB,IAAKrtF,EAAM42G,WAAY,OAEvB,IAAIlzG,EAAI1D,EAAM42G,WAAW18G,OAEzB,KAAOwJ,KAAM,GACX1D,EAAM42G,WAAWlzG,GAAG2pF,GAEtBrtF,EAAM42G,WAAa,IAAI,IAIzB1xF,KAAK6jE,QAAQ/wD,KAAO6+E,IAClB,IAAIC,EAEJ,MAAM/tB,EAAU,IAAI1kE,SAAQC,IAC1BtkB,EAAMwkF,UAAUlgE,GAChBwyF,EAAWxyF,CAAO,IACjB0T,KAAK6+E,GAMR,OAJA9tB,EAAQsE,OAAS,WACfrtF,EAAM6yF,YAAYikB,EACpB,EAEO/tB,CAAO,EAGhB2tB,GAAS,SAAgBrxE,EAASxlB,EAAQunF,GACpCpnG,EAAM+zG,SAKV/zG,EAAM+zG,OAAS,IAAI,GAAc1uE,EAASxlB,EAAQunF,GAClDuP,EAAe32G,EAAM+zG,QACvB,GACF,CAKAF,mBACE,GAAI3uF,KAAK6uF,OACP,MAAM7uF,KAAK6uF,MAEf,CAMAvvB,UAAUr1D,GACJjK,KAAK6uF,OACP5kF,EAASjK,KAAK6uF,QAIZ7uF,KAAK0xF,WACP1xF,KAAK0xF,WAAWr8G,KAAK40B,GAErBjK,KAAK0xF,WAAa,CAACznF,EAEvB,CAMA0jE,YAAY1jE,GACV,IAAKjK,KAAK0xF,WACR,OAEF,MAAM9pG,EAAQoY,KAAK0xF,WAAW1vG,QAAQioB,IACvB,IAAXriB,GACFoY,KAAK0xF,WAAWzyF,OAAOrX,EAAO,EAElC,CAMA6iE,gBACE,IAAI0d,EAIJ,MAAO,CACLrtF,MAJY,IAAIy2G,IAAY,SAAkBhzG,GAC9C4pF,EAAS5pF,CACX,IAGE4pF,SAEJ,EAGF,UCxHA,MAAM0pB,GAAiB,CACrBC,SAAU,IACVC,mBAAoB,IACpBC,WAAY,IACZC,WAAY,IACZC,GAAI,IACJC,QAAS,IACTC,SAAU,IACVC,4BAA6B,IAC7BC,UAAW,IACXC,aAAc,IACdC,eAAgB,IAChBC,YAAa,IACbC,gBAAiB,IACjBC,OAAQ,IACRC,gBAAiB,IACjBC,iBAAkB,IAClBC,MAAO,IACPC,SAAU,IACVC,YAAa,IACbC,SAAU,IACVC,OAAQ,IACRC,kBAAmB,IACnBC,kBAAmB,IACnBC,WAAY,IACZC,aAAc,IACdC,gBAAiB,IACjBC,UAAW,IACXC,SAAU,IACVC,iBAAkB,IAClBC,cAAe,IACfC,4BAA6B,IAC7BC,eAAgB,IAChBC,SAAU,IACVC,KAAM,IACNC,eAAgB,IAChBC,mBAAoB,IACpBC,gBAAiB,IACjBC,WAAY,IACZC,qBAAsB,IACtBC,oBAAqB,IACrBC,kBAAmB,IACnBC,UAAW,IACXC,mBAAoB,IACpBC,oBAAqB,IACrBC,OAAQ,IACRC,iBAAkB,IAClBC,SAAU,IACVC,gBAAiB,IACjBC,qBAAsB,IACtBC,gBAAiB,IACjBC,4BAA6B,IAC7BC,2BAA4B,IAC5BC,oBAAqB,IACrBC,eAAgB,IAChBC,WAAY,IACZC,mBAAoB,IACpBC,eAAgB,IAChBC,wBAAyB,IACzBC,sBAAuB,IACvBC,oBAAqB,IACrBC,aAAc,IACdC,YAAa,IACbC,8BAA+B,KAGjCnhH,OAAO4pC,QAAQwzE,IAAgBpoF,SAAQ,EAAE9iB,EAAKpS,MAC5Cs9G,GAAet9G,GAASoS,CAAG,IAG7B,UCzBA,MAAMkvG,GAnBN,SAASC,EAAeC,GACtB,MAAM54G,EAAU,IAAI,GAAM44G,GACpBxlD,EAAWnoC,EAAK,qBAAyBjrB,GAa/C,OAVAilG,EAAM9B,OAAO/vC,EAAU,aAAiBpzD,EAAS,CAAC+hG,YAAY,IAG9DkD,EAAM9B,OAAO/vC,EAAUpzD,EAAS,KAAM,CAAC+hG,YAAY,IAGnD3uC,EAAS/3B,OAAS,SAAgBg4E,GAChC,OAAOsF,EAAe/G,GAAYgH,EAAevF,GACnD,EAEOjgD,CACT,CAGculD,CAAe,IAG7BD,GAAMtF,MAAQ,GAGdsF,GAAMnM,cAAgB,GACtBmM,GAAMtE,YAAc,GACpBsE,GAAMrM,SAAWA,GACjBqM,GAAM5F,QAAUA,GAChB4F,GAAMG,WAAa,EAGnBH,GAAM5T,WAAa,EAGnB4T,GAAMI,OAASJ,GAAMnM,cAGrBmM,GAAMtgF,IAAM,SAAaqlE,GACvB,OAAOz7E,QAAQoW,IAAIqlE,EACrB,EAEAib,GAAMK,OC7CS,SAAgBv+E,GAC7B,OAAO,SAAc6D,GACnB,OAAO7D,EAASnQ,MAAM,KAAMgU,EAC9B,CACF,ED4CAq6E,GAAMM,aE5DS,SAAsB9+D,GACnC,OAAO+qD,EAAM7lE,SAAS8a,KAAsC,IAAzBA,EAAQ8+D,YAC7C,EF6DAN,GAAM9G,YAAcA,GAEpB8G,GAAMjO,aAAe,GAErBiO,GAAMO,WAAa1X,GAAS,GAAe0D,EAAM3C,WAAWf,GAAS,IAAInoE,SAASmoE,GAASA,GAE3FmX,GAAMhE,eAAiB,GAEvBgE,GAAM31F,QAAU21F,GAGhB,2DGhFA,MAAM5yD,EAAQ,CAAC,EAef,MAAMozD,EAAY,CACdvhH,KAAM,YACNm9B,cAAc,EACdvG,SACI,OAAK1L,KAAKs2F,aAGH,OACH,MACA7hH,OAAOC,OACH,CAAC,EAEDsrB,KAAKu2F,YAAYv2F,KAAKs2F,cArBjBvzF,EAuBO/C,KAAKgD,OAtBtBvuB,OAAO4oC,KAAKta,GAAO7tB,QAAO,CAACwO,EAAQiD,MACnB,IAAfoc,EAAMpc,IAAiC,OAAfoc,EAAMpc,SAAgC5C,IAAfgf,EAAMpc,KACrDjD,EAAOiD,GAAOoc,EAAMpc,IAEjBjD,IACR,CAAC,IAmBQ,CAAE6vB,UAAWvT,KAAKw2F,cAAcx2F,KAAKs2F,gBAXlC,KAdnB,IAAqBvzF,CA4BjB,EACApD,MAAO,CACHywC,IAAK,CACDjwC,KAAMhlB,OACN3F,UAAU,GAEdmmE,MAAO,CACHx7C,KAAMhlB,QAEVs7G,gBAAiB,CACbt2F,KAAME,SACNH,QAAUw2F,GAAQA,GAEtBC,kBAAmB,CACfx2F,KAAMM,QACNP,SAAS,IAGjBwB,MAAO,CAAC,SAAU,WAAY,SAC9BrP,OACI,MAAO,CAEHikG,YAAa,KAErB,EACAnzF,MAAO,CACHitC,IAAI7uB,GAEAvhB,KAAK42F,UAAUr1E,EACnB,GAEJ1d,UAEI7D,KAAK42F,UAAU52F,KAAKowC,IACxB,EACAjsC,QAAS,CACLoyF,YAAYM,GAER,IAAIC,EAAW,CAAC,EAChB,MAAM/zF,EAAQ8zF,EAAME,WACpB,IAAKh0F,EACD,OAAO+zF,EAEX,IAAK,IAAIt4G,EAAIukB,EAAM/tB,OAAS,EAAGwJ,GAAK,EAAGA,IACnCs4G,EAAS/zF,EAAMvkB,GAAG1J,MAAQiuB,EAAMvkB,GAAGjK,MAEvC,OAAOuiH,CACX,EACAN,cAAcK,GAQV,OAPAA,EAAQA,EAAMG,WAAU,GACxBH,EAAQ72F,KAAKy2F,gBAAgBI,GACzB72F,KAAK27C,OAwFrB,SAAkB+6C,EAAK/6C,GACnB,MAAMs7C,EAAYP,EAAIQ,qBAAqB,SAC3C,GAAID,EAAUjiH,OACViiH,EAAU,GAAGzjF,YAAcmoC,MACxB,CACH,MAAMw7C,EAAU1gG,SAAS2gG,gBAAgB,6BAA8B,SACvED,EAAQ3jF,YAAcmoC,EAEtB+6C,EAAIW,aAAaF,EAAST,EAAIY,WAClC,CACJ,CAjGgBC,CAASV,EAAO72F,KAAK27C,OAIlBk7C,EAAMtjF,SACjB,EAKAqjF,UAAUxmD,GAEDnN,EAAMmN,KAEPnN,EAAMmN,GAAOpwC,KAAKw3F,SAASpnD,IAG3BpwC,KAAKs2F,aAAerzD,EAAMmN,GAAKqnD,iBAAmBz3F,KAAK22F,oBACvD32F,KAAKs2F,YAAc,KACnBt2F,KAAK0E,MAAM,aAIfu+B,EAAMmN,GACDt9B,MAAM4jF,IACH12F,KAAKs2F,YAAcI,EAEnB12F,KAAKyS,WAAU,KAEXzS,KAAK0E,MAAM,SAAU1E,KAAKsF,IAAI,GAChC,IAELs3D,OAAOhoF,IAEAorB,KAAKs2F,cACLt2F,KAAKs2F,YAAc,KACnBt2F,KAAK0E,MAAM,oBAGRu+B,EAAMmN,GACbpwC,KAAK0E,MAAM,QAAS9vB,EAAI,GAEpC,EAOA4iH,SAAS5tC,GACL,OA6DZ,SAA0Bia,GAEtB,GAAIA,EAAQ4zB,aAAc,OAAO5zB,EAGjC,IAAI6zB,GAAY,EAGZh0G,EAASmgF,EAAQ/wD,MAChB2N,IACGi3E,GAAY,EACLj3E,KAEVpiC,IAEG,MADAq5G,GAAY,EACNr5G,CAAC,IAKf,OADAqF,EAAO+zG,aAAe,WAA0B,OAAOC,CAAW,EAC3Dh0G,CACX,CAlFmBi0G,CAAiB,IAAIx4F,SAAQ,CAACC,EAAS24C,KAC1C,MAAMmqC,EAAU,IAAIoK,eACpBpK,EAAQniB,KAAK,MAAOnW,GAAK,GAEzBs4B,EAAQ/yE,OAAS,KACb,GAAI+yE,EAAQtf,QAAU,KAAOsf,EAAQtf,OAAS,IAC1C,IAEI,MAAM8jB,EAAS,IAAIkR,UAEnB,IAAIf,EADWnQ,EAAOmR,gBAAgB3V,EAAQmL,aAAc,YACzC6J,qBAAqB,OAAO,GAC3CL,EAEAz3F,EAAQy3F,GAER9+C,EAAO,IAAI1gE,MAAM,iCAIzB,CAFE,MAAOgH,GACL05D,EAAO15D,EACX,MAEA05D,EAAO,IAAI1gE,MAAM,qBACrB,EAGJ6qG,EAAQyL,QAAU51C,EAClBmqC,EAAQqM,MAAM,IAEtB,IAwDR","sources":["webpack://app/./node_modules/@vee-validate/yup/dist/vee-validate-yup.esm.js","webpack://app/./node_modules/date-fns/esm/_lib/requiredArgs/index.js","webpack://app/./node_modules/date-fns/esm/_lib/toInteger/index.js","webpack://app/./node_modules/date-fns/node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://app/./node_modules/date-fns/esm/isDate/index.js","webpack://app/./node_modules/date-fns/esm/toDate/index.js","webpack://app/./node_modules/date-fns/esm/isValid/index.js","webpack://app/./node_modules/date-fns/esm/addMilliseconds/index.js","webpack://app/./node_modules/date-fns/esm/subMilliseconds/index.js","webpack://app/./node_modules/date-fns/esm/_lib/getUTCDayOfYear/index.js","webpack://app/./node_modules/date-fns/esm/_lib/startOfUTCISOWeek/index.js","webpack://app/./node_modules/date-fns/esm/_lib/getUTCISOWeekYear/index.js","webpack://app/./node_modules/date-fns/esm/_lib/startOfUTCISOWeekYear/index.js","webpack://app/./node_modules/date-fns/esm/_lib/getUTCISOWeek/index.js","webpack://app/./node_modules/date-fns/esm/_lib/defaultOptions/index.js","webpack://app/./node_modules/date-fns/esm/_lib/startOfUTCWeek/index.js","webpack://app/./node_modules/date-fns/esm/_lib/getUTCWeekYear/index.js","webpack://app/./node_modules/date-fns/esm/_lib/startOfUTCWeekYear/index.js","webpack://app/./node_modules/date-fns/esm/_lib/getUTCWeek/index.js","webpack://app/./node_modules/date-fns/esm/_lib/addLeadingZeros/index.js","webpack://app/./node_modules/date-fns/esm/_lib/format/lightFormatters/index.js","webpack://app/./node_modules/date-fns/esm/_lib/format/formatters/index.js","webpack://app/./node_modules/date-fns/esm/_lib/format/longFormatters/index.js","webpack://app/./node_modules/date-fns/esm/_lib/getTimezoneOffsetInMilliseconds/index.js","webpack://app/./node_modules/date-fns/esm/_lib/protectedTokens/index.js","webpack://app/./node_modules/date-fns/esm/locale/en-US/_lib/formatDistance/index.js","webpack://app/./node_modules/date-fns/esm/locale/_lib/buildFormatLongFn/index.js","webpack://app/./node_modules/date-fns/esm/locale/en-US/_lib/formatLong/index.js","webpack://app/./node_modules/date-fns/esm/locale/en-US/_lib/formatRelative/index.js","webpack://app/./node_modules/date-fns/esm/locale/_lib/buildLocalizeFn/index.js","webpack://app/./node_modules/date-fns/esm/locale/en-US/_lib/localize/index.js","webpack://app/./node_modules/date-fns/esm/locale/_lib/buildMatchFn/index.js","webpack://app/./node_modules/date-fns/esm/locale/en-US/_lib/match/index.js","webpack://app/./node_modules/date-fns/esm/locale/_lib/buildMatchPatternFn/index.js","webpack://app/./node_modules/date-fns/esm/_lib/defaultLocale/index.js","webpack://app/./node_modules/date-fns/esm/locale/en-US/index.js","webpack://app/./node_modules/date-fns/esm/format/index.js","webpack://app/./node_modules/date-fns/esm/constants/index.js","webpack://app/./node_modules/date-fns/esm/parseISO/index.js","webpack://app/./node_modules/@floating-ui/core/dist/floating-ui.core.esm.js","webpack://app/./node_modules/@floating-ui/dom/dist/floating-ui.dom.esm.js","webpack://app/./node_modules/floating-vue/dist/floating-vue.es.js","webpack://app/./node_modules/form-data/lib/browser.js","webpack://app/./node_modules/humps/humps.js","webpack://app/./node_modules/property-expr/index.js","webpack://app/./node_modules/rut-helpers/dist/rut-helpers.js","webpack://app/./node_modules/tiny-case/index.js","webpack://app/./node_modules/toposort/index.js","webpack://app/./node_modules/vee-validate/dist/vee-validate.esm.js","webpack://app/./node_modules/@intlify/shared/dist/shared.esm-bundler.js","webpack://app/./node_modules/@intlify/message-compiler/dist/message-compiler.esm-bundler.js","webpack://app/./node_modules/@intlify/devtools-if/dist/devtools-if.esm-bundler.js","webpack://app/./node_modules/@intlify/core-base/dist/core-base.esm-bundler.js","webpack://app/./node_modules/@vue/devtools-api/lib/esm/env.js","webpack://app/./node_modules/@vue/devtools-api/lib/esm/time.js","webpack://app/./node_modules/@vue/devtools-api/lib/esm/proxy.js","webpack://app/./node_modules/@vue/devtools-api/lib/esm/const.js","webpack://app/./node_modules/@vue/devtools-api/lib/esm/index.js","webpack://app/./node_modules/@intlify/vue-devtools/dist/vue-devtools.esm-bundler.js","webpack://app/./node_modules/vue-i18n/dist/vue-i18n.esm-bundler.js","webpack://app/./node_modules/vue-loader/dist/exportHelper.js","webpack://app/./node_modules/vue-multiselect/dist/vue-multiselect.esm.js","webpack://app/./node_modules/yup-locales/dist/yup-locales.esm.js","webpack://app/./node_modules/yup/index.esm.js","webpack://app/./node_modules/@headlessui/vue/dist/utils/match.js","webpack://app/./node_modules/@headlessui/vue/dist/utils/render.js","webpack://app/./node_modules/@headlessui/vue/dist/keyboard.js","webpack://app/./node_modules/@headlessui/vue/dist/hooks/use-id.js","webpack://app/./node_modules/@headlessui/vue/dist/internal/hidden.js","webpack://app/./node_modules/@headlessui/vue/dist/utils/dom.js","webpack://app/./node_modules/@headlessui/vue/dist/utils/env.js","webpack://app/./node_modules/@headlessui/vue/dist/utils/owner.js","webpack://app/./node_modules/@headlessui/vue/dist/utils/focus-management.js","webpack://app/./node_modules/@headlessui/vue/dist/hooks/use-tab-direction.js","webpack://app/./node_modules/@headlessui/vue/dist/hooks/use-window-event.js","webpack://app/./node_modules/@headlessui/vue/dist/hooks/use-event-listener.js","webpack://app/./node_modules/@headlessui/vue/dist/utils/micro-task.js","webpack://app/./node_modules/@headlessui/vue/dist/components/focus-trap/focus-trap.js","webpack://app/./node_modules/@headlessui/vue/dist/utils/document-ready.js","webpack://app/./node_modules/@headlessui/vue/dist/hooks/use-inert.js","webpack://app/./node_modules/@headlessui/vue/dist/internal/portal-force-root.js","webpack://app/./node_modules/@headlessui/vue/dist/components/portal/portal.js","webpack://app/./node_modules/@headlessui/vue/dist/internal/stack-context.js","webpack://app/./node_modules/@headlessui/vue/dist/components/description/description.js","webpack://app/./node_modules/@headlessui/vue/dist/internal/open-closed.js","webpack://app/./node_modules/@headlessui/vue/dist/hooks/use-document-event.js","webpack://app/./node_modules/@headlessui/vue/dist/hooks/use-outside-click.js","webpack://app/./node_modules/@headlessui/vue/dist/utils/disposables.js","webpack://app/./node_modules/@headlessui/vue/dist/hooks/document-overflow/adjust-scrollbar-padding.js","webpack://app/./node_modules/@headlessui/vue/dist/utils/platform.js","webpack://app/./node_modules/@headlessui/vue/dist/hooks/document-overflow/handle-ios-locking.js","webpack://app/./node_modules/@headlessui/vue/dist/hooks/document-overflow/overflow-store.js","webpack://app/./node_modules/@headlessui/vue/dist/utils/store.js","webpack://app/./node_modules/@headlessui/vue/dist/hooks/document-overflow/prevent-scroll.js","webpack://app/./node_modules/@headlessui/vue/dist/hooks/document-overflow/use-document-overflow.js","webpack://app/./node_modules/@headlessui/vue/dist/hooks/use-store.js","webpack://app/./node_modules/@headlessui/vue/dist/components/dialog/dialog.js","webpack://app/./node_modules/@tanstack/query-core/build/lib/focusManager.mjs","webpack://app/./node_modules/@tanstack/query-core/build/lib/logger.mjs","webpack://app/./node_modules/@tanstack/query-core/build/lib/mutation.mjs","webpack://app/./node_modules/@tanstack/query-core/build/lib/notifyManager.mjs","webpack://app/./node_modules/@tanstack/query-core/build/lib/onlineManager.mjs","webpack://app/./node_modules/@tanstack/query-core/build/lib/removable.mjs","webpack://app/./node_modules/@tanstack/query-core/build/lib/retryer.mjs","webpack://app/./node_modules/@tanstack/query-core/build/lib/subscribable.mjs","webpack://app/./node_modules/@tanstack/query-core/build/lib/utils.mjs","webpack://app/./node_modules/@tanstack/query-core/build/lib/mutationObserver.mjs","webpack://app/./node_modules/@tanstack/vue-query/build/lib/useMutation.mjs","webpack://app/./node_modules/@tanstack/query-core/build/lib/queryObserver.mjs","webpack://app/./node_modules/@tanstack/vue-query/build/lib/useBaseQuery.mjs","webpack://app/./node_modules/@tanstack/vue-query/build/lib/useQuery.mjs","webpack://app/./node_modules/@tanstack/vue-query/build/lib/useQueryClient.mjs","webpack://app/./node_modules/@tanstack/vue-query/build/lib/utils.mjs","webpack://app/./node_modules/@tanstack/query-core/build/lib/query.mjs","webpack://app/./node_modules/@tanstack/query-core/build/lib/queryCache.mjs","webpack://app/./node_modules/@tanstack/query-core/build/lib/mutationCache.mjs","webpack://app/./node_modules/@tanstack/query-core/build/lib/infiniteQueryBehavior.mjs","webpack://app/./node_modules/@tanstack/query-core/build/lib/queryClient.mjs","webpack://app/./node_modules/@tanstack/vue-query/build/lib/queryCache.mjs","webpack://app/./node_modules/@tanstack/vue-query/build/lib/mutationCache.mjs","webpack://app/./node_modules/@tanstack/vue-query/build/lib/queryClient.mjs","webpack://app/./node_modules/@tanstack/vue-query/build/lib/vueQueryPlugin.mjs","webpack://app/./node_modules/@tanstack/vue-query/node_modules/vue-demi/lib/index.mjs","webpack://app/./node_modules/@vueuse/shared/index.mjs","webpack://app/./node_modules/@vueuse/core/index.mjs","webpack://app/./node_modules/axios/lib/helpers/bind.js","webpack://app/./node_modules/axios/lib/utils.js","webpack://app/./node_modules/axios/lib/core/AxiosError.js","webpack://app/./node_modules/axios/lib/env/classes/FormData.js","webpack://app/./node_modules/axios/lib/helpers/toFormData.js","webpack://app/./node_modules/axios/lib/helpers/AxiosURLSearchParams.js","webpack://app/./node_modules/axios/lib/helpers/buildURL.js","webpack://app/./node_modules/axios/lib/core/InterceptorManager.js","webpack://app/./node_modules/axios/lib/defaults/transitional.js","webpack://app/./node_modules/axios/lib/platform/browser/classes/URLSearchParams.js","webpack://app/./node_modules/axios/lib/platform/browser/classes/FormData.js","webpack://app/./node_modules/axios/lib/platform/browser/index.js","webpack://app/./node_modules/axios/lib/helpers/formDataToJSON.js","webpack://app/./node_modules/axios/lib/defaults/index.js","webpack://app/./node_modules/axios/lib/helpers/toURLEncodedForm.js","webpack://app/./node_modules/axios/lib/helpers/parseHeaders.js","webpack://app/./node_modules/axios/lib/core/AxiosHeaders.js","webpack://app/./node_modules/axios/lib/core/transformData.js","webpack://app/./node_modules/axios/lib/cancel/isCancel.js","webpack://app/./node_modules/axios/lib/cancel/CanceledError.js","webpack://app/./node_modules/axios/lib/helpers/cookies.js","webpack://app/./node_modules/axios/lib/core/buildFullPath.js","webpack://app/./node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack://app/./node_modules/axios/lib/helpers/combineURLs.js","webpack://app/./node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack://app/./node_modules/axios/lib/helpers/speedometer.js","webpack://app/./node_modules/axios/lib/adapters/xhr.js","webpack://app/./node_modules/axios/lib/adapters/adapters.js","webpack://app/./node_modules/axios/lib/helpers/null.js","webpack://app/./node_modules/axios/lib/core/settle.js","webpack://app/./node_modules/axios/lib/helpers/parseProtocol.js","webpack://app/./node_modules/axios/lib/core/dispatchRequest.js","webpack://app/./node_modules/axios/lib/core/mergeConfig.js","webpack://app/./node_modules/axios/lib/env/data.js","webpack://app/./node_modules/axios/lib/helpers/validator.js","webpack://app/./node_modules/axios/lib/core/Axios.js","webpack://app/./node_modules/axios/lib/cancel/CancelToken.js","webpack://app/./node_modules/axios/lib/helpers/HttpStatusCode.js","webpack://app/./node_modules/axios/lib/axios.js","webpack://app/./node_modules/axios/lib/helpers/spread.js","webpack://app/./node_modules/axios/lib/helpers/isAxiosError.js","webpack://app/./node_modules/vue-inline-svg/src/index.js"],"sourcesContent":["/**\n * vee-validate v4.8.6\n * (c) 2023 Abdelrahman Awad\n * @license MIT\n */\nfunction toTypedSchema(yupSchema, opts = { abortEarly: false }) {\n const schema = {\n __type: 'VVTypedSchema',\n async parse(values) {\n var _a;\n try {\n // we spread the options because yup mutates the opts object passed\n const output = await yupSchema.validate(values, Object.assign({}, opts));\n return {\n value: output,\n errors: [],\n };\n }\n catch (err) {\n const error = err;\n // Yup errors have a name prop one them.\n // https://github.com/jquense/yup#validationerrorerrors-string--arraystring-value-any-path-string\n if (error.name !== 'ValidationError') {\n throw err;\n }\n if (!((_a = error.inner) === null || _a === void 0 ? void 0 : _a.length) && error.errors.length) {\n return { errors: [{ path: error.path, errors: error.errors }] };\n }\n const errors = error.inner.reduce((acc, curr) => {\n const path = curr.path || '';\n if (!acc[path]) {\n acc[path] = { errors: [], path };\n }\n acc[path].errors.push(...curr.errors);\n return acc;\n }, {});\n // list of aggregated errors\n return { errors: Object.values(errors) };\n }\n },\n cast(values) {\n try {\n return yupSchema.cast(values);\n }\n catch (_a) {\n return values;\n }\n },\n };\n return schema;\n}\n\nexport { toTypedSchema };\n","export default function requiredArgs(required, args) {\n if (args.length < required) {\n throw new TypeError(required + ' argument' + (required > 1 ? 's' : '') + ' required, but only ' + args.length + ' present');\n }\n}","export default function toInteger(dirtyNumber) {\n if (dirtyNumber === null || dirtyNumber === true || dirtyNumber === false) {\n return NaN;\n }\n var number = Number(dirtyNumber);\n if (isNaN(number)) {\n return number;\n }\n return number < 0 ? Math.ceil(number) : Math.floor(number);\n}","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isDate\n * @category Common Helpers\n * @summary Is the given value a date?\n *\n * @description\n * Returns true if the given value is an instance of Date. The function works for dates transferred across iframes.\n *\n * @param {*} value - the value to check\n * @returns {boolean} true if the given value is a date\n * @throws {TypeError} 1 arguments required\n *\n * @example\n * // For a valid date:\n * const result = isDate(new Date())\n * //=> true\n *\n * @example\n * // For an invalid date:\n * const result = isDate(new Date(NaN))\n * //=> true\n *\n * @example\n * // For some value:\n * const result = isDate('2014-02-31')\n * //=> false\n *\n * @example\n * // For an object:\n * const result = isDate({})\n * //=> false\n */\nexport default function isDate(value) {\n requiredArgs(1, arguments);\n return value instanceof Date || _typeof(value) === 'object' && Object.prototype.toString.call(value) === '[object Date]';\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name toDate\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If the argument is none of the above, the function returns Invalid Date.\n *\n * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.\n *\n * @param {Date|Number} argument - the value to convert\n * @returns {Date} the parsed date in the local time zone\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Clone the date:\n * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert the timestamp to date:\n * const result = toDate(1392098430000)\n * //=> Tue Feb 11 2014 11:30:30\n */\nexport default function toDate(argument) {\n requiredArgs(1, arguments);\n var argStr = Object.prototype.toString.call(argument);\n\n // Clone the date\n if (argument instanceof Date || _typeof(argument) === 'object' && argStr === '[object Date]') {\n // Prevent the date to lose the milliseconds when passed to new Date() in IE10\n return new Date(argument.getTime());\n } else if (typeof argument === 'number' || argStr === '[object Number]') {\n return new Date(argument);\n } else {\n if ((typeof argument === 'string' || argStr === '[object String]') && typeof console !== 'undefined') {\n // eslint-disable-next-line no-console\n console.warn(\"Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#string-arguments\");\n // eslint-disable-next-line no-console\n console.warn(new Error().stack);\n }\n return new Date(NaN);\n }\n}","import isDate from \"../isDate/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isValid\n * @category Common Helpers\n * @summary Is the given date valid?\n *\n * @description\n * Returns false if argument is Invalid Date and true otherwise.\n * Argument is converted to Date using `toDate`. See [toDate]{@link https://date-fns.org/docs/toDate}\n * Invalid Date is a Date, whose time value is NaN.\n *\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * @param {*} date - the date to check\n * @returns {Boolean} the date is valid\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // For the valid date:\n * const result = isValid(new Date(2014, 1, 31))\n * //=> true\n *\n * @example\n * // For the value, convertable into a date:\n * const result = isValid(1393804800000)\n * //=> true\n *\n * @example\n * // For the invalid date:\n * const result = isValid(new Date(''))\n * //=> false\n */\nexport default function isValid(dirtyDate) {\n requiredArgs(1, arguments);\n if (!isDate(dirtyDate) && typeof dirtyDate !== 'number') {\n return false;\n }\n var date = toDate(dirtyDate);\n return !isNaN(Number(date));\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addMilliseconds\n * @category Millisecond Helpers\n * @summary Add the specified number of milliseconds to the given date.\n *\n * @description\n * Add the specified number of milliseconds to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the milliseconds added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 750 milliseconds to 10 July 2014 12:45:30.000:\n * const result = addMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:30.750\n */\nexport default function addMilliseconds(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var timestamp = toDate(dirtyDate).getTime();\n var amount = toInteger(dirtyAmount);\n return new Date(timestamp + amount);\n}","import addMilliseconds from \"../addMilliseconds/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\n/**\n * @name subMilliseconds\n * @category Millisecond Helpers\n * @summary Subtract the specified number of milliseconds from the given date.\n *\n * @description\n * Subtract the specified number of milliseconds from the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the milliseconds subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 750 milliseconds from 10 July 2014 12:45:30.000:\n * const result = subMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:29.250\n */\nexport default function subMilliseconds(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMilliseconds(dirtyDate, -amount);\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_DAY = 86400000;\nexport default function getUTCDayOfYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var timestamp = date.getTime();\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n var startOfYearTimestamp = date.getTime();\n var difference = timestamp - startOfYearTimestamp;\n return Math.floor(difference / MILLISECONDS_IN_DAY) + 1;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nexport default function startOfUTCISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n var weekStartsOn = 1;\n var date = toDate(dirtyDate);\n var day = date.getUTCDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setUTCDate(date.getUTCDate() - diff);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nexport default function getUTCISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getUTCFullYear();\n var fourthOfJanuaryOfNextYear = new Date(0);\n fourthOfJanuaryOfNextYear.setUTCFullYear(year + 1, 0, 4);\n fourthOfJanuaryOfNextYear.setUTCHours(0, 0, 0, 0);\n var startOfNextYear = startOfUTCISOWeek(fourthOfJanuaryOfNextYear);\n var fourthOfJanuaryOfThisYear = new Date(0);\n fourthOfJanuaryOfThisYear.setUTCFullYear(year, 0, 4);\n fourthOfJanuaryOfThisYear.setUTCHours(0, 0, 0, 0);\n var startOfThisYear = startOfUTCISOWeek(fourthOfJanuaryOfThisYear);\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}","import getUTCISOWeekYear from \"../getUTCISOWeekYear/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nexport default function startOfUTCISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var year = getUTCISOWeekYear(dirtyDate);\n var fourthOfJanuary = new Date(0);\n fourthOfJanuary.setUTCFullYear(year, 0, 4);\n fourthOfJanuary.setUTCHours(0, 0, 0, 0);\n var date = startOfUTCISOWeek(fourthOfJanuary);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nimport startOfUTCISOWeekYear from \"../startOfUTCISOWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_WEEK = 604800000;\nexport default function getUTCISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfUTCISOWeek(date).getTime() - startOfUTCISOWeekYear(date).getTime();\n\n // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}","var defaultOptions = {};\nexport function getDefaultOptions() {\n return defaultOptions;\n}\nexport function setDefaultOptions(newOptions) {\n defaultOptions = newOptions;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nimport { getDefaultOptions } from \"../defaultOptions/index.js\";\nexport default function startOfUTCWeek(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$weekStartsOn, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n requiredArgs(1, arguments);\n var defaultOptions = getDefaultOptions();\n var weekStartsOn = toInteger((_ref = (_ref2 = (_ref3 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.weekStartsOn) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.weekStartsOn) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.weekStartsOn) !== null && _ref !== void 0 ? _ref : 0);\n\n // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n var date = toDate(dirtyDate);\n var day = date.getUTCDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setUTCDate(date.getUTCDate() - diff);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nimport { getDefaultOptions } from \"../defaultOptions/index.js\";\nexport default function getUTCWeekYear(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$firstWeekCon, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getUTCFullYear();\n var defaultOptions = getDefaultOptions();\n var firstWeekContainsDate = toInteger((_ref = (_ref2 = (_ref3 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref !== void 0 ? _ref : 1);\n\n // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n var firstWeekOfNextYear = new Date(0);\n firstWeekOfNextYear.setUTCFullYear(year + 1, 0, firstWeekContainsDate);\n firstWeekOfNextYear.setUTCHours(0, 0, 0, 0);\n var startOfNextYear = startOfUTCWeek(firstWeekOfNextYear, options);\n var firstWeekOfThisYear = new Date(0);\n firstWeekOfThisYear.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeekOfThisYear.setUTCHours(0, 0, 0, 0);\n var startOfThisYear = startOfUTCWeek(firstWeekOfThisYear, options);\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}","import getUTCWeekYear from \"../getUTCWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nimport { getDefaultOptions } from \"../defaultOptions/index.js\";\nexport default function startOfUTCWeekYear(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$firstWeekCon, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n requiredArgs(1, arguments);\n var defaultOptions = getDefaultOptions();\n var firstWeekContainsDate = toInteger((_ref = (_ref2 = (_ref3 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref !== void 0 ? _ref : 1);\n var year = getUTCWeekYear(dirtyDate, options);\n var firstWeek = new Date(0);\n firstWeek.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeek.setUTCHours(0, 0, 0, 0);\n var date = startOfUTCWeek(firstWeek, options);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport startOfUTCWeekYear from \"../startOfUTCWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_WEEK = 604800000;\nexport default function getUTCWeek(dirtyDate, options) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfUTCWeek(date, options).getTime() - startOfUTCWeekYear(date, options).getTime();\n\n // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}","export default function addLeadingZeros(number, targetLength) {\n var sign = number < 0 ? '-' : '';\n var output = Math.abs(number).toString();\n while (output.length < targetLength) {\n output = '0' + output;\n }\n return sign + output;\n}","import addLeadingZeros from \"../../addLeadingZeros/index.js\";\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | |\n * | d | Day of month | D | |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | m | Minute | M | Month |\n * | s | Second | S | Fraction of second |\n * | y | Year (abs) | Y | |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n */\nvar formatters = {\n // Year\n y: function y(date, token) {\n // From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_tokens\n // | Year | y | yy | yyy | yyyy | yyyyy |\n // |----------|-------|----|-------|-------|-------|\n // | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n // | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n // | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n // | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n // | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\n\n var signedYear = date.getUTCFullYear();\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n var year = signedYear > 0 ? signedYear : 1 - signedYear;\n return addLeadingZeros(token === 'yy' ? year % 100 : year, token.length);\n },\n // Month\n M: function M(date, token) {\n var month = date.getUTCMonth();\n return token === 'M' ? String(month + 1) : addLeadingZeros(month + 1, 2);\n },\n // Day of the month\n d: function d(date, token) {\n return addLeadingZeros(date.getUTCDate(), token.length);\n },\n // AM or PM\n a: function a(date, token) {\n var dayPeriodEnumValue = date.getUTCHours() / 12 >= 1 ? 'pm' : 'am';\n switch (token) {\n case 'a':\n case 'aa':\n return dayPeriodEnumValue.toUpperCase();\n case 'aaa':\n return dayPeriodEnumValue;\n case 'aaaaa':\n return dayPeriodEnumValue[0];\n case 'aaaa':\n default:\n return dayPeriodEnumValue === 'am' ? 'a.m.' : 'p.m.';\n }\n },\n // Hour [1-12]\n h: function h(date, token) {\n return addLeadingZeros(date.getUTCHours() % 12 || 12, token.length);\n },\n // Hour [0-23]\n H: function H(date, token) {\n return addLeadingZeros(date.getUTCHours(), token.length);\n },\n // Minute\n m: function m(date, token) {\n return addLeadingZeros(date.getUTCMinutes(), token.length);\n },\n // Second\n s: function s(date, token) {\n return addLeadingZeros(date.getUTCSeconds(), token.length);\n },\n // Fraction of second\n S: function S(date, token) {\n var numberOfDigits = token.length;\n var milliseconds = date.getUTCMilliseconds();\n var fractionalSeconds = Math.floor(milliseconds * Math.pow(10, numberOfDigits - 3));\n return addLeadingZeros(fractionalSeconds, token.length);\n }\n};\nexport default formatters;","import getUTCDayOfYear from \"../../../_lib/getUTCDayOfYear/index.js\";\nimport getUTCISOWeek from \"../../../_lib/getUTCISOWeek/index.js\";\nimport getUTCISOWeekYear from \"../../../_lib/getUTCISOWeekYear/index.js\";\nimport getUTCWeek from \"../../../_lib/getUTCWeek/index.js\";\nimport getUTCWeekYear from \"../../../_lib/getUTCWeekYear/index.js\";\nimport addLeadingZeros from \"../../addLeadingZeros/index.js\";\nimport lightFormatters from \"../lightFormatters/index.js\";\nvar dayPeriodEnum = {\n am: 'am',\n pm: 'pm',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n};\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O | Timezone (GMT) |\n * | p! | Long localized time | P! | Long localized date |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `format` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n * - `P` is long localized date format\n * - `p` is long localized time format\n */\n\nvar formatters = {\n // Era\n G: function G(date, token, localize) {\n var era = date.getUTCFullYear() > 0 ? 1 : 0;\n switch (token) {\n // AD, BC\n case 'G':\n case 'GG':\n case 'GGG':\n return localize.era(era, {\n width: 'abbreviated'\n });\n // A, B\n case 'GGGGG':\n return localize.era(era, {\n width: 'narrow'\n });\n // Anno Domini, Before Christ\n case 'GGGG':\n default:\n return localize.era(era, {\n width: 'wide'\n });\n }\n },\n // Year\n y: function y(date, token, localize) {\n // Ordinal number\n if (token === 'yo') {\n var signedYear = date.getUTCFullYear();\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n var year = signedYear > 0 ? signedYear : 1 - signedYear;\n return localize.ordinalNumber(year, {\n unit: 'year'\n });\n }\n return lightFormatters.y(date, token);\n },\n // Local week-numbering year\n Y: function Y(date, token, localize, options) {\n var signedWeekYear = getUTCWeekYear(date, options);\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n var weekYear = signedWeekYear > 0 ? signedWeekYear : 1 - signedWeekYear;\n\n // Two digit year\n if (token === 'YY') {\n var twoDigitYear = weekYear % 100;\n return addLeadingZeros(twoDigitYear, 2);\n }\n\n // Ordinal number\n if (token === 'Yo') {\n return localize.ordinalNumber(weekYear, {\n unit: 'year'\n });\n }\n\n // Padding\n return addLeadingZeros(weekYear, token.length);\n },\n // ISO week-numbering year\n R: function R(date, token) {\n var isoWeekYear = getUTCISOWeekYear(date);\n\n // Padding\n return addLeadingZeros(isoWeekYear, token.length);\n },\n // Extended year. This is a single number designating the year of this calendar system.\n // The main difference between `y` and `u` localizers are B.C. years:\n // | Year | `y` | `u` |\n // |------|-----|-----|\n // | AC 1 | 1 | 1 |\n // | BC 1 | 1 | 0 |\n // | BC 2 | 2 | -1 |\n // Also `yy` always returns the last two digits of a year,\n // while `uu` pads single digit years to 2 characters and returns other years unchanged.\n u: function u(date, token) {\n var year = date.getUTCFullYear();\n return addLeadingZeros(year, token.length);\n },\n // Quarter\n Q: function Q(date, token, localize) {\n var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);\n switch (token) {\n // 1, 2, 3, 4\n case 'Q':\n return String(quarter);\n // 01, 02, 03, 04\n case 'QQ':\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n case 'Qo':\n return localize.ordinalNumber(quarter, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n case 'QQQ':\n return localize.quarter(quarter, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case 'QQQQQ':\n return localize.quarter(quarter, {\n width: 'narrow',\n context: 'formatting'\n });\n // 1st quarter, 2nd quarter, ...\n case 'QQQQ':\n default:\n return localize.quarter(quarter, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone quarter\n q: function q(date, token, localize) {\n var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);\n switch (token) {\n // 1, 2, 3, 4\n case 'q':\n return String(quarter);\n // 01, 02, 03, 04\n case 'qq':\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n case 'qo':\n return localize.ordinalNumber(quarter, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n case 'qqq':\n return localize.quarter(quarter, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case 'qqqqq':\n return localize.quarter(quarter, {\n width: 'narrow',\n context: 'standalone'\n });\n // 1st quarter, 2nd quarter, ...\n case 'qqqq':\n default:\n return localize.quarter(quarter, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // Month\n M: function M(date, token, localize) {\n var month = date.getUTCMonth();\n switch (token) {\n case 'M':\n case 'MM':\n return lightFormatters.M(date, token);\n // 1st, 2nd, ..., 12th\n case 'Mo':\n return localize.ordinalNumber(month + 1, {\n unit: 'month'\n });\n // Jan, Feb, ..., Dec\n case 'MMM':\n return localize.month(month, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // J, F, ..., D\n case 'MMMMM':\n return localize.month(month, {\n width: 'narrow',\n context: 'formatting'\n });\n // January, February, ..., December\n case 'MMMM':\n default:\n return localize.month(month, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone month\n L: function L(date, token, localize) {\n var month = date.getUTCMonth();\n switch (token) {\n // 1, 2, ..., 12\n case 'L':\n return String(month + 1);\n // 01, 02, ..., 12\n case 'LL':\n return addLeadingZeros(month + 1, 2);\n // 1st, 2nd, ..., 12th\n case 'Lo':\n return localize.ordinalNumber(month + 1, {\n unit: 'month'\n });\n // Jan, Feb, ..., Dec\n case 'LLL':\n return localize.month(month, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // J, F, ..., D\n case 'LLLLL':\n return localize.month(month, {\n width: 'narrow',\n context: 'standalone'\n });\n // January, February, ..., December\n case 'LLLL':\n default:\n return localize.month(month, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // Local week of year\n w: function w(date, token, localize, options) {\n var week = getUTCWeek(date, options);\n if (token === 'wo') {\n return localize.ordinalNumber(week, {\n unit: 'week'\n });\n }\n return addLeadingZeros(week, token.length);\n },\n // ISO week of year\n I: function I(date, token, localize) {\n var isoWeek = getUTCISOWeek(date);\n if (token === 'Io') {\n return localize.ordinalNumber(isoWeek, {\n unit: 'week'\n });\n }\n return addLeadingZeros(isoWeek, token.length);\n },\n // Day of the month\n d: function d(date, token, localize) {\n if (token === 'do') {\n return localize.ordinalNumber(date.getUTCDate(), {\n unit: 'date'\n });\n }\n return lightFormatters.d(date, token);\n },\n // Day of year\n D: function D(date, token, localize) {\n var dayOfYear = getUTCDayOfYear(date);\n if (token === 'Do') {\n return localize.ordinalNumber(dayOfYear, {\n unit: 'dayOfYear'\n });\n }\n return addLeadingZeros(dayOfYear, token.length);\n },\n // Day of week\n E: function E(date, token, localize) {\n var dayOfWeek = date.getUTCDay();\n switch (token) {\n // Tue\n case 'E':\n case 'EE':\n case 'EEE':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n case 'EEEEE':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n case 'EEEEEE':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n case 'EEEE':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Local day of week\n e: function e(date, token, localize, options) {\n var dayOfWeek = date.getUTCDay();\n var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n switch (token) {\n // Numerical value (Nth day of week with current locale or weekStartsOn)\n case 'e':\n return String(localDayOfWeek);\n // Padded numerical value\n case 'ee':\n return addLeadingZeros(localDayOfWeek, 2);\n // 1st, 2nd, ..., 7th\n case 'eo':\n return localize.ordinalNumber(localDayOfWeek, {\n unit: 'day'\n });\n case 'eee':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n case 'eeeee':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n case 'eeeeee':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n case 'eeee':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone local day of week\n c: function c(date, token, localize, options) {\n var dayOfWeek = date.getUTCDay();\n var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n switch (token) {\n // Numerical value (same as in `e`)\n case 'c':\n return String(localDayOfWeek);\n // Padded numerical value\n case 'cc':\n return addLeadingZeros(localDayOfWeek, token.length);\n // 1st, 2nd, ..., 7th\n case 'co':\n return localize.ordinalNumber(localDayOfWeek, {\n unit: 'day'\n });\n case 'ccc':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // T\n case 'ccccc':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'standalone'\n });\n // Tu\n case 'cccccc':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'standalone'\n });\n // Tuesday\n case 'cccc':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // ISO day of week\n i: function i(date, token, localize) {\n var dayOfWeek = date.getUTCDay();\n var isoDayOfWeek = dayOfWeek === 0 ? 7 : dayOfWeek;\n switch (token) {\n // 2\n case 'i':\n return String(isoDayOfWeek);\n // 02\n case 'ii':\n return addLeadingZeros(isoDayOfWeek, token.length);\n // 2nd\n case 'io':\n return localize.ordinalNumber(isoDayOfWeek, {\n unit: 'day'\n });\n // Tue\n case 'iii':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n case 'iiiii':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n case 'iiiiii':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n case 'iiii':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // AM or PM\n a: function a(date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';\n switch (token) {\n case 'a':\n case 'aa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n case 'aaa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n }).toLowerCase();\n case 'aaaaa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'aaaa':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // AM, PM, midnight, noon\n b: function b(date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue;\n if (hours === 12) {\n dayPeriodEnumValue = dayPeriodEnum.noon;\n } else if (hours === 0) {\n dayPeriodEnumValue = dayPeriodEnum.midnight;\n } else {\n dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';\n }\n switch (token) {\n case 'b':\n case 'bb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n case 'bbb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n }).toLowerCase();\n case 'bbbbb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'bbbb':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // in the morning, in the afternoon, in the evening, at night\n B: function B(date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue;\n if (hours >= 17) {\n dayPeriodEnumValue = dayPeriodEnum.evening;\n } else if (hours >= 12) {\n dayPeriodEnumValue = dayPeriodEnum.afternoon;\n } else if (hours >= 4) {\n dayPeriodEnumValue = dayPeriodEnum.morning;\n } else {\n dayPeriodEnumValue = dayPeriodEnum.night;\n }\n switch (token) {\n case 'B':\n case 'BB':\n case 'BBB':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n case 'BBBBB':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'BBBB':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Hour [1-12]\n h: function h(date, token, localize) {\n if (token === 'ho') {\n var hours = date.getUTCHours() % 12;\n if (hours === 0) hours = 12;\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n return lightFormatters.h(date, token);\n },\n // Hour [0-23]\n H: function H(date, token, localize) {\n if (token === 'Ho') {\n return localize.ordinalNumber(date.getUTCHours(), {\n unit: 'hour'\n });\n }\n return lightFormatters.H(date, token);\n },\n // Hour [0-11]\n K: function K(date, token, localize) {\n var hours = date.getUTCHours() % 12;\n if (token === 'Ko') {\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n return addLeadingZeros(hours, token.length);\n },\n // Hour [1-24]\n k: function k(date, token, localize) {\n var hours = date.getUTCHours();\n if (hours === 0) hours = 24;\n if (token === 'ko') {\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n return addLeadingZeros(hours, token.length);\n },\n // Minute\n m: function m(date, token, localize) {\n if (token === 'mo') {\n return localize.ordinalNumber(date.getUTCMinutes(), {\n unit: 'minute'\n });\n }\n return lightFormatters.m(date, token);\n },\n // Second\n s: function s(date, token, localize) {\n if (token === 'so') {\n return localize.ordinalNumber(date.getUTCSeconds(), {\n unit: 'second'\n });\n }\n return lightFormatters.s(date, token);\n },\n // Fraction of second\n S: function S(date, token) {\n return lightFormatters.S(date, token);\n },\n // Timezone (ISO-8601. If offset is 0, output is always `'Z'`)\n X: function X(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n if (timezoneOffset === 0) {\n return 'Z';\n }\n switch (token) {\n // Hours and optional minutes\n case 'X':\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XX`\n case 'XXXX':\n case 'XX':\n // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XXX`\n case 'XXXXX':\n case 'XXX': // Hours and minutes with `:` delimiter\n default:\n return formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (ISO-8601. If offset is 0, output is `'+00:00'` or equivalent)\n x: function x(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n switch (token) {\n // Hours and optional minutes\n case 'x':\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xx`\n case 'xxxx':\n case 'xx':\n // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xxx`\n case 'xxxxx':\n case 'xxx': // Hours and minutes with `:` delimiter\n default:\n return formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (GMT)\n O: function O(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n switch (token) {\n // Short\n case 'O':\n case 'OO':\n case 'OOO':\n return 'GMT' + formatTimezoneShort(timezoneOffset, ':');\n // Long\n case 'OOOO':\n default:\n return 'GMT' + formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (specific non-location)\n z: function z(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n switch (token) {\n // Short\n case 'z':\n case 'zz':\n case 'zzz':\n return 'GMT' + formatTimezoneShort(timezoneOffset, ':');\n // Long\n case 'zzzz':\n default:\n return 'GMT' + formatTimezone(timezoneOffset, ':');\n }\n },\n // Seconds timestamp\n t: function t(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timestamp = Math.floor(originalDate.getTime() / 1000);\n return addLeadingZeros(timestamp, token.length);\n },\n // Milliseconds timestamp\n T: function T(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timestamp = originalDate.getTime();\n return addLeadingZeros(timestamp, token.length);\n }\n};\nfunction formatTimezoneShort(offset, dirtyDelimiter) {\n var sign = offset > 0 ? '-' : '+';\n var absOffset = Math.abs(offset);\n var hours = Math.floor(absOffset / 60);\n var minutes = absOffset % 60;\n if (minutes === 0) {\n return sign + String(hours);\n }\n var delimiter = dirtyDelimiter || '';\n return sign + String(hours) + delimiter + addLeadingZeros(minutes, 2);\n}\nfunction formatTimezoneWithOptionalMinutes(offset, dirtyDelimiter) {\n if (offset % 60 === 0) {\n var sign = offset > 0 ? '-' : '+';\n return sign + addLeadingZeros(Math.abs(offset) / 60, 2);\n }\n return formatTimezone(offset, dirtyDelimiter);\n}\nfunction formatTimezone(offset, dirtyDelimiter) {\n var delimiter = dirtyDelimiter || '';\n var sign = offset > 0 ? '-' : '+';\n var absOffset = Math.abs(offset);\n var hours = addLeadingZeros(Math.floor(absOffset / 60), 2);\n var minutes = addLeadingZeros(absOffset % 60, 2);\n return sign + hours + delimiter + minutes;\n}\nexport default formatters;","var dateLongFormatter = function dateLongFormatter(pattern, formatLong) {\n switch (pattern) {\n case 'P':\n return formatLong.date({\n width: 'short'\n });\n case 'PP':\n return formatLong.date({\n width: 'medium'\n });\n case 'PPP':\n return formatLong.date({\n width: 'long'\n });\n case 'PPPP':\n default:\n return formatLong.date({\n width: 'full'\n });\n }\n};\nvar timeLongFormatter = function timeLongFormatter(pattern, formatLong) {\n switch (pattern) {\n case 'p':\n return formatLong.time({\n width: 'short'\n });\n case 'pp':\n return formatLong.time({\n width: 'medium'\n });\n case 'ppp':\n return formatLong.time({\n width: 'long'\n });\n case 'pppp':\n default:\n return formatLong.time({\n width: 'full'\n });\n }\n};\nvar dateTimeLongFormatter = function dateTimeLongFormatter(pattern, formatLong) {\n var matchResult = pattern.match(/(P+)(p+)?/) || [];\n var datePattern = matchResult[1];\n var timePattern = matchResult[2];\n if (!timePattern) {\n return dateLongFormatter(pattern, formatLong);\n }\n var dateTimeFormat;\n switch (datePattern) {\n case 'P':\n dateTimeFormat = formatLong.dateTime({\n width: 'short'\n });\n break;\n case 'PP':\n dateTimeFormat = formatLong.dateTime({\n width: 'medium'\n });\n break;\n case 'PPP':\n dateTimeFormat = formatLong.dateTime({\n width: 'long'\n });\n break;\n case 'PPPP':\n default:\n dateTimeFormat = formatLong.dateTime({\n width: 'full'\n });\n break;\n }\n return dateTimeFormat.replace('{{date}}', dateLongFormatter(datePattern, formatLong)).replace('{{time}}', timeLongFormatter(timePattern, formatLong));\n};\nvar longFormatters = {\n p: timeLongFormatter,\n P: dateTimeLongFormatter\n};\nexport default longFormatters;","/**\n * Google Chrome as of 67.0.3396.87 introduced timezones with offset that includes seconds.\n * They usually appear for dates that denote time before the timezones were introduced\n * (e.g. for 'Europe/Prague' timezone the offset is GMT+00:57:44 before 1 October 1891\n * and GMT+01:00:00 after that date)\n *\n * Date#getTimezoneOffset returns the offset in minutes and would return 57 for the example above,\n * which would lead to incorrect calculations.\n *\n * This function returns the timezone offset in milliseconds that takes seconds in account.\n */\nexport default function getTimezoneOffsetInMilliseconds(date) {\n var utcDate = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds()));\n utcDate.setUTCFullYear(date.getFullYear());\n return date.getTime() - utcDate.getTime();\n}","var protectedDayOfYearTokens = ['D', 'DD'];\nvar protectedWeekYearTokens = ['YY', 'YYYY'];\nexport function isProtectedDayOfYearToken(token) {\n return protectedDayOfYearTokens.indexOf(token) !== -1;\n}\nexport function isProtectedWeekYearToken(token) {\n return protectedWeekYearTokens.indexOf(token) !== -1;\n}\nexport function throwProtectedError(token, format, input) {\n if (token === 'YYYY') {\n throw new RangeError(\"Use `yyyy` instead of `YYYY` (in `\".concat(format, \"`) for formatting years to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n } else if (token === 'YY') {\n throw new RangeError(\"Use `yy` instead of `YY` (in `\".concat(format, \"`) for formatting years to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n } else if (token === 'D') {\n throw new RangeError(\"Use `d` instead of `D` (in `\".concat(format, \"`) for formatting days of the month to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n } else if (token === 'DD') {\n throw new RangeError(\"Use `dd` instead of `DD` (in `\".concat(format, \"`) for formatting days of the month to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n }\n}","var formatDistanceLocale = {\n lessThanXSeconds: {\n one: 'less than a second',\n other: 'less than {{count}} seconds'\n },\n xSeconds: {\n one: '1 second',\n other: '{{count}} seconds'\n },\n halfAMinute: 'half a minute',\n lessThanXMinutes: {\n one: 'less than a minute',\n other: 'less than {{count}} minutes'\n },\n xMinutes: {\n one: '1 minute',\n other: '{{count}} minutes'\n },\n aboutXHours: {\n one: 'about 1 hour',\n other: 'about {{count}} hours'\n },\n xHours: {\n one: '1 hour',\n other: '{{count}} hours'\n },\n xDays: {\n one: '1 day',\n other: '{{count}} days'\n },\n aboutXWeeks: {\n one: 'about 1 week',\n other: 'about {{count}} weeks'\n },\n xWeeks: {\n one: '1 week',\n other: '{{count}} weeks'\n },\n aboutXMonths: {\n one: 'about 1 month',\n other: 'about {{count}} months'\n },\n xMonths: {\n one: '1 month',\n other: '{{count}} months'\n },\n aboutXYears: {\n one: 'about 1 year',\n other: 'about {{count}} years'\n },\n xYears: {\n one: '1 year',\n other: '{{count}} years'\n },\n overXYears: {\n one: 'over 1 year',\n other: 'over {{count}} years'\n },\n almostXYears: {\n one: 'almost 1 year',\n other: 'almost {{count}} years'\n }\n};\nvar formatDistance = function formatDistance(token, count, options) {\n var result;\n var tokenValue = formatDistanceLocale[token];\n if (typeof tokenValue === 'string') {\n result = tokenValue;\n } else if (count === 1) {\n result = tokenValue.one;\n } else {\n result = tokenValue.other.replace('{{count}}', count.toString());\n }\n if (options !== null && options !== void 0 && options.addSuffix) {\n if (options.comparison && options.comparison > 0) {\n return 'in ' + result;\n } else {\n return result + ' ago';\n }\n }\n return result;\n};\nexport default formatDistance;","export default function buildFormatLongFn(args) {\n return function () {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n // TODO: Remove String()\n var width = options.width ? String(options.width) : args.defaultWidth;\n var format = args.formats[width] || args.formats[args.defaultWidth];\n return format;\n };\n}","import buildFormatLongFn from \"../../../_lib/buildFormatLongFn/index.js\";\nvar dateFormats = {\n full: 'EEEE, MMMM do, y',\n long: 'MMMM do, y',\n medium: 'MMM d, y',\n short: 'MM/dd/yyyy'\n};\nvar timeFormats = {\n full: 'h:mm:ss a zzzz',\n long: 'h:mm:ss a z',\n medium: 'h:mm:ss a',\n short: 'h:mm a'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'at' {{time}}\",\n long: \"{{date}} 'at' {{time}}\",\n medium: '{{date}}, {{time}}',\n short: '{{date}}, {{time}}'\n};\nvar formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nexport default formatLong;","var formatRelativeLocale = {\n lastWeek: \"'last' eeee 'at' p\",\n yesterday: \"'yesterday at' p\",\n today: \"'today at' p\",\n tomorrow: \"'tomorrow at' p\",\n nextWeek: \"eeee 'at' p\",\n other: 'P'\n};\nvar formatRelative = function formatRelative(token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n};\nexport default formatRelative;","export default function buildLocalizeFn(args) {\n return function (dirtyIndex, options) {\n var context = options !== null && options !== void 0 && options.context ? String(options.context) : 'standalone';\n var valuesArray;\n if (context === 'formatting' && args.formattingValues) {\n var defaultWidth = args.defaultFormattingWidth || args.defaultWidth;\n var width = options !== null && options !== void 0 && options.width ? String(options.width) : defaultWidth;\n valuesArray = args.formattingValues[width] || args.formattingValues[defaultWidth];\n } else {\n var _defaultWidth = args.defaultWidth;\n var _width = options !== null && options !== void 0 && options.width ? String(options.width) : args.defaultWidth;\n valuesArray = args.values[_width] || args.values[_defaultWidth];\n }\n var index = args.argumentCallback ? args.argumentCallback(dirtyIndex) : dirtyIndex;\n // @ts-ignore: For some reason TypeScript just don't want to match it, no matter how hard we try. I challenge you to try to remove it!\n return valuesArray[index];\n };\n}","import buildLocalizeFn from \"../../../_lib/buildLocalizeFn/index.js\";\nvar eraValues = {\n narrow: ['B', 'A'],\n abbreviated: ['BC', 'AD'],\n wide: ['Before Christ', 'Anno Domini']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['Q1', 'Q2', 'Q3', 'Q4'],\n wide: ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter']\n};\n\n// Note: in English, the names of days of the week and months are capitalized.\n// If you are making a new locale based on this one, check if the same is true for the language you're working on.\n// Generally, formatted dates should look like they are in the middle of a sentence,\n// e.g. in Spanish language the weekdays and months should be in the lowercase.\nvar monthValues = {\n narrow: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'],\n abbreviated: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n wide: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']\n};\nvar dayValues = {\n narrow: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],\n short: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],\n abbreviated: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n wide: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n }\n};\nvar ordinalNumber = function ordinalNumber(dirtyNumber, _options) {\n var number = Number(dirtyNumber);\n\n // If ordinal numbers depend on context, for example,\n // if they are different for different grammatical genders,\n // use `options.unit`.\n //\n // `unit` can be 'year', 'quarter', 'month', 'week', 'date', 'dayOfYear',\n // 'day', 'hour', 'minute', 'second'.\n\n var rem100 = number % 100;\n if (rem100 > 20 || rem100 < 10) {\n switch (rem100 % 10) {\n case 1:\n return number + 'st';\n case 2:\n return number + 'nd';\n case 3:\n return number + 'rd';\n }\n }\n return number + 'th';\n};\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function argumentCallback(quarter) {\n return quarter - 1;\n }\n }),\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nexport default localize;","export default function buildMatchFn(args) {\n return function (string) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var width = options.width;\n var matchPattern = width && args.matchPatterns[width] || args.matchPatterns[args.defaultMatchWidth];\n var matchResult = string.match(matchPattern);\n if (!matchResult) {\n return null;\n }\n var matchedString = matchResult[0];\n var parsePatterns = width && args.parsePatterns[width] || args.parsePatterns[args.defaultParseWidth];\n var key = Array.isArray(parsePatterns) ? findIndex(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n }) : findKey(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n });\n var value;\n value = args.valueCallback ? args.valueCallback(key) : key;\n value = options.valueCallback ? options.valueCallback(value) : value;\n var rest = string.slice(matchedString.length);\n return {\n value: value,\n rest: rest\n };\n };\n}\nfunction findKey(object, predicate) {\n for (var key in object) {\n if (object.hasOwnProperty(key) && predicate(object[key])) {\n return key;\n }\n }\n return undefined;\n}\nfunction findIndex(array, predicate) {\n for (var key = 0; key < array.length; key++) {\n if (predicate(array[key])) {\n return key;\n }\n }\n return undefined;\n}","import buildMatchFn from \"../../../_lib/buildMatchFn/index.js\";\nimport buildMatchPatternFn from \"../../../_lib/buildMatchPatternFn/index.js\";\nvar matchOrdinalNumberPattern = /^(\\d+)(th|st|nd|rd)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(b|a)/i,\n abbreviated: /^(b\\.?\\s?c\\.?|b\\.?\\s?c\\.?\\s?e\\.?|a\\.?\\s?d\\.?|c\\.?\\s?e\\.?)/i,\n wide: /^(before christ|before common era|anno domini|common era)/i\n};\nvar parseEraPatterns = {\n any: [/^b/i, /^(a|c)/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234](th|st|nd|rd)? quarter/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,\n wide: /^(january|february|march|april|may|june|july|august|september|october|november|december)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^j/i, /^f/i, /^m/i, /^a/i, /^m/i, /^j/i, /^j/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i],\n any: [/^ja/i, /^f/i, /^mar/i, /^ap/i, /^may/i, /^jun/i, /^jul/i, /^au/i, /^s/i, /^o/i, /^n/i, /^d/i]\n};\nvar matchDayPatterns = {\n narrow: /^[smtwf]/i,\n short: /^(su|mo|tu|we|th|fr|sa)/i,\n abbreviated: /^(sun|mon|tue|wed|thu|fri|sat)/i,\n wide: /^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i\n};\nvar parseDayPatterns = {\n narrow: [/^s/i, /^m/i, /^t/i, /^w/i, /^t/i, /^f/i, /^s/i],\n any: [/^su/i, /^m/i, /^tu/i, /^w/i, /^th/i, /^f/i, /^sa/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,\n any: /^([ap]\\.?\\s?m\\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^mi/i,\n noon: /^no/i,\n morning: /morning/i,\n afternoon: /afternoon/i,\n evening: /evening/i,\n night: /night/i\n }\n};\nvar match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function valueCallback(value) {\n return parseInt(value, 10);\n }\n }),\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function valueCallback(index) {\n return index + 1;\n }\n }),\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nexport default match;","export default function buildMatchPatternFn(args) {\n return function (string) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var matchResult = string.match(args.matchPattern);\n if (!matchResult) return null;\n var matchedString = matchResult[0];\n var parseResult = string.match(args.parsePattern);\n if (!parseResult) return null;\n var value = args.valueCallback ? args.valueCallback(parseResult[0]) : parseResult[0];\n value = options.valueCallback ? options.valueCallback(value) : value;\n var rest = string.slice(matchedString.length);\n return {\n value: value,\n rest: rest\n };\n };\n}","import defaultLocale from \"../../locale/en-US/index.js\";\nexport default defaultLocale;","import formatDistance from \"./_lib/formatDistance/index.js\";\nimport formatLong from \"./_lib/formatLong/index.js\";\nimport formatRelative from \"./_lib/formatRelative/index.js\";\nimport localize from \"./_lib/localize/index.js\";\nimport match from \"./_lib/match/index.js\";\n/**\n * @type {Locale}\n * @category Locales\n * @summary English locale (United States).\n * @language English\n * @iso-639-2 eng\n * @author Sasha Koss [@kossnocorp]{@link https://github.com/kossnocorp}\n * @author Lesha Koss [@leshakoss]{@link https://github.com/leshakoss}\n */\nvar locale = {\n code: 'en-US',\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 0 /* Sunday */,\n firstWeekContainsDate: 1\n }\n};\nexport default locale;","import isValid from \"../isValid/index.js\";\nimport subMilliseconds from \"../subMilliseconds/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport formatters from \"../_lib/format/formatters/index.js\";\nimport longFormatters from \"../_lib/format/longFormatters/index.js\";\nimport getTimezoneOffsetInMilliseconds from \"../_lib/getTimezoneOffsetInMilliseconds/index.js\";\nimport { isProtectedDayOfYearToken, isProtectedWeekYearToken, throwProtectedError } from \"../_lib/protectedTokens/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport { getDefaultOptions } from \"../_lib/defaultOptions/index.js\";\nimport defaultLocale from \"../_lib/defaultLocale/index.js\"; // This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\nvar formattingTokensRegExp = /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g;\n\n// This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\nvar longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\nvar escapedStringRegExp = /^'([^]*?)'?$/;\nvar doubleQuoteRegExp = /''/g;\nvar unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n\n/**\n * @name format\n * @category Common Helpers\n * @summary Format the date.\n *\n * @description\n * Return the formatted date string in the given format. The result may vary by locale.\n *\n * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * The characters wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n * (see the last example)\n *\n * Format of the string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 7 below the table).\n *\n * Accepted patterns:\n * | Unit | Pattern | Result examples | Notes |\n * |---------------------------------|---------|-----------------------------------|-------|\n * | Era | G..GGG | AD, BC | |\n * | | GGGG | Anno Domini, Before Christ | 2 |\n * | | GGGGG | A, B | |\n * | Calendar year | y | 44, 1, 1900, 2017 | 5 |\n * | | yo | 44th, 1st, 0th, 17th | 5,7 |\n * | | yy | 44, 01, 00, 17 | 5 |\n * | | yyy | 044, 001, 1900, 2017 | 5 |\n * | | yyyy | 0044, 0001, 1900, 2017 | 5 |\n * | | yyyyy | ... | 3,5 |\n * | Local week-numbering year | Y | 44, 1, 1900, 2017 | 5 |\n * | | Yo | 44th, 1st, 1900th, 2017th | 5,7 |\n * | | YY | 44, 01, 00, 17 | 5,8 |\n * | | YYY | 044, 001, 1900, 2017 | 5 |\n * | | YYYY | 0044, 0001, 1900, 2017 | 5,8 |\n * | | YYYYY | ... | 3,5 |\n * | ISO week-numbering year | R | -43, 0, 1, 1900, 2017 | 5,7 |\n * | | RR | -43, 00, 01, 1900, 2017 | 5,7 |\n * | | RRR | -043, 000, 001, 1900, 2017 | 5,7 |\n * | | RRRR | -0043, 0000, 0001, 1900, 2017 | 5,7 |\n * | | RRRRR | ... | 3,5,7 |\n * | Extended year | u | -43, 0, 1, 1900, 2017 | 5 |\n * | | uu | -43, 01, 1900, 2017 | 5 |\n * | | uuu | -043, 001, 1900, 2017 | 5 |\n * | | uuuu | -0043, 0001, 1900, 2017 | 5 |\n * | | uuuuu | ... | 3,5 |\n * | Quarter (formatting) | Q | 1, 2, 3, 4 | |\n * | | Qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | QQ | 01, 02, 03, 04 | |\n * | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | q | 1, 2, 3, 4 | |\n * | | qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | qq | 01, 02, 03, 04 | |\n * | | qqq | Q1, Q2, Q3, Q4 | |\n * | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | qqqqq | 1, 2, 3, 4 | 4 |\n * | Month (formatting) | M | 1, 2, ..., 12 | |\n * | | Mo | 1st, 2nd, ..., 12th | 7 |\n * | | MM | 01, 02, ..., 12 | |\n * | | MMM | Jan, Feb, ..., Dec | |\n * | | MMMM | January, February, ..., December | 2 |\n * | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | L | 1, 2, ..., 12 | |\n * | | Lo | 1st, 2nd, ..., 12th | 7 |\n * | | LL | 01, 02, ..., 12 | |\n * | | LLL | Jan, Feb, ..., Dec | |\n * | | LLLL | January, February, ..., December | 2 |\n * | | LLLLL | J, F, ..., D | |\n * | Local week of year | w | 1, 2, ..., 53 | |\n * | | wo | 1st, 2nd, ..., 53th | 7 |\n * | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | I | 1, 2, ..., 53 | 7 |\n * | | Io | 1st, 2nd, ..., 53th | 7 |\n * | | II | 01, 02, ..., 53 | 7 |\n * | Day of month | d | 1, 2, ..., 31 | |\n * | | do | 1st, 2nd, ..., 31st | 7 |\n * | | dd | 01, 02, ..., 31 | |\n * | Day of year | D | 1, 2, ..., 365, 366 | 9 |\n * | | Do | 1st, 2nd, ..., 365th, 366th | 7 |\n * | | DD | 01, 02, ..., 365, 366 | 9 |\n * | | DDD | 001, 002, ..., 365, 366 | |\n * | | DDDD | ... | 3 |\n * | Day of week (formatting) | E..EEE | Mon, Tue, Wed, ..., Sun | |\n * | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | EEEEE | M, T, W, T, F, S, S | |\n * | | EEEEEE | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | ISO day of week (formatting) | i | 1, 2, 3, ..., 7 | 7 |\n * | | io | 1st, 2nd, ..., 7th | 7 |\n * | | ii | 01, 02, ..., 07 | 7 |\n * | | iii | Mon, Tue, Wed, ..., Sun | 7 |\n * | | iiii | Monday, Tuesday, ..., Sunday | 2,7 |\n * | | iiiii | M, T, W, T, F, S, S | 7 |\n * | | iiiiii | Mo, Tu, We, Th, Fr, Sa, Su | 7 |\n * | Local day of week (formatting) | e | 2, 3, 4, ..., 1 | |\n * | | eo | 2nd, 3rd, ..., 1st | 7 |\n * | | ee | 02, 03, ..., 01 | |\n * | | eee | Mon, Tue, Wed, ..., Sun | |\n * | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | eeeee | M, T, W, T, F, S, S | |\n * | | eeeeee | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | Local day of week (stand-alone) | c | 2, 3, 4, ..., 1 | |\n * | | co | 2nd, 3rd, ..., 1st | 7 |\n * | | cc | 02, 03, ..., 01 | |\n * | | ccc | Mon, Tue, Wed, ..., Sun | |\n * | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | ccccc | M, T, W, T, F, S, S | |\n * | | cccccc | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | AM, PM | a..aa | AM, PM | |\n * | | aaa | am, pm | |\n * | | aaaa | a.m., p.m. | 2 |\n * | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | b..bb | AM, PM, noon, midnight | |\n * | | bbb | am, pm, noon, midnight | |\n * | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | bbbbb | a, p, n, mi | |\n * | Flexible day period | B..BBB | at night, in the morning, ... | |\n * | | BBBB | at night, in the morning, ... | 2 |\n * | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | h | 1, 2, ..., 11, 12 | |\n * | | ho | 1st, 2nd, ..., 11th, 12th | 7 |\n * | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | H | 0, 1, 2, ..., 23 | |\n * | | Ho | 0th, 1st, 2nd, ..., 23rd | 7 |\n * | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | K | 1, 2, ..., 11, 0 | |\n * | | Ko | 1st, 2nd, ..., 11th, 0th | 7 |\n * | | KK | 01, 02, ..., 11, 00 | |\n * | Hour [1-24] | k | 24, 1, 2, ..., 23 | |\n * | | ko | 24th, 1st, 2nd, ..., 23rd | 7 |\n * | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | m | 0, 1, ..., 59 | |\n * | | mo | 0th, 1st, ..., 59th | 7 |\n * | | mm | 00, 01, ..., 59 | |\n * | Second | s | 0, 1, ..., 59 | |\n * | | so | 0th, 1st, ..., 59th | 7 |\n * | | ss | 00, 01, ..., 59 | |\n * | Fraction of second | S | 0, 1, ..., 9 | |\n * | | SS | 00, 01, ..., 99 | |\n * | | SSS | 000, 001, ..., 999 | |\n * | | SSSS | ... | 3 |\n * | Timezone (ISO-8601 w/ Z) | X | -08, +0530, Z | |\n * | | XX | -0800, +0530, Z | |\n * | | XXX | -08:00, +05:30, Z | |\n * | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | x | -08, +0530, +00 | |\n * | | xx | -0800, +0530, +0000 | |\n * | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Timezone (GMT) | O...OOO | GMT-8, GMT+5:30, GMT+0 | |\n * | | OOOO | GMT-08:00, GMT+05:30, GMT+00:00 | 2 |\n * | Timezone (specific non-locat.) | z...zzz | GMT-8, GMT+5:30, GMT+0 | 6 |\n * | | zzzz | GMT-08:00, GMT+05:30, GMT+00:00 | 2,6 |\n * | Seconds timestamp | t | 512969520 | 7 |\n * | | tt | ... | 3,7 |\n * | Milliseconds timestamp | T | 512969520900 | 7 |\n * | | TT | ... | 3,7 |\n * | Long localized date | P | 04/29/1453 | 7 |\n * | | PP | Apr 29, 1453 | 7 |\n * | | PPP | April 29th, 1453 | 7 |\n * | | PPPP | Friday, April 29th, 1453 | 2,7 |\n * | Long localized time | p | 12:00 AM | 7 |\n * | | pp | 12:00:00 AM | 7 |\n * | | ppp | 12:00:00 AM GMT+2 | 7 |\n * | | pppp | 12:00:00 AM GMT+02:00 | 2,7 |\n * | Combination of date and time | Pp | 04/29/1453, 12:00 AM | 7 |\n * | | PPpp | Apr 29, 1453, 12:00:00 AM | 7 |\n * | | PPPppp | April 29th, 1453 at ... | 7 |\n * | | PPPPpppp| Friday, April 29th, 1453 at ... | 2,7 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table (e.g. `EEEEEEEEEEE`)\n * the output will be the same as default pattern for this unit, usually\n * the longest one (in case of ISO weekdays, `EEEE`). Default patterns for units\n * are marked with \"2\" in the last column of the table.\n *\n * `format(new Date(2017, 10, 6), 'MMM') //=> 'Nov'`\n *\n * `format(new Date(2017, 10, 6), 'MMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMM') //=> 'N'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMMM') //=> 'November'`\n *\n * 3. Some patterns could be unlimited length (such as `yyyyyyyy`).\n * The output will be padded with zeros to match the length of the pattern.\n *\n * `format(new Date(2017, 10, 6), 'yyyyyyyy') //=> '00002017'`\n *\n * 4. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 5. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` always returns the last two digits of a year,\n * while `uu` pads single digit years to 2 characters and returns other years unchanged:\n *\n * | Year | `yy` | `uu` |\n * |------|------|------|\n * | 1 | 01 | 01 |\n * | 14 | 14 | 14 |\n * | 376 | 76 | 376 |\n * | 1453 | 53 | 1453 |\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [getISOWeekYear]{@link https://date-fns.org/docs/getISOWeekYear}\n * and [getWeekYear]{@link https://date-fns.org/docs/getWeekYear}).\n *\n * 6. Specific non-location timezones are currently unavailable in `date-fns`,\n * so right now these tokens fall back to GMT timezones.\n *\n * 7. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `t`: seconds timestamp\n * - `T`: milliseconds timestamp\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 8. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 9. `D` and `DD` tokens represent days of the year but they are often confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * @param {Date|Number} date - the original date\n * @param {String} format - the string of tokens\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @param {Number} [options.firstWeekContainsDate=1] - the day of January, which is\n * @param {Boolean} [options.useAdditionalWeekYearTokens=false] - if true, allows usage of the week-numbering year tokens `YY` and `YYYY`;\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @param {Boolean} [options.useAdditionalDayOfYearTokens=false] - if true, allows usage of the day of year tokens `D` and `DD`;\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @returns {String} the formatted date string\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `date` must not be Invalid Date\n * @throws {RangeError} `options.locale` must contain `localize` property\n * @throws {RangeError} `options.locale` must contain `formatLong` property\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n * @throws {RangeError} `options.firstWeekContainsDate` must be between 1 and 7\n * @throws {RangeError} use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} format string contains an unescaped latin alphabet character\n *\n * @example\n * // Represent 11 February 2014 in middle-endian format:\n * const result = format(new Date(2014, 1, 11), 'MM/dd/yyyy')\n * //=> '02/11/2014'\n *\n * @example\n * // Represent 2 July 2014 in Esperanto:\n * import { eoLocale } from 'date-fns/locale/eo'\n * const result = format(new Date(2014, 6, 2), \"do 'de' MMMM yyyy\", {\n * locale: eoLocale\n * })\n * //=> '2-a de julio 2014'\n *\n * @example\n * // Escape string by single quote characters:\n * const result = format(new Date(2014, 6, 2, 15), \"h 'o''clock'\")\n * //=> \"3 o'clock\"\n */\n\nexport default function format(dirtyDate, dirtyFormatStr, options) {\n var _ref, _options$locale, _ref2, _ref3, _ref4, _options$firstWeekCon, _options$locale2, _options$locale2$opti, _defaultOptions$local, _defaultOptions$local2, _ref5, _ref6, _ref7, _options$weekStartsOn, _options$locale3, _options$locale3$opti, _defaultOptions$local3, _defaultOptions$local4;\n requiredArgs(2, arguments);\n var formatStr = String(dirtyFormatStr);\n var defaultOptions = getDefaultOptions();\n var locale = (_ref = (_options$locale = options === null || options === void 0 ? void 0 : options.locale) !== null && _options$locale !== void 0 ? _options$locale : defaultOptions.locale) !== null && _ref !== void 0 ? _ref : defaultLocale;\n var firstWeekContainsDate = toInteger((_ref2 = (_ref3 = (_ref4 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale2 = options.locale) === null || _options$locale2 === void 0 ? void 0 : (_options$locale2$opti = _options$locale2.options) === null || _options$locale2$opti === void 0 ? void 0 : _options$locale2$opti.firstWeekContainsDate) !== null && _ref4 !== void 0 ? _ref4 : defaultOptions.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : 1);\n\n // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n var weekStartsOn = toInteger((_ref5 = (_ref6 = (_ref7 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale3 = options.locale) === null || _options$locale3 === void 0 ? void 0 : (_options$locale3$opti = _options$locale3.options) === null || _options$locale3$opti === void 0 ? void 0 : _options$locale3$opti.weekStartsOn) !== null && _ref7 !== void 0 ? _ref7 : defaultOptions.weekStartsOn) !== null && _ref6 !== void 0 ? _ref6 : (_defaultOptions$local3 = defaultOptions.locale) === null || _defaultOptions$local3 === void 0 ? void 0 : (_defaultOptions$local4 = _defaultOptions$local3.options) === null || _defaultOptions$local4 === void 0 ? void 0 : _defaultOptions$local4.weekStartsOn) !== null && _ref5 !== void 0 ? _ref5 : 0);\n\n // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n if (!locale.localize) {\n throw new RangeError('locale must contain localize property');\n }\n if (!locale.formatLong) {\n throw new RangeError('locale must contain formatLong property');\n }\n var originalDate = toDate(dirtyDate);\n if (!isValid(originalDate)) {\n throw new RangeError('Invalid time value');\n }\n\n // Convert the date in system timezone to the same date in UTC+00:00 timezone.\n // This ensures that when UTC functions will be implemented, locales will be compatible with them.\n // See an issue about UTC functions: https://github.com/date-fns/date-fns/issues/376\n var timezoneOffset = getTimezoneOffsetInMilliseconds(originalDate);\n var utcDate = subMilliseconds(originalDate, timezoneOffset);\n var formatterOptions = {\n firstWeekContainsDate: firstWeekContainsDate,\n weekStartsOn: weekStartsOn,\n locale: locale,\n _originalDate: originalDate\n };\n var result = formatStr.match(longFormattingTokensRegExp).map(function (substring) {\n var firstCharacter = substring[0];\n if (firstCharacter === 'p' || firstCharacter === 'P') {\n var longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong);\n }\n return substring;\n }).join('').match(formattingTokensRegExp).map(function (substring) {\n // Replace two single quote characters with one single quote character\n if (substring === \"''\") {\n return \"'\";\n }\n var firstCharacter = substring[0];\n if (firstCharacter === \"'\") {\n return cleanEscapedString(substring);\n }\n var formatter = formatters[firstCharacter];\n if (formatter) {\n if (!(options !== null && options !== void 0 && options.useAdditionalWeekYearTokens) && isProtectedWeekYearToken(substring)) {\n throwProtectedError(substring, dirtyFormatStr, String(dirtyDate));\n }\n if (!(options !== null && options !== void 0 && options.useAdditionalDayOfYearTokens) && isProtectedDayOfYearToken(substring)) {\n throwProtectedError(substring, dirtyFormatStr, String(dirtyDate));\n }\n return formatter(utcDate, substring, locale.localize, formatterOptions);\n }\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError('Format string contains an unescaped latin alphabet character `' + firstCharacter + '`');\n }\n return substring;\n }).join('');\n return result;\n}\nfunction cleanEscapedString(input) {\n var matched = input.match(escapedStringRegExp);\n if (!matched) {\n return input;\n }\n return matched[1].replace(doubleQuoteRegExp, \"'\");\n}","/**\n * Days in 1 week.\n *\n * @name daysInWeek\n * @constant\n * @type {number}\n * @default\n */\nexport var daysInWeek = 7;\n\n/**\n * Days in 1 year\n * One years equals 365.2425 days according to the formula:\n *\n * > Leap year occures every 4 years, except for years that are divisable by 100 and not divisable by 400.\n * > 1 mean year = (365+1/4-1/100+1/400) days = 365.2425 days\n *\n * @name daysInYear\n * @constant\n * @type {number}\n * @default\n */\nexport var daysInYear = 365.2425;\n\n/**\n * Maximum allowed time.\n *\n * @name maxTime\n * @constant\n * @type {number}\n * @default\n */\nexport var maxTime = Math.pow(10, 8) * 24 * 60 * 60 * 1000;\n\n/**\n * Milliseconds in 1 minute\n *\n * @name millisecondsInMinute\n * @constant\n * @type {number}\n * @default\n */\nexport var millisecondsInMinute = 60000;\n\n/**\n * Milliseconds in 1 hour\n *\n * @name millisecondsInHour\n * @constant\n * @type {number}\n * @default\n */\nexport var millisecondsInHour = 3600000;\n\n/**\n * Milliseconds in 1 second\n *\n * @name millisecondsInSecond\n * @constant\n * @type {number}\n * @default\n */\nexport var millisecondsInSecond = 1000;\n\n/**\n * Minimum allowed time.\n *\n * @name minTime\n * @constant\n * @type {number}\n * @default\n */\nexport var minTime = -maxTime;\n\n/**\n * Minutes in 1 hour\n *\n * @name minutesInHour\n * @constant\n * @type {number}\n * @default\n */\nexport var minutesInHour = 60;\n\n/**\n * Months in 1 quarter\n *\n * @name monthsInQuarter\n * @constant\n * @type {number}\n * @default\n */\nexport var monthsInQuarter = 3;\n\n/**\n * Months in 1 year\n *\n * @name monthsInYear\n * @constant\n * @type {number}\n * @default\n */\nexport var monthsInYear = 12;\n\n/**\n * Quarters in 1 year\n *\n * @name quartersInYear\n * @constant\n * @type {number}\n * @default\n */\nexport var quartersInYear = 4;\n\n/**\n * Seconds in 1 hour\n *\n * @name secondsInHour\n * @constant\n * @type {number}\n * @default\n */\nexport var secondsInHour = 3600;\n\n/**\n * Seconds in 1 minute\n *\n * @name secondsInMinute\n * @constant\n * @type {number}\n * @default\n */\nexport var secondsInMinute = 60;\n\n/**\n * Seconds in 1 day\n *\n * @name secondsInDay\n * @constant\n * @type {number}\n * @default\n */\nexport var secondsInDay = secondsInHour * 24;\n\n/**\n * Seconds in 1 week\n *\n * @name secondsInWeek\n * @constant\n * @type {number}\n * @default\n */\nexport var secondsInWeek = secondsInDay * 7;\n\n/**\n * Seconds in 1 year\n *\n * @name secondsInYear\n * @constant\n * @type {number}\n * @default\n */\nexport var secondsInYear = secondsInDay * daysInYear;\n\n/**\n * Seconds in 1 month\n *\n * @name secondsInMonth\n * @constant\n * @type {number}\n * @default\n */\nexport var secondsInMonth = secondsInYear / 12;\n\n/**\n * Seconds in 1 quarter\n *\n * @name secondsInQuarter\n * @constant\n * @type {number}\n * @default\n */\nexport var secondsInQuarter = secondsInMonth * 3;","import { millisecondsInHour, millisecondsInMinute } from \"../constants/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\n/**\n * @name parseISO\n * @category Common Helpers\n * @summary Parse ISO string\n *\n * @description\n * Parse the given string in ISO 8601 format and return an instance of Date.\n *\n * Function accepts complete ISO 8601 formats as well as partial implementations.\n * ISO 8601: http://en.wikipedia.org/wiki/ISO_8601\n *\n * If the argument isn't a string, the function cannot parse the string or\n * the values are invalid, it returns Invalid Date.\n *\n * @param {String} argument - the value to convert\n * @param {Object} [options] - an object with options.\n * @param {0|1|2} [options.additionalDigits=2] - the additional number of digits in the extended year format\n * @returns {Date} the parsed date in the local time zone\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `options.additionalDigits` must be 0, 1 or 2\n *\n * @example\n * // Convert string '2014-02-11T11:30:30' to date:\n * const result = parseISO('2014-02-11T11:30:30')\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert string '+02014101' to date,\n * // if the additional number of digits in the extended year format is 1:\n * const result = parseISO('+02014101', { additionalDigits: 1 })\n * //=> Fri Apr 11 2014 00:00:00\n */\nexport default function parseISO(argument, options) {\n var _options$additionalDi;\n requiredArgs(1, arguments);\n var additionalDigits = toInteger((_options$additionalDi = options === null || options === void 0 ? void 0 : options.additionalDigits) !== null && _options$additionalDi !== void 0 ? _options$additionalDi : 2);\n if (additionalDigits !== 2 && additionalDigits !== 1 && additionalDigits !== 0) {\n throw new RangeError('additionalDigits must be 0, 1 or 2');\n }\n if (!(typeof argument === 'string' || Object.prototype.toString.call(argument) === '[object String]')) {\n return new Date(NaN);\n }\n var dateStrings = splitDateString(argument);\n var date;\n if (dateStrings.date) {\n var parseYearResult = parseYear(dateStrings.date, additionalDigits);\n date = parseDate(parseYearResult.restDateString, parseYearResult.year);\n }\n if (!date || isNaN(date.getTime())) {\n return new Date(NaN);\n }\n var timestamp = date.getTime();\n var time = 0;\n var offset;\n if (dateStrings.time) {\n time = parseTime(dateStrings.time);\n if (isNaN(time)) {\n return new Date(NaN);\n }\n }\n if (dateStrings.timezone) {\n offset = parseTimezone(dateStrings.timezone);\n if (isNaN(offset)) {\n return new Date(NaN);\n }\n } else {\n var dirtyDate = new Date(timestamp + time);\n // js parsed string assuming it's in UTC timezone\n // but we need it to be parsed in our timezone\n // so we use utc values to build date in our timezone.\n // Year values from 0 to 99 map to the years 1900 to 1999\n // so set year explicitly with setFullYear.\n var result = new Date(0);\n result.setFullYear(dirtyDate.getUTCFullYear(), dirtyDate.getUTCMonth(), dirtyDate.getUTCDate());\n result.setHours(dirtyDate.getUTCHours(), dirtyDate.getUTCMinutes(), dirtyDate.getUTCSeconds(), dirtyDate.getUTCMilliseconds());\n return result;\n }\n return new Date(timestamp + time + offset);\n}\nvar patterns = {\n dateTimeDelimiter: /[T ]/,\n timeZoneDelimiter: /[Z ]/i,\n timezone: /([Z+-].*)$/\n};\nvar dateRegex = /^-?(?:(\\d{3})|(\\d{2})(?:-?(\\d{2}))?|W(\\d{2})(?:-?(\\d{1}))?|)$/;\nvar timeRegex = /^(\\d{2}(?:[.,]\\d*)?)(?::?(\\d{2}(?:[.,]\\d*)?))?(?::?(\\d{2}(?:[.,]\\d*)?))?$/;\nvar timezoneRegex = /^([+-])(\\d{2})(?::?(\\d{2}))?$/;\nfunction splitDateString(dateString) {\n var dateStrings = {};\n var array = dateString.split(patterns.dateTimeDelimiter);\n var timeString;\n\n // The regex match should only return at maximum two array elements.\n // [date], [time], or [date, time].\n if (array.length > 2) {\n return dateStrings;\n }\n if (/:/.test(array[0])) {\n timeString = array[0];\n } else {\n dateStrings.date = array[0];\n timeString = array[1];\n if (patterns.timeZoneDelimiter.test(dateStrings.date)) {\n dateStrings.date = dateString.split(patterns.timeZoneDelimiter)[0];\n timeString = dateString.substr(dateStrings.date.length, dateString.length);\n }\n }\n if (timeString) {\n var token = patterns.timezone.exec(timeString);\n if (token) {\n dateStrings.time = timeString.replace(token[1], '');\n dateStrings.timezone = token[1];\n } else {\n dateStrings.time = timeString;\n }\n }\n return dateStrings;\n}\nfunction parseYear(dateString, additionalDigits) {\n var regex = new RegExp('^(?:(\\\\d{4}|[+-]\\\\d{' + (4 + additionalDigits) + '})|(\\\\d{2}|[+-]\\\\d{' + (2 + additionalDigits) + '})$)');\n var captures = dateString.match(regex);\n // Invalid ISO-formatted year\n if (!captures) return {\n year: NaN,\n restDateString: ''\n };\n var year = captures[1] ? parseInt(captures[1]) : null;\n var century = captures[2] ? parseInt(captures[2]) : null;\n\n // either year or century is null, not both\n return {\n year: century === null ? year : century * 100,\n restDateString: dateString.slice((captures[1] || captures[2]).length)\n };\n}\nfunction parseDate(dateString, year) {\n // Invalid ISO-formatted year\n if (year === null) return new Date(NaN);\n var captures = dateString.match(dateRegex);\n // Invalid ISO-formatted string\n if (!captures) return new Date(NaN);\n var isWeekDate = !!captures[4];\n var dayOfYear = parseDateUnit(captures[1]);\n var month = parseDateUnit(captures[2]) - 1;\n var day = parseDateUnit(captures[3]);\n var week = parseDateUnit(captures[4]);\n var dayOfWeek = parseDateUnit(captures[5]) - 1;\n if (isWeekDate) {\n if (!validateWeekDate(year, week, dayOfWeek)) {\n return new Date(NaN);\n }\n return dayOfISOWeekYear(year, week, dayOfWeek);\n } else {\n var date = new Date(0);\n if (!validateDate(year, month, day) || !validateDayOfYearDate(year, dayOfYear)) {\n return new Date(NaN);\n }\n date.setUTCFullYear(year, month, Math.max(dayOfYear, day));\n return date;\n }\n}\nfunction parseDateUnit(value) {\n return value ? parseInt(value) : 1;\n}\nfunction parseTime(timeString) {\n var captures = timeString.match(timeRegex);\n if (!captures) return NaN; // Invalid ISO-formatted time\n\n var hours = parseTimeUnit(captures[1]);\n var minutes = parseTimeUnit(captures[2]);\n var seconds = parseTimeUnit(captures[3]);\n if (!validateTime(hours, minutes, seconds)) {\n return NaN;\n }\n return hours * millisecondsInHour + minutes * millisecondsInMinute + seconds * 1000;\n}\nfunction parseTimeUnit(value) {\n return value && parseFloat(value.replace(',', '.')) || 0;\n}\nfunction parseTimezone(timezoneString) {\n if (timezoneString === 'Z') return 0;\n var captures = timezoneString.match(timezoneRegex);\n if (!captures) return 0;\n var sign = captures[1] === '+' ? -1 : 1;\n var hours = parseInt(captures[2]);\n var minutes = captures[3] && parseInt(captures[3]) || 0;\n if (!validateTimezone(hours, minutes)) {\n return NaN;\n }\n return sign * (hours * millisecondsInHour + minutes * millisecondsInMinute);\n}\nfunction dayOfISOWeekYear(isoWeekYear, week, day) {\n var date = new Date(0);\n date.setUTCFullYear(isoWeekYear, 0, 4);\n var fourthOfJanuaryDay = date.getUTCDay() || 7;\n var diff = (week - 1) * 7 + day + 1 - fourthOfJanuaryDay;\n date.setUTCDate(date.getUTCDate() + diff);\n return date;\n}\n\n// Validation functions\n\n// February is null to handle the leap year (using ||)\nvar daysInMonths = [31, null, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\nfunction isLeapYearIndex(year) {\n return year % 400 === 0 || year % 4 === 0 && year % 100 !== 0;\n}\nfunction validateDate(year, month, date) {\n return month >= 0 && month <= 11 && date >= 1 && date <= (daysInMonths[month] || (isLeapYearIndex(year) ? 29 : 28));\n}\nfunction validateDayOfYearDate(year, dayOfYear) {\n return dayOfYear >= 1 && dayOfYear <= (isLeapYearIndex(year) ? 366 : 365);\n}\nfunction validateWeekDate(_year, week, day) {\n return week >= 1 && week <= 53 && day >= 0 && day <= 6;\n}\nfunction validateTime(hours, minutes, seconds) {\n if (hours === 24) {\n return minutes === 0 && seconds === 0;\n }\n return seconds >= 0 && seconds < 60 && minutes >= 0 && minutes < 60 && hours >= 0 && hours < 25;\n}\nfunction validateTimezone(_hours, minutes) {\n return minutes >= 0 && minutes <= 59;\n}","function getBasePlacement(placement) {\n return placement.split('-')[0];\n}\n\nfunction getAlignment(placement) {\n return placement.split('-')[1];\n}\n\nfunction getMainAxisFromPlacement(placement) {\n return ['top', 'bottom'].includes(getBasePlacement(placement)) ? 'x' : 'y';\n}\n\nfunction getLengthFromAxis(axis) {\n return axis === 'y' ? 'height' : 'width';\n}\n\nfunction computeCoordsFromPlacement(_ref) {\n let {\n reference,\n floating,\n placement\n } = _ref;\n const commonX = reference.x + reference.width / 2 - floating.width / 2;\n const commonY = reference.y + reference.height / 2 - floating.height / 2;\n let coords;\n\n switch (getBasePlacement(placement)) {\n case 'top':\n coords = {\n x: commonX,\n y: reference.y - floating.height\n };\n break;\n\n case 'bottom':\n coords = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n\n case 'right':\n coords = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n\n case 'left':\n coords = {\n x: reference.x - floating.width,\n y: commonY\n };\n break;\n\n default:\n coords = {\n x: reference.x,\n y: reference.y\n };\n }\n\n const mainAxis = getMainAxisFromPlacement(placement);\n const length = getLengthFromAxis(mainAxis);\n\n switch (getAlignment(placement)) {\n case 'start':\n coords[mainAxis] = coords[mainAxis] - (reference[length] / 2 - floating[length] / 2);\n break;\n\n case 'end':\n coords[mainAxis] = coords[mainAxis] + (reference[length] / 2 - floating[length] / 2);\n break;\n }\n\n return coords;\n}\n\nconst computePosition = async (reference, floating, config) => {\n const {\n placement = 'bottom',\n strategy = 'absolute',\n middleware = [],\n platform\n } = config;\n\n if (process.env.NODE_ENV !== \"production\") {\n if (platform == null) {\n console.error(['Floating UI: `platform` property was not passed to config. If you', 'want to use Floating UI on the web, install @floating-ui/dom', 'instead of the /core package. Otherwise, you can create your own', '`platform`: https://floating-ui.com/docs/platform'].join(' '));\n }\n\n if (middleware.filter(_ref => {\n let {\n name\n } = _ref;\n return name === 'autoPlacement' || name === 'flip';\n }).length > 1) {\n throw new Error(['Floating UI: duplicate `flip` and/or `autoPlacement`', 'middleware detected. This will lead to an infinite loop. Ensure only', 'one of either has been passed to the `middleware` array.'].join(' '));\n }\n }\n\n let rects = await platform.getElementRects({\n reference,\n floating,\n strategy\n });\n let {\n x,\n y\n } = computeCoordsFromPlacement({ ...rects,\n placement\n });\n let statefulPlacement = placement;\n let middlewareData = {};\n let _debug_loop_count_ = 0;\n\n for (let i = 0; i < middleware.length; i++) {\n if (process.env.NODE_ENV !== \"production\") {\n _debug_loop_count_++;\n\n if (_debug_loop_count_ > 100) {\n throw new Error(['Floating UI: The middleware lifecycle appears to be', 'running in an infinite loop. This is usually caused by a `reset`', 'continually being returned without a break condition.'].join(' '));\n }\n }\n\n const {\n name,\n fn\n } = middleware[i];\n const {\n x: nextX,\n y: nextY,\n data,\n reset\n } = await fn({\n x,\n y,\n initialPlacement: placement,\n placement: statefulPlacement,\n strategy,\n middlewareData,\n rects,\n platform,\n elements: {\n reference,\n floating\n }\n });\n x = nextX != null ? nextX : x;\n y = nextY != null ? nextY : y;\n middlewareData = { ...middlewareData,\n [name]: data != null ? data : {}\n };\n\n if (reset) {\n if (typeof reset === 'object') {\n if (reset.placement) {\n statefulPlacement = reset.placement;\n }\n\n if (reset.rects) {\n rects = reset.rects === true ? await platform.getElementRects({\n reference,\n floating,\n strategy\n }) : reset.rects;\n }\n\n ({\n x,\n y\n } = computeCoordsFromPlacement({ ...rects,\n placement: statefulPlacement\n }));\n }\n\n i = -1;\n continue;\n }\n }\n\n return {\n x,\n y,\n placement: statefulPlacement,\n strategy,\n middlewareData\n };\n};\n\nfunction expandPaddingObject(padding) {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n ...padding\n };\n}\n\nfunction getSideObjectFromPadding(padding) {\n return typeof padding !== 'number' ? expandPaddingObject(padding) : {\n top: padding,\n right: padding,\n bottom: padding,\n left: padding\n };\n}\n\nfunction rectToClientRect(rect) {\n return { ...rect,\n top: rect.y,\n left: rect.x,\n right: rect.x + rect.width,\n bottom: rect.y + rect.height\n };\n}\n\nasync function detectOverflow(middlewareArguments, options) {\n if (options === void 0) {\n options = {};\n }\n\n const {\n x,\n y,\n platform,\n rects,\n elements,\n strategy\n } = middlewareArguments;\n const {\n boundary = 'clippingParents',\n rootBoundary = 'viewport',\n elementContext = 'floating',\n altBoundary = false,\n padding = 0\n } = options;\n const paddingObject = getSideObjectFromPadding(padding);\n const altContext = elementContext === 'floating' ? 'reference' : 'floating';\n const element = elements[altBoundary ? altContext : elementContext];\n const clippingClientRect = await platform.getClippingClientRect({\n element: (await platform.isElement(element)) ? element : element.contextElement || (await platform.getDocumentElement({\n element: elements.floating\n })),\n boundary,\n rootBoundary\n });\n const elementClientRect = rectToClientRect(await platform.convertOffsetParentRelativeRectToViewportRelativeRect({\n rect: elementContext === 'floating' ? { ...rects.floating,\n x,\n y\n } : rects.reference,\n offsetParent: await platform.getOffsetParent({\n element: elements.floating\n }),\n strategy\n })); // positive = overflowing the clipping rect\n // 0 or negative = within the clipping rect\n\n return {\n top: clippingClientRect.top - elementClientRect.top + paddingObject.top,\n bottom: elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom,\n left: clippingClientRect.left - elementClientRect.left + paddingObject.left,\n right: elementClientRect.right - clippingClientRect.right + paddingObject.right\n };\n}\n\nconst min = Math.min;\nconst max = Math.max;\n\nfunction within(min$1, value, max$1) {\n return max(min$1, min(value, max$1));\n}\n\nconst arrow = options => ({\n name: 'arrow',\n options,\n\n async fn(middlewareArguments) {\n // Since `element` is required, we don't Partial<> the type\n const {\n element,\n padding = 0\n } = options != null ? options : {};\n const {\n x,\n y,\n placement,\n rects,\n platform\n } = middlewareArguments;\n\n if (element == null) {\n if (process.env.NODE_ENV !== \"production\") {\n console.warn('Floating UI: No `element` was passed to the `arrow` middleware.');\n }\n\n return {};\n }\n\n const paddingObject = getSideObjectFromPadding(padding);\n const coords = {\n x,\n y\n };\n const basePlacement = getBasePlacement(placement);\n const axis = getMainAxisFromPlacement(basePlacement);\n const length = getLengthFromAxis(axis);\n const arrowDimensions = await platform.getDimensions({\n element\n });\n const minProp = axis === 'y' ? 'top' : 'left';\n const maxProp = axis === 'y' ? 'bottom' : 'right';\n const endDiff = rects.reference[length] + rects.reference[axis] - coords[axis] - rects.floating[length];\n const startDiff = coords[axis] - rects.reference[axis];\n const arrowOffsetParent = await platform.getOffsetParent({\n element\n });\n const clientSize = arrowOffsetParent ? axis === 'y' ? arrowOffsetParent.clientHeight || 0 : arrowOffsetParent.clientWidth || 0 : 0;\n const centerToReference = endDiff / 2 - startDiff / 2; // Make sure the arrow doesn't overflow the floating element if the center\n // point is outside of the floating element's bounds\n\n const min = paddingObject[minProp];\n const max = clientSize - arrowDimensions[length] - paddingObject[maxProp];\n const center = clientSize / 2 - arrowDimensions[length] / 2 + centerToReference;\n const offset = within(min, center, max);\n return {\n data: {\n [axis]: offset,\n centerOffset: center - offset\n }\n };\n }\n\n});\n\nconst hash$1 = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nfunction getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, matched => hash$1[matched]);\n}\n\nfunction getAlignmentSides(placement, rects) {\n const isStart = getAlignment(placement) === 'start';\n const mainAxis = getMainAxisFromPlacement(placement);\n const length = getLengthFromAxis(mainAxis);\n let mainAlignmentSide = mainAxis === 'x' ? isStart ? 'right' : 'left' : isStart ? 'bottom' : 'top';\n\n if (rects.reference[length] > rects.floating[length]) {\n mainAlignmentSide = getOppositePlacement(mainAlignmentSide);\n }\n\n return {\n main: mainAlignmentSide,\n cross: getOppositePlacement(mainAlignmentSide)\n };\n}\n\nconst hash = {\n start: 'end',\n end: 'start'\n};\nfunction getOppositeAlignmentPlacement(placement) {\n return placement.replace(/start|end/g, matched => hash[matched]);\n}\n\nconst basePlacements = ['top', 'right', 'bottom', 'left'];\nconst allPlacements = /*#__PURE__*/basePlacements.reduce((acc, basePlacement) => acc.concat(basePlacement, basePlacement + \"-start\", basePlacement + \"-end\"), []);\n\nfunction getPlacementList(alignment, autoAlignment, allowedPlacements) {\n const allowedPlacementsSortedByAlignment = alignment ? [...allowedPlacements.filter(placement => getAlignment(placement) === alignment), ...allowedPlacements.filter(placement => getAlignment(placement) !== alignment)] : allowedPlacements.filter(placement => getBasePlacement(placement) === placement);\n return allowedPlacementsSortedByAlignment.filter(placement => {\n if (alignment) {\n return getAlignment(placement) === alignment || (autoAlignment ? getOppositeAlignmentPlacement(placement) !== placement : false);\n }\n\n return true;\n });\n}\nconst autoPlacement = function (options) {\n if (options === void 0) {\n options = {};\n }\n\n return {\n name: 'autoPlacement',\n options,\n\n async fn(middlewareArguments) {\n var _middlewareData$autoP, _middlewareData$autoP2, _middlewareData$autoP3, _middlewareData$autoP4, _middlewareData$autoP5, _placementsSortedByLe;\n\n const {\n x,\n y,\n rects,\n middlewareData,\n placement\n } = middlewareArguments;\n const {\n alignment = null,\n allowedPlacements = allPlacements,\n autoAlignment = true,\n ...detectOverflowOptions\n } = options;\n\n if ((_middlewareData$autoP = middlewareData.autoPlacement) != null && _middlewareData$autoP.skip) {\n return {};\n }\n\n const placements = getPlacementList(alignment, autoAlignment, allowedPlacements);\n const overflow = await detectOverflow(middlewareArguments, detectOverflowOptions);\n const currentIndex = (_middlewareData$autoP2 = (_middlewareData$autoP3 = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP3.index) != null ? _middlewareData$autoP2 : 0;\n const currentPlacement = placements[currentIndex];\n const {\n main,\n cross\n } = getAlignmentSides(currentPlacement, rects); // Make `computeCoords` start from the right place\n\n if (placement !== currentPlacement) {\n return {\n x,\n y,\n reset: {\n placement: placements[0]\n }\n };\n }\n\n const currentOverflows = [overflow[getBasePlacement(currentPlacement)], overflow[main], overflow[cross]];\n const allOverflows = [...((_middlewareData$autoP4 = (_middlewareData$autoP5 = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP5.overflows) != null ? _middlewareData$autoP4 : []), {\n placement: currentPlacement,\n overflows: currentOverflows\n }];\n const nextPlacement = placements[currentIndex + 1]; // There are more placements to check\n\n if (nextPlacement) {\n return {\n data: {\n index: currentIndex + 1,\n overflows: allOverflows\n },\n reset: {\n placement: nextPlacement\n }\n };\n }\n\n const placementsSortedByLeastOverflow = allOverflows.slice().sort((a, b) => a.overflows[0] - b.overflows[0]);\n const placementThatFitsOnAllSides = (_placementsSortedByLe = placementsSortedByLeastOverflow.find(_ref => {\n let {\n overflows\n } = _ref;\n return overflows.every(overflow => overflow <= 0);\n })) == null ? void 0 : _placementsSortedByLe.placement;\n return {\n data: {\n skip: true\n },\n reset: {\n placement: placementThatFitsOnAllSides != null ? placementThatFitsOnAllSides : placementsSortedByLeastOverflow[0].placement\n }\n };\n }\n\n };\n};\n\nfunction getExpandedPlacements(placement) {\n const oppositePlacement = getOppositePlacement(placement);\n return [getOppositeAlignmentPlacement(placement), oppositePlacement, getOppositeAlignmentPlacement(oppositePlacement)];\n}\n\nconst flip = function (options) {\n if (options === void 0) {\n options = {};\n }\n\n return {\n name: 'flip',\n options,\n\n async fn(middlewareArguments) {\n var _middlewareData$flip, _middlewareData$flip2;\n\n const {\n placement,\n middlewareData,\n rects,\n initialPlacement\n } = middlewareArguments;\n\n if ((_middlewareData$flip = middlewareData.flip) != null && _middlewareData$flip.skip) {\n return {};\n }\n\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = true,\n fallbackPlacements: specifiedFallbackPlacements,\n fallbackStrategy = 'bestFit',\n flipAlignment = true,\n ...detectOverflowOptions\n } = options;\n const basePlacement = getBasePlacement(placement);\n const isBasePlacement = basePlacement === initialPlacement;\n const fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipAlignment ? [getOppositePlacement(initialPlacement)] : getExpandedPlacements(initialPlacement));\n const placements = [initialPlacement, ...fallbackPlacements];\n const overflow = await detectOverflow(middlewareArguments, detectOverflowOptions);\n const overflows = [];\n let overflowsData = ((_middlewareData$flip2 = middlewareData.flip) == null ? void 0 : _middlewareData$flip2.overflows) || [];\n\n if (checkMainAxis) {\n overflows.push(overflow[basePlacement]);\n }\n\n if (checkCrossAxis) {\n const {\n main,\n cross\n } = getAlignmentSides(placement, rects);\n overflows.push(overflow[main], overflow[cross]);\n }\n\n overflowsData = [...overflowsData, {\n placement,\n overflows\n }]; // One or more sides is overflowing\n\n if (!overflows.every(side => side <= 0)) {\n var _middlewareData$flip$, _middlewareData$flip3;\n\n const nextIndex = ((_middlewareData$flip$ = (_middlewareData$flip3 = middlewareData.flip) == null ? void 0 : _middlewareData$flip3.index) != null ? _middlewareData$flip$ : 0) + 1;\n const nextPlacement = placements[nextIndex];\n\n if (nextPlacement) {\n // Try next placement and re-run the lifecycle\n return {\n data: {\n index: nextIndex,\n overflows: overflowsData\n },\n reset: {\n placement: nextPlacement\n }\n };\n }\n\n let resetPlacement = 'bottom';\n\n switch (fallbackStrategy) {\n case 'bestFit':\n {\n var _overflowsData$slice$;\n\n const placement = (_overflowsData$slice$ = overflowsData.slice().sort((a, b) => a.overflows.filter(overflow => overflow > 0).reduce((acc, overflow) => acc + overflow, 0) - b.overflows.filter(overflow => overflow > 0).reduce((acc, overflow) => acc + overflow, 0))[0]) == null ? void 0 : _overflowsData$slice$.placement;\n\n if (placement) {\n resetPlacement = placement;\n }\n\n break;\n }\n\n case 'initialPlacement':\n resetPlacement = initialPlacement;\n break;\n }\n\n return {\n data: {\n skip: true\n },\n reset: {\n placement: resetPlacement\n }\n };\n }\n\n return {};\n }\n\n };\n};\n\nfunction getSideOffsets(overflow, rect) {\n return {\n top: overflow.top - rect.height,\n right: overflow.right - rect.width,\n bottom: overflow.bottom - rect.height,\n left: overflow.left - rect.width\n };\n}\n\nfunction isAnySideFullyClipped(overflow) {\n return basePlacements.some(side => overflow[side] >= 0);\n}\n\nconst hide = () => ({\n name: 'hide',\n\n async fn(modifierArguments) {\n const referenceOverflow = await detectOverflow(modifierArguments, {\n elementContext: 'reference'\n });\n const floatingAltOverflow = await detectOverflow(modifierArguments, {\n altBoundary: true\n });\n const referenceHiddenOffsets = getSideOffsets(referenceOverflow, modifierArguments.rects.reference);\n const escapedOffsets = getSideOffsets(floatingAltOverflow, modifierArguments.rects.floating);\n const referenceHidden = isAnySideFullyClipped(referenceHiddenOffsets);\n const escaped = isAnySideFullyClipped(escapedOffsets);\n return {\n data: {\n referenceHidden,\n referenceHiddenOffsets,\n escaped,\n escapedOffsets\n }\n };\n }\n\n});\n\nfunction convertValueToCoords(_ref) {\n let {\n placement,\n rects,\n value\n } = _ref;\n const basePlacement = getBasePlacement(placement);\n const multiplier = ['left', 'top'].includes(basePlacement) ? -1 : 1;\n const rawValue = typeof value === 'function' ? value({ ...rects,\n placement\n }) : value;\n const {\n mainAxis,\n crossAxis\n } = typeof rawValue === 'number' ? {\n mainAxis: rawValue,\n crossAxis: 0\n } : {\n mainAxis: 0,\n crossAxis: 0,\n ...rawValue\n };\n return getMainAxisFromPlacement(basePlacement) === 'x' ? {\n x: crossAxis,\n y: mainAxis * multiplier\n } : {\n x: mainAxis * multiplier,\n y: crossAxis\n };\n}\nconst offset = function (value) {\n if (value === void 0) {\n value = 0;\n }\n\n return {\n name: 'offset',\n options: value,\n\n fn(middlewareArguments) {\n const {\n x,\n y,\n placement,\n rects\n } = middlewareArguments;\n const diffCoords = convertValueToCoords({\n placement,\n rects,\n value\n });\n return {\n x: x + diffCoords.x,\n y: y + diffCoords.y,\n data: diffCoords\n };\n }\n\n };\n};\n\nfunction getCrossAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}\n\nconst shift = function (options) {\n if (options === void 0) {\n options = {};\n }\n\n return {\n name: 'shift',\n options,\n\n async fn(middlewareArguments) {\n const {\n x,\n y,\n placement\n } = middlewareArguments;\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = false,\n limiter = {\n fn: _ref => {\n let {\n x,\n y\n } = _ref;\n return {\n x,\n y\n };\n }\n },\n ...detectOverflowOptions\n } = options;\n const coords = {\n x,\n y\n };\n const overflow = await detectOverflow(middlewareArguments, detectOverflowOptions);\n const mainAxis = getMainAxisFromPlacement(getBasePlacement(placement));\n const crossAxis = getCrossAxis(mainAxis);\n let mainAxisCoord = coords[mainAxis];\n let crossAxisCoord = coords[crossAxis];\n\n if (checkMainAxis) {\n const minSide = mainAxis === 'y' ? 'top' : 'left';\n const maxSide = mainAxis === 'y' ? 'bottom' : 'right';\n const min = mainAxisCoord + overflow[minSide];\n const max = mainAxisCoord - overflow[maxSide];\n mainAxisCoord = within(min, mainAxisCoord, max);\n }\n\n if (checkCrossAxis) {\n const minSide = crossAxis === 'y' ? 'top' : 'left';\n const maxSide = crossAxis === 'y' ? 'bottom' : 'right';\n const min = crossAxisCoord + overflow[minSide];\n const max = crossAxisCoord - overflow[maxSide];\n crossAxisCoord = within(min, crossAxisCoord, max);\n }\n\n const limitedCoords = limiter.fn({ ...middlewareArguments,\n [mainAxis]: mainAxisCoord,\n [crossAxis]: crossAxisCoord\n });\n return { ...limitedCoords,\n data: {\n x: limitedCoords.x - x,\n y: limitedCoords.y - y\n }\n };\n }\n\n };\n};\nconst limitShift = function (options) {\n if (options === void 0) {\n options = {};\n }\n\n return {\n options,\n\n fn(middlewareArguments) {\n const {\n x,\n y,\n placement,\n rects,\n middlewareData\n } = middlewareArguments;\n const {\n offset = 0,\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = true\n } = options;\n const coords = {\n x,\n y\n };\n const mainAxis = getMainAxisFromPlacement(placement);\n const crossAxis = getCrossAxis(mainAxis);\n let mainAxisCoord = coords[mainAxis];\n let crossAxisCoord = coords[crossAxis];\n const rawOffset = typeof offset === 'function' ? offset({ ...rects,\n placement\n }) : offset;\n const computedOffset = typeof rawOffset === 'number' ? {\n mainAxis: rawOffset,\n crossAxis: 0\n } : {\n mainAxis: 0,\n crossAxis: 0,\n ...rawOffset\n };\n\n if (checkMainAxis) {\n const len = mainAxis === 'y' ? 'height' : 'width';\n const limitMin = rects.reference[mainAxis] - rects.floating[len] + computedOffset.mainAxis;\n const limitMax = rects.reference[mainAxis] + rects.reference[len] - computedOffset.mainAxis;\n\n if (mainAxisCoord < limitMin) {\n mainAxisCoord = limitMin;\n } else if (mainAxisCoord > limitMax) {\n mainAxisCoord = limitMax;\n }\n }\n\n if (checkCrossAxis) {\n var _middlewareData$offse, _middlewareData$offse2, _middlewareData$offse3, _middlewareData$offse4;\n\n const len = mainAxis === 'y' ? 'width' : 'height';\n const isOriginSide = ['top', 'left'].includes(getBasePlacement(placement));\n const limitMin = rects.reference[crossAxis] - rects.floating[len] + (isOriginSide ? (_middlewareData$offse = (_middlewareData$offse2 = middlewareData.offset) == null ? void 0 : _middlewareData$offse2[crossAxis]) != null ? _middlewareData$offse : 0 : 0) + (isOriginSide ? 0 : computedOffset.crossAxis);\n const limitMax = rects.reference[crossAxis] + rects.reference[len] + (isOriginSide ? 0 : (_middlewareData$offse3 = (_middlewareData$offse4 = middlewareData.offset) == null ? void 0 : _middlewareData$offse4[crossAxis]) != null ? _middlewareData$offse3 : 0) - (isOriginSide ? computedOffset.crossAxis : 0);\n\n if (crossAxisCoord < limitMin) {\n crossAxisCoord = limitMin;\n } else if (crossAxisCoord > limitMax) {\n crossAxisCoord = limitMax;\n }\n }\n\n return {\n [mainAxis]: mainAxisCoord,\n [crossAxis]: crossAxisCoord\n };\n }\n\n };\n};\n\nconst size = function (options) {\n if (options === void 0) {\n options = {};\n }\n\n return {\n name: 'size',\n options,\n\n async fn(middlewareArguments) {\n var _middlewareData$size;\n\n const {\n placement,\n rects,\n middlewareData\n } = middlewareArguments;\n const {\n apply,\n ...detectOverflowOptions\n } = options;\n\n if ((_middlewareData$size = middlewareData.size) != null && _middlewareData$size.skip) {\n return {};\n }\n\n const overflow = await detectOverflow(middlewareArguments, detectOverflowOptions);\n const basePlacement = getBasePlacement(placement);\n const isEnd = getAlignment(placement) === 'end';\n let heightSide;\n let widthSide;\n\n if (basePlacement === 'top' || basePlacement === 'bottom') {\n heightSide = basePlacement;\n widthSide = isEnd ? 'left' : 'right';\n } else {\n widthSide = basePlacement;\n heightSide = isEnd ? 'top' : 'bottom';\n }\n\n const xMin = max(overflow.left, 0);\n const xMax = max(overflow.right, 0);\n const yMin = max(overflow.top, 0);\n const yMax = max(overflow.bottom, 0);\n const dimensions = {\n height: rects.floating.height - (['left', 'right'].includes(placement) ? 2 * (yMin !== 0 || yMax !== 0 ? yMin + yMax : max(overflow.top, overflow.bottom)) : overflow[heightSide]),\n width: rects.floating.width - (['top', 'bottom'].includes(placement) ? 2 * (xMin !== 0 || xMax !== 0 ? xMin + xMax : max(overflow.left, overflow.right)) : overflow[widthSide])\n };\n apply == null ? void 0 : apply({ ...dimensions,\n ...rects\n });\n return {\n data: {\n skip: true\n },\n reset: {\n rects: true\n }\n };\n }\n\n };\n};\n\nconst inline = function (options) {\n if (options === void 0) {\n options = {};\n }\n\n return {\n name: 'inline',\n options,\n\n async fn(middlewareArguments) {\n var _middlewareData$inlin, _await$platform$getCl;\n\n const {\n placement,\n elements,\n rects,\n platform,\n strategy,\n middlewareData\n } = middlewareArguments; // A MouseEvent's client{X,Y} coords can be up to 2 pixels off a\n // ClientRect's bounds, despite the event listener being triggered. A\n // padding of 2 seems to handle this issue.\n\n const {\n padding = 2,\n x,\n y\n } = options;\n\n if ((_middlewareData$inlin = middlewareData.inline) != null && _middlewareData$inlin.skip) {\n return {};\n }\n\n const fallback = rectToClientRect(await platform.convertOffsetParentRelativeRectToViewportRelativeRect({\n rect: rects.reference,\n offsetParent: await platform.getOffsetParent({\n element: elements.floating\n }),\n strategy\n }));\n const clientRects = Array.from((_await$platform$getCl = await (platform.getClientRects == null ? void 0 : platform.getClientRects({\n element: elements.reference\n }))) != null ? _await$platform$getCl : []);\n const paddingObject = getSideObjectFromPadding(padding);\n\n function getBoundingClientRect() {\n // There are two rects and they are disjoined\n if (clientRects.length === 2 && clientRects[0].left > clientRects[1].right && x != null && y != null) {\n var _clientRects$find;\n\n // Find the first rect in which the point is fully inside\n return (_clientRects$find = clientRects.find(rect => x > rect.left - paddingObject.left && x < rect.right + paddingObject.right && y > rect.top - paddingObject.top && y < rect.bottom + paddingObject.bottom)) != null ? _clientRects$find : fallback;\n } // There are 2 or more connected rects\n\n\n if (clientRects.length >= 2) {\n if (getMainAxisFromPlacement(placement) === 'x') {\n const firstRect = clientRects[0];\n const lastRect = clientRects[clientRects.length - 1];\n const isTop = getBasePlacement(placement) === 'top';\n const top = firstRect.top;\n const bottom = lastRect.bottom;\n const left = isTop ? firstRect.left : lastRect.left;\n const right = isTop ? firstRect.right : lastRect.right;\n const width = right - left;\n const height = bottom - top;\n return {\n top,\n bottom,\n left,\n right,\n width,\n height,\n x: left,\n y: top\n };\n }\n\n const isLeftPlacement = getBasePlacement(placement) === 'left';\n const maxRight = max(...clientRects.map(rect => rect.right));\n const minLeft = min(...clientRects.map(rect => rect.left));\n const measureRects = clientRects.filter(rect => isLeftPlacement ? rect.left === minLeft : rect.right === maxRight);\n const top = measureRects[0].top;\n const bottom = measureRects[measureRects.length - 1].bottom;\n const left = minLeft;\n const right = maxRight;\n const width = right - left;\n const height = bottom - top;\n return {\n top,\n bottom,\n left,\n right,\n width,\n height,\n x: left,\n y: top\n };\n }\n\n return fallback;\n }\n\n return {\n data: {\n skip: true\n },\n reset: {\n rects: await platform.getElementRects({\n reference: {\n getBoundingClientRect\n },\n floating: elements.floating,\n strategy\n })\n }\n };\n }\n\n };\n};\n\nexport { arrow, autoPlacement, computePosition, detectOverflow, flip, hide, inline, limitShift, offset, rectToClientRect, shift, size };\n","import { rectToClientRect, computePosition as computePosition$1 } from '@floating-ui/core';\nexport { arrow, autoPlacement, detectOverflow, flip, hide, inline, limitShift, offset, shift, size } from '@floating-ui/core';\n\nfunction isWindow(value) {\n return (value == null ? void 0 : value.toString()) === '[object Window]';\n}\nfunction getWindow(node) {\n if (node == null) {\n return window;\n }\n\n if (!isWindow(node)) {\n const ownerDocument = node.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView || window : window;\n }\n\n return node;\n}\n\nfunction getComputedStyle$1(element) {\n return getWindow(element).getComputedStyle(element);\n}\n\nfunction getNodeName(node) {\n return isWindow(node) ? '' : node ? (node.nodeName || '').toLowerCase() : '';\n}\n\nfunction isHTMLElement(value) {\n return value instanceof getWindow(value).HTMLElement;\n}\nfunction isElement(value) {\n return value instanceof getWindow(value).Element;\n}\nfunction isNode(value) {\n return value instanceof getWindow(value).Node;\n}\nfunction isShadowRoot(node) {\n const OwnElement = getWindow(node).ShadowRoot;\n return node instanceof OwnElement || node instanceof ShadowRoot;\n}\nfunction isScrollParent(element) {\n // Firefox wants us to check `-x` and `-y` variations as well\n const {\n overflow,\n overflowX,\n overflowY\n } = getComputedStyle$1(element);\n return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX);\n}\nfunction isTableElement(element) {\n return ['table', 'td', 'th'].includes(getNodeName(element));\n}\nfunction isContainingBlock(element) {\n // TODO: Try and use feature detection here instead\n const isFirefox = navigator.userAgent.toLowerCase().includes('firefox');\n const css = getComputedStyle$1(element); // This is non-exhaustive but covers the most common CSS properties that\n // create a containing block.\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n\n return css.transform !== 'none' || css.perspective !== 'none' || css.contain === 'paint' || ['transform', 'perspective'].includes(css.willChange) || isFirefox && css.willChange === 'filter' || isFirefox && (css.filter ? css.filter !== 'none' : false);\n}\n\nconst min = Math.min;\nconst max = Math.max;\nconst round = Math.round;\n\nfunction getBoundingClientRect(element, includeScale) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n\n const clientRect = element.getBoundingClientRect();\n let scaleX = 1;\n let scaleY = 1;\n\n if (includeScale && isHTMLElement(element)) {\n scaleX = element.offsetWidth > 0 ? round(clientRect.width) / element.offsetWidth || 1 : 1;\n scaleY = element.offsetHeight > 0 ? round(clientRect.height) / element.offsetHeight || 1 : 1;\n }\n\n return {\n width: clientRect.width / scaleX,\n height: clientRect.height / scaleY,\n top: clientRect.top / scaleY,\n right: clientRect.right / scaleX,\n bottom: clientRect.bottom / scaleY,\n left: clientRect.left / scaleX,\n x: clientRect.left / scaleX,\n y: clientRect.top / scaleY\n };\n}\n\nfunction getDocumentElement(node) {\n return ((isNode(node) ? node.ownerDocument : node.document) || window.document).documentElement;\n}\n\nfunction getNodeScroll(element) {\n if (isWindow(element)) {\n return {\n scrollLeft: element.pageXOffset,\n scrollTop: element.pageYOffset\n };\n }\n\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n}\n\nfunction getWindowScrollBarX(element) {\n // If has a CSS width greater than the viewport, then this will be\n // incorrect for RTL.\n return getBoundingClientRect(getDocumentElement(element)).left + getNodeScroll(element).scrollLeft;\n}\n\nfunction isScaled(element) {\n const rect = getBoundingClientRect(element);\n return round(rect.width) !== element.offsetWidth || round(rect.height) !== element.offsetHeight;\n}\n\nfunction getRectRelativeToOffsetParent(element, offsetParent, strategy) {\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n const documentElement = getDocumentElement(offsetParent);\n const rect = getBoundingClientRect(element, isOffsetParentAnElement && isScaled(offsetParent));\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n const offsets = {\n x: 0,\n y: 0\n };\n\n if (isOffsetParentAnElement || !isOffsetParentAnElement && strategy !== 'fixed') {\n if (getNodeName(offsetParent) !== 'body' || isScrollParent(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n\n if (isHTMLElement(offsetParent)) {\n const offsetRect = getBoundingClientRect(offsetParent, true);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n } else if (documentElement) {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n\n return {\n x: rect.left + scroll.scrollLeft - offsets.x,\n y: rect.top + scroll.scrollTop - offsets.y,\n width: rect.width,\n height: rect.height\n };\n}\n\nfunction getParentNode(node) {\n if (getNodeName(node) === 'html') {\n return node;\n }\n\n return (// this is a quicker (but less type safe) way to save quite some bytes from the bundle\n // @ts-ignore\n node.assignedSlot || // step into the shadow DOM of the parent of a slotted node\n node.parentNode || ( // DOM Element detected\n isShadowRoot(node) ? node.host : null) || // ShadowRoot detected\n getDocumentElement(node) // fallback\n\n );\n}\n\nfunction getTrueOffsetParent(element) {\n if (!isHTMLElement(element) || getComputedStyle(element).position === 'fixed') {\n return null;\n }\n\n return element.offsetParent;\n}\n\nfunction getContainingBlock(element) {\n let currentNode = getParentNode(element);\n\n while (isHTMLElement(currentNode) && !['html', 'body'].includes(getNodeName(currentNode))) {\n if (isContainingBlock(currentNode)) {\n return currentNode;\n } else {\n currentNode = currentNode.parentNode;\n }\n }\n\n return null;\n} // Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\n\n\nfunction getOffsetParent(element) {\n const window = getWindow(element);\n let offsetParent = getTrueOffsetParent(element);\n\n while (offsetParent && isTableElement(offsetParent) && getComputedStyle(offsetParent).position === 'static') {\n offsetParent = getTrueOffsetParent(offsetParent);\n }\n\n if (offsetParent && (getNodeName(offsetParent) === 'html' || getNodeName(offsetParent) === 'body' && getComputedStyle(offsetParent).position === 'static' && !isContainingBlock(offsetParent))) {\n return window;\n }\n\n return offsetParent || getContainingBlock(element) || window;\n}\n\nfunction getDimensions(element) {\n return {\n width: element.offsetWidth,\n height: element.offsetHeight\n };\n}\n\nfunction convertOffsetParentRelativeRectToViewportRelativeRect(_ref) {\n let {\n rect,\n offsetParent,\n strategy\n } = _ref;\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n const documentElement = getDocumentElement(offsetParent);\n\n if (offsetParent === documentElement) {\n return rect;\n }\n\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n const offsets = {\n x: 0,\n y: 0\n };\n\n if (isOffsetParentAnElement || !isOffsetParentAnElement && strategy !== 'fixed') {\n if (getNodeName(offsetParent) !== 'body' || isScrollParent(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n\n if (isHTMLElement(offsetParent)) {\n const offsetRect = getBoundingClientRect(offsetParent, true);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n } // This doesn't appear to be need to be negated.\n // else if (documentElement) {\n // offsets.x = getWindowScrollBarX(documentElement);\n // }\n\n }\n\n return { ...rect,\n x: rect.x - scroll.scrollLeft + offsets.x,\n y: rect.y - scroll.scrollTop + offsets.y\n };\n}\n\nfunction getViewportRect(element) {\n const win = getWindow(element);\n const html = getDocumentElement(element);\n const visualViewport = win.visualViewport;\n let width = html.clientWidth;\n let height = html.clientHeight;\n let x = 0;\n let y = 0;\n\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height; // Uses Layout Viewport (like Chrome; Safari does not currently)\n // In Chrome, it returns a value very close to 0 (+/-) but contains rounding\n // errors due to floating point numbers, so we need to check precision.\n // Safari returns a number <= 0, usually < -1 when pinch-zoomed\n\n if (Math.abs(win.innerWidth / visualViewport.scale - visualViewport.width) < 0.01) {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n\n return {\n width,\n height,\n x,\n y\n };\n}\n\n// of the `` and `` rect bounds if horizontally scrollable\n\nfunction getDocumentRect(element) {\n var _element$ownerDocumen;\n\n const html = getDocumentElement(element);\n const scroll = getNodeScroll(element);\n const body = (_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body;\n const width = max(html.scrollWidth, html.clientWidth, body ? body.scrollWidth : 0, body ? body.clientWidth : 0);\n const height = max(html.scrollHeight, html.clientHeight, body ? body.scrollHeight : 0, body ? body.clientHeight : 0);\n let x = -scroll.scrollLeft + getWindowScrollBarX(element);\n const y = -scroll.scrollTop;\n\n if (getComputedStyle$1(body || html).direction === 'rtl') {\n x += max(html.clientWidth, body ? body.clientWidth : 0) - width;\n }\n\n return {\n width,\n height,\n x,\n y\n };\n}\n\nfunction getScrollParent(node) {\n if (['html', 'body', '#document'].includes(getNodeName(node))) {\n // @ts-ignore assume body is always available\n return node.ownerDocument.body;\n }\n\n if (isHTMLElement(node) && isScrollParent(node)) {\n return node;\n }\n\n return getScrollParent(getParentNode(node));\n}\n\nfunction getScrollParents(node, list) {\n var _node$ownerDocument;\n\n if (list === void 0) {\n list = [];\n }\n\n const scrollParent = getScrollParent(node);\n const isBody = scrollParent === ((_node$ownerDocument = node.ownerDocument) == null ? void 0 : _node$ownerDocument.body);\n const win = getWindow(scrollParent);\n const target = isBody ? [win].concat(win.visualViewport || [], isScrollParent(scrollParent) ? scrollParent : []) : scrollParent;\n const updatedList = list.concat(target);\n return isBody ? updatedList : // @ts-ignore: isBody tells us target will be an HTMLElement here\n updatedList.concat(getScrollParents(getParentNode(target)));\n}\n\nfunction contains(parent, child) {\n const rootNode = child.getRootNode == null ? void 0 : child.getRootNode(); // First, attempt with faster native method\n\n if (parent.contains(child)) {\n return true;\n } // then fallback to custom implementation with Shadow DOM support\n else if (rootNode && isShadowRoot(rootNode)) {\n let next = child;\n\n do {\n // use `===` replace node.isSameNode()\n if (next && parent === next) {\n return true;\n } // @ts-ignore: need a better way to handle this...\n\n\n next = next.parentNode || next.host;\n } while (next);\n }\n\n return false;\n}\n\nfunction getInnerBoundingClientRect(element) {\n const clientRect = getBoundingClientRect(element);\n const top = clientRect.top + element.clientTop;\n const left = clientRect.left + element.clientLeft;\n return {\n top,\n left,\n x: left,\n y: top,\n right: left + element.clientWidth,\n bottom: top + element.clientHeight,\n width: element.clientWidth,\n height: element.clientHeight\n };\n}\n\nfunction getClientRectFromClippingParent(element, clippingParent) {\n if (clippingParent === 'viewport') {\n return rectToClientRect(getViewportRect(element));\n }\n\n if (isElement(clippingParent)) {\n return getInnerBoundingClientRect(clippingParent);\n }\n\n return rectToClientRect(getDocumentRect(getDocumentElement(element)));\n} // A \"clipping parent\" is an overflowable container with the characteristic of\n// clipping (or hiding) overflowing elements with a position different from\n// `initial`\n\n\nfunction getClippingParents(element) {\n const clippingParents = getScrollParents(getParentNode(element));\n const canEscapeClipping = ['absolute', 'fixed'].includes(getComputedStyle$1(element).position);\n const clipperElement = canEscapeClipping && isHTMLElement(element) ? getOffsetParent(element) : element;\n\n if (!isElement(clipperElement)) {\n return [];\n } // @ts-ignore isElement check ensures we return Array\n\n\n return clippingParents.filter(clippingParent => isElement(clippingParent) && contains(clippingParent, clipperElement) && getNodeName(clippingParent) !== 'body');\n} // Gets the maximum area that the element is visible in due to any number of\n// clipping parents\n\n\nfunction getClippingClientRect(_ref) {\n let {\n element,\n boundary,\n rootBoundary\n } = _ref;\n const mainClippingParents = boundary === 'clippingParents' ? getClippingParents(element) : [].concat(boundary);\n const clippingParents = [...mainClippingParents, rootBoundary];\n const firstClippingParent = clippingParents[0];\n const clippingRect = clippingParents.reduce((accRect, clippingParent) => {\n const rect = getClientRectFromClippingParent(element, clippingParent);\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromClippingParent(element, firstClippingParent));\n clippingRect.width = clippingRect.right - clippingRect.left;\n clippingRect.height = clippingRect.bottom - clippingRect.top;\n clippingRect.x = clippingRect.left;\n clippingRect.y = clippingRect.top;\n return clippingRect;\n}\n\nconst platform = {\n getElementRects: _ref => {\n let {\n reference,\n floating,\n strategy\n } = _ref;\n return {\n reference: getRectRelativeToOffsetParent(reference, getOffsetParent(floating), strategy),\n floating: { ...getDimensions(floating),\n x: 0,\n y: 0\n }\n };\n },\n convertOffsetParentRelativeRectToViewportRelativeRect: args => convertOffsetParentRelativeRectToViewportRelativeRect(args),\n getOffsetParent: _ref2 => {\n let {\n element\n } = _ref2;\n return getOffsetParent(element);\n },\n isElement: value => isElement(value),\n getDocumentElement: _ref3 => {\n let {\n element\n } = _ref3;\n return getDocumentElement(element);\n },\n getClippingClientRect: args => getClippingClientRect(args),\n getDimensions: _ref4 => {\n let {\n element\n } = _ref4;\n return getDimensions(element);\n },\n getClientRects: _ref5 => {\n let {\n element\n } = _ref5;\n return element.getClientRects();\n }\n};\n\nconst computePosition = (reference, floating, options) => computePosition$1(reference, floating, {\n platform,\n ...options\n});\n\nexport { computePosition, getScrollParents };\n","var __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nimport { defineComponent, openBlock, createElementBlock, normalizeClass, renderSlot, normalizeProps, guardReactiveProps, pushScopeId, popScopeId, nextTick, createBlock, withScopeId, resolveComponent, normalizeStyle, withKeys, createElementVNode, Fragment, createCommentVNode, withCtx, createVNode, mergeProps, toDisplayString, ref, createApp, h } from \"vue\";\nimport { offset, autoPlacement, shift, flip, arrow, size, computePosition, getScrollParents } from \"@floating-ui/dom\";\nfunction assign(to, from) {\n for (const key in from) {\n if (Object.prototype.hasOwnProperty.call(from, key)) {\n if (typeof from[key] === \"object\" && to[key]) {\n assign(to[key], from[key]);\n } else {\n to[key] = from[key];\n }\n }\n }\n}\nconst config = {\n disabled: false,\n distance: 5,\n skidding: 0,\n container: \"body\",\n boundary: void 0,\n instantMove: false,\n disposeTimeout: 5e3,\n popperTriggers: [],\n strategy: \"absolute\",\n preventOverflow: true,\n flip: true,\n shift: true,\n overflowPadding: 0,\n arrowPadding: 0,\n arrowOverflow: true,\n themes: {\n tooltip: {\n placement: \"top\",\n triggers: [\"hover\", \"focus\", \"touch\"],\n hideTriggers: (events) => [...events, \"click\"],\n delay: {\n show: 200,\n hide: 0\n },\n handleResize: false,\n html: false,\n loadingContent: \"...\"\n },\n dropdown: {\n placement: \"bottom\",\n triggers: [\"click\"],\n delay: 0,\n handleResize: true,\n autoHide: true\n },\n menu: {\n $extend: \"dropdown\",\n triggers: [\"hover\", \"focus\"],\n popperTriggers: [\"hover\", \"focus\"],\n delay: {\n show: 0,\n hide: 400\n }\n }\n }\n};\nfunction getDefaultConfig(theme, key) {\n let themeConfig = config.themes[theme] || {};\n let value;\n do {\n value = themeConfig[key];\n if (typeof value === \"undefined\") {\n if (themeConfig.$extend) {\n themeConfig = config.themes[themeConfig.$extend] || {};\n } else {\n themeConfig = null;\n value = config[key];\n }\n } else {\n themeConfig = null;\n }\n } while (themeConfig);\n return value;\n}\nfunction getThemeClasses(theme) {\n const result = [theme];\n let themeConfig = config.themes[theme] || {};\n do {\n if (themeConfig.$extend && !themeConfig.$resetCss) {\n result.push(themeConfig.$extend);\n themeConfig = config.themes[themeConfig.$extend] || {};\n } else {\n themeConfig = null;\n }\n } while (themeConfig);\n return result.map((c) => `v-popper--theme-${c}`);\n}\nfunction getAllParentThemes(theme) {\n const result = [theme];\n let themeConfig = config.themes[theme] || {};\n do {\n if (themeConfig.$extend) {\n result.push(themeConfig.$extend);\n themeConfig = config.themes[themeConfig.$extend] || {};\n } else {\n themeConfig = null;\n }\n } while (themeConfig);\n return result;\n}\nvar vueResize = \"\";\nlet supportsPassive = false;\nif (typeof window !== \"undefined\") {\n supportsPassive = false;\n try {\n const opts = Object.defineProperty({}, \"passive\", {\n get() {\n supportsPassive = true;\n }\n });\n window.addEventListener(\"test\", null, opts);\n } catch (e) {\n }\n}\nlet isIOS = false;\nif (typeof window !== \"undefined\" && typeof navigator !== \"undefined\") {\n isIOS = /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream;\n}\nconst placements = [\"auto\", \"top\", \"bottom\", \"left\", \"right\"].reduce((acc, base) => acc.concat([\n base,\n `${base}-start`,\n `${base}-end`\n]), []);\nconst SHOW_EVENT_MAP = {\n hover: \"mouseenter\",\n focus: \"focus\",\n click: \"click\",\n touch: \"touchstart\"\n};\nconst HIDE_EVENT_MAP = {\n hover: \"mouseleave\",\n focus: \"blur\",\n click: \"click\",\n touch: \"touchend\"\n};\nfunction removeFromArray(array, item) {\n const index = array.indexOf(item);\n if (index !== -1) {\n array.splice(index, 1);\n }\n}\nfunction nextFrame() {\n return new Promise((resolve) => requestAnimationFrame(() => {\n requestAnimationFrame(resolve);\n }));\n}\nconst shownPoppers = [];\nlet hidingPopper = null;\nconst shownPoppersByTheme = {};\nfunction getShownPoppersByTheme(theme) {\n let list = shownPoppersByTheme[theme];\n if (!list) {\n list = shownPoppersByTheme[theme] = [];\n }\n return list;\n}\nlet Element = function() {\n};\nif (typeof window !== \"undefined\") {\n Element = window.Element;\n}\nfunction defaultPropFactory(prop) {\n return function(props) {\n return getDefaultConfig(props.theme, prop);\n };\n}\nconst PROVIDE_KEY = \"__floating-vue__popper\";\nvar PrivatePopper = () => defineComponent({\n name: \"VPopper\",\n provide() {\n return {\n [PROVIDE_KEY]: {\n parentPopper: this\n }\n };\n },\n inject: {\n [PROVIDE_KEY]: { default: null }\n },\n props: {\n theme: {\n type: String,\n required: true\n },\n targetNodes: {\n type: Function,\n required: true\n },\n referenceNode: {\n type: Function,\n default: null\n },\n popperNode: {\n type: Function,\n required: true\n },\n shown: {\n type: Boolean,\n default: false\n },\n showGroup: {\n type: String,\n default: null\n },\n ariaId: {\n default: null\n },\n disabled: {\n type: Boolean,\n default: defaultPropFactory(\"disabled\")\n },\n positioningDisabled: {\n type: Boolean,\n default: defaultPropFactory(\"positioningDisabled\")\n },\n placement: {\n type: String,\n default: defaultPropFactory(\"placement\"),\n validator: (value) => placements.includes(value)\n },\n delay: {\n type: [String, Number, Object],\n default: defaultPropFactory(\"delay\")\n },\n distance: {\n type: [Number, String],\n default: defaultPropFactory(\"distance\")\n },\n skidding: {\n type: [Number, String],\n default: defaultPropFactory(\"skidding\")\n },\n triggers: {\n type: Array,\n default: defaultPropFactory(\"triggers\")\n },\n showTriggers: {\n type: [Array, Function],\n default: defaultPropFactory(\"showTriggers\")\n },\n hideTriggers: {\n type: [Array, Function],\n default: defaultPropFactory(\"hideTriggers\")\n },\n popperTriggers: {\n type: Array,\n default: defaultPropFactory(\"popperTriggers\")\n },\n popperShowTriggers: {\n type: [Array, Function],\n default: defaultPropFactory(\"popperShowTriggers\")\n },\n popperHideTriggers: {\n type: [Array, Function],\n default: defaultPropFactory(\"popperHideTriggers\")\n },\n container: {\n type: [String, Object, Element, Boolean],\n default: defaultPropFactory(\"container\")\n },\n boundary: {\n type: [String, Element],\n default: defaultPropFactory(\"boundary\")\n },\n strategy: {\n type: String,\n validator: (value) => [\"absolute\", \"fixed\"].includes(value),\n default: defaultPropFactory(\"strategy\")\n },\n autoHide: {\n type: [Boolean, Function],\n default: defaultPropFactory(\"autoHide\")\n },\n handleResize: {\n type: Boolean,\n default: defaultPropFactory(\"handleResize\")\n },\n instantMove: {\n type: Boolean,\n default: defaultPropFactory(\"instantMove\")\n },\n eagerMount: {\n type: Boolean,\n default: defaultPropFactory(\"eagerMount\")\n },\n popperClass: {\n type: [String, Array, Object],\n default: defaultPropFactory(\"popperClass\")\n },\n computeTransformOrigin: {\n type: Boolean,\n default: defaultPropFactory(\"computeTransformOrigin\")\n },\n autoMinSize: {\n type: Boolean,\n default: defaultPropFactory(\"autoMinSize\")\n },\n autoSize: {\n type: [Boolean, String],\n default: defaultPropFactory(\"autoSize\")\n },\n autoMaxSize: {\n type: Boolean,\n default: defaultPropFactory(\"autoMaxSize\")\n },\n autoBoundaryMaxSize: {\n type: Boolean,\n default: defaultPropFactory(\"autoBoundaryMaxSize\")\n },\n preventOverflow: {\n type: Boolean,\n default: defaultPropFactory(\"preventOverflow\")\n },\n overflowPadding: {\n type: [Number, String],\n default: defaultPropFactory(\"overflowPadding\")\n },\n arrowPadding: {\n type: [Number, String],\n default: defaultPropFactory(\"arrowPadding\")\n },\n arrowOverflow: {\n type: Boolean,\n default: defaultPropFactory(\"arrowOverflow\")\n },\n flip: {\n type: Boolean,\n default: defaultPropFactory(\"flip\")\n },\n shift: {\n type: Boolean,\n default: defaultPropFactory(\"shift\")\n },\n shiftCrossAxis: {\n type: Boolean,\n default: defaultPropFactory(\"shiftCrossAxis\")\n },\n noAutoFocus: {\n type: Boolean,\n default: defaultPropFactory(\"noAutoFocus\")\n }\n },\n emits: [\n \"show\",\n \"hide\",\n \"update:shown\",\n \"apply-show\",\n \"apply-hide\",\n \"close-group\",\n \"close-directive\",\n \"auto-hide\",\n \"resize\",\n \"dispose\"\n ],\n data() {\n return {\n isShown: false,\n isMounted: false,\n skipTransition: false,\n classes: {\n showFrom: false,\n showTo: false,\n hideFrom: false,\n hideTo: true\n },\n result: {\n x: 0,\n y: 0,\n placement: \"\",\n strategy: this.strategy,\n arrow: {\n x: 0,\n y: 0,\n centerOffset: 0\n },\n transformOrigin: null\n },\n shownChildren: new Set(),\n lastAutoHide: true\n };\n },\n computed: {\n popperId() {\n return this.ariaId != null ? this.ariaId : this.randomId;\n },\n shouldMountContent() {\n return this.eagerMount || this.isMounted;\n },\n slotData() {\n return {\n popperId: this.popperId,\n isShown: this.isShown,\n shouldMountContent: this.shouldMountContent,\n skipTransition: this.skipTransition,\n autoHide: typeof this.autoHide === \"function\" ? this.lastAutoHide : this.autoHide,\n show: this.show,\n hide: this.hide,\n handleResize: this.handleResize,\n onResize: this.onResize,\n classes: __spreadProps(__spreadValues({}, this.classes), {\n popperClass: this.popperClass\n }),\n result: this.positioningDisabled ? null : this.result,\n attrs: this.$attrs\n };\n },\n parentPopper() {\n var _a;\n return (_a = this[PROVIDE_KEY]) == null ? void 0 : _a.parentPopper;\n },\n hasPopperShowTriggerHover() {\n var _a, _b;\n return ((_a = this.popperTriggers) == null ? void 0 : _a.includes(\"hover\")) || ((_b = this.popperShowTriggers) == null ? void 0 : _b.includes(\"hover\"));\n }\n },\n watch: __spreadValues(__spreadValues({\n shown: \"$_autoShowHide\",\n disabled(value) {\n if (value) {\n this.dispose();\n } else {\n this.init();\n }\n },\n async container() {\n if (this.isShown) {\n this.$_ensureTeleport();\n await this.$_computePosition();\n }\n }\n }, [\n \"triggers\",\n \"positioningDisabled\"\n ].reduce((acc, prop) => {\n acc[prop] = \"$_refreshListeners\";\n return acc;\n }, {})), [\n \"placement\",\n \"distance\",\n \"skidding\",\n \"boundary\",\n \"strategy\",\n \"overflowPadding\",\n \"arrowPadding\",\n \"preventOverflow\",\n \"shift\",\n \"shiftCrossAxis\",\n \"flip\"\n ].reduce((acc, prop) => {\n acc[prop] = \"$_computePosition\";\n return acc;\n }, {})),\n created() {\n this.$_isDisposed = true;\n this.randomId = `popper_${[Math.random(), Date.now()].map((n) => n.toString(36).substring(2, 10)).join(\"_\")}`;\n if (this.autoMinSize) {\n console.warn('[floating-vue] `autoMinSize` option is deprecated. Use `autoSize=\"min\"` instead.');\n }\n if (this.autoMaxSize) {\n console.warn(\"[floating-vue] `autoMaxSize` option is deprecated. Use `autoBoundaryMaxSize` instead.\");\n }\n },\n mounted() {\n this.init();\n this.$_detachPopperNode();\n },\n activated() {\n this.$_autoShowHide();\n },\n deactivated() {\n this.hide();\n },\n beforeUnmount() {\n this.dispose();\n },\n methods: {\n show({ event = null, skipDelay = false, force = false } = {}) {\n var _a, _b;\n if (((_a = this.parentPopper) == null ? void 0 : _a.lockedChild) && this.parentPopper.lockedChild !== this)\n return;\n this.$_pendingHide = false;\n if (force || !this.disabled) {\n if (((_b = this.parentPopper) == null ? void 0 : _b.lockedChild) === this) {\n this.parentPopper.lockedChild = null;\n }\n this.$_scheduleShow(event, skipDelay);\n this.$emit(\"show\");\n this.$_showFrameLocked = true;\n requestAnimationFrame(() => {\n this.$_showFrameLocked = false;\n });\n }\n this.$emit(\"update:shown\", true);\n },\n hide({ event = null, skipDelay = false } = {}) {\n var _a;\n if (this.$_hideInProgress)\n return;\n if (this.shownChildren.size > 0) {\n this.$_pendingHide = true;\n return;\n }\n if (this.hasPopperShowTriggerHover && this.$_isAimingPopper()) {\n if (this.parentPopper) {\n this.parentPopper.lockedChild = this;\n clearTimeout(this.parentPopper.lockedChildTimer);\n this.parentPopper.lockedChildTimer = setTimeout(() => {\n if (this.parentPopper.lockedChild === this) {\n this.parentPopper.lockedChild.hide({ skipDelay });\n this.parentPopper.lockedChild = null;\n }\n }, 1e3);\n }\n return;\n }\n if (((_a = this.parentPopper) == null ? void 0 : _a.lockedChild) === this) {\n this.parentPopper.lockedChild = null;\n }\n this.$_pendingHide = false;\n this.$_scheduleHide(event, skipDelay);\n this.$emit(\"hide\");\n this.$emit(\"update:shown\", false);\n },\n init() {\n var _a, _b;\n if (!this.$_isDisposed)\n return;\n this.$_isDisposed = false;\n this.isMounted = false;\n this.$_events = [];\n this.$_preventShow = false;\n this.$_referenceNode = (_b = (_a = this.referenceNode) == null ? void 0 : _a.call(this)) != null ? _b : this.$el;\n this.$_targetNodes = this.targetNodes().filter((e) => e.nodeType === e.ELEMENT_NODE);\n this.$_popperNode = this.popperNode();\n this.$_innerNode = this.$_popperNode.querySelector(\".v-popper__inner\");\n this.$_arrowNode = this.$_popperNode.querySelector(\".v-popper__arrow-container\");\n this.$_swapTargetAttrs(\"title\", \"data-original-title\");\n this.$_detachPopperNode();\n if (this.triggers.length) {\n this.$_addEventListeners();\n }\n if (this.shown) {\n this.show();\n }\n },\n dispose() {\n if (this.$_isDisposed)\n return;\n this.$_isDisposed = true;\n this.$_removeEventListeners();\n this.hide({ skipDelay: true });\n this.$_detachPopperNode();\n this.isMounted = false;\n this.isShown = false;\n this.$_updateParentShownChildren(false);\n this.$_swapTargetAttrs(\"data-original-title\", \"title\");\n this.$emit(\"dispose\");\n },\n async onResize() {\n if (this.isShown) {\n await this.$_computePosition();\n this.$emit(\"resize\");\n }\n },\n async $_computePosition() {\n var _a;\n if (this.$_isDisposed || this.positioningDisabled)\n return;\n const options2 = {\n strategy: this.strategy,\n middleware: []\n };\n if (this.distance || this.skidding) {\n options2.middleware.push(offset({\n mainAxis: this.distance,\n crossAxis: this.skidding\n }));\n }\n const isPlacementAuto = this.placement.startsWith(\"auto\");\n if (isPlacementAuto) {\n options2.middleware.push(autoPlacement({\n alignment: (_a = this.placement.split(\"-\")[1]) != null ? _a : \"\"\n }));\n } else {\n options2.placement = this.placement;\n }\n if (this.preventOverflow) {\n if (this.shift) {\n options2.middleware.push(shift({\n padding: this.overflowPadding,\n boundary: this.boundary,\n crossAxis: this.shiftCrossAxis\n }));\n }\n if (!isPlacementAuto && this.flip) {\n options2.middleware.push(flip({\n padding: this.overflowPadding,\n boundary: this.boundary\n }));\n }\n }\n options2.middleware.push(arrow({\n element: this.$_arrowNode,\n padding: this.arrowPadding\n }));\n if (this.arrowOverflow) {\n options2.middleware.push({\n name: \"arrowOverflow\",\n fn: ({ placement, rects, middlewareData }) => {\n let overflow;\n const { centerOffset } = middlewareData.arrow;\n if (placement.startsWith(\"top\") || placement.startsWith(\"bottom\")) {\n overflow = Math.abs(centerOffset) > rects.reference.width / 2;\n } else {\n overflow = Math.abs(centerOffset) > rects.reference.height / 2;\n }\n return {\n data: {\n overflow\n }\n };\n }\n });\n }\n if (this.autoMinSize || this.autoSize) {\n const autoSize = this.autoSize ? this.autoSize : this.autoMinSize ? \"min\" : null;\n options2.middleware.push({\n name: \"autoSize\",\n fn: ({ rects, placement, middlewareData }) => {\n var _a2;\n if ((_a2 = middlewareData.autoSize) == null ? void 0 : _a2.skip) {\n return {};\n }\n let width;\n let height;\n if (placement.startsWith(\"top\") || placement.startsWith(\"bottom\")) {\n width = rects.reference.width;\n } else {\n height = rects.reference.height;\n }\n this.$_innerNode.style[autoSize === \"min\" ? \"minWidth\" : autoSize === \"max\" ? \"maxWidth\" : \"width\"] = width != null ? `${width}px` : null;\n this.$_innerNode.style[autoSize === \"min\" ? \"minHeight\" : autoSize === \"max\" ? \"maxHeight\" : \"height\"] = height != null ? `${height}px` : null;\n return {\n data: {\n skip: true\n },\n reset: {\n rects: true\n }\n };\n }\n });\n }\n if (this.autoMaxSize || this.autoBoundaryMaxSize) {\n this.$_innerNode.style.maxWidth = null;\n this.$_innerNode.style.maxHeight = null;\n options2.middleware.push(size({\n boundary: this.boundary,\n padding: this.overflowPadding,\n apply: ({ width, height }) => {\n this.$_innerNode.style.maxWidth = width != null ? `${width}px` : null;\n this.$_innerNode.style.maxHeight = height != null ? `${height}px` : null;\n }\n }));\n }\n const data = await computePosition(this.$_referenceNode, this.$_popperNode, options2);\n Object.assign(this.result, {\n x: data.x,\n y: data.y,\n placement: data.placement,\n strategy: data.strategy,\n arrow: __spreadValues(__spreadValues({}, data.middlewareData.arrow), data.middlewareData.arrowOverflow)\n });\n },\n $_scheduleShow(event = null, skipDelay = false) {\n this.$_updateParentShownChildren(true);\n this.$_hideInProgress = false;\n clearTimeout(this.$_scheduleTimer);\n if (hidingPopper && this.instantMove && hidingPopper.instantMove && hidingPopper !== this.parentPopper) {\n hidingPopper.$_applyHide(true);\n this.$_applyShow(true);\n return;\n }\n if (skipDelay) {\n this.$_applyShow();\n } else {\n this.$_scheduleTimer = setTimeout(this.$_applyShow.bind(this), this.$_computeDelay(\"show\"));\n }\n },\n $_scheduleHide(event = null, skipDelay = false) {\n if (this.shownChildren.size > 0) {\n this.$_pendingHide = true;\n return;\n }\n this.$_updateParentShownChildren(false);\n this.$_hideInProgress = true;\n clearTimeout(this.$_scheduleTimer);\n if (this.isShown) {\n hidingPopper = this;\n }\n if (skipDelay) {\n this.$_applyHide();\n } else {\n this.$_scheduleTimer = setTimeout(this.$_applyHide.bind(this), this.$_computeDelay(\"hide\"));\n }\n },\n $_computeDelay(type) {\n const delay = this.delay;\n return parseInt(delay && delay[type] || delay || 0);\n },\n async $_applyShow(skipTransition = false) {\n clearTimeout(this.$_disposeTimer);\n clearTimeout(this.$_scheduleTimer);\n this.skipTransition = skipTransition;\n if (this.isShown) {\n return;\n }\n this.$_ensureTeleport();\n await nextFrame();\n await this.$_computePosition();\n await this.$_applyShowEffect();\n if (!this.positioningDisabled) {\n this.$_registerEventListeners([\n ...getScrollParents(this.$_referenceNode),\n ...getScrollParents(this.$_popperNode)\n ], \"scroll\", () => {\n this.$_computePosition();\n });\n }\n },\n async $_applyShowEffect() {\n if (this.$_hideInProgress)\n return;\n if (this.computeTransformOrigin) {\n const bounds = this.$_referenceNode.getBoundingClientRect();\n const popperWrapper = this.$_popperNode.querySelector(\".v-popper__wrapper\");\n const parentBounds = popperWrapper.parentNode.getBoundingClientRect();\n const x = bounds.x + bounds.width / 2 - (parentBounds.left + popperWrapper.offsetLeft);\n const y = bounds.y + bounds.height / 2 - (parentBounds.top + popperWrapper.offsetTop);\n this.result.transformOrigin = `${x}px ${y}px`;\n }\n this.isShown = true;\n this.$_applyAttrsToTarget({\n \"aria-describedby\": this.popperId,\n \"data-popper-shown\": \"\"\n });\n const showGroup = this.showGroup;\n if (showGroup) {\n let popover;\n for (let i = 0; i < shownPoppers.length; i++) {\n popover = shownPoppers[i];\n if (popover.showGroup !== showGroup) {\n popover.hide();\n popover.$emit(\"close-group\");\n }\n }\n }\n shownPoppers.push(this);\n document.body.classList.add(\"v-popper--some-open\");\n for (const theme of getAllParentThemes(this.theme)) {\n getShownPoppersByTheme(theme).push(this);\n document.body.classList.add(`v-popper--some-open--${theme}`);\n }\n this.$emit(\"apply-show\");\n this.classes.showFrom = true;\n this.classes.showTo = false;\n this.classes.hideFrom = false;\n this.classes.hideTo = false;\n await nextFrame();\n this.classes.showFrom = false;\n this.classes.showTo = true;\n if (!this.noAutoFocus)\n this.$_popperNode.focus();\n },\n async $_applyHide(skipTransition = false) {\n if (this.shownChildren.size > 0) {\n this.$_pendingHide = true;\n this.$_hideInProgress = false;\n return;\n }\n clearTimeout(this.$_scheduleTimer);\n if (!this.isShown) {\n return;\n }\n this.skipTransition = skipTransition;\n removeFromArray(shownPoppers, this);\n if (shownPoppers.length === 0) {\n document.body.classList.remove(\"v-popper--some-open\");\n }\n for (const theme of getAllParentThemes(this.theme)) {\n const list = getShownPoppersByTheme(theme);\n removeFromArray(list, this);\n if (list.length === 0) {\n document.body.classList.remove(`v-popper--some-open--${theme}`);\n }\n }\n if (hidingPopper === this) {\n hidingPopper = null;\n }\n this.isShown = false;\n this.$_applyAttrsToTarget({\n \"aria-describedby\": void 0,\n \"data-popper-shown\": void 0\n });\n clearTimeout(this.$_disposeTimer);\n const disposeTime = getDefaultConfig(this.theme, \"disposeTimeout\");\n if (disposeTime !== null) {\n this.$_disposeTimer = setTimeout(() => {\n if (this.$_popperNode) {\n this.$_detachPopperNode();\n this.isMounted = false;\n }\n }, disposeTime);\n }\n this.$_removeEventListeners(\"scroll\");\n this.$emit(\"apply-hide\");\n this.classes.showFrom = false;\n this.classes.showTo = false;\n this.classes.hideFrom = true;\n this.classes.hideTo = false;\n await nextFrame();\n this.classes.hideFrom = false;\n this.classes.hideTo = true;\n },\n $_autoShowHide() {\n if (this.shown) {\n this.show();\n } else {\n this.hide();\n }\n },\n $_ensureTeleport() {\n if (this.$_isDisposed)\n return;\n let container = this.container;\n if (typeof container === \"string\") {\n container = window.document.querySelector(container);\n } else if (container === false) {\n container = this.$_targetNodes[0].parentNode;\n }\n if (!container) {\n throw new Error(\"No container for popover: \" + this.container);\n }\n container.appendChild(this.$_popperNode);\n this.isMounted = true;\n },\n $_addEventListeners() {\n const handleShow = (event) => {\n if (this.isShown && !this.$_hideInProgress) {\n return;\n }\n event.usedByTooltip = true;\n !this.$_preventShow && this.show({ event });\n };\n this.$_registerTriggerListeners(this.$_targetNodes, SHOW_EVENT_MAP, this.triggers, this.showTriggers, handleShow);\n this.$_registerTriggerListeners([this.$_popperNode], SHOW_EVENT_MAP, this.popperTriggers, this.popperShowTriggers, handleShow);\n const handleHide = (event) => {\n if (event.usedByTooltip) {\n return;\n }\n this.hide({ event });\n };\n this.$_registerTriggerListeners(this.$_targetNodes, HIDE_EVENT_MAP, this.triggers, this.hideTriggers, handleHide);\n this.$_registerTriggerListeners([this.$_popperNode], HIDE_EVENT_MAP, this.popperTriggers, this.popperHideTriggers, handleHide);\n },\n $_registerEventListeners(targetNodes, eventType, handler) {\n this.$_events.push({ targetNodes, eventType, handler });\n targetNodes.forEach((node) => node.addEventListener(eventType, handler, supportsPassive ? {\n passive: true\n } : void 0));\n },\n $_registerTriggerListeners(targetNodes, eventMap, commonTriggers, customTrigger, handler) {\n let triggers = commonTriggers;\n if (customTrigger != null) {\n triggers = typeof customTrigger === \"function\" ? customTrigger(triggers) : customTrigger;\n }\n triggers.forEach((trigger) => {\n const eventType = eventMap[trigger];\n if (eventType) {\n this.$_registerEventListeners(targetNodes, eventType, handler);\n }\n });\n },\n $_removeEventListeners(filterEventType) {\n const newList = [];\n this.$_events.forEach((listener) => {\n const { targetNodes, eventType, handler } = listener;\n if (!filterEventType || filterEventType === eventType) {\n targetNodes.forEach((node) => node.removeEventListener(eventType, handler));\n } else {\n newList.push(listener);\n }\n });\n this.$_events = newList;\n },\n $_refreshListeners() {\n if (!this.$_isDisposed) {\n this.$_removeEventListeners();\n this.$_addEventListeners();\n }\n },\n $_handleGlobalClose(event, touch = false) {\n if (this.$_showFrameLocked)\n return;\n this.hide({ event });\n if (event.closePopover) {\n this.$emit(\"close-directive\");\n } else {\n this.$emit(\"auto-hide\");\n }\n if (touch) {\n this.$_preventShow = true;\n setTimeout(() => {\n this.$_preventShow = false;\n }, 300);\n }\n },\n $_detachPopperNode() {\n this.$_popperNode.parentNode && this.$_popperNode.parentNode.removeChild(this.$_popperNode);\n },\n $_swapTargetAttrs(attrFrom, attrTo) {\n for (const el of this.$_targetNodes) {\n const value = el.getAttribute(attrFrom);\n if (value) {\n el.removeAttribute(attrFrom);\n el.setAttribute(attrTo, value);\n }\n }\n },\n $_applyAttrsToTarget(attrs) {\n for (const el of this.$_targetNodes) {\n for (const n in attrs) {\n const value = attrs[n];\n if (value == null) {\n el.removeAttribute(n);\n } else {\n el.setAttribute(n, value);\n }\n }\n }\n },\n $_updateParentShownChildren(value) {\n let parent = this.parentPopper;\n while (parent) {\n if (value) {\n parent.shownChildren.add(this.randomId);\n } else {\n parent.shownChildren.delete(this.randomId);\n if (parent.$_pendingHide) {\n parent.hide();\n }\n }\n parent = parent.parentPopper;\n }\n },\n $_isAimingPopper() {\n const referenceBounds = this.$_referenceNode.getBoundingClientRect();\n if (mouseX >= referenceBounds.left && mouseX <= referenceBounds.right && mouseY >= referenceBounds.top && mouseY <= referenceBounds.bottom) {\n const popperBounds = this.$_popperNode.getBoundingClientRect();\n const vectorX = mouseX - mousePreviousX;\n const vectorY = mouseY - mousePreviousY;\n const distance = popperBounds.left + popperBounds.width / 2 - mousePreviousX + (popperBounds.top + popperBounds.height / 2) - mousePreviousY;\n const newVectorLength = distance + popperBounds.width + popperBounds.height;\n const edgeX = mousePreviousX + vectorX * newVectorLength;\n const edgeY = mousePreviousY + vectorY * newVectorLength;\n return lineIntersectsLine(mousePreviousX, mousePreviousY, edgeX, edgeY, popperBounds.left, popperBounds.top, popperBounds.left, popperBounds.bottom) || lineIntersectsLine(mousePreviousX, mousePreviousY, edgeX, edgeY, popperBounds.left, popperBounds.top, popperBounds.right, popperBounds.top) || lineIntersectsLine(mousePreviousX, mousePreviousY, edgeX, edgeY, popperBounds.right, popperBounds.top, popperBounds.right, popperBounds.bottom) || lineIntersectsLine(mousePreviousX, mousePreviousY, edgeX, edgeY, popperBounds.left, popperBounds.bottom, popperBounds.right, popperBounds.bottom);\n }\n return false;\n }\n },\n render() {\n return this.$slots.default(this.slotData);\n }\n});\nif (typeof document !== \"undefined\" && typeof window !== \"undefined\") {\n if (isIOS) {\n document.addEventListener(\"touchstart\", handleGlobalMousedown, supportsPassive ? {\n passive: true,\n capture: true\n } : true);\n document.addEventListener(\"touchend\", handleGlobalTouchend, supportsPassive ? {\n passive: true,\n capture: true\n } : true);\n } else {\n window.addEventListener(\"mousedown\", handleGlobalMousedown, true);\n window.addEventListener(\"click\", handleGlobalClick, true);\n }\n window.addEventListener(\"resize\", computePositionAllShownPoppers);\n}\nfunction handleGlobalMousedown(event) {\n for (let i = 0; i < shownPoppers.length; i++) {\n const popper = shownPoppers[i];\n try {\n const popperContent = popper.popperNode();\n popper.$_mouseDownContains = popperContent.contains(event.target);\n } catch (e) {\n }\n }\n}\nfunction handleGlobalClick(event) {\n handleGlobalClose(event);\n}\nfunction handleGlobalTouchend(event) {\n handleGlobalClose(event, true);\n}\nfunction handleGlobalClose(event, touch = false) {\n const preventClose = {};\n for (let i = shownPoppers.length - 1; i >= 0; i--) {\n const popper = shownPoppers[i];\n try {\n const contains = popper.$_containsGlobalTarget = isContainingEventTarget(popper, event);\n popper.$_pendingHide = false;\n requestAnimationFrame(() => {\n popper.$_pendingHide = false;\n if (preventClose[popper.randomId])\n return;\n if (shouldAutoHide(popper, contains, event)) {\n popper.$_handleGlobalClose(event, touch);\n if (!event.closeAllPopover && event.closePopover && contains) {\n let parent2 = popper.parentPopper;\n while (parent2) {\n preventClose[parent2.randomId] = true;\n parent2 = parent2.parentPopper;\n }\n return;\n }\n let parent = popper.parentPopper;\n while (parent) {\n if (shouldAutoHide(parent, parent.$_containsGlobalTarget, event)) {\n parent.$_handleGlobalClose(event, touch);\n } else {\n break;\n }\n parent = parent.parentPopper;\n }\n }\n });\n } catch (e) {\n }\n }\n}\nfunction isContainingEventTarget(popper, event) {\n const popperContent = popper.popperNode();\n return popper.$_mouseDownContains || popperContent.contains(event.target);\n}\nfunction shouldAutoHide(popper, contains, event) {\n return event.closeAllPopover || event.closePopover && contains || getAutoHideResult(popper, event) && !contains;\n}\nfunction getAutoHideResult(popper, event) {\n if (typeof popper.autoHide === \"function\") {\n const result = popper.autoHide(event);\n popper.lastAutoHide = result;\n return result;\n }\n return popper.autoHide;\n}\nfunction computePositionAllShownPoppers(event) {\n for (let i = 0; i < shownPoppers.length; i++) {\n const popper = shownPoppers[i];\n popper.$_computePosition(event);\n }\n}\nfunction hideAllPoppers() {\n for (let i = 0; i < shownPoppers.length; i++) {\n const popper = shownPoppers[i];\n popper.hide();\n }\n}\nlet mousePreviousX = 0;\nlet mousePreviousY = 0;\nlet mouseX = 0;\nlet mouseY = 0;\nif (typeof window !== \"undefined\") {\n window.addEventListener(\"mousemove\", (event) => {\n mousePreviousX = mouseX;\n mousePreviousY = mouseY;\n mouseX = event.clientX;\n mouseY = event.clientY;\n }, supportsPassive ? {\n passive: true\n } : void 0);\n}\nfunction lineIntersectsLine(x1, y1, x2, y2, x3, y3, x4, y4) {\n const uA = ((x4 - x3) * (y1 - y3) - (y4 - y3) * (x1 - x3)) / ((y4 - y3) * (x2 - x1) - (x4 - x3) * (y2 - y1));\n const uB = ((x2 - x1) * (y1 - y3) - (y2 - y1) * (x1 - x3)) / ((y4 - y3) * (x2 - x1) - (x4 - x3) * (y2 - y1));\n return uA >= 0 && uA <= 1 && uB >= 0 && uB <= 1;\n}\nvar _export_sfc = (sfc, props) => {\n const target = sfc.__vccOpts || sfc;\n for (const [key, val] of props) {\n target[key] = val;\n }\n return target;\n};\nconst _sfc_main$6 = {\n extends: PrivatePopper()\n};\nfunction _sfc_render$3(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"div\", {\n ref: \"reference\",\n class: normalizeClass([\"v-popper\", {\n \"v-popper--shown\": _ctx.slotData.isShown\n }])\n }, [\n renderSlot(_ctx.$slots, \"default\", normalizeProps(guardReactiveProps(_ctx.slotData)))\n ], 2);\n}\nvar Popper$1 = /* @__PURE__ */ _export_sfc(_sfc_main$6, [[\"render\", _sfc_render$3]]);\nfunction getInternetExplorerVersion() {\n var ua = window.navigator.userAgent;\n var msie = ua.indexOf(\"MSIE \");\n if (msie > 0) {\n return parseInt(ua.substring(msie + 5, ua.indexOf(\".\", msie)), 10);\n }\n var trident = ua.indexOf(\"Trident/\");\n if (trident > 0) {\n var rv = ua.indexOf(\"rv:\");\n return parseInt(ua.substring(rv + 3, ua.indexOf(\".\", rv)), 10);\n }\n var edge = ua.indexOf(\"Edge/\");\n if (edge > 0) {\n return parseInt(ua.substring(edge + 5, ua.indexOf(\".\", edge)), 10);\n }\n return -1;\n}\nlet isIE;\nfunction initCompat() {\n if (!initCompat.init) {\n initCompat.init = true;\n isIE = getInternetExplorerVersion() !== -1;\n }\n}\nvar script = {\n name: \"ResizeObserver\",\n props: {\n emitOnMount: {\n type: Boolean,\n default: false\n },\n ignoreWidth: {\n type: Boolean,\n default: false\n },\n ignoreHeight: {\n type: Boolean,\n default: false\n }\n },\n emits: [\n \"notify\"\n ],\n mounted() {\n initCompat();\n nextTick(() => {\n this._w = this.$el.offsetWidth;\n this._h = this.$el.offsetHeight;\n if (this.emitOnMount) {\n this.emitSize();\n }\n });\n const object = document.createElement(\"object\");\n this._resizeObject = object;\n object.setAttribute(\"aria-hidden\", \"true\");\n object.setAttribute(\"tabindex\", -1);\n object.onload = this.addResizeHandlers;\n object.type = \"text/html\";\n if (isIE) {\n this.$el.appendChild(object);\n }\n object.data = \"about:blank\";\n if (!isIE) {\n this.$el.appendChild(object);\n }\n },\n beforeUnmount() {\n this.removeResizeHandlers();\n },\n methods: {\n compareAndNotify() {\n if (!this.ignoreWidth && this._w !== this.$el.offsetWidth || !this.ignoreHeight && this._h !== this.$el.offsetHeight) {\n this._w = this.$el.offsetWidth;\n this._h = this.$el.offsetHeight;\n this.emitSize();\n }\n },\n emitSize() {\n this.$emit(\"notify\", {\n width: this._w,\n height: this._h\n });\n },\n addResizeHandlers() {\n this._resizeObject.contentDocument.defaultView.addEventListener(\"resize\", this.compareAndNotify);\n this.compareAndNotify();\n },\n removeResizeHandlers() {\n if (this._resizeObject && this._resizeObject.onload) {\n if (!isIE && this._resizeObject.contentDocument) {\n this._resizeObject.contentDocument.defaultView.removeEventListener(\"resize\", this.compareAndNotify);\n }\n this.$el.removeChild(this._resizeObject);\n this._resizeObject.onload = null;\n this._resizeObject = null;\n }\n }\n }\n};\nconst _withId = /* @__PURE__ */ withScopeId(\"data-v-b329ee4c\");\npushScopeId(\"data-v-b329ee4c\");\nconst _hoisted_1$2 = {\n class: \"resize-observer\",\n tabindex: \"-1\"\n};\npopScopeId();\nconst render = /* @__PURE__ */ _withId((_ctx, _cache, $props, $setup, $data, $options) => {\n return openBlock(), createBlock(\"div\", _hoisted_1$2);\n});\nscript.render = render;\nscript.__scopeId = \"data-v-b329ee4c\";\nscript.__file = \"src/components/ResizeObserver.vue\";\nvar PrivateThemeClass = (prop = \"theme\") => ({\n computed: {\n themeClass() {\n return getThemeClasses(this[prop]);\n }\n }\n});\nvar PopperContent_vue_vue_type_style_index_0_lang = \"\";\nconst _sfc_main$5 = defineComponent({\n name: \"VPopperContent\",\n components: {\n ResizeObserver: script\n },\n mixins: [\n PrivateThemeClass()\n ],\n props: {\n popperId: String,\n theme: String,\n shown: Boolean,\n mounted: Boolean,\n skipTransition: Boolean,\n autoHide: Boolean,\n handleResize: Boolean,\n classes: Object,\n result: Object\n },\n emits: [\n \"hide\",\n \"resize\"\n ],\n methods: {\n toPx(value) {\n if (value != null && !isNaN(value)) {\n return `${value}px`;\n }\n return null;\n }\n }\n});\nconst _hoisted_1$1 = [\"id\", \"aria-hidden\", \"tabindex\", \"data-popper-placement\"];\nconst _hoisted_2$1 = {\n ref: \"inner\",\n class: \"v-popper__inner\"\n};\nconst _hoisted_3 = /* @__PURE__ */ createElementVNode(\"div\", { class: \"v-popper__arrow-outer\" }, null, -1);\nconst _hoisted_4 = /* @__PURE__ */ createElementVNode(\"div\", { class: \"v-popper__arrow-inner\" }, null, -1);\nconst _hoisted_5 = [\n _hoisted_3,\n _hoisted_4\n];\nfunction _sfc_render$2(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_ResizeObserver = resolveComponent(\"ResizeObserver\");\n return openBlock(), createElementBlock(\"div\", {\n id: _ctx.popperId,\n ref: \"popover\",\n class: normalizeClass([\"v-popper__popper\", [\n _ctx.themeClass,\n _ctx.classes.popperClass,\n {\n \"v-popper__popper--shown\": _ctx.shown,\n \"v-popper__popper--hidden\": !_ctx.shown,\n \"v-popper__popper--show-from\": _ctx.classes.showFrom,\n \"v-popper__popper--show-to\": _ctx.classes.showTo,\n \"v-popper__popper--hide-from\": _ctx.classes.hideFrom,\n \"v-popper__popper--hide-to\": _ctx.classes.hideTo,\n \"v-popper__popper--skip-transition\": _ctx.skipTransition,\n \"v-popper__popper--arrow-overflow\": _ctx.result && _ctx.result.arrow.overflow,\n \"v-popper__popper--no-positioning\": !_ctx.result\n }\n ]]),\n style: normalizeStyle(_ctx.result ? {\n position: _ctx.result.strategy,\n transform: `translate3d(${Math.round(_ctx.result.x)}px,${Math.round(_ctx.result.y)}px,0)`\n } : void 0),\n \"aria-hidden\": _ctx.shown ? \"false\" : \"true\",\n tabindex: _ctx.autoHide ? 0 : void 0,\n \"data-popper-placement\": _ctx.result ? _ctx.result.placement : void 0,\n onKeyup: _cache[2] || (_cache[2] = withKeys(($event) => _ctx.autoHide && _ctx.$emit(\"hide\"), [\"esc\"]))\n }, [\n createElementVNode(\"div\", {\n class: \"v-popper__backdrop\",\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.autoHide && _ctx.$emit(\"hide\"))\n }),\n createElementVNode(\"div\", {\n class: \"v-popper__wrapper\",\n style: normalizeStyle(_ctx.result ? {\n transformOrigin: _ctx.result.transformOrigin\n } : void 0)\n }, [\n createElementVNode(\"div\", _hoisted_2$1, [\n _ctx.mounted ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [\n createElementVNode(\"div\", null, [\n renderSlot(_ctx.$slots, \"default\")\n ]),\n _ctx.handleResize ? (openBlock(), createBlock(_component_ResizeObserver, {\n key: 0,\n onNotify: _cache[1] || (_cache[1] = ($event) => _ctx.$emit(\"resize\", $event))\n })) : createCommentVNode(\"\", true)\n ], 64)) : createCommentVNode(\"\", true)\n ], 512),\n createElementVNode(\"div\", {\n ref: \"arrow\",\n class: \"v-popper__arrow-container\",\n style: normalizeStyle(_ctx.result ? {\n left: _ctx.toPx(_ctx.result.arrow.x),\n top: _ctx.toPx(_ctx.result.arrow.y)\n } : void 0)\n }, _hoisted_5, 4)\n ], 4)\n ], 46, _hoisted_1$1);\n}\nvar PrivatePopperContent = /* @__PURE__ */ _export_sfc(_sfc_main$5, [[\"render\", _sfc_render$2]]);\nvar PrivatePopperMethods = {\n methods: {\n show(...args) {\n return this.$refs.popper.show(...args);\n },\n hide(...args) {\n return this.$refs.popper.hide(...args);\n },\n dispose(...args) {\n return this.$refs.popper.dispose(...args);\n },\n onResize(...args) {\n return this.$refs.popper.onResize(...args);\n }\n }\n};\nconst _sfc_main$4 = defineComponent({\n name: \"VPopperWrapper\",\n components: {\n Popper: Popper$1,\n PopperContent: PrivatePopperContent\n },\n mixins: [\n PrivatePopperMethods,\n PrivateThemeClass(\"finalTheme\")\n ],\n props: {\n theme: {\n type: String,\n default: null\n }\n },\n computed: {\n finalTheme() {\n var _a;\n return (_a = this.theme) != null ? _a : this.$options.vPopperTheme;\n }\n },\n methods: {\n getTargetNodes() {\n return Array.from(this.$el.children).filter((node) => node !== this.$refs.popperContent.$el);\n }\n }\n});\nfunction _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_PopperContent = resolveComponent(\"PopperContent\");\n const _component_Popper = resolveComponent(\"Popper\");\n return openBlock(), createBlock(_component_Popper, {\n ref: \"popper\",\n theme: _ctx.finalTheme,\n \"target-nodes\": _ctx.getTargetNodes,\n \"popper-node\": () => _ctx.$refs.popperContent.$el,\n class: normalizeClass([\n _ctx.themeClass\n ])\n }, {\n default: withCtx(({\n popperId,\n isShown,\n shouldMountContent,\n skipTransition,\n autoHide,\n show,\n hide,\n handleResize,\n onResize,\n classes,\n result\n }) => [\n renderSlot(_ctx.$slots, \"default\", {\n shown: isShown,\n show,\n hide\n }),\n createVNode(_component_PopperContent, {\n ref: \"popperContent\",\n \"popper-id\": popperId,\n theme: _ctx.finalTheme,\n shown: isShown,\n mounted: shouldMountContent,\n \"skip-transition\": skipTransition,\n \"auto-hide\": autoHide,\n \"handle-resize\": handleResize,\n classes,\n result,\n onHide: hide,\n onResize\n }, {\n default: withCtx(() => [\n renderSlot(_ctx.$slots, \"popper\", {\n shown: isShown,\n hide\n })\n ]),\n _: 2\n }, 1032, [\"popper-id\", \"theme\", \"shown\", \"mounted\", \"skip-transition\", \"auto-hide\", \"handle-resize\", \"classes\", \"result\", \"onHide\", \"onResize\"])\n ]),\n _: 3\n }, 8, [\"theme\", \"target-nodes\", \"popper-node\", \"class\"]);\n}\nvar PrivatePopperWrapper = /* @__PURE__ */ _export_sfc(_sfc_main$4, [[\"render\", _sfc_render$1]]);\nvar Dropdown_vue_vue_type_style_index_0_lang = \"\";\nconst _sfc_main$3 = defineComponent(__spreadProps(__spreadValues({}, PrivatePopperWrapper), {\n name: \"VDropdown\",\n vPopperTheme: \"dropdown\"\n}));\nconst _sfc_main$2 = defineComponent(__spreadProps(__spreadValues({}, PrivatePopperWrapper), {\n name: \"VMenu\",\n vPopperTheme: \"menu\"\n}));\nvar Tooltip_vue_vue_type_style_index_0_lang = \"\";\nconst _sfc_main$1 = defineComponent(__spreadProps(__spreadValues({}, PrivatePopperWrapper), {\n name: \"VTooltip\",\n vPopperTheme: \"tooltip\"\n}));\nconst _sfc_main = defineComponent({\n name: \"VTooltipDirective\",\n components: {\n Popper: PrivatePopper(),\n PopperContent: PrivatePopperContent\n },\n mixins: [\n PrivatePopperMethods\n ],\n inheritAttrs: false,\n props: {\n theme: {\n type: String,\n default: \"tooltip\"\n },\n html: {\n type: Boolean,\n default: (props) => getDefaultConfig(props.theme, \"html\")\n },\n content: {\n type: [String, Number, Function],\n default: null\n },\n loadingContent: {\n type: String,\n default: (props) => getDefaultConfig(props.theme, \"loadingContent\")\n }\n },\n data() {\n return {\n asyncContent: null\n };\n },\n computed: {\n isContentAsync() {\n return typeof this.content === \"function\";\n },\n loading() {\n return this.isContentAsync && this.asyncContent == null;\n },\n finalContent() {\n if (this.isContentAsync) {\n return this.loading ? this.loadingContent : this.asyncContent;\n }\n return this.content;\n }\n },\n watch: {\n content: {\n handler() {\n this.fetchContent(true);\n },\n immediate: true\n },\n async finalContent() {\n await this.$nextTick();\n this.$refs.popper.onResize();\n }\n },\n created() {\n this.$_fetchId = 0;\n },\n methods: {\n fetchContent(force) {\n if (typeof this.content === \"function\" && this.$_isShown && (force || !this.$_loading && this.asyncContent == null)) {\n this.asyncContent = null;\n this.$_loading = true;\n const fetchId = ++this.$_fetchId;\n const result = this.content(this);\n if (result.then) {\n result.then((res) => this.onResult(fetchId, res));\n } else {\n this.onResult(fetchId, result);\n }\n }\n },\n onResult(fetchId, result) {\n if (fetchId !== this.$_fetchId)\n return;\n this.$_loading = false;\n this.asyncContent = result;\n },\n onShow() {\n this.$_isShown = true;\n this.fetchContent();\n },\n onHide() {\n this.$_isShown = false;\n }\n }\n});\nconst _hoisted_1 = [\"innerHTML\"];\nconst _hoisted_2 = [\"textContent\"];\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_PopperContent = resolveComponent(\"PopperContent\");\n const _component_Popper = resolveComponent(\"Popper\");\n return openBlock(), createBlock(_component_Popper, mergeProps({ ref: \"popper\" }, _ctx.$attrs, {\n theme: _ctx.theme,\n \"popper-node\": () => _ctx.$refs.popperContent.$el,\n onApplyShow: _ctx.onShow,\n onApplyHide: _ctx.onHide\n }), {\n default: withCtx(({\n popperId,\n isShown,\n shouldMountContent,\n skipTransition,\n autoHide,\n hide,\n handleResize,\n onResize,\n classes,\n result\n }) => [\n createVNode(_component_PopperContent, {\n ref: \"popperContent\",\n class: normalizeClass({\n \"v-popper--tooltip-loading\": _ctx.loading\n }),\n \"popper-id\": popperId,\n theme: _ctx.theme,\n shown: isShown,\n mounted: shouldMountContent,\n \"skip-transition\": skipTransition,\n \"auto-hide\": autoHide,\n \"handle-resize\": handleResize,\n classes,\n result,\n onHide: hide,\n onResize\n }, {\n default: withCtx(() => [\n _ctx.html ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n innerHTML: _ctx.finalContent\n }, null, 8, _hoisted_1)) : (openBlock(), createElementBlock(\"div\", {\n key: 1,\n textContent: toDisplayString(_ctx.finalContent)\n }, null, 8, _hoisted_2))\n ]),\n _: 2\n }, 1032, [\"class\", \"popper-id\", \"theme\", \"shown\", \"mounted\", \"skip-transition\", \"auto-hide\", \"handle-resize\", \"classes\", \"result\", \"onHide\", \"onResize\"])\n ]),\n _: 1\n }, 16, [\"theme\", \"popper-node\", \"onApplyShow\", \"onApplyHide\"]);\n}\nvar PrivateTooltipDirective = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render]]);\nconst TARGET_CLASS = \"v-popper--has-tooltip\";\nfunction getPlacement(options2, modifiers) {\n let result = options2.placement;\n if (!result && modifiers) {\n for (const pos of placements) {\n if (modifiers[pos]) {\n result = pos;\n }\n }\n }\n if (!result) {\n result = getDefaultConfig(options2.theme || \"tooltip\", \"placement\");\n }\n return result;\n}\nfunction getOptions(el, value, modifiers) {\n let options2;\n const type = typeof value;\n if (type === \"string\") {\n options2 = { content: value };\n } else if (value && type === \"object\") {\n options2 = value;\n } else {\n options2 = { content: false };\n }\n options2.placement = getPlacement(options2, modifiers);\n options2.targetNodes = () => [el];\n options2.referenceNode = () => el;\n return options2;\n}\nlet directiveApp;\nlet directives;\nlet uid = 0;\nfunction ensureDirectiveApp() {\n if (directiveApp)\n return;\n directives = ref([]);\n directiveApp = createApp({\n name: \"VTooltipDirectiveApp\",\n setup() {\n return {\n directives\n };\n },\n render() {\n return this.directives.map((directive) => {\n return h(PrivateTooltipDirective, __spreadProps(__spreadValues({}, directive.options), {\n shown: directive.shown || directive.options.shown,\n key: directive.id\n }));\n });\n },\n devtools: {\n hide: true\n }\n });\n const mountTarget = document.createElement(\"div\");\n document.body.appendChild(mountTarget);\n directiveApp.mount(mountTarget);\n}\nfunction createTooltip(el, value, modifiers) {\n ensureDirectiveApp();\n const options2 = ref(getOptions(el, value, modifiers));\n const shown = ref(false);\n const item = {\n id: uid++,\n options: options2,\n shown\n };\n directives.value.push(item);\n if (el.classList) {\n el.classList.add(TARGET_CLASS);\n }\n const result = el.$_popper = {\n options: options2,\n item,\n show() {\n shown.value = true;\n },\n hide() {\n shown.value = false;\n }\n };\n return result;\n}\nfunction destroyTooltip(el) {\n if (el.$_popper) {\n const index = directives.value.indexOf(el.$_popper.item);\n if (index !== -1)\n directives.value.splice(index, 1);\n delete el.$_popper;\n delete el.$_popperOldShown;\n delete el.$_popperMountTarget;\n }\n if (el.classList) {\n el.classList.remove(TARGET_CLASS);\n }\n}\nfunction bind(el, { value, modifiers }) {\n const options2 = getOptions(el, value, modifiers);\n if (!options2.content || getDefaultConfig(options2.theme || \"tooltip\", \"disabled\")) {\n destroyTooltip(el);\n } else {\n let directive;\n if (el.$_popper) {\n directive = el.$_popper;\n directive.options.value = options2;\n } else {\n directive = createTooltip(el, value, modifiers);\n }\n if (typeof value.shown !== \"undefined\" && value.shown !== el.$_popperOldShown) {\n el.$_popperOldShown = value.shown;\n value.shown ? directive.show() : directive.hide();\n }\n }\n}\nvar PrivateVTooltip = {\n beforeMount: bind,\n updated: bind,\n beforeUnmount(el) {\n destroyTooltip(el);\n }\n};\nfunction addListeners(el) {\n el.addEventListener(\"click\", onClick);\n el.addEventListener(\"touchstart\", onTouchStart, supportsPassive ? {\n passive: true\n } : false);\n}\nfunction removeListeners(el) {\n el.removeEventListener(\"click\", onClick);\n el.removeEventListener(\"touchstart\", onTouchStart);\n el.removeEventListener(\"touchend\", onTouchEnd);\n el.removeEventListener(\"touchcancel\", onTouchCancel);\n}\nfunction onClick(event) {\n const el = event.currentTarget;\n event.closePopover = !el.$_vclosepopover_touch;\n event.closeAllPopover = el.$_closePopoverModifiers && !!el.$_closePopoverModifiers.all;\n}\nfunction onTouchStart(event) {\n if (event.changedTouches.length === 1) {\n const el = event.currentTarget;\n el.$_vclosepopover_touch = true;\n const touch = event.changedTouches[0];\n el.$_vclosepopover_touchPoint = touch;\n el.addEventListener(\"touchend\", onTouchEnd);\n el.addEventListener(\"touchcancel\", onTouchCancel);\n }\n}\nfunction onTouchEnd(event) {\n const el = event.currentTarget;\n el.$_vclosepopover_touch = false;\n if (event.changedTouches.length === 1) {\n const touch = event.changedTouches[0];\n const firstTouch = el.$_vclosepopover_touchPoint;\n event.closePopover = Math.abs(touch.screenY - firstTouch.screenY) < 20 && Math.abs(touch.screenX - firstTouch.screenX) < 20;\n event.closeAllPopover = el.$_closePopoverModifiers && !!el.$_closePopoverModifiers.all;\n }\n}\nfunction onTouchCancel(event) {\n const el = event.currentTarget;\n el.$_vclosepopover_touch = false;\n}\nvar PrivateVClosePopper = {\n beforeMount(el, { value, modifiers }) {\n el.$_closePopoverModifiers = modifiers;\n if (typeof value === \"undefined\" || value) {\n addListeners(el);\n }\n },\n updated(el, { value, oldValue, modifiers }) {\n el.$_closePopoverModifiers = modifiers;\n if (value !== oldValue) {\n if (typeof value === \"undefined\" || value) {\n addListeners(el);\n } else {\n removeListeners(el);\n }\n }\n },\n beforeUnmount(el) {\n removeListeners(el);\n }\n};\nconst options = config;\nconst VTooltip = PrivateVTooltip;\nconst VClosePopper = PrivateVClosePopper;\nconst Dropdown = _sfc_main$3;\nconst Menu = _sfc_main$2;\nconst Popper = PrivatePopper;\nconst PopperContent = PrivatePopperContent;\nconst PopperMethods = PrivatePopperMethods;\nconst PopperWrapper = PrivatePopperWrapper;\nconst ThemeClass = PrivateThemeClass;\nconst Tooltip = _sfc_main$1;\nconst TooltipDirective = PrivateTooltipDirective;\nfunction install(app, options2 = {}) {\n if (app.$_vTooltipInstalled)\n return;\n app.$_vTooltipInstalled = true;\n assign(config, options2);\n app.directive(\"tooltip\", PrivateVTooltip);\n app.directive(\"close-popper\", PrivateVClosePopper);\n app.component(\"VTooltip\", _sfc_main$1);\n app.component(\"VDropdown\", _sfc_main$3);\n app.component(\"VMenu\", _sfc_main$2);\n}\nconst plugin = {\n version: \"2.0.0-beta.20\",\n install,\n options: config\n};\nexport { Dropdown, HIDE_EVENT_MAP, Menu, Popper, PopperContent, PopperMethods, PopperWrapper, SHOW_EVENT_MAP, ThemeClass, Tooltip, TooltipDirective, VClosePopper, VTooltip, createTooltip, plugin as default, destroyTooltip, hideAllPoppers, install, options, placements };\n","/* eslint-env browser */\nmodule.exports = typeof self == 'object' ? self.FormData : window.FormData;\n","// =========\n// = humps =\n// =========\n// Underscore-to-camelCase converter (and vice versa)\n// for strings and object keys\n\n// humps is copyright © 2012+ Dom Christie\n// Released under the MIT license.\n\n\n;(function(global) {\n\n var _processKeys = function(convert, obj, options) {\n if(!_isObject(obj) || _isDate(obj) || _isRegExp(obj) || _isBoolean(obj) || _isFunction(obj)) {\n return obj;\n }\n\n var output,\n i = 0,\n l = 0;\n\n if(_isArray(obj)) {\n output = [];\n for(l=obj.length; i\n */\n'use strict'\n\nfunction Cache(maxSize) {\n this._maxSize = maxSize\n this.clear()\n}\nCache.prototype.clear = function () {\n this._size = 0\n this._values = Object.create(null)\n}\nCache.prototype.get = function (key) {\n return this._values[key]\n}\nCache.prototype.set = function (key, value) {\n this._size >= this._maxSize && this.clear()\n if (!(key in this._values)) this._size++\n\n return (this._values[key] = value)\n}\n\nvar SPLIT_REGEX = /[^.^\\]^[]+|(?=\\[\\]|\\.\\.)/g,\n DIGIT_REGEX = /^\\d+$/,\n LEAD_DIGIT_REGEX = /^\\d/,\n SPEC_CHAR_REGEX = /[~`!#$%\\^&*+=\\-\\[\\]\\\\';,/{}|\\\\\":<>\\?]/g,\n CLEAN_QUOTES_REGEX = /^\\s*(['\"]?)(.*?)(\\1)\\s*$/,\n MAX_CACHE_SIZE = 512\n\nvar pathCache = new Cache(MAX_CACHE_SIZE),\n setCache = new Cache(MAX_CACHE_SIZE),\n getCache = new Cache(MAX_CACHE_SIZE)\n\nvar config\n\nmodule.exports = {\n Cache: Cache,\n\n split: split,\n\n normalizePath: normalizePath,\n\n setter: function (path) {\n var parts = normalizePath(path)\n\n return (\n setCache.get(path) ||\n setCache.set(path, function setter(obj, value) {\n var index = 0\n var len = parts.length\n var data = obj\n\n while (index < len - 1) {\n var part = parts[index]\n if (\n part === '__proto__' ||\n part === 'constructor' ||\n part === 'prototype'\n ) {\n return obj\n }\n\n data = data[parts[index++]]\n }\n data[parts[index]] = value\n })\n )\n },\n\n getter: function (path, safe) {\n var parts = normalizePath(path)\n return (\n getCache.get(path) ||\n getCache.set(path, function getter(data) {\n var index = 0,\n len = parts.length\n while (index < len) {\n if (data != null || !safe) data = data[parts[index++]]\n else return\n }\n return data\n })\n )\n },\n\n join: function (segments) {\n return segments.reduce(function (path, part) {\n return (\n path +\n (isQuoted(part) || DIGIT_REGEX.test(part)\n ? '[' + part + ']'\n : (path ? '.' : '') + part)\n )\n }, '')\n },\n\n forEach: function (path, cb, thisArg) {\n forEach(Array.isArray(path) ? path : split(path), cb, thisArg)\n },\n}\n\nfunction normalizePath(path) {\n return (\n pathCache.get(path) ||\n pathCache.set(\n path,\n split(path).map(function (part) {\n return part.replace(CLEAN_QUOTES_REGEX, '$2')\n })\n )\n )\n}\n\nfunction split(path) {\n return path.match(SPLIT_REGEX) || ['']\n}\n\nfunction forEach(parts, iter, thisArg) {\n var len = parts.length,\n part,\n idx,\n isArray,\n isBracket\n\n for (idx = 0; idx < len; idx++) {\n part = parts[idx]\n\n if (part) {\n if (shouldBeQuoted(part)) {\n part = '\"' + part + '\"'\n }\n\n isBracket = isQuoted(part)\n isArray = !isBracket && /^\\d+$/.test(part)\n\n iter.call(thisArg, part, isBracket, isArray, idx, parts)\n }\n }\n}\n\nfunction isQuoted(str) {\n return (\n typeof str === 'string' && str && [\"'\", '\"'].indexOf(str.charAt(0)) !== -1\n )\n}\n\nfunction hasLeadingNumber(part) {\n return part.match(LEAD_DIGIT_REGEX) && !part.match(DIGIT_REGEX)\n}\n\nfunction hasSpecialChars(part) {\n return SPEC_CHAR_REGEX.test(part)\n}\n\nfunction shouldBeQuoted(part) {\n return !isQuoted(part) && (hasLeadingNumber(part) || hasSpecialChars(part))\n}\n","\"use strict\";\nfunction rutClean(value) {\n return typeof value === 'string' ? value.replace(/[^0-9kK]+/g, '').toUpperCase() : '';\n}\nexports.rutClean = rutClean;\nfunction rutValidate(value) {\n if (typeof value !== 'string') {\n return false;\n }\n var rut = rutClean(value);\n var rutDigits = parseInt(rut.slice(0, -1), 10);\n var m = 0;\n var s = 1;\n while (rutDigits > 0) {\n s = (s + rutDigits % 10 * (9 - m++ % 6)) % 11;\n rutDigits = Math.floor(rutDigits / 10);\n }\n var checkDigit = (s > 0) ? String((s - 1)) : 'K';\n return (checkDigit === rut.slice(-1));\n}\nexports.rutValidate = rutValidate;\nfunction rutFormat(value) {\n var rut = rutClean(value);\n if (rut.length <= 1) {\n return rut;\n }\n var result = rut.slice(-4, -1) + \"-\" + rut.substr(rut.length - 1);\n for (var i = 4; i < rut.length; i += 3) {\n result = rut.slice(-3 - i, -i) + \".\" + result;\n }\n return result;\n}\nexports.rutFormat = rutFormat;\n","const reWords = /[A-Z\\xc0-\\xd6\\xd8-\\xde]?[a-z\\xdf-\\xf6\\xf8-\\xff]+(?:['’](?:d|ll|m|re|s|t|ve))?(?=[\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000]|[A-Z\\xc0-\\xd6\\xd8-\\xde]|$)|(?:[A-Z\\xc0-\\xd6\\xd8-\\xde]|[^\\ud800-\\udfff\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\d+\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde])+(?:['’](?:D|LL|M|RE|S|T|VE))?(?=[\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000]|[A-Z\\xc0-\\xd6\\xd8-\\xde](?:[a-z\\xdf-\\xf6\\xf8-\\xff]|[^\\ud800-\\udfff\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\d+\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde])|$)|[A-Z\\xc0-\\xd6\\xd8-\\xde]?(?:[a-z\\xdf-\\xf6\\xf8-\\xff]|[^\\ud800-\\udfff\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\d+\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde])+(?:['’](?:d|ll|m|re|s|t|ve))?|[A-Z\\xc0-\\xd6\\xd8-\\xde]+(?:['’](?:D|LL|M|RE|S|T|VE))?|\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])|\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])|\\d+|(?:[\\u2700-\\u27bf]|(?:\\ud83c[\\udde6-\\uddff]){2}|[\\ud800-\\udbff][\\udc00-\\udfff])[\\ufe0e\\ufe0f]?(?:[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]|\\ud83c[\\udffb-\\udfff])?(?:\\u200d(?:[^\\ud800-\\udfff]|(?:\\ud83c[\\udde6-\\uddff]){2}|[\\ud800-\\udbff][\\udc00-\\udfff])[\\ufe0e\\ufe0f]?(?:[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]|\\ud83c[\\udffb-\\udfff])?)*/g\n\nconst words = (str) => str.match(reWords) || []\n\nconst upperFirst = (str) => str[0].toUpperCase() + str.slice(1)\n\nconst join = (str, d) => words(str).join(d).toLowerCase()\n\nconst camelCase = (str) =>\n words(str).reduce(\n (acc, next) =>\n `${acc}${\n !acc\n ? next.toLowerCase()\n : next[0].toUpperCase() + next.slice(1).toLowerCase()\n }`,\n '',\n )\n\nconst pascalCase = (str) => upperFirst(camelCase(str))\n\nconst snakeCase = (str) => join(str, '_')\n\nconst kebabCase = (str) => join(str, '-')\n\nconst sentenceCase = (str) => upperFirst(join(str, ' '))\n\nconst titleCase = (str) => words(str).map(upperFirst).join(' ')\n\nmodule.exports = {\n words,\n upperFirst,\n camelCase,\n pascalCase,\n snakeCase,\n kebabCase,\n sentenceCase,\n titleCase,\n}\n","\n/**\n * Topological sorting function\n *\n * @param {Array} edges\n * @returns {Array}\n */\n\nmodule.exports = function(edges) {\n return toposort(uniqueNodes(edges), edges)\n}\n\nmodule.exports.array = toposort\n\nfunction toposort(nodes, edges) {\n var cursor = nodes.length\n , sorted = new Array(cursor)\n , visited = {}\n , i = cursor\n // Better data structures make algorithm much faster.\n , outgoingEdges = makeOutgoingEdges(edges)\n , nodesHash = makeNodesHash(nodes)\n\n // check for unknown nodes\n edges.forEach(function(edge) {\n if (!nodesHash.has(edge[0]) || !nodesHash.has(edge[1])) {\n throw new Error('Unknown node. There is an unknown node in the supplied edges.')\n }\n })\n\n while (i--) {\n if (!visited[i]) visit(nodes[i], i, new Set())\n }\n\n return sorted\n\n function visit(node, i, predecessors) {\n if(predecessors.has(node)) {\n var nodeRep\n try {\n nodeRep = \", node was:\" + JSON.stringify(node)\n } catch(e) {\n nodeRep = \"\"\n }\n throw new Error('Cyclic dependency' + nodeRep)\n }\n\n if (!nodesHash.has(node)) {\n throw new Error('Found unknown node. Make sure to provided all involved nodes. Unknown node: '+JSON.stringify(node))\n }\n\n if (visited[i]) return;\n visited[i] = true\n\n var outgoing = outgoingEdges.get(node) || new Set()\n outgoing = Array.from(outgoing)\n\n if (i = outgoing.length) {\n predecessors.add(node)\n do {\n var child = outgoing[--i]\n visit(child, nodesHash.get(child), predecessors)\n } while (i)\n predecessors.delete(node)\n }\n\n sorted[--cursor] = node\n }\n}\n\nfunction uniqueNodes(arr){\n var res = new Set()\n for (var i = 0, len = arr.length; i < len; i++) {\n var edge = arr[i]\n res.add(edge[0])\n res.add(edge[1])\n }\n return Array.from(res)\n}\n\nfunction makeOutgoingEdges(arr){\n var edges = new Map()\n for (var i = 0, len = arr.length; i < len; i++) {\n var edge = arr[i]\n if (!edges.has(edge[0])) edges.set(edge[0], new Set())\n if (!edges.has(edge[1])) edges.set(edge[1], new Set())\n edges.get(edge[0]).add(edge[1])\n }\n return edges\n}\n\nfunction makeNodesHash(arr){\n var res = new Map()\n for (var i = 0, len = arr.length; i < len; i++) {\n res.set(arr[i], i)\n }\n return res\n}\n","/**\n * vee-validate v4.8.6\n * (c) 2023 Abdelrahman Awad\n * @license MIT\n */\nimport { getCurrentInstance, inject, warn as warn$1, computed, ref, watch, unref, isRef, reactive, onUnmounted, nextTick, onMounted, provide, onBeforeUnmount, defineComponent, toRef, resolveDynamicComponent, h, watchEffect, markRaw } from 'vue';\nimport { setupDevtoolsPlugin } from '@vue/devtools-api';\n\nfunction isCallable(fn) {\n return typeof fn === 'function';\n}\nfunction isNullOrUndefined(value) {\n return value === null || value === undefined;\n}\nconst isObject = (obj) => obj !== null && !!obj && typeof obj === 'object' && !Array.isArray(obj);\nfunction isIndex(value) {\n return Number(value) >= 0;\n}\nfunction toNumber(value) {\n const n = parseFloat(value);\n return isNaN(n) ? value : n;\n}\n\nconst RULES = {};\n/**\n * Adds a custom validator to the list of validation rules.\n */\nfunction defineRule(id, validator) {\n // makes sure new rules are properly formatted.\n guardExtend(id, validator);\n RULES[id] = validator;\n}\n/**\n * Gets an already defined rule\n */\nfunction resolveRule(id) {\n return RULES[id];\n}\n/**\n * Guards from extension violations.\n */\nfunction guardExtend(id, validator) {\n if (isCallable(validator)) {\n return;\n }\n throw new Error(`Extension Error: The validator '${id}' must be a function.`);\n}\n\nconst FormContextKey = Symbol('vee-validate-form');\nconst FieldContextKey = Symbol('vee-validate-field-instance');\nconst IS_ABSENT = Symbol('Default empty value');\n\nconst isClient = typeof window !== 'undefined';\nfunction isLocator(value) {\n return isCallable(value) && !!value.__locatorRef;\n}\nfunction isTypedSchema(value) {\n return !!value && isCallable(value.parse) && value.__type === 'VVTypedSchema';\n}\nfunction isYupValidator(value) {\n return !!value && isCallable(value.validate);\n}\nfunction hasCheckedAttr(type) {\n return type === 'checkbox' || type === 'radio';\n}\nfunction isContainerValue(value) {\n return isObject(value) || Array.isArray(value);\n}\n/**\n * True if the value is an empty object or array\n */\nfunction isEmptyContainer(value) {\n if (Array.isArray(value)) {\n return value.length === 0;\n }\n return isObject(value) && Object.keys(value).length === 0;\n}\n/**\n * Checks if the path opted out of nested fields using `[fieldName]` syntax\n */\nfunction isNotNestedPath(path) {\n return /^\\[.+\\]$/i.test(path);\n}\n/**\n * Checks if an element is a native HTML5 multi-select input element\n */\nfunction isNativeMultiSelect(el) {\n return isNativeSelect(el) && el.multiple;\n}\n/**\n * Checks if an element is a native HTML5 select input element\n */\nfunction isNativeSelect(el) {\n return el.tagName === 'SELECT';\n}\n/**\n * Checks if a tag name with attrs object will render a native multi-select element\n */\nfunction isNativeMultiSelectNode(tag, attrs) {\n // The falsy value array is the values that Vue won't add the `multiple` prop if it has one of these values\n const hasTruthyBindingValue = ![false, null, undefined, 0].includes(attrs.multiple) && !Number.isNaN(attrs.multiple);\n return tag === 'select' && 'multiple' in attrs && hasTruthyBindingValue;\n}\n/**\n * Checks if a node should have a `:value` binding or not\n *\n * These nodes should not have a value binding\n * For files, because they are not reactive\n * For multi-selects because the value binding will reset the value\n */\nfunction shouldHaveValueBinding(tag, attrs) {\n return !isNativeMultiSelectNode(tag, attrs) && attrs.type !== 'file' && !hasCheckedAttr(attrs.type);\n}\nfunction isFormSubmitEvent(evt) {\n return isEvent(evt) && evt.target && 'submit' in evt.target;\n}\nfunction isEvent(evt) {\n if (!evt) {\n return false;\n }\n if (typeof Event !== 'undefined' && isCallable(Event) && evt instanceof Event) {\n return true;\n }\n // this is for IE and Cypress #3161\n /* istanbul ignore next */\n if (evt && evt.srcElement) {\n return true;\n }\n return false;\n}\nfunction isPropPresent(obj, prop) {\n return prop in obj && obj[prop] !== IS_ABSENT;\n}\n/**\n * Compares if two values are the same borrowed from:\n * https://github.com/epoberezkin/fast-deep-equal\n * We added a case for file matching since `Object.keys` doesn't work with Files.\n * */\nfunction isEqual(a, b) {\n if (a === b)\n return true;\n if (a && b && typeof a === 'object' && typeof b === 'object') {\n if (a.constructor !== b.constructor)\n return false;\n // eslint-disable-next-line no-var\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n // eslint-disable-next-line eqeqeq\n if (length != b.length)\n return false;\n for (i = length; i-- !== 0;)\n if (!isEqual(a[i], b[i]))\n return false;\n return true;\n }\n if (a instanceof Map && b instanceof Map) {\n if (a.size !== b.size)\n return false;\n for (i of a.entries())\n if (!b.has(i[0]))\n return false;\n for (i of a.entries())\n if (!isEqual(i[1], b.get(i[0])))\n return false;\n return true;\n }\n // We added this part for file comparison, arguably a little naive but should work for most cases.\n // #3911\n if (isFile(a) && isFile(b)) {\n if (a.size !== b.size)\n return false;\n if (a.name !== b.name)\n return false;\n if (a.lastModified !== b.lastModified)\n return false;\n if (a.type !== b.type)\n return false;\n return true;\n }\n if (a instanceof Set && b instanceof Set) {\n if (a.size !== b.size)\n return false;\n for (i of a.entries())\n if (!b.has(i[0]))\n return false;\n return true;\n }\n if (ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) {\n length = a.length;\n // eslint-disable-next-line eqeqeq\n if (length != b.length)\n return false;\n for (i = length; i-- !== 0;)\n if (a[i] !== b[i])\n return false;\n return true;\n }\n if (a.constructor === RegExp)\n return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf)\n return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString)\n return a.toString() === b.toString();\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length)\n return false;\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i]))\n return false;\n for (i = length; i-- !== 0;) {\n // eslint-disable-next-line no-var\n var key = keys[i];\n if (!isEqual(a[key], b[key]))\n return false;\n }\n return true;\n }\n // true if both NaN, false otherwise\n // eslint-disable-next-line no-self-compare\n return a !== a && b !== b;\n}\nfunction isFile(a) {\n if (!isClient) {\n return false;\n }\n return a instanceof File;\n}\n\nfunction set(obj, key, val) {\n\tif (typeof val.value === 'object') val.value = klona(val.value);\n\tif (!val.enumerable || val.get || val.set || !val.configurable || !val.writable || key === '__proto__') {\n\t\tObject.defineProperty(obj, key, val);\n\t} else obj[key] = val.value;\n}\n\nfunction klona(x) {\n\tif (typeof x !== 'object') return x;\n\n\tvar i=0, k, list, tmp, str=Object.prototype.toString.call(x);\n\n\tif (str === '[object Object]') {\n\t\ttmp = Object.create(x.__proto__ || null);\n\t} else if (str === '[object Array]') {\n\t\ttmp = Array(x.length);\n\t} else if (str === '[object Set]') {\n\t\ttmp = new Set;\n\t\tx.forEach(function (val) {\n\t\t\ttmp.add(klona(val));\n\t\t});\n\t} else if (str === '[object Map]') {\n\t\ttmp = new Map;\n\t\tx.forEach(function (val, key) {\n\t\t\ttmp.set(klona(key), klona(val));\n\t\t});\n\t} else if (str === '[object Date]') {\n\t\ttmp = new Date(+x);\n\t} else if (str === '[object RegExp]') {\n\t\ttmp = new RegExp(x.source, x.flags);\n\t} else if (str === '[object DataView]') {\n\t\ttmp = new x.constructor( klona(x.buffer) );\n\t} else if (str === '[object ArrayBuffer]') {\n\t\ttmp = x.slice(0);\n\t} else if (str.slice(-6) === 'Array]') {\n\t\t// ArrayBuffer.isView(x)\n\t\t// ~> `new` bcuz `Buffer.slice` => ref\n\t\ttmp = new x.constructor(x);\n\t}\n\n\tif (tmp) {\n\t\tfor (list=Object.getOwnPropertySymbols(x); i < list.length; i++) {\n\t\t\tset(tmp, list[i], Object.getOwnPropertyDescriptor(x, list[i]));\n\t\t}\n\n\t\tfor (i=0, list=Object.getOwnPropertyNames(x); i < list.length; i++) {\n\t\t\tif (Object.hasOwnProperty.call(tmp, k=list[i]) && tmp[k] === x[k]) continue;\n\t\t\tset(tmp, k, Object.getOwnPropertyDescriptor(x, k));\n\t\t}\n\t}\n\n\treturn tmp || x;\n}\n\nfunction cleanupNonNestedPath(path) {\n if (isNotNestedPath(path)) {\n return path.replace(/\\[|\\]/gi, '');\n }\n return path;\n}\nfunction getFromPath(object, path, fallback) {\n if (!object) {\n return fallback;\n }\n if (isNotNestedPath(path)) {\n return object[cleanupNonNestedPath(path)];\n }\n const resolvedValue = (path || '')\n .split(/\\.|\\[(\\d+)\\]/)\n .filter(Boolean)\n .reduce((acc, propKey) => {\n if (isContainerValue(acc) && propKey in acc) {\n return acc[propKey];\n }\n return fallback;\n }, object);\n return resolvedValue;\n}\n/**\n * Sets a nested property value in a path, creates the path properties if it doesn't exist\n */\nfunction setInPath(object, path, value) {\n if (isNotNestedPath(path)) {\n object[cleanupNonNestedPath(path)] = value;\n return;\n }\n const keys = path.split(/\\.|\\[(\\d+)\\]/).filter(Boolean);\n let acc = object;\n for (let i = 0; i < keys.length; i++) {\n // Last key, set it\n if (i === keys.length - 1) {\n acc[keys[i]] = value;\n return;\n }\n // Key does not exist, create a container for it\n if (!(keys[i] in acc) || isNullOrUndefined(acc[keys[i]])) {\n // container can be either an object or an array depending on the next key if it exists\n acc[keys[i]] = isIndex(keys[i + 1]) ? [] : {};\n }\n acc = acc[keys[i]];\n }\n}\nfunction unset(object, key) {\n if (Array.isArray(object) && isIndex(key)) {\n object.splice(Number(key), 1);\n return;\n }\n if (isObject(object)) {\n delete object[key];\n }\n}\n/**\n * Removes a nested property from object\n */\nfunction unsetPath(object, path) {\n if (isNotNestedPath(path)) {\n delete object[cleanupNonNestedPath(path)];\n return;\n }\n const keys = path.split(/\\.|\\[(\\d+)\\]/).filter(Boolean);\n let acc = object;\n for (let i = 0; i < keys.length; i++) {\n // Last key, unset it\n if (i === keys.length - 1) {\n unset(acc, keys[i]);\n break;\n }\n // Key does not exist, exit\n if (!(keys[i] in acc) || isNullOrUndefined(acc[keys[i]])) {\n break;\n }\n acc = acc[keys[i]];\n }\n const pathValues = keys.map((_, idx) => {\n return getFromPath(object, keys.slice(0, idx).join('.'));\n });\n for (let i = pathValues.length - 1; i >= 0; i--) {\n if (!isEmptyContainer(pathValues[i])) {\n continue;\n }\n if (i === 0) {\n unset(object, keys[0]);\n continue;\n }\n unset(pathValues[i - 1], keys[i - 1]);\n }\n}\n/**\n * A typed version of Object.keys\n */\nfunction keysOf(record) {\n return Object.keys(record);\n}\n// Uses same component provide as its own injections\n// Due to changes in https://github.com/vuejs/vue-next/pull/2424\nfunction injectWithSelf(symbol, def = undefined) {\n const vm = getCurrentInstance();\n return (vm === null || vm === void 0 ? void 0 : vm.provides[symbol]) || inject(symbol, def);\n}\nfunction warn(message) {\n warn$1(`[vee-validate]: ${message}`);\n}\n/**\n * Ensures we deal with a singular field value\n */\nfunction normalizeField(field) {\n if (Array.isArray(field)) {\n return field[0];\n }\n return field;\n}\nfunction resolveNextCheckboxValue(currentValue, checkedValue, uncheckedValue) {\n if (Array.isArray(currentValue)) {\n const newVal = [...currentValue];\n // Use isEqual since checked object values can possibly fail the equality check #3883\n const idx = newVal.findIndex(v => isEqual(v, checkedValue));\n idx >= 0 ? newVal.splice(idx, 1) : newVal.push(checkedValue);\n return newVal;\n }\n return isEqual(currentValue, checkedValue) ? uncheckedValue : checkedValue;\n}\n/**\n * Creates a throttled function that only invokes the provided function (`func`) at most once per within a given number of milliseconds\n * (`limit`)\n */\nfunction throttle(func, limit) {\n let inThrottle;\n let lastResult;\n return function (...args) {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const context = this;\n if (!inThrottle) {\n inThrottle = true;\n setTimeout(() => (inThrottle = false), limit);\n lastResult = func.apply(context, args);\n }\n return lastResult;\n };\n}\nfunction debounceAsync(inner, ms = 0) {\n let timer = null;\n let resolves = [];\n return function (...args) {\n // Run the function after a certain amount of time\n if (timer) {\n window.clearTimeout(timer);\n }\n timer = window.setTimeout(() => {\n // Get the result of the inner function, then apply it to the resolve function of\n // each promise that has been created since the last time the inner function was run\n const result = inner(...args);\n resolves.forEach(r => r(result));\n resolves = [];\n }, ms);\n return new Promise(resolve => resolves.push(resolve));\n };\n}\nfunction applyModelModifiers(value, modifiers) {\n if (!isObject(modifiers)) {\n return value;\n }\n if (modifiers.number) {\n return toNumber(value);\n }\n return value;\n}\nfunction withLatest(fn, onDone) {\n let latestRun;\n return async function runLatest(...args) {\n const pending = fn(...args);\n latestRun = pending;\n const result = await pending;\n if (pending !== latestRun) {\n return result;\n }\n latestRun = undefined;\n onDone(result, args);\n return result;\n };\n}\nfunction computedDeep({ get, set }) {\n const baseRef = ref(klona(get()));\n watch(get, newValue => {\n if (isEqual(newValue, baseRef.value)) {\n return;\n }\n baseRef.value = klona(newValue);\n }, {\n deep: true,\n });\n watch(baseRef, newValue => {\n if (isEqual(newValue, get())) {\n return;\n }\n set(klona(newValue));\n }, {\n deep: true,\n });\n return baseRef;\n}\nfunction unravel(value) {\n if (isCallable(value)) {\n return value();\n }\n return unref(value);\n}\nfunction lazyToRef(value) {\n return computed(() => unravel(value));\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst normalizeChildren = (tag, context, slotProps) => {\n if (!context.slots.default) {\n return context.slots.default;\n }\n if (typeof tag === 'string' || !tag) {\n return context.slots.default(slotProps());\n }\n return {\n default: () => { var _a, _b; return (_b = (_a = context.slots).default) === null || _b === void 0 ? void 0 : _b.call(_a, slotProps()); },\n };\n};\n/**\n * Vue adds a `_value` prop at the moment on the input elements to store the REAL value on them, real values are different than the `value` attribute\n * as they do not get casted to strings unlike `el.value` which preserves user-code behavior\n */\nfunction getBoundValue(el) {\n if (hasValueBinding(el)) {\n return el._value;\n }\n return undefined;\n}\n/**\n * Vue adds a `_value` prop at the moment on the input elements to store the REAL value on them, real values are different than the `value` attribute\n * as they do not get casted to strings unlike `el.value` which preserves user-code behavior\n */\nfunction hasValueBinding(el) {\n return '_value' in el;\n}\n\nfunction normalizeEventValue(value) {\n if (!isEvent(value)) {\n return value;\n }\n const input = value.target;\n // Vue sets the current bound value on `_value` prop\n // for checkboxes it it should fetch the value binding type as is (boolean instead of string)\n if (hasCheckedAttr(input.type) && hasValueBinding(input)) {\n return getBoundValue(input);\n }\n if (input.type === 'file' && input.files) {\n const files = Array.from(input.files);\n return input.multiple ? files : files[0];\n }\n if (isNativeMultiSelect(input)) {\n return Array.from(input.options)\n .filter(opt => opt.selected && !opt.disabled)\n .map(getBoundValue);\n }\n // makes sure we get the actual `option` bound value\n // #3440\n if (isNativeSelect(input)) {\n const selectedOption = Array.from(input.options).find(opt => opt.selected);\n return selectedOption ? getBoundValue(selectedOption) : input.value;\n }\n return input.value;\n}\n\n/**\n * Normalizes the given rules expression.\n */\nfunction normalizeRules(rules) {\n const acc = {};\n Object.defineProperty(acc, '_$$isNormalized', {\n value: true,\n writable: false,\n enumerable: false,\n configurable: false,\n });\n if (!rules) {\n return acc;\n }\n // Object is already normalized, skip.\n if (isObject(rules) && rules._$$isNormalized) {\n return rules;\n }\n if (isObject(rules)) {\n return Object.keys(rules).reduce((prev, curr) => {\n const params = normalizeParams(rules[curr]);\n if (rules[curr] !== false) {\n prev[curr] = buildParams(params);\n }\n return prev;\n }, acc);\n }\n /* istanbul ignore if */\n if (typeof rules !== 'string') {\n return acc;\n }\n return rules.split('|').reduce((prev, rule) => {\n const parsedRule = parseRule(rule);\n if (!parsedRule.name) {\n return prev;\n }\n prev[parsedRule.name] = buildParams(parsedRule.params);\n return prev;\n }, acc);\n}\n/**\n * Normalizes a rule param.\n */\nfunction normalizeParams(params) {\n if (params === true) {\n return [];\n }\n if (Array.isArray(params)) {\n return params;\n }\n if (isObject(params)) {\n return params;\n }\n return [params];\n}\nfunction buildParams(provided) {\n const mapValueToLocator = (value) => {\n // A target param using interpolation\n if (typeof value === 'string' && value[0] === '@') {\n return createLocator(value.slice(1));\n }\n return value;\n };\n if (Array.isArray(provided)) {\n return provided.map(mapValueToLocator);\n }\n // #3073\n if (provided instanceof RegExp) {\n return [provided];\n }\n return Object.keys(provided).reduce((prev, key) => {\n prev[key] = mapValueToLocator(provided[key]);\n return prev;\n }, {});\n}\n/**\n * Parses a rule string expression.\n */\nconst parseRule = (rule) => {\n let params = [];\n const name = rule.split(':')[0];\n if (rule.includes(':')) {\n params = rule.split(':').slice(1).join(':').split(',');\n }\n return { name, params };\n};\nfunction createLocator(value) {\n const locator = (crossTable) => {\n const val = getFromPath(crossTable, value) || crossTable[value];\n return val;\n };\n locator.__locatorRef = value;\n return locator;\n}\nfunction extractLocators(params) {\n if (Array.isArray(params)) {\n return params.filter(isLocator);\n }\n return keysOf(params)\n .filter(key => isLocator(params[key]))\n .map(key => params[key]);\n}\n\nconst DEFAULT_CONFIG = {\n generateMessage: ({ field }) => `${field} is not valid.`,\n bails: true,\n validateOnBlur: true,\n validateOnChange: true,\n validateOnInput: false,\n validateOnModelUpdate: true,\n};\nlet currentConfig = Object.assign({}, DEFAULT_CONFIG);\nconst getConfig = () => currentConfig;\nconst setConfig = (newConf) => {\n currentConfig = Object.assign(Object.assign({}, currentConfig), newConf);\n};\nconst configure = setConfig;\n\n/**\n * Validates a value against the rules.\n */\nasync function validate(value, rules, options = {}) {\n const shouldBail = options === null || options === void 0 ? void 0 : options.bails;\n const field = {\n name: (options === null || options === void 0 ? void 0 : options.name) || '{field}',\n rules,\n label: options === null || options === void 0 ? void 0 : options.label,\n bails: shouldBail !== null && shouldBail !== void 0 ? shouldBail : true,\n formData: (options === null || options === void 0 ? void 0 : options.values) || {},\n };\n const result = await _validate(field, value);\n const errors = result.errors;\n return {\n errors,\n valid: !errors.length,\n };\n}\n/**\n * Starts the validation process.\n */\nasync function _validate(field, value) {\n if (isTypedSchema(field.rules) || isYupValidator(field.rules)) {\n return validateFieldWithTypedSchema(value, field.rules);\n }\n // if a generic function or chain of generic functions\n if (isCallable(field.rules) || Array.isArray(field.rules)) {\n const ctx = {\n field: field.label || field.name,\n name: field.name,\n label: field.label,\n form: field.formData,\n value,\n };\n // Normalize the pipeline\n const pipeline = Array.isArray(field.rules) ? field.rules : [field.rules];\n const length = pipeline.length;\n const errors = [];\n for (let i = 0; i < length; i++) {\n const rule = pipeline[i];\n const result = await rule(value, ctx);\n const isValid = typeof result !== 'string' && result;\n if (isValid) {\n continue;\n }\n const message = typeof result === 'string' ? result : _generateFieldError(ctx);\n errors.push(message);\n if (field.bails) {\n return {\n errors,\n };\n }\n }\n return {\n errors,\n };\n }\n const normalizedContext = Object.assign(Object.assign({}, field), { rules: normalizeRules(field.rules) });\n const errors = [];\n const rulesKeys = Object.keys(normalizedContext.rules);\n const length = rulesKeys.length;\n for (let i = 0; i < length; i++) {\n const rule = rulesKeys[i];\n const result = await _test(normalizedContext, value, {\n name: rule,\n params: normalizedContext.rules[rule],\n });\n if (result.error) {\n errors.push(result.error);\n if (field.bails) {\n return {\n errors,\n };\n }\n }\n }\n return {\n errors,\n };\n}\nfunction isYupError(err) {\n return !!err && err.name === 'ValidationError';\n}\nfunction yupToTypedSchema(yupSchema) {\n const schema = {\n __type: 'VVTypedSchema',\n async parse(values) {\n var _a;\n try {\n const output = await yupSchema.validate(values, { abortEarly: false });\n return {\n output,\n errors: [],\n };\n }\n catch (err) {\n // Yup errors have a name prop one them.\n // https://github.com/jquense/yup#validationerrorerrors-string--arraystring-value-any-path-string\n if (!isYupError(err)) {\n throw err;\n }\n if (!((_a = err.inner) === null || _a === void 0 ? void 0 : _a.length) && err.errors.length) {\n return { errors: [{ path: err.path, errors: err.errors }] };\n }\n const errors = err.inner.reduce((acc, curr) => {\n const path = curr.path || '';\n if (!acc[path]) {\n acc[path] = { errors: [], path };\n }\n acc[path].errors.push(...curr.errors);\n return acc;\n }, {});\n return { errors: Object.values(errors) };\n }\n },\n };\n return schema;\n}\n/**\n * Handles yup validation\n */\nasync function validateFieldWithTypedSchema(value, schema) {\n const typedSchema = isTypedSchema(schema) ? schema : yupToTypedSchema(schema);\n const result = await typedSchema.parse(value);\n const messages = [];\n for (const error of result.errors) {\n if (error.errors.length) {\n messages.push(...error.errors);\n }\n }\n return {\n errors: messages,\n };\n}\n/**\n * Tests a single input value against a rule.\n */\nasync function _test(field, value, rule) {\n const validator = resolveRule(rule.name);\n if (!validator) {\n throw new Error(`No such validator '${rule.name}' exists.`);\n }\n const params = fillTargetValues(rule.params, field.formData);\n const ctx = {\n field: field.label || field.name,\n name: field.name,\n label: field.label,\n value,\n form: field.formData,\n rule: Object.assign(Object.assign({}, rule), { params }),\n };\n const result = await validator(value, params, ctx);\n if (typeof result === 'string') {\n return {\n error: result,\n };\n }\n return {\n error: result ? undefined : _generateFieldError(ctx),\n };\n}\n/**\n * Generates error messages.\n */\nfunction _generateFieldError(fieldCtx) {\n const message = getConfig().generateMessage;\n if (!message) {\n return 'Field is invalid';\n }\n return message(fieldCtx);\n}\nfunction fillTargetValues(params, crossTable) {\n const normalize = (value) => {\n if (isLocator(value)) {\n return value(crossTable);\n }\n return value;\n };\n if (Array.isArray(params)) {\n return params.map(normalize);\n }\n return Object.keys(params).reduce((acc, param) => {\n acc[param] = normalize(params[param]);\n return acc;\n }, {});\n}\nasync function validateTypedSchema(schema, values) {\n const typedSchema = isTypedSchema(schema) ? schema : yupToTypedSchema(schema);\n const validationResult = await typedSchema.parse(values);\n const results = {};\n const errors = {};\n for (const error of validationResult.errors) {\n const messages = error.errors;\n // Fixes issue with path mapping with Yup 1.0 including quotes around array indices\n const path = (error.path || '').replace(/\\[\"(\\d+)\"\\]/g, (_, m) => {\n return `[${m}]`;\n });\n results[path] = { valid: !messages.length, errors: messages };\n if (messages.length) {\n errors[path] = messages[0];\n }\n }\n return {\n valid: !validationResult.errors.length,\n results,\n errors,\n values: validationResult.value,\n };\n}\nasync function validateObjectSchema(schema, values, opts) {\n const paths = keysOf(schema);\n const validations = paths.map(async (path) => {\n var _a, _b, _c;\n const strings = (_a = opts === null || opts === void 0 ? void 0 : opts.names) === null || _a === void 0 ? void 0 : _a[path];\n const fieldResult = await validate(getFromPath(values, path), schema[path], {\n name: (strings === null || strings === void 0 ? void 0 : strings.name) || path,\n label: strings === null || strings === void 0 ? void 0 : strings.label,\n values: values,\n bails: (_c = (_b = opts === null || opts === void 0 ? void 0 : opts.bailsMap) === null || _b === void 0 ? void 0 : _b[path]) !== null && _c !== void 0 ? _c : true,\n });\n return Object.assign(Object.assign({}, fieldResult), { path });\n });\n let isAllValid = true;\n const validationResults = await Promise.all(validations);\n const results = {};\n const errors = {};\n for (const result of validationResults) {\n results[result.path] = {\n valid: result.valid,\n errors: result.errors,\n };\n if (!result.valid) {\n isAllValid = false;\n errors[result.path] = result.errors[0];\n }\n }\n return {\n valid: isAllValid,\n results,\n errors,\n };\n}\n\nlet ID_COUNTER = 0;\nfunction useFieldState(path, init) {\n const { value, initialValue, setInitialValue } = _useFieldValue(path, init.modelValue, init.form);\n const { errorMessage, errors, setErrors } = _useFieldErrors(path, init.form);\n const meta = _useFieldMeta(value, initialValue, errors);\n const id = ID_COUNTER >= Number.MAX_SAFE_INTEGER ? 0 : ++ID_COUNTER;\n function setState(state) {\n var _a;\n if ('value' in state) {\n value.value = state.value;\n }\n if ('errors' in state) {\n setErrors(state.errors);\n }\n if ('touched' in state) {\n meta.touched = (_a = state.touched) !== null && _a !== void 0 ? _a : meta.touched;\n }\n if ('initialValue' in state) {\n setInitialValue(state.initialValue);\n }\n }\n return {\n id,\n path,\n value,\n initialValue,\n meta,\n errors,\n errorMessage,\n setState,\n };\n}\n/**\n * Creates the field value and resolves the initial value\n */\nfunction _useFieldValue(path, modelValue, form) {\n const modelRef = ref(unref(modelValue));\n function resolveInitialValue() {\n if (!form) {\n return unref(modelRef);\n }\n return getFromPath(form.meta.value.initialValues, unref(path), unref(modelRef));\n }\n function setInitialValue(value) {\n if (!form) {\n modelRef.value = value;\n return;\n }\n form.stageInitialValue(unref(path), value, true);\n }\n const initialValue = computed(resolveInitialValue);\n // if no form is associated, use a regular ref.\n if (!form) {\n const value = ref(resolveInitialValue());\n return {\n value,\n initialValue,\n setInitialValue,\n };\n }\n // to set the initial value, first check if there is a current value, if there is then use it.\n // otherwise use the configured initial value if it exists.\n // prioritize model value over form values\n // #3429\n const currentValue = resolveModelValue(modelValue, form, initialValue, path);\n form.stageInitialValue(unref(path), currentValue, true);\n // otherwise use a computed setter that triggers the `setFieldValue`\n const value = computed({\n get() {\n return getFromPath(form.values, unref(path));\n },\n set(newVal) {\n form.setFieldValue(unref(path), newVal);\n },\n });\n return {\n value,\n initialValue,\n setInitialValue,\n };\n}\n/*\n to set the initial value, first check if there is a current value, if there is then use it.\n otherwise use the configured initial value if it exists.\n prioritize model value over form values\n #3429\n*/\nfunction resolveModelValue(modelValue, form, initialValue, path) {\n if (isRef(modelValue)) {\n return unref(modelValue);\n }\n if (modelValue !== undefined) {\n return modelValue;\n }\n return getFromPath(form.values, unref(path), unref(initialValue));\n}\n/**\n * Creates meta flags state and some associated effects with them\n */\nfunction _useFieldMeta(currentValue, initialValue, errors) {\n const meta = reactive({\n touched: false,\n pending: false,\n valid: true,\n validated: !!unref(errors).length,\n initialValue: computed(() => unref(initialValue)),\n dirty: computed(() => {\n return !isEqual(unref(currentValue), unref(initialValue));\n }),\n });\n watch(errors, value => {\n meta.valid = !value.length;\n }, {\n immediate: true,\n flush: 'sync',\n });\n return meta;\n}\n/**\n * Creates the error message state for the field state\n */\nfunction _useFieldErrors(path, form) {\n function normalizeErrors(messages) {\n if (!messages) {\n return [];\n }\n return Array.isArray(messages) ? messages : [messages];\n }\n if (!form) {\n const errors = ref([]);\n return {\n errors,\n errorMessage: computed(() => errors.value[0]),\n setErrors: (messages) => {\n errors.value = normalizeErrors(messages);\n },\n };\n }\n const errors = computed(() => form.errorBag.value[unref(path)] || []);\n return {\n errors,\n errorMessage: computed(() => errors.value[0]),\n setErrors: (messages) => {\n form.setFieldErrorBag(unref(path), normalizeErrors(messages));\n },\n };\n}\n\nfunction installDevtoolsPlugin(app) {\n if ((process.env.NODE_ENV !== 'production')) {\n setupDevtoolsPlugin({\n id: 'vee-validate-devtools-plugin',\n label: 'VeeValidate Plugin',\n packageName: 'vee-validate',\n homepage: 'https://vee-validate.logaretm.com/v4',\n app,\n logo: 'https://vee-validate.logaretm.com/v4/logo.png',\n }, setupApiHooks);\n }\n}\nconst DEVTOOLS_FORMS = {};\nconst DEVTOOLS_FIELDS = {};\nlet API;\nconst refreshInspector = throttle(() => {\n setTimeout(async () => {\n await nextTick();\n API === null || API === void 0 ? void 0 : API.sendInspectorState(INSPECTOR_ID);\n API === null || API === void 0 ? void 0 : API.sendInspectorTree(INSPECTOR_ID);\n }, 100);\n}, 100);\nfunction registerFormWithDevTools(form) {\n const vm = getCurrentInstance();\n if (!API) {\n const app = vm === null || vm === void 0 ? void 0 : vm.appContext.app;\n if (!app) {\n return;\n }\n installDevtoolsPlugin(app);\n }\n DEVTOOLS_FORMS[form.formId] = Object.assign({}, form);\n DEVTOOLS_FORMS[form.formId]._vm = vm;\n onUnmounted(() => {\n delete DEVTOOLS_FORMS[form.formId];\n refreshInspector();\n });\n refreshInspector();\n}\nfunction registerSingleFieldWithDevtools(field) {\n const vm = getCurrentInstance();\n if (!API) {\n const app = vm === null || vm === void 0 ? void 0 : vm.appContext.app;\n if (!app) {\n return;\n }\n installDevtoolsPlugin(app);\n }\n DEVTOOLS_FIELDS[field.id] = Object.assign({}, field);\n DEVTOOLS_FIELDS[field.id]._vm = vm;\n onUnmounted(() => {\n delete DEVTOOLS_FIELDS[field.id];\n refreshInspector();\n });\n refreshInspector();\n}\nconst INSPECTOR_ID = 'vee-validate-inspector';\nconst COLORS = {\n error: 0xbd4b4b,\n success: 0x06d77b,\n unknown: 0x54436b,\n white: 0xffffff,\n black: 0x000000,\n blue: 0x035397,\n purple: 0xb980f0,\n orange: 0xf5a962,\n gray: 0xbbbfca,\n};\nlet SELECTED_NODE = null;\nfunction setupApiHooks(api) {\n API = api;\n api.addInspector({\n id: INSPECTOR_ID,\n icon: 'rule',\n label: 'vee-validate',\n noSelectionText: 'Select a vee-validate node to inspect',\n actions: [\n {\n icon: 'done_outline',\n tooltip: 'Validate selected item',\n action: async () => {\n if (!SELECTED_NODE) {\n console.error('There is not a valid selected vee-validate node or component');\n return;\n }\n await SELECTED_NODE.validate();\n },\n },\n {\n icon: 'delete_sweep',\n tooltip: 'Clear validation state of the selected item',\n action: () => {\n if (!SELECTED_NODE) {\n console.error('There is not a valid selected vee-validate node or component');\n return;\n }\n if ('id' in SELECTED_NODE) {\n SELECTED_NODE.resetField();\n return;\n }\n SELECTED_NODE.resetForm();\n },\n },\n ],\n });\n api.on.getInspectorTree(payload => {\n if (payload.inspectorId !== INSPECTOR_ID) {\n return;\n }\n const forms = Object.values(DEVTOOLS_FORMS);\n const fields = Object.values(DEVTOOLS_FIELDS);\n payload.rootNodes = [\n ...forms.map(mapFormForDevtoolsInspector),\n ...fields.map(field => mapFieldForDevtoolsInspector(field)),\n ];\n });\n api.on.getInspectorState((payload, ctx) => {\n if (payload.inspectorId !== INSPECTOR_ID || ctx.currentTab !== `custom-inspector:${INSPECTOR_ID}`) {\n return;\n }\n const { form, field, type } = decodeNodeId(payload.nodeId);\n if (form && type === 'form') {\n payload.state = buildFormState(form);\n SELECTED_NODE = form;\n return;\n }\n if (field && type === 'field') {\n payload.state = buildFieldState(field);\n SELECTED_NODE = field;\n return;\n }\n SELECTED_NODE = null;\n });\n}\nfunction mapFormForDevtoolsInspector(form) {\n const { textColor, bgColor } = getTagTheme(form);\n const formTreeNodes = {};\n Object.values(form.fieldsByPath.value).forEach(field => {\n const fieldInstance = Array.isArray(field) ? field[0] : field;\n if (!fieldInstance) {\n return;\n }\n setInPath(formTreeNodes, unref(fieldInstance.name), mapFieldForDevtoolsInspector(fieldInstance, form));\n });\n function buildFormTree(tree, path = []) {\n const key = [...path].pop();\n if ('id' in tree) {\n return Object.assign(Object.assign({}, tree), { label: key || tree.label });\n }\n if (isObject(tree)) {\n return {\n id: `${path.join('.')}`,\n label: key || '',\n children: Object.keys(tree).map(key => buildFormTree(tree[key], [...path, key])),\n };\n }\n if (Array.isArray(tree)) {\n return {\n id: `${path.join('.')}`,\n label: `${key}[]`,\n children: tree.map((c, idx) => buildFormTree(c, [...path, String(idx)])),\n };\n }\n return { id: '', label: '', children: [] };\n }\n const { children } = buildFormTree(formTreeNodes);\n return {\n id: encodeNodeId(form),\n label: 'Form',\n children,\n tags: [\n {\n label: 'Form',\n textColor,\n backgroundColor: bgColor,\n },\n {\n label: `${Object.keys(form.fieldsByPath.value).length} fields`,\n textColor: COLORS.white,\n backgroundColor: COLORS.unknown,\n },\n ],\n };\n}\nfunction mapFieldForDevtoolsInspector(field, form) {\n const fieldInstance = normalizeField(field);\n const { textColor, bgColor } = getTagTheme(fieldInstance);\n const isGroup = Array.isArray(field) && field.length > 1;\n return {\n id: encodeNodeId(form, fieldInstance, !isGroup),\n label: unref(fieldInstance.name),\n children: Array.isArray(field) ? field.map(fieldItem => mapFieldForDevtoolsInspector(fieldItem, form)) : undefined,\n tags: [\n isGroup\n ? undefined\n : {\n label: 'Field',\n textColor,\n backgroundColor: bgColor,\n },\n !form\n ? {\n label: 'Standalone',\n textColor: COLORS.black,\n backgroundColor: COLORS.gray,\n }\n : undefined,\n !isGroup && fieldInstance.type === 'checkbox'\n ? {\n label: 'Checkbox',\n textColor: COLORS.white,\n backgroundColor: COLORS.blue,\n }\n : undefined,\n !isGroup && fieldInstance.type === 'radio'\n ? {\n label: 'Radio',\n textColor: COLORS.white,\n backgroundColor: COLORS.purple,\n }\n : undefined,\n isGroup\n ? {\n label: 'Group',\n textColor: COLORS.black,\n backgroundColor: COLORS.orange,\n }\n : undefined,\n ].filter(Boolean),\n };\n}\nfunction encodeNodeId(form, field, encodeIndex = true) {\n const fieldPath = form ? unref(field === null || field === void 0 ? void 0 : field.name) : field === null || field === void 0 ? void 0 : field.id;\n const fieldGroup = fieldPath ? form === null || form === void 0 ? void 0 : form.fieldsByPath.value[fieldPath] : undefined;\n let idx;\n if (encodeIndex && field && Array.isArray(fieldGroup)) {\n idx = fieldGroup.indexOf(field);\n }\n const idObject = { f: form === null || form === void 0 ? void 0 : form.formId, ff: fieldPath, idx, type: field ? 'field' : 'form' };\n return btoa(JSON.stringify(idObject));\n}\nfunction decodeNodeId(nodeId) {\n try {\n const idObject = JSON.parse(atob(nodeId));\n const form = DEVTOOLS_FORMS[idObject.f];\n if (!form && idObject.ff) {\n const field = DEVTOOLS_FIELDS[idObject.ff];\n if (!field) {\n return {};\n }\n return {\n type: idObject.type,\n field,\n };\n }\n if (!form) {\n return {};\n }\n const fieldGroup = form.fieldsByPath.value[idObject.ff];\n return {\n type: idObject.type,\n form,\n field: Array.isArray(fieldGroup) ? fieldGroup[idObject.idx || 0] : fieldGroup,\n };\n }\n catch (err) {\n // console.error(`Devtools: [vee-validate] Failed to parse node id ${nodeId}`);\n }\n return {};\n}\nfunction buildFieldState(field) {\n const { errors, meta, value } = field;\n return {\n 'Field state': [\n { key: 'errors', value: errors.value },\n {\n key: 'initialValue',\n value: meta.initialValue,\n },\n {\n key: 'currentValue',\n value: value.value,\n },\n {\n key: 'touched',\n value: meta.touched,\n },\n {\n key: 'dirty',\n value: meta.dirty,\n },\n {\n key: 'valid',\n value: meta.valid,\n },\n ],\n };\n}\nfunction buildFormState(form) {\n const { errorBag, meta, values, isSubmitting, submitCount } = form;\n return {\n 'Form state': [\n {\n key: 'submitCount',\n value: submitCount.value,\n },\n {\n key: 'isSubmitting',\n value: isSubmitting.value,\n },\n {\n key: 'touched',\n value: meta.value.touched,\n },\n {\n key: 'dirty',\n value: meta.value.dirty,\n },\n {\n key: 'valid',\n value: meta.value.valid,\n },\n {\n key: 'initialValues',\n value: meta.value.initialValues,\n },\n {\n key: 'currentValues',\n value: values,\n },\n {\n key: 'errors',\n value: keysOf(errorBag.value).reduce((acc, key) => {\n var _a;\n const message = (_a = errorBag.value[key]) === null || _a === void 0 ? void 0 : _a[0];\n if (message) {\n acc[key] = message;\n }\n return acc;\n }, {}),\n },\n ],\n };\n}\n/**\n * Resolves the tag color based on the form state\n */\nfunction getTagTheme(fieldOrForm) {\n // const fallbackColors = {\n // bgColor: COLORS.unknown,\n // textColor: COLORS.white,\n // };\n const isValid = 'id' in fieldOrForm ? fieldOrForm.meta.valid : fieldOrForm.meta.value.valid;\n return {\n bgColor: isValid ? COLORS.success : COLORS.error,\n textColor: isValid ? COLORS.black : COLORS.white,\n };\n}\n\n/**\n * Creates a field composite.\n */\nfunction useField(path, rules, opts) {\n if (hasCheckedAttr(opts === null || opts === void 0 ? void 0 : opts.type)) {\n return useCheckboxField(path, rules, opts);\n }\n return _useField(path, rules, opts);\n}\nfunction _useField(path, rules, opts) {\n const { initialValue: modelValue, validateOnMount, bails, type, checkedValue, label, validateOnValueUpdate, uncheckedValue, controlled, keepValueOnUnmount, modelPropName, syncVModel, form: controlForm, } = normalizeOptions(opts);\n const injectedForm = controlled ? injectWithSelf(FormContextKey) : undefined;\n const form = controlForm || injectedForm;\n const name = lazyToRef(path);\n // a flag indicating if the field is about to be removed/unmounted.\n let markedForRemoval = false;\n const { id, value, initialValue, meta, setState, errors, errorMessage } = useFieldState(name, {\n modelValue,\n form,\n });\n if (syncVModel) {\n useVModel({ value, prop: modelPropName, handleChange });\n }\n /**\n * Handles common onBlur meta update\n */\n const handleBlur = () => {\n meta.touched = true;\n };\n const normalizedRules = computed(() => {\n let rulesValue = unref(rules);\n const schema = unref(form === null || form === void 0 ? void 0 : form.schema);\n if (schema && !isYupValidator(schema) && !isTypedSchema(schema)) {\n rulesValue = extractRuleFromSchema(schema, unref(name)) || rulesValue;\n }\n if (isYupValidator(rulesValue) ||\n isTypedSchema(rulesValue) ||\n isCallable(rulesValue) ||\n Array.isArray(rulesValue)) {\n return rulesValue;\n }\n return normalizeRules(rulesValue);\n });\n async function validateCurrentValue(mode) {\n var _a, _b;\n if (form === null || form === void 0 ? void 0 : form.validateSchema) {\n return (_a = (await form.validateSchema(mode)).results[unref(name)]) !== null && _a !== void 0 ? _a : { valid: true, errors: [] };\n }\n return validate(value.value, normalizedRules.value, {\n name: unref(name),\n label: unref(label),\n values: (_b = form === null || form === void 0 ? void 0 : form.values) !== null && _b !== void 0 ? _b : {},\n bails,\n });\n }\n const validateWithStateMutation = withLatest(async () => {\n meta.pending = true;\n meta.validated = true;\n return validateCurrentValue('validated-only');\n }, result => {\n if (markedForRemoval) {\n result.valid = true;\n result.errors = [];\n }\n setState({ errors: result.errors });\n meta.pending = false;\n return result;\n });\n const validateValidStateOnly = withLatest(async () => {\n return validateCurrentValue('silent');\n }, result => {\n if (markedForRemoval) {\n result.valid = true;\n }\n meta.valid = result.valid;\n return result;\n });\n function validate$1(opts) {\n if ((opts === null || opts === void 0 ? void 0 : opts.mode) === 'silent') {\n return validateValidStateOnly();\n }\n return validateWithStateMutation();\n }\n // Common input/change event handler\n function handleChange(e, shouldValidate = true) {\n const newValue = normalizeEventValue(e);\n value.value = newValue;\n if (!validateOnValueUpdate && shouldValidate) {\n validateWithStateMutation();\n }\n }\n // Runs the initial validation\n onMounted(() => {\n if (validateOnMount) {\n return validateWithStateMutation();\n }\n // validate self initially if no form was handling this\n // forms should have their own initial silent validation run to make things more efficient\n if (!form || !form.validateSchema) {\n validateValidStateOnly();\n }\n });\n function setTouched(isTouched) {\n meta.touched = isTouched;\n }\n let unwatchValue;\n let lastWatchedValue = klona(value.value);\n function watchValue() {\n unwatchValue = watch(value, (val, oldVal) => {\n if (isEqual(val, oldVal) && isEqual(val, lastWatchedValue)) {\n return;\n }\n const validateFn = validateOnValueUpdate ? validateWithStateMutation : validateValidStateOnly;\n validateFn();\n lastWatchedValue = klona(val);\n }, {\n deep: true,\n });\n }\n watchValue();\n function resetField(state) {\n var _a;\n unwatchValue === null || unwatchValue === void 0 ? void 0 : unwatchValue();\n const newValue = state && 'value' in state ? state.value : initialValue.value;\n setState({\n value: klona(newValue),\n initialValue: klona(newValue),\n touched: (_a = state === null || state === void 0 ? void 0 : state.touched) !== null && _a !== void 0 ? _a : false,\n errors: (state === null || state === void 0 ? void 0 : state.errors) || [],\n });\n meta.pending = false;\n meta.validated = false;\n validateValidStateOnly();\n // need to watch at next tick to avoid triggering the value watcher\n nextTick(() => {\n watchValue();\n });\n }\n function setValue(newValue) {\n value.value = newValue;\n }\n function setErrors(errors) {\n setState({ errors: Array.isArray(errors) ? errors : [errors] });\n }\n const field = {\n id,\n name,\n label,\n value,\n meta,\n errors,\n errorMessage,\n type,\n checkedValue,\n uncheckedValue,\n bails,\n keepValueOnUnmount,\n resetField,\n handleReset: () => resetField(),\n validate: validate$1,\n handleChange,\n handleBlur,\n setState,\n setTouched,\n setErrors,\n setValue,\n };\n provide(FieldContextKey, field);\n if (isRef(rules) && typeof unref(rules) !== 'function') {\n watch(rules, (value, oldValue) => {\n if (isEqual(value, oldValue)) {\n return;\n }\n meta.validated ? validateWithStateMutation() : validateValidStateOnly();\n }, {\n deep: true,\n });\n }\n if ((process.env.NODE_ENV !== 'production')) {\n field._vm = getCurrentInstance();\n watch(() => (Object.assign(Object.assign({ errors: errors.value }, meta), { value: value.value })), refreshInspector, {\n deep: true,\n });\n if (!form) {\n registerSingleFieldWithDevtools(field);\n }\n }\n // if no associated form return the field API immediately\n if (!form) {\n return field;\n }\n // associate the field with the given form\n form.register(field);\n onBeforeUnmount(() => {\n markedForRemoval = true;\n form.unregister(field);\n });\n // extract cross-field dependencies in a computed prop\n const dependencies = computed(() => {\n const rulesVal = normalizedRules.value;\n // is falsy, a function schema or a yup schema\n if (!rulesVal ||\n isCallable(rulesVal) ||\n isYupValidator(rulesVal) ||\n isTypedSchema(rulesVal) ||\n Array.isArray(rulesVal)) {\n return {};\n }\n return Object.keys(rulesVal).reduce((acc, rule) => {\n const deps = extractLocators(rulesVal[rule])\n .map((dep) => dep.__locatorRef)\n .reduce((depAcc, depName) => {\n const depValue = getFromPath(form.values, depName) || form.values[depName];\n if (depValue !== undefined) {\n depAcc[depName] = depValue;\n }\n return depAcc;\n }, {});\n Object.assign(acc, deps);\n return acc;\n }, {});\n });\n // Adds a watcher that runs the validation whenever field dependencies change\n watch(dependencies, (deps, oldDeps) => {\n // Skip if no dependencies or if the field wasn't manipulated\n if (!Object.keys(deps).length) {\n return;\n }\n const shouldValidate = !isEqual(deps, oldDeps);\n if (shouldValidate) {\n meta.validated ? validateWithStateMutation() : validateValidStateOnly();\n }\n });\n return field;\n}\n/**\n * Normalizes partial field options to include the full options\n */\nfunction normalizeOptions(opts) {\n var _a;\n const defaults = () => ({\n initialValue: undefined,\n validateOnMount: false,\n bails: true,\n label: undefined,\n validateOnValueUpdate: true,\n keepValueOnUnmount: undefined,\n modelPropName: 'modelValue',\n syncVModel: true,\n controlled: true,\n });\n const isVModelSynced = (_a = opts === null || opts === void 0 ? void 0 : opts.syncVModel) !== null && _a !== void 0 ? _a : true;\n const initialValue = isVModelSynced && !('initialValue' in (opts || {}))\n ? getCurrentModelValue(getCurrentInstance(), (opts === null || opts === void 0 ? void 0 : opts.modelPropName) || 'modelValue')\n : opts === null || opts === void 0 ? void 0 : opts.initialValue;\n if (!opts) {\n return Object.assign(Object.assign({}, defaults()), { initialValue });\n }\n // TODO: Deprecate this in next major release\n const checkedValue = 'valueProp' in opts ? opts.valueProp : opts.checkedValue;\n const controlled = 'standalone' in opts ? !opts.standalone : opts.controlled;\n return Object.assign(Object.assign(Object.assign({}, defaults()), (opts || {})), { initialValue, controlled: controlled !== null && controlled !== void 0 ? controlled : true, checkedValue });\n}\n/**\n * Extracts the validation rules from a schema\n */\nfunction extractRuleFromSchema(schema, fieldName) {\n // no schema at all\n if (!schema) {\n return undefined;\n }\n // there is a key on the schema object for this field\n return schema[fieldName];\n}\nfunction useCheckboxField(name, rules, opts) {\n const form = !(opts === null || opts === void 0 ? void 0 : opts.standalone) ? injectWithSelf(FormContextKey) : undefined;\n const checkedValue = opts === null || opts === void 0 ? void 0 : opts.checkedValue;\n const uncheckedValue = opts === null || opts === void 0 ? void 0 : opts.uncheckedValue;\n function patchCheckboxApi(field) {\n const handleChange = field.handleChange;\n const checked = computed(() => {\n const currentValue = unref(field.value);\n const checkedVal = unref(checkedValue);\n return Array.isArray(currentValue)\n ? currentValue.findIndex(v => isEqual(v, checkedVal)) >= 0\n : isEqual(checkedVal, currentValue);\n });\n function handleCheckboxChange(e, shouldValidate = true) {\n var _a;\n if (checked.value === ((_a = e === null || e === void 0 ? void 0 : e.target) === null || _a === void 0 ? void 0 : _a.checked)) {\n if (shouldValidate) {\n field.validate();\n }\n return;\n }\n let newValue = normalizeEventValue(e);\n // Single checkbox field without a form to toggle it's value\n if (!form) {\n newValue = resolveNextCheckboxValue(unref(field.value), unref(checkedValue), unref(uncheckedValue));\n }\n handleChange(newValue, shouldValidate);\n }\n return Object.assign(Object.assign({}, field), { checked,\n checkedValue,\n uncheckedValue, handleChange: handleCheckboxChange });\n }\n return patchCheckboxApi(_useField(name, rules, opts));\n}\nfunction useVModel({ prop, value, handleChange }) {\n const vm = getCurrentInstance();\n /* istanbul ignore next */\n if (!vm) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.warn('Failed to setup model events because `useField` was not called in setup.');\n }\n return;\n }\n const propName = prop || 'modelValue';\n const emitName = `update:${propName}`;\n // Component doesn't have a model prop setup (must be defined on the props)\n if (!(propName in vm.props)) {\n return;\n }\n watch(value, newValue => {\n if (isEqual(newValue, getCurrentModelValue(vm, propName))) {\n return;\n }\n vm.emit(emitName, newValue);\n });\n watch(() => getCurrentModelValue(vm, propName), propValue => {\n if (propValue === IS_ABSENT && value.value === undefined) {\n return;\n }\n const newValue = propValue === IS_ABSENT ? undefined : propValue;\n if (isEqual(newValue, applyModelModifiers(value.value, vm.props.modelModifiers))) {\n return;\n }\n handleChange(newValue);\n });\n}\nfunction getCurrentModelValue(vm, propName) {\n if (!vm) {\n return undefined;\n }\n return vm.props[propName];\n}\n\nconst FieldImpl = defineComponent({\n name: 'Field',\n inheritAttrs: false,\n props: {\n as: {\n type: [String, Object],\n default: undefined,\n },\n name: {\n type: String,\n required: true,\n },\n rules: {\n type: [Object, String, Function],\n default: undefined,\n },\n validateOnMount: {\n type: Boolean,\n default: false,\n },\n validateOnBlur: {\n type: Boolean,\n default: undefined,\n },\n validateOnChange: {\n type: Boolean,\n default: undefined,\n },\n validateOnInput: {\n type: Boolean,\n default: undefined,\n },\n validateOnModelUpdate: {\n type: Boolean,\n default: undefined,\n },\n bails: {\n type: Boolean,\n default: () => getConfig().bails,\n },\n label: {\n type: String,\n default: undefined,\n },\n uncheckedValue: {\n type: null,\n default: undefined,\n },\n modelValue: {\n type: null,\n default: IS_ABSENT,\n },\n modelModifiers: {\n type: null,\n default: () => ({}),\n },\n 'onUpdate:modelValue': {\n type: null,\n default: undefined,\n },\n standalone: {\n type: Boolean,\n default: false,\n },\n keepValue: {\n type: Boolean,\n default: undefined,\n },\n },\n setup(props, ctx) {\n const rules = toRef(props, 'rules');\n const name = toRef(props, 'name');\n const label = toRef(props, 'label');\n const uncheckedValue = toRef(props, 'uncheckedValue');\n const keepValue = toRef(props, 'keepValue');\n const { errors, value, errorMessage, validate: validateField, handleChange, handleBlur, setTouched, resetField, handleReset, meta, checked, setErrors, } = useField(name, rules, {\n validateOnMount: props.validateOnMount,\n bails: props.bails,\n standalone: props.standalone,\n type: ctx.attrs.type,\n initialValue: resolveInitialValue(props, ctx),\n // Only for checkboxes and radio buttons\n checkedValue: ctx.attrs.value,\n uncheckedValue,\n label,\n validateOnValueUpdate: false,\n keepValueOnUnmount: keepValue,\n });\n // If there is a v-model applied on the component we need to emit the `update:modelValue` whenever the value binding changes\n const onChangeHandler = function handleChangeWithModel(e, shouldValidate = true) {\n handleChange(e, shouldValidate);\n ctx.emit('update:modelValue', value.value);\n };\n const handleInput = (e) => {\n if (!hasCheckedAttr(ctx.attrs.type)) {\n value.value = normalizeEventValue(e);\n }\n };\n const onInputHandler = function handleInputWithModel(e) {\n handleInput(e);\n ctx.emit('update:modelValue', value.value);\n };\n const fieldProps = computed(() => {\n const { validateOnInput, validateOnChange, validateOnBlur, validateOnModelUpdate } = resolveValidationTriggers(props);\n const baseOnBlur = [handleBlur, ctx.attrs.onBlur, validateOnBlur ? validateField : undefined].filter(Boolean);\n const baseOnInput = [(e) => onChangeHandler(e, validateOnInput), ctx.attrs.onInput].filter(Boolean);\n const baseOnChange = [(e) => onChangeHandler(e, validateOnChange), ctx.attrs.onChange].filter(Boolean);\n const attrs = {\n name: props.name,\n onBlur: baseOnBlur,\n onInput: baseOnInput,\n onChange: baseOnChange,\n };\n attrs['onUpdate:modelValue'] = e => onChangeHandler(e, validateOnModelUpdate);\n if (hasCheckedAttr(ctx.attrs.type) && checked) {\n attrs.checked = checked.value;\n }\n const tag = resolveTag(props, ctx);\n if (shouldHaveValueBinding(tag, ctx.attrs)) {\n attrs.value = value.value;\n }\n return attrs;\n });\n function slotProps() {\n return {\n field: fieldProps.value,\n value: value.value,\n meta,\n errors: errors.value,\n errorMessage: errorMessage.value,\n validate: validateField,\n resetField,\n handleChange: onChangeHandler,\n handleInput: onInputHandler,\n handleReset,\n handleBlur,\n setTouched,\n setErrors,\n };\n }\n ctx.expose({\n setErrors,\n setTouched,\n reset: resetField,\n validate: validateField,\n handleChange,\n });\n return () => {\n const tag = resolveDynamicComponent(resolveTag(props, ctx));\n const children = normalizeChildren(tag, ctx, slotProps);\n if (tag) {\n return h(tag, Object.assign(Object.assign({}, ctx.attrs), fieldProps.value), children);\n }\n return children;\n };\n },\n});\nfunction resolveTag(props, ctx) {\n let tag = props.as || '';\n if (!props.as && !ctx.slots.default) {\n tag = 'input';\n }\n return tag;\n}\nfunction resolveValidationTriggers(props) {\n var _a, _b, _c, _d;\n const { validateOnInput, validateOnChange, validateOnBlur, validateOnModelUpdate } = getConfig();\n return {\n validateOnInput: (_a = props.validateOnInput) !== null && _a !== void 0 ? _a : validateOnInput,\n validateOnChange: (_b = props.validateOnChange) !== null && _b !== void 0 ? _b : validateOnChange,\n validateOnBlur: (_c = props.validateOnBlur) !== null && _c !== void 0 ? _c : validateOnBlur,\n validateOnModelUpdate: (_d = props.validateOnModelUpdate) !== null && _d !== void 0 ? _d : validateOnModelUpdate,\n };\n}\nfunction resolveInitialValue(props, ctx) {\n // Gets the initial value either from `value` prop/attr or `v-model` binding (modelValue)\n // For checkboxes and radio buttons it will always be the model value not the `value` attribute\n if (!hasCheckedAttr(ctx.attrs.type)) {\n return isPropPresent(props, 'modelValue') ? props.modelValue : ctx.attrs.value;\n }\n return isPropPresent(props, 'modelValue') ? props.modelValue : undefined;\n}\nconst Field = FieldImpl;\n\nlet FORM_COUNTER = 0;\nfunction resolveInitialValues(opts) {\n const providedValues = unref(opts === null || opts === void 0 ? void 0 : opts.initialValues) || {};\n const schema = unref(opts === null || opts === void 0 ? void 0 : opts.validationSchema);\n if (schema && isTypedSchema(schema) && isCallable(schema.cast)) {\n return klona(schema.cast(providedValues) || {});\n }\n return klona(providedValues);\n}\nfunction useForm(opts) {\n var _a;\n const formId = FORM_COUNTER++;\n const controlledModelPaths = new Set();\n // Prevents fields from double resetting their values, which causes checkboxes to toggle their initial value\n // TODO: This won't be needed if we centralize all the state inside the `form` for form inputs\n let RESET_LOCK = false;\n // A lookup containing fields or field groups\n const fieldsByPath = ref({});\n // If the form is currently submitting\n const isSubmitting = ref(false);\n // The number of times the user tried to submit the form\n const submitCount = ref(0);\n // field arrays managed by this form\n const fieldArrays = [];\n // a private ref for all form values\n const formValues = reactive(resolveInitialValues(opts));\n // the source of errors for the form fields\n const { errorBag, setErrorBag, setFieldErrorBag } = useErrorBag(opts === null || opts === void 0 ? void 0 : opts.initialErrors);\n // Gets the first error of each field\n const errors = computed(() => {\n return keysOf(errorBag.value).reduce((acc, key) => {\n const bag = errorBag.value[key];\n if (bag && bag.length) {\n acc[key] = bag[0];\n }\n return acc;\n }, {});\n });\n function getFirstFieldAtPath(path) {\n const fieldOrGroup = fieldsByPath.value[path];\n return Array.isArray(fieldOrGroup) ? fieldOrGroup[0] : fieldOrGroup;\n }\n function fieldExists(path) {\n return !!fieldsByPath.value[path];\n }\n /**\n * Holds a computed reference to all fields names and labels\n */\n const fieldNames = computed(() => {\n return keysOf(fieldsByPath.value).reduce((names, path) => {\n const field = getFirstFieldAtPath(path);\n if (field) {\n names[path] = { name: unref(field.name) || '', label: unref(field.label) || '' };\n }\n return names;\n }, {});\n });\n const fieldBailsMap = computed(() => {\n return keysOf(fieldsByPath.value).reduce((map, path) => {\n var _a;\n const field = getFirstFieldAtPath(path);\n if (field) {\n map[path] = (_a = field.bails) !== null && _a !== void 0 ? _a : true;\n }\n return map;\n }, {});\n });\n // mutable non-reactive reference to initial errors\n // we need this to process initial errors then unset them\n const initialErrors = Object.assign({}, ((opts === null || opts === void 0 ? void 0 : opts.initialErrors) || {}));\n const keepValuesOnUnmount = (_a = opts === null || opts === void 0 ? void 0 : opts.keepValuesOnUnmount) !== null && _a !== void 0 ? _a : false;\n // initial form values\n const { initialValues, originalInitialValues, setInitialValues } = useFormInitialValues(fieldsByPath, formValues, opts);\n // form meta aggregations\n const meta = useFormMeta(fieldsByPath, formValues, originalInitialValues, errors);\n const controlledValues = computed(() => {\n return [...controlledModelPaths, ...keysOf(fieldsByPath.value)].reduce((acc, path) => {\n const value = getFromPath(formValues, path);\n setInPath(acc, path, value);\n return acc;\n }, {});\n });\n const schema = opts === null || opts === void 0 ? void 0 : opts.validationSchema;\n /**\n * Batches validation runs in 5ms batches\n * Must have two distinct batch queues to make sure they don't override each other settings #3783\n */\n const debouncedSilentValidation = debounceAsync(_validateSchema, 5);\n const debouncedValidation = debounceAsync(_validateSchema, 5);\n const validateSchema = withLatest(async (mode) => {\n return (await mode) === 'silent' ? debouncedSilentValidation() : debouncedValidation();\n }, (formResult, [mode]) => {\n // fields by id lookup\n const fieldsById = formCtx.fieldsByPath.value || {};\n // errors fields names, we need it to also check if custom errors are updated\n const currentErrorsPaths = keysOf(formCtx.errorBag.value);\n // collect all the keys from the schema and all fields\n // this ensures we have a complete keymap of all the fields\n const paths = [\n ...new Set([...keysOf(formResult.results), ...keysOf(fieldsById), ...currentErrorsPaths]),\n ];\n // aggregates the paths into a single result object while applying the results on the fields\n return paths.reduce((validation, path) => {\n const field = fieldsById[path];\n const messages = (formResult.results[path] || { errors: [] }).errors;\n const fieldResult = {\n errors: messages,\n valid: !messages.length,\n };\n validation.results[path] = fieldResult;\n if (!fieldResult.valid) {\n validation.errors[path] = fieldResult.errors[0];\n }\n // field not rendered\n if (!field) {\n setFieldError(path, messages);\n return validation;\n }\n // always update the valid flag regardless of the mode\n applyFieldMutation(field, f => (f.meta.valid = fieldResult.valid));\n if (mode === 'silent') {\n return validation;\n }\n const wasValidated = Array.isArray(field) ? field.some(f => f.meta.validated) : field.meta.validated;\n if (mode === 'validated-only' && !wasValidated) {\n return validation;\n }\n applyFieldMutation(field, f => f.setState({ errors: fieldResult.errors }));\n return validation;\n }, { valid: formResult.valid, results: {}, errors: {} });\n });\n function makeSubmissionFactory(onlyControlled) {\n return function submitHandlerFactory(fn, onValidationError) {\n return function submissionHandler(e) {\n if (e instanceof Event) {\n e.preventDefault();\n e.stopPropagation();\n }\n // Touch all fields\n setTouched(keysOf(fieldsByPath.value).reduce((acc, field) => {\n acc[field] = true;\n return acc;\n }, {}));\n isSubmitting.value = true;\n submitCount.value++;\n return validate()\n .then(result => {\n const values = klona(formValues);\n if (result.valid && typeof fn === 'function') {\n const controlled = klona(controlledValues.value);\n let submittedValues = onlyControlled ? controlled : values;\n if (result.values) {\n submittedValues = result.values;\n }\n return fn(submittedValues, {\n evt: e,\n controlledValues: controlled,\n setErrors,\n setFieldError,\n setTouched,\n setFieldTouched,\n setValues,\n setFieldValue,\n resetForm,\n resetField,\n });\n }\n if (!result.valid && typeof onValidationError === 'function') {\n onValidationError({\n values,\n evt: e,\n errors: result.errors,\n results: result.results,\n });\n }\n })\n .then(returnVal => {\n isSubmitting.value = false;\n return returnVal;\n }, err => {\n isSubmitting.value = false;\n // re-throw the err so it doesn't go silent\n throw err;\n });\n };\n };\n }\n const handleSubmitImpl = makeSubmissionFactory(false);\n const handleSubmit = handleSubmitImpl;\n handleSubmit.withControlled = makeSubmissionFactory(true);\n const formCtx = {\n formId,\n fieldsByPath,\n values: formValues,\n controlledValues,\n errorBag,\n errors,\n schema,\n submitCount,\n meta,\n isSubmitting,\n fieldArrays,\n keepValuesOnUnmount,\n validateSchema: unref(schema) ? validateSchema : undefined,\n validate,\n register: registerField,\n unregister: unregisterField,\n setFieldErrorBag,\n validateField,\n setFieldValue,\n setValues,\n setErrors,\n setFieldError,\n setFieldTouched,\n setTouched,\n resetForm,\n resetField,\n handleSubmit,\n stageInitialValue,\n unsetInitialValue,\n setFieldInitialValue,\n useFieldModel,\n };\n function isFieldGroup(fieldOrGroup) {\n return Array.isArray(fieldOrGroup);\n }\n function applyFieldMutation(fieldOrGroup, mutation) {\n if (Array.isArray(fieldOrGroup)) {\n return fieldOrGroup.forEach(mutation);\n }\n return mutation(fieldOrGroup);\n }\n function mutateAllFields(mutation) {\n Object.values(fieldsByPath.value).forEach(field => {\n if (!field) {\n return;\n }\n // avoid resetting the field values, because they should've been reset already.\n applyFieldMutation(field, mutation);\n });\n }\n /**\n * Manually sets an error message on a specific field\n */\n function setFieldError(field, message) {\n setFieldErrorBag(field, message);\n }\n /**\n * Sets errors for the fields specified in the object\n */\n function setErrors(fields) {\n setErrorBag(fields);\n }\n /**\n * Sets a single field value\n */\n function setFieldValue(field, value, { force } = { force: false }) {\n var _a;\n const fieldInstance = fieldsByPath.value[field];\n const clonedValue = klona(value);\n // field wasn't found, create a virtual field as a placeholder\n if (!fieldInstance) {\n setInPath(formValues, field, clonedValue);\n return;\n }\n if (isFieldGroup(fieldInstance) && ((_a = fieldInstance[0]) === null || _a === void 0 ? void 0 : _a.type) === 'checkbox' && !Array.isArray(value)) {\n // Multiple checkboxes, and only one of them got updated\n const newValue = klona(resolveNextCheckboxValue(getFromPath(formValues, field) || [], value, undefined));\n setInPath(formValues, field, newValue);\n return;\n }\n let newValue = clonedValue;\n // Single Checkbox: toggles the field value unless the field is being reset then force it\n if (!isFieldGroup(fieldInstance) && fieldInstance.type === 'checkbox' && !force && !RESET_LOCK) {\n newValue = klona(resolveNextCheckboxValue(getFromPath(formValues, field), value, unref(fieldInstance.uncheckedValue)));\n }\n setInPath(formValues, field, newValue);\n }\n /**\n * Sets multiple fields values\n */\n function setValues(fields) {\n // clean up old values\n keysOf(formValues).forEach(key => {\n delete formValues[key];\n });\n // set up new values\n keysOf(fields).forEach(path => {\n setFieldValue(path, fields[path]);\n });\n // regenerate the arrays when the form values change\n fieldArrays.forEach(f => f && f.reset());\n }\n function createModel(path) {\n const { value } = _useFieldValue(path, undefined, formCtx);\n watch(value, () => {\n if (!fieldExists(unref(path))) {\n validate({ mode: 'validated-only' });\n }\n }, {\n deep: true,\n });\n controlledModelPaths.add(unref(path));\n return value;\n }\n function useFieldModel(path) {\n if (!Array.isArray(path)) {\n return createModel(path);\n }\n return path.map(createModel);\n }\n /**\n * Sets the touched meta state on a field\n */\n function setFieldTouched(field, isTouched) {\n const fieldInstance = fieldsByPath.value[field];\n if (fieldInstance) {\n applyFieldMutation(fieldInstance, f => f.setTouched(isTouched));\n }\n }\n /**\n * Sets the touched meta state on multiple fields\n */\n function setTouched(fields) {\n keysOf(fields).forEach(field => {\n setFieldTouched(field, !!fields[field]);\n });\n }\n function resetField(field, state) {\n const fieldInstance = fieldsByPath.value[field];\n if (fieldInstance) {\n applyFieldMutation(fieldInstance, f => f.resetField(state));\n }\n }\n /**\n * Resets all fields\n */\n function resetForm(state) {\n RESET_LOCK = true;\n // Reset all field states first\n mutateAllFields(f => f.resetField());\n // reset values\n const newValues = (state === null || state === void 0 ? void 0 : state.values) ? state.values : originalInitialValues.value;\n setInitialValues(newValues);\n setValues(newValues);\n if (state === null || state === void 0 ? void 0 : state.touched) {\n setTouched(state.touched);\n }\n setErrors((state === null || state === void 0 ? void 0 : state.errors) || {});\n submitCount.value = (state === null || state === void 0 ? void 0 : state.submitCount) || 0;\n nextTick(() => {\n RESET_LOCK = false;\n });\n }\n function insertFieldAtPath(field, path) {\n const rawField = markRaw(field);\n const fieldPath = path;\n // first field at that path\n if (!fieldsByPath.value[fieldPath]) {\n fieldsByPath.value[fieldPath] = rawField;\n return;\n }\n const fieldAtPath = fieldsByPath.value[fieldPath];\n if (fieldAtPath && !Array.isArray(fieldAtPath)) {\n fieldsByPath.value[fieldPath] = [fieldAtPath];\n }\n // add the new array to that path\n fieldsByPath.value[fieldPath] = [...fieldsByPath.value[fieldPath], rawField];\n }\n function removeFieldFromPath(field, path) {\n const fieldPath = path;\n const fieldAtPath = fieldsByPath.value[fieldPath];\n if (!fieldAtPath) {\n return;\n }\n // same field at path\n if (!isFieldGroup(fieldAtPath) && field.id === fieldAtPath.id) {\n delete fieldsByPath.value[fieldPath];\n return;\n }\n if (isFieldGroup(fieldAtPath)) {\n const idx = fieldAtPath.findIndex(f => f.id === field.id);\n if (idx === -1) {\n return;\n }\n fieldAtPath.splice(idx, 1);\n if (!fieldAtPath.length) {\n delete fieldsByPath.value[fieldPath];\n }\n }\n }\n function registerField(field) {\n const fieldPath = unref(field.name);\n insertFieldAtPath(field, fieldPath);\n if (isRef(field.name)) {\n // ensures when a field's name was already taken that it preserves its same value\n // necessary for fields generated by loops\n watch(field.name, async (newPath, oldPath) => {\n // cache the value\n await nextTick();\n removeFieldFromPath(field, oldPath);\n insertFieldAtPath(field, newPath);\n // re-validate if either path had errors before\n if (errors.value[oldPath] || errors.value[newPath]) {\n // clear up both paths errors\n setFieldError(oldPath, undefined);\n validateField(newPath);\n }\n // clean up the old path if no other field is sharing that name\n // #3325\n await nextTick();\n if (!fieldExists(oldPath)) {\n unsetPath(formValues, oldPath);\n }\n });\n }\n // if field already had errors (initial errors) that's not user-set, validate it again to ensure state is correct\n // the difference being that `initialErrors` will contain the error message while other errors (pre-validated schema) won't have them as initial errors\n // #3342\n const initialErrorMessage = unref(field.errorMessage);\n if (initialErrorMessage && (initialErrors === null || initialErrors === void 0 ? void 0 : initialErrors[fieldPath]) !== initialErrorMessage) {\n validateField(fieldPath);\n }\n // marks the initial error as \"consumed\" so it won't be matched later with same non-initial error\n delete initialErrors[fieldPath];\n }\n function unregisterField(field) {\n const fieldName = unref(field.name);\n const fieldInstance = fieldsByPath.value[fieldName];\n const isGroup = !!fieldInstance && isFieldGroup(fieldInstance);\n removeFieldFromPath(field, fieldName);\n // clears a field error on unmounted\n // we wait till next tick to make sure if the field is completely removed and doesn't have any siblings like checkboxes\n nextTick(() => {\n var _a;\n const shouldKeepValue = (_a = unref(field.keepValueOnUnmount)) !== null && _a !== void 0 ? _a : unref(keepValuesOnUnmount);\n const currentGroupValue = getFromPath(formValues, fieldName);\n // The boolean here is we check if the field still belongs to the same control group with that name\n // if another group claimed the name, we should avoid handling it since it is no longer the same group\n // this happens with `v-for` over some checkboxes and field arrays.\n // also if the group no longer exist we can assume this group was the last one that controlled it\n const isSameGroup = isGroup && (fieldInstance === fieldsByPath.value[fieldName] || !fieldsByPath.value[fieldName]);\n // group field that still has a dangling value, the field may exist or not after it was removed.\n // This used to be handled in the useField composable but the form has better context on when it should/not happen.\n // if it does belong to it that means the group still exists\n // #3844\n if (isSameGroup && !shouldKeepValue) {\n if (Array.isArray(currentGroupValue)) {\n const valueIdx = currentGroupValue.findIndex(i => isEqual(i, unref(field.checkedValue)));\n if (valueIdx > -1) {\n const newVal = [...currentGroupValue];\n newVal.splice(valueIdx, 1);\n setFieldValue(fieldName, newVal, { force: true });\n }\n }\n else if (currentGroupValue === unref(field.checkedValue)) {\n // Remove field if it is a group but does not have an array value, like for radio inputs #3963\n unsetPath(formValues, fieldName);\n }\n }\n // Field was removed entirely, we should unset its path\n // #3384\n if (!fieldExists(fieldName)) {\n setFieldError(fieldName, undefined);\n // Checks if the field was configured to be unset during unmount or not\n // Checks both the form-level config and field-level one\n // Field has the priority if it is set, otherwise it goes to the form settings\n if (shouldKeepValue) {\n return;\n }\n // Don't apply emptyContainer check unless the current group value is an array\n if (isGroup && Array.isArray(currentGroupValue) && !isEmptyContainer(currentGroupValue)) {\n return;\n }\n unsetPath(formValues, fieldName);\n }\n });\n }\n async function validate(opts) {\n const mode = (opts === null || opts === void 0 ? void 0 : opts.mode) || 'force';\n if (mode === 'force') {\n mutateAllFields(f => (f.meta.validated = true));\n }\n if (formCtx.validateSchema) {\n return formCtx.validateSchema(mode);\n }\n // No schema, each field is responsible to validate itself\n const validations = await Promise.all(Object.values(fieldsByPath.value).map(field => {\n const fieldInstance = Array.isArray(field) ? field[0] : field;\n if (!fieldInstance) {\n return Promise.resolve({ key: '', valid: true, errors: [] });\n }\n return fieldInstance.validate(opts).then((result) => {\n return {\n key: unref(fieldInstance.name),\n valid: result.valid,\n errors: result.errors,\n };\n });\n }));\n const results = {};\n const errors = {};\n for (const validation of validations) {\n results[validation.key] = {\n valid: validation.valid,\n errors: validation.errors,\n };\n if (validation.errors.length) {\n errors[validation.key] = validation.errors[0];\n }\n }\n return {\n valid: validations.every(r => r.valid),\n results,\n errors,\n };\n }\n async function validateField(field) {\n const fieldInstance = fieldsByPath.value[field];\n if (!fieldInstance) {\n warn$1(`field with name ${field} was not found`);\n return Promise.resolve({ errors: [], valid: true });\n }\n if (Array.isArray(fieldInstance)) {\n return fieldInstance.map(f => f.validate())[0];\n }\n return fieldInstance.validate();\n }\n function unsetInitialValue(path) {\n unsetPath(initialValues.value, path);\n }\n /**\n * Sneaky function to set initial field values\n */\n function stageInitialValue(path, value, updateOriginal = false) {\n setInPath(formValues, path, value);\n setFieldInitialValue(path, value);\n if (updateOriginal && !(opts === null || opts === void 0 ? void 0 : opts.initialValues)) {\n setInPath(originalInitialValues.value, path, klona(value));\n }\n }\n function setFieldInitialValue(path, value) {\n setInPath(initialValues.value, path, klona(value));\n }\n async function _validateSchema() {\n const schemaValue = unref(schema);\n if (!schemaValue) {\n return { valid: true, results: {}, errors: {} };\n }\n const formResult = isYupValidator(schemaValue) || isTypedSchema(schemaValue)\n ? await validateTypedSchema(schemaValue, formValues)\n : await validateObjectSchema(schemaValue, formValues, {\n names: fieldNames.value,\n bailsMap: fieldBailsMap.value,\n });\n return formResult;\n }\n const submitForm = handleSubmit((_, { evt }) => {\n if (isFormSubmitEvent(evt)) {\n evt.target.submit();\n }\n });\n // Trigger initial validation\n onMounted(() => {\n if (opts === null || opts === void 0 ? void 0 : opts.initialErrors) {\n setErrors(opts.initialErrors);\n }\n if (opts === null || opts === void 0 ? void 0 : opts.initialTouched) {\n setTouched(opts.initialTouched);\n }\n // if validate on mount was enabled\n if (opts === null || opts === void 0 ? void 0 : opts.validateOnMount) {\n validate();\n return;\n }\n // otherwise run initial silent validation through schema if available\n // the useField should skip their own silent validation if a yup schema is present\n if (formCtx.validateSchema) {\n formCtx.validateSchema('silent');\n }\n });\n if (isRef(schema)) {\n watch(schema, () => {\n var _a;\n (_a = formCtx.validateSchema) === null || _a === void 0 ? void 0 : _a.call(formCtx, 'validated-only');\n });\n }\n // Provide injections\n provide(FormContextKey, formCtx);\n if ((process.env.NODE_ENV !== 'production')) {\n registerFormWithDevTools(formCtx);\n watch(() => (Object.assign(Object.assign({ errors: errorBag.value }, meta.value), { values: formValues, isSubmitting: isSubmitting.value, submitCount: submitCount.value })), refreshInspector, {\n deep: true,\n });\n }\n return Object.assign(Object.assign({}, formCtx), { handleReset: () => resetForm(), submitForm });\n}\n/**\n * Manages form meta aggregation\n */\nfunction useFormMeta(fieldsByPath, currentValues, initialValues, errors) {\n const MERGE_STRATEGIES = {\n touched: 'some',\n pending: 'some',\n valid: 'every',\n };\n const isDirty = computed(() => {\n return !isEqual(currentValues, unref(initialValues));\n });\n function calculateFlags() {\n const fields = Object.values(fieldsByPath.value).flat(1).filter(Boolean);\n return keysOf(MERGE_STRATEGIES).reduce((acc, flag) => {\n const mergeMethod = MERGE_STRATEGIES[flag];\n acc[flag] = fields[mergeMethod](field => field.meta[flag]);\n return acc;\n }, {});\n }\n const flags = reactive(calculateFlags());\n watchEffect(() => {\n const value = calculateFlags();\n flags.touched = value.touched;\n flags.valid = value.valid;\n flags.pending = value.pending;\n });\n return computed(() => {\n return Object.assign(Object.assign({ initialValues: unref(initialValues) }, flags), { valid: flags.valid && !keysOf(errors.value).length, dirty: isDirty.value });\n });\n}\n/**\n * Manages the initial values prop\n */\nfunction useFormInitialValues(fields, formValues, opts) {\n const values = resolveInitialValues(opts);\n const providedValues = opts === null || opts === void 0 ? void 0 : opts.initialValues;\n // these are the mutable initial values as the fields are mounted/unmounted\n const initialValues = ref(values);\n // these are the original initial value as provided by the user initially, they don't keep track of conditional fields\n // this is important because some conditional fields will overwrite the initial values for other fields who had the same name\n // like array fields, any push/insert operation will overwrite the initial values because they \"create new fields\"\n // so these are the values that the reset function should use\n // these only change when the user explicitly changes the initial values or when the user resets them with new values.\n const originalInitialValues = ref(klona(values));\n function setInitialValues(values, updateFields = false) {\n initialValues.value = klona(values);\n originalInitialValues.value = klona(values);\n if (!updateFields) {\n return;\n }\n // update the pristine non-touched fields\n // those are excluded because it's unlikely you want to change the form values using initial values\n // we mostly watch them for API population or newly inserted fields\n // if the user API is taking too much time before user interaction they should consider disabling or hiding their inputs until the values are ready\n keysOf(fields.value).forEach(fieldPath => {\n const field = fields.value[fieldPath];\n const wasTouched = Array.isArray(field) ? field.some(f => f.meta.touched) : field === null || field === void 0 ? void 0 : field.meta.touched;\n if (!field || wasTouched) {\n return;\n }\n const newValue = getFromPath(initialValues.value, fieldPath);\n setInPath(formValues, fieldPath, klona(newValue));\n });\n }\n if (isRef(providedValues)) {\n watch(providedValues, value => {\n setInitialValues(value, true);\n }, {\n deep: true,\n });\n }\n return {\n initialValues,\n originalInitialValues,\n setInitialValues,\n };\n}\nfunction useErrorBag(initialErrors) {\n const errorBag = ref({});\n function normalizeErrorItem(message) {\n return Array.isArray(message) ? message : message ? [message] : [];\n }\n /**\n * Manually sets an error message on a specific field\n */\n function setFieldErrorBag(field, message) {\n if (!message) {\n delete errorBag.value[field];\n return;\n }\n errorBag.value[field] = normalizeErrorItem(message);\n }\n /**\n * Sets errors for the fields specified in the object\n */\n function setErrorBag(fields) {\n errorBag.value = keysOf(fields).reduce((acc, key) => {\n const message = fields[key];\n if (message) {\n acc[key] = normalizeErrorItem(message);\n }\n return acc;\n }, {});\n }\n if (initialErrors) {\n setErrorBag(initialErrors);\n }\n return {\n errorBag,\n setErrorBag,\n setFieldErrorBag,\n };\n}\n\nconst FormImpl = defineComponent({\n name: 'Form',\n inheritAttrs: false,\n props: {\n as: {\n type: String,\n default: 'form',\n },\n validationSchema: {\n type: Object,\n default: undefined,\n },\n initialValues: {\n type: Object,\n default: undefined,\n },\n initialErrors: {\n type: Object,\n default: undefined,\n },\n initialTouched: {\n type: Object,\n default: undefined,\n },\n validateOnMount: {\n type: Boolean,\n default: false,\n },\n onSubmit: {\n type: Function,\n default: undefined,\n },\n onInvalidSubmit: {\n type: Function,\n default: undefined,\n },\n keepValues: {\n type: Boolean,\n default: false,\n },\n },\n setup(props, ctx) {\n const initialValues = toRef(props, 'initialValues');\n const validationSchema = toRef(props, 'validationSchema');\n const keepValues = toRef(props, 'keepValues');\n const { errors, errorBag, values, meta, isSubmitting, submitCount, controlledValues, validate, validateField, handleReset, resetForm, handleSubmit, setErrors, setFieldError, setFieldValue, setValues, setFieldTouched, setTouched, resetField, } = useForm({\n validationSchema: validationSchema.value ? validationSchema : undefined,\n initialValues,\n initialErrors: props.initialErrors,\n initialTouched: props.initialTouched,\n validateOnMount: props.validateOnMount,\n keepValuesOnUnmount: keepValues,\n });\n const submitForm = handleSubmit((_, { evt }) => {\n if (isFormSubmitEvent(evt)) {\n evt.target.submit();\n }\n }, props.onInvalidSubmit);\n const onSubmit = props.onSubmit ? handleSubmit(props.onSubmit, props.onInvalidSubmit) : submitForm;\n function handleFormReset(e) {\n if (isEvent(e)) {\n // Prevent default form reset behavior\n e.preventDefault();\n }\n handleReset();\n if (typeof ctx.attrs.onReset === 'function') {\n ctx.attrs.onReset();\n }\n }\n function handleScopedSlotSubmit(evt, onSubmit) {\n const onSuccess = typeof evt === 'function' && !onSubmit ? evt : onSubmit;\n return handleSubmit(onSuccess, props.onInvalidSubmit)(evt);\n }\n function getValues() {\n return klona(values);\n }\n function getMeta() {\n return klona(meta.value);\n }\n function getErrors() {\n return klona(errors.value);\n }\n function slotProps() {\n return {\n meta: meta.value,\n errors: errors.value,\n errorBag: errorBag.value,\n values,\n isSubmitting: isSubmitting.value,\n submitCount: submitCount.value,\n controlledValues: controlledValues.value,\n validate,\n validateField,\n handleSubmit: handleScopedSlotSubmit,\n handleReset,\n submitForm,\n setErrors,\n setFieldError,\n setFieldValue,\n setValues,\n setFieldTouched,\n setTouched,\n resetForm,\n resetField,\n getValues,\n getMeta,\n getErrors,\n };\n }\n // expose these functions and methods as part of public API\n ctx.expose({\n setFieldError,\n setErrors,\n setFieldValue,\n setValues,\n setFieldTouched,\n setTouched,\n resetForm,\n validate,\n validateField,\n resetField,\n getValues,\n getMeta,\n getErrors,\n });\n return function renderForm() {\n // avoid resolving the form component as itself\n const tag = props.as === 'form' ? props.as : resolveDynamicComponent(props.as);\n const children = normalizeChildren(tag, ctx, slotProps);\n if (!props.as) {\n return children;\n }\n // Attributes to add on a native `form` tag\n const formAttrs = props.as === 'form'\n ? {\n // Disables native validation as vee-validate will handle it.\n novalidate: true,\n }\n : {};\n return h(tag, Object.assign(Object.assign(Object.assign({}, formAttrs), ctx.attrs), { onSubmit, onReset: handleFormReset }), children);\n };\n },\n});\nconst Form = FormImpl;\n\nfunction useFieldArray(arrayPath) {\n const form = injectWithSelf(FormContextKey, undefined);\n const fields = ref([]);\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n const noOp = () => { };\n const noOpApi = {\n fields,\n remove: noOp,\n push: noOp,\n swap: noOp,\n insert: noOp,\n update: noOp,\n replace: noOp,\n prepend: noOp,\n move: noOp,\n };\n if (!form) {\n warn('FieldArray requires being a child of `
` or `useForm` being called before it. Array fields may not work correctly');\n return noOpApi;\n }\n if (!unref(arrayPath)) {\n warn('FieldArray requires a field path to be provided, did you forget to pass the `name` prop?');\n return noOpApi;\n }\n const alreadyExists = form.fieldArrays.find(a => unref(a.path) === unref(arrayPath));\n if (alreadyExists) {\n return alreadyExists;\n }\n let entryCounter = 0;\n function getCurrentValues() {\n return getFromPath(form === null || form === void 0 ? void 0 : form.values, unref(arrayPath), []) || [];\n }\n function initFields() {\n const currentValues = getCurrentValues();\n fields.value = currentValues.map(createEntry);\n updateEntryFlags();\n }\n initFields();\n function updateEntryFlags() {\n const fieldsLength = fields.value.length;\n for (let i = 0; i < fieldsLength; i++) {\n const entry = fields.value[i];\n entry.isFirst = i === 0;\n entry.isLast = i === fieldsLength - 1;\n }\n }\n function createEntry(value) {\n const key = entryCounter++;\n const entry = {\n key,\n value: computedDeep({\n get() {\n const currentValues = getFromPath(form === null || form === void 0 ? void 0 : form.values, unref(arrayPath), []) || [];\n const idx = fields.value.findIndex(e => e.key === key);\n return idx === -1 ? value : currentValues[idx];\n },\n set(value) {\n const idx = fields.value.findIndex(e => e.key === key);\n if (idx === -1) {\n warn(`Attempting to update a non-existent array item`);\n return;\n }\n update(idx, value);\n },\n }),\n isFirst: false,\n isLast: false,\n };\n return entry;\n }\n function afterMutation() {\n updateEntryFlags();\n // Should trigger a silent validation since a field may not do that #4096\n form === null || form === void 0 ? void 0 : form.validate({ mode: 'silent' });\n }\n function remove(idx) {\n const pathName = unref(arrayPath);\n const pathValue = getFromPath(form === null || form === void 0 ? void 0 : form.values, pathName);\n if (!pathValue || !Array.isArray(pathValue)) {\n return;\n }\n const newValue = [...pathValue];\n newValue.splice(idx, 1);\n form === null || form === void 0 ? void 0 : form.unsetInitialValue(pathName + `[${idx}]`);\n form === null || form === void 0 ? void 0 : form.setFieldValue(pathName, newValue);\n fields.value.splice(idx, 1);\n afterMutation();\n }\n function push(value) {\n const pathName = unref(arrayPath);\n const pathValue = getFromPath(form === null || form === void 0 ? void 0 : form.values, pathName);\n const normalizedPathValue = isNullOrUndefined(pathValue) ? [] : pathValue;\n if (!Array.isArray(normalizedPathValue)) {\n return;\n }\n const newValue = [...normalizedPathValue];\n newValue.push(value);\n form === null || form === void 0 ? void 0 : form.stageInitialValue(pathName + `[${newValue.length - 1}]`, value);\n form === null || form === void 0 ? void 0 : form.setFieldValue(pathName, newValue);\n fields.value.push(createEntry(value));\n afterMutation();\n }\n function swap(indexA, indexB) {\n const pathName = unref(arrayPath);\n const pathValue = getFromPath(form === null || form === void 0 ? void 0 : form.values, pathName);\n if (!Array.isArray(pathValue) || !(indexA in pathValue) || !(indexB in pathValue)) {\n return;\n }\n const newValue = [...pathValue];\n const newFields = [...fields.value];\n // the old switcheroo\n const temp = newValue[indexA];\n newValue[indexA] = newValue[indexB];\n newValue[indexB] = temp;\n const tempEntry = newFields[indexA];\n newFields[indexA] = newFields[indexB];\n newFields[indexB] = tempEntry;\n form === null || form === void 0 ? void 0 : form.setFieldValue(pathName, newValue);\n fields.value = newFields;\n updateEntryFlags();\n }\n function insert(idx, value) {\n const pathName = unref(arrayPath);\n const pathValue = getFromPath(form === null || form === void 0 ? void 0 : form.values, pathName);\n if (!Array.isArray(pathValue) || pathValue.length < idx) {\n return;\n }\n const newValue = [...pathValue];\n const newFields = [...fields.value];\n newValue.splice(idx, 0, value);\n newFields.splice(idx, 0, createEntry(value));\n form === null || form === void 0 ? void 0 : form.setFieldValue(pathName, newValue);\n fields.value = newFields;\n afterMutation();\n }\n function replace(arr) {\n const pathName = unref(arrayPath);\n form === null || form === void 0 ? void 0 : form.setFieldValue(pathName, arr);\n initFields();\n afterMutation();\n }\n function update(idx, value) {\n const pathName = unref(arrayPath);\n const pathValue = getFromPath(form === null || form === void 0 ? void 0 : form.values, pathName);\n if (!Array.isArray(pathValue) || pathValue.length - 1 < idx) {\n return;\n }\n form === null || form === void 0 ? void 0 : form.setFieldValue(`${pathName}[${idx}]`, value);\n form === null || form === void 0 ? void 0 : form.validate({ mode: 'validated-only' });\n }\n function prepend(value) {\n const pathName = unref(arrayPath);\n const pathValue = getFromPath(form === null || form === void 0 ? void 0 : form.values, pathName);\n const normalizedPathValue = isNullOrUndefined(pathValue) ? [] : pathValue;\n if (!Array.isArray(normalizedPathValue)) {\n return;\n }\n const newValue = [value, ...normalizedPathValue];\n form === null || form === void 0 ? void 0 : form.stageInitialValue(pathName + `[${newValue.length - 1}]`, value);\n form === null || form === void 0 ? void 0 : form.setFieldValue(pathName, newValue);\n fields.value.unshift(createEntry(value));\n afterMutation();\n }\n function move(oldIdx, newIdx) {\n const pathName = unref(arrayPath);\n const pathValue = getFromPath(form === null || form === void 0 ? void 0 : form.values, pathName);\n const newValue = isNullOrUndefined(pathValue) ? [] : [...pathValue];\n if (!Array.isArray(pathValue) || !(oldIdx in pathValue) || !(newIdx in pathValue)) {\n return;\n }\n const newFields = [...fields.value];\n const movedItem = newFields[oldIdx];\n newFields.splice(oldIdx, 1);\n newFields.splice(newIdx, 0, movedItem);\n const movedValue = newValue[oldIdx];\n newValue.splice(oldIdx, 1);\n newValue.splice(newIdx, 0, movedValue);\n form === null || form === void 0 ? void 0 : form.setFieldValue(pathName, newValue);\n fields.value = newFields;\n afterMutation();\n }\n const fieldArrayCtx = {\n fields,\n remove,\n push,\n swap,\n insert,\n update,\n replace,\n prepend,\n move,\n };\n form.fieldArrays.push(Object.assign({ path: arrayPath, reset: initFields }, fieldArrayCtx));\n onBeforeUnmount(() => {\n const idx = form.fieldArrays.findIndex(i => unref(i.path) === unref(arrayPath));\n if (idx >= 0) {\n form.fieldArrays.splice(idx, 1);\n }\n });\n // Makes sure to sync the form values with the array value if they go out of sync\n // #4153\n watch(getCurrentValues, formValues => {\n const fieldsValues = fields.value.map(f => f.value);\n // If form values are not the same as the current values then something overrode them.\n if (!isEqual(formValues, fieldsValues)) {\n initFields();\n }\n });\n return fieldArrayCtx;\n}\n\nconst FieldArrayImpl = defineComponent({\n name: 'FieldArray',\n inheritAttrs: false,\n props: {\n name: {\n type: String,\n required: true,\n },\n },\n setup(props, ctx) {\n const { push, remove, swap, insert, replace, update, prepend, move, fields } = useFieldArray(toRef(props, 'name'));\n function slotProps() {\n return {\n fields: fields.value,\n push,\n remove,\n swap,\n insert,\n update,\n replace,\n prepend,\n move,\n };\n }\n ctx.expose({\n push,\n remove,\n swap,\n insert,\n update,\n replace,\n prepend,\n move,\n });\n return () => {\n const children = normalizeChildren(undefined, ctx, slotProps);\n return children;\n };\n },\n});\nconst FieldArray = FieldArrayImpl;\n\nconst ErrorMessageImpl = defineComponent({\n name: 'ErrorMessage',\n props: {\n as: {\n type: String,\n default: undefined,\n },\n name: {\n type: String,\n required: true,\n },\n },\n setup(props, ctx) {\n const form = inject(FormContextKey, undefined);\n const message = computed(() => {\n return form === null || form === void 0 ? void 0 : form.errors.value[props.name];\n });\n function slotProps() {\n return {\n message: message.value,\n };\n }\n return () => {\n // Renders nothing if there are no messages\n if (!message.value) {\n return undefined;\n }\n const tag = (props.as ? resolveDynamicComponent(props.as) : props.as);\n const children = normalizeChildren(tag, ctx, slotProps);\n const attrs = Object.assign({ role: 'alert' }, ctx.attrs);\n // If no tag was specified and there are children\n // render the slot as is without wrapping it\n if (!tag && (Array.isArray(children) || !children) && (children === null || children === void 0 ? void 0 : children.length)) {\n return children;\n }\n // If no children in slot\n // render whatever specified and fallback to a with the message in it's contents\n if ((Array.isArray(children) || !children) && !(children === null || children === void 0 ? void 0 : children.length)) {\n return h(tag || 'span', attrs, message.value);\n }\n return h(tag, attrs, children);\n };\n },\n});\nconst ErrorMessage = ErrorMessageImpl;\n\nfunction useResetForm() {\n const form = injectWithSelf(FormContextKey);\n if (!form) {\n warn('No vee-validate or `useForm` was detected in the component tree');\n }\n return function resetForm(state) {\n if (!form) {\n return;\n }\n return form.resetForm(state);\n };\n}\n\n/**\n * If a field is dirty or not\n */\nfunction useIsFieldDirty(path) {\n const form = injectWithSelf(FormContextKey);\n let field = path ? undefined : inject(FieldContextKey);\n return computed(() => {\n if (path) {\n field = normalizeField(form === null || form === void 0 ? void 0 : form.fieldsByPath.value[unref(path)]);\n }\n if (!field) {\n warn(`field with name ${unref(path)} was not found`);\n return false;\n }\n return field.meta.dirty;\n });\n}\n\n/**\n * If a field is touched or not\n */\nfunction useIsFieldTouched(path) {\n const form = injectWithSelf(FormContextKey);\n let field = path ? undefined : inject(FieldContextKey);\n return computed(() => {\n if (path) {\n field = normalizeField(form === null || form === void 0 ? void 0 : form.fieldsByPath.value[unref(path)]);\n }\n if (!field) {\n warn(`field with name ${unref(path)} was not found`);\n return false;\n }\n return field.meta.touched;\n });\n}\n\n/**\n * If a field is validated and is valid\n */\nfunction useIsFieldValid(path) {\n const form = injectWithSelf(FormContextKey);\n let field = path ? undefined : inject(FieldContextKey);\n return computed(() => {\n if (path) {\n field = normalizeField(form === null || form === void 0 ? void 0 : form.fieldsByPath.value[unref(path)]);\n }\n if (!field) {\n warn(`field with name ${unref(path)} was not found`);\n return false;\n }\n return field.meta.valid;\n });\n}\n\n/**\n * If the form is submitting or not\n */\nfunction useIsSubmitting() {\n const form = injectWithSelf(FormContextKey);\n if (!form) {\n warn('No vee-validate or `useForm` was detected in the component tree');\n }\n return computed(() => {\n var _a;\n return (_a = form === null || form === void 0 ? void 0 : form.isSubmitting.value) !== null && _a !== void 0 ? _a : false;\n });\n}\n\n/**\n * Validates a single field\n */\nfunction useValidateField(path) {\n const form = injectWithSelf(FormContextKey);\n let field = path ? undefined : inject(FieldContextKey);\n return function validateField() {\n if (path) {\n field = normalizeField(form === null || form === void 0 ? void 0 : form.fieldsByPath.value[unref(path)]);\n }\n if (!field) {\n warn(`field with name ${unref(path)} was not found`);\n return Promise.resolve({\n errors: [],\n valid: true,\n });\n }\n return field.validate();\n };\n}\n\n/**\n * If the form is dirty or not\n */\nfunction useIsFormDirty() {\n const form = injectWithSelf(FormContextKey);\n if (!form) {\n warn('No vee-validate or `useForm` was detected in the component tree');\n }\n return computed(() => {\n var _a;\n return (_a = form === null || form === void 0 ? void 0 : form.meta.value.dirty) !== null && _a !== void 0 ? _a : false;\n });\n}\n\n/**\n * If the form is touched or not\n */\nfunction useIsFormTouched() {\n const form = injectWithSelf(FormContextKey);\n if (!form) {\n warn('No vee-validate or `useForm` was detected in the component tree');\n }\n return computed(() => {\n var _a;\n return (_a = form === null || form === void 0 ? void 0 : form.meta.value.touched) !== null && _a !== void 0 ? _a : false;\n });\n}\n\n/**\n * If the form has been validated and is valid\n */\nfunction useIsFormValid() {\n const form = injectWithSelf(FormContextKey);\n if (!form) {\n warn('No vee-validate or `useForm` was detected in the component tree');\n }\n return computed(() => {\n var _a;\n return (_a = form === null || form === void 0 ? void 0 : form.meta.value.valid) !== null && _a !== void 0 ? _a : false;\n });\n}\n\n/**\n * Validate multiple fields\n */\nfunction useValidateForm() {\n const form = injectWithSelf(FormContextKey);\n if (!form) {\n warn('No vee-validate or `useForm` was detected in the component tree');\n }\n return function validateField() {\n if (!form) {\n return Promise.resolve({ results: {}, errors: {}, valid: true });\n }\n return form.validate();\n };\n}\n\n/**\n * The number of form's submission count\n */\nfunction useSubmitCount() {\n const form = injectWithSelf(FormContextKey);\n if (!form) {\n warn('No vee-validate or `useForm` was detected in the component tree');\n }\n return computed(() => {\n var _a;\n return (_a = form === null || form === void 0 ? void 0 : form.submitCount.value) !== null && _a !== void 0 ? _a : 0;\n });\n}\n\n/**\n * Gives access to a field's current value\n */\nfunction useFieldValue(path) {\n const form = injectWithSelf(FormContextKey);\n // We don't want to use self injected context as it doesn't make sense\n const field = path ? undefined : inject(FieldContextKey);\n return computed(() => {\n if (path) {\n return getFromPath(form === null || form === void 0 ? void 0 : form.values, unref(path));\n }\n return unref(field === null || field === void 0 ? void 0 : field.value);\n });\n}\n\n/**\n * Gives access to a form's values\n */\nfunction useFormValues() {\n const form = injectWithSelf(FormContextKey);\n if (!form) {\n warn('No vee-validate or `useForm` was detected in the component tree');\n }\n return computed(() => {\n return (form === null || form === void 0 ? void 0 : form.values) || {};\n });\n}\n\n/**\n * Gives access to all form errors\n */\nfunction useFormErrors() {\n const form = injectWithSelf(FormContextKey);\n if (!form) {\n warn('No vee-validate or `useForm` was detected in the component tree');\n }\n return computed(() => {\n return ((form === null || form === void 0 ? void 0 : form.errors.value) || {});\n });\n}\n\n/**\n * Gives access to a single field error\n */\nfunction useFieldError(path) {\n const form = injectWithSelf(FormContextKey);\n // We don't want to use self injected context as it doesn't make sense\n const field = path ? undefined : inject(FieldContextKey);\n return computed(() => {\n if (path) {\n return form === null || form === void 0 ? void 0 : form.errors.value[unref(path)];\n }\n return field === null || field === void 0 ? void 0 : field.errorMessage.value;\n });\n}\n\nfunction useSubmitForm(cb) {\n const form = injectWithSelf(FormContextKey);\n if (!form) {\n warn('No vee-validate or `useForm` was detected in the component tree');\n }\n const onSubmit = form ? form.handleSubmit(cb) : undefined;\n return function submitForm(e) {\n if (!onSubmit) {\n return;\n }\n return onSubmit(e);\n };\n}\n\nexport { ErrorMessage, Field, FieldArray, FieldContextKey, Form, FormContextKey, IS_ABSENT, configure, defineRule, useField, useFieldArray, useFieldError, useFieldValue, useForm, useFormErrors, useFormValues, useIsFieldDirty, useIsFieldTouched, useIsFieldValid, useIsFormDirty, useIsFormTouched, useIsFormValid, useIsSubmitting, useResetForm, useSubmitCount, useSubmitForm, useValidateField, useValidateForm, validate, validateObjectSchema as validateObject };\n","/*!\n * shared v9.2.2\n * (c) 2022 kazuya kawaguchi\n * Released under the MIT License.\n */\n/**\r\n * Original Utilities\r\n * written by kazuya kawaguchi\r\n */\r\nconst inBrowser = typeof window !== 'undefined';\r\nlet mark;\r\nlet measure;\r\nif ((process.env.NODE_ENV !== 'production')) {\r\n const perf = inBrowser && window.performance;\r\n if (perf &&\r\n perf.mark &&\r\n perf.measure &&\r\n perf.clearMarks &&\r\n perf.clearMeasures) {\r\n mark = (tag) => perf.mark(tag);\r\n measure = (name, startTag, endTag) => {\r\n perf.measure(name, startTag, endTag);\r\n perf.clearMarks(startTag);\r\n perf.clearMarks(endTag);\r\n };\r\n }\r\n}\r\nconst RE_ARGS = /\\{([0-9a-zA-Z]+)\\}/g;\r\n/* eslint-disable */\r\nfunction format(message, ...args) {\r\n if (args.length === 1 && isObject(args[0])) {\r\n args = args[0];\r\n }\r\n if (!args || !args.hasOwnProperty) {\r\n args = {};\r\n }\r\n return message.replace(RE_ARGS, (match, identifier) => {\r\n return args.hasOwnProperty(identifier) ? args[identifier] : '';\r\n });\r\n}\r\nconst hasSymbol = typeof Symbol === 'function' && typeof Symbol.toStringTag === 'symbol';\r\nconst makeSymbol = (name) => hasSymbol ? Symbol(name) : name;\r\nconst generateFormatCacheKey = (locale, key, source) => friendlyJSONstringify({ l: locale, k: key, s: source });\r\nconst friendlyJSONstringify = (json) => JSON.stringify(json)\r\n .replace(/\\u2028/g, '\\\\u2028')\r\n .replace(/\\u2029/g, '\\\\u2029')\r\n .replace(/\\u0027/g, '\\\\u0027');\r\nconst isNumber = (val) => typeof val === 'number' && isFinite(val);\r\nconst isDate = (val) => toTypeString(val) === '[object Date]';\r\nconst isRegExp = (val) => toTypeString(val) === '[object RegExp]';\r\nconst isEmptyObject = (val) => isPlainObject(val) && Object.keys(val).length === 0;\r\nfunction warn(msg, err) {\r\n if (typeof console !== 'undefined') {\r\n console.warn(`[intlify] ` + msg);\r\n /* istanbul ignore if */\r\n if (err) {\r\n console.warn(err.stack);\r\n }\r\n }\r\n}\r\nconst assign = Object.assign;\r\nlet _globalThis;\r\nconst getGlobalThis = () => {\r\n // prettier-ignore\r\n return (_globalThis ||\r\n (_globalThis =\r\n typeof globalThis !== 'undefined'\r\n ? globalThis\r\n : typeof self !== 'undefined'\r\n ? self\r\n : typeof window !== 'undefined'\r\n ? window\r\n : typeof global !== 'undefined'\r\n ? global\r\n : {}));\r\n};\r\nfunction escapeHtml(rawText) {\r\n return rawText\r\n .replace(//g, '>')\r\n .replace(/\"/g, '"')\r\n .replace(/'/g, ''');\r\n}\r\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\r\nfunction hasOwn(obj, key) {\r\n return hasOwnProperty.call(obj, key);\r\n}\r\n/* eslint-enable */\r\n/**\r\n * Useful Utilities By Evan you\r\n * Modified by kazuya kawaguchi\r\n * MIT License\r\n * https://github.com/vuejs/vue-next/blob/master/packages/shared/src/index.ts\r\n * https://github.com/vuejs/vue-next/blob/master/packages/shared/src/codeframe.ts\r\n */\r\nconst isArray = Array.isArray;\r\nconst isFunction = (val) => typeof val === 'function';\r\nconst isString = (val) => typeof val === 'string';\r\nconst isBoolean = (val) => typeof val === 'boolean';\r\nconst isSymbol = (val) => typeof val === 'symbol';\r\nconst isObject = (val) => // eslint-disable-line\r\n val !== null && typeof val === 'object';\r\nconst isPromise = (val) => {\r\n return isObject(val) && isFunction(val.then) && isFunction(val.catch);\r\n};\r\nconst objectToString = Object.prototype.toString;\r\nconst toTypeString = (value) => objectToString.call(value);\r\nconst isPlainObject = (val) => toTypeString(val) === '[object Object]';\r\n// for converting list and named values to displayed strings.\r\nconst toDisplayString = (val) => {\r\n return val == null\r\n ? ''\r\n : isArray(val) || (isPlainObject(val) && val.toString === objectToString)\r\n ? JSON.stringify(val, null, 2)\r\n : String(val);\r\n};\r\nconst RANGE = 2;\r\nfunction generateCodeFrame(source, start = 0, end = source.length) {\r\n const lines = source.split(/\\r?\\n/);\r\n let count = 0;\r\n const res = [];\r\n for (let i = 0; i < lines.length; i++) {\r\n count += lines[i].length + 1;\r\n if (count >= start) {\r\n for (let j = i - RANGE; j <= i + RANGE || end > count; j++) {\r\n if (j < 0 || j >= lines.length)\r\n continue;\r\n const line = j + 1;\r\n res.push(`${line}${' '.repeat(3 - String(line).length)}| ${lines[j]}`);\r\n const lineLength = lines[j].length;\r\n if (j === i) {\r\n // push underline\r\n const pad = start - (count - lineLength) + 1;\r\n const length = Math.max(1, end > count ? lineLength - pad : end - start);\r\n res.push(` | ` + ' '.repeat(pad) + '^'.repeat(length));\r\n }\r\n else if (j > i) {\r\n if (end > count) {\r\n const length = Math.max(Math.min(end - count, lineLength), 1);\r\n res.push(` | ` + '^'.repeat(length));\r\n }\r\n count += lineLength + 1;\r\n }\r\n }\r\n break;\r\n }\r\n }\r\n return res.join('\\n');\r\n}\n\n/**\r\n * Event emitter, forked from the below:\r\n * - original repository url: https://github.com/developit/mitt\r\n * - code url: https://github.com/developit/mitt/blob/master/src/index.ts\r\n * - author: Jason Miller (https://github.com/developit)\r\n * - license: MIT\r\n */\r\n/**\r\n * Create a event emitter\r\n *\r\n * @returns An event emitter\r\n */\r\nfunction createEmitter() {\r\n const events = new Map();\r\n const emitter = {\r\n events,\r\n on(event, handler) {\r\n const handlers = events.get(event);\r\n const added = handlers && handlers.push(handler);\r\n if (!added) {\r\n events.set(event, [handler]);\r\n }\r\n },\r\n off(event, handler) {\r\n const handlers = events.get(event);\r\n if (handlers) {\r\n handlers.splice(handlers.indexOf(handler) >>> 0, 1);\r\n }\r\n },\r\n emit(event, payload) {\r\n (events.get(event) || [])\r\n .slice()\r\n .map(handler => handler(payload));\r\n (events.get('*') || [])\r\n .slice()\r\n .map(handler => handler(event, payload));\r\n }\r\n };\r\n return emitter;\r\n}\n\nexport { assign, createEmitter, escapeHtml, format, friendlyJSONstringify, generateCodeFrame, generateFormatCacheKey, getGlobalThis, hasOwn, inBrowser, isArray, isBoolean, isDate, isEmptyObject, isFunction, isNumber, isObject, isPlainObject, isPromise, isRegExp, isString, isSymbol, makeSymbol, mark, measure, objectToString, toDisplayString, toTypeString, warn };\n","/*!\n * message-compiler v9.2.2\n * (c) 2022 kazuya kawaguchi\n * Released under the MIT License.\n */\nimport { format, assign, isString } from '@intlify/shared';\n\nconst CompileErrorCodes = {\r\n // tokenizer error codes\r\n EXPECTED_TOKEN: 1,\r\n INVALID_TOKEN_IN_PLACEHOLDER: 2,\r\n UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER: 3,\r\n UNKNOWN_ESCAPE_SEQUENCE: 4,\r\n INVALID_UNICODE_ESCAPE_SEQUENCE: 5,\r\n UNBALANCED_CLOSING_BRACE: 6,\r\n UNTERMINATED_CLOSING_BRACE: 7,\r\n EMPTY_PLACEHOLDER: 8,\r\n NOT_ALLOW_NEST_PLACEHOLDER: 9,\r\n INVALID_LINKED_FORMAT: 10,\r\n // parser error codes\r\n MUST_HAVE_MESSAGES_IN_PLURAL: 11,\r\n UNEXPECTED_EMPTY_LINKED_MODIFIER: 12,\r\n UNEXPECTED_EMPTY_LINKED_KEY: 13,\r\n UNEXPECTED_LEXICAL_ANALYSIS: 14,\r\n // Special value for higher-order compilers to pick up the last code\r\n // to avoid collision of error codes. This should always be kept as the last\r\n // item.\r\n __EXTEND_POINT__: 15\r\n};\r\n/** @internal */\r\nconst errorMessages = {\r\n // tokenizer error messages\r\n [CompileErrorCodes.EXPECTED_TOKEN]: `Expected token: '{0}'`,\r\n [CompileErrorCodes.INVALID_TOKEN_IN_PLACEHOLDER]: `Invalid token in placeholder: '{0}'`,\r\n [CompileErrorCodes.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER]: `Unterminated single quote in placeholder`,\r\n [CompileErrorCodes.UNKNOWN_ESCAPE_SEQUENCE]: `Unknown escape sequence: \\\\{0}`,\r\n [CompileErrorCodes.INVALID_UNICODE_ESCAPE_SEQUENCE]: `Invalid unicode escape sequence: {0}`,\r\n [CompileErrorCodes.UNBALANCED_CLOSING_BRACE]: `Unbalanced closing brace`,\r\n [CompileErrorCodes.UNTERMINATED_CLOSING_BRACE]: `Unterminated closing brace`,\r\n [CompileErrorCodes.EMPTY_PLACEHOLDER]: `Empty placeholder`,\r\n [CompileErrorCodes.NOT_ALLOW_NEST_PLACEHOLDER]: `Not allowed nest placeholder`,\r\n [CompileErrorCodes.INVALID_LINKED_FORMAT]: `Invalid linked format`,\r\n // parser error messages\r\n [CompileErrorCodes.MUST_HAVE_MESSAGES_IN_PLURAL]: `Plural must have messages`,\r\n [CompileErrorCodes.UNEXPECTED_EMPTY_LINKED_MODIFIER]: `Unexpected empty linked modifier`,\r\n [CompileErrorCodes.UNEXPECTED_EMPTY_LINKED_KEY]: `Unexpected empty linked key`,\r\n [CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS]: `Unexpected lexical analysis in token: '{0}'`\r\n};\r\nfunction createCompileError(code, loc, options = {}) {\r\n const { domain, messages, args } = options;\r\n const msg = (process.env.NODE_ENV !== 'production')\r\n ? format((messages || errorMessages)[code] || '', ...(args || []))\r\n : code;\r\n const error = new SyntaxError(String(msg));\r\n error.code = code;\r\n if (loc) {\r\n error.location = loc;\r\n }\r\n error.domain = domain;\r\n return error;\r\n}\r\n/** @internal */\r\nfunction defaultOnError(error) {\r\n throw error;\r\n}\n\nconst LocationStub = {\r\n start: { line: 1, column: 1, offset: 0 },\r\n end: { line: 1, column: 1, offset: 0 }\r\n};\r\nfunction createPosition(line, column, offset) {\r\n return { line, column, offset };\r\n}\r\nfunction createLocation(start, end, source) {\r\n const loc = { start, end };\r\n if (source != null) {\r\n loc.source = source;\r\n }\r\n return loc;\r\n}\n\nconst CHAR_SP = ' ';\r\nconst CHAR_CR = '\\r';\r\nconst CHAR_LF = '\\n';\r\nconst CHAR_LS = String.fromCharCode(0x2028);\r\nconst CHAR_PS = String.fromCharCode(0x2029);\r\nfunction createScanner(str) {\r\n const _buf = str;\r\n let _index = 0;\r\n let _line = 1;\r\n let _column = 1;\r\n let _peekOffset = 0;\r\n const isCRLF = (index) => _buf[index] === CHAR_CR && _buf[index + 1] === CHAR_LF;\r\n const isLF = (index) => _buf[index] === CHAR_LF;\r\n const isPS = (index) => _buf[index] === CHAR_PS;\r\n const isLS = (index) => _buf[index] === CHAR_LS;\r\n const isLineEnd = (index) => isCRLF(index) || isLF(index) || isPS(index) || isLS(index);\r\n const index = () => _index;\r\n const line = () => _line;\r\n const column = () => _column;\r\n const peekOffset = () => _peekOffset;\r\n const charAt = (offset) => isCRLF(offset) || isPS(offset) || isLS(offset) ? CHAR_LF : _buf[offset];\r\n const currentChar = () => charAt(_index);\r\n const currentPeek = () => charAt(_index + _peekOffset);\r\n function next() {\r\n _peekOffset = 0;\r\n if (isLineEnd(_index)) {\r\n _line++;\r\n _column = 0;\r\n }\r\n if (isCRLF(_index)) {\r\n _index++;\r\n }\r\n _index++;\r\n _column++;\r\n return _buf[_index];\r\n }\r\n function peek() {\r\n if (isCRLF(_index + _peekOffset)) {\r\n _peekOffset++;\r\n }\r\n _peekOffset++;\r\n return _buf[_index + _peekOffset];\r\n }\r\n function reset() {\r\n _index = 0;\r\n _line = 1;\r\n _column = 1;\r\n _peekOffset = 0;\r\n }\r\n function resetPeek(offset = 0) {\r\n _peekOffset = offset;\r\n }\r\n function skipToPeek() {\r\n const target = _index + _peekOffset;\r\n // eslint-disable-next-line no-unmodified-loop-condition\r\n while (target !== _index) {\r\n next();\r\n }\r\n _peekOffset = 0;\r\n }\r\n return {\r\n index,\r\n line,\r\n column,\r\n peekOffset,\r\n charAt,\r\n currentChar,\r\n currentPeek,\r\n next,\r\n peek,\r\n reset,\r\n resetPeek,\r\n skipToPeek\r\n };\r\n}\n\nconst EOF = undefined;\r\nconst LITERAL_DELIMITER = \"'\";\r\nconst ERROR_DOMAIN$1 = 'tokenizer';\r\nfunction createTokenizer(source, options = {}) {\r\n const location = options.location !== false;\r\n const _scnr = createScanner(source);\r\n const currentOffset = () => _scnr.index();\r\n const currentPosition = () => createPosition(_scnr.line(), _scnr.column(), _scnr.index());\r\n const _initLoc = currentPosition();\r\n const _initOffset = currentOffset();\r\n const _context = {\r\n currentType: 14 /* EOF */,\r\n offset: _initOffset,\r\n startLoc: _initLoc,\r\n endLoc: _initLoc,\r\n lastType: 14 /* EOF */,\r\n lastOffset: _initOffset,\r\n lastStartLoc: _initLoc,\r\n lastEndLoc: _initLoc,\r\n braceNest: 0,\r\n inLinked: false,\r\n text: ''\r\n };\r\n const context = () => _context;\r\n const { onError } = options;\r\n function emitError(code, pos, offset, ...args) {\r\n const ctx = context();\r\n pos.column += offset;\r\n pos.offset += offset;\r\n if (onError) {\r\n const loc = createLocation(ctx.startLoc, pos);\r\n const err = createCompileError(code, loc, {\r\n domain: ERROR_DOMAIN$1,\r\n args\r\n });\r\n onError(err);\r\n }\r\n }\r\n function getToken(context, type, value) {\r\n context.endLoc = currentPosition();\r\n context.currentType = type;\r\n const token = { type };\r\n if (location) {\r\n token.loc = createLocation(context.startLoc, context.endLoc);\r\n }\r\n if (value != null) {\r\n token.value = value;\r\n }\r\n return token;\r\n }\r\n const getEndToken = (context) => getToken(context, 14 /* EOF */);\r\n function eat(scnr, ch) {\r\n if (scnr.currentChar() === ch) {\r\n scnr.next();\r\n return ch;\r\n }\r\n else {\r\n emitError(CompileErrorCodes.EXPECTED_TOKEN, currentPosition(), 0, ch);\r\n return '';\r\n }\r\n }\r\n function peekSpaces(scnr) {\r\n let buf = '';\r\n while (scnr.currentPeek() === CHAR_SP || scnr.currentPeek() === CHAR_LF) {\r\n buf += scnr.currentPeek();\r\n scnr.peek();\r\n }\r\n return buf;\r\n }\r\n function skipSpaces(scnr) {\r\n const buf = peekSpaces(scnr);\r\n scnr.skipToPeek();\r\n return buf;\r\n }\r\n function isIdentifierStart(ch) {\r\n if (ch === EOF) {\r\n return false;\r\n }\r\n const cc = ch.charCodeAt(0);\r\n return ((cc >= 97 && cc <= 122) || // a-z\r\n (cc >= 65 && cc <= 90) || // A-Z\r\n cc === 95 // _\r\n );\r\n }\r\n function isNumberStart(ch) {\r\n if (ch === EOF) {\r\n return false;\r\n }\r\n const cc = ch.charCodeAt(0);\r\n return cc >= 48 && cc <= 57; // 0-9\r\n }\r\n function isNamedIdentifierStart(scnr, context) {\r\n const { currentType } = context;\r\n if (currentType !== 2 /* BraceLeft */) {\r\n return false;\r\n }\r\n peekSpaces(scnr);\r\n const ret = isIdentifierStart(scnr.currentPeek());\r\n scnr.resetPeek();\r\n return ret;\r\n }\r\n function isListIdentifierStart(scnr, context) {\r\n const { currentType } = context;\r\n if (currentType !== 2 /* BraceLeft */) {\r\n return false;\r\n }\r\n peekSpaces(scnr);\r\n const ch = scnr.currentPeek() === '-' ? scnr.peek() : scnr.currentPeek();\r\n const ret = isNumberStart(ch);\r\n scnr.resetPeek();\r\n return ret;\r\n }\r\n function isLiteralStart(scnr, context) {\r\n const { currentType } = context;\r\n if (currentType !== 2 /* BraceLeft */) {\r\n return false;\r\n }\r\n peekSpaces(scnr);\r\n const ret = scnr.currentPeek() === LITERAL_DELIMITER;\r\n scnr.resetPeek();\r\n return ret;\r\n }\r\n function isLinkedDotStart(scnr, context) {\r\n const { currentType } = context;\r\n if (currentType !== 8 /* LinkedAlias */) {\r\n return false;\r\n }\r\n peekSpaces(scnr);\r\n const ret = scnr.currentPeek() === \".\" /* LinkedDot */;\r\n scnr.resetPeek();\r\n return ret;\r\n }\r\n function isLinkedModifierStart(scnr, context) {\r\n const { currentType } = context;\r\n if (currentType !== 9 /* LinkedDot */) {\r\n return false;\r\n }\r\n peekSpaces(scnr);\r\n const ret = isIdentifierStart(scnr.currentPeek());\r\n scnr.resetPeek();\r\n return ret;\r\n }\r\n function isLinkedDelimiterStart(scnr, context) {\r\n const { currentType } = context;\r\n if (!(currentType === 8 /* LinkedAlias */ ||\r\n currentType === 12 /* LinkedModifier */)) {\r\n return false;\r\n }\r\n peekSpaces(scnr);\r\n const ret = scnr.currentPeek() === \":\" /* LinkedDelimiter */;\r\n scnr.resetPeek();\r\n return ret;\r\n }\r\n function isLinkedReferStart(scnr, context) {\r\n const { currentType } = context;\r\n if (currentType !== 10 /* LinkedDelimiter */) {\r\n return false;\r\n }\r\n const fn = () => {\r\n const ch = scnr.currentPeek();\r\n if (ch === \"{\" /* BraceLeft */) {\r\n return isIdentifierStart(scnr.peek());\r\n }\r\n else if (ch === \"@\" /* LinkedAlias */ ||\r\n ch === \"%\" /* Modulo */ ||\r\n ch === \"|\" /* Pipe */ ||\r\n ch === \":\" /* LinkedDelimiter */ ||\r\n ch === \".\" /* LinkedDot */ ||\r\n ch === CHAR_SP ||\r\n !ch) {\r\n return false;\r\n }\r\n else if (ch === CHAR_LF) {\r\n scnr.peek();\r\n return fn();\r\n }\r\n else {\r\n // other characters\r\n return isIdentifierStart(ch);\r\n }\r\n };\r\n const ret = fn();\r\n scnr.resetPeek();\r\n return ret;\r\n }\r\n function isPluralStart(scnr) {\r\n peekSpaces(scnr);\r\n const ret = scnr.currentPeek() === \"|\" /* Pipe */;\r\n scnr.resetPeek();\r\n return ret;\r\n }\r\n function detectModuloStart(scnr) {\r\n const spaces = peekSpaces(scnr);\r\n const ret = scnr.currentPeek() === \"%\" /* Modulo */ &&\r\n scnr.peek() === \"{\" /* BraceLeft */;\r\n scnr.resetPeek();\r\n return {\r\n isModulo: ret,\r\n hasSpace: spaces.length > 0\r\n };\r\n }\r\n function isTextStart(scnr, reset = true) {\r\n const fn = (hasSpace = false, prev = '', detectModulo = false) => {\r\n const ch = scnr.currentPeek();\r\n if (ch === \"{\" /* BraceLeft */) {\r\n return prev === \"%\" /* Modulo */ ? false : hasSpace;\r\n }\r\n else if (ch === \"@\" /* LinkedAlias */ || !ch) {\r\n return prev === \"%\" /* Modulo */ ? true : hasSpace;\r\n }\r\n else if (ch === \"%\" /* Modulo */) {\r\n scnr.peek();\r\n return fn(hasSpace, \"%\" /* Modulo */, true);\r\n }\r\n else if (ch === \"|\" /* Pipe */) {\r\n return prev === \"%\" /* Modulo */ || detectModulo\r\n ? true\r\n : !(prev === CHAR_SP || prev === CHAR_LF);\r\n }\r\n else if (ch === CHAR_SP) {\r\n scnr.peek();\r\n return fn(true, CHAR_SP, detectModulo);\r\n }\r\n else if (ch === CHAR_LF) {\r\n scnr.peek();\r\n return fn(true, CHAR_LF, detectModulo);\r\n }\r\n else {\r\n return true;\r\n }\r\n };\r\n const ret = fn();\r\n reset && scnr.resetPeek();\r\n return ret;\r\n }\r\n function takeChar(scnr, fn) {\r\n const ch = scnr.currentChar();\r\n if (ch === EOF) {\r\n return EOF;\r\n }\r\n if (fn(ch)) {\r\n scnr.next();\r\n return ch;\r\n }\r\n return null;\r\n }\r\n function takeIdentifierChar(scnr) {\r\n const closure = (ch) => {\r\n const cc = ch.charCodeAt(0);\r\n return ((cc >= 97 && cc <= 122) || // a-z\r\n (cc >= 65 && cc <= 90) || // A-Z\r\n (cc >= 48 && cc <= 57) || // 0-9\r\n cc === 95 || // _\r\n cc === 36 // $\r\n );\r\n };\r\n return takeChar(scnr, closure);\r\n }\r\n function takeDigit(scnr) {\r\n const closure = (ch) => {\r\n const cc = ch.charCodeAt(0);\r\n return cc >= 48 && cc <= 57; // 0-9\r\n };\r\n return takeChar(scnr, closure);\r\n }\r\n function takeHexDigit(scnr) {\r\n const closure = (ch) => {\r\n const cc = ch.charCodeAt(0);\r\n return ((cc >= 48 && cc <= 57) || // 0-9\r\n (cc >= 65 && cc <= 70) || // A-F\r\n (cc >= 97 && cc <= 102)); // a-f\r\n };\r\n return takeChar(scnr, closure);\r\n }\r\n function getDigits(scnr) {\r\n let ch = '';\r\n let num = '';\r\n while ((ch = takeDigit(scnr))) {\r\n num += ch;\r\n }\r\n return num;\r\n }\r\n function readModulo(scnr) {\r\n skipSpaces(scnr);\r\n const ch = scnr.currentChar();\r\n if (ch !== \"%\" /* Modulo */) {\r\n emitError(CompileErrorCodes.EXPECTED_TOKEN, currentPosition(), 0, ch);\r\n }\r\n scnr.next();\r\n return \"%\" /* Modulo */;\r\n }\r\n function readText(scnr) {\r\n let buf = '';\r\n while (true) {\r\n const ch = scnr.currentChar();\r\n if (ch === \"{\" /* BraceLeft */ ||\r\n ch === \"}\" /* BraceRight */ ||\r\n ch === \"@\" /* LinkedAlias */ ||\r\n ch === \"|\" /* Pipe */ ||\r\n !ch) {\r\n break;\r\n }\r\n else if (ch === \"%\" /* Modulo */) {\r\n if (isTextStart(scnr)) {\r\n buf += ch;\r\n scnr.next();\r\n }\r\n else {\r\n break;\r\n }\r\n }\r\n else if (ch === CHAR_SP || ch === CHAR_LF) {\r\n if (isTextStart(scnr)) {\r\n buf += ch;\r\n scnr.next();\r\n }\r\n else if (isPluralStart(scnr)) {\r\n break;\r\n }\r\n else {\r\n buf += ch;\r\n scnr.next();\r\n }\r\n }\r\n else {\r\n buf += ch;\r\n scnr.next();\r\n }\r\n }\r\n return buf;\r\n }\r\n function readNamedIdentifier(scnr) {\r\n skipSpaces(scnr);\r\n let ch = '';\r\n let name = '';\r\n while ((ch = takeIdentifierChar(scnr))) {\r\n name += ch;\r\n }\r\n if (scnr.currentChar() === EOF) {\r\n emitError(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE, currentPosition(), 0);\r\n }\r\n return name;\r\n }\r\n function readListIdentifier(scnr) {\r\n skipSpaces(scnr);\r\n let value = '';\r\n if (scnr.currentChar() === '-') {\r\n scnr.next();\r\n value += `-${getDigits(scnr)}`;\r\n }\r\n else {\r\n value += getDigits(scnr);\r\n }\r\n if (scnr.currentChar() === EOF) {\r\n emitError(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE, currentPosition(), 0);\r\n }\r\n return value;\r\n }\r\n function readLiteral(scnr) {\r\n skipSpaces(scnr);\r\n eat(scnr, `\\'`);\r\n let ch = '';\r\n let literal = '';\r\n const fn = (x) => x !== LITERAL_DELIMITER && x !== CHAR_LF;\r\n while ((ch = takeChar(scnr, fn))) {\r\n if (ch === '\\\\') {\r\n literal += readEscapeSequence(scnr);\r\n }\r\n else {\r\n literal += ch;\r\n }\r\n }\r\n const current = scnr.currentChar();\r\n if (current === CHAR_LF || current === EOF) {\r\n emitError(CompileErrorCodes.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER, currentPosition(), 0);\r\n // TODO: Is it correct really?\r\n if (current === CHAR_LF) {\r\n scnr.next();\r\n eat(scnr, `\\'`);\r\n }\r\n return literal;\r\n }\r\n eat(scnr, `\\'`);\r\n return literal;\r\n }\r\n function readEscapeSequence(scnr) {\r\n const ch = scnr.currentChar();\r\n switch (ch) {\r\n case '\\\\':\r\n case `\\'`:\r\n scnr.next();\r\n return `\\\\${ch}`;\r\n case 'u':\r\n return readUnicodeEscapeSequence(scnr, ch, 4);\r\n case 'U':\r\n return readUnicodeEscapeSequence(scnr, ch, 6);\r\n default:\r\n emitError(CompileErrorCodes.UNKNOWN_ESCAPE_SEQUENCE, currentPosition(), 0, ch);\r\n return '';\r\n }\r\n }\r\n function readUnicodeEscapeSequence(scnr, unicode, digits) {\r\n eat(scnr, unicode);\r\n let sequence = '';\r\n for (let i = 0; i < digits; i++) {\r\n const ch = takeHexDigit(scnr);\r\n if (!ch) {\r\n emitError(CompileErrorCodes.INVALID_UNICODE_ESCAPE_SEQUENCE, currentPosition(), 0, `\\\\${unicode}${sequence}${scnr.currentChar()}`);\r\n break;\r\n }\r\n sequence += ch;\r\n }\r\n return `\\\\${unicode}${sequence}`;\r\n }\r\n function readInvalidIdentifier(scnr) {\r\n skipSpaces(scnr);\r\n let ch = '';\r\n let identifiers = '';\r\n const closure = (ch) => ch !== \"{\" /* BraceLeft */ &&\r\n ch !== \"}\" /* BraceRight */ &&\r\n ch !== CHAR_SP &&\r\n ch !== CHAR_LF;\r\n while ((ch = takeChar(scnr, closure))) {\r\n identifiers += ch;\r\n }\r\n return identifiers;\r\n }\r\n function readLinkedModifier(scnr) {\r\n let ch = '';\r\n let name = '';\r\n while ((ch = takeIdentifierChar(scnr))) {\r\n name += ch;\r\n }\r\n return name;\r\n }\r\n function readLinkedRefer(scnr) {\r\n const fn = (detect = false, buf) => {\r\n const ch = scnr.currentChar();\r\n if (ch === \"{\" /* BraceLeft */ ||\r\n ch === \"%\" /* Modulo */ ||\r\n ch === \"@\" /* LinkedAlias */ ||\r\n ch === \"|\" /* Pipe */ ||\r\n !ch) {\r\n return buf;\r\n }\r\n else if (ch === CHAR_SP) {\r\n return buf;\r\n }\r\n else if (ch === CHAR_LF) {\r\n buf += ch;\r\n scnr.next();\r\n return fn(detect, buf);\r\n }\r\n else {\r\n buf += ch;\r\n scnr.next();\r\n return fn(true, buf);\r\n }\r\n };\r\n return fn(false, '');\r\n }\r\n function readPlural(scnr) {\r\n skipSpaces(scnr);\r\n const plural = eat(scnr, \"|\" /* Pipe */);\r\n skipSpaces(scnr);\r\n return plural;\r\n }\r\n // TODO: We need refactoring of token parsing ...\r\n function readTokenInPlaceholder(scnr, context) {\r\n let token = null;\r\n const ch = scnr.currentChar();\r\n switch (ch) {\r\n case \"{\" /* BraceLeft */:\r\n if (context.braceNest >= 1) {\r\n emitError(CompileErrorCodes.NOT_ALLOW_NEST_PLACEHOLDER, currentPosition(), 0);\r\n }\r\n scnr.next();\r\n token = getToken(context, 2 /* BraceLeft */, \"{\" /* BraceLeft */);\r\n skipSpaces(scnr);\r\n context.braceNest++;\r\n return token;\r\n case \"}\" /* BraceRight */:\r\n if (context.braceNest > 0 &&\r\n context.currentType === 2 /* BraceLeft */) {\r\n emitError(CompileErrorCodes.EMPTY_PLACEHOLDER, currentPosition(), 0);\r\n }\r\n scnr.next();\r\n token = getToken(context, 3 /* BraceRight */, \"}\" /* BraceRight */);\r\n context.braceNest--;\r\n context.braceNest > 0 && skipSpaces(scnr);\r\n if (context.inLinked && context.braceNest === 0) {\r\n context.inLinked = false;\r\n }\r\n return token;\r\n case \"@\" /* LinkedAlias */:\r\n if (context.braceNest > 0) {\r\n emitError(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE, currentPosition(), 0);\r\n }\r\n token = readTokenInLinked(scnr, context) || getEndToken(context);\r\n context.braceNest = 0;\r\n return token;\r\n default:\r\n let validNamedIdentifier = true;\r\n let validListIdentifier = true;\r\n let validLiteral = true;\r\n if (isPluralStart(scnr)) {\r\n if (context.braceNest > 0) {\r\n emitError(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE, currentPosition(), 0);\r\n }\r\n token = getToken(context, 1 /* Pipe */, readPlural(scnr));\r\n // reset\r\n context.braceNest = 0;\r\n context.inLinked = false;\r\n return token;\r\n }\r\n if (context.braceNest > 0 &&\r\n (context.currentType === 5 /* Named */ ||\r\n context.currentType === 6 /* List */ ||\r\n context.currentType === 7 /* Literal */)) {\r\n emitError(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE, currentPosition(), 0);\r\n context.braceNest = 0;\r\n return readToken(scnr, context);\r\n }\r\n if ((validNamedIdentifier = isNamedIdentifierStart(scnr, context))) {\r\n token = getToken(context, 5 /* Named */, readNamedIdentifier(scnr));\r\n skipSpaces(scnr);\r\n return token;\r\n }\r\n if ((validListIdentifier = isListIdentifierStart(scnr, context))) {\r\n token = getToken(context, 6 /* List */, readListIdentifier(scnr));\r\n skipSpaces(scnr);\r\n return token;\r\n }\r\n if ((validLiteral = isLiteralStart(scnr, context))) {\r\n token = getToken(context, 7 /* Literal */, readLiteral(scnr));\r\n skipSpaces(scnr);\r\n return token;\r\n }\r\n if (!validNamedIdentifier && !validListIdentifier && !validLiteral) {\r\n // TODO: we should be re-designed invalid cases, when we will extend message syntax near the future ...\r\n token = getToken(context, 13 /* InvalidPlace */, readInvalidIdentifier(scnr));\r\n emitError(CompileErrorCodes.INVALID_TOKEN_IN_PLACEHOLDER, currentPosition(), 0, token.value);\r\n skipSpaces(scnr);\r\n return token;\r\n }\r\n break;\r\n }\r\n return token;\r\n }\r\n // TODO: We need refactoring of token parsing ...\r\n function readTokenInLinked(scnr, context) {\r\n const { currentType } = context;\r\n let token = null;\r\n const ch = scnr.currentChar();\r\n if ((currentType === 8 /* LinkedAlias */ ||\r\n currentType === 9 /* LinkedDot */ ||\r\n currentType === 12 /* LinkedModifier */ ||\r\n currentType === 10 /* LinkedDelimiter */) &&\r\n (ch === CHAR_LF || ch === CHAR_SP)) {\r\n emitError(CompileErrorCodes.INVALID_LINKED_FORMAT, currentPosition(), 0);\r\n }\r\n switch (ch) {\r\n case \"@\" /* LinkedAlias */:\r\n scnr.next();\r\n token = getToken(context, 8 /* LinkedAlias */, \"@\" /* LinkedAlias */);\r\n context.inLinked = true;\r\n return token;\r\n case \".\" /* LinkedDot */:\r\n skipSpaces(scnr);\r\n scnr.next();\r\n return getToken(context, 9 /* LinkedDot */, \".\" /* LinkedDot */);\r\n case \":\" /* LinkedDelimiter */:\r\n skipSpaces(scnr);\r\n scnr.next();\r\n return getToken(context, 10 /* LinkedDelimiter */, \":\" /* LinkedDelimiter */);\r\n default:\r\n if (isPluralStart(scnr)) {\r\n token = getToken(context, 1 /* Pipe */, readPlural(scnr));\r\n // reset\r\n context.braceNest = 0;\r\n context.inLinked = false;\r\n return token;\r\n }\r\n if (isLinkedDotStart(scnr, context) ||\r\n isLinkedDelimiterStart(scnr, context)) {\r\n skipSpaces(scnr);\r\n return readTokenInLinked(scnr, context);\r\n }\r\n if (isLinkedModifierStart(scnr, context)) {\r\n skipSpaces(scnr);\r\n return getToken(context, 12 /* LinkedModifier */, readLinkedModifier(scnr));\r\n }\r\n if (isLinkedReferStart(scnr, context)) {\r\n skipSpaces(scnr);\r\n if (ch === \"{\" /* BraceLeft */) {\r\n // scan the placeholder\r\n return readTokenInPlaceholder(scnr, context) || token;\r\n }\r\n else {\r\n return getToken(context, 11 /* LinkedKey */, readLinkedRefer(scnr));\r\n }\r\n }\r\n if (currentType === 8 /* LinkedAlias */) {\r\n emitError(CompileErrorCodes.INVALID_LINKED_FORMAT, currentPosition(), 0);\r\n }\r\n context.braceNest = 0;\r\n context.inLinked = false;\r\n return readToken(scnr, context);\r\n }\r\n }\r\n // TODO: We need refactoring of token parsing ...\r\n function readToken(scnr, context) {\r\n let token = { type: 14 /* EOF */ };\r\n if (context.braceNest > 0) {\r\n return readTokenInPlaceholder(scnr, context) || getEndToken(context);\r\n }\r\n if (context.inLinked) {\r\n return readTokenInLinked(scnr, context) || getEndToken(context);\r\n }\r\n const ch = scnr.currentChar();\r\n switch (ch) {\r\n case \"{\" /* BraceLeft */:\r\n return readTokenInPlaceholder(scnr, context) || getEndToken(context);\r\n case \"}\" /* BraceRight */:\r\n emitError(CompileErrorCodes.UNBALANCED_CLOSING_BRACE, currentPosition(), 0);\r\n scnr.next();\r\n return getToken(context, 3 /* BraceRight */, \"}\" /* BraceRight */);\r\n case \"@\" /* LinkedAlias */:\r\n return readTokenInLinked(scnr, context) || getEndToken(context);\r\n default:\r\n if (isPluralStart(scnr)) {\r\n token = getToken(context, 1 /* Pipe */, readPlural(scnr));\r\n // reset\r\n context.braceNest = 0;\r\n context.inLinked = false;\r\n return token;\r\n }\r\n const { isModulo, hasSpace } = detectModuloStart(scnr);\r\n if (isModulo) {\r\n return hasSpace\r\n ? getToken(context, 0 /* Text */, readText(scnr))\r\n : getToken(context, 4 /* Modulo */, readModulo(scnr));\r\n }\r\n if (isTextStart(scnr)) {\r\n return getToken(context, 0 /* Text */, readText(scnr));\r\n }\r\n break;\r\n }\r\n return token;\r\n }\r\n function nextToken() {\r\n const { currentType, offset, startLoc, endLoc } = _context;\r\n _context.lastType = currentType;\r\n _context.lastOffset = offset;\r\n _context.lastStartLoc = startLoc;\r\n _context.lastEndLoc = endLoc;\r\n _context.offset = currentOffset();\r\n _context.startLoc = currentPosition();\r\n if (_scnr.currentChar() === EOF) {\r\n return getToken(_context, 14 /* EOF */);\r\n }\r\n return readToken(_scnr, _context);\r\n }\r\n return {\r\n nextToken,\r\n currentOffset,\r\n currentPosition,\r\n context\r\n };\r\n}\n\nconst ERROR_DOMAIN = 'parser';\r\n// Backslash backslash, backslash quote, uHHHH, UHHHHHH.\r\nconst KNOWN_ESCAPES = /(?:\\\\\\\\|\\\\'|\\\\u([0-9a-fA-F]{4})|\\\\U([0-9a-fA-F]{6}))/g;\r\nfunction fromEscapeSequence(match, codePoint4, codePoint6) {\r\n switch (match) {\r\n case `\\\\\\\\`:\r\n return `\\\\`;\r\n case `\\\\\\'`:\r\n return `\\'`;\r\n default: {\r\n const codePoint = parseInt(codePoint4 || codePoint6, 16);\r\n if (codePoint <= 0xd7ff || codePoint >= 0xe000) {\r\n return String.fromCodePoint(codePoint);\r\n }\r\n // invalid ...\r\n // Replace them with U+FFFD REPLACEMENT CHARACTER.\r\n return '�';\r\n }\r\n }\r\n}\r\nfunction createParser(options = {}) {\r\n const location = options.location !== false;\r\n const { onError } = options;\r\n function emitError(tokenzer, code, start, offset, ...args) {\r\n const end = tokenzer.currentPosition();\r\n end.offset += offset;\r\n end.column += offset;\r\n if (onError) {\r\n const loc = createLocation(start, end);\r\n const err = createCompileError(code, loc, {\r\n domain: ERROR_DOMAIN,\r\n args\r\n });\r\n onError(err);\r\n }\r\n }\r\n function startNode(type, offset, loc) {\r\n const node = {\r\n type,\r\n start: offset,\r\n end: offset\r\n };\r\n if (location) {\r\n node.loc = { start: loc, end: loc };\r\n }\r\n return node;\r\n }\r\n function endNode(node, offset, pos, type) {\r\n node.end = offset;\r\n if (type) {\r\n node.type = type;\r\n }\r\n if (location && node.loc) {\r\n node.loc.end = pos;\r\n }\r\n }\r\n function parseText(tokenizer, value) {\r\n const context = tokenizer.context();\r\n const node = startNode(3 /* Text */, context.offset, context.startLoc);\r\n node.value = value;\r\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\r\n return node;\r\n }\r\n function parseList(tokenizer, index) {\r\n const context = tokenizer.context();\r\n const { lastOffset: offset, lastStartLoc: loc } = context; // get brace left loc\r\n const node = startNode(5 /* List */, offset, loc);\r\n node.index = parseInt(index, 10);\r\n tokenizer.nextToken(); // skip brach right\r\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\r\n return node;\r\n }\r\n function parseNamed(tokenizer, key) {\r\n const context = tokenizer.context();\r\n const { lastOffset: offset, lastStartLoc: loc } = context; // get brace left loc\r\n const node = startNode(4 /* Named */, offset, loc);\r\n node.key = key;\r\n tokenizer.nextToken(); // skip brach right\r\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\r\n return node;\r\n }\r\n function parseLiteral(tokenizer, value) {\r\n const context = tokenizer.context();\r\n const { lastOffset: offset, lastStartLoc: loc } = context; // get brace left loc\r\n const node = startNode(9 /* Literal */, offset, loc);\r\n node.value = value.replace(KNOWN_ESCAPES, fromEscapeSequence);\r\n tokenizer.nextToken(); // skip brach right\r\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\r\n return node;\r\n }\r\n function parseLinkedModifier(tokenizer) {\r\n const token = tokenizer.nextToken();\r\n const context = tokenizer.context();\r\n const { lastOffset: offset, lastStartLoc: loc } = context; // get linked dot loc\r\n const node = startNode(8 /* LinkedModifier */, offset, loc);\r\n if (token.type !== 12 /* LinkedModifier */) {\r\n // empty modifier\r\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_EMPTY_LINKED_MODIFIER, context.lastStartLoc, 0);\r\n node.value = '';\r\n endNode(node, offset, loc);\r\n return {\r\n nextConsumeToken: token,\r\n node\r\n };\r\n }\r\n // check token\r\n if (token.value == null) {\r\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\r\n }\r\n node.value = token.value || '';\r\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\r\n return {\r\n node\r\n };\r\n }\r\n function parseLinkedKey(tokenizer, value) {\r\n const context = tokenizer.context();\r\n const node = startNode(7 /* LinkedKey */, context.offset, context.startLoc);\r\n node.value = value;\r\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\r\n return node;\r\n }\r\n function parseLinked(tokenizer) {\r\n const context = tokenizer.context();\r\n const linkedNode = startNode(6 /* Linked */, context.offset, context.startLoc);\r\n let token = tokenizer.nextToken();\r\n if (token.type === 9 /* LinkedDot */) {\r\n const parsed = parseLinkedModifier(tokenizer);\r\n linkedNode.modifier = parsed.node;\r\n token = parsed.nextConsumeToken || tokenizer.nextToken();\r\n }\r\n // asset check token\r\n if (token.type !== 10 /* LinkedDelimiter */) {\r\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\r\n }\r\n token = tokenizer.nextToken();\r\n // skip brace left\r\n if (token.type === 2 /* BraceLeft */) {\r\n token = tokenizer.nextToken();\r\n }\r\n switch (token.type) {\r\n case 11 /* LinkedKey */:\r\n if (token.value == null) {\r\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\r\n }\r\n linkedNode.key = parseLinkedKey(tokenizer, token.value || '');\r\n break;\r\n case 5 /* Named */:\r\n if (token.value == null) {\r\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\r\n }\r\n linkedNode.key = parseNamed(tokenizer, token.value || '');\r\n break;\r\n case 6 /* List */:\r\n if (token.value == null) {\r\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\r\n }\r\n linkedNode.key = parseList(tokenizer, token.value || '');\r\n break;\r\n case 7 /* Literal */:\r\n if (token.value == null) {\r\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\r\n }\r\n linkedNode.key = parseLiteral(tokenizer, token.value || '');\r\n break;\r\n default:\r\n // empty key\r\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_EMPTY_LINKED_KEY, context.lastStartLoc, 0);\r\n const nextContext = tokenizer.context();\r\n const emptyLinkedKeyNode = startNode(7 /* LinkedKey */, nextContext.offset, nextContext.startLoc);\r\n emptyLinkedKeyNode.value = '';\r\n endNode(emptyLinkedKeyNode, nextContext.offset, nextContext.startLoc);\r\n linkedNode.key = emptyLinkedKeyNode;\r\n endNode(linkedNode, nextContext.offset, nextContext.startLoc);\r\n return {\r\n nextConsumeToken: token,\r\n node: linkedNode\r\n };\r\n }\r\n endNode(linkedNode, tokenizer.currentOffset(), tokenizer.currentPosition());\r\n return {\r\n node: linkedNode\r\n };\r\n }\r\n function parseMessage(tokenizer) {\r\n const context = tokenizer.context();\r\n const startOffset = context.currentType === 1 /* Pipe */\r\n ? tokenizer.currentOffset()\r\n : context.offset;\r\n const startLoc = context.currentType === 1 /* Pipe */\r\n ? context.endLoc\r\n : context.startLoc;\r\n const node = startNode(2 /* Message */, startOffset, startLoc);\r\n node.items = [];\r\n let nextToken = null;\r\n do {\r\n const token = nextToken || tokenizer.nextToken();\r\n nextToken = null;\r\n switch (token.type) {\r\n case 0 /* Text */:\r\n if (token.value == null) {\r\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\r\n }\r\n node.items.push(parseText(tokenizer, token.value || ''));\r\n break;\r\n case 6 /* List */:\r\n if (token.value == null) {\r\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\r\n }\r\n node.items.push(parseList(tokenizer, token.value || ''));\r\n break;\r\n case 5 /* Named */:\r\n if (token.value == null) {\r\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\r\n }\r\n node.items.push(parseNamed(tokenizer, token.value || ''));\r\n break;\r\n case 7 /* Literal */:\r\n if (token.value == null) {\r\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\r\n }\r\n node.items.push(parseLiteral(tokenizer, token.value || ''));\r\n break;\r\n case 8 /* LinkedAlias */:\r\n const parsed = parseLinked(tokenizer);\r\n node.items.push(parsed.node);\r\n nextToken = parsed.nextConsumeToken || null;\r\n break;\r\n }\r\n } while (context.currentType !== 14 /* EOF */ &&\r\n context.currentType !== 1 /* Pipe */);\r\n // adjust message node loc\r\n const endOffset = context.currentType === 1 /* Pipe */\r\n ? context.lastOffset\r\n : tokenizer.currentOffset();\r\n const endLoc = context.currentType === 1 /* Pipe */\r\n ? context.lastEndLoc\r\n : tokenizer.currentPosition();\r\n endNode(node, endOffset, endLoc);\r\n return node;\r\n }\r\n function parsePlural(tokenizer, offset, loc, msgNode) {\r\n const context = tokenizer.context();\r\n let hasEmptyMessage = msgNode.items.length === 0;\r\n const node = startNode(1 /* Plural */, offset, loc);\r\n node.cases = [];\r\n node.cases.push(msgNode);\r\n do {\r\n const msg = parseMessage(tokenizer);\r\n if (!hasEmptyMessage) {\r\n hasEmptyMessage = msg.items.length === 0;\r\n }\r\n node.cases.push(msg);\r\n } while (context.currentType !== 14 /* EOF */);\r\n if (hasEmptyMessage) {\r\n emitError(tokenizer, CompileErrorCodes.MUST_HAVE_MESSAGES_IN_PLURAL, loc, 0);\r\n }\r\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\r\n return node;\r\n }\r\n function parseResource(tokenizer) {\r\n const context = tokenizer.context();\r\n const { offset, startLoc } = context;\r\n const msgNode = parseMessage(tokenizer);\r\n if (context.currentType === 14 /* EOF */) {\r\n return msgNode;\r\n }\r\n else {\r\n return parsePlural(tokenizer, offset, startLoc, msgNode);\r\n }\r\n }\r\n function parse(source) {\r\n const tokenizer = createTokenizer(source, assign({}, options));\r\n const context = tokenizer.context();\r\n const node = startNode(0 /* Resource */, context.offset, context.startLoc);\r\n if (location && node.loc) {\r\n node.loc.source = source;\r\n }\r\n node.body = parseResource(tokenizer);\r\n // assert whether achieved to EOF\r\n if (context.currentType !== 14 /* EOF */) {\r\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, source[context.offset] || '');\r\n }\r\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\r\n return node;\r\n }\r\n return { parse };\r\n}\r\nfunction getTokenCaption(token) {\r\n if (token.type === 14 /* EOF */) {\r\n return 'EOF';\r\n }\r\n const name = (token.value || '').replace(/\\r?\\n/gu, '\\\\n');\r\n return name.length > 10 ? name.slice(0, 9) + '…' : name;\r\n}\n\nfunction createTransformer(ast, options = {} // eslint-disable-line\r\n) {\r\n const _context = {\r\n ast,\r\n helpers: new Set()\r\n };\r\n const context = () => _context;\r\n const helper = (name) => {\r\n _context.helpers.add(name);\r\n return name;\r\n };\r\n return { context, helper };\r\n}\r\nfunction traverseNodes(nodes, transformer) {\r\n for (let i = 0; i < nodes.length; i++) {\r\n traverseNode(nodes[i], transformer);\r\n }\r\n}\r\nfunction traverseNode(node, transformer) {\r\n // TODO: if we need pre-hook of transform, should be implemented to here\r\n switch (node.type) {\r\n case 1 /* Plural */:\r\n traverseNodes(node.cases, transformer);\r\n transformer.helper(\"plural\" /* PLURAL */);\r\n break;\r\n case 2 /* Message */:\r\n traverseNodes(node.items, transformer);\r\n break;\r\n case 6 /* Linked */:\r\n const linked = node;\r\n traverseNode(linked.key, transformer);\r\n transformer.helper(\"linked\" /* LINKED */);\r\n transformer.helper(\"type\" /* TYPE */);\r\n break;\r\n case 5 /* List */:\r\n transformer.helper(\"interpolate\" /* INTERPOLATE */);\r\n transformer.helper(\"list\" /* LIST */);\r\n break;\r\n case 4 /* Named */:\r\n transformer.helper(\"interpolate\" /* INTERPOLATE */);\r\n transformer.helper(\"named\" /* NAMED */);\r\n break;\r\n }\r\n // TODO: if we need post-hook of transform, should be implemented to here\r\n}\r\n// transform AST\r\nfunction transform(ast, options = {} // eslint-disable-line\r\n) {\r\n const transformer = createTransformer(ast);\r\n transformer.helper(\"normalize\" /* NORMALIZE */);\r\n // traverse\r\n ast.body && traverseNode(ast.body, transformer);\r\n // set meta information\r\n const context = transformer.context();\r\n ast.helpers = Array.from(context.helpers);\r\n}\n\nfunction createCodeGenerator(ast, options) {\r\n const { sourceMap, filename, breakLineCode, needIndent: _needIndent } = options;\r\n const _context = {\r\n source: ast.loc.source,\r\n filename,\r\n code: '',\r\n column: 1,\r\n line: 1,\r\n offset: 0,\r\n map: undefined,\r\n breakLineCode,\r\n needIndent: _needIndent,\r\n indentLevel: 0\r\n };\r\n const context = () => _context;\r\n function push(code, node) {\r\n _context.code += code;\r\n }\r\n function _newline(n, withBreakLine = true) {\r\n const _breakLineCode = withBreakLine ? breakLineCode : '';\r\n push(_needIndent ? _breakLineCode + ` `.repeat(n) : _breakLineCode);\r\n }\r\n function indent(withNewLine = true) {\r\n const level = ++_context.indentLevel;\r\n withNewLine && _newline(level);\r\n }\r\n function deindent(withNewLine = true) {\r\n const level = --_context.indentLevel;\r\n withNewLine && _newline(level);\r\n }\r\n function newline() {\r\n _newline(_context.indentLevel);\r\n }\r\n const helper = (key) => `_${key}`;\r\n const needIndent = () => _context.needIndent;\r\n return {\r\n context,\r\n push,\r\n indent,\r\n deindent,\r\n newline,\r\n helper,\r\n needIndent\r\n };\r\n}\r\nfunction generateLinkedNode(generator, node) {\r\n const { helper } = generator;\r\n generator.push(`${helper(\"linked\" /* LINKED */)}(`);\r\n generateNode(generator, node.key);\r\n if (node.modifier) {\r\n generator.push(`, `);\r\n generateNode(generator, node.modifier);\r\n generator.push(`, _type`);\r\n }\r\n else {\r\n generator.push(`, undefined, _type`);\r\n }\r\n generator.push(`)`);\r\n}\r\nfunction generateMessageNode(generator, node) {\r\n const { helper, needIndent } = generator;\r\n generator.push(`${helper(\"normalize\" /* NORMALIZE */)}([`);\r\n generator.indent(needIndent());\r\n const length = node.items.length;\r\n for (let i = 0; i < length; i++) {\r\n generateNode(generator, node.items[i]);\r\n if (i === length - 1) {\r\n break;\r\n }\r\n generator.push(', ');\r\n }\r\n generator.deindent(needIndent());\r\n generator.push('])');\r\n}\r\nfunction generatePluralNode(generator, node) {\r\n const { helper, needIndent } = generator;\r\n if (node.cases.length > 1) {\r\n generator.push(`${helper(\"plural\" /* PLURAL */)}([`);\r\n generator.indent(needIndent());\r\n const length = node.cases.length;\r\n for (let i = 0; i < length; i++) {\r\n generateNode(generator, node.cases[i]);\r\n if (i === length - 1) {\r\n break;\r\n }\r\n generator.push(', ');\r\n }\r\n generator.deindent(needIndent());\r\n generator.push(`])`);\r\n }\r\n}\r\nfunction generateResource(generator, node) {\r\n if (node.body) {\r\n generateNode(generator, node.body);\r\n }\r\n else {\r\n generator.push('null');\r\n }\r\n}\r\nfunction generateNode(generator, node) {\r\n const { helper } = generator;\r\n switch (node.type) {\r\n case 0 /* Resource */:\r\n generateResource(generator, node);\r\n break;\r\n case 1 /* Plural */:\r\n generatePluralNode(generator, node);\r\n break;\r\n case 2 /* Message */:\r\n generateMessageNode(generator, node);\r\n break;\r\n case 6 /* Linked */:\r\n generateLinkedNode(generator, node);\r\n break;\r\n case 8 /* LinkedModifier */:\r\n generator.push(JSON.stringify(node.value), node);\r\n break;\r\n case 7 /* LinkedKey */:\r\n generator.push(JSON.stringify(node.value), node);\r\n break;\r\n case 5 /* List */:\r\n generator.push(`${helper(\"interpolate\" /* INTERPOLATE */)}(${helper(\"list\" /* LIST */)}(${node.index}))`, node);\r\n break;\r\n case 4 /* Named */:\r\n generator.push(`${helper(\"interpolate\" /* INTERPOLATE */)}(${helper(\"named\" /* NAMED */)}(${JSON.stringify(node.key)}))`, node);\r\n break;\r\n case 9 /* Literal */:\r\n generator.push(JSON.stringify(node.value), node);\r\n break;\r\n case 3 /* Text */:\r\n generator.push(JSON.stringify(node.value), node);\r\n break;\r\n default:\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n throw new Error(`unhandled codegen node type: ${node.type}`);\r\n }\r\n }\r\n}\r\n// generate code from AST\r\nconst generate = (ast, options = {} // eslint-disable-line\r\n) => {\r\n const mode = isString(options.mode) ? options.mode : 'normal';\r\n const filename = isString(options.filename)\r\n ? options.filename\r\n : 'message.intl';\r\n const sourceMap = !!options.sourceMap;\r\n // prettier-ignore\r\n const breakLineCode = options.breakLineCode != null\r\n ? options.breakLineCode\r\n : mode === 'arrow'\r\n ? ';'\r\n : '\\n';\r\n const needIndent = options.needIndent ? options.needIndent : mode !== 'arrow';\r\n const helpers = ast.helpers || [];\r\n const generator = createCodeGenerator(ast, {\r\n mode,\r\n filename,\r\n sourceMap,\r\n breakLineCode,\r\n needIndent\r\n });\r\n generator.push(mode === 'normal' ? `function __msg__ (ctx) {` : `(ctx) => {`);\r\n generator.indent(needIndent);\r\n if (helpers.length > 0) {\r\n generator.push(`const { ${helpers.map(s => `${s}: _${s}`).join(', ')} } = ctx`);\r\n generator.newline();\r\n }\r\n generator.push(`return `);\r\n generateNode(generator, ast);\r\n generator.deindent(needIndent);\r\n generator.push(`}`);\r\n const { code, map } = generator.context();\r\n return {\r\n ast,\r\n code,\r\n map: map ? map.toJSON() : undefined // eslint-disable-line @typescript-eslint/no-explicit-any\r\n };\r\n};\n\nfunction baseCompile(source, options = {}) {\r\n const assignedOptions = assign({}, options);\r\n // parse source codes\r\n const parser = createParser(assignedOptions);\r\n const ast = parser.parse(source);\r\n // transform ASTs\r\n transform(ast, assignedOptions);\r\n // generate javascript codes\r\n return generate(ast, assignedOptions);\r\n}\n\nexport { CompileErrorCodes, ERROR_DOMAIN, LocationStub, baseCompile, createCompileError, createLocation, createParser, createPosition, defaultOnError, errorMessages };\n","/*!\n * devtools-if v9.2.2\n * (c) 2022 kazuya kawaguchi\n * Released under the MIT License.\n */\nconst IntlifyDevToolsHooks = {\r\n I18nInit: 'i18n:init',\r\n FunctionTranslate: 'function:translate'\r\n};\n\nexport { IntlifyDevToolsHooks };\n","/*!\n * core-base v9.2.2\n * (c) 2022 kazuya kawaguchi\n * Released under the MIT License.\n */\nimport { isObject, isString, isFunction, isNumber, isPlainObject, toDisplayString, isArray, format, isBoolean, assign, isRegExp, warn, escapeHtml, inBrowser, mark, measure, isEmptyObject, generateCodeFrame, generateFormatCacheKey, isDate, getGlobalThis } from '@intlify/shared';\nimport { defaultOnError, baseCompile, CompileErrorCodes, createCompileError } from '@intlify/message-compiler';\nexport { CompileErrorCodes, createCompileError } from '@intlify/message-compiler';\nimport { IntlifyDevToolsHooks } from '@intlify/devtools-if';\n\nconst pathStateMachine = [];\r\npathStateMachine[0 /* BEFORE_PATH */] = {\r\n [\"w\" /* WORKSPACE */]: [0 /* BEFORE_PATH */],\r\n [\"i\" /* IDENT */]: [3 /* IN_IDENT */, 0 /* APPEND */],\r\n [\"[\" /* LEFT_BRACKET */]: [4 /* IN_SUB_PATH */],\r\n [\"o\" /* END_OF_FAIL */]: [7 /* AFTER_PATH */]\r\n};\r\npathStateMachine[1 /* IN_PATH */] = {\r\n [\"w\" /* WORKSPACE */]: [1 /* IN_PATH */],\r\n [\".\" /* DOT */]: [2 /* BEFORE_IDENT */],\r\n [\"[\" /* LEFT_BRACKET */]: [4 /* IN_SUB_PATH */],\r\n [\"o\" /* END_OF_FAIL */]: [7 /* AFTER_PATH */]\r\n};\r\npathStateMachine[2 /* BEFORE_IDENT */] = {\r\n [\"w\" /* WORKSPACE */]: [2 /* BEFORE_IDENT */],\r\n [\"i\" /* IDENT */]: [3 /* IN_IDENT */, 0 /* APPEND */],\r\n [\"0\" /* ZERO */]: [3 /* IN_IDENT */, 0 /* APPEND */]\r\n};\r\npathStateMachine[3 /* IN_IDENT */] = {\r\n [\"i\" /* IDENT */]: [3 /* IN_IDENT */, 0 /* APPEND */],\r\n [\"0\" /* ZERO */]: [3 /* IN_IDENT */, 0 /* APPEND */],\r\n [\"w\" /* WORKSPACE */]: [1 /* IN_PATH */, 1 /* PUSH */],\r\n [\".\" /* DOT */]: [2 /* BEFORE_IDENT */, 1 /* PUSH */],\r\n [\"[\" /* LEFT_BRACKET */]: [4 /* IN_SUB_PATH */, 1 /* PUSH */],\r\n [\"o\" /* END_OF_FAIL */]: [7 /* AFTER_PATH */, 1 /* PUSH */]\r\n};\r\npathStateMachine[4 /* IN_SUB_PATH */] = {\r\n [\"'\" /* SINGLE_QUOTE */]: [5 /* IN_SINGLE_QUOTE */, 0 /* APPEND */],\r\n [\"\\\"\" /* DOUBLE_QUOTE */]: [6 /* IN_DOUBLE_QUOTE */, 0 /* APPEND */],\r\n [\"[\" /* LEFT_BRACKET */]: [\r\n 4 /* IN_SUB_PATH */,\r\n 2 /* INC_SUB_PATH_DEPTH */\r\n ],\r\n [\"]\" /* RIGHT_BRACKET */]: [1 /* IN_PATH */, 3 /* PUSH_SUB_PATH */],\r\n [\"o\" /* END_OF_FAIL */]: 8 /* ERROR */,\r\n [\"l\" /* ELSE */]: [4 /* IN_SUB_PATH */, 0 /* APPEND */]\r\n};\r\npathStateMachine[5 /* IN_SINGLE_QUOTE */] = {\r\n [\"'\" /* SINGLE_QUOTE */]: [4 /* IN_SUB_PATH */, 0 /* APPEND */],\r\n [\"o\" /* END_OF_FAIL */]: 8 /* ERROR */,\r\n [\"l\" /* ELSE */]: [5 /* IN_SINGLE_QUOTE */, 0 /* APPEND */]\r\n};\r\npathStateMachine[6 /* IN_DOUBLE_QUOTE */] = {\r\n [\"\\\"\" /* DOUBLE_QUOTE */]: [4 /* IN_SUB_PATH */, 0 /* APPEND */],\r\n [\"o\" /* END_OF_FAIL */]: 8 /* ERROR */,\r\n [\"l\" /* ELSE */]: [6 /* IN_DOUBLE_QUOTE */, 0 /* APPEND */]\r\n};\r\n/**\r\n * Check if an expression is a literal value.\r\n */\r\nconst literalValueRE = /^\\s?(?:true|false|-?[\\d.]+|'[^']*'|\"[^\"]*\")\\s?$/;\r\nfunction isLiteral(exp) {\r\n return literalValueRE.test(exp);\r\n}\r\n/**\r\n * Strip quotes from a string\r\n */\r\nfunction stripQuotes(str) {\r\n const a = str.charCodeAt(0);\r\n const b = str.charCodeAt(str.length - 1);\r\n return a === b && (a === 0x22 || a === 0x27) ? str.slice(1, -1) : str;\r\n}\r\n/**\r\n * Determine the type of a character in a keypath.\r\n */\r\nfunction getPathCharType(ch) {\r\n if (ch === undefined || ch === null) {\r\n return \"o\" /* END_OF_FAIL */;\r\n }\r\n const code = ch.charCodeAt(0);\r\n switch (code) {\r\n case 0x5b: // [\r\n case 0x5d: // ]\r\n case 0x2e: // .\r\n case 0x22: // \"\r\n case 0x27: // '\r\n return ch;\r\n case 0x5f: // _\r\n case 0x24: // $\r\n case 0x2d: // -\r\n return \"i\" /* IDENT */;\r\n case 0x09: // Tab (HT)\r\n case 0x0a: // Newline (LF)\r\n case 0x0d: // Return (CR)\r\n case 0xa0: // No-break space (NBSP)\r\n case 0xfeff: // Byte Order Mark (BOM)\r\n case 0x2028: // Line Separator (LS)\r\n case 0x2029: // Paragraph Separator (PS)\r\n return \"w\" /* WORKSPACE */;\r\n }\r\n return \"i\" /* IDENT */;\r\n}\r\n/**\r\n * Format a subPath, return its plain form if it is\r\n * a literal string or number. Otherwise prepend the\r\n * dynamic indicator (*).\r\n */\r\nfunction formatSubPath(path) {\r\n const trimmed = path.trim();\r\n // invalid leading 0\r\n if (path.charAt(0) === '0' && isNaN(parseInt(path))) {\r\n return false;\r\n }\r\n return isLiteral(trimmed)\r\n ? stripQuotes(trimmed)\r\n : \"*\" /* ASTARISK */ + trimmed;\r\n}\r\n/**\r\n * Parse a string path into an array of segments\r\n */\r\nfunction parse(path) {\r\n const keys = [];\r\n let index = -1;\r\n let mode = 0 /* BEFORE_PATH */;\r\n let subPathDepth = 0;\r\n let c;\r\n let key; // eslint-disable-line\r\n let newChar;\r\n let type;\r\n let transition;\r\n let action;\r\n let typeMap;\r\n const actions = [];\r\n actions[0 /* APPEND */] = () => {\r\n if (key === undefined) {\r\n key = newChar;\r\n }\r\n else {\r\n key += newChar;\r\n }\r\n };\r\n actions[1 /* PUSH */] = () => {\r\n if (key !== undefined) {\r\n keys.push(key);\r\n key = undefined;\r\n }\r\n };\r\n actions[2 /* INC_SUB_PATH_DEPTH */] = () => {\r\n actions[0 /* APPEND */]();\r\n subPathDepth++;\r\n };\r\n actions[3 /* PUSH_SUB_PATH */] = () => {\r\n if (subPathDepth > 0) {\r\n subPathDepth--;\r\n mode = 4 /* IN_SUB_PATH */;\r\n actions[0 /* APPEND */]();\r\n }\r\n else {\r\n subPathDepth = 0;\r\n if (key === undefined) {\r\n return false;\r\n }\r\n key = formatSubPath(key);\r\n if (key === false) {\r\n return false;\r\n }\r\n else {\r\n actions[1 /* PUSH */]();\r\n }\r\n }\r\n };\r\n function maybeUnescapeQuote() {\r\n const nextChar = path[index + 1];\r\n if ((mode === 5 /* IN_SINGLE_QUOTE */ &&\r\n nextChar === \"'\" /* SINGLE_QUOTE */) ||\r\n (mode === 6 /* IN_DOUBLE_QUOTE */ &&\r\n nextChar === \"\\\"\" /* DOUBLE_QUOTE */)) {\r\n index++;\r\n newChar = '\\\\' + nextChar;\r\n actions[0 /* APPEND */]();\r\n return true;\r\n }\r\n }\r\n while (mode !== null) {\r\n index++;\r\n c = path[index];\r\n if (c === '\\\\' && maybeUnescapeQuote()) {\r\n continue;\r\n }\r\n type = getPathCharType(c);\r\n typeMap = pathStateMachine[mode];\r\n transition = typeMap[type] || typeMap[\"l\" /* ELSE */] || 8 /* ERROR */;\r\n // check parse error\r\n if (transition === 8 /* ERROR */) {\r\n return;\r\n }\r\n mode = transition[0];\r\n if (transition[1] !== undefined) {\r\n action = actions[transition[1]];\r\n if (action) {\r\n newChar = c;\r\n if (action() === false) {\r\n return;\r\n }\r\n }\r\n }\r\n // check parse finish\r\n if (mode === 7 /* AFTER_PATH */) {\r\n return keys;\r\n }\r\n }\r\n}\r\n// path token cache\r\nconst cache = new Map();\r\n/**\r\n * key-value message resolver\r\n *\r\n * @remarks\r\n * Resolves messages with the key-value structure. Note that messages with a hierarchical structure such as objects cannot be resolved\r\n *\r\n * @param obj - A target object to be resolved with path\r\n * @param path - A {@link Path | path} to resolve the value of message\r\n *\r\n * @returns A resolved {@link PathValue | path value}\r\n *\r\n * @VueI18nGeneral\r\n */\r\nfunction resolveWithKeyValue(obj, path) {\r\n return isObject(obj) ? obj[path] : null;\r\n}\r\n/**\r\n * message resolver\r\n *\r\n * @remarks\r\n * Resolves messages. messages with a hierarchical structure such as objects can be resolved. This resolver is used in VueI18n as default.\r\n *\r\n * @param obj - A target object to be resolved with path\r\n * @param path - A {@link Path | path} to resolve the value of message\r\n *\r\n * @returns A resolved {@link PathValue | path value}\r\n *\r\n * @VueI18nGeneral\r\n */\r\nfunction resolveValue(obj, path) {\r\n // check object\r\n if (!isObject(obj)) {\r\n return null;\r\n }\r\n // parse path\r\n let hit = cache.get(path);\r\n if (!hit) {\r\n hit = parse(path);\r\n if (hit) {\r\n cache.set(path, hit);\r\n }\r\n }\r\n // check hit\r\n if (!hit) {\r\n return null;\r\n }\r\n // resolve path value\r\n const len = hit.length;\r\n let last = obj;\r\n let i = 0;\r\n while (i < len) {\r\n const val = last[hit[i]];\r\n if (val === undefined) {\r\n return null;\r\n }\r\n last = val;\r\n i++;\r\n }\r\n return last;\r\n}\n\nconst DEFAULT_MODIFIER = (str) => str;\r\nconst DEFAULT_MESSAGE = (ctx) => ''; // eslint-disable-line\r\nconst DEFAULT_MESSAGE_DATA_TYPE = 'text';\r\nconst DEFAULT_NORMALIZE = (values) => values.length === 0 ? '' : values.join('');\r\nconst DEFAULT_INTERPOLATE = toDisplayString;\r\nfunction pluralDefault(choice, choicesLength) {\r\n choice = Math.abs(choice);\r\n if (choicesLength === 2) {\r\n // prettier-ignore\r\n return choice\r\n ? choice > 1\r\n ? 1\r\n : 0\r\n : 1;\r\n }\r\n return choice ? Math.min(choice, 2) : 0;\r\n}\r\nfunction getPluralIndex(options) {\r\n // prettier-ignore\r\n const index = isNumber(options.pluralIndex)\r\n ? options.pluralIndex\r\n : -1;\r\n // prettier-ignore\r\n return options.named && (isNumber(options.named.count) || isNumber(options.named.n))\r\n ? isNumber(options.named.count)\r\n ? options.named.count\r\n : isNumber(options.named.n)\r\n ? options.named.n\r\n : index\r\n : index;\r\n}\r\nfunction normalizeNamed(pluralIndex, props) {\r\n if (!props.count) {\r\n props.count = pluralIndex;\r\n }\r\n if (!props.n) {\r\n props.n = pluralIndex;\r\n }\r\n}\r\nfunction createMessageContext(options = {}) {\r\n const locale = options.locale;\r\n const pluralIndex = getPluralIndex(options);\r\n const pluralRule = isObject(options.pluralRules) &&\r\n isString(locale) &&\r\n isFunction(options.pluralRules[locale])\r\n ? options.pluralRules[locale]\r\n : pluralDefault;\r\n const orgPluralRule = isObject(options.pluralRules) &&\r\n isString(locale) &&\r\n isFunction(options.pluralRules[locale])\r\n ? pluralDefault\r\n : undefined;\r\n const plural = (messages) => {\r\n return messages[pluralRule(pluralIndex, messages.length, orgPluralRule)];\r\n };\r\n const _list = options.list || [];\r\n const list = (index) => _list[index];\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const _named = options.named || {};\r\n isNumber(options.pluralIndex) && normalizeNamed(pluralIndex, _named);\r\n const named = (key) => _named[key];\r\n function message(key) {\r\n // prettier-ignore\r\n const msg = isFunction(options.messages)\r\n ? options.messages(key)\r\n : isObject(options.messages)\r\n ? options.messages[key]\r\n : false;\r\n return !msg\r\n ? options.parent\r\n ? options.parent.message(key) // resolve from parent messages\r\n : DEFAULT_MESSAGE\r\n : msg;\r\n }\r\n const _modifier = (name) => options.modifiers\r\n ? options.modifiers[name]\r\n : DEFAULT_MODIFIER;\r\n const normalize = isPlainObject(options.processor) && isFunction(options.processor.normalize)\r\n ? options.processor.normalize\r\n : DEFAULT_NORMALIZE;\r\n const interpolate = isPlainObject(options.processor) &&\r\n isFunction(options.processor.interpolate)\r\n ? options.processor.interpolate\r\n : DEFAULT_INTERPOLATE;\r\n const type = isPlainObject(options.processor) && isString(options.processor.type)\r\n ? options.processor.type\r\n : DEFAULT_MESSAGE_DATA_TYPE;\r\n const linked = (key, ...args) => {\r\n const [arg1, arg2] = args;\r\n let type = 'text';\r\n let modifier = '';\r\n if (args.length === 1) {\r\n if (isObject(arg1)) {\r\n modifier = arg1.modifier || modifier;\r\n type = arg1.type || type;\r\n }\r\n else if (isString(arg1)) {\r\n modifier = arg1 || modifier;\r\n }\r\n }\r\n else if (args.length === 2) {\r\n if (isString(arg1)) {\r\n modifier = arg1 || modifier;\r\n }\r\n if (isString(arg2)) {\r\n type = arg2 || type;\r\n }\r\n }\r\n let msg = message(key)(ctx);\r\n // The message in vnode resolved with linked are returned as an array by processor.nomalize\r\n if (type === 'vnode' && isArray(msg) && modifier) {\r\n msg = msg[0];\r\n }\r\n return modifier ? _modifier(modifier)(msg, type) : msg;\r\n };\r\n const ctx = {\r\n [\"list\" /* LIST */]: list,\r\n [\"named\" /* NAMED */]: named,\r\n [\"plural\" /* PLURAL */]: plural,\r\n [\"linked\" /* LINKED */]: linked,\r\n [\"message\" /* MESSAGE */]: message,\r\n [\"type\" /* TYPE */]: type,\r\n [\"interpolate\" /* INTERPOLATE */]: interpolate,\r\n [\"normalize\" /* NORMALIZE */]: normalize\r\n };\r\n return ctx;\r\n}\n\nlet devtools = null;\r\nfunction setDevToolsHook(hook) {\r\n devtools = hook;\r\n}\r\nfunction getDevToolsHook() {\r\n return devtools;\r\n}\r\nfunction initI18nDevTools(i18n, version, meta) {\r\n // TODO: queue if devtools is undefined\r\n devtools &&\r\n devtools.emit(IntlifyDevToolsHooks.I18nInit, {\r\n timestamp: Date.now(),\r\n i18n,\r\n version,\r\n meta\r\n });\r\n}\r\nconst translateDevTools = /* #__PURE__*/ createDevToolsHook(IntlifyDevToolsHooks.FunctionTranslate);\r\nfunction createDevToolsHook(hook) {\r\n return (payloads) => devtools && devtools.emit(hook, payloads);\r\n}\n\nconst CoreWarnCodes = {\r\n NOT_FOUND_KEY: 1,\r\n FALLBACK_TO_TRANSLATE: 2,\r\n CANNOT_FORMAT_NUMBER: 3,\r\n FALLBACK_TO_NUMBER_FORMAT: 4,\r\n CANNOT_FORMAT_DATE: 5,\r\n FALLBACK_TO_DATE_FORMAT: 6,\r\n __EXTEND_POINT__: 7\r\n};\r\n/** @internal */\r\nconst warnMessages = {\r\n [CoreWarnCodes.NOT_FOUND_KEY]: `Not found '{key}' key in '{locale}' locale messages.`,\r\n [CoreWarnCodes.FALLBACK_TO_TRANSLATE]: `Fall back to translate '{key}' key with '{target}' locale.`,\r\n [CoreWarnCodes.CANNOT_FORMAT_NUMBER]: `Cannot format a number value due to not supported Intl.NumberFormat.`,\r\n [CoreWarnCodes.FALLBACK_TO_NUMBER_FORMAT]: `Fall back to number format '{key}' key with '{target}' locale.`,\r\n [CoreWarnCodes.CANNOT_FORMAT_DATE]: `Cannot format a date value due to not supported Intl.DateTimeFormat.`,\r\n [CoreWarnCodes.FALLBACK_TO_DATE_FORMAT]: `Fall back to datetime format '{key}' key with '{target}' locale.`\r\n};\r\nfunction getWarnMessage(code, ...args) {\r\n return format(warnMessages[code], ...args);\r\n}\n\n/**\r\n * Fallback with simple implemenation\r\n *\r\n * @remarks\r\n * A fallback locale function implemented with a simple fallback algorithm.\r\n *\r\n * Basically, it returns the value as specified in the `fallbackLocale` props, and is processed with the fallback inside intlify.\r\n *\r\n * @param ctx - A {@link CoreContext | context}\r\n * @param fallback - A {@link FallbackLocale | fallback locale}\r\n * @param start - A starting {@link Locale | locale}\r\n *\r\n * @returns Fallback locales\r\n *\r\n * @VueI18nGeneral\r\n */\r\nfunction fallbackWithSimple(ctx, fallback, start // eslint-disable-line @typescript-eslint/no-unused-vars\r\n) {\r\n // prettier-ignore\r\n return [...new Set([\r\n start,\r\n ...(isArray(fallback)\r\n ? fallback\r\n : isObject(fallback)\r\n ? Object.keys(fallback)\r\n : isString(fallback)\r\n ? [fallback]\r\n : [start])\r\n ])];\r\n}\r\n/**\r\n * Fallback with locale chain\r\n *\r\n * @remarks\r\n * A fallback locale function implemented with a fallback chain algorithm. It's used in VueI18n as default.\r\n *\r\n * @param ctx - A {@link CoreContext | context}\r\n * @param fallback - A {@link FallbackLocale | fallback locale}\r\n * @param start - A starting {@link Locale | locale}\r\n *\r\n * @returns Fallback locales\r\n *\r\n * @VueI18nSee [Fallbacking](../guide/essentials/fallback)\r\n *\r\n * @VueI18nGeneral\r\n */\r\nfunction fallbackWithLocaleChain(ctx, fallback, start) {\r\n const startLocale = isString(start) ? start : DEFAULT_LOCALE;\r\n const context = ctx;\r\n if (!context.__localeChainCache) {\r\n context.__localeChainCache = new Map();\r\n }\r\n let chain = context.__localeChainCache.get(startLocale);\r\n if (!chain) {\r\n chain = [];\r\n // first block defined by start\r\n let block = [start];\r\n // while any intervening block found\r\n while (isArray(block)) {\r\n block = appendBlockToChain(chain, block, fallback);\r\n }\r\n // prettier-ignore\r\n // last block defined by default\r\n const defaults = isArray(fallback) || !isPlainObject(fallback)\r\n ? fallback\r\n : fallback['default']\r\n ? fallback['default']\r\n : null;\r\n // convert defaults to array\r\n block = isString(defaults) ? [defaults] : defaults;\r\n if (isArray(block)) {\r\n appendBlockToChain(chain, block, false);\r\n }\r\n context.__localeChainCache.set(startLocale, chain);\r\n }\r\n return chain;\r\n}\r\nfunction appendBlockToChain(chain, block, blocks) {\r\n let follow = true;\r\n for (let i = 0; i < block.length && isBoolean(follow); i++) {\r\n const locale = block[i];\r\n if (isString(locale)) {\r\n follow = appendLocaleToChain(chain, block[i], blocks);\r\n }\r\n }\r\n return follow;\r\n}\r\nfunction appendLocaleToChain(chain, locale, blocks) {\r\n let follow;\r\n const tokens = locale.split('-');\r\n do {\r\n const target = tokens.join('-');\r\n follow = appendItemToChain(chain, target, blocks);\r\n tokens.splice(-1, 1);\r\n } while (tokens.length && follow === true);\r\n return follow;\r\n}\r\nfunction appendItemToChain(chain, target, blocks) {\r\n let follow = false;\r\n if (!chain.includes(target)) {\r\n follow = true;\r\n if (target) {\r\n follow = target[target.length - 1] !== '!';\r\n const locale = target.replace(/!/g, '');\r\n chain.push(locale);\r\n if ((isArray(blocks) || isPlainObject(blocks)) &&\r\n blocks[locale] // eslint-disable-line @typescript-eslint/no-explicit-any\r\n ) {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n follow = blocks[locale];\r\n }\r\n }\r\n }\r\n return follow;\r\n}\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\r\n/**\r\n * Intlify core-base version\r\n * @internal\r\n */\r\nconst VERSION = '9.2.2';\r\nconst NOT_REOSLVED = -1;\r\nconst DEFAULT_LOCALE = 'en-US';\r\nconst MISSING_RESOLVE_VALUE = '';\r\nconst capitalize = (str) => `${str.charAt(0).toLocaleUpperCase()}${str.substr(1)}`;\r\nfunction getDefaultLinkedModifiers() {\r\n return {\r\n upper: (val, type) => {\r\n // prettier-ignore\r\n return type === 'text' && isString(val)\r\n ? val.toUpperCase()\r\n : type === 'vnode' && isObject(val) && '__v_isVNode' in val\r\n ? val.children.toUpperCase()\r\n : val;\r\n },\r\n lower: (val, type) => {\r\n // prettier-ignore\r\n return type === 'text' && isString(val)\r\n ? val.toLowerCase()\r\n : type === 'vnode' && isObject(val) && '__v_isVNode' in val\r\n ? val.children.toLowerCase()\r\n : val;\r\n },\r\n capitalize: (val, type) => {\r\n // prettier-ignore\r\n return (type === 'text' && isString(val)\r\n ? capitalize(val)\r\n : type === 'vnode' && isObject(val) && '__v_isVNode' in val\r\n ? capitalize(val.children)\r\n : val);\r\n }\r\n };\r\n}\r\nlet _compiler;\r\nfunction registerMessageCompiler(compiler) {\r\n _compiler = compiler;\r\n}\r\nlet _resolver;\r\n/**\r\n * Register the message resolver\r\n *\r\n * @param resolver - A {@link MessageResolver} function\r\n *\r\n * @VueI18nGeneral\r\n */\r\nfunction registerMessageResolver(resolver) {\r\n _resolver = resolver;\r\n}\r\nlet _fallbacker;\r\n/**\r\n * Register the locale fallbacker\r\n *\r\n * @param fallbacker - A {@link LocaleFallbacker} function\r\n *\r\n * @VueI18nGeneral\r\n */\r\nfunction registerLocaleFallbacker(fallbacker) {\r\n _fallbacker = fallbacker;\r\n}\r\n// Additional Meta for Intlify DevTools\r\nlet _additionalMeta = null;\r\nconst setAdditionalMeta = (meta) => {\r\n _additionalMeta = meta;\r\n};\r\nconst getAdditionalMeta = () => _additionalMeta;\r\nlet _fallbackContext = null;\r\nconst setFallbackContext = (context) => {\r\n _fallbackContext = context;\r\n};\r\nconst getFallbackContext = () => _fallbackContext;\r\n// ID for CoreContext\r\nlet _cid = 0;\r\nfunction createCoreContext(options = {}) {\r\n // setup options\r\n const version = isString(options.version) ? options.version : VERSION;\r\n const locale = isString(options.locale) ? options.locale : DEFAULT_LOCALE;\r\n const fallbackLocale = isArray(options.fallbackLocale) ||\r\n isPlainObject(options.fallbackLocale) ||\r\n isString(options.fallbackLocale) ||\r\n options.fallbackLocale === false\r\n ? options.fallbackLocale\r\n : locale;\r\n const messages = isPlainObject(options.messages)\r\n ? options.messages\r\n : { [locale]: {} };\r\n const datetimeFormats = isPlainObject(options.datetimeFormats)\r\n ? options.datetimeFormats\r\n : { [locale]: {} }\r\n ;\r\n const numberFormats = isPlainObject(options.numberFormats)\r\n ? options.numberFormats\r\n : { [locale]: {} }\r\n ;\r\n const modifiers = assign({}, options.modifiers || {}, getDefaultLinkedModifiers());\r\n const pluralRules = options.pluralRules || {};\r\n const missing = isFunction(options.missing) ? options.missing : null;\r\n const missingWarn = isBoolean(options.missingWarn) || isRegExp(options.missingWarn)\r\n ? options.missingWarn\r\n : true;\r\n const fallbackWarn = isBoolean(options.fallbackWarn) || isRegExp(options.fallbackWarn)\r\n ? options.fallbackWarn\r\n : true;\r\n const fallbackFormat = !!options.fallbackFormat;\r\n const unresolving = !!options.unresolving;\r\n const postTranslation = isFunction(options.postTranslation)\r\n ? options.postTranslation\r\n : null;\r\n const processor = isPlainObject(options.processor) ? options.processor : null;\r\n const warnHtmlMessage = isBoolean(options.warnHtmlMessage)\r\n ? options.warnHtmlMessage\r\n : true;\r\n const escapeParameter = !!options.escapeParameter;\r\n const messageCompiler = isFunction(options.messageCompiler)\r\n ? options.messageCompiler\r\n : _compiler;\r\n const messageResolver = isFunction(options.messageResolver)\r\n ? options.messageResolver\r\n : _resolver || resolveWithKeyValue;\r\n const localeFallbacker = isFunction(options.localeFallbacker)\r\n ? options.localeFallbacker\r\n : _fallbacker || fallbackWithSimple;\r\n const fallbackContext = isObject(options.fallbackContext)\r\n ? options.fallbackContext\r\n : undefined;\r\n const onWarn = isFunction(options.onWarn) ? options.onWarn : warn;\r\n // setup internal options\r\n const internalOptions = options;\r\n const __datetimeFormatters = isObject(internalOptions.__datetimeFormatters)\r\n ? internalOptions.__datetimeFormatters\r\n : new Map()\r\n ;\r\n const __numberFormatters = isObject(internalOptions.__numberFormatters)\r\n ? internalOptions.__numberFormatters\r\n : new Map()\r\n ;\r\n const __meta = isObject(internalOptions.__meta) ? internalOptions.__meta : {};\r\n _cid++;\r\n const context = {\r\n version,\r\n cid: _cid,\r\n locale,\r\n fallbackLocale,\r\n messages,\r\n modifiers,\r\n pluralRules,\r\n missing,\r\n missingWarn,\r\n fallbackWarn,\r\n fallbackFormat,\r\n unresolving,\r\n postTranslation,\r\n processor,\r\n warnHtmlMessage,\r\n escapeParameter,\r\n messageCompiler,\r\n messageResolver,\r\n localeFallbacker,\r\n fallbackContext,\r\n onWarn,\r\n __meta\r\n };\r\n {\r\n context.datetimeFormats = datetimeFormats;\r\n context.numberFormats = numberFormats;\r\n context.__datetimeFormatters = __datetimeFormatters;\r\n context.__numberFormatters = __numberFormatters;\r\n }\r\n // for vue-devtools timeline event\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n context.__v_emitter =\r\n internalOptions.__v_emitter != null\r\n ? internalOptions.__v_emitter\r\n : undefined;\r\n }\r\n // NOTE: experimental !!\r\n if ((process.env.NODE_ENV !== 'production') || __INTLIFY_PROD_DEVTOOLS__) {\r\n initI18nDevTools(context, version, __meta);\r\n }\r\n return context;\r\n}\r\n/** @internal */\r\nfunction isTranslateFallbackWarn(fallback, key) {\r\n return fallback instanceof RegExp ? fallback.test(key) : fallback;\r\n}\r\n/** @internal */\r\nfunction isTranslateMissingWarn(missing, key) {\r\n return missing instanceof RegExp ? missing.test(key) : missing;\r\n}\r\n/** @internal */\r\nfunction handleMissing(context, key, locale, missingWarn, type) {\r\n const { missing, onWarn } = context;\r\n // for vue-devtools timeline event\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n const emitter = context.__v_emitter;\r\n if (emitter) {\r\n emitter.emit(\"missing\" /* MISSING */, {\r\n locale,\r\n key,\r\n type,\r\n groupId: `${type}:${key}`\r\n });\r\n }\r\n }\r\n if (missing !== null) {\r\n const ret = missing(context, locale, key, type);\r\n return isString(ret) ? ret : key;\r\n }\r\n else {\r\n if ((process.env.NODE_ENV !== 'production') && isTranslateMissingWarn(missingWarn, key)) {\r\n onWarn(getWarnMessage(CoreWarnCodes.NOT_FOUND_KEY, { key, locale }));\r\n }\r\n return key;\r\n }\r\n}\r\n/** @internal */\r\nfunction updateFallbackLocale(ctx, locale, fallback) {\r\n const context = ctx;\r\n context.__localeChainCache = new Map();\r\n ctx.localeFallbacker(ctx, fallback, locale);\r\n}\r\n/* eslint-enable @typescript-eslint/no-explicit-any */\n\nconst RE_HTML_TAG = /<\\/?[\\w\\s=\"/.':;#-\\/]+>/;\r\nconst WARN_MESSAGE = `Detected HTML in '{source}' message. Recommend not using HTML messages to avoid XSS.`;\r\nfunction checkHtmlMessage(source, options) {\r\n const warnHtmlMessage = isBoolean(options.warnHtmlMessage)\r\n ? options.warnHtmlMessage\r\n : true;\r\n if (warnHtmlMessage && RE_HTML_TAG.test(source)) {\r\n warn(format(WARN_MESSAGE, { source }));\r\n }\r\n}\r\nconst defaultOnCacheKey = (source) => source;\r\nlet compileCache = Object.create(null);\r\nfunction clearCompileCache() {\r\n compileCache = Object.create(null);\r\n}\r\nfunction compileToFunction(source, options = {}) {\r\n {\r\n // check HTML message\r\n (process.env.NODE_ENV !== 'production') && checkHtmlMessage(source, options);\r\n // check caches\r\n const onCacheKey = options.onCacheKey || defaultOnCacheKey;\r\n const key = onCacheKey(source);\r\n const cached = compileCache[key];\r\n if (cached) {\r\n return cached;\r\n }\r\n // compile error detecting\r\n let occurred = false;\r\n const onError = options.onError || defaultOnError;\r\n options.onError = (err) => {\r\n occurred = true;\r\n onError(err);\r\n };\r\n // compile\r\n const { code } = baseCompile(source, options);\r\n // evaluate function\r\n const msg = new Function(`return ${code}`)();\r\n // if occurred compile error, don't cache\r\n return !occurred ? (compileCache[key] = msg) : msg;\r\n }\r\n}\n\nlet code = CompileErrorCodes.__EXTEND_POINT__;\r\nconst inc = () => ++code;\r\nconst CoreErrorCodes = {\r\n INVALID_ARGUMENT: code,\r\n INVALID_DATE_ARGUMENT: inc(),\r\n INVALID_ISO_DATE_ARGUMENT: inc(),\r\n __EXTEND_POINT__: inc() // 18\r\n};\r\nfunction createCoreError(code) {\r\n return createCompileError(code, null, (process.env.NODE_ENV !== 'production') ? { messages: errorMessages } : undefined);\r\n}\r\n/** @internal */\r\nconst errorMessages = {\r\n [CoreErrorCodes.INVALID_ARGUMENT]: 'Invalid arguments',\r\n [CoreErrorCodes.INVALID_DATE_ARGUMENT]: 'The date provided is an invalid Date object.' +\r\n 'Make sure your Date represents a valid date.',\r\n [CoreErrorCodes.INVALID_ISO_DATE_ARGUMENT]: 'The argument provided is not a valid ISO date string'\r\n};\n\nconst NOOP_MESSAGE_FUNCTION = () => '';\r\nconst isMessageFunction = (val) => isFunction(val);\r\n// implementation of `translate` function\r\nfunction translate(context, ...args) {\r\n const { fallbackFormat, postTranslation, unresolving, messageCompiler, fallbackLocale, messages } = context;\r\n const [key, options] = parseTranslateArgs(...args);\r\n const missingWarn = isBoolean(options.missingWarn)\r\n ? options.missingWarn\r\n : context.missingWarn;\r\n const fallbackWarn = isBoolean(options.fallbackWarn)\r\n ? options.fallbackWarn\r\n : context.fallbackWarn;\r\n const escapeParameter = isBoolean(options.escapeParameter)\r\n ? options.escapeParameter\r\n : context.escapeParameter;\r\n const resolvedMessage = !!options.resolvedMessage;\r\n // prettier-ignore\r\n const defaultMsgOrKey = isString(options.default) || isBoolean(options.default) // default by function option\r\n ? !isBoolean(options.default)\r\n ? options.default\r\n : (!messageCompiler ? () => key : key)\r\n : fallbackFormat // default by `fallbackFormat` option\r\n ? (!messageCompiler ? () => key : key)\r\n : '';\r\n const enableDefaultMsg = fallbackFormat || defaultMsgOrKey !== '';\r\n const locale = isString(options.locale) ? options.locale : context.locale;\r\n // escape params\r\n escapeParameter && escapeParams(options);\r\n // resolve message format\r\n // eslint-disable-next-line prefer-const\r\n let [formatScope, targetLocale, message] = !resolvedMessage\r\n ? resolveMessageFormat(context, key, locale, fallbackLocale, fallbackWarn, missingWarn)\r\n : [\r\n key,\r\n locale,\r\n messages[locale] || {}\r\n ];\r\n // NOTE:\r\n // Fix to work around `ssrTransfrom` bug in Vite.\r\n // https://github.com/vitejs/vite/issues/4306\r\n // To get around this, use temporary variables.\r\n // https://github.com/nuxt/framework/issues/1461#issuecomment-954606243\r\n let format = formatScope;\r\n // if you use default message, set it as message format!\r\n let cacheBaseKey = key;\r\n if (!resolvedMessage &&\r\n !(isString(format) || isMessageFunction(format))) {\r\n if (enableDefaultMsg) {\r\n format = defaultMsgOrKey;\r\n cacheBaseKey = format;\r\n }\r\n }\r\n // checking message format and target locale\r\n if (!resolvedMessage &&\r\n (!(isString(format) || isMessageFunction(format)) ||\r\n !isString(targetLocale))) {\r\n return unresolving ? NOT_REOSLVED : key;\r\n }\r\n if ((process.env.NODE_ENV !== 'production') && isString(format) && context.messageCompiler == null) {\r\n warn(`The message format compilation is not supported in this build. ` +\r\n `Because message compiler isn't included. ` +\r\n `You need to pre-compilation all message format. ` +\r\n `So translate function return '${key}'.`);\r\n return key;\r\n }\r\n // setup compile error detecting\r\n let occurred = false;\r\n const errorDetector = () => {\r\n occurred = true;\r\n };\r\n // compile message format\r\n const msg = !isMessageFunction(format)\r\n ? compileMessageFormat(context, key, targetLocale, format, cacheBaseKey, errorDetector)\r\n : format;\r\n // if occurred compile error, return the message format\r\n if (occurred) {\r\n return format;\r\n }\r\n // evaluate message with context\r\n const ctxOptions = getMessageContextOptions(context, targetLocale, message, options);\r\n const msgContext = createMessageContext(ctxOptions);\r\n const messaged = evaluateMessage(context, msg, msgContext);\r\n // if use post translation option, proceed it with handler\r\n const ret = postTranslation\r\n ? postTranslation(messaged, key)\r\n : messaged;\r\n // NOTE: experimental !!\r\n if ((process.env.NODE_ENV !== 'production') || __INTLIFY_PROD_DEVTOOLS__) {\r\n // prettier-ignore\r\n const payloads = {\r\n timestamp: Date.now(),\r\n key: isString(key)\r\n ? key\r\n : isMessageFunction(format)\r\n ? format.key\r\n : '',\r\n locale: targetLocale || (isMessageFunction(format)\r\n ? format.locale\r\n : ''),\r\n format: isString(format)\r\n ? format\r\n : isMessageFunction(format)\r\n ? format.source\r\n : '',\r\n message: ret\r\n };\r\n payloads.meta = assign({}, context.__meta, getAdditionalMeta() || {});\r\n translateDevTools(payloads);\r\n }\r\n return ret;\r\n}\r\nfunction escapeParams(options) {\r\n if (isArray(options.list)) {\r\n options.list = options.list.map(item => isString(item) ? escapeHtml(item) : item);\r\n }\r\n else if (isObject(options.named)) {\r\n Object.keys(options.named).forEach(key => {\r\n if (isString(options.named[key])) {\r\n options.named[key] = escapeHtml(options.named[key]);\r\n }\r\n });\r\n }\r\n}\r\nfunction resolveMessageFormat(context, key, locale, fallbackLocale, fallbackWarn, missingWarn) {\r\n const { messages, onWarn, messageResolver: resolveValue, localeFallbacker } = context;\r\n const locales = localeFallbacker(context, fallbackLocale, locale); // eslint-disable-line @typescript-eslint/no-explicit-any\r\n let message = {};\r\n let targetLocale;\r\n let format = null;\r\n let from = locale;\r\n let to = null;\r\n const type = 'translate';\r\n for (let i = 0; i < locales.length; i++) {\r\n targetLocale = to = locales[i];\r\n if ((process.env.NODE_ENV !== 'production') &&\r\n locale !== targetLocale &&\r\n isTranslateFallbackWarn(fallbackWarn, key)) {\r\n onWarn(getWarnMessage(CoreWarnCodes.FALLBACK_TO_TRANSLATE, {\r\n key,\r\n target: targetLocale\r\n }));\r\n }\r\n // for vue-devtools timeline event\r\n if ((process.env.NODE_ENV !== 'production') && locale !== targetLocale) {\r\n const emitter = context.__v_emitter;\r\n if (emitter) {\r\n emitter.emit(\"fallback\" /* FALBACK */, {\r\n type,\r\n key,\r\n from,\r\n to,\r\n groupId: `${type}:${key}`\r\n });\r\n }\r\n }\r\n message =\r\n messages[targetLocale] || {};\r\n // for vue-devtools timeline event\r\n let start = null;\r\n let startTag;\r\n let endTag;\r\n if ((process.env.NODE_ENV !== 'production') && inBrowser) {\r\n start = window.performance.now();\r\n startTag = 'intlify-message-resolve-start';\r\n endTag = 'intlify-message-resolve-end';\r\n mark && mark(startTag);\r\n }\r\n if ((format = resolveValue(message, key)) === null) {\r\n // if null, resolve with object key path\r\n format = message[key]; // eslint-disable-line @typescript-eslint/no-explicit-any\r\n }\r\n // for vue-devtools timeline event\r\n if ((process.env.NODE_ENV !== 'production') && inBrowser) {\r\n const end = window.performance.now();\r\n const emitter = context.__v_emitter;\r\n if (emitter && start && format) {\r\n emitter.emit(\"message-resolve\" /* MESSAGE_RESOLVE */, {\r\n type: \"message-resolve\" /* MESSAGE_RESOLVE */,\r\n key,\r\n message: format,\r\n time: end - start,\r\n groupId: `${type}:${key}`\r\n });\r\n }\r\n if (startTag && endTag && mark && measure) {\r\n mark(endTag);\r\n measure('intlify message resolve', startTag, endTag);\r\n }\r\n }\r\n if (isString(format) || isFunction(format))\r\n break;\r\n const missingRet = handleMissing(context, // eslint-disable-line @typescript-eslint/no-explicit-any\r\n key, targetLocale, missingWarn, type);\r\n if (missingRet !== key) {\r\n format = missingRet;\r\n }\r\n from = to;\r\n }\r\n return [format, targetLocale, message];\r\n}\r\nfunction compileMessageFormat(context, key, targetLocale, format, cacheBaseKey, errorDetector) {\r\n const { messageCompiler, warnHtmlMessage } = context;\r\n if (isMessageFunction(format)) {\r\n const msg = format;\r\n msg.locale = msg.locale || targetLocale;\r\n msg.key = msg.key || key;\r\n return msg;\r\n }\r\n if (messageCompiler == null) {\r\n const msg = (() => format);\r\n msg.locale = targetLocale;\r\n msg.key = key;\r\n return msg;\r\n }\r\n // for vue-devtools timeline event\r\n let start = null;\r\n let startTag;\r\n let endTag;\r\n if ((process.env.NODE_ENV !== 'production') && inBrowser) {\r\n start = window.performance.now();\r\n startTag = 'intlify-message-compilation-start';\r\n endTag = 'intlify-message-compilation-end';\r\n mark && mark(startTag);\r\n }\r\n const msg = messageCompiler(format, getCompileOptions(context, targetLocale, cacheBaseKey, format, warnHtmlMessage, errorDetector));\r\n // for vue-devtools timeline event\r\n if ((process.env.NODE_ENV !== 'production') && inBrowser) {\r\n const end = window.performance.now();\r\n const emitter = context.__v_emitter;\r\n if (emitter && start) {\r\n emitter.emit(\"message-compilation\" /* MESSAGE_COMPILATION */, {\r\n type: \"message-compilation\" /* MESSAGE_COMPILATION */,\r\n message: format,\r\n time: end - start,\r\n groupId: `${'translate'}:${key}`\r\n });\r\n }\r\n if (startTag && endTag && mark && measure) {\r\n mark(endTag);\r\n measure('intlify message compilation', startTag, endTag);\r\n }\r\n }\r\n msg.locale = targetLocale;\r\n msg.key = key;\r\n msg.source = format;\r\n return msg;\r\n}\r\nfunction evaluateMessage(context, msg, msgCtx) {\r\n // for vue-devtools timeline event\r\n let start = null;\r\n let startTag;\r\n let endTag;\r\n if ((process.env.NODE_ENV !== 'production') && inBrowser) {\r\n start = window.performance.now();\r\n startTag = 'intlify-message-evaluation-start';\r\n endTag = 'intlify-message-evaluation-end';\r\n mark && mark(startTag);\r\n }\r\n const messaged = msg(msgCtx);\r\n // for vue-devtools timeline event\r\n if ((process.env.NODE_ENV !== 'production') && inBrowser) {\r\n const end = window.performance.now();\r\n const emitter = context.__v_emitter;\r\n if (emitter && start) {\r\n emitter.emit(\"message-evaluation\" /* MESSAGE_EVALUATION */, {\r\n type: \"message-evaluation\" /* MESSAGE_EVALUATION */,\r\n value: messaged,\r\n time: end - start,\r\n groupId: `${'translate'}:${msg.key}`\r\n });\r\n }\r\n if (startTag && endTag && mark && measure) {\r\n mark(endTag);\r\n measure('intlify message evaluation', startTag, endTag);\r\n }\r\n }\r\n return messaged;\r\n}\r\n/** @internal */\r\nfunction parseTranslateArgs(...args) {\r\n const [arg1, arg2, arg3] = args;\r\n const options = {};\r\n if (!isString(arg1) && !isNumber(arg1) && !isMessageFunction(arg1)) {\r\n throw createCoreError(CoreErrorCodes.INVALID_ARGUMENT);\r\n }\r\n // prettier-ignore\r\n const key = isNumber(arg1)\r\n ? String(arg1)\r\n : isMessageFunction(arg1)\r\n ? arg1\r\n : arg1;\r\n if (isNumber(arg2)) {\r\n options.plural = arg2;\r\n }\r\n else if (isString(arg2)) {\r\n options.default = arg2;\r\n }\r\n else if (isPlainObject(arg2) && !isEmptyObject(arg2)) {\r\n options.named = arg2;\r\n }\r\n else if (isArray(arg2)) {\r\n options.list = arg2;\r\n }\r\n if (isNumber(arg3)) {\r\n options.plural = arg3;\r\n }\r\n else if (isString(arg3)) {\r\n options.default = arg3;\r\n }\r\n else if (isPlainObject(arg3)) {\r\n assign(options, arg3);\r\n }\r\n return [key, options];\r\n}\r\nfunction getCompileOptions(context, locale, key, source, warnHtmlMessage, errorDetector) {\r\n return {\r\n warnHtmlMessage,\r\n onError: (err) => {\r\n errorDetector && errorDetector(err);\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n const message = `Message compilation error: ${err.message}`;\r\n const codeFrame = err.location &&\r\n generateCodeFrame(source, err.location.start.offset, err.location.end.offset);\r\n const emitter = context.__v_emitter;\r\n if (emitter) {\r\n emitter.emit(\"compile-error\" /* COMPILE_ERROR */, {\r\n message: source,\r\n error: err.message,\r\n start: err.location && err.location.start.offset,\r\n end: err.location && err.location.end.offset,\r\n groupId: `${'translate'}:${key}`\r\n });\r\n }\r\n console.error(codeFrame ? `${message}\\n${codeFrame}` : message);\r\n }\r\n else {\r\n throw err;\r\n }\r\n },\r\n onCacheKey: (source) => generateFormatCacheKey(locale, key, source)\r\n };\r\n}\r\nfunction getMessageContextOptions(context, locale, message, options) {\r\n const { modifiers, pluralRules, messageResolver: resolveValue, fallbackLocale, fallbackWarn, missingWarn, fallbackContext } = context;\r\n const resolveMessage = (key) => {\r\n let val = resolveValue(message, key);\r\n // fallback to root context\r\n if (val == null && fallbackContext) {\r\n const [, , message] = resolveMessageFormat(fallbackContext, key, locale, fallbackLocale, fallbackWarn, missingWarn);\r\n val = resolveValue(message, key);\r\n }\r\n if (isString(val)) {\r\n let occurred = false;\r\n const errorDetector = () => {\r\n occurred = true;\r\n };\r\n const msg = compileMessageFormat(context, key, locale, val, key, errorDetector);\r\n return !occurred\r\n ? msg\r\n : NOOP_MESSAGE_FUNCTION;\r\n }\r\n else if (isMessageFunction(val)) {\r\n return val;\r\n }\r\n else {\r\n // TODO: should be implemented warning message\r\n return NOOP_MESSAGE_FUNCTION;\r\n }\r\n };\r\n const ctxOptions = {\r\n locale,\r\n modifiers,\r\n pluralRules,\r\n messages: resolveMessage\r\n };\r\n if (context.processor) {\r\n ctxOptions.processor = context.processor;\r\n }\r\n if (options.list) {\r\n ctxOptions.list = options.list;\r\n }\r\n if (options.named) {\r\n ctxOptions.named = options.named;\r\n }\r\n if (isNumber(options.plural)) {\r\n ctxOptions.pluralIndex = options.plural;\r\n }\r\n return ctxOptions;\r\n}\n\nconst intlDefined = typeof Intl !== 'undefined';\r\nconst Availabilities = {\r\n dateTimeFormat: intlDefined && typeof Intl.DateTimeFormat !== 'undefined',\r\n numberFormat: intlDefined && typeof Intl.NumberFormat !== 'undefined'\r\n};\n\n// implementation of `datetime` function\r\nfunction datetime(context, ...args) {\r\n const { datetimeFormats, unresolving, fallbackLocale, onWarn, localeFallbacker } = context;\r\n const { __datetimeFormatters } = context;\r\n if ((process.env.NODE_ENV !== 'production') && !Availabilities.dateTimeFormat) {\r\n onWarn(getWarnMessage(CoreWarnCodes.CANNOT_FORMAT_DATE));\r\n return MISSING_RESOLVE_VALUE;\r\n }\r\n const [key, value, options, overrides] = parseDateTimeArgs(...args);\r\n const missingWarn = isBoolean(options.missingWarn)\r\n ? options.missingWarn\r\n : context.missingWarn;\r\n const fallbackWarn = isBoolean(options.fallbackWarn)\r\n ? options.fallbackWarn\r\n : context.fallbackWarn;\r\n const part = !!options.part;\r\n const locale = isString(options.locale) ? options.locale : context.locale;\r\n const locales = localeFallbacker(context, // eslint-disable-line @typescript-eslint/no-explicit-any\r\n fallbackLocale, locale);\r\n if (!isString(key) || key === '') {\r\n return new Intl.DateTimeFormat(locale, overrides).format(value);\r\n }\r\n // resolve format\r\n let datetimeFormat = {};\r\n let targetLocale;\r\n let format = null;\r\n let from = locale;\r\n let to = null;\r\n const type = 'datetime format';\r\n for (let i = 0; i < locales.length; i++) {\r\n targetLocale = to = locales[i];\r\n if ((process.env.NODE_ENV !== 'production') &&\r\n locale !== targetLocale &&\r\n isTranslateFallbackWarn(fallbackWarn, key)) {\r\n onWarn(getWarnMessage(CoreWarnCodes.FALLBACK_TO_DATE_FORMAT, {\r\n key,\r\n target: targetLocale\r\n }));\r\n }\r\n // for vue-devtools timeline event\r\n if ((process.env.NODE_ENV !== 'production') && locale !== targetLocale) {\r\n const emitter = context.__v_emitter;\r\n if (emitter) {\r\n emitter.emit(\"fallback\" /* FALBACK */, {\r\n type,\r\n key,\r\n from,\r\n to,\r\n groupId: `${type}:${key}`\r\n });\r\n }\r\n }\r\n datetimeFormat =\r\n datetimeFormats[targetLocale] || {};\r\n format = datetimeFormat[key];\r\n if (isPlainObject(format))\r\n break;\r\n handleMissing(context, key, targetLocale, missingWarn, type); // eslint-disable-line @typescript-eslint/no-explicit-any\r\n from = to;\r\n }\r\n // checking format and target locale\r\n if (!isPlainObject(format) || !isString(targetLocale)) {\r\n return unresolving ? NOT_REOSLVED : key;\r\n }\r\n let id = `${targetLocale}__${key}`;\r\n if (!isEmptyObject(overrides)) {\r\n id = `${id}__${JSON.stringify(overrides)}`;\r\n }\r\n let formatter = __datetimeFormatters.get(id);\r\n if (!formatter) {\r\n formatter = new Intl.DateTimeFormat(targetLocale, assign({}, format, overrides));\r\n __datetimeFormatters.set(id, formatter);\r\n }\r\n return !part ? formatter.format(value) : formatter.formatToParts(value);\r\n}\r\n/** @internal */\r\nconst DATETIME_FORMAT_OPTIONS_KEYS = [\r\n 'localeMatcher',\r\n 'weekday',\r\n 'era',\r\n 'year',\r\n 'month',\r\n 'day',\r\n 'hour',\r\n 'minute',\r\n 'second',\r\n 'timeZoneName',\r\n 'formatMatcher',\r\n 'hour12',\r\n 'timeZone',\r\n 'dateStyle',\r\n 'timeStyle',\r\n 'calendar',\r\n 'dayPeriod',\r\n 'numberingSystem',\r\n 'hourCycle',\r\n 'fractionalSecondDigits'\r\n];\r\n/** @internal */\r\nfunction parseDateTimeArgs(...args) {\r\n const [arg1, arg2, arg3, arg4] = args;\r\n const options = {};\r\n let overrides = {};\r\n let value;\r\n if (isString(arg1)) {\r\n // Only allow ISO strings - other date formats are often supported,\r\n // but may cause different results in different browsers.\r\n const matches = arg1.match(/(\\d{4}-\\d{2}-\\d{2})(T|\\s)?(.*)/);\r\n if (!matches) {\r\n throw createCoreError(CoreErrorCodes.INVALID_ISO_DATE_ARGUMENT);\r\n }\r\n // Some browsers can not parse the iso datetime separated by space,\r\n // this is a compromise solution by replace the 'T'/' ' with 'T'\r\n const dateTime = matches[3]\r\n ? matches[3].trim().startsWith('T')\r\n ? `${matches[1].trim()}${matches[3].trim()}`\r\n : `${matches[1].trim()}T${matches[3].trim()}`\r\n : matches[1].trim();\r\n value = new Date(dateTime);\r\n try {\r\n // This will fail if the date is not valid\r\n value.toISOString();\r\n }\r\n catch (e) {\r\n throw createCoreError(CoreErrorCodes.INVALID_ISO_DATE_ARGUMENT);\r\n }\r\n }\r\n else if (isDate(arg1)) {\r\n if (isNaN(arg1.getTime())) {\r\n throw createCoreError(CoreErrorCodes.INVALID_DATE_ARGUMENT);\r\n }\r\n value = arg1;\r\n }\r\n else if (isNumber(arg1)) {\r\n value = arg1;\r\n }\r\n else {\r\n throw createCoreError(CoreErrorCodes.INVALID_ARGUMENT);\r\n }\r\n if (isString(arg2)) {\r\n options.key = arg2;\r\n }\r\n else if (isPlainObject(arg2)) {\r\n Object.keys(arg2).forEach(key => {\r\n if (DATETIME_FORMAT_OPTIONS_KEYS.includes(key)) {\r\n overrides[key] = arg2[key];\r\n }\r\n else {\r\n options[key] = arg2[key];\r\n }\r\n });\r\n }\r\n if (isString(arg3)) {\r\n options.locale = arg3;\r\n }\r\n else if (isPlainObject(arg3)) {\r\n overrides = arg3;\r\n }\r\n if (isPlainObject(arg4)) {\r\n overrides = arg4;\r\n }\r\n return [options.key || '', value, options, overrides];\r\n}\r\n/** @internal */\r\nfunction clearDateTimeFormat(ctx, locale, format) {\r\n const context = ctx;\r\n for (const key in format) {\r\n const id = `${locale}__${key}`;\r\n if (!context.__datetimeFormatters.has(id)) {\r\n continue;\r\n }\r\n context.__datetimeFormatters.delete(id);\r\n }\r\n}\n\n// implementation of `number` function\r\nfunction number(context, ...args) {\r\n const { numberFormats, unresolving, fallbackLocale, onWarn, localeFallbacker } = context;\r\n const { __numberFormatters } = context;\r\n if ((process.env.NODE_ENV !== 'production') && !Availabilities.numberFormat) {\r\n onWarn(getWarnMessage(CoreWarnCodes.CANNOT_FORMAT_NUMBER));\r\n return MISSING_RESOLVE_VALUE;\r\n }\r\n const [key, value, options, overrides] = parseNumberArgs(...args);\r\n const missingWarn = isBoolean(options.missingWarn)\r\n ? options.missingWarn\r\n : context.missingWarn;\r\n const fallbackWarn = isBoolean(options.fallbackWarn)\r\n ? options.fallbackWarn\r\n : context.fallbackWarn;\r\n const part = !!options.part;\r\n const locale = isString(options.locale) ? options.locale : context.locale;\r\n const locales = localeFallbacker(context, // eslint-disable-line @typescript-eslint/no-explicit-any\r\n fallbackLocale, locale);\r\n if (!isString(key) || key === '') {\r\n return new Intl.NumberFormat(locale, overrides).format(value);\r\n }\r\n // resolve format\r\n let numberFormat = {};\r\n let targetLocale;\r\n let format = null;\r\n let from = locale;\r\n let to = null;\r\n const type = 'number format';\r\n for (let i = 0; i < locales.length; i++) {\r\n targetLocale = to = locales[i];\r\n if ((process.env.NODE_ENV !== 'production') &&\r\n locale !== targetLocale &&\r\n isTranslateFallbackWarn(fallbackWarn, key)) {\r\n onWarn(getWarnMessage(CoreWarnCodes.FALLBACK_TO_NUMBER_FORMAT, {\r\n key,\r\n target: targetLocale\r\n }));\r\n }\r\n // for vue-devtools timeline event\r\n if ((process.env.NODE_ENV !== 'production') && locale !== targetLocale) {\r\n const emitter = context.__v_emitter;\r\n if (emitter) {\r\n emitter.emit(\"fallback\" /* FALBACK */, {\r\n type,\r\n key,\r\n from,\r\n to,\r\n groupId: `${type}:${key}`\r\n });\r\n }\r\n }\r\n numberFormat =\r\n numberFormats[targetLocale] || {};\r\n format = numberFormat[key];\r\n if (isPlainObject(format))\r\n break;\r\n handleMissing(context, key, targetLocale, missingWarn, type); // eslint-disable-line @typescript-eslint/no-explicit-any\r\n from = to;\r\n }\r\n // checking format and target locale\r\n if (!isPlainObject(format) || !isString(targetLocale)) {\r\n return unresolving ? NOT_REOSLVED : key;\r\n }\r\n let id = `${targetLocale}__${key}`;\r\n if (!isEmptyObject(overrides)) {\r\n id = `${id}__${JSON.stringify(overrides)}`;\r\n }\r\n let formatter = __numberFormatters.get(id);\r\n if (!formatter) {\r\n formatter = new Intl.NumberFormat(targetLocale, assign({}, format, overrides));\r\n __numberFormatters.set(id, formatter);\r\n }\r\n return !part ? formatter.format(value) : formatter.formatToParts(value);\r\n}\r\n/** @internal */\r\nconst NUMBER_FORMAT_OPTIONS_KEYS = [\r\n 'localeMatcher',\r\n 'style',\r\n 'currency',\r\n 'currencyDisplay',\r\n 'currencySign',\r\n 'useGrouping',\r\n 'minimumIntegerDigits',\r\n 'minimumFractionDigits',\r\n 'maximumFractionDigits',\r\n 'minimumSignificantDigits',\r\n 'maximumSignificantDigits',\r\n 'compactDisplay',\r\n 'notation',\r\n 'signDisplay',\r\n 'unit',\r\n 'unitDisplay',\r\n 'roundingMode',\r\n 'roundingPriority',\r\n 'roundingIncrement',\r\n 'trailingZeroDisplay'\r\n];\r\n/** @internal */\r\nfunction parseNumberArgs(...args) {\r\n const [arg1, arg2, arg3, arg4] = args;\r\n const options = {};\r\n let overrides = {};\r\n if (!isNumber(arg1)) {\r\n throw createCoreError(CoreErrorCodes.INVALID_ARGUMENT);\r\n }\r\n const value = arg1;\r\n if (isString(arg2)) {\r\n options.key = arg2;\r\n }\r\n else if (isPlainObject(arg2)) {\r\n Object.keys(arg2).forEach(key => {\r\n if (NUMBER_FORMAT_OPTIONS_KEYS.includes(key)) {\r\n overrides[key] = arg2[key];\r\n }\r\n else {\r\n options[key] = arg2[key];\r\n }\r\n });\r\n }\r\n if (isString(arg3)) {\r\n options.locale = arg3;\r\n }\r\n else if (isPlainObject(arg3)) {\r\n overrides = arg3;\r\n }\r\n if (isPlainObject(arg4)) {\r\n overrides = arg4;\r\n }\r\n return [options.key || '', value, options, overrides];\r\n}\r\n/** @internal */\r\nfunction clearNumberFormat(ctx, locale, format) {\r\n const context = ctx;\r\n for (const key in format) {\r\n const id = `${locale}__${key}`;\r\n if (!context.__numberFormatters.has(id)) {\r\n continue;\r\n }\r\n context.__numberFormatters.delete(id);\r\n }\r\n}\n\n// TODO: we could not exports for Node native ES Moudles yet...\r\n{\r\n if (typeof __INTLIFY_PROD_DEVTOOLS__ !== 'boolean') {\r\n getGlobalThis().__INTLIFY_PROD_DEVTOOLS__ = false;\r\n }\r\n}\n\nexport { CoreErrorCodes, CoreWarnCodes, DATETIME_FORMAT_OPTIONS_KEYS, DEFAULT_LOCALE, DEFAULT_MESSAGE_DATA_TYPE, MISSING_RESOLVE_VALUE, NOT_REOSLVED, NUMBER_FORMAT_OPTIONS_KEYS, VERSION, clearCompileCache, clearDateTimeFormat, clearNumberFormat, compileToFunction, createCoreContext, createCoreError, createMessageContext, datetime, fallbackWithLocaleChain, fallbackWithSimple, getAdditionalMeta, getDevToolsHook, getFallbackContext, getWarnMessage, handleMissing, initI18nDevTools, isMessageFunction, isTranslateFallbackWarn, isTranslateMissingWarn, number, parse, parseDateTimeArgs, parseNumberArgs, parseTranslateArgs, registerLocaleFallbacker, registerMessageCompiler, registerMessageResolver, resolveValue, resolveWithKeyValue, setAdditionalMeta, setDevToolsHook, setFallbackContext, translate, translateDevTools, updateFallbackLocale };\n","export function getDevtoolsGlobalHook() {\n return getTarget().__VUE_DEVTOOLS_GLOBAL_HOOK__;\n}\nexport function getTarget() {\n // @ts-ignore\n return (typeof navigator !== 'undefined' && typeof window !== 'undefined')\n ? window\n : typeof global !== 'undefined'\n ? global\n : {};\n}\nexport const isProxyAvailable = typeof Proxy === 'function';\n","let supported;\nlet perf;\nexport function isPerformanceSupported() {\n var _a;\n if (supported !== undefined) {\n return supported;\n }\n if (typeof window !== 'undefined' && window.performance) {\n supported = true;\n perf = window.performance;\n }\n else if (typeof global !== 'undefined' && ((_a = global.perf_hooks) === null || _a === void 0 ? void 0 : _a.performance)) {\n supported = true;\n perf = global.perf_hooks.performance;\n }\n else {\n supported = false;\n }\n return supported;\n}\nexport function now() {\n return isPerformanceSupported() ? perf.now() : Date.now();\n}\n","import { HOOK_PLUGIN_SETTINGS_SET } from './const.js';\nimport { now } from './time.js';\nexport class ApiProxy {\n constructor(plugin, hook) {\n this.target = null;\n this.targetQueue = [];\n this.onQueue = [];\n this.plugin = plugin;\n this.hook = hook;\n const defaultSettings = {};\n if (plugin.settings) {\n for (const id in plugin.settings) {\n const item = plugin.settings[id];\n defaultSettings[id] = item.defaultValue;\n }\n }\n const localSettingsSaveId = `__vue-devtools-plugin-settings__${plugin.id}`;\n let currentSettings = Object.assign({}, defaultSettings);\n try {\n const raw = localStorage.getItem(localSettingsSaveId);\n const data = JSON.parse(raw);\n Object.assign(currentSettings, data);\n }\n catch (e) {\n // noop\n }\n this.fallbacks = {\n getSettings() {\n return currentSettings;\n },\n setSettings(value) {\n try {\n localStorage.setItem(localSettingsSaveId, JSON.stringify(value));\n }\n catch (e) {\n // noop\n }\n currentSettings = value;\n },\n now() {\n return now();\n },\n };\n if (hook) {\n hook.on(HOOK_PLUGIN_SETTINGS_SET, (pluginId, value) => {\n if (pluginId === this.plugin.id) {\n this.fallbacks.setSettings(value);\n }\n });\n }\n this.proxiedOn = new Proxy({}, {\n get: (_target, prop) => {\n if (this.target) {\n return this.target.on[prop];\n }\n else {\n return (...args) => {\n this.onQueue.push({\n method: prop,\n args,\n });\n };\n }\n },\n });\n this.proxiedTarget = new Proxy({}, {\n get: (_target, prop) => {\n if (this.target) {\n return this.target[prop];\n }\n else if (prop === 'on') {\n return this.proxiedOn;\n }\n else if (Object.keys(this.fallbacks).includes(prop)) {\n return (...args) => {\n this.targetQueue.push({\n method: prop,\n args,\n resolve: () => { },\n });\n return this.fallbacks[prop](...args);\n };\n }\n else {\n return (...args) => {\n return new Promise(resolve => {\n this.targetQueue.push({\n method: prop,\n args,\n resolve,\n });\n });\n };\n }\n },\n });\n }\n async setRealTarget(target) {\n this.target = target;\n for (const item of this.onQueue) {\n this.target.on[item.method](...item.args);\n }\n for (const item of this.targetQueue) {\n item.resolve(await this.target[item.method](...item.args));\n }\n }\n}\n","export const HOOK_SETUP = 'devtools-plugin:setup';\nexport const HOOK_PLUGIN_SETTINGS_SET = 'plugin:settings:set';\n","import { getTarget, getDevtoolsGlobalHook, isProxyAvailable } from './env.js';\nimport { HOOK_SETUP } from './const.js';\nimport { ApiProxy } from './proxy.js';\nexport * from './api/index.js';\nexport * from './plugin.js';\nexport * from './time.js';\nexport function setupDevtoolsPlugin(pluginDescriptor, setupFn) {\n const descriptor = pluginDescriptor;\n const target = getTarget();\n const hook = getDevtoolsGlobalHook();\n const enableProxy = isProxyAvailable && descriptor.enableEarlyProxy;\n if (hook && (target.__VUE_DEVTOOLS_PLUGIN_API_AVAILABLE__ || !enableProxy)) {\n hook.emit(HOOK_SETUP, pluginDescriptor, setupFn);\n }\n else {\n const proxy = enableProxy ? new ApiProxy(descriptor, hook) : null;\n const list = target.__VUE_DEVTOOLS_PLUGINS__ = target.__VUE_DEVTOOLS_PLUGINS__ || [];\n list.push({\n pluginDescriptor: descriptor,\n setupFn,\n proxy,\n });\n if (proxy)\n setupFn(proxy.proxiedTarget);\n }\n}\n","/*!\n * vue-devtools v9.2.2\n * (c) 2022 kazuya kawaguchi\n * Released under the MIT License.\n */\nconst VueDevToolsLabels = {\r\n [\"vue-devtools-plugin-vue-i18n\" /* PLUGIN */]: 'Vue I18n devtools',\r\n [\"vue-i18n-resource-inspector\" /* CUSTOM_INSPECTOR */]: 'I18n Resources',\r\n [\"vue-i18n-timeline\" /* TIMELINE */]: 'Vue I18n'\r\n};\r\nconst VueDevToolsPlaceholders = {\r\n [\"vue-i18n-resource-inspector\" /* CUSTOM_INSPECTOR */]: 'Search for scopes ...'\r\n};\r\nconst VueDevToolsTimelineColors = {\r\n [\"vue-i18n-timeline\" /* TIMELINE */]: 0xffcd19\r\n};\n\nexport { VueDevToolsLabels, VueDevToolsPlaceholders, VueDevToolsTimelineColors };\n","/*!\n * vue-i18n v9.2.2\n * (c) 2022 kazuya kawaguchi\n * Released under the MIT License.\n */\nimport { getGlobalThis, format, makeSymbol, isPlainObject, isArray, isString, hasOwn, isObject, isBoolean, isRegExp, isFunction, inBrowser, assign, isNumber, warn, createEmitter, isEmptyObject } from '@intlify/shared';\nimport { CoreWarnCodes, CompileErrorCodes, createCompileError, DEFAULT_LOCALE, updateFallbackLocale, setFallbackContext, createCoreContext, clearDateTimeFormat, clearNumberFormat, setAdditionalMeta, getFallbackContext, NOT_REOSLVED, isTranslateFallbackWarn, isTranslateMissingWarn, parseTranslateArgs, translate, MISSING_RESOLVE_VALUE, parseDateTimeArgs, datetime, parseNumberArgs, number, fallbackWithLocaleChain, NUMBER_FORMAT_OPTIONS_KEYS, DATETIME_FORMAT_OPTIONS_KEYS, registerMessageCompiler, compileToFunction, registerMessageResolver, resolveValue, registerLocaleFallbacker, setDevToolsHook } from '@intlify/core-base';\nimport { createVNode, Text, ref, computed, watch, getCurrentInstance, Fragment, h, effectScope, inject, onMounted, onUnmounted, shallowRef, onBeforeMount, isRef } from 'vue';\nimport { setupDevtoolsPlugin } from '@vue/devtools-api';\nimport { VueDevToolsLabels, VueDevToolsPlaceholders, VueDevToolsTimelineColors } from '@intlify/vue-devtools';\n\n/**\r\n * Vue I18n Version\r\n *\r\n * @remarks\r\n * Semver format. Same format as the package.json `version` field.\r\n *\r\n * @VueI18nGeneral\r\n */\r\nconst VERSION = '9.2.2';\r\n/**\r\n * This is only called in esm-bundler builds.\r\n * istanbul-ignore-next\r\n */\r\nfunction initFeatureFlags() {\r\n let needWarn = false;\r\n if (typeof __VUE_I18N_FULL_INSTALL__ !== 'boolean') {\r\n needWarn = true;\r\n getGlobalThis().__VUE_I18N_FULL_INSTALL__ = true;\r\n }\r\n if (typeof __VUE_I18N_LEGACY_API__ !== 'boolean') {\r\n needWarn = true;\r\n getGlobalThis().__VUE_I18N_LEGACY_API__ = true;\r\n }\r\n if (typeof __INTLIFY_PROD_DEVTOOLS__ !== 'boolean') {\r\n getGlobalThis().__INTLIFY_PROD_DEVTOOLS__ = false;\r\n }\r\n if ((process.env.NODE_ENV !== 'production') && needWarn) {\r\n console.warn(`You are running the esm-bundler build of vue-i18n. It is recommended to ` +\r\n `configure your bundler to explicitly replace feature flag globals ` +\r\n `with boolean literals to get proper tree-shaking in the final bundle.`);\r\n }\r\n}\n\nlet code$1 = CoreWarnCodes.__EXTEND_POINT__;\r\nconst inc$1 = () => ++code$1;\r\nconst I18nWarnCodes = {\r\n FALLBACK_TO_ROOT: code$1,\r\n NOT_SUPPORTED_PRESERVE: inc$1(),\r\n NOT_SUPPORTED_FORMATTER: inc$1(),\r\n NOT_SUPPORTED_PRESERVE_DIRECTIVE: inc$1(),\r\n NOT_SUPPORTED_GET_CHOICE_INDEX: inc$1(),\r\n COMPONENT_NAME_LEGACY_COMPATIBLE: inc$1(),\r\n NOT_FOUND_PARENT_SCOPE: inc$1() // 13\r\n};\r\nconst warnMessages = {\r\n [I18nWarnCodes.FALLBACK_TO_ROOT]: `Fall back to {type} '{key}' with root locale.`,\r\n [I18nWarnCodes.NOT_SUPPORTED_PRESERVE]: `Not supported 'preserve'.`,\r\n [I18nWarnCodes.NOT_SUPPORTED_FORMATTER]: `Not supported 'formatter'.`,\r\n [I18nWarnCodes.NOT_SUPPORTED_PRESERVE_DIRECTIVE]: `Not supported 'preserveDirectiveContent'.`,\r\n [I18nWarnCodes.NOT_SUPPORTED_GET_CHOICE_INDEX]: `Not supported 'getChoiceIndex'.`,\r\n [I18nWarnCodes.COMPONENT_NAME_LEGACY_COMPATIBLE]: `Component name legacy compatible: '{name}' -> 'i18n'`,\r\n [I18nWarnCodes.NOT_FOUND_PARENT_SCOPE]: `Not found parent scope. use the global scope.`\r\n};\r\nfunction getWarnMessage(code, ...args) {\r\n return format(warnMessages[code], ...args);\r\n}\n\nlet code = CompileErrorCodes.__EXTEND_POINT__;\r\nconst inc = () => ++code;\r\nconst I18nErrorCodes = {\r\n // composer module errors\r\n UNEXPECTED_RETURN_TYPE: code,\r\n // legacy module errors\r\n INVALID_ARGUMENT: inc(),\r\n // i18n module errors\r\n MUST_BE_CALL_SETUP_TOP: inc(),\r\n NOT_INSLALLED: inc(),\r\n NOT_AVAILABLE_IN_LEGACY_MODE: inc(),\r\n // directive module errors\r\n REQUIRED_VALUE: inc(),\r\n INVALID_VALUE: inc(),\r\n // vue-devtools errors\r\n CANNOT_SETUP_VUE_DEVTOOLS_PLUGIN: inc(),\r\n NOT_INSLALLED_WITH_PROVIDE: inc(),\r\n // unexpected error\r\n UNEXPECTED_ERROR: inc(),\r\n // not compatible legacy vue-i18n constructor\r\n NOT_COMPATIBLE_LEGACY_VUE_I18N: inc(),\r\n // bridge support vue 2.x only\r\n BRIDGE_SUPPORT_VUE_2_ONLY: inc(),\r\n // need to define `i18n` option in `allowComposition: true` and `useScope: 'local' at `useI18n``\r\n MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION: inc(),\r\n // Not available Compostion API in Legacy API mode. Please make sure that the legacy API mode is working properly\r\n NOT_AVAILABLE_COMPOSITION_IN_LEGACY: inc(),\r\n // for enhancement\r\n __EXTEND_POINT__: inc() // 29\r\n};\r\nfunction createI18nError(code, ...args) {\r\n return createCompileError(code, null, (process.env.NODE_ENV !== 'production') ? { messages: errorMessages, args } : undefined);\r\n}\r\nconst errorMessages = {\r\n [I18nErrorCodes.UNEXPECTED_RETURN_TYPE]: 'Unexpected return type in composer',\r\n [I18nErrorCodes.INVALID_ARGUMENT]: 'Invalid argument',\r\n [I18nErrorCodes.MUST_BE_CALL_SETUP_TOP]: 'Must be called at the top of a `setup` function',\r\n [I18nErrorCodes.NOT_INSLALLED]: 'Need to install with `app.use` function',\r\n [I18nErrorCodes.UNEXPECTED_ERROR]: 'Unexpected error',\r\n [I18nErrorCodes.NOT_AVAILABLE_IN_LEGACY_MODE]: 'Not available in legacy mode',\r\n [I18nErrorCodes.REQUIRED_VALUE]: `Required in value: {0}`,\r\n [I18nErrorCodes.INVALID_VALUE]: `Invalid value`,\r\n [I18nErrorCodes.CANNOT_SETUP_VUE_DEVTOOLS_PLUGIN]: `Cannot setup vue-devtools plugin`,\r\n [I18nErrorCodes.NOT_INSLALLED_WITH_PROVIDE]: 'Need to install with `provide` function',\r\n [I18nErrorCodes.NOT_COMPATIBLE_LEGACY_VUE_I18N]: 'Not compatible legacy VueI18n.',\r\n [I18nErrorCodes.BRIDGE_SUPPORT_VUE_2_ONLY]: 'vue-i18n-bridge support Vue 2.x only',\r\n [I18nErrorCodes.MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION]: 'Must define ‘i18n’ option or custom block in Composition API with using local scope in Legacy API mode',\r\n [I18nErrorCodes.NOT_AVAILABLE_COMPOSITION_IN_LEGACY]: 'Not available Compostion API in Legacy API mode. Please make sure that the legacy API mode is working properly'\r\n};\n\nconst TransrateVNodeSymbol = \r\n/* #__PURE__*/ makeSymbol('__transrateVNode');\r\nconst DatetimePartsSymbol = /* #__PURE__*/ makeSymbol('__datetimeParts');\r\nconst NumberPartsSymbol = /* #__PURE__*/ makeSymbol('__numberParts');\r\nconst EnableEmitter = /* #__PURE__*/ makeSymbol('__enableEmitter');\r\nconst DisableEmitter = /* #__PURE__*/ makeSymbol('__disableEmitter');\r\nconst SetPluralRulesSymbol = makeSymbol('__setPluralRules');\r\nmakeSymbol('__intlifyMeta');\r\nconst InejctWithOption = /* #__PURE__*/ makeSymbol('__injectWithOption');\r\nconst __VUE_I18N_BRIDGE__ = '__VUE_I18N_BRIDGE__';\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\r\n/**\r\n * Transform flat json in obj to normal json in obj\r\n */\r\nfunction handleFlatJson(obj) {\r\n // check obj\r\n if (!isObject(obj)) {\r\n return obj;\r\n }\r\n for (const key in obj) {\r\n // check key\r\n if (!hasOwn(obj, key)) {\r\n continue;\r\n }\r\n // handle for normal json\r\n if (!key.includes('.')) {\r\n // recursive process value if value is also a object\r\n if (isObject(obj[key])) {\r\n handleFlatJson(obj[key]);\r\n }\r\n }\r\n // handle for flat json, transform to normal json\r\n else {\r\n // go to the last object\r\n const subKeys = key.split('.');\r\n const lastIndex = subKeys.length - 1;\r\n let currentObj = obj;\r\n for (let i = 0; i < lastIndex; i++) {\r\n if (!(subKeys[i] in currentObj)) {\r\n currentObj[subKeys[i]] = {};\r\n }\r\n currentObj = currentObj[subKeys[i]];\r\n }\r\n // update last object value, delete old property\r\n currentObj[subKeys[lastIndex]] = obj[key];\r\n delete obj[key];\r\n // recursive process value if value is also a object\r\n if (isObject(currentObj[subKeys[lastIndex]])) {\r\n handleFlatJson(currentObj[subKeys[lastIndex]]);\r\n }\r\n }\r\n }\r\n return obj;\r\n}\r\nfunction getLocaleMessages(locale, options) {\r\n const { messages, __i18n, messageResolver, flatJson } = options;\r\n // prettier-ignore\r\n const ret = isPlainObject(messages)\r\n ? messages\r\n : isArray(__i18n)\r\n ? {}\r\n : { [locale]: {} };\r\n // merge locale messages of i18n custom block\r\n if (isArray(__i18n)) {\r\n __i18n.forEach(custom => {\r\n if ('locale' in custom && 'resource' in custom) {\r\n const { locale, resource } = custom;\r\n if (locale) {\r\n ret[locale] = ret[locale] || {};\r\n deepCopy(resource, ret[locale]);\r\n }\r\n else {\r\n deepCopy(resource, ret);\r\n }\r\n }\r\n else {\r\n isString(custom) && deepCopy(JSON.parse(custom), ret);\r\n }\r\n });\r\n }\r\n // handle messages for flat json\r\n if (messageResolver == null && flatJson) {\r\n for (const key in ret) {\r\n if (hasOwn(ret, key)) {\r\n handleFlatJson(ret[key]);\r\n }\r\n }\r\n }\r\n return ret;\r\n}\r\nconst isNotObjectOrIsArray = (val) => !isObject(val) || isArray(val);\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\r\nfunction deepCopy(src, des) {\r\n // src and des should both be objects, and non of then can be a array\r\n if (isNotObjectOrIsArray(src) || isNotObjectOrIsArray(des)) {\r\n throw createI18nError(I18nErrorCodes.INVALID_VALUE);\r\n }\r\n for (const key in src) {\r\n if (hasOwn(src, key)) {\r\n if (isNotObjectOrIsArray(src[key]) || isNotObjectOrIsArray(des[key])) {\r\n // replace with src[key] when:\r\n // src[key] or des[key] is not a object, or\r\n // src[key] or des[key] is a array\r\n des[key] = src[key];\r\n }\r\n else {\r\n // src[key] and des[key] are both object, merge them\r\n deepCopy(src[key], des[key]);\r\n }\r\n }\r\n }\r\n}\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nfunction getComponentOptions(instance) {\r\n return instance.type ;\r\n}\r\nfunction adjustI18nResources(global, options, componentOptions // eslint-disable-line @typescript-eslint/no-explicit-any\r\n) {\r\n let messages = isObject(options.messages) ? options.messages : {};\r\n if ('__i18nGlobal' in componentOptions) {\r\n messages = getLocaleMessages(global.locale.value, {\r\n messages,\r\n __i18n: componentOptions.__i18nGlobal\r\n });\r\n }\r\n // merge locale messages\r\n const locales = Object.keys(messages);\r\n if (locales.length) {\r\n locales.forEach(locale => {\r\n global.mergeLocaleMessage(locale, messages[locale]);\r\n });\r\n }\r\n {\r\n // merge datetime formats\r\n if (isObject(options.datetimeFormats)) {\r\n const locales = Object.keys(options.datetimeFormats);\r\n if (locales.length) {\r\n locales.forEach(locale => {\r\n global.mergeDateTimeFormat(locale, options.datetimeFormats[locale]);\r\n });\r\n }\r\n }\r\n // merge number formats\r\n if (isObject(options.numberFormats)) {\r\n const locales = Object.keys(options.numberFormats);\r\n if (locales.length) {\r\n locales.forEach(locale => {\r\n global.mergeNumberFormat(locale, options.numberFormats[locale]);\r\n });\r\n }\r\n }\r\n }\r\n}\r\nfunction createTextNode(key) {\r\n return createVNode(Text, null, key, 0)\r\n ;\r\n}\r\n/* eslint-enable @typescript-eslint/no-explicit-any */\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\r\n// extend VNode interface\r\nconst DEVTOOLS_META = '__INTLIFY_META__';\r\nlet composerID = 0;\r\nfunction defineCoreMissingHandler(missing) {\r\n return ((ctx, locale, key, type) => {\r\n return missing(locale, key, getCurrentInstance() || undefined, type);\r\n });\r\n}\r\n// for Intlify DevTools\r\nconst getMetaInfo = () => {\r\n const instance = getCurrentInstance();\r\n let meta = null; // eslint-disable-line @typescript-eslint/no-explicit-any\r\n return instance && (meta = getComponentOptions(instance)[DEVTOOLS_META])\r\n ? { [DEVTOOLS_META]: meta } // eslint-disable-line @typescript-eslint/no-explicit-any\r\n : null;\r\n};\r\n/**\r\n * Create composer interface factory\r\n *\r\n * @internal\r\n */\r\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\r\nfunction createComposer(options = {}, VueI18nLegacy) {\r\n const { __root } = options;\r\n const _isGlobal = __root === undefined;\r\n let _inheritLocale = isBoolean(options.inheritLocale)\r\n ? options.inheritLocale\r\n : true;\r\n const _locale = ref(\r\n // prettier-ignore\r\n __root && _inheritLocale\r\n ? __root.locale.value\r\n : isString(options.locale)\r\n ? options.locale\r\n : DEFAULT_LOCALE);\r\n const _fallbackLocale = ref(\r\n // prettier-ignore\r\n __root && _inheritLocale\r\n ? __root.fallbackLocale.value\r\n : isString(options.fallbackLocale) ||\r\n isArray(options.fallbackLocale) ||\r\n isPlainObject(options.fallbackLocale) ||\r\n options.fallbackLocale === false\r\n ? options.fallbackLocale\r\n : _locale.value);\r\n const _messages = ref(getLocaleMessages(_locale.value, options));\r\n // prettier-ignore\r\n const _datetimeFormats = ref(isPlainObject(options.datetimeFormats)\r\n ? options.datetimeFormats\r\n : { [_locale.value]: {} })\r\n ;\r\n // prettier-ignore\r\n const _numberFormats = ref(isPlainObject(options.numberFormats)\r\n ? options.numberFormats\r\n : { [_locale.value]: {} })\r\n ;\r\n // warning suppress options\r\n // prettier-ignore\r\n let _missingWarn = __root\r\n ? __root.missingWarn\r\n : isBoolean(options.missingWarn) || isRegExp(options.missingWarn)\r\n ? options.missingWarn\r\n : true;\r\n // prettier-ignore\r\n let _fallbackWarn = __root\r\n ? __root.fallbackWarn\r\n : isBoolean(options.fallbackWarn) || isRegExp(options.fallbackWarn)\r\n ? options.fallbackWarn\r\n : true;\r\n // prettier-ignore\r\n let _fallbackRoot = __root\r\n ? __root.fallbackRoot\r\n : isBoolean(options.fallbackRoot)\r\n ? options.fallbackRoot\r\n : true;\r\n // configure fall back to root\r\n let _fallbackFormat = !!options.fallbackFormat;\r\n // runtime missing\r\n let _missing = isFunction(options.missing) ? options.missing : null;\r\n let _runtimeMissing = isFunction(options.missing)\r\n ? defineCoreMissingHandler(options.missing)\r\n : null;\r\n // postTranslation handler\r\n let _postTranslation = isFunction(options.postTranslation)\r\n ? options.postTranslation\r\n : null;\r\n // prettier-ignore\r\n let _warnHtmlMessage = __root\r\n ? __root.warnHtmlMessage\r\n : isBoolean(options.warnHtmlMessage)\r\n ? options.warnHtmlMessage\r\n : true;\r\n let _escapeParameter = !!options.escapeParameter;\r\n // custom linked modifiers\r\n // prettier-ignore\r\n const _modifiers = __root\r\n ? __root.modifiers\r\n : isPlainObject(options.modifiers)\r\n ? options.modifiers\r\n : {};\r\n // pluralRules\r\n let _pluralRules = options.pluralRules || (__root && __root.pluralRules);\r\n // runtime context\r\n // eslint-disable-next-line prefer-const\r\n let _context;\r\n const getCoreContext = () => {\r\n _isGlobal && setFallbackContext(null);\r\n const ctxOptions = {\r\n version: VERSION,\r\n locale: _locale.value,\r\n fallbackLocale: _fallbackLocale.value,\r\n messages: _messages.value,\r\n modifiers: _modifiers,\r\n pluralRules: _pluralRules,\r\n missing: _runtimeMissing === null ? undefined : _runtimeMissing,\r\n missingWarn: _missingWarn,\r\n fallbackWarn: _fallbackWarn,\r\n fallbackFormat: _fallbackFormat,\r\n unresolving: true,\r\n postTranslation: _postTranslation === null ? undefined : _postTranslation,\r\n warnHtmlMessage: _warnHtmlMessage,\r\n escapeParameter: _escapeParameter,\r\n messageResolver: options.messageResolver,\r\n __meta: { framework: 'vue' }\r\n };\r\n {\r\n ctxOptions.datetimeFormats = _datetimeFormats.value;\r\n ctxOptions.numberFormats = _numberFormats.value;\r\n ctxOptions.__datetimeFormatters = isPlainObject(_context)\r\n ? _context.__datetimeFormatters\r\n : undefined;\r\n ctxOptions.__numberFormatters = isPlainObject(_context)\r\n ? _context.__numberFormatters\r\n : undefined;\r\n }\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n ctxOptions.__v_emitter = isPlainObject(_context)\r\n ? _context.__v_emitter\r\n : undefined;\r\n }\r\n const ctx = createCoreContext(ctxOptions);\r\n _isGlobal && setFallbackContext(ctx);\r\n return ctx;\r\n };\r\n _context = getCoreContext();\r\n updateFallbackLocale(_context, _locale.value, _fallbackLocale.value);\r\n // track reactivity\r\n function trackReactivityValues() {\r\n return [\r\n _locale.value,\r\n _fallbackLocale.value,\r\n _messages.value,\r\n _datetimeFormats.value,\r\n _numberFormats.value\r\n ]\r\n ;\r\n }\r\n // locale\r\n const locale = computed({\r\n get: () => _locale.value,\r\n set: val => {\r\n _locale.value = val;\r\n _context.locale = _locale.value;\r\n }\r\n });\r\n // fallbackLocale\r\n const fallbackLocale = computed({\r\n get: () => _fallbackLocale.value,\r\n set: val => {\r\n _fallbackLocale.value = val;\r\n _context.fallbackLocale = _fallbackLocale.value;\r\n updateFallbackLocale(_context, _locale.value, val);\r\n }\r\n });\r\n // messages\r\n const messages = computed(() => _messages.value);\r\n // datetimeFormats\r\n const datetimeFormats = /* #__PURE__*/ computed(() => _datetimeFormats.value);\r\n // numberFormats\r\n const numberFormats = /* #__PURE__*/ computed(() => _numberFormats.value);\r\n // getPostTranslationHandler\r\n function getPostTranslationHandler() {\r\n return isFunction(_postTranslation) ? _postTranslation : null;\r\n }\r\n // setPostTranslationHandler\r\n function setPostTranslationHandler(handler) {\r\n _postTranslation = handler;\r\n _context.postTranslation = handler;\r\n }\r\n // getMissingHandler\r\n function getMissingHandler() {\r\n return _missing;\r\n }\r\n // setMissingHandler\r\n function setMissingHandler(handler) {\r\n if (handler !== null) {\r\n _runtimeMissing = defineCoreMissingHandler(handler);\r\n }\r\n _missing = handler;\r\n _context.missing = _runtimeMissing;\r\n }\r\n function isResolvedTranslateMessage(type, arg // eslint-disable-line @typescript-eslint/no-explicit-any\r\n ) {\r\n return type !== 'translate' || !arg.resolvedMessage;\r\n }\r\n const wrapWithDeps = (fn, argumentParser, warnType, fallbackSuccess, fallbackFail, successCondition) => {\r\n trackReactivityValues(); // track reactive dependency\r\n // NOTE: experimental !!\r\n let ret;\r\n if ((process.env.NODE_ENV !== 'production') || __INTLIFY_PROD_DEVTOOLS__) {\r\n try {\r\n setAdditionalMeta(getMetaInfo());\r\n if (!_isGlobal) {\r\n _context.fallbackContext = __root\r\n ? getFallbackContext()\r\n : undefined;\r\n }\r\n ret = fn(_context);\r\n }\r\n finally {\r\n setAdditionalMeta(null);\r\n if (!_isGlobal) {\r\n _context.fallbackContext = undefined;\r\n }\r\n }\r\n }\r\n else {\r\n ret = fn(_context);\r\n }\r\n if (isNumber(ret) && ret === NOT_REOSLVED) {\r\n const [key, arg2] = argumentParser();\r\n if ((process.env.NODE_ENV !== 'production') &&\r\n __root &&\r\n isString(key) &&\r\n isResolvedTranslateMessage(warnType, arg2)) {\r\n if (_fallbackRoot &&\r\n (isTranslateFallbackWarn(_fallbackWarn, key) ||\r\n isTranslateMissingWarn(_missingWarn, key))) {\r\n warn(getWarnMessage(I18nWarnCodes.FALLBACK_TO_ROOT, {\r\n key,\r\n type: warnType\r\n }));\r\n }\r\n // for vue-devtools timeline event\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n const { __v_emitter: emitter } = _context;\r\n if (emitter && _fallbackRoot) {\r\n emitter.emit(\"fallback\" /* FALBACK */, {\r\n type: warnType,\r\n key,\r\n to: 'global',\r\n groupId: `${warnType}:${key}`\r\n });\r\n }\r\n }\r\n }\r\n return __root && _fallbackRoot\r\n ? fallbackSuccess(__root)\r\n : fallbackFail(key);\r\n }\r\n else if (successCondition(ret)) {\r\n return ret;\r\n }\r\n else {\r\n /* istanbul ignore next */\r\n throw createI18nError(I18nErrorCodes.UNEXPECTED_RETURN_TYPE);\r\n }\r\n };\r\n // t\r\n function t(...args) {\r\n return wrapWithDeps(context => Reflect.apply(translate, null, [context, ...args]), () => parseTranslateArgs(...args), 'translate', root => Reflect.apply(root.t, root, [...args]), key => key, val => isString(val));\r\n }\r\n // rt\r\n function rt(...args) {\r\n const [arg1, arg2, arg3] = args;\r\n if (arg3 && !isObject(arg3)) {\r\n throw createI18nError(I18nErrorCodes.INVALID_ARGUMENT);\r\n }\r\n return t(...[arg1, arg2, assign({ resolvedMessage: true }, arg3 || {})]);\r\n }\r\n // d\r\n function d(...args) {\r\n return wrapWithDeps(context => Reflect.apply(datetime, null, [context, ...args]), () => parseDateTimeArgs(...args), 'datetime format', root => Reflect.apply(root.d, root, [...args]), () => MISSING_RESOLVE_VALUE, val => isString(val));\r\n }\r\n // n\r\n function n(...args) {\r\n return wrapWithDeps(context => Reflect.apply(number, null, [context, ...args]), () => parseNumberArgs(...args), 'number format', root => Reflect.apply(root.n, root, [...args]), () => MISSING_RESOLVE_VALUE, val => isString(val));\r\n }\r\n // for custom processor\r\n function normalize(values) {\r\n return values.map(val => isString(val) || isNumber(val) || isBoolean(val)\r\n ? createTextNode(String(val))\r\n : val);\r\n }\r\n const interpolate = (val) => val;\r\n const processor = {\r\n normalize,\r\n interpolate,\r\n type: 'vnode'\r\n };\r\n // transrateVNode, using for `i18n-t` component\r\n function transrateVNode(...args) {\r\n return wrapWithDeps(context => {\r\n let ret;\r\n const _context = context;\r\n try {\r\n _context.processor = processor;\r\n ret = Reflect.apply(translate, null, [_context, ...args]);\r\n }\r\n finally {\r\n _context.processor = null;\r\n }\r\n return ret;\r\n }, () => parseTranslateArgs(...args), 'translate', \r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n root => root[TransrateVNodeSymbol](...args), key => [createTextNode(key)], val => isArray(val));\r\n }\r\n // numberParts, using for `i18n-n` component\r\n function numberParts(...args) {\r\n return wrapWithDeps(context => Reflect.apply(number, null, [context, ...args]), () => parseNumberArgs(...args), 'number format', \r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n root => root[NumberPartsSymbol](...args), () => [], val => isString(val) || isArray(val));\r\n }\r\n // datetimeParts, using for `i18n-d` component\r\n function datetimeParts(...args) {\r\n return wrapWithDeps(context => Reflect.apply(datetime, null, [context, ...args]), () => parseDateTimeArgs(...args), 'datetime format', \r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n root => root[DatetimePartsSymbol](...args), () => [], val => isString(val) || isArray(val));\r\n }\r\n function setPluralRules(rules) {\r\n _pluralRules = rules;\r\n _context.pluralRules = _pluralRules;\r\n }\r\n // te\r\n function te(key, locale) {\r\n const targetLocale = isString(locale) ? locale : _locale.value;\r\n const message = getLocaleMessage(targetLocale);\r\n return _context.messageResolver(message, key) !== null;\r\n }\r\n function resolveMessages(key) {\r\n let messages = null;\r\n const locales = fallbackWithLocaleChain(_context, _fallbackLocale.value, _locale.value);\r\n for (let i = 0; i < locales.length; i++) {\r\n const targetLocaleMessages = _messages.value[locales[i]] || {};\r\n const messageValue = _context.messageResolver(targetLocaleMessages, key);\r\n if (messageValue != null) {\r\n messages = messageValue;\r\n break;\r\n }\r\n }\r\n return messages;\r\n }\r\n // tm\r\n function tm(key) {\r\n const messages = resolveMessages(key);\r\n // prettier-ignore\r\n return messages != null\r\n ? messages\r\n : __root\r\n ? __root.tm(key) || {}\r\n : {};\r\n }\r\n // getLocaleMessage\r\n function getLocaleMessage(locale) {\r\n return (_messages.value[locale] || {});\r\n }\r\n // setLocaleMessage\r\n function setLocaleMessage(locale, message) {\r\n _messages.value[locale] = message;\r\n _context.messages = _messages.value;\r\n }\r\n // mergeLocaleMessage\r\n function mergeLocaleMessage(locale, message) {\r\n _messages.value[locale] = _messages.value[locale] || {};\r\n deepCopy(message, _messages.value[locale]);\r\n _context.messages = _messages.value;\r\n }\r\n // getDateTimeFormat\r\n function getDateTimeFormat(locale) {\r\n return _datetimeFormats.value[locale] || {};\r\n }\r\n // setDateTimeFormat\r\n function setDateTimeFormat(locale, format) {\r\n _datetimeFormats.value[locale] = format;\r\n _context.datetimeFormats = _datetimeFormats.value;\r\n clearDateTimeFormat(_context, locale, format);\r\n }\r\n // mergeDateTimeFormat\r\n function mergeDateTimeFormat(locale, format) {\r\n _datetimeFormats.value[locale] = assign(_datetimeFormats.value[locale] || {}, format);\r\n _context.datetimeFormats = _datetimeFormats.value;\r\n clearDateTimeFormat(_context, locale, format);\r\n }\r\n // getNumberFormat\r\n function getNumberFormat(locale) {\r\n return _numberFormats.value[locale] || {};\r\n }\r\n // setNumberFormat\r\n function setNumberFormat(locale, format) {\r\n _numberFormats.value[locale] = format;\r\n _context.numberFormats = _numberFormats.value;\r\n clearNumberFormat(_context, locale, format);\r\n }\r\n // mergeNumberFormat\r\n function mergeNumberFormat(locale, format) {\r\n _numberFormats.value[locale] = assign(_numberFormats.value[locale] || {}, format);\r\n _context.numberFormats = _numberFormats.value;\r\n clearNumberFormat(_context, locale, format);\r\n }\r\n // for debug\r\n composerID++;\r\n // watch root locale & fallbackLocale\r\n if (__root && inBrowser) {\r\n watch(__root.locale, (val) => {\r\n if (_inheritLocale) {\r\n _locale.value = val;\r\n _context.locale = val;\r\n updateFallbackLocale(_context, _locale.value, _fallbackLocale.value);\r\n }\r\n });\r\n watch(__root.fallbackLocale, (val) => {\r\n if (_inheritLocale) {\r\n _fallbackLocale.value = val;\r\n _context.fallbackLocale = val;\r\n updateFallbackLocale(_context, _locale.value, _fallbackLocale.value);\r\n }\r\n });\r\n }\r\n // define basic composition API!\r\n const composer = {\r\n id: composerID,\r\n locale,\r\n fallbackLocale,\r\n get inheritLocale() {\r\n return _inheritLocale;\r\n },\r\n set inheritLocale(val) {\r\n _inheritLocale = val;\r\n if (val && __root) {\r\n _locale.value = __root.locale.value;\r\n _fallbackLocale.value = __root.fallbackLocale.value;\r\n updateFallbackLocale(_context, _locale.value, _fallbackLocale.value);\r\n }\r\n },\r\n get availableLocales() {\r\n return Object.keys(_messages.value).sort();\r\n },\r\n messages,\r\n get modifiers() {\r\n return _modifiers;\r\n },\r\n get pluralRules() {\r\n return _pluralRules || {};\r\n },\r\n get isGlobal() {\r\n return _isGlobal;\r\n },\r\n get missingWarn() {\r\n return _missingWarn;\r\n },\r\n set missingWarn(val) {\r\n _missingWarn = val;\r\n _context.missingWarn = _missingWarn;\r\n },\r\n get fallbackWarn() {\r\n return _fallbackWarn;\r\n },\r\n set fallbackWarn(val) {\r\n _fallbackWarn = val;\r\n _context.fallbackWarn = _fallbackWarn;\r\n },\r\n get fallbackRoot() {\r\n return _fallbackRoot;\r\n },\r\n set fallbackRoot(val) {\r\n _fallbackRoot = val;\r\n },\r\n get fallbackFormat() {\r\n return _fallbackFormat;\r\n },\r\n set fallbackFormat(val) {\r\n _fallbackFormat = val;\r\n _context.fallbackFormat = _fallbackFormat;\r\n },\r\n get warnHtmlMessage() {\r\n return _warnHtmlMessage;\r\n },\r\n set warnHtmlMessage(val) {\r\n _warnHtmlMessage = val;\r\n _context.warnHtmlMessage = val;\r\n },\r\n get escapeParameter() {\r\n return _escapeParameter;\r\n },\r\n set escapeParameter(val) {\r\n _escapeParameter = val;\r\n _context.escapeParameter = val;\r\n },\r\n t,\r\n getLocaleMessage,\r\n setLocaleMessage,\r\n mergeLocaleMessage,\r\n getPostTranslationHandler,\r\n setPostTranslationHandler,\r\n getMissingHandler,\r\n setMissingHandler,\r\n [SetPluralRulesSymbol]: setPluralRules\r\n };\r\n {\r\n composer.datetimeFormats = datetimeFormats;\r\n composer.numberFormats = numberFormats;\r\n composer.rt = rt;\r\n composer.te = te;\r\n composer.tm = tm;\r\n composer.d = d;\r\n composer.n = n;\r\n composer.getDateTimeFormat = getDateTimeFormat;\r\n composer.setDateTimeFormat = setDateTimeFormat;\r\n composer.mergeDateTimeFormat = mergeDateTimeFormat;\r\n composer.getNumberFormat = getNumberFormat;\r\n composer.setNumberFormat = setNumberFormat;\r\n composer.mergeNumberFormat = mergeNumberFormat;\r\n composer[InejctWithOption] = options.__injectWithOption;\r\n composer[TransrateVNodeSymbol] = transrateVNode;\r\n composer[DatetimePartsSymbol] = datetimeParts;\r\n composer[NumberPartsSymbol] = numberParts;\r\n }\r\n // for vue-devtools timeline event\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n composer[EnableEmitter] = (emitter) => {\r\n _context.__v_emitter = emitter;\r\n };\r\n composer[DisableEmitter] = () => {\r\n _context.__v_emitter = undefined;\r\n };\r\n }\r\n return composer;\r\n}\r\n/* eslint-enable @typescript-eslint/no-explicit-any */\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\r\n/**\r\n * Convert to I18n Composer Options from VueI18n Options\r\n *\r\n * @internal\r\n */\r\nfunction convertComposerOptions(options) {\r\n const locale = isString(options.locale) ? options.locale : DEFAULT_LOCALE;\r\n const fallbackLocale = isString(options.fallbackLocale) ||\r\n isArray(options.fallbackLocale) ||\r\n isPlainObject(options.fallbackLocale) ||\r\n options.fallbackLocale === false\r\n ? options.fallbackLocale\r\n : locale;\r\n const missing = isFunction(options.missing) ? options.missing : undefined;\r\n const missingWarn = isBoolean(options.silentTranslationWarn) ||\r\n isRegExp(options.silentTranslationWarn)\r\n ? !options.silentTranslationWarn\r\n : true;\r\n const fallbackWarn = isBoolean(options.silentFallbackWarn) ||\r\n isRegExp(options.silentFallbackWarn)\r\n ? !options.silentFallbackWarn\r\n : true;\r\n const fallbackRoot = isBoolean(options.fallbackRoot)\r\n ? options.fallbackRoot\r\n : true;\r\n const fallbackFormat = !!options.formatFallbackMessages;\r\n const modifiers = isPlainObject(options.modifiers) ? options.modifiers : {};\r\n const pluralizationRules = options.pluralizationRules;\r\n const postTranslation = isFunction(options.postTranslation)\r\n ? options.postTranslation\r\n : undefined;\r\n const warnHtmlMessage = isString(options.warnHtmlInMessage)\r\n ? options.warnHtmlInMessage !== 'off'\r\n : true;\r\n const escapeParameter = !!options.escapeParameterHtml;\r\n const inheritLocale = isBoolean(options.sync) ? options.sync : true;\r\n if ((process.env.NODE_ENV !== 'production') && options.formatter) {\r\n warn(getWarnMessage(I18nWarnCodes.NOT_SUPPORTED_FORMATTER));\r\n }\r\n if ((process.env.NODE_ENV !== 'production') && options.preserveDirectiveContent) {\r\n warn(getWarnMessage(I18nWarnCodes.NOT_SUPPORTED_PRESERVE_DIRECTIVE));\r\n }\r\n let messages = options.messages;\r\n if (isPlainObject(options.sharedMessages)) {\r\n const sharedMessages = options.sharedMessages;\r\n const locales = Object.keys(sharedMessages);\r\n messages = locales.reduce((messages, locale) => {\r\n const message = messages[locale] || (messages[locale] = {});\r\n assign(message, sharedMessages[locale]);\r\n return messages;\r\n }, (messages || {}));\r\n }\r\n const { __i18n, __root, __injectWithOption } = options;\r\n const datetimeFormats = options.datetimeFormats;\r\n const numberFormats = options.numberFormats;\r\n const flatJson = options.flatJson;\r\n return {\r\n locale,\r\n fallbackLocale,\r\n messages,\r\n flatJson,\r\n datetimeFormats,\r\n numberFormats,\r\n missing,\r\n missingWarn,\r\n fallbackWarn,\r\n fallbackRoot,\r\n fallbackFormat,\r\n modifiers,\r\n pluralRules: pluralizationRules,\r\n postTranslation,\r\n warnHtmlMessage,\r\n escapeParameter,\r\n messageResolver: options.messageResolver,\r\n inheritLocale,\r\n __i18n,\r\n __root,\r\n __injectWithOption\r\n };\r\n}\r\n/**\r\n * create VueI18n interface factory\r\n *\r\n * @internal\r\n */\r\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\r\nfunction createVueI18n(options = {}, VueI18nLegacy) {\r\n {\r\n const composer = createComposer(convertComposerOptions(options));\r\n // defines VueI18n\r\n const vueI18n = {\r\n // id\r\n id: composer.id,\r\n // locale\r\n get locale() {\r\n return composer.locale.value;\r\n },\r\n set locale(val) {\r\n composer.locale.value = val;\r\n },\r\n // fallbackLocale\r\n get fallbackLocale() {\r\n return composer.fallbackLocale.value;\r\n },\r\n set fallbackLocale(val) {\r\n composer.fallbackLocale.value = val;\r\n },\r\n // messages\r\n get messages() {\r\n return composer.messages.value;\r\n },\r\n // datetimeFormats\r\n get datetimeFormats() {\r\n return composer.datetimeFormats.value;\r\n },\r\n // numberFormats\r\n get numberFormats() {\r\n return composer.numberFormats.value;\r\n },\r\n // availableLocales\r\n get availableLocales() {\r\n return composer.availableLocales;\r\n },\r\n // formatter\r\n get formatter() {\r\n (process.env.NODE_ENV !== 'production') && warn(getWarnMessage(I18nWarnCodes.NOT_SUPPORTED_FORMATTER));\r\n // dummy\r\n return {\r\n interpolate() {\r\n return [];\r\n }\r\n };\r\n },\r\n set formatter(val) {\r\n (process.env.NODE_ENV !== 'production') && warn(getWarnMessage(I18nWarnCodes.NOT_SUPPORTED_FORMATTER));\r\n },\r\n // missing\r\n get missing() {\r\n return composer.getMissingHandler();\r\n },\r\n set missing(handler) {\r\n composer.setMissingHandler(handler);\r\n },\r\n // silentTranslationWarn\r\n get silentTranslationWarn() {\r\n return isBoolean(composer.missingWarn)\r\n ? !composer.missingWarn\r\n : composer.missingWarn;\r\n },\r\n set silentTranslationWarn(val) {\r\n composer.missingWarn = isBoolean(val) ? !val : val;\r\n },\r\n // silentFallbackWarn\r\n get silentFallbackWarn() {\r\n return isBoolean(composer.fallbackWarn)\r\n ? !composer.fallbackWarn\r\n : composer.fallbackWarn;\r\n },\r\n set silentFallbackWarn(val) {\r\n composer.fallbackWarn = isBoolean(val) ? !val : val;\r\n },\r\n // modifiers\r\n get modifiers() {\r\n return composer.modifiers;\r\n },\r\n // formatFallbackMessages\r\n get formatFallbackMessages() {\r\n return composer.fallbackFormat;\r\n },\r\n set formatFallbackMessages(val) {\r\n composer.fallbackFormat = val;\r\n },\r\n // postTranslation\r\n get postTranslation() {\r\n return composer.getPostTranslationHandler();\r\n },\r\n set postTranslation(handler) {\r\n composer.setPostTranslationHandler(handler);\r\n },\r\n // sync\r\n get sync() {\r\n return composer.inheritLocale;\r\n },\r\n set sync(val) {\r\n composer.inheritLocale = val;\r\n },\r\n // warnInHtmlMessage\r\n get warnHtmlInMessage() {\r\n return composer.warnHtmlMessage ? 'warn' : 'off';\r\n },\r\n set warnHtmlInMessage(val) {\r\n composer.warnHtmlMessage = val !== 'off';\r\n },\r\n // escapeParameterHtml\r\n get escapeParameterHtml() {\r\n return composer.escapeParameter;\r\n },\r\n set escapeParameterHtml(val) {\r\n composer.escapeParameter = val;\r\n },\r\n // preserveDirectiveContent\r\n get preserveDirectiveContent() {\r\n (process.env.NODE_ENV !== 'production') &&\r\n warn(getWarnMessage(I18nWarnCodes.NOT_SUPPORTED_PRESERVE_DIRECTIVE));\r\n return true;\r\n },\r\n set preserveDirectiveContent(val) {\r\n (process.env.NODE_ENV !== 'production') &&\r\n warn(getWarnMessage(I18nWarnCodes.NOT_SUPPORTED_PRESERVE_DIRECTIVE));\r\n },\r\n // pluralizationRules\r\n get pluralizationRules() {\r\n return composer.pluralRules || {};\r\n },\r\n // for internal\r\n __composer: composer,\r\n // t\r\n t(...args) {\r\n const [arg1, arg2, arg3] = args;\r\n const options = {};\r\n let list = null;\r\n let named = null;\r\n if (!isString(arg1)) {\r\n throw createI18nError(I18nErrorCodes.INVALID_ARGUMENT);\r\n }\r\n const key = arg1;\r\n if (isString(arg2)) {\r\n options.locale = arg2;\r\n }\r\n else if (isArray(arg2)) {\r\n list = arg2;\r\n }\r\n else if (isPlainObject(arg2)) {\r\n named = arg2;\r\n }\r\n if (isArray(arg3)) {\r\n list = arg3;\r\n }\r\n else if (isPlainObject(arg3)) {\r\n named = arg3;\r\n }\r\n // return composer.t(key, (list || named || {}) as any, options)\r\n return Reflect.apply(composer.t, composer, [\r\n key,\r\n (list || named || {}),\r\n options\r\n ]);\r\n },\r\n rt(...args) {\r\n return Reflect.apply(composer.rt, composer, [...args]);\r\n },\r\n // tc\r\n tc(...args) {\r\n const [arg1, arg2, arg3] = args;\r\n const options = { plural: 1 };\r\n let list = null;\r\n let named = null;\r\n if (!isString(arg1)) {\r\n throw createI18nError(I18nErrorCodes.INVALID_ARGUMENT);\r\n }\r\n const key = arg1;\r\n if (isString(arg2)) {\r\n options.locale = arg2;\r\n }\r\n else if (isNumber(arg2)) {\r\n options.plural = arg2;\r\n }\r\n else if (isArray(arg2)) {\r\n list = arg2;\r\n }\r\n else if (isPlainObject(arg2)) {\r\n named = arg2;\r\n }\r\n if (isString(arg3)) {\r\n options.locale = arg3;\r\n }\r\n else if (isArray(arg3)) {\r\n list = arg3;\r\n }\r\n else if (isPlainObject(arg3)) {\r\n named = arg3;\r\n }\r\n // return composer.t(key, (list || named || {}) as any, options)\r\n return Reflect.apply(composer.t, composer, [\r\n key,\r\n (list || named || {}),\r\n options\r\n ]);\r\n },\r\n // te\r\n te(key, locale) {\r\n return composer.te(key, locale);\r\n },\r\n // tm\r\n tm(key) {\r\n return composer.tm(key);\r\n },\r\n // getLocaleMessage\r\n getLocaleMessage(locale) {\r\n return composer.getLocaleMessage(locale);\r\n },\r\n // setLocaleMessage\r\n setLocaleMessage(locale, message) {\r\n composer.setLocaleMessage(locale, message);\r\n },\r\n // mergeLocaleMessage\r\n mergeLocaleMessage(locale, message) {\r\n composer.mergeLocaleMessage(locale, message);\r\n },\r\n // d\r\n d(...args) {\r\n return Reflect.apply(composer.d, composer, [...args]);\r\n },\r\n // getDateTimeFormat\r\n getDateTimeFormat(locale) {\r\n return composer.getDateTimeFormat(locale);\r\n },\r\n // setDateTimeFormat\r\n setDateTimeFormat(locale, format) {\r\n composer.setDateTimeFormat(locale, format);\r\n },\r\n // mergeDateTimeFormat\r\n mergeDateTimeFormat(locale, format) {\r\n composer.mergeDateTimeFormat(locale, format);\r\n },\r\n // n\r\n n(...args) {\r\n return Reflect.apply(composer.n, composer, [...args]);\r\n },\r\n // getNumberFormat\r\n getNumberFormat(locale) {\r\n return composer.getNumberFormat(locale);\r\n },\r\n // setNumberFormat\r\n setNumberFormat(locale, format) {\r\n composer.setNumberFormat(locale, format);\r\n },\r\n // mergeNumberFormat\r\n mergeNumberFormat(locale, format) {\r\n composer.mergeNumberFormat(locale, format);\r\n },\r\n // getChoiceIndex\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n getChoiceIndex(choice, choicesLength) {\r\n (process.env.NODE_ENV !== 'production') &&\r\n warn(getWarnMessage(I18nWarnCodes.NOT_SUPPORTED_GET_CHOICE_INDEX));\r\n return -1;\r\n },\r\n // for internal\r\n __onComponentInstanceCreated(target) {\r\n const { componentInstanceCreatedListener } = options;\r\n if (componentInstanceCreatedListener) {\r\n componentInstanceCreatedListener(target, vueI18n);\r\n }\r\n }\r\n };\r\n // for vue-devtools timeline event\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n vueI18n.__enableEmitter = (emitter) => {\r\n const __composer = composer;\r\n __composer[EnableEmitter] && __composer[EnableEmitter](emitter);\r\n };\r\n vueI18n.__disableEmitter = () => {\r\n const __composer = composer;\r\n __composer[DisableEmitter] && __composer[DisableEmitter]();\r\n };\r\n }\r\n return vueI18n;\r\n }\r\n}\r\n/* eslint-enable @typescript-eslint/no-explicit-any */\n\nconst baseFormatProps = {\r\n tag: {\r\n type: [String, Object]\r\n },\r\n locale: {\r\n type: String\r\n },\r\n scope: {\r\n type: String,\r\n // NOTE: avoid https://github.com/microsoft/rushstack/issues/1050\r\n validator: (val /* ComponetI18nScope */) => val === 'parent' || val === 'global',\r\n default: 'parent' /* ComponetI18nScope */\r\n },\r\n i18n: {\r\n type: Object\r\n }\r\n};\n\nfunction getInterpolateArg(\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n{ slots }, // SetupContext,\r\nkeys) {\r\n if (keys.length === 1 && keys[0] === 'default') {\r\n // default slot with list\r\n const ret = slots.default ? slots.default() : [];\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n return ret.reduce((slot, current) => {\r\n return (slot = [\r\n ...slot,\r\n ...(isArray(current.children) ? current.children : [current])\r\n ]);\r\n }, []);\r\n }\r\n else {\r\n // named slots\r\n return keys.reduce((arg, key) => {\r\n const slot = slots[key];\r\n if (slot) {\r\n arg[key] = slot();\r\n }\r\n return arg;\r\n }, {});\r\n }\r\n}\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nfunction getFragmentableTag(tag) {\r\n return Fragment ;\r\n}\n\n/**\r\n * Translation Component\r\n *\r\n * @remarks\r\n * See the following items for property about details\r\n *\r\n * @VueI18nSee [TranslationProps](component#translationprops)\r\n * @VueI18nSee [BaseFormatProps](component#baseformatprops)\r\n * @VueI18nSee [Component Interpolation](../guide/advanced/component)\r\n *\r\n * @example\r\n * ```html\r\n *
\r\n * \r\n * \r\n * {{ $t('tos') }}\r\n * \r\n * \r\n *
\r\n * ```\r\n * ```js\r\n * import { createApp } from 'vue'\r\n * import { createI18n } from 'vue-i18n'\r\n *\r\n * const messages = {\r\n * en: {\r\n * tos: 'Term of Service',\r\n * term: 'I accept xxx {0}.'\r\n * },\r\n * ja: {\r\n * tos: '利用規約',\r\n * term: '私は xxx の{0}に同意します。'\r\n * }\r\n * }\r\n *\r\n * const i18n = createI18n({\r\n * locale: 'en',\r\n * messages\r\n * })\r\n *\r\n * const app = createApp({\r\n * data: {\r\n * url: '/term'\r\n * }\r\n * }).use(i18n).mount('#app')\r\n * ```\r\n *\r\n * @VueI18nComponent\r\n */\r\nconst Translation = /* defineComponent */ {\r\n /* eslint-disable */\r\n name: 'i18n-t',\r\n props: assign({\r\n keypath: {\r\n type: String,\r\n required: true\r\n },\r\n plural: {\r\n type: [Number, String],\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n validator: (val) => isNumber(val) || !isNaN(val)\r\n }\r\n }, baseFormatProps),\r\n /* eslint-enable */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n setup(props, context) {\r\n const { slots, attrs } = context;\r\n // NOTE: avoid https://github.com/microsoft/rushstack/issues/1050\r\n const i18n = props.i18n ||\r\n useI18n({\r\n useScope: props.scope,\r\n __useComponent: true\r\n });\r\n return () => {\r\n const keys = Object.keys(slots).filter(key => key !== '_');\r\n const options = {};\r\n if (props.locale) {\r\n options.locale = props.locale;\r\n }\r\n if (props.plural !== undefined) {\r\n options.plural = isString(props.plural) ? +props.plural : props.plural;\r\n }\r\n const arg = getInterpolateArg(context, keys);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const children = i18n[TransrateVNodeSymbol](props.keypath, arg, options);\r\n const assignedAttrs = assign({}, attrs);\r\n const tag = isString(props.tag) || isObject(props.tag)\r\n ? props.tag\r\n : getFragmentableTag();\r\n return h(tag, assignedAttrs, children);\r\n };\r\n }\r\n};\n\nfunction isVNode(target) {\r\n return isArray(target) && !isString(target[0]);\r\n}\r\nfunction renderFormatter(props, context, slotKeys, partFormatter) {\r\n const { slots, attrs } = context;\r\n return () => {\r\n const options = { part: true };\r\n let overrides = {};\r\n if (props.locale) {\r\n options.locale = props.locale;\r\n }\r\n if (isString(props.format)) {\r\n options.key = props.format;\r\n }\r\n else if (isObject(props.format)) {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n if (isString(props.format.key)) {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n options.key = props.format.key;\r\n }\r\n // Filter out number format options only\r\n overrides = Object.keys(props.format).reduce((options, prop) => {\r\n return slotKeys.includes(prop)\r\n ? assign({}, options, { [prop]: props.format[prop] }) // eslint-disable-line @typescript-eslint/no-explicit-any\r\n : options;\r\n }, {});\r\n }\r\n const parts = partFormatter(...[props.value, options, overrides]);\r\n let children = [options.key];\r\n if (isArray(parts)) {\r\n children = parts.map((part, index) => {\r\n const slot = slots[part.type];\r\n const node = slot\r\n ? slot({ [part.type]: part.value, index, parts })\r\n : [part.value];\r\n if (isVNode(node)) {\r\n node[0].key = `${part.type}-${index}`;\r\n }\r\n return node;\r\n });\r\n }\r\n else if (isString(parts)) {\r\n children = [parts];\r\n }\r\n const assignedAttrs = assign({}, attrs);\r\n const tag = isString(props.tag) || isObject(props.tag)\r\n ? props.tag\r\n : getFragmentableTag();\r\n return h(tag, assignedAttrs, children);\r\n };\r\n}\n\n/**\r\n * Number Format Component\r\n *\r\n * @remarks\r\n * See the following items for property about details\r\n *\r\n * @VueI18nSee [FormattableProps](component#formattableprops)\r\n * @VueI18nSee [BaseFormatProps](component#baseformatprops)\r\n * @VueI18nSee [Custom Formatting](../guide/essentials/number#custom-formatting)\r\n *\r\n * @VueI18nDanger\r\n * Not supported IE, due to no support `Intl.NumberFormat#formatToParts` in [IE](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/formatToParts)\r\n *\r\n * If you want to use it, you need to use [polyfill](https://github.com/formatjs/formatjs/tree/main/packages/intl-numberformat)\r\n *\r\n * @VueI18nComponent\r\n */\r\nconst NumberFormat = /* defineComponent */ {\r\n /* eslint-disable */\r\n name: 'i18n-n',\r\n props: assign({\r\n value: {\r\n type: Number,\r\n required: true\r\n },\r\n format: {\r\n type: [String, Object]\r\n }\r\n }, baseFormatProps),\r\n /* eslint-enable */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n setup(props, context) {\r\n const i18n = props.i18n ||\r\n useI18n({ useScope: 'parent', __useComponent: true });\r\n return renderFormatter(props, context, NUMBER_FORMAT_OPTIONS_KEYS, (...args) => \r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n i18n[NumberPartsSymbol](...args));\r\n }\r\n};\n\n/**\r\n * Datetime Format Component\r\n *\r\n * @remarks\r\n * See the following items for property about details\r\n *\r\n * @VueI18nSee [FormattableProps](component#formattableprops)\r\n * @VueI18nSee [BaseFormatProps](component#baseformatprops)\r\n * @VueI18nSee [Custom Formatting](../guide/essentials/datetime#custom-formatting)\r\n *\r\n * @VueI18nDanger\r\n * Not supported IE, due to no support `Intl.DateTimeFormat#formatToParts` in [IE](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/formatToParts)\r\n *\r\n * If you want to use it, you need to use [polyfill](https://github.com/formatjs/formatjs/tree/main/packages/intl-datetimeformat)\r\n *\r\n * @VueI18nComponent\r\n */\r\nconst DatetimeFormat = /*defineComponent */ {\r\n /* eslint-disable */\r\n name: 'i18n-d',\r\n props: assign({\r\n value: {\r\n type: [Number, Date],\r\n required: true\r\n },\r\n format: {\r\n type: [String, Object]\r\n }\r\n }, baseFormatProps),\r\n /* eslint-enable */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n setup(props, context) {\r\n const i18n = props.i18n ||\r\n useI18n({ useScope: 'parent', __useComponent: true });\r\n return renderFormatter(props, context, DATETIME_FORMAT_OPTIONS_KEYS, (...args) => \r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n i18n[DatetimePartsSymbol](...args));\r\n }\r\n};\n\nfunction getComposer$2(i18n, instance) {\r\n const i18nInternal = i18n;\r\n if (i18n.mode === 'composition') {\r\n return (i18nInternal.__getInstance(instance) || i18n.global);\r\n }\r\n else {\r\n const vueI18n = i18nInternal.__getInstance(instance);\r\n return vueI18n != null\r\n ? vueI18n.__composer\r\n : i18n.global.__composer;\r\n }\r\n}\r\nfunction vTDirective(i18n) {\r\n const _process = (binding) => {\r\n const { instance, modifiers, value } = binding;\r\n /* istanbul ignore if */\r\n if (!instance || !instance.$) {\r\n throw createI18nError(I18nErrorCodes.UNEXPECTED_ERROR);\r\n }\r\n const composer = getComposer$2(i18n, instance.$);\r\n if ((process.env.NODE_ENV !== 'production') && modifiers.preserve) {\r\n warn(getWarnMessage(I18nWarnCodes.NOT_SUPPORTED_PRESERVE));\r\n }\r\n const parsedValue = parseValue(value);\r\n return [\r\n Reflect.apply(composer.t, composer, [...makeParams(parsedValue)]),\r\n composer\r\n ];\r\n };\r\n const register = (el, binding) => {\r\n const [textContent, composer] = _process(binding);\r\n if (inBrowser && i18n.global === composer) {\r\n // global scope only\r\n el.__i18nWatcher = watch(composer.locale, () => {\r\n binding.instance && binding.instance.$forceUpdate();\r\n });\r\n }\r\n el.__composer = composer;\r\n el.textContent = textContent;\r\n };\r\n const unregister = (el) => {\r\n if (inBrowser && el.__i18nWatcher) {\r\n el.__i18nWatcher();\r\n el.__i18nWatcher = undefined;\r\n delete el.__i18nWatcher;\r\n }\r\n if (el.__composer) {\r\n el.__composer = undefined;\r\n delete el.__composer;\r\n }\r\n };\r\n const update = (el, { value }) => {\r\n if (el.__composer) {\r\n const composer = el.__composer;\r\n const parsedValue = parseValue(value);\r\n el.textContent = Reflect.apply(composer.t, composer, [\r\n ...makeParams(parsedValue)\r\n ]);\r\n }\r\n };\r\n const getSSRProps = (binding) => {\r\n const [textContent] = _process(binding);\r\n return { textContent };\r\n };\r\n return {\r\n created: register,\r\n unmounted: unregister,\r\n beforeUpdate: update,\r\n getSSRProps\r\n };\r\n}\r\nfunction parseValue(value) {\r\n if (isString(value)) {\r\n return { path: value };\r\n }\r\n else if (isPlainObject(value)) {\r\n if (!('path' in value)) {\r\n throw createI18nError(I18nErrorCodes.REQUIRED_VALUE, 'path');\r\n }\r\n return value;\r\n }\r\n else {\r\n throw createI18nError(I18nErrorCodes.INVALID_VALUE);\r\n }\r\n}\r\nfunction makeParams(value) {\r\n const { path, locale, args, choice, plural } = value;\r\n const options = {};\r\n const named = args || {};\r\n if (isString(locale)) {\r\n options.locale = locale;\r\n }\r\n if (isNumber(choice)) {\r\n options.plural = choice;\r\n }\r\n if (isNumber(plural)) {\r\n options.plural = plural;\r\n }\r\n return [path, named, options];\r\n}\n\nfunction apply(app, i18n, ...options) {\r\n const pluginOptions = isPlainObject(options[0])\r\n ? options[0]\r\n : {};\r\n const useI18nComponentName = !!pluginOptions.useI18nComponentName;\r\n const globalInstall = isBoolean(pluginOptions.globalInstall)\r\n ? pluginOptions.globalInstall\r\n : true;\r\n if ((process.env.NODE_ENV !== 'production') && globalInstall && useI18nComponentName) {\r\n warn(getWarnMessage(I18nWarnCodes.COMPONENT_NAME_LEGACY_COMPATIBLE, {\r\n name: Translation.name\r\n }));\r\n }\r\n if (globalInstall) {\r\n // install components\r\n app.component(!useI18nComponentName ? Translation.name : 'i18n', Translation);\r\n app.component(NumberFormat.name, NumberFormat);\r\n app.component(DatetimeFormat.name, DatetimeFormat);\r\n }\r\n // install directive\r\n {\r\n app.directive('t', vTDirective(i18n));\r\n }\r\n}\n\nconst VUE_I18N_COMPONENT_TYPES = 'vue-i18n: composer properties';\r\nlet devtoolsApi;\r\nasync function enableDevTools(app, i18n) {\r\n return new Promise((resolve, reject) => {\r\n try {\r\n setupDevtoolsPlugin({\r\n id: \"vue-devtools-plugin-vue-i18n\" /* PLUGIN */,\r\n label: VueDevToolsLabels[\"vue-devtools-plugin-vue-i18n\" /* PLUGIN */],\r\n packageName: 'vue-i18n',\r\n homepage: 'https://vue-i18n.intlify.dev',\r\n logo: 'https://vue-i18n.intlify.dev/vue-i18n-devtools-logo.png',\r\n componentStateTypes: [VUE_I18N_COMPONENT_TYPES],\r\n app: app // eslint-disable-line @typescript-eslint/no-explicit-any\r\n }, api => {\r\n devtoolsApi = api;\r\n api.on.visitComponentTree(({ componentInstance, treeNode }) => {\r\n updateComponentTreeTags(componentInstance, treeNode, i18n);\r\n });\r\n api.on.inspectComponent(({ componentInstance, instanceData }) => {\r\n if (componentInstance.vnode.el &&\r\n componentInstance.vnode.el.__VUE_I18N__ &&\r\n instanceData) {\r\n if (i18n.mode === 'legacy') {\r\n // ignore global scope on legacy mode\r\n if (componentInstance.vnode.el.__VUE_I18N__ !==\r\n i18n.global.__composer) {\r\n inspectComposer(instanceData, componentInstance.vnode.el.__VUE_I18N__);\r\n }\r\n }\r\n else {\r\n inspectComposer(instanceData, componentInstance.vnode.el.__VUE_I18N__);\r\n }\r\n }\r\n });\r\n api.addInspector({\r\n id: \"vue-i18n-resource-inspector\" /* CUSTOM_INSPECTOR */,\r\n label: VueDevToolsLabels[\"vue-i18n-resource-inspector\" /* CUSTOM_INSPECTOR */],\r\n icon: 'language',\r\n treeFilterPlaceholder: VueDevToolsPlaceholders[\"vue-i18n-resource-inspector\" /* CUSTOM_INSPECTOR */]\r\n });\r\n api.on.getInspectorTree(payload => {\r\n if (payload.app === app &&\r\n payload.inspectorId === \"vue-i18n-resource-inspector\" /* CUSTOM_INSPECTOR */) {\r\n registerScope(payload, i18n);\r\n }\r\n });\r\n const roots = new Map();\r\n api.on.getInspectorState(async (payload) => {\r\n if (payload.app === app &&\r\n payload.inspectorId === \"vue-i18n-resource-inspector\" /* CUSTOM_INSPECTOR */) {\r\n api.unhighlightElement();\r\n inspectScope(payload, i18n);\r\n if (payload.nodeId === 'global') {\r\n if (!roots.has(payload.app)) {\r\n const [root] = await api.getComponentInstances(payload.app);\r\n roots.set(payload.app, root);\r\n }\r\n api.highlightElement(roots.get(payload.app));\r\n }\r\n else {\r\n const instance = getComponentInstance(payload.nodeId, i18n);\r\n instance && api.highlightElement(instance);\r\n }\r\n }\r\n });\r\n api.on.editInspectorState(payload => {\r\n if (payload.app === app &&\r\n payload.inspectorId === \"vue-i18n-resource-inspector\" /* CUSTOM_INSPECTOR */) {\r\n editScope(payload, i18n);\r\n }\r\n });\r\n api.addTimelineLayer({\r\n id: \"vue-i18n-timeline\" /* TIMELINE */,\r\n label: VueDevToolsLabels[\"vue-i18n-timeline\" /* TIMELINE */],\r\n color: VueDevToolsTimelineColors[\"vue-i18n-timeline\" /* TIMELINE */]\r\n });\r\n resolve(true);\r\n });\r\n }\r\n catch (e) {\r\n console.error(e);\r\n reject(false);\r\n }\r\n });\r\n}\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nfunction getI18nScopeLable(instance) {\r\n return (instance.type.name ||\r\n instance.type.displayName ||\r\n instance.type.__file ||\r\n 'Anonymous');\r\n}\r\nfunction updateComponentTreeTags(instance, // eslint-disable-line @typescript-eslint/no-explicit-any\r\ntreeNode, i18n) {\r\n // prettier-ignore\r\n const global = i18n.mode === 'composition'\r\n ? i18n.global\r\n : i18n.global.__composer;\r\n if (instance && instance.vnode.el && instance.vnode.el.__VUE_I18N__) {\r\n // add custom tags local scope only\r\n if (instance.vnode.el.__VUE_I18N__ !== global) {\r\n const tag = {\r\n label: `i18n (${getI18nScopeLable(instance)} Scope)`,\r\n textColor: 0x000000,\r\n backgroundColor: 0xffcd19\r\n };\r\n treeNode.tags.push(tag);\r\n }\r\n }\r\n}\r\nfunction inspectComposer(instanceData, composer) {\r\n const type = VUE_I18N_COMPONENT_TYPES;\r\n instanceData.state.push({\r\n type,\r\n key: 'locale',\r\n editable: true,\r\n value: composer.locale.value\r\n });\r\n instanceData.state.push({\r\n type,\r\n key: 'availableLocales',\r\n editable: false,\r\n value: composer.availableLocales\r\n });\r\n instanceData.state.push({\r\n type,\r\n key: 'fallbackLocale',\r\n editable: true,\r\n value: composer.fallbackLocale.value\r\n });\r\n instanceData.state.push({\r\n type,\r\n key: 'inheritLocale',\r\n editable: true,\r\n value: composer.inheritLocale\r\n });\r\n instanceData.state.push({\r\n type,\r\n key: 'messages',\r\n editable: false,\r\n value: getLocaleMessageValue(composer.messages.value)\r\n });\r\n {\r\n instanceData.state.push({\r\n type,\r\n key: 'datetimeFormats',\r\n editable: false,\r\n value: composer.datetimeFormats.value\r\n });\r\n instanceData.state.push({\r\n type,\r\n key: 'numberFormats',\r\n editable: false,\r\n value: composer.numberFormats.value\r\n });\r\n }\r\n}\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nfunction getLocaleMessageValue(messages) {\r\n const value = {};\r\n Object.keys(messages).forEach((key) => {\r\n const v = messages[key];\r\n if (isFunction(v) && 'source' in v) {\r\n value[key] = getMessageFunctionDetails(v);\r\n }\r\n else if (isObject(v)) {\r\n value[key] = getLocaleMessageValue(v);\r\n }\r\n else {\r\n value[key] = v;\r\n }\r\n });\r\n return value;\r\n}\r\nconst ESC = {\r\n '<': '<',\r\n '>': '>',\r\n '\"': '"',\r\n '&': '&'\r\n};\r\nfunction escape(s) {\r\n return s.replace(/[<>\"&]/g, escapeChar);\r\n}\r\nfunction escapeChar(a) {\r\n return ESC[a] || a;\r\n}\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nfunction getMessageFunctionDetails(func) {\r\n const argString = func.source ? `(\"${escape(func.source)}\")` : `(?)`;\r\n return {\r\n _custom: {\r\n type: 'function',\r\n display: `ƒ ${argString}`\r\n }\r\n };\r\n}\r\nfunction registerScope(payload, i18n) {\r\n payload.rootNodes.push({\r\n id: 'global',\r\n label: 'Global Scope'\r\n });\r\n // prettier-ignore\r\n const global = i18n.mode === 'composition'\r\n ? i18n.global\r\n : i18n.global.__composer;\r\n for (const [keyInstance, instance] of i18n.__instances) {\r\n // prettier-ignore\r\n const composer = i18n.mode === 'composition'\r\n ? instance\r\n : instance.__composer;\r\n if (global === composer) {\r\n continue;\r\n }\r\n payload.rootNodes.push({\r\n id: composer.id.toString(),\r\n label: `${getI18nScopeLable(keyInstance)} Scope`\r\n });\r\n }\r\n}\r\nfunction getComponentInstance(nodeId, i18n) {\r\n let instance = null;\r\n if (nodeId !== 'global') {\r\n for (const [component, composer] of i18n.__instances.entries()) {\r\n if (composer.id.toString() === nodeId) {\r\n instance = component;\r\n break;\r\n }\r\n }\r\n }\r\n return instance;\r\n}\r\nfunction getComposer$1(nodeId, i18n) {\r\n if (nodeId === 'global') {\r\n return i18n.mode === 'composition'\r\n ? i18n.global\r\n : i18n.global.__composer;\r\n }\r\n else {\r\n const instance = Array.from(i18n.__instances.values()).find(item => item.id.toString() === nodeId);\r\n if (instance) {\r\n return i18n.mode === 'composition'\r\n ? instance\r\n : instance.__composer;\r\n }\r\n else {\r\n return null;\r\n }\r\n }\r\n}\r\nfunction inspectScope(payload, i18n\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n) {\r\n const composer = getComposer$1(payload.nodeId, i18n);\r\n if (composer) {\r\n // TODO:\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n payload.state = makeScopeInspectState(composer);\r\n }\r\n return null;\r\n}\r\nfunction makeScopeInspectState(composer) {\r\n const state = {};\r\n const localeType = 'Locale related info';\r\n const localeStates = [\r\n {\r\n type: localeType,\r\n key: 'locale',\r\n editable: true,\r\n value: composer.locale.value\r\n },\r\n {\r\n type: localeType,\r\n key: 'fallbackLocale',\r\n editable: true,\r\n value: composer.fallbackLocale.value\r\n },\r\n {\r\n type: localeType,\r\n key: 'availableLocales',\r\n editable: false,\r\n value: composer.availableLocales\r\n },\r\n {\r\n type: localeType,\r\n key: 'inheritLocale',\r\n editable: true,\r\n value: composer.inheritLocale\r\n }\r\n ];\r\n state[localeType] = localeStates;\r\n const localeMessagesType = 'Locale messages info';\r\n const localeMessagesStates = [\r\n {\r\n type: localeMessagesType,\r\n key: 'messages',\r\n editable: false,\r\n value: getLocaleMessageValue(composer.messages.value)\r\n }\r\n ];\r\n state[localeMessagesType] = localeMessagesStates;\r\n {\r\n const datetimeFormatsType = 'Datetime formats info';\r\n const datetimeFormatsStates = [\r\n {\r\n type: datetimeFormatsType,\r\n key: 'datetimeFormats',\r\n editable: false,\r\n value: composer.datetimeFormats.value\r\n }\r\n ];\r\n state[datetimeFormatsType] = datetimeFormatsStates;\r\n const numberFormatsType = 'Datetime formats info';\r\n const numberFormatsStates = [\r\n {\r\n type: numberFormatsType,\r\n key: 'numberFormats',\r\n editable: false,\r\n value: composer.numberFormats.value\r\n }\r\n ];\r\n state[numberFormatsType] = numberFormatsStates;\r\n }\r\n return state;\r\n}\r\nfunction addTimelineEvent(event, payload) {\r\n if (devtoolsApi) {\r\n let groupId;\r\n if (payload && 'groupId' in payload) {\r\n groupId = payload.groupId;\r\n delete payload.groupId;\r\n }\r\n devtoolsApi.addTimelineEvent({\r\n layerId: \"vue-i18n-timeline\" /* TIMELINE */,\r\n event: {\r\n title: event,\r\n groupId,\r\n time: Date.now(),\r\n meta: {},\r\n data: payload || {},\r\n logType: event === \"compile-error\" /* COMPILE_ERROR */\r\n ? 'error'\r\n : event === \"fallback\" /* FALBACK */ ||\r\n event === \"missing\" /* MISSING */\r\n ? 'warning'\r\n : 'default'\r\n }\r\n });\r\n }\r\n}\r\nfunction editScope(payload, i18n) {\r\n const composer = getComposer$1(payload.nodeId, i18n);\r\n if (composer) {\r\n const [field] = payload.path;\r\n if (field === 'locale' && isString(payload.state.value)) {\r\n composer.locale.value = payload.state.value;\r\n }\r\n else if (field === 'fallbackLocale' &&\r\n (isString(payload.state.value) ||\r\n isArray(payload.state.value) ||\r\n isObject(payload.state.value))) {\r\n composer.fallbackLocale.value = payload.state.value;\r\n }\r\n else if (field === 'inheritLocale' && isBoolean(payload.state.value)) {\r\n composer.inheritLocale = payload.state.value;\r\n }\r\n }\r\n}\n\n/**\r\n * Supports compatibility for legacy vue-i18n APIs\r\n * This mixin is used when we use vue-i18n@v9.x or later\r\n */\r\nfunction defineMixin(vuei18n, composer, i18n) {\r\n return {\r\n beforeCreate() {\r\n const instance = getCurrentInstance();\r\n /* istanbul ignore if */\r\n if (!instance) {\r\n throw createI18nError(I18nErrorCodes.UNEXPECTED_ERROR);\r\n }\r\n const options = this.$options;\r\n if (options.i18n) {\r\n const optionsI18n = options.i18n;\r\n if (options.__i18n) {\r\n optionsI18n.__i18n = options.__i18n;\r\n }\r\n optionsI18n.__root = composer;\r\n if (this === this.$root) {\r\n this.$i18n = mergeToRoot(vuei18n, optionsI18n);\r\n }\r\n else {\r\n optionsI18n.__injectWithOption = true;\r\n this.$i18n = createVueI18n(optionsI18n);\r\n }\r\n }\r\n else if (options.__i18n) {\r\n if (this === this.$root) {\r\n this.$i18n = mergeToRoot(vuei18n, options);\r\n }\r\n else {\r\n this.$i18n = createVueI18n({\r\n __i18n: options.__i18n,\r\n __injectWithOption: true,\r\n __root: composer\r\n });\r\n }\r\n }\r\n else {\r\n // set global\r\n this.$i18n = vuei18n;\r\n }\r\n if (options.__i18nGlobal) {\r\n adjustI18nResources(composer, options, options);\r\n }\r\n vuei18n.__onComponentInstanceCreated(this.$i18n);\r\n i18n.__setInstance(instance, this.$i18n);\r\n // defines vue-i18n legacy APIs\r\n this.$t = (...args) => this.$i18n.t(...args);\r\n this.$rt = (...args) => this.$i18n.rt(...args);\r\n this.$tc = (...args) => this.$i18n.tc(...args);\r\n this.$te = (key, locale) => this.$i18n.te(key, locale);\r\n this.$d = (...args) => this.$i18n.d(...args);\r\n this.$n = (...args) => this.$i18n.n(...args);\r\n this.$tm = (key) => this.$i18n.tm(key);\r\n },\r\n mounted() {\r\n /* istanbul ignore if */\r\n if (((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) &&\r\n !false &&\r\n this.$el &&\r\n this.$i18n) {\r\n this.$el.__VUE_I18N__ = this.$i18n.__composer;\r\n const emitter = (this.__v_emitter =\r\n createEmitter());\r\n const _vueI18n = this.$i18n;\r\n _vueI18n.__enableEmitter && _vueI18n.__enableEmitter(emitter);\r\n emitter.on('*', addTimelineEvent);\r\n }\r\n },\r\n unmounted() {\r\n const instance = getCurrentInstance();\r\n /* istanbul ignore if */\r\n if (!instance) {\r\n throw createI18nError(I18nErrorCodes.UNEXPECTED_ERROR);\r\n }\r\n /* istanbul ignore if */\r\n if (((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) &&\r\n !false &&\r\n this.$el &&\r\n this.$el.__VUE_I18N__) {\r\n if (this.__v_emitter) {\r\n this.__v_emitter.off('*', addTimelineEvent);\r\n delete this.__v_emitter;\r\n }\r\n if (this.$i18n) {\r\n const _vueI18n = this.$i18n;\r\n _vueI18n.__disableEmitter && _vueI18n.__disableEmitter();\r\n delete this.$el.__VUE_I18N__;\r\n }\r\n }\r\n delete this.$t;\r\n delete this.$rt;\r\n delete this.$tc;\r\n delete this.$te;\r\n delete this.$d;\r\n delete this.$n;\r\n delete this.$tm;\r\n i18n.__deleteInstance(instance);\r\n delete this.$i18n;\r\n }\r\n };\r\n}\r\nfunction mergeToRoot(root, options) {\r\n root.locale = options.locale || root.locale;\r\n root.fallbackLocale = options.fallbackLocale || root.fallbackLocale;\r\n root.missing = options.missing || root.missing;\r\n root.silentTranslationWarn =\r\n options.silentTranslationWarn || root.silentFallbackWarn;\r\n root.silentFallbackWarn =\r\n options.silentFallbackWarn || root.silentFallbackWarn;\r\n root.formatFallbackMessages =\r\n options.formatFallbackMessages || root.formatFallbackMessages;\r\n root.postTranslation = options.postTranslation || root.postTranslation;\r\n root.warnHtmlInMessage = options.warnHtmlInMessage || root.warnHtmlInMessage;\r\n root.escapeParameterHtml =\r\n options.escapeParameterHtml || root.escapeParameterHtml;\r\n root.sync = options.sync || root.sync;\r\n root.__composer[SetPluralRulesSymbol](options.pluralizationRules || root.pluralizationRules);\r\n const messages = getLocaleMessages(root.locale, {\r\n messages: options.messages,\r\n __i18n: options.__i18n\r\n });\r\n Object.keys(messages).forEach(locale => root.mergeLocaleMessage(locale, messages[locale]));\r\n if (options.datetimeFormats) {\r\n Object.keys(options.datetimeFormats).forEach(locale => root.mergeDateTimeFormat(locale, options.datetimeFormats[locale]));\r\n }\r\n if (options.numberFormats) {\r\n Object.keys(options.numberFormats).forEach(locale => root.mergeNumberFormat(locale, options.numberFormats[locale]));\r\n }\r\n return root;\r\n}\n\n/**\r\n * Injection key for {@link useI18n}\r\n *\r\n * @remarks\r\n * The global injection key for I18n instances with `useI18n`. this injection key is used in Web Components.\r\n * Specify the i18n instance created by {@link createI18n} together with `provide` function.\r\n *\r\n * @VueI18nGeneral\r\n */\r\nconst I18nInjectionKey = \r\n/* #__PURE__*/ makeSymbol('global-vue-i18n');\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\r\nfunction createI18n(options = {}, VueI18nLegacy) {\r\n // prettier-ignore\r\n const __legacyMode = __VUE_I18N_LEGACY_API__ && isBoolean(options.legacy)\r\n ? options.legacy\r\n : __VUE_I18N_LEGACY_API__;\r\n // prettier-ignore\r\n const __globalInjection = isBoolean(options.globalInjection)\r\n ? options.globalInjection\r\n : true;\r\n // prettier-ignore\r\n const __allowComposition = __VUE_I18N_LEGACY_API__ && __legacyMode\r\n ? !!options.allowComposition\r\n : true;\r\n const __instances = new Map();\r\n const [globalScope, __global] = createGlobal(options, __legacyMode);\r\n const symbol = makeSymbol((process.env.NODE_ENV !== 'production') ? 'vue-i18n' : '');\r\n function __getInstance(component) {\r\n return __instances.get(component) || null;\r\n }\r\n function __setInstance(component, instance) {\r\n __instances.set(component, instance);\r\n }\r\n function __deleteInstance(component) {\r\n __instances.delete(component);\r\n }\r\n {\r\n const i18n = {\r\n // mode\r\n get mode() {\r\n return __VUE_I18N_LEGACY_API__ && __legacyMode\r\n ? 'legacy'\r\n : 'composition';\r\n },\r\n // allowComposition\r\n get allowComposition() {\r\n return __allowComposition;\r\n },\r\n // install plugin\r\n async install(app, ...options) {\r\n if (((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) &&\r\n !false) {\r\n app.__VUE_I18N__ = i18n;\r\n }\r\n // setup global provider\r\n app.__VUE_I18N_SYMBOL__ = symbol;\r\n app.provide(app.__VUE_I18N_SYMBOL__, i18n);\r\n // global method and properties injection for Composition API\r\n if (!__legacyMode && __globalInjection) {\r\n injectGlobalFields(app, i18n.global);\r\n }\r\n // install built-in components and directive\r\n if (__VUE_I18N_FULL_INSTALL__) {\r\n apply(app, i18n, ...options);\r\n }\r\n // setup mixin for Legacy API\r\n if (__VUE_I18N_LEGACY_API__ && __legacyMode) {\r\n app.mixin(defineMixin(__global, __global.__composer, i18n));\r\n }\r\n // release global scope\r\n const unmountApp = app.unmount;\r\n app.unmount = () => {\r\n i18n.dispose();\r\n unmountApp();\r\n };\r\n // setup vue-devtools plugin\r\n if (((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) && !false) {\r\n const ret = await enableDevTools(app, i18n);\r\n if (!ret) {\r\n throw createI18nError(I18nErrorCodes.CANNOT_SETUP_VUE_DEVTOOLS_PLUGIN);\r\n }\r\n const emitter = createEmitter();\r\n if (__legacyMode) {\r\n const _vueI18n = __global;\r\n _vueI18n.__enableEmitter && _vueI18n.__enableEmitter(emitter);\r\n }\r\n else {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const _composer = __global;\r\n _composer[EnableEmitter] && _composer[EnableEmitter](emitter);\r\n }\r\n emitter.on('*', addTimelineEvent);\r\n }\r\n },\r\n // global accessor\r\n get global() {\r\n return __global;\r\n },\r\n dispose() {\r\n globalScope.stop();\r\n },\r\n // @internal\r\n __instances,\r\n // @internal\r\n __getInstance,\r\n // @internal\r\n __setInstance,\r\n // @internal\r\n __deleteInstance\r\n };\r\n return i18n;\r\n }\r\n}\r\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\r\nfunction useI18n(options = {}) {\r\n const instance = getCurrentInstance();\r\n if (instance == null) {\r\n throw createI18nError(I18nErrorCodes.MUST_BE_CALL_SETUP_TOP);\r\n }\r\n if (!instance.isCE &&\r\n instance.appContext.app != null &&\r\n !instance.appContext.app.__VUE_I18N_SYMBOL__) {\r\n throw createI18nError(I18nErrorCodes.NOT_INSLALLED);\r\n }\r\n const i18n = getI18nInstance(instance);\r\n const global = getGlobalComposer(i18n);\r\n const componentOptions = getComponentOptions(instance);\r\n const scope = getScope(options, componentOptions);\r\n if (__VUE_I18N_LEGACY_API__) {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n if (i18n.mode === 'legacy' && !options.__useComponent) {\r\n if (!i18n.allowComposition) {\r\n throw createI18nError(I18nErrorCodes.NOT_AVAILABLE_IN_LEGACY_MODE);\r\n }\r\n return useI18nForLegacy(instance, scope, global, options);\r\n }\r\n }\r\n if (scope === 'global') {\r\n adjustI18nResources(global, options, componentOptions);\r\n return global;\r\n }\r\n if (scope === 'parent') {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n let composer = getComposer(i18n, instance, options.__useComponent);\r\n if (composer == null) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n warn(getWarnMessage(I18nWarnCodes.NOT_FOUND_PARENT_SCOPE));\r\n }\r\n composer = global;\r\n }\r\n return composer;\r\n }\r\n const i18nInternal = i18n;\r\n let composer = i18nInternal.__getInstance(instance);\r\n if (composer == null) {\r\n const composerOptions = assign({}, options);\r\n if ('__i18n' in componentOptions) {\r\n composerOptions.__i18n = componentOptions.__i18n;\r\n }\r\n if (global) {\r\n composerOptions.__root = global;\r\n }\r\n composer = createComposer(composerOptions);\r\n setupLifeCycle(i18nInternal, instance, composer);\r\n i18nInternal.__setInstance(instance, composer);\r\n }\r\n return composer;\r\n}\r\n/**\r\n * Cast to VueI18n legacy compatible type\r\n *\r\n * @remarks\r\n * This API is provided only with [vue-i18n-bridge](https://vue-i18n.intlify.dev/guide/migration/ways.html#what-is-vue-i18n-bridge).\r\n *\r\n * The purpose of this function is to convert an {@link I18n} instance created with {@link createI18n | createI18n(legacy: true)} into a `vue-i18n@v8.x` compatible instance of `new VueI18n` in a TypeScript environment.\r\n *\r\n * @param i18n - An instance of {@link I18n}\r\n * @returns A i18n instance which is casted to {@link VueI18n} type\r\n *\r\n * @VueI18nTip\r\n * :new: provided by **vue-i18n-bridge only**\r\n *\r\n * @VueI18nGeneral\r\n */\r\nconst castToVueI18n = (i18n\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n) => {\r\n if (!(__VUE_I18N_BRIDGE__ in i18n)) {\r\n throw createI18nError(I18nErrorCodes.NOT_COMPATIBLE_LEGACY_VUE_I18N);\r\n }\r\n return i18n;\r\n};\r\nfunction createGlobal(options, legacyMode, VueI18nLegacy // eslint-disable-line @typescript-eslint/no-explicit-any\r\n) {\r\n const scope = effectScope();\r\n {\r\n const obj = __VUE_I18N_LEGACY_API__ && legacyMode\r\n ? scope.run(() => createVueI18n(options))\r\n : scope.run(() => createComposer(options));\r\n if (obj == null) {\r\n throw createI18nError(I18nErrorCodes.UNEXPECTED_ERROR);\r\n }\r\n return [scope, obj];\r\n }\r\n}\r\nfunction getI18nInstance(instance) {\r\n {\r\n const i18n = inject(!instance.isCE\r\n ? instance.appContext.app.__VUE_I18N_SYMBOL__\r\n : I18nInjectionKey);\r\n /* istanbul ignore if */\r\n if (!i18n) {\r\n throw createI18nError(!instance.isCE\r\n ? I18nErrorCodes.UNEXPECTED_ERROR\r\n : I18nErrorCodes.NOT_INSLALLED_WITH_PROVIDE);\r\n }\r\n return i18n;\r\n }\r\n}\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nfunction getScope(options, componentOptions) {\r\n // prettier-ignore\r\n return isEmptyObject(options)\r\n ? ('__i18n' in componentOptions)\r\n ? 'local'\r\n : 'global'\r\n : !options.useScope\r\n ? 'local'\r\n : options.useScope;\r\n}\r\nfunction getGlobalComposer(i18n) {\r\n // prettier-ignore\r\n return i18n.mode === 'composition'\r\n ? i18n.global\r\n : i18n.global.__composer\r\n ;\r\n}\r\nfunction getComposer(i18n, target, useComponent = false) {\r\n let composer = null;\r\n const root = target.root;\r\n let current = target.parent;\r\n while (current != null) {\r\n const i18nInternal = i18n;\r\n if (i18n.mode === 'composition') {\r\n composer = i18nInternal.__getInstance(current);\r\n }\r\n else {\r\n if (__VUE_I18N_LEGACY_API__) {\r\n const vueI18n = i18nInternal.__getInstance(current);\r\n if (vueI18n != null) {\r\n composer = vueI18n\r\n .__composer;\r\n if (useComponent &&\r\n composer &&\r\n !composer[InejctWithOption] // eslint-disable-line @typescript-eslint/no-explicit-any\r\n ) {\r\n composer = null;\r\n }\r\n }\r\n }\r\n }\r\n if (composer != null) {\r\n break;\r\n }\r\n if (root === current) {\r\n break;\r\n }\r\n current = current.parent;\r\n }\r\n return composer;\r\n}\r\nfunction setupLifeCycle(i18n, target, composer) {\r\n let emitter = null;\r\n {\r\n onMounted(() => {\r\n // inject composer instance to DOM for intlify-devtools\r\n if (((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) &&\r\n !false &&\r\n target.vnode.el) {\r\n target.vnode.el.__VUE_I18N__ = composer;\r\n emitter = createEmitter();\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const _composer = composer;\r\n _composer[EnableEmitter] && _composer[EnableEmitter](emitter);\r\n emitter.on('*', addTimelineEvent);\r\n }\r\n }, target);\r\n onUnmounted(() => {\r\n // remove composer instance from DOM for intlify-devtools\r\n if (((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) &&\r\n !false &&\r\n target.vnode.el &&\r\n target.vnode.el.__VUE_I18N__) {\r\n emitter && emitter.off('*', addTimelineEvent);\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const _composer = composer;\r\n _composer[DisableEmitter] && _composer[DisableEmitter]();\r\n delete target.vnode.el.__VUE_I18N__;\r\n }\r\n i18n.__deleteInstance(target);\r\n }, target);\r\n }\r\n}\r\nfunction useI18nForLegacy(instance, scope, root, options = {} // eslint-disable-line @typescript-eslint/no-explicit-any\r\n) {\r\n const isLocale = scope === 'local';\r\n const _composer = shallowRef(null);\r\n if (isLocale &&\r\n instance.proxy &&\r\n !(instance.proxy.$options.i18n || instance.proxy.$options.__i18n)) {\r\n throw createI18nError(I18nErrorCodes.MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION);\r\n }\r\n const _inheritLocale = isBoolean(options.inheritLocale)\r\n ? options.inheritLocale\r\n : true;\r\n const _locale = ref(\r\n // prettier-ignore\r\n isLocale && _inheritLocale\r\n ? root.locale.value\r\n : isString(options.locale)\r\n ? options.locale\r\n : DEFAULT_LOCALE);\r\n const _fallbackLocale = ref(\r\n // prettier-ignore\r\n isLocale && _inheritLocale\r\n ? root.fallbackLocale.value\r\n : isString(options.fallbackLocale) ||\r\n isArray(options.fallbackLocale) ||\r\n isPlainObject(options.fallbackLocale) ||\r\n options.fallbackLocale === false\r\n ? options.fallbackLocale\r\n : _locale.value);\r\n const _messages = ref(getLocaleMessages(_locale.value, options));\r\n // prettier-ignore\r\n const _datetimeFormats = ref(isPlainObject(options.datetimeFormats)\r\n ? options.datetimeFormats\r\n : { [_locale.value]: {} });\r\n // prettier-ignore\r\n const _numberFormats = ref(isPlainObject(options.numberFormats)\r\n ? options.numberFormats\r\n : { [_locale.value]: {} });\r\n // prettier-ignore\r\n const _missingWarn = isLocale\r\n ? root.missingWarn\r\n : isBoolean(options.missingWarn) || isRegExp(options.missingWarn)\r\n ? options.missingWarn\r\n : true;\r\n // prettier-ignore\r\n const _fallbackWarn = isLocale\r\n ? root.fallbackWarn\r\n : isBoolean(options.fallbackWarn) || isRegExp(options.fallbackWarn)\r\n ? options.fallbackWarn\r\n : true;\r\n // prettier-ignore\r\n const _fallbackRoot = isLocale\r\n ? root.fallbackRoot\r\n : isBoolean(options.fallbackRoot)\r\n ? options.fallbackRoot\r\n : true;\r\n // configure fall back to root\r\n const _fallbackFormat = !!options.fallbackFormat;\r\n // runtime missing\r\n const _missing = isFunction(options.missing) ? options.missing : null;\r\n // postTranslation handler\r\n const _postTranslation = isFunction(options.postTranslation)\r\n ? options.postTranslation\r\n : null;\r\n // prettier-ignore\r\n const _warnHtmlMessage = isLocale\r\n ? root.warnHtmlMessage\r\n : isBoolean(options.warnHtmlMessage)\r\n ? options.warnHtmlMessage\r\n : true;\r\n const _escapeParameter = !!options.escapeParameter;\r\n // prettier-ignore\r\n const _modifiers = isLocale\r\n ? root.modifiers\r\n : isPlainObject(options.modifiers)\r\n ? options.modifiers\r\n : {};\r\n // pluralRules\r\n const _pluralRules = options.pluralRules || (isLocale && root.pluralRules);\r\n // track reactivity\r\n function trackReactivityValues() {\r\n return [\r\n _locale.value,\r\n _fallbackLocale.value,\r\n _messages.value,\r\n _datetimeFormats.value,\r\n _numberFormats.value\r\n ];\r\n }\r\n // locale\r\n const locale = computed({\r\n get: () => {\r\n return _composer.value ? _composer.value.locale.value : _locale.value;\r\n },\r\n set: val => {\r\n if (_composer.value) {\r\n _composer.value.locale.value = val;\r\n }\r\n _locale.value = val;\r\n }\r\n });\r\n // fallbackLocale\r\n const fallbackLocale = computed({\r\n get: () => {\r\n return _composer.value\r\n ? _composer.value.fallbackLocale.value\r\n : _fallbackLocale.value;\r\n },\r\n set: val => {\r\n if (_composer.value) {\r\n _composer.value.fallbackLocale.value = val;\r\n }\r\n _fallbackLocale.value = val;\r\n }\r\n });\r\n // messages\r\n const messages = computed(() => {\r\n if (_composer.value) {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n return _composer.value.messages.value;\r\n }\r\n else {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n return _messages.value;\r\n }\r\n });\r\n const datetimeFormats = computed(() => _datetimeFormats.value);\r\n const numberFormats = computed(() => _numberFormats.value);\r\n function getPostTranslationHandler() {\r\n return _composer.value\r\n ? _composer.value.getPostTranslationHandler()\r\n : _postTranslation;\r\n }\r\n function setPostTranslationHandler(handler) {\r\n if (_composer.value) {\r\n _composer.value.setPostTranslationHandler(handler);\r\n }\r\n }\r\n function getMissingHandler() {\r\n return _composer.value ? _composer.value.getMissingHandler() : _missing;\r\n }\r\n function setMissingHandler(handler) {\r\n if (_composer.value) {\r\n _composer.value.setMissingHandler(handler);\r\n }\r\n }\r\n function warpWithDeps(fn) {\r\n trackReactivityValues();\r\n return fn();\r\n }\r\n function t(...args) {\r\n return _composer.value\r\n ? warpWithDeps(() => Reflect.apply(_composer.value.t, null, [...args]))\r\n : warpWithDeps(() => '');\r\n }\r\n function rt(...args) {\r\n return _composer.value\r\n ? Reflect.apply(_composer.value.rt, null, [...args])\r\n : '';\r\n }\r\n function d(...args) {\r\n return _composer.value\r\n ? warpWithDeps(() => Reflect.apply(_composer.value.d, null, [...args]))\r\n : warpWithDeps(() => '');\r\n }\r\n function n(...args) {\r\n return _composer.value\r\n ? warpWithDeps(() => Reflect.apply(_composer.value.n, null, [...args]))\r\n : warpWithDeps(() => '');\r\n }\r\n function tm(key) {\r\n return _composer.value ? _composer.value.tm(key) : {};\r\n }\r\n function te(key, locale) {\r\n return _composer.value ? _composer.value.te(key, locale) : false;\r\n }\r\n function getLocaleMessage(locale) {\r\n return _composer.value ? _composer.value.getLocaleMessage(locale) : {};\r\n }\r\n function setLocaleMessage(locale, message) {\r\n if (_composer.value) {\r\n _composer.value.setLocaleMessage(locale, message);\r\n _messages.value[locale] = message;\r\n }\r\n }\r\n function mergeLocaleMessage(locale, message) {\r\n if (_composer.value) {\r\n _composer.value.mergeLocaleMessage(locale, message);\r\n }\r\n }\r\n function getDateTimeFormat(locale) {\r\n return _composer.value ? _composer.value.getDateTimeFormat(locale) : {};\r\n }\r\n function setDateTimeFormat(locale, format) {\r\n if (_composer.value) {\r\n _composer.value.setDateTimeFormat(locale, format);\r\n _datetimeFormats.value[locale] = format;\r\n }\r\n }\r\n function mergeDateTimeFormat(locale, format) {\r\n if (_composer.value) {\r\n _composer.value.mergeDateTimeFormat(locale, format);\r\n }\r\n }\r\n function getNumberFormat(locale) {\r\n return _composer.value ? _composer.value.getNumberFormat(locale) : {};\r\n }\r\n function setNumberFormat(locale, format) {\r\n if (_composer.value) {\r\n _composer.value.setNumberFormat(locale, format);\r\n _numberFormats.value[locale] = format;\r\n }\r\n }\r\n function mergeNumberFormat(locale, format) {\r\n if (_composer.value) {\r\n _composer.value.mergeNumberFormat(locale, format);\r\n }\r\n }\r\n const wrapper = {\r\n get id() {\r\n return _composer.value ? _composer.value.id : -1;\r\n },\r\n locale,\r\n fallbackLocale,\r\n messages,\r\n datetimeFormats,\r\n numberFormats,\r\n get inheritLocale() {\r\n return _composer.value ? _composer.value.inheritLocale : _inheritLocale;\r\n },\r\n set inheritLocale(val) {\r\n if (_composer.value) {\r\n _composer.value.inheritLocale = val;\r\n }\r\n },\r\n get availableLocales() {\r\n return _composer.value\r\n ? _composer.value.availableLocales\r\n : Object.keys(_messages.value);\r\n },\r\n get modifiers() {\r\n return (_composer.value ? _composer.value.modifiers : _modifiers);\r\n },\r\n get pluralRules() {\r\n return (_composer.value ? _composer.value.pluralRules : _pluralRules);\r\n },\r\n get isGlobal() {\r\n return _composer.value ? _composer.value.isGlobal : false;\r\n },\r\n get missingWarn() {\r\n return _composer.value ? _composer.value.missingWarn : _missingWarn;\r\n },\r\n set missingWarn(val) {\r\n if (_composer.value) {\r\n _composer.value.missingWarn = val;\r\n }\r\n },\r\n get fallbackWarn() {\r\n return _composer.value ? _composer.value.fallbackWarn : _fallbackWarn;\r\n },\r\n set fallbackWarn(val) {\r\n if (_composer.value) {\r\n _composer.value.missingWarn = val;\r\n }\r\n },\r\n get fallbackRoot() {\r\n return _composer.value ? _composer.value.fallbackRoot : _fallbackRoot;\r\n },\r\n set fallbackRoot(val) {\r\n if (_composer.value) {\r\n _composer.value.fallbackRoot = val;\r\n }\r\n },\r\n get fallbackFormat() {\r\n return _composer.value ? _composer.value.fallbackFormat : _fallbackFormat;\r\n },\r\n set fallbackFormat(val) {\r\n if (_composer.value) {\r\n _composer.value.fallbackFormat = val;\r\n }\r\n },\r\n get warnHtmlMessage() {\r\n return _composer.value\r\n ? _composer.value.warnHtmlMessage\r\n : _warnHtmlMessage;\r\n },\r\n set warnHtmlMessage(val) {\r\n if (_composer.value) {\r\n _composer.value.warnHtmlMessage = val;\r\n }\r\n },\r\n get escapeParameter() {\r\n return _composer.value\r\n ? _composer.value.escapeParameter\r\n : _escapeParameter;\r\n },\r\n set escapeParameter(val) {\r\n if (_composer.value) {\r\n _composer.value.escapeParameter = val;\r\n }\r\n },\r\n t,\r\n getPostTranslationHandler,\r\n setPostTranslationHandler,\r\n getMissingHandler,\r\n setMissingHandler,\r\n rt,\r\n d,\r\n n,\r\n tm,\r\n te,\r\n getLocaleMessage,\r\n setLocaleMessage,\r\n mergeLocaleMessage,\r\n getDateTimeFormat,\r\n setDateTimeFormat,\r\n mergeDateTimeFormat,\r\n getNumberFormat,\r\n setNumberFormat,\r\n mergeNumberFormat\r\n };\r\n function sync(composer) {\r\n composer.locale.value = _locale.value;\r\n composer.fallbackLocale.value = _fallbackLocale.value;\r\n Object.keys(_messages.value).forEach(locale => {\r\n composer.mergeLocaleMessage(locale, _messages.value[locale]);\r\n });\r\n Object.keys(_datetimeFormats.value).forEach(locale => {\r\n composer.mergeDateTimeFormat(locale, _datetimeFormats.value[locale]);\r\n });\r\n Object.keys(_numberFormats.value).forEach(locale => {\r\n composer.mergeNumberFormat(locale, _numberFormats.value[locale]);\r\n });\r\n composer.escapeParameter = _escapeParameter;\r\n composer.fallbackFormat = _fallbackFormat;\r\n composer.fallbackRoot = _fallbackRoot;\r\n composer.fallbackWarn = _fallbackWarn;\r\n composer.missingWarn = _missingWarn;\r\n composer.warnHtmlMessage = _warnHtmlMessage;\r\n }\r\n onBeforeMount(() => {\r\n if (instance.proxy == null || instance.proxy.$i18n == null) {\r\n throw createI18nError(I18nErrorCodes.NOT_AVAILABLE_COMPOSITION_IN_LEGACY);\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const composer = (_composer.value = instance.proxy.$i18n\r\n .__composer);\r\n if (scope === 'global') {\r\n _locale.value = composer.locale.value;\r\n _fallbackLocale.value = composer.fallbackLocale.value;\r\n _messages.value = composer.messages.value;\r\n _datetimeFormats.value = composer.datetimeFormats.value;\r\n _numberFormats.value = composer.numberFormats.value;\r\n }\r\n else if (isLocale) {\r\n sync(composer);\r\n }\r\n });\r\n return wrapper;\r\n}\r\nconst globalExportProps = [\r\n 'locale',\r\n 'fallbackLocale',\r\n 'availableLocales'\r\n];\r\nconst globalExportMethods = ['t', 'rt', 'd', 'n', 'tm'] ;\r\nfunction injectGlobalFields(app, composer) {\r\n const i18n = Object.create(null);\r\n globalExportProps.forEach(prop => {\r\n const desc = Object.getOwnPropertyDescriptor(composer, prop);\r\n if (!desc) {\r\n throw createI18nError(I18nErrorCodes.UNEXPECTED_ERROR);\r\n }\r\n const wrap = isRef(desc.value) // check computed props\r\n ? {\r\n get() {\r\n return desc.value.value;\r\n },\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n set(val) {\r\n desc.value.value = val;\r\n }\r\n }\r\n : {\r\n get() {\r\n return desc.get && desc.get();\r\n }\r\n };\r\n Object.defineProperty(i18n, prop, wrap);\r\n });\r\n app.config.globalProperties.$i18n = i18n;\r\n globalExportMethods.forEach(method => {\r\n const desc = Object.getOwnPropertyDescriptor(composer, method);\r\n if (!desc || !desc.value) {\r\n throw createI18nError(I18nErrorCodes.UNEXPECTED_ERROR);\r\n }\r\n Object.defineProperty(app.config.globalProperties, `$${method}`, desc);\r\n });\r\n}\n\n// register message compiler at vue-i18n\r\nregisterMessageCompiler(compileToFunction);\r\n// register message resolver at vue-i18n\r\nregisterMessageResolver(resolveValue);\r\n// register fallback locale at vue-i18n\r\nregisterLocaleFallbacker(fallbackWithLocaleChain);\r\n{\r\n initFeatureFlags();\r\n}\r\n// NOTE: experimental !!\r\nif ((process.env.NODE_ENV !== 'production') || __INTLIFY_PROD_DEVTOOLS__) {\r\n const target = getGlobalThis();\r\n target.__INTLIFY__ = true;\r\n setDevToolsHook(target.__INTLIFY_DEVTOOLS_GLOBAL_HOOK__);\r\n}\r\nif ((process.env.NODE_ENV !== 'production')) ;\n\nexport { DatetimeFormat, I18nInjectionKey, NumberFormat, Translation, VERSION, castToVueI18n, createI18n, useI18n, vTDirective };\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n// runtime helper for setting properties on components\n// in a tree-shakable way\nexports.default = (sfc, props) => {\n const target = sfc.__vccOpts || sfc;\n for (const [key, val] of props) {\n target[key] = val;\n }\n return target;\n};\n","import { openBlock, createBlock, withKeys, withModifiers, renderSlot, createVNode, withDirectives, Fragment, renderList, toDisplayString, vShow, createCommentVNode, Transition, withCtx, createTextVNode } from 'vue';\n\nfunction isEmpty (opt) {\n if (opt === 0) return false\n if (Array.isArray(opt) && opt.length === 0) return true\n return !opt\n}\n\nfunction not (fun) {\n return (...params) => !fun(...params)\n}\n\nfunction includes (str, query) {\n /* istanbul ignore else */\n if (str === undefined) str = 'undefined';\n if (str === null) str = 'null';\n if (str === false) str = 'false';\n const text = str.toString().toLowerCase();\n return text.indexOf(query.trim()) !== -1\n}\n\nfunction filterOptions (options, search, label, customLabel) {\n return search ? options\n .filter((option) => includes(customLabel(option, label), search))\n .sort((a, b) => customLabel(a, label).length - customLabel(b, label).length) : options\n}\n\nfunction stripGroups (options) {\n return options.filter((option) => !option.$isLabel)\n}\n\nfunction flattenOptions (values, label) {\n return (options) =>\n options.reduce((prev, curr) => {\n /* istanbul ignore else */\n if (curr[values] && curr[values].length) {\n prev.push({\n $groupLabel: curr[label],\n $isLabel: true\n });\n return prev.concat(curr[values])\n }\n return prev\n }, [])\n}\n\nfunction filterGroups (search, label, values, groupLabel, customLabel) {\n return (groups) =>\n groups.map((group) => {\n /* istanbul ignore else */\n if (!group[values]) {\n console.warn(`Options passed to vue-multiselect do not contain groups, despite the config.`);\n return []\n }\n const groupOptions = filterOptions(group[values], search, label, customLabel);\n\n return groupOptions.length\n ? {\n [groupLabel]: group[groupLabel],\n [values]: groupOptions\n }\n : []\n })\n}\n\nconst flow = (...fns) => (x) => fns.reduce((v, f) => f(v), x);\n\nvar multiselectMixin = {\n data () {\n return {\n search: '',\n isOpen: false,\n preferredOpenDirection: 'below',\n optimizedHeight: this.maxHeight\n }\n },\n props: {\n /**\n * Decide whether to filter the results based on search query.\n * Useful for async filtering, where we search through more complex data.\n * @type {Boolean}\n */\n internalSearch: {\n type: Boolean,\n default: true\n },\n /**\n * Array of available options: Objects, Strings or Integers.\n * If array of objects, visible label will default to option.label.\n * If `labal` prop is passed, label will equal option['label']\n * @type {Array}\n */\n options: {\n type: Array,\n required: true\n },\n /**\n * Equivalent to the `multiple` attribute on a `` input.\n * @default 'Select option'\n * @type {String}\n */\n placeholder: {\n type: String,\n default: 'Select option'\n },\n /**\n * Allow to remove all selected values\n * @default true\n * @type {Boolean}\n */\n allowEmpty: {\n type: Boolean,\n default: true\n },\n /**\n * Reset this.internalValue, this.search after this.internalValue changes.\n * Useful if want to create a stateless dropdown.\n * @default false\n * @type {Boolean}\n */\n resetAfter: {\n type: Boolean,\n default: false\n },\n /**\n * Enable/disable closing after selecting an option\n * @default true\n * @type {Boolean}\n */\n closeOnSelect: {\n type: Boolean,\n default: true\n },\n /**\n * Function to interpolate the custom label\n * @default false\n * @type {Function}\n */\n customLabel: {\n type: Function,\n default (option, label) {\n if (isEmpty(option)) return ''\n return label ? option[label] : option\n }\n },\n /**\n * Disable / Enable tagging\n * @default false\n * @type {Boolean}\n */\n taggable: {\n type: Boolean,\n default: false\n },\n /**\n * String to show when highlighting a potential tag\n * @default 'Press enter to create a tag'\n * @type {String}\n */\n tagPlaceholder: {\n type: String,\n default: 'Press enter to create a tag'\n },\n /**\n * By default new tags will appear above the search results.\n * Changing to 'bottom' will revert this behaviour\n * and will proritize the search results\n * @default 'top'\n * @type {String}\n */\n tagPosition: {\n type: String,\n default: 'top'\n },\n /**\n * Number of allowed selected options. No limit if 0.\n * @default 0\n * @type {Number}\n */\n max: {\n type: [Number, Boolean],\n default: false\n },\n /**\n * Will be passed with all events as second param.\n * Useful for identifying events origin.\n * @default null\n * @type {String|Integer}\n */\n id: {\n default: null\n },\n /**\n * Limits the options displayed in the dropdown\n * to the first X options.\n * @default 1000\n * @type {Integer}\n */\n optionsLimit: {\n type: Number,\n default: 1000\n },\n /**\n * Name of the property containing\n * the group values\n * @default 1000\n * @type {String}\n */\n groupValues: {\n type: String\n },\n /**\n * Name of the property containing\n * the group label\n * @default 1000\n * @type {String}\n */\n groupLabel: {\n type: String\n },\n /**\n * Allow to select all group values\n * by selecting the group label\n * @default false\n * @type {Boolean}\n */\n groupSelect: {\n type: Boolean,\n default: false\n },\n /**\n * Array of keyboard keys to block\n * when selecting\n * @default 1000\n * @type {String}\n */\n blockKeys: {\n type: Array,\n default () {\n return []\n }\n },\n /**\n * Prevent from wiping up the search value\n * @default false\n * @type {Boolean}\n */\n preserveSearch: {\n type: Boolean,\n default: false\n },\n /**\n * Select 1st options if value is empty\n * @default false\n * @type {Boolean}\n */\n preselectFirst: {\n type: Boolean,\n default: false\n },\n /**\n * Prevent autofocus\n * @default false\n * @type {Boolean}\n */\n preventAutofocus: {\n type: Boolean,\n default: false\n }\n },\n mounted () {\n /* istanbul ignore else */\n if (!this.multiple && this.max) {\n console.warn('[Vue-Multiselect warn]: Max prop should not be used when prop Multiple equals false.');\n }\n if (\n this.preselectFirst &&\n !this.internalValue.length &&\n this.options.length\n ) {\n this.select(this.filteredOptions[0]);\n }\n },\n computed: {\n internalValue () {\n return this.modelValue || this.modelValue === 0\n ? Array.isArray(this.modelValue) ? this.modelValue : [this.modelValue]\n : []\n },\n filteredOptions () {\n const search = this.search || '';\n const normalizedSearch = search.toLowerCase().trim();\n\n let options = this.options.concat();\n\n /* istanbul ignore else */\n if (this.internalSearch) {\n options = this.groupValues\n ? this.filterAndFlat(options, normalizedSearch, this.label)\n : filterOptions(options, normalizedSearch, this.label, this.customLabel);\n } else {\n options = this.groupValues ? flattenOptions(this.groupValues, this.groupLabel)(options) : options;\n }\n\n options = this.hideSelected\n ? options.filter(not(this.isSelected))\n : options;\n\n /* istanbul ignore else */\n if (this.taggable && normalizedSearch.length && !this.isExistingOption(normalizedSearch)) {\n if (this.tagPosition === 'bottom') {\n options.push({isTag: true, label: search});\n } else {\n options.unshift({isTag: true, label: search});\n }\n }\n\n return options.slice(0, this.optionsLimit)\n },\n valueKeys () {\n if (this.trackBy) {\n return this.internalValue.map((element) => element[this.trackBy])\n } else {\n return this.internalValue\n }\n },\n optionKeys () {\n const options = this.groupValues ? this.flatAndStrip(this.options) : this.options;\n return options.map((element) => this.customLabel(element, this.label).toString().toLowerCase())\n },\n currentOptionLabel () {\n return this.multiple\n ? this.searchable ? '' : this.placeholder\n : this.internalValue.length\n ? this.getOptionLabel(this.internalValue[0])\n : this.searchable ? '' : this.placeholder\n }\n },\n watch: {\n internalValue () {\n /* istanbul ignore else */\n if (this.resetAfter && this.internalValue.length) {\n this.search = '';\n this.$emit('update:modelValue', this.multiple ? [] : null);\n }\n },\n search () {\n this.$emit('search-change', this.search);\n }\n },\n emits: ['open', 'search-change', 'close', 'select', 'update:modelValue', 'remove', 'tag'],\n methods: {\n /**\n * Returns the internalValue in a way it can be emited to the parent\n * @returns {Object||Array||String||Integer}\n */\n getValue () {\n return this.multiple\n ? this.internalValue\n : this.internalValue.length === 0\n ? null\n : this.internalValue[0]\n },\n /**\n * Filters and then flattens the options list\n * @param {Array}\n * @return {Array} returns a filtered and flat options list\n */\n filterAndFlat (options, search, label) {\n return flow(\n filterGroups(search, label, this.groupValues, this.groupLabel, this.customLabel),\n flattenOptions(this.groupValues, this.groupLabel)\n )(options)\n },\n /**\n * Flattens and then strips the group labels from the options list\n * @param {Array}\n * @return {Array} returns a flat options list without group labels\n */\n flatAndStrip (options) {\n return flow(\n flattenOptions(this.groupValues, this.groupLabel),\n stripGroups\n )(options)\n },\n /**\n * Updates the search value\n * @param {String}\n */\n updateSearch (query) {\n this.search = query;\n },\n /**\n * Finds out if the given query is already present\n * in the available options\n * @param {String}\n * @return {Boolean} returns true if element is available\n */\n isExistingOption (query) {\n return !this.options\n ? false\n : this.optionKeys.indexOf(query) > -1\n },\n /**\n * Finds out if the given element is already present\n * in the result value\n * @param {Object||String||Integer} option passed element to check\n * @returns {Boolean} returns true if element is selected\n */\n isSelected (option) {\n const opt = this.trackBy\n ? option[this.trackBy]\n : option;\n return this.valueKeys.indexOf(opt) > -1\n },\n /**\n * Finds out if the given option is disabled\n * @param {Object||String||Integer} option passed element to check\n * @returns {Boolean} returns true if element is disabled\n */\n isOptionDisabled (option) {\n return !!option.$isDisabled\n },\n /**\n * Returns empty string when options is null/undefined\n * Returns tag query if option is tag.\n * Returns the customLabel() results and casts it to string.\n *\n * @param {Object||String||Integer} Passed option\n * @returns {Object||String}\n */\n getOptionLabel (option) {\n if (isEmpty(option)) return ''\n /* istanbul ignore else */\n if (option.isTag) return option.label\n /* istanbul ignore else */\n if (option.$isLabel) return option.$groupLabel\n\n const label = this.customLabel(option, this.label);\n /* istanbul ignore else */\n if (isEmpty(label)) return ''\n return label\n },\n /**\n * Add the given option to the list of selected options\n * or sets the option as the selected option.\n * If option is already selected -> remove it from the results.\n *\n * @param {Object||String||Integer} option to select/deselect\n * @param {Boolean} block removing\n */\n select (option, key) {\n /* istanbul ignore else */\n if (option.$isLabel && this.groupSelect) {\n this.selectGroup(option);\n return\n }\n if (this.blockKeys.indexOf(key) !== -1 ||\n this.disabled ||\n option.$isDisabled ||\n option.$isLabel\n ) return\n /* istanbul ignore else */\n if (this.max && this.multiple && this.internalValue.length === this.max) return\n /* istanbul ignore else */\n if (key === 'Tab' && !this.pointerDirty) return\n if (option.isTag) {\n this.$emit('tag', option.label, this.id);\n this.search = '';\n if (this.closeOnSelect && !this.multiple) this.deactivate();\n } else {\n const isSelected = this.isSelected(option);\n\n if (isSelected) {\n if (key !== 'Tab') this.removeElement(option);\n return\n }\n\n if (this.multiple) {\n this.$emit('update:modelValue', this.internalValue.concat([option]));\n } else {\n this.$emit('update:modelValue', option);\n }\n\n this.$emit('select', option, this.id);\n\n /* istanbul ignore else */\n if (this.clearOnSelect) this.search = '';\n }\n /* istanbul ignore else */\n if (this.closeOnSelect) this.deactivate();\n },\n /**\n * Add the given group options to the list of selected options\n * If all group optiona are already selected -> remove it from the results.\n *\n * @param {Object||String||Integer} group to select/deselect\n */\n selectGroup (selectedGroup) {\n const group = this.options.find((option) => {\n return option[this.groupLabel] === selectedGroup.$groupLabel\n });\n\n if (!group) return\n\n if (this.wholeGroupSelected(group)) {\n this.$emit('remove', group[this.groupValues], this.id);\n\n const newValue = this.internalValue.filter(\n (option) => group[this.groupValues].indexOf(option) === -1\n );\n\n this.$emit('update:modelValue', newValue);\n } else {\n let optionsToAdd = group[this.groupValues].filter(\n option => !(this.isOptionDisabled(option) || this.isSelected(option))\n );\n\n // if max is defined then just select options respecting max\n if (this.max) {\n optionsToAdd.splice(this.max - this.internalValue.length);\n }\n\n this.$emit('select', optionsToAdd, this.id);\n this.$emit(\n 'update:modelValue',\n this.internalValue.concat(optionsToAdd)\n );\n }\n\n if (this.closeOnSelect) this.deactivate();\n },\n /**\n * Helper to identify if all values in a group are selected\n *\n * @param {Object} group to validated selected values against\n */\n wholeGroupSelected (group) {\n return group[this.groupValues].every((option) => this.isSelected(option) || this.isOptionDisabled(option)\n )\n },\n /**\n * Helper to identify if all values in a group are disabled\n *\n * @param {Object} group to check for disabled values\n */\n wholeGroupDisabled (group) {\n return group[this.groupValues].every(this.isOptionDisabled)\n },\n /**\n * Removes the given option from the selected options.\n * Additionally checks this.allowEmpty prop if option can be removed when\n * it is the last selected option.\n *\n * @param {type} option description\n * @return {type} description\n */\n removeElement (option, shouldClose = true) {\n /* istanbul ignore else */\n if (this.disabled) return\n /* istanbul ignore else */\n if (option.$isDisabled) return\n /* istanbul ignore else */\n if (!this.allowEmpty && this.internalValue.length <= 1) {\n this.deactivate();\n return\n }\n\n const index = typeof option === 'object'\n ? this.valueKeys.indexOf(option[this.trackBy])\n : this.valueKeys.indexOf(option);\n\n if (this.multiple) {\n const newValue = this.internalValue.slice(0, index).concat(this.internalValue.slice(index + 1));\n this.$emit('update:modelValue', newValue);\n } else {\n this.$emit('update:modelValue', null);\n }\n this.$emit('remove', option, this.id);\n\n /* istanbul ignore else */\n if (this.closeOnSelect && shouldClose) this.deactivate();\n },\n /**\n * Calls this.removeElement() with the last element\n * from this.internalValue (selected element Array)\n *\n * @fires this#removeElement\n */\n removeLastElement () {\n /* istanbul ignore else */\n if (this.blockKeys.indexOf('Delete') !== -1) return\n /* istanbul ignore else */\n if (this.search.length === 0 && Array.isArray(this.internalValue) && this.internalValue.length) {\n this.removeElement(this.internalValue[this.internalValue.length - 1], false);\n }\n },\n /**\n * Opens the multiselect’s dropdown.\n * Sets this.isOpen to TRUE\n */\n activate () {\n /* istanbul ignore else */\n if (this.isOpen || this.disabled) return\n\n this.adjustPosition();\n /* istanbul ignore else */\n if (this.groupValues && this.pointer === 0 && this.filteredOptions.length) {\n this.pointer = 1;\n }\n\n this.isOpen = true;\n /* istanbul ignore else */\n if (this.searchable) {\n if (!this.preserveSearch) this.search = '';\n if (!this.preventAutofocus) this.$nextTick(() => this.$refs.search && this.$refs.search.focus());\n } else if (!this.preventAutofocus) {\n if (typeof this.$el !== 'undefined') this.$el.focus();\n }\n this.$emit('open', this.id);\n },\n /**\n * Closes the multiselect’s dropdown.\n * Sets this.isOpen to FALSE\n */\n deactivate () {\n /* istanbul ignore else */\n if (!this.isOpen) return\n\n this.isOpen = false;\n /* istanbul ignore else */\n if (this.searchable) {\n if (typeof this.$refs.search !== 'undefined') this.$refs.search.blur();\n } else {\n if (typeof this.$el !== 'undefined') this.$el.blur();\n }\n if (!this.preserveSearch) this.search = '';\n this.$emit('close', this.getValue(), this.id);\n },\n /**\n * Call this.activate() or this.deactivate()\n * depending on this.isOpen value.\n *\n * @fires this#activate || this#deactivate\n * @property {Boolean} isOpen indicates if dropdown is open\n */\n toggle () {\n this.isOpen\n ? this.deactivate()\n : this.activate();\n },\n /**\n * Updates the hasEnoughSpace variable used for\n * detecting where to expand the dropdown\n */\n adjustPosition () {\n if (typeof window === 'undefined') return\n\n const spaceAbove = this.$el.getBoundingClientRect().top;\n const spaceBelow = window.innerHeight - this.$el.getBoundingClientRect().bottom;\n const hasEnoughSpaceBelow = spaceBelow > this.maxHeight;\n\n if (hasEnoughSpaceBelow || spaceBelow > spaceAbove || this.openDirection === 'below' || this.openDirection === 'bottom') {\n this.preferredOpenDirection = 'below';\n this.optimizedHeight = Math.min(spaceBelow - 40, this.maxHeight);\n } else {\n this.preferredOpenDirection = 'above';\n this.optimizedHeight = Math.min(spaceAbove - 40, this.maxHeight);\n }\n }\n }\n};\n\nvar pointerMixin = {\n data () {\n return {\n pointer: 0,\n pointerDirty: false\n }\n },\n props: {\n /**\n * Enable/disable highlighting of the pointed value.\n * @type {Boolean}\n * @default true\n */\n showPointer: {\n type: Boolean,\n default: true\n },\n optionHeight: {\n type: Number,\n default: 40\n }\n },\n computed: {\n pointerPosition () {\n return this.pointer * this.optionHeight\n },\n visibleElements () {\n return this.optimizedHeight / this.optionHeight\n }\n },\n watch: {\n filteredOptions () {\n this.pointerAdjust();\n },\n isOpen () {\n this.pointerDirty = false;\n },\n pointer () {\n this.$refs.search && this.$refs.search.setAttribute('aria-activedescendant', this.id + '-' + this.pointer.toString());\n }\n },\n methods: {\n optionHighlight (index, option) {\n return {\n 'multiselect__option--highlight': index === this.pointer && this.showPointer,\n 'multiselect__option--selected': this.isSelected(option)\n }\n },\n groupHighlight (index, selectedGroup) {\n if (!this.groupSelect) {\n return [\n 'multiselect__option--disabled',\n {'multiselect__option--group': selectedGroup.$isLabel}\n ]\n }\n\n const group = this.options.find((option) => {\n return option[this.groupLabel] === selectedGroup.$groupLabel\n });\n\n return group && !this.wholeGroupDisabled(group) ? [\n 'multiselect__option--group',\n {'multiselect__option--highlight': index === this.pointer && this.showPointer},\n {'multiselect__option--group-selected': this.wholeGroupSelected(group)}\n ] : 'multiselect__option--disabled'\n },\n addPointerElement ({key} = 'Enter') {\n /* istanbul ignore else */\n if (this.filteredOptions.length > 0) {\n this.select(this.filteredOptions[this.pointer], key);\n }\n this.pointerReset();\n },\n pointerForward () {\n /* istanbul ignore else */\n if (this.pointer < this.filteredOptions.length - 1) {\n this.pointer++;\n /* istanbul ignore next */\n if (this.$refs.list.scrollTop <= this.pointerPosition - (this.visibleElements - 1) * this.optionHeight) {\n this.$refs.list.scrollTop = this.pointerPosition - (this.visibleElements - 1) * this.optionHeight;\n }\n /* istanbul ignore else */\n if (\n this.filteredOptions[this.pointer] &&\n this.filteredOptions[this.pointer].$isLabel &&\n !this.groupSelect\n ) this.pointerForward();\n }\n this.pointerDirty = true;\n },\n pointerBackward () {\n if (this.pointer > 0) {\n this.pointer--;\n /* istanbul ignore else */\n if (this.$refs.list.scrollTop >= this.pointerPosition) {\n this.$refs.list.scrollTop = this.pointerPosition;\n }\n /* istanbul ignore else */\n if (\n this.filteredOptions[this.pointer] &&\n this.filteredOptions[this.pointer].$isLabel &&\n !this.groupSelect\n ) this.pointerBackward();\n } else {\n /* istanbul ignore else */\n if (\n this.filteredOptions[this.pointer] &&\n this.filteredOptions[0].$isLabel &&\n !this.groupSelect\n ) this.pointerForward();\n }\n this.pointerDirty = true;\n },\n pointerReset () {\n /* istanbul ignore else */\n if (!this.closeOnSelect) return\n this.pointer = 0;\n /* istanbul ignore else */\n if (this.$refs.list) {\n this.$refs.list.scrollTop = 0;\n }\n },\n pointerAdjust () {\n /* istanbul ignore else */\n if (this.pointer >= this.filteredOptions.length - 1) {\n this.pointer = this.filteredOptions.length\n ? this.filteredOptions.length - 1\n : 0;\n }\n\n if (this.filteredOptions.length > 0 &&\n this.filteredOptions[this.pointer].$isLabel &&\n !this.groupSelect\n ) {\n this.pointerForward();\n }\n },\n pointerSet (index) {\n this.pointer = index;\n this.pointerDirty = true;\n }\n }\n};\n\nvar script = {\n name: 'vue-multiselect',\n mixins: [multiselectMixin, pointerMixin],\n props: {\n /**\n * name attribute to match optional label element\n * @default ''\n * @type {String}\n */\n name: {\n type: String,\n default: ''\n },\n /**\n * Presets the selected options value.\n * @type {Object||Array||String||Integer}\n */\n modelValue: {\n type: null,\n default () {\n return []\n }\n },\n /**\n * String to show when pointing to an option\n * @default 'Press enter to select'\n * @type {String}\n */\n selectLabel: {\n type: String,\n default: 'Press enter to select'\n },\n /**\n * String to show when pointing to an option\n * @default 'Press enter to select'\n * @type {String}\n */\n selectGroupLabel: {\n type: String,\n default: 'Press enter to select group'\n },\n /**\n * String to show next to selected option\n * @default 'Selected'\n * @type {String}\n */\n selectedLabel: {\n type: String,\n default: 'Selected'\n },\n /**\n * String to show when pointing to an already selected option\n * @default 'Press enter to remove'\n * @type {String}\n */\n deselectLabel: {\n type: String,\n default: 'Press enter to remove'\n },\n /**\n * String to show when pointing to an already selected option\n * @default 'Press enter to remove'\n * @type {String}\n */\n deselectGroupLabel: {\n type: String,\n default: 'Press enter to deselect group'\n },\n /**\n * Decide whether to show pointer labels\n * @default true\n * @type {Boolean}\n */\n showLabels: {\n type: Boolean,\n default: true\n },\n /**\n * Limit the display of selected options. The rest will be hidden within the limitText string.\n * @default 99999\n * @type {Integer}\n */\n limit: {\n type: Number,\n default: 99999\n },\n /**\n * Sets maxHeight style value of the dropdown\n * @default 300\n * @type {Integer}\n */\n maxHeight: {\n type: Number,\n default: 300\n },\n /**\n * Function that process the message shown when selected\n * elements pass the defined limit.\n * @default 'and * more'\n * @param {Int} count Number of elements more than limit\n * @type {Function}\n */\n limitText: {\n type: Function,\n default: (count) => `and ${count} more`\n },\n /**\n * Set true to trigger the loading spinner.\n * @default False\n * @type {Boolean}\n */\n loading: {\n type: Boolean,\n default: false\n },\n /**\n * Disables the multiselect if true.\n * @default false\n * @type {Boolean}\n */\n disabled: {\n type: Boolean,\n default: false\n },\n /**\n * Fixed opening direction\n * @default ''\n * @type {String}\n */\n openDirection: {\n type: String,\n default: ''\n },\n /**\n * Shows slot with message about empty options\n * @default true\n * @type {Boolean}\n */\n showNoOptions: {\n type: Boolean,\n default: true\n },\n showNoResults: {\n type: Boolean,\n default: true\n },\n tabindex: {\n type: Number,\n default: 0\n }\n },\n computed: {\n hasOptionGroup () {\n return this.groupValues && this.groupLabel && this.groupSelect\n },\n isSingleLabelVisible () {\n return (\n (this.singleValue || this.singleValue === 0) &&\n (!this.isOpen || !this.searchable) &&\n !this.visibleValues.length\n )\n },\n isPlaceholderVisible () {\n return !this.internalValue.length && (!this.searchable || !this.isOpen)\n },\n visibleValues () {\n return this.multiple ? this.internalValue.slice(0, this.limit) : []\n },\n singleValue () {\n return this.internalValue[0]\n },\n deselectLabelText () {\n return this.showLabels ? this.deselectLabel : ''\n },\n deselectGroupLabelText () {\n return this.showLabels ? this.deselectGroupLabel : ''\n },\n selectLabelText () {\n return this.showLabels ? this.selectLabel : ''\n },\n selectGroupLabelText () {\n return this.showLabels ? this.selectGroupLabel : ''\n },\n selectedLabelText () {\n return this.showLabels ? this.selectedLabel : ''\n },\n inputStyle () {\n if (\n this.searchable ||\n (this.multiple && this.modelValue && this.modelValue.length)\n ) {\n // Hide input by setting the width to 0 allowing it to receive focus\n return this.isOpen\n ? {width: '100%'}\n : {width: '0', position: 'absolute', padding: '0'}\n }\n return ''\n },\n contentStyle () {\n return this.options.length\n ? {display: 'inline-block'}\n : {display: 'block'}\n },\n isAbove () {\n if (this.openDirection === 'above' || this.openDirection === 'top') {\n return true\n } else if (\n this.openDirection === 'below' ||\n this.openDirection === 'bottom'\n ) {\n return false\n } else {\n return this.preferredOpenDirection === 'above'\n }\n },\n showSearchInput () {\n return (\n this.searchable &&\n (this.hasSingleSelectedSlot &&\n (this.visibleSingleValue || this.visibleSingleValue === 0)\n ? this.isOpen\n : true)\n )\n }\n }\n};\n\nconst _hoisted_1 = {\n ref: \"tags\",\n class: \"multiselect__tags\"\n};\nconst _hoisted_2 = { class: \"multiselect__tags-wrap\" };\nconst _hoisted_3 = { class: \"multiselect__spinner\" };\nconst _hoisted_4 = { key: 0 };\nconst _hoisted_5 = { class: \"multiselect__option\" };\nconst _hoisted_6 = { class: \"multiselect__option\" };\nconst _hoisted_7 = /*#__PURE__*/createTextVNode(\"No elements found. Consider changing the search query.\");\nconst _hoisted_8 = { class: \"multiselect__option\" };\nconst _hoisted_9 = /*#__PURE__*/createTextVNode(\"List is empty.\");\n\nfunction render(_ctx, _cache, $props, $setup, $data, $options) {\n return (openBlock(), createBlock(\"div\", {\n tabindex: _ctx.searchable ? -1 : $props.tabindex,\n class: [{ 'multiselect--active': _ctx.isOpen, 'multiselect--disabled': $props.disabled, 'multiselect--above': $options.isAbove, 'multiselect--has-options-group': $options.hasOptionGroup }, \"multiselect\"],\n onFocus: _cache[14] || (_cache[14] = $event => (_ctx.activate())),\n onBlur: _cache[15] || (_cache[15] = $event => (_ctx.searchable ? false : _ctx.deactivate())),\n onKeydown: [\n _cache[16] || (_cache[16] = withKeys(withModifiers($event => (_ctx.pointerForward()), [\"self\",\"prevent\"]), [\"down\"])),\n _cache[17] || (_cache[17] = withKeys(withModifiers($event => (_ctx.pointerBackward()), [\"self\",\"prevent\"]), [\"up\"]))\n ],\n onKeypress: _cache[18] || (_cache[18] = withKeys(withModifiers($event => (_ctx.addPointerElement($event)), [\"stop\",\"self\"]), [\"enter\",\"tab\"])),\n onKeyup: _cache[19] || (_cache[19] = withKeys($event => (_ctx.deactivate()), [\"esc\"])),\n role: \"combobox\",\n \"aria-owns\": 'listbox-'+_ctx.id\n }, [\n renderSlot(_ctx.$slots, \"caret\", { toggle: _ctx.toggle }, () => [\n createVNode(\"div\", {\n onMousedown: _cache[1] || (_cache[1] = withModifiers($event => (_ctx.toggle()), [\"prevent\",\"stop\"])),\n class: \"multiselect__select\"\n }, null, 32 /* HYDRATE_EVENTS */)\n ]),\n renderSlot(_ctx.$slots, \"clear\", { search: _ctx.search }),\n createVNode(\"div\", _hoisted_1, [\n renderSlot(_ctx.$slots, \"selection\", {\n search: _ctx.search,\n remove: _ctx.removeElement,\n values: $options.visibleValues,\n isOpen: _ctx.isOpen\n }, () => [\n withDirectives(createVNode(\"div\", _hoisted_2, [\n (openBlock(true), createBlock(Fragment, null, renderList($options.visibleValues, (option, index) => {\n return renderSlot(_ctx.$slots, \"tag\", {\n option: option,\n search: _ctx.search,\n remove: _ctx.removeElement\n }, () => [\n (openBlock(), createBlock(\"span\", {\n class: \"multiselect__tag\",\n key: index\n }, [\n createVNode(\"span\", {\n textContent: toDisplayString(_ctx.getOptionLabel(option))\n }, null, 8 /* PROPS */, [\"textContent\"]),\n createVNode(\"i\", {\n tabindex: \"1\",\n onKeypress: withKeys(withModifiers($event => (_ctx.removeElement(option)), [\"prevent\"]), [\"enter\"]),\n onMousedown: withModifiers($event => (_ctx.removeElement(option)), [\"prevent\"]),\n class: \"multiselect__tag-icon\"\n }, null, 40 /* PROPS, HYDRATE_EVENTS */, [\"onKeypress\", \"onMousedown\"])\n ]))\n ])\n }), 256 /* UNKEYED_FRAGMENT */))\n ], 512 /* NEED_PATCH */), [\n [vShow, $options.visibleValues.length > 0]\n ]),\n (_ctx.internalValue && _ctx.internalValue.length > $props.limit)\n ? renderSlot(_ctx.$slots, \"limit\", { key: 0 }, () => [\n createVNode(\"strong\", {\n class: \"multiselect__strong\",\n textContent: toDisplayString($props.limitText(_ctx.internalValue.length - $props.limit))\n }, null, 8 /* PROPS */, [\"textContent\"])\n ])\n : createCommentVNode(\"v-if\", true)\n ]),\n createVNode(Transition, { name: \"multiselect__loading\" }, {\n default: withCtx(() => [\n renderSlot(_ctx.$slots, \"loading\", {}, () => [\n withDirectives(createVNode(\"div\", _hoisted_3, null, 512 /* NEED_PATCH */), [\n [vShow, $props.loading]\n ])\n ])\n ]),\n _: 3 /* FORWARDED */\n }),\n (_ctx.searchable)\n ? (openBlock(), createBlock(\"input\", {\n key: 0,\n ref: \"search\",\n name: $props.name,\n id: _ctx.id,\n type: \"text\",\n autocomplete: \"off\",\n spellcheck: \"false\",\n placeholder: _ctx.placeholder,\n style: $options.inputStyle,\n value: _ctx.search,\n disabled: $props.disabled,\n tabindex: $props.tabindex,\n onInput: _cache[2] || (_cache[2] = $event => (_ctx.updateSearch($event.target.value))),\n onFocus: _cache[3] || (_cache[3] = withModifiers($event => (_ctx.activate()), [\"prevent\"])),\n onBlur: _cache[4] || (_cache[4] = withModifiers($event => (_ctx.deactivate()), [\"prevent\"])),\n onKeyup: _cache[5] || (_cache[5] = withKeys($event => (_ctx.deactivate()), [\"esc\"])),\n onKeydown: [\n _cache[6] || (_cache[6] = withKeys(withModifiers($event => (_ctx.pointerForward()), [\"prevent\"]), [\"down\"])),\n _cache[7] || (_cache[7] = withKeys(withModifiers($event => (_ctx.pointerBackward()), [\"prevent\"]), [\"up\"])),\n _cache[9] || (_cache[9] = withKeys(withModifiers($event => (_ctx.removeLastElement()), [\"stop\"]), [\"delete\"]))\n ],\n onKeypress: _cache[8] || (_cache[8] = withKeys(withModifiers($event => (_ctx.addPointerElement($event)), [\"prevent\",\"stop\",\"self\"]), [\"enter\"])),\n class: \"multiselect__input\",\n \"aria-controls\": 'listbox-'+_ctx.id\n }, null, 44 /* STYLE, PROPS, HYDRATE_EVENTS */, [\"name\", \"id\", \"placeholder\", \"value\", \"disabled\", \"tabindex\", \"aria-controls\"]))\n : createCommentVNode(\"v-if\", true),\n ($options.isSingleLabelVisible)\n ? (openBlock(), createBlock(\"span\", {\n key: 1,\n class: \"multiselect__single\",\n onMousedown: _cache[10] || (_cache[10] = withModifiers((...args) => (_ctx.toggle && _ctx.toggle(...args)), [\"prevent\"]))\n }, [\n renderSlot(_ctx.$slots, \"singleLabel\", { option: $options.singleValue }, () => [\n createTextVNode(toDisplayString(_ctx.currentOptionLabel), 1 /* TEXT */)\n ])\n ], 32 /* HYDRATE_EVENTS */))\n : createCommentVNode(\"v-if\", true),\n ($options.isPlaceholderVisible)\n ? (openBlock(), createBlock(\"span\", {\n key: 2,\n class: \"multiselect__placeholder\",\n onMousedown: _cache[11] || (_cache[11] = withModifiers((...args) => (_ctx.toggle && _ctx.toggle(...args)), [\"prevent\"]))\n }, [\n renderSlot(_ctx.$slots, \"placeholder\", {}, () => [\n createTextVNode(toDisplayString(_ctx.placeholder), 1 /* TEXT */)\n ])\n ], 32 /* HYDRATE_EVENTS */))\n : createCommentVNode(\"v-if\", true)\n ], 512 /* NEED_PATCH */),\n createVNode(Transition, { name: \"multiselect\" }, {\n default: withCtx(() => [\n withDirectives(createVNode(\"div\", {\n class: \"multiselect__content-wrapper\",\n onFocus: _cache[12] || (_cache[12] = (...args) => (_ctx.activate && _ctx.activate(...args))),\n tabindex: \"-1\",\n onMousedown: _cache[13] || (_cache[13] = withModifiers(() => {}, [\"prevent\"])),\n style: { maxHeight: _ctx.optimizedHeight + 'px' },\n ref: \"list\"\n }, [\n createVNode(\"ul\", {\n class: \"multiselect__content\",\n style: $options.contentStyle,\n role: \"listbox\",\n id: 'listbox-'+_ctx.id\n }, [\n renderSlot(_ctx.$slots, \"beforeList\"),\n (_ctx.multiple && _ctx.max === _ctx.internalValue.length)\n ? (openBlock(), createBlock(\"li\", _hoisted_4, [\n createVNode(\"span\", _hoisted_5, [\n renderSlot(_ctx.$slots, \"maxElements\", {}, () => [\n createTextVNode(\"Maximum of \" + toDisplayString(_ctx.max) + \" options selected. First remove a selected option to select another.\", 1 /* TEXT */)\n ])\n ])\n ]))\n : createCommentVNode(\"v-if\", true),\n (!_ctx.max || _ctx.internalValue.length < _ctx.max)\n ? (openBlock(true), createBlock(Fragment, { key: 1 }, renderList(_ctx.filteredOptions, (option, index) => {\n return (openBlock(), createBlock(\"li\", {\n class: \"multiselect__element\",\n key: index,\n id: _ctx.id + '-' + index,\n role: !(option && (option.$isLabel || option.$isDisabled)) ? 'option' : null\n }, [\n (!(option && (option.$isLabel || option.$isDisabled)))\n ? (openBlock(), createBlock(\"span\", {\n key: 0,\n class: [_ctx.optionHighlight(index, option), \"multiselect__option\"],\n onClick: withModifiers($event => (_ctx.select(option)), [\"stop\"]),\n onMouseenter: withModifiers($event => (_ctx.pointerSet(index)), [\"self\"]),\n \"data-select\": option && option.isTag ? _ctx.tagPlaceholder : $options.selectLabelText,\n \"data-selected\": $options.selectedLabelText,\n \"data-deselect\": $options.deselectLabelText\n }, [\n renderSlot(_ctx.$slots, \"option\", {\n option: option,\n search: _ctx.search,\n index: index\n }, () => [\n createVNode(\"span\", null, toDisplayString(_ctx.getOptionLabel(option)), 1 /* TEXT */)\n ])\n ], 42 /* CLASS, PROPS, HYDRATE_EVENTS */, [\"onClick\", \"onMouseenter\", \"data-select\", \"data-selected\", \"data-deselect\"]))\n : createCommentVNode(\"v-if\", true),\n (option && (option.$isLabel || option.$isDisabled))\n ? (openBlock(), createBlock(\"span\", {\n key: 1,\n \"data-select\": _ctx.groupSelect && $options.selectGroupLabelText,\n \"data-deselect\": _ctx.groupSelect && $options.deselectGroupLabelText,\n class: [_ctx.groupHighlight(index, option), \"multiselect__option\"],\n onMouseenter: withModifiers($event => (_ctx.groupSelect && _ctx.pointerSet(index)), [\"self\"]),\n onMousedown: withModifiers($event => (_ctx.selectGroup(option)), [\"prevent\"])\n }, [\n renderSlot(_ctx.$slots, \"option\", {\n option: option,\n search: _ctx.search,\n index: index\n }, () => [\n createVNode(\"span\", null, toDisplayString(_ctx.getOptionLabel(option)), 1 /* TEXT */)\n ])\n ], 42 /* CLASS, PROPS, HYDRATE_EVENTS */, [\"data-select\", \"data-deselect\", \"onMouseenter\", \"onMousedown\"]))\n : createCommentVNode(\"v-if\", true)\n ], 8 /* PROPS */, [\"id\", \"role\"]))\n }), 128 /* KEYED_FRAGMENT */))\n : createCommentVNode(\"v-if\", true),\n withDirectives(createVNode(\"li\", null, [\n createVNode(\"span\", _hoisted_6, [\n renderSlot(_ctx.$slots, \"noResult\", { search: _ctx.search }, () => [\n _hoisted_7\n ])\n ])\n ], 512 /* NEED_PATCH */), [\n [vShow, $props.showNoResults && (_ctx.filteredOptions.length === 0 && _ctx.search && !$props.loading)]\n ]),\n withDirectives(createVNode(\"li\", null, [\n createVNode(\"span\", _hoisted_8, [\n renderSlot(_ctx.$slots, \"noOptions\", {}, () => [\n _hoisted_9\n ])\n ])\n ], 512 /* NEED_PATCH */), [\n [vShow, $props.showNoOptions && ((_ctx.options.length === 0 || ($options.hasOptionGroup === true && _ctx.filteredOptions.length === 0)) && !_ctx.search && !$props.loading)]\n ]),\n renderSlot(_ctx.$slots, \"afterList\")\n ], 12 /* STYLE, PROPS */, [\"id\"])\n ], 36 /* STYLE, HYDRATE_EVENTS */), [\n [vShow, _ctx.isOpen]\n ])\n ]),\n _: 3 /* FORWARDED */\n })\n ], 42 /* CLASS, PROPS, HYDRATE_EVENTS */, [\"tabindex\", \"aria-owns\"]))\n}\n\nscript.render = render;\n\nexport default script;\nexport { script as Multiselect, multiselectMixin, pointerMixin };\n","// https://github.com/jquense/yup/blob/3ad94724dc23175dd4378ac64c3d5396bebc52f2/src/util/printValue.js\nvar toString = Object.prototype.toString;\nvar errorToString = Error.prototype.toString;\nvar regExpToString = RegExp.prototype.toString;\nvar symbolToString = typeof Symbol !== 'undefined' ? Symbol.prototype.toString : function () {\n return '';\n};\nvar SYMBOL_REGEXP = /^Symbol\\((.*)\\)(.*)$/;\n\nfunction printNumber(val) {\n if (val !== +val) return 'NaN';\n var isNegativeZero = val === 0 && 1 / val < 0;\n return isNegativeZero ? '-0' : '' + val;\n}\n\nfunction printSimpleValue(val, quoteStrings) {\n if (quoteStrings === void 0) {\n quoteStrings = false;\n }\n\n if (val === null || val === true || val === false) return '' + val;\n var typeOf = typeof val;\n if (typeOf === 'number') return printNumber(val);\n if (typeOf === 'string') return quoteStrings ? \"\\\"\" + val + \"\\\"\" : val;\n if (typeOf === 'function') return '[Function ' + (val.name || 'anonymous') + ']';\n if (typeOf === 'symbol') return symbolToString.call(val).replace(SYMBOL_REGEXP, 'Symbol($1)');\n var tag = toString.call(val).slice(8, -1);\n if (tag === 'Date') return isNaN(val.getTime()) ? '' + val : val.toISOString(val);\n if (tag === 'Error' || val instanceof Error) return '[' + errorToString.call(val) + ']';\n if (tag === 'RegExp') return regExpToString.call(val);\n return null;\n}\n\nfunction printValue(value, quoteStrings) {\n var result = printSimpleValue(value, quoteStrings);\n if (result !== null) return result;\n return JSON.stringify(value, function (key, value) {\n var result = printSimpleValue(this[key], quoteStrings);\n if (result !== null) return result;\n return value;\n }, 2);\n}\n\n/*eslint-disable no-template-curly-in-string*/\n\nvar mixed = {\n \"default\": '${path} غير صالح.',\n required: '${path} هو حقل مطلوب',\n oneOf: '${path} يجب أن تكون واحدة من القيم التالية: ${values}',\n notOneOf: '${path} لا يجب أن تكون واحدة من القيم التالية: ${values}',\n notType: function notType(_ref) {\n var path = _ref.path,\n type = _ref.type,\n value = _ref.value,\n originalValue = _ref.originalValue;\n var isCast = originalValue != null && originalValue !== value;\n var msg = path + \" \\u064A\\u062C\\u0628 \\u0623\\u0646 \\u064A\\u0643\\u0648\\u0646 `\" + type + \"` \\u0646\\u0648\\u0639, \" + (\"\\u0648\\u0644\\u0643\\u0646 \\u0627\\u0644\\u0642\\u064A\\u0645\\u0629 \\u0627\\u0644\\u0646\\u0647\\u0627\\u0626\\u064A\\u0629 \\u0643\\u0627\\u0646\\u062A \\u0641\\u064A: `\" + printValue(value, true) + \"`\") + (isCast ? \" (\\u0627\\u0644\\u0645\\u062F\\u0644\\u0649 \\u0628\\u0647\\u0627 \\u0645\\u0646 \\u0642\\u064A\\u0645\\u0629 `\" + printValue(originalValue, true) + \"`).\" : '.');\n\n if (value === null) {\n msg += \"\\n \\u0625\\u0630\\u0627 \\u0643\\u0627\\u0646 \\u0627\\u0644\\u0645\\u0642\\u0635\\u0648\\u062F \\\"\\u0644\\u0627\\u063A\\u064A\\u0629\\\" \\u0643\\u0642\\u064A\\u0645\\u0629 \\u0641\\u0627\\u0631\\u063A\\u0629 \\u0645\\u0645\\u0627 \\u0644\\u0627 \\u0634\\u0643 \\u0641\\u064A\\u0647 \\u0644\\u0644\\u0627\\u062D\\u062A\\u0641\\u0627\\u0644 \\u0645\\u062E\\u0637\\u0637 \\u0643\\u0645\\u0627\" + ' `.nullable()`';\n }\n\n return msg;\n }\n};\nvar string = {\n length: '${path} يجب أن يكون بالضبط ${length} حرفا',\n min: '${path} يجب أن تكون على الأقل ${min} حرفا',\n max: '${path} يجب أن تكون على الأكثر ${max} حرفا',\n matches: '${path} يجب أن يطابق ما يلي: \"${regex}\"',\n email: '${path} يجب أن يكون عنوان بريد إلكتروني صالح',\n url: '${path} يجب أن يكون عنوان URL صالحا',\n trim: '${path} يجب أن تكون سلسلة قلص',\n lowercase: '${path} يجب أن تكون سلسلة صغيرة',\n uppercase: '${path} يجب أن تكون سلسلة الحالة العلوي'\n};\nvar number = {\n min: '${path} يجب أن تكون أكبر من أو يساوي ${min}',\n max: '${path} يجب أن يكون أقل من أو يساوي ${max}',\n lessThan: '${path} يجب أن يكون أقل من ${less}',\n moreThan: '${path} يجب أن تكون أكبر من ${more}',\n positive: '${path} يجب أن يكون رقما موجبا',\n negative: '${path} يجب أن يكون رقما سالبا',\n integer: '${path} يجب أن يكون رقما'\n};\nvar date = {\n min: '${path} يجب أن يكون حقل في وقت لاحق من ${min}',\n max: '${path} يجب أن يكون حقل في وقت سابق من ${max}'\n};\nvar _boolean = {};\nvar object = {\n noUnknown: '${path} حقل لا يمكن أن يكون مفاتيح غير محددة في شكل وجوه'\n};\nvar array = {\n min: 'يجب أن يكون ${path} حقل على الأقل ${min} من العناصر',\n max: '${path} يجب أن يكون الحقل أقل من أو يساوي إلى ${max} من العناصر'\n};\n\nvar ar = {\n __proto__: null,\n mixed: mixed,\n string: string,\n number: number,\n date: date,\n boolean: _boolean,\n object: object,\n array: array\n};\n\n/*eslint-disable no-template-curly-in-string*/\n\nvar mixed$1 = {\n \"default\": '${path} er ugyldig.',\n required: '${path} er et påkrævet felt',\n oneOf: '${path} skal være en af følgende værdier: ${values}',\n notOneOf: '${path} må ikke være en af følgende værdier: ${values}',\n notType: function notType(_ref) {\n var path = _ref.path,\n type = _ref.type,\n value = _ref.value,\n originalValue = _ref.originalValue;\n var isCast = originalValue != null && originalValue !== value;\n var msg = path + \" skal v\\xE6re en `\" + type + \" type, \" + (\"Men den endelige v\\xE6rdi var: `\" + printValue(value, true) + \"`\") + (isCast ? \" (cast fra v\\xE6rdien `\" + printValue(originalValue, true) + \"`).\" : '.');\n\n if (value === null) {\n msg += \"\\n Hvis \\\"null\\\" er beregnet til en tom v\\xE6rdi, skal du s\\xF8rge for at markere skemaet som\" + ' `.nullable()`';\n }\n\n return msg;\n }\n};\nvar string$1 = {\n length: '${path} skal være nøjagtigt ${length} tegn',\n min: '${path} skal være mindst ${min} tegn',\n max: '${path} skal højst være ${max} tegn',\n matches: '${path} skal matche følgende: \"${regex}\"',\n email: '${path} skal være en gyldig e-mail addresse',\n url: '${path} skal være en gyldig URL',\n trim: '${path} skal være en trimmet streng',\n lowercase: '${path} skal være med små bogstaver',\n uppercase: '${path} skal være med store bogstaver'\n};\nvar number$1 = {\n min: '${path} skal være større end eller lig med ${min}',\n max: '${path} skal være mindre end eller lig med ${max}',\n lessThan: '${path} skal være mindre end ${less}',\n moreThan: '${path} skal være større end ${more}',\n positive: '${path} skal være et positivt tal',\n negative: '${path} skal være et negativt tal',\n integer: '${path} skal være et heltal'\n};\nvar date$1 = {\n min: '${path} felt skal være senere end ${min}',\n max: '${path} felt skal være tidligere end ${max}'\n};\nvar _boolean$1 = {};\nvar object$1 = {\n noUnknown: '${path} feltet kan ikke have nøgler, der ikke er specificeret i objektets form'\n};\nvar array$1 = {\n min: '${path} feltet skal have mindst ${min} genstande',\n max: '${path} feltet skal have mindre end eller lig med ${max} genstande'\n};\n\nvar da = {\n __proto__: null,\n mixed: mixed$1,\n string: string$1,\n number: number$1,\n date: date$1,\n boolean: _boolean$1,\n object: object$1,\n array: array$1\n};\n\n/*eslint-disable no-template-curly-in-string*/\n\nvar mixed$2 = {\n \"default\": '${path} ist ungültig',\n required: '${path} ist ein Pflichtfeld',\n oneOf: '${path} muss einem der folgenden Werte entsprechen: ${values}',\n notOneOf: '${path} darf keinem der folgenden Werte entsprechen: ${values}',\n notType: function notType(_ref) {\n var path = _ref.path,\n type = _ref.type,\n value = _ref.value,\n originalValue = _ref.originalValue;\n var isCast = originalValue != null && originalValue !== value;\n var msg = path + \" muss vom Typ `\" + type + \"` sein, \" + (\"aber der Wert war: `\" + printValue(value, true) + \"`\") + (isCast ? \" (gecastet aus dem Wert `\" + printValue(originalValue, true) + \"`).\" : '.');\n\n if (value === null) {\n msg += \"\\n Wenn \\\"null\\\" als leerer Wert gedacht ist, m\\xFCssen Sie das Schema als `.nullable()` markieren.\";\n }\n\n return msg;\n }\n};\nvar string$2 = {\n length: '${path} muss genau ${length} Zeichen lang sein',\n min: '${path} muss mindestens ${min} Zeichen lang sein',\n max: '${path} darf höchstens ${max} Zeichen lang sein',\n matches: '${path} muss wie folgt aussehen: \"${regex}\"',\n email: '${path} muss eine gültige E-Mail-Adresse enthalten',\n url: '${path} muss eine gültige URL sein',\n trim: '${path} darf keine Leerzeichen am Anfang oder Ende enthalten',\n lowercase: '${path} darf nur Kleinschreibung enthalten',\n uppercase: '${path} darf nur Großschreibung enthalten'\n};\nvar number$2 = {\n min: '${path} muss größer oder gleich ${min} sein',\n max: '${path} muss kleiner oder gleich ${max} sein',\n lessThan: '${path} muss kleiner sein als ${less}',\n moreThan: '${path} muss größer sein als ${more}',\n positive: '${path} muss eine positive Zahl sein',\n negative: '${path} muss eine negative Zahl sein',\n integer: '${path} muss eine ganze Zahl sein'\n};\nvar date$2 = {\n min: '${path} muss später sein als ${min}',\n max: '${path} muss früher sein als ${max}'\n};\nvar _boolean$2 = {};\nvar object$2 = {\n noUnknown: '${path}-Feld darf keine Schlüssel verwenden, die nicht im \"Objekt-Shape\" definiert wurden'\n};\nvar array$2 = {\n min: '${path}-Feld muss mindestens ${min} Einträge haben',\n max: '${path}-Feld darf höchstens ${max} Einträge haben'\n};\n\nvar de = {\n __proto__: null,\n mixed: mixed$2,\n string: string$2,\n number: number$2,\n date: date$2,\n boolean: _boolean$2,\n object: object$2,\n array: array$2\n};\n\n/*eslint-disable no-template-curly-in-string*/\n\nvar mixed$3 = {\n \"default\": '${path} no es válido.',\n required: '${path} es un campo obligatorio',\n oneOf: '${path} debe ser uno de los siguientes valores: ${values}',\n notOneOf: '${path} no debe ser uno de los siguientes valores: ${values}',\n notType: function notType(_ref) {\n var path = _ref.path,\n type = _ref.type,\n value = _ref.value,\n originalValue = _ref.originalValue;\n var isCast = originalValue != null && originalValue !== value;\n var msg = path + \" debe ser un `\" + type + \"` Tipo, \" + (\"pero el valor final fue: `\" + printValue(value, true) + \"`\") + (isCast ? \" (Obtenido del valor `\" + printValue(originalValue, true) + \"`).\" : '.');\n\n if (value === null) {\n msg += \"\\n Si \\\"nulo\\\" es intencionalmente un valor vac\\xEDo, aseg\\xFArese de marcar el esquema como\" + ' `.nullable()`';\n }\n\n return msg;\n }\n};\nvar string$3 = {\n length: '${path} debe tener exactamente ${length} caracteres',\n min: '${path} debe tener como mínimo ${min} caracteres',\n max: '${path} debe tener como máximo ${max} caracteres',\n matches: '${path} debe coincidir con lo siguiente: \"${regex}\"',\n email: '${path} debe ser un correo electrónico válido',\n url: '${path} debe ser una URL válida',\n trim: '${path} debe ser una cadena recortada',\n lowercase: '${path} debe ser una cadena en minúsculas',\n uppercase: '${path} debe ser una cadena en mayúsculas'\n};\nvar number$3 = {\n min: '${path} debe ser mayor o igual a ${min}',\n max: '${path} debe ser menor o igual a ${max}',\n lessThan: '${path} debe ser menor a ${less}',\n moreThan: '${path} debe ser mayor a ${more}',\n positive: '${path} debe ser un número positivo',\n negative: '${path} debe ser un número negativo',\n integer: '${path} debe ser un entero'\n};\nvar date$3 = {\n min: 'El campo ${path} debe ser posterior a ${min}',\n max: 'El campo ${path} debe ser anterior a ${max}'\n};\nvar _boolean$3 = {};\nvar object$3 = {\n noUnknown: 'El campo ${path} tiene claves no especificadas en el objeto'\n};\nvar array$3 = {\n min: 'El campo ${path} debe tener como mínimo ${min} elementos',\n max: 'El campo ${path} debe tener como máximo ${max} elementos'\n};\n\nvar es = {\n __proto__: null,\n mixed: mixed$3,\n string: string$3,\n number: number$3,\n date: date$3,\n boolean: _boolean$3,\n object: object$3,\n array: array$3\n};\n\n/*eslint-disable no-template-curly-in-string*/\n\nvar mixed$4 = {\n \"default\": '${path} est invalide.',\n required: '${path} est un champ obligatoire',\n oneOf: \"${path} doit être l'une des valeurs suivantes : ${values}\",\n notOneOf: \"${path} ne doit pas être l'une des valeurs suivantes : ${values}\",\n notType: function notType(_ref) {\n var path = _ref.path,\n type = _ref.type,\n value = _ref.value,\n originalValue = _ref.originalValue;\n var isCast = originalValue != null && originalValue !== value;\n var msg = path + \" doit \\xEAtre un type `\" + type + \"`, \" + (\"mais la valeur finale \\xE9tait: `\" + printValue(value, true) + \"`\") + (isCast ? \" (coul\\xE9e de la valeur `\" + printValue(originalValue, true) + \"`).\" : '.');\n\n if (value === null) {\n msg += \"\\n Si \\xAB null \\xBB est con\\xE7ue comme une valeur vide assurez-vous de marquer le sch\\xE9ma comme\" + ' `.nullable()`';\n }\n\n return msg;\n }\n};\nvar string$4 = {\n length: '${path} doit être exactement ${length} caractères',\n min: '${path} doit être au moins ${min} caractères',\n max: '${path} doit être au plus ${max} caractères',\n matches: '${path} doit correspondre à ce qui suit : \"${regex}\"',\n email: '${path} doit être un email valide',\n url: '${path} doit être une URL valide',\n trim: '${path} doit être une chaîne garnie',\n lowercase: '${path} doit être une chaîne en minuscule',\n uppercase: '${path} doit être une chaîne de majuscules'\n};\nvar number$4 = {\n min: '${path} doit être supérieure ou égale à ${min}',\n max: '${path} doit être inférieur ou égal à ${max}',\n lessThan: '${path} doit être inférieure à ${less}',\n moreThan: '${path} doit être supérieure à ${more}',\n positive: '${path} doit être un nombre positif',\n negative: '${path} doit être un nombre négatif',\n integer: '${path} doit être un entier'\n};\nvar date$4 = {\n min: '${path} champ doit être au plus tôt ${min}',\n max: 'champ ${path} doit être au plus tard ${max}'\n};\nvar _boolean$4 = {};\nvar object$4 = {\n noUnknown: \"champ ${path} ne peut pas avoir des clés non spécifiées dans la forme de l'objet\"\n};\nvar array$4 = {\n min: 'champ ${path} doit avoir au moins ${min} articles',\n max: '${path} champ doit avoir inférieur ou égal à ${max} articles'\n};\n\nvar fr = {\n __proto__: null,\n mixed: mixed$4,\n string: string$4,\n number: number$4,\n date: date$4,\n boolean: _boolean$4,\n object: object$4,\n array: array$4\n};\n\n/*eslint-disable no-template-curly-in-string*/\n\nvar mixed$5 = {\n \"default\": '${path} לא קיים או לא תקין',\n required: '${path} הינו שדה חובה',\n oneOf: 'על ${path} להיות מהערכים הבאים: ${values}',\n notOneOf: 'אסור ${path} להיות מהערכים הבאים: ${values}',\n notType: function notType(_ref) {\n var path = _ref.path,\n type = _ref.type,\n value = _ref.value,\n originalValue = _ref.originalValue;\n var isCast = originalValue != null && originalValue !== value;\n var msg = path + \" \\u05D7\\u05D9\\u05D9\\u05D1 \\u05DC\\u05D4\\u05D9\\u05D5\\u05EA \\u05DE\\u05E1\\u05D5\\u05D2 `\" + type + \"`, \" + (\"\\u05D0\\u05D1\\u05DC \\u05D4\\u05EA\\u05E7\\u05D1\\u05DC: `\" + printValue(value, true) + \"`\") + (isCast ? \" (cast from the value `\" + printValue(originalValue, true) + \"`).\" : '.');\n\n if (value === null) {\n msg += \"\\n If \\\"null\\\" is intended as an empty value be sure to mark the schema as `.nullable()`\";\n }\n\n return msg;\n }\n};\nvar string$5 = {\n length: '${path} חייב להכיל ${length} תווים בדיוק',\n min: '${path} חייב להכיל לפחות ${min} תווים',\n max: '${path} חייב להכיל פחות מ${max} תווים',\n matches: '${path} חייב להיות זהה ל: \"${regex}\"',\n email: '${path} צריך להיות מייל חוקי',\n url: '${path} צריך להיות כתובת חוקית',\n trim: '${path} must be a trimmed string',\n lowercase: '${path} must be a lowercase string',\n uppercase: '${path} must be a upper case string'\n};\nvar number$5 = {\n min: '${path} חייב להיות גדול או שווה ל ${min}',\n max: '${path}חייב להיות קטן או שווה ל ${max}',\n lessThan: '${path} חייב להיות קטן מ ${less}',\n moreThan: '${path} חייב להיות גדול מ ${more}',\n positive: '${path} מוכרח להיות חיובי',\n negative: '${path} מוכרח להיות שלילי',\n integer: '${path} חייב להיות מספר שלם'\n};\nvar date$5 = {\n min: '${path} צריך להיות אחרי ${min}',\n max: '${path} צריך להיות לפני ${max}'\n};\nvar _boolean$5 = {};\nvar object$5 = {\n noUnknown: '${path} חייב להכיל את התבנית הספציפית של אובייקט התבנית'\n};\nvar array$5 = {\n min: '${path} צריך להכיל לפחות ${min} פריטים',\n max: '${path} צריך להכיל פחות מ ${max} פריטים'\n};\n\nvar he = {\n __proto__: null,\n mixed: mixed$5,\n string: string$5,\n number: number$5,\n date: date$5,\n boolean: _boolean$5,\n object: object$5,\n array: array$5\n};\n\n/*eslint-disable no-template-curly-in-string*/\n\nvar mixed$6 = {\n \"default\": '${path} tidak valid.',\n required: '${path} wajib diisi',\n oneOf: '${path} tidak valid',\n notOneOf: '${path} tidak valid',\n notType: function notType(_ref) {\n var path = _ref.path,\n type = _ref.type,\n value = _ref.value,\n originalValue = _ref.originalValue;\n var isCast = originalValue != null && originalValue !== value;\n var msg = path + \" harus merupakan tipe `\" + type + \"`, \" + (\"tetapi nilai akhir adalah: `\" + printValue(value, true) + \"`\") + (isCast ? \" (dilemparkan dari nilai `\" + printValue(originalValue, true) + \"`).\" : '.');\n\n if (value === null) {\n msg += \"\\n Jika \\\"null\\\" dimaksudkan sebagai nilai kosong, pastikan untuk menandai skema sebagai\" + ' `.nullable()`';\n }\n\n return msg;\n }\n};\nvar string$6 = {\n length: '${path} harus persis ${length} karakter',\n min: '${path} harus setidaknya ${min} karakter',\n max: '${path} harus paling banyak ${max} karakter',\n matches: '${path} harus cocok dengan yang berikut: \"${regex}\"',\n email: '${path} harus merupakan email yang valid',\n url: '${path} harus merupakan url yang valid',\n trim: '${path} harus merupakan string yang dipangkas',\n lowercase: '${path} harus merupakan lowercase',\n uppercase: '${path} harus merupakan uppercase'\n};\nvar number$6 = {\n min: '${path} harus lebih besar dari atau sama dengan ${min}',\n max: '${path} harus kurang dari atau sama dengan ${max}',\n lessThan: '${path} harus kurang dari ${less}',\n moreThan: '${path} harus lebih besar dari ${more}',\n positive: '${path} harus merupakan bilangan positif',\n negative: '${path} harus merupakan bilangan negatif',\n integer: '${path} harus merupakan bilangan bulat'\n};\nvar date$6 = {\n min: '${path} harus lebih lambat dari ${min}',\n max: '${path} harus lebih awal dari ${max}'\n};\nvar _boolean$6 = {};\nvar object$6 = {\n noUnknown: '${path} tidak dapat memiliki kunci yang tidak ditentukan dalam bentuk objek'\n};\nvar array$6 = {\n min: '${path} harus memiliki setidaknya ${min} item',\n max: '${path} harus memiliki kurang dari atau sama dengan item ${max}'\n};\n\nvar id = {\n __proto__: null,\n mixed: mixed$6,\n string: string$6,\n number: number$6,\n date: date$6,\n boolean: _boolean$6,\n object: object$6,\n array: array$6\n};\n\n/*eslint-disable no-template-curly-in-string*/\n\nvar mixed$7 = {\n \"default\": '${path} non è valido.',\n required: '${path} è un campo obbligatorio',\n oneOf: '${path} deve contenere uno dei seguenti valori: ${values}',\n notOneOf: '${path} deve essere diverso dai seguenti valori: ${values}',\n notType: function notType(_ref) {\n var path = _ref.path,\n type = _ref.type,\n value = _ref.value,\n originalValue = _ref.originalValue;\n var isCast = originalValue != null && originalValue !== value;\n var msg = path + \" deve essere un `\" + type + \"` tipo, \" + (\"ma il valore finale \\xE8: `\" + printValue(value, true) + \"`\") + (isCast ? \" (valore originale: `\" + printValue(originalValue, true) + \"`).\" : '.');\n\n if (value === null) {\n msg += \"\\n Se \\\"null\\\" \\xE8 inteso come un valore vuoto assicurarsi di settare lo schema come\" + ' `.nullable()`';\n }\n\n return msg;\n }\n};\nvar string$7 = {\n length: '${path} deve avere esattamente ${length} caratteri',\n min: '${path} deve avere almeno ${min} caratteri',\n max: '${path} deve avere al massimo ${max} caratteri',\n matches: '${path} deve corrispondere al seguente: \"${regex}\"',\n email: '${path} deve essere un indirizzo email valido',\n url: '${path} deve essere un URL valido',\n trim: '${path} deve essere una stringa senza spazi iniziali/finali',\n lowercase: '${path} deve essere una stringa in minuscolo',\n uppercase: '${path} deve essere una stringa in maiuscolo'\n};\nvar number$7 = {\n min: '${path} deve essere maggiore o uguale a ${min}',\n max: '${path} deve essere inferiore o uguale a ${max}',\n lessThan: '${path} deve essere inferiore a ${less}',\n moreThan: '${path} deve essere maggiore di ${more}',\n positive: '${path} deve essere un numero positivo',\n negative: '${path} deve essere un numero negativo',\n integer: '${path} deve essere un numero intero'\n};\nvar date$7 = {\n min: '${path} deve essere successiva al ${min}',\n max: '${path} deve essere precedente al ${max}'\n};\nvar _boolean$7 = {};\nvar object$7 = {\n noUnknown: \"${path} contiene delle chiavi non specificate nella forma dell'oggetto\"\n};\nvar array$7 = {\n min: '${path} deve avere almeno ${min} elementi',\n max: '${path} non deve avere più di ${max} elementi'\n};\n\nvar it = {\n __proto__: null,\n mixed: mixed$7,\n string: string$7,\n number: number$7,\n date: date$7,\n boolean: _boolean$7,\n object: object$7,\n array: array$7\n};\n\n/*eslint-disable no-template-curly-in-string*/\n\nvar mixed$8 = {\n \"default\": '${path} er ugyldig.',\n required: '${path} er et nødvendig felt',\n oneOf: '${path} må være en av de følgende verdier: ${values}',\n notOneOf: '${path} må ikke være en av de følgende verdier: ${values}',\n notType: function notType(_ref) {\n var path = _ref.path,\n type = _ref.type,\n value = _ref.value,\n originalValue = _ref.originalValue;\n var isCast = originalValue != null && originalValue !== value;\n var msg = path + \" m\\xE5 v\\xE6re en `\" + type + \"` typen, \" + (\"men den endelige verdien var: `\" + printValue(value, true) + \"`\") + (isCast ? \" (st\\xF8pt fra verdien `\" + printValue(originalValue, true) + \"`).\" : '.');\n\n if (value === null) {\n msg += \"\\n Hvis \\\"null\\\" er ment som en tom verdi s\\xF8rg for \\xE5 markere skjemaet som\" + ' `.nullable()`';\n }\n\n return msg;\n }\n};\nvar string$8 = {\n length: '${path} må være nøyaktig ${length} tegn',\n min: '${path} må være minst ${min} tegn',\n max: '${path} må være mest ${max} tegn',\n matches: '${path} må samsvare med følgende: \"${regex}\"',\n email: '${path} må være en gyldig e-post',\n url: '${path} må være en gyldig nettadresse',\n trim: '${path} må være en trimmet streng',\n lowercase: '${path} må være i små bokstaver',\n uppercase: '${path} må være i store bokstaver'\n};\nvar number$8 = {\n min: '${path} må være større enn eller lik ${min}',\n max: '${path} må være mindre enn eller lik ${max}',\n lessThan: '${path} må være mindre enn ${less}',\n moreThan: '${path} må være større enn ${more}',\n positive: '${path} må være et positivt tall',\n negative: '${path} må være et negativt tall',\n integer: '${path} må være et heltall'\n};\nvar date$8 = {\n min: '${path} feltet må være senere enn ${min}',\n max: '${path} feltet må være tidligere enn ${max}'\n};\nvar _boolean$8 = {};\nvar object$8 = {\n noUnknown: '${path} felt kan ikke har nøkler som ikke er spesifisert i objektet form'\n};\nvar array$8 = {\n min: '${path} feltet må ha minst ${min} elementer',\n max: '${path} feltet må ha mindre enn eller lik ${max} elementer'\n};\n\nvar nb = {\n __proto__: null,\n mixed: mixed$8,\n string: string$8,\n number: number$8,\n date: date$8,\n boolean: _boolean$8,\n object: object$8,\n array: array$8\n};\n\n/*eslint-disable no-template-curly-in-string*/\n\nvar mixed$9 = {\n \"default\": '${path} is ongeldig.',\n required: '${path} is een verplicht veld',\n oneOf: '${path} moet één van de volgende waarden zijn: ${values}',\n notOneOf: '${path} mag niet een van de volgende waarden zijn: ${values}: ',\n notType: function notType(_ref) {\n var path = _ref.path,\n type = _ref.type,\n value = _ref.value,\n originalValue = _ref.originalValue;\n var isCast = originalValue != null && originalValue !== value;\n var msg = path + \" moet een `\" + type + \"` zijn, \" + (\"maar de uiteindelijke waarde was: `\" + printValue(value, true) + \"`\") + (isCast ? \" (gegoten uit de waarde `\" + printValue(originalValue, true) + \"`).\" : '.');\n\n if (value === null) {\n msg += \"\\n Als \\\"null\\\" is bedoeld als een lege waarde moet u het schema markeren als\" + ' `.nullable()`';\n }\n\n return msg;\n }\n};\nvar string$9 = {\n length: '${path} moet precies ${length} karakters lang zijn',\n min: '${path} moet minimaal ${min} karakters bevatten',\n max: '${path} mag maximaal ${max} karakters bevatten',\n matches: '${path} moet overeenkomen met het volgende: \"${regex}\"',\n email: '${path} moet een geldig e-mailadres zijn',\n url: '${path} moet een geldige URL zijn',\n trim: '${path} mag geen begin- of eindspaties bevatten',\n lowercase: '${path} mag alleen bestaan uit kleine letters',\n uppercase: '${path} mag alleen bestaan uit hoofdletters'\n};\nvar number$9 = {\n min: '${path} moet groter dan of gelijk zijn aan ${min}',\n max: '${path} moet lager dan of gelijk zijn aan ${max}',\n lessThan: '${path} moet lager zijn dan ${less}',\n moreThan: '${path} moet hoger zijn dan ${more}',\n positive: '${path} moet een positief getal zijn',\n negative: '${path} moet negatief getal zijn',\n integer: '${path} moet een getal zijn'\n};\nvar date$9 = {\n min: '${path} moet later dan ${min} zijn',\n max: '${path} moet eerder dan ${max} zijn'\n};\nvar _boolean$9 = {};\nvar object$9 = {\n noUnknown: '${path} mag geen waarden bevatten die niet zijn opgegeven in het object'\n};\nvar array$9 = {\n min: '${path} moet ten minste ${min} items bevatten',\n max: '${path} moet minder of gelijk zijn aan ${max} items'\n};\n\nvar nl = {\n __proto__: null,\n mixed: mixed$9,\n string: string$9,\n number: number$9,\n date: date$9,\n boolean: _boolean$9,\n object: object$9,\n array: array$9\n};\n\n/*eslint-disable no-template-curly-in-string*/\n\nvar mixed$a = {\n \"default\": '${path} é inválido.',\n required: '${path} é um campo obrigatório',\n oneOf: '${path} deve ser um dos seguintes valores: ${values}',\n notOneOf: '${path} não deve ser um dos seguintes valores: ${values}',\n notType: function notType(_ref) {\n var path = _ref.path,\n type = _ref.type,\n value = _ref.value,\n originalValue = _ref.originalValue;\n var isCast = originalValue != null && originalValue !== value;\n var msg = path + \" deve ser um tipo de `\" + type + \"`, \" + (\"Mas o valor final foi: `\" + printValue(value, true) + \"`\") + (isCast ? \" (Elenco do valor `\" + printValue(originalValue, true) + \"`).\" : '.');\n\n if (value === null) {\n msg += \"\\n Se \\\"null\\\" pretender como um valor vazio, certifique-se de marcar o esquema como\" + ' `.nullable()`';\n }\n\n return msg;\n }\n};\nvar string$a = {\n length: '${path} deve ser exatamente ${length} caracteres',\n min: '${path} deve ser pelo menos ${min} caracteres',\n max: '${path} deve ser no máximo ${max} caracteres',\n matches: '${path} deve corresponder ao seguinte: \"${regex}\"',\n email: '${path} deve ser um email válido',\n url: '${path} deve ser um URL válido',\n trim: '${path} deve ser uma corda aparada',\n lowercase: '${path} deve ser uma cadeia minúscula',\n uppercase: '${path} deve ser uma cadeia maiúscula'\n};\nvar number$a = {\n min: '${path} deve ser maior ou igual a ${min}',\n max: '${path} deve ser menor ou igual a ${max}',\n lessThan: '${path} deve ser menor que ${less}',\n moreThan: '${path} deve ser maior que ${more}',\n positive: '${path} deve ser um número positivo',\n negative: '${path} deve ser um número negativo',\n integer: '${path} deve ser um inteiro'\n};\nvar date$a = {\n min: 'Campo ${path} deve ser mais tarde do que ${min}',\n max: '${path} deve ser mais cedo do que ${max}'\n};\nvar _boolean$a = {};\nvar object$a = {\n noUnknown: 'Campo ${path} não pode ter chaves não especificadas na forma do objeto'\n};\nvar array$a = {\n min: 'O campo ${path} deve ter pelo menos ${min} itens',\n max: 'O campo ${path} deve ter menos ou igual a itens ${max}'\n};\n\nvar pt = {\n __proto__: null,\n mixed: mixed$a,\n string: string$a,\n number: number$a,\n date: date$a,\n boolean: _boolean$a,\n object: object$a,\n array: array$a\n};\n\n/*eslint-disable no-template-curly-in-string*/\n\nvar mixed$b = {\n \"default\": '${path} geçerli değildir',\n required: '${path} zorunlu bir alandır',\n oneOf: '${path} bu değerlerden biri olmak zorundadır: ${values}',\n notOneOf: '${path} bu değerlerden biri olmamalıdır.: ${values}',\n notType: function notType(_ref) {\n var path = _ref.path,\n type = _ref.type,\n value = _ref.value,\n originalValue = _ref.originalValue;\n var isCast = originalValue != null && originalValue !== value;\n var msg = path + \", `\" + type + \"`, t\\xFCr\\xFCnde olmak zorundad\\u0131r\" + (\"fakat son de\\u011Fer budur: `\" + printValue(value, true) + \"`\") + (isCast ? \"\\xE7evirilen orjinal de\\u011Fer: ( `\" + printValue(originalValue, true) + \"`).\" : '.');\n\n if (value === null) {\n msg += \"\\n \\\"null\\\" olarak tan\\u0131mlanm\\u0131\\u015F ise \\u015Femay\\u0131 \\u015Fu \\u015Fekilde i\\u015Faretledi\\u011Finizden emin olun: \" + ' `.nullable()`';\n }\n\n return msg;\n }\n};\nvar string$b = {\n length: '${path}, ${length} karakter olmalıdır',\n min: '${path} en az ${min} karakter olmalıdır',\n max: '${path} en fazla ${max} karakter olmalıdır',\n matches: '${path}, \"${regex}\" ile eşleşmelidir',\n email: '${path} geçerli bir email olmalıdır',\n url: '${path} geçerli bir url olmalıdır',\n trim: '${path} kırpılmış olmalıdır',\n lowercase: '${path} küçük harflerden oluşmalıdır',\n uppercase: '${path} büyük harflerden oluşmalıdır'\n};\nvar number$b = {\n min: '${path}, en az ${min} veya daha fazla hane olmalıdır',\n max: '${path} en fazla ${max} veya daha az hane olmalıdır',\n lessThan: '${path}, ${less} haneden az olmalıdır',\n moreThan: '${path}, ${more} haneden fazla olmalıdır',\n positive: '${path} pozitif bir sayı olmalıdır',\n negative: '${path} negatif bir sayı olmalıdır',\n integer: '${path} bir tamsayı olmalıdır'\n};\nvar date$b = {\n min: '${path}, ${min} tarihinden ileri bir tarih olmalıdır',\n max: '${path}, ${max} tarihinden önce bir tarih olmalıdır'\n};\nvar _boolean$b = {};\nvar object$b = {\n noUnknown: '${path} alanında nesne olmayan değerler bulunamaz'\n};\nvar array$b = {\n min: '${path}, en az ${min} eleman içermelidir',\n max: '${path}, en fazla ${max} eleman içermelidir'\n};\n\nvar tr = {\n __proto__: null,\n mixed: mixed$b,\n string: string$b,\n number: number$b,\n date: date$b,\n boolean: _boolean$b,\n object: object$b,\n array: array$b\n};\n\n/*eslint-disable no-template-curly-in-string*/\n\nvar mixed$c = {\n \"default\": '${path} neteisinga.',\n required: '${path} yra būtinas laukas',\n oneOf: '${path} turi būti iš šių verčių: ${values}',\n notOneOf: '${path} neturi būti iš šių verčių: ${values}',\n notType: function notType(_ref) {\n var path = _ref.path,\n type = _ref.type,\n value = _ref.value,\n originalValue = _ref.originalValue;\n var isCast = originalValue != null && originalValue !== value;\n var msg = path + \" turi b\\u016Bti `\" + type + \"` tipas, \" + (\"Bet galutin\\u0117 vert\\u0117 buvo: `\" + printValue(value, true) + \"` `\") + (isCast ? \" (I\\u0161meskite i\\u0161 vert\\u0117s `\" + printValue(originalValue, true) + \"` `).\" : '.');\n\n if (value === null) {\n msg += \"\\n Jei \\u201Enulis\\u201C yra skirtas kaip tu\\u0161\\u010Dia vert\\u0117, b\\u016Btinai pa\\u017Eym\\u0117kite schem\\u0105 kaip\" + ' `.nullable()`';\n }\n\n return msg;\n }\n};\nvar string$c = {\n length: '${path} turi būti iš ${length} simbolių',\n min: '${path} turi būti bent ${min} simboliai',\n max: '${path} turi būti daugiausia iš ${max} simbolių',\n matches: '${path} turi atitikti šiuos dalykus: „${regex}“',\n email: '${path} turi būti galiojantis el. adresas',\n url: '${path} turi būti galiojantis URL',\n trim: '${path} turi būti be tarpų pradžioje ir gale',\n lowercase: '${path} turi būti tik mažosios raidės',\n uppercase: '${path} turi būti tik didžiosios raidės'\n};\nvar number$c = {\n min: '${path} turi būti daugiau arba lygu ${min}',\n max: '${path} turi būti mažiau arba lygu ${max}',\n lessThan: '${path} turi būti mažiau nei ${less}',\n moreThan: '${path} turi būti daugiau nei ${more}',\n positive: '${path} turi būti teigiamas skaičius',\n negative: '${path} turi būti neigiamas skaičius',\n integer: '${path} turi būti sveikasis skaičius'\n};\nvar date$c = {\n min: '${path} turi būti vėliau nei ${min}',\n max: '${path} turi būti anksčiau nei ${max}'\n};\nvar _boolean$c = {};\nvar object$c = {\n noUnknown: '${path} negali būti raktų, nenurodytų objekto formoje'\n};\nvar array$c = {\n min: '${path} turi būti bent ${min} elementai',\n max: '${path} turi būti ne daugiau nei ${max} elementai'\n};\n\nvar lt = {\n __proto__: null,\n mixed: mixed$c,\n string: string$c,\n number: number$c,\n date: date$c,\n boolean: _boolean$c,\n object: object$c,\n array: array$c\n};\n\n/*eslint-disable no-template-curly-in-string*/\n\nvar mixed$d = {\n \"default\": 'Pole ${path} jest niepoprawne',\n required: 'Pole ${path} jest wymagane',\n oneOf: 'Pole ${path} musi mieć jedną z następujących wartości: ${values}',\n notOneOf: 'Pole ${path} nie może mieć jednej z następujących wartości: ${values}',\n notType: function notType(_ref) {\n var path = _ref.path,\n type = _ref.type,\n value = _ref.value,\n originalValue = _ref.originalValue;\n var isCast = originalValue != null && originalValue !== value;\n var msg = \"Pole \" + path + \" musi by\\u0107 typu \\u201E\" + type + \"`, \" + (\"ale ostateczna warto\\u015B\\u0107 to: `\" + printValue(value, true) + \"` `\") + (isCast ? \" (rzutowana z warto\\u015Bci `\" + printValue(originalValue, true) + \"`).\" : '.');\n\n if (value === null) {\n msg += \"\\n Je\\u015Bli \\u201Enull\\u201D jest przeznaczony jako pusta warto\\u015B\\u0107, pami\\u0119taj, aby oznaczy\\u0107 schemat jako\" + ' `.nullable()`';\n }\n\n return msg;\n }\n};\nvar string$d = {\n length: 'Pole ${path} musi być dokładnie ${length} znaków',\n min: 'Pole ${path} musi być co najmniej ${min} znaków',\n max: 'Pole ${path} może mieć co najwyżej ${max} znaków',\n matches: 'Pole ${path} musi pasować do następującego wzorca: „${regex}”',\n email: 'Pole ${path} musi być poprawnym adresem email',\n url: 'Pole ${path} musi być poprawnym adresem URL',\n trim: 'Pole ${path} musi być tekstem bez spacji na początku i na końcu',\n lowercase: 'Pole ${path} może mieć tylko małe litery',\n uppercase: 'Pole ${path} może mieć tylko wielkie litery'\n};\nvar number$d = {\n min: 'Pole ${path} musi być liczbą większą lub równą ${min}',\n max: 'Pole ${path} musi być liczą mniejszą lub równą ${max}',\n lessThan: 'Pole ${path} musi być liczbą mniejszą od ${less}',\n moreThan: 'Pole ${path} musi być liczbą większą od ${more}',\n positive: 'Pole ${path} musi być liczbą dodatnią',\n negative: 'Pole ${path} musi być liczbą ujemną',\n integer: 'Pole ${path} musi być liczbą całkowitą'\n};\nvar date$d = {\n min: 'Pole ${path} musi zawierać datę późniejszą niż ${min}',\n max: 'Pole ${path} musi zawierać datę wcześniejszą niż ${max}'\n};\nvar _boolean$d = {};\nvar object$d = {\n noUnknown: 'Pole ${path} nie może zawierać nieznanych kluczy'\n};\nvar array$d = {\n min: 'Pole ${path} musi zawierać co najmniej ${min} elementów',\n max: 'Pole ${path} może zawierać co najwyżej ${max} elementów'\n};\n\nvar pl = {\n __proto__: null,\n mixed: mixed$d,\n string: string$d,\n number: number$d,\n date: date$d,\n boolean: _boolean$d,\n object: object$d,\n array: array$d\n};\n\n/*eslint-disable no-template-curly-in-string*/\nvar typeTranslations = {\n string: 'text',\n number: 'číslo',\n \"boolean\": 'boolean',\n date: 'dátum',\n object: 'objekt',\n array: 'pole'\n};\n\nvar getTypeTranslation = function getTypeTranslation(type) {\n return typeTranslations[type] ? typeTranslations[type] : type;\n}; // Based on https://github.com/jquense/yup/blob/2973d0a/src/locale.js\n\n\nvar mixed$e = {\n \"default\": '${path} je nesprávne',\n required: '${path} je povinné pole',\n oneOf: '${path} musí byť jednou z nasledujúcich hodnôt: ${values}',\n notOneOf: '${path} nesmie byť jednou z nasledujúcich hodnôt: ${values}',\n notType: function notType(_ref) {\n var path = _ref.path,\n type = _ref.type,\n value = _ref.value,\n originalValue = _ref.originalValue;\n var isCast = originalValue != null && originalValue !== value;\n var msg = path + \" mus\\xED by\\u0165 `\" + getTypeTranslation(type) + \"`, \" + (\"ale kone\\u010Dn\\xE1 hodnota bola: `\" + printValue(value, true) + \"`\") + (isCast ? \" (obsadenie z hodnoty `\" + printValue(originalValue, true) + \"`).\" : '.');\n\n if (value === null) {\n msg += \"\\n Ak je \\u201Enull\\u201C ur\\u010Den\\xFD ako pr\\xE1zdna hodnota, nezabudnite ozna\\u010Di\\u0165 sch\\xE9mu ako\" + ' `.nullable()`';\n }\n\n return msg;\n }\n};\nvar string$e = {\n length: '${path} musí mať presne ${length} znakov',\n min: '${path} musí mať aspoň ${min} znakov',\n max: '${path} musí mať najviac ${max} znakov',\n matches: '${path} sa musí zhodovať s nasledujúcimi: „${regex}“',\n email: '${path} musí byť platný e -mail',\n url: '${path} musí byť platná URL adresa ',\n trim: '${path} nesmie začínať alebo končiť medzerou',\n lowercase: '${path} musí obsahovať iba malé písmená',\n uppercase: '${path} musí obsahovať iba veľké písmená'\n};\nvar number$e = {\n min: '${path} musí byť väčší alebo rovný ${min}',\n max: '${path} musí byť menší alebo rovný ${max}',\n lessThan: '${path} musí byť menší ako ${less}',\n moreThan: '${path} musí byť väčší ako ${more}',\n positive: '${path} musí byť kladné číslo',\n negative: '${path} musí byť záporné číslo',\n integer: '${path} musí byť celé číslo'\n};\nvar date$e = {\n min: '${path} musí byť po ${min}',\n max: '${path} musí byť pred ${max}'\n};\nvar _boolean$e = {};\nvar object$e = {\n noUnknown: '${path} pole nemôže mať kľúče zadané v tvare objektu'\n};\nvar array$e = {\n min: '${path} musí obsahovať aspoň ${min} položiek',\n max: '${path} musí obsahovať najviac ${max} položiek'\n};\n\nvar sk = {\n __proto__: null,\n mixed: mixed$e,\n string: string$e,\n number: number$e,\n date: date$e,\n boolean: _boolean$e,\n object: object$e,\n array: array$e\n};\n\n/*eslint-disable no-template-curly-in-string*/\n\nvar mixed$f = {\n \"default\": '${path} содержит ошибку',\n required: 'Поле ${path} обязательное для заполнения',\n oneOf: 'Поле ${path} должно содержать одно из следующих значение: ${values}',\n notOneOf: 'Поле ${path} не должно содержать одно из следующих значение: ${values}',\n notType: function notType(_ref) {\n var path = _ref.path,\n type = _ref.type,\n value = _ref.value,\n originalValue = _ref.originalValue;\n var isCast = originalValue != null && originalValue !== value;\n var msg = \"\\u041F\\u043E\\u043B\\u0435 \" + path + \" \\u0434\\u043E\\u043B\\u0436\\u043D\\u043E \\u0431\\u044B\\u0442\\u044C `\" + type + \"` \\u0442\\u0438\\u043F\\u043E\\u043C, \" + (\"\\u043D\\u043E \\u0444\\u0438\\u043D\\u0430\\u043B\\u044C\\u043D\\u043E\\u0435 \\u0437\\u043D\\u0430\\u0447\\u0435\\u043D\\u0438\\u0435: `\" + printValue(value, true) + \"` `\") + (isCast ? \" (\\u043F\\u0440\\u0438\\u0432\\u0435\\u0434\\u0435\\u043D\\u043E \\u0438\\u0437 \\u0437\\u043D\\u0430\\u0447\\u0435\\u043D\\u0438\\u044F `\" + printValue(originalValue, true) + \"`).\" : '.');\n\n if (value === null) {\n msg += \"\\n \\u0415\\u0441\\u043B\\u0438 \\\"null\\\" \\u044F\\u0432\\u043B\\u044F\\u0435\\u0442\\u0441\\u044F \\u043F\\u0443\\u0441\\u0442\\u044B\\u043C \\u0437\\u043D\\u0430\\u0447\\u0435\\u043D\\u0438\\u0435\\u043C, \\u0443\\u0431\\u0435\\u0434\\u0438\\u0442\\u0435\\u0441\\u044C \\u0447\\u0442\\u043E \\u0441\\u0445\\u0435\\u043C\\u0430 \\u043F\\u043E\\u043C\\u0435\\u0447\\u0435\\u043D\\u0430 \\u043A\\u0430\\u043A `.nullable()`\";\n }\n\n return msg;\n }\n};\nvar string$f = {\n length: 'Поле ${path} должно иметь длину ${length} символов',\n min: 'Поле ${path} должно содержать минимум ${min} символов',\n max: 'Поле ${path} должно содержать не более ${max} символов',\n matches: 'Поле ${path} должно совпадать со следующим регулярном выражением: „${regex}”',\n email: 'Поле ${path} должно быть электронной почтой',\n url: 'Поле ${path} должно быть валидной ссылкой',\n trim: 'Поле ${path} не должно содержать в начале или в конце пробелы',\n lowercase: 'Поле ${path} должно быть в нижним регистре',\n uppercase: 'Поле ${path} должно быть в верхнем регистре'\n};\nvar number$f = {\n min: 'Поле ${path} должно быть больше или равно ${min}',\n max: 'Поле ${path} должно быть меньше или равно ${max}',\n lessThan: 'Поле ${path} должно быть меньше чем ${less}',\n moreThan: 'Поле ${path} должно быть больше ${more}',\n positive: 'Поле ${path} должно быть положительном числом',\n negative: 'Поле ${path} должно быть негативном числом',\n integer: 'Поле ${path} должно быть целым числом'\n};\nvar date$f = {\n min: 'Поле ${path} не может быть меньше начальной ${min}',\n max: 'Поле ${path} не может быть больше конечной ${max}'\n};\nvar _boolean$f = {\n isValue: 'Поле ${path} должно иметь значение: ${value}'\n};\nvar object$f = {\n noUnknown: 'Поле ${path} не может содержать неизвестные ключи'\n};\nvar array$f = {\n min: 'Поле ${path} должно быть указано не менее ${min} элементов',\n max: 'Поле ${path} должно быть указано не более ${max} элементов'\n};\n\nvar ru = {\n __proto__: null,\n mixed: mixed$f,\n string: string$f,\n number: number$f,\n date: date$f,\n boolean: _boolean$f,\n object: object$f,\n array: array$f\n};\n\n/*eslint-disable no-template-curly-in-string*/\n\nvar typeTranslations$1 = {\n string: 'text',\n number: 'číslo',\n \"boolean\": 'boolean',\n date: 'datum',\n object: 'objekt',\n array: 'pole'\n};\n\nvar getTypeTranslation$1 = function getTypeTranslation(type) {\n return typeTranslations$1[type] ? typeTranslations$1[type] : type;\n};\n\nvar mixed$g = {\n \"default\": '${path} je nesprávné',\n required: '${path} je povinné pole',\n oneOf: '${path} musí být jednou z nasledujících hodnot: ${values}',\n notOneOf: '${path} nesmí být jednou z nasledujících hodnot: ${values}',\n notType: function notType(_ref) {\n var path = _ref.path,\n type = _ref.type,\n value = _ref.value,\n originalValue = _ref.originalValue;\n var isCast = originalValue != null && originalValue !== value;\n var msg = path + \" mus\\xED b\\xFDt `\" + getTypeTranslation$1(type) + \"`, \" + (\"ale kone\\u010Dn\\xE1 hodnota byla: `\" + printValue(value, true) + \"`\") + (isCast ? \" (obsadenie z hodnoty `\" + printValue(originalValue, true) + \"`).\" : '.');\n\n if (value === null) {\n msg += \"\\n Pokud je \\u201Enull\\u201C ur\\u010Den\\xFD jako pr\\xE1zdn\\xE1 hodnota, nezapom\\u011B\\u0148te ozna\\u010Dit sch\\xE9ma jako\" + ' `.nullable()`';\n }\n\n return msg;\n }\n};\nvar string$g = {\n length: '${path} musí mít ${length} znaků',\n min: '${path} musí mít alespoň ${min} znaků',\n max: '${path} musí mít nanejvýš ${max} znaků',\n matches: '${path} se musí shodovat s následujícími: „${regex}“',\n email: '${path} musí být platný e-mail',\n url: '${path} musí být platná URL adresa ',\n trim: '${path} nemůže začínat nebo končit mezerou',\n lowercase: '${path} musí obsahovat pouze malá písmena',\n uppercase: '${path} musí obsahovat pouze velká písmena'\n};\nvar number$g = {\n min: '${path} musí být větší nebo rovno ${min}',\n max: '${path} musí být menší nebo rovno ${max}',\n lessThan: '${path} musí být měnší než ${less}',\n moreThan: '${path} musí být větší než ${more}',\n positive: '${path} musí být kladné číslo',\n negative: '${path} musí být záporné číslo',\n integer: '${path} musí být celé číslo'\n};\nvar date$g = {\n min: '${path} musí být po ${min}',\n max: '${path} musí být před ${max}'\n};\nvar _boolean$g = {};\nvar object$g = {\n noUnknown: '${path} pole nemůže mít klíče zadané ve tvaru objektu'\n};\nvar array$g = {\n min: '${path} musí obsahovat alespoň ${min} položek',\n max: '${path} musí obsahovat maximálně ${max} položek'\n};\n\nvar cs = {\n __proto__: null,\n mixed: mixed$g,\n string: string$g,\n number: number$g,\n date: date$g,\n boolean: _boolean$g,\n object: object$g,\n array: array$g\n};\n\n/*eslint-disable no-template-curly-in-string*/\n\nvar mixed$h = {\n \"default\": '${path}da xatolik mavjud',\n required: '${path} maydoniga ma\\'lumot kiritilmagan',\n oneOf: '${path} maydoni ${values} qiymatlardan bittasi emas',\n notOneOf: '${path} maydoni ${values} qiymatlarini qabul qilmaydi',\n notType: function notType(_ref) {\n var path = _ref.path,\n type = _ref.type,\n value = _ref.value,\n originalValue = _ref.originalValue;\n var isCast = originalValue != null && originalValue !== value;\n var msg = path + \" maydon `\" + type + \"` turiga tegishli emas. \" + (isCast ? \"`\" + printValue(originalValue, true) + \"` dan olingan o\" : 'O') + (\"xirgi qiymat `\" + printValue(value, true) + \"` ga teng.\");\n\n if (value === null) {\n msg += \"\\n Agar \\\"null\\\" bo\\u2018sh qiymat bo\\u2018lsa, sxemada `.nullable()` qilib belgilanganligiga ishonch hosil qiling\";\n }\n\n return msg;\n }\n};\nvar string$h = {\n length: '${path} maydoni ${length}ta belgidan iborat emas',\n min: '${path} maydoni kamida ${min}ta belgidan iborat bo‘lishi lozim',\n max: '${path} maydoni ko‘pi bilan ${max}ta belgidan iborat bo‘lishi mumkin',\n matches: '${path} maydon qiymati \"${regex}\" muntazam ifodaga mos emas',\n email: '${path} maydon qiymati e-mail emas',\n url: '${path} maydon qiymati havola emas',\n trim: '${path} mayqon qiymati boshida yoki oxirida bo‘shliqlar mavjud',\n lowercase: '${path} mayqon qiymat kichik harflardan iborat emas',\n uppercase: '${path} mayqon qiymat bosh (katta) harflardan iborat emas'\n};\nvar number$h = {\n min: '${path} maydon qiymati ${min}dan kichik',\n max: '${path} maydon qiymati ${max}dan katta',\n lessThan: '${path} maydon qiymati ${less}dan kichik emas',\n moreThan: '${path} maydon qiymati ${more}dan katta emas',\n positive: '${path} maydon qiymati musbat son emas',\n negative: '${path} maydon qiymati manfiy son emas',\n integer: '${path} maydon qiymati butun son emas'\n};\nvar date$h = {\n min: '${path} maydon qiymati ${min} sanandan oldin bo‘lmasligi lozim',\n max: '${path} maydon qiymati ${max} sanadan keyin bo‘lmasligi lozim'\n};\nvar _boolean$h = {\n isValue: '${path} maydon qiymati ${value} bo‘lishi shart'\n};\nvar object$h = {\n noUnknown: '${path} maydon qiymatida noma\\'lum kalitlar mavjud'\n};\nvar array$h = {\n min: '${path} maydon kamida ${min}ta elementdan iborat bo‘lishi lozim',\n max: '${path} maydon ko‘pi bilan ${max} elementdan iborat bo‘lishi mumkin'\n};\n\nvar uz = {\n __proto__: null,\n mixed: mixed$h,\n string: string$h,\n number: number$h,\n date: date$h,\n boolean: _boolean$h,\n object: object$h,\n array: array$h\n};\n\nexport { ar, cs, da, de, es, fr, he, id, it, lt, nb, nl, pl, pt, ru, sk, tr, uz };\n//# sourceMappingURL=yup-locales.esm.js.map\n","import { getter, forEach, split, normalizePath, join } from 'property-expr';\nimport { camelCase, snakeCase } from 'tiny-case';\nimport toposort from 'toposort';\n\nconst toString = Object.prototype.toString;\nconst errorToString = Error.prototype.toString;\nconst regExpToString = RegExp.prototype.toString;\nconst symbolToString = typeof Symbol !== 'undefined' ? Symbol.prototype.toString : () => '';\nconst SYMBOL_REGEXP = /^Symbol\\((.*)\\)(.*)$/;\nfunction printNumber(val) {\n if (val != +val) return 'NaN';\n const isNegativeZero = val === 0 && 1 / val < 0;\n return isNegativeZero ? '-0' : '' + val;\n}\nfunction printSimpleValue(val, quoteStrings = false) {\n if (val == null || val === true || val === false) return '' + val;\n const typeOf = typeof val;\n if (typeOf === 'number') return printNumber(val);\n if (typeOf === 'string') return quoteStrings ? `\"${val}\"` : val;\n if (typeOf === 'function') return '[Function ' + (val.name || 'anonymous') + ']';\n if (typeOf === 'symbol') return symbolToString.call(val).replace(SYMBOL_REGEXP, 'Symbol($1)');\n const tag = toString.call(val).slice(8, -1);\n if (tag === 'Date') return isNaN(val.getTime()) ? '' + val : val.toISOString(val);\n if (tag === 'Error' || val instanceof Error) return '[' + errorToString.call(val) + ']';\n if (tag === 'RegExp') return regExpToString.call(val);\n return null;\n}\nfunction printValue(value, quoteStrings) {\n let result = printSimpleValue(value, quoteStrings);\n if (result !== null) return result;\n return JSON.stringify(value, function (key, value) {\n let result = printSimpleValue(this[key], quoteStrings);\n if (result !== null) return result;\n return value;\n }, 2);\n}\n\nfunction toArray(value) {\n return value == null ? [] : [].concat(value);\n}\n\nlet strReg = /\\$\\{\\s*(\\w+)\\s*\\}/g;\nclass ValidationError extends Error {\n static formatError(message, params) {\n const path = params.label || params.path || 'this';\n if (path !== params.path) params = Object.assign({}, params, {\n path\n });\n if (typeof message === 'string') return message.replace(strReg, (_, key) => printValue(params[key]));\n if (typeof message === 'function') return message(params);\n return message;\n }\n static isError(err) {\n return err && err.name === 'ValidationError';\n }\n constructor(errorOrErrors, value, field, type) {\n super();\n this.value = void 0;\n this.path = void 0;\n this.type = void 0;\n this.errors = void 0;\n this.params = void 0;\n this.inner = void 0;\n this.name = 'ValidationError';\n this.value = value;\n this.path = field;\n this.type = type;\n this.errors = [];\n this.inner = [];\n toArray(errorOrErrors).forEach(err => {\n if (ValidationError.isError(err)) {\n this.errors.push(...err.errors);\n this.inner = this.inner.concat(err.inner.length ? err.inner : err);\n } else {\n this.errors.push(err);\n }\n });\n this.message = this.errors.length > 1 ? `${this.errors.length} errors occurred` : this.errors[0];\n if (Error.captureStackTrace) Error.captureStackTrace(this, ValidationError);\n }\n}\n\nlet mixed = {\n default: '${path} is invalid',\n required: '${path} is a required field',\n defined: '${path} must be defined',\n notNull: '${path} cannot be null',\n oneOf: '${path} must be one of the following values: ${values}',\n notOneOf: '${path} must not be one of the following values: ${values}',\n notType: ({\n path,\n type,\n value,\n originalValue\n }) => {\n const castMsg = originalValue != null && originalValue !== value ? ` (cast from the value \\`${printValue(originalValue, true)}\\`).` : '.';\n return type !== 'mixed' ? `${path} must be a \\`${type}\\` type, ` + `but the final value was: \\`${printValue(value, true)}\\`` + castMsg : `${path} must match the configured type. ` + `The validated value was: \\`${printValue(value, true)}\\`` + castMsg;\n }\n};\nlet string = {\n length: '${path} must be exactly ${length} characters',\n min: '${path} must be at least ${min} characters',\n max: '${path} must be at most ${max} characters',\n matches: '${path} must match the following: \"${regex}\"',\n email: '${path} must be a valid email',\n url: '${path} must be a valid URL',\n uuid: '${path} must be a valid UUID',\n trim: '${path} must be a trimmed string',\n lowercase: '${path} must be a lowercase string',\n uppercase: '${path} must be a upper case string'\n};\nlet number = {\n min: '${path} must be greater than or equal to ${min}',\n max: '${path} must be less than or equal to ${max}',\n lessThan: '${path} must be less than ${less}',\n moreThan: '${path} must be greater than ${more}',\n positive: '${path} must be a positive number',\n negative: '${path} must be a negative number',\n integer: '${path} must be an integer'\n};\nlet date = {\n min: '${path} field must be later than ${min}',\n max: '${path} field must be at earlier than ${max}'\n};\nlet boolean = {\n isValue: '${path} field must be ${value}'\n};\nlet object = {\n noUnknown: '${path} field has unspecified keys: ${unknown}'\n};\nlet array = {\n min: '${path} field must have at least ${min} items',\n max: '${path} field must have less than or equal to ${max} items',\n length: '${path} must have ${length} items'\n};\nlet tuple = {\n notType: params => {\n const {\n path,\n value,\n spec\n } = params;\n const typeLen = spec.types.length;\n if (Array.isArray(value)) {\n if (value.length < typeLen) return `${path} tuple value has too few items, expected a length of ${typeLen} but got ${value.length} for value: \\`${printValue(value, true)}\\``;\n if (value.length > typeLen) return `${path} tuple value has too many items, expected a length of ${typeLen} but got ${value.length} for value: \\`${printValue(value, true)}\\``;\n }\n return ValidationError.formatError(mixed.notType, params);\n }\n};\nvar locale = Object.assign(Object.create(null), {\n mixed,\n string,\n number,\n date,\n object,\n array,\n boolean\n});\n\nconst isSchema = obj => obj && obj.__isYupSchema__;\n\nclass Condition {\n static fromOptions(refs, config) {\n if (!config.then && !config.otherwise) throw new TypeError('either `then:` or `otherwise:` is required for `when()` conditions');\n let {\n is,\n then,\n otherwise\n } = config;\n let check = typeof is === 'function' ? is : (...values) => values.every(value => value === is);\n return new Condition(refs, (values, schema) => {\n var _branch;\n let branch = check(...values) ? then : otherwise;\n return (_branch = branch == null ? void 0 : branch(schema)) != null ? _branch : schema;\n });\n }\n constructor(refs, builder) {\n this.fn = void 0;\n this.refs = refs;\n this.refs = refs;\n this.fn = builder;\n }\n resolve(base, options) {\n let values = this.refs.map(ref =>\n // TODO: ? operator here?\n ref.getValue(options == null ? void 0 : options.value, options == null ? void 0 : options.parent, options == null ? void 0 : options.context));\n let schema = this.fn(values, base, options);\n if (schema === undefined ||\n // @ts-ignore this can be base\n schema === base) {\n return base;\n }\n if (!isSchema(schema)) throw new TypeError('conditions must return a schema object');\n return schema.resolve(options);\n }\n}\n\nconst prefixes = {\n context: '$',\n value: '.'\n};\nfunction create$9(key, options) {\n return new Reference(key, options);\n}\nclass Reference {\n constructor(key, options = {}) {\n this.key = void 0;\n this.isContext = void 0;\n this.isValue = void 0;\n this.isSibling = void 0;\n this.path = void 0;\n this.getter = void 0;\n this.map = void 0;\n if (typeof key !== 'string') throw new TypeError('ref must be a string, got: ' + key);\n this.key = key.trim();\n if (key === '') throw new TypeError('ref must be a non-empty string');\n this.isContext = this.key[0] === prefixes.context;\n this.isValue = this.key[0] === prefixes.value;\n this.isSibling = !this.isContext && !this.isValue;\n let prefix = this.isContext ? prefixes.context : this.isValue ? prefixes.value : '';\n this.path = this.key.slice(prefix.length);\n this.getter = this.path && getter(this.path, true);\n this.map = options.map;\n }\n getValue(value, parent, context) {\n let result = this.isContext ? context : this.isValue ? value : parent;\n if (this.getter) result = this.getter(result || {});\n if (this.map) result = this.map(result);\n return result;\n }\n\n /**\n *\n * @param {*} value\n * @param {Object} options\n * @param {Object=} options.context\n * @param {Object=} options.parent\n */\n cast(value, options) {\n return this.getValue(value, options == null ? void 0 : options.parent, options == null ? void 0 : options.context);\n }\n resolve() {\n return this;\n }\n describe() {\n return {\n type: 'ref',\n key: this.key\n };\n }\n toString() {\n return `Ref(${this.key})`;\n }\n static isRef(value) {\n return value && value.__isYupRef;\n }\n}\n\n// @ts-ignore\nReference.prototype.__isYupRef = true;\n\nconst isAbsent = value => value == null;\n\nfunction createValidation(config) {\n function validate({\n value,\n path = '',\n options,\n originalValue,\n schema\n }, panic, next) {\n const {\n name,\n test,\n params,\n message,\n skipAbsent\n } = config;\n let {\n parent,\n context,\n abortEarly = schema.spec.abortEarly\n } = options;\n function resolve(item) {\n return Reference.isRef(item) ? item.getValue(value, parent, context) : item;\n }\n function createError(overrides = {}) {\n const nextParams = Object.assign({\n value,\n originalValue,\n label: schema.spec.label,\n path: overrides.path || path,\n spec: schema.spec\n }, params, overrides.params);\n for (const key of Object.keys(nextParams)) nextParams[key] = resolve(nextParams[key]);\n const error = new ValidationError(ValidationError.formatError(overrides.message || message, nextParams), value, nextParams.path, overrides.type || name);\n error.params = nextParams;\n return error;\n }\n const invalid = abortEarly ? panic : next;\n let ctx = {\n path,\n parent,\n type: name,\n from: options.from,\n createError,\n resolve,\n options,\n originalValue,\n schema\n };\n const handleResult = validOrError => {\n if (ValidationError.isError(validOrError)) invalid(validOrError);else if (!validOrError) invalid(createError());else next(null);\n };\n const handleError = err => {\n if (ValidationError.isError(err)) invalid(err);else panic(err);\n };\n const shouldSkip = skipAbsent && isAbsent(value);\n if (!options.sync) {\n try {\n Promise.resolve(!shouldSkip ? test.call(ctx, value, ctx) : true).then(handleResult, handleError);\n } catch (err) {\n handleError(err);\n }\n return;\n }\n let result;\n try {\n var _result;\n result = !shouldSkip ? test.call(ctx, value, ctx) : true;\n if (typeof ((_result = result) == null ? void 0 : _result.then) === 'function') {\n throw new Error(`Validation test of type: \"${ctx.type}\" returned a Promise during a synchronous validate. ` + `This test will finish after the validate call has returned`);\n }\n } catch (err) {\n handleError(err);\n return;\n }\n handleResult(result);\n }\n validate.OPTIONS = config;\n return validate;\n}\n\nfunction getIn(schema, path, value, context = value) {\n let parent, lastPart, lastPartDebug;\n\n // root path: ''\n if (!path) return {\n parent,\n parentPath: path,\n schema\n };\n forEach(path, (_part, isBracket, isArray) => {\n let part = isBracket ? _part.slice(1, _part.length - 1) : _part;\n schema = schema.resolve({\n context,\n parent,\n value\n });\n let isTuple = schema.type === 'tuple';\n let idx = isArray ? parseInt(part, 10) : 0;\n if (schema.innerType || isTuple) {\n if (isTuple && !isArray) throw new Error(`Yup.reach cannot implicitly index into a tuple type. the path part \"${lastPartDebug}\" must contain an index to the tuple element, e.g. \"${lastPartDebug}[0]\"`);\n if (value && idx >= value.length) {\n throw new Error(`Yup.reach cannot resolve an array item at index: ${_part}, in the path: ${path}. ` + `because there is no value at that index. `);\n }\n parent = value;\n value = value && value[idx];\n schema = isTuple ? schema.spec.types[idx] : schema.innerType;\n }\n\n // sometimes the array index part of a path doesn't exist: \"nested.arr.child\"\n // in these cases the current part is the next schema and should be processed\n // in this iteration. For cases where the index signature is included this\n // check will fail and we'll handle the `child` part on the next iteration like normal\n if (!isArray) {\n if (!schema.fields || !schema.fields[part]) throw new Error(`The schema does not contain the path: ${path}. ` + `(failed at: ${lastPartDebug} which is a type: \"${schema.type}\")`);\n parent = value;\n value = value && value[part];\n schema = schema.fields[part];\n }\n lastPart = part;\n lastPartDebug = isBracket ? '[' + _part + ']' : '.' + _part;\n });\n return {\n schema,\n parent,\n parentPath: lastPart\n };\n}\nfunction reach(obj, path, value, context) {\n return getIn(obj, path, value, context).schema;\n}\n\nclass ReferenceSet extends Set {\n describe() {\n const description = [];\n for (const item of this.values()) {\n description.push(Reference.isRef(item) ? item.describe() : item);\n }\n return description;\n }\n resolveAll(resolve) {\n let result = [];\n for (const item of this.values()) {\n result.push(resolve(item));\n }\n return result;\n }\n clone() {\n return new ReferenceSet(this.values());\n }\n merge(newItems, removeItems) {\n const next = this.clone();\n newItems.forEach(value => next.add(value));\n removeItems.forEach(value => next.delete(value));\n return next;\n }\n}\n\n// tweaked from https://github.com/Kelin2025/nanoclone/blob/0abeb7635bda9b68ef2277093f76dbe3bf3948e1/src/index.js\nfunction clone(src, seen = new Map()) {\n if (isSchema(src) || !src || typeof src !== 'object') return src;\n if (seen.has(src)) return seen.get(src);\n let copy;\n if (src instanceof Date) {\n // Date\n copy = new Date(src.getTime());\n seen.set(src, copy);\n } else if (src instanceof RegExp) {\n // RegExp\n copy = new RegExp(src);\n seen.set(src, copy);\n } else if (Array.isArray(src)) {\n // Array\n copy = new Array(src.length);\n seen.set(src, copy);\n for (let i = 0; i < src.length; i++) copy[i] = clone(src[i], seen);\n } else if (src instanceof Map) {\n // Map\n copy = new Map();\n seen.set(src, copy);\n for (const [k, v] of src.entries()) copy.set(k, clone(v, seen));\n } else if (src instanceof Set) {\n // Set\n copy = new Set();\n seen.set(src, copy);\n for (const v of src) copy.add(clone(v, seen));\n } else if (src instanceof Object) {\n // Object\n copy = {};\n seen.set(src, copy);\n for (const [k, v] of Object.entries(src)) copy[k] = clone(v, seen);\n } else {\n throw Error(`Unable to clone ${src}`);\n }\n return copy;\n}\n\nclass Schema {\n constructor(options) {\n this.type = void 0;\n this.deps = [];\n this.tests = void 0;\n this.transforms = void 0;\n this.conditions = [];\n this._mutate = void 0;\n this.internalTests = {};\n this._whitelist = new ReferenceSet();\n this._blacklist = new ReferenceSet();\n this.exclusiveTests = Object.create(null);\n this._typeCheck = void 0;\n this.spec = void 0;\n this.tests = [];\n this.transforms = [];\n this.withMutation(() => {\n this.typeError(mixed.notType);\n });\n this.type = options.type;\n this._typeCheck = options.check;\n this.spec = Object.assign({\n strip: false,\n strict: false,\n abortEarly: true,\n recursive: true,\n nullable: false,\n optional: true,\n coerce: true\n }, options == null ? void 0 : options.spec);\n this.withMutation(s => {\n s.nonNullable();\n });\n }\n\n // TODO: remove\n get _type() {\n return this.type;\n }\n clone(spec) {\n if (this._mutate) {\n if (spec) Object.assign(this.spec, spec);\n return this;\n }\n\n // if the nested value is a schema we can skip cloning, since\n // they are already immutable\n const next = Object.create(Object.getPrototypeOf(this));\n\n // @ts-expect-error this is readonly\n next.type = this.type;\n next._typeCheck = this._typeCheck;\n next._whitelist = this._whitelist.clone();\n next._blacklist = this._blacklist.clone();\n next.internalTests = Object.assign({}, this.internalTests);\n next.exclusiveTests = Object.assign({}, this.exclusiveTests);\n\n // @ts-expect-error this is readonly\n next.deps = [...this.deps];\n next.conditions = [...this.conditions];\n next.tests = [...this.tests];\n next.transforms = [...this.transforms];\n next.spec = clone(Object.assign({}, this.spec, spec));\n return next;\n }\n label(label) {\n let next = this.clone();\n next.spec.label = label;\n return next;\n }\n meta(...args) {\n if (args.length === 0) return this.spec.meta;\n let next = this.clone();\n next.spec.meta = Object.assign(next.spec.meta || {}, args[0]);\n return next;\n }\n withMutation(fn) {\n let before = this._mutate;\n this._mutate = true;\n let result = fn(this);\n this._mutate = before;\n return result;\n }\n concat(schema) {\n if (!schema || schema === this) return this;\n if (schema.type !== this.type && this.type !== 'mixed') throw new TypeError(`You cannot \\`concat()\\` schema's of different types: ${this.type} and ${schema.type}`);\n let base = this;\n let combined = schema.clone();\n const mergedSpec = Object.assign({}, base.spec, combined.spec);\n combined.spec = mergedSpec;\n combined.internalTests = Object.assign({}, base.internalTests, combined.internalTests);\n\n // manually merge the blacklist/whitelist (the other `schema` takes\n // precedence in case of conflicts)\n combined._whitelist = base._whitelist.merge(schema._whitelist, schema._blacklist);\n combined._blacklist = base._blacklist.merge(schema._blacklist, schema._whitelist);\n\n // start with the current tests\n combined.tests = base.tests;\n combined.exclusiveTests = base.exclusiveTests;\n\n // manually add the new tests to ensure\n // the deduping logic is consistent\n combined.withMutation(next => {\n schema.tests.forEach(fn => {\n next.test(fn.OPTIONS);\n });\n });\n combined.transforms = [...base.transforms, ...combined.transforms];\n return combined;\n }\n isType(v) {\n if (v == null) {\n if (this.spec.nullable && v === null) return true;\n if (this.spec.optional && v === undefined) return true;\n return false;\n }\n return this._typeCheck(v);\n }\n resolve(options) {\n let schema = this;\n if (schema.conditions.length) {\n let conditions = schema.conditions;\n schema = schema.clone();\n schema.conditions = [];\n schema = conditions.reduce((prevSchema, condition) => condition.resolve(prevSchema, options), schema);\n schema = schema.resolve(options);\n }\n return schema;\n }\n resolveOptions(options) {\n var _options$strict, _options$abortEarly, _options$recursive;\n return Object.assign({}, options, {\n from: options.from || [],\n strict: (_options$strict = options.strict) != null ? _options$strict : this.spec.strict,\n abortEarly: (_options$abortEarly = options.abortEarly) != null ? _options$abortEarly : this.spec.abortEarly,\n recursive: (_options$recursive = options.recursive) != null ? _options$recursive : this.spec.recursive\n });\n }\n\n /**\n * Run the configured transform pipeline over an input value.\n */\n\n cast(value, options = {}) {\n let resolvedSchema = this.resolve(Object.assign({\n value\n }, options));\n let allowOptionality = options.assert === 'ignore-optionality';\n let result = resolvedSchema._cast(value, options);\n if (options.assert !== false && !resolvedSchema.isType(result)) {\n if (allowOptionality && isAbsent(result)) {\n return result;\n }\n let formattedValue = printValue(value);\n let formattedResult = printValue(result);\n throw new TypeError(`The value of ${options.path || 'field'} could not be cast to a value ` + `that satisfies the schema type: \"${resolvedSchema.type}\". \\n\\n` + `attempted value: ${formattedValue} \\n` + (formattedResult !== formattedValue ? `result of cast: ${formattedResult}` : ''));\n }\n return result;\n }\n _cast(rawValue, options) {\n let value = rawValue === undefined ? rawValue : this.transforms.reduce((prevValue, fn) => fn.call(this, prevValue, rawValue, this), rawValue);\n if (value === undefined) {\n value = this.getDefault(options);\n }\n return value;\n }\n _validate(_value, options = {}, panic, next) {\n let {\n path,\n originalValue = _value,\n strict = this.spec.strict\n } = options;\n let value = _value;\n if (!strict) {\n value = this._cast(value, Object.assign({\n assert: false\n }, options));\n }\n let initialTests = [];\n for (let test of Object.values(this.internalTests)) {\n if (test) initialTests.push(test);\n }\n this.runTests({\n path,\n value,\n originalValue,\n options,\n tests: initialTests\n }, panic, initialErrors => {\n // even if we aren't ending early we can't proceed further if the types aren't correct\n if (initialErrors.length) {\n return next(initialErrors, value);\n }\n this.runTests({\n path,\n value,\n originalValue,\n options,\n tests: this.tests\n }, panic, next);\n });\n }\n\n /**\n * Executes a set of validations, either schema, produced Tests or a nested\n * schema validate result.\n */\n runTests(runOptions, panic, next) {\n let fired = false;\n let {\n tests,\n value,\n originalValue,\n path,\n options\n } = runOptions;\n let panicOnce = arg => {\n if (fired) return;\n fired = true;\n panic(arg, value);\n };\n let nextOnce = arg => {\n if (fired) return;\n fired = true;\n next(arg, value);\n };\n let count = tests.length;\n let nestedErrors = [];\n if (!count) return nextOnce([]);\n let args = {\n value,\n originalValue,\n path,\n options,\n schema: this\n };\n for (let i = 0; i < tests.length; i++) {\n const test = tests[i];\n test(args, panicOnce, function finishTestRun(err) {\n if (err) {\n nestedErrors = nestedErrors.concat(err);\n }\n if (--count <= 0) {\n nextOnce(nestedErrors);\n }\n });\n }\n }\n asNestedTest({\n key,\n index,\n parent,\n parentPath,\n originalParent,\n options\n }) {\n const k = key != null ? key : index;\n if (k == null) {\n throw TypeError('Must include `key` or `index` for nested validations');\n }\n const isIndex = typeof k === 'number';\n let value = parent[k];\n const testOptions = Object.assign({}, options, {\n // Nested validations fields are always strict:\n // 1. parent isn't strict so the casting will also have cast inner values\n // 2. parent is strict in which case the nested values weren't cast either\n strict: true,\n parent,\n value,\n originalValue: originalParent[k],\n // FIXME: tests depend on `index` being passed around deeply,\n // we should not let the options.key/index bleed through\n key: undefined,\n // index: undefined,\n [isIndex ? 'index' : 'key']: k,\n path: isIndex || k.includes('.') ? `${parentPath || ''}[${value ? k : `\"${k}\"`}]` : (parentPath ? `${parentPath}.` : '') + key\n });\n return (_, panic, next) => this.resolve(testOptions)._validate(value, testOptions, panic, next);\n }\n validate(value, options) {\n let schema = this.resolve(Object.assign({}, options, {\n value\n }));\n return new Promise((resolve, reject) => schema._validate(value, options, (error, parsed) => {\n if (ValidationError.isError(error)) error.value = parsed;\n reject(error);\n }, (errors, validated) => {\n if (errors.length) reject(new ValidationError(errors, validated));else resolve(validated);\n }));\n }\n validateSync(value, options) {\n let schema = this.resolve(Object.assign({}, options, {\n value\n }));\n let result;\n schema._validate(value, Object.assign({}, options, {\n sync: true\n }), (error, parsed) => {\n if (ValidationError.isError(error)) error.value = parsed;\n throw error;\n }, (errors, validated) => {\n if (errors.length) throw new ValidationError(errors, value);\n result = validated;\n });\n return result;\n }\n isValid(value, options) {\n return this.validate(value, options).then(() => true, err => {\n if (ValidationError.isError(err)) return false;\n throw err;\n });\n }\n isValidSync(value, options) {\n try {\n this.validateSync(value, options);\n return true;\n } catch (err) {\n if (ValidationError.isError(err)) return false;\n throw err;\n }\n }\n _getDefault(_options) {\n let defaultValue = this.spec.default;\n if (defaultValue == null) {\n return defaultValue;\n }\n return typeof defaultValue === 'function' ? defaultValue.call(this) : clone(defaultValue);\n }\n getDefault(options\n // If schema is defaulted we know it's at least not undefined\n ) {\n let schema = this.resolve(options || {});\n return schema._getDefault(options);\n }\n default(def) {\n if (arguments.length === 0) {\n return this._getDefault();\n }\n let next = this.clone({\n default: def\n });\n return next;\n }\n strict(isStrict = true) {\n return this.clone({\n strict: isStrict\n });\n }\n nullability(nullable, message) {\n const next = this.clone({\n nullable\n });\n next.internalTests.nullable = createValidation({\n message,\n name: 'nullable',\n test(value) {\n return value === null ? this.schema.spec.nullable : true;\n }\n });\n return next;\n }\n optionality(optional, message) {\n const next = this.clone({\n optional\n });\n next.internalTests.optionality = createValidation({\n message,\n name: 'optionality',\n test(value) {\n return value === undefined ? this.schema.spec.optional : true;\n }\n });\n return next;\n }\n optional() {\n return this.optionality(true);\n }\n defined(message = mixed.defined) {\n return this.optionality(false, message);\n }\n nullable() {\n return this.nullability(true);\n }\n nonNullable(message = mixed.notNull) {\n return this.nullability(false, message);\n }\n required(message = mixed.required) {\n return this.clone().withMutation(next => next.nonNullable(message).defined(message));\n }\n notRequired() {\n return this.clone().withMutation(next => next.nullable().optional());\n }\n transform(fn) {\n let next = this.clone();\n next.transforms.push(fn);\n return next;\n }\n\n /**\n * Adds a test function to the schema's queue of tests.\n * tests can be exclusive or non-exclusive.\n *\n * - exclusive tests, will replace any existing tests of the same name.\n * - non-exclusive: can be stacked\n *\n * If a non-exclusive test is added to a schema with an exclusive test of the same name\n * the exclusive test is removed and further tests of the same name will be stacked.\n *\n * If an exclusive test is added to a schema with non-exclusive tests of the same name\n * the previous tests are removed and further tests of the same name will replace each other.\n */\n\n test(...args) {\n let opts;\n if (args.length === 1) {\n if (typeof args[0] === 'function') {\n opts = {\n test: args[0]\n };\n } else {\n opts = args[0];\n }\n } else if (args.length === 2) {\n opts = {\n name: args[0],\n test: args[1]\n };\n } else {\n opts = {\n name: args[0],\n message: args[1],\n test: args[2]\n };\n }\n if (opts.message === undefined) opts.message = mixed.default;\n if (typeof opts.test !== 'function') throw new TypeError('`test` is a required parameters');\n let next = this.clone();\n let validate = createValidation(opts);\n let isExclusive = opts.exclusive || opts.name && next.exclusiveTests[opts.name] === true;\n if (opts.exclusive) {\n if (!opts.name) throw new TypeError('Exclusive tests must provide a unique `name` identifying the test');\n }\n if (opts.name) next.exclusiveTests[opts.name] = !!opts.exclusive;\n next.tests = next.tests.filter(fn => {\n if (fn.OPTIONS.name === opts.name) {\n if (isExclusive) return false;\n if (fn.OPTIONS.test === validate.OPTIONS.test) return false;\n }\n return true;\n });\n next.tests.push(validate);\n return next;\n }\n when(keys, options) {\n if (!Array.isArray(keys) && typeof keys !== 'string') {\n options = keys;\n keys = '.';\n }\n let next = this.clone();\n let deps = toArray(keys).map(key => new Reference(key));\n deps.forEach(dep => {\n // @ts-ignore readonly array\n if (dep.isSibling) next.deps.push(dep.key);\n });\n next.conditions.push(typeof options === 'function' ? new Condition(deps, options) : Condition.fromOptions(deps, options));\n return next;\n }\n typeError(message) {\n let next = this.clone();\n next.internalTests.typeError = createValidation({\n message,\n name: 'typeError',\n skipAbsent: true,\n test(value) {\n if (!this.schema._typeCheck(value)) return this.createError({\n params: {\n type: this.schema.type\n }\n });\n return true;\n }\n });\n return next;\n }\n oneOf(enums, message = mixed.oneOf) {\n let next = this.clone();\n enums.forEach(val => {\n next._whitelist.add(val);\n next._blacklist.delete(val);\n });\n next.internalTests.whiteList = createValidation({\n message,\n name: 'oneOf',\n skipAbsent: true,\n test(value) {\n let valids = this.schema._whitelist;\n let resolved = valids.resolveAll(this.resolve);\n return resolved.includes(value) ? true : this.createError({\n params: {\n values: Array.from(valids).join(', '),\n resolved\n }\n });\n }\n });\n return next;\n }\n notOneOf(enums, message = mixed.notOneOf) {\n let next = this.clone();\n enums.forEach(val => {\n next._blacklist.add(val);\n next._whitelist.delete(val);\n });\n next.internalTests.blacklist = createValidation({\n message,\n name: 'notOneOf',\n test(value) {\n let invalids = this.schema._blacklist;\n let resolved = invalids.resolveAll(this.resolve);\n if (resolved.includes(value)) return this.createError({\n params: {\n values: Array.from(invalids).join(', '),\n resolved\n }\n });\n return true;\n }\n });\n return next;\n }\n strip(strip = true) {\n let next = this.clone();\n next.spec.strip = strip;\n return next;\n }\n\n /**\n * Return a serialized description of the schema including validations, flags, types etc.\n *\n * @param options Provide any needed context for resolving runtime schema alterations (lazy, when conditions, etc).\n */\n describe(options) {\n const next = (options ? this.resolve(options) : this).clone();\n const {\n label,\n meta,\n optional,\n nullable\n } = next.spec;\n const description = {\n meta,\n label,\n optional,\n nullable,\n default: next.getDefault(options),\n type: next.type,\n oneOf: next._whitelist.describe(),\n notOneOf: next._blacklist.describe(),\n tests: next.tests.map(fn => ({\n name: fn.OPTIONS.name,\n params: fn.OPTIONS.params\n })).filter((n, idx, list) => list.findIndex(c => c.name === n.name) === idx)\n };\n return description;\n }\n}\n// @ts-expect-error\nSchema.prototype.__isYupSchema__ = true;\nfor (const method of ['validate', 'validateSync']) Schema.prototype[`${method}At`] = function (path, value, options = {}) {\n const {\n parent,\n parentPath,\n schema\n } = getIn(this, path, value, options.context);\n return schema[method](parent && parent[parentPath], Object.assign({}, options, {\n parent,\n path\n }));\n};\nfor (const alias of ['equals', 'is']) Schema.prototype[alias] = Schema.prototype.oneOf;\nfor (const alias of ['not', 'nope']) Schema.prototype[alias] = Schema.prototype.notOneOf;\n\nconst returnsTrue = () => true;\nfunction create$8(spec) {\n return new MixedSchema(spec);\n}\nclass MixedSchema extends Schema {\n constructor(spec) {\n super(typeof spec === 'function' ? {\n type: 'mixed',\n check: spec\n } : Object.assign({\n type: 'mixed',\n check: returnsTrue\n }, spec));\n }\n}\ncreate$8.prototype = MixedSchema.prototype;\n\nfunction create$7() {\n return new BooleanSchema();\n}\nclass BooleanSchema extends Schema {\n constructor() {\n super({\n type: 'boolean',\n check(v) {\n if (v instanceof Boolean) v = v.valueOf();\n return typeof v === 'boolean';\n }\n });\n this.withMutation(() => {\n this.transform((value, _raw, ctx) => {\n if (ctx.spec.coerce && !ctx.isType(value)) {\n if (/^(true|1)$/i.test(String(value))) return true;\n if (/^(false|0)$/i.test(String(value))) return false;\n }\n return value;\n });\n });\n }\n isTrue(message = boolean.isValue) {\n return this.test({\n message,\n name: 'is-value',\n exclusive: true,\n params: {\n value: 'true'\n },\n test(value) {\n return isAbsent(value) || value === true;\n }\n });\n }\n isFalse(message = boolean.isValue) {\n return this.test({\n message,\n name: 'is-value',\n exclusive: true,\n params: {\n value: 'false'\n },\n test(value) {\n return isAbsent(value) || value === false;\n }\n });\n }\n default(def) {\n return super.default(def);\n }\n defined(msg) {\n return super.defined(msg);\n }\n optional() {\n return super.optional();\n }\n required(msg) {\n return super.required(msg);\n }\n notRequired() {\n return super.notRequired();\n }\n nullable() {\n return super.nullable();\n }\n nonNullable(msg) {\n return super.nonNullable(msg);\n }\n strip(v) {\n return super.strip(v);\n }\n}\ncreate$7.prototype = BooleanSchema.prototype;\n\n// Taken from HTML spec: https://html.spec.whatwg.org/multipage/input.html#valid-e-mail-address\nlet rEmail =\n// eslint-disable-next-line\n/^[a-zA-Z0-9.!#$%&'*+\\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;\nlet rUrl =\n// eslint-disable-next-line\n/^((https?|ftp):)?\\/\\/(((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:)*@)?(((\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5]))|((([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.)+(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.?)(:\\d*)?)(\\/((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)+(\\/(([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)*)*)?)?(\\?((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)|[\\uE000-\\uF8FF]|\\/|\\?)*)?(\\#((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)|\\/|\\?)*)?$/i;\n\n// eslint-disable-next-line\nlet rUUID = /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;\nlet isTrimmed = value => isAbsent(value) || value === value.trim();\nlet objStringTag = {}.toString();\nfunction create$6() {\n return new StringSchema();\n}\nclass StringSchema extends Schema {\n constructor() {\n super({\n type: 'string',\n check(value) {\n if (value instanceof String) value = value.valueOf();\n return typeof value === 'string';\n }\n });\n this.withMutation(() => {\n this.transform((value, _raw, ctx) => {\n if (!ctx.spec.coerce || ctx.isType(value)) return value;\n\n // don't ever convert arrays\n if (Array.isArray(value)) return value;\n const strValue = value != null && value.toString ? value.toString() : value;\n\n // no one wants plain objects converted to [Object object]\n if (strValue === objStringTag) return value;\n return strValue;\n });\n });\n }\n required(message) {\n return super.required(message).withMutation(schema => schema.test({\n message: message || mixed.required,\n name: 'required',\n skipAbsent: true,\n test: value => !!value.length\n }));\n }\n notRequired() {\n return super.notRequired().withMutation(schema => {\n schema.tests = schema.tests.filter(t => t.OPTIONS.name !== 'required');\n return schema;\n });\n }\n length(length, message = string.length) {\n return this.test({\n message,\n name: 'length',\n exclusive: true,\n params: {\n length\n },\n skipAbsent: true,\n test(value) {\n return value.length === this.resolve(length);\n }\n });\n }\n min(min, message = string.min) {\n return this.test({\n message,\n name: 'min',\n exclusive: true,\n params: {\n min\n },\n skipAbsent: true,\n test(value) {\n return value.length >= this.resolve(min);\n }\n });\n }\n max(max, message = string.max) {\n return this.test({\n name: 'max',\n exclusive: true,\n message,\n params: {\n max\n },\n skipAbsent: true,\n test(value) {\n return value.length <= this.resolve(max);\n }\n });\n }\n matches(regex, options) {\n let excludeEmptyString = false;\n let message;\n let name;\n if (options) {\n if (typeof options === 'object') {\n ({\n excludeEmptyString = false,\n message,\n name\n } = options);\n } else {\n message = options;\n }\n }\n return this.test({\n name: name || 'matches',\n message: message || string.matches,\n params: {\n regex\n },\n skipAbsent: true,\n test: value => value === '' && excludeEmptyString || value.search(regex) !== -1\n });\n }\n email(message = string.email) {\n return this.matches(rEmail, {\n name: 'email',\n message,\n excludeEmptyString: true\n });\n }\n url(message = string.url) {\n return this.matches(rUrl, {\n name: 'url',\n message,\n excludeEmptyString: true\n });\n }\n uuid(message = string.uuid) {\n return this.matches(rUUID, {\n name: 'uuid',\n message,\n excludeEmptyString: false\n });\n }\n\n //-- transforms --\n ensure() {\n return this.default('').transform(val => val === null ? '' : val);\n }\n trim(message = string.trim) {\n return this.transform(val => val != null ? val.trim() : val).test({\n message,\n name: 'trim',\n test: isTrimmed\n });\n }\n lowercase(message = string.lowercase) {\n return this.transform(value => !isAbsent(value) ? value.toLowerCase() : value).test({\n message,\n name: 'string_case',\n exclusive: true,\n skipAbsent: true,\n test: value => isAbsent(value) || value === value.toLowerCase()\n });\n }\n uppercase(message = string.uppercase) {\n return this.transform(value => !isAbsent(value) ? value.toUpperCase() : value).test({\n message,\n name: 'string_case',\n exclusive: true,\n skipAbsent: true,\n test: value => isAbsent(value) || value === value.toUpperCase()\n });\n }\n}\ncreate$6.prototype = StringSchema.prototype;\n\n//\n// String Interfaces\n//\n\nlet isNaN$1 = value => value != +value;\nfunction create$5() {\n return new NumberSchema();\n}\nclass NumberSchema extends Schema {\n constructor() {\n super({\n type: 'number',\n check(value) {\n if (value instanceof Number) value = value.valueOf();\n return typeof value === 'number' && !isNaN$1(value);\n }\n });\n this.withMutation(() => {\n this.transform((value, _raw, ctx) => {\n if (!ctx.spec.coerce) return value;\n let parsed = value;\n if (typeof parsed === 'string') {\n parsed = parsed.replace(/\\s/g, '');\n if (parsed === '') return NaN;\n // don't use parseFloat to avoid positives on alpha-numeric strings\n parsed = +parsed;\n }\n\n // null -> NaN isn't useful; treat all nulls as null and let it fail on\n // nullability check vs TypeErrors\n if (ctx.isType(parsed) || parsed === null) return parsed;\n return parseFloat(parsed);\n });\n });\n }\n min(min, message = number.min) {\n return this.test({\n message,\n name: 'min',\n exclusive: true,\n params: {\n min\n },\n skipAbsent: true,\n test(value) {\n return value >= this.resolve(min);\n }\n });\n }\n max(max, message = number.max) {\n return this.test({\n message,\n name: 'max',\n exclusive: true,\n params: {\n max\n },\n skipAbsent: true,\n test(value) {\n return value <= this.resolve(max);\n }\n });\n }\n lessThan(less, message = number.lessThan) {\n return this.test({\n message,\n name: 'max',\n exclusive: true,\n params: {\n less\n },\n skipAbsent: true,\n test(value) {\n return value < this.resolve(less);\n }\n });\n }\n moreThan(more, message = number.moreThan) {\n return this.test({\n message,\n name: 'min',\n exclusive: true,\n params: {\n more\n },\n skipAbsent: true,\n test(value) {\n return value > this.resolve(more);\n }\n });\n }\n positive(msg = number.positive) {\n return this.moreThan(0, msg);\n }\n negative(msg = number.negative) {\n return this.lessThan(0, msg);\n }\n integer(message = number.integer) {\n return this.test({\n name: 'integer',\n message,\n skipAbsent: true,\n test: val => Number.isInteger(val)\n });\n }\n truncate() {\n return this.transform(value => !isAbsent(value) ? value | 0 : value);\n }\n round(method) {\n var _method;\n let avail = ['ceil', 'floor', 'round', 'trunc'];\n method = ((_method = method) == null ? void 0 : _method.toLowerCase()) || 'round';\n\n // this exists for symemtry with the new Math.trunc\n if (method === 'trunc') return this.truncate();\n if (avail.indexOf(method.toLowerCase()) === -1) throw new TypeError('Only valid options for round() are: ' + avail.join(', '));\n return this.transform(value => !isAbsent(value) ? Math[method](value) : value);\n }\n}\ncreate$5.prototype = NumberSchema.prototype;\n\n//\n// Number Interfaces\n//\n\n/* eslint-disable */\n/**\n *\n * Date.parse with progressive enhancement for ISO 8601 \n * NON-CONFORMANT EDITION.\n * © 2011 Colin Snover \n * Released under MIT license.\n */\n\n// 1 YYYY 2 MM 3 DD 4 HH 5 mm 6 ss 7 msec 8 Z 9 ± 10 tzHH 11 tzmm\nvar isoReg = /^(\\d{4}|[+\\-]\\d{6})(?:-?(\\d{2})(?:-?(\\d{2}))?)?(?:[ T]?(\\d{2}):?(\\d{2})(?::?(\\d{2})(?:[,\\.](\\d{1,}))?)?(?:(Z)|([+\\-])(\\d{2})(?::?(\\d{2}))?)?)?$/;\nfunction parseIsoDate(date) {\n var numericKeys = [1, 4, 5, 6, 7, 10, 11],\n minutesOffset = 0,\n timestamp,\n struct;\n if (struct = isoReg.exec(date)) {\n // avoid NaN timestamps caused by “undefined” values being passed to Date.UTC\n for (var i = 0, k; k = numericKeys[i]; ++i) struct[k] = +struct[k] || 0;\n\n // allow undefined days and months\n struct[2] = (+struct[2] || 1) - 1;\n struct[3] = +struct[3] || 1;\n\n // allow arbitrary sub-second precision beyond milliseconds\n struct[7] = struct[7] ? String(struct[7]).substr(0, 3) : 0;\n\n // timestamps without timezone identifiers should be considered local time\n if ((struct[8] === undefined || struct[8] === '') && (struct[9] === undefined || struct[9] === '')) timestamp = +new Date(struct[1], struct[2], struct[3], struct[4], struct[5], struct[6], struct[7]);else {\n if (struct[8] !== 'Z' && struct[9] !== undefined) {\n minutesOffset = struct[10] * 60 + struct[11];\n if (struct[9] === '+') minutesOffset = 0 - minutesOffset;\n }\n timestamp = Date.UTC(struct[1], struct[2], struct[3], struct[4], struct[5] + minutesOffset, struct[6], struct[7]);\n }\n } else timestamp = Date.parse ? Date.parse(date) : NaN;\n return timestamp;\n}\n\n// @ts-ignore\nlet invalidDate = new Date('');\nlet isDate = obj => Object.prototype.toString.call(obj) === '[object Date]';\nfunction create$4() {\n return new DateSchema();\n}\nclass DateSchema extends Schema {\n constructor() {\n super({\n type: 'date',\n check(v) {\n return isDate(v) && !isNaN(v.getTime());\n }\n });\n this.withMutation(() => {\n this.transform((value, _raw, ctx) => {\n // null -> InvalidDate isn't useful; treat all nulls as null and let it fail on\n // nullability check vs TypeErrors\n if (!ctx.spec.coerce || ctx.isType(value) || value === null) return value;\n value = parseIsoDate(value);\n\n // 0 is a valid timestamp equivalent to 1970-01-01T00:00:00Z(unix epoch) or before.\n return !isNaN(value) ? new Date(value) : DateSchema.INVALID_DATE;\n });\n });\n }\n prepareParam(ref, name) {\n let param;\n if (!Reference.isRef(ref)) {\n let cast = this.cast(ref);\n if (!this._typeCheck(cast)) throw new TypeError(`\\`${name}\\` must be a Date or a value that can be \\`cast()\\` to a Date`);\n param = cast;\n } else {\n param = ref;\n }\n return param;\n }\n min(min, message = date.min) {\n let limit = this.prepareParam(min, 'min');\n return this.test({\n message,\n name: 'min',\n exclusive: true,\n params: {\n min\n },\n skipAbsent: true,\n test(value) {\n return value >= this.resolve(limit);\n }\n });\n }\n max(max, message = date.max) {\n let limit = this.prepareParam(max, 'max');\n return this.test({\n message,\n name: 'max',\n exclusive: true,\n params: {\n max\n },\n skipAbsent: true,\n test(value) {\n return value <= this.resolve(limit);\n }\n });\n }\n}\nDateSchema.INVALID_DATE = invalidDate;\ncreate$4.prototype = DateSchema.prototype;\ncreate$4.INVALID_DATE = invalidDate;\n\n// @ts-expect-error\nfunction sortFields(fields, excludedEdges = []) {\n let edges = [];\n let nodes = new Set();\n let excludes = new Set(excludedEdges.map(([a, b]) => `${a}-${b}`));\n function addNode(depPath, key) {\n let node = split(depPath)[0];\n nodes.add(node);\n if (!excludes.has(`${key}-${node}`)) edges.push([key, node]);\n }\n for (const key of Object.keys(fields)) {\n let value = fields[key];\n nodes.add(key);\n if (Reference.isRef(value) && value.isSibling) addNode(value.path, key);else if (isSchema(value) && 'deps' in value) value.deps.forEach(path => addNode(path, key));\n }\n return toposort.array(Array.from(nodes), edges).reverse();\n}\n\nfunction findIndex(arr, err) {\n let idx = Infinity;\n arr.some((key, ii) => {\n var _err$path;\n if ((_err$path = err.path) != null && _err$path.includes(key)) {\n idx = ii;\n return true;\n }\n });\n return idx;\n}\nfunction sortByKeyOrder(keys) {\n return (a, b) => {\n return findIndex(keys, a) - findIndex(keys, b);\n };\n}\n\nconst parseJson = (value, _, ctx) => {\n if (typeof value !== 'string') {\n return value;\n }\n let parsed = value;\n try {\n parsed = JSON.parse(value);\n } catch (err) {\n /* */\n }\n return ctx.isType(parsed) ? parsed : value;\n};\n\n// @ts-ignore\nfunction deepPartial(schema) {\n if ('fields' in schema) {\n const partial = {};\n for (const [key, fieldSchema] of Object.entries(schema.fields)) {\n partial[key] = deepPartial(fieldSchema);\n }\n return schema.setFields(partial);\n }\n if (schema.type === 'array') {\n const nextArray = schema.optional();\n if (nextArray.innerType) nextArray.innerType = deepPartial(nextArray.innerType);\n return nextArray;\n }\n if (schema.type === 'tuple') {\n return schema.optional().clone({\n types: schema.spec.types.map(deepPartial)\n });\n }\n if ('optional' in schema) {\n return schema.optional();\n }\n return schema;\n}\nconst deepHas = (obj, p) => {\n const path = [...normalizePath(p)];\n if (path.length === 1) return path[0] in obj;\n let last = path.pop();\n let parent = getter(join(path), true)(obj);\n return !!(parent && last in parent);\n};\nlet isObject = obj => Object.prototype.toString.call(obj) === '[object Object]';\nfunction unknown(ctx, value) {\n let known = Object.keys(ctx.fields);\n return Object.keys(value).filter(key => known.indexOf(key) === -1);\n}\nconst defaultSort = sortByKeyOrder([]);\nfunction create$3(spec) {\n return new ObjectSchema(spec);\n}\nclass ObjectSchema extends Schema {\n constructor(spec) {\n super({\n type: 'object',\n check(value) {\n return isObject(value) || typeof value === 'function';\n }\n });\n this.fields = Object.create(null);\n this._sortErrors = defaultSort;\n this._nodes = [];\n this._excludedEdges = [];\n this.withMutation(() => {\n if (spec) {\n this.shape(spec);\n }\n });\n }\n _cast(_value, options = {}) {\n var _options$stripUnknown;\n let value = super._cast(_value, options);\n\n //should ignore nulls here\n if (value === undefined) return this.getDefault(options);\n if (!this._typeCheck(value)) return value;\n let fields = this.fields;\n let strip = (_options$stripUnknown = options.stripUnknown) != null ? _options$stripUnknown : this.spec.noUnknown;\n let props = [].concat(this._nodes, Object.keys(value).filter(v => !this._nodes.includes(v)));\n let intermediateValue = {}; // is filled during the transform below\n let innerOptions = Object.assign({}, options, {\n parent: intermediateValue,\n __validating: options.__validating || false\n });\n let isChanged = false;\n for (const prop of props) {\n let field = fields[prop];\n let exists = (prop in value);\n if (field) {\n let fieldValue;\n let inputValue = value[prop];\n\n // safe to mutate since this is fired in sequence\n innerOptions.path = (options.path ? `${options.path}.` : '') + prop;\n field = field.resolve({\n value: inputValue,\n context: options.context,\n parent: intermediateValue\n });\n let fieldSpec = field instanceof Schema ? field.spec : undefined;\n let strict = fieldSpec == null ? void 0 : fieldSpec.strict;\n if (fieldSpec != null && fieldSpec.strip) {\n isChanged = isChanged || prop in value;\n continue;\n }\n fieldValue = !options.__validating || !strict ?\n // TODO: use _cast, this is double resolving\n field.cast(value[prop], innerOptions) : value[prop];\n if (fieldValue !== undefined) {\n intermediateValue[prop] = fieldValue;\n }\n } else if (exists && !strip) {\n intermediateValue[prop] = value[prop];\n }\n if (exists !== prop in intermediateValue || intermediateValue[prop] !== value[prop]) {\n isChanged = true;\n }\n }\n return isChanged ? intermediateValue : value;\n }\n _validate(_value, options = {}, panic, next) {\n let {\n from = [],\n originalValue = _value,\n recursive = this.spec.recursive\n } = options;\n options.from = [{\n schema: this,\n value: originalValue\n }, ...from];\n // this flag is needed for handling `strict` correctly in the context of\n // validation vs just casting. e.g strict() on a field is only used when validating\n options.__validating = true;\n options.originalValue = originalValue;\n super._validate(_value, options, panic, (objectErrors, value) => {\n if (!recursive || !isObject(value)) {\n next(objectErrors, value);\n return;\n }\n originalValue = originalValue || value;\n let tests = [];\n for (let key of this._nodes) {\n let field = this.fields[key];\n if (!field || Reference.isRef(field)) {\n continue;\n }\n tests.push(field.asNestedTest({\n options,\n key,\n parent: value,\n parentPath: options.path,\n originalParent: originalValue\n }));\n }\n this.runTests({\n tests,\n value,\n originalValue,\n options\n }, panic, fieldErrors => {\n next(fieldErrors.sort(this._sortErrors).concat(objectErrors), value);\n });\n });\n }\n clone(spec) {\n const next = super.clone(spec);\n next.fields = Object.assign({}, this.fields);\n next._nodes = this._nodes;\n next._excludedEdges = this._excludedEdges;\n next._sortErrors = this._sortErrors;\n return next;\n }\n concat(schema) {\n let next = super.concat(schema);\n let nextFields = next.fields;\n for (let [field, schemaOrRef] of Object.entries(this.fields)) {\n const target = nextFields[field];\n nextFields[field] = target === undefined ? schemaOrRef : target;\n }\n return next.withMutation(s =>\n // XXX: excludes here is wrong\n s.setFields(nextFields, [...this._excludedEdges, ...schema._excludedEdges]));\n }\n _getDefault(options) {\n if ('default' in this.spec) {\n return super._getDefault(options);\n }\n\n // if there is no default set invent one\n if (!this._nodes.length) {\n return undefined;\n }\n let dft = {};\n this._nodes.forEach(key => {\n var _innerOptions;\n const field = this.fields[key];\n let innerOptions = options;\n if ((_innerOptions = innerOptions) != null && _innerOptions.value) {\n innerOptions = Object.assign({}, innerOptions, {\n parent: innerOptions.value,\n value: innerOptions.value[key]\n });\n }\n dft[key] = field && 'getDefault' in field ? field.getDefault(innerOptions) : undefined;\n });\n return dft;\n }\n setFields(shape, excludedEdges) {\n let next = this.clone();\n next.fields = shape;\n next._nodes = sortFields(shape, excludedEdges);\n next._sortErrors = sortByKeyOrder(Object.keys(shape));\n // XXX: this carries over edges which may not be what you want\n if (excludedEdges) next._excludedEdges = excludedEdges;\n return next;\n }\n shape(additions, excludes = []) {\n return this.clone().withMutation(next => {\n let edges = next._excludedEdges;\n if (excludes.length) {\n if (!Array.isArray(excludes[0])) excludes = [excludes];\n edges = [...next._excludedEdges, ...excludes];\n }\n\n // XXX: excludes here is wrong\n return next.setFields(Object.assign(next.fields, additions), edges);\n });\n }\n partial() {\n const partial = {};\n for (const [key, schema] of Object.entries(this.fields)) {\n partial[key] = 'optional' in schema && schema.optional instanceof Function ? schema.optional() : schema;\n }\n return this.setFields(partial);\n }\n deepPartial() {\n const next = deepPartial(this);\n return next;\n }\n pick(keys) {\n const picked = {};\n for (const key of keys) {\n if (this.fields[key]) picked[key] = this.fields[key];\n }\n return this.setFields(picked);\n }\n omit(keys) {\n const fields = Object.assign({}, this.fields);\n for (const key of keys) {\n delete fields[key];\n }\n return this.setFields(fields);\n }\n from(from, to, alias) {\n let fromGetter = getter(from, true);\n return this.transform(obj => {\n if (!obj) return obj;\n let newObj = obj;\n if (deepHas(obj, from)) {\n newObj = Object.assign({}, obj);\n if (!alias) delete newObj[from];\n newObj[to] = fromGetter(obj);\n }\n return newObj;\n });\n }\n\n /** Parse an input JSON string to an object */\n json() {\n return this.transform(parseJson);\n }\n noUnknown(noAllow = true, message = object.noUnknown) {\n if (typeof noAllow !== 'boolean') {\n message = noAllow;\n noAllow = true;\n }\n let next = this.test({\n name: 'noUnknown',\n exclusive: true,\n message: message,\n test(value) {\n if (value == null) return true;\n const unknownKeys = unknown(this.schema, value);\n return !noAllow || unknownKeys.length === 0 || this.createError({\n params: {\n unknown: unknownKeys.join(', ')\n }\n });\n }\n });\n next.spec.noUnknown = noAllow;\n return next;\n }\n unknown(allow = true, message = object.noUnknown) {\n return this.noUnknown(!allow, message);\n }\n transformKeys(fn) {\n return this.transform(obj => {\n if (!obj) return obj;\n const result = {};\n for (const key of Object.keys(obj)) result[fn(key)] = obj[key];\n return result;\n });\n }\n camelCase() {\n return this.transformKeys(camelCase);\n }\n snakeCase() {\n return this.transformKeys(snakeCase);\n }\n constantCase() {\n return this.transformKeys(key => snakeCase(key).toUpperCase());\n }\n describe(options) {\n let base = super.describe(options);\n base.fields = {};\n for (const [key, value] of Object.entries(this.fields)) {\n var _innerOptions2;\n let innerOptions = options;\n if ((_innerOptions2 = innerOptions) != null && _innerOptions2.value) {\n innerOptions = Object.assign({}, innerOptions, {\n parent: innerOptions.value,\n value: innerOptions.value[key]\n });\n }\n base.fields[key] = value.describe(innerOptions);\n }\n return base;\n }\n}\ncreate$3.prototype = ObjectSchema.prototype;\n\nfunction create$2(type) {\n return new ArraySchema(type);\n}\nclass ArraySchema extends Schema {\n constructor(type) {\n super({\n type: 'array',\n spec: {\n types: type\n },\n check(v) {\n return Array.isArray(v);\n }\n });\n\n // `undefined` specifically means uninitialized, as opposed to \"no subtype\"\n this.innerType = void 0;\n this.innerType = type;\n }\n _cast(_value, _opts) {\n const value = super._cast(_value, _opts);\n\n // should ignore nulls here\n if (!this._typeCheck(value) || !this.innerType) {\n return value;\n }\n let isChanged = false;\n const castArray = value.map((v, idx) => {\n const castElement = this.innerType.cast(v, Object.assign({}, _opts, {\n path: `${_opts.path || ''}[${idx}]`\n }));\n if (castElement !== v) {\n isChanged = true;\n }\n return castElement;\n });\n return isChanged ? castArray : value;\n }\n _validate(_value, options = {}, panic, next) {\n var _options$recursive;\n // let sync = options.sync;\n // let path = options.path;\n let innerType = this.innerType;\n // let endEarly = options.abortEarly ?? this.spec.abortEarly;\n let recursive = (_options$recursive = options.recursive) != null ? _options$recursive : this.spec.recursive;\n options.originalValue != null ? options.originalValue : _value;\n super._validate(_value, options, panic, (arrayErrors, value) => {\n var _options$originalValu2;\n if (!recursive || !innerType || !this._typeCheck(value)) {\n next(arrayErrors, value);\n return;\n }\n\n // #950 Ensure that sparse array empty slots are validated\n let tests = new Array(value.length);\n for (let index = 0; index < value.length; index++) {\n var _options$originalValu;\n tests[index] = innerType.asNestedTest({\n options,\n index,\n parent: value,\n parentPath: options.path,\n originalParent: (_options$originalValu = options.originalValue) != null ? _options$originalValu : _value\n });\n }\n this.runTests({\n value,\n tests,\n originalValue: (_options$originalValu2 = options.originalValue) != null ? _options$originalValu2 : _value,\n options\n }, panic, innerTypeErrors => next(innerTypeErrors.concat(arrayErrors), value));\n });\n }\n clone(spec) {\n const next = super.clone(spec);\n // @ts-expect-error readonly\n next.innerType = this.innerType;\n return next;\n }\n\n /** Parse an input JSON string to an object */\n json() {\n return this.transform(parseJson);\n }\n concat(schema) {\n let next = super.concat(schema);\n\n // @ts-expect-error readonly\n next.innerType = this.innerType;\n if (schema.innerType)\n // @ts-expect-error readonly\n next.innerType = next.innerType ?\n // @ts-expect-error Lazy doesn't have concat and will break\n next.innerType.concat(schema.innerType) : schema.innerType;\n return next;\n }\n of(schema) {\n // FIXME: this should return a new instance of array without the default to be\n let next = this.clone();\n if (!isSchema(schema)) throw new TypeError('`array.of()` sub-schema must be a valid yup schema not: ' + printValue(schema));\n\n // @ts-expect-error readonly\n next.innerType = schema;\n next.spec = Object.assign({}, next.spec, {\n types: schema\n });\n return next;\n }\n length(length, message = array.length) {\n return this.test({\n message,\n name: 'length',\n exclusive: true,\n params: {\n length\n },\n skipAbsent: true,\n test(value) {\n return value.length === this.resolve(length);\n }\n });\n }\n min(min, message) {\n message = message || array.min;\n return this.test({\n message,\n name: 'min',\n exclusive: true,\n params: {\n min\n },\n skipAbsent: true,\n // FIXME(ts): Array\n test(value) {\n return value.length >= this.resolve(min);\n }\n });\n }\n max(max, message) {\n message = message || array.max;\n return this.test({\n message,\n name: 'max',\n exclusive: true,\n params: {\n max\n },\n skipAbsent: true,\n test(value) {\n return value.length <= this.resolve(max);\n }\n });\n }\n ensure() {\n return this.default(() => []).transform((val, original) => {\n // We don't want to return `null` for nullable schema\n if (this._typeCheck(val)) return val;\n return original == null ? [] : [].concat(original);\n });\n }\n compact(rejector) {\n let reject = !rejector ? v => !!v : (v, i, a) => !rejector(v, i, a);\n return this.transform(values => values != null ? values.filter(reject) : values);\n }\n describe(options) {\n let base = super.describe(options);\n if (this.innerType) {\n var _innerOptions;\n let innerOptions = options;\n if ((_innerOptions = innerOptions) != null && _innerOptions.value) {\n innerOptions = Object.assign({}, innerOptions, {\n parent: innerOptions.value,\n value: innerOptions.value[0]\n });\n }\n base.innerType = this.innerType.describe(innerOptions);\n }\n return base;\n }\n}\ncreate$2.prototype = ArraySchema.prototype;\n\n// @ts-ignore\nfunction create$1(schemas) {\n return new TupleSchema(schemas);\n}\nclass TupleSchema extends Schema {\n constructor(schemas) {\n super({\n type: 'tuple',\n spec: {\n types: schemas\n },\n check(v) {\n const types = this.spec.types;\n return Array.isArray(v) && v.length === types.length;\n }\n });\n this.withMutation(() => {\n this.typeError(tuple.notType);\n });\n }\n _cast(inputValue, options) {\n const {\n types\n } = this.spec;\n const value = super._cast(inputValue, options);\n if (!this._typeCheck(value)) {\n return value;\n }\n let isChanged = false;\n const castArray = types.map((type, idx) => {\n const castElement = type.cast(value[idx], Object.assign({}, options, {\n path: `${options.path || ''}[${idx}]`\n }));\n if (castElement !== value[idx]) isChanged = true;\n return castElement;\n });\n return isChanged ? castArray : value;\n }\n _validate(_value, options = {}, panic, next) {\n let itemTypes = this.spec.types;\n super._validate(_value, options, panic, (tupleErrors, value) => {\n var _options$originalValu2;\n // intentionally not respecting recursive\n if (!this._typeCheck(value)) {\n next(tupleErrors, value);\n return;\n }\n let tests = [];\n for (let [index, itemSchema] of itemTypes.entries()) {\n var _options$originalValu;\n tests[index] = itemSchema.asNestedTest({\n options,\n index,\n parent: value,\n parentPath: options.path,\n originalParent: (_options$originalValu = options.originalValue) != null ? _options$originalValu : _value\n });\n }\n this.runTests({\n value,\n tests,\n originalValue: (_options$originalValu2 = options.originalValue) != null ? _options$originalValu2 : _value,\n options\n }, panic, innerTypeErrors => next(innerTypeErrors.concat(tupleErrors), value));\n });\n }\n describe(options) {\n let base = super.describe(options);\n base.innerType = this.spec.types.map((schema, index) => {\n var _innerOptions;\n let innerOptions = options;\n if ((_innerOptions = innerOptions) != null && _innerOptions.value) {\n innerOptions = Object.assign({}, innerOptions, {\n parent: innerOptions.value,\n value: innerOptions.value[index]\n });\n }\n return schema.describe(innerOptions);\n });\n return base;\n }\n}\ncreate$1.prototype = TupleSchema.prototype;\n\nfunction create(builder) {\n return new Lazy(builder);\n}\nclass Lazy {\n constructor(builder) {\n this.type = 'lazy';\n this.__isYupSchema__ = true;\n this.spec = void 0;\n this._resolve = (value, options = {}) => {\n let schema = this.builder(value, options);\n if (!isSchema(schema)) throw new TypeError('lazy() functions must return a valid schema');\n if (this.spec.optional) schema = schema.optional();\n return schema.resolve(options);\n };\n this.builder = builder;\n this.spec = {\n meta: undefined,\n optional: false\n };\n }\n clone(spec) {\n const next = new Lazy(this.builder);\n next.spec = Object.assign({}, this.spec, spec);\n return next;\n }\n optionality(optional) {\n const next = this.clone({\n optional\n });\n return next;\n }\n optional() {\n return this.optionality(true);\n }\n resolve(options) {\n return this._resolve(options.value, options);\n }\n cast(value, options) {\n return this._resolve(value, options).cast(value, options);\n }\n asNestedTest(config) {\n let {\n key,\n index,\n parent,\n options\n } = config;\n let value = parent[index != null ? index : key];\n return this._resolve(value, Object.assign({}, options, {\n value,\n parent\n })).asNestedTest(config);\n }\n validate(value, options) {\n return this._resolve(value, options).validate(value, options);\n }\n validateSync(value, options) {\n return this._resolve(value, options).validateSync(value, options);\n }\n validateAt(path, value, options) {\n return this._resolve(value, options).validateAt(path, value, options);\n }\n validateSyncAt(path, value, options) {\n return this._resolve(value, options).validateSyncAt(path, value, options);\n }\n isValid(value, options) {\n return this._resolve(value, options).isValid(value, options);\n }\n isValidSync(value, options) {\n return this._resolve(value, options).isValidSync(value, options);\n }\n describe(options) {\n return options ? this.resolve(options).describe(options) : {\n type: 'lazy',\n meta: this.spec.meta,\n label: undefined\n };\n }\n meta(...args) {\n if (args.length === 0) return this.spec.meta;\n let next = this.clone();\n next.spec.meta = Object.assign(next.spec.meta || {}, args[0]);\n return next;\n }\n}\n\nfunction setLocale(custom) {\n Object.keys(custom).forEach(type => {\n // @ts-ignore\n Object.keys(custom[type]).forEach(method => {\n // @ts-ignore\n locale[type][method] = custom[type][method];\n });\n });\n}\n\nfunction addMethod(schemaType, name, fn) {\n if (!schemaType || !isSchema(schemaType.prototype)) throw new TypeError('You must provide a yup schema constructor function');\n if (typeof name !== 'string') throw new TypeError('A Method name must be provided');\n if (typeof fn !== 'function') throw new TypeError('Method function must be provided');\n schemaType.prototype[name] = fn;\n}\n\nexport { ArraySchema, BooleanSchema, DateSchema, MixedSchema, NumberSchema, ObjectSchema, Schema, StringSchema, TupleSchema, ValidationError, addMethod, create$2 as array, create$7 as bool, create$7 as boolean, create$4 as date, locale as defaultLocale, getIn, isSchema, create as lazy, create$8 as mixed, create$5 as number, create$3 as object, reach, create$9 as ref, setLocale, create$6 as string, create$1 as tuple };\n","function u(r,n,...a){if(r in n){let e=n[r];return typeof e==\"function\"?e(...a):e}let t=new Error(`Tried to handle \"${r}\" but there is no handler defined. Only defined handlers are: ${Object.keys(n).map(e=>`\"${e}\"`).join(\", \")}.`);throw Error.captureStackTrace&&Error.captureStackTrace(t,u),t}export{u as match};\n","import{h as O,cloneVNode as x,Fragment as k}from\"vue\";import{match as w}from'./match.js';var N=(o=>(o[o.None=0]=\"None\",o[o.RenderStrategy=1]=\"RenderStrategy\",o[o.Static=2]=\"Static\",o))(N||{}),S=(e=>(e[e.Unmount=0]=\"Unmount\",e[e.Hidden=1]=\"Hidden\",e))(S||{});function H({visible:r=!0,features:t=0,ourProps:e,theirProps:o,...i}){var a;let n=j(o,e),l=Object.assign(i,{props:n});if(r||t&2&&n.static)return y(l);if(t&1){let d=(a=n.unmount)==null||a?0:1;return w(d,{[0](){return null},[1](){return y({...i,props:{...n,hidden:!0,style:{display:\"none\"}}})}})}return y(l)}function y({props:r,attrs:t,slots:e,slot:o,name:i}){var m,h;let{as:n,...l}=T(r,[\"unmount\",\"static\"]),a=(m=e.default)==null?void 0:m.call(e,o),d={};if(o){let u=!1,c=[];for(let[p,f]of Object.entries(o))typeof f==\"boolean\"&&(u=!0),f===!0&&c.push(p);u&&(d[\"data-headlessui-state\"]=c.join(\" \"))}if(n===\"template\"){if(a=b(a!=null?a:[]),Object.keys(l).length>0||Object.keys(t).length>0){let[u,...c]=a!=null?a:[];if(!v(u)||c.length>0)throw new Error(['Passing props on \"template\"!',\"\",`The current component <${i} /> is rendering a \"template\".`,\"However we need to passthrough the following props:\",Object.keys(l).concat(Object.keys(t)).map(s=>s.trim()).filter((s,g,R)=>R.indexOf(s)===g).sort((s,g)=>s.localeCompare(g)).map(s=>` - ${s}`).join(`\n`),\"\",\"You can apply a few solutions:\",['Add an `as=\"...\"` prop, to ensure that we render an actual element instead of a \"template\".',\"Render a single element as the child so that we can forward the props onto that element.\"].map(s=>` - ${s}`).join(`\n`)].join(`\n`));let p=j((h=u.props)!=null?h:{},l),f=x(u,p);for(let s in p)s.startsWith(\"on\")&&(f.props||(f.props={}),f.props[s]=p[s]);return f}return Array.isArray(a)&&a.length===1?a[0]:a}return O(n,Object.assign({},l,d),{default:()=>a})}function b(r){return r.flatMap(t=>t.type===k?b(t.children):[t])}function j(...r){var o;if(r.length===0)return{};if(r.length===1)return r[0];let t={},e={};for(let i of r)for(let n in i)n.startsWith(\"on\")&&typeof i[n]==\"function\"?((o=e[n])!=null||(e[n]=[]),e[n].push(i[n])):t[n]=i[n];if(t.disabled||t[\"aria-disabled\"])return Object.assign(t,Object.fromEntries(Object.keys(e).map(i=>[i,void 0])));for(let i in e)Object.assign(t,{[i](n,...l){let a=e[i];for(let d of a){if(n instanceof Event&&n.defaultPrevented)return;d(n,...l)}}});return t}function K(r){let t=Object.assign({},r);for(let e in t)t[e]===void 0&&delete t[e];return t}function T(r,t=[]){let e=Object.assign({},r);for(let o of t)o in e&&delete e[o];return e}function v(r){return r==null?!1:typeof r.type==\"string\"||typeof r.type==\"object\"||typeof r.type==\"function\"}export{N as Features,S as RenderStrategy,K as compact,T as omit,H as render};\n","var o=(r=>(r.Space=\" \",r.Enter=\"Enter\",r.Escape=\"Escape\",r.Backspace=\"Backspace\",r.Delete=\"Delete\",r.ArrowLeft=\"ArrowLeft\",r.ArrowUp=\"ArrowUp\",r.ArrowRight=\"ArrowRight\",r.ArrowDown=\"ArrowDown\",r.Home=\"Home\",r.End=\"End\",r.PageUp=\"PageUp\",r.PageDown=\"PageDown\",r.Tab=\"Tab\",r))(o||{});export{o as Keys};\n","let e=0;function n(){return++e}function t(){return n()}export{t as useId};\n","import{defineComponent as i}from\"vue\";import{render as p}from'../utils/render.js';var a=(e=>(e[e.None=1]=\"None\",e[e.Focusable=2]=\"Focusable\",e[e.Hidden=4]=\"Hidden\",e))(a||{});let f=i({name:\"Hidden\",props:{as:{type:[Object,String],default:\"div\"},features:{type:Number,default:1}},setup(r,{slots:t,attrs:d}){return()=>{let{features:e,...o}=r,n={\"aria-hidden\":(e&2)===2?!0:void 0,style:{position:\"fixed\",top:1,left:1,width:1,height:0,padding:0,margin:-1,overflow:\"hidden\",clip:\"rect(0, 0, 0, 0)\",whiteSpace:\"nowrap\",borderWidth:\"0\",...(e&4)===4&&(e&2)!==2&&{display:\"none\"}}};return p({ourProps:n,theirProps:o,slot:{},attrs:d,slots:t,name:\"Hidden\"})}}});export{a as Features,f as Hidden};\n","function o(n){var l;return n==null||n.value==null?null:(l=n.value.$el)!=null?l:n.value}export{o as dom};\n","var i=Object.defineProperty;var d=(t,e,r)=>e in t?i(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r;var n=(t,e,r)=>(d(t,typeof e!=\"symbol\"?e+\"\":e,r),r);class s{constructor(){n(this,\"current\",this.detect());n(this,\"currentId\",0)}set(e){this.current!==e&&(this.currentId=0,this.current=e)}reset(){this.set(this.detect())}nextId(){return++this.currentId}get isServer(){return this.current===\"server\"}get isClient(){return this.current===\"client\"}detect(){return typeof window==\"undefined\"||typeof document==\"undefined\"?\"server\":\"client\"}}let c=new s;export{c as env};\n","import{dom as o}from'./dom.js';import{env as t}from'./env.js';function m(r){if(t.isServer)return null;if(r instanceof Node)return r.ownerDocument;if(r!=null&&r.hasOwnProperty(\"value\")){let n=o(r);if(n)return n.ownerDocument}return document}export{m as getOwnerDocument};\n","import{nextTick as b}from\"vue\";import{match as M}from'./match.js';import{getOwnerDocument as f}from'./owner.js';let c=[\"[contentEditable=true]\",\"[tabindex]\",\"a[href]\",\"area[href]\",\"button:not([disabled])\",\"iframe\",\"input:not([disabled])\",\"select:not([disabled])\",\"textarea:not([disabled])\"].map(e=>`${e}:not([tabindex='-1'])`).join(\",\");var N=(n=>(n[n.First=1]=\"First\",n[n.Previous=2]=\"Previous\",n[n.Next=4]=\"Next\",n[n.Last=8]=\"Last\",n[n.WrapAround=16]=\"WrapAround\",n[n.NoScroll=32]=\"NoScroll\",n))(N||{}),T=(o=>(o[o.Error=0]=\"Error\",o[o.Overflow=1]=\"Overflow\",o[o.Success=2]=\"Success\",o[o.Underflow=3]=\"Underflow\",o))(T||{}),F=(t=>(t[t.Previous=-1]=\"Previous\",t[t.Next=1]=\"Next\",t))(F||{});function E(e=document.body){return e==null?[]:Array.from(e.querySelectorAll(c)).sort((r,t)=>Math.sign((r.tabIndex||Number.MAX_SAFE_INTEGER)-(t.tabIndex||Number.MAX_SAFE_INTEGER)))}var h=(t=>(t[t.Strict=0]=\"Strict\",t[t.Loose=1]=\"Loose\",t))(h||{});function w(e,r=0){var t;return e===((t=f(e))==null?void 0:t.body)?!1:M(r,{[0](){return e.matches(c)},[1](){let l=e;for(;l!==null;){if(l.matches(c))return!0;l=l.parentElement}return!1}})}function _(e){let r=f(e);b(()=>{r&&!w(r.activeElement,0)&&S(e)})}var y=(t=>(t[t.Keyboard=0]=\"Keyboard\",t[t.Mouse=1]=\"Mouse\",t))(y||{});typeof window!=\"undefined\"&&typeof document!=\"undefined\"&&(document.addEventListener(\"keydown\",e=>{e.metaKey||e.altKey||e.ctrlKey||(document.documentElement.dataset.headlessuiFocusVisible=\"\")},!0),document.addEventListener(\"click\",e=>{e.detail===1?delete document.documentElement.dataset.headlessuiFocusVisible:e.detail===0&&(document.documentElement.dataset.headlessuiFocusVisible=\"\")},!0));function S(e){e==null||e.focus({preventScroll:!0})}let H=[\"textarea\",\"input\"].join(\",\");function I(e){var r,t;return(t=(r=e==null?void 0:e.matches)==null?void 0:r.call(e,H))!=null?t:!1}function O(e,r=t=>t){return e.slice().sort((t,l)=>{let o=r(t),i=r(l);if(o===null||i===null)return 0;let n=o.compareDocumentPosition(i);return n&Node.DOCUMENT_POSITION_FOLLOWING?-1:n&Node.DOCUMENT_POSITION_PRECEDING?1:0})}function v(e,r){return P(E(),r,{relativeTo:e})}function P(e,r,{sorted:t=!0,relativeTo:l=null,skipElements:o=[]}={}){var m;let i=(m=Array.isArray(e)?e.length>0?e[0].ownerDocument:document:e==null?void 0:e.ownerDocument)!=null?m:document,n=Array.isArray(e)?t?O(e):e:E(e);o.length>0&&n.length>1&&(n=n.filter(s=>!o.includes(s))),l=l!=null?l:i.activeElement;let x=(()=>{if(r&5)return 1;if(r&10)return-1;throw new Error(\"Missing Focus.First, Focus.Previous, Focus.Next or Focus.Last\")})(),p=(()=>{if(r&1)return 0;if(r&2)return Math.max(0,n.indexOf(l))-1;if(r&4)return Math.max(0,n.indexOf(l))+1;if(r&8)return n.length-1;throw new Error(\"Missing Focus.First, Focus.Previous, Focus.Next or Focus.Last\")})(),L=r&32?{preventScroll:!0}:{},a=0,d=n.length,u;do{if(a>=d||a+d<=0)return 0;let s=p+a;if(r&16)s=(s+d)%d;else{if(s<0)return 3;if(s>=d)return 1}u=n[s],u==null||u.focus(L),a+=x}while(u!==i.activeElement);return r&6&&I(u)&&u.select(),2}export{N as Focus,T as FocusResult,h as FocusableMode,S as focusElement,v as focusFrom,P as focusIn,E as getFocusableElements,w as isFocusableElement,_ as restoreFocusIfNecessary,O as sortByDomNode};\n","import{ref as a}from\"vue\";import{useWindowEvent as t}from'./use-window-event.js';var d=(r=>(r[r.Forwards=0]=\"Forwards\",r[r.Backwards=1]=\"Backwards\",r))(d||{});function n(){let o=a(0);return t(\"keydown\",e=>{e.key===\"Tab\"&&(o.value=e.shiftKey?1:0)}),o}export{d as Direction,n as useTabDirection};\n","import{watchEffect as i}from\"vue\";import{env as r}from'../utils/env.js';function w(e,n,t){r.isServer||i(o=>{window.addEventListener(e,n,t),o(()=>window.removeEventListener(e,n,t))})}export{w as useWindowEvent};\n","import{watchEffect as i}from\"vue\";import{env as a}from'../utils/env.js';function E(n,e,o,r){a.isServer||i(t=>{n=n!=null?n:window,n.addEventListener(e,o,r),t(()=>n.removeEventListener(e,o,r))})}export{E as useEventListener};\n","function t(e){typeof queueMicrotask==\"function\"?queueMicrotask(e):Promise.resolve().then(e).catch(o=>setTimeout(()=>{throw o}))}export{t as microTask};\n","import{computed as F,defineComponent as I,h,onMounted as y,onUnmounted as R,ref as T,watch as k,Fragment as j,watchEffect as K}from\"vue\";import{render as U}from'../../utils/render.js';import{Hidden as D,Features as C}from'../../internal/hidden.js';import{dom as f}from'../../utils/dom.js';import{focusIn as b,Focus as v,focusElement as p,FocusResult as _}from'../../utils/focus-management.js';import{match as P}from'../../utils/match.js';import{useTabDirection as q,Direction as w}from'../../hooks/use-tab-direction.js';import{getOwnerDocument as G}from'../../utils/owner.js';import{useEventListener as W}from'../../hooks/use-event-listener.js';import{microTask as S}from'../../utils/micro-task.js';import{onDocumentReady as $}from'../../utils/document-ready.js';function B(e){if(!e)return new Set;if(typeof e==\"function\")return new Set(e());let t=new Set;for(let l of e.value){let o=f(l);o instanceof HTMLElement&&t.add(o)}return t}var A=(n=>(n[n.None=1]=\"None\",n[n.InitialFocus=2]=\"InitialFocus\",n[n.TabLock=4]=\"TabLock\",n[n.FocusLock=8]=\"FocusLock\",n[n.RestoreFocus=16]=\"RestoreFocus\",n[n.All=30]=\"All\",n))(A||{});let ce=Object.assign(I({name:\"FocusTrap\",props:{as:{type:[Object,String],default:\"div\"},initialFocus:{type:Object,default:null},features:{type:Number,default:30},containers:{type:[Object,Function],default:T(new Set)}},inheritAttrs:!1,setup(e,{attrs:t,slots:l,expose:o}){let r=T(null);o({el:r,$el:r});let i=F(()=>G(r)),n=T(!1);y(()=>n.value=!0),R(()=>n.value=!1),z({ownerDocument:i},F(()=>n.value&&Boolean(e.features&16)));let m=J({ownerDocument:i,container:r,initialFocus:F(()=>e.initialFocus)},F(()=>n.value&&Boolean(e.features&2)));Q({ownerDocument:i,container:r,containers:e.containers,previousActiveElement:m},F(()=>n.value&&Boolean(e.features&8)));let c=q();function u(a){let d=f(r);if(!d)return;(g=>g())(()=>{P(c.value,{[w.Forwards]:()=>{b(d,v.First,{skipElements:[a.relatedTarget]})},[w.Backwards]:()=>{b(d,v.Last,{skipElements:[a.relatedTarget]})}})})}let s=T(!1);function H(a){a.key===\"Tab\"&&(s.value=!0,requestAnimationFrame(()=>{s.value=!1}))}function M(a){if(!n.value)return;let d=B(e.containers);f(r)instanceof HTMLElement&&d.add(f(r));let E=a.relatedTarget;E instanceof HTMLElement&&E.dataset.headlessuiFocusGuard!==\"true\"&&(N(d,E)||(s.value?b(f(r),P(c.value,{[w.Forwards]:()=>v.Next,[w.Backwards]:()=>v.Previous})|v.WrapAround,{relativeTo:a.target}):a.target instanceof HTMLElement&&p(a.target)))}return()=>{let a={},d={ref:r,onKeydown:H,onFocusout:M},{features:E,initialFocus:g,containers:X,...O}=e;return h(j,[Boolean(E&4)&&h(D,{as:\"button\",type:\"button\",\"data-headlessui-focus-guard\":!0,onFocus:u,features:C.Focusable}),U({ourProps:d,theirProps:{...t,...O},slot:a,attrs:t,slots:l,name:\"FocusTrap\"}),Boolean(E&4)&&h(D,{as:\"button\",type:\"button\",\"data-headlessui-focus-guard\":!0,onFocus:u,features:C.Focusable})])}}}),{features:A}),L=[];$(()=>{function e(t){t.target instanceof HTMLElement&&t.target!==document.body&&L[0]!==t.target&&(L.unshift(t.target),L=L.filter(l=>l!=null&&l.isConnected),L.splice(10))}window.addEventListener(\"click\",e,{capture:!0}),window.addEventListener(\"mousedown\",e,{capture:!0}),window.addEventListener(\"focus\",e,{capture:!0}),document.body.addEventListener(\"click\",e,{capture:!0}),document.body.addEventListener(\"mousedown\",e,{capture:!0}),document.body.addEventListener(\"focus\",e,{capture:!0})});function x(e){let t=T(L.slice());return k([e],([l],[o])=>{o===!0&&l===!1?S(()=>{t.value.splice(0)}):o===!1&&l===!0&&(t.value=L.slice())},{flush:\"post\"}),()=>{var l;return(l=t.value.find(o=>o!=null&&o.isConnected))!=null?l:null}}function z({ownerDocument:e},t){let l=x(t);y(()=>{K(()=>{var o,r;t.value||((o=e.value)==null?void 0:o.activeElement)===((r=e.value)==null?void 0:r.body)&&p(l())},{flush:\"post\"})}),R(()=>{p(l())})}function J({ownerDocument:e,container:t,initialFocus:l},o){let r=T(null),i=T(!1);return y(()=>i.value=!0),R(()=>i.value=!1),y(()=>{k([t,l,o],(n,m)=>{if(n.every((u,s)=>(m==null?void 0:m[s])===u)||!o.value)return;let c=f(t);c&&S(()=>{var H,M;if(!i.value)return;let u=f(l),s=(H=e.value)==null?void 0:H.activeElement;if(u){if(u===s){r.value=s;return}}else if(c.contains(s)){r.value=s;return}u?p(u):b(c,v.First|v.NoScroll)===_.Error&&console.warn(\"There are no focusable elements inside the \"),r.value=(M=e.value)==null?void 0:M.activeElement})},{immediate:!0,flush:\"post\"})}),r}function Q({ownerDocument:e,container:t,containers:l,previousActiveElement:o},r){var i;W((i=e.value)==null?void 0:i.defaultView,\"focus\",n=>{if(!r.value)return;let m=B(l);f(t)instanceof HTMLElement&&m.add(f(t));let c=o.value;if(!c)return;let u=n.target;u&&u instanceof HTMLElement?N(m,u)?(o.value=u,p(u)):(n.preventDefault(),n.stopPropagation(),p(c)):p(o.value)},!0)}function N(e,t){for(let l of e)if(l.contains(t))return!0;return!1}export{ce as FocusTrap};\n","function t(n){function e(){document.readyState!==\"loading\"&&(n(),document.removeEventListener(\"DOMContentLoaded\",e))}typeof window!=\"undefined\"&&typeof document!=\"undefined\"&&(document.addEventListener(\"DOMContentLoaded\",e),e())}export{t as onDocumentReady};\n","import{ref as m,watchEffect as s}from\"vue\";import{dom as h}from'../utils/dom.js';let i=new Map,t=new Map;function E(d,f=m(!0)){s(o=>{var a;if(!f.value)return;let e=h(d);if(!e)return;o(function(){var u;if(!e)return;let r=(u=t.get(e))!=null?u:1;if(r===1?t.delete(e):t.set(e,r-1),r!==1)return;let n=i.get(e);n&&(n[\"aria-hidden\"]===null?e.removeAttribute(\"aria-hidden\"):e.setAttribute(\"aria-hidden\",n[\"aria-hidden\"]),e.inert=n.inert,i.delete(e))});let l=(a=t.get(e))!=null?a:0;t.set(e,l+1),l===0&&(i.set(e,{\"aria-hidden\":e.getAttribute(\"aria-hidden\"),inert:e.inert}),e.setAttribute(\"aria-hidden\",\"true\"),e.inert=!0)})}export{E as useInert};\n","import{defineComponent as l,inject as a,provide as c}from\"vue\";import{render as p}from'../utils/render.js';let e=Symbol(\"ForcePortalRootContext\");function u(){return a(e,!1)}let P=l({name:\"ForcePortalRoot\",props:{as:{type:[Object,String],default:\"template\"},force:{type:Boolean,default:!1}},setup(o,{slots:t,attrs:r}){return c(e,o.force),()=>{let{force:f,...n}=o;return p({theirProps:n,ourProps:{},slot:{},slots:t,attrs:r,name:\"ForcePortalRoot\"})}}});export{P as ForcePortalRoot,u as usePortalRoot};\n","import{Teleport as P,defineComponent as s,h,inject as y,onUnmounted as T,provide as E,reactive as w,ref as d,watchEffect as C,computed as b}from\"vue\";import{render as f}from'../../utils/render.js';import{usePortalRoot as j}from'../../internal/portal-force-root.js';import{getOwnerDocument as v}from'../../utils/owner.js';function c(t){let r=v(t);if(!r){if(t===null)return null;throw new Error(`[Headless UI]: Cannot find ownerDocument for contextElement: ${t}`)}let o=r.getElementById(\"headlessui-portal-root\");if(o)return o;let e=r.createElement(\"div\");return e.setAttribute(\"id\",\"headlessui-portal-root\"),r.body.appendChild(e)}let R=s({name:\"Portal\",props:{as:{type:[Object,String],default:\"div\"}},setup(t,{slots:r,attrs:o}){let e=d(null),p=b(()=>v(e)),n=j(),u=y(g,null),l=d(n===!0||u==null?c(e.value):u.resolveTarget());return C(()=>{n||u!=null&&(l.value=u.resolveTarget())}),T(()=>{var i,m;let a=(i=p.value)==null?void 0:i.getElementById(\"headlessui-portal-root\");a&&l.value===a&&l.value.children.length<=0&&((m=l.value.parentElement)==null||m.removeChild(l.value))}),()=>{if(l.value===null)return null;let a={ref:e,\"data-headlessui-portal\":\"\"};return h(P,{to:l.value},f({ourProps:a,theirProps:t,slot:{},attrs:o,slots:r,name:\"Portal\"}))}}}),g=Symbol(\"PortalGroupContext\"),L=s({name:\"PortalGroup\",props:{as:{type:[Object,String],default:\"template\"},target:{type:Object,default:null}},setup(t,{attrs:r,slots:o}){let e=w({resolveTarget(){return t.target}});return E(g,e),()=>{let{target:p,...n}=t;return f({theirProps:n,ourProps:{},slot:{},attrs:r,slots:o,name:\"PortalGroup\"})}}});export{R as Portal,L as PortalGroup};\n","import{inject as f,provide as m,onMounted as l,onUnmounted as c,watch as s}from\"vue\";let u=Symbol(\"StackContext\");var p=(e=>(e[e.Add=0]=\"Add\",e[e.Remove=1]=\"Remove\",e))(p||{});function v(){return f(u,()=>{})}function S({type:o,enabled:r,element:e,onUpdate:i}){let a=v();function t(...n){i==null||i(...n),a(...n)}l(()=>{s(r,(n,d)=>{n?t(0,o,e):d===!0&&t(1,o,e)},{immediate:!0,flush:\"sync\"})}),c(()=>{r.value&&t(1,o,e)}),m(u,t)}export{p as StackMessage,v as useStackContext,S as useStackProvider};\n","import{computed as m,defineComponent as x,inject as R,onMounted as v,onUnmounted as D,provide as j,ref as u,unref as y}from\"vue\";import{useId as C}from'../../hooks/use-id.js';import{render as h}from'../../utils/render.js';let p=Symbol(\"DescriptionContext\");function b(){let t=R(p,null);if(t===null)throw new Error(\"Missing parent\");return t}function M({slot:t=u({}),name:i=\"Description\",props:o={}}={}){let e=u([]);function s(n){return e.value.push(n),()=>{let r=e.value.indexOf(n);r!==-1&&e.value.splice(r,1)}}return j(p,{register:s,slot:t,name:i,props:o}),m(()=>e.value.length>0?e.value.join(\" \"):void 0)}let E=x({name:\"Description\",props:{as:{type:[Object,String],default:\"p\"},id:{type:String,default:()=>`headlessui-description-${C()}`}},setup(t,{attrs:i,slots:o}){let e=b();return v(()=>D(e.register(t.id))),()=>{let{name:s=\"Description\",slot:n=u({}),props:r={}}=e,{id:d,...l}=t,c={...Object.entries(r).reduce((f,[a,g])=>Object.assign(f,{[a]:y(g)}),{}),id:d};return h({ourProps:c,theirProps:l,slot:n.value,attrs:i,slots:o,name:s})}}});export{E as Description,M as useDescriptions};\n","import{inject as r,provide as i}from\"vue\";let n=Symbol(\"Context\");var l=(e=>(e[e.Open=1]=\"Open\",e[e.Closed=2]=\"Closed\",e[e.Closing=4]=\"Closing\",e[e.Opening=8]=\"Opening\",e))(l||{});function C(){return p()!==null}function p(){return r(n,null)}function c(o){i(n,o)}export{l as State,C as hasOpenClosed,p as useOpenClosed,c as useOpenClosedProvider};\n","import{watchEffect as r}from\"vue\";import{env as m}from'../utils/env.js';function u(e,t,n){m.isServer||r(o=>{document.addEventListener(e,t,n),o(()=>document.removeEventListener(e,t,n))})}export{u as useDocumentEvent};\n","import{computed as s,ref as E}from\"vue\";import{FocusableMode as d,isFocusableElement as p}from'../utils/focus-management.js';import{dom as C}from'../utils/dom.js';import{useDocumentEvent as l}from'./use-document-event.js';function y(f,m,i=s(()=>!0)){function a(e,u){if(!i.value||e.defaultPrevented)return;let n=u(e);if(n===null||!n.getRootNode().contains(n))return;let c=function o(t){return typeof t==\"function\"?o(t()):Array.isArray(t)||t instanceof Set?t:[t]}(f);for(let o of c){if(o===null)continue;let t=o instanceof HTMLElement?o:C(o);if(t!=null&&t.contains(n)||e.composed&&e.composedPath().includes(t))return}return!p(n,d.Loose)&&n.tabIndex!==-1&&e.preventDefault(),m(e,n)}let r=E(null);l(\"mousedown\",e=>{var u,n;i.value&&(r.value=((n=(u=e.composedPath)==null?void 0:u.call(e))==null?void 0:n[0])||e.target)},!0),l(\"click\",e=>{r.value&&(a(e,()=>r.value),r.value=null)},!0),l(\"blur\",e=>a(e,()=>window.document.activeElement instanceof HTMLIFrameElement?window.document.activeElement:null),!0)}export{y as useOutsideClick};\n","function r(){let n=[],s={addEventListener(e,t,i,a){return e.addEventListener(t,i,a),s.add(()=>e.removeEventListener(t,i,a))},requestAnimationFrame(...e){let t=requestAnimationFrame(...e);s.add(()=>cancelAnimationFrame(t))},nextFrame(...e){s.requestAnimationFrame(()=>{s.requestAnimationFrame(...e)})},setTimeout(...e){let t=setTimeout(...e);s.add(()=>clearTimeout(t))},style(e,t,i){let a=e.style.getPropertyValue(t);return Object.assign(e.style,{[t]:i}),this.add(()=>{Object.assign(e.style,{[t]:a})})},group(e){let t=r();return e(t),this.add(()=>t.dispose())},add(e){return n.push(e),()=>{let t=n.indexOf(e);if(t>=0)for(let i of n.splice(t,1))i()}},dispose(){for(let e of n.splice(0))e()}};return s}export{r as disposables};\n","function c(){let o;return{before({doc:e}){var l;let n=e.documentElement;o=((l=e.defaultView)!=null?l:window).innerWidth-n.clientWidth},after({doc:e,d:n}){let t=e.documentElement,l=t.clientWidth-t.offsetWidth,r=o-l;n.style(t,\"paddingRight\",`${r}px`)}}}export{c as adjustScrollbarPadding};\n","function t(){return/iPhone/gi.test(window.navigator.platform)||/Mac/gi.test(window.navigator.platform)&&window.navigator.maxTouchPoints>0}function i(){return/Android/gi.test(window.navigator.userAgent)}function n(){return t()||i()}export{i as isAndroid,t as isIOS,n as isMobile};\n","import{isIOS as f}from'../../utils/platform.js';function p(){if(!f())return{};let o;return{before(){o=window.pageYOffset},after({doc:r,d:l,meta:s}){function i(e){return s.containers.flatMap(t=>t()).some(t=>t.contains(e))}l.style(r.body,\"marginTop\",`-${o}px`),window.scrollTo(0,0);let n=null;l.addEventListener(r,\"click\",e=>{if(e.target instanceof HTMLElement)try{let t=e.target.closest(\"a\");if(!t)return;let{hash:c}=new URL(t.href),a=r.querySelector(c);a&&!i(a)&&(n=a)}catch{}},!0),l.addEventListener(r,\"touchmove\",e=>{e.target instanceof HTMLElement&&!i(e.target)&&e.preventDefault()},{passive:!1}),l.add(()=>{window.scrollTo(0,window.pageYOffset+o),n&&n.isConnected&&(n.scrollIntoView({block:\"nearest\"}),n=null)})}}}export{p as handleIOSLocking};\n","import{disposables as s}from'../../utils/disposables.js';import{createStore as i}from'../../utils/store.js';import{adjustScrollbarPadding as l}from'./adjust-scrollbar-padding.js';import{handleIOSLocking as d}from'./handle-ios-locking.js';import{preventScroll as p}from'./prevent-scroll.js';function m(e){let n={};for(let t of e)Object.assign(n,t(n));return n}let a=i(()=>new Map,{PUSH(e,n){var o;let t=(o=this.get(e))!=null?o:{doc:e,count:0,d:s(),meta:new Set};return t.count++,t.meta.add(n),this.set(e,t),this},POP(e,n){let t=this.get(e);return t&&(t.count--,t.meta.delete(n)),this},SCROLL_PREVENT({doc:e,d:n,meta:t}){let o={doc:e,d:n,meta:m(t)},c=[d(),l(),p()];c.forEach(({before:r})=>r==null?void 0:r(o)),c.forEach(({after:r})=>r==null?void 0:r(o))},SCROLL_ALLOW({d:e}){e.dispose()},TEARDOWN({doc:e}){this.delete(e)}});a.subscribe(()=>{let e=a.getSnapshot(),n=new Map;for(let[t]of e)n.set(t,t.documentElement.style.overflow);for(let t of e.values()){let o=n.get(t.doc)===\"hidden\",c=t.count!==0;(c&&!o||!c&&o)&&a.dispatch(t.count>0?\"SCROLL_PREVENT\":\"SCROLL_ALLOW\",t),t.count===0&&a.dispatch(\"TEARDOWN\",t)}});export{a as overflows};\n","function a(o,r){let t=o(),n=new Set;return{getSnapshot(){return t},subscribe(e){return n.add(e),()=>n.delete(e)},dispatch(e,...s){let i=r[e].call(t,...s);i&&(t=i,n.forEach(c=>c()))}}}export{a as createStore};\n","function l(){return{before({doc:e,d:o}){o.style(e.documentElement,\"overflow\",\"hidden\")}}}export{l as preventScroll};\n","import{useStore as p}from'../../hooks/use-store.js';import{overflows as u}from'./overflow-store.js';import{computed as s,watch as v}from\"vue\";function d(t,a,n){let i=p(u),l=s(()=>{let e=t.value?i.value.get(t.value):void 0;return e?e.count>0:!1});return v([t,a],([e,m],[r],o)=>{if(!e||!m)return;u.dispatch(\"PUSH\",e,n);let f=!1;o(()=>{f||(u.dispatch(\"POP\",r!=null?r:e,n),f=!0)})},{immediate:!0}),l}export{d as useDocumentOverflowLockedEffect};\n","import{onUnmounted as o,shallowRef as n}from\"vue\";function m(t){let e=n(t.getSnapshot());return o(t.subscribe(()=>{e.value=t.getSnapshot()})),e}export{m as useStore};\n","import{computed as o,defineComponent as b,h as D,inject as q,nextTick as le,onMounted as F,onUnmounted as re,provide as ae,ref as S,watchEffect as oe}from\"vue\";import{render as P,Features as K}from'../../utils/render.js';import{Keys as ne}from'../../keyboard.js';import{useId as T}from'../../hooks/use-id.js';import{FocusTrap as C}from'../../components/focus-trap/focus-trap.js';import{useInert as _}from'../../hooks/use-inert.js';import{Portal as U,PortalGroup as ie}from'../portal/portal.js';import{StackMessage as Y,useStackProvider as ue}from'../../internal/stack-context.js';import{match as z}from'../../utils/match.js';import{ForcePortalRoot as B}from'../../internal/portal-force-root.js';import{Description as se,useDescriptions as pe}from'../description/description.js';import{dom as L}from'../../utils/dom.js';import{useOpenClosed as fe,State as A}from'../../internal/open-closed.js';import{useOutsideClick as de}from'../../hooks/use-outside-click.js';import{getOwnerDocument as ce}from'../../utils/owner.js';import{useEventListener as ge}from'../../hooks/use-event-listener.js';import{Hidden as me,Features as ve}from'../../internal/hidden.js';import{useDocumentOverflowLockedEffect as De}from'../../hooks/document-overflow/use-document-overflow.js';var ye=(l=>(l[l.Open=0]=\"Open\",l[l.Closed=1]=\"Closed\",l))(ye||{});let I=Symbol(\"DialogContext\");function E(r){let n=q(I,null);if(n===null){let l=new Error(`<${r} /> is missing a parent component.`);throw Error.captureStackTrace&&Error.captureStackTrace(l,E),l}return n}let H=\"DC8F892D-2EBD-447C-A4C8-A03058436FF4\",qe=b({name:\"Dialog\",inheritAttrs:!1,props:{as:{type:[Object,String],default:\"div\"},static:{type:Boolean,default:!1},unmount:{type:Boolean,default:!0},open:{type:[Boolean,String],default:H},initialFocus:{type:Object,default:null},id:{type:String,default:()=>`headlessui-dialog-${T()}`}},emits:{close:r=>!0},setup(r,{emit:n,attrs:l,slots:p,expose:i}){var N;let a=S(!1);F(()=>{a.value=!0});let f=S(0),d=fe(),m=o(()=>r.open===H&&d!==null?(d.value&A.Open)===A.Open:r.open),v=S(null),R=S(null),O=o(()=>ce(v));if(i({el:v,$el:v}),!(r.open!==H||d!==null))throw new Error(\"You forgot to provide an `open` prop to the `Dialog`.\");if(typeof m.value!=\"boolean\")throw new Error(`You provided an \\`open\\` prop to the \\`Dialog\\`, but the value is not a boolean. Received: ${m.value===H?void 0:r.open}`);let c=o(()=>a.value&&m.value?0:1),k=o(()=>c.value===0),w=o(()=>f.value>1),$=q(I,null)!==null,G=o(()=>w.value?\"parent\":\"leaf\"),j=o(()=>d!==null?(d.value&A.Closing)===A.Closing:!1),V=o(()=>$||j.value?!1:k.value),J=o(()=>{var e,t,u;return(u=Array.from((t=(e=O.value)==null?void 0:e.querySelectorAll(\"body > *\"))!=null?t:[]).find(s=>s.id===\"headlessui-portal-root\"?!1:s.contains(L(R))&&s instanceof HTMLElement))!=null?u:null});_(J,V);let Q=o(()=>w.value?!0:k.value),W=o(()=>{var e,t,u;return(u=Array.from((t=(e=O.value)==null?void 0:e.querySelectorAll(\"[data-headlessui-portal]\"))!=null?t:[]).find(s=>s.contains(L(R))&&s instanceof HTMLElement))!=null?u:null});_(W,Q),ue({type:\"Dialog\",enabled:o(()=>c.value===0),element:v,onUpdate:(e,t)=>{if(t===\"Dialog\")return z(e,{[Y.Add]:()=>f.value+=1,[Y.Remove]:()=>f.value-=1})}});let X=pe({name:\"DialogDescription\",slot:o(()=>({open:m.value}))}),M=S(null),y={titleId:M,panelRef:S(null),dialogState:c,setTitleId(e){M.value!==e&&(M.value=e)},close(){n(\"close\",!1)}};ae(I,y);function x(){var t,u,s;return[...Array.from((u=(t=O.value)==null?void 0:t.querySelectorAll(\"html > *, body > *, [data-headlessui-portal]\"))!=null?u:[]).filter(g=>!(g===document.body||g===document.head||!(g instanceof HTMLElement)||g.contains(L(R))||y.panelRef.value&&g.contains(y.panelRef.value))),(s=y.panelRef.value)!=null?s:v.value]}let Z=o(()=>!(!k.value||w.value));de(()=>x(),(e,t)=>{y.close(),le(()=>t==null?void 0:t.focus())},Z);let ee=o(()=>!(w.value||c.value!==0));ge((N=O.value)==null?void 0:N.defaultView,\"keydown\",e=>{ee.value&&(e.defaultPrevented||e.key===ne.Escape&&(e.preventDefault(),e.stopPropagation(),y.close()))});let te=o(()=>!(j.value||c.value!==0||$));return De(O,te,e=>{var t;return{containers:[...(t=e.containers)!=null?t:[],x]}}),oe(e=>{if(c.value!==0)return;let t=L(v);if(!t)return;let u=new ResizeObserver(s=>{for(let g of s){let h=g.target.getBoundingClientRect();h.x===0&&h.y===0&&h.width===0&&h.height===0&&y.close()}});u.observe(t),e(()=>u.disconnect())}),()=>{let{id:e,open:t,initialFocus:u,...s}=r,g={...l,ref:v,id:e,role:\"dialog\",\"aria-modal\":c.value===0?!0:void 0,\"aria-labelledby\":M.value,\"aria-describedby\":X.value},h={open:c.value===0};return D(B,{force:!0},()=>[D(U,()=>D(ie,{target:v.value},()=>D(B,{force:!1},()=>D(C,{initialFocus:u,containers:x,features:k.value?z(G.value,{parent:C.features.RestoreFocus,leaf:C.features.All&~C.features.FocusLock}):C.features.None},()=>P({ourProps:g,theirProps:s,slot:h,attrs:l,slots:p,visible:c.value===0,features:K.RenderStrategy|K.Static,name:\"Dialog\"}))))),D(me,{features:ve.Hidden,ref:R})])}}}),Ke=b({name:\"DialogOverlay\",props:{as:{type:[Object,String],default:\"div\"},id:{type:String,default:()=>`headlessui-dialog-overlay-${T()}`}},setup(r,{attrs:n,slots:l}){let p=E(\"DialogOverlay\");function i(a){a.target===a.currentTarget&&(a.preventDefault(),a.stopPropagation(),p.close())}return()=>{let{id:a,...f}=r;return P({ourProps:{id:a,\"aria-hidden\":!0,onClick:i},theirProps:f,slot:{open:p.dialogState.value===0},attrs:n,slots:l,name:\"DialogOverlay\"})}}}),_e=b({name:\"DialogBackdrop\",props:{as:{type:[Object,String],default:\"div\"},id:{type:String,default:()=>`headlessui-dialog-backdrop-${T()}`}},inheritAttrs:!1,setup(r,{attrs:n,slots:l,expose:p}){let i=E(\"DialogBackdrop\"),a=S(null);return p({el:a,$el:a}),F(()=>{if(i.panelRef.value===null)throw new Error(\"A component is being used, but a component is missing.\")}),()=>{let{id:f,...d}=r,m={id:f,ref:a,\"aria-hidden\":!0};return D(B,{force:!0},()=>D(U,()=>P({ourProps:m,theirProps:{...n,...d},slot:{open:i.dialogState.value===0},attrs:n,slots:l,name:\"DialogBackdrop\"})))}}}),Ue=b({name:\"DialogPanel\",props:{as:{type:[Object,String],default:\"div\"},id:{type:String,default:()=>`headlessui-dialog-panel-${T()}`}},setup(r,{attrs:n,slots:l,expose:p}){let i=E(\"DialogPanel\");p({el:i.panelRef,$el:i.panelRef});function a(f){f.stopPropagation()}return()=>{let{id:f,...d}=r,m={id:f,ref:i.panelRef,onClick:a};return P({ourProps:m,theirProps:d,slot:{open:i.dialogState.value===0},attrs:n,slots:l,name:\"DialogPanel\"})}}}),Ye=b({name:\"DialogTitle\",props:{as:{type:[Object,String],default:\"h2\"},id:{type:String,default:()=>`headlessui-dialog-title-${T()}`}},setup(r,{attrs:n,slots:l}){let p=E(\"DialogTitle\");return F(()=>{p.setTitleId(r.id),re(()=>p.setTitleId(null))}),()=>{let{id:i,...a}=r;return P({ourProps:{id:i},theirProps:a,slot:{open:p.dialogState.value===0},attrs:n,slots:l,name:\"DialogTitle\"})}}}),ze=se;export{qe as Dialog,_e as DialogBackdrop,ze as DialogDescription,Ke as DialogOverlay,Ue as DialogPanel,Ye as DialogTitle};\n","import { Subscribable } from './subscribable.mjs';\nimport { isServer } from './utils.mjs';\n\nclass FocusManager extends Subscribable {\n constructor() {\n super();\n\n this.setup = onFocus => {\n // addEventListener does not exist in React Native, but window does\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (!isServer && window.addEventListener) {\n const listener = () => onFocus(); // Listen to visibillitychange and focus\n\n\n window.addEventListener('visibilitychange', listener, false);\n window.addEventListener('focus', listener, false);\n return () => {\n // Be sure to unsubscribe if a new handler is set\n window.removeEventListener('visibilitychange', listener);\n window.removeEventListener('focus', listener);\n };\n }\n\n return;\n };\n }\n\n onSubscribe() {\n if (!this.cleanup) {\n this.setEventListener(this.setup);\n }\n }\n\n onUnsubscribe() {\n if (!this.hasListeners()) {\n var _this$cleanup;\n\n (_this$cleanup = this.cleanup) == null ? void 0 : _this$cleanup.call(this);\n this.cleanup = undefined;\n }\n }\n\n setEventListener(setup) {\n var _this$cleanup2;\n\n this.setup = setup;\n (_this$cleanup2 = this.cleanup) == null ? void 0 : _this$cleanup2.call(this);\n this.cleanup = setup(focused => {\n if (typeof focused === 'boolean') {\n this.setFocused(focused);\n } else {\n this.onFocus();\n }\n });\n }\n\n setFocused(focused) {\n this.focused = focused;\n\n if (focused) {\n this.onFocus();\n }\n }\n\n onFocus() {\n this.listeners.forEach(listener => {\n listener();\n });\n }\n\n isFocused() {\n if (typeof this.focused === 'boolean') {\n return this.focused;\n } // document global can be unavailable in react native\n\n\n if (typeof document === 'undefined') {\n return true;\n }\n\n return [undefined, 'visible', 'prerender'].includes(document.visibilityState);\n }\n\n}\nconst focusManager = new FocusManager();\n\nexport { FocusManager, focusManager };\n//# sourceMappingURL=focusManager.mjs.map\n","const defaultLogger = console;\n\nexport { defaultLogger };\n//# sourceMappingURL=logger.mjs.map\n","import { defaultLogger } from './logger.mjs';\nimport { notifyManager } from './notifyManager.mjs';\nimport { Removable } from './removable.mjs';\nimport { createRetryer, canFetch } from './retryer.mjs';\n\n// CLASS\nclass Mutation extends Removable {\n constructor(config) {\n super();\n this.options = { ...config.defaultOptions,\n ...config.options\n };\n this.mutationId = config.mutationId;\n this.mutationCache = config.mutationCache;\n this.logger = config.logger || defaultLogger;\n this.observers = [];\n this.state = config.state || getDefaultState();\n this.updateCacheTime(this.options.cacheTime);\n this.scheduleGc();\n }\n\n get meta() {\n return this.options.meta;\n }\n\n setState(state) {\n this.dispatch({\n type: 'setState',\n state\n });\n }\n\n addObserver(observer) {\n if (this.observers.indexOf(observer) === -1) {\n this.observers.push(observer); // Stop the mutation from being garbage collected\n\n this.clearGcTimeout();\n this.mutationCache.notify({\n type: 'observerAdded',\n mutation: this,\n observer\n });\n }\n }\n\n removeObserver(observer) {\n this.observers = this.observers.filter(x => x !== observer);\n this.scheduleGc();\n this.mutationCache.notify({\n type: 'observerRemoved',\n mutation: this,\n observer\n });\n }\n\n optionalRemove() {\n if (!this.observers.length) {\n if (this.state.status === 'loading') {\n this.scheduleGc();\n } else {\n this.mutationCache.remove(this);\n }\n }\n }\n\n continue() {\n var _this$retryer$continu, _this$retryer;\n\n return (_this$retryer$continu = (_this$retryer = this.retryer) == null ? void 0 : _this$retryer.continue()) != null ? _this$retryer$continu : this.execute();\n }\n\n async execute() {\n const executeMutation = () => {\n var _this$options$retry;\n\n this.retryer = createRetryer({\n fn: () => {\n if (!this.options.mutationFn) {\n return Promise.reject('No mutationFn found');\n }\n\n return this.options.mutationFn(this.state.variables);\n },\n onFail: (failureCount, error) => {\n this.dispatch({\n type: 'failed',\n failureCount,\n error\n });\n },\n onPause: () => {\n this.dispatch({\n type: 'pause'\n });\n },\n onContinue: () => {\n this.dispatch({\n type: 'continue'\n });\n },\n retry: (_this$options$retry = this.options.retry) != null ? _this$options$retry : 0,\n retryDelay: this.options.retryDelay,\n networkMode: this.options.networkMode\n });\n return this.retryer.promise;\n };\n\n const restored = this.state.status === 'loading';\n\n try {\n var _this$mutationCache$c3, _this$mutationCache$c4, _this$options$onSucce, _this$options2, _this$options$onSettl, _this$options3;\n\n if (!restored) {\n var _this$mutationCache$c, _this$mutationCache$c2, _this$options$onMutat, _this$options;\n\n this.dispatch({\n type: 'loading',\n variables: this.options.variables\n }); // Notify cache callback\n\n await ((_this$mutationCache$c = (_this$mutationCache$c2 = this.mutationCache.config).onMutate) == null ? void 0 : _this$mutationCache$c.call(_this$mutationCache$c2, this.state.variables, this));\n const context = await ((_this$options$onMutat = (_this$options = this.options).onMutate) == null ? void 0 : _this$options$onMutat.call(_this$options, this.state.variables));\n\n if (context !== this.state.context) {\n this.dispatch({\n type: 'loading',\n context,\n variables: this.state.variables\n });\n }\n }\n\n const data = await executeMutation(); // Notify cache callback\n\n await ((_this$mutationCache$c3 = (_this$mutationCache$c4 = this.mutationCache.config).onSuccess) == null ? void 0 : _this$mutationCache$c3.call(_this$mutationCache$c4, data, this.state.variables, this.state.context, this));\n await ((_this$options$onSucce = (_this$options2 = this.options).onSuccess) == null ? void 0 : _this$options$onSucce.call(_this$options2, data, this.state.variables, this.state.context));\n await ((_this$options$onSettl = (_this$options3 = this.options).onSettled) == null ? void 0 : _this$options$onSettl.call(_this$options3, data, null, this.state.variables, this.state.context));\n this.dispatch({\n type: 'success',\n data\n });\n return data;\n } catch (error) {\n try {\n var _this$mutationCache$c5, _this$mutationCache$c6, _this$options$onError, _this$options4, _this$options$onSettl2, _this$options5;\n\n // Notify cache callback\n await ((_this$mutationCache$c5 = (_this$mutationCache$c6 = this.mutationCache.config).onError) == null ? void 0 : _this$mutationCache$c5.call(_this$mutationCache$c6, error, this.state.variables, this.state.context, this));\n\n if (process.env.NODE_ENV !== 'production') {\n this.logger.error(error);\n }\n\n await ((_this$options$onError = (_this$options4 = this.options).onError) == null ? void 0 : _this$options$onError.call(_this$options4, error, this.state.variables, this.state.context));\n await ((_this$options$onSettl2 = (_this$options5 = this.options).onSettled) == null ? void 0 : _this$options$onSettl2.call(_this$options5, undefined, error, this.state.variables, this.state.context));\n throw error;\n } finally {\n this.dispatch({\n type: 'error',\n error: error\n });\n }\n }\n }\n\n dispatch(action) {\n const reducer = state => {\n switch (action.type) {\n case 'failed':\n return { ...state,\n failureCount: action.failureCount,\n failureReason: action.error\n };\n\n case 'pause':\n return { ...state,\n isPaused: true\n };\n\n case 'continue':\n return { ...state,\n isPaused: false\n };\n\n case 'loading':\n return { ...state,\n context: action.context,\n data: undefined,\n failureCount: 0,\n failureReason: null,\n error: null,\n isPaused: !canFetch(this.options.networkMode),\n status: 'loading',\n variables: action.variables\n };\n\n case 'success':\n return { ...state,\n data: action.data,\n failureCount: 0,\n failureReason: null,\n error: null,\n status: 'success',\n isPaused: false\n };\n\n case 'error':\n return { ...state,\n data: undefined,\n error: action.error,\n failureCount: state.failureCount + 1,\n failureReason: action.error,\n isPaused: false,\n status: 'error'\n };\n\n case 'setState':\n return { ...state,\n ...action.state\n };\n }\n };\n\n this.state = reducer(this.state);\n notifyManager.batch(() => {\n this.observers.forEach(observer => {\n observer.onMutationUpdate(action);\n });\n this.mutationCache.notify({\n mutation: this,\n type: 'updated',\n action\n });\n });\n }\n\n}\nfunction getDefaultState() {\n return {\n context: undefined,\n data: undefined,\n error: null,\n failureCount: 0,\n failureReason: null,\n isPaused: false,\n status: 'idle',\n variables: undefined\n };\n}\n\nexport { Mutation, getDefaultState };\n//# sourceMappingURL=mutation.mjs.map\n","import { scheduleMicrotask } from './utils.mjs';\n\nfunction createNotifyManager() {\n let queue = [];\n let transactions = 0;\n\n let notifyFn = callback => {\n callback();\n };\n\n let batchNotifyFn = callback => {\n callback();\n };\n\n const batch = callback => {\n let result;\n transactions++;\n\n try {\n result = callback();\n } finally {\n transactions--;\n\n if (!transactions) {\n flush();\n }\n }\n\n return result;\n };\n\n const schedule = callback => {\n if (transactions) {\n queue.push(callback);\n } else {\n scheduleMicrotask(() => {\n notifyFn(callback);\n });\n }\n };\n /**\n * All calls to the wrapped function will be batched.\n */\n\n\n const batchCalls = callback => {\n return (...args) => {\n schedule(() => {\n callback(...args);\n });\n };\n };\n\n const flush = () => {\n const originalQueue = queue;\n queue = [];\n\n if (originalQueue.length) {\n scheduleMicrotask(() => {\n batchNotifyFn(() => {\n originalQueue.forEach(callback => {\n notifyFn(callback);\n });\n });\n });\n }\n };\n /**\n * Use this method to set a custom notify function.\n * This can be used to for example wrap notifications with `React.act` while running tests.\n */\n\n\n const setNotifyFunction = fn => {\n notifyFn = fn;\n };\n /**\n * Use this method to set a custom function to batch notifications together into a single tick.\n * By default React Query will use the batch function provided by ReactDOM or React Native.\n */\n\n\n const setBatchNotifyFunction = fn => {\n batchNotifyFn = fn;\n };\n\n return {\n batch,\n batchCalls,\n schedule,\n setNotifyFunction,\n setBatchNotifyFunction\n };\n} // SINGLETON\n\nconst notifyManager = createNotifyManager();\n\nexport { createNotifyManager, notifyManager };\n//# sourceMappingURL=notifyManager.mjs.map\n","import { Subscribable } from './subscribable.mjs';\nimport { isServer } from './utils.mjs';\n\nclass OnlineManager extends Subscribable {\n constructor() {\n super();\n\n this.setup = onOnline => {\n // addEventListener does not exist in React Native, but window does\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (!isServer && window.addEventListener) {\n const listener = () => onOnline(); // Listen to online\n\n\n window.addEventListener('online', listener, false);\n window.addEventListener('offline', listener, false);\n return () => {\n // Be sure to unsubscribe if a new handler is set\n window.removeEventListener('online', listener);\n window.removeEventListener('offline', listener);\n };\n }\n\n return;\n };\n }\n\n onSubscribe() {\n if (!this.cleanup) {\n this.setEventListener(this.setup);\n }\n }\n\n onUnsubscribe() {\n if (!this.hasListeners()) {\n var _this$cleanup;\n\n (_this$cleanup = this.cleanup) == null ? void 0 : _this$cleanup.call(this);\n this.cleanup = undefined;\n }\n }\n\n setEventListener(setup) {\n var _this$cleanup2;\n\n this.setup = setup;\n (_this$cleanup2 = this.cleanup) == null ? void 0 : _this$cleanup2.call(this);\n this.cleanup = setup(online => {\n if (typeof online === 'boolean') {\n this.setOnline(online);\n } else {\n this.onOnline();\n }\n });\n }\n\n setOnline(online) {\n this.online = online;\n\n if (online) {\n this.onOnline();\n }\n }\n\n onOnline() {\n this.listeners.forEach(listener => {\n listener();\n });\n }\n\n isOnline() {\n if (typeof this.online === 'boolean') {\n return this.online;\n }\n\n if (typeof navigator === 'undefined' || typeof navigator.onLine === 'undefined') {\n return true;\n }\n\n return navigator.onLine;\n }\n\n}\nconst onlineManager = new OnlineManager();\n\nexport { OnlineManager, onlineManager };\n//# sourceMappingURL=onlineManager.mjs.map\n","import { isValidTimeout, isServer } from './utils.mjs';\n\nclass Removable {\n destroy() {\n this.clearGcTimeout();\n }\n\n scheduleGc() {\n this.clearGcTimeout();\n\n if (isValidTimeout(this.cacheTime)) {\n this.gcTimeout = setTimeout(() => {\n this.optionalRemove();\n }, this.cacheTime);\n }\n }\n\n updateCacheTime(newCacheTime) {\n // Default to 5 minutes (Infinity for server-side) if no cache time is set\n this.cacheTime = Math.max(this.cacheTime || 0, newCacheTime != null ? newCacheTime : isServer ? Infinity : 5 * 60 * 1000);\n }\n\n clearGcTimeout() {\n if (this.gcTimeout) {\n clearTimeout(this.gcTimeout);\n this.gcTimeout = undefined;\n }\n }\n\n}\n\nexport { Removable };\n//# sourceMappingURL=removable.mjs.map\n","import { focusManager } from './focusManager.mjs';\nimport { onlineManager } from './onlineManager.mjs';\nimport { sleep } from './utils.mjs';\n\nfunction defaultRetryDelay(failureCount) {\n return Math.min(1000 * 2 ** failureCount, 30000);\n}\n\nfunction canFetch(networkMode) {\n return (networkMode != null ? networkMode : 'online') === 'online' ? onlineManager.isOnline() : true;\n}\nclass CancelledError {\n constructor(options) {\n this.revert = options == null ? void 0 : options.revert;\n this.silent = options == null ? void 0 : options.silent;\n }\n\n}\nfunction isCancelledError(value) {\n return value instanceof CancelledError;\n}\nfunction createRetryer(config) {\n let isRetryCancelled = false;\n let failureCount = 0;\n let isResolved = false;\n let continueFn;\n let promiseResolve;\n let promiseReject;\n const promise = new Promise((outerResolve, outerReject) => {\n promiseResolve = outerResolve;\n promiseReject = outerReject;\n });\n\n const cancel = cancelOptions => {\n if (!isResolved) {\n reject(new CancelledError(cancelOptions));\n config.abort == null ? void 0 : config.abort();\n }\n };\n\n const cancelRetry = () => {\n isRetryCancelled = true;\n };\n\n const continueRetry = () => {\n isRetryCancelled = false;\n };\n\n const shouldPause = () => !focusManager.isFocused() || config.networkMode !== 'always' && !onlineManager.isOnline();\n\n const resolve = value => {\n if (!isResolved) {\n isResolved = true;\n config.onSuccess == null ? void 0 : config.onSuccess(value);\n continueFn == null ? void 0 : continueFn();\n promiseResolve(value);\n }\n };\n\n const reject = value => {\n if (!isResolved) {\n isResolved = true;\n config.onError == null ? void 0 : config.onError(value);\n continueFn == null ? void 0 : continueFn();\n promiseReject(value);\n }\n };\n\n const pause = () => {\n return new Promise(continueResolve => {\n continueFn = value => {\n const canContinue = isResolved || !shouldPause();\n\n if (canContinue) {\n continueResolve(value);\n }\n\n return canContinue;\n };\n\n config.onPause == null ? void 0 : config.onPause();\n }).then(() => {\n continueFn = undefined;\n\n if (!isResolved) {\n config.onContinue == null ? void 0 : config.onContinue();\n }\n });\n }; // Create loop function\n\n\n const run = () => {\n // Do nothing if already resolved\n if (isResolved) {\n return;\n }\n\n let promiseOrValue; // Execute query\n\n try {\n promiseOrValue = config.fn();\n } catch (error) {\n promiseOrValue = Promise.reject(error);\n }\n\n Promise.resolve(promiseOrValue).then(resolve).catch(error => {\n var _config$retry, _config$retryDelay;\n\n // Stop if the fetch is already resolved\n if (isResolved) {\n return;\n } // Do we need to retry the request?\n\n\n const retry = (_config$retry = config.retry) != null ? _config$retry : 3;\n const retryDelay = (_config$retryDelay = config.retryDelay) != null ? _config$retryDelay : defaultRetryDelay;\n const delay = typeof retryDelay === 'function' ? retryDelay(failureCount, error) : retryDelay;\n const shouldRetry = retry === true || typeof retry === 'number' && failureCount < retry || typeof retry === 'function' && retry(failureCount, error);\n\n if (isRetryCancelled || !shouldRetry) {\n // We are done if the query does not need to be retried\n reject(error);\n return;\n }\n\n failureCount++; // Notify on fail\n\n config.onFail == null ? void 0 : config.onFail(failureCount, error); // Delay\n\n sleep(delay) // Pause if the document is not visible or when the device is offline\n .then(() => {\n if (shouldPause()) {\n return pause();\n }\n\n return;\n }).then(() => {\n if (isRetryCancelled) {\n reject(error);\n } else {\n run();\n }\n });\n });\n }; // Start loop\n\n\n if (canFetch(config.networkMode)) {\n run();\n } else {\n pause().then(run);\n }\n\n return {\n promise,\n cancel,\n continue: () => {\n const didContinue = continueFn == null ? void 0 : continueFn();\n return didContinue ? promise : Promise.resolve();\n },\n cancelRetry,\n continueRetry\n };\n}\n\nexport { CancelledError, canFetch, createRetryer, isCancelledError };\n//# sourceMappingURL=retryer.mjs.map\n","class Subscribable {\n constructor() {\n this.listeners = [];\n this.subscribe = this.subscribe.bind(this);\n }\n\n subscribe(listener) {\n this.listeners.push(listener);\n this.onSubscribe();\n return () => {\n this.listeners = this.listeners.filter(x => x !== listener);\n this.onUnsubscribe();\n };\n }\n\n hasListeners() {\n return this.listeners.length > 0;\n }\n\n onSubscribe() {// Do nothing\n }\n\n onUnsubscribe() {// Do nothing\n }\n\n}\n\nexport { Subscribable };\n//# sourceMappingURL=subscribable.mjs.map\n","// TYPES\n// UTILS\nconst isServer = typeof window === 'undefined' || 'Deno' in window;\nfunction noop() {\n return undefined;\n}\nfunction functionalUpdate(updater, input) {\n return typeof updater === 'function' ? updater(input) : updater;\n}\nfunction isValidTimeout(value) {\n return typeof value === 'number' && value >= 0 && value !== Infinity;\n}\nfunction difference(array1, array2) {\n return array1.filter(x => array2.indexOf(x) === -1);\n}\nfunction replaceAt(array, index, value) {\n const copy = array.slice(0);\n copy[index] = value;\n return copy;\n}\nfunction timeUntilStale(updatedAt, staleTime) {\n return Math.max(updatedAt + (staleTime || 0) - Date.now(), 0);\n}\nfunction parseQueryArgs(arg1, arg2, arg3) {\n if (!isQueryKey(arg1)) {\n return arg1;\n }\n\n if (typeof arg2 === 'function') {\n return { ...arg3,\n queryKey: arg1,\n queryFn: arg2\n };\n }\n\n return { ...arg2,\n queryKey: arg1\n };\n}\nfunction parseMutationArgs(arg1, arg2, arg3) {\n if (isQueryKey(arg1)) {\n if (typeof arg2 === 'function') {\n return { ...arg3,\n mutationKey: arg1,\n mutationFn: arg2\n };\n }\n\n return { ...arg2,\n mutationKey: arg1\n };\n }\n\n if (typeof arg1 === 'function') {\n return { ...arg2,\n mutationFn: arg1\n };\n }\n\n return { ...arg1\n };\n}\nfunction parseFilterArgs(arg1, arg2, arg3) {\n return isQueryKey(arg1) ? [{ ...arg2,\n queryKey: arg1\n }, arg3] : [arg1 || {}, arg2];\n}\nfunction parseMutationFilterArgs(arg1, arg2, arg3) {\n return isQueryKey(arg1) ? [{ ...arg2,\n mutationKey: arg1\n }, arg3] : [arg1 || {}, arg2];\n}\nfunction matchQuery(filters, query) {\n const {\n type = 'all',\n exact,\n fetchStatus,\n predicate,\n queryKey,\n stale\n } = filters;\n\n if (isQueryKey(queryKey)) {\n if (exact) {\n if (query.queryHash !== hashQueryKeyByOptions(queryKey, query.options)) {\n return false;\n }\n } else if (!partialMatchKey(query.queryKey, queryKey)) {\n return false;\n }\n }\n\n if (type !== 'all') {\n const isActive = query.isActive();\n\n if (type === 'active' && !isActive) {\n return false;\n }\n\n if (type === 'inactive' && isActive) {\n return false;\n }\n }\n\n if (typeof stale === 'boolean' && query.isStale() !== stale) {\n return false;\n }\n\n if (typeof fetchStatus !== 'undefined' && fetchStatus !== query.state.fetchStatus) {\n return false;\n }\n\n if (predicate && !predicate(query)) {\n return false;\n }\n\n return true;\n}\nfunction matchMutation(filters, mutation) {\n const {\n exact,\n fetching,\n predicate,\n mutationKey\n } = filters;\n\n if (isQueryKey(mutationKey)) {\n if (!mutation.options.mutationKey) {\n return false;\n }\n\n if (exact) {\n if (hashQueryKey(mutation.options.mutationKey) !== hashQueryKey(mutationKey)) {\n return false;\n }\n } else if (!partialMatchKey(mutation.options.mutationKey, mutationKey)) {\n return false;\n }\n }\n\n if (typeof fetching === 'boolean' && mutation.state.status === 'loading' !== fetching) {\n return false;\n }\n\n if (predicate && !predicate(mutation)) {\n return false;\n }\n\n return true;\n}\nfunction hashQueryKeyByOptions(queryKey, options) {\n const hashFn = (options == null ? void 0 : options.queryKeyHashFn) || hashQueryKey;\n return hashFn(queryKey);\n}\n/**\n * Default query keys hash function.\n * Hashes the value into a stable hash.\n */\n\nfunction hashQueryKey(queryKey) {\n return JSON.stringify(queryKey, (_, val) => isPlainObject(val) ? Object.keys(val).sort().reduce((result, key) => {\n result[key] = val[key];\n return result;\n }, {}) : val);\n}\n/**\n * Checks if key `b` partially matches with key `a`.\n */\n\nfunction partialMatchKey(a, b) {\n return partialDeepEqual(a, b);\n}\n/**\n * Checks if `b` partially matches with `a`.\n */\n\nfunction partialDeepEqual(a, b) {\n if (a === b) {\n return true;\n }\n\n if (typeof a !== typeof b) {\n return false;\n }\n\n if (a && b && typeof a === 'object' && typeof b === 'object') {\n return !Object.keys(b).some(key => !partialDeepEqual(a[key], b[key]));\n }\n\n return false;\n}\n/**\n * This function returns `a` if `b` is deeply equal.\n * If not, it will replace any deeply equal children of `b` with those of `a`.\n * This can be used for structural sharing between JSON values for example.\n */\n\nfunction replaceEqualDeep(a, b) {\n if (a === b) {\n return a;\n }\n\n const array = isPlainArray(a) && isPlainArray(b);\n\n if (array || isPlainObject(a) && isPlainObject(b)) {\n const aSize = array ? a.length : Object.keys(a).length;\n const bItems = array ? b : Object.keys(b);\n const bSize = bItems.length;\n const copy = array ? [] : {};\n let equalItems = 0;\n\n for (let i = 0; i < bSize; i++) {\n const key = array ? i : bItems[i];\n copy[key] = replaceEqualDeep(a[key], b[key]);\n\n if (copy[key] === a[key]) {\n equalItems++;\n }\n }\n\n return aSize === bSize && equalItems === aSize ? a : copy;\n }\n\n return b;\n}\n/**\n * Shallow compare objects. Only works with objects that always have the same properties.\n */\n\nfunction shallowEqualObjects(a, b) {\n if (a && !b || b && !a) {\n return false;\n }\n\n for (const key in a) {\n if (a[key] !== b[key]) {\n return false;\n }\n }\n\n return true;\n}\nfunction isPlainArray(value) {\n return Array.isArray(value) && value.length === Object.keys(value).length;\n} // Copied from: https://github.com/jonschlinkert/is-plain-object\n\nfunction isPlainObject(o) {\n if (!hasObjectPrototype(o)) {\n return false;\n } // If has modified constructor\n\n\n const ctor = o.constructor;\n\n if (typeof ctor === 'undefined') {\n return true;\n } // If has modified prototype\n\n\n const prot = ctor.prototype;\n\n if (!hasObjectPrototype(prot)) {\n return false;\n } // If constructor does not have an Object-specific method\n\n\n if (!prot.hasOwnProperty('isPrototypeOf')) {\n return false;\n } // Most likely a plain Object\n\n\n return true;\n}\n\nfunction hasObjectPrototype(o) {\n return Object.prototype.toString.call(o) === '[object Object]';\n}\n\nfunction isQueryKey(value) {\n return Array.isArray(value);\n}\nfunction isError(value) {\n return value instanceof Error;\n}\nfunction sleep(timeout) {\n return new Promise(resolve => {\n setTimeout(resolve, timeout);\n });\n}\n/**\n * Schedules a microtask.\n * This can be useful to schedule state updates after rendering.\n */\n\nfunction scheduleMicrotask(callback) {\n sleep(0).then(callback);\n}\nfunction getAbortController() {\n if (typeof AbortController === 'function') {\n return new AbortController();\n }\n\n return;\n}\nfunction replaceData(prevData, data, options) {\n // Use prev data if an isDataEqual function is defined and returns `true`\n if (options.isDataEqual != null && options.isDataEqual(prevData, data)) {\n return prevData;\n } else if (typeof options.structuralSharing === 'function') {\n return options.structuralSharing(prevData, data);\n } else if (options.structuralSharing !== false) {\n // Structurally share data between prev and new data if needed\n return replaceEqualDeep(prevData, data);\n }\n\n return data;\n}\n\nexport { difference, functionalUpdate, getAbortController, hashQueryKey, hashQueryKeyByOptions, isError, isPlainArray, isPlainObject, isQueryKey, isServer, isValidTimeout, matchMutation, matchQuery, noop, parseFilterArgs, parseMutationArgs, parseMutationFilterArgs, parseQueryArgs, partialDeepEqual, partialMatchKey, replaceAt, replaceData, replaceEqualDeep, scheduleMicrotask, shallowEqualObjects, sleep, timeUntilStale };\n//# sourceMappingURL=utils.mjs.map\n","import { getDefaultState } from './mutation.mjs';\nimport { notifyManager } from './notifyManager.mjs';\nimport { Subscribable } from './subscribable.mjs';\nimport { shallowEqualObjects } from './utils.mjs';\n\n// CLASS\nclass MutationObserver extends Subscribable {\n constructor(client, options) {\n super();\n this.client = client;\n this.setOptions(options);\n this.bindMethods();\n this.updateResult();\n }\n\n bindMethods() {\n this.mutate = this.mutate.bind(this);\n this.reset = this.reset.bind(this);\n }\n\n setOptions(options) {\n const prevOptions = this.options;\n this.options = this.client.defaultMutationOptions(options);\n\n if (!shallowEqualObjects(prevOptions, this.options)) {\n this.client.getMutationCache().notify({\n type: 'observerOptionsUpdated',\n mutation: this.currentMutation,\n observer: this\n });\n }\n }\n\n onUnsubscribe() {\n if (!this.listeners.length) {\n var _this$currentMutation;\n\n (_this$currentMutation = this.currentMutation) == null ? void 0 : _this$currentMutation.removeObserver(this);\n }\n }\n\n onMutationUpdate(action) {\n this.updateResult(); // Determine which callbacks to trigger\n\n const notifyOptions = {\n listeners: true\n };\n\n if (action.type === 'success') {\n notifyOptions.onSuccess = true;\n } else if (action.type === 'error') {\n notifyOptions.onError = true;\n }\n\n this.notify(notifyOptions);\n }\n\n getCurrentResult() {\n return this.currentResult;\n }\n\n reset() {\n this.currentMutation = undefined;\n this.updateResult();\n this.notify({\n listeners: true\n });\n }\n\n mutate(variables, options) {\n this.mutateOptions = options;\n\n if (this.currentMutation) {\n this.currentMutation.removeObserver(this);\n }\n\n this.currentMutation = this.client.getMutationCache().build(this.client, { ...this.options,\n variables: typeof variables !== 'undefined' ? variables : this.options.variables\n });\n this.currentMutation.addObserver(this);\n return this.currentMutation.execute();\n }\n\n updateResult() {\n const state = this.currentMutation ? this.currentMutation.state : getDefaultState();\n const result = { ...state,\n isLoading: state.status === 'loading',\n isSuccess: state.status === 'success',\n isError: state.status === 'error',\n isIdle: state.status === 'idle',\n mutate: this.mutate,\n reset: this.reset\n };\n this.currentResult = result;\n }\n\n notify(options) {\n notifyManager.batch(() => {\n // First trigger the mutate callbacks\n if (this.mutateOptions && this.hasListeners()) {\n if (options.onSuccess) {\n var _this$mutateOptions$o, _this$mutateOptions, _this$mutateOptions$o2, _this$mutateOptions2;\n\n (_this$mutateOptions$o = (_this$mutateOptions = this.mutateOptions).onSuccess) == null ? void 0 : _this$mutateOptions$o.call(_this$mutateOptions, this.currentResult.data, this.currentResult.variables, this.currentResult.context);\n (_this$mutateOptions$o2 = (_this$mutateOptions2 = this.mutateOptions).onSettled) == null ? void 0 : _this$mutateOptions$o2.call(_this$mutateOptions2, this.currentResult.data, null, this.currentResult.variables, this.currentResult.context);\n } else if (options.onError) {\n var _this$mutateOptions$o3, _this$mutateOptions3, _this$mutateOptions$o4, _this$mutateOptions4;\n\n (_this$mutateOptions$o3 = (_this$mutateOptions3 = this.mutateOptions).onError) == null ? void 0 : _this$mutateOptions$o3.call(_this$mutateOptions3, this.currentResult.error, this.currentResult.variables, this.currentResult.context);\n (_this$mutateOptions$o4 = (_this$mutateOptions4 = this.mutateOptions).onSettled) == null ? void 0 : _this$mutateOptions$o4.call(_this$mutateOptions4, undefined, this.currentResult.error, this.currentResult.variables, this.currentResult.context);\n }\n } // Then trigger the listeners\n\n\n if (options.listeners) {\n this.listeners.forEach(listener => {\n listener(this.currentResult);\n });\n }\n });\n }\n\n}\n\nexport { MutationObserver };\n//# sourceMappingURL=mutationObserver.mjs.map\n","import { computed, reactive, watch, onScopeDispose, toRefs, readonly, unref } from 'vue-demi';\nimport { MutationObserver } from '@tanstack/query-core';\nimport { updateState, isMutationKey, cloneDeepUnref } from './utils.mjs';\nimport { useQueryClient } from './useQueryClient.mjs';\n\nfunction useMutation(arg1, arg2, arg3) {\n var _options$value$queryC;\n\n const options = computed(() => {\n return parseMutationArgs(arg1, arg2, arg3);\n });\n const queryClient = (_options$value$queryC = options.value.queryClient) != null ? _options$value$queryC : useQueryClient(options.value.queryClientKey);\n const observer = new MutationObserver(queryClient, queryClient.defaultMutationOptions(options.value));\n const state = reactive(observer.getCurrentResult());\n const unsubscribe = observer.subscribe(result => {\n updateState(state, result);\n });\n\n const mutate = (variables, mutateOptions) => {\n observer.mutate(variables, mutateOptions).catch(() => {// This is intentional\n });\n };\n\n watch(options, () => {\n observer.setOptions(queryClient.defaultMutationOptions(options.value));\n }, {\n deep: true\n });\n onScopeDispose(() => {\n unsubscribe();\n });\n const resultRefs = toRefs(readonly(state));\n return { ...resultRefs,\n mutate,\n mutateAsync: state.mutate,\n reset: state.reset\n };\n}\nfunction parseMutationArgs(arg1, arg2, arg3) {\n const plainArg1 = unref(arg1);\n const plainArg2 = unref(arg2);\n let options = plainArg1;\n\n if (isMutationKey(plainArg1)) {\n if (typeof plainArg2 === 'function') {\n const plainArg3 = unref(arg3);\n options = { ...plainArg3,\n mutationKey: plainArg1,\n mutationFn: plainArg2\n };\n } else {\n options = { ...plainArg2,\n mutationKey: plainArg1\n };\n }\n }\n\n if (typeof plainArg1 === 'function') {\n options = { ...plainArg2,\n mutationFn: plainArg1\n };\n }\n\n return cloneDeepUnref(options);\n}\n\nexport { parseMutationArgs, useMutation };\n//# sourceMappingURL=useMutation.mjs.map\n","import { shallowEqualObjects, noop, isServer, isValidTimeout, timeUntilStale, replaceData } from './utils.mjs';\nimport { notifyManager } from './notifyManager.mjs';\nimport { focusManager } from './focusManager.mjs';\nimport { Subscribable } from './subscribable.mjs';\nimport { canFetch, isCancelledError } from './retryer.mjs';\n\nclass QueryObserver extends Subscribable {\n constructor(client, options) {\n super();\n this.client = client;\n this.options = options;\n this.trackedProps = new Set();\n this.selectError = null;\n this.bindMethods();\n this.setOptions(options);\n }\n\n bindMethods() {\n this.remove = this.remove.bind(this);\n this.refetch = this.refetch.bind(this);\n }\n\n onSubscribe() {\n if (this.listeners.length === 1) {\n this.currentQuery.addObserver(this);\n\n if (shouldFetchOnMount(this.currentQuery, this.options)) {\n this.executeFetch();\n }\n\n this.updateTimers();\n }\n }\n\n onUnsubscribe() {\n if (!this.listeners.length) {\n this.destroy();\n }\n }\n\n shouldFetchOnReconnect() {\n return shouldFetchOn(this.currentQuery, this.options, this.options.refetchOnReconnect);\n }\n\n shouldFetchOnWindowFocus() {\n return shouldFetchOn(this.currentQuery, this.options, this.options.refetchOnWindowFocus);\n }\n\n destroy() {\n this.listeners = [];\n this.clearStaleTimeout();\n this.clearRefetchInterval();\n this.currentQuery.removeObserver(this);\n }\n\n setOptions(options, notifyOptions) {\n const prevOptions = this.options;\n const prevQuery = this.currentQuery;\n this.options = this.client.defaultQueryOptions(options);\n\n if (process.env.NODE_ENV !== 'production' && typeof (options == null ? void 0 : options.isDataEqual) !== 'undefined') {\n this.client.getLogger().error(\"The isDataEqual option has been deprecated and will be removed in the next major version. You can achieve the same functionality by passing a function as the structuralSharing option\");\n }\n\n if (!shallowEqualObjects(prevOptions, this.options)) {\n this.client.getQueryCache().notify({\n type: 'observerOptionsUpdated',\n query: this.currentQuery,\n observer: this\n });\n }\n\n if (typeof this.options.enabled !== 'undefined' && typeof this.options.enabled !== 'boolean') {\n throw new Error('Expected enabled to be a boolean');\n } // Keep previous query key if the user does not supply one\n\n\n if (!this.options.queryKey) {\n this.options.queryKey = prevOptions.queryKey;\n }\n\n this.updateQuery();\n const mounted = this.hasListeners(); // Fetch if there are subscribers\n\n if (mounted && shouldFetchOptionally(this.currentQuery, prevQuery, this.options, prevOptions)) {\n this.executeFetch();\n } // Update result\n\n\n this.updateResult(notifyOptions); // Update stale interval if needed\n\n if (mounted && (this.currentQuery !== prevQuery || this.options.enabled !== prevOptions.enabled || this.options.staleTime !== prevOptions.staleTime)) {\n this.updateStaleTimeout();\n }\n\n const nextRefetchInterval = this.computeRefetchInterval(); // Update refetch interval if needed\n\n if (mounted && (this.currentQuery !== prevQuery || this.options.enabled !== prevOptions.enabled || nextRefetchInterval !== this.currentRefetchInterval)) {\n this.updateRefetchInterval(nextRefetchInterval);\n }\n }\n\n getOptimisticResult(options) {\n const query = this.client.getQueryCache().build(this.client, options);\n return this.createResult(query, options);\n }\n\n getCurrentResult() {\n return this.currentResult;\n }\n\n trackResult(result) {\n const trackedResult = {};\n Object.keys(result).forEach(key => {\n Object.defineProperty(trackedResult, key, {\n configurable: false,\n enumerable: true,\n get: () => {\n this.trackedProps.add(key);\n return result[key];\n }\n });\n });\n return trackedResult;\n }\n\n getCurrentQuery() {\n return this.currentQuery;\n }\n\n remove() {\n this.client.getQueryCache().remove(this.currentQuery);\n }\n\n refetch({\n refetchPage,\n ...options\n } = {}) {\n return this.fetch({ ...options,\n meta: {\n refetchPage\n }\n });\n }\n\n fetchOptimistic(options) {\n const defaultedOptions = this.client.defaultQueryOptions(options);\n const query = this.client.getQueryCache().build(this.client, defaultedOptions);\n query.isFetchingOptimistic = true;\n return query.fetch().then(() => this.createResult(query, defaultedOptions));\n }\n\n fetch(fetchOptions) {\n var _fetchOptions$cancelR;\n\n return this.executeFetch({ ...fetchOptions,\n cancelRefetch: (_fetchOptions$cancelR = fetchOptions.cancelRefetch) != null ? _fetchOptions$cancelR : true\n }).then(() => {\n this.updateResult();\n return this.currentResult;\n });\n }\n\n executeFetch(fetchOptions) {\n // Make sure we reference the latest query as the current one might have been removed\n this.updateQuery(); // Fetch\n\n let promise = this.currentQuery.fetch(this.options, fetchOptions);\n\n if (!(fetchOptions != null && fetchOptions.throwOnError)) {\n promise = promise.catch(noop);\n }\n\n return promise;\n }\n\n updateStaleTimeout() {\n this.clearStaleTimeout();\n\n if (isServer || this.currentResult.isStale || !isValidTimeout(this.options.staleTime)) {\n return;\n }\n\n const time = timeUntilStale(this.currentResult.dataUpdatedAt, this.options.staleTime); // The timeout is sometimes triggered 1 ms before the stale time expiration.\n // To mitigate this issue we always add 1 ms to the timeout.\n\n const timeout = time + 1;\n this.staleTimeoutId = setTimeout(() => {\n if (!this.currentResult.isStale) {\n this.updateResult();\n }\n }, timeout);\n }\n\n computeRefetchInterval() {\n var _this$options$refetch;\n\n return typeof this.options.refetchInterval === 'function' ? this.options.refetchInterval(this.currentResult.data, this.currentQuery) : (_this$options$refetch = this.options.refetchInterval) != null ? _this$options$refetch : false;\n }\n\n updateRefetchInterval(nextInterval) {\n this.clearRefetchInterval();\n this.currentRefetchInterval = nextInterval;\n\n if (isServer || this.options.enabled === false || !isValidTimeout(this.currentRefetchInterval) || this.currentRefetchInterval === 0) {\n return;\n }\n\n this.refetchIntervalId = setInterval(() => {\n if (this.options.refetchIntervalInBackground || focusManager.isFocused()) {\n this.executeFetch();\n }\n }, this.currentRefetchInterval);\n }\n\n updateTimers() {\n this.updateStaleTimeout();\n this.updateRefetchInterval(this.computeRefetchInterval());\n }\n\n clearStaleTimeout() {\n if (this.staleTimeoutId) {\n clearTimeout(this.staleTimeoutId);\n this.staleTimeoutId = undefined;\n }\n }\n\n clearRefetchInterval() {\n if (this.refetchIntervalId) {\n clearInterval(this.refetchIntervalId);\n this.refetchIntervalId = undefined;\n }\n }\n\n createResult(query, options) {\n const prevQuery = this.currentQuery;\n const prevOptions = this.options;\n const prevResult = this.currentResult;\n const prevResultState = this.currentResultState;\n const prevResultOptions = this.currentResultOptions;\n const queryChange = query !== prevQuery;\n const queryInitialState = queryChange ? query.state : this.currentQueryInitialState;\n const prevQueryResult = queryChange ? this.currentResult : this.previousQueryResult;\n const {\n state\n } = query;\n let {\n dataUpdatedAt,\n error,\n errorUpdatedAt,\n fetchStatus,\n status\n } = state;\n let isPreviousData = false;\n let isPlaceholderData = false;\n let data; // Optimistically set result in fetching state if needed\n\n if (options._optimisticResults) {\n const mounted = this.hasListeners();\n const fetchOnMount = !mounted && shouldFetchOnMount(query, options);\n const fetchOptionally = mounted && shouldFetchOptionally(query, prevQuery, options, prevOptions);\n\n if (fetchOnMount || fetchOptionally) {\n fetchStatus = canFetch(query.options.networkMode) ? 'fetching' : 'paused';\n\n if (!dataUpdatedAt) {\n status = 'loading';\n }\n }\n\n if (options._optimisticResults === 'isRestoring') {\n fetchStatus = 'idle';\n }\n } // Keep previous data if needed\n\n\n if (options.keepPreviousData && !state.dataUpdatedAt && prevQueryResult != null && prevQueryResult.isSuccess && status !== 'error') {\n data = prevQueryResult.data;\n dataUpdatedAt = prevQueryResult.dataUpdatedAt;\n status = prevQueryResult.status;\n isPreviousData = true;\n } // Select data if needed\n else if (options.select && typeof state.data !== 'undefined') {\n // Memoize select result\n if (prevResult && state.data === (prevResultState == null ? void 0 : prevResultState.data) && options.select === this.selectFn) {\n data = this.selectResult;\n } else {\n try {\n this.selectFn = options.select;\n data = options.select(state.data);\n data = replaceData(prevResult == null ? void 0 : prevResult.data, data, options);\n this.selectResult = data;\n this.selectError = null;\n } catch (selectError) {\n if (process.env.NODE_ENV !== 'production') {\n this.client.getLogger().error(selectError);\n }\n\n this.selectError = selectError;\n }\n }\n } // Use query data\n else {\n data = state.data;\n } // Show placeholder data if needed\n\n\n if (typeof options.placeholderData !== 'undefined' && typeof data === 'undefined' && status === 'loading') {\n let placeholderData; // Memoize placeholder data\n\n if (prevResult != null && prevResult.isPlaceholderData && options.placeholderData === (prevResultOptions == null ? void 0 : prevResultOptions.placeholderData)) {\n placeholderData = prevResult.data;\n } else {\n placeholderData = typeof options.placeholderData === 'function' ? options.placeholderData() : options.placeholderData;\n\n if (options.select && typeof placeholderData !== 'undefined') {\n try {\n placeholderData = options.select(placeholderData);\n this.selectError = null;\n } catch (selectError) {\n if (process.env.NODE_ENV !== 'production') {\n this.client.getLogger().error(selectError);\n }\n\n this.selectError = selectError;\n }\n }\n }\n\n if (typeof placeholderData !== 'undefined') {\n status = 'success';\n data = replaceData(prevResult == null ? void 0 : prevResult.data, placeholderData, options);\n isPlaceholderData = true;\n }\n }\n\n if (this.selectError) {\n error = this.selectError;\n data = this.selectResult;\n errorUpdatedAt = Date.now();\n status = 'error';\n }\n\n const isFetching = fetchStatus === 'fetching';\n const isLoading = status === 'loading';\n const isError = status === 'error';\n const result = {\n status,\n fetchStatus,\n isLoading,\n isSuccess: status === 'success',\n isError,\n isInitialLoading: isLoading && isFetching,\n data,\n dataUpdatedAt,\n error,\n errorUpdatedAt,\n failureCount: state.fetchFailureCount,\n failureReason: state.fetchFailureReason,\n errorUpdateCount: state.errorUpdateCount,\n isFetched: state.dataUpdateCount > 0 || state.errorUpdateCount > 0,\n isFetchedAfterMount: state.dataUpdateCount > queryInitialState.dataUpdateCount || state.errorUpdateCount > queryInitialState.errorUpdateCount,\n isFetching,\n isRefetching: isFetching && !isLoading,\n isLoadingError: isError && state.dataUpdatedAt === 0,\n isPaused: fetchStatus === 'paused',\n isPlaceholderData,\n isPreviousData,\n isRefetchError: isError && state.dataUpdatedAt !== 0,\n isStale: isStale(query, options),\n refetch: this.refetch,\n remove: this.remove\n };\n return result;\n }\n\n updateResult(notifyOptions) {\n const prevResult = this.currentResult;\n const nextResult = this.createResult(this.currentQuery, this.options);\n this.currentResultState = this.currentQuery.state;\n this.currentResultOptions = this.options; // Only notify and update result if something has changed\n\n if (shallowEqualObjects(nextResult, prevResult)) {\n return;\n }\n\n this.currentResult = nextResult; // Determine which callbacks to trigger\n\n const defaultNotifyOptions = {\n cache: true\n };\n\n const shouldNotifyListeners = () => {\n if (!prevResult) {\n return true;\n }\n\n const {\n notifyOnChangeProps\n } = this.options;\n\n if (notifyOnChangeProps === 'all' || !notifyOnChangeProps && !this.trackedProps.size) {\n return true;\n }\n\n const includedProps = new Set(notifyOnChangeProps != null ? notifyOnChangeProps : this.trackedProps);\n\n if (this.options.useErrorBoundary) {\n includedProps.add('error');\n }\n\n return Object.keys(this.currentResult).some(key => {\n const typedKey = key;\n const changed = this.currentResult[typedKey] !== prevResult[typedKey];\n return changed && includedProps.has(typedKey);\n });\n };\n\n if ((notifyOptions == null ? void 0 : notifyOptions.listeners) !== false && shouldNotifyListeners()) {\n defaultNotifyOptions.listeners = true;\n }\n\n this.notify({ ...defaultNotifyOptions,\n ...notifyOptions\n });\n }\n\n updateQuery() {\n const query = this.client.getQueryCache().build(this.client, this.options);\n\n if (query === this.currentQuery) {\n return;\n }\n\n const prevQuery = this.currentQuery;\n this.currentQuery = query;\n this.currentQueryInitialState = query.state;\n this.previousQueryResult = this.currentResult;\n\n if (this.hasListeners()) {\n prevQuery == null ? void 0 : prevQuery.removeObserver(this);\n query.addObserver(this);\n }\n }\n\n onQueryUpdate(action) {\n const notifyOptions = {};\n\n if (action.type === 'success') {\n notifyOptions.onSuccess = !action.manual;\n } else if (action.type === 'error' && !isCancelledError(action.error)) {\n notifyOptions.onError = true;\n }\n\n this.updateResult(notifyOptions);\n\n if (this.hasListeners()) {\n this.updateTimers();\n }\n }\n\n notify(notifyOptions) {\n notifyManager.batch(() => {\n // First trigger the configuration callbacks\n if (notifyOptions.onSuccess) {\n var _this$options$onSucce, _this$options, _this$options$onSettl, _this$options2;\n\n (_this$options$onSucce = (_this$options = this.options).onSuccess) == null ? void 0 : _this$options$onSucce.call(_this$options, this.currentResult.data);\n (_this$options$onSettl = (_this$options2 = this.options).onSettled) == null ? void 0 : _this$options$onSettl.call(_this$options2, this.currentResult.data, null);\n } else if (notifyOptions.onError) {\n var _this$options$onError, _this$options3, _this$options$onSettl2, _this$options4;\n\n (_this$options$onError = (_this$options3 = this.options).onError) == null ? void 0 : _this$options$onError.call(_this$options3, this.currentResult.error);\n (_this$options$onSettl2 = (_this$options4 = this.options).onSettled) == null ? void 0 : _this$options$onSettl2.call(_this$options4, undefined, this.currentResult.error);\n } // Then trigger the listeners\n\n\n if (notifyOptions.listeners) {\n this.listeners.forEach(listener => {\n listener(this.currentResult);\n });\n } // Then the cache listeners\n\n\n if (notifyOptions.cache) {\n this.client.getQueryCache().notify({\n query: this.currentQuery,\n type: 'observerResultsUpdated'\n });\n }\n });\n }\n\n}\n\nfunction shouldLoadOnMount(query, options) {\n return options.enabled !== false && !query.state.dataUpdatedAt && !(query.state.status === 'error' && options.retryOnMount === false);\n}\n\nfunction shouldFetchOnMount(query, options) {\n return shouldLoadOnMount(query, options) || query.state.dataUpdatedAt > 0 && shouldFetchOn(query, options, options.refetchOnMount);\n}\n\nfunction shouldFetchOn(query, options, field) {\n if (options.enabled !== false) {\n const value = typeof field === 'function' ? field(query) : field;\n return value === 'always' || value !== false && isStale(query, options);\n }\n\n return false;\n}\n\nfunction shouldFetchOptionally(query, prevQuery, options, prevOptions) {\n return options.enabled !== false && (query !== prevQuery || prevOptions.enabled === false) && (!options.suspense || query.state.status !== 'error') && isStale(query, options);\n}\n\nfunction isStale(query, options) {\n return query.isStaleByTime(options.staleTime);\n}\n\nexport { QueryObserver };\n//# sourceMappingURL=queryObserver.mjs.map\n","import { computed, reactive, ref, watch, onScopeDispose, toRefs, readonly, unref } from 'vue-demi';\nimport { useQueryClient } from './useQueryClient.mjs';\nimport { updateState, isQueryKey, cloneDeepUnref } from './utils.mjs';\n\nfunction useBaseQuery(Observer, arg1, arg2 = {}, arg3 = {}) {\n var _options$value$queryC;\n\n const options = computed(() => parseQueryArgs(arg1, arg2, arg3));\n const queryClient = (_options$value$queryC = options.value.queryClient) != null ? _options$value$queryC : useQueryClient(options.value.queryClientKey);\n const defaultedOptions = computed(() => {\n const defaulted = queryClient.defaultQueryOptions(options.value);\n defaulted._optimisticResults = queryClient.isRestoring.value ? 'isRestoring' : 'optimistic';\n return defaulted;\n });\n const observer = new Observer(queryClient, defaultedOptions.value);\n const state = reactive(observer.getCurrentResult());\n const unsubscribe = ref(() => {// noop\n });\n watch(queryClient.isRestoring, isRestoring => {\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (!isRestoring) {\n unsubscribe.value();\n unsubscribe.value = observer.subscribe(result => {\n updateState(state, result);\n });\n }\n }, {\n immediate: true\n });\n watch(defaultedOptions, () => {\n observer.setOptions(defaultedOptions.value);\n updateState(state, observer.getCurrentResult());\n }, {\n deep: true\n });\n onScopeDispose(() => {\n unsubscribe.value();\n });\n\n const suspense = () => {\n return new Promise(resolve => {\n let stopWatch = () => {//noop\n };\n\n const run = () => {\n if (defaultedOptions.value.enabled !== false) {\n const optimisticResult = observer.getOptimisticResult(defaultedOptions.value);\n\n if (optimisticResult.isStale) {\n stopWatch();\n resolve(observer.fetchOptimistic(defaultedOptions.value));\n } else {\n stopWatch();\n resolve(optimisticResult);\n }\n }\n };\n\n run();\n stopWatch = watch(defaultedOptions, run, {\n deep: true\n });\n });\n };\n\n return { ...toRefs(readonly(state)),\n suspense\n };\n}\nfunction parseQueryArgs(arg1, arg2 = {}, arg3 = {}) {\n const plainArg1 = unref(arg1);\n const plainArg2 = unref(arg2);\n const plainArg3 = unref(arg3);\n let options = plainArg1;\n\n if (!isQueryKey(plainArg1)) {\n options = plainArg1;\n } else if (typeof plainArg2 === 'function') {\n options = { ...plainArg3,\n queryKey: plainArg1,\n queryFn: plainArg2\n };\n } else {\n options = { ...plainArg2,\n queryKey: plainArg1\n };\n }\n\n return cloneDeepUnref(options);\n}\n\nexport { parseQueryArgs, useBaseQuery };\n//# sourceMappingURL=useBaseQuery.mjs.map\n","import { QueryObserver } from '@tanstack/query-core';\nimport { useBaseQuery } from './useBaseQuery.mjs';\n\nfunction useQuery(arg1, arg2, arg3) {\n const result = useBaseQuery(QueryObserver, arg1, arg2, arg3);\n return { ...result,\n refetch: result.refetch.value,\n remove: result.remove.value\n };\n}\n\nexport { useQuery };\n//# sourceMappingURL=useQuery.mjs.map\n","import { getCurrentInstance, inject } from 'vue-demi';\nimport { getClientKey } from './utils.mjs';\n\nfunction useQueryClient(id = '') {\n var _getCurrentInstance;\n\n const vm = (_getCurrentInstance = getCurrentInstance()) == null ? void 0 : _getCurrentInstance.proxy;\n\n if (!vm) {\n throw new Error('vue-query hooks can only be used inside setup() function.');\n }\n\n const key = getClientKey(id);\n const queryClient = inject(key);\n\n if (!queryClient) {\n throw new Error(\"No 'queryClient' found in Vue context, use 'VueQueryPlugin' to properly initialize the library.\");\n }\n\n return queryClient;\n}\n\nexport { useQueryClient };\n//# sourceMappingURL=useQueryClient.mjs.map\n","import { isRef, unref } from 'vue-demi';\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\nconst VUE_QUERY_CLIENT = 'VUE_QUERY_CLIENT';\nfunction getClientKey(key) {\n const suffix = key ? \":\" + key : '';\n return \"\" + VUE_QUERY_CLIENT + suffix;\n}\nfunction isQueryKey(value) {\n return Array.isArray(value);\n}\nfunction isMutationKey(value) {\n return Array.isArray(value);\n}\nfunction updateState(state, update) {\n Object.keys(state).forEach(key => {\n state[key] = update[key];\n });\n}\nfunction cloneDeep(value, customizer) {\n if (customizer) {\n const result = customizer(value);\n\n if (result !== undefined || isRef(value)) {\n return result;\n }\n }\n\n if (Array.isArray(value)) {\n return value.map(val => cloneDeep(val, customizer));\n }\n\n if (typeof value === 'object' && isPlainObject(value)) {\n const entries = Object.entries(value).map(([key, val]) => [key, cloneDeep(val, customizer)]);\n return Object.fromEntries(entries);\n }\n\n return value;\n}\nfunction cloneDeepUnref(obj) {\n return cloneDeep(obj, val => {\n if (isRef(val)) {\n return cloneDeepUnref(unref(val));\n }\n });\n}\n\nfunction isPlainObject(value) {\n if (Object.prototype.toString.call(value) !== '[object Object]') {\n return false;\n }\n\n const prototype = Object.getPrototypeOf(value);\n return prototype === null || prototype === Object.prototype;\n}\n\nexport { VUE_QUERY_CLIENT, cloneDeep, cloneDeepUnref, getClientKey, isMutationKey, isQueryKey, updateState };\n//# sourceMappingURL=utils.mjs.map\n","import { replaceData, noop, timeUntilStale, getAbortController } from './utils.mjs';\nimport { defaultLogger } from './logger.mjs';\nimport { notifyManager } from './notifyManager.mjs';\nimport { createRetryer, isCancelledError, canFetch } from './retryer.mjs';\nimport { Removable } from './removable.mjs';\n\n// CLASS\nclass Query extends Removable {\n constructor(config) {\n super();\n this.abortSignalConsumed = false;\n this.defaultOptions = config.defaultOptions;\n this.setOptions(config.options);\n this.observers = [];\n this.cache = config.cache;\n this.logger = config.logger || defaultLogger;\n this.queryKey = config.queryKey;\n this.queryHash = config.queryHash;\n this.initialState = config.state || getDefaultState(this.options);\n this.state = this.initialState;\n this.scheduleGc();\n }\n\n get meta() {\n return this.options.meta;\n }\n\n setOptions(options) {\n this.options = { ...this.defaultOptions,\n ...options\n };\n this.updateCacheTime(this.options.cacheTime);\n }\n\n optionalRemove() {\n if (!this.observers.length && this.state.fetchStatus === 'idle') {\n this.cache.remove(this);\n }\n }\n\n setData(newData, options) {\n const data = replaceData(this.state.data, newData, this.options); // Set data and mark it as cached\n\n this.dispatch({\n data,\n type: 'success',\n dataUpdatedAt: options == null ? void 0 : options.updatedAt,\n manual: options == null ? void 0 : options.manual\n });\n return data;\n }\n\n setState(state, setStateOptions) {\n this.dispatch({\n type: 'setState',\n state,\n setStateOptions\n });\n }\n\n cancel(options) {\n var _this$retryer;\n\n const promise = this.promise;\n (_this$retryer = this.retryer) == null ? void 0 : _this$retryer.cancel(options);\n return promise ? promise.then(noop).catch(noop) : Promise.resolve();\n }\n\n destroy() {\n super.destroy();\n this.cancel({\n silent: true\n });\n }\n\n reset() {\n this.destroy();\n this.setState(this.initialState);\n }\n\n isActive() {\n return this.observers.some(observer => observer.options.enabled !== false);\n }\n\n isDisabled() {\n return this.getObserversCount() > 0 && !this.isActive();\n }\n\n isStale() {\n return this.state.isInvalidated || !this.state.dataUpdatedAt || this.observers.some(observer => observer.getCurrentResult().isStale);\n }\n\n isStaleByTime(staleTime = 0) {\n return this.state.isInvalidated || !this.state.dataUpdatedAt || !timeUntilStale(this.state.dataUpdatedAt, staleTime);\n }\n\n onFocus() {\n var _this$retryer2;\n\n const observer = this.observers.find(x => x.shouldFetchOnWindowFocus());\n\n if (observer) {\n observer.refetch({\n cancelRefetch: false\n });\n } // Continue fetch if currently paused\n\n\n (_this$retryer2 = this.retryer) == null ? void 0 : _this$retryer2.continue();\n }\n\n onOnline() {\n var _this$retryer3;\n\n const observer = this.observers.find(x => x.shouldFetchOnReconnect());\n\n if (observer) {\n observer.refetch({\n cancelRefetch: false\n });\n } // Continue fetch if currently paused\n\n\n (_this$retryer3 = this.retryer) == null ? void 0 : _this$retryer3.continue();\n }\n\n addObserver(observer) {\n if (this.observers.indexOf(observer) === -1) {\n this.observers.push(observer); // Stop the query from being garbage collected\n\n this.clearGcTimeout();\n this.cache.notify({\n type: 'observerAdded',\n query: this,\n observer\n });\n }\n }\n\n removeObserver(observer) {\n if (this.observers.indexOf(observer) !== -1) {\n this.observers = this.observers.filter(x => x !== observer);\n\n if (!this.observers.length) {\n // If the transport layer does not support cancellation\n // we'll let the query continue so the result can be cached\n if (this.retryer) {\n if (this.abortSignalConsumed) {\n this.retryer.cancel({\n revert: true\n });\n } else {\n this.retryer.cancelRetry();\n }\n }\n\n this.scheduleGc();\n }\n\n this.cache.notify({\n type: 'observerRemoved',\n query: this,\n observer\n });\n }\n }\n\n getObserversCount() {\n return this.observers.length;\n }\n\n invalidate() {\n if (!this.state.isInvalidated) {\n this.dispatch({\n type: 'invalidate'\n });\n }\n }\n\n fetch(options, fetchOptions) {\n var _this$options$behavio, _context$fetchOptions;\n\n if (this.state.fetchStatus !== 'idle') {\n if (this.state.dataUpdatedAt && fetchOptions != null && fetchOptions.cancelRefetch) {\n // Silently cancel current fetch if the user wants to cancel refetches\n this.cancel({\n silent: true\n });\n } else if (this.promise) {\n var _this$retryer4;\n\n // make sure that retries that were potentially cancelled due to unmounts can continue\n (_this$retryer4 = this.retryer) == null ? void 0 : _this$retryer4.continueRetry(); // Return current promise if we are already fetching\n\n return this.promise;\n }\n } // Update config if passed, otherwise the config from the last execution is used\n\n\n if (options) {\n this.setOptions(options);\n } // Use the options from the first observer with a query function if no function is found.\n // This can happen when the query is hydrated or created with setQueryData.\n\n\n if (!this.options.queryFn) {\n const observer = this.observers.find(x => x.options.queryFn);\n\n if (observer) {\n this.setOptions(observer.options);\n }\n }\n\n if (!Array.isArray(this.options.queryKey)) {\n if (process.env.NODE_ENV !== 'production') {\n this.logger.error(\"As of v4, queryKey needs to be an Array. If you are using a string like 'repoData', please change it to an Array, e.g. ['repoData']\");\n }\n }\n\n const abortController = getAbortController(); // Create query function context\n\n const queryFnContext = {\n queryKey: this.queryKey,\n pageParam: undefined,\n meta: this.meta\n }; // Adds an enumerable signal property to the object that\n // which sets abortSignalConsumed to true when the signal\n // is read.\n\n const addSignalProperty = object => {\n Object.defineProperty(object, 'signal', {\n enumerable: true,\n get: () => {\n if (abortController) {\n this.abortSignalConsumed = true;\n return abortController.signal;\n }\n\n return undefined;\n }\n });\n };\n\n addSignalProperty(queryFnContext); // Create fetch function\n\n const fetchFn = () => {\n if (!this.options.queryFn) {\n return Promise.reject('Missing queryFn');\n }\n\n this.abortSignalConsumed = false;\n return this.options.queryFn(queryFnContext);\n }; // Trigger behavior hook\n\n\n const context = {\n fetchOptions,\n options: this.options,\n queryKey: this.queryKey,\n state: this.state,\n fetchFn\n };\n addSignalProperty(context);\n (_this$options$behavio = this.options.behavior) == null ? void 0 : _this$options$behavio.onFetch(context); // Store state in case the current fetch needs to be reverted\n\n this.revertState = this.state; // Set to fetching state if not already in it\n\n if (this.state.fetchStatus === 'idle' || this.state.fetchMeta !== ((_context$fetchOptions = context.fetchOptions) == null ? void 0 : _context$fetchOptions.meta)) {\n var _context$fetchOptions2;\n\n this.dispatch({\n type: 'fetch',\n meta: (_context$fetchOptions2 = context.fetchOptions) == null ? void 0 : _context$fetchOptions2.meta\n });\n }\n\n const onError = error => {\n // Optimistically update state if needed\n if (!(isCancelledError(error) && error.silent)) {\n this.dispatch({\n type: 'error',\n error: error\n });\n }\n\n if (!isCancelledError(error)) {\n var _this$cache$config$on, _this$cache$config;\n\n // Notify cache callback\n (_this$cache$config$on = (_this$cache$config = this.cache.config).onError) == null ? void 0 : _this$cache$config$on.call(_this$cache$config, error, this);\n\n if (process.env.NODE_ENV !== 'production') {\n this.logger.error(error);\n }\n }\n\n if (!this.isFetchingOptimistic) {\n // Schedule query gc after fetching\n this.scheduleGc();\n }\n\n this.isFetchingOptimistic = false;\n }; // Try to fetch the data\n\n\n this.retryer = createRetryer({\n fn: context.fetchFn,\n abort: abortController == null ? void 0 : abortController.abort.bind(abortController),\n onSuccess: data => {\n var _this$cache$config$on2, _this$cache$config2;\n\n if (typeof data === 'undefined') {\n if (process.env.NODE_ENV !== 'production') {\n this.logger.error(\"Query data cannot be undefined. Please make sure to return a value other than undefined from your query function. Affected query key: \" + this.queryHash);\n }\n\n onError(new Error('undefined'));\n return;\n }\n\n this.setData(data); // Notify cache callback\n\n (_this$cache$config$on2 = (_this$cache$config2 = this.cache.config).onSuccess) == null ? void 0 : _this$cache$config$on2.call(_this$cache$config2, data, this);\n\n if (!this.isFetchingOptimistic) {\n // Schedule query gc after fetching\n this.scheduleGc();\n }\n\n this.isFetchingOptimistic = false;\n },\n onError,\n onFail: (failureCount, error) => {\n this.dispatch({\n type: 'failed',\n failureCount,\n error\n });\n },\n onPause: () => {\n this.dispatch({\n type: 'pause'\n });\n },\n onContinue: () => {\n this.dispatch({\n type: 'continue'\n });\n },\n retry: context.options.retry,\n retryDelay: context.options.retryDelay,\n networkMode: context.options.networkMode\n });\n this.promise = this.retryer.promise;\n return this.promise;\n }\n\n dispatch(action) {\n const reducer = state => {\n var _action$meta, _action$dataUpdatedAt;\n\n switch (action.type) {\n case 'failed':\n return { ...state,\n fetchFailureCount: action.failureCount,\n fetchFailureReason: action.error\n };\n\n case 'pause':\n return { ...state,\n fetchStatus: 'paused'\n };\n\n case 'continue':\n return { ...state,\n fetchStatus: 'fetching'\n };\n\n case 'fetch':\n return { ...state,\n fetchFailureCount: 0,\n fetchFailureReason: null,\n fetchMeta: (_action$meta = action.meta) != null ? _action$meta : null,\n fetchStatus: canFetch(this.options.networkMode) ? 'fetching' : 'paused',\n ...(!state.dataUpdatedAt && {\n error: null,\n status: 'loading'\n })\n };\n\n case 'success':\n return { ...state,\n data: action.data,\n dataUpdateCount: state.dataUpdateCount + 1,\n dataUpdatedAt: (_action$dataUpdatedAt = action.dataUpdatedAt) != null ? _action$dataUpdatedAt : Date.now(),\n error: null,\n isInvalidated: false,\n status: 'success',\n ...(!action.manual && {\n fetchStatus: 'idle',\n fetchFailureCount: 0,\n fetchFailureReason: null\n })\n };\n\n case 'error':\n const error = action.error;\n\n if (isCancelledError(error) && error.revert && this.revertState) {\n return { ...this.revertState\n };\n }\n\n return { ...state,\n error: error,\n errorUpdateCount: state.errorUpdateCount + 1,\n errorUpdatedAt: Date.now(),\n fetchFailureCount: state.fetchFailureCount + 1,\n fetchFailureReason: error,\n fetchStatus: 'idle',\n status: 'error'\n };\n\n case 'invalidate':\n return { ...state,\n isInvalidated: true\n };\n\n case 'setState':\n return { ...state,\n ...action.state\n };\n }\n };\n\n this.state = reducer(this.state);\n notifyManager.batch(() => {\n this.observers.forEach(observer => {\n observer.onQueryUpdate(action);\n });\n this.cache.notify({\n query: this,\n type: 'updated',\n action\n });\n });\n }\n\n}\n\nfunction getDefaultState(options) {\n const data = typeof options.initialData === 'function' ? options.initialData() : options.initialData;\n const hasData = typeof data !== 'undefined';\n const initialDataUpdatedAt = hasData ? typeof options.initialDataUpdatedAt === 'function' ? options.initialDataUpdatedAt() : options.initialDataUpdatedAt : 0;\n return {\n data,\n dataUpdateCount: 0,\n dataUpdatedAt: hasData ? initialDataUpdatedAt != null ? initialDataUpdatedAt : Date.now() : 0,\n error: null,\n errorUpdateCount: 0,\n errorUpdatedAt: 0,\n fetchFailureCount: 0,\n fetchFailureReason: null,\n fetchMeta: null,\n isInvalidated: false,\n status: hasData ? 'success' : 'loading',\n fetchStatus: 'idle'\n };\n}\n\nexport { Query };\n//# sourceMappingURL=query.mjs.map\n","import { hashQueryKeyByOptions, parseFilterArgs, matchQuery } from './utils.mjs';\nimport { Query } from './query.mjs';\nimport { notifyManager } from './notifyManager.mjs';\nimport { Subscribable } from './subscribable.mjs';\n\n// CLASS\nclass QueryCache extends Subscribable {\n constructor(config) {\n super();\n this.config = config || {};\n this.queries = [];\n this.queriesMap = {};\n }\n\n build(client, options, state) {\n var _options$queryHash;\n\n const queryKey = options.queryKey;\n const queryHash = (_options$queryHash = options.queryHash) != null ? _options$queryHash : hashQueryKeyByOptions(queryKey, options);\n let query = this.get(queryHash);\n\n if (!query) {\n query = new Query({\n cache: this,\n logger: client.getLogger(),\n queryKey,\n queryHash,\n options: client.defaultQueryOptions(options),\n state,\n defaultOptions: client.getQueryDefaults(queryKey)\n });\n this.add(query);\n }\n\n return query;\n }\n\n add(query) {\n if (!this.queriesMap[query.queryHash]) {\n this.queriesMap[query.queryHash] = query;\n this.queries.push(query);\n this.notify({\n type: 'added',\n query\n });\n }\n }\n\n remove(query) {\n const queryInMap = this.queriesMap[query.queryHash];\n\n if (queryInMap) {\n query.destroy();\n this.queries = this.queries.filter(x => x !== query);\n\n if (queryInMap === query) {\n delete this.queriesMap[query.queryHash];\n }\n\n this.notify({\n type: 'removed',\n query\n });\n }\n }\n\n clear() {\n notifyManager.batch(() => {\n this.queries.forEach(query => {\n this.remove(query);\n });\n });\n }\n\n get(queryHash) {\n return this.queriesMap[queryHash];\n }\n\n getAll() {\n return this.queries;\n }\n\n find(arg1, arg2) {\n const [filters] = parseFilterArgs(arg1, arg2);\n\n if (typeof filters.exact === 'undefined') {\n filters.exact = true;\n }\n\n return this.queries.find(query => matchQuery(filters, query));\n }\n\n findAll(arg1, arg2) {\n const [filters] = parseFilterArgs(arg1, arg2);\n return Object.keys(filters).length > 0 ? this.queries.filter(query => matchQuery(filters, query)) : this.queries;\n }\n\n notify(event) {\n notifyManager.batch(() => {\n this.listeners.forEach(listener => {\n listener(event);\n });\n });\n }\n\n onFocus() {\n notifyManager.batch(() => {\n this.queries.forEach(query => {\n query.onFocus();\n });\n });\n }\n\n onOnline() {\n notifyManager.batch(() => {\n this.queries.forEach(query => {\n query.onOnline();\n });\n });\n }\n\n}\n\nexport { QueryCache };\n//# sourceMappingURL=queryCache.mjs.map\n","import { notifyManager } from './notifyManager.mjs';\nimport { Mutation } from './mutation.mjs';\nimport { matchMutation, noop } from './utils.mjs';\nimport { Subscribable } from './subscribable.mjs';\n\n// CLASS\nclass MutationCache extends Subscribable {\n constructor(config) {\n super();\n this.config = config || {};\n this.mutations = [];\n this.mutationId = 0;\n }\n\n build(client, options, state) {\n const mutation = new Mutation({\n mutationCache: this,\n logger: client.getLogger(),\n mutationId: ++this.mutationId,\n options: client.defaultMutationOptions(options),\n state,\n defaultOptions: options.mutationKey ? client.getMutationDefaults(options.mutationKey) : undefined\n });\n this.add(mutation);\n return mutation;\n }\n\n add(mutation) {\n this.mutations.push(mutation);\n this.notify({\n type: 'added',\n mutation\n });\n }\n\n remove(mutation) {\n this.mutations = this.mutations.filter(x => x !== mutation);\n this.notify({\n type: 'removed',\n mutation\n });\n }\n\n clear() {\n notifyManager.batch(() => {\n this.mutations.forEach(mutation => {\n this.remove(mutation);\n });\n });\n }\n\n getAll() {\n return this.mutations;\n }\n\n find(filters) {\n if (typeof filters.exact === 'undefined') {\n filters.exact = true;\n }\n\n return this.mutations.find(mutation => matchMutation(filters, mutation));\n }\n\n findAll(filters) {\n return this.mutations.filter(mutation => matchMutation(filters, mutation));\n }\n\n notify(event) {\n notifyManager.batch(() => {\n this.listeners.forEach(listener => {\n listener(event);\n });\n });\n }\n\n resumePausedMutations() {\n var _this$resuming;\n\n this.resuming = ((_this$resuming = this.resuming) != null ? _this$resuming : Promise.resolve()).then(() => {\n const pausedMutations = this.mutations.filter(x => x.state.isPaused);\n return notifyManager.batch(() => pausedMutations.reduce((promise, mutation) => promise.then(() => mutation.continue().catch(noop)), Promise.resolve()));\n }).then(() => {\n this.resuming = undefined;\n });\n return this.resuming;\n }\n\n}\n\nexport { MutationCache };\n//# sourceMappingURL=mutationCache.mjs.map\n","function infiniteQueryBehavior() {\n return {\n onFetch: context => {\n context.fetchFn = () => {\n var _context$fetchOptions, _context$fetchOptions2, _context$fetchOptions3, _context$fetchOptions4, _context$state$data, _context$state$data2;\n\n const refetchPage = (_context$fetchOptions = context.fetchOptions) == null ? void 0 : (_context$fetchOptions2 = _context$fetchOptions.meta) == null ? void 0 : _context$fetchOptions2.refetchPage;\n const fetchMore = (_context$fetchOptions3 = context.fetchOptions) == null ? void 0 : (_context$fetchOptions4 = _context$fetchOptions3.meta) == null ? void 0 : _context$fetchOptions4.fetchMore;\n const pageParam = fetchMore == null ? void 0 : fetchMore.pageParam;\n const isFetchingNextPage = (fetchMore == null ? void 0 : fetchMore.direction) === 'forward';\n const isFetchingPreviousPage = (fetchMore == null ? void 0 : fetchMore.direction) === 'backward';\n const oldPages = ((_context$state$data = context.state.data) == null ? void 0 : _context$state$data.pages) || [];\n const oldPageParams = ((_context$state$data2 = context.state.data) == null ? void 0 : _context$state$data2.pageParams) || [];\n let newPageParams = oldPageParams;\n let cancelled = false;\n\n const addSignalProperty = object => {\n Object.defineProperty(object, 'signal', {\n enumerable: true,\n get: () => {\n var _context$signal;\n\n if ((_context$signal = context.signal) != null && _context$signal.aborted) {\n cancelled = true;\n } else {\n var _context$signal2;\n\n (_context$signal2 = context.signal) == null ? void 0 : _context$signal2.addEventListener('abort', () => {\n cancelled = true;\n });\n }\n\n return context.signal;\n }\n });\n }; // Get query function\n\n\n const queryFn = context.options.queryFn || (() => Promise.reject('Missing queryFn'));\n\n const buildNewPages = (pages, param, page, previous) => {\n newPageParams = previous ? [param, ...newPageParams] : [...newPageParams, param];\n return previous ? [page, ...pages] : [...pages, page];\n }; // Create function to fetch a page\n\n\n const fetchPage = (pages, manual, param, previous) => {\n if (cancelled) {\n return Promise.reject('Cancelled');\n }\n\n if (typeof param === 'undefined' && !manual && pages.length) {\n return Promise.resolve(pages);\n }\n\n const queryFnContext = {\n queryKey: context.queryKey,\n pageParam: param,\n meta: context.options.meta\n };\n addSignalProperty(queryFnContext);\n const queryFnResult = queryFn(queryFnContext);\n const promise = Promise.resolve(queryFnResult).then(page => buildNewPages(pages, param, page, previous));\n return promise;\n };\n\n let promise; // Fetch first page?\n\n if (!oldPages.length) {\n promise = fetchPage([]);\n } // Fetch next page?\n else if (isFetchingNextPage) {\n const manual = typeof pageParam !== 'undefined';\n const param = manual ? pageParam : getNextPageParam(context.options, oldPages);\n promise = fetchPage(oldPages, manual, param);\n } // Fetch previous page?\n else if (isFetchingPreviousPage) {\n const manual = typeof pageParam !== 'undefined';\n const param = manual ? pageParam : getPreviousPageParam(context.options, oldPages);\n promise = fetchPage(oldPages, manual, param, true);\n } // Refetch pages\n else {\n newPageParams = [];\n const manual = typeof context.options.getNextPageParam === 'undefined';\n const shouldFetchFirstPage = refetchPage && oldPages[0] ? refetchPage(oldPages[0], 0, oldPages) : true; // Fetch first page\n\n promise = shouldFetchFirstPage ? fetchPage([], manual, oldPageParams[0]) : Promise.resolve(buildNewPages([], oldPageParams[0], oldPages[0])); // Fetch remaining pages\n\n for (let i = 1; i < oldPages.length; i++) {\n promise = promise.then(pages => {\n const shouldFetchNextPage = refetchPage && oldPages[i] ? refetchPage(oldPages[i], i, oldPages) : true;\n\n if (shouldFetchNextPage) {\n const param = manual ? oldPageParams[i] : getNextPageParam(context.options, pages);\n return fetchPage(pages, manual, param);\n }\n\n return Promise.resolve(buildNewPages(pages, oldPageParams[i], oldPages[i]));\n });\n }\n }\n\n const finalPromise = promise.then(pages => ({\n pages,\n pageParams: newPageParams\n }));\n return finalPromise;\n };\n }\n };\n}\nfunction getNextPageParam(options, pages) {\n return options.getNextPageParam == null ? void 0 : options.getNextPageParam(pages[pages.length - 1], pages);\n}\nfunction getPreviousPageParam(options, pages) {\n return options.getPreviousPageParam == null ? void 0 : options.getPreviousPageParam(pages[0], pages);\n}\n/**\n * Checks if there is a next page.\n * Returns `undefined` if it cannot be determined.\n */\n\nfunction hasNextPage(options, pages) {\n if (options.getNextPageParam && Array.isArray(pages)) {\n const nextPageParam = getNextPageParam(options, pages);\n return typeof nextPageParam !== 'undefined' && nextPageParam !== null && nextPageParam !== false;\n }\n\n return;\n}\n/**\n * Checks if there is a previous page.\n * Returns `undefined` if it cannot be determined.\n */\n\nfunction hasPreviousPage(options, pages) {\n if (options.getPreviousPageParam && Array.isArray(pages)) {\n const previousPageParam = getPreviousPageParam(options, pages);\n return typeof previousPageParam !== 'undefined' && previousPageParam !== null && previousPageParam !== false;\n }\n\n return;\n}\n\nexport { getNextPageParam, getPreviousPageParam, hasNextPage, hasPreviousPage, infiniteQueryBehavior };\n//# sourceMappingURL=infiniteQueryBehavior.mjs.map\n","import { parseFilterArgs, parseQueryArgs, functionalUpdate, noop, hashQueryKey, partialMatchKey, hashQueryKeyByOptions } from './utils.mjs';\nimport { QueryCache } from './queryCache.mjs';\nimport { MutationCache } from './mutationCache.mjs';\nimport { focusManager } from './focusManager.mjs';\nimport { onlineManager } from './onlineManager.mjs';\nimport { notifyManager } from './notifyManager.mjs';\nimport { infiniteQueryBehavior } from './infiniteQueryBehavior.mjs';\nimport { defaultLogger } from './logger.mjs';\n\n// CLASS\nclass QueryClient {\n constructor(config = {}) {\n this.queryCache = config.queryCache || new QueryCache();\n this.mutationCache = config.mutationCache || new MutationCache();\n this.logger = config.logger || defaultLogger;\n this.defaultOptions = config.defaultOptions || {};\n this.queryDefaults = [];\n this.mutationDefaults = [];\n this.mountCount = 0;\n\n if (process.env.NODE_ENV !== 'production' && config.logger) {\n this.logger.error(\"Passing a custom logger has been deprecated and will be removed in the next major version.\");\n }\n }\n\n mount() {\n this.mountCount++;\n if (this.mountCount !== 1) return;\n this.unsubscribeFocus = focusManager.subscribe(() => {\n if (focusManager.isFocused()) {\n this.resumePausedMutations();\n this.queryCache.onFocus();\n }\n });\n this.unsubscribeOnline = onlineManager.subscribe(() => {\n if (onlineManager.isOnline()) {\n this.resumePausedMutations();\n this.queryCache.onOnline();\n }\n });\n }\n\n unmount() {\n var _this$unsubscribeFocu, _this$unsubscribeOnli;\n\n this.mountCount--;\n if (this.mountCount !== 0) return;\n (_this$unsubscribeFocu = this.unsubscribeFocus) == null ? void 0 : _this$unsubscribeFocu.call(this);\n this.unsubscribeFocus = undefined;\n (_this$unsubscribeOnli = this.unsubscribeOnline) == null ? void 0 : _this$unsubscribeOnli.call(this);\n this.unsubscribeOnline = undefined;\n }\n\n isFetching(arg1, arg2) {\n const [filters] = parseFilterArgs(arg1, arg2);\n filters.fetchStatus = 'fetching';\n return this.queryCache.findAll(filters).length;\n }\n\n isMutating(filters) {\n return this.mutationCache.findAll({ ...filters,\n fetching: true\n }).length;\n }\n\n getQueryData(queryKey, filters) {\n var _this$queryCache$find;\n\n return (_this$queryCache$find = this.queryCache.find(queryKey, filters)) == null ? void 0 : _this$queryCache$find.state.data;\n }\n\n ensureQueryData(arg1, arg2, arg3) {\n const parsedOptions = parseQueryArgs(arg1, arg2, arg3);\n const cachedData = this.getQueryData(parsedOptions.queryKey);\n return cachedData ? Promise.resolve(cachedData) : this.fetchQuery(parsedOptions);\n }\n\n getQueriesData(queryKeyOrFilters) {\n return this.getQueryCache().findAll(queryKeyOrFilters).map(({\n queryKey,\n state\n }) => {\n const data = state.data;\n return [queryKey, data];\n });\n }\n\n setQueryData(queryKey, updater, options) {\n const query = this.queryCache.find(queryKey);\n const prevData = query == null ? void 0 : query.state.data;\n const data = functionalUpdate(updater, prevData);\n\n if (typeof data === 'undefined') {\n return undefined;\n }\n\n const parsedOptions = parseQueryArgs(queryKey);\n const defaultedOptions = this.defaultQueryOptions(parsedOptions);\n return this.queryCache.build(this, defaultedOptions).setData(data, { ...options,\n manual: true\n });\n }\n\n setQueriesData(queryKeyOrFilters, updater, options) {\n return notifyManager.batch(() => this.getQueryCache().findAll(queryKeyOrFilters).map(({\n queryKey\n }) => [queryKey, this.setQueryData(queryKey, updater, options)]));\n }\n\n getQueryState(queryKey, filters) {\n var _this$queryCache$find2;\n\n return (_this$queryCache$find2 = this.queryCache.find(queryKey, filters)) == null ? void 0 : _this$queryCache$find2.state;\n }\n\n removeQueries(arg1, arg2) {\n const [filters] = parseFilterArgs(arg1, arg2);\n const queryCache = this.queryCache;\n notifyManager.batch(() => {\n queryCache.findAll(filters).forEach(query => {\n queryCache.remove(query);\n });\n });\n }\n\n resetQueries(arg1, arg2, arg3) {\n const [filters, options] = parseFilterArgs(arg1, arg2, arg3);\n const queryCache = this.queryCache;\n const refetchFilters = {\n type: 'active',\n ...filters\n };\n return notifyManager.batch(() => {\n queryCache.findAll(filters).forEach(query => {\n query.reset();\n });\n return this.refetchQueries(refetchFilters, options);\n });\n }\n\n cancelQueries(arg1, arg2, arg3) {\n const [filters, cancelOptions = {}] = parseFilterArgs(arg1, arg2, arg3);\n\n if (typeof cancelOptions.revert === 'undefined') {\n cancelOptions.revert = true;\n }\n\n const promises = notifyManager.batch(() => this.queryCache.findAll(filters).map(query => query.cancel(cancelOptions)));\n return Promise.all(promises).then(noop).catch(noop);\n }\n\n invalidateQueries(arg1, arg2, arg3) {\n const [filters, options] = parseFilterArgs(arg1, arg2, arg3);\n return notifyManager.batch(() => {\n var _ref, _filters$refetchType;\n\n this.queryCache.findAll(filters).forEach(query => {\n query.invalidate();\n });\n\n if (filters.refetchType === 'none') {\n return Promise.resolve();\n }\n\n const refetchFilters = { ...filters,\n type: (_ref = (_filters$refetchType = filters.refetchType) != null ? _filters$refetchType : filters.type) != null ? _ref : 'active'\n };\n return this.refetchQueries(refetchFilters, options);\n });\n }\n\n refetchQueries(arg1, arg2, arg3) {\n const [filters, options] = parseFilterArgs(arg1, arg2, arg3);\n const promises = notifyManager.batch(() => this.queryCache.findAll(filters).filter(query => !query.isDisabled()).map(query => {\n var _options$cancelRefetc;\n\n return query.fetch(undefined, { ...options,\n cancelRefetch: (_options$cancelRefetc = options == null ? void 0 : options.cancelRefetch) != null ? _options$cancelRefetc : true,\n meta: {\n refetchPage: filters.refetchPage\n }\n });\n }));\n let promise = Promise.all(promises).then(noop);\n\n if (!(options != null && options.throwOnError)) {\n promise = promise.catch(noop);\n }\n\n return promise;\n }\n\n fetchQuery(arg1, arg2, arg3) {\n const parsedOptions = parseQueryArgs(arg1, arg2, arg3);\n const defaultedOptions = this.defaultQueryOptions(parsedOptions); // https://github.com/tannerlinsley/react-query/issues/652\n\n if (typeof defaultedOptions.retry === 'undefined') {\n defaultedOptions.retry = false;\n }\n\n const query = this.queryCache.build(this, defaultedOptions);\n return query.isStaleByTime(defaultedOptions.staleTime) ? query.fetch(defaultedOptions) : Promise.resolve(query.state.data);\n }\n\n prefetchQuery(arg1, arg2, arg3) {\n return this.fetchQuery(arg1, arg2, arg3).then(noop).catch(noop);\n }\n\n fetchInfiniteQuery(arg1, arg2, arg3) {\n const parsedOptions = parseQueryArgs(arg1, arg2, arg3);\n parsedOptions.behavior = infiniteQueryBehavior();\n return this.fetchQuery(parsedOptions);\n }\n\n prefetchInfiniteQuery(arg1, arg2, arg3) {\n return this.fetchInfiniteQuery(arg1, arg2, arg3).then(noop).catch(noop);\n }\n\n resumePausedMutations() {\n return this.mutationCache.resumePausedMutations();\n }\n\n getQueryCache() {\n return this.queryCache;\n }\n\n getMutationCache() {\n return this.mutationCache;\n }\n\n getLogger() {\n return this.logger;\n }\n\n getDefaultOptions() {\n return this.defaultOptions;\n }\n\n setDefaultOptions(options) {\n this.defaultOptions = options;\n }\n\n setQueryDefaults(queryKey, options) {\n const result = this.queryDefaults.find(x => hashQueryKey(queryKey) === hashQueryKey(x.queryKey));\n\n if (result) {\n result.defaultOptions = options;\n } else {\n this.queryDefaults.push({\n queryKey,\n defaultOptions: options\n });\n }\n }\n\n getQueryDefaults(queryKey) {\n if (!queryKey) {\n return undefined;\n } // Get the first matching defaults\n\n\n const firstMatchingDefaults = this.queryDefaults.find(x => partialMatchKey(queryKey, x.queryKey)); // Additional checks and error in dev mode\n\n if (process.env.NODE_ENV !== 'production') {\n // Retrieve all matching defaults for the given key\n const matchingDefaults = this.queryDefaults.filter(x => partialMatchKey(queryKey, x.queryKey)); // It is ok not having defaults, but it is error prone to have more than 1 default for a given key\n\n if (matchingDefaults.length > 1) {\n this.logger.error(\"[QueryClient] Several query defaults match with key '\" + JSON.stringify(queryKey) + \"'. The first matching query defaults are used. Please check how query defaults are registered. Order does matter here. cf. https://react-query.tanstack.com/reference/QueryClient#queryclientsetquerydefaults.\");\n }\n }\n\n return firstMatchingDefaults == null ? void 0 : firstMatchingDefaults.defaultOptions;\n }\n\n setMutationDefaults(mutationKey, options) {\n const result = this.mutationDefaults.find(x => hashQueryKey(mutationKey) === hashQueryKey(x.mutationKey));\n\n if (result) {\n result.defaultOptions = options;\n } else {\n this.mutationDefaults.push({\n mutationKey,\n defaultOptions: options\n });\n }\n }\n\n getMutationDefaults(mutationKey) {\n if (!mutationKey) {\n return undefined;\n } // Get the first matching defaults\n\n\n const firstMatchingDefaults = this.mutationDefaults.find(x => partialMatchKey(mutationKey, x.mutationKey)); // Additional checks and error in dev mode\n\n if (process.env.NODE_ENV !== 'production') {\n // Retrieve all matching defaults for the given key\n const matchingDefaults = this.mutationDefaults.filter(x => partialMatchKey(mutationKey, x.mutationKey)); // It is ok not having defaults, but it is error prone to have more than 1 default for a given key\n\n if (matchingDefaults.length > 1) {\n this.logger.error(\"[QueryClient] Several mutation defaults match with key '\" + JSON.stringify(mutationKey) + \"'. The first matching mutation defaults are used. Please check how mutation defaults are registered. Order does matter here. cf. https://react-query.tanstack.com/reference/QueryClient#queryclientsetmutationdefaults.\");\n }\n }\n\n return firstMatchingDefaults == null ? void 0 : firstMatchingDefaults.defaultOptions;\n }\n\n defaultQueryOptions(options) {\n if (options != null && options._defaulted) {\n return options;\n }\n\n const defaultedOptions = { ...this.defaultOptions.queries,\n ...this.getQueryDefaults(options == null ? void 0 : options.queryKey),\n ...options,\n _defaulted: true\n };\n\n if (!defaultedOptions.queryHash && defaultedOptions.queryKey) {\n defaultedOptions.queryHash = hashQueryKeyByOptions(defaultedOptions.queryKey, defaultedOptions);\n } // dependent default values\n\n\n if (typeof defaultedOptions.refetchOnReconnect === 'undefined') {\n defaultedOptions.refetchOnReconnect = defaultedOptions.networkMode !== 'always';\n }\n\n if (typeof defaultedOptions.useErrorBoundary === 'undefined') {\n defaultedOptions.useErrorBoundary = !!defaultedOptions.suspense;\n }\n\n return defaultedOptions;\n }\n\n defaultMutationOptions(options) {\n if (options != null && options._defaulted) {\n return options;\n }\n\n return { ...this.defaultOptions.mutations,\n ...this.getMutationDefaults(options == null ? void 0 : options.mutationKey),\n ...options,\n _defaulted: true\n };\n }\n\n clear() {\n this.queryCache.clear();\n this.mutationCache.clear();\n }\n\n}\n\nexport { QueryClient };\n//# sourceMappingURL=queryClient.mjs.map\n","import { QueryCache as QueryCache$1 } from '@tanstack/query-core';\nimport { cloneDeepUnref, isQueryKey } from './utils.mjs';\n\nclass QueryCache extends QueryCache$1 {\n find(arg1, arg2) {\n const arg1Unreffed = cloneDeepUnref(arg1);\n const arg2Unreffed = cloneDeepUnref(arg2);\n return super.find(arg1Unreffed, arg2Unreffed);\n }\n\n findAll(arg1, arg2) {\n const arg1Unreffed = cloneDeepUnref(arg1);\n const arg2Unreffed = cloneDeepUnref(arg2);\n\n if (isQueryKey(arg1Unreffed)) {\n return super.findAll(arg1Unreffed, arg2Unreffed);\n }\n\n return super.findAll(arg1Unreffed);\n }\n\n}\n\nexport { QueryCache };\n//# sourceMappingURL=queryCache.mjs.map\n","import { MutationCache as MutationCache$1 } from '@tanstack/query-core';\nimport { cloneDeepUnref } from './utils.mjs';\n\nclass MutationCache extends MutationCache$1 {\n find(filters) {\n return super.find(cloneDeepUnref(filters));\n }\n\n findAll(filters) {\n return super.findAll(cloneDeepUnref(filters));\n }\n\n}\n\nexport { MutationCache };\n//# sourceMappingURL=mutationCache.mjs.map\n","import { ref } from 'vue-demi';\nimport { QueryClient as QueryClient$1 } from '@tanstack/query-core';\nimport { cloneDeepUnref, isQueryKey } from './utils.mjs';\nimport { QueryCache } from './queryCache.mjs';\nimport { MutationCache } from './mutationCache.mjs';\n\nclass QueryClient extends QueryClient$1 {\n constructor(config = {}) {\n const unreffedConfig = cloneDeepUnref(config);\n const vueQueryConfig = {\n logger: cloneDeepUnref(unreffedConfig.logger),\n defaultOptions: cloneDeepUnref(unreffedConfig.defaultOptions),\n queryCache: unreffedConfig.queryCache || new QueryCache(),\n mutationCache: unreffedConfig.mutationCache || new MutationCache()\n };\n super(vueQueryConfig);\n this.isRestoring = ref(false);\n }\n\n isFetching(arg1, arg2) {\n const arg1Unreffed = cloneDeepUnref(arg1);\n const arg2Unreffed = cloneDeepUnref(arg2);\n\n if (isQueryKey(arg1Unreffed)) {\n return super.isFetching(arg1Unreffed, arg2Unreffed);\n }\n\n return super.isFetching(arg1Unreffed);\n }\n\n isMutating(filters) {\n return super.isMutating(cloneDeepUnref(filters));\n }\n\n getQueryData(queryKey, filters) {\n return super.getQueryData(cloneDeepUnref(queryKey), cloneDeepUnref(filters));\n }\n\n getQueriesData(queryKeyOrFilters) {\n const unreffed = cloneDeepUnref(queryKeyOrFilters);\n\n if (isQueryKey(unreffed)) {\n return super.getQueriesData(unreffed);\n }\n\n return super.getQueriesData(unreffed);\n }\n\n setQueryData(queryKey, updater, options) {\n return super.setQueryData(cloneDeepUnref(queryKey), updater, cloneDeepUnref(options));\n }\n\n setQueriesData(queryKeyOrFilters, updater, options) {\n const arg1Unreffed = cloneDeepUnref(queryKeyOrFilters);\n const arg3Unreffed = cloneDeepUnref(options);\n\n if (isQueryKey(arg1Unreffed)) {\n return super.setQueriesData(arg1Unreffed, updater, arg3Unreffed);\n }\n\n return super.setQueriesData(arg1Unreffed, updater, arg3Unreffed);\n }\n\n getQueryState(queryKey, filters) {\n return super.getQueryState(cloneDeepUnref(queryKey), cloneDeepUnref(filters));\n }\n\n removeQueries(arg1, arg2) {\n const arg1Unreffed = cloneDeepUnref(arg1);\n\n if (isQueryKey(arg1Unreffed)) {\n return super.removeQueries(arg1Unreffed, cloneDeepUnref(arg2));\n }\n\n return super.removeQueries(arg1Unreffed);\n }\n\n resetQueries(arg1, arg2, arg3) {\n const arg1Unreffed = cloneDeepUnref(arg1);\n const arg2Unreffed = cloneDeepUnref(arg2);\n\n if (isQueryKey(arg1Unreffed)) {\n return super.resetQueries(arg1Unreffed, arg2Unreffed, cloneDeepUnref(arg3));\n }\n\n return super.resetQueries(arg1Unreffed, arg2Unreffed);\n }\n\n cancelQueries(arg1, arg2, arg3) {\n const arg1Unreffed = cloneDeepUnref(arg1);\n const arg2Unreffed = cloneDeepUnref(arg2);\n\n if (isQueryKey(arg1Unreffed)) {\n return super.cancelQueries(arg1Unreffed, arg2Unreffed, cloneDeepUnref(arg3));\n }\n\n return super.cancelQueries(arg1Unreffed, arg2Unreffed);\n }\n\n invalidateQueries(arg1, arg2, arg3) {\n const arg1Unreffed = cloneDeepUnref(arg1);\n const arg2Unreffed = cloneDeepUnref(arg2);\n\n if (isQueryKey(arg1Unreffed)) {\n return super.invalidateQueries(arg1Unreffed, arg2Unreffed, cloneDeepUnref(arg3));\n }\n\n return super.invalidateQueries(arg1Unreffed, arg2Unreffed);\n }\n\n refetchQueries(arg1, arg2, arg3) {\n const arg1Unreffed = cloneDeepUnref(arg1);\n const arg2Unreffed = cloneDeepUnref(arg2);\n\n if (isQueryKey(arg1Unreffed)) {\n return super.refetchQueries(arg1Unreffed, arg2Unreffed, cloneDeepUnref(arg3));\n }\n\n return super.refetchQueries(arg1Unreffed, arg2Unreffed);\n }\n\n fetchQuery(arg1, arg2, arg3) {\n const arg1Unreffed = cloneDeepUnref(arg1);\n const arg2Unreffed = cloneDeepUnref(arg2);\n\n if (isQueryKey(arg1Unreffed)) {\n return super.fetchQuery(arg1Unreffed, arg2Unreffed, cloneDeepUnref(arg3));\n }\n\n return super.fetchQuery(arg1Unreffed);\n }\n\n prefetchQuery(arg1, arg2, arg3) {\n return super.prefetchQuery(cloneDeepUnref(arg1), cloneDeepUnref(arg2), cloneDeepUnref(arg3));\n }\n\n fetchInfiniteQuery(arg1, arg2, arg3) {\n const arg1Unreffed = cloneDeepUnref(arg1);\n const arg2Unreffed = cloneDeepUnref(arg2);\n\n if (isQueryKey(arg1Unreffed)) {\n return super.fetchInfiniteQuery(arg1Unreffed, arg2Unreffed, cloneDeepUnref(arg3));\n }\n\n return super.fetchInfiniteQuery(arg1Unreffed);\n }\n\n prefetchInfiniteQuery(arg1, arg2, arg3) {\n return super.prefetchInfiniteQuery(cloneDeepUnref(arg1), cloneDeepUnref(arg2), cloneDeepUnref(arg3));\n }\n\n setDefaultOptions(options) {\n super.setDefaultOptions(cloneDeepUnref(options));\n }\n\n setQueryDefaults(queryKey, options) {\n super.setQueryDefaults(cloneDeepUnref(queryKey), cloneDeepUnref(options));\n }\n\n getQueryDefaults(queryKey) {\n return super.getQueryDefaults(cloneDeepUnref(queryKey));\n }\n\n setMutationDefaults(mutationKey, options) {\n super.setMutationDefaults(cloneDeepUnref(mutationKey), cloneDeepUnref(options));\n }\n\n getMutationDefaults(mutationKey) {\n return super.getMutationDefaults(cloneDeepUnref(mutationKey));\n }\n\n}\n\nexport { QueryClient };\n//# sourceMappingURL=queryClient.mjs.map\n","import { isVue2 } from 'vue-demi';\nimport { QueryClient } from './queryClient.mjs';\nimport { getClientKey } from './utils.mjs';\nimport { setupDevtools } from './devtools/devtools.mjs';\n\nconst VueQueryPlugin = {\n install: (app, options = {}) => {\n const clientKey = getClientKey(options.queryClientKey);\n let client;\n\n if ('queryClient' in options && options.queryClient) {\n client = options.queryClient;\n } else {\n if (options.contextSharing && typeof window !== 'undefined') {\n if (!window.__VUE_QUERY_CONTEXT__) {\n const clientConfig = 'queryClientConfig' in options ? options.queryClientConfig : undefined;\n client = new QueryClient(clientConfig);\n window.__VUE_QUERY_CONTEXT__ = client;\n } else {\n client = window.__VUE_QUERY_CONTEXT__;\n }\n } else {\n const clientConfig = 'queryClientConfig' in options ? options.queryClientConfig : undefined;\n client = new QueryClient(clientConfig);\n }\n }\n\n client.mount();\n\n let persisterUnmount = () => {// noop\n };\n\n if (options.clientPersister) {\n client.isRestoring.value = true;\n const [unmount, promise] = options.clientPersister(client);\n persisterUnmount = unmount;\n promise.then(() => {\n client.isRestoring.value = false;\n });\n }\n\n if (process.env.NODE_ENV !== 'production' && options.contextSharing) {\n client.getLogger().error(\"The contextSharing option has been deprecated and will be removed in the next major version\");\n }\n\n const cleanup = () => {\n client.unmount();\n persisterUnmount();\n };\n\n if (app.onUnmount) {\n app.onUnmount(cleanup);\n } else {\n const originalUnmount = app.unmount;\n\n app.unmount = function vueQueryUnmount() {\n cleanup();\n originalUnmount();\n };\n }\n /* istanbul ignore next */\n\n\n if (isVue2) {\n app.mixin({\n beforeCreate() {\n // HACK: taken from provide(): https://github.com/vuejs/composition-api/blob/master/src/apis/inject.ts#L30\n if (!this._provided) {\n const provideCache = {};\n Object.defineProperty(this, '_provided', {\n get: () => provideCache,\n set: v => Object.assign(provideCache, v)\n });\n }\n\n this._provided[clientKey] = client;\n\n if (process.env.NODE_ENV === 'development') {\n if (this === this.$root) {\n setupDevtools(this, client);\n }\n }\n }\n\n });\n } else {\n app.provide(clientKey, client);\n\n if (process.env.NODE_ENV === 'development') {\n setupDevtools(app, client);\n }\n }\n }\n};\n\nexport { VueQueryPlugin };\n//# sourceMappingURL=vueQueryPlugin.mjs.map\n","import * as Vue from 'vue'\n\nvar isVue2 = false\nvar isVue3 = true\nvar Vue2 = undefined\n\nfunction install() {}\n\nexport function set(target, key, val) {\n if (Array.isArray(target)) {\n target.length = Math.max(target.length, key)\n target.splice(key, 1, val)\n return val\n }\n target[key] = val\n return val\n}\n\nexport function del(target, key) {\n if (Array.isArray(target)) {\n target.splice(key, 1)\n return\n }\n delete target[key]\n}\n\nexport * from 'vue'\nexport {\n Vue,\n Vue2,\n isVue2,\n isVue3,\n install,\n}\n","import { shallowRef, watchEffect, readonly, ref, watch, customRef, getCurrentScope, onScopeDispose, effectScope, provide, inject, isVue3, version, isRef, unref, computed, reactive, toRefs as toRefs$1, toRef as toRef$1, isVue2, set as set$1, getCurrentInstance, onBeforeMount, nextTick, onBeforeUnmount, onMounted, onUnmounted, isReactive } from 'vue-demi';\n\nvar __defProp$b = Object.defineProperty;\nvar __defProps$8 = Object.defineProperties;\nvar __getOwnPropDescs$8 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$d = Object.getOwnPropertySymbols;\nvar __hasOwnProp$d = Object.prototype.hasOwnProperty;\nvar __propIsEnum$d = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$b = (obj, key, value) => key in obj ? __defProp$b(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$b = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$d.call(b, prop))\n __defNormalProp$b(a, prop, b[prop]);\n if (__getOwnPropSymbols$d)\n for (var prop of __getOwnPropSymbols$d(b)) {\n if (__propIsEnum$d.call(b, prop))\n __defNormalProp$b(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps$8 = (a, b) => __defProps$8(a, __getOwnPropDescs$8(b));\nfunction computedEager(fn, options) {\n var _a;\n const result = shallowRef();\n watchEffect(() => {\n result.value = fn();\n }, __spreadProps$8(__spreadValues$b({}, options), {\n flush: (_a = options == null ? void 0 : options.flush) != null ? _a : \"sync\"\n }));\n return readonly(result);\n}\n\nfunction computedWithControl(source, fn) {\n let v = void 0;\n let track;\n let trigger;\n const dirty = ref(true);\n const update = () => {\n dirty.value = true;\n trigger();\n };\n watch(source, update, { flush: \"sync\" });\n const get = typeof fn === \"function\" ? fn : fn.get;\n const set = typeof fn === \"function\" ? void 0 : fn.set;\n const result = customRef((_track, _trigger) => {\n track = _track;\n trigger = _trigger;\n return {\n get() {\n if (dirty.value) {\n v = get();\n dirty.value = false;\n }\n track();\n return v;\n },\n set(v2) {\n set == null ? void 0 : set(v2);\n }\n };\n });\n if (Object.isExtensible(result))\n result.trigger = update;\n return result;\n}\n\nfunction tryOnScopeDispose(fn) {\n if (getCurrentScope()) {\n onScopeDispose(fn);\n return true;\n }\n return false;\n}\n\nfunction createEventHook() {\n const fns = /* @__PURE__ */ new Set();\n const off = (fn) => {\n fns.delete(fn);\n };\n const on = (fn) => {\n fns.add(fn);\n const offFn = () => off(fn);\n tryOnScopeDispose(offFn);\n return {\n off: offFn\n };\n };\n const trigger = (param) => {\n return Promise.all(Array.from(fns).map((fn) => fn(param)));\n };\n return {\n on,\n off,\n trigger\n };\n}\n\nfunction createGlobalState(stateFactory) {\n let initialized = false;\n let state;\n const scope = effectScope(true);\n return (...args) => {\n if (!initialized) {\n state = scope.run(() => stateFactory(...args));\n initialized = true;\n }\n return state;\n };\n}\n\nfunction createInjectionState(composable) {\n const key = Symbol(\"InjectionState\");\n const useProvidingState = (...args) => {\n const state = composable(...args);\n provide(key, state);\n return state;\n };\n const useInjectedState = () => inject(key);\n return [useProvidingState, useInjectedState];\n}\n\nfunction createSharedComposable(composable) {\n let subscribers = 0;\n let state;\n let scope;\n const dispose = () => {\n subscribers -= 1;\n if (scope && subscribers <= 0) {\n scope.stop();\n state = void 0;\n scope = void 0;\n }\n };\n return (...args) => {\n subscribers += 1;\n if (!state) {\n scope = effectScope(true);\n state = scope.run(() => composable(...args));\n }\n tryOnScopeDispose(dispose);\n return state;\n };\n}\n\nfunction extendRef(ref, extend, { enumerable = false, unwrap = true } = {}) {\n if (!isVue3 && !version.startsWith(\"2.7.\")) {\n if (process.env.NODE_ENV !== \"production\")\n throw new Error(\"[VueUse] extendRef only works in Vue 2.7 or above.\");\n return;\n }\n for (const [key, value] of Object.entries(extend)) {\n if (key === \"value\")\n continue;\n if (isRef(value) && unwrap) {\n Object.defineProperty(ref, key, {\n get() {\n return value.value;\n },\n set(v) {\n value.value = v;\n },\n enumerable\n });\n } else {\n Object.defineProperty(ref, key, { value, enumerable });\n }\n }\n return ref;\n}\n\nfunction get(obj, key) {\n if (key == null)\n return unref(obj);\n return unref(obj)[key];\n}\n\nfunction isDefined(v) {\n return unref(v) != null;\n}\n\nvar __defProp$a = Object.defineProperty;\nvar __getOwnPropSymbols$c = Object.getOwnPropertySymbols;\nvar __hasOwnProp$c = Object.prototype.hasOwnProperty;\nvar __propIsEnum$c = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$a = (obj, key, value) => key in obj ? __defProp$a(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$a = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$c.call(b, prop))\n __defNormalProp$a(a, prop, b[prop]);\n if (__getOwnPropSymbols$c)\n for (var prop of __getOwnPropSymbols$c(b)) {\n if (__propIsEnum$c.call(b, prop))\n __defNormalProp$a(a, prop, b[prop]);\n }\n return a;\n};\nfunction makeDestructurable(obj, arr) {\n if (typeof Symbol !== \"undefined\") {\n const clone = __spreadValues$a({}, obj);\n Object.defineProperty(clone, Symbol.iterator, {\n enumerable: false,\n value() {\n let index = 0;\n return {\n next: () => ({\n value: arr[index++],\n done: index > arr.length\n })\n };\n }\n });\n return clone;\n } else {\n return Object.assign([...arr], obj);\n }\n}\n\nfunction toValue(r) {\n return typeof r === \"function\" ? r() : unref(r);\n}\nconst resolveUnref = toValue;\n\nfunction reactify(fn, options) {\n const unrefFn = (options == null ? void 0 : options.computedGetter) === false ? unref : toValue;\n return function(...args) {\n return computed(() => fn.apply(this, args.map((i) => unrefFn(i))));\n };\n}\n\nfunction reactifyObject(obj, optionsOrKeys = {}) {\n let keys = [];\n let options;\n if (Array.isArray(optionsOrKeys)) {\n keys = optionsOrKeys;\n } else {\n options = optionsOrKeys;\n const { includeOwnProperties = true } = optionsOrKeys;\n keys.push(...Object.keys(obj));\n if (includeOwnProperties)\n keys.push(...Object.getOwnPropertyNames(obj));\n }\n return Object.fromEntries(\n keys.map((key) => {\n const value = obj[key];\n return [\n key,\n typeof value === \"function\" ? reactify(value.bind(obj), options) : value\n ];\n })\n );\n}\n\nfunction toReactive(objectRef) {\n if (!isRef(objectRef))\n return reactive(objectRef);\n const proxy = new Proxy({}, {\n get(_, p, receiver) {\n return unref(Reflect.get(objectRef.value, p, receiver));\n },\n set(_, p, value) {\n if (isRef(objectRef.value[p]) && !isRef(value))\n objectRef.value[p].value = value;\n else\n objectRef.value[p] = value;\n return true;\n },\n deleteProperty(_, p) {\n return Reflect.deleteProperty(objectRef.value, p);\n },\n has(_, p) {\n return Reflect.has(objectRef.value, p);\n },\n ownKeys() {\n return Object.keys(objectRef.value);\n },\n getOwnPropertyDescriptor() {\n return {\n enumerable: true,\n configurable: true\n };\n }\n });\n return reactive(proxy);\n}\n\nfunction reactiveComputed(fn) {\n return toReactive(computed(fn));\n}\n\nfunction reactiveOmit(obj, ...keys) {\n const flatKeys = keys.flat();\n const predicate = flatKeys[0];\n return reactiveComputed(\n () => typeof predicate === \"function\" ? Object.fromEntries(Object.entries(toRefs$1(obj)).filter(([k, v]) => !predicate(toValue(v), k))) : Object.fromEntries(Object.entries(toRefs$1(obj)).filter((e) => !flatKeys.includes(e[0])))\n );\n}\n\nconst isClient = typeof window !== \"undefined\";\nconst isDef = (val) => typeof val !== \"undefined\";\nconst notNullish = (val) => val != null;\nconst assert = (condition, ...infos) => {\n if (!condition)\n console.warn(...infos);\n};\nconst toString = Object.prototype.toString;\nconst isObject = (val) => toString.call(val) === \"[object Object]\";\nconst now = () => Date.now();\nconst timestamp = () => +Date.now();\nconst clamp = (n, min, max) => Math.min(max, Math.max(min, n));\nconst noop = () => {\n};\nconst rand = (min, max) => {\n min = Math.ceil(min);\n max = Math.floor(max);\n return Math.floor(Math.random() * (max - min + 1)) + min;\n};\nconst hasOwn = (val, key) => Object.prototype.hasOwnProperty.call(val, key);\nconst isIOS = /* @__PURE__ */ getIsIOS();\nfunction getIsIOS() {\n var _a;\n return isClient && ((_a = window == null ? void 0 : window.navigator) == null ? void 0 : _a.userAgent) && /* @__PURE__ */ /iP(ad|hone|od)/.test(window.navigator.userAgent);\n}\n\nfunction createFilterWrapper(filter, fn) {\n function wrapper(...args) {\n return new Promise((resolve, reject) => {\n Promise.resolve(filter(() => fn.apply(this, args), { fn, thisArg: this, args })).then(resolve).catch(reject);\n });\n }\n return wrapper;\n}\nconst bypassFilter = (invoke) => {\n return invoke();\n};\nfunction debounceFilter(ms, options = {}) {\n let timer;\n let maxTimer;\n let lastRejector = noop;\n const _clearTimeout = (timer2) => {\n clearTimeout(timer2);\n lastRejector();\n lastRejector = noop;\n };\n const filter = (invoke) => {\n const duration = toValue(ms);\n const maxDuration = toValue(options.maxWait);\n if (timer)\n _clearTimeout(timer);\n if (duration <= 0 || maxDuration !== void 0 && maxDuration <= 0) {\n if (maxTimer) {\n _clearTimeout(maxTimer);\n maxTimer = null;\n }\n return Promise.resolve(invoke());\n }\n return new Promise((resolve, reject) => {\n lastRejector = options.rejectOnCancel ? reject : resolve;\n if (maxDuration && !maxTimer) {\n maxTimer = setTimeout(() => {\n if (timer)\n _clearTimeout(timer);\n maxTimer = null;\n resolve(invoke());\n }, maxDuration);\n }\n timer = setTimeout(() => {\n if (maxTimer)\n _clearTimeout(maxTimer);\n maxTimer = null;\n resolve(invoke());\n }, duration);\n });\n };\n return filter;\n}\nfunction throttleFilter(ms, trailing = true, leading = true, rejectOnCancel = false) {\n let lastExec = 0;\n let timer;\n let isLeading = true;\n let lastRejector = noop;\n let lastValue;\n const clear = () => {\n if (timer) {\n clearTimeout(timer);\n timer = void 0;\n lastRejector();\n lastRejector = noop;\n }\n };\n const filter = (_invoke) => {\n const duration = toValue(ms);\n const elapsed = Date.now() - lastExec;\n const invoke = () => {\n return lastValue = _invoke();\n };\n clear();\n if (duration <= 0) {\n lastExec = Date.now();\n return invoke();\n }\n if (elapsed > duration && (leading || !isLeading)) {\n lastExec = Date.now();\n invoke();\n } else if (trailing) {\n lastValue = new Promise((resolve, reject) => {\n lastRejector = rejectOnCancel ? reject : resolve;\n timer = setTimeout(() => {\n lastExec = Date.now();\n isLeading = true;\n resolve(invoke());\n clear();\n }, Math.max(0, duration - elapsed));\n });\n }\n if (!leading && !timer)\n timer = setTimeout(() => isLeading = true, duration);\n isLeading = false;\n return lastValue;\n };\n return filter;\n}\nfunction pausableFilter(extendFilter = bypassFilter) {\n const isActive = ref(true);\n function pause() {\n isActive.value = false;\n }\n function resume() {\n isActive.value = true;\n }\n const eventFilter = (...args) => {\n if (isActive.value)\n extendFilter(...args);\n };\n return { isActive: readonly(isActive), pause, resume, eventFilter };\n}\n\nconst directiveHooks = {\n mounted: isVue3 ? \"mounted\" : \"inserted\",\n updated: isVue3 ? \"updated\" : \"componentUpdated\",\n unmounted: isVue3 ? \"unmounted\" : \"unbind\"\n};\n\nfunction promiseTimeout(ms, throwOnTimeout = false, reason = \"Timeout\") {\n return new Promise((resolve, reject) => {\n if (throwOnTimeout)\n setTimeout(() => reject(reason), ms);\n else\n setTimeout(resolve, ms);\n });\n}\nfunction identity(arg) {\n return arg;\n}\nfunction createSingletonPromise(fn) {\n let _promise;\n function wrapper() {\n if (!_promise)\n _promise = fn();\n return _promise;\n }\n wrapper.reset = async () => {\n const _prev = _promise;\n _promise = void 0;\n if (_prev)\n await _prev;\n };\n return wrapper;\n}\nfunction invoke(fn) {\n return fn();\n}\nfunction containsProp(obj, ...props) {\n return props.some((k) => k in obj);\n}\nfunction increaseWithUnit(target, delta) {\n var _a;\n if (typeof target === \"number\")\n return target + delta;\n const value = ((_a = target.match(/^-?[0-9]+\\.?[0-9]*/)) == null ? void 0 : _a[0]) || \"\";\n const unit = target.slice(value.length);\n const result = parseFloat(value) + delta;\n if (Number.isNaN(result))\n return target;\n return result + unit;\n}\nfunction objectPick(obj, keys, omitUndefined = false) {\n return keys.reduce((n, k) => {\n if (k in obj) {\n if (!omitUndefined || obj[k] !== void 0)\n n[k] = obj[k];\n }\n return n;\n }, {});\n}\nfunction objectOmit(obj, keys, omitUndefined = false) {\n return Object.fromEntries(Object.entries(obj).filter(([key, value]) => {\n return (!omitUndefined || value !== void 0) && !keys.includes(key);\n }));\n}\nfunction objectEntries(obj) {\n return Object.entries(obj);\n}\n\nfunction toRef(...args) {\n if (args.length !== 1)\n return toRef$1(...args);\n const r = args[0];\n return typeof r === \"function\" ? readonly(customRef(() => ({ get: r, set: noop }))) : ref(r);\n}\nconst resolveRef = toRef;\n\nfunction reactivePick(obj, ...keys) {\n const flatKeys = keys.flat();\n const predicate = flatKeys[0];\n return reactiveComputed(() => typeof predicate === \"function\" ? Object.fromEntries(Object.entries(toRefs$1(obj)).filter(([k, v]) => predicate(toValue(v), k))) : Object.fromEntries(flatKeys.map((k) => [k, toRef(obj, k)])));\n}\n\nfunction refAutoReset(defaultValue, afterMs = 1e4) {\n return customRef((track, trigger) => {\n let value = defaultValue;\n let timer;\n const resetAfter = () => setTimeout(() => {\n value = defaultValue;\n trigger();\n }, toValue(afterMs));\n tryOnScopeDispose(() => {\n clearTimeout(timer);\n });\n return {\n get() {\n track();\n return value;\n },\n set(newValue) {\n value = newValue;\n trigger();\n clearTimeout(timer);\n timer = resetAfter();\n }\n };\n });\n}\n\nfunction useDebounceFn(fn, ms = 200, options = {}) {\n return createFilterWrapper(\n debounceFilter(ms, options),\n fn\n );\n}\n\nfunction refDebounced(value, ms = 200, options = {}) {\n const debounced = ref(value.value);\n const updater = useDebounceFn(() => {\n debounced.value = value.value;\n }, ms, options);\n watch(value, () => updater());\n return debounced;\n}\n\nfunction refDefault(source, defaultValue) {\n return computed({\n get() {\n var _a;\n return (_a = source.value) != null ? _a : defaultValue;\n },\n set(value) {\n source.value = value;\n }\n });\n}\n\nfunction useThrottleFn(fn, ms = 200, trailing = false, leading = true, rejectOnCancel = false) {\n return createFilterWrapper(\n throttleFilter(ms, trailing, leading, rejectOnCancel),\n fn\n );\n}\n\nfunction refThrottled(value, delay = 200, trailing = true, leading = true) {\n if (delay <= 0)\n return value;\n const throttled = ref(value.value);\n const updater = useThrottleFn(() => {\n throttled.value = value.value;\n }, delay, trailing, leading);\n watch(value, () => updater());\n return throttled;\n}\n\nfunction refWithControl(initial, options = {}) {\n let source = initial;\n let track;\n let trigger;\n const ref = customRef((_track, _trigger) => {\n track = _track;\n trigger = _trigger;\n return {\n get() {\n return get();\n },\n set(v) {\n set(v);\n }\n };\n });\n function get(tracking = true) {\n if (tracking)\n track();\n return source;\n }\n function set(value, triggering = true) {\n var _a, _b;\n if (value === source)\n return;\n const old = source;\n if (((_a = options.onBeforeChange) == null ? void 0 : _a.call(options, value, old)) === false)\n return;\n source = value;\n (_b = options.onChanged) == null ? void 0 : _b.call(options, value, old);\n if (triggering)\n trigger();\n }\n const untrackedGet = () => get(false);\n const silentSet = (v) => set(v, false);\n const peek = () => get(false);\n const lay = (v) => set(v, false);\n return extendRef(\n ref,\n {\n get,\n set,\n untrackedGet,\n silentSet,\n peek,\n lay\n },\n { enumerable: true }\n );\n}\nconst controlledRef = refWithControl;\n\nfunction set(...args) {\n if (args.length === 2) {\n const [ref, value] = args;\n ref.value = value;\n }\n if (args.length === 3) {\n if (isVue2) {\n set$1(...args);\n } else {\n const [target, key, value] = args;\n target[key] = value;\n }\n }\n}\n\nfunction syncRef(left, right, options = {}) {\n var _a, _b;\n const {\n flush = \"sync\",\n deep = false,\n immediate = true,\n direction = \"both\",\n transform = {}\n } = options;\n let watchLeft;\n let watchRight;\n const transformLTR = (_a = transform.ltr) != null ? _a : (v) => v;\n const transformRTL = (_b = transform.rtl) != null ? _b : (v) => v;\n if (direction === \"both\" || direction === \"ltr\") {\n watchLeft = watch(\n left,\n (newValue) => right.value = transformLTR(newValue),\n { flush, deep, immediate }\n );\n }\n if (direction === \"both\" || direction === \"rtl\") {\n watchRight = watch(\n right,\n (newValue) => left.value = transformRTL(newValue),\n { flush, deep, immediate }\n );\n }\n return () => {\n watchLeft == null ? void 0 : watchLeft();\n watchRight == null ? void 0 : watchRight();\n };\n}\n\nfunction syncRefs(source, targets, options = {}) {\n const {\n flush = \"sync\",\n deep = false,\n immediate = true\n } = options;\n if (!Array.isArray(targets))\n targets = [targets];\n return watch(\n source,\n (newValue) => targets.forEach((target) => target.value = newValue),\n { flush, deep, immediate }\n );\n}\n\nvar __defProp$9 = Object.defineProperty;\nvar __defProps$7 = Object.defineProperties;\nvar __getOwnPropDescs$7 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$b = Object.getOwnPropertySymbols;\nvar __hasOwnProp$b = Object.prototype.hasOwnProperty;\nvar __propIsEnum$b = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$9 = (obj, key, value) => key in obj ? __defProp$9(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$9 = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$b.call(b, prop))\n __defNormalProp$9(a, prop, b[prop]);\n if (__getOwnPropSymbols$b)\n for (var prop of __getOwnPropSymbols$b(b)) {\n if (__propIsEnum$b.call(b, prop))\n __defNormalProp$9(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps$7 = (a, b) => __defProps$7(a, __getOwnPropDescs$7(b));\nfunction toRefs(objectRef) {\n if (!isRef(objectRef))\n return toRefs$1(objectRef);\n const result = Array.isArray(objectRef.value) ? new Array(objectRef.value.length) : {};\n for (const key in objectRef.value) {\n result[key] = customRef(() => ({\n get() {\n return objectRef.value[key];\n },\n set(v) {\n if (Array.isArray(objectRef.value)) {\n const copy = [...objectRef.value];\n copy[key] = v;\n objectRef.value = copy;\n } else {\n const newObject = __spreadProps$7(__spreadValues$9({}, objectRef.value), { [key]: v });\n Object.setPrototypeOf(newObject, objectRef.value);\n objectRef.value = newObject;\n }\n }\n }));\n }\n return result;\n}\n\nfunction tryOnBeforeMount(fn, sync = true) {\n if (getCurrentInstance())\n onBeforeMount(fn);\n else if (sync)\n fn();\n else\n nextTick(fn);\n}\n\nfunction tryOnBeforeUnmount(fn) {\n if (getCurrentInstance())\n onBeforeUnmount(fn);\n}\n\nfunction tryOnMounted(fn, sync = true) {\n if (getCurrentInstance())\n onMounted(fn);\n else if (sync)\n fn();\n else\n nextTick(fn);\n}\n\nfunction tryOnUnmounted(fn) {\n if (getCurrentInstance())\n onUnmounted(fn);\n}\n\nfunction createUntil(r, isNot = false) {\n function toMatch(condition, { flush = \"sync\", deep = false, timeout, throwOnTimeout } = {}) {\n let stop = null;\n const watcher = new Promise((resolve) => {\n stop = watch(\n r,\n (v) => {\n if (condition(v) !== isNot) {\n stop == null ? void 0 : stop();\n resolve(v);\n }\n },\n {\n flush,\n deep,\n immediate: true\n }\n );\n });\n const promises = [watcher];\n if (timeout != null) {\n promises.push(\n promiseTimeout(timeout, throwOnTimeout).then(() => toValue(r)).finally(() => stop == null ? void 0 : stop())\n );\n }\n return Promise.race(promises);\n }\n function toBe(value, options) {\n if (!isRef(value))\n return toMatch((v) => v === value, options);\n const { flush = \"sync\", deep = false, timeout, throwOnTimeout } = options != null ? options : {};\n let stop = null;\n const watcher = new Promise((resolve) => {\n stop = watch(\n [r, value],\n ([v1, v2]) => {\n if (isNot !== (v1 === v2)) {\n stop == null ? void 0 : stop();\n resolve(v1);\n }\n },\n {\n flush,\n deep,\n immediate: true\n }\n );\n });\n const promises = [watcher];\n if (timeout != null) {\n promises.push(\n promiseTimeout(timeout, throwOnTimeout).then(() => toValue(r)).finally(() => {\n stop == null ? void 0 : stop();\n return toValue(r);\n })\n );\n }\n return Promise.race(promises);\n }\n function toBeTruthy(options) {\n return toMatch((v) => Boolean(v), options);\n }\n function toBeNull(options) {\n return toBe(null, options);\n }\n function toBeUndefined(options) {\n return toBe(void 0, options);\n }\n function toBeNaN(options) {\n return toMatch(Number.isNaN, options);\n }\n function toContains(value, options) {\n return toMatch((v) => {\n const array = Array.from(v);\n return array.includes(value) || array.includes(toValue(value));\n }, options);\n }\n function changed(options) {\n return changedTimes(1, options);\n }\n function changedTimes(n = 1, options) {\n let count = -1;\n return toMatch(() => {\n count += 1;\n return count >= n;\n }, options);\n }\n if (Array.isArray(toValue(r))) {\n const instance = {\n toMatch,\n toContains,\n changed,\n changedTimes,\n get not() {\n return createUntil(r, !isNot);\n }\n };\n return instance;\n } else {\n const instance = {\n toMatch,\n toBe,\n toBeTruthy,\n toBeNull,\n toBeNaN,\n toBeUndefined,\n changed,\n changedTimes,\n get not() {\n return createUntil(r, !isNot);\n }\n };\n return instance;\n }\n}\nfunction until(r) {\n return createUntil(r);\n}\n\nfunction defaultComparator(value, othVal) {\n return value === othVal;\n}\nfunction useArrayDifference(...args) {\n var _a;\n const list = args[0];\n const values = args[1];\n let compareFn = (_a = args[2]) != null ? _a : defaultComparator;\n if (typeof compareFn === \"string\") {\n const key = compareFn;\n compareFn = (value, othVal) => value[key] === othVal[key];\n }\n return computed(() => toValue(list).filter((x) => toValue(values).findIndex((y) => compareFn(x, y)) === -1));\n}\n\nfunction useArrayEvery(list, fn) {\n return computed(() => toValue(list).every((element, index, array) => fn(toValue(element), index, array)));\n}\n\nfunction useArrayFilter(list, fn) {\n return computed(() => toValue(list).map((i) => toValue(i)).filter(fn));\n}\n\nfunction useArrayFind(list, fn) {\n return computed(\n () => toValue(\n toValue(list).find((element, index, array) => fn(toValue(element), index, array))\n )\n );\n}\n\nfunction useArrayFindIndex(list, fn) {\n return computed(() => toValue(list).findIndex((element, index, array) => fn(toValue(element), index, array)));\n}\n\nfunction findLast(arr, cb) {\n let index = arr.length;\n while (index-- > 0) {\n if (cb(arr[index], index, arr))\n return arr[index];\n }\n return void 0;\n}\nfunction useArrayFindLast(list, fn) {\n return computed(\n () => toValue(\n !Array.prototype.findLast ? findLast(toValue(list), (element, index, array) => fn(toValue(element), index, array)) : toValue(list).findLast((element, index, array) => fn(toValue(element), index, array))\n )\n );\n}\n\nfunction isArrayIncludesOptions(obj) {\n return isObject(obj) && containsProp(obj, \"formIndex\", \"comparator\");\n}\nfunction useArrayIncludes(...args) {\n var _a;\n const list = args[0];\n const value = args[1];\n let comparator = args[2];\n let formIndex = 0;\n if (isArrayIncludesOptions(comparator)) {\n formIndex = (_a = comparator.fromIndex) != null ? _a : 0;\n comparator = comparator.comparator;\n }\n if (typeof comparator === \"string\") {\n const key = comparator;\n comparator = (element, value2) => element[key] === toValue(value2);\n }\n comparator = comparator != null ? comparator : (element, value2) => element === toValue(value2);\n return computed(\n () => toValue(list).slice(formIndex).some(\n (element, index, array) => comparator(toValue(element), toValue(value), index, toValue(array))\n )\n );\n}\n\nfunction useArrayJoin(list, separator) {\n return computed(() => toValue(list).map((i) => toValue(i)).join(toValue(separator)));\n}\n\nfunction useArrayMap(list, fn) {\n return computed(() => toValue(list).map((i) => toValue(i)).map(fn));\n}\n\nfunction useArrayReduce(list, reducer, ...args) {\n const reduceCallback = (sum, value, index) => reducer(toValue(sum), toValue(value), index);\n return computed(() => {\n const resolved = toValue(list);\n return args.length ? resolved.reduce(reduceCallback, toValue(args[0])) : resolved.reduce(reduceCallback);\n });\n}\n\nfunction useArraySome(list, fn) {\n return computed(() => toValue(list).some((element, index, array) => fn(toValue(element), index, array)));\n}\n\nfunction uniq(array) {\n return Array.from(new Set(array));\n}\nfunction uniqueElementsBy(array, fn) {\n return array.reduce((acc, v) => {\n if (!acc.some((x) => fn(v, x, array)))\n acc.push(v);\n return acc;\n }, []);\n}\nfunction useArrayUnique(list, compareFn) {\n return computed(() => {\n const resolvedList = toValue(list).map((element) => toValue(element));\n return compareFn ? uniqueElementsBy(resolvedList, compareFn) : uniq(resolvedList);\n });\n}\n\nfunction useCounter(initialValue = 0, options = {}) {\n const count = ref(initialValue);\n const {\n max = Infinity,\n min = -Infinity\n } = options;\n const inc = (delta = 1) => count.value = Math.min(max, count.value + delta);\n const dec = (delta = 1) => count.value = Math.max(min, count.value - delta);\n const get = () => count.value;\n const set = (val) => count.value = Math.max(min, Math.min(max, val));\n const reset = (val = initialValue) => {\n initialValue = val;\n return set(val);\n };\n return { count, inc, dec, get, set, reset };\n}\n\nconst REGEX_PARSE = /^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[Tt\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/;\nconst REGEX_FORMAT = /\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a{1,2}|A{1,2}|m{1,2}|s{1,2}|Z{1,2}|SSS/g;\nfunction defaultMeridiem(hours, minutes, isLowercase, hasPeriod) {\n let m = hours < 12 ? \"AM\" : \"PM\";\n if (hasPeriod)\n m = m.split(\"\").reduce((acc, curr) => acc += `${curr}.`, \"\");\n return isLowercase ? m.toLowerCase() : m;\n}\nfunction formatDate(date, formatStr, options = {}) {\n var _a;\n const years = date.getFullYear();\n const month = date.getMonth();\n const days = date.getDate();\n const hours = date.getHours();\n const minutes = date.getMinutes();\n const seconds = date.getSeconds();\n const milliseconds = date.getMilliseconds();\n const day = date.getDay();\n const meridiem = (_a = options.customMeridiem) != null ? _a : defaultMeridiem;\n const matches = {\n YY: () => String(years).slice(-2),\n YYYY: () => years,\n M: () => month + 1,\n MM: () => `${month + 1}`.padStart(2, \"0\"),\n MMM: () => date.toLocaleDateString(options.locales, { month: \"short\" }),\n MMMM: () => date.toLocaleDateString(options.locales, { month: \"long\" }),\n D: () => String(days),\n DD: () => `${days}`.padStart(2, \"0\"),\n H: () => String(hours),\n HH: () => `${hours}`.padStart(2, \"0\"),\n h: () => `${hours % 12 || 12}`.padStart(1, \"0\"),\n hh: () => `${hours % 12 || 12}`.padStart(2, \"0\"),\n m: () => String(minutes),\n mm: () => `${minutes}`.padStart(2, \"0\"),\n s: () => String(seconds),\n ss: () => `${seconds}`.padStart(2, \"0\"),\n SSS: () => `${milliseconds}`.padStart(3, \"0\"),\n d: () => day,\n dd: () => date.toLocaleDateString(options.locales, { weekday: \"narrow\" }),\n ddd: () => date.toLocaleDateString(options.locales, { weekday: \"short\" }),\n dddd: () => date.toLocaleDateString(options.locales, { weekday: \"long\" }),\n A: () => meridiem(hours, minutes),\n AA: () => meridiem(hours, minutes, false, true),\n a: () => meridiem(hours, minutes, true),\n aa: () => meridiem(hours, minutes, true, true)\n };\n return formatStr.replace(REGEX_FORMAT, (match, $1) => {\n var _a2;\n return $1 || ((_a2 = matches[match]) == null ? void 0 : _a2.call(matches)) || match;\n });\n}\nfunction normalizeDate(date) {\n if (date === null)\n return /* @__PURE__ */ new Date(NaN);\n if (date === void 0)\n return /* @__PURE__ */ new Date();\n if (date instanceof Date)\n return new Date(date);\n if (typeof date === \"string\" && !/Z$/i.test(date)) {\n const d = date.match(REGEX_PARSE);\n if (d) {\n const m = d[2] - 1 || 0;\n const ms = (d[7] || \"0\").substring(0, 3);\n return new Date(d[1], m, d[3] || 1, d[4] || 0, d[5] || 0, d[6] || 0, ms);\n }\n }\n return new Date(date);\n}\nfunction useDateFormat(date, formatStr = \"HH:mm:ss\", options = {}) {\n return computed(() => formatDate(normalizeDate(toValue(date)), toValue(formatStr), options));\n}\n\nfunction useIntervalFn(cb, interval = 1e3, options = {}) {\n const {\n immediate = true,\n immediateCallback = false\n } = options;\n let timer = null;\n const isActive = ref(false);\n function clean() {\n if (timer) {\n clearInterval(timer);\n timer = null;\n }\n }\n function pause() {\n isActive.value = false;\n clean();\n }\n function resume() {\n const intervalValue = toValue(interval);\n if (intervalValue <= 0)\n return;\n isActive.value = true;\n if (immediateCallback)\n cb();\n clean();\n timer = setInterval(cb, intervalValue);\n }\n if (immediate && isClient)\n resume();\n if (isRef(interval) || typeof interval === \"function\") {\n const stopWatch = watch(interval, () => {\n if (isActive.value && isClient)\n resume();\n });\n tryOnScopeDispose(stopWatch);\n }\n tryOnScopeDispose(pause);\n return {\n isActive,\n pause,\n resume\n };\n}\n\nvar __defProp$8 = Object.defineProperty;\nvar __getOwnPropSymbols$a = Object.getOwnPropertySymbols;\nvar __hasOwnProp$a = Object.prototype.hasOwnProperty;\nvar __propIsEnum$a = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$8 = (obj, key, value) => key in obj ? __defProp$8(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$8 = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$a.call(b, prop))\n __defNormalProp$8(a, prop, b[prop]);\n if (__getOwnPropSymbols$a)\n for (var prop of __getOwnPropSymbols$a(b)) {\n if (__propIsEnum$a.call(b, prop))\n __defNormalProp$8(a, prop, b[prop]);\n }\n return a;\n};\nfunction useInterval(interval = 1e3, options = {}) {\n const {\n controls: exposeControls = false,\n immediate = true,\n callback\n } = options;\n const counter = ref(0);\n const update = () => counter.value += 1;\n const reset = () => {\n counter.value = 0;\n };\n const controls = useIntervalFn(\n callback ? () => {\n update();\n callback(counter.value);\n } : update,\n interval,\n { immediate }\n );\n if (exposeControls) {\n return __spreadValues$8({\n counter,\n reset\n }, controls);\n } else {\n return counter;\n }\n}\n\nfunction useLastChanged(source, options = {}) {\n var _a;\n const ms = ref((_a = options.initialValue) != null ? _a : null);\n watch(\n source,\n () => ms.value = timestamp(),\n options\n );\n return ms;\n}\n\nfunction useTimeoutFn(cb, interval, options = {}) {\n const {\n immediate = true\n } = options;\n const isPending = ref(false);\n let timer = null;\n function clear() {\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n }\n function stop() {\n isPending.value = false;\n clear();\n }\n function start(...args) {\n clear();\n isPending.value = true;\n timer = setTimeout(() => {\n isPending.value = false;\n timer = null;\n cb(...args);\n }, toValue(interval));\n }\n if (immediate) {\n isPending.value = true;\n if (isClient)\n start();\n }\n tryOnScopeDispose(stop);\n return {\n isPending: readonly(isPending),\n start,\n stop\n };\n}\n\nvar __defProp$7 = Object.defineProperty;\nvar __getOwnPropSymbols$9 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$9 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$9 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$7 = (obj, key, value) => key in obj ? __defProp$7(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$7 = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$9.call(b, prop))\n __defNormalProp$7(a, prop, b[prop]);\n if (__getOwnPropSymbols$9)\n for (var prop of __getOwnPropSymbols$9(b)) {\n if (__propIsEnum$9.call(b, prop))\n __defNormalProp$7(a, prop, b[prop]);\n }\n return a;\n};\nfunction useTimeout(interval = 1e3, options = {}) {\n const {\n controls: exposeControls = false,\n callback\n } = options;\n const controls = useTimeoutFn(\n callback != null ? callback : noop,\n interval,\n options\n );\n const ready = computed(() => !controls.isPending.value);\n if (exposeControls) {\n return __spreadValues$7({\n ready\n }, controls);\n } else {\n return ready;\n }\n}\n\nfunction useToNumber(value, options = {}) {\n const {\n method = \"parseFloat\",\n radix,\n nanToZero\n } = options;\n return computed(() => {\n let resolved = toValue(value);\n if (typeof resolved === \"string\")\n resolved = Number[method](resolved, radix);\n if (nanToZero && isNaN(resolved))\n resolved = 0;\n return resolved;\n });\n}\n\nfunction useToString(value) {\n return computed(() => `${toValue(value)}`);\n}\n\nfunction useToggle(initialValue = false, options = {}) {\n const {\n truthyValue = true,\n falsyValue = false\n } = options;\n const valueIsRef = isRef(initialValue);\n const _value = ref(initialValue);\n function toggle(value) {\n if (arguments.length) {\n _value.value = value;\n return _value.value;\n } else {\n const truthy = toValue(truthyValue);\n _value.value = _value.value === truthy ? toValue(falsyValue) : truthy;\n return _value.value;\n }\n }\n if (valueIsRef)\n return toggle;\n else\n return [_value, toggle];\n}\n\nfunction watchArray(source, cb, options) {\n let oldList = (options == null ? void 0 : options.immediate) ? [] : [\n ...source instanceof Function ? source() : Array.isArray(source) ? source : toValue(source)\n ];\n return watch(source, (newList, _, onCleanup) => {\n const oldListRemains = new Array(oldList.length);\n const added = [];\n for (const obj of newList) {\n let found = false;\n for (let i = 0; i < oldList.length; i++) {\n if (!oldListRemains[i] && obj === oldList[i]) {\n oldListRemains[i] = true;\n found = true;\n break;\n }\n }\n if (!found)\n added.push(obj);\n }\n const removed = oldList.filter((_2, i) => !oldListRemains[i]);\n cb(newList, oldList, added, removed, onCleanup);\n oldList = [...newList];\n }, options);\n}\n\nvar __getOwnPropSymbols$8 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$8 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$8 = Object.prototype.propertyIsEnumerable;\nvar __objRest$5 = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp$8.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols$8)\n for (var prop of __getOwnPropSymbols$8(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum$8.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nfunction watchWithFilter(source, cb, options = {}) {\n const _a = options, {\n eventFilter = bypassFilter\n } = _a, watchOptions = __objRest$5(_a, [\n \"eventFilter\"\n ]);\n return watch(\n source,\n createFilterWrapper(\n eventFilter,\n cb\n ),\n watchOptions\n );\n}\n\nvar __getOwnPropSymbols$7 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$7 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$7 = Object.prototype.propertyIsEnumerable;\nvar __objRest$4 = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp$7.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols$7)\n for (var prop of __getOwnPropSymbols$7(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum$7.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nfunction watchAtMost(source, cb, options) {\n const _a = options, {\n count\n } = _a, watchOptions = __objRest$4(_a, [\n \"count\"\n ]);\n const current = ref(0);\n const stop = watchWithFilter(\n source,\n (...args) => {\n current.value += 1;\n if (current.value >= toValue(count))\n nextTick(() => stop());\n cb(...args);\n },\n watchOptions\n );\n return { count: current, stop };\n}\n\nvar __defProp$6 = Object.defineProperty;\nvar __defProps$6 = Object.defineProperties;\nvar __getOwnPropDescs$6 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$6 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$6 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$6 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$6 = (obj, key, value) => key in obj ? __defProp$6(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$6 = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$6.call(b, prop))\n __defNormalProp$6(a, prop, b[prop]);\n if (__getOwnPropSymbols$6)\n for (var prop of __getOwnPropSymbols$6(b)) {\n if (__propIsEnum$6.call(b, prop))\n __defNormalProp$6(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps$6 = (a, b) => __defProps$6(a, __getOwnPropDescs$6(b));\nvar __objRest$3 = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp$6.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols$6)\n for (var prop of __getOwnPropSymbols$6(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum$6.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nfunction watchDebounced(source, cb, options = {}) {\n const _a = options, {\n debounce = 0,\n maxWait = void 0\n } = _a, watchOptions = __objRest$3(_a, [\n \"debounce\",\n \"maxWait\"\n ]);\n return watchWithFilter(\n source,\n cb,\n __spreadProps$6(__spreadValues$6({}, watchOptions), {\n eventFilter: debounceFilter(debounce, { maxWait })\n })\n );\n}\n\nvar __defProp$5 = Object.defineProperty;\nvar __defProps$5 = Object.defineProperties;\nvar __getOwnPropDescs$5 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$5 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$5 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$5 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$5 = (obj, key, value) => key in obj ? __defProp$5(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$5 = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$5.call(b, prop))\n __defNormalProp$5(a, prop, b[prop]);\n if (__getOwnPropSymbols$5)\n for (var prop of __getOwnPropSymbols$5(b)) {\n if (__propIsEnum$5.call(b, prop))\n __defNormalProp$5(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps$5 = (a, b) => __defProps$5(a, __getOwnPropDescs$5(b));\nfunction watchDeep(source, cb, options) {\n return watch(\n source,\n cb,\n __spreadProps$5(__spreadValues$5({}, options), {\n deep: true\n })\n );\n}\n\nvar __defProp$4 = Object.defineProperty;\nvar __defProps$4 = Object.defineProperties;\nvar __getOwnPropDescs$4 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$4 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$4 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$4 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$4 = (obj, key, value) => key in obj ? __defProp$4(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$4 = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$4.call(b, prop))\n __defNormalProp$4(a, prop, b[prop]);\n if (__getOwnPropSymbols$4)\n for (var prop of __getOwnPropSymbols$4(b)) {\n if (__propIsEnum$4.call(b, prop))\n __defNormalProp$4(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps$4 = (a, b) => __defProps$4(a, __getOwnPropDescs$4(b));\nvar __objRest$2 = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp$4.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols$4)\n for (var prop of __getOwnPropSymbols$4(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum$4.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nfunction watchIgnorable(source, cb, options = {}) {\n const _a = options, {\n eventFilter = bypassFilter\n } = _a, watchOptions = __objRest$2(_a, [\n \"eventFilter\"\n ]);\n const filteredCb = createFilterWrapper(\n eventFilter,\n cb\n );\n let ignoreUpdates;\n let ignorePrevAsyncUpdates;\n let stop;\n if (watchOptions.flush === \"sync\") {\n const ignore = ref(false);\n ignorePrevAsyncUpdates = () => {\n };\n ignoreUpdates = (updater) => {\n ignore.value = true;\n updater();\n ignore.value = false;\n };\n stop = watch(\n source,\n (...args) => {\n if (!ignore.value)\n filteredCb(...args);\n },\n watchOptions\n );\n } else {\n const disposables = [];\n const ignoreCounter = ref(0);\n const syncCounter = ref(0);\n ignorePrevAsyncUpdates = () => {\n ignoreCounter.value = syncCounter.value;\n };\n disposables.push(\n watch(\n source,\n () => {\n syncCounter.value++;\n },\n __spreadProps$4(__spreadValues$4({}, watchOptions), { flush: \"sync\" })\n )\n );\n ignoreUpdates = (updater) => {\n const syncCounterPrev = syncCounter.value;\n updater();\n ignoreCounter.value += syncCounter.value - syncCounterPrev;\n };\n disposables.push(\n watch(\n source,\n (...args) => {\n const ignore = ignoreCounter.value > 0 && ignoreCounter.value === syncCounter.value;\n ignoreCounter.value = 0;\n syncCounter.value = 0;\n if (ignore)\n return;\n filteredCb(...args);\n },\n watchOptions\n )\n );\n stop = () => {\n disposables.forEach((fn) => fn());\n };\n }\n return { stop, ignoreUpdates, ignorePrevAsyncUpdates };\n}\n\nvar __defProp$3 = Object.defineProperty;\nvar __defProps$3 = Object.defineProperties;\nvar __getOwnPropDescs$3 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$3 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$3 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$3 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$3 = (obj, key, value) => key in obj ? __defProp$3(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$3 = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$3.call(b, prop))\n __defNormalProp$3(a, prop, b[prop]);\n if (__getOwnPropSymbols$3)\n for (var prop of __getOwnPropSymbols$3(b)) {\n if (__propIsEnum$3.call(b, prop))\n __defNormalProp$3(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps$3 = (a, b) => __defProps$3(a, __getOwnPropDescs$3(b));\nfunction watchImmediate(source, cb, options) {\n return watch(\n source,\n cb,\n __spreadProps$3(__spreadValues$3({}, options), {\n immediate: true\n })\n );\n}\n\nfunction watchOnce(source, cb, options) {\n const stop = watch(source, (...args) => {\n nextTick(() => stop());\n return cb(...args);\n }, options);\n}\n\nvar __defProp$2 = Object.defineProperty;\nvar __defProps$2 = Object.defineProperties;\nvar __getOwnPropDescs$2 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$2 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$2 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$2 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$2 = (obj, key, value) => key in obj ? __defProp$2(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$2 = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$2.call(b, prop))\n __defNormalProp$2(a, prop, b[prop]);\n if (__getOwnPropSymbols$2)\n for (var prop of __getOwnPropSymbols$2(b)) {\n if (__propIsEnum$2.call(b, prop))\n __defNormalProp$2(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps$2 = (a, b) => __defProps$2(a, __getOwnPropDescs$2(b));\nvar __objRest$1 = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp$2.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols$2)\n for (var prop of __getOwnPropSymbols$2(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum$2.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nfunction watchPausable(source, cb, options = {}) {\n const _a = options, {\n eventFilter: filter\n } = _a, watchOptions = __objRest$1(_a, [\n \"eventFilter\"\n ]);\n const { eventFilter, pause, resume, isActive } = pausableFilter(filter);\n const stop = watchWithFilter(\n source,\n cb,\n __spreadProps$2(__spreadValues$2({}, watchOptions), {\n eventFilter\n })\n );\n return { stop, pause, resume, isActive };\n}\n\nvar __defProp$1 = Object.defineProperty;\nvar __defProps$1 = Object.defineProperties;\nvar __getOwnPropDescs$1 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$1 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$1 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$1 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$1 = (obj, key, value) => key in obj ? __defProp$1(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$1 = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$1.call(b, prop))\n __defNormalProp$1(a, prop, b[prop]);\n if (__getOwnPropSymbols$1)\n for (var prop of __getOwnPropSymbols$1(b)) {\n if (__propIsEnum$1.call(b, prop))\n __defNormalProp$1(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps$1 = (a, b) => __defProps$1(a, __getOwnPropDescs$1(b));\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp$1.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols$1)\n for (var prop of __getOwnPropSymbols$1(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum$1.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nfunction watchThrottled(source, cb, options = {}) {\n const _a = options, {\n throttle = 0,\n trailing = true,\n leading = true\n } = _a, watchOptions = __objRest(_a, [\n \"throttle\",\n \"trailing\",\n \"leading\"\n ]);\n return watchWithFilter(\n source,\n cb,\n __spreadProps$1(__spreadValues$1({}, watchOptions), {\n eventFilter: throttleFilter(throttle, trailing, leading)\n })\n );\n}\n\nvar __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nfunction watchTriggerable(source, cb, options = {}) {\n let cleanupFn;\n function onEffect() {\n if (!cleanupFn)\n return;\n const fn = cleanupFn;\n cleanupFn = void 0;\n fn();\n }\n function onCleanup(callback) {\n cleanupFn = callback;\n }\n const _cb = (value, oldValue) => {\n onEffect();\n return cb(value, oldValue, onCleanup);\n };\n const res = watchIgnorable(source, _cb, options);\n const { ignoreUpdates } = res;\n const trigger = () => {\n let res2;\n ignoreUpdates(() => {\n res2 = _cb(getWatchSources(source), getOldValue(source));\n });\n return res2;\n };\n return __spreadProps(__spreadValues({}, res), {\n trigger\n });\n}\nfunction getWatchSources(sources) {\n if (isReactive(sources))\n return sources;\n if (Array.isArray(sources))\n return sources.map((item) => toValue(item));\n return toValue(sources);\n}\nfunction getOldValue(source) {\n return Array.isArray(source) ? source.map(() => void 0) : void 0;\n}\n\nfunction whenever(source, cb, options) {\n return watch(\n source,\n (v, ov, onInvalidate) => {\n if (v)\n cb(v, ov, onInvalidate);\n },\n options\n );\n}\n\nexport { assert, refAutoReset as autoResetRef, bypassFilter, clamp, computedEager, computedWithControl, containsProp, computedWithControl as controlledComputed, controlledRef, createEventHook, createFilterWrapper, createGlobalState, createInjectionState, reactify as createReactiveFn, createSharedComposable, createSingletonPromise, debounceFilter, refDebounced as debouncedRef, watchDebounced as debouncedWatch, directiveHooks, computedEager as eagerComputed, extendRef, formatDate, get, hasOwn, identity, watchIgnorable as ignorableWatch, increaseWithUnit, invoke, isClient, isDef, isDefined, isIOS, isObject, makeDestructurable, noop, normalizeDate, notNullish, now, objectEntries, objectOmit, objectPick, pausableFilter, watchPausable as pausableWatch, promiseTimeout, rand, reactify, reactifyObject, reactiveComputed, reactiveOmit, reactivePick, refAutoReset, refDebounced, refDefault, refThrottled, refWithControl, resolveRef, resolveUnref, set, syncRef, syncRefs, throttleFilter, refThrottled as throttledRef, watchThrottled as throttledWatch, timestamp, toReactive, toRef, toRefs, toValue, tryOnBeforeMount, tryOnBeforeUnmount, tryOnMounted, tryOnScopeDispose, tryOnUnmounted, until, useArrayDifference, useArrayEvery, useArrayFilter, useArrayFind, useArrayFindIndex, useArrayFindLast, useArrayIncludes, useArrayJoin, useArrayMap, useArrayReduce, useArraySome, useArrayUnique, useCounter, useDateFormat, refDebounced as useDebounce, useDebounceFn, useInterval, useIntervalFn, useLastChanged, refThrottled as useThrottle, useThrottleFn, useTimeout, useTimeoutFn, useToNumber, useToString, useToggle, watchArray, watchAtMost, watchDebounced, watchDeep, watchIgnorable, watchImmediate, watchOnce, watchPausable, watchThrottled, watchTriggerable, watchWithFilter, whenever };\n","import { noop, makeDestructurable, toValue, isClient, tryOnScopeDispose, isIOS, tryOnMounted, computedWithControl, isObject, objectOmit, promiseTimeout, until, toRef, increaseWithUnit, objectEntries, useTimeoutFn, pausableWatch, createEventHook, timestamp, pausableFilter, watchIgnorable, debounceFilter, createFilterWrapper, bypassFilter, createSingletonPromise, toRefs, notNullish, containsProp, hasOwn, throttleFilter, useDebounceFn, useThrottleFn, useIntervalFn, clamp, syncRef, objectPick, tryOnUnmounted, watchWithFilter, identity, isDef } from '@vueuse/shared';\nexport * from '@vueuse/shared';\nimport { isRef, ref, shallowRef, watchEffect, computed, inject, isVue3, version, defineComponent, h, TransitionGroup, shallowReactive, Fragment, watch, getCurrentInstance, customRef, onUpdated, onMounted, readonly, nextTick, reactive, markRaw, getCurrentScope, isVue2, set, del, isReadonly, onBeforeUpdate } from 'vue-demi';\n\nfunction computedAsync(evaluationCallback, initialState, optionsOrRef) {\n let options;\n if (isRef(optionsOrRef)) {\n options = {\n evaluating: optionsOrRef\n };\n } else {\n options = optionsOrRef || {};\n }\n const {\n lazy = false,\n evaluating = void 0,\n shallow = true,\n onError = noop\n } = options;\n const started = ref(!lazy);\n const current = shallow ? shallowRef(initialState) : ref(initialState);\n let counter = 0;\n watchEffect(async (onInvalidate) => {\n if (!started.value)\n return;\n counter++;\n const counterAtBeginning = counter;\n let hasFinished = false;\n if (evaluating) {\n Promise.resolve().then(() => {\n evaluating.value = true;\n });\n }\n try {\n const result = await evaluationCallback((cancelCallback) => {\n onInvalidate(() => {\n if (evaluating)\n evaluating.value = false;\n if (!hasFinished)\n cancelCallback();\n });\n });\n if (counterAtBeginning === counter)\n current.value = result;\n } catch (e) {\n onError(e);\n } finally {\n if (evaluating && counterAtBeginning === counter)\n evaluating.value = false;\n hasFinished = true;\n }\n });\n if (lazy) {\n return computed(() => {\n started.value = true;\n return current.value;\n });\n } else {\n return current;\n }\n}\n\nfunction computedInject(key, options, defaultSource, treatDefaultAsFactory) {\n let source = inject(key);\n if (defaultSource)\n source = inject(key, defaultSource);\n if (treatDefaultAsFactory)\n source = inject(key, defaultSource, treatDefaultAsFactory);\n if (typeof options === \"function\") {\n return computed((ctx) => options(source, ctx));\n } else {\n return computed({\n get: (ctx) => options.get(source, ctx),\n set: options.set\n });\n }\n}\n\nvar __defProp$p = Object.defineProperty;\nvar __defProps$c = Object.defineProperties;\nvar __getOwnPropDescs$c = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$s = Object.getOwnPropertySymbols;\nvar __hasOwnProp$s = Object.prototype.hasOwnProperty;\nvar __propIsEnum$s = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$p = (obj, key, value) => key in obj ? __defProp$p(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$p = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$s.call(b, prop))\n __defNormalProp$p(a, prop, b[prop]);\n if (__getOwnPropSymbols$s)\n for (var prop of __getOwnPropSymbols$s(b)) {\n if (__propIsEnum$s.call(b, prop))\n __defNormalProp$p(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps$c = (a, b) => __defProps$c(a, __getOwnPropDescs$c(b));\nfunction createReusableTemplate() {\n if (!isVue3 && !version.startsWith(\"2.7.\")) {\n if (process.env.NODE_ENV !== \"production\")\n throw new Error(\"[VueUse] createReusableTemplate only works in Vue 2.7 or above.\");\n return;\n }\n const render = shallowRef();\n const define = /* #__PURE__ */ defineComponent({\n setup(_, { slots }) {\n return () => {\n render.value = slots.default;\n };\n }\n });\n const reuse = /* #__PURE__ */ defineComponent({\n inheritAttrs: false,\n setup(_, { attrs, slots }) {\n return () => {\n var _a;\n if (!render.value && process.env.NODE_ENV !== \"production\")\n throw new Error(\"[VueUse] Failed to find the definition of reusable template\");\n return (_a = render.value) == null ? void 0 : _a.call(render, __spreadProps$c(__spreadValues$p({}, attrs), { $slots: slots }));\n };\n }\n });\n return makeDestructurable(\n { define, reuse },\n [define, reuse]\n );\n}\n\nfunction createTemplatePromise(options = {}) {\n if (!isVue3) {\n if (process.env.NODE_ENV !== \"production\")\n throw new Error(\"[VueUse] createTemplatePromise only works in Vue 3 or above.\");\n return;\n }\n let index = 0;\n const instances = ref([]);\n function create(...args) {\n const props = shallowReactive({\n key: index++,\n args,\n promise: void 0,\n resolve: () => {\n },\n reject: () => {\n },\n isResolving: false,\n options\n });\n instances.value.push(props);\n props.promise = new Promise((_resolve, _reject) => {\n props.resolve = (v) => {\n props.isResolving = true;\n return _resolve(v);\n };\n props.reject = _reject;\n }).finally(() => {\n props.promise = void 0;\n const index2 = instances.value.indexOf(props);\n if (index2 !== -1)\n instances.value.splice(index2, 1);\n });\n return props.promise;\n }\n function start(...args) {\n if (options.singleton && instances.value.length > 0)\n return instances.value[0].promise;\n return create(...args);\n }\n const component = /* #__PURE__ */ defineComponent((_, { slots }) => {\n const renderList = () => instances.value.map((props) => {\n var _a;\n return h(Fragment, { key: props.key }, (_a = slots.default) == null ? void 0 : _a.call(slots, props));\n });\n if (options.transition)\n return () => h(TransitionGroup, options.transition, renderList);\n return renderList;\n });\n component.start = start;\n return component;\n}\n\nfunction createUnrefFn(fn) {\n return function(...args) {\n return fn.apply(this, args.map((i) => toValue(i)));\n };\n}\n\nfunction unrefElement(elRef) {\n var _a;\n const plain = toValue(elRef);\n return (_a = plain == null ? void 0 : plain.$el) != null ? _a : plain;\n}\n\nconst defaultWindow = isClient ? window : void 0;\nconst defaultDocument = isClient ? window.document : void 0;\nconst defaultNavigator = isClient ? window.navigator : void 0;\nconst defaultLocation = isClient ? window.location : void 0;\n\nfunction useEventListener(...args) {\n let target;\n let events;\n let listeners;\n let options;\n if (typeof args[0] === \"string\" || Array.isArray(args[0])) {\n [events, listeners, options] = args;\n target = defaultWindow;\n } else {\n [target, events, listeners, options] = args;\n }\n if (!target)\n return noop;\n if (!Array.isArray(events))\n events = [events];\n if (!Array.isArray(listeners))\n listeners = [listeners];\n const cleanups = [];\n const cleanup = () => {\n cleanups.forEach((fn) => fn());\n cleanups.length = 0;\n };\n const register = (el, event, listener, options2) => {\n el.addEventListener(event, listener, options2);\n return () => el.removeEventListener(event, listener, options2);\n };\n const stopWatch = watch(\n () => [unrefElement(target), toValue(options)],\n ([el, options2]) => {\n cleanup();\n if (!el)\n return;\n cleanups.push(\n ...events.flatMap((event) => {\n return listeners.map((listener) => register(el, event, listener, options2));\n })\n );\n },\n { immediate: true, flush: \"post\" }\n );\n const stop = () => {\n stopWatch();\n cleanup();\n };\n tryOnScopeDispose(stop);\n return stop;\n}\n\nlet _iOSWorkaround = false;\nfunction onClickOutside(target, handler, options = {}) {\n const { window = defaultWindow, ignore = [], capture = true, detectIframe = false } = options;\n if (!window)\n return;\n if (isIOS && !_iOSWorkaround) {\n _iOSWorkaround = true;\n Array.from(window.document.body.children).forEach((el) => el.addEventListener(\"click\", noop));\n }\n let shouldListen = true;\n const shouldIgnore = (event) => {\n return ignore.some((target2) => {\n if (typeof target2 === \"string\") {\n return Array.from(window.document.querySelectorAll(target2)).some((el) => el === event.target || event.composedPath().includes(el));\n } else {\n const el = unrefElement(target2);\n return el && (event.target === el || event.composedPath().includes(el));\n }\n });\n };\n const listener = (event) => {\n const el = unrefElement(target);\n if (!el || el === event.target || event.composedPath().includes(el))\n return;\n if (event.detail === 0)\n shouldListen = !shouldIgnore(event);\n if (!shouldListen) {\n shouldListen = true;\n return;\n }\n handler(event);\n };\n const cleanup = [\n useEventListener(window, \"click\", listener, { passive: true, capture }),\n useEventListener(window, \"pointerdown\", (e) => {\n const el = unrefElement(target);\n if (el)\n shouldListen = !e.composedPath().includes(el) && !shouldIgnore(e);\n }, { passive: true }),\n detectIframe && useEventListener(window, \"blur\", (event) => {\n var _a;\n const el = unrefElement(target);\n if (((_a = window.document.activeElement) == null ? void 0 : _a.tagName) === \"IFRAME\" && !(el == null ? void 0 : el.contains(window.document.activeElement)))\n handler(event);\n })\n ].filter(Boolean);\n const stop = () => cleanup.forEach((fn) => fn());\n return stop;\n}\n\nvar __defProp$o = Object.defineProperty;\nvar __defProps$b = Object.defineProperties;\nvar __getOwnPropDescs$b = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$r = Object.getOwnPropertySymbols;\nvar __hasOwnProp$r = Object.prototype.hasOwnProperty;\nvar __propIsEnum$r = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$o = (obj, key, value) => key in obj ? __defProp$o(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$o = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$r.call(b, prop))\n __defNormalProp$o(a, prop, b[prop]);\n if (__getOwnPropSymbols$r)\n for (var prop of __getOwnPropSymbols$r(b)) {\n if (__propIsEnum$r.call(b, prop))\n __defNormalProp$o(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps$b = (a, b) => __defProps$b(a, __getOwnPropDescs$b(b));\nfunction createKeyPredicate(keyFilter) {\n if (typeof keyFilter === \"function\")\n return keyFilter;\n else if (typeof keyFilter === \"string\")\n return (event) => event.key === keyFilter;\n else if (Array.isArray(keyFilter))\n return (event) => keyFilter.includes(event.key);\n return () => true;\n}\nfunction onKeyStroke(...args) {\n let key;\n let handler;\n let options = {};\n if (args.length === 3) {\n key = args[0];\n handler = args[1];\n options = args[2];\n } else if (args.length === 2) {\n if (typeof args[1] === \"object\") {\n key = true;\n handler = args[0];\n options = args[1];\n } else {\n key = args[0];\n handler = args[1];\n }\n } else {\n key = true;\n handler = args[0];\n }\n const {\n target = defaultWindow,\n eventName = \"keydown\",\n passive = false,\n dedupe = false\n } = options;\n const predicate = createKeyPredicate(key);\n const listener = (e) => {\n if (e.repeat && toValue(dedupe))\n return;\n if (predicate(e))\n handler(e);\n };\n return useEventListener(target, eventName, listener, passive);\n}\nfunction onKeyDown(key, handler, options = {}) {\n return onKeyStroke(key, handler, __spreadProps$b(__spreadValues$o({}, options), { eventName: \"keydown\" }));\n}\nfunction onKeyPressed(key, handler, options = {}) {\n return onKeyStroke(key, handler, __spreadProps$b(__spreadValues$o({}, options), { eventName: \"keypress\" }));\n}\nfunction onKeyUp(key, handler, options = {}) {\n return onKeyStroke(key, handler, __spreadProps$b(__spreadValues$o({}, options), { eventName: \"keyup\" }));\n}\n\nconst DEFAULT_DELAY = 500;\nfunction onLongPress(target, handler, options) {\n var _a, _b;\n const elementRef = computed(() => unrefElement(target));\n let timeout;\n function clear() {\n if (timeout) {\n clearTimeout(timeout);\n timeout = void 0;\n }\n }\n function onDown(ev) {\n var _a2, _b2, _c, _d;\n if (((_a2 = options == null ? void 0 : options.modifiers) == null ? void 0 : _a2.self) && ev.target !== elementRef.value)\n return;\n clear();\n if ((_b2 = options == null ? void 0 : options.modifiers) == null ? void 0 : _b2.prevent)\n ev.preventDefault();\n if ((_c = options == null ? void 0 : options.modifiers) == null ? void 0 : _c.stop)\n ev.stopPropagation();\n timeout = setTimeout(\n () => handler(ev),\n (_d = options == null ? void 0 : options.delay) != null ? _d : DEFAULT_DELAY\n );\n }\n const listenerOptions = {\n capture: (_a = options == null ? void 0 : options.modifiers) == null ? void 0 : _a.capture,\n once: (_b = options == null ? void 0 : options.modifiers) == null ? void 0 : _b.once\n };\n useEventListener(elementRef, \"pointerdown\", onDown, listenerOptions);\n useEventListener(elementRef, \"pointerup\", clear, listenerOptions);\n useEventListener(elementRef, \"pointerleave\", clear, listenerOptions);\n}\n\nfunction isFocusedElementEditable() {\n const { activeElement, body } = document;\n if (!activeElement)\n return false;\n if (activeElement === body)\n return false;\n switch (activeElement.tagName) {\n case \"INPUT\":\n case \"TEXTAREA\":\n return true;\n }\n return activeElement.hasAttribute(\"contenteditable\");\n}\nfunction isTypedCharValid({\n keyCode,\n metaKey,\n ctrlKey,\n altKey\n}) {\n if (metaKey || ctrlKey || altKey)\n return false;\n if (keyCode >= 48 && keyCode <= 57)\n return true;\n if (keyCode >= 65 && keyCode <= 90)\n return true;\n if (keyCode >= 97 && keyCode <= 122)\n return true;\n return false;\n}\nfunction onStartTyping(callback, options = {}) {\n const { document: document2 = defaultDocument } = options;\n const keydown = (event) => {\n !isFocusedElementEditable() && isTypedCharValid(event) && callback(event);\n };\n if (document2)\n useEventListener(document2, \"keydown\", keydown, { passive: true });\n}\n\nfunction templateRef(key, initialValue = null) {\n const instance = getCurrentInstance();\n let _trigger = () => {\n };\n const element = customRef((track, trigger) => {\n _trigger = trigger;\n return {\n get() {\n var _a, _b;\n track();\n return (_b = (_a = instance == null ? void 0 : instance.proxy) == null ? void 0 : _a.$refs[key]) != null ? _b : initialValue;\n },\n set() {\n }\n };\n });\n tryOnMounted(_trigger);\n onUpdated(_trigger);\n return element;\n}\n\nfunction useActiveElement(options = {}) {\n var _a;\n const { window = defaultWindow } = options;\n const document = (_a = options.document) != null ? _a : window == null ? void 0 : window.document;\n const activeElement = computedWithControl(\n () => null,\n () => document == null ? void 0 : document.activeElement\n );\n if (window) {\n useEventListener(window, \"blur\", (event) => {\n if (event.relatedTarget !== null)\n return;\n activeElement.trigger();\n }, true);\n useEventListener(window, \"focus\", activeElement.trigger, true);\n }\n return activeElement;\n}\n\nfunction useMounted() {\n const isMounted = ref(false);\n if (getCurrentInstance()) {\n onMounted(() => {\n isMounted.value = true;\n });\n }\n return isMounted;\n}\n\nfunction useSupported(callback) {\n const isMounted = useMounted();\n return computed(() => {\n isMounted.value;\n return Boolean(callback());\n });\n}\n\nfunction useRafFn(fn, options = {}) {\n const {\n immediate = true,\n window = defaultWindow\n } = options;\n const isActive = ref(false);\n let previousFrameTimestamp = 0;\n let rafId = null;\n function loop(timestamp) {\n if (!isActive.value || !window)\n return;\n const delta = timestamp - previousFrameTimestamp;\n fn({ delta, timestamp });\n previousFrameTimestamp = timestamp;\n rafId = window.requestAnimationFrame(loop);\n }\n function resume() {\n if (!isActive.value && window) {\n isActive.value = true;\n rafId = window.requestAnimationFrame(loop);\n }\n }\n function pause() {\n isActive.value = false;\n if (rafId != null && window) {\n window.cancelAnimationFrame(rafId);\n rafId = null;\n }\n }\n if (immediate)\n resume();\n tryOnScopeDispose(pause);\n return {\n isActive: readonly(isActive),\n pause,\n resume\n };\n}\n\nfunction useAnimate(target, keyframes, options) {\n let config;\n let animateOptions;\n if (isObject(options)) {\n config = options;\n animateOptions = objectOmit(options, [\"window\", \"immediate\", \"commitStyles\", \"persist\", \"onReady\", \"onError\"]);\n } else {\n config = { duration: options };\n animateOptions = options;\n }\n const {\n window = defaultWindow,\n immediate = true,\n commitStyles,\n persist,\n playbackRate: _playbackRate = 1,\n onReady,\n onError = (e) => {\n console.error(e);\n }\n } = config;\n const isSupported = useSupported(() => window && HTMLElement && \"animate\" in HTMLElement.prototype);\n const animate = shallowRef(void 0);\n const store = shallowReactive({\n startTime: null,\n currentTime: null,\n timeline: null,\n playbackRate: _playbackRate,\n pending: false,\n playState: immediate ? \"idle\" : \"paused\",\n replaceState: \"active\"\n });\n const pending = computed(() => store.pending);\n const playState = computed(() => store.playState);\n const replaceState = computed(() => store.replaceState);\n const startTime = computed({\n get() {\n return store.startTime;\n },\n set(value) {\n store.startTime = value;\n if (animate.value)\n animate.value.startTime = value;\n }\n });\n const currentTime = computed({\n get() {\n return store.currentTime;\n },\n set(value) {\n store.currentTime = value;\n if (animate.value) {\n animate.value.currentTime = value;\n syncResume();\n }\n }\n });\n const timeline = computed({\n get() {\n return store.timeline;\n },\n set(value) {\n store.timeline = value;\n if (animate.value)\n animate.value.timeline = value;\n }\n });\n const playbackRate = computed({\n get() {\n return store.playbackRate;\n },\n set(value) {\n store.playbackRate = value;\n if (animate.value)\n animate.value.playbackRate = value;\n }\n });\n const play = () => {\n if (animate.value) {\n try {\n animate.value.play();\n syncResume();\n } catch (e) {\n syncPause();\n onError(e);\n }\n } else {\n update();\n }\n };\n const pause = () => {\n var _a;\n try {\n (_a = animate.value) == null ? void 0 : _a.pause();\n syncPause();\n } catch (e) {\n onError(e);\n }\n };\n const reverse = () => {\n var _a;\n !animate.value && update();\n try {\n (_a = animate.value) == null ? void 0 : _a.reverse();\n syncResume();\n } catch (e) {\n syncPause();\n onError(e);\n }\n };\n const finish = () => {\n var _a;\n try {\n (_a = animate.value) == null ? void 0 : _a.finish();\n syncPause();\n } catch (e) {\n onError(e);\n }\n };\n const cancel = () => {\n var _a;\n try {\n (_a = animate.value) == null ? void 0 : _a.cancel();\n syncPause();\n } catch (e) {\n onError(e);\n }\n };\n watch(() => unrefElement(target), (el) => {\n el && update();\n });\n watch(() => keyframes, (value) => {\n !animate.value && update();\n if (!unrefElement(target) && animate.value) {\n animate.value.effect = new KeyframeEffect(\n unrefElement(target),\n toValue(value),\n animateOptions\n );\n }\n }, { deep: true });\n tryOnMounted(() => {\n nextTick(() => update(true));\n });\n tryOnScopeDispose(cancel);\n function update(init) {\n const el = unrefElement(target);\n if (!isSupported.value || !el)\n return;\n animate.value = el.animate(toValue(keyframes), animateOptions);\n if (commitStyles)\n animate.value.commitStyles();\n if (persist)\n animate.value.persist();\n if (_playbackRate !== 1)\n animate.value.playbackRate = _playbackRate;\n if (init && !immediate)\n animate.value.pause();\n else\n syncResume();\n onReady == null ? void 0 : onReady(animate.value);\n }\n useEventListener(animate, \"cancel\", syncPause);\n useEventListener(animate, \"finish\", syncPause);\n useEventListener(animate, \"remove\", syncPause);\n const { resume: resumeRef, pause: pauseRef } = useRafFn(() => {\n if (!animate.value)\n return;\n store.pending = animate.value.pending;\n store.playState = animate.value.playState;\n store.replaceState = animate.value.replaceState;\n store.startTime = animate.value.startTime;\n store.currentTime = animate.value.currentTime;\n store.timeline = animate.value.timeline;\n store.playbackRate = animate.value.playbackRate;\n }, { immediate: false });\n function syncResume() {\n if (isSupported.value)\n resumeRef();\n }\n function syncPause() {\n if (isSupported.value && window)\n window.requestAnimationFrame(pauseRef);\n }\n return {\n isSupported,\n animate,\n // actions\n play,\n pause,\n reverse,\n finish,\n cancel,\n // state\n pending,\n playState,\n replaceState,\n startTime,\n currentTime,\n timeline,\n playbackRate\n };\n}\n\nfunction useAsyncQueue(tasks, options = {}) {\n const {\n interrupt = true,\n onError = noop,\n onFinished = noop\n } = options;\n const promiseState = {\n pending: \"pending\",\n rejected: \"rejected\",\n fulfilled: \"fulfilled\"\n };\n const initialResult = Array.from(new Array(tasks.length), () => ({ state: promiseState.pending, data: null }));\n const result = reactive(initialResult);\n const activeIndex = ref(-1);\n if (!tasks || tasks.length === 0) {\n onFinished();\n return {\n activeIndex,\n result\n };\n }\n function updateResult(state, res) {\n activeIndex.value++;\n result[activeIndex.value].data = res;\n result[activeIndex.value].state = state;\n }\n tasks.reduce((prev, curr) => {\n return prev.then((prevRes) => {\n var _a;\n if (((_a = result[activeIndex.value]) == null ? void 0 : _a.state) === promiseState.rejected && interrupt) {\n onFinished();\n return;\n }\n return curr(prevRes).then((currentRes) => {\n updateResult(promiseState.fulfilled, currentRes);\n activeIndex.value === tasks.length - 1 && onFinished();\n return currentRes;\n });\n }).catch((e) => {\n updateResult(promiseState.rejected, e);\n onError();\n return e;\n });\n }, Promise.resolve());\n return {\n activeIndex,\n result\n };\n}\n\nvar __defProp$n = Object.defineProperty;\nvar __defProps$a = Object.defineProperties;\nvar __getOwnPropDescs$a = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$q = Object.getOwnPropertySymbols;\nvar __hasOwnProp$q = Object.prototype.hasOwnProperty;\nvar __propIsEnum$q = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$n = (obj, key, value) => key in obj ? __defProp$n(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$n = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$q.call(b, prop))\n __defNormalProp$n(a, prop, b[prop]);\n if (__getOwnPropSymbols$q)\n for (var prop of __getOwnPropSymbols$q(b)) {\n if (__propIsEnum$q.call(b, prop))\n __defNormalProp$n(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps$a = (a, b) => __defProps$a(a, __getOwnPropDescs$a(b));\nfunction useAsyncState(promise, initialState, options) {\n const {\n immediate = true,\n delay = 0,\n onError = noop,\n onSuccess = noop,\n resetOnExecute = true,\n shallow = true,\n throwError\n } = options != null ? options : {};\n const state = shallow ? shallowRef(initialState) : ref(initialState);\n const isReady = ref(false);\n const isLoading = ref(false);\n const error = shallowRef(void 0);\n async function execute(delay2 = 0, ...args) {\n if (resetOnExecute)\n state.value = initialState;\n error.value = void 0;\n isReady.value = false;\n isLoading.value = true;\n if (delay2 > 0)\n await promiseTimeout(delay2);\n const _promise = typeof promise === \"function\" ? promise(...args) : promise;\n try {\n const data = await _promise;\n state.value = data;\n isReady.value = true;\n onSuccess(data);\n } catch (e) {\n error.value = e;\n onError(e);\n if (throwError)\n throw e;\n } finally {\n isLoading.value = false;\n }\n return state.value;\n }\n if (immediate)\n execute(delay);\n const shell = {\n state,\n isReady,\n isLoading,\n error,\n execute\n };\n function waitUntilIsLoaded() {\n return new Promise((resolve, reject) => {\n until(isLoading).toBe(false).then(() => resolve(shell)).catch(reject);\n });\n }\n return __spreadProps$a(__spreadValues$n({}, shell), {\n then(onFulfilled, onRejected) {\n return waitUntilIsLoaded().then(onFulfilled, onRejected);\n }\n });\n}\n\nconst defaults = {\n array: (v) => JSON.stringify(v),\n object: (v) => JSON.stringify(v),\n set: (v) => JSON.stringify(Array.from(v)),\n map: (v) => JSON.stringify(Object.fromEntries(v)),\n null: () => \"\"\n};\nfunction getDefaultSerialization(target) {\n if (!target)\n return defaults.null;\n if (target instanceof Map)\n return defaults.map;\n else if (target instanceof Set)\n return defaults.set;\n else if (Array.isArray(target))\n return defaults.array;\n else\n return defaults.object;\n}\n\nfunction useBase64(target, options) {\n const base64 = ref(\"\");\n const promise = ref();\n function execute() {\n if (!isClient)\n return;\n promise.value = new Promise((resolve, reject) => {\n try {\n const _target = toValue(target);\n if (_target == null) {\n resolve(\"\");\n } else if (typeof _target === \"string\") {\n resolve(blobToBase64(new Blob([_target], { type: \"text/plain\" })));\n } else if (_target instanceof Blob) {\n resolve(blobToBase64(_target));\n } else if (_target instanceof ArrayBuffer) {\n resolve(window.btoa(String.fromCharCode(...new Uint8Array(_target))));\n } else if (_target instanceof HTMLCanvasElement) {\n resolve(_target.toDataURL(options == null ? void 0 : options.type, options == null ? void 0 : options.quality));\n } else if (_target instanceof HTMLImageElement) {\n const img = _target.cloneNode(false);\n img.crossOrigin = \"Anonymous\";\n imgLoaded(img).then(() => {\n const canvas = document.createElement(\"canvas\");\n const ctx = canvas.getContext(\"2d\");\n canvas.width = img.width;\n canvas.height = img.height;\n ctx.drawImage(img, 0, 0, canvas.width, canvas.height);\n resolve(canvas.toDataURL(options == null ? void 0 : options.type, options == null ? void 0 : options.quality));\n }).catch(reject);\n } else if (typeof _target === \"object\") {\n const _serializeFn = (options == null ? void 0 : options.serializer) || getDefaultSerialization(_target);\n const serialized = _serializeFn(_target);\n return resolve(blobToBase64(new Blob([serialized], { type: \"application/json\" })));\n } else {\n reject(new Error(\"target is unsupported types\"));\n }\n } catch (error) {\n reject(error);\n }\n });\n promise.value.then((res) => base64.value = res);\n return promise.value;\n }\n if (isRef(target) || typeof target === \"function\")\n watch(target, execute, { immediate: true });\n else\n execute();\n return {\n base64,\n promise,\n execute\n };\n}\nfunction imgLoaded(img) {\n return new Promise((resolve, reject) => {\n if (!img.complete) {\n img.onload = () => {\n resolve();\n };\n img.onerror = reject;\n } else {\n resolve();\n }\n });\n}\nfunction blobToBase64(blob) {\n return new Promise((resolve, reject) => {\n const fr = new FileReader();\n fr.onload = (e) => {\n resolve(e.target.result);\n };\n fr.onerror = reject;\n fr.readAsDataURL(blob);\n });\n}\n\nfunction useBattery({ navigator = defaultNavigator } = {}) {\n const events = [\"chargingchange\", \"chargingtimechange\", \"dischargingtimechange\", \"levelchange\"];\n const isSupported = useSupported(() => navigator && \"getBattery\" in navigator);\n const charging = ref(false);\n const chargingTime = ref(0);\n const dischargingTime = ref(0);\n const level = ref(1);\n let battery;\n function updateBatteryInfo() {\n charging.value = this.charging;\n chargingTime.value = this.chargingTime || 0;\n dischargingTime.value = this.dischargingTime || 0;\n level.value = this.level;\n }\n if (isSupported.value) {\n navigator.getBattery().then((_battery) => {\n battery = _battery;\n updateBatteryInfo.call(battery);\n for (const event of events)\n useEventListener(battery, event, updateBatteryInfo, { passive: true });\n });\n }\n return {\n isSupported,\n charging,\n chargingTime,\n dischargingTime,\n level\n };\n}\n\nfunction useBluetooth(options) {\n let {\n acceptAllDevices = false\n } = options || {};\n const {\n filters = void 0,\n optionalServices = void 0,\n navigator = defaultNavigator\n } = options || {};\n const isSupported = useSupported(() => navigator && \"bluetooth\" in navigator);\n const device = shallowRef(void 0);\n const error = shallowRef(null);\n watch(device, () => {\n connectToBluetoothGATTServer();\n });\n async function requestDevice() {\n if (!isSupported.value)\n return;\n error.value = null;\n if (filters && filters.length > 0)\n acceptAllDevices = false;\n try {\n device.value = await (navigator == null ? void 0 : navigator.bluetooth.requestDevice({\n acceptAllDevices,\n filters,\n optionalServices\n }));\n } catch (err) {\n error.value = err;\n }\n }\n const server = ref();\n const isConnected = computed(() => {\n var _a;\n return ((_a = server.value) == null ? void 0 : _a.connected) || false;\n });\n async function connectToBluetoothGATTServer() {\n error.value = null;\n if (device.value && device.value.gatt) {\n device.value.addEventListener(\"gattserverdisconnected\", () => {\n });\n try {\n server.value = await device.value.gatt.connect();\n } catch (err) {\n error.value = err;\n }\n }\n }\n tryOnMounted(() => {\n var _a;\n if (device.value)\n (_a = device.value.gatt) == null ? void 0 : _a.connect();\n });\n tryOnScopeDispose(() => {\n var _a;\n if (device.value)\n (_a = device.value.gatt) == null ? void 0 : _a.disconnect();\n });\n return {\n isSupported,\n isConnected,\n // Device:\n device,\n requestDevice,\n // Server:\n server,\n // Errors:\n error\n };\n}\n\nfunction useMediaQuery(query, options = {}) {\n const { window = defaultWindow } = options;\n const isSupported = useSupported(() => window && \"matchMedia\" in window && typeof window.matchMedia === \"function\");\n let mediaQuery;\n const matches = ref(false);\n const cleanup = () => {\n if (!mediaQuery)\n return;\n if (\"removeEventListener\" in mediaQuery)\n mediaQuery.removeEventListener(\"change\", update);\n else\n mediaQuery.removeListener(update);\n };\n const update = () => {\n if (!isSupported.value)\n return;\n cleanup();\n mediaQuery = window.matchMedia(toRef(query).value);\n matches.value = !!(mediaQuery == null ? void 0 : mediaQuery.matches);\n if (!mediaQuery)\n return;\n if (\"addEventListener\" in mediaQuery)\n mediaQuery.addEventListener(\"change\", update);\n else\n mediaQuery.addListener(update);\n };\n watchEffect(update);\n tryOnScopeDispose(() => cleanup());\n return matches;\n}\n\nconst breakpointsTailwind = {\n \"sm\": 640,\n \"md\": 768,\n \"lg\": 1024,\n \"xl\": 1280,\n \"2xl\": 1536\n};\nconst breakpointsBootstrapV5 = {\n sm: 576,\n md: 768,\n lg: 992,\n xl: 1200,\n xxl: 1400\n};\nconst breakpointsVuetify = {\n xs: 600,\n sm: 960,\n md: 1264,\n lg: 1904\n};\nconst breakpointsAntDesign = {\n xs: 480,\n sm: 576,\n md: 768,\n lg: 992,\n xl: 1200,\n xxl: 1600\n};\nconst breakpointsQuasar = {\n xs: 600,\n sm: 1024,\n md: 1440,\n lg: 1920\n};\nconst breakpointsSematic = {\n mobileS: 320,\n mobileM: 375,\n mobileL: 425,\n tablet: 768,\n laptop: 1024,\n laptopL: 1440,\n desktop4K: 2560\n};\nconst breakpointsMasterCss = {\n \"3xs\": 360,\n \"2xs\": 480,\n \"xs\": 600,\n \"sm\": 768,\n \"md\": 1024,\n \"lg\": 1280,\n \"xl\": 1440,\n \"2xl\": 1600,\n \"3xl\": 1920,\n \"4xl\": 2560\n};\n\nfunction useBreakpoints(breakpoints, options = {}) {\n function getValue(k, delta) {\n let v = breakpoints[k];\n if (delta != null)\n v = increaseWithUnit(v, delta);\n if (typeof v === \"number\")\n v = `${v}px`;\n return v;\n }\n const { window = defaultWindow } = options;\n function match(query) {\n if (!window)\n return false;\n return window.matchMedia(query).matches;\n }\n const greaterOrEqual = (k) => {\n return useMediaQuery(`(min-width: ${getValue(k)})`, options);\n };\n const shortcutMethods = Object.keys(breakpoints).reduce((shortcuts, k) => {\n Object.defineProperty(shortcuts, k, {\n get: () => greaterOrEqual(k),\n enumerable: true,\n configurable: true\n });\n return shortcuts;\n }, {});\n return Object.assign(shortcutMethods, {\n greater(k) {\n return useMediaQuery(`(min-width: ${getValue(k, 0.1)})`, options);\n },\n greaterOrEqual,\n smaller(k) {\n return useMediaQuery(`(max-width: ${getValue(k, -0.1)})`, options);\n },\n smallerOrEqual(k) {\n return useMediaQuery(`(max-width: ${getValue(k)})`, options);\n },\n between(a, b) {\n return useMediaQuery(`(min-width: ${getValue(a)}) and (max-width: ${getValue(b, -0.1)})`, options);\n },\n isGreater(k) {\n return match(`(min-width: ${getValue(k, 0.1)})`);\n },\n isGreaterOrEqual(k) {\n return match(`(min-width: ${getValue(k)})`);\n },\n isSmaller(k) {\n return match(`(max-width: ${getValue(k, -0.1)})`);\n },\n isSmallerOrEqual(k) {\n return match(`(max-width: ${getValue(k)})`);\n },\n isInBetween(a, b) {\n return match(`(min-width: ${getValue(a)}) and (max-width: ${getValue(b, -0.1)})`);\n },\n current() {\n const points = Object.keys(breakpoints).map((i) => [i, greaterOrEqual(i)]);\n return computed(() => points.filter(([, v]) => v.value).map(([k]) => k));\n }\n });\n}\n\nfunction useBroadcastChannel(options) {\n const {\n name,\n window = defaultWindow\n } = options;\n const isSupported = useSupported(() => window && \"BroadcastChannel\" in window);\n const isClosed = ref(false);\n const channel = ref();\n const data = ref();\n const error = shallowRef(null);\n const post = (data2) => {\n if (channel.value)\n channel.value.postMessage(data2);\n };\n const close = () => {\n if (channel.value)\n channel.value.close();\n isClosed.value = true;\n };\n if (isSupported.value) {\n tryOnMounted(() => {\n error.value = null;\n channel.value = new BroadcastChannel(name);\n channel.value.addEventListener(\"message\", (e) => {\n data.value = e.data;\n }, { passive: true });\n channel.value.addEventListener(\"messageerror\", (e) => {\n error.value = e;\n }, { passive: true });\n channel.value.addEventListener(\"close\", () => {\n isClosed.value = true;\n });\n });\n }\n tryOnScopeDispose(() => {\n close();\n });\n return {\n isSupported,\n channel,\n data,\n post,\n close,\n error,\n isClosed\n };\n}\n\nvar __defProp$m = Object.defineProperty;\nvar __getOwnPropSymbols$p = Object.getOwnPropertySymbols;\nvar __hasOwnProp$p = Object.prototype.hasOwnProperty;\nvar __propIsEnum$p = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$m = (obj, key, value) => key in obj ? __defProp$m(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$m = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$p.call(b, prop))\n __defNormalProp$m(a, prop, b[prop]);\n if (__getOwnPropSymbols$p)\n for (var prop of __getOwnPropSymbols$p(b)) {\n if (__propIsEnum$p.call(b, prop))\n __defNormalProp$m(a, prop, b[prop]);\n }\n return a;\n};\nconst WRITABLE_PROPERTIES = [\n \"hash\",\n \"host\",\n \"hostname\",\n \"href\",\n \"pathname\",\n \"port\",\n \"protocol\",\n \"search\"\n];\nfunction useBrowserLocation({ window = defaultWindow } = {}) {\n const refs = Object.fromEntries(\n WRITABLE_PROPERTIES.map((key) => [key, ref()])\n );\n for (const [key, ref2] of objectEntries(refs)) {\n watch(ref2, (value) => {\n if (!(window == null ? void 0 : window.location) || window.location[key] === value)\n return;\n window.location[key] = value;\n });\n }\n const buildState = (trigger) => {\n var _a;\n const { state: state2, length } = (window == null ? void 0 : window.history) || {};\n const { origin } = (window == null ? void 0 : window.location) || {};\n for (const key of WRITABLE_PROPERTIES)\n refs[key].value = (_a = window == null ? void 0 : window.location) == null ? void 0 : _a[key];\n return reactive(__spreadValues$m({\n trigger,\n state: state2,\n length,\n origin\n }, refs));\n };\n const state = ref(buildState(\"load\"));\n if (window) {\n useEventListener(window, \"popstate\", () => state.value = buildState(\"popstate\"), { passive: true });\n useEventListener(window, \"hashchange\", () => state.value = buildState(\"hashchange\"), { passive: true });\n }\n return state;\n}\n\nfunction useCached(refValue, comparator = (a, b) => a === b, watchOptions) {\n const cachedValue = ref(refValue.value);\n watch(() => refValue.value, (value) => {\n if (!comparator(value, cachedValue.value))\n cachedValue.value = value;\n }, watchOptions);\n return cachedValue;\n}\n\nfunction useClipboard(options = {}) {\n const {\n navigator = defaultNavigator,\n read = false,\n source,\n copiedDuring = 1500,\n legacy = false\n } = options;\n const events = [\"copy\", \"cut\"];\n const isClipboardApiSupported = useSupported(() => navigator && \"clipboard\" in navigator);\n const isSupported = computed(() => isClipboardApiSupported.value || legacy);\n const text = ref(\"\");\n const copied = ref(false);\n const timeout = useTimeoutFn(() => copied.value = false, copiedDuring);\n function updateText() {\n if (isClipboardApiSupported.value) {\n navigator.clipboard.readText().then((value) => {\n text.value = value;\n });\n } else {\n text.value = legacyRead();\n }\n }\n if (isSupported.value && read) {\n for (const event of events)\n useEventListener(event, updateText);\n }\n async function copy(value = toValue(source)) {\n if (isSupported.value && value != null) {\n if (isClipboardApiSupported.value)\n await navigator.clipboard.writeText(value);\n else\n legacyCopy(value);\n text.value = value;\n copied.value = true;\n timeout.start();\n }\n }\n function legacyCopy(value) {\n const ta = document.createElement(\"textarea\");\n ta.value = value != null ? value : \"\";\n ta.style.position = \"absolute\";\n ta.style.opacity = \"0\";\n document.body.appendChild(ta);\n ta.select();\n document.execCommand(\"copy\");\n ta.remove();\n }\n function legacyRead() {\n var _a, _b, _c;\n return (_c = (_b = (_a = document == null ? void 0 : document.getSelection) == null ? void 0 : _a.call(document)) == null ? void 0 : _b.toString()) != null ? _c : \"\";\n }\n return {\n isSupported,\n text,\n copied,\n copy\n };\n}\n\nvar __defProp$l = Object.defineProperty;\nvar __defProps$9 = Object.defineProperties;\nvar __getOwnPropDescs$9 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$o = Object.getOwnPropertySymbols;\nvar __hasOwnProp$o = Object.prototype.hasOwnProperty;\nvar __propIsEnum$o = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$l = (obj, key, value) => key in obj ? __defProp$l(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$l = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$o.call(b, prop))\n __defNormalProp$l(a, prop, b[prop]);\n if (__getOwnPropSymbols$o)\n for (var prop of __getOwnPropSymbols$o(b)) {\n if (__propIsEnum$o.call(b, prop))\n __defNormalProp$l(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps$9 = (a, b) => __defProps$9(a, __getOwnPropDescs$9(b));\nfunction cloneFnJSON(source) {\n return JSON.parse(JSON.stringify(source));\n}\nfunction useCloned(source, options = {}) {\n const cloned = ref({});\n const {\n manual,\n clone = cloneFnJSON,\n // watch options\n deep = true,\n immediate = true\n } = options;\n function sync() {\n cloned.value = clone(toValue(source));\n }\n if (!manual && isRef(source)) {\n watch(source, sync, __spreadProps$9(__spreadValues$l({}, options), {\n deep,\n immediate\n }));\n } else {\n sync();\n }\n return { cloned, sync };\n}\n\nconst _global = typeof globalThis !== \"undefined\" ? globalThis : typeof window !== \"undefined\" ? window : typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : {};\nconst globalKey = \"__vueuse_ssr_handlers__\";\nconst handlers = /* @__PURE__ */ getHandlers();\nfunction getHandlers() {\n if (!(globalKey in _global))\n _global[globalKey] = _global[globalKey] || {};\n return _global[globalKey];\n}\nfunction getSSRHandler(key, fallback) {\n return handlers[key] || fallback;\n}\nfunction setSSRHandler(key, fn) {\n handlers[key] = fn;\n}\n\nfunction guessSerializerType(rawInit) {\n return rawInit == null ? \"any\" : rawInit instanceof Set ? \"set\" : rawInit instanceof Map ? \"map\" : rawInit instanceof Date ? \"date\" : typeof rawInit === \"boolean\" ? \"boolean\" : typeof rawInit === \"string\" ? \"string\" : typeof rawInit === \"object\" ? \"object\" : !Number.isNaN(rawInit) ? \"number\" : \"any\";\n}\n\nvar __defProp$k = Object.defineProperty;\nvar __getOwnPropSymbols$n = Object.getOwnPropertySymbols;\nvar __hasOwnProp$n = Object.prototype.hasOwnProperty;\nvar __propIsEnum$n = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$k = (obj, key, value) => key in obj ? __defProp$k(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$k = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$n.call(b, prop))\n __defNormalProp$k(a, prop, b[prop]);\n if (__getOwnPropSymbols$n)\n for (var prop of __getOwnPropSymbols$n(b)) {\n if (__propIsEnum$n.call(b, prop))\n __defNormalProp$k(a, prop, b[prop]);\n }\n return a;\n};\nconst StorageSerializers = {\n boolean: {\n read: (v) => v === \"true\",\n write: (v) => String(v)\n },\n object: {\n read: (v) => JSON.parse(v),\n write: (v) => JSON.stringify(v)\n },\n number: {\n read: (v) => Number.parseFloat(v),\n write: (v) => String(v)\n },\n any: {\n read: (v) => v,\n write: (v) => String(v)\n },\n string: {\n read: (v) => v,\n write: (v) => String(v)\n },\n map: {\n read: (v) => new Map(JSON.parse(v)),\n write: (v) => JSON.stringify(Array.from(v.entries()))\n },\n set: {\n read: (v) => new Set(JSON.parse(v)),\n write: (v) => JSON.stringify(Array.from(v))\n },\n date: {\n read: (v) => new Date(v),\n write: (v) => v.toISOString()\n }\n};\nconst customStorageEventName = \"vueuse-storage\";\nfunction useStorage(key, defaults, storage, options = {}) {\n var _a;\n const {\n flush = \"pre\",\n deep = true,\n listenToStorageChanges = true,\n writeDefaults = true,\n mergeDefaults = false,\n shallow,\n window = defaultWindow,\n eventFilter,\n onError = (e) => {\n console.error(e);\n }\n } = options;\n const data = (shallow ? shallowRef : ref)(defaults);\n if (!storage) {\n try {\n storage = getSSRHandler(\"getDefaultStorage\", () => {\n var _a2;\n return (_a2 = defaultWindow) == null ? void 0 : _a2.localStorage;\n })();\n } catch (e) {\n onError(e);\n }\n }\n if (!storage)\n return data;\n const rawInit = toValue(defaults);\n const type = guessSerializerType(rawInit);\n const serializer = (_a = options.serializer) != null ? _a : StorageSerializers[type];\n const { pause: pauseWatch, resume: resumeWatch } = pausableWatch(\n data,\n () => write(data.value),\n { flush, deep, eventFilter }\n );\n if (window && listenToStorageChanges) {\n useEventListener(window, \"storage\", update);\n useEventListener(window, customStorageEventName, updateFromCustomEvent);\n }\n update();\n return data;\n function write(v) {\n try {\n if (v == null) {\n storage.removeItem(key);\n } else {\n const serialized = serializer.write(v);\n const oldValue = storage.getItem(key);\n if (oldValue !== serialized) {\n storage.setItem(key, serialized);\n if (window) {\n window.dispatchEvent(new CustomEvent(customStorageEventName, {\n detail: {\n key,\n oldValue,\n newValue: serialized,\n storageArea: storage\n }\n }));\n }\n }\n }\n } catch (e) {\n onError(e);\n }\n }\n function read(event) {\n const rawValue = event ? event.newValue : storage.getItem(key);\n if (rawValue == null) {\n if (writeDefaults && rawInit !== null)\n storage.setItem(key, serializer.write(rawInit));\n return rawInit;\n } else if (!event && mergeDefaults) {\n const value = serializer.read(rawValue);\n if (typeof mergeDefaults === \"function\")\n return mergeDefaults(value, rawInit);\n else if (type === \"object\" && !Array.isArray(value))\n return __spreadValues$k(__spreadValues$k({}, rawInit), value);\n return value;\n } else if (typeof rawValue !== \"string\") {\n return rawValue;\n } else {\n return serializer.read(rawValue);\n }\n }\n function updateFromCustomEvent(event) {\n update(event.detail);\n }\n function update(event) {\n if (event && event.storageArea !== storage)\n return;\n if (event && event.key == null) {\n data.value = rawInit;\n return;\n }\n if (event && event.key !== key)\n return;\n pauseWatch();\n try {\n data.value = read(event);\n } catch (e) {\n onError(e);\n } finally {\n if (event)\n nextTick(resumeWatch);\n else\n resumeWatch();\n }\n }\n}\n\nfunction usePreferredDark(options) {\n return useMediaQuery(\"(prefers-color-scheme: dark)\", options);\n}\n\nvar __defProp$j = Object.defineProperty;\nvar __getOwnPropSymbols$m = Object.getOwnPropertySymbols;\nvar __hasOwnProp$m = Object.prototype.hasOwnProperty;\nvar __propIsEnum$m = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$j = (obj, key, value) => key in obj ? __defProp$j(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$j = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$m.call(b, prop))\n __defNormalProp$j(a, prop, b[prop]);\n if (__getOwnPropSymbols$m)\n for (var prop of __getOwnPropSymbols$m(b)) {\n if (__propIsEnum$m.call(b, prop))\n __defNormalProp$j(a, prop, b[prop]);\n }\n return a;\n};\nfunction useColorMode(options = {}) {\n const {\n selector = \"html\",\n attribute = \"class\",\n initialValue = \"auto\",\n window = defaultWindow,\n storage,\n storageKey = \"vueuse-color-scheme\",\n listenToStorageChanges = true,\n storageRef,\n emitAuto,\n disableTransition = true\n } = options;\n const modes = __spreadValues$j({\n auto: \"\",\n light: \"light\",\n dark: \"dark\"\n }, options.modes || {});\n const preferredDark = usePreferredDark({ window });\n const system = computed(() => preferredDark.value ? \"dark\" : \"light\");\n const store = storageRef || (storageKey == null ? toRef(initialValue) : useStorage(storageKey, initialValue, storage, { window, listenToStorageChanges }));\n const state = computed(\n () => store.value === \"auto\" ? system.value : store.value\n );\n const updateHTMLAttrs = getSSRHandler(\n \"updateHTMLAttrs\",\n (selector2, attribute2, value) => {\n const el = typeof selector2 === \"string\" ? window == null ? void 0 : window.document.querySelector(selector2) : unrefElement(selector2);\n if (!el)\n return;\n let style;\n if (disableTransition) {\n style = window.document.createElement(\"style\");\n style.appendChild(document.createTextNode(\"*{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}\"));\n window.document.head.appendChild(style);\n }\n if (attribute2 === \"class\") {\n const current = value.split(/\\s/g);\n Object.values(modes).flatMap((i) => (i || \"\").split(/\\s/g)).filter(Boolean).forEach((v) => {\n if (current.includes(v))\n el.classList.add(v);\n else\n el.classList.remove(v);\n });\n } else {\n el.setAttribute(attribute2, value);\n }\n if (disableTransition) {\n window.getComputedStyle(style).opacity;\n document.head.removeChild(style);\n }\n }\n );\n function defaultOnChanged(mode) {\n var _a;\n updateHTMLAttrs(selector, attribute, (_a = modes[mode]) != null ? _a : mode);\n }\n function onChanged(mode) {\n if (options.onChanged)\n options.onChanged(mode, defaultOnChanged);\n else\n defaultOnChanged(mode);\n }\n watch(state, onChanged, { flush: \"post\", immediate: true });\n tryOnMounted(() => onChanged(state.value));\n const auto = computed({\n get() {\n return emitAuto ? store.value : state.value;\n },\n set(v) {\n store.value = v;\n }\n });\n try {\n return Object.assign(auto, { store, system, state });\n } catch (e) {\n return auto;\n }\n}\n\nfunction useConfirmDialog(revealed = ref(false)) {\n const confirmHook = createEventHook();\n const cancelHook = createEventHook();\n const revealHook = createEventHook();\n let _resolve = noop;\n const reveal = (data) => {\n revealHook.trigger(data);\n revealed.value = true;\n return new Promise((resolve) => {\n _resolve = resolve;\n });\n };\n const confirm = (data) => {\n revealed.value = false;\n confirmHook.trigger(data);\n _resolve({ data, isCanceled: false });\n };\n const cancel = (data) => {\n revealed.value = false;\n cancelHook.trigger(data);\n _resolve({ data, isCanceled: true });\n };\n return {\n isRevealed: computed(() => revealed.value),\n reveal,\n confirm,\n cancel,\n onReveal: revealHook.on,\n onConfirm: confirmHook.on,\n onCancel: cancelHook.on\n };\n}\n\nvar __getOwnPropSymbols$l = Object.getOwnPropertySymbols;\nvar __hasOwnProp$l = Object.prototype.hasOwnProperty;\nvar __propIsEnum$l = Object.prototype.propertyIsEnumerable;\nvar __objRest$3 = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp$l.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols$l)\n for (var prop of __getOwnPropSymbols$l(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum$l.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nfunction useMutationObserver(target, callback, options = {}) {\n const _a = options, { window = defaultWindow } = _a, mutationOptions = __objRest$3(_a, [\"window\"]);\n let observer;\n const isSupported = useSupported(() => window && \"MutationObserver\" in window);\n const cleanup = () => {\n if (observer) {\n observer.disconnect();\n observer = void 0;\n }\n };\n const stopWatch = watch(\n () => unrefElement(target),\n (el) => {\n cleanup();\n if (isSupported.value && window && el) {\n observer = new MutationObserver(callback);\n observer.observe(el, mutationOptions);\n }\n },\n { immediate: true }\n );\n const stop = () => {\n cleanup();\n stopWatch();\n };\n tryOnScopeDispose(stop);\n return {\n isSupported,\n stop\n };\n}\n\nfunction useCssVar(prop, target, options = {}) {\n const { window = defaultWindow, initialValue = \"\", observe = false } = options;\n const variable = ref(initialValue);\n const elRef = computed(() => {\n var _a;\n return unrefElement(target) || ((_a = window == null ? void 0 : window.document) == null ? void 0 : _a.documentElement);\n });\n function updateCssVar() {\n var _a;\n const key = toValue(prop);\n const el = toValue(elRef);\n if (el && window) {\n const value = (_a = window.getComputedStyle(el).getPropertyValue(key)) == null ? void 0 : _a.trim();\n variable.value = value || initialValue;\n }\n }\n if (observe) {\n useMutationObserver(elRef, updateCssVar, {\n attributes: true,\n window\n });\n }\n watch(\n [elRef, () => toValue(prop)],\n updateCssVar,\n { immediate: true }\n );\n watch(\n variable,\n (val) => {\n var _a;\n if ((_a = elRef.value) == null ? void 0 : _a.style)\n elRef.value.style.setProperty(toValue(prop), val);\n }\n );\n return variable;\n}\n\nfunction useCurrentElement() {\n const vm = getCurrentInstance();\n const currentElement = computedWithControl(\n () => null,\n () => vm.proxy.$el\n );\n onUpdated(currentElement.trigger);\n onMounted(currentElement.trigger);\n return currentElement;\n}\n\nfunction useCycleList(list, options) {\n const state = shallowRef(getInitialValue());\n const listRef = toRef(list);\n const index = computed({\n get() {\n var _a;\n const targetList = listRef.value;\n let index2 = (options == null ? void 0 : options.getIndexOf) ? options.getIndexOf(state.value, targetList) : targetList.indexOf(state.value);\n if (index2 < 0)\n index2 = (_a = options == null ? void 0 : options.fallbackIndex) != null ? _a : 0;\n return index2;\n },\n set(v) {\n set(v);\n }\n });\n function set(i) {\n const targetList = listRef.value;\n const length = targetList.length;\n const index2 = (i % length + length) % length;\n const value = targetList[index2];\n state.value = value;\n return value;\n }\n function shift(delta = 1) {\n return set(index.value + delta);\n }\n function next(n = 1) {\n return shift(n);\n }\n function prev(n = 1) {\n return shift(-n);\n }\n function getInitialValue() {\n var _a, _b;\n return (_b = toValue((_a = options == null ? void 0 : options.initialValue) != null ? _a : toValue(list)[0])) != null ? _b : void 0;\n }\n watch(listRef, () => set(index.value));\n return {\n state,\n index,\n next,\n prev\n };\n}\n\nvar __defProp$i = Object.defineProperty;\nvar __defProps$8 = Object.defineProperties;\nvar __getOwnPropDescs$8 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$k = Object.getOwnPropertySymbols;\nvar __hasOwnProp$k = Object.prototype.hasOwnProperty;\nvar __propIsEnum$k = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$i = (obj, key, value) => key in obj ? __defProp$i(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$i = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$k.call(b, prop))\n __defNormalProp$i(a, prop, b[prop]);\n if (__getOwnPropSymbols$k)\n for (var prop of __getOwnPropSymbols$k(b)) {\n if (__propIsEnum$k.call(b, prop))\n __defNormalProp$i(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps$8 = (a, b) => __defProps$8(a, __getOwnPropDescs$8(b));\nfunction useDark(options = {}) {\n const {\n valueDark = \"dark\",\n valueLight = \"\"\n } = options;\n const mode = useColorMode(__spreadProps$8(__spreadValues$i({}, options), {\n onChanged: (mode2, defaultHandler) => {\n var _a;\n if (options.onChanged)\n (_a = options.onChanged) == null ? void 0 : _a.call(options, mode2 === \"dark\", defaultHandler, mode2);\n else\n defaultHandler(mode2);\n },\n modes: {\n dark: valueDark,\n light: valueLight\n }\n }));\n const isDark = computed({\n get() {\n return mode.value === \"dark\";\n },\n set(v) {\n const modeVal = v ? \"dark\" : \"light\";\n if (mode.system.value === modeVal)\n mode.value = \"auto\";\n else\n mode.value = modeVal;\n }\n });\n return isDark;\n}\n\nfunction fnBypass(v) {\n return v;\n}\nfunction fnSetSource(source, value) {\n return source.value = value;\n}\nfunction defaultDump(clone) {\n return clone ? typeof clone === \"function\" ? clone : cloneFnJSON : fnBypass;\n}\nfunction defaultParse(clone) {\n return clone ? typeof clone === \"function\" ? clone : cloneFnJSON : fnBypass;\n}\nfunction useManualRefHistory(source, options = {}) {\n const {\n clone = false,\n dump = defaultDump(clone),\n parse = defaultParse(clone),\n setSource = fnSetSource\n } = options;\n function _createHistoryRecord() {\n return markRaw({\n snapshot: dump(source.value),\n timestamp: timestamp()\n });\n }\n const last = ref(_createHistoryRecord());\n const undoStack = ref([]);\n const redoStack = ref([]);\n const _setSource = (record) => {\n setSource(source, parse(record.snapshot));\n last.value = record;\n };\n const commit = () => {\n undoStack.value.unshift(last.value);\n last.value = _createHistoryRecord();\n if (options.capacity && undoStack.value.length > options.capacity)\n undoStack.value.splice(options.capacity, Infinity);\n if (redoStack.value.length)\n redoStack.value.splice(0, redoStack.value.length);\n };\n const clear = () => {\n undoStack.value.splice(0, undoStack.value.length);\n redoStack.value.splice(0, redoStack.value.length);\n };\n const undo = () => {\n const state = undoStack.value.shift();\n if (state) {\n redoStack.value.unshift(last.value);\n _setSource(state);\n }\n };\n const redo = () => {\n const state = redoStack.value.shift();\n if (state) {\n undoStack.value.unshift(last.value);\n _setSource(state);\n }\n };\n const reset = () => {\n _setSource(last.value);\n };\n const history = computed(() => [last.value, ...undoStack.value]);\n const canUndo = computed(() => undoStack.value.length > 0);\n const canRedo = computed(() => redoStack.value.length > 0);\n return {\n source,\n undoStack,\n redoStack,\n last,\n history,\n canUndo,\n canRedo,\n clear,\n commit,\n reset,\n undo,\n redo\n };\n}\n\nvar __defProp$h = Object.defineProperty;\nvar __defProps$7 = Object.defineProperties;\nvar __getOwnPropDescs$7 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$j = Object.getOwnPropertySymbols;\nvar __hasOwnProp$j = Object.prototype.hasOwnProperty;\nvar __propIsEnum$j = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$h = (obj, key, value) => key in obj ? __defProp$h(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$h = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$j.call(b, prop))\n __defNormalProp$h(a, prop, b[prop]);\n if (__getOwnPropSymbols$j)\n for (var prop of __getOwnPropSymbols$j(b)) {\n if (__propIsEnum$j.call(b, prop))\n __defNormalProp$h(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps$7 = (a, b) => __defProps$7(a, __getOwnPropDescs$7(b));\nfunction useRefHistory(source, options = {}) {\n const {\n deep = false,\n flush = \"pre\",\n eventFilter\n } = options;\n const {\n eventFilter: composedFilter,\n pause,\n resume: resumeTracking,\n isActive: isTracking\n } = pausableFilter(eventFilter);\n const {\n ignoreUpdates,\n ignorePrevAsyncUpdates,\n stop\n } = watchIgnorable(\n source,\n commit,\n { deep, flush, eventFilter: composedFilter }\n );\n function setSource(source2, value) {\n ignorePrevAsyncUpdates();\n ignoreUpdates(() => {\n source2.value = value;\n });\n }\n const manualHistory = useManualRefHistory(source, __spreadProps$7(__spreadValues$h({}, options), { clone: options.clone || deep, setSource }));\n const { clear, commit: manualCommit } = manualHistory;\n function commit() {\n ignorePrevAsyncUpdates();\n manualCommit();\n }\n function resume(commitNow) {\n resumeTracking();\n if (commitNow)\n commit();\n }\n function batch(fn) {\n let canceled = false;\n const cancel = () => canceled = true;\n ignoreUpdates(() => {\n fn(cancel);\n });\n if (!canceled)\n commit();\n }\n function dispose() {\n stop();\n clear();\n }\n return __spreadProps$7(__spreadValues$h({}, manualHistory), {\n isTracking,\n pause,\n resume,\n commit,\n batch,\n dispose\n });\n}\n\nvar __defProp$g = Object.defineProperty;\nvar __defProps$6 = Object.defineProperties;\nvar __getOwnPropDescs$6 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$i = Object.getOwnPropertySymbols;\nvar __hasOwnProp$i = Object.prototype.hasOwnProperty;\nvar __propIsEnum$i = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$g = (obj, key, value) => key in obj ? __defProp$g(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$g = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$i.call(b, prop))\n __defNormalProp$g(a, prop, b[prop]);\n if (__getOwnPropSymbols$i)\n for (var prop of __getOwnPropSymbols$i(b)) {\n if (__propIsEnum$i.call(b, prop))\n __defNormalProp$g(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps$6 = (a, b) => __defProps$6(a, __getOwnPropDescs$6(b));\nfunction useDebouncedRefHistory(source, options = {}) {\n const filter = options.debounce ? debounceFilter(options.debounce) : void 0;\n const history = useRefHistory(source, __spreadProps$6(__spreadValues$g({}, options), { eventFilter: filter }));\n return __spreadValues$g({}, history);\n}\n\nfunction useDeviceMotion(options = {}) {\n const {\n window = defaultWindow,\n eventFilter = bypassFilter\n } = options;\n const acceleration = ref({ x: null, y: null, z: null });\n const rotationRate = ref({ alpha: null, beta: null, gamma: null });\n const interval = ref(0);\n const accelerationIncludingGravity = ref({\n x: null,\n y: null,\n z: null\n });\n if (window) {\n const onDeviceMotion = createFilterWrapper(\n eventFilter,\n (event) => {\n acceleration.value = event.acceleration;\n accelerationIncludingGravity.value = event.accelerationIncludingGravity;\n rotationRate.value = event.rotationRate;\n interval.value = event.interval;\n }\n );\n useEventListener(window, \"devicemotion\", onDeviceMotion);\n }\n return {\n acceleration,\n accelerationIncludingGravity,\n rotationRate,\n interval\n };\n}\n\nfunction useDeviceOrientation(options = {}) {\n const { window = defaultWindow } = options;\n const isSupported = useSupported(() => window && \"DeviceOrientationEvent\" in window);\n const isAbsolute = ref(false);\n const alpha = ref(null);\n const beta = ref(null);\n const gamma = ref(null);\n if (window && isSupported.value) {\n useEventListener(window, \"deviceorientation\", (event) => {\n isAbsolute.value = event.absolute;\n alpha.value = event.alpha;\n beta.value = event.beta;\n gamma.value = event.gamma;\n });\n }\n return {\n isSupported,\n isAbsolute,\n alpha,\n beta,\n gamma\n };\n}\n\nfunction useDevicePixelRatio({\n window = defaultWindow\n} = {}) {\n const pixelRatio = ref(1);\n if (window) {\n let observe = function() {\n pixelRatio.value = window.devicePixelRatio;\n cleanup();\n media = window.matchMedia(`(resolution: ${pixelRatio.value}dppx)`);\n media.addEventListener(\"change\", observe, { once: true });\n }, cleanup = function() {\n media == null ? void 0 : media.removeEventListener(\"change\", observe);\n };\n let media;\n observe();\n tryOnScopeDispose(cleanup);\n }\n return { pixelRatio };\n}\n\nfunction usePermission(permissionDesc, options = {}) {\n const {\n controls = false,\n navigator = defaultNavigator\n } = options;\n const isSupported = useSupported(() => navigator && \"permissions\" in navigator);\n let permissionStatus;\n const desc = typeof permissionDesc === \"string\" ? { name: permissionDesc } : permissionDesc;\n const state = ref();\n const onChange = () => {\n if (permissionStatus)\n state.value = permissionStatus.state;\n };\n const query = createSingletonPromise(async () => {\n if (!isSupported.value)\n return;\n if (!permissionStatus) {\n try {\n permissionStatus = await navigator.permissions.query(desc);\n useEventListener(permissionStatus, \"change\", onChange);\n onChange();\n } catch (e) {\n state.value = \"prompt\";\n }\n }\n return permissionStatus;\n });\n query();\n if (controls) {\n return {\n state,\n isSupported,\n query\n };\n } else {\n return state;\n }\n}\n\nfunction useDevicesList(options = {}) {\n const {\n navigator = defaultNavigator,\n requestPermissions = false,\n constraints = { audio: true, video: true },\n onUpdated\n } = options;\n const devices = ref([]);\n const videoInputs = computed(() => devices.value.filter((i) => i.kind === \"videoinput\"));\n const audioInputs = computed(() => devices.value.filter((i) => i.kind === \"audioinput\"));\n const audioOutputs = computed(() => devices.value.filter((i) => i.kind === \"audiooutput\"));\n const isSupported = useSupported(() => navigator && navigator.mediaDevices && navigator.mediaDevices.enumerateDevices);\n const permissionGranted = ref(false);\n let stream;\n async function update() {\n if (!isSupported.value)\n return;\n devices.value = await navigator.mediaDevices.enumerateDevices();\n onUpdated == null ? void 0 : onUpdated(devices.value);\n if (stream) {\n stream.getTracks().forEach((t) => t.stop());\n stream = null;\n }\n }\n async function ensurePermissions() {\n if (!isSupported.value)\n return false;\n if (permissionGranted.value)\n return true;\n const { state, query } = usePermission(\"camera\", { controls: true });\n await query();\n if (state.value !== \"granted\") {\n stream = await navigator.mediaDevices.getUserMedia(constraints);\n update();\n permissionGranted.value = true;\n } else {\n permissionGranted.value = true;\n }\n return permissionGranted.value;\n }\n if (isSupported.value) {\n if (requestPermissions)\n ensurePermissions();\n useEventListener(navigator.mediaDevices, \"devicechange\", update);\n update();\n }\n return {\n devices,\n ensurePermissions,\n permissionGranted,\n videoInputs,\n audioInputs,\n audioOutputs,\n isSupported\n };\n}\n\nfunction useDisplayMedia(options = {}) {\n var _a;\n const enabled = ref((_a = options.enabled) != null ? _a : false);\n const video = options.video;\n const audio = options.audio;\n const { navigator = defaultNavigator } = options;\n const isSupported = useSupported(() => {\n var _a2;\n return (_a2 = navigator == null ? void 0 : navigator.mediaDevices) == null ? void 0 : _a2.getDisplayMedia;\n });\n const constraint = { audio, video };\n const stream = shallowRef();\n async function _start() {\n if (!isSupported.value || stream.value)\n return;\n stream.value = await navigator.mediaDevices.getDisplayMedia(constraint);\n return stream.value;\n }\n async function _stop() {\n var _a2;\n (_a2 = stream.value) == null ? void 0 : _a2.getTracks().forEach((t) => t.stop());\n stream.value = void 0;\n }\n function stop() {\n _stop();\n enabled.value = false;\n }\n async function start() {\n await _start();\n if (stream.value)\n enabled.value = true;\n return stream.value;\n }\n watch(\n enabled,\n (v) => {\n if (v)\n _start();\n else\n _stop();\n },\n { immediate: true }\n );\n return {\n isSupported,\n stream,\n start,\n stop,\n enabled\n };\n}\n\nfunction useDocumentVisibility({ document = defaultDocument } = {}) {\n if (!document)\n return ref(\"visible\");\n const visibility = ref(document.visibilityState);\n useEventListener(document, \"visibilitychange\", () => {\n visibility.value = document.visibilityState;\n });\n return visibility;\n}\n\nvar __defProp$f = Object.defineProperty;\nvar __defProps$5 = Object.defineProperties;\nvar __getOwnPropDescs$5 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$h = Object.getOwnPropertySymbols;\nvar __hasOwnProp$h = Object.prototype.hasOwnProperty;\nvar __propIsEnum$h = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$f = (obj, key, value) => key in obj ? __defProp$f(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$f = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$h.call(b, prop))\n __defNormalProp$f(a, prop, b[prop]);\n if (__getOwnPropSymbols$h)\n for (var prop of __getOwnPropSymbols$h(b)) {\n if (__propIsEnum$h.call(b, prop))\n __defNormalProp$f(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps$5 = (a, b) => __defProps$5(a, __getOwnPropDescs$5(b));\nfunction useDraggable(target, options = {}) {\n var _a, _b;\n const {\n pointerTypes,\n preventDefault,\n stopPropagation,\n exact,\n onMove,\n onEnd,\n onStart,\n initialValue,\n axis = \"both\",\n draggingElement = defaultWindow,\n handle: draggingHandle = target\n } = options;\n const position = ref(\n (_a = toValue(initialValue)) != null ? _a : { x: 0, y: 0 }\n );\n const pressedDelta = ref();\n const filterEvent = (e) => {\n if (pointerTypes)\n return pointerTypes.includes(e.pointerType);\n return true;\n };\n const handleEvent = (e) => {\n if (toValue(preventDefault))\n e.preventDefault();\n if (toValue(stopPropagation))\n e.stopPropagation();\n };\n const start = (e) => {\n if (!filterEvent(e))\n return;\n if (toValue(exact) && e.target !== toValue(target))\n return;\n const rect = toValue(target).getBoundingClientRect();\n const pos = {\n x: e.clientX - rect.left,\n y: e.clientY - rect.top\n };\n if ((onStart == null ? void 0 : onStart(pos, e)) === false)\n return;\n pressedDelta.value = pos;\n handleEvent(e);\n };\n const move = (e) => {\n if (!filterEvent(e))\n return;\n if (!pressedDelta.value)\n return;\n let { x, y } = position.value;\n if (axis === \"x\" || axis === \"both\")\n x = e.clientX - pressedDelta.value.x;\n if (axis === \"y\" || axis === \"both\")\n y = e.clientY - pressedDelta.value.y;\n position.value = {\n x,\n y\n };\n onMove == null ? void 0 : onMove(position.value, e);\n handleEvent(e);\n };\n const end = (e) => {\n if (!filterEvent(e))\n return;\n if (!pressedDelta.value)\n return;\n pressedDelta.value = void 0;\n onEnd == null ? void 0 : onEnd(position.value, e);\n handleEvent(e);\n };\n if (isClient) {\n const config = { capture: (_b = options.capture) != null ? _b : true };\n useEventListener(draggingHandle, \"pointerdown\", start, config);\n useEventListener(draggingElement, \"pointermove\", move, config);\n useEventListener(draggingElement, \"pointerup\", end, config);\n }\n return __spreadProps$5(__spreadValues$f({}, toRefs(position)), {\n position,\n isDragging: computed(() => !!pressedDelta.value),\n style: computed(\n () => `left:${position.value.x}px;top:${position.value.y}px;`\n )\n });\n}\n\nfunction useDropZone(target, onDrop) {\n const isOverDropZone = ref(false);\n let counter = 0;\n if (isClient) {\n useEventListener(target, \"dragenter\", (event) => {\n event.preventDefault();\n counter += 1;\n isOverDropZone.value = true;\n });\n useEventListener(target, \"dragover\", (event) => {\n event.preventDefault();\n });\n useEventListener(target, \"dragleave\", (event) => {\n event.preventDefault();\n counter -= 1;\n if (counter === 0)\n isOverDropZone.value = false;\n });\n useEventListener(target, \"drop\", (event) => {\n var _a, _b;\n event.preventDefault();\n counter = 0;\n isOverDropZone.value = false;\n const files = Array.from((_b = (_a = event.dataTransfer) == null ? void 0 : _a.files) != null ? _b : []);\n onDrop == null ? void 0 : onDrop(files.length === 0 ? null : files);\n });\n }\n return {\n isOverDropZone\n };\n}\n\nvar __getOwnPropSymbols$g = Object.getOwnPropertySymbols;\nvar __hasOwnProp$g = Object.prototype.hasOwnProperty;\nvar __propIsEnum$g = Object.prototype.propertyIsEnumerable;\nvar __objRest$2 = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp$g.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols$g)\n for (var prop of __getOwnPropSymbols$g(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum$g.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nfunction useResizeObserver(target, callback, options = {}) {\n const _a = options, { window = defaultWindow } = _a, observerOptions = __objRest$2(_a, [\"window\"]);\n let observer;\n const isSupported = useSupported(() => window && \"ResizeObserver\" in window);\n const cleanup = () => {\n if (observer) {\n observer.disconnect();\n observer = void 0;\n }\n };\n const targets = computed(\n () => Array.isArray(target) ? target.map((el) => unrefElement(el)) : [unrefElement(target)]\n );\n const stopWatch = watch(\n targets,\n (els) => {\n cleanup();\n if (isSupported.value && window) {\n observer = new ResizeObserver(callback);\n for (const _el of els)\n _el && observer.observe(_el, observerOptions);\n }\n },\n { immediate: true, flush: \"post\", deep: true }\n );\n const stop = () => {\n cleanup();\n stopWatch();\n };\n tryOnScopeDispose(stop);\n return {\n isSupported,\n stop\n };\n}\n\nfunction useElementBounding(target, options = {}) {\n const {\n reset = true,\n windowResize = true,\n windowScroll = true,\n immediate = true\n } = options;\n const height = ref(0);\n const bottom = ref(0);\n const left = ref(0);\n const right = ref(0);\n const top = ref(0);\n const width = ref(0);\n const x = ref(0);\n const y = ref(0);\n function update() {\n const el = unrefElement(target);\n if (!el) {\n if (reset) {\n height.value = 0;\n bottom.value = 0;\n left.value = 0;\n right.value = 0;\n top.value = 0;\n width.value = 0;\n x.value = 0;\n y.value = 0;\n }\n return;\n }\n const rect = el.getBoundingClientRect();\n height.value = rect.height;\n bottom.value = rect.bottom;\n left.value = rect.left;\n right.value = rect.right;\n top.value = rect.top;\n width.value = rect.width;\n x.value = rect.x;\n y.value = rect.y;\n }\n useResizeObserver(target, update);\n watch(() => unrefElement(target), (ele) => !ele && update());\n if (windowScroll)\n useEventListener(\"scroll\", update, { capture: true, passive: true });\n if (windowResize)\n useEventListener(\"resize\", update, { passive: true });\n tryOnMounted(() => {\n if (immediate)\n update();\n });\n return {\n height,\n bottom,\n left,\n right,\n top,\n width,\n x,\n y,\n update\n };\n}\n\nvar __defProp$e = Object.defineProperty;\nvar __getOwnPropSymbols$f = Object.getOwnPropertySymbols;\nvar __hasOwnProp$f = Object.prototype.hasOwnProperty;\nvar __propIsEnum$f = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$e = (obj, key, value) => key in obj ? __defProp$e(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$e = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$f.call(b, prop))\n __defNormalProp$e(a, prop, b[prop]);\n if (__getOwnPropSymbols$f)\n for (var prop of __getOwnPropSymbols$f(b)) {\n if (__propIsEnum$f.call(b, prop))\n __defNormalProp$e(a, prop, b[prop]);\n }\n return a;\n};\nfunction useElementByPoint(options) {\n const element = ref(null);\n const { x, y, document = defaultDocument } = options;\n const controls = useRafFn(() => {\n element.value = (document == null ? void 0 : document.elementFromPoint(toValue(x), toValue(y))) || null;\n });\n return __spreadValues$e({\n element\n }, controls);\n}\n\nfunction useElementHover(el, options = {}) {\n const {\n delayEnter = 0,\n delayLeave = 0,\n window = defaultWindow\n } = options;\n const isHovered = ref(false);\n let timer;\n const toggle = (entering) => {\n const delay = entering ? delayEnter : delayLeave;\n if (timer) {\n clearTimeout(timer);\n timer = void 0;\n }\n if (delay)\n timer = setTimeout(() => isHovered.value = entering, delay);\n else\n isHovered.value = entering;\n };\n if (!window)\n return isHovered;\n useEventListener(el, \"mouseenter\", () => toggle(true), { passive: true });\n useEventListener(el, \"mouseleave\", () => toggle(false), { passive: true });\n return isHovered;\n}\n\nfunction useElementSize(target, initialSize = { width: 0, height: 0 }, options = {}) {\n const { window = defaultWindow, box = \"content-box\" } = options;\n const isSVG = computed(() => {\n var _a, _b;\n return (_b = (_a = unrefElement(target)) == null ? void 0 : _a.namespaceURI) == null ? void 0 : _b.includes(\"svg\");\n });\n const width = ref(initialSize.width);\n const height = ref(initialSize.height);\n useResizeObserver(\n target,\n ([entry]) => {\n const boxSize = box === \"border-box\" ? entry.borderBoxSize : box === \"content-box\" ? entry.contentBoxSize : entry.devicePixelContentBoxSize;\n if (window && isSVG.value) {\n const $elem = unrefElement(target);\n if ($elem) {\n const styles = window.getComputedStyle($elem);\n width.value = parseFloat(styles.width);\n height.value = parseFloat(styles.height);\n }\n } else {\n if (boxSize) {\n const formatBoxSize = Array.isArray(boxSize) ? boxSize : [boxSize];\n width.value = formatBoxSize.reduce((acc, { inlineSize }) => acc + inlineSize, 0);\n height.value = formatBoxSize.reduce((acc, { blockSize }) => acc + blockSize, 0);\n } else {\n width.value = entry.contentRect.width;\n height.value = entry.contentRect.height;\n }\n }\n },\n options\n );\n watch(\n () => unrefElement(target),\n (ele) => {\n width.value = ele ? initialSize.width : 0;\n height.value = ele ? initialSize.height : 0;\n }\n );\n return {\n width,\n height\n };\n}\n\nfunction useIntersectionObserver(target, callback, options = {}) {\n const {\n root,\n rootMargin = \"0px\",\n threshold = 0.1,\n window = defaultWindow,\n immediate = true\n } = options;\n const isSupported = useSupported(() => window && \"IntersectionObserver\" in window);\n const targets = computed(() => {\n const _target = toValue(target);\n return (Array.isArray(_target) ? _target : [_target]).map(unrefElement).filter(notNullish);\n });\n let cleanup = noop;\n const isActive = ref(immediate);\n const stopWatch = isSupported.value ? watch(\n () => [targets.value, unrefElement(root), isActive.value],\n ([targets2, root2]) => {\n cleanup();\n if (!isActive.value)\n return;\n if (!targets2.length)\n return;\n const observer = new IntersectionObserver(\n callback,\n {\n root: unrefElement(root2),\n rootMargin,\n threshold\n }\n );\n targets2.forEach((el) => el && observer.observe(el));\n cleanup = () => {\n observer.disconnect();\n cleanup = noop;\n };\n },\n { immediate, flush: \"post\" }\n ) : noop;\n const stop = () => {\n cleanup();\n stopWatch();\n isActive.value = false;\n };\n tryOnScopeDispose(stop);\n return {\n isSupported,\n isActive,\n pause() {\n cleanup();\n isActive.value = false;\n },\n resume() {\n isActive.value = true;\n },\n stop\n };\n}\n\nfunction useElementVisibility(element, { window = defaultWindow, scrollTarget } = {}) {\n const elementIsVisible = ref(false);\n useIntersectionObserver(\n element,\n ([{ isIntersecting }]) => {\n elementIsVisible.value = isIntersecting;\n },\n {\n root: scrollTarget,\n window\n }\n );\n return elementIsVisible;\n}\n\nconst events = /* @__PURE__ */ new Map();\n\nfunction useEventBus(key) {\n const scope = getCurrentScope();\n function on(listener) {\n var _a;\n const listeners = events.get(key) || /* @__PURE__ */ new Set();\n listeners.add(listener);\n events.set(key, listeners);\n const _off = () => off(listener);\n (_a = scope == null ? void 0 : scope.cleanups) == null ? void 0 : _a.push(_off);\n return _off;\n }\n function once(listener) {\n function _listener(...args) {\n off(_listener);\n listener(...args);\n }\n return on(_listener);\n }\n function off(listener) {\n const listeners = events.get(key);\n if (!listeners)\n return;\n listeners.delete(listener);\n if (!listeners.size)\n reset();\n }\n function reset() {\n events.delete(key);\n }\n function emit(event, payload) {\n var _a;\n (_a = events.get(key)) == null ? void 0 : _a.forEach((v) => v(event, payload));\n }\n return { on, once, off, emit, reset };\n}\n\nfunction useEventSource(url, events = [], options = {}) {\n const event = ref(null);\n const data = ref(null);\n const status = ref(\"CONNECTING\");\n const eventSource = ref(null);\n const error = shallowRef(null);\n const {\n withCredentials = false\n } = options;\n const close = () => {\n if (eventSource.value) {\n eventSource.value.close();\n eventSource.value = null;\n status.value = \"CLOSED\";\n }\n };\n const es = new EventSource(url, { withCredentials });\n eventSource.value = es;\n es.onopen = () => {\n status.value = \"OPEN\";\n error.value = null;\n };\n es.onerror = (e) => {\n status.value = \"CLOSED\";\n error.value = e;\n };\n es.onmessage = (e) => {\n event.value = null;\n data.value = e.data;\n };\n for (const event_name of events) {\n useEventListener(es, event_name, (e) => {\n event.value = event_name;\n data.value = e.data || null;\n });\n }\n tryOnScopeDispose(() => {\n close();\n });\n return {\n eventSource,\n event,\n data,\n status,\n error,\n close\n };\n}\n\nfunction useEyeDropper(options = {}) {\n const { initialValue = \"\" } = options;\n const isSupported = useSupported(() => typeof window !== \"undefined\" && \"EyeDropper\" in window);\n const sRGBHex = ref(initialValue);\n async function open(openOptions) {\n if (!isSupported.value)\n return;\n const eyeDropper = new window.EyeDropper();\n const result = await eyeDropper.open(openOptions);\n sRGBHex.value = result.sRGBHex;\n return result;\n }\n return { isSupported, sRGBHex, open };\n}\n\nfunction useFavicon(newIcon = null, options = {}) {\n const {\n baseUrl = \"\",\n rel = \"icon\",\n document = defaultDocument\n } = options;\n const favicon = toRef(newIcon);\n const applyIcon = (icon) => {\n document == null ? void 0 : document.head.querySelectorAll(`link[rel*=\"${rel}\"]`).forEach((el) => el.href = `${baseUrl}${icon}`);\n };\n watch(\n favicon,\n (i, o) => {\n if (typeof i === \"string\" && i !== o)\n applyIcon(i);\n },\n { immediate: true }\n );\n return favicon;\n}\n\nvar __defProp$d = Object.defineProperty;\nvar __defProps$4 = Object.defineProperties;\nvar __getOwnPropDescs$4 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$e = Object.getOwnPropertySymbols;\nvar __hasOwnProp$e = Object.prototype.hasOwnProperty;\nvar __propIsEnum$e = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$d = (obj, key, value) => key in obj ? __defProp$d(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$d = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$e.call(b, prop))\n __defNormalProp$d(a, prop, b[prop]);\n if (__getOwnPropSymbols$e)\n for (var prop of __getOwnPropSymbols$e(b)) {\n if (__propIsEnum$e.call(b, prop))\n __defNormalProp$d(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps$4 = (a, b) => __defProps$4(a, __getOwnPropDescs$4(b));\nconst payloadMapping = {\n json: \"application/json\",\n text: \"text/plain\"\n};\nfunction isFetchOptions(obj) {\n return obj && containsProp(obj, \"immediate\", \"refetch\", \"initialData\", \"timeout\", \"beforeFetch\", \"afterFetch\", \"onFetchError\", \"fetch\");\n}\nfunction isAbsoluteURL(url) {\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n}\nfunction headersToObject(headers) {\n if (typeof Headers !== \"undefined\" && headers instanceof Headers)\n return Object.fromEntries([...headers.entries()]);\n return headers;\n}\nfunction combineCallbacks(combination, ...callbacks) {\n if (combination === \"overwrite\") {\n return async (ctx) => {\n const callback = callbacks[callbacks.length - 1];\n if (callback)\n return __spreadValues$d(__spreadValues$d({}, ctx), await callback(ctx));\n return ctx;\n };\n } else {\n return async (ctx) => {\n for (const callback of callbacks) {\n if (callback)\n ctx = __spreadValues$d(__spreadValues$d({}, ctx), await callback(ctx));\n }\n return ctx;\n };\n }\n}\nfunction createFetch(config = {}) {\n const _combination = config.combination || \"chain\";\n const _options = config.options || {};\n const _fetchOptions = config.fetchOptions || {};\n function useFactoryFetch(url, ...args) {\n const computedUrl = computed(() => {\n const baseUrl = toValue(config.baseUrl);\n const targetUrl = toValue(url);\n return baseUrl && !isAbsoluteURL(targetUrl) ? joinPaths(baseUrl, targetUrl) : targetUrl;\n });\n let options = _options;\n let fetchOptions = _fetchOptions;\n if (args.length > 0) {\n if (isFetchOptions(args[0])) {\n options = __spreadProps$4(__spreadValues$d(__spreadValues$d({}, options), args[0]), {\n beforeFetch: combineCallbacks(_combination, _options.beforeFetch, args[0].beforeFetch),\n afterFetch: combineCallbacks(_combination, _options.afterFetch, args[0].afterFetch),\n onFetchError: combineCallbacks(_combination, _options.onFetchError, args[0].onFetchError)\n });\n } else {\n fetchOptions = __spreadProps$4(__spreadValues$d(__spreadValues$d({}, fetchOptions), args[0]), {\n headers: __spreadValues$d(__spreadValues$d({}, headersToObject(fetchOptions.headers) || {}), headersToObject(args[0].headers) || {})\n });\n }\n }\n if (args.length > 1 && isFetchOptions(args[1])) {\n options = __spreadProps$4(__spreadValues$d(__spreadValues$d({}, options), args[1]), {\n beforeFetch: combineCallbacks(_combination, _options.beforeFetch, args[1].beforeFetch),\n afterFetch: combineCallbacks(_combination, _options.afterFetch, args[1].afterFetch),\n onFetchError: combineCallbacks(_combination, _options.onFetchError, args[1].onFetchError)\n });\n }\n return useFetch(computedUrl, fetchOptions, options);\n }\n return useFactoryFetch;\n}\nfunction useFetch(url, ...args) {\n var _a;\n const supportsAbort = typeof AbortController === \"function\";\n let fetchOptions = {};\n let options = { immediate: true, refetch: false, timeout: 0 };\n const config = {\n method: \"GET\",\n type: \"text\",\n payload: void 0\n };\n if (args.length > 0) {\n if (isFetchOptions(args[0]))\n options = __spreadValues$d(__spreadValues$d({}, options), args[0]);\n else\n fetchOptions = args[0];\n }\n if (args.length > 1) {\n if (isFetchOptions(args[1]))\n options = __spreadValues$d(__spreadValues$d({}, options), args[1]);\n }\n const {\n fetch = (_a = defaultWindow) == null ? void 0 : _a.fetch,\n initialData,\n timeout\n } = options;\n const responseEvent = createEventHook();\n const errorEvent = createEventHook();\n const finallyEvent = createEventHook();\n const isFinished = ref(false);\n const isFetching = ref(false);\n const aborted = ref(false);\n const statusCode = ref(null);\n const response = shallowRef(null);\n const error = shallowRef(null);\n const data = shallowRef(initialData || null);\n const canAbort = computed(() => supportsAbort && isFetching.value);\n let controller;\n let timer;\n const abort = () => {\n if (supportsAbort) {\n controller == null ? void 0 : controller.abort();\n controller = new AbortController();\n controller.signal.onabort = () => aborted.value = true;\n fetchOptions = __spreadProps$4(__spreadValues$d({}, fetchOptions), {\n signal: controller.signal\n });\n }\n };\n const loading = (isLoading) => {\n isFetching.value = isLoading;\n isFinished.value = !isLoading;\n };\n if (timeout)\n timer = useTimeoutFn(abort, timeout, { immediate: false });\n const execute = async (throwOnFailed = false) => {\n var _a2;\n abort();\n loading(true);\n error.value = null;\n statusCode.value = null;\n aborted.value = false;\n const defaultFetchOptions = {\n method: config.method,\n headers: {}\n };\n if (config.payload) {\n const headers = headersToObject(defaultFetchOptions.headers);\n if (config.payloadType)\n headers[\"Content-Type\"] = (_a2 = payloadMapping[config.payloadType]) != null ? _a2 : config.payloadType;\n const payload = toValue(config.payload);\n defaultFetchOptions.body = config.payloadType === \"json\" ? JSON.stringify(payload) : payload;\n }\n let isCanceled = false;\n const context = {\n url: toValue(url),\n options: __spreadValues$d(__spreadValues$d({}, defaultFetchOptions), fetchOptions),\n cancel: () => {\n isCanceled = true;\n }\n };\n if (options.beforeFetch)\n Object.assign(context, await options.beforeFetch(context));\n if (isCanceled || !fetch) {\n loading(false);\n return Promise.resolve(null);\n }\n let responseData = null;\n if (timer)\n timer.start();\n return new Promise((resolve, reject) => {\n var _a3;\n fetch(\n context.url,\n __spreadProps$4(__spreadValues$d(__spreadValues$d({}, defaultFetchOptions), context.options), {\n headers: __spreadValues$d(__spreadValues$d({}, headersToObject(defaultFetchOptions.headers)), headersToObject((_a3 = context.options) == null ? void 0 : _a3.headers))\n })\n ).then(async (fetchResponse) => {\n response.value = fetchResponse;\n statusCode.value = fetchResponse.status;\n responseData = await fetchResponse[config.type]();\n if (!fetchResponse.ok) {\n data.value = initialData || null;\n throw new Error(fetchResponse.statusText);\n }\n if (options.afterFetch)\n ({ data: responseData } = await options.afterFetch({ data: responseData, response: fetchResponse }));\n data.value = responseData;\n responseEvent.trigger(fetchResponse);\n return resolve(fetchResponse);\n }).catch(async (fetchError) => {\n let errorData = fetchError.message || fetchError.name;\n if (options.onFetchError)\n ({ error: errorData } = await options.onFetchError({ data: responseData, error: fetchError, response: response.value }));\n error.value = errorData;\n errorEvent.trigger(fetchError);\n if (throwOnFailed)\n return reject(fetchError);\n return resolve(null);\n }).finally(() => {\n loading(false);\n if (timer)\n timer.stop();\n finallyEvent.trigger(null);\n });\n });\n };\n const refetch = toRef(options.refetch);\n watch(\n [\n refetch,\n toRef(url)\n ],\n ([refetch2]) => refetch2 && execute(),\n { deep: true }\n );\n const shell = {\n isFinished,\n statusCode,\n response,\n error,\n data,\n isFetching,\n canAbort,\n aborted,\n abort,\n execute,\n onFetchResponse: responseEvent.on,\n onFetchError: errorEvent.on,\n onFetchFinally: finallyEvent.on,\n // method\n get: setMethod(\"GET\"),\n put: setMethod(\"PUT\"),\n post: setMethod(\"POST\"),\n delete: setMethod(\"DELETE\"),\n patch: setMethod(\"PATCH\"),\n head: setMethod(\"HEAD\"),\n options: setMethod(\"OPTIONS\"),\n // type\n json: setType(\"json\"),\n text: setType(\"text\"),\n blob: setType(\"blob\"),\n arrayBuffer: setType(\"arrayBuffer\"),\n formData: setType(\"formData\")\n };\n function setMethod(method) {\n return (payload, payloadType) => {\n if (!isFetching.value) {\n config.method = method;\n config.payload = payload;\n config.payloadType = payloadType;\n if (isRef(config.payload)) {\n watch(\n [\n refetch,\n toRef(config.payload)\n ],\n ([refetch2]) => refetch2 && execute(),\n { deep: true }\n );\n }\n const rawPayload = toValue(config.payload);\n if (!payloadType && rawPayload && Object.getPrototypeOf(rawPayload) === Object.prototype && !(rawPayload instanceof FormData))\n config.payloadType = \"json\";\n return __spreadProps$4(__spreadValues$d({}, shell), {\n then(onFulfilled, onRejected) {\n return waitUntilFinished().then(onFulfilled, onRejected);\n }\n });\n }\n return void 0;\n };\n }\n function waitUntilFinished() {\n return new Promise((resolve, reject) => {\n until(isFinished).toBe(true).then(() => resolve(shell)).catch((error2) => reject(error2));\n });\n }\n function setType(type) {\n return () => {\n if (!isFetching.value) {\n config.type = type;\n return __spreadProps$4(__spreadValues$d({}, shell), {\n then(onFulfilled, onRejected) {\n return waitUntilFinished().then(onFulfilled, onRejected);\n }\n });\n }\n return void 0;\n };\n }\n if (options.immediate)\n Promise.resolve().then(() => execute());\n return __spreadProps$4(__spreadValues$d({}, shell), {\n then(onFulfilled, onRejected) {\n return waitUntilFinished().then(onFulfilled, onRejected);\n }\n });\n}\nfunction joinPaths(start, end) {\n if (!start.endsWith(\"/\") && !end.startsWith(\"/\"))\n return `${start}/${end}`;\n return `${start}${end}`;\n}\n\nvar __defProp$c = Object.defineProperty;\nvar __getOwnPropSymbols$d = Object.getOwnPropertySymbols;\nvar __hasOwnProp$d = Object.prototype.hasOwnProperty;\nvar __propIsEnum$d = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$c = (obj, key, value) => key in obj ? __defProp$c(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$c = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$d.call(b, prop))\n __defNormalProp$c(a, prop, b[prop]);\n if (__getOwnPropSymbols$d)\n for (var prop of __getOwnPropSymbols$d(b)) {\n if (__propIsEnum$d.call(b, prop))\n __defNormalProp$c(a, prop, b[prop]);\n }\n return a;\n};\nconst DEFAULT_OPTIONS = {\n multiple: true,\n accept: \"*\"\n};\nfunction useFileDialog(options = {}) {\n const {\n document = defaultDocument\n } = options;\n const files = ref(null);\n const { on: onChange, trigger } = createEventHook();\n let input;\n if (document) {\n input = document.createElement(\"input\");\n input.type = \"file\";\n input.onchange = (event) => {\n const result = event.target;\n files.value = result.files;\n trigger(files.value);\n };\n }\n const open = (localOptions) => {\n if (!input)\n return;\n const _options = __spreadValues$c(__spreadValues$c(__spreadValues$c({}, DEFAULT_OPTIONS), options), localOptions);\n input.multiple = _options.multiple;\n input.accept = _options.accept;\n if (hasOwn(_options, \"capture\"))\n input.capture = _options.capture;\n input.click();\n };\n const reset = () => {\n files.value = null;\n if (input)\n input.value = \"\";\n };\n return {\n files: readonly(files),\n open,\n reset,\n onChange\n };\n}\n\nvar __defProp$b = Object.defineProperty;\nvar __getOwnPropSymbols$c = Object.getOwnPropertySymbols;\nvar __hasOwnProp$c = Object.prototype.hasOwnProperty;\nvar __propIsEnum$c = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$b = (obj, key, value) => key in obj ? __defProp$b(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$b = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$c.call(b, prop))\n __defNormalProp$b(a, prop, b[prop]);\n if (__getOwnPropSymbols$c)\n for (var prop of __getOwnPropSymbols$c(b)) {\n if (__propIsEnum$c.call(b, prop))\n __defNormalProp$b(a, prop, b[prop]);\n }\n return a;\n};\nfunction useFileSystemAccess(options = {}) {\n const {\n window: _window = defaultWindow,\n dataType = \"Text\"\n } = options;\n const window = _window;\n const isSupported = useSupported(() => window && \"showSaveFilePicker\" in window && \"showOpenFilePicker\" in window);\n const fileHandle = ref();\n const data = ref();\n const file = ref();\n const fileName = computed(() => {\n var _a, _b;\n return (_b = (_a = file.value) == null ? void 0 : _a.name) != null ? _b : \"\";\n });\n const fileMIME = computed(() => {\n var _a, _b;\n return (_b = (_a = file.value) == null ? void 0 : _a.type) != null ? _b : \"\";\n });\n const fileSize = computed(() => {\n var _a, _b;\n return (_b = (_a = file.value) == null ? void 0 : _a.size) != null ? _b : 0;\n });\n const fileLastModified = computed(() => {\n var _a, _b;\n return (_b = (_a = file.value) == null ? void 0 : _a.lastModified) != null ? _b : 0;\n });\n async function open(_options = {}) {\n if (!isSupported.value)\n return;\n const [handle] = await window.showOpenFilePicker(__spreadValues$b(__spreadValues$b({}, toValue(options)), _options));\n fileHandle.value = handle;\n await updateFile();\n await updateData();\n }\n async function create(_options = {}) {\n if (!isSupported.value)\n return;\n fileHandle.value = await window.showSaveFilePicker(__spreadValues$b(__spreadValues$b({}, options), _options));\n data.value = void 0;\n await updateFile();\n await updateData();\n }\n async function save(_options = {}) {\n if (!isSupported.value)\n return;\n if (!fileHandle.value)\n return saveAs(_options);\n if (data.value) {\n const writableStream = await fileHandle.value.createWritable();\n await writableStream.write(data.value);\n await writableStream.close();\n }\n await updateFile();\n }\n async function saveAs(_options = {}) {\n if (!isSupported.value)\n return;\n fileHandle.value = await window.showSaveFilePicker(__spreadValues$b(__spreadValues$b({}, options), _options));\n if (data.value) {\n const writableStream = await fileHandle.value.createWritable();\n await writableStream.write(data.value);\n await writableStream.close();\n }\n await updateFile();\n }\n async function updateFile() {\n var _a;\n file.value = await ((_a = fileHandle.value) == null ? void 0 : _a.getFile());\n }\n async function updateData() {\n var _a, _b;\n const type = toValue(dataType);\n if (type === \"Text\")\n data.value = await ((_a = file.value) == null ? void 0 : _a.text());\n else if (type === \"ArrayBuffer\")\n data.value = await ((_b = file.value) == null ? void 0 : _b.arrayBuffer());\n else if (type === \"Blob\")\n data.value = file.value;\n }\n watch(() => toValue(dataType), updateData);\n return {\n isSupported,\n data,\n file,\n fileName,\n fileMIME,\n fileSize,\n fileLastModified,\n open,\n create,\n save,\n saveAs,\n updateData\n };\n}\n\nfunction useFocus(target, options = {}) {\n const { initialValue = false } = options;\n const innerFocused = ref(false);\n const targetElement = computed(() => unrefElement(target));\n useEventListener(targetElement, \"focus\", () => innerFocused.value = true);\n useEventListener(targetElement, \"blur\", () => innerFocused.value = false);\n const focused = computed({\n get: () => innerFocused.value,\n set(value) {\n var _a, _b;\n if (!value && innerFocused.value)\n (_a = targetElement.value) == null ? void 0 : _a.blur();\n else if (value && !innerFocused.value)\n (_b = targetElement.value) == null ? void 0 : _b.focus();\n }\n });\n watch(\n targetElement,\n () => {\n focused.value = initialValue;\n },\n { immediate: true, flush: \"post\" }\n );\n return { focused };\n}\n\nfunction useFocusWithin(target, options = {}) {\n const activeElement = useActiveElement(options);\n const targetElement = computed(() => unrefElement(target));\n const focused = computed(() => targetElement.value && activeElement.value ? targetElement.value.contains(activeElement.value) : false);\n return { focused };\n}\n\nfunction useFps(options) {\n var _a;\n const fps = ref(0);\n if (typeof performance === \"undefined\")\n return fps;\n const every = (_a = options == null ? void 0 : options.every) != null ? _a : 10;\n let last = performance.now();\n let ticks = 0;\n useRafFn(() => {\n ticks += 1;\n if (ticks >= every) {\n const now = performance.now();\n const diff = now - last;\n fps.value = Math.round(1e3 / (diff / ticks));\n last = now;\n ticks = 0;\n }\n });\n return fps;\n}\n\nconst eventHandlers = [\n \"fullscreenchange\",\n \"webkitfullscreenchange\",\n \"webkitendfullscreen\",\n \"mozfullscreenchange\",\n \"MSFullscreenChange\"\n];\nfunction useFullscreen(target, options = {}) {\n const {\n document = defaultDocument,\n autoExit = false\n } = options;\n const targetRef = computed(() => {\n var _a;\n return (_a = unrefElement(target)) != null ? _a : document == null ? void 0 : document.querySelector(\"html\");\n });\n const isFullscreen = ref(false);\n const requestMethod = computed(() => {\n return [\n \"requestFullscreen\",\n \"webkitRequestFullscreen\",\n \"webkitEnterFullscreen\",\n \"webkitEnterFullScreen\",\n \"webkitRequestFullScreen\",\n \"mozRequestFullScreen\",\n \"msRequestFullscreen\"\n ].find((m) => document && m in document || targetRef.value && m in targetRef.value);\n });\n const exitMethod = computed(() => {\n return [\n \"exitFullscreen\",\n \"webkitExitFullscreen\",\n \"webkitExitFullScreen\",\n \"webkitCancelFullScreen\",\n \"mozCancelFullScreen\",\n \"msExitFullscreen\"\n ].find((m) => document && m in document || targetRef.value && m in targetRef.value);\n });\n const fullscreenEnabled = computed(() => {\n return [\n \"fullScreen\",\n \"webkitIsFullScreen\",\n \"webkitDisplayingFullscreen\",\n \"mozFullScreen\",\n \"msFullscreenElement\"\n ].find((m) => document && m in document || targetRef.value && m in targetRef.value);\n });\n const fullscreenElementMethod = [\n \"fullscreenElement\",\n \"webkitFullscreenElement\",\n \"mozFullScreenElement\",\n \"msFullscreenElement\"\n ].find((m) => document && m in document);\n const isSupported = useSupported(\n () => targetRef.value && document && requestMethod.value !== void 0 && exitMethod.value !== void 0 && fullscreenEnabled.value !== void 0\n );\n const isCurrentElementFullScreen = () => {\n if (fullscreenElementMethod)\n return (document == null ? void 0 : document[fullscreenElementMethod]) === targetRef.value;\n return false;\n };\n const isElementFullScreen = () => {\n if (fullscreenEnabled.value) {\n if (document && document[fullscreenEnabled.value] != null) {\n return document[fullscreenEnabled.value];\n } else {\n const target2 = targetRef.value;\n if ((target2 == null ? void 0 : target2[fullscreenEnabled.value]) != null) {\n return Boolean(target2[fullscreenEnabled.value]);\n }\n }\n }\n return false;\n };\n async function exit() {\n if (!isSupported.value)\n return;\n if (exitMethod.value) {\n if ((document == null ? void 0 : document[exitMethod.value]) != null) {\n await document[exitMethod.value]();\n } else {\n const target2 = targetRef.value;\n if ((target2 == null ? void 0 : target2[exitMethod.value]) != null)\n await target2[exitMethod.value]();\n }\n }\n isFullscreen.value = false;\n }\n async function enter() {\n if (!isSupported.value)\n return;\n if (isElementFullScreen())\n await exit();\n const target2 = targetRef.value;\n if (requestMethod.value && (target2 == null ? void 0 : target2[requestMethod.value]) != null) {\n await target2[requestMethod.value]();\n isFullscreen.value = true;\n }\n }\n async function toggle() {\n await (isFullscreen.value ? exit() : enter());\n }\n const handlerCallback = () => {\n const isElementFullScreenValue = isElementFullScreen();\n if (!isElementFullScreenValue || isElementFullScreenValue && isCurrentElementFullScreen())\n isFullscreen.value = isElementFullScreenValue;\n };\n useEventListener(document, eventHandlers, handlerCallback, false);\n useEventListener(() => unrefElement(targetRef), eventHandlers, handlerCallback, false);\n if (autoExit)\n tryOnScopeDispose(exit);\n return {\n isSupported,\n isFullscreen,\n enter,\n exit,\n toggle\n };\n}\n\nfunction mapGamepadToXbox360Controller(gamepad) {\n return computed(() => {\n if (gamepad.value) {\n return {\n buttons: {\n a: gamepad.value.buttons[0],\n b: gamepad.value.buttons[1],\n x: gamepad.value.buttons[2],\n y: gamepad.value.buttons[3]\n },\n bumper: {\n left: gamepad.value.buttons[4],\n right: gamepad.value.buttons[5]\n },\n triggers: {\n left: gamepad.value.buttons[6],\n right: gamepad.value.buttons[7]\n },\n stick: {\n left: {\n horizontal: gamepad.value.axes[0],\n vertical: gamepad.value.axes[1],\n button: gamepad.value.buttons[10]\n },\n right: {\n horizontal: gamepad.value.axes[2],\n vertical: gamepad.value.axes[3],\n button: gamepad.value.buttons[11]\n }\n },\n dpad: {\n up: gamepad.value.buttons[12],\n down: gamepad.value.buttons[13],\n left: gamepad.value.buttons[14],\n right: gamepad.value.buttons[15]\n },\n back: gamepad.value.buttons[8],\n start: gamepad.value.buttons[9]\n };\n }\n return null;\n });\n}\nfunction useGamepad(options = {}) {\n const {\n navigator = defaultNavigator\n } = options;\n const isSupported = useSupported(() => navigator && \"getGamepads\" in navigator);\n const gamepads = ref([]);\n const onConnectedHook = createEventHook();\n const onDisconnectedHook = createEventHook();\n const stateFromGamepad = (gamepad) => {\n const hapticActuators = [];\n const vibrationActuator = \"vibrationActuator\" in gamepad ? gamepad.vibrationActuator : null;\n if (vibrationActuator)\n hapticActuators.push(vibrationActuator);\n if (gamepad.hapticActuators)\n hapticActuators.push(...gamepad.hapticActuators);\n return {\n id: gamepad.id,\n hapticActuators,\n index: gamepad.index,\n mapping: gamepad.mapping,\n connected: gamepad.connected,\n timestamp: gamepad.timestamp,\n axes: gamepad.axes.map((axes) => axes),\n buttons: gamepad.buttons.map((button) => ({ pressed: button.pressed, touched: button.touched, value: button.value }))\n };\n };\n const updateGamepadState = () => {\n const _gamepads = (navigator == null ? void 0 : navigator.getGamepads()) || [];\n for (let i = 0; i < _gamepads.length; ++i) {\n const gamepad = _gamepads[i];\n if (gamepad) {\n const index = gamepads.value.findIndex(({ index: index2 }) => index2 === gamepad.index);\n if (index > -1)\n gamepads.value[index] = stateFromGamepad(gamepad);\n }\n }\n };\n const { isActive, pause, resume } = useRafFn(updateGamepadState);\n const onGamepadConnected = (gamepad) => {\n if (!gamepads.value.some(({ index }) => index === gamepad.index)) {\n gamepads.value.push(stateFromGamepad(gamepad));\n onConnectedHook.trigger(gamepad.index);\n }\n resume();\n };\n const onGamepadDisconnected = (gamepad) => {\n gamepads.value = gamepads.value.filter((x) => x.index !== gamepad.index);\n onDisconnectedHook.trigger(gamepad.index);\n };\n useEventListener(\"gamepadconnected\", (e) => onGamepadConnected(e.gamepad));\n useEventListener(\"gamepaddisconnected\", (e) => onGamepadDisconnected(e.gamepad));\n tryOnMounted(() => {\n const _gamepads = (navigator == null ? void 0 : navigator.getGamepads()) || [];\n if (_gamepads) {\n for (let i = 0; i < _gamepads.length; ++i) {\n const gamepad = _gamepads[i];\n if (gamepad)\n onGamepadConnected(gamepad);\n }\n }\n });\n pause();\n return {\n isSupported,\n onConnected: onConnectedHook.on,\n onDisconnected: onDisconnectedHook.on,\n gamepads,\n pause,\n resume,\n isActive\n };\n}\n\nfunction useGeolocation(options = {}) {\n const {\n enableHighAccuracy = true,\n maximumAge = 3e4,\n timeout = 27e3,\n navigator = defaultNavigator,\n immediate = true\n } = options;\n const isSupported = useSupported(() => navigator && \"geolocation\" in navigator);\n const locatedAt = ref(null);\n const error = shallowRef(null);\n const coords = ref({\n accuracy: 0,\n latitude: Infinity,\n longitude: Infinity,\n altitude: null,\n altitudeAccuracy: null,\n heading: null,\n speed: null\n });\n function updatePosition(position) {\n locatedAt.value = position.timestamp;\n coords.value = position.coords;\n error.value = null;\n }\n let watcher;\n function resume() {\n if (isSupported.value) {\n watcher = navigator.geolocation.watchPosition(\n updatePosition,\n (err) => error.value = err,\n {\n enableHighAccuracy,\n maximumAge,\n timeout\n }\n );\n }\n }\n if (immediate)\n resume();\n function pause() {\n if (watcher && navigator)\n navigator.geolocation.clearWatch(watcher);\n }\n tryOnScopeDispose(() => {\n pause();\n });\n return {\n isSupported,\n coords,\n locatedAt,\n error,\n resume,\n pause\n };\n}\n\nconst defaultEvents$1 = [\"mousemove\", \"mousedown\", \"resize\", \"keydown\", \"touchstart\", \"wheel\"];\nconst oneMinute = 6e4;\nfunction useIdle(timeout = oneMinute, options = {}) {\n const {\n initialState = false,\n listenForVisibilityChange = true,\n events = defaultEvents$1,\n window = defaultWindow,\n eventFilter = throttleFilter(50)\n } = options;\n const idle = ref(initialState);\n const lastActive = ref(timestamp());\n let timer;\n const reset = () => {\n idle.value = false;\n clearTimeout(timer);\n timer = setTimeout(() => idle.value = true, timeout);\n };\n const onEvent = createFilterWrapper(\n eventFilter,\n () => {\n lastActive.value = timestamp();\n reset();\n }\n );\n if (window) {\n const document = window.document;\n for (const event of events)\n useEventListener(window, event, onEvent, { passive: true });\n if (listenForVisibilityChange) {\n useEventListener(document, \"visibilitychange\", () => {\n if (!document.hidden)\n onEvent();\n });\n }\n reset();\n }\n return {\n idle,\n lastActive,\n reset\n };\n}\n\nvar __defProp$a = Object.defineProperty;\nvar __getOwnPropSymbols$b = Object.getOwnPropertySymbols;\nvar __hasOwnProp$b = Object.prototype.hasOwnProperty;\nvar __propIsEnum$b = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$a = (obj, key, value) => key in obj ? __defProp$a(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$a = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$b.call(b, prop))\n __defNormalProp$a(a, prop, b[prop]);\n if (__getOwnPropSymbols$b)\n for (var prop of __getOwnPropSymbols$b(b)) {\n if (__propIsEnum$b.call(b, prop))\n __defNormalProp$a(a, prop, b[prop]);\n }\n return a;\n};\nasync function loadImage(options) {\n return new Promise((resolve, reject) => {\n const img = new Image();\n const { src, srcset, sizes, class: clazz, loading, crossorigin } = options;\n img.src = src;\n if (srcset)\n img.srcset = srcset;\n if (sizes)\n img.sizes = sizes;\n if (clazz)\n img.className = clazz;\n if (loading)\n img.loading = loading;\n if (crossorigin)\n img.crossOrigin = crossorigin;\n img.onload = () => resolve(img);\n img.onerror = reject;\n });\n}\nfunction useImage(options, asyncStateOptions = {}) {\n const state = useAsyncState(\n () => loadImage(toValue(options)),\n void 0,\n __spreadValues$a({\n resetOnExecute: true\n }, asyncStateOptions)\n );\n watch(\n () => toValue(options),\n () => state.execute(asyncStateOptions.delay),\n { deep: true }\n );\n return state;\n}\n\nconst ARRIVED_STATE_THRESHOLD_PIXELS = 1;\nfunction useScroll(element, options = {}) {\n const {\n throttle = 0,\n idle = 200,\n onStop = noop,\n onScroll = noop,\n offset = {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n },\n eventListenerOptions = {\n capture: false,\n passive: true\n },\n behavior = \"auto\"\n } = options;\n const internalX = ref(0);\n const internalY = ref(0);\n const x = computed({\n get() {\n return internalX.value;\n },\n set(x2) {\n scrollTo(x2, void 0);\n }\n });\n const y = computed({\n get() {\n return internalY.value;\n },\n set(y2) {\n scrollTo(void 0, y2);\n }\n });\n function scrollTo(_x, _y) {\n var _a, _b, _c;\n const _element = toValue(element);\n if (!_element)\n return;\n (_c = _element instanceof Document ? document.body : _element) == null ? void 0 : _c.scrollTo({\n top: (_a = toValue(_y)) != null ? _a : y.value,\n left: (_b = toValue(_x)) != null ? _b : x.value,\n behavior: toValue(behavior)\n });\n }\n const isScrolling = ref(false);\n const arrivedState = reactive({\n left: true,\n right: false,\n top: true,\n bottom: false\n });\n const directions = reactive({\n left: false,\n right: false,\n top: false,\n bottom: false\n });\n const onScrollEnd = (e) => {\n if (!isScrolling.value)\n return;\n isScrolling.value = false;\n directions.left = false;\n directions.right = false;\n directions.top = false;\n directions.bottom = false;\n onStop(e);\n };\n const onScrollEndDebounced = useDebounceFn(onScrollEnd, throttle + idle);\n const setArrivedState = (target) => {\n const el = target === document ? target.documentElement : target;\n const { display, flexDirection } = getComputedStyle(el);\n const scrollLeft = el.scrollLeft;\n directions.left = scrollLeft < internalX.value;\n directions.right = scrollLeft > internalX.value;\n const left = Math.abs(scrollLeft) <= 0 + (offset.left || 0);\n const right = Math.abs(scrollLeft) + el.clientWidth >= el.scrollWidth - (offset.right || 0) - ARRIVED_STATE_THRESHOLD_PIXELS;\n if (display === \"flex\" && flexDirection === \"row-reverse\") {\n arrivedState.left = right;\n arrivedState.right = left;\n } else {\n arrivedState.left = left;\n arrivedState.right = right;\n }\n internalX.value = scrollLeft;\n let scrollTop = el.scrollTop;\n if (target === document && !scrollTop)\n scrollTop = document.body.scrollTop;\n directions.top = scrollTop < internalY.value;\n directions.bottom = scrollTop > internalY.value;\n const top = Math.abs(scrollTop) <= 0 + (offset.top || 0);\n const bottom = Math.abs(scrollTop) + el.clientHeight >= el.scrollHeight - (offset.bottom || 0) - ARRIVED_STATE_THRESHOLD_PIXELS;\n if (display === \"flex\" && flexDirection === \"column-reverse\") {\n arrivedState.top = bottom;\n arrivedState.bottom = top;\n } else {\n arrivedState.top = top;\n arrivedState.bottom = bottom;\n }\n internalY.value = scrollTop;\n };\n const onScrollHandler = (e) => {\n const eventTarget = e.target === document ? e.target.documentElement : e.target;\n setArrivedState(eventTarget);\n isScrolling.value = true;\n onScrollEndDebounced(e);\n onScroll(e);\n };\n useEventListener(\n element,\n \"scroll\",\n throttle ? useThrottleFn(onScrollHandler, throttle, true, false) : onScrollHandler,\n eventListenerOptions\n );\n useEventListener(\n element,\n \"scrollend\",\n onScrollEnd,\n eventListenerOptions\n );\n return {\n x,\n y,\n isScrolling,\n arrivedState,\n directions,\n measure() {\n const _element = toValue(element);\n if (_element)\n setArrivedState(_element);\n }\n };\n}\n\nvar __defProp$9 = Object.defineProperty;\nvar __defProps$3 = Object.defineProperties;\nvar __getOwnPropDescs$3 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$a = Object.getOwnPropertySymbols;\nvar __hasOwnProp$a = Object.prototype.hasOwnProperty;\nvar __propIsEnum$a = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$9 = (obj, key, value) => key in obj ? __defProp$9(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$9 = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$a.call(b, prop))\n __defNormalProp$9(a, prop, b[prop]);\n if (__getOwnPropSymbols$a)\n for (var prop of __getOwnPropSymbols$a(b)) {\n if (__propIsEnum$a.call(b, prop))\n __defNormalProp$9(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps$3 = (a, b) => __defProps$3(a, __getOwnPropDescs$3(b));\nfunction useInfiniteScroll(element, onLoadMore, options = {}) {\n var _a;\n const {\n direction = \"bottom\",\n interval = 100\n } = options;\n const state = reactive(useScroll(\n element,\n __spreadProps$3(__spreadValues$9({}, options), {\n offset: __spreadValues$9({\n [direction]: (_a = options.distance) != null ? _a : 0\n }, options.offset)\n })\n ));\n const promise = ref();\n const isLoading = computed(() => !!promise.value);\n function checkAndLoad() {\n state.measure();\n const el = toValue(element);\n if (!el)\n return;\n const isNarrower = direction === \"bottom\" || direction === \"top\" ? el.scrollHeight <= el.clientHeight : el.scrollWidth <= el.clientWidth;\n if (state.arrivedState[direction] || isNarrower) {\n if (!promise.value) {\n promise.value = Promise.all([\n onLoadMore(state),\n new Promise((resolve) => setTimeout(resolve, interval))\n ]).finally(() => {\n promise.value = null;\n nextTick(() => checkAndLoad());\n });\n }\n }\n }\n watch(\n () => [state.arrivedState[direction], toValue(element)],\n checkAndLoad,\n { immediate: true }\n );\n return {\n isLoading\n };\n}\n\nconst defaultEvents = [\"mousedown\", \"mouseup\", \"keydown\", \"keyup\"];\nfunction useKeyModifier(modifier, options = {}) {\n const {\n events = defaultEvents,\n document = defaultDocument,\n initial = null\n } = options;\n const state = ref(initial);\n if (document) {\n events.forEach((listenerEvent) => {\n useEventListener(document, listenerEvent, (evt) => {\n if (typeof evt.getModifierState === \"function\")\n state.value = evt.getModifierState(modifier);\n });\n });\n }\n return state;\n}\n\nfunction useLocalStorage(key, initialValue, options = {}) {\n const { window = defaultWindow } = options;\n return useStorage(key, initialValue, window == null ? void 0 : window.localStorage, options);\n}\n\nconst DefaultMagicKeysAliasMap = {\n ctrl: \"control\",\n command: \"meta\",\n cmd: \"meta\",\n option: \"alt\",\n up: \"arrowup\",\n down: \"arrowdown\",\n left: \"arrowleft\",\n right: \"arrowright\"\n};\n\nfunction useMagicKeys(options = {}) {\n const {\n reactive: useReactive = false,\n target = defaultWindow,\n aliasMap = DefaultMagicKeysAliasMap,\n passive = true,\n onEventFired = noop\n } = options;\n const current = reactive(/* @__PURE__ */ new Set());\n const obj = {\n toJSON() {\n return {};\n },\n current\n };\n const refs = useReactive ? reactive(obj) : obj;\n const metaDeps = /* @__PURE__ */ new Set();\n const usedKeys = /* @__PURE__ */ new Set();\n function setRefs(key, value) {\n if (key in refs) {\n if (useReactive)\n refs[key] = value;\n else\n refs[key].value = value;\n }\n }\n function reset() {\n current.clear();\n for (const key of usedKeys)\n setRefs(key, false);\n }\n function updateRefs(e, value) {\n var _a, _b;\n const key = (_a = e.key) == null ? void 0 : _a.toLowerCase();\n const code = (_b = e.code) == null ? void 0 : _b.toLowerCase();\n const values = [code, key].filter(Boolean);\n if (key) {\n if (value)\n current.add(key);\n else\n current.delete(key);\n }\n for (const key2 of values) {\n usedKeys.add(key2);\n setRefs(key2, value);\n }\n if (key === \"meta\" && !value) {\n metaDeps.forEach((key2) => {\n current.delete(key2);\n setRefs(key2, false);\n });\n metaDeps.clear();\n } else if (typeof e.getModifierState === \"function\" && e.getModifierState(\"Meta\") && value) {\n [...current, ...values].forEach((key2) => metaDeps.add(key2));\n }\n }\n useEventListener(target, \"keydown\", (e) => {\n updateRefs(e, true);\n return onEventFired(e);\n }, { passive });\n useEventListener(target, \"keyup\", (e) => {\n updateRefs(e, false);\n return onEventFired(e);\n }, { passive });\n useEventListener(\"blur\", reset, { passive: true });\n useEventListener(\"focus\", reset, { passive: true });\n const proxy = new Proxy(\n refs,\n {\n get(target2, prop, rec) {\n if (typeof prop !== \"string\")\n return Reflect.get(target2, prop, rec);\n prop = prop.toLowerCase();\n if (prop in aliasMap)\n prop = aliasMap[prop];\n if (!(prop in refs)) {\n if (/[+_-]/.test(prop)) {\n const keys = prop.split(/[+_-]/g).map((i) => i.trim());\n refs[prop] = computed(() => keys.every((key) => toValue(proxy[key])));\n } else {\n refs[prop] = ref(false);\n }\n }\n const r = Reflect.get(target2, prop, rec);\n return useReactive ? toValue(r) : r;\n }\n }\n );\n return proxy;\n}\n\nvar __defProp$8 = Object.defineProperty;\nvar __getOwnPropSymbols$9 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$9 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$9 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$8 = (obj, key, value) => key in obj ? __defProp$8(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$8 = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$9.call(b, prop))\n __defNormalProp$8(a, prop, b[prop]);\n if (__getOwnPropSymbols$9)\n for (var prop of __getOwnPropSymbols$9(b)) {\n if (__propIsEnum$9.call(b, prop))\n __defNormalProp$8(a, prop, b[prop]);\n }\n return a;\n};\nfunction usingElRef(source, cb) {\n if (toValue(source))\n cb(toValue(source));\n}\nfunction timeRangeToArray(timeRanges) {\n let ranges = [];\n for (let i = 0; i < timeRanges.length; ++i)\n ranges = [...ranges, [timeRanges.start(i), timeRanges.end(i)]];\n return ranges;\n}\nfunction tracksToArray(tracks) {\n return Array.from(tracks).map(({ label, kind, language, mode, activeCues, cues, inBandMetadataTrackDispatchType }, id) => ({ id, label, kind, language, mode, activeCues, cues, inBandMetadataTrackDispatchType }));\n}\nconst defaultOptions = {\n src: \"\",\n tracks: []\n};\nfunction useMediaControls(target, options = {}) {\n options = __spreadValues$8(__spreadValues$8({}, defaultOptions), options);\n const {\n document = defaultDocument\n } = options;\n const currentTime = ref(0);\n const duration = ref(0);\n const seeking = ref(false);\n const volume = ref(1);\n const waiting = ref(false);\n const ended = ref(false);\n const playing = ref(false);\n const rate = ref(1);\n const stalled = ref(false);\n const buffered = ref([]);\n const tracks = ref([]);\n const selectedTrack = ref(-1);\n const isPictureInPicture = ref(false);\n const muted = ref(false);\n const supportsPictureInPicture = document && \"pictureInPictureEnabled\" in document;\n const sourceErrorEvent = createEventHook();\n const disableTrack = (track) => {\n usingElRef(target, (el) => {\n if (track) {\n const id = typeof track === \"number\" ? track : track.id;\n el.textTracks[id].mode = \"disabled\";\n } else {\n for (let i = 0; i < el.textTracks.length; ++i)\n el.textTracks[i].mode = \"disabled\";\n }\n selectedTrack.value = -1;\n });\n };\n const enableTrack = (track, disableTracks = true) => {\n usingElRef(target, (el) => {\n const id = typeof track === \"number\" ? track : track.id;\n if (disableTracks)\n disableTrack();\n el.textTracks[id].mode = \"showing\";\n selectedTrack.value = id;\n });\n };\n const togglePictureInPicture = () => {\n return new Promise((resolve, reject) => {\n usingElRef(target, async (el) => {\n if (supportsPictureInPicture) {\n if (!isPictureInPicture.value) {\n el.requestPictureInPicture().then(resolve).catch(reject);\n } else {\n document.exitPictureInPicture().then(resolve).catch(reject);\n }\n }\n });\n });\n };\n watchEffect(() => {\n if (!document)\n return;\n const el = toValue(target);\n if (!el)\n return;\n const src = toValue(options.src);\n let sources = [];\n if (!src)\n return;\n if (typeof src === \"string\")\n sources = [{ src }];\n else if (Array.isArray(src))\n sources = src;\n else if (isObject(src))\n sources = [src];\n el.querySelectorAll(\"source\").forEach((e) => {\n e.removeEventListener(\"error\", sourceErrorEvent.trigger);\n e.remove();\n });\n sources.forEach(({ src: src2, type }) => {\n const source = document.createElement(\"source\");\n source.setAttribute(\"src\", src2);\n source.setAttribute(\"type\", type || \"\");\n source.addEventListener(\"error\", sourceErrorEvent.trigger);\n el.appendChild(source);\n });\n el.load();\n });\n tryOnScopeDispose(() => {\n const el = toValue(target);\n if (!el)\n return;\n el.querySelectorAll(\"source\").forEach((e) => e.removeEventListener(\"error\", sourceErrorEvent.trigger));\n });\n watch([target, volume], () => {\n const el = toValue(target);\n if (!el)\n return;\n el.volume = volume.value;\n });\n watch([target, muted], () => {\n const el = toValue(target);\n if (!el)\n return;\n el.muted = muted.value;\n });\n watch([target, rate], () => {\n const el = toValue(target);\n if (!el)\n return;\n el.playbackRate = rate.value;\n });\n watchEffect(() => {\n if (!document)\n return;\n const textTracks = toValue(options.tracks);\n const el = toValue(target);\n if (!textTracks || !textTracks.length || !el)\n return;\n el.querySelectorAll(\"track\").forEach((e) => e.remove());\n textTracks.forEach(({ default: isDefault, kind, label, src, srcLang }, i) => {\n const track = document.createElement(\"track\");\n track.default = isDefault || false;\n track.kind = kind;\n track.label = label;\n track.src = src;\n track.srclang = srcLang;\n if (track.default)\n selectedTrack.value = i;\n el.appendChild(track);\n });\n });\n const { ignoreUpdates: ignoreCurrentTimeUpdates } = watchIgnorable(currentTime, (time) => {\n const el = toValue(target);\n if (!el)\n return;\n el.currentTime = time;\n });\n const { ignoreUpdates: ignorePlayingUpdates } = watchIgnorable(playing, (isPlaying) => {\n const el = toValue(target);\n if (!el)\n return;\n isPlaying ? el.play() : el.pause();\n });\n useEventListener(target, \"timeupdate\", () => ignoreCurrentTimeUpdates(() => currentTime.value = toValue(target).currentTime));\n useEventListener(target, \"durationchange\", () => duration.value = toValue(target).duration);\n useEventListener(target, \"progress\", () => buffered.value = timeRangeToArray(toValue(target).buffered));\n useEventListener(target, \"seeking\", () => seeking.value = true);\n useEventListener(target, \"seeked\", () => seeking.value = false);\n useEventListener(target, \"waiting\", () => waiting.value = true);\n useEventListener(target, \"playing\", () => {\n waiting.value = false;\n ended.value = false;\n });\n useEventListener(target, \"ratechange\", () => rate.value = toValue(target).playbackRate);\n useEventListener(target, \"stalled\", () => stalled.value = true);\n useEventListener(target, \"ended\", () => ended.value = true);\n useEventListener(target, \"pause\", () => ignorePlayingUpdates(() => playing.value = false));\n useEventListener(target, \"play\", () => ignorePlayingUpdates(() => playing.value = true));\n useEventListener(target, \"enterpictureinpicture\", () => isPictureInPicture.value = true);\n useEventListener(target, \"leavepictureinpicture\", () => isPictureInPicture.value = false);\n useEventListener(target, \"volumechange\", () => {\n const el = toValue(target);\n if (!el)\n return;\n volume.value = el.volume;\n muted.value = el.muted;\n });\n const listeners = [];\n const stop = watch([target], () => {\n const el = toValue(target);\n if (!el)\n return;\n stop();\n listeners[0] = useEventListener(el.textTracks, \"addtrack\", () => tracks.value = tracksToArray(el.textTracks));\n listeners[1] = useEventListener(el.textTracks, \"removetrack\", () => tracks.value = tracksToArray(el.textTracks));\n listeners[2] = useEventListener(el.textTracks, \"change\", () => tracks.value = tracksToArray(el.textTracks));\n });\n tryOnScopeDispose(() => listeners.forEach((listener) => listener()));\n return {\n currentTime,\n duration,\n waiting,\n seeking,\n ended,\n stalled,\n buffered,\n playing,\n rate,\n // Volume\n volume,\n muted,\n // Tracks\n tracks,\n selectedTrack,\n enableTrack,\n disableTrack,\n // Picture in Picture\n supportsPictureInPicture,\n togglePictureInPicture,\n isPictureInPicture,\n // Events\n onSourceError: sourceErrorEvent.on\n };\n}\n\nfunction getMapVue2Compat() {\n const data = reactive({});\n return {\n get: (key) => data[key],\n set: (key, value) => set(data, key, value),\n has: (key) => hasOwn(data, key),\n delete: (key) => del(data, key),\n clear: () => {\n Object.keys(data).forEach((key) => {\n del(data, key);\n });\n }\n };\n}\nfunction useMemoize(resolver, options) {\n const initCache = () => {\n if (options == null ? void 0 : options.cache)\n return reactive(options.cache);\n if (isVue2)\n return getMapVue2Compat();\n return reactive(/* @__PURE__ */ new Map());\n };\n const cache = initCache();\n const generateKey = (...args) => (options == null ? void 0 : options.getKey) ? options.getKey(...args) : JSON.stringify(args);\n const _loadData = (key, ...args) => {\n cache.set(key, resolver(...args));\n return cache.get(key);\n };\n const loadData = (...args) => _loadData(generateKey(...args), ...args);\n const deleteData = (...args) => {\n cache.delete(generateKey(...args));\n };\n const clearData = () => {\n cache.clear();\n };\n const memoized = (...args) => {\n const key = generateKey(...args);\n if (cache.has(key))\n return cache.get(key);\n return _loadData(key, ...args);\n };\n memoized.load = loadData;\n memoized.delete = deleteData;\n memoized.clear = clearData;\n memoized.generateKey = generateKey;\n memoized.cache = cache;\n return memoized;\n}\n\nfunction useMemory(options = {}) {\n const memory = ref();\n const isSupported = useSupported(() => typeof performance !== \"undefined\" && \"memory\" in performance);\n if (isSupported.value) {\n const { interval = 1e3 } = options;\n useIntervalFn(() => {\n memory.value = performance.memory;\n }, interval, { immediate: options.immediate, immediateCallback: options.immediateCallback });\n }\n return { isSupported, memory };\n}\n\nconst BuiltinExtractors = {\n page: (event) => [event.pageX, event.pageY],\n client: (event) => [event.clientX, event.clientY],\n screen: (event) => [event.screenX, event.screenY],\n movement: (event) => event instanceof Touch ? null : [event.movementX, event.movementY]\n};\nfunction useMouse(options = {}) {\n const {\n type = \"page\",\n touch = true,\n resetOnTouchEnds = false,\n initialValue = { x: 0, y: 0 },\n window = defaultWindow,\n target = window,\n eventFilter\n } = options;\n const x = ref(initialValue.x);\n const y = ref(initialValue.y);\n const sourceType = ref(null);\n const extractor = typeof type === \"function\" ? type : BuiltinExtractors[type];\n const mouseHandler = (event) => {\n const result = extractor(event);\n if (result) {\n [x.value, y.value] = result;\n sourceType.value = \"mouse\";\n }\n };\n const touchHandler = (event) => {\n if (event.touches.length > 0) {\n const result = extractor(event.touches[0]);\n if (result) {\n [x.value, y.value] = result;\n sourceType.value = \"touch\";\n }\n }\n };\n const reset = () => {\n x.value = initialValue.x;\n y.value = initialValue.y;\n };\n const mouseHandlerWrapper = eventFilter ? (event) => eventFilter(() => mouseHandler(event), {}) : (event) => mouseHandler(event);\n const touchHandlerWrapper = eventFilter ? (event) => eventFilter(() => touchHandler(event), {}) : (event) => touchHandler(event);\n if (target) {\n useEventListener(target, \"mousemove\", mouseHandlerWrapper, { passive: true });\n useEventListener(target, \"dragover\", mouseHandlerWrapper, { passive: true });\n if (touch && type !== \"movement\") {\n useEventListener(target, \"touchstart\", touchHandlerWrapper, { passive: true });\n useEventListener(target, \"touchmove\", touchHandlerWrapper, { passive: true });\n if (resetOnTouchEnds)\n useEventListener(target, \"touchend\", reset, { passive: true });\n }\n }\n return {\n x,\n y,\n sourceType\n };\n}\n\nfunction useMouseInElement(target, options = {}) {\n const {\n handleOutside = true,\n window = defaultWindow\n } = options;\n const { x, y, sourceType } = useMouse(options);\n const targetRef = ref(target != null ? target : window == null ? void 0 : window.document.body);\n const elementX = ref(0);\n const elementY = ref(0);\n const elementPositionX = ref(0);\n const elementPositionY = ref(0);\n const elementHeight = ref(0);\n const elementWidth = ref(0);\n const isOutside = ref(true);\n let stop = () => {\n };\n if (window) {\n stop = watch(\n [targetRef, x, y],\n () => {\n const el = unrefElement(targetRef);\n if (!el)\n return;\n const {\n left,\n top,\n width,\n height\n } = el.getBoundingClientRect();\n elementPositionX.value = left + window.pageXOffset;\n elementPositionY.value = top + window.pageYOffset;\n elementHeight.value = height;\n elementWidth.value = width;\n const elX = x.value - elementPositionX.value;\n const elY = y.value - elementPositionY.value;\n isOutside.value = width === 0 || height === 0 || elX < 0 || elY < 0 || elX > width || elY > height;\n if (handleOutside || !isOutside.value) {\n elementX.value = elX;\n elementY.value = elY;\n }\n },\n { immediate: true }\n );\n useEventListener(document, \"mouseleave\", () => {\n isOutside.value = true;\n });\n }\n return {\n x,\n y,\n sourceType,\n elementX,\n elementY,\n elementPositionX,\n elementPositionY,\n elementHeight,\n elementWidth,\n isOutside,\n stop\n };\n}\n\nfunction useMousePressed(options = {}) {\n const {\n touch = true,\n drag = true,\n initialValue = false,\n window = defaultWindow\n } = options;\n const pressed = ref(initialValue);\n const sourceType = ref(null);\n if (!window) {\n return {\n pressed,\n sourceType\n };\n }\n const onPressed = (srcType) => () => {\n pressed.value = true;\n sourceType.value = srcType;\n };\n const onReleased = () => {\n pressed.value = false;\n sourceType.value = null;\n };\n const target = computed(() => unrefElement(options.target) || window);\n useEventListener(target, \"mousedown\", onPressed(\"mouse\"), { passive: true });\n useEventListener(window, \"mouseleave\", onReleased, { passive: true });\n useEventListener(window, \"mouseup\", onReleased, { passive: true });\n if (drag) {\n useEventListener(target, \"dragstart\", onPressed(\"mouse\"), { passive: true });\n useEventListener(window, \"drop\", onReleased, { passive: true });\n useEventListener(window, \"dragend\", onReleased, { passive: true });\n }\n if (touch) {\n useEventListener(target, \"touchstart\", onPressed(\"touch\"), { passive: true });\n useEventListener(window, \"touchend\", onReleased, { passive: true });\n useEventListener(window, \"touchcancel\", onReleased, { passive: true });\n }\n return {\n pressed,\n sourceType\n };\n}\n\nfunction useNavigatorLanguage(options = {}) {\n const { window = defaultWindow } = options;\n const navigator = window == null ? void 0 : window.navigator;\n const isSupported = useSupported(() => navigator && \"language\" in navigator);\n const language = ref(navigator == null ? void 0 : navigator.language);\n useEventListener(window, \"languagechange\", () => {\n if (navigator)\n language.value = navigator.language;\n });\n return {\n isSupported,\n language\n };\n}\n\nfunction useNetwork(options = {}) {\n const { window = defaultWindow } = options;\n const navigator = window == null ? void 0 : window.navigator;\n const isSupported = useSupported(() => navigator && \"connection\" in navigator);\n const isOnline = ref(true);\n const saveData = ref(false);\n const offlineAt = ref(void 0);\n const onlineAt = ref(void 0);\n const downlink = ref(void 0);\n const downlinkMax = ref(void 0);\n const rtt = ref(void 0);\n const effectiveType = ref(void 0);\n const type = ref(\"unknown\");\n const connection = isSupported.value && navigator.connection;\n function updateNetworkInformation() {\n if (!navigator)\n return;\n isOnline.value = navigator.onLine;\n offlineAt.value = isOnline.value ? void 0 : Date.now();\n onlineAt.value = isOnline.value ? Date.now() : void 0;\n if (connection) {\n downlink.value = connection.downlink;\n downlinkMax.value = connection.downlinkMax;\n effectiveType.value = connection.effectiveType;\n rtt.value = connection.rtt;\n saveData.value = connection.saveData;\n type.value = connection.type;\n }\n }\n if (window) {\n useEventListener(window, \"offline\", () => {\n isOnline.value = false;\n offlineAt.value = Date.now();\n });\n useEventListener(window, \"online\", () => {\n isOnline.value = true;\n onlineAt.value = Date.now();\n });\n }\n if (connection)\n useEventListener(connection, \"change\", updateNetworkInformation, false);\n updateNetworkInformation();\n return {\n isSupported,\n isOnline,\n saveData,\n offlineAt,\n onlineAt,\n downlink,\n downlinkMax,\n effectiveType,\n rtt,\n type\n };\n}\n\nvar __defProp$7 = Object.defineProperty;\nvar __getOwnPropSymbols$8 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$8 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$8 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$7 = (obj, key, value) => key in obj ? __defProp$7(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$7 = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$8.call(b, prop))\n __defNormalProp$7(a, prop, b[prop]);\n if (__getOwnPropSymbols$8)\n for (var prop of __getOwnPropSymbols$8(b)) {\n if (__propIsEnum$8.call(b, prop))\n __defNormalProp$7(a, prop, b[prop]);\n }\n return a;\n};\nfunction useNow(options = {}) {\n const {\n controls: exposeControls = false,\n interval = \"requestAnimationFrame\"\n } = options;\n const now = ref(/* @__PURE__ */ new Date());\n const update = () => now.value = /* @__PURE__ */ new Date();\n const controls = interval === \"requestAnimationFrame\" ? useRafFn(update, { immediate: true }) : useIntervalFn(update, interval, { immediate: true });\n if (exposeControls) {\n return __spreadValues$7({\n now\n }, controls);\n } else {\n return now;\n }\n}\n\nfunction useObjectUrl(object) {\n const url = ref();\n const release = () => {\n if (url.value)\n URL.revokeObjectURL(url.value);\n url.value = void 0;\n };\n watch(\n () => toValue(object),\n (newObject) => {\n release();\n if (newObject)\n url.value = URL.createObjectURL(newObject);\n },\n { immediate: true }\n );\n tryOnScopeDispose(release);\n return readonly(url);\n}\n\nfunction useClamp(value, min, max) {\n if (typeof value === \"function\" || isReadonly(value))\n return computed(() => clamp(toValue(value), toValue(min), toValue(max)));\n const _value = ref(value);\n return computed({\n get() {\n return _value.value = clamp(_value.value, toValue(min), toValue(max));\n },\n set(value2) {\n _value.value = clamp(value2, toValue(min), toValue(max));\n }\n });\n}\n\nfunction useOffsetPagination(options) {\n const {\n total = Infinity,\n pageSize = 10,\n page = 1,\n onPageChange = noop,\n onPageSizeChange = noop,\n onPageCountChange = noop\n } = options;\n const currentPageSize = useClamp(pageSize, 1, Infinity);\n const pageCount = computed(() => Math.max(\n 1,\n Math.ceil(toValue(total) / toValue(currentPageSize))\n ));\n const currentPage = useClamp(page, 1, pageCount);\n const isFirstPage = computed(() => currentPage.value === 1);\n const isLastPage = computed(() => currentPage.value === pageCount.value);\n if (isRef(page))\n syncRef(page, currentPage);\n if (isRef(pageSize))\n syncRef(pageSize, currentPageSize);\n function prev() {\n currentPage.value--;\n }\n function next() {\n currentPage.value++;\n }\n const returnValue = {\n currentPage,\n currentPageSize,\n pageCount,\n isFirstPage,\n isLastPage,\n prev,\n next\n };\n watch(currentPage, () => {\n onPageChange(reactive(returnValue));\n });\n watch(currentPageSize, () => {\n onPageSizeChange(reactive(returnValue));\n });\n watch(pageCount, () => {\n onPageCountChange(reactive(returnValue));\n });\n return returnValue;\n}\n\nfunction useOnline(options = {}) {\n const { isOnline } = useNetwork(options);\n return isOnline;\n}\n\nfunction usePageLeave(options = {}) {\n const { window = defaultWindow } = options;\n const isLeft = ref(false);\n const handler = (event) => {\n if (!window)\n return;\n event = event || window.event;\n const from = event.relatedTarget || event.toElement;\n isLeft.value = !from;\n };\n if (window) {\n useEventListener(window, \"mouseout\", handler, { passive: true });\n useEventListener(window.document, \"mouseleave\", handler, { passive: true });\n useEventListener(window.document, \"mouseenter\", handler, { passive: true });\n }\n return isLeft;\n}\n\nfunction useParallax(target, options = {}) {\n const {\n deviceOrientationTiltAdjust = (i) => i,\n deviceOrientationRollAdjust = (i) => i,\n mouseTiltAdjust = (i) => i,\n mouseRollAdjust = (i) => i,\n window = defaultWindow\n } = options;\n const orientation = reactive(useDeviceOrientation({ window }));\n const {\n elementX: x,\n elementY: y,\n elementWidth: width,\n elementHeight: height\n } = useMouseInElement(target, { handleOutside: false, window });\n const source = computed(() => {\n if (orientation.isSupported && (orientation.alpha != null && orientation.alpha !== 0 || orientation.gamma != null && orientation.gamma !== 0))\n return \"deviceOrientation\";\n return \"mouse\";\n });\n const roll = computed(() => {\n if (source.value === \"deviceOrientation\") {\n const value = -orientation.beta / 90;\n return deviceOrientationRollAdjust(value);\n } else {\n const value = -(y.value - height.value / 2) / height.value;\n return mouseRollAdjust(value);\n }\n });\n const tilt = computed(() => {\n if (source.value === \"deviceOrientation\") {\n const value = orientation.gamma / 90;\n return deviceOrientationTiltAdjust(value);\n } else {\n const value = (x.value - width.value / 2) / width.value;\n return mouseTiltAdjust(value);\n }\n });\n return { roll, tilt, source };\n}\n\nfunction useParentElement(element = useCurrentElement()) {\n const parentElement = shallowRef();\n const update = () => {\n const el = unrefElement(element);\n if (el)\n parentElement.value = el.parentElement;\n };\n tryOnMounted(update);\n watch(() => toValue(element), update);\n return parentElement;\n}\n\nvar __getOwnPropSymbols$7 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$7 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$7 = Object.prototype.propertyIsEnumerable;\nvar __objRest$1 = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp$7.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols$7)\n for (var prop of __getOwnPropSymbols$7(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum$7.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nfunction usePerformanceObserver(options, callback) {\n const _a = options, {\n window = defaultWindow,\n immediate = true\n } = _a, performanceOptions = __objRest$1(_a, [\n \"window\",\n \"immediate\"\n ]);\n const isSupported = useSupported(() => window && \"PerformanceObserver\" in window);\n let observer;\n const stop = () => {\n observer == null ? void 0 : observer.disconnect();\n };\n const start = () => {\n if (isSupported.value) {\n stop();\n observer = new PerformanceObserver(callback);\n observer.observe(performanceOptions);\n }\n };\n tryOnScopeDispose(stop);\n if (immediate)\n start();\n return {\n isSupported,\n start,\n stop\n };\n}\n\nvar __defProp$6 = Object.defineProperty;\nvar __defProps$2 = Object.defineProperties;\nvar __getOwnPropDescs$2 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$6 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$6 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$6 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$6 = (obj, key, value) => key in obj ? __defProp$6(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$6 = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$6.call(b, prop))\n __defNormalProp$6(a, prop, b[prop]);\n if (__getOwnPropSymbols$6)\n for (var prop of __getOwnPropSymbols$6(b)) {\n if (__propIsEnum$6.call(b, prop))\n __defNormalProp$6(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps$2 = (a, b) => __defProps$2(a, __getOwnPropDescs$2(b));\nconst defaultState = {\n x: 0,\n y: 0,\n pointerId: 0,\n pressure: 0,\n tiltX: 0,\n tiltY: 0,\n width: 0,\n height: 0,\n twist: 0,\n pointerType: null\n};\nconst keys = /* @__PURE__ */ Object.keys(defaultState);\nfunction usePointer(options = {}) {\n const {\n target = defaultWindow\n } = options;\n const isInside = ref(false);\n const state = ref(options.initialValue || {});\n Object.assign(state.value, defaultState, state.value);\n const handler = (event) => {\n isInside.value = true;\n if (options.pointerTypes && !options.pointerTypes.includes(event.pointerType))\n return;\n state.value = objectPick(event, keys, false);\n };\n if (target) {\n useEventListener(target, \"pointerdown\", handler, { passive: true });\n useEventListener(target, \"pointermove\", handler, { passive: true });\n useEventListener(target, \"pointerleave\", () => isInside.value = false, { passive: true });\n }\n return __spreadProps$2(__spreadValues$6({}, toRefs(state)), {\n isInside\n });\n}\n\nfunction usePointerLock(target, options = {}) {\n const { document = defaultDocument, pointerLockOptions } = options;\n const isSupported = useSupported(() => document && \"pointerLockElement\" in document);\n const element = ref();\n const triggerElement = ref();\n let targetElement;\n if (isSupported.value) {\n useEventListener(document, \"pointerlockchange\", () => {\n var _a;\n const currentElement = (_a = document.pointerLockElement) != null ? _a : element.value;\n if (targetElement && currentElement === targetElement) {\n element.value = document.pointerLockElement;\n if (!element.value)\n targetElement = triggerElement.value = null;\n }\n });\n useEventListener(document, \"pointerlockerror\", () => {\n var _a;\n const currentElement = (_a = document.pointerLockElement) != null ? _a : element.value;\n if (targetElement && currentElement === targetElement) {\n const action = document.pointerLockElement ? \"release\" : \"acquire\";\n throw new Error(`Failed to ${action} pointer lock.`);\n }\n });\n }\n async function lock(e, options2) {\n var _a;\n if (!isSupported.value)\n throw new Error(\"Pointer Lock API is not supported by your browser.\");\n triggerElement.value = e instanceof Event ? e.currentTarget : null;\n targetElement = e instanceof Event ? (_a = unrefElement(target)) != null ? _a : triggerElement.value : unrefElement(e);\n if (!targetElement)\n throw new Error(\"Target element undefined.\");\n targetElement.requestPointerLock(options2 != null ? options2 : pointerLockOptions);\n return await until(element).toBe(targetElement);\n }\n async function unlock() {\n if (!element.value)\n return false;\n document.exitPointerLock();\n await until(element).toBeNull();\n return true;\n }\n return {\n isSupported,\n element,\n triggerElement,\n lock,\n unlock\n };\n}\n\nfunction usePointerSwipe(target, options = {}) {\n const targetRef = toRef(target);\n const {\n threshold = 50,\n onSwipe,\n onSwipeEnd,\n onSwipeStart\n } = options;\n const posStart = reactive({ x: 0, y: 0 });\n const updatePosStart = (x, y) => {\n posStart.x = x;\n posStart.y = y;\n };\n const posEnd = reactive({ x: 0, y: 0 });\n const updatePosEnd = (x, y) => {\n posEnd.x = x;\n posEnd.y = y;\n };\n const distanceX = computed(() => posStart.x - posEnd.x);\n const distanceY = computed(() => posStart.y - posEnd.y);\n const { max, abs } = Math;\n const isThresholdExceeded = computed(() => max(abs(distanceX.value), abs(distanceY.value)) >= threshold);\n const isSwiping = ref(false);\n const isPointerDown = ref(false);\n const direction = computed(() => {\n if (!isThresholdExceeded.value)\n return \"none\";\n if (abs(distanceX.value) > abs(distanceY.value)) {\n return distanceX.value > 0 ? \"left\" : \"right\";\n } else {\n return distanceY.value > 0 ? \"up\" : \"down\";\n }\n });\n const eventIsAllowed = (e) => {\n var _a, _b, _c;\n const isReleasingButton = e.buttons === 0;\n const isPrimaryButton = e.buttons === 1;\n return (_c = (_b = (_a = options.pointerTypes) == null ? void 0 : _a.includes(e.pointerType)) != null ? _b : isReleasingButton || isPrimaryButton) != null ? _c : true;\n };\n const stops = [\n useEventListener(target, \"pointerdown\", (e) => {\n var _a, _b;\n if (!eventIsAllowed(e))\n return;\n isPointerDown.value = true;\n (_b = (_a = targetRef.value) == null ? void 0 : _a.style) == null ? void 0 : _b.setProperty(\"touch-action\", \"none\");\n const eventTarget = e.target;\n eventTarget == null ? void 0 : eventTarget.setPointerCapture(e.pointerId);\n const { clientX: x, clientY: y } = e;\n updatePosStart(x, y);\n updatePosEnd(x, y);\n onSwipeStart == null ? void 0 : onSwipeStart(e);\n }),\n useEventListener(target, \"pointermove\", (e) => {\n if (!eventIsAllowed(e))\n return;\n if (!isPointerDown.value)\n return;\n const { clientX: x, clientY: y } = e;\n updatePosEnd(x, y);\n if (!isSwiping.value && isThresholdExceeded.value)\n isSwiping.value = true;\n if (isSwiping.value)\n onSwipe == null ? void 0 : onSwipe(e);\n }),\n useEventListener(target, \"pointerup\", (e) => {\n var _a, _b;\n if (!eventIsAllowed(e))\n return;\n if (isSwiping.value)\n onSwipeEnd == null ? void 0 : onSwipeEnd(e, direction.value);\n isPointerDown.value = false;\n isSwiping.value = false;\n (_b = (_a = targetRef.value) == null ? void 0 : _a.style) == null ? void 0 : _b.setProperty(\"touch-action\", \"initial\");\n })\n ];\n const stop = () => stops.forEach((s) => s());\n return {\n isSwiping: readonly(isSwiping),\n direction: readonly(direction),\n posStart: readonly(posStart),\n posEnd: readonly(posEnd),\n distanceX,\n distanceY,\n stop\n };\n}\n\nfunction usePreferredColorScheme(options) {\n const isLight = useMediaQuery(\"(prefers-color-scheme: light)\", options);\n const isDark = useMediaQuery(\"(prefers-color-scheme: dark)\", options);\n return computed(() => {\n if (isDark.value)\n return \"dark\";\n if (isLight.value)\n return \"light\";\n return \"no-preference\";\n });\n}\n\nfunction usePreferredContrast(options) {\n const isMore = useMediaQuery(\"(prefers-contrast: more)\", options);\n const isLess = useMediaQuery(\"(prefers-contrast: less)\", options);\n const isCustom = useMediaQuery(\"(prefers-contrast: custom)\", options);\n return computed(() => {\n if (isMore.value)\n return \"more\";\n if (isLess.value)\n return \"less\";\n if (isCustom.value)\n return \"custom\";\n return \"no-preference\";\n });\n}\n\nfunction usePreferredLanguages(options = {}) {\n const { window = defaultWindow } = options;\n if (!window)\n return ref([\"en\"]);\n const navigator = window.navigator;\n const value = ref(navigator.languages);\n useEventListener(window, \"languagechange\", () => {\n value.value = navigator.languages;\n });\n return value;\n}\n\nfunction usePreferredReducedMotion(options) {\n const isReduced = useMediaQuery(\"(prefers-reduced-motion: reduce)\", options);\n return computed(() => {\n if (isReduced.value)\n return \"reduce\";\n return \"no-preference\";\n });\n}\n\nfunction usePrevious(value, initialValue) {\n const previous = shallowRef(initialValue);\n watch(\n toRef(value),\n (_, oldValue) => {\n previous.value = oldValue;\n },\n { flush: \"sync\" }\n );\n return readonly(previous);\n}\n\nfunction useScreenOrientation(options = {}) {\n const {\n window = defaultWindow\n } = options;\n const isSupported = useSupported(() => window && \"screen\" in window && \"orientation\" in window.screen);\n const screenOrientation = isSupported.value ? window.screen.orientation : {};\n const orientation = ref(screenOrientation.type);\n const angle = ref(screenOrientation.angle || 0);\n if (isSupported.value) {\n useEventListener(window, \"orientationchange\", () => {\n orientation.value = screenOrientation.type;\n angle.value = screenOrientation.angle;\n });\n }\n const lockOrientation = (type) => {\n if (!isSupported.value)\n return Promise.reject(new Error(\"Not supported\"));\n return screenOrientation.lock(type);\n };\n const unlockOrientation = () => {\n if (isSupported.value)\n screenOrientation.unlock();\n };\n return {\n isSupported,\n orientation,\n angle,\n lockOrientation,\n unlockOrientation\n };\n}\n\nconst topVarName = \"--vueuse-safe-area-top\";\nconst rightVarName = \"--vueuse-safe-area-right\";\nconst bottomVarName = \"--vueuse-safe-area-bottom\";\nconst leftVarName = \"--vueuse-safe-area-left\";\nfunction useScreenSafeArea() {\n const top = ref(\"\");\n const right = ref(\"\");\n const bottom = ref(\"\");\n const left = ref(\"\");\n if (isClient) {\n const topCssVar = useCssVar(topVarName);\n const rightCssVar = useCssVar(rightVarName);\n const bottomCssVar = useCssVar(bottomVarName);\n const leftCssVar = useCssVar(leftVarName);\n topCssVar.value = \"env(safe-area-inset-top, 0px)\";\n rightCssVar.value = \"env(safe-area-inset-right, 0px)\";\n bottomCssVar.value = \"env(safe-area-inset-bottom, 0px)\";\n leftCssVar.value = \"env(safe-area-inset-left, 0px)\";\n update();\n useEventListener(\"resize\", useDebounceFn(update));\n }\n function update() {\n top.value = getValue(topVarName);\n right.value = getValue(rightVarName);\n bottom.value = getValue(bottomVarName);\n left.value = getValue(leftVarName);\n }\n return {\n top,\n right,\n bottom,\n left,\n update\n };\n}\nfunction getValue(position) {\n return getComputedStyle(document.documentElement).getPropertyValue(position);\n}\n\nfunction useScriptTag(src, onLoaded = noop, options = {}) {\n const {\n immediate = true,\n manual = false,\n type = \"text/javascript\",\n async = true,\n crossOrigin,\n referrerPolicy,\n noModule,\n defer,\n document = defaultDocument,\n attrs = {}\n } = options;\n const scriptTag = ref(null);\n let _promise = null;\n const loadScript = (waitForScriptLoad) => new Promise((resolve, reject) => {\n const resolveWithElement = (el2) => {\n scriptTag.value = el2;\n resolve(el2);\n return el2;\n };\n if (!document) {\n resolve(false);\n return;\n }\n let shouldAppend = false;\n let el = document.querySelector(`script[src=\"${toValue(src)}\"]`);\n if (!el) {\n el = document.createElement(\"script\");\n el.type = type;\n el.async = async;\n el.src = toValue(src);\n if (defer)\n el.defer = defer;\n if (crossOrigin)\n el.crossOrigin = crossOrigin;\n if (noModule)\n el.noModule = noModule;\n if (referrerPolicy)\n el.referrerPolicy = referrerPolicy;\n Object.entries(attrs).forEach(([name, value]) => el == null ? void 0 : el.setAttribute(name, value));\n shouldAppend = true;\n } else if (el.hasAttribute(\"data-loaded\")) {\n resolveWithElement(el);\n }\n el.addEventListener(\"error\", (event) => reject(event));\n el.addEventListener(\"abort\", (event) => reject(event));\n el.addEventListener(\"load\", () => {\n el.setAttribute(\"data-loaded\", \"true\");\n onLoaded(el);\n resolveWithElement(el);\n });\n if (shouldAppend)\n el = document.head.appendChild(el);\n if (!waitForScriptLoad)\n resolveWithElement(el);\n });\n const load = (waitForScriptLoad = true) => {\n if (!_promise)\n _promise = loadScript(waitForScriptLoad);\n return _promise;\n };\n const unload = () => {\n if (!document)\n return;\n _promise = null;\n if (scriptTag.value)\n scriptTag.value = null;\n const el = document.querySelector(`script[src=\"${toValue(src)}\"]`);\n if (el)\n document.head.removeChild(el);\n };\n if (immediate && !manual)\n tryOnMounted(load);\n if (!manual)\n tryOnUnmounted(unload);\n return { scriptTag, load, unload };\n}\n\nfunction checkOverflowScroll(ele) {\n const style = window.getComputedStyle(ele);\n if (style.overflowX === \"scroll\" || style.overflowY === \"scroll\" || style.overflowX === \"auto\" && ele.clientHeight < ele.scrollHeight || style.overflowY === \"auto\" && ele.clientWidth < ele.scrollWidth) {\n return true;\n } else {\n const parent = ele.parentNode;\n if (!parent || parent.tagName === \"BODY\")\n return false;\n return checkOverflowScroll(parent);\n }\n}\nfunction preventDefault(rawEvent) {\n const e = rawEvent || window.event;\n const _target = e.target;\n if (checkOverflowScroll(_target))\n return false;\n if (e.touches.length > 1)\n return true;\n if (e.preventDefault)\n e.preventDefault();\n return false;\n}\nfunction useScrollLock(element, initialState = false) {\n const isLocked = ref(initialState);\n let stopTouchMoveListener = null;\n let initialOverflow;\n watch(toRef(element), (el) => {\n if (el) {\n const ele = el;\n initialOverflow = ele.style.overflow;\n if (isLocked.value)\n ele.style.overflow = \"hidden\";\n }\n }, {\n immediate: true\n });\n const lock = () => {\n const ele = toValue(element);\n if (!ele || isLocked.value)\n return;\n if (isIOS) {\n stopTouchMoveListener = useEventListener(\n ele,\n \"touchmove\",\n (e) => {\n preventDefault(e);\n },\n { passive: false }\n );\n }\n ele.style.overflow = \"hidden\";\n isLocked.value = true;\n };\n const unlock = () => {\n const ele = toValue(element);\n if (!ele || !isLocked.value)\n return;\n isIOS && (stopTouchMoveListener == null ? void 0 : stopTouchMoveListener());\n ele.style.overflow = initialOverflow;\n isLocked.value = false;\n };\n tryOnScopeDispose(unlock);\n return computed({\n get() {\n return isLocked.value;\n },\n set(v) {\n if (v)\n lock();\n else\n unlock();\n }\n });\n}\n\nfunction useSessionStorage(key, initialValue, options = {}) {\n const { window = defaultWindow } = options;\n return useStorage(key, initialValue, window == null ? void 0 : window.sessionStorage, options);\n}\n\nvar __defProp$5 = Object.defineProperty;\nvar __getOwnPropSymbols$5 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$5 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$5 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$5 = (obj, key, value) => key in obj ? __defProp$5(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$5 = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$5.call(b, prop))\n __defNormalProp$5(a, prop, b[prop]);\n if (__getOwnPropSymbols$5)\n for (var prop of __getOwnPropSymbols$5(b)) {\n if (__propIsEnum$5.call(b, prop))\n __defNormalProp$5(a, prop, b[prop]);\n }\n return a;\n};\nfunction useShare(shareOptions = {}, options = {}) {\n const { navigator = defaultNavigator } = options;\n const _navigator = navigator;\n const isSupported = useSupported(() => _navigator && \"canShare\" in _navigator);\n const share = async (overrideOptions = {}) => {\n if (isSupported.value) {\n const data = __spreadValues$5(__spreadValues$5({}, toValue(shareOptions)), toValue(overrideOptions));\n let granted = true;\n if (data.files && _navigator.canShare)\n granted = _navigator.canShare({ files: data.files });\n if (granted)\n return _navigator.share(data);\n }\n };\n return {\n isSupported,\n share\n };\n}\n\nconst defaultSortFn = (source, compareFn) => source.sort(compareFn);\nconst defaultCompare = (a, b) => a - b;\nfunction useSorted(...args) {\n var _a, _b, _c, _d;\n const [source] = args;\n let compareFn = defaultCompare;\n let options = {};\n if (args.length === 2) {\n if (typeof args[1] === \"object\") {\n options = args[1];\n compareFn = (_a = options.compareFn) != null ? _a : defaultCompare;\n } else {\n compareFn = (_b = args[1]) != null ? _b : defaultCompare;\n }\n } else if (args.length > 2) {\n compareFn = (_c = args[1]) != null ? _c : defaultCompare;\n options = (_d = args[2]) != null ? _d : {};\n }\n const {\n dirty = false,\n sortFn = defaultSortFn\n } = options;\n if (!dirty)\n return computed(() => sortFn([...toValue(source)], compareFn));\n watchEffect(() => {\n const result = sortFn(toValue(source), compareFn);\n if (isRef(source))\n source.value = result;\n else\n source.splice(0, source.length, ...result);\n });\n return source;\n}\n\nfunction useSpeechRecognition(options = {}) {\n const {\n interimResults = true,\n continuous = true,\n window = defaultWindow\n } = options;\n const lang = toRef(options.lang || \"en-US\");\n const isListening = ref(false);\n const isFinal = ref(false);\n const result = ref(\"\");\n const error = shallowRef(void 0);\n const toggle = (value = !isListening.value) => {\n isListening.value = value;\n };\n const start = () => {\n isListening.value = true;\n };\n const stop = () => {\n isListening.value = false;\n };\n const SpeechRecognition = window && (window.SpeechRecognition || window.webkitSpeechRecognition);\n const isSupported = useSupported(() => SpeechRecognition);\n let recognition;\n if (isSupported.value) {\n recognition = new SpeechRecognition();\n recognition.continuous = continuous;\n recognition.interimResults = interimResults;\n recognition.lang = toValue(lang);\n recognition.onstart = () => {\n isFinal.value = false;\n };\n watch(lang, (lang2) => {\n if (recognition && !isListening.value)\n recognition.lang = lang2;\n });\n recognition.onresult = (event) => {\n const transcript = Array.from(event.results).map((result2) => {\n isFinal.value = result2.isFinal;\n return result2[0];\n }).map((result2) => result2.transcript).join(\"\");\n result.value = transcript;\n error.value = void 0;\n };\n recognition.onerror = (event) => {\n error.value = event;\n };\n recognition.onend = () => {\n isListening.value = false;\n recognition.lang = toValue(lang);\n };\n watch(isListening, () => {\n if (isListening.value)\n recognition.start();\n else\n recognition.stop();\n });\n }\n tryOnScopeDispose(() => {\n isListening.value = false;\n });\n return {\n isSupported,\n isListening,\n isFinal,\n recognition,\n result,\n error,\n toggle,\n start,\n stop\n };\n}\n\nfunction useSpeechSynthesis(text, options = {}) {\n const {\n pitch = 1,\n rate = 1,\n volume = 1,\n window = defaultWindow\n } = options;\n const synth = window && window.speechSynthesis;\n const isSupported = useSupported(() => synth);\n const isPlaying = ref(false);\n const status = ref(\"init\");\n const spokenText = toRef(text || \"\");\n const lang = toRef(options.lang || \"en-US\");\n const error = shallowRef(void 0);\n const toggle = (value = !isPlaying.value) => {\n isPlaying.value = value;\n };\n const bindEventsForUtterance = (utterance2) => {\n utterance2.lang = toValue(lang);\n utterance2.voice = toValue(options.voice) || null;\n utterance2.pitch = pitch;\n utterance2.rate = rate;\n utterance2.volume = volume;\n utterance2.onstart = () => {\n isPlaying.value = true;\n status.value = \"play\";\n };\n utterance2.onpause = () => {\n isPlaying.value = false;\n status.value = \"pause\";\n };\n utterance2.onresume = () => {\n isPlaying.value = true;\n status.value = \"play\";\n };\n utterance2.onend = () => {\n isPlaying.value = false;\n status.value = \"end\";\n };\n utterance2.onerror = (event) => {\n error.value = event;\n };\n };\n const utterance = computed(() => {\n isPlaying.value = false;\n status.value = \"init\";\n const newUtterance = new SpeechSynthesisUtterance(spokenText.value);\n bindEventsForUtterance(newUtterance);\n return newUtterance;\n });\n const speak = () => {\n synth.cancel();\n utterance && synth.speak(utterance.value);\n };\n const stop = () => {\n synth.cancel();\n isPlaying.value = false;\n };\n if (isSupported.value) {\n bindEventsForUtterance(utterance.value);\n watch(lang, (lang2) => {\n if (utterance.value && !isPlaying.value)\n utterance.value.lang = lang2;\n });\n if (options.voice) {\n watch(options.voice, () => {\n synth.cancel();\n });\n }\n watch(isPlaying, () => {\n if (isPlaying.value)\n synth.resume();\n else\n synth.pause();\n });\n }\n tryOnScopeDispose(() => {\n isPlaying.value = false;\n });\n return {\n isSupported,\n isPlaying,\n status,\n utterance,\n error,\n stop,\n toggle,\n speak\n };\n}\n\nfunction useStepper(steps, initialStep) {\n const stepsRef = ref(steps);\n const stepNames = computed(() => Array.isArray(stepsRef.value) ? stepsRef.value : Object.keys(stepsRef.value));\n const index = ref(stepNames.value.indexOf(initialStep != null ? initialStep : stepNames.value[0]));\n const current = computed(() => at(index.value));\n const isFirst = computed(() => index.value === 0);\n const isLast = computed(() => index.value === stepNames.value.length - 1);\n const next = computed(() => stepNames.value[index.value + 1]);\n const previous = computed(() => stepNames.value[index.value - 1]);\n function at(index2) {\n if (Array.isArray(stepsRef.value))\n return stepsRef.value[index2];\n return stepsRef.value[stepNames.value[index2]];\n }\n function get(step) {\n if (!stepNames.value.includes(step))\n return;\n return at(stepNames.value.indexOf(step));\n }\n function goTo(step) {\n if (stepNames.value.includes(step))\n index.value = stepNames.value.indexOf(step);\n }\n function goToNext() {\n if (isLast.value)\n return;\n index.value++;\n }\n function goToPrevious() {\n if (isFirst.value)\n return;\n index.value--;\n }\n function goBackTo(step) {\n if (isAfter(step))\n goTo(step);\n }\n function isNext(step) {\n return stepNames.value.indexOf(step) === index.value + 1;\n }\n function isPrevious(step) {\n return stepNames.value.indexOf(step) === index.value - 1;\n }\n function isCurrent(step) {\n return stepNames.value.indexOf(step) === index.value;\n }\n function isBefore(step) {\n return index.value < stepNames.value.indexOf(step);\n }\n function isAfter(step) {\n return index.value > stepNames.value.indexOf(step);\n }\n return {\n steps: stepsRef,\n stepNames,\n index,\n current,\n next,\n previous,\n isFirst,\n isLast,\n at,\n get,\n goTo,\n goToNext,\n goToPrevious,\n goBackTo,\n isNext,\n isPrevious,\n isCurrent,\n isBefore,\n isAfter\n };\n}\n\nvar __defProp$4 = Object.defineProperty;\nvar __getOwnPropSymbols$4 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$4 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$4 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$4 = (obj, key, value) => key in obj ? __defProp$4(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$4 = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$4.call(b, prop))\n __defNormalProp$4(a, prop, b[prop]);\n if (__getOwnPropSymbols$4)\n for (var prop of __getOwnPropSymbols$4(b)) {\n if (__propIsEnum$4.call(b, prop))\n __defNormalProp$4(a, prop, b[prop]);\n }\n return a;\n};\nfunction useStorageAsync(key, initialValue, storage, options = {}) {\n var _a;\n const {\n flush = \"pre\",\n deep = true,\n listenToStorageChanges = true,\n writeDefaults = true,\n mergeDefaults = false,\n shallow,\n window = defaultWindow,\n eventFilter,\n onError = (e) => {\n console.error(e);\n }\n } = options;\n const rawInit = toValue(initialValue);\n const type = guessSerializerType(rawInit);\n const data = (shallow ? shallowRef : ref)(initialValue);\n const serializer = (_a = options.serializer) != null ? _a : StorageSerializers[type];\n if (!storage) {\n try {\n storage = getSSRHandler(\"getDefaultStorage\", () => {\n var _a2;\n return (_a2 = defaultWindow) == null ? void 0 : _a2.localStorage;\n })();\n } catch (e) {\n onError(e);\n }\n }\n async function read(event) {\n if (!storage || event && event.key !== key)\n return;\n try {\n const rawValue = event ? event.newValue : await storage.getItem(key);\n if (rawValue == null) {\n data.value = rawInit;\n if (writeDefaults && rawInit !== null)\n await storage.setItem(key, await serializer.write(rawInit));\n } else if (mergeDefaults) {\n const value = await serializer.read(rawValue);\n if (typeof mergeDefaults === \"function\")\n data.value = mergeDefaults(value, rawInit);\n else if (type === \"object\" && !Array.isArray(value))\n data.value = __spreadValues$4(__spreadValues$4({}, rawInit), value);\n else\n data.value = value;\n } else {\n data.value = await serializer.read(rawValue);\n }\n } catch (e) {\n onError(e);\n }\n }\n read();\n if (window && listenToStorageChanges)\n useEventListener(window, \"storage\", (e) => Promise.resolve().then(() => read(e)));\n if (storage) {\n watchWithFilter(\n data,\n async () => {\n try {\n if (data.value == null)\n await storage.removeItem(key);\n else\n await storage.setItem(key, await serializer.write(data.value));\n } catch (e) {\n onError(e);\n }\n },\n {\n flush,\n deep,\n eventFilter\n }\n );\n }\n return data;\n}\n\nlet _id = 0;\nfunction useStyleTag(css, options = {}) {\n const isLoaded = ref(false);\n const {\n document = defaultDocument,\n immediate = true,\n manual = false,\n id = `vueuse_styletag_${++_id}`\n } = options;\n const cssRef = ref(css);\n let stop = () => {\n };\n const load = () => {\n if (!document)\n return;\n const el = document.getElementById(id) || document.createElement(\"style\");\n if (!el.isConnected) {\n el.type = \"text/css\";\n el.id = id;\n if (options.media)\n el.media = options.media;\n document.head.appendChild(el);\n }\n if (isLoaded.value)\n return;\n stop = watch(\n cssRef,\n (value) => {\n el.textContent = value;\n },\n { immediate: true }\n );\n isLoaded.value = true;\n };\n const unload = () => {\n if (!document || !isLoaded.value)\n return;\n stop();\n document.head.removeChild(document.getElementById(id));\n isLoaded.value = false;\n };\n if (immediate && !manual)\n tryOnMounted(load);\n if (!manual)\n tryOnScopeDispose(unload);\n return {\n id,\n css: cssRef,\n unload,\n load,\n isLoaded: readonly(isLoaded)\n };\n}\n\nfunction useSwipe(target, options = {}) {\n const {\n threshold = 50,\n onSwipe,\n onSwipeEnd,\n onSwipeStart,\n passive = true,\n window = defaultWindow\n } = options;\n const coordsStart = reactive({ x: 0, y: 0 });\n const coordsEnd = reactive({ x: 0, y: 0 });\n const diffX = computed(() => coordsStart.x - coordsEnd.x);\n const diffY = computed(() => coordsStart.y - coordsEnd.y);\n const { max, abs } = Math;\n const isThresholdExceeded = computed(() => max(abs(diffX.value), abs(diffY.value)) >= threshold);\n const isSwiping = ref(false);\n const direction = computed(() => {\n if (!isThresholdExceeded.value)\n return \"none\";\n if (abs(diffX.value) > abs(diffY.value)) {\n return diffX.value > 0 ? \"left\" : \"right\";\n } else {\n return diffY.value > 0 ? \"up\" : \"down\";\n }\n });\n const getTouchEventCoords = (e) => [e.touches[0].clientX, e.touches[0].clientY];\n const updateCoordsStart = (x, y) => {\n coordsStart.x = x;\n coordsStart.y = y;\n };\n const updateCoordsEnd = (x, y) => {\n coordsEnd.x = x;\n coordsEnd.y = y;\n };\n let listenerOptions;\n const isPassiveEventSupported = checkPassiveEventSupport(window == null ? void 0 : window.document);\n if (!passive)\n listenerOptions = isPassiveEventSupported ? { passive: false, capture: true } : { capture: true };\n else\n listenerOptions = isPassiveEventSupported ? { passive: true } : { capture: false };\n const onTouchEnd = (e) => {\n if (isSwiping.value)\n onSwipeEnd == null ? void 0 : onSwipeEnd(e, direction.value);\n isSwiping.value = false;\n };\n const stops = [\n useEventListener(target, \"touchstart\", (e) => {\n if (e.touches.length !== 1)\n return;\n if (listenerOptions.capture && !listenerOptions.passive)\n e.preventDefault();\n const [x, y] = getTouchEventCoords(e);\n updateCoordsStart(x, y);\n updateCoordsEnd(x, y);\n onSwipeStart == null ? void 0 : onSwipeStart(e);\n }, listenerOptions),\n useEventListener(target, \"touchmove\", (e) => {\n if (e.touches.length !== 1)\n return;\n const [x, y] = getTouchEventCoords(e);\n updateCoordsEnd(x, y);\n if (!isSwiping.value && isThresholdExceeded.value)\n isSwiping.value = true;\n if (isSwiping.value)\n onSwipe == null ? void 0 : onSwipe(e);\n }, listenerOptions),\n useEventListener(target, \"touchend\", onTouchEnd, listenerOptions),\n useEventListener(target, \"touchcancel\", onTouchEnd, listenerOptions)\n ];\n const stop = () => stops.forEach((s) => s());\n return {\n isPassiveEventSupported,\n isSwiping,\n direction,\n coordsStart,\n coordsEnd,\n lengthX: diffX,\n lengthY: diffY,\n stop\n };\n}\nfunction checkPassiveEventSupport(document) {\n if (!document)\n return false;\n let supportsPassive = false;\n const optionsBlock = {\n get passive() {\n supportsPassive = true;\n return false;\n }\n };\n document.addEventListener(\"x\", noop, optionsBlock);\n document.removeEventListener(\"x\", noop);\n return supportsPassive;\n}\n\nfunction useTemplateRefsList() {\n const refs = ref([]);\n refs.value.set = (el) => {\n if (el)\n refs.value.push(el);\n };\n onBeforeUpdate(() => {\n refs.value.length = 0;\n });\n return refs;\n}\n\nfunction useTextDirection(options = {}) {\n const {\n document = defaultDocument,\n selector = \"html\",\n observe = false,\n initialValue = \"ltr\"\n } = options;\n function getValue() {\n var _a, _b;\n return (_b = (_a = document == null ? void 0 : document.querySelector(selector)) == null ? void 0 : _a.getAttribute(\"dir\")) != null ? _b : initialValue;\n }\n const dir = ref(getValue());\n tryOnMounted(() => dir.value = getValue());\n if (observe && document) {\n useMutationObserver(\n document.querySelector(selector),\n () => dir.value = getValue(),\n { attributes: true }\n );\n }\n return computed({\n get() {\n return dir.value;\n },\n set(v) {\n var _a, _b;\n dir.value = v;\n if (!document)\n return;\n if (dir.value)\n (_a = document.querySelector(selector)) == null ? void 0 : _a.setAttribute(\"dir\", dir.value);\n else\n (_b = document.querySelector(selector)) == null ? void 0 : _b.removeAttribute(\"dir\");\n }\n });\n}\n\nfunction getRangesFromSelection(selection) {\n var _a;\n const rangeCount = (_a = selection.rangeCount) != null ? _a : 0;\n const ranges = new Array(rangeCount);\n for (let i = 0; i < rangeCount; i++) {\n const range = selection.getRangeAt(i);\n ranges[i] = range;\n }\n return ranges;\n}\nfunction useTextSelection(options = {}) {\n const {\n window = defaultWindow\n } = options;\n const selection = ref(null);\n const text = computed(() => {\n var _a, _b;\n return (_b = (_a = selection.value) == null ? void 0 : _a.toString()) != null ? _b : \"\";\n });\n const ranges = computed(() => selection.value ? getRangesFromSelection(selection.value) : []);\n const rects = computed(() => ranges.value.map((range) => range.getBoundingClientRect()));\n function onSelectionChange() {\n selection.value = null;\n if (window)\n selection.value = window.getSelection();\n }\n if (window)\n useEventListener(window.document, \"selectionchange\", onSelectionChange);\n return {\n text,\n rects,\n ranges,\n selection\n };\n}\n\nfunction useTextareaAutosize(options) {\n const textarea = ref(options == null ? void 0 : options.element);\n const input = ref(options == null ? void 0 : options.input);\n const textareaScrollHeight = ref(1);\n function triggerResize() {\n var _a, _b;\n if (!textarea.value)\n return;\n let height = \"\";\n textarea.value.style.height = \"1px\";\n textareaScrollHeight.value = (_a = textarea.value) == null ? void 0 : _a.scrollHeight;\n if (options == null ? void 0 : options.styleTarget)\n toValue(options.styleTarget).style.height = `${textareaScrollHeight.value}px`;\n else\n height = `${textareaScrollHeight.value}px`;\n textarea.value.style.height = height;\n (_b = options == null ? void 0 : options.onResize) == null ? void 0 : _b.call(options);\n }\n watch([input, textarea], triggerResize, { immediate: true });\n useResizeObserver(textarea, () => triggerResize());\n if (options == null ? void 0 : options.watch)\n watch(options.watch, triggerResize, { immediate: true, deep: true });\n return {\n textarea,\n input,\n triggerResize\n };\n}\n\nvar __defProp$3 = Object.defineProperty;\nvar __defProps$1 = Object.defineProperties;\nvar __getOwnPropDescs$1 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$3 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$3 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$3 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$3 = (obj, key, value) => key in obj ? __defProp$3(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$3 = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$3.call(b, prop))\n __defNormalProp$3(a, prop, b[prop]);\n if (__getOwnPropSymbols$3)\n for (var prop of __getOwnPropSymbols$3(b)) {\n if (__propIsEnum$3.call(b, prop))\n __defNormalProp$3(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps$1 = (a, b) => __defProps$1(a, __getOwnPropDescs$1(b));\nfunction useThrottledRefHistory(source, options = {}) {\n const { throttle = 200, trailing = true } = options;\n const filter = throttleFilter(throttle, trailing);\n const history = useRefHistory(source, __spreadProps$1(__spreadValues$3({}, options), { eventFilter: filter }));\n return __spreadValues$3({}, history);\n}\n\nvar __defProp$2 = Object.defineProperty;\nvar __getOwnPropSymbols$2 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$2 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$2 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$2 = (obj, key, value) => key in obj ? __defProp$2(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$2 = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$2.call(b, prop))\n __defNormalProp$2(a, prop, b[prop]);\n if (__getOwnPropSymbols$2)\n for (var prop of __getOwnPropSymbols$2(b)) {\n if (__propIsEnum$2.call(b, prop))\n __defNormalProp$2(a, prop, b[prop]);\n }\n return a;\n};\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp$2.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols$2)\n for (var prop of __getOwnPropSymbols$2(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum$2.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nconst DEFAULT_UNITS = [\n { max: 6e4, value: 1e3, name: \"second\" },\n { max: 276e4, value: 6e4, name: \"minute\" },\n { max: 72e6, value: 36e5, name: \"hour\" },\n { max: 5184e5, value: 864e5, name: \"day\" },\n { max: 24192e5, value: 6048e5, name: \"week\" },\n { max: 28512e6, value: 2592e6, name: \"month\" },\n { max: Infinity, value: 31536e6, name: \"year\" }\n];\nconst DEFAULT_MESSAGES = {\n justNow: \"just now\",\n past: (n) => n.match(/\\d/) ? `${n} ago` : n,\n future: (n) => n.match(/\\d/) ? `in ${n}` : n,\n month: (n, past) => n === 1 ? past ? \"last month\" : \"next month\" : `${n} month${n > 1 ? \"s\" : \"\"}`,\n year: (n, past) => n === 1 ? past ? \"last year\" : \"next year\" : `${n} year${n > 1 ? \"s\" : \"\"}`,\n day: (n, past) => n === 1 ? past ? \"yesterday\" : \"tomorrow\" : `${n} day${n > 1 ? \"s\" : \"\"}`,\n week: (n, past) => n === 1 ? past ? \"last week\" : \"next week\" : `${n} week${n > 1 ? \"s\" : \"\"}`,\n hour: (n) => `${n} hour${n > 1 ? \"s\" : \"\"}`,\n minute: (n) => `${n} minute${n > 1 ? \"s\" : \"\"}`,\n second: (n) => `${n} second${n > 1 ? \"s\" : \"\"}`,\n invalid: \"\"\n};\nfunction DEFAULT_FORMATTER(date) {\n return date.toISOString().slice(0, 10);\n}\nfunction useTimeAgo(time, options = {}) {\n const {\n controls: exposeControls = false,\n updateInterval = 3e4\n } = options;\n const _a = useNow({ interval: updateInterval, controls: true }), { now } = _a, controls = __objRest(_a, [\"now\"]);\n const timeAgo = computed(() => formatTimeAgo(new Date(toValue(time)), options, toValue(now.value)));\n if (exposeControls) {\n return __spreadValues$2({\n timeAgo\n }, controls);\n } else {\n return timeAgo;\n }\n}\nfunction formatTimeAgo(from, options = {}, now = Date.now()) {\n var _a;\n const {\n max,\n messages = DEFAULT_MESSAGES,\n fullDateFormatter = DEFAULT_FORMATTER,\n units = DEFAULT_UNITS,\n showSecond = false,\n rounding = \"round\"\n } = options;\n const roundFn = typeof rounding === \"number\" ? (n) => +n.toFixed(rounding) : Math[rounding];\n const diff = +now - +from;\n const absDiff = Math.abs(diff);\n function getValue(diff2, unit) {\n return roundFn(Math.abs(diff2) / unit.value);\n }\n function format(diff2, unit) {\n const val = getValue(diff2, unit);\n const past = diff2 > 0;\n const str = applyFormat(unit.name, val, past);\n return applyFormat(past ? \"past\" : \"future\", str, past);\n }\n function applyFormat(name, val, isPast) {\n const formatter = messages[name];\n if (typeof formatter === \"function\")\n return formatter(val, isPast);\n return formatter.replace(\"{0}\", val.toString());\n }\n if (absDiff < 6e4 && !showSecond)\n return messages.justNow;\n if (typeof max === \"number\" && absDiff > max)\n return fullDateFormatter(new Date(from));\n if (typeof max === \"string\") {\n const unitMax = (_a = units.find((i) => i.name === max)) == null ? void 0 : _a.max;\n if (unitMax && absDiff > unitMax)\n return fullDateFormatter(new Date(from));\n }\n for (const [idx, unit] of units.entries()) {\n const val = getValue(diff, unit);\n if (val <= 0 && units[idx - 1])\n return format(diff, units[idx - 1]);\n if (absDiff < unit.max)\n return format(diff, unit);\n }\n return messages.invalid;\n}\n\nfunction useTimeoutPoll(fn, interval, timeoutPollOptions) {\n const { start } = useTimeoutFn(loop, interval);\n const isActive = ref(false);\n async function loop() {\n if (!isActive.value)\n return;\n await fn();\n start();\n }\n function resume() {\n if (!isActive.value) {\n isActive.value = true;\n loop();\n }\n }\n function pause() {\n isActive.value = false;\n }\n if (timeoutPollOptions == null ? void 0 : timeoutPollOptions.immediate)\n resume();\n tryOnScopeDispose(pause);\n return {\n isActive,\n pause,\n resume\n };\n}\n\nvar __defProp$1 = Object.defineProperty;\nvar __getOwnPropSymbols$1 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$1 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$1 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$1 = (obj, key, value) => key in obj ? __defProp$1(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$1 = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp$1.call(b, prop))\n __defNormalProp$1(a, prop, b[prop]);\n if (__getOwnPropSymbols$1)\n for (var prop of __getOwnPropSymbols$1(b)) {\n if (__propIsEnum$1.call(b, prop))\n __defNormalProp$1(a, prop, b[prop]);\n }\n return a;\n};\nfunction useTimestamp(options = {}) {\n const {\n controls: exposeControls = false,\n offset = 0,\n immediate = true,\n interval = \"requestAnimationFrame\",\n callback\n } = options;\n const ts = ref(timestamp() + offset);\n const update = () => ts.value = timestamp() + offset;\n const cb = callback ? () => {\n update();\n callback(ts.value);\n } : update;\n const controls = interval === \"requestAnimationFrame\" ? useRafFn(cb, { immediate }) : useIntervalFn(cb, interval, { immediate });\n if (exposeControls) {\n return __spreadValues$1({\n timestamp: ts\n }, controls);\n } else {\n return ts;\n }\n}\n\nfunction useTitle(newTitle = null, options = {}) {\n var _a, _b;\n const {\n document = defaultDocument\n } = options;\n const title = toRef((_a = newTitle != null ? newTitle : document == null ? void 0 : document.title) != null ? _a : null);\n const isReadonly = newTitle && typeof newTitle === \"function\";\n function format(t) {\n if (!(\"titleTemplate\" in options))\n return t;\n const template = options.titleTemplate || \"%s\";\n return typeof template === \"function\" ? template(t) : toValue(template).replace(/%s/g, t);\n }\n watch(\n title,\n (t, o) => {\n if (t !== o && document)\n document.title = format(typeof t === \"string\" ? t : \"\");\n },\n { immediate: true }\n );\n if (options.observe && !options.titleTemplate && document && !isReadonly) {\n useMutationObserver(\n (_b = document.head) == null ? void 0 : _b.querySelector(\"title\"),\n () => {\n if (document && document.title !== title.value)\n title.value = format(document.title);\n },\n { childList: true }\n );\n }\n return title;\n}\n\nvar __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nconst _TransitionPresets = {\n easeInSine: [0.12, 0, 0.39, 0],\n easeOutSine: [0.61, 1, 0.88, 1],\n easeInOutSine: [0.37, 0, 0.63, 1],\n easeInQuad: [0.11, 0, 0.5, 0],\n easeOutQuad: [0.5, 1, 0.89, 1],\n easeInOutQuad: [0.45, 0, 0.55, 1],\n easeInCubic: [0.32, 0, 0.67, 0],\n easeOutCubic: [0.33, 1, 0.68, 1],\n easeInOutCubic: [0.65, 0, 0.35, 1],\n easeInQuart: [0.5, 0, 0.75, 0],\n easeOutQuart: [0.25, 1, 0.5, 1],\n easeInOutQuart: [0.76, 0, 0.24, 1],\n easeInQuint: [0.64, 0, 0.78, 0],\n easeOutQuint: [0.22, 1, 0.36, 1],\n easeInOutQuint: [0.83, 0, 0.17, 1],\n easeInExpo: [0.7, 0, 0.84, 0],\n easeOutExpo: [0.16, 1, 0.3, 1],\n easeInOutExpo: [0.87, 0, 0.13, 1],\n easeInCirc: [0.55, 0, 1, 0.45],\n easeOutCirc: [0, 0.55, 0.45, 1],\n easeInOutCirc: [0.85, 0, 0.15, 1],\n easeInBack: [0.36, 0, 0.66, -0.56],\n easeOutBack: [0.34, 1.56, 0.64, 1],\n easeInOutBack: [0.68, -0.6, 0.32, 1.6]\n};\nconst TransitionPresets = /* @__PURE__ */ Object.assign({}, { linear: identity }, _TransitionPresets);\nfunction createEasingFunction([p0, p1, p2, p3]) {\n const a = (a1, a2) => 1 - 3 * a2 + 3 * a1;\n const b = (a1, a2) => 3 * a2 - 6 * a1;\n const c = (a1) => 3 * a1;\n const calcBezier = (t, a1, a2) => ((a(a1, a2) * t + b(a1, a2)) * t + c(a1)) * t;\n const getSlope = (t, a1, a2) => 3 * a(a1, a2) * t * t + 2 * b(a1, a2) * t + c(a1);\n const getTforX = (x) => {\n let aGuessT = x;\n for (let i = 0; i < 4; ++i) {\n const currentSlope = getSlope(aGuessT, p0, p2);\n if (currentSlope === 0)\n return aGuessT;\n const currentX = calcBezier(aGuessT, p0, p2) - x;\n aGuessT -= currentX / currentSlope;\n }\n return aGuessT;\n };\n return (x) => p0 === p1 && p2 === p3 ? x : calcBezier(getTforX(x), p1, p3);\n}\nfunction lerp(a, b, alpha) {\n return a + alpha * (b - a);\n}\nfunction toVec(t) {\n return (typeof t === \"number\" ? [t] : t) || [];\n}\nfunction executeTransition(source, from, to, options = {}) {\n var _a, _b;\n const fromVal = toValue(from);\n const toVal = toValue(to);\n const v1 = toVec(fromVal);\n const v2 = toVec(toVal);\n const duration = (_a = toValue(options.duration)) != null ? _a : 1e3;\n const startedAt = Date.now();\n const endAt = Date.now() + duration;\n const trans = typeof options.transition === \"function\" ? options.transition : (_b = toValue(options.transition)) != null ? _b : identity;\n const ease = typeof trans === \"function\" ? trans : createEasingFunction(trans);\n return new Promise((resolve) => {\n source.value = fromVal;\n const tick = () => {\n var _a2;\n if ((_a2 = options.abort) == null ? void 0 : _a2.call(options)) {\n resolve();\n return;\n }\n const now = Date.now();\n const alpha = ease((now - startedAt) / duration);\n const arr = toVec(source.value).map((n, i) => lerp(v1[i], v2[i], alpha));\n if (Array.isArray(source.value))\n source.value = arr.map((n, i) => {\n var _a3, _b2;\n return lerp((_a3 = v1[i]) != null ? _a3 : 0, (_b2 = v2[i]) != null ? _b2 : 0, alpha);\n });\n else if (typeof source.value === \"number\")\n source.value = arr[0];\n if (now < endAt) {\n requestAnimationFrame(tick);\n } else {\n source.value = toVal;\n resolve();\n }\n };\n tick();\n });\n}\nfunction useTransition(source, options = {}) {\n let currentId = 0;\n const sourceVal = () => {\n const v = toValue(source);\n return typeof v === \"number\" ? v : v.map(toValue);\n };\n const outputRef = ref(sourceVal());\n watch(sourceVal, async (to) => {\n var _a, _b;\n if (toValue(options.disabled))\n return;\n const id = ++currentId;\n if (options.delay)\n await promiseTimeout(toValue(options.delay));\n if (id !== currentId)\n return;\n const toVal = Array.isArray(to) ? to.map(toValue) : toValue(to);\n (_a = options.onStarted) == null ? void 0 : _a.call(options);\n await executeTransition(outputRef, outputRef.value, toVal, __spreadProps(__spreadValues({}, options), {\n abort: () => {\n var _a2;\n return id !== currentId || ((_a2 = options.abort) == null ? void 0 : _a2.call(options));\n }\n }));\n (_b = options.onFinished) == null ? void 0 : _b.call(options);\n }, { deep: true });\n watch(() => toValue(options.disabled), (disabled) => {\n if (disabled) {\n currentId++;\n outputRef.value = sourceVal();\n }\n });\n tryOnScopeDispose(() => {\n currentId++;\n });\n return computed(() => toValue(options.disabled) ? sourceVal() : outputRef.value);\n}\n\nfunction useUrlSearchParams(mode = \"history\", options = {}) {\n const {\n initialValue = {},\n removeNullishValues = true,\n removeFalsyValues = false,\n write: enableWrite = true,\n window = defaultWindow\n } = options;\n if (!window)\n return reactive(initialValue);\n const state = reactive({});\n function getRawParams() {\n if (mode === \"history\") {\n return window.location.search || \"\";\n } else if (mode === \"hash\") {\n const hash = window.location.hash || \"\";\n const index = hash.indexOf(\"?\");\n return index > 0 ? hash.slice(index) : \"\";\n } else {\n return (window.location.hash || \"\").replace(/^#/, \"\");\n }\n }\n function constructQuery(params) {\n const stringified = params.toString();\n if (mode === \"history\")\n return `${stringified ? `?${stringified}` : \"\"}${window.location.hash || \"\"}`;\n if (mode === \"hash-params\")\n return `${window.location.search || \"\"}${stringified ? `#${stringified}` : \"\"}`;\n const hash = window.location.hash || \"#\";\n const index = hash.indexOf(\"?\");\n if (index > 0)\n return `${hash.slice(0, index)}${stringified ? `?${stringified}` : \"\"}`;\n return `${hash}${stringified ? `?${stringified}` : \"\"}`;\n }\n function read() {\n return new URLSearchParams(getRawParams());\n }\n function updateState(params) {\n const unusedKeys = new Set(Object.keys(state));\n for (const key of params.keys()) {\n const paramsForKey = params.getAll(key);\n state[key] = paramsForKey.length > 1 ? paramsForKey : params.get(key) || \"\";\n unusedKeys.delete(key);\n }\n Array.from(unusedKeys).forEach((key) => delete state[key]);\n }\n const { pause, resume } = pausableWatch(\n state,\n () => {\n const params = new URLSearchParams(\"\");\n Object.keys(state).forEach((key) => {\n const mapEntry = state[key];\n if (Array.isArray(mapEntry))\n mapEntry.forEach((value) => params.append(key, value));\n else if (removeNullishValues && mapEntry == null)\n params.delete(key);\n else if (removeFalsyValues && !mapEntry)\n params.delete(key);\n else\n params.set(key, mapEntry);\n });\n write(params);\n },\n { deep: true }\n );\n function write(params, shouldUpdate) {\n pause();\n if (shouldUpdate)\n updateState(params);\n window.history.replaceState(\n window.history.state,\n window.document.title,\n window.location.pathname + constructQuery(params)\n );\n resume();\n }\n function onChanged() {\n if (!enableWrite)\n return;\n write(read(), true);\n }\n useEventListener(window, \"popstate\", onChanged, false);\n if (mode !== \"history\")\n useEventListener(window, \"hashchange\", onChanged, false);\n const initial = read();\n if (initial.keys().next().value)\n updateState(initial);\n else\n Object.assign(state, initialValue);\n return state;\n}\n\nfunction useUserMedia(options = {}) {\n var _a, _b;\n const enabled = ref((_a = options.enabled) != null ? _a : false);\n const autoSwitch = ref((_b = options.autoSwitch) != null ? _b : true);\n const constraints = ref(options.constraints);\n const { navigator = defaultNavigator } = options;\n const isSupported = useSupported(() => {\n var _a2;\n return (_a2 = navigator == null ? void 0 : navigator.mediaDevices) == null ? void 0 : _a2.getUserMedia;\n });\n const stream = shallowRef();\n function getDeviceOptions(type) {\n switch (type) {\n case \"video\": {\n if (constraints.value)\n return constraints.value.video || false;\n break;\n }\n case \"audio\": {\n if (constraints.value)\n return constraints.value.audio || false;\n break;\n }\n }\n }\n async function _start() {\n if (!isSupported.value || stream.value)\n return;\n stream.value = await navigator.mediaDevices.getUserMedia({\n video: getDeviceOptions(\"video\"),\n audio: getDeviceOptions(\"audio\")\n });\n return stream.value;\n }\n function _stop() {\n var _a2;\n (_a2 = stream.value) == null ? void 0 : _a2.getTracks().forEach((t) => t.stop());\n stream.value = void 0;\n }\n function stop() {\n _stop();\n enabled.value = false;\n }\n async function start() {\n await _start();\n if (stream.value)\n enabled.value = true;\n return stream.value;\n }\n async function restart() {\n _stop();\n return await start();\n }\n watch(\n enabled,\n (v) => {\n if (v)\n _start();\n else\n _stop();\n },\n { immediate: true }\n );\n watch(\n constraints,\n () => {\n if (autoSwitch.value && stream.value)\n restart();\n },\n { immediate: true }\n );\n return {\n isSupported,\n stream,\n start,\n stop,\n restart,\n constraints,\n enabled,\n autoSwitch\n };\n}\n\nfunction useVModel(props, key, emit, options = {}) {\n var _a, _b, _c, _d, _e;\n const {\n clone = false,\n passive = false,\n eventName,\n deep = false,\n defaultValue,\n shouldEmit\n } = options;\n const vm = getCurrentInstance();\n const _emit = emit || (vm == null ? void 0 : vm.emit) || ((_a = vm == null ? void 0 : vm.$emit) == null ? void 0 : _a.bind(vm)) || ((_c = (_b = vm == null ? void 0 : vm.proxy) == null ? void 0 : _b.$emit) == null ? void 0 : _c.bind(vm == null ? void 0 : vm.proxy));\n let event = eventName;\n if (!key) {\n if (isVue2) {\n const modelOptions = (_e = (_d = vm == null ? void 0 : vm.proxy) == null ? void 0 : _d.$options) == null ? void 0 : _e.model;\n key = (modelOptions == null ? void 0 : modelOptions.value) || \"value\";\n if (!eventName)\n event = (modelOptions == null ? void 0 : modelOptions.event) || \"input\";\n } else {\n key = \"modelValue\";\n }\n }\n event = eventName || event || `update:${key.toString()}`;\n const cloneFn = (val) => !clone ? val : typeof clone === \"function\" ? clone(val) : cloneFnJSON(val);\n const getValue = () => isDef(props[key]) ? cloneFn(props[key]) : defaultValue;\n const triggerEmit = (value) => {\n if (shouldEmit) {\n if (shouldEmit(value))\n _emit(event, value);\n } else {\n _emit(event, value);\n }\n };\n if (passive) {\n const initialValue = getValue();\n const proxy = ref(initialValue);\n watch(\n () => props[key],\n (v) => proxy.value = cloneFn(v)\n );\n watch(\n proxy,\n (v) => {\n if (v !== props[key] || deep)\n triggerEmit(v);\n },\n { deep }\n );\n return proxy;\n } else {\n return computed({\n get() {\n return getValue();\n },\n set(value) {\n triggerEmit(value);\n }\n });\n }\n}\n\nfunction useVModels(props, emit, options = {}) {\n const ret = {};\n for (const key in props)\n ret[key] = useVModel(props, key, emit, options);\n return ret;\n}\n\nfunction useVibrate(options) {\n const {\n pattern = [],\n interval = 0,\n navigator = defaultNavigator\n } = options || {};\n const isSupported = useSupported(() => typeof navigator !== \"undefined\" && \"vibrate\" in navigator);\n const patternRef = toRef(pattern);\n let intervalControls;\n const vibrate = (pattern2 = patternRef.value) => {\n if (isSupported.value)\n navigator.vibrate(pattern2);\n };\n const stop = () => {\n if (isSupported.value)\n navigator.vibrate(0);\n intervalControls == null ? void 0 : intervalControls.pause();\n };\n if (interval > 0) {\n intervalControls = useIntervalFn(\n vibrate,\n interval,\n {\n immediate: false,\n immediateCallback: false\n }\n );\n }\n return {\n isSupported,\n pattern,\n intervalControls,\n vibrate,\n stop\n };\n}\n\nfunction useVirtualList(list, options) {\n const { containerStyle, wrapperProps, scrollTo, calculateRange, currentList, containerRef } = \"itemHeight\" in options ? useVerticalVirtualList(options, list) : useHorizontalVirtualList(options, list);\n return {\n list: currentList,\n scrollTo,\n containerProps: {\n ref: containerRef,\n onScroll: () => {\n calculateRange();\n },\n style: containerStyle\n },\n wrapperProps\n };\n}\nfunction useVirtualListResources(list) {\n const containerRef = ref(null);\n const size = useElementSize(containerRef);\n const currentList = ref([]);\n const source = shallowRef(list);\n const state = ref({ start: 0, end: 10 });\n return { state, source, currentList, size, containerRef };\n}\nfunction createGetViewCapacity(state, source, itemSize) {\n return (containerSize) => {\n if (typeof itemSize === \"number\")\n return Math.ceil(containerSize / itemSize);\n const { start = 0 } = state.value;\n let sum = 0;\n let capacity = 0;\n for (let i = start; i < source.value.length; i++) {\n const size = itemSize(i);\n sum += size;\n capacity = i;\n if (sum > containerSize)\n break;\n }\n return capacity - start;\n };\n}\nfunction createGetOffset(source, itemSize) {\n return (scrollDirection) => {\n if (typeof itemSize === \"number\")\n return Math.floor(scrollDirection / itemSize) + 1;\n let sum = 0;\n let offset = 0;\n for (let i = 0; i < source.value.length; i++) {\n const size = itemSize(i);\n sum += size;\n if (sum >= scrollDirection) {\n offset = i;\n break;\n }\n }\n return offset + 1;\n };\n}\nfunction createCalculateRange(type, overscan, getOffset, getViewCapacity, { containerRef, state, currentList, source }) {\n return () => {\n const element = containerRef.value;\n if (element) {\n const offset = getOffset(type === \"vertical\" ? element.scrollTop : element.scrollLeft);\n const viewCapacity = getViewCapacity(type === \"vertical\" ? element.clientHeight : element.clientWidth);\n const from = offset - overscan;\n const to = offset + viewCapacity + overscan;\n state.value = {\n start: from < 0 ? 0 : from,\n end: to > source.value.length ? source.value.length : to\n };\n currentList.value = source.value.slice(state.value.start, state.value.end).map((ele, index) => ({\n data: ele,\n index: index + state.value.start\n }));\n }\n };\n}\nfunction createGetDistance(itemSize, source) {\n return (index) => {\n if (typeof itemSize === \"number\") {\n const size2 = index * itemSize;\n return size2;\n }\n const size = source.value.slice(0, index).reduce((sum, _, i) => sum + itemSize(i), 0);\n return size;\n };\n}\nfunction useWatchForSizes(size, list, calculateRange) {\n watch([size.width, size.height, list], () => {\n calculateRange();\n });\n}\nfunction createComputedTotalSize(itemSize, source) {\n return computed(() => {\n if (typeof itemSize === \"number\")\n return source.value.length * itemSize;\n return source.value.reduce((sum, _, index) => sum + itemSize(index), 0);\n });\n}\nconst scrollToDictionaryForElementScrollKey = {\n horizontal: \"scrollLeft\",\n vertical: \"scrollTop\"\n};\nfunction createScrollTo(type, calculateRange, getDistance, containerRef) {\n return (index) => {\n if (containerRef.value) {\n containerRef.value[scrollToDictionaryForElementScrollKey[type]] = getDistance(index);\n calculateRange();\n }\n };\n}\nfunction useHorizontalVirtualList(options, list) {\n const resources = useVirtualListResources(list);\n const { state, source, currentList, size, containerRef } = resources;\n const containerStyle = { overflowX: \"auto\" };\n const { itemWidth, overscan = 5 } = options;\n const getViewCapacity = createGetViewCapacity(state, source, itemWidth);\n const getOffset = createGetOffset(source, itemWidth);\n const calculateRange = createCalculateRange(\"horizontal\", overscan, getOffset, getViewCapacity, resources);\n const getDistanceLeft = createGetDistance(itemWidth, source);\n const offsetLeft = computed(() => getDistanceLeft(state.value.start));\n const totalWidth = createComputedTotalSize(itemWidth, source);\n useWatchForSizes(size, list, calculateRange);\n const scrollTo = createScrollTo(\"horizontal\", calculateRange, getDistanceLeft, containerRef);\n const wrapperProps = computed(() => {\n return {\n style: {\n height: \"100%\",\n width: `${totalWidth.value - offsetLeft.value}px`,\n marginLeft: `${offsetLeft.value}px`,\n display: \"flex\"\n }\n };\n });\n return {\n scrollTo,\n calculateRange,\n wrapperProps,\n containerStyle,\n currentList,\n containerRef\n };\n}\nfunction useVerticalVirtualList(options, list) {\n const resources = useVirtualListResources(list);\n const { state, source, currentList, size, containerRef } = resources;\n const containerStyle = { overflowY: \"auto\" };\n const { itemHeight, overscan = 5 } = options;\n const getViewCapacity = createGetViewCapacity(state, source, itemHeight);\n const getOffset = createGetOffset(source, itemHeight);\n const calculateRange = createCalculateRange(\"vertical\", overscan, getOffset, getViewCapacity, resources);\n const getDistanceTop = createGetDistance(itemHeight, source);\n const offsetTop = computed(() => getDistanceTop(state.value.start));\n const totalHeight = createComputedTotalSize(itemHeight, source);\n useWatchForSizes(size, list, calculateRange);\n const scrollTo = createScrollTo(\"vertical\", calculateRange, getDistanceTop, containerRef);\n const wrapperProps = computed(() => {\n return {\n style: {\n width: \"100%\",\n height: `${totalHeight.value - offsetTop.value}px`,\n marginTop: `${offsetTop.value}px`\n }\n };\n });\n return {\n calculateRange,\n scrollTo,\n containerStyle,\n wrapperProps,\n currentList,\n containerRef\n };\n}\n\nfunction useWakeLock(options = {}) {\n const {\n navigator = defaultNavigator,\n document = defaultDocument\n } = options;\n let wakeLock;\n const isSupported = useSupported(() => navigator && \"wakeLock\" in navigator);\n const isActive = ref(false);\n async function onVisibilityChange() {\n if (!isSupported.value || !wakeLock)\n return;\n if (document && document.visibilityState === \"visible\")\n wakeLock = await navigator.wakeLock.request(\"screen\");\n isActive.value = !wakeLock.released;\n }\n if (document)\n useEventListener(document, \"visibilitychange\", onVisibilityChange, { passive: true });\n async function request(type) {\n if (!isSupported.value)\n return;\n wakeLock = await navigator.wakeLock.request(type);\n isActive.value = !wakeLock.released;\n }\n async function release() {\n if (!isSupported.value || !wakeLock)\n return;\n await wakeLock.release();\n isActive.value = !wakeLock.released;\n wakeLock = null;\n }\n return {\n isSupported,\n isActive,\n request,\n release\n };\n}\n\nfunction useWebNotification(defaultOptions = {}) {\n const {\n window = defaultWindow\n } = defaultOptions;\n const isSupported = useSupported(() => !!window && \"Notification\" in window);\n const notification = ref(null);\n const requestPermission = async () => {\n if (!isSupported.value)\n return;\n if (\"permission\" in Notification && Notification.permission !== \"denied\")\n await Notification.requestPermission();\n };\n const { on: onClick, trigger: clickTrigger } = createEventHook();\n const { on: onShow, trigger: showTrigger } = createEventHook();\n const { on: onError, trigger: errorTrigger } = createEventHook();\n const { on: onClose, trigger: closeTrigger } = createEventHook();\n const show = async (overrides) => {\n if (!isSupported.value)\n return;\n await requestPermission();\n const options = Object.assign({}, defaultOptions, overrides);\n notification.value = new Notification(options.title || \"\", options);\n notification.value.onclick = clickTrigger;\n notification.value.onshow = showTrigger;\n notification.value.onerror = errorTrigger;\n notification.value.onclose = closeTrigger;\n return notification.value;\n };\n const close = () => {\n if (notification.value)\n notification.value.close();\n notification.value = null;\n };\n tryOnMounted(async () => {\n if (isSupported.value)\n await requestPermission();\n });\n tryOnScopeDispose(close);\n if (isSupported.value && window) {\n const document = window.document;\n useEventListener(document, \"visibilitychange\", (e) => {\n e.preventDefault();\n if (document.visibilityState === \"visible\") {\n close();\n }\n });\n }\n return {\n isSupported,\n notification,\n show,\n close,\n onClick,\n onShow,\n onError,\n onClose\n };\n}\n\nconst DEFAULT_PING_MESSAGE = \"ping\";\nfunction resolveNestedOptions(options) {\n if (options === true)\n return {};\n return options;\n}\nfunction useWebSocket(url, options = {}) {\n const {\n onConnected,\n onDisconnected,\n onError,\n onMessage,\n immediate = true,\n autoClose = true,\n protocols = []\n } = options;\n const data = ref(null);\n const status = ref(\"CLOSED\");\n const wsRef = ref();\n const urlRef = toRef(url);\n let heartbeatPause;\n let heartbeatResume;\n let explicitlyClosed = false;\n let retried = 0;\n let bufferedData = [];\n let pongTimeoutWait;\n const close = (code = 1e3, reason) => {\n if (!wsRef.value)\n return;\n explicitlyClosed = true;\n heartbeatPause == null ? void 0 : heartbeatPause();\n wsRef.value.close(code, reason);\n };\n const _sendBuffer = () => {\n if (bufferedData.length && wsRef.value && status.value === \"OPEN\") {\n for (const buffer of bufferedData)\n wsRef.value.send(buffer);\n bufferedData = [];\n }\n };\n const resetHeartbeat = () => {\n clearTimeout(pongTimeoutWait);\n pongTimeoutWait = void 0;\n };\n const send = (data2, useBuffer = true) => {\n if (!wsRef.value || status.value !== \"OPEN\") {\n if (useBuffer)\n bufferedData.push(data2);\n return false;\n }\n _sendBuffer();\n wsRef.value.send(data2);\n return true;\n };\n const _init = () => {\n if (explicitlyClosed || typeof urlRef.value === \"undefined\")\n return;\n const ws = new WebSocket(urlRef.value, protocols);\n wsRef.value = ws;\n status.value = \"CONNECTING\";\n ws.onopen = () => {\n status.value = \"OPEN\";\n onConnected == null ? void 0 : onConnected(ws);\n heartbeatResume == null ? void 0 : heartbeatResume();\n _sendBuffer();\n };\n ws.onclose = (ev) => {\n status.value = \"CLOSED\";\n wsRef.value = void 0;\n onDisconnected == null ? void 0 : onDisconnected(ws, ev);\n if (!explicitlyClosed && options.autoReconnect) {\n const {\n retries = -1,\n delay = 1e3,\n onFailed\n } = resolveNestedOptions(options.autoReconnect);\n retried += 1;\n if (typeof retries === \"number\" && (retries < 0 || retried < retries))\n setTimeout(_init, delay);\n else if (typeof retries === \"function\" && retries())\n setTimeout(_init, delay);\n else\n onFailed == null ? void 0 : onFailed();\n }\n };\n ws.onerror = (e) => {\n onError == null ? void 0 : onError(ws, e);\n };\n ws.onmessage = (e) => {\n if (options.heartbeat) {\n resetHeartbeat();\n const {\n message = DEFAULT_PING_MESSAGE\n } = resolveNestedOptions(options.heartbeat);\n if (e.data === message)\n return;\n }\n data.value = e.data;\n onMessage == null ? void 0 : onMessage(ws, e);\n };\n };\n if (options.heartbeat) {\n const {\n message = DEFAULT_PING_MESSAGE,\n interval = 1e3,\n pongTimeout = 1e3\n } = resolveNestedOptions(options.heartbeat);\n const { pause, resume } = useIntervalFn(\n () => {\n send(message, false);\n if (pongTimeoutWait != null)\n return;\n pongTimeoutWait = setTimeout(() => {\n close();\n }, pongTimeout);\n },\n interval,\n { immediate: false }\n );\n heartbeatPause = pause;\n heartbeatResume = resume;\n }\n if (autoClose) {\n useEventListener(window, \"beforeunload\", () => close());\n tryOnScopeDispose(close);\n }\n const open = () => {\n close();\n explicitlyClosed = false;\n retried = 0;\n _init();\n };\n if (immediate)\n watch(urlRef, open, { immediate: true });\n return {\n data,\n status,\n close,\n send,\n open,\n ws: wsRef\n };\n}\n\nfunction useWebWorker(arg0, workerOptions, options) {\n const {\n window = defaultWindow\n } = options != null ? options : {};\n const data = ref(null);\n const worker = shallowRef();\n const post = function post2(val) {\n if (!worker.value)\n return;\n worker.value.postMessage(val);\n };\n const terminate = function terminate2() {\n if (!worker.value)\n return;\n worker.value.terminate();\n };\n if (window) {\n if (typeof arg0 === \"string\")\n worker.value = new Worker(arg0, workerOptions);\n else if (typeof arg0 === \"function\")\n worker.value = arg0();\n else\n worker.value = arg0;\n worker.value.onmessage = (e) => {\n data.value = e.data;\n };\n tryOnScopeDispose(() => {\n if (worker.value)\n worker.value.terminate();\n });\n }\n return {\n data,\n post,\n terminate,\n worker\n };\n}\n\nfunction jobRunner(userFunc) {\n return (e) => {\n const userFuncArgs = e.data[0];\n return Promise.resolve(userFunc.apply(void 0, userFuncArgs)).then((result) => {\n postMessage([\"SUCCESS\", result]);\n }).catch((error) => {\n postMessage([\"ERROR\", error]);\n });\n };\n}\n\nfunction depsParser(deps) {\n if (deps.length === 0)\n return \"\";\n const depsString = deps.map((dep) => `'${dep}'`).toString();\n return `importScripts(${depsString})`;\n}\n\nfunction createWorkerBlobUrl(fn, deps) {\n const blobCode = `${depsParser(deps)}; onmessage=(${jobRunner})(${fn})`;\n const blob = new Blob([blobCode], { type: \"text/javascript\" });\n const url = URL.createObjectURL(blob);\n return url;\n}\n\nfunction useWebWorkerFn(fn, options = {}) {\n const {\n dependencies = [],\n timeout,\n window = defaultWindow\n } = options;\n const worker = ref();\n const workerStatus = ref(\"PENDING\");\n const promise = ref({});\n const timeoutId = ref();\n const workerTerminate = (status = \"PENDING\") => {\n if (worker.value && worker.value._url && window) {\n worker.value.terminate();\n URL.revokeObjectURL(worker.value._url);\n promise.value = {};\n worker.value = void 0;\n window.clearTimeout(timeoutId.value);\n workerStatus.value = status;\n }\n };\n workerTerminate();\n tryOnScopeDispose(workerTerminate);\n const generateWorker = () => {\n const blobUrl = createWorkerBlobUrl(fn, dependencies);\n const newWorker = new Worker(blobUrl);\n newWorker._url = blobUrl;\n newWorker.onmessage = (e) => {\n const { resolve = () => {\n }, reject = () => {\n } } = promise.value;\n const [status, result] = e.data;\n switch (status) {\n case \"SUCCESS\":\n resolve(result);\n workerTerminate(status);\n break;\n default:\n reject(result);\n workerTerminate(\"ERROR\");\n break;\n }\n };\n newWorker.onerror = (e) => {\n const { reject = () => {\n } } = promise.value;\n reject(e);\n workerTerminate(\"ERROR\");\n };\n if (timeout) {\n timeoutId.value = setTimeout(\n () => workerTerminate(\"TIMEOUT_EXPIRED\"),\n timeout\n );\n }\n return newWorker;\n };\n const callWorker = (...fnArgs) => new Promise((resolve, reject) => {\n promise.value = {\n resolve,\n reject\n };\n worker.value && worker.value.postMessage([[...fnArgs]]);\n workerStatus.value = \"RUNNING\";\n });\n const workerFn = (...fnArgs) => {\n if (workerStatus.value === \"RUNNING\") {\n console.error(\n \"[useWebWorkerFn] You can only run one instance of the worker at a time.\"\n );\n return Promise.reject();\n }\n worker.value = generateWorker();\n return callWorker(...fnArgs);\n };\n return {\n workerFn,\n workerStatus,\n workerTerminate\n };\n}\n\nfunction useWindowFocus({ window = defaultWindow } = {}) {\n if (!window)\n return ref(false);\n const focused = ref(window.document.hasFocus());\n useEventListener(window, \"blur\", () => {\n focused.value = false;\n });\n useEventListener(window, \"focus\", () => {\n focused.value = true;\n });\n return focused;\n}\n\nfunction useWindowScroll({ window = defaultWindow } = {}) {\n if (!window) {\n return {\n x: ref(0),\n y: ref(0)\n };\n }\n const x = ref(window.scrollX);\n const y = ref(window.scrollY);\n useEventListener(\n window,\n \"scroll\",\n () => {\n x.value = window.scrollX;\n y.value = window.scrollY;\n },\n {\n capture: false,\n passive: true\n }\n );\n return { x, y };\n}\n\nfunction useWindowSize(options = {}) {\n const {\n window = defaultWindow,\n initialWidth = Infinity,\n initialHeight = Infinity,\n listenOrientation = true,\n includeScrollbar = true\n } = options;\n const width = ref(initialWidth);\n const height = ref(initialHeight);\n const update = () => {\n if (window) {\n if (includeScrollbar) {\n width.value = window.innerWidth;\n height.value = window.innerHeight;\n } else {\n width.value = window.document.documentElement.clientWidth;\n height.value = window.document.documentElement.clientHeight;\n }\n }\n };\n update();\n tryOnMounted(update);\n useEventListener(\"resize\", update, { passive: true });\n if (listenOrientation) {\n const matches = useMediaQuery(\"(orientation: portrait)\");\n watch(matches, () => update());\n }\n return { width, height };\n}\n\nexport { DefaultMagicKeysAliasMap, StorageSerializers, TransitionPresets, computedAsync as asyncComputed, breakpointsAntDesign, breakpointsBootstrapV5, breakpointsMasterCss, breakpointsQuasar, breakpointsSematic, breakpointsTailwind, breakpointsVuetify, cloneFnJSON, computedAsync, computedInject, createFetch, createReusableTemplate, createTemplatePromise, createUnrefFn, customStorageEventName, defaultDocument, defaultLocation, defaultNavigator, defaultWindow, executeTransition, formatTimeAgo, getSSRHandler, mapGamepadToXbox360Controller, onClickOutside, onKeyDown, onKeyPressed, onKeyStroke, onKeyUp, onLongPress, onStartTyping, setSSRHandler, templateRef, unrefElement, useActiveElement, useAnimate, useAsyncQueue, useAsyncState, useBase64, useBattery, useBluetooth, useBreakpoints, useBroadcastChannel, useBrowserLocation, useCached, useClipboard, useCloned, useColorMode, useConfirmDialog, useCssVar, useCurrentElement, useCycleList, useDark, useDebouncedRefHistory, useDeviceMotion, useDeviceOrientation, useDevicePixelRatio, useDevicesList, useDisplayMedia, useDocumentVisibility, useDraggable, useDropZone, useElementBounding, useElementByPoint, useElementHover, useElementSize, useElementVisibility, useEventBus, useEventListener, useEventSource, useEyeDropper, useFavicon, useFetch, useFileDialog, useFileSystemAccess, useFocus, useFocusWithin, useFps, useFullscreen, useGamepad, useGeolocation, useIdle, useImage, useInfiniteScroll, useIntersectionObserver, useKeyModifier, useLocalStorage, useMagicKeys, useManualRefHistory, useMediaControls, useMediaQuery, useMemoize, useMemory, useMounted, useMouse, useMouseInElement, useMousePressed, useMutationObserver, useNavigatorLanguage, useNetwork, useNow, useObjectUrl, useOffsetPagination, useOnline, usePageLeave, useParallax, useParentElement, usePerformanceObserver, usePermission, usePointer, usePointerLock, usePointerSwipe, usePreferredColorScheme, usePreferredContrast, usePreferredDark, usePreferredLanguages, usePreferredReducedMotion, usePrevious, useRafFn, useRefHistory, useResizeObserver, useScreenOrientation, useScreenSafeArea, useScriptTag, useScroll, useScrollLock, useSessionStorage, useShare, useSorted, useSpeechRecognition, useSpeechSynthesis, useStepper, useStorage, useStorageAsync, useStyleTag, useSupported, useSwipe, useTemplateRefsList, useTextDirection, useTextSelection, useTextareaAutosize, useThrottledRefHistory, useTimeAgo, useTimeoutPoll, useTimestamp, useTitle, useTransition, useUrlSearchParams, useUserMedia, useVModel, useVModels, useVibrate, useVirtualList, useWakeLock, useWebNotification, useWebSocket, useWebWorker, useWebWorkerFn, useWindowFocus, useWindowScroll, useWindowSize };\n","'use strict';\n\nexport default function bind(fn, thisArg) {\n return function wrap() {\n return fn.apply(thisArg, arguments);\n };\n}\n","'use strict';\n\nimport bind from './helpers/bind.js';\n\n// utils is a library of generic helper functions non-specific to axios\n\nconst {toString} = Object.prototype;\nconst {getPrototypeOf} = Object;\n\nconst kindOf = (cache => thing => {\n const str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n})(Object.create(null));\n\nconst kindOfTest = (type) => {\n type = type.toLowerCase();\n return (thing) => kindOf(thing) === type\n}\n\nconst typeOfTest = type => thing => typeof thing === type;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n *\n * @returns {boolean} True if value is an Array, otherwise false\n */\nconst {isArray} = Array;\n\n/**\n * Determine if a value is undefined\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nconst isUndefined = typeOfTest('undefined');\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && isFunction(val.constructor.isBuffer) && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nconst isArrayBuffer = kindOfTest('ArrayBuffer');\n\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n let result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a String, otherwise false\n */\nconst isString = typeOfTest('string');\n\n/**\n * Determine if a value is a Function\n *\n * @param {*} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nconst isFunction = typeOfTest('function');\n\n/**\n * Determine if a value is a Number\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Number, otherwise false\n */\nconst isNumber = typeOfTest('number');\n\n/**\n * Determine if a value is an Object\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an Object, otherwise false\n */\nconst isObject = (thing) => thing !== null && typeof thing === 'object';\n\n/**\n * Determine if a value is a Boolean\n *\n * @param {*} thing The value to test\n * @returns {boolean} True if value is a Boolean, otherwise false\n */\nconst isBoolean = thing => thing === true || thing === false;\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a plain Object, otherwise false\n */\nconst isPlainObject = (val) => {\n if (kindOf(val) !== 'object') {\n return false;\n }\n\n const prototype = getPrototypeOf(val);\n return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in val) && !(Symbol.iterator in val);\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Date, otherwise false\n */\nconst isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a Blob\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nconst isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Stream\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nconst isStream = (val) => isObject(val) && isFunction(val.pipe);\n\n/**\n * Determine if a value is a FormData\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nconst isFormData = (thing) => {\n const pattern = '[object FormData]';\n return thing && (\n (typeof FormData === 'function' && thing instanceof FormData) ||\n toString.call(thing) === pattern ||\n (isFunction(thing.toString) && thing.toString() === pattern)\n );\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nconst isURLSearchParams = kindOfTest('URLSearchParams');\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n *\n * @returns {String} The String freed of excess whitespace\n */\nconst trim = (str) => str.trim ?\n str.trim() : str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n *\n * @param {Boolean} [allOwnKeys = false]\n * @returns {any}\n */\nfunction forEach(obj, fn, {allOwnKeys = false} = {}) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n let i;\n let l;\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);\n const len = keys.length;\n let key;\n\n for (i = 0; i < len; i++) {\n key = keys[i];\n fn.call(null, obj[key], key, obj);\n }\n }\n}\n\nfunction findKey(obj, key) {\n key = key.toLowerCase();\n const keys = Object.keys(obj);\n let i = keys.length;\n let _key;\n while (i-- > 0) {\n _key = keys[i];\n if (key === _key.toLowerCase()) {\n return _key;\n }\n }\n return null;\n}\n\nconst _global = (() => {\n /*eslint no-undef:0*/\n if (typeof globalThis !== \"undefined\") return globalThis;\n return typeof self !== \"undefined\" ? self : (typeof window !== 'undefined' ? window : global)\n})();\n\nconst isContextDefined = (context) => !isUndefined(context) && context !== _global;\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n *\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n const {caseless} = isContextDefined(this) && this || {};\n const result = {};\n const assignValue = (val, key) => {\n const targetKey = caseless && findKey(result, key) || key;\n if (isPlainObject(result[targetKey]) && isPlainObject(val)) {\n result[targetKey] = merge(result[targetKey], val);\n } else if (isPlainObject(val)) {\n result[targetKey] = merge({}, val);\n } else if (isArray(val)) {\n result[targetKey] = val.slice();\n } else {\n result[targetKey] = val;\n }\n }\n\n for (let i = 0, l = arguments.length; i < l; i++) {\n arguments[i] && forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n *\n * @param {Boolean} [allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\nconst extend = (a, b, thisArg, {allOwnKeys}= {}) => {\n forEach(b, (val, key) => {\n if (thisArg && isFunction(val)) {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n }, {allOwnKeys});\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n *\n * @returns {string} content value without BOM\n */\nconst stripBOM = (content) => {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n *\n * @returns {void}\n */\nconst inherits = (constructor, superConstructor, props, descriptors) => {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n constructor.prototype.constructor = constructor;\n Object.defineProperty(constructor, 'super', {\n value: superConstructor.prototype\n });\n props && Object.assign(constructor.prototype, props);\n}\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function|Boolean} [filter]\n * @param {Function} [propFilter]\n *\n * @returns {Object}\n */\nconst toFlatObject = (sourceObj, destObj, filter, propFilter) => {\n let props;\n let i;\n let prop;\n const merged = {};\n\n destObj = destObj || {};\n // eslint-disable-next-line no-eq-null,eqeqeq\n if (sourceObj == null) return destObj;\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = filter !== false && getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n}\n\n/**\n * Determines whether a string ends with the characters of a specified string\n *\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n *\n * @returns {boolean}\n */\nconst endsWith = (str, searchString, position) => {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n const lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n}\n\n\n/**\n * Returns new array from array like object or null if failed\n *\n * @param {*} [thing]\n *\n * @returns {?Array}\n */\nconst toArray = (thing) => {\n if (!thing) return null;\n if (isArray(thing)) return thing;\n let i = thing.length;\n if (!isNumber(i)) return null;\n const arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n}\n\n/**\n * Checking if the Uint8Array exists and if it does, it returns a function that checks if the\n * thing passed in is an instance of Uint8Array\n *\n * @param {TypedArray}\n *\n * @returns {Array}\n */\n// eslint-disable-next-line func-names\nconst isTypedArray = (TypedArray => {\n // eslint-disable-next-line func-names\n return thing => {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));\n\n/**\n * For each entry in the object, call the function with the key and value.\n *\n * @param {Object} obj - The object to iterate over.\n * @param {Function} fn - The function to call for each entry.\n *\n * @returns {void}\n */\nconst forEachEntry = (obj, fn) => {\n const generator = obj && obj[Symbol.iterator];\n\n const iterator = generator.call(obj);\n\n let result;\n\n while ((result = iterator.next()) && !result.done) {\n const pair = result.value;\n fn.call(obj, pair[0], pair[1]);\n }\n}\n\n/**\n * It takes a regular expression and a string, and returns an array of all the matches\n *\n * @param {string} regExp - The regular expression to match against.\n * @param {string} str - The string to search.\n *\n * @returns {Array}\n */\nconst matchAll = (regExp, str) => {\n let matches;\n const arr = [];\n\n while ((matches = regExp.exec(str)) !== null) {\n arr.push(matches);\n }\n\n return arr;\n}\n\n/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */\nconst isHTMLForm = kindOfTest('HTMLFormElement');\n\nconst toCamelCase = str => {\n return str.toLowerCase().replace(/[_-\\s]([a-z\\d])(\\w*)/g,\n function replacer(m, p1, p2) {\n return p1.toUpperCase() + p2;\n }\n );\n};\n\n/* Creating a function that will check if an object has a property. */\nconst hasOwnProperty = (({hasOwnProperty}) => (obj, prop) => hasOwnProperty.call(obj, prop))(Object.prototype);\n\n/**\n * Determine if a value is a RegExp object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a RegExp object, otherwise false\n */\nconst isRegExp = kindOfTest('RegExp');\n\nconst reduceDescriptors = (obj, reducer) => {\n const descriptors = Object.getOwnPropertyDescriptors(obj);\n const reducedDescriptors = {};\n\n forEach(descriptors, (descriptor, name) => {\n if (reducer(descriptor, name, obj) !== false) {\n reducedDescriptors[name] = descriptor;\n }\n });\n\n Object.defineProperties(obj, reducedDescriptors);\n}\n\n/**\n * Makes all methods read-only\n * @param {Object} obj\n */\n\nconst freezeMethods = (obj) => {\n reduceDescriptors(obj, (descriptor, name) => {\n // skip restricted props in strict mode\n if (isFunction(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) {\n return false;\n }\n\n const value = obj[name];\n\n if (!isFunction(value)) return;\n\n descriptor.enumerable = false;\n\n if ('writable' in descriptor) {\n descriptor.writable = false;\n return;\n }\n\n if (!descriptor.set) {\n descriptor.set = () => {\n throw Error('Can not rewrite read-only method \\'' + name + '\\'');\n };\n }\n });\n}\n\nconst toObjectSet = (arrayOrString, delimiter) => {\n const obj = {};\n\n const define = (arr) => {\n arr.forEach(value => {\n obj[value] = true;\n });\n }\n\n isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));\n\n return obj;\n}\n\nconst noop = () => {}\n\nconst toFiniteNumber = (value, defaultValue) => {\n value = +value;\n return Number.isFinite(value) ? value : defaultValue;\n}\n\nconst toJSONObject = (obj) => {\n const stack = new Array(10);\n\n const visit = (source, i) => {\n\n if (isObject(source)) {\n if (stack.indexOf(source) >= 0) {\n return;\n }\n\n if(!('toJSON' in source)) {\n stack[i] = source;\n const target = isArray(source) ? [] : {};\n\n forEach(source, (value, key) => {\n const reducedValue = visit(value, i + 1);\n !isUndefined(reducedValue) && (target[key] = reducedValue);\n });\n\n stack[i] = undefined;\n\n return target;\n }\n }\n\n return source;\n }\n\n return visit(obj, 0);\n}\n\nexport default {\n isArray,\n isArrayBuffer,\n isBuffer,\n isFormData,\n isArrayBufferView,\n isString,\n isNumber,\n isBoolean,\n isObject,\n isPlainObject,\n isUndefined,\n isDate,\n isFile,\n isBlob,\n isRegExp,\n isFunction,\n isStream,\n isURLSearchParams,\n isTypedArray,\n isFileList,\n forEach,\n merge,\n extend,\n trim,\n stripBOM,\n inherits,\n toFlatObject,\n kindOf,\n kindOfTest,\n endsWith,\n toArray,\n forEachEntry,\n matchAll,\n isHTMLForm,\n hasOwnProperty,\n hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection\n reduceDescriptors,\n freezeMethods,\n toObjectSet,\n toCamelCase,\n noop,\n toFiniteNumber,\n findKey,\n global: _global,\n isContextDefined,\n toJSONObject\n};\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n *\n * @returns {Error} The created error.\n */\nfunction AxiosError(message, code, config, request, response) {\n Error.call(this);\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n } else {\n this.stack = (new Error()).stack;\n }\n\n this.message = message;\n this.name = 'AxiosError';\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n response && (this.response = response);\n}\n\nutils.inherits(AxiosError, Error, {\n toJSON: function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: utils.toJSONObject(this.config),\n code: this.code,\n status: this.response && this.response.status ? this.response.status : null\n };\n }\n});\n\nconst prototype = AxiosError.prototype;\nconst descriptors = {};\n\n[\n 'ERR_BAD_OPTION_VALUE',\n 'ERR_BAD_OPTION',\n 'ECONNABORTED',\n 'ETIMEDOUT',\n 'ERR_NETWORK',\n 'ERR_FR_TOO_MANY_REDIRECTS',\n 'ERR_DEPRECATED',\n 'ERR_BAD_RESPONSE',\n 'ERR_BAD_REQUEST',\n 'ERR_CANCELED',\n 'ERR_NOT_SUPPORT',\n 'ERR_INVALID_URL'\n// eslint-disable-next-line func-names\n].forEach(code => {\n descriptors[code] = {value: code};\n});\n\nObject.defineProperties(AxiosError, descriptors);\nObject.defineProperty(prototype, 'isAxiosError', {value: true});\n\n// eslint-disable-next-line func-names\nAxiosError.from = (error, code, config, request, response, customProps) => {\n const axiosError = Object.create(prototype);\n\n utils.toFlatObject(error, axiosError, function filter(obj) {\n return obj !== Error.prototype;\n }, prop => {\n return prop !== 'isAxiosError';\n });\n\n AxiosError.call(axiosError, error.message, code, config, request, response);\n\n axiosError.cause = error;\n\n axiosError.name = error.name;\n\n customProps && Object.assign(axiosError, customProps);\n\n return axiosError;\n};\n\nexport default AxiosError;\n","import FormData from 'form-data';\nexport default FormData;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport envFormData from '../env/classes/FormData.js';\n\n/**\n * Determines if the given thing is a array or js object.\n *\n * @param {string} thing - The object or array to be visited.\n *\n * @returns {boolean}\n */\nfunction isVisitable(thing) {\n return utils.isPlainObject(thing) || utils.isArray(thing);\n}\n\n/**\n * It removes the brackets from the end of a string\n *\n * @param {string} key - The key of the parameter.\n *\n * @returns {string} the key without the brackets.\n */\nfunction removeBrackets(key) {\n return utils.endsWith(key, '[]') ? key.slice(0, -2) : key;\n}\n\n/**\n * It takes a path, a key, and a boolean, and returns a string\n *\n * @param {string} path - The path to the current key.\n * @param {string} key - The key of the current object being iterated over.\n * @param {string} dots - If true, the key will be rendered with dots instead of brackets.\n *\n * @returns {string} The path to the current key.\n */\nfunction renderKey(path, key, dots) {\n if (!path) return key;\n return path.concat(key).map(function each(token, i) {\n // eslint-disable-next-line no-param-reassign\n token = removeBrackets(token);\n return !dots && i ? '[' + token + ']' : token;\n }).join(dots ? '.' : '');\n}\n\n/**\n * If the array is an array and none of its elements are visitable, then it's a flat array.\n *\n * @param {Array} arr - The array to check\n *\n * @returns {boolean}\n */\nfunction isFlatArray(arr) {\n return utils.isArray(arr) && !arr.some(isVisitable);\n}\n\nconst predicates = utils.toFlatObject(utils, {}, null, function filter(prop) {\n return /^is[A-Z]/.test(prop);\n});\n\n/**\n * If the thing is a FormData object, return true, otherwise return false.\n *\n * @param {unknown} thing - The thing to check.\n *\n * @returns {boolean}\n */\nfunction isSpecCompliant(thing) {\n return thing && utils.isFunction(thing.append) && thing[Symbol.toStringTag] === 'FormData' && thing[Symbol.iterator];\n}\n\n/**\n * Convert a data object to FormData\n *\n * @param {Object} obj\n * @param {?Object} [formData]\n * @param {?Object} [options]\n * @param {Function} [options.visitor]\n * @param {Boolean} [options.metaTokens = true]\n * @param {Boolean} [options.dots = false]\n * @param {?Boolean} [options.indexes = false]\n *\n * @returns {Object}\n **/\n\n/**\n * It converts an object into a FormData object\n *\n * @param {Object} obj - The object to convert to form data.\n * @param {string} formData - The FormData object to append to.\n * @param {Object} options\n *\n * @returns\n */\nfunction toFormData(obj, formData, options) {\n if (!utils.isObject(obj)) {\n throw new TypeError('target must be an object');\n }\n\n // eslint-disable-next-line no-param-reassign\n formData = formData || new (envFormData || FormData)();\n\n // eslint-disable-next-line no-param-reassign\n options = utils.toFlatObject(options, {\n metaTokens: true,\n dots: false,\n indexes: false\n }, false, function defined(option, source) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n return !utils.isUndefined(source[option]);\n });\n\n const metaTokens = options.metaTokens;\n // eslint-disable-next-line no-use-before-define\n const visitor = options.visitor || defaultVisitor;\n const dots = options.dots;\n const indexes = options.indexes;\n const _Blob = options.Blob || typeof Blob !== 'undefined' && Blob;\n const useBlob = _Blob && isSpecCompliant(formData);\n\n if (!utils.isFunction(visitor)) {\n throw new TypeError('visitor must be a function');\n }\n\n function convertValue(value) {\n if (value === null) return '';\n\n if (utils.isDate(value)) {\n return value.toISOString();\n }\n\n if (!useBlob && utils.isBlob(value)) {\n throw new AxiosError('Blob is not supported. Use a Buffer instead.');\n }\n\n if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n }\n\n return value;\n }\n\n /**\n * Default visitor.\n *\n * @param {*} value\n * @param {String|Number} key\n * @param {Array} path\n * @this {FormData}\n *\n * @returns {boolean} return true to visit the each prop of the value recursively\n */\n function defaultVisitor(value, key, path) {\n let arr = value;\n\n if (value && !path && typeof value === 'object') {\n if (utils.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n key = metaTokens ? key : key.slice(0, -2);\n // eslint-disable-next-line no-param-reassign\n value = JSON.stringify(value);\n } else if (\n (utils.isArray(value) && isFlatArray(value)) ||\n (utils.isFileList(value) || utils.endsWith(key, '[]') && (arr = utils.toArray(value))\n )) {\n // eslint-disable-next-line no-param-reassign\n key = removeBrackets(key);\n\n arr.forEach(function each(el, index) {\n !(utils.isUndefined(el) || el === null) && formData.append(\n // eslint-disable-next-line no-nested-ternary\n indexes === true ? renderKey([key], index, dots) : (indexes === null ? key : key + '[]'),\n convertValue(el)\n );\n });\n return false;\n }\n }\n\n if (isVisitable(value)) {\n return true;\n }\n\n formData.append(renderKey(path, key, dots), convertValue(value));\n\n return false;\n }\n\n const stack = [];\n\n const exposedHelpers = Object.assign(predicates, {\n defaultVisitor,\n convertValue,\n isVisitable\n });\n\n function build(value, path) {\n if (utils.isUndefined(value)) return;\n\n if (stack.indexOf(value) !== -1) {\n throw Error('Circular reference detected in ' + path.join('.'));\n }\n\n stack.push(value);\n\n utils.forEach(value, function each(el, key) {\n const result = !(utils.isUndefined(el) || el === null) && visitor.call(\n formData, el, utils.isString(key) ? key.trim() : key, path, exposedHelpers\n );\n\n if (result === true) {\n build(el, path ? path.concat(key) : [key]);\n }\n });\n\n stack.pop();\n }\n\n if (!utils.isObject(obj)) {\n throw new TypeError('data must be an object');\n }\n\n build(obj);\n\n return formData;\n}\n\nexport default toFormData;\n","'use strict';\n\nimport toFormData from './toFormData.js';\n\n/**\n * It encodes a string by replacing all characters that are not in the unreserved set with\n * their percent-encoded equivalents\n *\n * @param {string} str - The string to encode.\n *\n * @returns {string} The encoded string.\n */\nfunction encode(str) {\n const charMap = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n '%00': '\\x00'\n };\n return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g, function replacer(match) {\n return charMap[match];\n });\n}\n\n/**\n * It takes a params object and converts it to a FormData object\n *\n * @param {Object} params - The parameters to be converted to a FormData object.\n * @param {Object} options - The options object passed to the Axios constructor.\n *\n * @returns {void}\n */\nfunction AxiosURLSearchParams(params, options) {\n this._pairs = [];\n\n params && toFormData(params, this, options);\n}\n\nconst prototype = AxiosURLSearchParams.prototype;\n\nprototype.append = function append(name, value) {\n this._pairs.push([name, value]);\n};\n\nprototype.toString = function toString(encoder) {\n const _encode = encoder ? function(value) {\n return encoder.call(this, value, encode);\n } : encode;\n\n return this._pairs.map(function each(pair) {\n return _encode(pair[0]) + '=' + _encode(pair[1]);\n }, '').join('&');\n};\n\nexport default AxiosURLSearchParams;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosURLSearchParams from '../helpers/AxiosURLSearchParams.js';\n\n/**\n * It replaces all instances of the characters `:`, `$`, `,`, `+`, `[`, and `]` with their\n * URI encoded counterparts\n *\n * @param {string} val The value to be encoded.\n *\n * @returns {string} The encoded value.\n */\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @param {?object} options\n *\n * @returns {string} The formatted url\n */\nexport default function buildURL(url, params, options) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n \n const _encode = options && options.encode || encode;\n\n const serializeFn = options && options.serialize;\n\n let serializedParams;\n\n if (serializeFn) {\n serializedParams = serializeFn(params, options);\n } else {\n serializedParams = utils.isURLSearchParams(params) ?\n params.toString() :\n new AxiosURLSearchParams(params, options).toString(_encode);\n }\n\n if (serializedParams) {\n const hashmarkIndex = url.indexOf(\"#\");\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\nclass InterceptorManager {\n constructor() {\n this.handlers = [];\n }\n\n /**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\n use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled,\n rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n }\n\n /**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n *\n * @returns {Boolean} `true` if the interceptor was removed, `false` otherwise\n */\n eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n }\n\n /**\n * Clear all interceptors from the stack\n *\n * @returns {void}\n */\n clear() {\n if (this.handlers) {\n this.handlers = [];\n }\n }\n\n /**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n *\n * @returns {void}\n */\n forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n }\n}\n\nexport default InterceptorManager;\n","'use strict';\n\nexport default {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n};\n","'use strict';\n\nimport AxiosURLSearchParams from '../../../helpers/AxiosURLSearchParams.js';\nexport default typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams;\n","'use strict';\n\nexport default FormData;\n","import URLSearchParams from './classes/URLSearchParams.js'\nimport FormData from './classes/FormData.js'\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n *\n * @returns {boolean}\n */\nconst isStandardBrowserEnv = (() => {\n let product;\n if (typeof navigator !== 'undefined' && (\n (product = navigator.product) === 'ReactNative' ||\n product === 'NativeScript' ||\n product === 'NS')\n ) {\n return false;\n }\n\n return typeof window !== 'undefined' && typeof document !== 'undefined';\n})();\n\n/**\n * Determine if we're running in a standard browser webWorker environment\n *\n * Although the `isStandardBrowserEnv` method indicates that\n * `allows axios to run in a web worker`, the WebWorker will still be\n * filtered out due to its judgment standard\n * `typeof window !== 'undefined' && typeof document !== 'undefined'`.\n * This leads to a problem when axios post `FormData` in webWorker\n */\n const isStandardBrowserWebWorkerEnv = (() => {\n return (\n typeof WorkerGlobalScope !== 'undefined' &&\n // eslint-disable-next-line no-undef\n self instanceof WorkerGlobalScope &&\n typeof self.importScripts === 'function'\n );\n})();\n\n\nexport default {\n isBrowser: true,\n classes: {\n URLSearchParams,\n FormData,\n Blob\n },\n isStandardBrowserEnv,\n isStandardBrowserWebWorkerEnv,\n protocols: ['http', 'https', 'file', 'blob', 'url', 'data']\n};\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']\n *\n * @param {string} name - The name of the property to get.\n *\n * @returns An array of strings.\n */\nfunction parsePropPath(name) {\n // foo[x][y][z]\n // foo.x.y.z\n // foo-x-y-z\n // foo x y z\n return utils.matchAll(/\\w+|\\[(\\w*)]/g, name).map(match => {\n return match[0] === '[]' ? '' : match[1] || match[0];\n });\n}\n\n/**\n * Convert an array to an object.\n *\n * @param {Array} arr - The array to convert to an object.\n *\n * @returns An object with the same keys and values as the array.\n */\nfunction arrayToObject(arr) {\n const obj = {};\n const keys = Object.keys(arr);\n let i;\n const len = keys.length;\n let key;\n for (i = 0; i < len; i++) {\n key = keys[i];\n obj[key] = arr[key];\n }\n return obj;\n}\n\n/**\n * It takes a FormData object and returns a JavaScript object\n *\n * @param {string} formData The FormData object to convert to JSON.\n *\n * @returns {Object | null} The converted object.\n */\nfunction formDataToJSON(formData) {\n function buildPath(path, value, target, index) {\n let name = path[index++];\n const isNumericKey = Number.isFinite(+name);\n const isLast = index >= path.length;\n name = !name && utils.isArray(target) ? target.length : name;\n\n if (isLast) {\n if (utils.hasOwnProp(target, name)) {\n target[name] = [target[name], value];\n } else {\n target[name] = value;\n }\n\n return !isNumericKey;\n }\n\n if (!target[name] || !utils.isObject(target[name])) {\n target[name] = [];\n }\n\n const result = buildPath(path, value, target[name], index);\n\n if (result && utils.isArray(target[name])) {\n target[name] = arrayToObject(target[name]);\n }\n\n return !isNumericKey;\n }\n\n if (utils.isFormData(formData) && utils.isFunction(formData.entries)) {\n const obj = {};\n\n utils.forEachEntry(formData, (name, value) => {\n buildPath(parsePropPath(name), value, obj, 0);\n });\n\n return obj;\n }\n\n return null;\n}\n\nexport default formDataToJSON;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport transitionalDefaults from './transitional.js';\nimport toFormData from '../helpers/toFormData.js';\nimport toURLEncodedForm from '../helpers/toURLEncodedForm.js';\nimport platform from '../platform/index.js';\nimport formDataToJSON from '../helpers/formDataToJSON.js';\n\nconst DEFAULT_CONTENT_TYPE = {\n 'Content-Type': undefined\n};\n\n/**\n * It takes a string, tries to parse it, and if it fails, it returns the stringified version\n * of the input\n *\n * @param {any} rawValue - The value to be stringified.\n * @param {Function} parser - A function that parses a string into a JavaScript object.\n * @param {Function} encoder - A function that takes a value and returns a string.\n *\n * @returns {string} A stringified version of the rawValue.\n */\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nconst defaults = {\n\n transitional: transitionalDefaults,\n\n adapter: ['xhr', 'http'],\n\n transformRequest: [function transformRequest(data, headers) {\n const contentType = headers.getContentType() || '';\n const hasJSONContentType = contentType.indexOf('application/json') > -1;\n const isObjectPayload = utils.isObject(data);\n\n if (isObjectPayload && utils.isHTMLForm(data)) {\n data = new FormData(data);\n }\n\n const isFormData = utils.isFormData(data);\n\n if (isFormData) {\n if (!hasJSONContentType) {\n return data;\n }\n return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;\n }\n\n if (utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false);\n return data.toString();\n }\n\n let isFileList;\n\n if (isObjectPayload) {\n if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {\n return toURLEncodedForm(data, this.formSerializer).toString();\n }\n\n if ((isFileList = utils.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) {\n const _FormData = this.env && this.env.FormData;\n\n return toFormData(\n isFileList ? {'files[]': data} : data,\n _FormData && new _FormData(),\n this.formSerializer\n );\n }\n }\n\n if (isObjectPayload || hasJSONContentType ) {\n headers.setContentType('application/json', false);\n return stringifySafely(data);\n }\n\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n const transitional = this.transitional || defaults.transitional;\n const forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n const JSONRequested = this.responseType === 'json';\n\n if (data && utils.isString(data) && ((forcedJSONParsing && !this.responseType) || JSONRequested)) {\n const silentJSONParsing = transitional && transitional.silentJSONParsing;\n const strictJSONParsing = !silentJSONParsing && JSONRequested;\n\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n env: {\n FormData: platform.classes.FormData,\n Blob: platform.classes.Blob\n },\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nexport default defaults;\n","'use strict';\n\nimport utils from '../utils.js';\nimport toFormData from './toFormData.js';\nimport platform from '../platform/index.js';\n\nexport default function toURLEncodedForm(data, options) {\n return toFormData(data, new platform.classes.URLSearchParams(), Object.assign({\n visitor: function(value, key, path, helpers) {\n if (platform.isNode && utils.isBuffer(value)) {\n this.append(key, value.toString('base64'));\n return false;\n }\n\n return helpers.defaultVisitor.apply(this, arguments);\n }\n }, options));\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\n// RawAxiosHeaders whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nconst ignoreDuplicateOf = utils.toObjectSet([\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n]);\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} rawHeaders Headers needing to be parsed\n *\n * @returns {Object} Headers parsed into an object\n */\nexport default rawHeaders => {\n const parsed = {};\n let key;\n let val;\n let i;\n\n rawHeaders && rawHeaders.split('\\n').forEach(function parser(line) {\n i = line.indexOf(':');\n key = line.substring(0, i).trim().toLowerCase();\n val = line.substring(i + 1).trim();\n\n if (!key || (parsed[key] && ignoreDuplicateOf[key])) {\n return;\n }\n\n if (key === 'set-cookie') {\n if (parsed[key]) {\n parsed[key].push(val);\n } else {\n parsed[key] = [val];\n }\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nimport utils from '../utils.js';\nimport parseHeaders from '../helpers/parseHeaders.js';\n\nconst $internals = Symbol('internals');\n\nfunction normalizeHeader(header) {\n return header && String(header).trim().toLowerCase();\n}\n\nfunction normalizeValue(value) {\n if (value === false || value == null) {\n return value;\n }\n\n return utils.isArray(value) ? value.map(normalizeValue) : String(value);\n}\n\nfunction parseTokens(str) {\n const tokens = Object.create(null);\n const tokensRE = /([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;\n let match;\n\n while ((match = tokensRE.exec(str))) {\n tokens[match[1]] = match[2];\n }\n\n return tokens;\n}\n\nfunction isValidHeaderName(str) {\n return /^[-_a-zA-Z]+$/.test(str.trim());\n}\n\nfunction matchHeaderValue(context, value, header, filter) {\n if (utils.isFunction(filter)) {\n return filter.call(this, value, header);\n }\n\n if (!utils.isString(value)) return;\n\n if (utils.isString(filter)) {\n return value.indexOf(filter) !== -1;\n }\n\n if (utils.isRegExp(filter)) {\n return filter.test(value);\n }\n}\n\nfunction formatHeader(header) {\n return header.trim()\n .toLowerCase().replace(/([a-z\\d])(\\w*)/g, (w, char, str) => {\n return char.toUpperCase() + str;\n });\n}\n\nfunction buildAccessors(obj, header) {\n const accessorName = utils.toCamelCase(' ' + header);\n\n ['get', 'set', 'has'].forEach(methodName => {\n Object.defineProperty(obj, methodName + accessorName, {\n value: function(arg1, arg2, arg3) {\n return this[methodName].call(this, header, arg1, arg2, arg3);\n },\n configurable: true\n });\n });\n}\n\nclass AxiosHeaders {\n constructor(headers) {\n headers && this.set(headers);\n }\n\n set(header, valueOrRewrite, rewrite) {\n const self = this;\n\n function setHeader(_value, _header, _rewrite) {\n const lHeader = normalizeHeader(_header);\n\n if (!lHeader) {\n throw new Error('header name must be a non-empty string');\n }\n\n const key = utils.findKey(self, lHeader);\n\n if(!key || self[key] === undefined || _rewrite === true || (_rewrite === undefined && self[key] !== false)) {\n self[key || _header] = normalizeValue(_value);\n }\n }\n\n const setHeaders = (headers, _rewrite) =>\n utils.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));\n\n if (utils.isPlainObject(header) || header instanceof this.constructor) {\n setHeaders(header, valueOrRewrite)\n } else if(utils.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {\n setHeaders(parseHeaders(header), valueOrRewrite);\n } else {\n header != null && setHeader(valueOrRewrite, header, rewrite);\n }\n\n return this;\n }\n\n get(header, parser) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n if (key) {\n const value = this[key];\n\n if (!parser) {\n return value;\n }\n\n if (parser === true) {\n return parseTokens(value);\n }\n\n if (utils.isFunction(parser)) {\n return parser.call(this, value, key);\n }\n\n if (utils.isRegExp(parser)) {\n return parser.exec(value);\n }\n\n throw new TypeError('parser must be boolean|regexp|function');\n }\n }\n }\n\n has(header, matcher) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n return !!(key && (!matcher || matchHeaderValue(this, this[key], key, matcher)));\n }\n\n return false;\n }\n\n delete(header, matcher) {\n const self = this;\n let deleted = false;\n\n function deleteHeader(_header) {\n _header = normalizeHeader(_header);\n\n if (_header) {\n const key = utils.findKey(self, _header);\n\n if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {\n delete self[key];\n\n deleted = true;\n }\n }\n }\n\n if (utils.isArray(header)) {\n header.forEach(deleteHeader);\n } else {\n deleteHeader(header);\n }\n\n return deleted;\n }\n\n clear() {\n return Object.keys(this).forEach(this.delete.bind(this));\n }\n\n normalize(format) {\n const self = this;\n const headers = {};\n\n utils.forEach(this, (value, header) => {\n const key = utils.findKey(headers, header);\n\n if (key) {\n self[key] = normalizeValue(value);\n delete self[header];\n return;\n }\n\n const normalized = format ? formatHeader(header) : String(header).trim();\n\n if (normalized !== header) {\n delete self[header];\n }\n\n self[normalized] = normalizeValue(value);\n\n headers[normalized] = true;\n });\n\n return this;\n }\n\n concat(...targets) {\n return this.constructor.concat(this, ...targets);\n }\n\n toJSON(asStrings) {\n const obj = Object.create(null);\n\n utils.forEach(this, (value, header) => {\n value != null && value !== false && (obj[header] = asStrings && utils.isArray(value) ? value.join(', ') : value);\n });\n\n return obj;\n }\n\n [Symbol.iterator]() {\n return Object.entries(this.toJSON())[Symbol.iterator]();\n }\n\n toString() {\n return Object.entries(this.toJSON()).map(([header, value]) => header + ': ' + value).join('\\n');\n }\n\n get [Symbol.toStringTag]() {\n return 'AxiosHeaders';\n }\n\n static from(thing) {\n return thing instanceof this ? thing : new this(thing);\n }\n\n static concat(first, ...targets) {\n const computed = new this(first);\n\n targets.forEach((target) => computed.set(target));\n\n return computed;\n }\n\n static accessor(header) {\n const internals = this[$internals] = (this[$internals] = {\n accessors: {}\n });\n\n const accessors = internals.accessors;\n const prototype = this.prototype;\n\n function defineAccessor(_header) {\n const lHeader = normalizeHeader(_header);\n\n if (!accessors[lHeader]) {\n buildAccessors(prototype, _header);\n accessors[lHeader] = true;\n }\n }\n\n utils.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);\n\n return this;\n }\n}\n\nAxiosHeaders.accessor(['Content-Type', 'Content-Length', 'Accept', 'Accept-Encoding', 'User-Agent']);\n\nutils.freezeMethods(AxiosHeaders.prototype);\nutils.freezeMethods(AxiosHeaders);\n\nexport default AxiosHeaders;\n","'use strict';\n\nimport utils from './../utils.js';\nimport defaults from '../defaults/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Array|Function} fns A single function or Array of functions\n * @param {?Object} response The response object\n *\n * @returns {*} The resulting transformed data\n */\nexport default function transformData(fns, response) {\n const config = this || defaults;\n const context = response || config;\n const headers = AxiosHeaders.from(context.headers);\n let data = context.data;\n\n utils.forEach(fns, function transform(fn) {\n data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);\n });\n\n headers.normalize();\n\n return data;\n}\n","'use strict';\n\nexport default function isCancel(value) {\n return !!(value && value.__CANCEL__);\n}\n","'use strict';\n\nimport AxiosError from '../core/AxiosError.js';\nimport utils from '../utils.js';\n\n/**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @param {string=} message The message.\n * @param {Object=} config The config.\n * @param {Object=} request The request.\n *\n * @returns {CanceledError} The created error.\n */\nfunction CanceledError(message, config, request) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);\n this.name = 'CanceledError';\n}\n\nutils.inherits(CanceledError, AxiosError, {\n __CANCEL__: true\n});\n\nexport default CanceledError;\n","'use strict';\n\nimport utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.isStandardBrowserEnv ?\n\n// Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n const cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n const match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n// Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })();\n","'use strict';\n\nimport isAbsoluteURL from '../helpers/isAbsoluteURL.js';\nimport combineURLs from '../helpers/combineURLs.js';\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n *\n * @returns {string} The combined full path\n */\nexport default function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n}\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n *\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nexport default function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n}\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n *\n * @returns {string} The combined URL\n */\nexport default function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n}\n","'use strict';\n\nimport utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.isStandardBrowserEnv ?\n\n// Standard browser envs have full support of the APIs needed to test\n// whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n const msie = /(msie|trident)/i.test(navigator.userAgent);\n const urlParsingNode = document.createElement('a');\n let originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n let href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n const parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })();\n","'use strict';\n\n/**\n * Calculate data maxRate\n * @param {Number} [samplesCount= 10]\n * @param {Number} [min= 1000]\n * @returns {Function}\n */\nfunction speedometer(samplesCount, min) {\n samplesCount = samplesCount || 10;\n const bytes = new Array(samplesCount);\n const timestamps = new Array(samplesCount);\n let head = 0;\n let tail = 0;\n let firstSampleTS;\n\n min = min !== undefined ? min : 1000;\n\n return function push(chunkLength) {\n const now = Date.now();\n\n const startedAt = timestamps[tail];\n\n if (!firstSampleTS) {\n firstSampleTS = now;\n }\n\n bytes[head] = chunkLength;\n timestamps[head] = now;\n\n let i = tail;\n let bytesCount = 0;\n\n while (i !== head) {\n bytesCount += bytes[i++];\n i = i % samplesCount;\n }\n\n head = (head + 1) % samplesCount;\n\n if (head === tail) {\n tail = (tail + 1) % samplesCount;\n }\n\n if (now - firstSampleTS < min) {\n return;\n }\n\n const passed = startedAt && now - startedAt;\n\n return passed ? Math.round(bytesCount * 1000 / passed) : undefined;\n };\n}\n\nexport default speedometer;\n","'use strict';\n\nimport utils from './../utils.js';\nimport settle from './../core/settle.js';\nimport cookies from './../helpers/cookies.js';\nimport buildURL from './../helpers/buildURL.js';\nimport buildFullPath from '../core/buildFullPath.js';\nimport isURLSameOrigin from './../helpers/isURLSameOrigin.js';\nimport transitionalDefaults from '../defaults/transitional.js';\nimport AxiosError from '../core/AxiosError.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport parseProtocol from '../helpers/parseProtocol.js';\nimport platform from '../platform/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport speedometer from '../helpers/speedometer.js';\n\nfunction progressEventReducer(listener, isDownloadStream) {\n let bytesNotified = 0;\n const _speedometer = speedometer(50, 250);\n\n return e => {\n const loaded = e.loaded;\n const total = e.lengthComputable ? e.total : undefined;\n const progressBytes = loaded - bytesNotified;\n const rate = _speedometer(progressBytes);\n const inRange = loaded <= total;\n\n bytesNotified = loaded;\n\n const data = {\n loaded,\n total,\n progress: total ? (loaded / total) : undefined,\n bytes: progressBytes,\n rate: rate ? rate : undefined,\n estimated: rate && total && inRange ? (total - loaded) / rate : undefined,\n event: e\n };\n\n data[isDownloadStream ? 'download' : 'upload'] = true;\n\n listener(data);\n };\n}\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';\n\nexport default isXHRAdapterSupported && function (config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n let requestData = config.data;\n const requestHeaders = AxiosHeaders.from(config.headers).normalize();\n const responseType = config.responseType;\n let onCanceled;\n function done() {\n if (config.cancelToken) {\n config.cancelToken.unsubscribe(onCanceled);\n }\n\n if (config.signal) {\n config.signal.removeEventListener('abort', onCanceled);\n }\n }\n\n if (utils.isFormData(requestData) && (platform.isStandardBrowserEnv || platform.isStandardBrowserWebWorkerEnv)) {\n requestHeaders.setContentType(false); // Let the browser set it\n }\n\n let request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n const username = config.auth.username || '';\n const password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.set('Authorization', 'Basic ' + btoa(username + ':' + password));\n }\n\n const fullPath = buildFullPath(config.baseURL, config.url);\n\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n const responseHeaders = AxiosHeaders.from(\n 'getAllResponseHeaders' in request && request.getAllResponseHeaders()\n );\n const responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n const response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config,\n request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n let timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded';\n const transitional = config.transitional || transitionalDefaults;\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (platform.isStandardBrowserEnv) {\n // Add xsrf header\n const xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath))\n && config.xsrfCookieName && cookies.read(config.xsrfCookieName);\n\n if (xsrfValue) {\n requestHeaders.set(config.xsrfHeaderName, xsrfValue);\n }\n }\n\n // Remove Content-Type if data is undefined\n requestData === undefined && requestHeaders.setContentType(null);\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) {\n request.setRequestHeader(key, val);\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = config.responseType;\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', progressEventReducer(config.onDownloadProgress, true));\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', progressEventReducer(config.onUploadProgress));\n }\n\n if (config.cancelToken || config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = cancel => {\n if (!request) {\n return;\n }\n reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel);\n request.abort();\n request = null;\n };\n\n config.cancelToken && config.cancelToken.subscribe(onCanceled);\n if (config.signal) {\n config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n const protocol = parseProtocol(fullPath);\n\n if (protocol && platform.protocols.indexOf(protocol) === -1) {\n reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));\n return;\n }\n\n\n // Send the request\n request.send(requestData || null);\n });\n}\n","import utils from '../utils.js';\nimport httpAdapter from './http.js';\nimport xhrAdapter from './xhr.js';\nimport AxiosError from \"../core/AxiosError.js\";\n\nconst knownAdapters = {\n http: httpAdapter,\n xhr: xhrAdapter\n}\n\nutils.forEach(knownAdapters, (fn, value) => {\n if(fn) {\n try {\n Object.defineProperty(fn, 'name', {value});\n } catch (e) {\n // eslint-disable-next-line no-empty\n }\n Object.defineProperty(fn, 'adapterName', {value});\n }\n});\n\nexport default {\n getAdapter: (adapters) => {\n adapters = utils.isArray(adapters) ? adapters : [adapters];\n\n const {length} = adapters;\n let nameOrAdapter;\n let adapter;\n\n for (let i = 0; i < length; i++) {\n nameOrAdapter = adapters[i];\n if((adapter = utils.isString(nameOrAdapter) ? knownAdapters[nameOrAdapter.toLowerCase()] : nameOrAdapter)) {\n break;\n }\n }\n\n if (!adapter) {\n if (adapter === false) {\n throw new AxiosError(\n `Adapter ${nameOrAdapter} is not supported by the environment`,\n 'ERR_NOT_SUPPORT'\n );\n }\n\n throw new Error(\n utils.hasOwnProp(knownAdapters, nameOrAdapter) ?\n `Adapter '${nameOrAdapter}' is not available in the build` :\n `Unknown adapter '${nameOrAdapter}'`\n );\n }\n\n if (!utils.isFunction(adapter)) {\n throw new TypeError('adapter is not a function');\n }\n\n return adapter;\n },\n adapters: knownAdapters\n}\n","// eslint-disable-next-line strict\nexport default null;\n","'use strict';\n\nimport AxiosError from './AxiosError.js';\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n *\n * @returns {object} The response.\n */\nexport default function settle(resolve, reject, response) {\n const validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(new AxiosError(\n 'Request failed with status code ' + response.status,\n [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],\n response.config,\n response.request,\n response\n ));\n }\n}\n","'use strict';\n\nexport default function parseProtocol(url) {\n const match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n return match && match[1] || '';\n}\n","'use strict';\n\nimport transformData from './transformData.js';\nimport isCancel from '../cancel/isCancel.js';\nimport defaults from '../defaults/index.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport adapters from \"../adapters/adapters.js\";\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n *\n * @param {Object} config The config that is to be used for the request\n *\n * @returns {void}\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new CanceledError(null, config);\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n *\n * @returns {Promise} The Promise to be fulfilled\n */\nexport default function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n config.headers = AxiosHeaders.from(config.headers);\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.transformRequest\n );\n\n if (['post', 'put', 'patch'].indexOf(config.method) !== -1) {\n config.headers.setContentType('application/x-www-form-urlencoded', false);\n }\n\n const adapter = adapters.getAdapter(config.adapter || defaults.adapter);\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n config.transformResponse,\n response\n );\n\n response.headers = AxiosHeaders.from(response.headers);\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n config.transformResponse,\n reason.response\n );\n reason.response.headers = AxiosHeaders.from(reason.response.headers);\n }\n }\n\n return Promise.reject(reason);\n });\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosHeaders from \"./AxiosHeaders.js\";\n\nconst headersToObject = (thing) => thing instanceof AxiosHeaders ? thing.toJSON() : thing;\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n *\n * @returns {Object} New object resulting from merging config2 to config1\n */\nexport default function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n const config = {};\n\n function getMergedValue(target, source, caseless) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge.call({caseless}, target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(a, b, caseless) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(a, b, caseless);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a, caseless);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(a, b, prop) {\n if (prop in config2) {\n return getMergedValue(a, b);\n } else if (prop in config1) {\n return getMergedValue(undefined, a);\n }\n }\n\n const mergeMap = {\n url: valueFromConfig2,\n method: valueFromConfig2,\n data: valueFromConfig2,\n baseURL: defaultToConfig2,\n transformRequest: defaultToConfig2,\n transformResponse: defaultToConfig2,\n paramsSerializer: defaultToConfig2,\n timeout: defaultToConfig2,\n timeoutMessage: defaultToConfig2,\n withCredentials: defaultToConfig2,\n adapter: defaultToConfig2,\n responseType: defaultToConfig2,\n xsrfCookieName: defaultToConfig2,\n xsrfHeaderName: defaultToConfig2,\n onUploadProgress: defaultToConfig2,\n onDownloadProgress: defaultToConfig2,\n decompress: defaultToConfig2,\n maxContentLength: defaultToConfig2,\n maxBodyLength: defaultToConfig2,\n beforeRedirect: defaultToConfig2,\n transport: defaultToConfig2,\n httpAgent: defaultToConfig2,\n httpsAgent: defaultToConfig2,\n cancelToken: defaultToConfig2,\n socketPath: defaultToConfig2,\n responseEncoding: defaultToConfig2,\n validateStatus: mergeDirectKeys,\n headers: (a, b) => mergeDeepProperties(headersToObject(a), headersToObject(b), true)\n };\n\n utils.forEach(Object.keys(config1).concat(Object.keys(config2)), function computeConfigValue(prop) {\n const merge = mergeMap[prop] || mergeDeepProperties;\n const configValue = merge(config1[prop], config2[prop], prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n}\n","export const VERSION = \"1.2.2\";","'use strict';\n\nimport {VERSION} from '../env/data.js';\nimport AxiosError from '../core/AxiosError.js';\n\nconst validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nconst deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n *\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n *\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return (value, opt, opts) => {\n if (validator === false) {\n throw new AxiosError(\n formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n AxiosError.ERR_DEPRECATED\n );\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n *\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n *\n * @returns {object}\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n }\n const keys = Object.keys(options);\n let i = keys.length;\n while (i-- > 0) {\n const opt = keys[i];\n const validator = schema[opt];\n if (validator) {\n const value = options[opt];\n const result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n }\n }\n}\n\nexport default {\n assertOptions,\n validators\n};\n","'use strict';\n\nimport utils from './../utils.js';\nimport buildURL from '../helpers/buildURL.js';\nimport InterceptorManager from './InterceptorManager.js';\nimport dispatchRequest from './dispatchRequest.js';\nimport mergeConfig from './mergeConfig.js';\nimport buildFullPath from './buildFullPath.js';\nimport validator from '../helpers/validator.js';\nimport AxiosHeaders from './AxiosHeaders.js';\n\nconst validators = validator.validators;\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n *\n * @return {Axios} A new instance of Axios\n */\nclass Axios {\n constructor(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n }\n\n /**\n * Dispatch a request\n *\n * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)\n * @param {?Object} config\n *\n * @returns {Promise} The Promise to be fulfilled\n */\n request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n const {transitional, paramsSerializer, headers} = config;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n if (paramsSerializer !== undefined) {\n validator.assertOptions(paramsSerializer, {\n encode: validators.function,\n serialize: validators.function\n }, true);\n }\n\n // Set config.method\n config.method = (config.method || this.defaults.method || 'get').toLowerCase();\n\n let contextHeaders;\n\n // Flatten headers\n contextHeaders = headers && utils.merge(\n headers.common,\n headers[config.method]\n );\n\n contextHeaders && utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n (method) => {\n delete headers[method];\n }\n );\n\n config.headers = AxiosHeaders.concat(contextHeaders, headers);\n\n // filter out skipped interceptors\n const requestInterceptorChain = [];\n let synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n const responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n let promise;\n let i = 0;\n let len;\n\n if (!synchronousRequestInterceptors) {\n const chain = [dispatchRequest.bind(this), undefined];\n chain.unshift.apply(chain, requestInterceptorChain);\n chain.push.apply(chain, responseInterceptorChain);\n len = chain.length;\n\n promise = Promise.resolve(config);\n\n while (i < len) {\n promise = promise.then(chain[i++], chain[i++]);\n }\n\n return promise;\n }\n\n len = requestInterceptorChain.length;\n\n let newConfig = config;\n\n i = 0;\n\n while (i < len) {\n const onFulfilled = requestInterceptorChain[i++];\n const onRejected = requestInterceptorChain[i++];\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected.call(this, error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest.call(this, newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n i = 0;\n len = responseInterceptorChain.length;\n\n while (i < len) {\n promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);\n }\n\n return promise;\n }\n\n getUri(config) {\n config = mergeConfig(this.defaults, config);\n const fullPath = buildFullPath(config.baseURL, config.url);\n return buildURL(fullPath, config.params, config.paramsSerializer);\n }\n}\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n headers: isForm ? {\n 'Content-Type': 'multipart/form-data'\n } : {},\n url,\n data\n }));\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n});\n\nexport default Axios;\n","'use strict';\n\nimport CanceledError from './CanceledError.js';\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @param {Function} executor The executor function.\n *\n * @returns {CancelToken}\n */\nclass CancelToken {\n constructor(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n let resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n const token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(cancel => {\n if (!token._listeners) return;\n\n let i = token._listeners.length;\n\n while (i-- > 0) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = onfulfilled => {\n let _resolve;\n // eslint-disable-next-line func-names\n const promise = new Promise(resolve => {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message, config, request) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new CanceledError(message, config, request);\n resolvePromise(token.reason);\n });\n }\n\n /**\n * Throws a `CanceledError` if cancellation has been requested.\n */\n throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n }\n\n /**\n * Subscribe to the cancel signal\n */\n\n subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n }\n\n /**\n * Unsubscribe from the cancel signal\n */\n\n unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n const index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n }\n\n /**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\n static source() {\n let cancel;\n const token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token,\n cancel\n };\n }\n}\n\nexport default CancelToken;\n","const HttpStatusCode = {\n Continue: 100,\n SwitchingProtocols: 101,\n Processing: 102,\n EarlyHints: 103,\n Ok: 200,\n Created: 201,\n Accepted: 202,\n NonAuthoritativeInformation: 203,\n NoContent: 204,\n ResetContent: 205,\n PartialContent: 206,\n MultiStatus: 207,\n AlreadyReported: 208,\n ImUsed: 226,\n MultipleChoices: 300,\n MovedPermanently: 301,\n Found: 302,\n SeeOther: 303,\n NotModified: 304,\n UseProxy: 305,\n Unused: 306,\n TemporaryRedirect: 307,\n PermanentRedirect: 308,\n BadRequest: 400,\n Unauthorized: 401,\n PaymentRequired: 402,\n Forbidden: 403,\n NotFound: 404,\n MethodNotAllowed: 405,\n NotAcceptable: 406,\n ProxyAuthenticationRequired: 407,\n RequestTimeout: 408,\n Conflict: 409,\n Gone: 410,\n LengthRequired: 411,\n PreconditionFailed: 412,\n PayloadTooLarge: 413,\n UriTooLong: 414,\n UnsupportedMediaType: 415,\n RangeNotSatisfiable: 416,\n ExpectationFailed: 417,\n ImATeapot: 418,\n MisdirectedRequest: 421,\n UnprocessableEntity: 422,\n Locked: 423,\n FailedDependency: 424,\n TooEarly: 425,\n UpgradeRequired: 426,\n PreconditionRequired: 428,\n TooManyRequests: 429,\n RequestHeaderFieldsTooLarge: 431,\n UnavailableForLegalReasons: 451,\n InternalServerError: 500,\n NotImplemented: 501,\n BadGateway: 502,\n ServiceUnavailable: 503,\n GatewayTimeout: 504,\n HttpVersionNotSupported: 505,\n VariantAlsoNegotiates: 506,\n InsufficientStorage: 507,\n LoopDetected: 508,\n NotExtended: 510,\n NetworkAuthenticationRequired: 511,\n};\n\nObject.entries(HttpStatusCode).forEach(([key, value]) => {\n HttpStatusCode[value] = key;\n});\n\nexport default HttpStatusCode;\n","'use strict';\n\nimport utils from './utils.js';\nimport bind from './helpers/bind.js';\nimport Axios from './core/Axios.js';\nimport mergeConfig from './core/mergeConfig.js';\nimport defaults from './defaults/index.js';\nimport formDataToJSON from './helpers/formDataToJSON.js';\nimport CanceledError from './cancel/CanceledError.js';\nimport CancelToken from './cancel/CancelToken.js';\nimport isCancel from './cancel/isCancel.js';\nimport {VERSION} from './env/data.js';\nimport toFormData from './helpers/toFormData.js';\nimport AxiosError from './core/AxiosError.js';\nimport spread from './helpers/spread.js';\nimport isAxiosError from './helpers/isAxiosError.js';\nimport AxiosHeaders from \"./core/AxiosHeaders.js\";\nimport HttpStatusCode from './helpers/HttpStatusCode.js';\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n *\n * @returns {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n const context = new Axios(defaultConfig);\n const instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context, {allOwnKeys: true});\n\n // Copy context to instance\n utils.extend(instance, context, null, {allOwnKeys: true});\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nconst axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = CanceledError;\naxios.CancelToken = CancelToken;\naxios.isCancel = isCancel;\naxios.VERSION = VERSION;\naxios.toFormData = toFormData;\n\n// Expose AxiosError class\naxios.AxiosError = AxiosError;\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\n\naxios.spread = spread;\n\n// Expose isAxiosError\naxios.isAxiosError = isAxiosError;\n\n// Expose mergeConfig\naxios.mergeConfig = mergeConfig;\n\naxios.AxiosHeaders = AxiosHeaders;\n\naxios.formToJSON = thing => formDataToJSON(utils.isHTMLForm(thing) ? new FormData(thing) : thing);\n\naxios.HttpStatusCode = HttpStatusCode;\n\naxios.default = axios;\n\n// this module should only have a default export\nexport default axios\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n *\n * @returns {Function}\n */\nexport default function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n *\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nexport default function isAxiosError(payload) {\n return utils.isObject(payload) && (payload.isAxiosError === true);\n}\n","// peer dep is not installed during test\n// eslint-disable-next-line import/no-unresolved\nimport { h as createElement } from 'vue';\n\n/** @type Record> */\nconst cache = {};\n\n/**\n * Remove false attrs\n * @param {Object} attrs\n */\nfunction filterAttrs(attrs) {\n return Object.keys(attrs).reduce((result, key) => {\n if (attrs[key] !== false && attrs[key] !== null && attrs[key] !== undefined) {\n result[key] = attrs[key];\n }\n return result;\n }, {});\n}\n\nconst InlineSvg = {\n name: 'InlineSvg',\n inheritAttrs: false,\n render() {\n if (!this.svgElSource) {\n return null;\n }\n return createElement(\n 'svg',\n Object.assign(\n {},\n // source attrs\n this.getSvgAttrs(this.svgElSource),\n // component attrs and listeners\n filterAttrs(this.$attrs),\n // content\n { innerHTML: this.getSvgContent(this.svgElSource) },\n ),\n );\n },\n props: {\n src: {\n type: String,\n required: true,\n },\n title: {\n type: String,\n },\n transformSource: {\n type: Function,\n default: (svg) => svg,\n },\n keepDuringLoading: {\n type: Boolean,\n default: true,\n },\n },\n emits: ['loaded', 'unloaded', 'error'],\n data() {\n return {\n /** @type SVGElement */\n svgElSource: null,\n };\n },\n watch: {\n src(newValue) {\n // re-generate cached svg (`svgElSource`)\n this.getSource(newValue);\n },\n },\n mounted() {\n // generate `svgElSource`\n this.getSource(this.src);\n },\n methods: {\n getSvgAttrs(svgEl) {\n // copy attrs\n let svgAttrs = {};\n const attrs = svgEl.attributes;\n if (!attrs) {\n return svgAttrs;\n }\n for (let i = attrs.length - 1; i >= 0; i--) {\n svgAttrs[attrs[i].name] = attrs[i].value;\n }\n return svgAttrs;\n },\n getSvgContent(svgEl) {\n svgEl = svgEl.cloneNode(true);\n svgEl = this.transformSource(svgEl);\n if (this.title) {\n setTitle(svgEl, this.title);\n }\n\n // copy inner html\n return svgEl.innerHTML;\n },\n /**\n * Get svgElSource\n * @param {string} src\n */\n getSource(src) {\n // fill cache by src with promise\n if (!cache[src]) {\n // download\n cache[src] = this.download(src);\n }\n // notify svg is unloaded\n if (this.svgElSource && cache[src].getIsPending() && !this.keepDuringLoading) {\n this.svgElSource = null;\n this.$emit('unloaded');\n }\n\n // inline svg when cached promise resolves\n cache[src]\n .then((svg) => {\n this.svgElSource = svg;\n // wait to render\n this.$nextTick(() => {\n // notify\n this.$emit('loaded', this.$el);\n });\n })\n .catch((err) => {\n // notify svg is unloaded\n if (this.svgElSource) {\n this.svgElSource = null;\n this.$emit('unloaded');\n }\n // remove cached rejected promise so next image can try load again\n delete cache[src];\n this.$emit('error', err);\n });\n },\n\n /**\n * Get the contents of the SVG\n * @param {string} url\n * @returns {PromiseWithState}\n */\n download(url) {\n return makePromiseState(new Promise((resolve, reject) => {\n const request = new XMLHttpRequest();\n request.open('GET', url, true);\n\n request.onload = () => {\n if (request.status >= 200 && request.status < 400) {\n try {\n // Setup a parser to convert the response to text/xml in order for it to be manipulated and changed\n const parser = new DOMParser();\n const result = parser.parseFromString(request.responseText, 'text/xml');\n let svgEl = result.getElementsByTagName('svg')[0];\n if (svgEl) {\n // svgEl = this.transformSource(svgEl);\n resolve(svgEl);\n } else {\n reject(new Error('Loaded file is not valid SVG\"'));\n }\n } catch (e) {\n reject(e);\n }\n } else {\n reject(new Error('Error loading SVG'));\n }\n };\n\n request.onerror = reject;\n request.send();\n }));\n },\n },\n};\n\n/**\n * Create or edit the element of a SVG\n * @param {SVGElement} svg\n * @param {string} title\n */\nfunction setTitle(svg, title) {\n const titleTags = svg.getElementsByTagName('title');\n if (titleTags.length) { // overwrite existing title\n titleTags[0].textContent = title;\n } else { // create a title element if one doesn't already exist\n const titleEl = document.createElementNS('http://www.w3.org/2000/svg', 'title');\n titleEl.textContent = title;\n // svg.prepend(titleEl);\n svg.insertBefore(titleEl, svg.firstChild);\n }\n}\n\n/**\n * @typedef {Promise & object} PromiseWithState\n * @property {function: boolean} getIsPending\n * @template T\n */\n\n/**\n * This function allow you to modify a JS Promise by adding some status properties.\n * @template {any} T\n * @param {Promise<T>|PromiseWithState<T>} promise\n * @return {PromiseWithState<T>}\n */\nfunction makePromiseState(promise) {\n // Don't modify any promise that has been already modified.\n if (promise.getIsPending) return promise;\n\n // Set initial state\n let isPending = true;\n\n // Observe the promise, saving the fulfillment in a closure scope.\n let result = promise.then(\n (v) => {\n isPending = false;\n return v;\n },\n (e) => {\n isPending = false;\n throw e;\n },\n );\n\n result.getIsPending = function getIsPending() { return isPending; };\n return result;\n}\n\nexport default InlineSvg;\n"],"names":["toTypedSchema","yupSchema","opts","abortEarly","__type","async","values","_a","value","validate","Object","assign","errors","err","error","name","inner","length","path","reduce","acc","curr","push","cast","requiredArgs","required","args","TypeError","toInteger","dirtyNumber","NaN","number","Number","isNaN","Math","ceil","floor","_typeof","obj","Symbol","iterator","constructor","prototype","isDate","arguments","Date","toString","call","toDate","argument","argStr","getTime","console","warn","Error","stack","isValid","dirtyDate","date","addMilliseconds","dirtyAmount","timestamp","amount","subMilliseconds","MILLISECONDS_IN_DAY","startOfUTCISOWeek","weekStartsOn","day","getUTCDay","diff","setUTCDate","getUTCDate","setUTCHours","getUTCISOWeekYear","year","getUTCFullYear","fourthOfJanuaryOfNextYear","setUTCFullYear","startOfNextYear","fourthOfJanuaryOfThisYear","startOfThisYear","startOfUTCISOWeekYear","fourthOfJanuary","MILLISECONDS_IN_WEEK","defaultOptions","getDefaultOptions","startOfUTCWeek","options","_ref","_ref2","_ref3","_options$weekStartsOn","_options$locale","_options$locale$optio","_defaultOptions$local","_defaultOptions$local2","locale","RangeError","getUTCWeekYear","_options$firstWeekCon","firstWeekContainsDate","firstWeekOfNextYear","firstWeekOfThisYear","startOfUTCWeekYear","firstWeek","addLeadingZeros","targetLength","sign","output","abs","y","token","signedYear","M","month","getUTCMonth","String","d","a","dayPeriodEnumValue","getUTCHours","toUpperCase","h","H","m","getUTCMinutes","s","getUTCSeconds","S","numberOfDigits","milliseconds","getUTCMilliseconds","pow","dayPeriodEnum","G","localize","era","width","ordinalNumber","unit","lightFormatters","Y","signedWeekYear","weekYear","R","u","Q","quarter","context","q","L","w","week","round","getUTCWeek","I","isoWeek","getUTCISOWeek","D","dayOfYear","setUTCMonth","startOfYearTimestamp","difference","getUTCDayOfYear","E","dayOfWeek","e","localDayOfWeek","c","i","isoDayOfWeek","dayPeriod","toLowerCase","b","hours","B","K","k","X","_localize","timezoneOffset","_originalDate","getTimezoneOffset","formatTimezoneWithOptionalMinutes","formatTimezone","x","O","formatTimezoneShort","z","t","originalDate","T","offset","dirtyDelimiter","absOffset","minutes","delimiter","dateLongFormatter","pattern","formatLong","timeLongFormatter","time","longFormatters","p","P","dateTimeFormat","matchResult","match","datePattern","timePattern","dateTime","replace","getTimezoneOffsetInMilliseconds","utcDate","UTC","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","getMilliseconds","protectedDayOfYearTokens","protectedWeekYearTokens","isProtectedDayOfYearToken","indexOf","isProtectedWeekYearToken","throwProtectedError","format","input","concat","formatDistanceLocale","lessThanXSeconds","one","other","xSeconds","halfAMinute","lessThanXMinutes","xMinutes","aboutXHours","xHours","xDays","aboutXWeeks","xWeeks","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","count","result","tokenValue","addSuffix","comparison","buildFormatLongFn","undefined","defaultWidth","formats","full","long","medium","short","formatRelativeLocale","lastWeek","yesterday","today","tomorrow","nextWeek","_date","_baseDate","_options","buildLocalizeFn","dirtyIndex","valuesArray","formattingValues","defaultFormattingWidth","_defaultWidth","_width","argumentCallback","rem100","narrow","abbreviated","wide","am","pm","midnight","noon","morning","afternoon","evening","night","buildMatchFn","string","matchPattern","matchPatterns","defaultMatchWidth","matchedString","parsePatterns","defaultParseWidth","key","Array","isArray","findIndex","test","findKey","valueCallback","rest","slice","object","predicate","hasOwnProperty","array","parsePattern","parseInt","parseResult","any","index","code","formatDistance","formatRelative","formattingTokensRegExp","longFormattingTokensRegExp","escapedStringRegExp","doubleQuoteRegExp","unescapedLatinCharacterRegExp","dirtyFormatStr","_ref4","_options$locale2","_options$locale2$opti","_ref5","_ref6","_ref7","_options$locale3","_options$locale3$opti","_defaultOptions$local3","_defaultOptions$local4","formatStr","defaultLocale","formatterOptions","map","substring","firstCharacter","longFormatter","join","cleanEscapedString","formatter","useAdditionalWeekYearTokens","useAdditionalDayOfYearTokens","matched","millisecondsInHour","parseISO","_options$additionalDi","additionalDigits","dateStrings","splitDateString","parseYearResult","parseYear","parseDate","restDateString","parseTime","timezone","setFullYear","setHours","parseTimezone","patterns","dateTimeDelimiter","timeZoneDelimiter","dateRegex","timeRegex","timezoneRegex","dateString","timeString","split","substr","exec","regex","RegExp","captures","century","isWeekDate","parseDateUnit","_year","validateWeekDate","isoWeekYear","fourthOfJanuaryDay","dayOfISOWeekYear","daysInMonths","isLeapYearIndex","validateDate","validateDayOfYearDate","max","parseTimeUnit","seconds","validateTime","parseFloat","timezoneString","_hours","validateTimezone","getBasePlacement","placement","getAlignment","getMainAxisFromPlacement","includes","getLengthFromAxis","axis","computeCoordsFromPlacement","reference","floating","commonX","commonY","height","coords","mainAxis","getSideObjectFromPadding","padding","top","right","bottom","left","expandPaddingObject","rectToClientRect","rect","detectOverflow","middlewareArguments","platform","rects","elements","strategy","boundary","rootBoundary","elementContext","altBoundary","paddingObject","element","clippingClientRect","getClippingClientRect","isElement","contextElement","getDocumentElement","elementClientRect","convertOffsetParentRelativeRectToViewportRelativeRect","offsetParent","getOffsetParent","min","within","min$1","max$1","hash$1","getOppositePlacement","getAlignmentSides","isStart","mainAlignmentSide","main","cross","hash","start","end","getOppositeAlignmentPlacement","basePlacements","allPlacements","basePlacement","autoPlacement","_middlewareData$autoP","_middlewareData$autoP2","_middlewareData$autoP3","_middlewareData$autoP4","_middlewareData$autoP5","_placementsSortedByLe","middlewareData","alignment","allowedPlacements","autoAlignment","detectOverflowOptions","skip","placements","filter","getPlacementList","overflow","currentIndex","currentPlacement","reset","currentOverflows","allOverflows","overflows","nextPlacement","data","placementsSortedByLeastOverflow","sort","placementThatFitsOnAllSides","find","every","flip","_middlewareData$flip","_middlewareData$flip2","initialPlacement","checkMainAxis","crossAxis","checkCrossAxis","fallbackPlacements","specifiedFallbackPlacements","fallbackStrategy","flipAlignment","oppositePlacement","getExpandedPlacements","overflowsData","side","_middlewareData$flip$","_middlewareData$flip3","nextIndex","resetPlacement","_overflowsData$slice$","fn","diffCoords","multiplier","rawValue","convertValueToCoords","getCrossAxis","isWindow","getWindow","node","window","ownerDocument","defaultView","getComputedStyle$1","getComputedStyle","getNodeName","nodeName","isHTMLElement","HTMLElement","Element","isShadowRoot","ShadowRoot","isScrollParent","overflowX","overflowY","isTableElement","isContainingBlock","isFirefox","navigator","userAgent","css","transform","perspective","contain","willChange","getBoundingClientRect","includeScale","clientRect","scaleX","scaleY","offsetWidth","offsetHeight","Node","document","documentElement","getNodeScroll","scrollLeft","pageXOffset","scrollTop","pageYOffset","getWindowScrollBarX","getRectRelativeToOffsetParent","isOffsetParentAnElement","isScaled","scroll","offsets","offsetRect","clientLeft","clientTop","getParentNode","assignedSlot","parentNode","host","getTrueOffsetParent","position","currentNode","getContainingBlock","getDimensions","getScrollParent","body","getScrollParents","list","_node$ownerDocument","scrollParent","isBody","win","target","visualViewport","updatedList","getClientRectFromClippingParent","clippingParent","html","clientWidth","clientHeight","innerWidth","scale","offsetLeft","offsetTop","getViewportRect","getInnerBoundingClientRect","_element$ownerDocumen","scrollWidth","scrollHeight","direction","getDocumentRect","getClippingParents","clippingParents","clipperElement","parent","child","rootNode","getRootNode","contains","next","getElementRects","firstClippingParent","clippingRect","accRect","getClientRects","config","middleware","statefulPlacement","nextX","nextY","computePosition","__defProp","defineProperty","__defProps","defineProperties","__getOwnPropDescs","getOwnPropertyDescriptors","__getOwnPropSymbols","getOwnPropertySymbols","__hasOwnProp","__propIsEnum","propertyIsEnumerable","__defNormalProp","enumerable","configurable","writable","__spreadValues","prop","__spreadProps","to","from","disabled","distance","skidding","container","instantMove","disposeTimeout","popperTriggers","preventOverflow","shift","overflowPadding","arrowPadding","arrowOverflow","themes","tooltip","triggers","hideTriggers","events","delay","show","hide","handleResize","loadingContent","dropdown","autoHide","menu","$extend","getDefaultConfig","theme","themeConfig","getAllParentThemes","supportsPassive","get","addEventListener","isIOS","MSStream","base","SHOW_EVENT_MAP","hover","focus","click","touch","HIDE_EVENT_MAP","removeFromArray","item","splice","nextFrame","Promise","resolve","requestAnimationFrame","shownPoppers","hidingPopper","shownPoppersByTheme","getShownPoppersByTheme","defaultPropFactory","props","PROVIDE_KEY","PrivatePopper","provide","parentPopper","this","inject","default","type","targetNodes","Function","referenceNode","popperNode","shown","Boolean","showGroup","ariaId","positioningDisabled","validator","showTriggers","popperShowTriggers","popperHideTriggers","eagerMount","popperClass","computeTransformOrigin","autoMinSize","autoSize","autoMaxSize","autoBoundaryMaxSize","shiftCrossAxis","noAutoFocus","emits","isShown","isMounted","skipTransition","classes","showFrom","showTo","hideFrom","hideTo","arrow","centerOffset","transformOrigin","shownChildren","Set","lastAutoHide","computed","popperId","randomId","shouldMountContent","slotData","onResize","attrs","$attrs","hasPopperShowTriggerHover","_b","watch","dispose","init","$_ensureTeleport","$_computePosition","created","$_isDisposed","random","now","n","mounted","$_detachPopperNode","activated","$_autoShowHide","deactivated","beforeUnmount","methods","event","skipDelay","force","lockedChild","$_pendingHide","$_scheduleShow","$emit","$_showFrameLocked","$_hideInProgress","size","$_isAimingPopper","clearTimeout","lockedChildTimer","setTimeout","$_scheduleHide","$_events","$_preventShow","$_referenceNode","$el","$_targetNodes","nodeType","ELEMENT_NODE","$_popperNode","$_innerNode","querySelector","$_arrowNode","$_swapTargetAttrs","$_addEventListeners","$_removeEventListeners","$_updateParentShownChildren","options2","isPlacementAuto","startsWith","limiter","mainAxisCoord","crossAxisCoord","maxSide","limitedCoords","arrowDimensions","minProp","maxProp","endDiff","startDiff","arrowOffsetParent","clientSize","centerToReference","center","_a2","style","maxWidth","maxHeight","_middlewareData$size","apply","isEnd","heightSide","widthSide","xMin","xMax","yMin","yMax","dimensions","$_scheduleTimer","$_applyHide","$_applyShow","bind","$_computeDelay","$_disposeTimer","$_applyShowEffect","$_registerEventListeners","bounds","popperWrapper","parentBounds","$_applyAttrsToTarget","popover","classList","add","remove","disposeTime","appendChild","handleShow","usedByTooltip","$_registerTriggerListeners","handleHide","eventType","handler","forEach","passive","eventMap","commonTriggers","customTrigger","trigger","filterEventType","newList","listener","removeEventListener","$_refreshListeners","$_handleGlobalClose","closePopover","removeChild","attrFrom","attrTo","el","getAttribute","removeAttribute","setAttribute","delete","referenceBounds","mouseX","mouseY","popperBounds","vectorX","mousePreviousX","vectorY","mousePreviousY","newVectorLength","edgeX","edgeY","lineIntersectsLine","render","$slots","handleGlobalMousedown","popper","popperContent","$_mouseDownContains","handleGlobalClose","preventClose","$_containsGlobalTarget","isContainingEventTarget","shouldAutoHide","closeAllPopover","parent2","getAutoHideResult","capture","x1","y1","x2","y2","x3","y3","x4","y4","uA","uB","clientX","clientY","_export_sfc","sfc","__vccOpts","val","Popper$1","extends","_ctx","_cache","$props","$setup","$data","$options","ref","class","isIE","initCompat","ua","msie","rv","edge","getInternetExplorerVersion","script","emitOnMount","ignoreWidth","ignoreHeight","_w","_h","emitSize","createElement","_resizeObject","onload","addResizeHandlers","removeResizeHandlers","compareAndNotify","contentDocument","_withId","_hoisted_1$2","tabindex","__scopeId","__file","PrivateThemeClass","themeClass","$resetCss","getThemeClasses","_sfc_main$5","components","ResizeObserver","mixins","toPx","_hoisted_1$1","_hoisted_2$1","_hoisted_5","PrivatePopperContent","_component_ResizeObserver","id","onKeyup","$event","onClick","onNotify","PrivatePopperMethods","$refs","PrivatePopperWrapper","Popper","PopperContent","finalTheme","vPopperTheme","getTargetNodes","children","_component_PopperContent","_component_Popper","onHide","_","_sfc_main$3","_sfc_main$2","_sfc_main$1","_sfc_main","inheritAttrs","content","asyncContent","isContentAsync","loading","finalContent","fetchContent","immediate","$nextTick","$_fetchId","$_isShown","$_loading","fetchId","then","res","onResult","onShow","_hoisted_1","_hoisted_2","PrivateTooltipDirective","onApplyShow","onApplyHide","innerHTML","textContent","TARGET_CLASS","getOptions","modifiers","pos","getPlacement","directiveApp","directives","uid","createTooltip","setup","directive","devtools","mountTarget","mount","ensureDirectiveApp","$_popper","destroyTooltip","$_popperOldShown","$_popperMountTarget","PrivateVTooltip","beforeMount","updated","addListeners","onTouchStart","removeListeners","onTouchEnd","onTouchCancel","currentTarget","$_vclosepopover_touch","$_closePopoverModifiers","all","changedTouches","$_vclosepopover_touchPoint","firstTouch","screenY","screenX","PrivateVClosePopper","oldValue","version","install","app","$_vTooltipInstalled","component","module","exports","self","FormData","_processKeys","camelize","pascalize","decamelize","_isFunction","_isObject","_isArray","_isDate","_isRegExp","_isBoolean","_isNumerical","_processor","humps","convert","l","chr","camelized","separator","separateWords","callback","process","depascalize","camelizeKeys","decamelizeKeys","pascalizeKeys","depascalizeKeys","Cache","maxSize","_maxSize","clear","_size","_values","create","set","SPLIT_REGEX","DIGIT_REGEX","LEAD_DIGIT_REGEX","SPEC_CHAR_REGEX","CLEAN_QUOTES_REGEX","pathCache","setCache","getCache","normalizePath","part","isQuoted","str","charAt","shouldBeQuoted","hasLeadingNumber","hasSpecialChars","setter","parts","len","getter","safe","segments","cb","thisArg","iter","idx","isBracket","rutClean","rut","rutDigits","reWords","words","upperFirst","camelCase","pascalCase","snakeCase","kebabCase","sentenceCase","titleCase","toposort","nodes","edges","cursor","sorted","visited","outgoingEdges","arr","Map","has","makeOutgoingEdges","nodesHash","makeNodesHash","visit","predecessors","nodeRep","JSON","stringify","outgoing","uniqueNodes","isCallable","isNullOrUndefined","isObject","isIndex","RULES","FormContextKey","FieldContextKey","IS_ABSENT","isClient","isLocator","__locatorRef","isTypedSchema","parse","isYupValidator","hasCheckedAttr","isEmptyContainer","keys","isNotNestedPath","isNativeSelect","tagName","shouldHaveValueBinding","tag","hasTruthyBindingValue","multiple","isNativeMultiSelectNode","isFormSubmitEvent","evt","isEvent","Event","srcElement","isPropPresent","isEqual","entries","isFile","lastModified","ArrayBuffer","isView","source","flags","valueOf","File","klona","tmp","__proto__","buffer","getOwnPropertyDescriptor","getOwnPropertyNames","cleanupNonNestedPath","getFromPath","fallback","propKey","setInPath","unset","unsetPath","pathValues","keysOf","record","injectWithSelf","symbol","def","vm","provides","message","resolveNextCheckboxValue","currentValue","checkedValue","uncheckedValue","newVal","v","debounceAsync","ms","timer","resolves","r","applyModelModifiers","toNumber","withLatest","onDone","latestRun","pending","computedDeep","baseRef","newValue","deep","lazyToRef","unravel","normalizeChildren","slotProps","slots","getBoundValue","hasValueBinding","_value","normalizeEventValue","files","opt","selected","selectedOption","normalizeRules","rules","_$$isNormalized","prev","params","normalizeParams","buildParams","rule","parsedRule","parseRule","provided","mapValueToLocator","locator","crossTable","createLocator","currentConfig","generateMessage","field","bails","validateOnBlur","validateOnChange","validateOnInput","validateOnModelUpdate","getConfig","shouldBail","label","formData","schema","typedSchema","yupToTypedSchema","messages","validateFieldWithTypedSchema","ctx","form","pipeline","_generateFieldError","normalizedContext","rulesKeys","_test","_validate","valid","isYupError","normalize","param","fillTargetValues","fieldCtx","validateObjectSchema","validations","_c","strings","names","fieldResult","bailsMap","isAllValid","validationResults","results","ID_COUNTER","useFieldState","initialValue","setInitialValue","_useFieldValue","modelValue","errorMessage","setErrors","normalizeErrors","errorBag","setFieldErrorBag","_useFieldErrors","meta","touched","validated","dirty","flush","_useFieldMeta","MAX_SAFE_INTEGER","setState","state","modelRef","resolveInitialValue","initialValues","stageInitialValue","resolveModelValue","setFieldValue","API","func","limit","inThrottle","lastResult","throttle","sendInspectorState","INSPECTOR_ID","sendInspectorTree","useField","standalone","patchCheckboxApi","handleChange","checked","checkedVal","handleCheckboxChange","shouldValidate","_useField","useCheckboxField","validateOnMount","validateOnValueUpdate","controlled","keepValueOnUnmount","modelPropName","syncVModel","controlForm","defaults","isVModelSynced","getCurrentModelValue","valueProp","normalizeOptions","injectedForm","markedForRemoval","propName","emitName","emit","propValue","modelModifiers","useVModel","normalizedRules","rulesValue","fieldName","extractRuleFromSchema","validateCurrentValue","mode","validateSchema","validateWithStateMutation","validateValidStateOnly","unwatchValue","lastWatchedValue","watchValue","oldVal","resetField","handleReset","handleBlur","setTouched","isTouched","setValue","register","unregister","dependencies","rulesVal","deps","dep","depAcc","depName","depValue","oldDeps","as","keepValue","validateField","onChangeHandler","onInputHandler","handleInput","fieldProps","_d","resolveValidationTriggers","baseOnBlur","onBlur","baseOnInput","onInput","baseOnChange","onChange","resolveTag","expose","FORM_COUNTER","resolveInitialValues","providedValues","validationSchema","useForm","formId","controlledModelPaths","RESET_LOCK","fieldsByPath","isSubmitting","submitCount","fieldArrays","formValues","setErrorBag","initialErrors","normalizeErrorItem","fields","useErrorBag","bag","getFirstFieldAtPath","fieldOrGroup","fieldExists","fieldNames","fieldBailsMap","keepValuesOnUnmount","originalInitialValues","setInitialValues","updateFields","fieldPath","wasTouched","some","f","useFormInitialValues","currentValues","MERGE_STRATEGIES","isDirty","calculateFlags","flat","flag","mergeMethod","useFormMeta","controlledValues","debouncedSilentValidation","_validateSchema","debouncedValidation","formResult","fieldsById","formCtx","currentErrorsPaths","validation","setFieldError","applyFieldMutation","wasValidated","makeSubmissionFactory","onlyControlled","onValidationError","preventDefault","stopPropagation","submittedValues","setFieldTouched","setValues","resetForm","returnVal","handleSubmit","withControlled","insertFieldAtPath","newPath","oldPath","removeFieldFromPath","initialErrorMessage","fieldInstance","isGroup","isFieldGroup","shouldKeepValue","currentGroupValue","valueIdx","updateOriginal","setFieldInitialValue","unsetInitialValue","useFieldModel","createModel","mutation","mutateAllFields","clonedValue","newValues","rawField","fieldAtPath","schemaValue","validationResult","validateTypedSchema","submitForm","submit","initialTouched","onSubmit","onInvalidSubmit","keepValues","handleFormReset","onReset","handleScopedSlotSubmit","getValues","getMeta","getErrors","formAttrs","novalidate","swap","insert","update","prepend","move","arrayPath","noOp","noOpApi","alreadyExists","entryCounter","getCurrentValues","initFields","createEntry","updateEntryFlags","fieldsLength","entry","isFirst","isLast","afterMutation","pathName","pathValue","fieldArrayCtx","normalizedPathValue","indexA","indexB","newFields","temp","tempEntry","unshift","oldIdx","newIdx","movedItem","movedValue","useFieldArray","role","useFieldError","inBrowser","hasSymbol","toStringTag","makeSymbol","friendlyJSONstringify","json","isNumber","isFinite","isRegExp","toTypeString","isEmptyObject","isPlainObject","msg","_globalThis","getGlobalThis","globalThis","g","escapeHtml","rawText","hasOwn","isFunction","isString","objectToString","createEmitter","on","handlers","off","payload","CompileErrorCodes","createCompileError","loc","domain","SyntaxError","location","defaultOnError","createLocation","CHAR_SP","CHAR_LF","CHAR_LS","fromCharCode","CHAR_PS","createScanner","_buf","_index","_line","_column","_peekOffset","isCRLF","isPS","isLS","isLineEnd","isLF","line","column","peekOffset","currentChar","currentPeek","peek","resetPeek","skipToPeek","EOF","createTokenizer","_scnr","currentOffset","currentPosition","createPosition","_initLoc","_initOffset","_context","currentType","startLoc","endLoc","lastType","lastOffset","lastStartLoc","lastEndLoc","braceNest","inLinked","text","onError","emitError","getToken","getEndToken","eat","scnr","ch","peekSpaces","buf","skipSpaces","isIdentifierStart","cc","charCodeAt","isListIdentifierStart","ret","isNumberStart","isPluralStart","isTextStart","hasSpace","detectModulo","takeChar","takeIdentifierChar","takeDigit","takeHexDigit","getDigits","num","readText","readEscapeSequence","readUnicodeEscapeSequence","unicode","digits","sequence","readPlural","plural","readTokenInPlaceholder","readTokenInLinked","validNamedIdentifier","validListIdentifier","validLiteral","readToken","isNamedIdentifierStart","readNamedIdentifier","readListIdentifier","isLiteralStart","literal","current","readLiteral","identifiers","closure","readInvalidIdentifier","isLinkedDotStart","isLinkedDelimiterStart","isLinkedModifierStart","readLinkedModifier","isLinkedReferStart","detect","readLinkedRefer","isModulo","spaces","detectModuloStart","readModulo","nextToken","KNOWN_ESCAPES","fromEscapeSequence","codePoint4","codePoint6","codePoint","fromCodePoint","createParser","tokenzer","startNode","endNode","parseText","tokenizer","parseList","parseNamed","parseLiteral","parseLinked","linkedNode","parsed","nextConsumeToken","getTokenCaption","parseLinkedModifier","modifier","parseLinkedKey","nextContext","emptyLinkedKeyNode","parseMessage","items","parseResource","msgNode","hasEmptyMessage","cases","parsePlural","traverseNodes","transformer","traverseNode","helper","ast","helpers","createTransformer","generateNode","generator","generateResource","needIndent","indent","deindent","generatePluralNode","generateMessageNode","generateLinkedNode","baseCompile","assignedOptions","filename","sourceMap","breakLineCode","_needIndent","indentLevel","_newline","withBreakLine","_breakLineCode","repeat","withNewLine","level","newline","createCodeGenerator","toJSON","generate","IntlifyDevToolsHooks","pathStateMachine","literalValueRE","getPathCharType","formatSubPath","trimmed","trim","exp","stripQuotes","cache","resolveWithKeyValue","DEFAULT_MODIFIER","DEFAULT_MESSAGE","DEFAULT_NORMALIZE","DEFAULT_INTERPOLATE","pluralDefault","choice","choicesLength","createMessageContext","pluralIndex","named","getPluralIndex","pluralRule","pluralRules","orgPluralRule","_list","_named","normalizeNamed","processor","interpolate","arg1","arg2","translateDevTools","createDevToolsHook","hook","payloads","CoreWarnCodes","fallbackWithSimple","fallbackWithLocaleChain","startLocale","DEFAULT_LOCALE","__localeChainCache","chain","block","appendBlockToChain","blocks","follow","appendLocaleToChain","tokens","appendItemToChain","capitalize","toLocaleUpperCase","_compiler","_resolver","_fallbacker","_additionalMeta","setAdditionalMeta","_fallbackContext","setFallbackContext","_cid","createCoreContext","fallbackLocale","datetimeFormats","numberFormats","upper","lower","missing","missingWarn","fallbackWarn","fallbackFormat","unresolving","postTranslation","warnHtmlMessage","escapeParameter","messageCompiler","messageResolver","localeFallbacker","fallbackContext","onWarn","internalOptions","__datetimeFormatters","__numberFormatters","__meta","cid","__INTLIFY_PROD_DEVTOOLS__","i18n","initI18nDevTools","handleMissing","updateFallbackLocale","defaultOnCacheKey","compileCache","inc","CoreErrorCodes","INVALID_ARGUMENT","INVALID_DATE_ARGUMENT","INVALID_ISO_DATE_ARGUMENT","__EXTEND_POINT__","createCoreError","NOOP_MESSAGE_FUNCTION","isMessageFunction","translate","parseTranslateArgs","resolvedMessage","defaultMsgOrKey","enableDefaultMsg","escapeParams","formatScope","targetLocale","resolveMessageFormat","cacheBaseKey","occurred","compileMessageFormat","ctxOptions","resolveValue","resolveMessage","getMessageContextOptions","messaged","msgCtx","evaluateMessage","locales","missingRet","errorDetector","onCacheKey","generateFormatCacheKey","getCompileOptions","arg3","intlDefined","Intl","DateTimeFormat","NumberFormat","datetime","overrides","parseDateTimeArgs","datetimeFormat","formatToParts","DATETIME_FORMAT_OPTIONS_KEYS","arg4","matches","toISOString","clearDateTimeFormat","parseNumberArgs","numberFormat","NUMBER_FORMAT_OPTIONS_KEYS","clearNumberFormat","getTarget","isProxyAvailable","Proxy","supported","perf","performance","perf_hooks","ApiProxy","plugin","targetQueue","onQueue","defaultSettings","settings","defaultValue","localSettingsSaveId","currentSettings","raw","localStorage","getItem","fallbacks","getSettings","setSettings","setItem","pluginId","proxiedOn","_target","method","proxiedTarget","setupDevtoolsPlugin","pluginDescriptor","setupFn","descriptor","__VUE_DEVTOOLS_GLOBAL_HOOK__","enableProxy","enableEarlyProxy","__VUE_DEVTOOLS_PLUGIN_API_AVAILABLE__","proxy","__VUE_DEVTOOLS_PLUGINS__","VueDevToolsLabels","VueDevToolsPlaceholders","VueDevToolsTimelineColors","code$1","inc$1","I18nErrorCodes","UNEXPECTED_RETURN_TYPE","MUST_BE_CALL_SETUP_TOP","NOT_INSLALLED","NOT_AVAILABLE_IN_LEGACY_MODE","REQUIRED_VALUE","INVALID_VALUE","CANNOT_SETUP_VUE_DEVTOOLS_PLUGIN","NOT_INSLALLED_WITH_PROVIDE","UNEXPECTED_ERROR","NOT_COMPATIBLE_LEGACY_VUE_I18N","BRIDGE_SUPPORT_VUE_2_ONLY","MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION","NOT_AVAILABLE_COMPOSITION_IN_LEGACY","createI18nError","TransrateVNodeSymbol","DatetimePartsSymbol","NumberPartsSymbol","EnableEmitter","DisableEmitter","SetPluralRulesSymbol","InejctWithOption","handleFlatJson","subKeys","lastIndex","currentObj","getLocaleMessages","__i18n","flatJson","custom","resource","deepCopy","isNotObjectOrIsArray","src","des","getComponentOptions","instance","adjustI18nResources","global","componentOptions","__i18nGlobal","mergeLocaleMessage","mergeDateTimeFormat","mergeNumberFormat","createTextNode","DEVTOOLS_META","composerID","defineCoreMissingHandler","createComposer","VueI18nLegacy","__root","_isGlobal","_inheritLocale","inheritLocale","_locale","_fallbackLocale","_messages","_datetimeFormats","_numberFormats","_missingWarn","_fallbackWarn","_fallbackRoot","fallbackRoot","_fallbackFormat","_missing","_runtimeMissing","_postTranslation","_warnHtmlMessage","_escapeParameter","_modifiers","_pluralRules","framework","getCoreContext","wrapWithDeps","argumentParser","warnType","fallbackSuccess","fallbackFail","successCondition","getMetaInfo","Reflect","root","getLocaleMessage","composer","availableLocales","isGlobal","setLocaleMessage","getPostTranslationHandler","setPostTranslationHandler","getMissingHandler","setMissingHandler","rt","te","tm","targetLocaleMessages","messageValue","resolveMessages","getDateTimeFormat","setDateTimeFormat","getNumberFormat","setNumberFormat","__injectWithOption","createVueI18n","silentTranslationWarn","silentFallbackWarn","formatFallbackMessages","pluralizationRules","warnHtmlInMessage","escapeParameterHtml","sync","sharedMessages","convertComposerOptions","vueI18n","preserveDirectiveContent","__composer","tc","getChoiceIndex","__onComponentInstanceCreated","componentInstanceCreatedListener","baseFormatProps","scope","getFragmentableTag","Translation","keypath","useI18n","useScope","__useComponent","arg","slot","getInterpolateArg","assignedAttrs","renderFormatter","slotKeys","partFormatter","DatetimeFormat","parseValue","makeParams","pluginOptions","useI18nComponentName","globalInstall","_process","binding","$","i18nInternal","__getInstance","getComposer$2","parsedValue","__i18nWatcher","$forceUpdate","unmounted","beforeUpdate","getSSRProps","vTDirective","VUE_I18N_COMPONENT_TYPES","devtoolsApi","enableDevTools","reject","packageName","homepage","logo","componentStateTypes","api","visitComponentTree","componentInstance","treeNode","vnode","__VUE_I18N__","getI18nScopeLable","textColor","backgroundColor","tags","updateComponentTreeTags","inspectComponent","instanceData","inspectComposer","addInspector","icon","treeFilterPlaceholder","getInspectorTree","inspectorId","rootNodes","keyInstance","__instances","registerScope","roots","getInspectorState","unhighlightElement","getComposer$1","nodeId","localeType","localeStates","editable","localeMessagesType","localeMessagesStates","getLocaleMessageValue","datetimeFormatsType","datetimeFormatsStates","numberFormatsType","numberFormatsStates","makeScopeInspectState","inspectScope","getComponentInstances","highlightElement","getComponentInstance","editInspectorState","editScope","addTimelineLayer","color","displayName","_custom","display","ESC","escapeChar","addTimelineEvent","groupId","layerId","title","logType","mergeToRoot","I18nInjectionKey","createI18n","__legacyMode","__VUE_I18N_LEGACY_API__","legacy","__globalInjection","globalInjection","__allowComposition","allowComposition","globalScope","__global","legacyMode","run","createGlobal","__VUE_PROD_DEVTOOLS__","__VUE_I18N_SYMBOL__","globalExportProps","desc","wrap","globalProperties","$i18n","globalExportMethods","injectGlobalFields","__VUE_I18N_FULL_INSTALL__","mixin","vuei18n","beforeCreate","optionsI18n","$root","__setInstance","$t","$rt","$tc","$te","$d","$n","$tm","emitter","__v_emitter","_vueI18n","__enableEmitter","__disableEmitter","__deleteInstance","defineMixin","unmountApp","unmount","_composer","stop","isCE","appContext","getI18nInstance","getGlobalComposer","getScope","isLocale","trackReactivityValues","warpWithDeps","wrapper","useI18nForLegacy","useComponent","getComposer","composerOptions","setupLifeCycle","compiler","cached","hit","newChar","transition","action","typeMap","subPathDepth","actions","maybeUnescapeQuote","nextChar","last","needWarn","initFeatureFlags","__INTLIFY__","__INTLIFY_DEVTOOLS_GLOBAL_HOOK__","isEmpty","filterOptions","search","customLabel","option","query","stripGroups","$isLabel","flattenOptions","$groupLabel","flow","fns","isOpen","preferredOpenDirection","optimizedHeight","internalSearch","trackBy","searchable","clearOnSelect","hideSelected","placeholder","allowEmpty","resetAfter","closeOnSelect","taggable","tagPlaceholder","tagPosition","optionsLimit","groupValues","groupLabel","groupSelect","blockKeys","preserveSearch","preselectFirst","preventAutofocus","internalValue","select","filteredOptions","normalizedSearch","fun","filterAndFlat","isSelected","isExistingOption","isTag","valueKeys","optionKeys","flatAndStrip","currentOptionLabel","getOptionLabel","getValue","groups","group","groupOptions","filterGroups","updateSearch","isOptionDisabled","$isDisabled","selectGroup","pointerDirty","deactivate","removeElement","selectedGroup","wholeGroupSelected","optionsToAdd","wholeGroupDisabled","shouldClose","removeLastElement","activate","adjustPosition","pointer","blur","toggle","spaceAbove","spaceBelow","innerHeight","openDirection","showPointer","optionHeight","pointerPosition","visibleElements","pointerAdjust","optionHighlight","groupHighlight","addPointerElement","pointerReset","pointerForward","pointerBackward","pointerSet","selectLabel","selectGroupLabel","selectedLabel","deselectLabel","deselectGroupLabel","showLabels","limitText","showNoOptions","showNoResults","hasOptionGroup","isSingleLabelVisible","singleValue","visibleValues","isPlaceholderVisible","deselectLabelText","deselectGroupLabelText","selectLabelText","selectGroupLabelText","selectedLabelText","inputStyle","contentStyle","isAbove","showSearchInput","hasSingleSelectedSlot","visibleSingleValue","_hoisted_3","_hoisted_4","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_9","onFocus","onKeydown","onKeypress","onMousedown","autocomplete","spellcheck","onMouseenter","errorToString","regExpToString","symbolToString","SYMBOL_REGEXP","printSimpleValue","quoteStrings","typeOf","printNumber","printValue","mixed$3","oneOf","notOneOf","notType","originalValue","isCast","es","mixed","email","url","lowercase","uppercase","lessThan","moreThan","positive","negative","integer","boolean","noUnknown","toArray","strReg","ValidationError","static","errorOrErrors","super","isError","captureStackTrace","defined","notNull","castMsg","uuid","isValue","isSchema","__isYupSchema__","Condition","refs","otherwise","is","check","_branch","branch","builder","prefixes","create$9","Reference","isContext","isSibling","prefix","describe","__isYupRef","isAbsent","createValidation","panic","skipAbsent","spec","isRef","createError","nextParams","formatError","invalid","handleResult","validOrError","handleError","shouldSkip","_result","OPTIONS","getIn","lastPart","lastPartDebug","_part","isTuple","innerType","types","parentPath","ReferenceSet","description","resolveAll","clone","merge","newItems","removeItems","seen","copy","Schema","tests","transforms","conditions","_mutate","internalTests","_whitelist","_blacklist","exclusiveTests","_typeCheck","withMutation","typeError","strip","strict","recursive","nullable","optional","coerce","nonNullable","_type","getPrototypeOf","before","combined","mergedSpec","isType","prevSchema","condition","resolveOptions","_options$strict","_options$abortEarly","_options$recursive","resolvedSchema","allowOptionality","assert","_cast","formattedValue","formattedResult","prevValue","getDefault","initialTests","runTests","runOptions","fired","panicOnce","nextOnce","nestedErrors","asNestedTest","originalParent","testOptions","validateSync","isValidSync","_getDefault","isStrict","nullability","optionality","notRequired","isExclusive","exclusive","when","fromOptions","enums","whiteList","valids","resolved","blacklist","invalids","alias","create$7","BooleanSchema","_raw","isTrue","isFalse","rEmail","rUrl","rUUID","isTrimmed","objStringTag","create$6","StringSchema","strValue","excludeEmptyString","ensure","create$5","NumberSchema","isNaN$1","less","more","isInteger","truncate","_method","avail","isoReg","invalidDate","create$4","DateSchema","struct","numericKeys","minutesOffset","parseIsoDate","INVALID_DATE","prepareParam","Infinity","ii","_err$path","sortByKeyOrder","parseJson","deepPartial","partial","fieldSchema","setFields","nextArray","defaultSort","create$3","ObjectSchema","_sortErrors","_nodes","_excludedEdges","shape","_options$stripUnknown","stripUnknown","intermediateValue","innerOptions","__validating","isChanged","exists","fieldValue","inputValue","fieldSpec","objectErrors","fieldErrors","nextFields","schemaOrRef","dft","_innerOptions","excludedEdges","excludes","addNode","depPath","reverse","sortFields","additions","pick","picked","omit","fromGetter","newObj","pop","deepHas","noAllow","unknownKeys","known","unknown","allow","transformKeys","constantCase","_innerOptions2","setLocale","o","None","RenderStrategy","Static","Unmount","Hidden","visible","features","ourProps","theirProps","j","hidden","localeCompare","flatMap","fromEntries","defaultPrevented","Space","Enter","Escape","Backspace","Delete","ArrowLeft","ArrowUp","ArrowRight","ArrowDown","Home","End","PageUp","PageDown","Tab","Focusable","margin","clip","whiteSpace","borderWidth","currentId","nextId","isServer","N","First","Previous","Next","Last","WrapAround","NoScroll","Overflow","Success","Underflow","F","querySelectorAll","tabIndex","Strict","Loose","parentElement","Keyboard","Mouse","preventScroll","metaKey","altKey","ctrlKey","dataset","headlessuiFocusVisible","detail","relativeTo","skipElements","compareDocumentPosition","DOCUMENT_POSITION_FOLLOWING","DOCUMENT_POSITION_PRECEDING","activeElement","Forwards","Backwards","shiftKey","queueMicrotask","catch","A","InitialFocus","TabLock","FocusLock","RestoreFocus","All","ce","initialFocus","containers","isConnected","J","previousActiveElement","relatedTarget","headlessuiFocusGuard","onFocusout","readyState","inert","getElementById","resolveTarget","Add","Remove","enabled","onUpdate","Open","Closed","Closing","Opening","composed","composedPath","HTMLIFrameElement","cancelAnimationFrame","getPropertyValue","doc","after","maxTouchPoints","scrollTo","closest","URL","href","scrollIntoView","getSnapshot","subscribe","dispatch","PUSH","POP","SCROLL_PREVENT","SCROLL_ALLOW","TEARDOWN","ye","qe","open","close","V","W","titleId","panelRef","dialogState","setTitleId","head","ee","observe","disconnect","leaf","Ke","Ye","FocusManager","onSubscribe","cleanup","setEventListener","onUnsubscribe","_this$cleanup","hasListeners","_this$cleanup2","focused","setFocused","listeners","isFocused","visibilityState","focusManager","defaultLogger","Mutation","mutationId","mutationCache","logger","observers","getDefaultState","updateCacheTime","cacheTime","scheduleGc","addObserver","observer","clearGcTimeout","notify","removeObserver","optionalRemove","status","continue","_this$retryer$continu","_this$retryer","retryer","execute","executeMutation","_this$options$retry","mutationFn","variables","onFail","failureCount","onPause","onContinue","retry","retryDelay","networkMode","promise","restored","_this$mutationCache$c3","_this$mutationCache$c4","_this$options$onSucce","_this$options2","_this$options$onSettl","_this$options3","_this$mutationCache$c","_this$mutationCache$c2","_this$options$onMutat","_this$options","onMutate","onSuccess","onSettled","_this$mutationCache$c5","_this$mutationCache$c6","_this$options$onError","_this$options4","_this$options$onSettl2","_this$options5","failureReason","isPaused","reducer","onMutationUpdate","notifyManager","queue","transactions","notifyFn","batchNotifyFn","schedule","originalQueue","batch","batchCalls","setNotifyFunction","setBatchNotifyFunction","createNotifyManager","OnlineManager","onOnline","online","setOnline","isOnline","onLine","onlineManager","Removable","destroy","gcTimeout","newCacheTime","defaultRetryDelay","canFetch","CancelledError","revert","silent","isCancelledError","createRetryer","continueFn","promiseResolve","promiseReject","isRetryCancelled","isResolved","outerResolve","outerReject","shouldPause","pause","continueResolve","canContinue","promiseOrValue","_config$retry","_config$retryDelay","shouldRetry","cancel","cancelOptions","abort","cancelRetry","continueRetry","Subscribable","noop","functionalUpdate","updater","isValidTimeout","timeUntilStale","updatedAt","staleTime","parseQueryArgs","isQueryKey","queryKey","queryFn","parseFilterArgs","matchQuery","filters","exact","fetchStatus","stale","queryHash","hashQueryKeyByOptions","partialMatchKey","isActive","isStale","matchMutation","fetching","mutationKey","hashQueryKey","queryKeyHashFn","partialDeepEqual","replaceEqualDeep","isPlainArray","aSize","bItems","bSize","equalItems","shallowEqualObjects","hasObjectPrototype","ctor","prot","sleep","timeout","scheduleMicrotask","getAbortController","AbortController","replaceData","prevData","isDataEqual","structuralSharing","MutationObserver","client","setOptions","bindMethods","updateResult","mutate","prevOptions","defaultMutationOptions","getMutationCache","currentMutation","_this$currentMutation","notifyOptions","getCurrentResult","currentResult","mutateOptions","build","isLoading","isSuccess","isIdle","_this$mutateOptions$o","_this$mutateOptions","_this$mutateOptions$o2","_this$mutateOptions2","_this$mutateOptions$o3","_this$mutateOptions3","_this$mutateOptions$o4","_this$mutateOptions4","useMutation","_options$value$queryC","plainArg1","plainArg2","parseMutationArgs","queryClient","useQueryClient","queryClientKey","unsubscribe","mutateAsync","QueryObserver","trackedProps","selectError","refetch","currentQuery","shouldFetchOnMount","executeFetch","updateTimers","shouldFetchOnReconnect","shouldFetchOn","refetchOnReconnect","shouldFetchOnWindowFocus","refetchOnWindowFocus","clearStaleTimeout","clearRefetchInterval","prevQuery","defaultQueryOptions","getQueryCache","updateQuery","shouldFetchOptionally","updateStaleTimeout","nextRefetchInterval","computeRefetchInterval","currentRefetchInterval","updateRefetchInterval","getOptimisticResult","createResult","trackResult","trackedResult","getCurrentQuery","refetchPage","fetch","fetchOptimistic","defaultedOptions","isFetchingOptimistic","fetchOptions","_fetchOptions$cancelR","cancelRefetch","throwOnError","dataUpdatedAt","staleTimeoutId","_this$options$refetch","refetchInterval","nextInterval","refetchIntervalId","setInterval","refetchIntervalInBackground","clearInterval","prevResult","prevResultState","currentResultState","prevResultOptions","currentResultOptions","queryChange","queryInitialState","currentQueryInitialState","prevQueryResult","previousQueryResult","errorUpdatedAt","isPreviousData","isPlaceholderData","_optimisticResults","fetchOnMount","fetchOptionally","keepPreviousData","selectFn","selectResult","placeholderData","isFetching","isInitialLoading","fetchFailureCount","fetchFailureReason","errorUpdateCount","isFetched","dataUpdateCount","isFetchedAfterMount","isRefetching","isLoadingError","isRefetchError","nextResult","defaultNotifyOptions","notifyOnChangeProps","includedProps","useErrorBoundary","typedKey","shouldNotifyListeners","onQueryUpdate","manual","retryOnMount","shouldLoadOnMount","refetchOnMount","suspense","isStaleByTime","useBaseQuery","Observer","plainArg3","defaulted","isRestoring","stopWatch","optimisticResult","useQuery","_getCurrentInstance","getClientKey","isMutationKey","updateState","cloneDeep","customizer","cloneDeepUnref","Query","abortSignalConsumed","initialState","initialData","hasData","initialDataUpdatedAt","fetchMeta","isInvalidated","setData","newData","setStateOptions","isDisabled","getObserversCount","_this$retryer2","_this$retryer3","invalidate","_this$options$behavio","_context$fetchOptions","_this$retryer4","abortController","queryFnContext","pageParam","addSignalProperty","signal","fetchFn","_context$fetchOptions2","behavior","onFetch","revertState","_this$cache$config$on","_this$cache$config","_this$cache$config$on2","_this$cache$config2","_action$meta","_action$dataUpdatedAt","queries","queriesMap","_options$queryHash","getLogger","getQueryDefaults","queryInMap","getAll","findAll","mutations","getMutationDefaults","resumePausedMutations","_this$resuming","resuming","pausedMutations","infiniteQueryBehavior","_context$fetchOptions3","_context$fetchOptions4","_context$state$data","_context$state$data2","fetchMore","isFetchingNextPage","isFetchingPreviousPage","oldPages","pages","oldPageParams","pageParams","newPageParams","cancelled","buildNewPages","page","previous","fetchPage","_context$signal","_context$signal2","aborted","queryFnResult","getNextPageParam","getPreviousPageParam","queryCache","queryDefaults","mutationDefaults","mountCount","unsubscribeFocus","unsubscribeOnline","_this$unsubscribeFocu","_this$unsubscribeOnli","isMutating","getQueryData","_this$queryCache$find","ensureQueryData","parsedOptions","cachedData","fetchQuery","getQueriesData","queryKeyOrFilters","setQueryData","setQueriesData","getQueryState","_this$queryCache$find2","removeQueries","resetQueries","refetchFilters","refetchQueries","cancelQueries","promises","invalidateQueries","_filters$refetchType","refetchType","_options$cancelRefetc","prefetchQuery","fetchInfiniteQuery","prefetchInfiniteQuery","setDefaultOptions","setQueryDefaults","firstMatchingDefaults","setMutationDefaults","_defaulted","QueryCache","arg1Unreffed","arg2Unreffed","MutationCache","QueryClient","unreffedConfig","unreffed","arg3Unreffed","VueQueryPlugin","clientKey","contextSharing","__VUE_QUERY_CONTEXT__","clientConfig","queryClientConfig","persisterUnmount","clientPersister","onUnmount","originalUnmount","_provided","provideCache","isVue2","defaultWindow","useSupported","useMounted","useMediaQuery","isSupported","matchMedia","mediaQuery","removeListener","addListener","breakpointsTailwind","useBreakpoints","breakpoints","delta","increaseWithUnit","greaterOrEqual","shortcutMethods","shortcuts","greater","smaller","smallerOrEqual","between","isGreater","isGreaterOrEqual","isSmaller","isSmallerOrEqual","isInBetween","points","kindOf","thing","kindOfTest","typeOfTest","isUndefined","isArrayBuffer","isBlob","isFileList","isURLSearchParams","allOwnKeys","_key","_global","isContextDefined","isTypedArray","TypedArray","Uint8Array","isHTMLForm","reduceDescriptors","descriptors","reducedDescriptors","isBuffer","isFormData","isArrayBufferView","isBoolean","isStream","pipe","caseless","assignValue","targetKey","extend","stripBOM","inherits","superConstructor","toFlatObject","sourceObj","destObj","propFilter","merged","endsWith","searchString","forEachEntry","done","pair","matchAll","regExp","hasOwnProp","freezeMethods","toObjectSet","arrayOrString","define","toCamelCase","p1","p2","toFiniteNumber","toJSONObject","reducedValue","AxiosError","request","response","utils","fileName","lineNumber","columnNumber","customProps","axiosError","cause","isVisitable","removeBrackets","renderKey","dots","predicates","metaTokens","indexes","visitor","defaultVisitor","useBlob","Blob","append","convertValue","Buffer","isFlatArray","exposedHelpers","encode","charMap","encodeURIComponent","AxiosURLSearchParams","_pairs","encoder","_encode","buildURL","serializeFn","serialize","serializedParams","hashmarkIndex","use","fulfilled","rejected","synchronous","runWhen","eject","silentJSONParsing","forcedJSONParsing","clarifyTimeoutError","URLSearchParams","isStandardBrowserEnv","product","isStandardBrowserWebWorkerEnv","WorkerGlobalScope","importScripts","isBrowser","protocols","buildPath","isNumericKey","arrayToObject","parsePropPath","DEFAULT_CONTENT_TYPE","transitional","adapter","transformRequest","headers","contentType","getContentType","hasJSONContentType","isObjectPayload","setContentType","toURLEncodedForm","formSerializer","_FormData","env","parser","stringifySafely","transformResponse","JSONRequested","responseType","strictJSONParsing","xsrfCookieName","xsrfHeaderName","maxContentLength","maxBodyLength","validateStatus","common","ignoreDuplicateOf","$internals","normalizeHeader","header","normalizeValue","matchHeaderValue","AxiosHeaders","valueOrRewrite","rewrite","setHeader","_header","_rewrite","lHeader","setHeaders","rawHeaders","parseHeaders","tokensRE","parseTokens","matcher","deleted","deleteHeader","normalized","char","formatHeader","targets","asStrings","first","accessors","defineAccessor","accessorName","methodName","buildAccessors","accessor","transformData","isCancel","__CANCEL__","CanceledError","write","expires","secure","cookie","toGMTString","read","decodeURIComponent","buildFullPath","baseURL","requestedURL","relativeURL","combineURLs","urlParsingNode","originURL","resolveURL","protocol","hostname","port","pathname","requestURL","samplesCount","bytes","timestamps","firstSampleTS","tail","chunkLength","startedAt","bytesCount","passed","progressEventReducer","isDownloadStream","bytesNotified","_speedometer","loaded","total","lengthComputable","progressBytes","rate","progress","estimated","knownAdapters","http","xhr","XMLHttpRequest","requestData","requestHeaders","onCanceled","cancelToken","auth","username","password","unescape","btoa","fullPath","onloadend","responseHeaders","getAllResponseHeaders","settle","responseText","statusText","paramsSerializer","onreadystatechange","responseURL","onabort","onerror","ontimeout","timeoutErrorMessage","xsrfValue","withCredentials","isURLSameOrigin","cookies","setRequestHeader","onDownloadProgress","onUploadProgress","upload","parseProtocol","send","adapters","nameOrAdapter","throwIfCancellationRequested","throwIfRequested","dispatchRequest","reason","headersToObject","mergeConfig","config1","config2","getMergedValue","mergeDeepProperties","valueFromConfig2","defaultToConfig2","mergeDirectKeys","mergeMap","timeoutMessage","decompress","beforeRedirect","transport","httpAgent","httpsAgent","socketPath","responseEncoding","configValue","VERSION","validators","deprecatedWarnings","formatMessage","assertOptions","allowUnknown","Axios","instanceConfig","interceptors","configOrUrl","contextHeaders","function","requestInterceptorChain","synchronousRequestInterceptors","interceptor","responseInterceptorChain","newConfig","onFulfilled","onRejected","getUri","generateHTTPMethod","isForm","CancelToken","executor","resolvePromise","_listeners","onfulfilled","_resolve","HttpStatusCode","Continue","SwitchingProtocols","Processing","EarlyHints","Ok","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlreadyReported","ImUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","Unused","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthorized","PaymentRequired","Forbidden","NotFound","MethodNotAllowed","NotAcceptable","ProxyAuthenticationRequired","RequestTimeout","Conflict","Gone","LengthRequired","PreconditionFailed","PayloadTooLarge","UriTooLong","UnsupportedMediaType","RangeNotSatisfiable","ExpectationFailed","ImATeapot","MisdirectedRequest","UnprocessableEntity","Locked","FailedDependency","TooEarly","UpgradeRequired","PreconditionRequired","TooManyRequests","RequestHeaderFieldsTooLarge","UnavailableForLegalReasons","InternalServerError","NotImplemented","BadGateway","ServiceUnavailable","GatewayTimeout","HttpVersionNotSupported","VariantAlsoNegotiates","InsufficientStorage","LoopDetected","NotExtended","NetworkAuthenticationRequired","axios","createInstance","defaultConfig","toFormData","Cancel","spread","isAxiosError","formToJSON","InlineSvg","svgElSource","getSvgAttrs","getSvgContent","transformSource","svg","keepDuringLoading","getSource","svgEl","svgAttrs","attributes","cloneNode","titleTags","getElementsByTagName","titleEl","createElementNS","insertBefore","firstChild","setTitle","download","getIsPending","isPending","makePromiseState","DOMParser","parseFromString"],"sourceRoot":""}