{"version":3,"file":"js/app.8a19e0a2.js","mappings":"qDAEM,SAAUA,IAEVC,OAAOC,OAETD,OAAOC,MAAM,YAEjB,C,wDAmCM,SAAUC,IAEVF,OAAOC,OAETD,OAAOC,MAAM,iBAEjB,C,2ICjDA,MAAME,EAAS,CACb,UACA,WACA,QACA,QACA,MACA,OACA,OACA,SACA,YACA,UACA,WACA,YAGI,SAAUC,EAAYC,GAC1B,OAAOF,EAAOE,EAAKC,WACrB,CAEM,SAAUC,EAAWF,GACzB,MAAO,GAAGD,EAAYC,MAASA,EAAKG,cAAcH,EAAKI,eACzD,CAEM,SAAUC,EAAaC,EAAaC,GACxC,MAAMC,EAAM,IAAIC,KAChB,OAAOD,GAAOF,GAASE,GAAOD,CAChC,CAEA,SAASG,IACP,MAAO,CAAC,iBAAkB,wBAAwBC,SAAShB,OAAOiB,SAASC,KAC7E,CAEA,SAASC,EAAeR,EAAaC,GACnC,OAAOG,KAAWL,EAAaC,EAAOC,EACxC,CAEM,SAAUQ,IACd,OAAO,CACT,CAEM,SAAUC,IACd,OAAOF,EAAe,IAAIL,KAAK,cAAe,IAAIA,KAAK,cACzD,CAMM,SAAUQ,IACd,OAAOH,EAAe,IAAIL,KAAK,cAAe,IAAIA,KAAK,cACzD,C,oCClDM,SAAUS,EAAmBC,GACjC,OAAQA,EAAWC,SAAS,KAAOD,EAAWE,MAAM,GAAI,GAAKF,CAC/D,CAEM,SAAUG,EAAoBH,GAElC,MAAmB,MAAfA,EACK,MAEFI,mBAAmBJ,EAAWC,SAAS,KAAOD,EAAWE,MAAM,GAAI,GAAKF,EACjF,CAEM,SAAUK,EAAoBC,GAElC,MAAgB,QAAZA,EACK,IAEFC,mBAAmBD,GAASE,aACrC,CAEM,SAAUC,EAAwBT,GACtC,MAAmB,MAAfA,EACK,IAEDA,EAAWC,SAAS,KAAOD,EAAWE,MAAM,GAAI,GAAKF,CAC/D,CAEM,SAAUU,EAAgBC,EAAcC,GAC5C,OAAOb,EAAmBY,KAAUZ,EAAmBa,EACzD,C,kQC1BA,MAAMC,GAA0BC,EAAAA,EAAAA,GAAoB,MAAO,CAAEC,GAAI,YAAc,MAAO,GAGtF,OAA4BC,EAAAA,EAAAA,IAAiB,CAC3CC,OAAQ,mBACRC,MAAMC,GAgBR,OAZA3C,OAAO4C,SAASC,SAAS,WAAY,CACnCC,aAAc,GACdC,YAAa,GACbC,OAAQ,SACRC,OAAQ,SACRC,oBAAoB,EACpBC,OAAQ,CACNC,SAAS,GAEXC,WAAY,8CAGP,CAACC,EAAUC,MACRC,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAaC,EAAAA,GAAW,CAAEC,GAAI,QAAU,CAC5DtB,IAGJ,IC1BA,MAAMuB,EAAc,EAEpB,Q,UCEA,GAA4BpB,EAAAA,EAAAA,IAAiB,CAC3CC,OAAQ,YACRC,MAAMC,GAER,MAAMkB,GAAQC,EAAAA,EAAAA,MACRC,EAAY,IAAMF,EAAMG,OAAO,aAC/BjD,GAAQkD,EAAAA,EAAAA,KAAS,IAAM,CAAC,iBAAkB,uBAAwB,sBAAsBjD,SAAShB,OAAOiB,SAASC,QAEvH,MAAO,CAACoC,EAAUC,KACRW,EAAAA,EAAAA,IAAOnD,KACVyC,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,MAAO,CACxCC,IAAK,EACLC,QAASN,EACTO,MAAO,wDACN,gBACHC,EAAAA,EAAAA,IAAoB,IAAI,EAE9B,ICrBA,MAAM,EAAc,EAEpB,QCCA,GAA4B/B,EAAAA,EAAAA,IAAiB,CAC3CC,OAAQ,kBACRC,MAAMC,GAER,MAAMkB,GAAQC,EAAAA,EAAAA,MAEd,IAAIU,EAAS,EAEb,SAASC,IACP,MAAMC,EAAI,IAAIC,MACdD,EAAEE,QAAU,KACVJ,GAAU,EACNA,EAAS,EACXK,WAAWJ,EAAS,KAEpBZ,EAAMG,OAAO,gB,EAGjBU,EAAEI,OAAS,KACTjB,EAAMG,OAAO,mBAAmB,EAGlCU,EAAEK,IAAM,8DACV,CAGA,OAFAN,IAEO,CAACnB,EAAUC,MACRC,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,OAE5C,IChCA,MAAM,EAAc,EAEpB,QCHA,GAA4B3B,EAAAA,EAAAA,IAAiB,CAC3CC,OAAQ,aACRC,MAAMC,GAER,IAAKqC,eAAeC,QAAQ,WAAY,CACtCD,eAAeE,QAAQ,UAAW,QAClC,MAAMC,EAAM,IAAIC,eAChBD,EAAIE,KAAK,MAAO,oEAAoE,GACpFF,EAAIG,M,CAGN,MAAO,MACP,ICXA,MAAM,EAAc,EAEpB,Q,kCCJE7B,EAAAA,EAAAA,IASWC,EAAAA,GAAAA,CATDC,GAAG,QAAM,cACjBF,EAAAA,EAAAA,KAOY8B,EAAAA,EAAAA,IAPI,UAAQ,CAAEC,KAAK,0BAAwB,C,kBAAC,IAOxD,UAPwD,0N,uBCD5D,MAAMC,EAAS,CAAC,EAGV,GAA2B,OAAgBA,EAAQ,CAAC,CAAC,SAASC,KAEpE,QCIA,GAA4BlD,EAAAA,EAAAA,IAAiB,CAC3CC,OAAQ,MACRC,MAAMC,GAGR,MAAO,CAACW,EAAUC,KAChB,MAAMoC,GAAyBC,EAAAA,EAAAA,IAAkB,eAEjD,OAAQpC,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB0B,EAAAA,GAAW,KAAM,EACzDC,EAAAA,EAAAA,IAAaH,IACXzB,EAAAA,EAAAA,IAAO9C,EAAAA,GAAP8C,IAEEK,EAAAA,EAAAA,IAAoB,IAAI,KADvBf,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAasC,EAAkB,CAAE3B,IAAK,MAEzD0B,EAAAA,EAAAA,IAAaE,IACbF,EAAAA,EAAAA,IAAaG,IACbH,EAAAA,EAAAA,IAAaI,IACbJ,EAAAA,EAAAA,IAAaK,IACZ,GAAG,CAER,ICxBA,MAAM,EAAc,EAEpB,Q,UCKO,MAAMC,EAAcC,EAAAA,MAAAA,EAIdC,GAFWF,EAAYG,KAAKf,GAASA,EAAKgB,QAExBJ,EAAYG,KAAKf,GAASA,EAAKiB,QAAOC,KAAK,MAGpE,SAAUC,EAAcC,GAE5B,OAAOR,EAAYS,MAAMC,GAAMA,EAAEN,QAAUI,EAAWG,eACxD,C,wMCdA,GAA4BvE,EAAAA,EAAAA,IAAiB,CAC3CC,OAAQ,iBACRuE,MAAO,CACPC,OAAQ,CACNzB,KAAM0B,OACNC,UAAU,GAEZC,KAAM,CACJ5B,KAAM0B,OACNG,QAAS,gBAGX3E,MAAMC,GAER,MAAMqE,EAAQrE,EAIR2E,GAAYrD,EAAAA,EAAAA,KAAS,KAAM1C,EAAAA,EAAAA,IAAmByF,EAAMC,UACpDM,GAAgBtD,EAAAA,EAAAA,KAAS,kBAAgB,QAAhB,EAAM+C,EAAMI,YAAI,aAAV,EAAYpF,aAAa,IACxDwF,GAASvD,EAAAA,EAAAA,KAAS,IACjB,CAAC,cAAe,aAAc,eAAejD,SAASgG,EAAMI,MAG1D,GAFET,EAAcK,EAAMI,MAAMI,SAKrC,MAAO,CAAClE,EAAUC,KAChB,MAAMkE,GAAyB7B,EAAAA,EAAAA,IAAkB,eAEjD,MAAyB,gBAAjBjD,EAAQyE,OACX5D,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAagE,EAAwB,CAClDrD,IAAK,EACLT,GAAI,aAAYO,EAAAA,EAAAA,IAAOoD,wBACvBI,MAAO,uBAAuB/E,EAAQsE,UACrC,CACDI,SAASM,EAAAA,EAAAA,KAAS,IAAM,EACtBC,EAAAA,EAAAA,IAAYtE,EAAKuE,OAAQ,UAAW,CAAC,GAAG,IAAM,EAC5CC,EAAAA,EAAAA,KAAiBC,EAAAA,EAAAA,IAAiBpF,EAAQsE,QAAS,SAGvDe,EAAG,GACF,EAAG,CAAC,KAAM,WACK,gBAAjBrF,EAAQyE,OACN5D,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAagE,EAAwB,CAClDrD,IAAK,EACLT,GAAI,aAAYO,EAAAA,EAAAA,IAAOoD,kBACvBI,MAAO,mBAAmB/E,EAAQsE,UACjC,CACDI,SAASM,EAAAA,EAAAA,KAAS,IAAM,EACtBC,EAAAA,EAAAA,IAAYtE,EAAKuE,OAAQ,UAAW,CAAC,GAAG,IAAM,EAC5CC,EAAAA,EAAAA,KAAiBC,EAAAA,EAAAA,IAAiBpF,EAAQsE,QAAS,SAGvDe,EAAG,GACF,EAAG,CAAC,KAAM,WACK,eAAjBrF,EAAQyE,OACN5D,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAagE,EAAwB,CAClDrD,IAAK,EACLT,GAAI,aAAYO,EAAAA,EAAAA,IAAOoD,iBACvBI,MAAO,oBAAoB/E,EAAQsE,UAClC,CACDI,SAASM,EAAAA,EAAAA,KAAS,IAAM,EACtBC,EAAAA,EAAAA,IAAYtE,EAAKuE,OAAQ,UAAW,CAAC,GAAG,IAAM,EAC5CC,EAAAA,EAAAA,KAAiBC,EAAAA,EAAAA,IAAiBpF,EAAQsE,QAAS,SAGvDe,EAAG,GACF,EAAG,CAAC,KAAM,WACK,QAAjBrF,EAAQyE,OACN5D,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAagE,EAAwB,CAClDrD,IAAK,EACLT,GAAI,aAAYO,EAAAA,EAAAA,IAAOoD,gBACvBI,MAAO,kBAAkB/E,EAAQsE,UAChC,CACDI,SAASM,EAAAA,EAAAA,KAAS,IAAM,EACtBC,EAAAA,EAAAA,IAAYtE,EAAKuE,OAAQ,UAAW,CAAC,GAAG,IAAM,EAC5CC,EAAAA,EAAAA,KAAiBC,EAAAA,EAAAA,IAAiBpF,EAAQsE,QAAS,SAGvDe,EAAG,GACF,EAAG,CAAC,KAAM,aACZxE,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAagE,EAAwB,CAClDrD,IAAK,EACLT,GAAI,aAAYO,EAAAA,EAAAA,IAAOoD,mBAA0BpD,EAAAA,EAAAA,IAAOqD,MACxDG,MAAO,IAAGxD,EAAAA,EAAAA,IAAOsD,UAAe7E,EAAQsE,UACvC,CACDI,SAASM,EAAAA,EAAAA,KAAS,IAAM,EACtBC,EAAAA,EAAAA,IAAYtE,EAAKuE,OAAQ,UAAW,CAAC,GAAG,IAAM,EAC5CC,EAAAA,EAAAA,KAAiBC,EAAAA,EAAAA,IAAiBpF,EAAQsE,QAAS,SAGvDe,EAAG,GACF,EAAG,CAAC,KAAM,UAAU,CAEnC,ICpGA,MAAM,EAAc,EAEpB,QCFA,MAAM3F,EAAa,CACjB+B,IAAK,EACL6D,MAAO,6BACPC,MAAO,KACPC,OAAQ,KACRC,KAAM,eACNC,QAAS,YACT/D,MAAO,gBAEHgE,GAA0BhG,EAAAA,EAAAA,GAAoB,OAAQ,CAAEiG,EAAG,w5BAA05B,MAAO,GAC59BC,EAAa,CACjBF,GAEIG,EAAa,CACjBrE,IAAK,EACL6D,MAAO,6BACPC,MAAO,KACPC,OAAQ,KACRC,KAAM,eACNC,QAAS,YACT/D,MAAO,gBAEHoE,GAA0BpG,EAAAA,EAAAA,GAAoB,OAAQ,CAAEiG,EAAG,iJAAmJ,MAAO,GACrNI,GAA0BrG,EAAAA,EAAAA,GAAoB,OAAQ,CAAEiG,EAAG,ylDAA2lD,MAAO,GAC7pDK,EAAa,CACjBF,EACAC,GAEIE,EAAa,CACjBzE,IAAK,EACL6D,MAAO,6BACPC,MAAO,KACPC,OAAQ,KACRC,KAAM,eACNC,QAAS,YACT/D,MAAO,gBAEHwE,IAA0BxG,EAAAA,EAAAA,GAAoB,OAAQ,CAAEiG,EAAG,+IAAiJ,MAAO,GACnNQ,GAAc,CAClBD,IAEIE,GAAc,CAClB5E,IAAK,EACL6D,MAAO,6BACPC,MAAO,KACPC,OAAQ,KACRC,KAAM,eACNC,QAAS,YACT/D,MAAO,gBAEH2E,IAA2B3G,EAAAA,EAAAA,GAAoB,OAAQ,CAAEiG,EAAG,+rBAAisB,MAAO,GACpwBW,IAA2B5G,EAAAA,EAAAA,GAAoB,OAAQ,CAAEiG,EAAG,+rBAAisB,MAAO,GACpwBY,GAAc,CAClBF,GACAC,IAEIE,GAAc,CAClBhF,IAAK,EACL6D,MAAO,6BACPC,MAAO,KACPC,OAAQ,KACRC,KAAM,eACNC,QAAS,sBACT/D,MAAO,gBAEH+E,IAA2B/G,EAAAA,EAAAA,GAAoB,IAAK,CAAEC,GAAI,aAAe,EAChED,EAAAA,EAAAA,GAAoB,OAAQ,CAAEiG,EAAG,krJAC5C,GACEe,GAAc,CAClBD,IAMF,QAA4B7G,EAAAA,EAAAA,IAAiB,CAC3CC,OAAQ,gBACRuE,MAAO,CACPuC,KAAM,CACJ/D,KAAM0B,OACNC,UAAU,IAGZzE,MAAMC,GAIR,MAAO,CAACW,EAAUC,IACS,UAAjBZ,EAAQ4G,OACX/F,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,MAAO9B,EAAYmG,IACpC,SAAjB7F,EAAQ4G,OACN/F,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,MAAOsE,EAAYG,IACpC,YAAjBjG,EAAQ4G,OACN/F,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,MAAO0E,EAAYE,KACpC,QAAjBpG,EAAQ4G,OACN/F,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,MAAO6E,GAAaG,KACrC,UAAjBxG,EAAQ4G,OACN/F,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,MAAOiF,GAAaE,MACvD/E,EAAAA,EAAAA,IAAoB,IAAI,EAEtC,ICpGA,MAAM,GAAc,GAEpB,U,UCFO,MAAMiF,GAAoB,CAAC,MAAO,OAC5BC,GAAoB,CAAC,MAAO,OAG5BC,GAAoB,CAAC,MAAO,MAC5BC,GAAoB,CAAC,MAAO,MAC5BC,GAAoB,CAAC,MAAO,OAO5BC,GAAoB,CAAC,MAAO,MAQnCC,GAAc,CAClBzC,QAAS,EACT0C,GAAI,IACJC,GAAI,IACJC,GAAI,KACJC,GAAI,KACJ,MAAO,MAGH,SAAU7G,GAAW8G,EAAkBC,GAC3C,OAAID,GAAOC,EACF,eAAeN,GAAYK,yBAA2BL,GAAYM,GAAgB,OAEvFD,EACK,eAAeL,GAAYK,QAEhCC,EACK,eAAeN,GAAYM,GAAgB,YADpD,CAIF,CCnCA,QAAeC,EAAAA,EAAAA,IAAY,CACzBC,MAAO,CACLC,eAAe,EACfC,SAAS,EACTC,YAAY,EACZC,YAAY,GAEdC,UAAW,CACTC,gBAAgBN,GACdA,EAAMC,eAAiBD,EAAMC,aAC/B,EACAxG,UAAUuG,GACRA,EAAME,SAAWF,EAAME,OACzB,EACAK,aAAaP,GACXA,EAAMG,YAAcH,EAAMG,UAC5B,EACAK,cAAcR,GACZA,EAAMI,YAAa,CACrB,EACAK,iBAAiBT,GACfA,EAAMI,YAAa,CACrB,GAEFM,QAAS,CAAC,EAEVC,QAAS,CAAC,I,WChCZ,MAAM5I,GAAa,CAAC,MACdiG,GAAa,CAAC,MACdE,GAAa,CAAC,MACdC,GAAa,CAAC,MAUpB,QAA4BjG,EAAAA,EAAAA,IAAiB,CAC3CC,OAAQ,aACRuE,MAAO,CACPzE,GAAI,CACFiD,KAAM0B,OACNC,UAAU,GAEZ+D,QAAS,CACP1F,KAAM2F,MACN9D,QAAS,IAAM,CAACmC,KAElBnG,WAAY,CACVmC,KAAM0B,OACNG,aAAS+D,GAEXC,aAAc,CACZ7F,KAAM8F,QACNjE,SAAS,IAGX3E,MAAMC,GAER,MAAMqE,EAAQrE,EAMR6H,GAAUvG,EAAAA,EAAAA,KAAS,IAAMJ,GAAMyG,MAAME,UACrCE,GAAazG,EAAAA,EAAAA,KAAS,IAAMJ,GAAMyG,MAAMI,aACxCa,GAAWC,EAAAA,EAAAA,IAAIxE,EAAMkE,QAAQO,OAAS,GACtCC,EAAW,KACfH,EAASI,OAASJ,EAASI,MAAQ,GAAK3E,EAAMkE,QAAQO,MAAM,EAmB9D,OAhBKf,EAAWiB,QACdC,EAAAA,EAAAA,KAAU,KAER5L,OAAO4C,SAASC,SAAS,KAAKmE,EAAMzE,KAAM,CACxCQ,YAAa,GACb8I,mBAAmB,EACnBC,oBAAoB,EACpBC,MAAO/E,EAAMkE,QACb/H,OAAQ,CACNC,SAAS,GAEXC,WAAY2D,EAAM3D,YAClB,IAIC,CAACC,EAAUC,MACRC,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,MAAO,CAC/C5B,GAAI,KAAKI,EAAQJ,cAChB,GACAiB,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,KAAa8B,EAAAA,EAAAA,IAAyB,SAAU,KAAM,CACnE8B,SAASM,EAAAA,EAAAA,KAAS,IAAM,EACtBG,EAAAA,EAAAA,IAAiB,YAAaC,EAAAA,EAAAA,IAAiBpF,EAAQU,YAAc,UAAW0E,EAAAA,EAAAA,IAAiBpF,EAAQJ,IAAM,mCAAoC,MAErJyF,EAAG,KAEJrF,EAAQ0I,eACJ7H,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,KAAa8B,EAAAA,EAAAA,IAAyB,SAAU,CAAEnB,IAAK,GAAK,CACzEiD,SAASM,EAAAA,EAAAA,KAAS,IAAM,EACtBG,EAAAA,EAAAA,IAAiB,YAAaC,EAAAA,EAAAA,IAAiBpF,EAAQU,YAAc,UAAW0E,EAAAA,EAAAA,IAAiBpF,EAAQJ,IAAM,uDAAwD,MAEzKyF,EAAG,MAELzD,EAAAA,EAAAA,IAAoB,IAAI,IAC3BL,EAAAA,EAAAA,IAAOwG,IAAe/H,EAAQ0I,eAC1B7H,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,MAAO,CACxCC,IAAK,EACL7B,GAAI,KAAKI,EAAQJ,cACjB+B,MAAO,sCACN,EACDwB,EAAAA,EAAAA,IAAakG,GAAAA,IACZ,EAAG1D,OACL9E,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,MAAO,CACxCC,IAAK,EACL7B,GAAI,KAAKI,EAAQJ,KACjB+B,OAAO2H,EAAAA,EAAAA,IAAgB,EAAC/H,EAAAA,EAAAA,IAAOsG,GAAW,GAAK,YAC9C,KAAM,GAAIhC,MACjBlG,EAAAA,EAAAA,GAAoB,MAAO,CACzBC,GAAI,KAAKI,EAAQJ,SACjB+B,OAAO2H,EAAAA,EAAAA,IAAgB,EAAC/H,EAAAA,EAAAA,IAAOsG,GAAW,SAAW,GACzC,+DAEZnG,QAASqH,GACR,GACAlI,EAAAA,EAAAA,KAAW,IAAOW,EAAAA,EAAAA,IAAoB0B,EAAAA,GAAW,MAAMqG,EAAAA,EAAAA,IAAYvJ,EAAQuI,SAAS,CAACiB,EAAQC,MACpF5I,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,MAAO,CAC/CC,IAAKgI,EACL9H,OAAO2H,EAAAA,EAAAA,IAAgB,CACpB,OACAG,IAAUb,EAASI,MAAQ,YAAc,GAC/B,IAAVS,EAAc,OAAS,OAEzBrE,EAAAA,EAAAA,IAAiBoE,EAAO,IAAM,OAAQpE,EAAAA,EAAAA,IAAiBoE,EAAO,IAAK,MACpE,OACH,GAAI1D,MACLvE,EAAAA,EAAAA,IAAOsG,IAAY7H,EAAQuI,QAAQO,SAChCjI,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,KAAa8B,EAAAA,EAAAA,IAAyB,SAAU,CAAEnB,IAAK,GAAK,CACzEiD,SAASM,EAAAA,EAAAA,KAAS,IAAM,EACtBG,EAAAA,EAAAA,IAAiB,QAASC,EAAAA,EAAAA,IAAiBpF,EAAQJ,IAAM,iCAAkCwF,EAAAA,EAAAA,IAAiBpF,EAAQuI,QAAQK,EAASI,OAAO,IAAM,gBAAiB5D,EAAAA,EAAAA,IAAiBpF,EAAQuI,QAAQK,EAASI,OAAO,IAAM,iBAAkB5D,EAAAA,EAAAA,IAAiBpF,EAAQU,YAAc,UAAW0E,EAAAA,EAAAA,IAAiBpF,EAAQJ,IAAM,8BAA+B,MAE9VyF,EAAG,MAELzD,EAAAA,EAAAA,IAAoB,IAAI,IAC3B,EAAGlC,IAER,IC3HA,MAAM,GAAc,GAEpB,UCMA,IAA4BG,EAAAA,EAAAA,IAAiB,CAC3CC,OAAQ,uBACRuE,MAAO,CACPqF,OAAQ,CACN7G,KAAM8G,OACNnF,UAAU,IAGZzE,MAAMC,GAER,MAAMqE,EAAQrE,EAIR4J,GAAMtI,EAAAA,EAAAA,KAAS,KACnB,MAAMuI,EAAqB,CACzB,CAAEC,gBAAYrB,EAAWW,MAAO/E,EAAMqF,OAAOhF,SAC7C,CAAEoF,WAAY,KAAoBV,MAAO/E,EAAMqF,OAAOtC,IACtD,CAAE0C,WAAY,KAAoBV,MAAO/E,EAAMqF,OAAOrC,IACtD,CAAEyC,WAAY,KAAoBV,MAAO/E,EAAMqF,OAAOpC,IACtD,CAAEwC,WAAY,KAAoBV,MAAO/E,EAAMqF,OAAOnC,IACtD,CAAEuC,WAAY,MAAqBV,MAAO/E,EAAMqF,OAAO,SACvDK,QAAQD,QAAoCrB,IAArBqB,EAAWV,QAEpC,OAAOS,EACJjG,KAAI,CAACoG,EAASP,KAAK,YAAM,CACxBK,WAAYE,EAAQF,WACpBV,MAAOY,EAAQZ,MACf1I,WAAYA,GAAWsJ,EAAQF,WAAyC,QAA/B,EAAED,EAAmBJ,EAAQ,UAAE,aAA7B,EAA+BK,YAC3E,IAEAC,QAAQC,IAAO,aAAkB,QAAlB,EAAKA,EAAQZ,aAAK,aAAb,EAAeN,MAAM,GAAC,IAG/C,MAAO,CAACnI,EAAUC,MACRC,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,MAAO,KAAM,GACpDX,EAAAA,EAAAA,KAAW,IAAOW,EAAAA,EAAAA,IAAoB0B,EAAAA,GAAW,MAAMqG,EAAAA,EAAAA,KAAYhI,EAAAA,EAAAA,IAAOqI,IAAOK,IAAM,MACtF,OAAQpJ,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAaoJ,GAAY,CAC7CzI,IAAKwI,EAAGH,WACRlK,GAAI,GAAGI,EAAQ0J,OAAO9J,MAAMqK,EAAGH,WAAaG,EAAGH,WAAa,YAC5D,WAAYG,EAAGb,MACf,cAAea,EAAGvJ,WAClB,gBAAyB,QAAV,EAAEuJ,EAAGb,aAAK,aAAR,EAAU/K,UAASkD,EAAAA,EAAAA,IAAOsF,MAC1C,KAAM,EAAG,CAAC,KAAM,WAAY,cAAe,iBAAiB,IAC7D,QAGR,ICvDA,MAAM,GAAc,GAEpB,UCFA,MAAMnH,GAAa,CAAC,OAQpB,QAA4BG,EAAAA,EAAAA,IAAiB,CAC3CC,OAAQ,YACRuE,MAAO,CACP+E,MAAO,CACLvG,KAAM2F,MACNhE,UAAU,IAGZzE,MAAMC,GAER,MAAMqE,EAAQrE,EAIRmK,EAAiB,CACrBlD,GACAJ,IAGIuD,GAAO9I,EAAAA,EAAAA,KAAS,kBAAyD,QAAzD,EAAM6I,EAAejG,MAAMmG,GAAMhG,EAAM+E,MAAM/K,SAASgM,YAAG,QAAI,QAAQ,IACrFC,GAAchJ,EAAAA,EAAAA,KAAS,KAC3B,OAAQ8I,EAAKpB,OACX,KAAK/B,GACH,MAAO,sBACT,KAAKJ,GACH,MAAO,sBACT,QACE,MAAO,SAAS,IAItB,MAAO,CAAClG,EAAUC,IACQ,WAAhBW,EAAAA,EAAAA,IAAO6I,KACVvJ,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,IAAK,CACtCC,IAAK,EACL8I,KAAM,sCACNC,IAAK,qBACL7I,OAAO2H,EAAAA,EAAAA,IAAgB,EAAC/H,EAAAA,EAAAA,IAAO+I,GAAc,gFAC5C,EACD3K,EAAAA,EAAAA,GAAoB,MAAO,CACzByC,IAAK,SAAQb,EAAAA,EAAAA,IAAO6I,GAAM,GAAGK,WAAWC,MAAM,IAAIC,UAAU5G,KAAK,QAAOxC,EAAAA,EAAAA,IAAO6I,GAAM,GAAGK,WAAWC,MAAM,IAAIC,UAAU5G,KAAK,UAC5H6G,IAAK,uCACLjJ,MAAO,4CACN,KAAM,EAAGjC,KACX,KACHkC,EAAAA,EAAAA,IAAoB,IAAI,EAE9B,ICvDA,MAAM,GAAc,GAEpB,UCFA,MAAMlC,GAAa,CACjB+B,IAAK,EACLE,MAAO,iBAUT,QAA4B9B,EAAAA,EAAAA,IAAiB,CAC3CC,OAAQ,SACRuE,MAAO,CACPqF,OAAQ,CACN7G,KAAM8G,OACNnF,UAAU,IAGZzE,MAAMC,GAER,MAAMqE,EAAQrE,EAKR6K,EAAeC,KAAKC,MAAsB,IAAhBD,KAAKE,UAC/BC,EAAcJ,EAAe,GAEnC,SAASK,EAASd,GAAmD,cACnE,OAAQA,GACN,IAAK,UACH,OAAO/F,EAAMqF,OAAOhF,QACtB,IAAK,KACH,OAAsB,QAAtB,EAAOL,EAAMqF,OAAOtC,UAAE,QAAI8D,EAAS,WACrC,IAAK,KACH,OAAsB,QAAtB,EAAO7G,EAAMqF,OAAOrC,UAAE,QAAI6D,EAAS,MACrC,IAAK,KACH,OAAsB,QAAtB,EAAO7G,EAAMqF,OAAOpC,UAAE,QAAI4D,EAAS,MACrC,IAAK,KACH,OAAsB,QAAtB,EAAO7G,EAAMqF,OAAOnC,UAAE,QAAI2D,EAAS,MACrC,IAAK,MACH,OAA0B,QAA1B,EAAO7G,EAAMqF,OAAO,cAAM,QAAIwB,EAAS,MACzC,QACE,MAAO,GAEb,CAEA,MAAO,CAACvK,EAAUC,KACPW,EAAAA,EAAAA,IAAO7C,EAAAA,GAAP6C,IAA6B0J,IAKjCpK,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,MAAO9B,GAAY,EACpDyD,EAAAA,EAAAA,IAAagI,GAAW,CACtBxJ,MAAO,YACPyH,MAAO8B,EAAS,YACf,KAAM,EAAG,CAAC,WACb/H,EAAAA,EAAAA,IAAagI,GAAW,CACtBxJ,MAAO,4BACPyH,MAAO8B,EAAS,OACf,KAAM,EAAG,CAAC,WACb/H,EAAAA,EAAAA,IAAagI,GAAW,CACtBxJ,MAAO,4BACPyH,MAAO8B,EAAS,OACf,KAAM,EAAG,CAAC,WACb/H,EAAAA,EAAAA,IAAagI,GAAW,CACtBxJ,MAAO,4BACPyH,MAAO8B,EAAS,OACf,KAAM,EAAG,CAAC,WACb/H,EAAAA,EAAAA,IAAagI,GAAW,CACtBxJ,MAAO,6BACPyH,MAAO8B,EAAS,OACf,KAAM,EAAG,CAAC,WACb/H,EAAAA,EAAAA,IAAagI,GAAW,CACtBxJ,MAAO,mBACPyH,MAAO8B,EAAS,QACf,KAAM,EAAG,CAAC,eA5BdrK,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAasK,GAAsB,CAChD3J,IAAK,EACLiI,OAAQ1J,EAAQ0J,QACf,KAAM,EAAG,CAAC,WA4BnB,IClFA,MAAM,GAAc,GAEpB,UCWO,MAAM2B,GAA2B,CACtCzL,GAAI,cACJ0L,SAAU,WACVC,IAAK,SACL7G,QAAS,CAACmC,IACVO,GAAI,CAACP,GAAiBC,KAGX0E,GAA4B,CACvC5L,GAAI,sBACJ0L,SAAU,WACVC,IAAK,QACL7G,QAAS,CAACmC,KAGC4E,GAAwB,CACnC7L,GAAI,kBACJ0L,SAAU,WACVC,IAAK,QACL7G,QAAS,CAACmC,IACVS,GAAI,CAACT,GAAiBG,KAGX0E,GAA0B,CACrC9L,GAAI,oBACJ0L,SAAU,WACVC,IAAK,QACL7G,QAAS,CAACmC,IACVO,GAAI,CAACP,GAAiBC,IACtBQ,GAAI,CAACT,GAAiBC,GAAgBC,GAAaC,GAAkBC,KAG1D0E,GAAyB,CACpC/L,GAAI,kBACJ0L,SAAU,WACVC,IAAK,SACL7G,QAAS,CAACmC,IACVO,GAAI,CAACP,GAAiBC,KAGX8E,GAAyB,CACpChM,GAAI,kBACJ0L,SAAU,WACVC,IAAK,SACL7G,QAAS,CAACmC,IACVO,GAAI,CAACP,GAAiBC,IACtBQ,GAAI,CAACT,GAAiBC,GAAgBC,GAAaC,KAGxC6E,GAA4B,CACvCjM,GAAI,qBACJ0L,SAAU,WACVC,IAAK,SACL7G,QAAS,CAACmC,IACVO,GAAI,CAACP,GAAiBC,IACtBQ,GAAI,CAACT,GAAiBC,GAAgBC,GAAaC,GAAkBC,KAG1D6E,GAA2B,CACtClM,GAAI,qBACJ0L,SAAU,WACVC,IAAK,SACL7G,QAAS,CAACmC,IACVO,GAAI,CAACP,GAAiBC,KAGXiF,GAA4B,CACvCnM,GAAI,sBACJ0L,SAAU,WACVC,IAAK,OACL7G,QAAS,CAACmC,IACVO,GAAI,CAACP,GAAiBC,IACtBQ,GAAI,CAACT,GAAiBC,GAAgBC,GAAaC,GAAkBC,KAG1D+E,GAA0B,CACrCpM,GAAI,oBACJ0L,SAAU,WACVC,IAAK,SACL7G,QAAS,CAACmC,IACVO,GAAI,CAACP,GAAiBC,KAGXmF,GAA2B,CACtCrM,GAAI,qBACJ0L,SAAU,WACVC,IAAK,SACL7G,QAAS,CAACmC,IACVO,GAAI,CAACP,GAAiBC,IACtBQ,GAAI,CAACT,GAAiBC,GAAgBC,GAAaC,GAAkBC,KAG1DiF,GAA4B,CACvCtM,GAAI,uBACJ0L,SAAU,WACVC,IAAK,SACL7G,QAAS,CAACmC,IACVO,GAAI,CAACP,GAAiBC,KAGXqF,GAAgC,CAC3CvM,GAAI,4BACJ0L,SAAU,WACVC,IAAK,aACL7G,QAAS,CAACwC,IACVE,GAAI,CAACL,IACLO,GAAI,CAACP,GAAaC,KAGPoF,GAAiC,CAC5CxM,GAAI,6BACJ0L,SAAU,WACVC,IAAK,aACL7G,QAAS,GACT6C,GAAI,CAACV,GAAiBC,KAGXuF,GAAmC,CAC9CzM,GAAI,+BACJ0L,SAAU,WACVC,IAAK,aACL7G,QAAS,CAACmC,IACVO,GAAI,CAACP,GAAiBC,IACtBQ,GAAI,CAACT,GAAiBC,GAAgBC,GAAaC,GAAkBC,KCpIjEvH,GAAa,CAAEiC,MAAO,kBACtBgE,GAAa,CAAEhE,MAAO,qBACtBkE,GAAa,CAAElE,MAAO,uFACtBmE,GAAa,CACjBnE,MAAO,sDACP2K,aAAc,OAEVvG,GAAa,CAAEpE,MAAO,2CACtBqE,GAAa,CAAErE,MAAO,qEACtBsE,GAAa,CAAEtE,MAAO,2EACtBuE,GAAa,CAAEvE,MAAO,6CACtBwE,GAAa,CAAExE,MAAO,8BACtByE,GAAc,CAAEzE,MAAO,gFACvB0E,IAA2B1G,EAAAA,EAAAA,GAAoB,OAAQ,CAAEgC,MAAO,yBAA2B,WAAY,GACvG2E,GAAc,CAClBzD,KAAM,SACNlB,MAAO,sMAEH4E,GAAc,CAAE5E,MAAO,0BACvB6E,GAAc,CAAE7E,MAAO,mCACvB8E,GAAc,CAAEhF,IAAK,GACrBiF,GAAc,CAAEjF,IAAK,GACrBkF,GAAc,CAAElF,IAAK,GACrB8K,GAAc,CAAE9K,IAAK,GACrB+K,GAAc,CAAE/K,IAAK,GACrBgL,GAAc,CAAEhL,IAAK,GACrBiL,GAAc,CAAEjL,IAAK,GACrBkL,GAAc,CAAElL,IAAK,GACrBmL,GAAc,CAAC,MAAO,OACtBC,GAAc,CAAEjN,GAAI,WACpBkN,IAA2BnN,EAAAA,EAAAA,GAAoB,KAAM,KAAM,kBAAmB,GAC9EoN,IAA2BpN,EAAAA,EAAAA,GAAoB,MAAO,CAC1DqN,QAAS,OACTrL,MAAO,sEACPS,IAAK6K,EACLrC,IAAK,mCACLrF,MAAO,MACPC,OAAQ,OACP,MAAO,GACJ0H,IAA2BvN,EAAAA,EAAAA,GAAoB,OAAQ,KAAM,eAAgB,GAC7EwN,GAAc,CAAC,MAAO,OACtBC,IAA2BzN,EAAAA,EAAAA,GAAoB,SAAU,KAAM,4BAA6B,GAC5F0N,GAAc,CAAE5L,IAAK,GACrB6L,IAA2B3N,EAAAA,EAAAA,GAAoB,OAAQ,KAAM,YAAa,GAC1E4N,IAA2B5N,EAAAA,EAAAA,GAAoB,OAAQ,KAAM,mBAAoB,GACjF6N,GAAc,CAAE5N,GAAI,OACpB6N,IAA2B9N,EAAAA,EAAAA,GAAoB,KAAM,KAAM,YAAa,GACxE+N,IAA2B/N,EAAAA,EAAAA,GAAoB,MAAO,CAC1DqN,QAAS,OACTrL,MAAO,sEACPS,IAAKuL,EACL/C,IAAK,2BACLrF,MAAO,OACPC,OAAQ,OACP,MAAO,GACJoI,IAA2BjO,EAAAA,EAAAA,GAAoB,OAAQ,KAAM,eAAgB,GAC7EkO,GAAc,CAAC,MAAO,OACtBC,IAA2BnO,EAAAA,EAAAA,GAAoB,SAAU,KAAM,kBAAmB,GAClFoO,GAAc,CAAEnO,GAAI,SACpBoO,IAA2BrO,EAAAA,EAAAA,GAAoB,KAAM,KAAM,YAAa,GACxEsO,IAA2BtO,EAAAA,EAAAA,GAAoB,MAAO,CAC1DqN,QAAS,OACTrL,MAAO,sEACPS,IAAK8L,EACLtD,IAAK,2BACLrF,MAAO,MACPC,OAAQ,OACP,MAAO,GACJ2I,IAA2BxO,EAAAA,EAAAA,GAAoB,OAAQ,KAAM,eAAgB,GAC7EyO,GAAc,CAAC,MAAO,OACtBC,IAA2B1O,EAAAA,EAAAA,GAAoB,SAAU,KAAM,kBAAmB,GAClF2O,GAAc,CAAC,MAAO,OACtBC,GAAc,CAAC,MAAO,OACtBC,IAA2BC,EAAAA,EAAAA,IAAmB,orEAA6sE,GAC3vEC,IAA2B/O,EAAAA,EAAAA,GAAoB,KAAM,CAAEC,GAAI,eAAiB,oCAAqC,GAiBvH,QAA4BC,EAAAA,EAAAA,IAAiB,CAC3CC,OAAQ,mBACRuE,MAAO,CACPsK,iBAAkB,CAChB9L,KAAM0B,OACNC,UAAU,IAGZzE,MAAMC,GAER,MAAMqE,EAAQrE,EAIR4O,EAAgD,CACpD,UACA,MACA,SAGIC,GAASC,EAAAA,EAAAA,MAET7K,GAAa3C,EAAAA,EAAAA,KAAS,IAAM0C,EAAcK,EAAMsK,oBAEtD,SAASI,EAAWzK,GACa,QAA3BL,EAAW+E,MAAMlF,MACnB+K,EAAOG,KAAK,aAAYhQ,EAAAA,EAAAA,IAAoBsF,YAAiBL,EAAW+E,MAAMlF,UAE9E+K,EAAOG,KAAK,aAAYhQ,EAAAA,EAAAA,IAAoBsF,kBAAuBL,EAAW+E,MAAMlF,SAExF,CAEA,MAAO,CAACnD,EAAUC,KAChB,MAAMkE,GAAyB7B,EAAAA,EAAAA,IAAkB,eAEjD,OAAQpC,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB0B,EAAAA,GAAW,KAAM,GACxDrC,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAaC,EAAAA,GAAW,CAAEC,GAAI,QAAU,EACrDmC,EAAAA,EAAAA,IAAa8L,GAAAA,EAAU,CACrBlK,MAAO,IAAGxD,EAAAA,EAAAA,IAAO0C,GAAYJ,eAC7BqL,YAAa,SAAQ3N,EAAAA,EAAAA,IAAO0C,GAAYY,YAAWtD,EAAAA,EAAAA,IAAO0C,GAAYJ,+DAA8DtC,EAAAA,EAAAA,IAAO0C,GAAYJ,gDACvJsL,IAAK,4BAA2B5N,EAAAA,EAAAA,IAAO0C,GAAYH,iBAClD,KAAM,EAAG,CAAC,QAAS,cAAe,YAEvCX,EAAAA,EAAAA,IAAaiM,EAAAA,EAAiB,CAC5B,uBAAyBC,GAAkB,YAAYA,kBAA6B9N,EAAAA,EAAAA,IAAO0C,GAAYH,SACvG,qBAAsB,SAAQvC,EAAAA,EAAAA,IAAO0C,GAAYJ,iBAChD,KAAM,EAAG,CAAC,uBAAwB,wBACrClE,EAAAA,EAAAA,GAAoB,MAAOD,GAAY,EACrCC,EAAAA,EAAAA,GAAoB,OAAQgG,GAAY,EACtChG,EAAAA,EAAAA,GAAoB,MAAOkG,GAAY,EACrClG,EAAAA,EAAAA,GAAoB,OAAQmG,GAAY,EACtCnG,EAAAA,EAAAA,GAAoB,KAAMoG,IAAYX,EAAAA,EAAAA,KAAiB7D,EAAAA,EAAAA,IAAO0C,GAAYJ,OAAS,UAAW,IAC9FV,EAAAA,EAAAA,IAAamM,EAAAA,EAAc,CACzB3N,MAAO,iCACP4N,UAAW,GACXC,UAAW,GACXC,WAAY,CAAC,MAAO,MAAO,SAASpR,UAASkD,EAAAA,EAAAA,IAAO0C,GAAYH,OAAS,SAAQvC,EAAAA,EAAAA,IAAO0C,GAAYJ,eAAiB,SAAQtC,EAAAA,EAAAA,IAAO0C,GAAYJ,gBAChJ,mBAAiD,SAA7BtC,EAAAA,EAAAA,IAAO0C,GAAYJ,MAAkB,4BAA8B,cACvF6L,YAAaX,GACZ,KAAM,EAAG,CAAC,aAAc,sBAC3BpP,EAAAA,EAAAA,GAAoB,IAAKqG,GAAY,EACnCb,EAAAA,EAAAA,IAAiB,aAAcC,EAAAA,EAAAA,KAAiB7D,EAAAA,EAAAA,IAAO0C,GAAYY,QAAU,4CAA6CO,EAAAA,EAAAA,KAAiB7D,EAAAA,EAAAA,IAAO0C,GAAYJ,OAAS,8BAA+B,IACtMV,EAAAA,EAAAA,IAAawM,EAAgB,CAC3BlL,MAAMlD,EAAAA,EAAAA,IAAO0C,GAAYJ,MACzBS,QAAQ/C,EAAAA,EAAAA,IAAO0C,GAAY2L,eAAe,GAC1CjO,MAAO,qDACN,KAAM,EAAG,CAAC,OAAQ,YACrBwD,EAAAA,EAAAA,IAAiB,SACjBhC,EAAAA,EAAAA,IAAawM,EAAgB,CAC3BlL,MAAMlD,EAAAA,EAAAA,IAAO0C,GAAYJ,MACzBS,QAAQ/C,EAAAA,EAAAA,IAAO0C,GAAY2L,eAAe,GAC1CjO,MAAO,qDACN,KAAM,EAAG,CAAC,OAAQ,YACrBwD,EAAAA,EAAAA,IAAiB,mBAAoBC,EAAAA,EAAAA,KAAiB7D,EAAAA,EAAAA,IAAO0C,GAAYJ,OAAS,aAAc,MAElGV,EAAAA,EAAAA,IAAa0M,GAAQ,CACnBlO,MAAO,eACP+H,QAAQnI,EAAAA,EAAAA,IAAOuK,KACd,KAAM,EAAG,CAAC,gBAGjBnM,EAAAA,EAAAA,GAAoB,MAAOsG,GAAY,EACrCtG,EAAAA,EAAAA,GAAoB,MAAOuG,GAAY,EACrCvG,EAAAA,EAAAA,GAAoB,KAAMwG,GAAY,kBAAmBf,EAAAA,EAAAA,KAAiB7D,EAAAA,EAAAA,IAAO0C,GAAYJ,OAAS,WAAY,IAClHlE,EAAAA,EAAAA,GAAoB,OAAQyG,GAAa,CACvCC,KACCxF,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB0B,EAAAA,GAAW,MAAMqG,EAAAA,EAAAA,IAAYqF,GAAYkB,IACnE3M,EAAAA,EAAAA,IAAa2B,EAAwB,CAC1CrD,IAAKqO,EACL9O,GAAI,IAAI8O,EAASzQ,gBACjBsC,MAAO,+BACN,CACD+C,SAASM,EAAAA,EAAAA,KAAS,IAAM,EACtBrF,EAAAA,EAAAA,GAAoB,SAAU2G,GAAa,EACzCnD,EAAAA,EAAAA,IAAa4M,GAAM,CACjBnJ,KAAMkJ,EACNnO,MAAO,QACN,KAAM,EAAG,CAAC,UACbhC,EAAAA,EAAAA,GAAoB,OAAQ4G,IAAanB,EAAAA,EAAAA,IAAiB0K,GAAW,QAGzEzK,EAAG,GACF,KAAM,CAAC,SACR,UAGR1F,EAAAA,EAAAA,GAAoB,MAAO6G,GAAa,EACtC7G,EAAAA,EAAAA,GAAoB,MAAO,KAAM,CACD,OAA7B4B,EAAAA,EAAAA,IAAO0C,GAAYJ,QACfhD,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,IAAKiF,GAAa,EACnDtB,EAAAA,EAAAA,IAAiB,mbACoBsD,KAApClH,EAAAA,EAAAA,IAAO0C,GAAY+L,eACfnP,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAagE,EAAwB,CAClDrD,IAAK,EACLT,IAAIO,EAAAA,EAAAA,IAAO0C,GAAY+L,cACtB,CACDtL,SAASM,EAAAA,EAAAA,KAAS,IAAM,EACtBG,EAAAA,EAAAA,IAAiB,kCAEnBE,EAAG,GACF,EAAG,CAAC,SACPzD,EAAAA,EAAAA,IAAoB,IAAI,MAEA,UAA7BL,EAAAA,EAAAA,IAAO0C,GAAYJ,QACjBhD,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,IAAKkF,GAAa,EACnDvB,EAAAA,EAAAA,IAAiB,mbACoBsD,KAApClH,EAAAA,EAAAA,IAAO0C,GAAY+L,eACfnP,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAagE,EAAwB,CAClDrD,IAAK,EACLT,IAAIO,EAAAA,EAAAA,IAAO0C,GAAY+L,cACtB,CACDtL,SAASM,EAAAA,EAAAA,KAAS,IAAM,EACtBG,EAAAA,EAAAA,IAAiB,qCAEnBE,EAAG,GACF,EAAG,CAAC,SACPzD,EAAAA,EAAAA,IAAoB,IAAI,MAEA,WAA7BL,EAAAA,EAAAA,IAAO0C,GAAYJ,QACjBhD,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,IAAKmF,GAAa,EACnDxB,EAAAA,EAAAA,IAAiB,uVACoBsD,KAApClH,EAAAA,EAAAA,IAAO0C,GAAY+L,eACfnP,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAagE,EAAwB,CAClDrD,IAAK,EACLT,IAAIO,EAAAA,EAAAA,IAAO0C,GAAY+L,cACtB,CACDtL,SAASM,EAAAA,EAAAA,KAAS,IAAM,EACtBG,EAAAA,EAAAA,IAAiB,sCAEnBE,EAAG,GACF,EAAG,CAAC,SACPzD,EAAAA,EAAAA,IAAoB,IAAI,MAEA,QAA7BL,EAAAA,EAAAA,IAAO0C,GAAYJ,QACjBhD,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,IAAK+K,GAAa,EACnDpH,EAAAA,EAAAA,IAAiB,iXACoBsD,KAApClH,EAAAA,EAAAA,IAAO0C,GAAY+L,eACfnP,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAagE,EAAwB,CAClDrD,IAAK,EACLT,IAAIO,EAAAA,EAAAA,IAAO0C,GAAY+L,cACtB,CACDtL,SAASM,EAAAA,EAAAA,KAAS,IAAM,EACtBG,EAAAA,EAAAA,IAAiB,mCAEnBE,EAAG,GACF,EAAG,CAAC,SACPzD,EAAAA,EAAAA,IAAoB,IAAI,MAEA,QAA7BL,EAAAA,EAAAA,IAAO0C,GAAYJ,QACjBhD,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,IAAKgL,GAAa,EACnDrH,EAAAA,EAAAA,IAAiB,+bACoBsD,KAApClH,EAAAA,EAAAA,IAAO0C,GAAY+L,eACfnP,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAagE,EAAwB,CAClDrD,IAAK,EACLT,IAAIO,EAAAA,EAAAA,IAAO0C,GAAY+L,cACtB,CACDtL,SAASM,EAAAA,EAAAA,KAAS,IAAM,EACtBG,EAAAA,EAAAA,IAAiB,mCAEnBE,EAAG,GACF,EAAG,CAAC,SACPzD,EAAAA,EAAAA,IAAoB,IAAI,MAEA,SAA7BL,EAAAA,EAAAA,IAAO0C,GAAYJ,QACjBhD,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,IAAKiL,GAAa,EACnDtH,EAAAA,EAAAA,IAAiB,ugBACoBsD,KAApClH,EAAAA,EAAAA,IAAO0C,GAAY+L,eACfnP,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAagE,EAAwB,CAClDrD,IAAK,EACLT,IAAIO,EAAAA,EAAAA,IAAO0C,GAAY+L,cACtB,CACDtL,SAASM,EAAAA,EAAAA,KAAS,IAAM,EACtBG,EAAAA,EAAAA,IAAiB,iCAEnBE,EAAG,GACF,EAAG,CAAC,SACPzD,EAAAA,EAAAA,IAAoB,IAAI,MAEA,SAA7BL,EAAAA,EAAAA,IAAO0C,GAAYJ,QACjBhD,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,IAAKkL,GAAa,EACnDvH,EAAAA,EAAAA,IAAiB,+VACoBsD,KAApClH,EAAAA,EAAAA,IAAO0C,GAAY+L,eACfnP,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAagE,EAAwB,CAClDrD,IAAK,EACLT,IAAIO,EAAAA,EAAAA,IAAO0C,GAAY+L,cACtB,CACDtL,SAASM,EAAAA,EAAAA,KAAS,IAAM,EACtBG,EAAAA,EAAAA,IAAiB,oCAEnBE,EAAG,GACF,EAAG,CAAC,SACPzD,EAAAA,EAAAA,IAAoB,IAAI,QAE7Bf,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,IAAKmL,GAAa,EACnDxH,EAAAA,EAAAA,KAAiBC,EAAAA,EAAAA,KAAiB7D,EAAAA,EAAAA,IAAO0C,GAAYJ,OAAS,wLAAyL,QAClN4E,KAApClH,EAAAA,EAAAA,IAAO0C,GAAY+L,eACfnP,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAagE,EAAwB,CAClDrD,IAAK,EACLT,IAAIO,EAAAA,EAAAA,IAAO0C,GAAY+L,cACtB,CACDtL,SAASM,EAAAA,EAAAA,KAAS,IAAM,EACtBG,EAAAA,EAAAA,IAAiB,qBAAsBC,EAAAA,EAAAA,KAAiB7D,EAAAA,EAAAA,IAAO0C,GAAYJ,OAAS,YAAa,MAEnGwB,EAAG,GACF,EAAG,CAAC,SACPzD,EAAAA,EAAAA,IAAoB,IAAI,OAE9CjC,EAAAA,EAAAA,GAAoB,IAAK,MAAMyF,EAAAA,EAAAA,KAAiB7D,EAAAA,EAAAA,IAAO0C,GAAYJ,OAAS,kEAAmEuB,EAAAA,EAAAA,KAAiB7D,EAAAA,EAAAA,IAAO0C,GAAYJ,OAAS,6HAA8HuB,EAAAA,EAAAA,KAAiB7D,EAAAA,EAAAA,IAAO0C,GAAYJ,OAAS,+EAAgF,MAEzblE,EAAAA,EAAAA,GAAoB,MAAO,CACzBgC,MAAO,yBACPS,IAAK,iCAAgCb,EAAAA,EAAAA,IAAO0C,GAAYgM,qBACxDrF,IAAK,wBAAuBrJ,EAAAA,EAAAA,IAAO0C,GAAYJ,sBAC9C,KAAM,EAAG+I,OAEdjN,EAAAA,EAAAA,GAAoB,KAAMkN,GAAa,kBAAmBzH,EAAAA,EAAAA,KAAiB7D,EAAAA,EAAAA,IAAO0C,GAAYJ,OAAS,sBAAuB,IAC7HtC,EAAAA,EAAAA,IAAO0C,GAAYiM,iBACfrP,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB0B,EAAAA,GAAW,CAAEzB,IAAK,GAAK,EACxD9B,EAAAA,EAAAA,GAAoB,IAAK,KAAM,iBAAkByF,EAAAA,EAAAA,KAAiB7D,EAAAA,EAAAA,IAAO0C,GAAYJ,OAAS,qEAAsE,IACpKlE,EAAAA,EAAAA,GAAoB,KAAM,KAAM,EAC9BA,EAAAA,EAAAA,GAAoB,KAAM,KAAM,EAC9BwF,EAAAA,EAAAA,IAAiB,WACjB2H,IACA3H,EAAAA,EAAAA,IAAiB,uBACjBxF,EAAAA,EAAAA,GAAoB,SAAU,KAAM,EAClCwD,EAAAA,EAAAA,IAAa4M,GAAM,CAAEnJ,KAAM,WAC3BzB,EAAAA,EAAAA,IAAiB,cACjBhC,EAAAA,EAAAA,IAAa4M,GAAM,CAAEnJ,KAAM,WAC3BzB,EAAAA,EAAAA,IAAiB,8BACjBhC,EAAAA,EAAAA,IAAa4M,GAAM,CAAEnJ,KAAM,UAC3BzB,EAAAA,EAAAA,IAAiB,cACjBhC,EAAAA,EAAAA,IAAa4M,GAAM,CAAEnJ,KAAM,WAC3BzB,EAAAA,EAAAA,IAAiB,YAEnBA,EAAAA,EAAAA,IAAiB,KACjB4H,MAEFpN,EAAAA,EAAAA,GAAoB,KAAM,KAAM,EAC9BwF,EAAAA,EAAAA,IAAiB,UACjBxF,EAAAA,EAAAA,GAAoB,SAAU,KAAM,EAClCwD,EAAAA,EAAAA,IAAa4M,GAAM,CAAEnJ,KAAM,UAC3BzB,EAAAA,EAAAA,OACAxF,EAAAA,EAAAA,GAAoB,OAAQ,KAAM,gBAAiByF,EAAAA,EAAAA,KAAiB7D,EAAAA,EAAAA,IAAO0C,GAAYgM,KAAO,eAAgB,MAEhH9K,EAAAA,EAAAA,IAAiB,cACjBxF,EAAAA,EAAAA,GAAoB,SAAU,KAAM,EAClCwD,EAAAA,EAAAA,IAAa4M,GAAM,CAAEnJ,KAAM,UAC3BzB,EAAAA,EAAAA,IAAiB,eAEnBA,EAAAA,EAAAA,IAAiB,gBAAiBC,EAAAA,EAAAA,KAAiB7D,EAAAA,EAAAA,IAAO0C,GAAYJ,OAAS,gBAAiB,GAChGqJ,IACA/H,EAAAA,EAAAA,IAAiB,MACjBxF,EAAAA,EAAAA,GAAoB,MAAO,CACzBqN,QAAS,OACTrL,MAAO,sEACPS,IAAK,iCAAgCb,EAAAA,EAAAA,IAAO0C,GAAYgM,yBACxDrF,IAAK,IAAGrJ,EAAAA,EAAAA,IAAO0C,GAAYJ,2BAC1B,KAAM,EAAGsJ,OAEdxN,EAAAA,EAAAA,GAAoB,KAAM,KAAM,EAC9BwF,EAAAA,EAAAA,IAAiB,QAASC,EAAAA,EAAAA,KAAiB7D,EAAAA,EAAAA,IAAO0C,GAAYJ,OAAS,iCAAkC,GACzGuJ,IACAjI,EAAAA,EAAAA,IAAiB,kBAGpB,OACFtE,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,IAAK6L,GAAa,EACnDlI,EAAAA,EAAAA,IAAiB,QAASC,EAAAA,EAAAA,KAAiB7D,EAAAA,EAAAA,IAAO0C,GAAYJ,OAAS,wDAAyD,GAChIyJ,IACAnI,EAAAA,EAAAA,IAAiB,uBACjBoI,IACApI,EAAAA,EAAAA,IAAiB,8GAA+GC,EAAAA,EAAAA,KAAiB7D,EAAAA,EAAAA,IAAO0C,GAAYJ,OAAS,qDAAsD,OAEzOlE,EAAAA,EAAAA,GAAoB,KAAM6N,GAAa,kBAAmBpI,EAAAA,EAAAA,KAAiB7D,EAAAA,EAAAA,IAAO0C,GAAYJ,OAAS,qBAAsB,IAC7HlE,EAAAA,EAAAA,GAAoB,IAAK,KAAM,iBAAkByF,EAAAA,EAAAA,KAAiB7D,EAAAA,EAAAA,IAAO0C,GAAYJ,OAAS,mEAAoE,IAClKlE,EAAAA,EAAAA,GAAoB,KAAM,KAAM,EAC9BA,EAAAA,EAAAA,GAAoB,KAAM,KAAM,EAC9BwF,EAAAA,EAAAA,IAAiB,WACjBsI,IACAtI,EAAAA,EAAAA,IAAiB,kBACjBxF,EAAAA,EAAAA,GAAoB,SAAU,KAAM,EAClCwD,EAAAA,EAAAA,IAAa4M,GAAM,CAAEnJ,KAAM,UAC3BzB,EAAAA,EAAAA,IAAiB,4BACjBhC,EAAAA,EAAAA,IAAa4M,GAAM,CAAEnJ,KAAM,UAC3BzB,EAAAA,EAAAA,IAAiB,uBACjBhC,EAAAA,EAAAA,IAAa4M,GAAM,CAAEnJ,KAAM,UAC3BzB,EAAAA,EAAAA,IAAiB,eAEnBA,EAAAA,EAAAA,IAAiB,KACjBuI,MAEF/N,EAAAA,EAAAA,GAAoB,KAAM,KAAM,EAC9BwF,EAAAA,EAAAA,IAAiB,UACjBxF,EAAAA,EAAAA,GAAoB,SAAU,KAAM,EAClCwD,EAAAA,EAAAA,IAAa4M,GAAM,CAAEnJ,KAAM,UAC3BzB,EAAAA,EAAAA,OACAxF,EAAAA,EAAAA,GAAoB,OAAQ,KAAM,oBAAqByF,EAAAA,EAAAA,KAAiB7D,EAAAA,EAAAA,IAAO0C,GAAYgM,KAAM,MAEnG9K,EAAAA,EAAAA,IAAiB,cACjBxF,EAAAA,EAAAA,GAAoB,SAAU,KAAM,EAClCwD,EAAAA,EAAAA,IAAa4M,GAAM,CAAEnJ,KAAM,UAC3BzB,EAAAA,EAAAA,IAAiB,eAEnBA,EAAAA,EAAAA,IAAiB,gBAAiBC,EAAAA,EAAAA,KAAiB7D,EAAAA,EAAAA,IAAO0C,GAAYJ,OAAS,gBAAiB,GAChG+J,IACAzI,EAAAA,EAAAA,IAAiB,MACjBxF,EAAAA,EAAAA,GAAoB,MAAO,CACzBqN,QAAS,OACTrL,MAAO,sEACPS,IAAK,iCAAgCb,EAAAA,EAAAA,IAAO0C,GAAYgM,qBACxDrF,IAAK,IAAGrJ,EAAAA,EAAAA,IAAO0C,GAAYJ,yBAC1B,KAAM,EAAGgK,OAEdlO,EAAAA,EAAAA,GAAoB,KAAM,KAAM,EAC9BwF,EAAAA,EAAAA,IAAiB,QAASC,EAAAA,EAAAA,KAAiB7D,EAAAA,EAAAA,IAAO0C,GAAYJ,OAAS,iCAAkC,GACzGiK,IACA3I,EAAAA,EAAAA,IAAiB,kBAGrBxF,EAAAA,EAAAA,GAAoB,KAAMoO,GAAa,kBAAmB3I,EAAAA,EAAAA,KAAiB7D,EAAAA,EAAAA,IAAO0C,GAAYJ,OAAS,oBAAqB,IAC5HlE,EAAAA,EAAAA,GAAoB,IAAK,KAAM,iBAAkByF,EAAAA,EAAAA,KAAiB7D,EAAAA,EAAAA,IAAO0C,GAAYJ,OAAS,mEAAoE,IAClKlE,EAAAA,EAAAA,GAAoB,KAAM,KAAM,EAC9BA,EAAAA,EAAAA,GAAoB,KAAM,KAAM,EAC9BwF,EAAAA,EAAAA,IAAiB,WACjB6I,IACA7I,EAAAA,EAAAA,IAAiB,kBACjBxF,EAAAA,EAAAA,GAAoB,SAAU,KAAM,EAClCwD,EAAAA,EAAAA,IAAa4M,GAAM,CAAEnJ,KAAM,UAC3BzB,EAAAA,EAAAA,IAAiB,gBACjBhC,EAAAA,EAAAA,IAAa4M,GAAM,CAAEnJ,KAAM,UAC3BzB,EAAAA,EAAAA,IAAiB,mBACjBhC,EAAAA,EAAAA,IAAa4M,GAAM,CAAEnJ,KAAM,UAC3BzB,EAAAA,EAAAA,IAAiB,eAEnBA,EAAAA,EAAAA,IAAiB,KACjB8I,MAEFtO,EAAAA,EAAAA,GAAoB,KAAM,KAAM,EAC9BwF,EAAAA,EAAAA,IAAiB,UACjBxF,EAAAA,EAAAA,GAAoB,SAAU,KAAM,EAClCwD,EAAAA,EAAAA,IAAa4M,GAAM,CAAEnJ,KAAM,UAC3BzB,EAAAA,EAAAA,OACAxF,EAAAA,EAAAA,GAAoB,OAAQ,KAAM,oBAAqByF,EAAAA,EAAAA,KAAiB7D,EAAAA,EAAAA,IAAO0C,GAAYgM,KAAM,MAEnG9K,EAAAA,EAAAA,IAAiB,cACjBxF,EAAAA,EAAAA,GAAoB,SAAU,KAAM,EAClCwD,EAAAA,EAAAA,IAAa4M,GAAM,CAAEnJ,KAAM,UAC3BzB,EAAAA,EAAAA,IAAiB,eAEnBA,EAAAA,EAAAA,IAAiB,gBAAiBC,EAAAA,EAAAA,KAAiB7D,EAAAA,EAAAA,IAAO0C,GAAYJ,OAAS,gBAAiB,GAChGsK,IACAhJ,EAAAA,EAAAA,IAAiB,MACjBxF,EAAAA,EAAAA,GAAoB,MAAO,CACzBqN,QAAS,OACTrL,MAAO,sEACPS,IAAK,iCAAgCb,EAAAA,EAAAA,IAAO0C,GAAYgM,uBACxDrF,IAAK,IAAGrJ,EAAAA,EAAAA,IAAO0C,GAAYJ,yBAC1B,KAAM,EAAGuK,OAEdzO,EAAAA,EAAAA,GAAoB,KAAM,KAAM,EAC9BwF,EAAAA,EAAAA,IAAiB,QAASC,EAAAA,EAAAA,KAAiB7D,EAAAA,EAAAA,IAAO0C,GAAYJ,OAAS,iCAAkC,GACzGwK,IACAlJ,EAAAA,EAAAA,IAAiB,kBAGrBxF,EAAAA,EAAAA,GAAoB,KAAM,KAAM,gBAAiByF,EAAAA,EAAAA,KAAiB7D,EAAAA,EAAAA,IAAO0C,GAAYJ,OAAS,WAAY,IAC1GlE,EAAAA,EAAAA,GAAoB,IAAK,KAAM,iBAAkByF,EAAAA,EAAAA,KAAiB7D,EAAAA,EAAAA,IAAO0C,GAAYJ,OAAS,4CAA6C,IAC3IlE,EAAAA,EAAAA,GAAoB,KAAM,KAAM,EAC9BA,EAAAA,EAAAA,GAAoB,KAAM,KAAM,EAC9BwF,EAAAA,EAAAA,IAAiB,cACjBhC,EAAAA,EAAAA,IAAa2B,EAAwB,CACnC9D,GAAI,KAAIO,EAAAA,EAAAA,IAAO0C,GAAYH,iBAC1B,CACDY,SAASM,EAAAA,EAAAA,KAAS,IAAM,EACtBG,EAAAA,EAAAA,KAAiBC,EAAAA,EAAAA,KAAiB7D,EAAAA,EAAAA,IAAO0C,GAAYJ,OAAS,eAAgB,MAEhFwB,EAAG,GACF,EAAG,CAAC,QACPF,EAAAA,EAAAA,IAAiB,MACjBxF,EAAAA,EAAAA,GAAoB,MAAO,CACzBqN,QAAS,OACTrL,MAAO,sEACPS,IAAK,iCAAgCb,EAAAA,EAAAA,IAAO0C,GAAYH,wBACxD8G,IAAK,aAAYrJ,EAAAA,EAAAA,IAAO0C,GAAYJ,qBACnC,KAAM,EAAGyK,OAEd3O,EAAAA,EAAAA,GAAoB,KAAM,KAAM,EAC9BwF,EAAAA,EAAAA,IAAiB,mCACjBxF,EAAAA,EAAAA,GAAoB,SAAU,KAAM,EAClCwD,EAAAA,EAAAA,IAAa4M,GAAM,CAAEnJ,KAAM,UAC3BzB,EAAAA,EAAAA,IAAiB,eAEnBA,EAAAA,EAAAA,IAAiB,MACjBxF,EAAAA,EAAAA,GAAoB,MAAO,CACzBqN,QAAS,OACTrL,MAAO,sEACPS,IAAK,iCAAgCb,EAAAA,EAAAA,IAAO0C,GAAYH,4BACxD8G,IAAK,gBAAerJ,EAAAA,EAAAA,IAAO0C,GAAYJ,iBACtC,KAAM,EAAG0K,OAEd5O,EAAAA,EAAAA,GAAoB,KAAM,KAAM,4BAA6ByF,EAAAA,EAAAA,KAAiB7D,EAAAA,EAAAA,IAAO0C,GAAYJ,OAAS,kDAAmD,KAEjI,WAA7BtC,EAAAA,EAAAA,IAAO0C,GAAYJ,QACfhD,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB0B,EAAAA,GAAW,CAAEzB,IAAK,GAAK,CACxD+M,IACA7O,EAAAA,EAAAA,GAAoB,IAAK,KAAM,EAC7BwD,EAAAA,EAAAA,IAAa2B,EAAwB,CAAE9D,GAAI,qCAAuC,CAChF0D,SAASM,EAAAA,EAAAA,KAAS,IAAM,EACtBG,EAAAA,EAAAA,IAAiB,sCAEnBE,EAAG,OAGN,MACHzD,EAAAA,EAAAA,IAAoB,IAAI,GAC5B8M,IACA/O,EAAAA,EAAAA,GAAoB,IAAK,KAAM,EAC7BwF,EAAAA,EAAAA,IAAiB,mDAAoDC,EAAAA,EAAAA,KAAiB7D,EAAAA,EAAAA,IAAO0C,GAAYJ,OAAS,qKAAsK,IACxRV,EAAAA,EAAAA,IAAa2B,EAAwB,CAAE9D,GAAI,KAAO,CAChD0D,SAASM,EAAAA,EAAAA,KAAS,IAAM,EACtBG,EAAAA,EAAAA,IAAiB,eAEnBE,EAAG,KAELF,EAAAA,EAAAA,IAAiB,gGAEnBxF,EAAAA,EAAAA,GAAoB,KAAM,KAAM,GAC7BkB,EAAAA,EAAAA,KAAW,IAAOW,EAAAA,EAAAA,IAAoB0B,EAAAA,GAAW,MAAMqG,EAAAA,EAAAA,KAAYhI,EAAAA,EAAAA,IAAOkC,GAAasG,QAAQoG,GAAUA,EAAMtM,SAAUtC,EAAAA,EAAAA,IAAO0C,GAAYJ,SAAQ,CAACuM,EAAiB3G,MAC7J5I,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,KAAM,CAAEC,IAAKgI,GAAS,EAC9DtG,EAAAA,EAAAA,IAAa2B,EAAwB,CACnC9D,GAAI,IAAIoP,EAAgBtM,iBACvB,CACDY,SAASM,EAAAA,EAAAA,KAAS,IAAM,EACtBG,EAAAA,EAAAA,KAAiBC,EAAAA,EAAAA,IAAiBgL,EAAgBvM,OAAS,UAAW,MAExEwB,EAAG,GACF,KAAM,CAAC,QACVF,EAAAA,EAAAA,IAAiB,OAAQC,EAAAA,EAAAA,IAAiBgL,EAAgBlB,aAAc,QAExE,eAKZ/L,EAAAA,EAAAA,IAAakN,EAAAA,IACZ,GAAG,CAER,ICljBA,MAAM,GAAc,GAEpB,U,iCCFA,MAAM3Q,IAA0BC,EAAAA,EAAAA,GAAoB,OAAQ,CAAEgC,MAAO,qDAAuD,YAAa,GACnIgE,IAA0BhG,EAAAA,EAAAA,GAAoB,OAAQ,CAAEgC,MAAO,qDAAuD,UAAW,GACjIkE,GAAa,CAAElE,MAAO,yCACtBmE,IAA0BnG,EAAAA,EAAAA,GAAoB,OAAQ,CAAEgC,MAAO,qDAAuD,aAAc,GACpIoE,GAAa,CAAEpE,MAAO,yCACtBqE,IAA0BrG,EAAAA,EAAAA,GAAoB,OAAQ,CAAEgC,MAAO,qDAAuD,cAAe,GACrIsE,GAAa,CAAEtE,MAAO,yCAM5B,QAA4B9B,EAAAA,EAAAA,IAAiB,CAC3CC,OAAQ,aACRuE,MAAO,CACPiM,QAAS,CACPzN,KAAM8G,OACNnF,UAAU,IAGZzE,MAAMC,GAIR,SAASuQ,EAAKC,EAA4BC,EAAyB3H,GACjE,MAAM4H,EAAW5F,KAAK6F,OAAOH,EAAI5M,IAAIkF,IAC/B8H,EAAU9F,KAAKC,MAAM2F,EAAW,GAAK,EACrCG,EAAe/H,EAAO2H,GACtBK,EAAcF,EAAU9F,KAAKC,MAAM8F,EAAe,GACxD,MAAO,KAAKE,OAAOD,EACrB,CAEA,SAASE,EAAOC,GACd,OAAOA,EAAOA,OAAOC,KAAKpI,MAC5B,CAEA,SAASqI,EAAMF,GACb,OAAOA,EAAOA,OAAOG,IAAI3G,WAAW3B,MACtC,CAEA,SAASuI,EAAOJ,GACd,OAAOA,EAAOA,OAAOhN,WAAW6E,MAClC,CAEA,MAAO,CAACnI,EAAUC,MACRC,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB0B,EAAAA,GAAW,KAAM,CACzDxD,IACAC,EAAAA,EAAAA,GAAoB,MAAO,KAAM,SAAUyF,EAAAA,EAAAA,IAAiBpF,EAAQsQ,QAAQgB,MAAMC,OAAOjN,QAAUtE,EAAQsQ,QAAQgB,MAAMC,OAAOC,IAAM,KAAMpM,EAAAA,EAAAA,IAAiBpF,EAAQsQ,QAAQgB,MAAMhN,QAAU,KAAMc,EAAAA,EAAAA,IAAiBpF,EAAQsQ,QAAQgB,MAAMrN,YAAa,GACvP0B,IACAhG,EAAAA,EAAAA,GAAoB,MAAOkG,GAAY,GACpChF,EAAAA,EAAAA,KAAW,IAAOW,EAAAA,EAAAA,IAAoB0B,EAAAA,GAAW,MAAMqG,EAAAA,EAAAA,IAAYvJ,EAAQsQ,QAAQmB,SAASC,QAAQ,CAACT,EAAQxH,MACpG5I,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB0B,EAAAA,GAAW,CAAEzB,IAAKgI,GAAS,EACnEtE,EAAAA,EAAAA,KAAiBC,EAAAA,EAAAA,IAAiB6L,EAAOA,OAAOC,OAAQ9L,EAAAA,EAAAA,IAAiBmL,EAAKvQ,EAAQsQ,QAAQmB,SAASC,OAAQT,EAAQD,KAAW5L,EAAAA,EAAAA,IAAiB6L,EAAOA,OAAOG,MAAOhM,EAAAA,EAAAA,IAAiBmL,EAAKvQ,EAAQsQ,QAAQmB,SAASC,OAAQT,EAAQE,KAAU/L,EAAAA,EAAAA,IAAiB6L,EAAOA,OAAOhN,aAAcmB,EAAAA,EAAAA,IAAiBmL,EAAKvQ,EAAQsQ,QAAQmB,SAASC,OAAQT,EAAQI,KAAWjM,EAAAA,EAAAA,IAAiB6L,EAAOA,OAAOU,KAAO,KAAM,IACnZ,OACD,QAEN7L,IACAnG,EAAAA,EAAAA,GAAoB,MAAOoG,GAAY,GACpClF,EAAAA,EAAAA,KAAW,IAAOW,EAAAA,EAAAA,IAAoB0B,EAAAA,GAAW,MAAMqG,EAAAA,EAAAA,IAAYvJ,EAAQsQ,QAAQmB,SAASG,WAAW,CAACX,EAAQxH,MACvG5I,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB0B,EAAAA,GAAW,CAAEzB,IAAKgI,GAAS,EACnEtE,EAAAA,EAAAA,KAAiBC,EAAAA,EAAAA,IAAiB6L,EAAOA,OAAOC,OAAQ9L,EAAAA,EAAAA,IAAiBmL,EAAKvQ,EAAQsQ,QAAQmB,SAASG,UAAWX,EAAQD,KAAW5L,EAAAA,EAAAA,IAAiB6L,EAAOA,OAAOG,MAAOhM,EAAAA,EAAAA,IAAiBmL,EAAKvQ,EAAQsQ,QAAQmB,SAASG,UAAWX,EAAQE,KAAU/L,EAAAA,EAAAA,IAAiB6L,EAAOA,OAAOhN,aAAcmB,EAAAA,EAAAA,IAAiBmL,EAAKvQ,EAAQsQ,QAAQmB,SAASG,UAAWX,EAAQI,KAAWjM,EAAAA,EAAAA,IAAiB6L,EAAOA,OAAOU,KAAO,KAAM,IAC5Z,OACD,QAEN3L,IACArG,EAAAA,EAAAA,GAAoB,MAAOsG,GAAY,GACpCpF,EAAAA,EAAAA,KAAW,IAAOW,EAAAA,EAAAA,IAAoB0B,EAAAA,GAAW,MAAMqG,EAAAA,EAAAA,IAAYvJ,EAAQsQ,QAAQmB,SAASI,YAAY,CAACZ,EAAQxH,MACxG5I,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB0B,EAAAA,GAAW,CAAEzB,IAAKgI,GAAS,EACnEtE,EAAAA,EAAAA,KAAiBC,EAAAA,EAAAA,IAAiB6L,EAAOA,OAAOC,OAAQ9L,EAAAA,EAAAA,IAAiBmL,EAAKvQ,EAAQsQ,QAAQmB,SAASI,WAAYZ,EAAQD,KAAW5L,EAAAA,EAAAA,IAAiB6L,EAAOA,OAAOG,MAAOhM,EAAAA,EAAAA,IAAiBmL,EAAKvQ,EAAQsQ,QAAQmB,SAASI,WAAYZ,EAAQE,KAAU/L,EAAAA,EAAAA,IAAiB6L,EAAOA,OAAOhN,aAAcmB,EAAAA,EAAAA,IAAiBmL,EAAKvQ,EAAQsQ,QAAQmB,SAASI,WAAYZ,EAAQI,KAAWjM,EAAAA,EAAAA,IAAiB6L,EAAOA,OAAOU,KAAO,KAAM,IAC/Z,OACD,SAEL,IAEL,IC1EA,MAAM,GAAc,GAEpB,UCFA,MAAMjS,GAAa,CAAC,SACdiG,GAAa,CACjBkD,IAAK,WACLtD,MAAO,MACPC,OAAQ,MACRE,QAAS,YACT/D,MAAO,yBACP8D,KAAM,eACNH,MAAO,6BACP,cAAe,UACf,iBAAkB,MAClBP,MAAO,QAEHc,IAA0BlG,EAAAA,EAAAA,GAAoB,OAAQ,CAC1D,YAAa,UACbiG,EAAG,4JACF,MAAO,GACJE,IAA0BnG,EAAAA,EAAAA,GAAoB,OAAQ,CAC1D,YAAa,UACbiG,EAAG,wLACF,MAAO,GACJG,GAAa,CACjBF,GACAC,IAEIE,GAAa,CACjB6C,IAAK,aACLtD,MAAO,MACPC,OAAQ,MACRE,QAAS,YACT/D,MAAO,+BACP8D,KAAM,eACNH,MAAO,6BACP,iBAAkB,MAClBP,MAAO,WAEHkB,IAA0BtG,EAAAA,EAAAA,GAAoB,OAAQ,CAC1D,YAAa,UACbiG,EAAG,4JACF,MAAO,GACJM,IAA0BvG,EAAAA,EAAAA,GAAoB,OAAQ,CAC1D,YAAa,UACbiG,EAAG,oTACF,MAAO,GACJO,GAAa,CACjBF,GACAC,IAMF,QAA4BrG,EAAAA,EAAAA,IAAiB,CAC3CC,OAAQ,gBACRuE,MAAO,CACPyN,QAAS,CACPjP,KAAM0B,OACNC,UAAU,IAGZzE,MAAMC,GAIR,MAAM+R,GAAQlJ,EAAAA,EAAAA,IAA6B,MACrCmJ,GAAkBnJ,EAAAA,EAAAA,KAAI,GAE5B,SAASoJ,IACHF,EAAM/I,QACR+I,EAAM/I,MAAMkJ,aAAa,OAAQ,QACjCH,EAAM/I,MAAMmJ,SACZC,SAASC,YAAY,QACrBN,EAAM/I,MAAMsJ,OACZP,EAAM/I,MAAMkJ,aAAa,OAAQ,UAEjCF,EAAgBhJ,OAAQ,EACxB9G,YAAW,KAAQ8P,EAAgBhJ,OAAQ,CAAK,GAAK,KAEzD,CAEA,MAAO,CAACrI,EAAUC,MACRC,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,OAAQ,CAChDE,QAASuQ,EACTtQ,MAAO,6BACN,EACDhC,EAAAA,EAAAA,GAAoB,QAAS,CAC3BkD,KAAM,SACNmG,MAAOhJ,EAAQ8R,QACfS,QAAS,QACT1J,IAAKkJ,GACJ,KAAM,EAAGrS,KACZ8S,EAAAA,EAAAA,MAAiB3R,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,MAAOmE,GAAYI,GAAY,MAAO,CACvF,CAAC0M,EAAAA,IAAST,EAAgBhJ,UAE5BwJ,EAAAA,EAAAA,MAAiB3R,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,MAAOwE,GAAYG,GAAY,MAAO,CACvF,CAACsM,EAAAA,GAAQT,EAAgBhJ,WAI/B,ICnGA,MAAM,GAAc,GAEpB,UCCA,IAA4BnJ,EAAAA,EAAAA,IAAiB,CAC3CC,OAAQ,oBACRuE,MAAO,CACPqO,QAAS,CACP7P,KAAM8P,OACNnO,UAAU,IAGZzE,MAAMC,GAER,MAAMqE,EAAQrE,EAIR4S,GAAiBtR,EAAAA,EAAAA,KAAS,KAC9B,MAAMuR,EAAI/H,KAAKC,MAAM1G,EAAMqO,QAAU,MAC/BI,EAAIhI,KAAKC,MAAM1G,EAAMqO,QAAU,IAAM,GACrCrI,EAAIhG,EAAMqO,QAAU,GACpBK,EAAKF,EAAI,EAAI,CAAC,GAAGA,MAAQ,GACzBG,EAAKF,EAAI,EAAI,CAAC,GAAGA,MAAQ,GACzBG,EAAK5I,EAAI,EAAI,CAAC,GAAGA,MAAQ,GAC/B,MAAO,IAAI0I,KAAOC,KAAOC,GAAIlP,KAAK,IAAI,IAGxC,MAAO,CAACpD,EAAUC,KACTwE,EAAAA,EAAAA,KAAiB7D,EAAAA,EAAAA,IAAOqR,GAEjC,IC9BA,MAAM,GAAc,GAEpB,UCFA,MAAMlT,GAAa,CACjB+B,IAAK,EACLE,MAAO,0GAEHgE,GAAa,CAAElE,IAAK,GAK1B,QAA4B5B,EAAAA,EAAAA,IAAiB,CAC3CC,OAAQ,kBACRuE,MAAO,CACP6O,MAAO,CACLrQ,KAAM2F,MACNhE,UAAU,IAGZzE,MAAMC,GAIR,MAAO,CAACW,EAAUC,IACRZ,EAAQkT,MAAMpK,OAAS,IAC1BjI,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,OAAQ9B,GAAY,EACrDyF,EAAAA,EAAAA,IAAiB,kBAChBtE,EAAAA,EAAAA,KAAW,IAAOW,EAAAA,EAAAA,IAAoB0B,EAAAA,GAAW,MAAMqG,EAAAA,EAAAA,IAAYvJ,EAAQkT,OAAO,CAACC,EAAO1J,MACjF5I,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,OAAQ,CAAEC,IAAKgI,GAAS,CACrD,IAAVA,IACI5I,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,OAAQmE,GAAY,SACvD/D,EAAAA,EAAAA,IAAoB,IAAI,IAC5BuB,EAAAA,EAAAA,IAAawM,EAAgB,CAC3BrL,OAAQ6O,EACRxR,MAAO,qDACN,KAAM,EAAG,CAAC,gBAEb,UAENC,EAAAA,EAAAA,IAAoB,IAAI,EAE9B,ICvCA,MAAM,GAAc,GAEpB,UCFA,MAAMlC,GAAa,CAAE+B,IAAK,GACpBkE,IAA0BhG,EAAAA,EAAAA,GAAoB,WAAY,KAAM,EACvDA,EAAAA,EAAAA,GAAoB,MAAO,CAAEgC,MAAO,WACpChC,EAAAA,EAAAA,GAAoB,MAAO,CAAEgC,MAAO,YAC/C,GACEkE,GAAa,CAAElE,MAAO,wCACtBmE,GAAa,CACjBsN,MAAO,MACPzR,MAAO,sBAEHoE,IAA0BpG,EAAAA,EAAAA,GAAoB,KAAM,CACxDyT,MAAO,MACPzR,MAAO,sBACN,iBAAkB,GACfqE,GAAa,CAAErE,MAAO,QACtBsE,GAAa,CAAExE,IAAK,GACpByE,GAAa,CAAEzE,IAAK,GACpB0E,GAAa,CAAExE,MAAO,QACtByE,GAAc,CAAE3E,IAAK,GAY3B,QAA4B5B,EAAAA,EAAAA,IAAiB,CAC3CC,OAAQ,aACRuE,MAAO,CACPiM,QAAS,CACPzN,KAAM8G,OACNnF,UAAU,GAEZ6O,YAAa,CACXxQ,KAAM0B,OACNC,UAAU,GAEZP,WAAY,CACVpB,KAAM0B,OACNC,UAAU,GAEZ8O,SAAU,CACRzQ,KAAM8F,QACNjE,SAAS,GAEX6O,uBAAwB,CACtB1Q,KAAM8F,QACNjE,SAAS,IAGX3E,MAAMC,GAER,MAAMqE,EAAQrE,EAIRkB,GAAQC,EAAAA,EAAAA,MACRyG,GAAgBtG,EAAAA,EAAAA,KAAS,IAAMJ,EAAMyG,MAAMC,gBAE3C4L,GAAmBlS,EAAAA,EAAAA,KAAS,IAAM+C,EAAMiM,QAAQmB,SAASC,OAAO3H,QAAQ0J,GAASA,EAAKxC,OAAOhN,aAAeI,EAAMJ,eAExH,MAAO,CAACtD,EAAUC,KACRW,EAAAA,EAAAA,IAAOqG,KACV/G,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAa4S,GAAY,CACtCjS,IAAK,EACL6O,QAAStQ,EAAQsQ,SAChB,KAAM,EAAG,CAAC,cACZ/O,EAAAA,EAAAA,IAAOiS,GAAkB1K,SACvBjI,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,QAAS9B,GAAY,CACtDiG,IACAhG,EAAAA,EAAAA,GAAoB,QAAS,KAAM,EACjCA,EAAAA,EAAAA,GAAoB,KAAMkG,GAAY,EACpClG,EAAAA,EAAAA,GAAoB,KAAMmG,IAAYV,EAAAA,EAAAA,IAAiBpF,EAAQqT,aAAc,GAC7EtN,QAGJpG,EAAAA,EAAAA,GAAoB,QAAS,KAAM,GAChCkB,EAAAA,EAAAA,KAAW,IAAOW,EAAAA,EAAAA,IAAoB0B,EAAAA,GAAW,MAAMqG,EAAAA,EAAAA,KAAYhI,EAAAA,EAAAA,IAAOiS,IAAmB,CAACvC,EAAQxH,MAC7F5I,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,KAAM,CAC9CC,IAAKgI,EACL9H,MAAO,SACN,EACDhC,EAAAA,EAAAA,GAAoB,KAAMqG,GAAY,CACnChG,EAAQsT,WACJzS,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,OAAQyE,GAAY,EACrD9C,EAAAA,EAAAA,IAAawM,EAAgB,CAC3BrL,OAAQ2M,EAAOA,OAAOU,IACtBhQ,MAAO,qDACN,KAAM,EAAG,CAAC,gBAEdd,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,OAAQ0E,IAAYd,EAAAA,EAAAA,IAAiB6L,EAAOA,OAAOU,KAAM,KAChGxO,EAAAA,EAAAA,IAAawQ,GAAiB,CAC5BT,MAAOjC,EAAO2C,YACb,KAAM,EAAG,CAAC,WACbzQ,EAAAA,EAAAA,IAAa0Q,GAAM,CACjB/B,QAASb,EAAOA,OAAOU,IACvBhQ,MAAO,2CACN,KAAM,EAAG,CAAC,eAEfhC,EAAAA,EAAAA,GAAoB,KAAMwG,GAAY,EACpChD,EAAAA,EAAAA,IAAa2Q,GAAU,CACrBpB,QAASzB,EAAOA,OAAOG,KACtB,KAAM,EAAG,CAAC,mBAGf,aAGPvQ,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,MAAO4E,GAAa,OAAQhB,EAAAA,EAAAA,IAAiBpF,EAAQiE,YAAc,KAAMmB,EAAAA,EAAAA,IAAiBpF,EAAQuT,uBAAyB,UAAY,UAAY,UAAW,GAEzM,IClHA,MAAM,GAAc,GAEpB,U,QCFA,MAAM7T,GAAa,CAAEiC,MAAO,IACtBgE,GAAa,CACjBlE,IAAK,EACLE,MAAO,oBAEHkE,IAA0BlG,EAAAA,EAAAA,GAAoB,WAAY,KAAM,EACvDA,EAAAA,EAAAA,GAAoB,MAAO,CAAEgC,MAAO,WACpChC,EAAAA,EAAAA,GAAoB,MAAO,CAAEgC,MAAO,YAC/C,GACEmE,IAA0BnG,EAAAA,EAAAA,GAAoB,QAAS,KAAM,EACpDA,EAAAA,EAAAA,GAAoB,KAAM,CAAEgC,MAAO,wCAA0C,EAC3EhC,EAAAA,EAAAA,GAAoB,KAAM,CACrCyT,MAAO,MACPzR,MAAO,sBACN,aACUhC,EAAAA,EAAAA,GAAoB,KAAM,CACrCyT,MAAO,MACPzR,MAAO,sBACN,qBAEH,GACEoE,GAAa,CAAEpE,MAAO,oDACtBqE,GAAa,CAAErE,MAAO,SACtBsE,IAA0BtG,EAAAA,EAAAA,GAAoB,KAAM,CACxDyT,MAAO,MACPzR,MAAO,eACN,sBAAuB,GACpBuE,IAA0BvG,EAAAA,EAAAA,GAAoB,KAAM,CACxDyT,MAAO,MACPzR,MAAO,eACN,SAAU,GACPwE,GAAa,CAAE1E,IAAK,GACpB2E,IAA2BzG,EAAAA,EAAAA,GAAoB,KAAM,CACzDyT,MAAO,MACPzR,MAAO,eACN,UAAW,GACR0E,IAA2B1G,EAAAA,EAAAA,GAAoB,KAAM,CACzDyT,MAAO,MACPzR,MAAO,eACN,WAAY,GACT2E,IAA2B3G,EAAAA,EAAAA,GAAoB,KAAM,CACzDyT,MAAO,MACPzR,MAAO,eACN,SAAU,GACP4E,IAA2B5G,EAAAA,EAAAA,GAAoB,KAAM,CACzDyT,MAAO,MACPzR,MAAO,eACN,UAAW,GACR6E,IAA2B7G,EAAAA,EAAAA,GAAoB,KAAM,CACzDyT,MAAO,MACPzR,MAAO,eACN,sBAAuB,GACpB8E,GAAc,CAAE9E,MAAO,aACvB+E,GAAc,CAAEjF,IAAK,GAkB3B,QAA4B5B,EAAAA,EAAAA,IAAiB,CAC3CC,OAAQ,aACRuE,MAAO,CACPiM,QAAS,CACPzN,KAAM8G,OACNnF,UAAU,GAEZF,OAAQ,CACNzB,KAAM0B,OACNC,UAAU,IAGZzE,MAAMC,GAER,MAAMqE,EAAQrE,EAIR+T,EAAiB,0BAEjB7S,GAAQC,EAAAA,EAAAA,MACRyG,GAAgBtG,EAAAA,EAAAA,KAAS,IAAMJ,EAAMyG,MAAMC,gBAE3C4L,GAAmBlS,EAAAA,EAAAA,KAAS,IAAM+C,EAAMiM,QAAQmB,SAASC,OAAO3H,QAAQ0J,GAA+D,QAA3BA,EAAKxC,OAAOhN,eAExH+P,GAAmB1S,EAAAA,EAAAA,KAAS,KAChC,GAAIkS,EAAiBxK,MAAMF,OAAS,EAAG,CACrC,MAAMmL,EAAQT,EAAiBxK,MAAM,GAAGiI,OAAOiD,MAAMD,MAAMF,GAC3D,GAAIE,EACF,MAAO,CACLE,KAAMF,EAAM,GAAGG,WAAW,MAAO,KACjC7V,KAAM0V,EAAM,GAAGlV,MAAM,GAAI,G,CAI/B,MAAO,CACLoV,KAAM,GACN5V,KAAM,GACP,IAGH,MAAO,CAACoC,EAAUC,MACRC,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,MAAO9B,GAAY,EAC1D6B,EAAAA,EAAAA,IAAOqG,KACH/G,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAa4S,GAAY,CACtCjS,IAAK,EACL6O,QAAStQ,EAAQsQ,SAChB,KAAM,EAAG,CAAC,aACwB,KAApC/O,EAAAA,EAAAA,IAAOiS,GAAkB1K,SACvBjI,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,QAASmE,GAAY,CACtDE,GACAC,IACAnG,EAAAA,EAAAA,GAAoB,QAAS,KAAM,GAChCkB,EAAAA,EAAAA,KAAW,IAAOW,EAAAA,EAAAA,IAAoB0B,EAAAA,GAAW,MAAMqG,EAAAA,EAAAA,KAAYhI,EAAAA,EAAAA,IAAOiS,IAAmB,CAACvC,EAAQxH,MAC7F5I,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,KAAM,CAAEC,IAAKgI,GAAS,EAC9D9J,EAAAA,EAAAA,GAAoB,KAAM,KAAM,EAC9BA,EAAAA,EAAAA,GAAoB,QAASoG,GAAY,EACvCpG,EAAAA,EAAAA,GAAoB,QAAS,KAAM,EACjCA,EAAAA,EAAAA,GAAoB,KAAMqG,GAAY,CACpCC,IACAtG,EAAAA,EAAAA,GAAoB,KAAM,KAAM,EAC9BwD,EAAAA,EAAAA,IAAawM,EAAgB,CAC3BrL,OAAQ2M,EAAOA,OAAO1S,KACtBoD,MAAO,qDACN,KAAM,EAAG,CAAC,YACbwB,EAAAA,EAAAA,IAAa0Q,GAAM,CACjB/B,QAASb,EAAOA,OAAO1S,KACvBoD,MAAO,2CACN,KAAM,EAAG,CAAC,iBAGjBhC,EAAAA,EAAAA,GAAoB,KAAM,KAAM,CAC9BuG,IACAvG,EAAAA,EAAAA,GAAoB,KAAM,KAAM,EAC9BwF,EAAAA,EAAAA,KAAiBC,EAAAA,EAAAA,KAAiB7D,EAAAA,EAAAA,IAAOyS,GAAkBG,MAAQ,IAAK,GACvEnU,EAAQsE,UAAW/C,EAAAA,EAAAA,IAAOyS,GAAkBzV,OACxCsC,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAa6O,EAAgB,CAC1ClO,IAAK,EACL6C,QAAQ/C,EAAAA,EAAAA,IAAOyS,GAAkBzV,KACjCoD,MAAO,qDACN,KAAM,EAAG,CAAC,cACZd,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,OAAQ2E,IAAYf,EAAAA,EAAAA,KAAiB7D,EAAAA,EAAAA,IAAOyS,GAAkBzV,MAAO,SAGhHoB,EAAAA,EAAAA,GAAoB,KAAM,KAAM,CAC9ByG,IACAzG,EAAAA,EAAAA,GAAoB,KAAM,MAAMyF,EAAAA,EAAAA,IAAiB6L,EAAOA,OAAOoD,QAAS,MAE1E1U,EAAAA,EAAAA,GAAoB,KAAM,KAAM,CAC9B0G,IACA1G,EAAAA,EAAAA,GAAoB,KAAM,KAAM,EAC9BwD,EAAAA,EAAAA,IAAa2Q,GAAU,CACrBpB,QAASzB,EAAOA,OAAOqD,SACtB,KAAM,EAAG,CAAC,iBAGjB3U,EAAAA,EAAAA,GAAoB,KAAM,KAAM,CAC9B2G,IACA3G,EAAAA,EAAAA,GAAoB,KAAM,KAAM,EAC9BwD,EAAAA,EAAAA,IAAa2Q,GAAU,CACrBpB,QAASzB,EAAOA,OAAOsD,OACtB,KAAM,EAAG,CAAC,iBAGjB5U,EAAAA,EAAAA,GAAoB,KAAM,KAAM,CAC9B4G,IACA5G,EAAAA,EAAAA,GAAoB,KAAM,KAAM,EAC9BwD,EAAAA,EAAAA,IAAa2Q,GAAU,CACrBpB,QAASzB,EAAOA,OAAOuD,QACtB,KAAM,EAAG,CAAC,iBAGjB7U,EAAAA,EAAAA,GAAoB,KAAM,KAAM,CAC9B6G,IACA7G,EAAAA,EAAAA,GAAoB,KAAM,KAAM,EAC9BwD,EAAAA,EAAAA,IAAa2Q,GAAU,CACrBpB,QAASzB,EAAOA,OAAOwD,SACtB,KAAM,EAAG,CAAC,uBAMvB9U,EAAAA,EAAAA,GAAoB,KAAM8G,GAAa,EACrCtD,EAAAA,EAAAA,IAAa2Q,GAAU,CACrBpB,QAASzB,EAAOA,OAAOG,KACtB,KAAM,EAAG,CAAC,mBAGf,aAGPvQ,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,MAAOkF,GAAa,4BAGjE,IC9MA,MAAM,GAAc,GAEpB,UCFA,MAAMhH,GAAa,CAAE+B,IAAK,GACpBkE,IAA0BhG,EAAAA,EAAAA,GAAoB,WAAY,KAAM,EACvDA,EAAAA,EAAAA,GAAoB,MAAO,CAAE+U,MAAO,CAAC,YAAY,WACjD/U,EAAAA,EAAAA,GAAoB,MAAO,CAAE+U,MAAO,CAAC,MAAQ,UAC7C/U,EAAAA,EAAAA,GAAoB,MAAO,CAAE+U,MAAO,CAAC,MAAQ,WACxD,GACE7O,GAAa,CAAElE,MAAO,wCACtBmE,IAA0BnG,EAAAA,EAAAA,GAAoB,KAAM,CAAEyT,MAAO,OAAS,MAAO,GAC7ErN,GAAa,CACjBqN,MAAO,MACPzR,MAAO,sBAEHqE,IAA0BrG,EAAAA,EAAAA,GAAoB,KAAM,CACxDyT,MAAO,MACPzR,MAAO,sBACN,iBAAkB,GACfsE,GAAa,CAAEtE,MAAO,SACtBuE,IAA0BvG,EAAAA,EAAAA,GAAoB,MAAO,CACzD4F,MAAO,MACPC,OAAQ,MACRE,QAAS,YACT/D,MAAO,SACP8D,KAAM,eACNH,MAAO,8BACN,EACY3F,EAAAA,EAAAA,GAAoB,OAAQ,CACvC,YAAa,UACbiG,EAAG,6HAEH,GACEO,GAAa,CACjBD,IAEIE,GAAc,CAAE3E,IAAK,GACrB4E,GAAc,CAAE1E,MAAO,QACvB2E,GAAc,CAAC,MAAO,MAAO,SAC7BC,GAAc,CAClB9E,IAAK,EACLE,MAAO,UAEH6E,GAAc,CAAEmO,QAAS,KACzBlO,GAAc,CAAE9E,MAAO,iDACvB+E,GAAc,CAAE/E,MAAO,2CACvBgF,GAAc,CAAEhF,MAAO,gDACvB4K,IAA2B5M,EAAAA,EAAAA,GAAoB,KAAM,CACzDyT,MAAO,MACPzR,MAAO,yBACN,YAAa,GACV6K,GAAc,CAAC,QACfC,IAA2B9M,EAAAA,EAAAA,GAAoB,KAAM,CACzDyT,MAAO,MACPzR,MAAO,yBACN,MAAO,GACJ+K,IAA2B/M,EAAAA,EAAAA,GAAoB,KAAM,CACzDyT,MAAO,MACPzR,MAAO,2CACN,WAAY,GACTgL,GAAc,CAAElL,IAAK,GAW3B,QAA4B5B,EAAAA,EAAAA,IAAiB,CAC3CC,OAAQ,eACRuE,MAAO,CACPiM,QAAS,CACPzN,KAAM8G,OACNnF,UAAU,GAEZ6O,YAAa,CACXxQ,KAAM0B,OACNC,UAAU,GAEZP,WAAY,CACVpB,KAAM0B,OACNC,UAAU,IAGZzE,MAAMC,GAER,MAAMqE,EAAQrE,EAIRkB,GAAQC,EAAAA,EAAAA,MACRyG,GAAgBtG,EAAAA,EAAAA,KAAS,IAAMJ,EAAMyG,MAAMC,gBAE3C4L,GAAmBlS,EAAAA,EAAAA,KAAS,IAAM+C,EAAMiM,QAAQmB,SAASC,OAAO3H,QAAQ0J,GAAS,CAAC,IAAK,QAAQpV,SAASoV,EAAKxC,OAAOhN,gBAE1H,SAAS2Q,EAAM3D,GACb,MAAI,SAAUA,EAAeA,EAAO4D,KAC7B5D,EAAO6D,KAAK/V,MAAM,GAAI,EAC/B,CAEA,MAAO,CAAC4B,EAAUC,MACRC,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,MAAO,KAAM,EACpDD,EAAAA,EAAAA,IAAOqG,KACH/G,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAa4S,GAAY,CACtCjS,IAAK,EACL6O,QAAStQ,EAAQsQ,SAChB,KAAM,EAAG,CAAC,aACwB,KAApC/O,EAAAA,EAAAA,IAAOiS,GAAkB1K,SACvBjI,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,QAAS9B,GAAY,CACtDiG,IACAhG,EAAAA,EAAAA,GAAoB,QAAS,KAAM,EACjCA,EAAAA,EAAAA,GAAoB,KAAMkG,GAAY,CACpCC,IACAnG,EAAAA,EAAAA,GAAoB,KAAMoG,IAAYX,EAAAA,EAAAA,IAAiBpF,EAAQqT,aAAc,GAC7ErN,QAGJrG,EAAAA,EAAAA,GAAoB,QAAS,KAAM,GAChCkB,EAAAA,EAAAA,KAAW,IAAOW,EAAAA,EAAAA,IAAoB0B,EAAAA,GAAW,MAAMqG,EAAAA,EAAAA,KAAYhI,EAAAA,EAAAA,IAAOiS,IAAmB,CAACvC,EAAQxH,MAC7F5I,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB0B,EAAAA,GAAW,CAAEzB,IAAKgI,GAAS,EACnE9J,EAAAA,EAAAA,GAAoB,KAAMsG,GAAY,CACnCgL,EAAO8D,SACHlU,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,KAAM,CACvCC,IAAK,EACLE,MAAO,cACPD,QAASd,EAAO,KAAOA,EAAO,IAAKoU,EAAAA,EAAAA,KAAeC,IAAOA,EAAEC,OAAOC,QAAQ,MAAMC,YAAYC,UAAUC,OAAO,UAAWL,EAAEC,OAAOC,QAAQ,MAAMI,cAAc,OAAOF,UAAUC,OAAO,YAAY,GAAI,CAAC,WACrMnP,OACFtF,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,KAAM4E,MAC7CzG,EAAAA,EAAAA,GAAoB,KAAM0G,GAAa,CACpC4K,EAAO8D,SACHlU,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,MAAO,CACxCC,IAAK,EACLE,MAAO,+BACPS,IAAK,oCAAoC6O,EAAO8D,OAAOS,eACvD5K,IAAK,aAAaqG,EAAO8D,OAAOU,SAChC1Q,MAAO,aAAakM,EAAO8D,OAAOU,UACjC,KAAM,EAAGnP,MACZ1E,EAAAA,EAAAA,IAAoB,IAAI,IAC5BjC,EAAAA,EAAAA,GAAoB,OAAQ,MAAMyF,EAAAA,EAAAA,IAAiBwP,EAAM3D,EAAOA,SAAU,IAC1E9N,EAAAA,EAAAA,IAAawQ,GAAiB,CAC5BT,MAAOjC,EAAO2C,YACb,KAAM,EAAG,CAAC,WACbzQ,EAAAA,EAAAA,IAAa0Q,GAAM,CACjB/B,QAAS8C,EAAM3D,EAAOA,QACtBtP,MAAO,oDACN,KAAM,EAAG,CAAC,eAEfhC,EAAAA,EAAAA,GAAoB,KAAM,KAAM,EAC9BwD,EAAAA,EAAAA,IAAa2Q,GAAU,CACrBpB,QAASzB,EAAOA,OAAOG,KACtB,KAAM,EAAG,CAAC,gBAGhBH,EAAO8D,SACHlU,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,KAAM+E,GAAa,EACpD5G,EAAAA,EAAAA,GAAoB,KAAM6G,GAAa,EACrC7G,EAAAA,EAAAA,GAAoB,MAAO8G,GAAa,EACtC9G,EAAAA,EAAAA,GAAoB,MAAO,CACzBgC,MAAO,wBACP+S,OAAOgB,EAAAA,EAAAA,IAAgB,CAAEC,gBAAiB,kGAAkG1E,EAAO8D,OAAOa,IAAM,KAAK3E,EAAO8D,OAAOc,sBAAsB5E,EAAO8D,OAAOa,OAAO3E,EAAO8D,OAAOc,wBAC3O,KAAM,IACTlW,EAAAA,EAAAA,GAAoB,OAAQ+G,IAAatB,EAAAA,EAAAA,IAAiB6L,EAAO8D,OAAOe,KAAM,IAC9EnW,EAAAA,EAAAA,GAAoB,QAASgH,GAAa,EACxChH,EAAAA,EAAAA,GAAoB,QAAS,KAAM,EACjCA,EAAAA,EAAAA,GAAoB,KAAM,KAAM,CAC9B4M,IACA5M,EAAAA,EAAAA,GAAoB,KAAM,KAAM,EAC9BA,EAAAA,EAAAA,GAAoB,IAAK,CACvB4K,KAAM,sCAAsC0G,EAAO8D,OAAOgB,SAAS9E,EAAO8D,OAAOiB,eAAe/E,EAAO8D,OAAOkB,UAC9Gf,OAAQ,SACR1K,IAAK,sBACL7I,MAAO,sDACNyD,EAAAA,EAAAA,IAAiB6L,EAAO8D,OAAOgB,MAAQ,MAAO3Q,EAAAA,EAAAA,IAAiB6L,EAAO8D,OAAOiB,YAAc,MAAO5Q,EAAAA,EAAAA,IAAiB6L,EAAO8D,OAAOkB,SAAU,EAAGzJ,SAGrJ7M,EAAAA,EAAAA,GAAoB,KAAM,KAAM,CAC9B8M,IACA9M,EAAAA,EAAAA,GAAoB,KAAM,MAAMyF,EAAAA,EAAAA,IAAiB6L,EAAO8D,OAAOmB,IAAK,MAEtEvW,EAAAA,EAAAA,GAAoB,KAAM,KAAM,CAC9B+M,IACA/M,EAAAA,EAAAA,GAAoB,KAAM,MAAMyF,EAAAA,EAAAA,IAAiB6L,EAAO8D,OAAOU,QAAS,iBAOpF7T,EAAAA,EAAAA,IAAoB,IAAI,IAC3B,OACD,aAGPf,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,MAAOmL,GAAa,OAAQvH,EAAAA,EAAAA,IAAiBpF,EAAQiE,YAAc,kBAAmB,MAGnI,ICpMA,MAAM,GAAc,GAEpB,UCFA,MAAMvE,GAAa,CACjB+B,IAAK,EACLE,MAAO,8BAEHgE,GAAa,CACjBlE,IAAK,EACLE,MAAO,iCAEHkE,GAAa,CACjBpE,IAAK,EACLE,MAAO,iCAEHmE,GAAa,CACjBrE,IAAK,EACLE,MAAO,gCAOT,QAA4B9B,EAAAA,EAAAA,IAAiB,CAC3CC,OAAQ,gBACRuE,MAAO,CACP8R,UAAW,CACTtT,KAAM0B,OACNC,UAAU,IAGZzE,MAAMC,GAIR,MAAO,CAACW,EAAUC,IACc,SAAtBZ,EAAQmW,YACXtV,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,OAAQ9B,GAAY,SAChC,aAAtBM,EAAQmW,YACNtV,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,OAAQmE,GAAY,aAChC,YAAtB3F,EAAQmW,YACNtV,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,OAAQqE,GAAY,cACtDhF,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,OAAQsE,GAAY,QAEjE,IC1CA,MAAM,GAAc,GAEpB,UCFA,MAAMpG,GAAa,CAAEiC,MAAO,8DACtBgE,GAAa,CAAEhE,MAAO,eACtBkE,GAAa,CAAElE,MAAO,eACtBmE,GAAa,CAAErE,IAAK,GACpBsE,GAAa,CACjBtE,IAAK,EACLE,MAAO,iBAEHqE,GAAa,CAAErE,MAAO,iBACtBsE,GAAa,CAAEtE,MAAO,iBACtBuE,GAAa,CAAEvE,MAAO,iBACtBwE,GAAa,CAAExE,MAAO,iBACtByE,GAAc,CAAEzE,MAAO,iBACvB0E,GAAc,CAAE1E,MAAO,iBACvB2E,GAAc,CAAE3E,MAAO,iBACvB4E,GAAc,CAAE5E,MAAO,iBACvB6E,GAAc,CAAE7E,MAAO,iBACvB8E,GAAc,CAAE9E,MAAO,iBACvB+E,GAAc,CAAE/E,MAAO,iBACvBgF,GAAc,CAAEhF,MAAO,iBACvB4K,GAAc,CAAE5K,MAAO,iBACvB6K,GAAc,CAAE7K,MAAO,iBACvB8K,GAAc,CAAE9K,MAAO,iBACvB+K,GAAc,CAAE/K,MAAO,iBACvBgL,GAAc,CAAElL,IAAK,GACrBmL,GAAc,CAAEnL,IAAK,GACrBoL,GAAc,CAAEpL,IAAK,GACrBqL,GAAc,CAAEnL,MAAO,sDAQ7B,QAA4B9B,EAAAA,EAAAA,IAAiB,CAC3CC,OAAQ,YACRuE,MAAO,CACP+R,MAAO,CACLvT,KAAM8G,OACNnF,UAAU,GAEZF,OAAQ,CACNzB,KAAM0B,OACNC,UAAU,IAGZzE,MAAMC,GAIR,SAASqW,EAAgBF,GACvB,OAAQA,GACN,IAAK,OAAQ,MAAO,IACpB,IAAK,OAAQ,MAAO,IACpB,IAAK,WAAY,MAAO,IACxB,IAAK,UAAW,MAAO,IACvB,IAAK,OAAQ,MAAO,GACpB,QAAS,MAAO,GAEpB,CAEA,SAASG,EAAUC,EAASpS,GAC1B,SAASqS,EAAQC,GACf,MAAI,cAAeA,EAAU,EACzB,aAAcA,EAAU,EACxB,QAASA,EAAU,EACnB,oBAAqBA,EAAU,EAC5B,CACT,CACA,OAAOD,EAAQD,GAAKC,EAAQrS,EAC9B,CAEA,MAAO,CAACxD,EAAUC,KAChB,MAAMkE,GAAyB7B,EAAAA,EAAAA,IAAkB,eAEjD,OAAQpC,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,KAAM9B,GAAY,GACzDmB,EAAAA,EAAAA,KAAW,IAAOW,EAAAA,EAAAA,IAAoB0B,EAAAA,GAAW,MAAMqG,EAAAA,EAAAA,IAAY,IAAIvJ,EAAQoW,OAAOM,KAAKJ,IAAY,CAACK,EAAMlN,MACrG5I,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,KAAM,CAC9CC,IAAKgI,EACL9H,MAAO,4EACN,EACDhC,EAAAA,EAAAA,GAAoB,MAAOgG,GAAY,EACrChG,EAAAA,EAAAA,GAAoB,OAAQkG,GAAY,CACrC8Q,EAAKC,YACD/V,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB0B,EAAAA,GAAW,CAAEzB,IAAK,GAAK,CAC7C,IAAVgI,IACI5I,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,OAAQsE,GAAY,eACvDlE,EAAAA,EAAAA,IAAoB,IAAI,GAC3B+U,EAAKC,UAAUC,UAAUC,MACrBjW,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB0B,EAAAA,GAAW,CAAEzB,IAAK,GAAK,EACxD9B,EAAAA,EAAAA,GAAoB,OAAQ,CAC1BgC,OAAO2H,EAAAA,EAAAA,IAAgB,CAAEyN,WAAsB,IAAVtN,KACpC,OAAQ,IACXtE,EAAAA,EAAAA,IAAiB,mBACjBhC,EAAAA,EAAAA,IAAa6T,GAAe,CAC1Bb,UAAWQ,EAAKC,UAAUT,WACzB,KAAM,EAAG,CAAC,eACbhR,EAAAA,EAAAA,IAAiB,OAChB,KACFwR,EAAKC,UAAUC,UAAUI,UACvBpW,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB0B,EAAAA,GAAW,CAAEzB,IAAK,GAAK,EACxD9B,EAAAA,EAAAA,GAAoB,OAAQ,CAC1BgC,OAAO2H,EAAAA,EAAAA,IAAgB,CAAC,8BAA+B,CAAEyN,WAAsB,IAAVtN,MACpE,UAAW,IACdtE,EAAAA,EAAAA,IAAiB,uBAChBwR,EAAKC,UAAUC,UAAUI,QAAQ3S,OAAOjG,SAAS,OAC7CwC,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,OAAQuE,IAAYX,EAAAA,EAAAA,IAAiBuR,EAAKC,UAAUC,UAAUI,QAAQ3S,QAAS,MACjHzD,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAa6O,EAAgB,CAC1ClO,IAAK,EACL6C,OAAQqS,EAAKC,UAAUC,UAAUI,QAAQ3S,OACzCG,KAAM,MACN9C,MAAO,mDACN,CACD+C,SAASM,EAAAA,EAAAA,KAAS,IAAM,EACtBG,EAAAA,EAAAA,KAAiBC,EAAAA,EAAAA,IAAiBuR,EAAKC,UAAUC,UAAUI,QAAQ3S,QAAS,MAE9Ee,EAAG,GACF,KAAM,CAAC,aACdF,EAAAA,EAAAA,IAAiB,UACjBhC,EAAAA,EAAAA,IAAa6T,GAAe,CAC1Bb,UAAWQ,EAAKC,UAAUT,WACzB,KAAM,EAAG,CAAC,eACbhR,EAAAA,EAAAA,IAAiB,qCAChB,KACFwR,EAAKC,UAAUC,UAAUK,IACvBrW,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB0B,EAAAA,GAAW,CAAEzB,IAAK,GAAK,EACxD0B,EAAAA,EAAAA,IAAa6T,GAAe,CAC1Bb,UAAWQ,EAAKC,UAAUT,UAC1BxU,OAAO2H,EAAAA,EAAAA,IAAgB,CAAEyN,WAAsB,IAAVtN,KACpC,KAAM,EAAG,CAAC,YAAa,WAC1BtE,EAAAA,EAAAA,IAAiB,yCACjBhC,EAAAA,EAAAA,IAAawM,EAAgB,CAC3BrL,OAAQqS,EAAKC,UAAUC,UAAUK,EAAE5S,OAASqS,EAAKC,UAAUC,UAAUK,EAAE5S,OAAStE,EAAQsE,OACxFG,KAAM,IACN9C,MAAO,mDACN,CACD+C,SAASM,EAAAA,EAAAA,KAAS,IAAM,EACtBG,EAAAA,EAAAA,IAAiB,QAEnBE,EAAG,GACF,KAAM,CAAC,WACTsR,EAAKC,UAAUC,UAAUK,EAAEC,UACvBtW,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB0B,EAAAA,GAAW,CAAEzB,IAAK,GAAK,EACxD0D,EAAAA,EAAAA,IAAiB,iBACjBxF,EAAAA,EAAAA,GAAoB,OAAQqG,GAAY,KAAMZ,EAAAA,EAAAA,IAAiBuR,EAAKC,UAAUC,UAAUK,EAAEC,SAAU,IACpGhS,EAAAA,EAAAA,IAAiB,MAChB,MACHvD,EAAAA,EAAAA,IAAoB,IAAI,IAC5BuD,EAAAA,EAAAA,IAAiB,SACjBhC,EAAAA,EAAAA,IAAawM,EAAgB,CAC3BrL,OAAQqS,EAAKC,UAAUC,UAAUK,EAAE5S,OAASqS,EAAKC,UAAUC,UAAUK,EAAE5S,OAAStE,EAAQsE,OACxFG,KAAM,OACN9C,MAAO,mDACN,CACD+C,SAASM,EAAAA,EAAAA,KAAS,IAAM,EACtBG,EAAAA,EAAAA,IAAiB,WAEnBE,EAAG,GACF,KAAM,CAAC,WACTsR,EAAKC,UAAUC,UAAUK,EAAEE,UACvBvW,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB0B,EAAAA,GAAW,CAAEzB,IAAK,GAAK,EACxD0D,EAAAA,EAAAA,IAAiB,iBACjBxF,EAAAA,EAAAA,GAAoB,OAAQsG,GAAY,KAAMb,EAAAA,EAAAA,IAAiBuR,EAAKC,UAAUC,UAAUK,EAAEE,SAAU,IACpGjS,EAAAA,EAAAA,IAAiB,MAChB,MACHvD,EAAAA,EAAAA,IAAoB,IAAI,IAC5BuD,EAAAA,EAAAA,IAAiB,iBACjBxF,EAAAA,EAAAA,GAAoB,OAAQuG,IAAYd,EAAAA,EAAAA,IAAiBuR,EAAKC,UAAUC,UAAUK,EAAE5S,OAASqS,EAAKC,UAAUC,UAAUK,EAAE5S,OAAStE,EAAQsE,QAAS,IAClJa,EAAAA,EAAAA,IAAiB,OAChB,KACFwR,EAAKC,UAAUC,UAAUQ,KACvBxW,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB0B,EAAAA,GAAW,CAAEzB,IAAK,GAAK,EACxD0B,EAAAA,EAAAA,IAAa6T,GAAe,CAC1Bb,UAAWQ,EAAKC,UAAUT,UAC1BxU,OAAO2H,EAAAA,EAAAA,IAAgB,CAAEyN,WAAsB,IAAVtN,KACpC,KAAM,EAAG,CAAC,YAAa,WAC1BtE,EAAAA,EAAAA,IAAiB,mDAChBwR,EAAKC,UAAUC,UAAUQ,GAAGF,SAAWR,EAAKC,UAAUC,UAAUQ,GAAGD,UAC/DvW,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB0B,EAAAA,GAAW,CAAEzB,IAAK,GAAK,EACxD0D,EAAAA,EAAAA,IAAiB,gBACjBxF,EAAAA,EAAAA,GAAoB,OAAQwG,GAAY,KAAMf,EAAAA,EAAAA,IAAiBuR,EAAKC,UAAUC,UAAUQ,GAAGF,SAAU,IACrGhS,EAAAA,EAAAA,IAAiB,mBACjBxF,EAAAA,EAAAA,GAAoB,OAAQyG,GAAa,KAAMhB,EAAAA,EAAAA,IAAiBuR,EAAKC,UAAUC,UAAUQ,GAAGD,SAAU,IACtGjS,EAAAA,EAAAA,IAAiB,gBAChB,KACFwR,EAAKC,UAAUC,UAAUQ,GAAGF,UAC1BtW,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB0B,EAAAA,GAAW,CAAEzB,IAAK,GAAK,EACxD0D,EAAAA,EAAAA,IAAiB,gBACjBxF,EAAAA,EAAAA,GAAoB,OAAQ0G,GAAa,KAAMjB,EAAAA,EAAAA,IAAiBuR,EAAKC,UAAUC,UAAUQ,GAAGF,SAAU,IACtGhS,EAAAA,EAAAA,IAAiB,gBAChB,KACFwR,EAAKC,UAAUC,UAAUQ,GAAGD,UAC1BvW,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB0B,EAAAA,GAAW,CAAEzB,IAAK,GAAK,EACxD0D,EAAAA,EAAAA,IAAiB,gBACjBxF,EAAAA,EAAAA,GAAoB,OAAQ2G,GAAa,KAAMlB,EAAAA,EAAAA,IAAiBuR,EAAKC,UAAUC,UAAUQ,GAAGD,SAAU,IACtGjS,EAAAA,EAAAA,IAAiB,gBAChB,MACHvD,EAAAA,EAAAA,IAAoB,IAAI,IAChCuD,EAAAA,EAAAA,IAAiB,QACjBxF,EAAAA,EAAAA,GAAoB,OAAQ4G,IAAanB,EAAAA,EAAAA,IAAiBuR,EAAKC,UAAUC,UAAUQ,GAAG/S,OAASqS,EAAKC,UAAUC,UAAUQ,GAAG/S,OAAStE,EAAQsE,QAAS,IACrJa,EAAAA,EAAAA,IAAiB,OAChB,KACFwR,EAAKC,UAAUC,UAAUS,MACvBzW,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB0B,EAAAA,GAAW,CAAEzB,IAAK,GAAK,EACxD0B,EAAAA,EAAAA,IAAa6T,GAAe,CAC1Bb,UAAWQ,EAAKC,UAAUT,UAC1BxU,OAAO2H,EAAAA,EAAAA,IAAgB,CAAEyN,WAAsB,IAAVtN,KACpC,KAAM,EAAG,CAAC,YAAa,WAC1BtE,EAAAA,EAAAA,IAAiB,WACjBhC,EAAAA,EAAAA,IAAa2B,EAAwB,CACnC9D,GAAI,eACJW,MAAO,mDACN,CACD+C,SAASM,EAAAA,EAAAA,KAAS,IAAM,EACtBG,EAAAA,EAAAA,IAAiB,qBAEnBE,EAAG,KAELF,EAAAA,EAAAA,IAAiB,2CACjBxF,EAAAA,EAAAA,GAAoB,OAAQ6G,IAAapB,EAAAA,EAAAA,IAAiBuR,EAAKC,UAAUC,UAAUS,IAAIhT,OAASqS,EAAKC,UAAUC,UAAUS,IAAIhT,OAAStE,EAAQsE,QAAS,IACvJa,EAAAA,EAAAA,IAAiB,OAChB,KACFwR,EAAKC,UAAUC,UAAUU,MACvB1W,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB0B,EAAAA,GAAW,CAAEzB,IAAK,GAAK,CACvDkV,EAAKC,UAAUC,UAAUU,IAAIC,UAAYb,EAAKC,UAAUC,UAAUU,IAAIE,QAClE5W,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB0B,EAAAA,GAAW,CAAEzB,IAAK,GAAK,EACxD0B,EAAAA,EAAAA,IAAa6T,GAAe,CAC1Bb,UAAWQ,EAAKC,UAAUT,UAC1BxU,OAAO2H,EAAAA,EAAAA,IAAgB,CAAEyN,WAAsB,IAAVtN,KACpC,KAAM,EAAG,CAAC,YAAa,WAC1BtE,EAAAA,EAAAA,IAAiB,kCACjBxF,EAAAA,EAAAA,GAAoB,OAAQ8G,IAAarB,EAAAA,EAAAA,IAAiBuR,EAAKC,UAAUC,UAAUU,IAAI/F,IAAK,IAC5FrM,EAAAA,EAAAA,IAAiB,OAChB,OACFtE,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB0B,EAAAA,GAAW,CAAEzB,IAAK,GAAK,EACxD0B,EAAAA,EAAAA,IAAa6T,GAAe,CAC1Bb,UAAWQ,EAAKC,UAAUT,UAC1BxU,OAAO2H,EAAAA,EAAAA,IAAgB,CAAEyN,WAAsB,IAAVtN,KACpC,KAAM,EAAG,CAAC,YAAa,WAC1BtE,EAAAA,EAAAA,IAAiB,0CACjBxF,EAAAA,EAAAA,GAAoB,OAAQ+G,IAAatB,EAAAA,EAAAA,IAAiBuR,EAAKC,UAAUC,UAAUU,IAAIC,SAAU,IACjGrS,EAAAA,EAAAA,IAAiB,UACjBxF,EAAAA,EAAAA,GAAoB,OAAQgH,IAAavB,EAAAA,EAAAA,IAAiBuR,EAAKC,UAAUC,UAAUU,IAAIE,OAAQ,IAC/FtS,EAAAA,EAAAA,IAAiB,OAChB,MACN,KACFwR,EAAKC,UAAUC,UAAUa,MACvB7W,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB0B,EAAAA,GAAW,CAAEzB,IAAK,GAAK,CACvDkV,EAAKC,UAAUC,UAAUa,IAAIF,UAAYb,EAAKC,UAAUC,UAAUa,IAAID,QAClE5W,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB0B,EAAAA,GAAW,CAAEzB,IAAK,GAAK,EACxD0B,EAAAA,EAAAA,IAAa6T,GAAe,CAC1Bb,UAAWQ,EAAKC,UAAUT,UAC1BxU,OAAO2H,EAAAA,EAAAA,IAAgB,CAAEyN,WAAsB,IAAVtN,KACpC,KAAM,EAAG,CAAC,YAAa,WAC1BtE,EAAAA,EAAAA,IAAiB,kCACjBxF,EAAAA,EAAAA,GAAoB,OAAQ4M,IAAanH,EAAAA,EAAAA,IAAiBuR,EAAKC,UAAUC,UAAUa,IAAIlG,IAAK,IAC5FrM,EAAAA,EAAAA,IAAiB,OAChB,OACFtE,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB0B,EAAAA,GAAW,CAAEzB,IAAK,GAAK,EACxD0B,EAAAA,EAAAA,IAAa6T,GAAe,CAC1Bb,UAAWQ,EAAKC,UAAUT,UAC1BxU,OAAO2H,EAAAA,EAAAA,IAAgB,CAAEyN,WAAsB,IAAVtN,KACpC,KAAM,EAAG,CAAC,YAAa,WAC1BtE,EAAAA,EAAAA,IAAiB,0CACjBxF,EAAAA,EAAAA,GAAoB,OAAQ6M,IAAapH,EAAAA,EAAAA,IAAiBuR,EAAKC,UAAUC,UAAUa,IAAIF,SAAU,IACjGrS,EAAAA,EAAAA,IAAiB,UACjBxF,EAAAA,EAAAA,GAAoB,OAAQ8M,IAAarH,EAAAA,EAAAA,IAAiBuR,EAAKC,UAAUC,UAAUa,IAAID,OAAQ,IAC/FtS,EAAAA,EAAAA,IAAiB,OAChB,MACN,KACFwR,EAAKC,UAAUC,UAAUc,SACvB9W,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB0B,EAAAA,GAAW,CAAEzB,IAAK,GAAK,EACxD0B,EAAAA,EAAAA,IAAa6T,GAAe,CAC1Bb,UAAWQ,EAAKC,UAAUT,UAC1BxU,OAAO2H,EAAAA,EAAAA,IAAgB,CAAEyN,WAAsB,IAAVtN,KACpC,KAAM,EAAG,CAAC,YAAa,WAC1BtE,EAAAA,EAAAA,IAAiB,gCACjBxF,EAAAA,EAAAA,GAAoB,OAAQ+M,IAAatH,EAAAA,EAAAA,IAAiBuR,EAAKC,UAAUC,UAAUc,OAAOrT,QAAS,IACnGa,EAAAA,EAAAA,IAAiB,OAChB,MACHvD,EAAAA,EAAAA,IAAoB,IAAI,IACzC,KACF+U,EAAKiB,MACH/W,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB0B,EAAAA,GAAW,CAAEzB,IAAK,GAAK,CAC7C,IAAVgI,IACI5I,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,OAAQmL,GAAa,UACxD/K,EAAAA,EAAAA,IAAoB,IAAI,IAC5BjC,EAAAA,EAAAA,GAAoB,OAAQ,CAC1BgC,OAAO2H,EAAAA,EAAAA,IAAgB,CAAEyN,WAAsB,IAAVtN,KACpC,QAAS,IACZtE,EAAAA,EAAAA,OACAhC,EAAAA,EAAAA,IAAawM,EAAgB,CAC3BrL,OAAQqS,EAAKkB,SAASD,IAAItT,OAC1BG,KAAM,MACN9C,MAAO,mDACN,CACD+C,SAASM,EAAAA,EAAAA,KAAS,IAAM,EACtBG,EAAAA,EAAAA,KAAiBC,EAAAA,EAAAA,IAAiBuR,EAAKkB,SAASD,IAAItT,QAAS,MAE/De,EAAG,GACF,KAAM,CAAC,YACVF,EAAAA,EAAAA,IAAiB,mDAChB,KACFwR,EAAKmB,WACHjX,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB0B,EAAAA,GAAW,CAAEzB,IAAK,GAAK,CAC7C,IAAVgI,IACI5I,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,OAAQoL,GAAa,eACxDhL,EAAAA,EAAAA,IAAoB,IAAI,IAC5BjC,EAAAA,EAAAA,GAAoB,OAAQ,CAC1BgC,OAAO2H,EAAAA,EAAAA,IAAgB,CAAC,8BAA+B,CAAEyN,WAAsB,IAAVtN,MACpE,WAAY,IACftE,EAAAA,EAAAA,IAAiB,qBAChBwR,EAAKmB,SAASxT,OAAOjG,SAAS,OAC1BwC,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB0B,EAAAA,GAAW,CAAEzB,IAAK,GAAK,EACxD0D,EAAAA,EAAAA,KAAiBC,EAAAA,EAAAA,IAAiBuR,EAAKmB,SAASxT,QAAS,IACxD,OACFzD,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAa6O,EAAgB,CAC1ClO,IAAK,EACL6C,OAAQqS,EAAKmB,SAASxT,OACtBG,KAAM,MACN9C,MAAO,mDACN,CACD+C,SAASM,EAAAA,EAAAA,KAAS,IAAM,EACtBG,EAAAA,EAAAA,KAAiBC,EAAAA,EAAAA,IAAiBuR,EAAKmB,SAASxT,QAAS,MAE3De,EAAG,GACF,KAAM,CAAC,aACdF,EAAAA,EAAAA,IAAiB,OAChB,KACFwR,EAAKoB,kBACHlX,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB0B,EAAAA,GAAW,CAAEzB,IAAK,GAAK,CAC7C,IAAVgI,IACI5I,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,OAAQqL,GAAa,UACxDjL,EAAAA,EAAAA,IAAoB,IAAI,IAC5BjC,EAAAA,EAAAA,GAAoB,OAAQ,CAC1BgC,OAAO2H,EAAAA,EAAAA,IAAgB,CAAEyN,WAAsB,IAAVtN,KACpC,SAAU,IACbtE,EAAAA,EAAAA,IAAiB,6BAChB,MACHvD,EAAAA,EAAAA,IAAoB,IAAI,QAGtCjC,EAAAA,EAAAA,GAAoB,MAAOmN,GAAa,CACrC6J,EAAKC,YACD/V,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB0B,EAAAA,GAAW,CAAEzB,IAAK,GAAK,CACvDkV,EAAKC,UAAUC,UAAUC,MACrBjW,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB0B,EAAAA,GAAW,CAAEzB,IAAK,GAAK,EACxD0D,EAAAA,EAAAA,KAAiBC,EAAAA,EAAAA,IAAiBiR,EAAgBM,EAAKC,UAAUT,YAAc,OAAQ,IACtF,KACFQ,EAAKC,UAAUC,UAAUI,UACvBpW,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB0B,EAAAA,GAAW,CAAEzB,IAAK,GAAK,EACxD0D,EAAAA,EAAAA,KAAiBC,EAAAA,EAAAA,IAAiBiR,EAAgBM,EAAKC,UAAUT,YAAc,YAAa/Q,EAAAA,EAAAA,IAAiBuR,EAAKC,UAAUC,UAAUI,QAAQ3S,QAAS,IACtJ,KACFqS,EAAKC,UAAUC,UAAUK,IACvBrW,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB0B,EAAAA,GAAW,CAAEzB,IAAK,GAAK,EACxD0D,EAAAA,EAAAA,KAAiBC,EAAAA,EAAAA,IAAiBiR,EAAgBM,EAAKC,UAAUT,YAAc,KAAM/Q,EAAAA,EAAAA,IAAiBuR,EAAKC,UAAUC,UAAUK,EAAE5S,OAAS,IAAMqS,EAAKC,UAAUC,UAAUK,EAAE5S,OAAS,KAAMc,EAAAA,EAAAA,IAAiBuR,EAAKC,UAAUC,UAAUK,EAAEC,QAAU,IAAIR,EAAKC,UAAUC,UAAUK,EAAEC,UAAY,KAAM/R,EAAAA,EAAAA,IAAiBuR,EAAKC,UAAUC,UAAUK,EAAEE,QAAU,KAAKT,EAAKC,UAAUC,UAAUK,EAAEE,UAAY,IAAK,IACvY,KACFT,EAAKC,UAAUC,UAAUQ,KACvBxW,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB0B,EAAAA,GAAW,CAAEzB,IAAK,GAAK,EACxD0D,EAAAA,EAAAA,KAAiBC,EAAAA,EAAAA,IAAiBiR,EAAgBM,EAAKC,UAAUT,YAAc,MAAO/Q,EAAAA,EAAAA,IAAiBuR,EAAKC,UAAUC,UAAUQ,GAAG/S,OAAS,IAAMqS,EAAKC,UAAUC,UAAUQ,GAAG/S,OAAS,KAAMc,EAAAA,EAAAA,IAAiBuR,EAAKC,UAAUC,UAAUQ,GAAGF,QAAU,IAAIR,EAAKC,UAAUC,UAAUQ,GAAGF,UAAY,KAAM/R,EAAAA,EAAAA,IAAiBuR,EAAKC,UAAUC,UAAUQ,GAAGD,QAAU,KAAKT,EAAKC,UAAUC,UAAUQ,GAAGD,UAAY,IAAK,IAC9Y,KACFT,EAAKC,UAAUC,UAAUS,MACvBzW,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB0B,EAAAA,GAAW,CAAEzB,IAAK,GAAK,EACxD0D,EAAAA,EAAAA,KAAiBC,EAAAA,EAAAA,IAAiBiR,EAAgBM,EAAKC,UAAUT,YAAc,OAAQ/Q,EAAAA,EAAAA,IAAiBuR,EAAKC,UAAUC,UAAUS,IAAIhT,OAAS,IAAMqS,EAAKC,UAAUC,UAAUS,IAAIhT,OAAS,IAAK,IAC9L,KACFqS,EAAKC,UAAUC,UAAUU,MACvB1W,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB0B,EAAAA,GAAW,CAAEzB,IAAK,GAAK,EACxD0D,EAAAA,EAAAA,KAAiBC,EAAAA,EAAAA,IAAiBiR,EAAgBM,EAAKC,UAAUT,YAAc,QAAS/Q,EAAAA,EAAAA,IAAiBuR,EAAKC,UAAUC,UAAUU,IAAIC,UAAWpS,EAAAA,EAAAA,IAAiBuR,EAAKC,UAAUC,UAAUU,IAAIS,KAAO,IAAIrB,EAAKC,UAAUC,UAAUU,IAAIS,OAAS,IAAK,IACpP,KACFrB,EAAKC,UAAUC,UAAUa,MACvB7W,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB0B,EAAAA,GAAW,CAAEzB,IAAK,GAAK,EACxD0D,EAAAA,EAAAA,KAAiBC,EAAAA,EAAAA,IAAiBiR,EAAgBM,EAAKC,UAAUT,YAAc,QAAS/Q,EAAAA,EAAAA,IAAiBuR,EAAKC,UAAUC,UAAUa,IAAIF,UAAWpS,EAAAA,EAAAA,IAAiBuR,EAAKC,UAAUC,UAAUa,IAAIM,KAAO,IAAIrB,EAAKC,UAAUC,UAAUa,IAAIM,OAAS,IAAK,IACpP,KACFrB,EAAKC,UAAUC,UAAUc,SACvB9W,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB0B,EAAAA,GAAW,CAAEzB,IAAK,GAAK,EACxD0D,EAAAA,EAAAA,KAAiBC,EAAAA,EAAAA,IAAiBiR,EAAgBM,EAAKC,UAAUT,YAAc,WAAY/Q,EAAAA,EAAAA,IAAiBuR,EAAKC,UAAUC,UAAUc,OAAOrT,QAAS,IACpJ,MACH1C,EAAAA,EAAAA,IAAoB,IAAI,IACzC,MACHA,EAAAA,EAAAA,IAAoB,IAAI,GAC3B+U,EAAKiB,MACD/W,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB0B,EAAAA,GAAW,CAAEzB,IAAK,GAAK,EACxD0D,EAAAA,EAAAA,IAAiB,SAAUC,EAAAA,EAAAA,IAAiBuR,EAAKiB,IAAItT,QAAS,IAC7D,KACFqS,EAAKmB,WACHjX,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB0B,EAAAA,GAAW,CAAEzB,IAAK,GAAK,EACxD0D,EAAAA,EAAAA,IAAiB,cAAeC,EAAAA,EAAAA,IAAiBuR,EAAKmB,SAASxT,QAAS,IACvE,KACFqS,EAAKoB,kBACHlX,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB0B,EAAAA,GAAW,CAAEzB,IAAK,GAAK,EACxD0D,EAAAA,EAAAA,KAAiBC,EAAAA,EAAAA,IAAiBuR,EAAKoB,gBAAgB7G,MAAQ,KAAM9L,EAAAA,EAAAA,IAAiBuR,EAAKoB,gBAAgBE,aAAc,IACxH,MACHrW,EAAAA,EAAAA,IAAoB,IAAI,UAGlC,OACJ,CAEJ,IC/YA,MAAM,GAAc,GAEpB,UCFA,MAAMlC,GAAa,CAAEiC,MAAO,cACtBgE,GAAa,CAAEhE,MAAO,iBAc5B,QAA4B9B,EAAAA,EAAAA,IAAiB,CAC3CC,OAAQ,aACRuE,MAAO,CACPiM,QAAS,CACPzN,KAAM8G,OACNnF,UAAU,GAEZF,OAAQ,CACNzB,KAAM0B,OACNC,UAAU,IAGZzE,MAAMC,GAER,MAAMqE,EAAQrE,EAIRiE,EAAaD,EAAc,OAC3BwP,GAAmBlS,EAAAA,EAAAA,KAAS,IAAM+C,EAAMiM,QAAQmB,SAASC,OAAO3H,QAAQ0J,GAAuD,QAA3BA,EAAKxC,OAAOhN,iBAA2CwE,IAAnBgL,EAAKyE,cAEnJ,MAAO,CAACvX,EAAUC,MACRC,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB0B,EAAAA,GAAW,KAAM,GACxDrC,EAAAA,EAAAA,KAAW,IAAOW,EAAAA,EAAAA,IAAoB0B,EAAAA,GAAW,MAAMqG,EAAAA,EAAAA,KAAYhI,EAAAA,EAAAA,IAAOiS,IAAmB,CAAC2E,EAAK1O,MAC1F5I,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB0B,EAAAA,GAAW,CAAEzB,IAAKgI,GAAS,EACnE9J,EAAAA,EAAAA,GAAoB,OAAQD,GAAY,EACtCyF,EAAAA,EAAAA,IAAiB,8BACjBhC,EAAAA,EAAAA,IAAa2Q,GAAU,CACrBpB,QAASyF,EAAIlH,OAAOG,KACnB,KAAM,EAAG,CAAC,aACbjM,EAAAA,EAAAA,IAAiB,QAEnBhC,EAAAA,EAAAA,IAAaiV,GAAoB,CAC/B9T,OAAQtE,EAAQsE,OAChB8R,MAAO+B,EAAID,WACV,KAAM,EAAG,CAAC,SAAU,WACtB,OACD,OACF3W,EAAAA,EAAAA,IAAOiS,GAAkB1K,QAavBlH,EAAAA,EAAAA,IAAoB,IAAI,KAZvBf,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAauX,GAAAA,EAAO,CACjC5W,IAAK,EACLoB,KAAM,WACL,CACD6B,SAASM,EAAAA,EAAAA,KAAS,IAAM,EACtBrF,EAAAA,EAAAA,GAAoB,OAAQ,KAAM,EAChCA,EAAAA,EAAAA,GAAoB,OAAQgG,IAAYP,EAAAA,EAAAA,IAAiBpF,EAAQsE,QAAS,IAC1Ea,EAAAA,EAAAA,IAAiB,uBAAwBC,EAAAA,EAAAA,KAAiB7D,EAAAA,EAAAA,IAAO0C,GAAYJ,OAAS,YAAa,QAGvGwB,EAAG,MAGR,IAEL,ICrEA,MAAM,GAAc,GAEpB,UCFA,MAAM3F,GAAa,CAAEiC,MAAO,+CACtBgE,GAAa,CAAElE,IAAK,GACpBoE,GAAa,CACjBpE,IAAK,EACLE,MAAO,iCAEHmE,GAAa,CACjBrE,IAAK,EACLE,MAAO,oGAEHoE,GAAa,CAAC,MAAO,OACrBC,GAAa,CAAErE,MAAO,mCACtBsE,GAAa,CAAEtE,MAAO,yCACtBuE,GAAa,CACjBzE,IAAK,EACLE,MAAO,oCAEHwE,GAAa,CAAExE,MAAO,+BACtByE,GAAc,CAAEzE,MAAO,uCACvB0E,GAAc,CAAE1E,MAAO,yBACvB2E,IAA2B3G,EAAAA,EAAAA,GAAoB,KAAM,CAAEgC,MAAO,iCAAmC,cAAe,GAChH4E,GAAc,CAClB9E,IAAK,EACLE,MAAO,iCAEH6E,GAAc,CAClB/E,IAAK,EACLE,MAAO,UAEH8E,IAA2B9G,EAAAA,EAAAA,GAAoB,WAAY,KAAM,EACxDA,EAAAA,EAAAA,GAAoB,MAAO,CAAEgC,MAAO,WACpChC,EAAAA,EAAAA,GAAoB,MAAO,CAAEgC,MAAO,YAC/C,GACE+E,IAA2B/G,EAAAA,EAAAA,GAAoB,QAAS,KAAM,EACrDA,EAAAA,EAAAA,GAAoB,KAAM,CAAEgC,MAAO,wCAA0C,EAC3EhC,EAAAA,EAAAA,GAAoB,KAAM,CACrCyT,MAAO,MACPzR,MAAO,sBACN,aACUhC,EAAAA,EAAAA,GAAoB,KAAM,CACrCyT,MAAO,MACPzR,MAAO,sBACN,qBAEH,GACEgF,GAAc,CAAEhF,MAAO,kBACvB4K,IAA2B5M,EAAAA,EAAAA,GAAoB,OAAQ,CAAEgC,MAAO,iBAAmB,KAAO,GAC1F6K,IAA2B7M,EAAAA,EAAAA,GAAoB,OAAQ,CAAEgC,MAAO,iBAAmB,MAAQ,GAC3F8K,GAAc,CAAEhL,IAAK,GAiC3B,QAA4B5B,EAAAA,EAAAA,IAAiB,CAC3CC,OAAQ,aACRuE,MAAO,CACPiM,QAAS,CACPzN,KAAM8G,OACNnF,UAAU,GAEZF,OAAQ,CACNzB,KAAM0B,OACNC,UAAU,IAGZzE,MAAMC,GAER,MAAMqE,EAAQrE,EAERsY,EAAqB,CACzB,CAAExC,IAAK,SAAUyC,OAAQ,2BAA4BC,UAAW,KAChE,CAAE1C,IAAK,YAAayC,OAAQ,KAAMC,UAAW,KAC7C,CAAE1C,IAAK,WAAYyC,OAAQ,+BAAgCC,UAAW,KACtE,CAAE1C,IAAK,aAAcyC,OAAQ,kCAAmCC,UAAW,KAC3E,CAAE1C,IAAK,0BAA2ByC,OAAQ,8BAA+BC,UAAW,KACpF,CAAE1C,IAAK,YAAayC,OAAQ,gCAAiCC,UAAW,KACxE,CAAE1C,IAAK,aAAcyC,OAAQ,YAAaC,UAAW,KACrD,CAAE1C,IAAK,WAAYyC,OAAQ,WAAYC,UAAW,KAClD,CAAE1C,IAAK,SAAUyC,OAAQ,sBAAuBC,UAAW,KAC3D,CAAE1C,IAAK,aAAcyC,OAAQ,iCAAkCC,UAAW,KAC1E,CAAE1C,IAAK,OAAQyC,OAAQ,cAAeC,UAAW,KACjD,CAAE1C,IAAK,SAAUyC,OAAQ,SAAUC,UAAW,KAC9C,CAAE1C,IAAK,QAASyC,OAAQ,4BAA6BC,UAAW,KAChE,CAAE1C,IAAK,QAASyC,OAAQ,eAAgBC,UAAW,KAInD,CAAE1C,IAAK,SAAUyC,OAAQ,2BAA4BC,UAAW,KAChE,CAAE1C,IAAK,WAAYyC,OAAQ,+BAAgCC,UAAW,KACtE,CAAE1C,IAAK,aAAcyC,OAAQ,kBAAmBC,UAAW,KAC3D,CAAE1C,IAAK,OAAQyC,OAAQ,oBAAqBC,UAAW,KAIvD,CAAE1C,IAAK,UAAWyC,OAAQ,sBAAuBC,UAAW,MAI5D,CAAE1C,IAAK,aAAcyC,OAAQ,kCAAmCC,UAAW,KAC3E,CAAE1C,IAAK,QAASyC,OAAQ,2BAA4BC,UAAW,KAC/D,CAAE1C,IAAK,YAAayC,OAAQ,KAAMC,UAAW,KAC7C,CAAE1C,IAAK,WAAYyC,OAAQ,4BAA6BC,UAAW,KACnE,CAAE1C,IAAK,SAAUyC,OAAQ,sBAAuBC,UAAW,KAC3D,CAAE1C,IAAK,WAAYyC,OAAQ,4BAA6BC,UAAW,KACnE,CAAE1C,IAAK,oBAAqByC,OAAQ,iCAAkCC,UAAW,KACjF,CAAE1C,IAAK,WAAYyC,OAAQ,WAAYC,UAAW,KAClD,CAAE1C,IAAK,UAAWyC,OAAQ,8BAA+BC,UAAW,KACpE,CAAE1C,IAAK,eAAgByC,OAAQ,4BAA6BC,UAAW,KACvE,CAAE1C,IAAK,UAAWyC,OAAQ,4BAA6BC,UAAW,KAClE,CAAE1C,IAAK,YAAayC,OAAQ,gCAAiCC,UAAW,KACxE,CAAE1C,IAAK,WAAYyC,OAAQ,+BAAgCC,UAAW,KACtE,CAAE1C,IAAK,aAAcyC,OAAQ,0BAA2BC,UAAW,KAInE,CAAE1C,IAAK,WAAYyC,OAAQ,WAAYC,UAAW,KAClD,CAAE1C,IAAK,UAAWyC,OAAQ,4BAA6BC,UAAW,KAClE,CAAE1C,IAAK,YAAayC,OAAQ,WAAYC,UAAW,KACnD,CAAE1C,IAAK,6BAA8ByC,OAAQ,OAAQC,UAAW,KAChE,CAAE1C,IAAK,SAAUyC,OAAQ,2BAA4BC,UAAW,KAChE,CAAE1C,IAAK,OAAQyC,OAAQ,oBAAqBC,UAAW,KACvD,CAAE1C,IAAK,SAAUyC,OAAQ,6BAA8BC,UAAW,KAClE,CAAE1C,IAAK,YAAayC,OAAQ,yBAA0BC,UAAW,KACjE,CAAE1C,IAAK,yBAA0ByC,OAAQ,aAAcC,UAAW,KAClE,CAAE1C,IAAK,UAAWyC,OAAQ,gBAAiBC,UAAW,MACtD,CAAE1C,IAAK,UAAWyC,OAAQ,4BAA6BC,UAAW,KAClE,CAAE1C,IAAK,UAAWyC,OAAQ,8BAA+BC,UAAW,KACpE,CAAE1C,IAAK,YAAayC,OAAQ,kBAAmBC,UAAW,KAC1D,CAAE1C,IAAK,aAAcyC,OAAQ,0BAA2BC,UAAW,KACnE,CAAE1C,IAAK,YAAayC,OAAQ,8BAA+BC,UAAW,KACtE,CAAE1C,IAAK,aAAcyC,OAAQ,6BAA8BC,UAAW,KACtE,CAAE1C,IAAK,aAAcyC,OAAQ,8BAA+BC,UAAW,KACvE,CAAE1C,IAAK,QAASyC,OAAQ,qBAAsBC,UAAW,KACzD,CAAE1C,IAAK,OAAQyC,OAAQ,oBAAqBC,UAAW,KACvD,CAAE1C,IAAK,cAAeyC,OAAQ,kCAAmCC,UAAW,KAC5E,CAAE1C,IAAK,UAAWyC,OAAQ,4BAA6BC,UAAW,KAClE,CAAE1C,IAAK,UAAWyC,OAAQ,4BAA6BC,UAAW,KAClE,CAAE1C,IAAK,SAAUyC,OAAQ,2BAA4BC,UAAW,KAChE,CAAE1C,IAAK,OAAQyC,OAAQ,cAAeC,UAAW,KACjD,CAAE1C,IAAK,WAAYyC,OAAQ,wBAAyBC,UAAW,KAC/D,CAAE1C,IAAK,cAAeyC,OAAQ,cAAeC,UAAW,KAIxD,CAAE1C,IAAK,UAAWyC,OAAQ,sBAAuBC,UAAW,KAC5D,CAAE1C,IAAK,WAAYyC,OAAQ,+BAAgCC,UAAW,KAItE,CAAE1C,IAAK,WAAYyC,OAAQ,wBAAyBC,UAAW,KAC/D,CAAE1C,IAAK,SAAUyC,OAAQ,2BAA4BC,UAAW,KAChE,CAAE1C,IAAK,SAAUyC,OAAQ,6BAA8BC,UAAW,KAClE,CAAE1C,IAAK,QAASyC,OAAQ,4BAA6BC,UAAW,KAChE,CAAE1C,IAAK,WAAYyC,OAAQ,yBAA0BC,UAAW,KAChE,CAAE1C,IAAK,cAAeyC,OAAQ,cAAeC,UAAW,KACxD,CAAE1C,IAAK,iBAAkByC,OAAQ,iBAAkBC,UAAW,KAC9D,CAAE1C,IAAK,YAAayC,OAAQ,yBAA0BC,UAAW,KACjE,CAAE1C,IAAK,SAAUyC,OAAQ,2BAA4BC,UAAW,KAChE,CAAE1C,IAAK,SAAUyC,OAAQ,uCAAwCC,UAAW,KAC5E,CAAE1C,IAAK,YAAayC,OAAQ,yBAA0BC,UAAW,KACjE,CAAE1C,IAAK,SAAUyC,OAAQ,qBAAsBC,UAAW,KAC1D,CAAE1C,IAAK,SAAUyC,OAAQ,qBAAsBC,UAAW,KAC1D,CAAE1C,IAAK,SAAUyC,OAAQ,SAAUC,UAAW,KAC9C,CAAE1C,IAAK,UAAWyC,OAAQ,2BAA4BC,UAAW,KACjE,CAAE1C,IAAK,OAAQyC,OAAQ,oBAAqBC,UAAW,KACvD,CAAE1C,IAAK,aAAcyC,OAAQ,0BAA2BC,UAAW,KACnE,CAAE1C,IAAK,QAASyC,OAAQ,0BAA2BC,UAAW,KAC9D,CAAE1C,IAAK,UAAWyC,OAAQ,8BAA+BC,UAAW,KACpE,CAAE1C,IAAK,OAAQyC,OAAQ,yBAA0BC,UAAW,KAC5D,CAAE1C,IAAK,OAAQyC,OAAQ,oBAAqBC,UAAW,KACvD,CAAE1C,IAAK,YAAayC,OAAQ,YAAaC,UAAW,KACpD,CAAE1C,IAAK,WAAYyC,OAAQ,kBAAmBC,UAAW,KACzD,CAAE1C,IAAK,aAAcyC,OAAQ,oBAAqBC,UAAW,KAC7D,CAAE1C,IAAK,SAAUyC,OAAQ,sBAAuBC,UAAW,KAC3D,CAAE1C,IAAK,SAAUyC,OAAQ,uBAAwBC,UAAW,KAC5D,CAAE1C,IAAK,QAASyC,OAAQ,4BAA6BC,UAAW,KAChE,CAAE1C,IAAK,SAAUyC,OAAQ,6BAA8BC,UAAW,KAClE,CAAE1C,IAAK,SAAUyC,OAAQ,gBAAiBC,UAAW,KACrD,CAAE1C,IAAK,QAASyC,OAAQ,0BAA2BC,UAAW,KAC9D,CAAE1C,IAAK,MAAOyC,OAAQ,mBAAoBC,UAAW,KACrD,CAAE1C,IAAK,UAAWyC,OAAQ,8BAA+BC,UAAW,KACpE,CAAE1C,IAAK,QAASyC,OAAQ,4BAA6BC,UAAW,KAChE,CAAE1C,IAAK,UAAWyC,OAAQ,wBAAyBC,UAAW,IAC9D,CAAE1C,IAAK,UAAWyC,OAAQ,4BAA6BC,UAAW,KAClE,CAAE1C,IAAK,YAAayC,OAAQ,qBAAsBC,UAAW,KAC7D,CAAE1C,IAAK,MAAOyC,OAAQ,uBAAwBC,UAAW,KACzD,CAAE1C,IAAK,YAAayC,OAAQ,8BAA+BC,UAAW,KACtE,CAAE1C,IAAK,UAAWyC,OAAQ,8BAA+BC,UAAW,KACpE,CAAE1C,IAAK,WAAYyC,OAAQ,+BAAgCC,UAAW,KACtE,CAAE1C,IAAK,YAAayC,OAAQ,wCAAyCC,UAAW,KAChF,CAAE1C,IAAK,UAAWyC,OAAQ,cAAeC,UAAW,KACpD,CAAE1C,IAAK,aAAcyC,OAAQ,aAAcC,UAAW,KACtD,CAAE1C,IAAK,SAAUyC,OAAQ,6BAA8BC,UAAW,KAClE,CAAE1C,IAAK,MAAOyC,OAAQ,0BAA2BC,UAAW,KAC5D,CAAE1C,IAAK,eAAgByC,OAAQ,4BAA6BC,UAAW,KACvE,CAAE1C,IAAK,YAAayC,OAAQ,8BAA+BC,UAAW,KACtE,CAAE1C,IAAK,SAAUyC,OAAQ,sBAAuBC,UAAW,KAC3D,CAAE1C,IAAK,aAAcyC,OAAQ,MAAOC,UAAW,KAC/C,CAAE1C,IAAK,cAAeyC,OAAQ,kBAAmBC,UAAW,KAC5D,CAAE1C,IAAK,MAAOyC,OAAQ,6BAA8BC,UAAW,KAC/D,CAAE1C,IAAK,oBAAqByC,OAAQ,qCAAsCC,UAAW,KACrF,CAAE1C,IAAK,WAAYyC,OAAQ,wBAAyBC,UAAW,KAC/D,CAAE1C,IAAK,WAAYyC,OAAQ,+BAAgCC,UAAW,KACtE,CAAE1C,IAAK,WAAYyC,OAAQ,+BAAgCC,UAAW,KACtE,CAAE1C,IAAK,OAAQyC,OAAQ,yBAA0BC,UAAW,KAC5D,CAAE1C,IAAK,QAASyC,OAAQ,eAAgBC,UAAW,KACnD,CAAE1C,IAAK,SAAUyC,OAAQ,6BAA8BC,UAAW,KAClE,CAAE1C,IAAK,uBAAwByC,OAAQ,kCAAmCC,UAAW,KACrF,CAAE1C,IAAK,uBAAwByC,OAAQ,gBAAiBC,UAAW,KACnE,CAAE1C,IAAK,QAASyC,OAAQ,yBAA0BC,UAAW,KAC7D,CAAE1C,IAAK,QAASyC,OAAQ,qBAAsBC,UAAW,KACzD,CAAE1C,IAAK,OAAQyC,OAAQ,yCAA0CC,UAAW,MAKxEtX,GAAQC,EAAAA,EAAAA,MACRyG,GAAgBtG,EAAAA,EAAAA,KAAS,IAAMJ,EAAMyG,MAAMC,gBAEjD,SAAS6Q,EAAMC,GACb,GAAuB,IAAnBA,EAAQ5P,OAAc,CACxB,MAAMY,EAAS4O,EAAmBpU,MAAMyU,GAAMD,EAAQ,GAAGE,WAAWD,EAAEJ,UACtE,GAAI7O,EAAQ,CACV,MAAMmP,EAAsBH,EAAQ,GAAGI,UAAUpP,EAAO6O,OAAOzP,QAC/D,GAAI+P,EAAoBD,WAAWlP,EAAO8O,WACxC,MAAO,CACL3V,KAAM,eACNiT,IAAKpM,EAAOoM,IACZiD,uBAAwB,GACxBC,iBAAkBH,EAAoBC,UAAUpP,EAAO8O,UAAU1P,SAGrE,MAAMmQ,EAAiBJ,EAAoBK,QAAQxP,EAAO8O,WAC1D,MAAO,CACL3V,KAAM,eACNiT,IAAKpM,EAAOoM,IACZiD,uBAAwBF,EAAoBC,UAAU,EAAGG,GACzDD,iBAAkBH,EAAoBC,UAAUG,EAAiB,G,EAKvE,MAAO,CACLpW,KAAM,QACN6V,UAEJ,CAEA,MAAMlF,GAAmBlS,EAAAA,EAAAA,KAAS,KAChC,MAAM6X,EAAY,CAChBC,aAAc5Q,QACd2P,IAAK3P,QACL2H,MAAO3H,SAoBT,OAlBAnE,EAAMiM,QAAQmB,SAASC,OACpB3H,QAAQ0J,GAA+D,QAA3BA,EAAKxC,OAAOhN,aACxDoV,SAASlV,IACR,GAAIA,EAAE+T,UACJiB,EAAUhB,IAAInJ,KAAK,CAAEoH,MAAOjS,EAAE+T,UAAW9G,IAAKjN,EAAE8M,OAAOG,WAClD,GAAIjN,EAAE8M,OAAOU,IAAK,CACvB,MAAM2H,EAASb,EAAMtU,EAAE8M,OAAOyH,SACV,iBAAhBY,EAAOzW,KACTsW,EAAUC,aAAapK,KAAK,CAAEoC,IAAKjN,EAAE8M,OAAOG,OAAQkI,IAEpDH,EAAUhJ,MAAMnB,KAAK,CACnB2C,IAAKxN,EAAE8M,OAAOU,IAAKP,IAAKjN,EAAE8M,OAAOG,IAAKwC,WAAYzP,EAAEyP,cAAe0F,G,KAM7EH,EAAUC,aAAa1C,MAAK,CAAC6C,EAAGC,IAAMD,EAAEzD,IAAI2D,cAAcD,EAAE1D,OACrDqD,CAAS,IAGlB,MAAO,CAACxY,EAAUC,MACRC,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,MAAO9B,GAAY,EAC1D6B,EAAAA,EAAAA,IAAOqG,KACH/G,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAa4S,GAAY,CACtCjS,IAAK,EACL6O,QAAStQ,EAAQsQ,SAChB,KAAM,EAAG,CAAC,cACZ/O,EAAAA,EAAAA,IAAOiS,GAAkB4F,aAAatQ,QAASvH,EAAAA,EAAAA,IAAOiS,GAAkBrD,MAAMrH,QAASvH,EAAAA,EAAAA,IAAOiS,GAAkB2E,IAAIrP,SAAW,IAC7HjI,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,MAAOmE,GAAY,CACF,KAAjDpE,EAAAA,EAAAA,IAAOiS,GAAkB4F,aAAatQ,SAClCjI,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,KAAMqE,GAAY,iCACrDjE,EAAAA,EAAAA,IAAoB,IAAI,GACsB,KAAjDL,EAAAA,EAAAA,IAAOiS,GAAkB4F,aAAatQ,SAClCjI,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,MAAOsE,GAAY,GACnDjF,EAAAA,EAAAA,KAAW,IAAOW,EAAAA,EAAAA,IAAoB0B,EAAAA,GAAW,MAAMqG,EAAAA,EAAAA,KAAYhI,EAAAA,EAAAA,IAAOiS,GAAkB4F,cAAc,CAACnI,EAAQxH,MAC1G5I,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,MAAO,CAC/CC,IAAKgI,EACL9H,MAAO,yGACN,EACDhC,EAAAA,EAAAA,GAAoB,MAAO,CACzByC,IAAK,8BAAgC6O,EAAO6E,IAAM,OAClDlL,IAAK,GAAGqG,EAAO6E,WACfvQ,MAAO,MACPC,OAAQ,MACR7D,MAAO,gBACN,KAAM,EAAGoE,KACZpG,EAAAA,EAAAA,GAAoB,MAAOqG,GAAY,EACrCrG,EAAAA,EAAAA,GAAoB,OAAQsG,IAAYb,EAAAA,EAAAA,IAAiB6L,EAAO6E,KAAM,GACnC,KAAlC7E,EAAO8H,yBACHlY,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,IAAK0E,IAAYd,EAAAA,EAAAA,IAAiB6L,EAAO8H,wBAAyB,KACrGnX,EAAAA,EAAAA,IAAoB,IAAI,IAC5BjC,EAAAA,EAAAA,GAAoB,IAAKwG,IAAYf,EAAAA,EAAAA,IAAiB6L,EAAO+H,kBAAmB,IAChFrZ,EAAAA,EAAAA,GAAoB,IAAKyG,GAAa,EACpCzG,EAAAA,EAAAA,GAAoB,QAAS0G,GAAa,EACxClB,EAAAA,EAAAA,IAAiB,mBACjBhC,EAAAA,EAAAA,IAAa2Q,GAAU,CACrBpB,QAASzB,EAAOG,KACf,KAAM,EAAG,CAAC,uBAKnB,UAENxP,EAAAA,EAAAA,IAAoB,IAAI,GACa,KAAxCL,EAAAA,EAAAA,IAAOiS,GAAkB2E,IAAIrP,SACzBjI,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB0B,EAAAA,GAAW,CAAEzB,IAAK,GAAK,CACxD6E,IACAnD,EAAAA,EAAAA,IAAauW,GAAY,CACvBpV,OAAQtE,EAAQsE,OAChBgM,QAAStQ,EAAQsQ,SAChB,KAAM,EAAG,CAAC,SAAU,aACtB,MACH1O,EAAAA,EAAAA,IAAoB,IAAI,GACe,KAA1CL,EAAAA,EAAAA,IAAOiS,GAAkBrD,MAAMrH,QAAiE,KAAjDvH,EAAAA,EAAAA,IAAOiS,GAAkB4F,aAAatQ,SACjFjI,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,KAAM+E,GAAa,uBACtD3E,EAAAA,EAAAA,IAAoB,IAAI,GACe,KAA1CL,EAAAA,EAAAA,IAAOiS,GAAkBrD,MAAMrH,SAC3BjI,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,QAASgF,GAAa,CACvDC,GACAC,IACA/G,EAAAA,EAAAA,GAAoB,QAAS,KAAM,GAChCkB,EAAAA,EAAAA,KAAW,IAAOW,EAAAA,EAAAA,IAAoB0B,EAAAA,GAAW,MAAMqG,EAAAA,EAAAA,KAAYhI,EAAAA,EAAAA,IAAOiS,GAAkBrD,OAAO,CAACc,EAAQxH,MACnG5I,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,KAAM,CAC9CC,IAAKgI,EACL9H,MAAO,SACN,EACDhC,EAAAA,EAAAA,GAAoB,KAAMgH,GAAa,GACpC9F,EAAAA,EAAAA,KAAW,IAAOW,EAAAA,EAAAA,IAAoB0B,EAAAA,GAAW,MAAMqG,EAAAA,EAAAA,IAAY0H,EAAOyH,SAAS,CAACiB,EAAQlQ,MACnF5I,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,OAAQ,CAAEC,IAAKgI,GAAS,CAChE8C,IACApH,EAAAA,EAAAA,KAAiBC,EAAAA,EAAAA,IAAiBuU,GAAS,GAC3CnN,QAEA,OACJrJ,EAAAA,EAAAA,IAAawQ,GAAiB,CAC5BT,MAAOjC,EAAO2C,YACb,KAAM,EAAG,CAAC,WACbzQ,EAAAA,EAAAA,IAAa0Q,GAAM,CACjB/B,QAASb,EAAOU,IAChBhQ,MAAO,2CACN,KAAM,EAAG,CAAC,eAEfhC,EAAAA,EAAAA,GAAoB,KAAM,KAAM,EAC9BwD,EAAAA,EAAAA,IAAa2Q,GAAU,CACrBpB,QAASzB,EAAOG,KACf,KAAM,EAAG,CAAC,mBAGf,YAGRxP,EAAAA,EAAAA,IAAoB,IAAI,QAE7Bf,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,MAAOiL,GAAa,4BAGjE,IChZA,MAAM,GAAc,GAEpB,UCFA,MAAM/M,GAAa,CAAE+B,IAAK,GACpBkE,IAA0BhG,EAAAA,EAAAA,GAAoB,WAAY,KAAM,EACvDA,EAAAA,EAAAA,GAAoB,MAAO,CAAEgC,MAAO,WACpChC,EAAAA,EAAAA,GAAoB,MAAO,CAAEgC,MAAO,YAC/C,GACEkE,IAA0BlG,EAAAA,EAAAA,GAAoB,QAAS,KAAM,EACpDA,EAAAA,EAAAA,GAAoB,KAAM,CAAEgC,MAAO,wCAA0C,EAC3EhC,EAAAA,EAAAA,GAAoB,KAAM,CACrCyT,MAAO,MACPzR,MAAO,sBACN,gBACUhC,EAAAA,EAAAA,GAAoB,KAAM,CACrCyT,MAAO,MACPzR,MAAO,sBACN,qBAEH,GACEmE,GAAa,CAAEnE,MAAO,QACtBoE,GAAa,CAAEpE,MAAO,QACtBqE,GAAa,CAAEvE,IAAK,GACpBwE,IAA0BtG,EAAAA,EAAAA,GAAoB,OAAQ,KAAM,wBAAyB,GAiB3F,QAA4BE,EAAAA,EAAAA,IAAiB,CAC3CC,OAAQ,YACRuE,MAAO,CACPiM,QAAS,CACPzN,KAAM8G,OACNnF,UAAU,GAEZF,OAAQ,CACNzB,KAAM0B,OACNC,UAAU,IAGZzE,MAAMC,GAER,MAAMqE,EAAQrE,EAIRkB,GAAQC,EAAAA,EAAAA,MACRyG,GAAgBtG,EAAAA,EAAAA,KAAS,IAAMJ,EAAMyG,MAAMC,gBAE3C4L,GAAmBlS,EAAAA,EAAAA,KAAS,KAChC,MAAM6X,EAAgC9U,EAAMiM,QAAQmB,SAASC,OAAO3H,QAAQ0J,GAA8D,OAA3BA,EAAKxC,OAAOhN,aAC3H,OAAOkV,CAAS,IAEZS,GAAetY,EAAAA,EAAAA,KAAS,IAAM+C,EAAMC,OAAOwU,UAAUzU,EAAMC,OAAO4U,QAAQ,KAAO,KAEvF,MAAO,CAACvY,EAAUC,KACRW,EAAAA,EAAAA,IAAOqG,KACV/G,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAa4S,GAAY,CACtCjS,IAAK,EACL6O,QAAStQ,EAAQsQ,SAChB,KAAM,EAAG,CAAC,aACwB,KAApC/O,EAAAA,EAAAA,IAAOiS,GAAkB1K,SACvBjI,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,QAAS9B,GAAY,CACtDiG,GACAE,IACAlG,EAAAA,EAAAA,GAAoB,QAAS,KAAM,GAChCkB,EAAAA,EAAAA,KAAW,IAAOW,EAAAA,EAAAA,IAAoB0B,EAAAA,GAAW,MAAMqG,EAAAA,EAAAA,KAAYhI,EAAAA,EAAAA,IAAOiS,IAAmB,CAACvC,EAAQxH,MAC7F5I,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,KAAM,CAC9CC,IAAKgI,EACL9H,MAAO,SACN,EACDhC,EAAAA,EAAAA,GAAoB,KAAMmG,GAAY,EACpCnG,EAAAA,EAAAA,GAAoB,OAAQ,KAAM,EAChCwD,EAAAA,EAAAA,IAAawM,EAAgB,CAC3BrL,OAAQ2M,EAAOA,OAAOiE,OACtBvT,MAAO,qDACN,KAAM,EAAG,CAAC,cAEfwB,EAAAA,EAAAA,IAAawQ,GAAiB,CAC5BT,MAAOjC,EAAO2C,YACb,KAAM,EAAG,CAAC,WACbzQ,EAAAA,EAAAA,IAAa0Q,GAAM,CACjB/B,QAASb,EAAOA,OAAOiE,OACvBvT,MAAO,2CACN,KAAM,EAAG,CAAC,eAEfhC,EAAAA,EAAAA,GAAoB,KAAMoG,GAAY,EACpC5C,EAAAA,EAAAA,IAAa2Q,GAAU,CACrBpB,QAASzB,EAAOA,OAAOG,KACtB,KAAM,EAAG,CAAC,mBAGf,aAGPvQ,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,MAAOwE,GAAY,CACpDC,IACA9C,EAAAA,EAAAA,IAAakV,GAAAA,EAAO,CAAExV,KAAM,QAAU,CACpC6B,SAASM,EAAAA,EAAAA,KAAS,IAAM,EACtBG,EAAAA,EAAAA,IAAiB,6GACjBhC,EAAAA,EAAAA,IAAawM,EAAgB,CAC3BrL,QAAQ/C,EAAAA,EAAAA,IAAOqY,GACfjY,MAAO,iCACN,KAAM,EAAG,CAAC,YACbwD,EAAAA,EAAAA,IAAiB,SAEnBE,EAAG,MAIf,ICvHA,MAAM,GAAc,GAEpB,UCFA,MAAM3F,GAAa,CAAE+B,IAAK,GACpBkE,IAA0BhG,EAAAA,EAAAA,GAAoB,WAAY,KAAM,EACvDA,EAAAA,EAAAA,GAAoB,MAAO,CAAEgC,MAAO,WACpChC,EAAAA,EAAAA,GAAoB,MAAO,CAAEgC,MAAO,WACpChC,EAAAA,EAAAA,GAAoB,MAAO,CAAEgC,MAAO,YAC/C,GACEkE,IAA0BlG,EAAAA,EAAAA,GAAoB,QAAS,KAAM,EACpDA,EAAAA,EAAAA,GAAoB,KAAM,CAAEgC,MAAO,wCAA0C,EAC3EhC,EAAAA,EAAAA,GAAoB,KAAM,CACrCyT,MAAO,MACPzR,MAAO,sBACN,gBACUhC,EAAAA,EAAAA,GAAoB,KAAM,CACrCyT,MAAO,MACPzR,MAAO,sBACN,aACUhC,EAAAA,EAAAA,GAAoB,KAAM,CACrCyT,MAAO,MACPzR,MAAO,sBACN,qBAEH,GACEmE,GAAa,CAAEnE,MAAO,QACtBoE,GAAa,CAAEtE,IAAK,GACpBuE,GAAa,CAAErE,MAAO,QACtBsE,GAAa,CACjBxE,IAAK,EACLE,MAAO,qGAEHuE,GAAa,CAAEvE,MAAO,QACtBwE,GAAa,CAAE1E,IAAK,GAiB1B,QAA4B5B,EAAAA,EAAAA,IAAiB,CAC3CC,OAAQ,YACRuE,MAAO,CACPiM,QAAS,CACPzN,KAAM8G,OACNnF,UAAU,IAGZzE,MAAMC,GAER,MAAMqE,EAAQrE,EAIRkB,GAAQC,EAAAA,EAAAA,MACRyG,GAAgBtG,EAAAA,EAAAA,KAAS,IAAMJ,EAAMyG,MAAMC,gBAE3C4L,GAAmBlS,EAAAA,EAAAA,KAAS,KAChC,MAAM6X,EAAgC9U,EAAMiM,QAAQmB,SAASC,OAAO3H,QAAQ0J,GAA8D,OAA3BA,EAAKxC,OAAOhN,aAG3H,OAFAkV,EAAUzC,MAAK,CAAC6C,EAAGC,IAAMD,EAAEtI,OAAO4I,SAAWL,EAAEvI,OAAO4I,WAE/CV,CAAS,IAGZW,GAAcxY,EAAAA,EAAAA,KAAS,IAAMwJ,KAAKtD,OAAOgM,EAAiBxK,MAAMpF,KAAKO,GAAMA,EAAE8M,OAAO4I,cAE1F,MAAO,CAAClZ,EAAUC,KACRW,EAAAA,EAAAA,IAAOqG,KACV/G,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAa4S,GAAY,CACtCjS,IAAK,EACL6O,QAAStQ,EAAQsQ,SAChB,KAAM,EAAG,CAAC,cACZ/O,EAAAA,EAAAA,IAAOiS,GAAkB1K,SACvBjI,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,QAAS9B,GAAY,CACtDiG,GACAE,IACAlG,EAAAA,EAAAA,GAAoB,QAAS,KAAM,GAChCkB,EAAAA,EAAAA,KAAW,IAAOW,EAAAA,EAAAA,IAAoB0B,EAAAA,GAAW,MAAMqG,EAAAA,EAAAA,KAAYhI,EAAAA,EAAAA,IAAOiS,IAAmB,CAACvC,EAAQxH,MAC7F5I,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,KAAM,CAC9CC,IAAKgI,EACL9H,MAAO,SACN,EACDhC,EAAAA,EAAAA,GAAoB,KAAMmG,GAAY,EACnCvE,EAAAA,EAAAA,IAAOhC,EAAAA,GAAPgC,CAAwBvB,EAAQsQ,QAAQgB,MAAMhN,OAAQ2M,EAAOA,OAAOiE,UAChErU,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,OAAQuE,IAAYX,EAAAA,EAAAA,IAAiB6L,EAAOA,OAAOiE,QAAS,MAC9FrU,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAa6O,EAAgB,CAC1ClO,IAAK,EACL6C,OAAQ2M,EAAOA,OAAOiE,OACtBvT,MAAO,+DACN,KAAM,EAAG,CAAC,aACjBwB,EAAAA,EAAAA,IAAawQ,GAAiB,CAC5BT,MAAOjC,EAAO2C,YACb,KAAM,EAAG,CAAC,WACbzQ,EAAAA,EAAAA,IAAa0Q,GAAM,CACjB/B,QAASb,EAAOA,OAAOiE,OACvBvT,MAAO,2CACN,KAAM,EAAG,CAAC,eAEfhC,EAAAA,EAAAA,GAAoB,KAAMqG,GAAY,EACpCrG,EAAAA,EAAAA,GAAoB,OAAQ,MAAMyF,EAAAA,EAAAA,IAAiB6L,EAAOA,OAAO4I,UAAW,IAC5E1U,EAAAA,EAAAA,MACC8L,EAAOA,OAAO4I,YAAatY,EAAAA,EAAAA,IAAOuY,KAC9BjZ,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,OAAQyE,GAAY,cACvDrE,EAAAA,EAAAA,IAAoB,IAAI,MAE9BjC,EAAAA,EAAAA,GAAoB,KAAMuG,GAAY,EACpC/C,EAAAA,EAAAA,IAAa2Q,GAAU,CACrBpB,QAASzB,EAAOA,OAAOG,KACtB,KAAM,EAAG,CAAC,mBAGf,aAGPvQ,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,MAAO2E,GAAY,0BAE9D,IC3HA,MAAM,GAAc,GAEpB,UCFA,MAAMzG,GAAa,CAAE+B,IAAK,GACpBkE,IAA0BhG,EAAAA,EAAAA,GAAoB,WAAY,KAAM,EACvDA,EAAAA,EAAAA,GAAoB,MAAO,CAAE+U,MAAO,CAAC,MAAQ,UAC7C/U,EAAAA,EAAAA,GAAoB,MAAO,CAAE+U,MAAO,CAAC,MAAQ,UAC7C/U,EAAAA,EAAAA,GAAoB,MAAO,CAAE+U,MAAO,CAAC,MAAQ,UAC7C/U,EAAAA,EAAAA,GAAoB,MAAO,CAAE+U,MAAO,CAAC,MAAQ,UAC7C/U,EAAAA,EAAAA,GAAoB,MAAO,CAAE+U,MAAO,CAAC,MAAQ,WACxD,GACE7O,IAA0BlG,EAAAA,EAAAA,GAAoB,QAAS,KAAM,EACpDA,EAAAA,EAAAA,GAAoB,KAAM,KAAM,EAC9BA,EAAAA,EAAAA,GAAoB,KAAM,CACrCyT,MAAO,MACPzR,MAAO,sBACN,aACUhC,EAAAA,EAAAA,GAAoB,KAAM,CACrCyT,MAAO,MACPzR,MAAO,sBACN,WACUhC,EAAAA,EAAAA,GAAoB,KAAM,CACrCyT,MAAO,MACPzR,MAAO,sBACN,SACUhC,EAAAA,EAAAA,GAAoB,KAAM,CACrCyT,MAAO,MACPzR,MAAO,sBACN,WACUhC,EAAAA,EAAAA,GAAoB,KAAM,CACrCyT,MAAO,MACPzR,MAAO,sBACN,qBAEH,GACEmE,GAAa,CACjBrE,IAAK,EACLE,MAAO,yBAEHoE,GAAa,CAAEtE,IAAK,GAiB1B,QAA4B5B,EAAAA,EAAAA,IAAiB,CAC3CC,OAAQ,aACRuE,MAAO,CACPiM,QAAS,CACPzN,KAAM8G,OACNnF,UAAU,IAGZzE,MAAMC,GAER,MAAMqE,EAAQrE,EAERiE,EAAaD,EAAc,OAI3B9C,GAAQC,EAAAA,EAAAA,MACRyG,GAAgBtG,EAAAA,EAAAA,KAAS,IAAMJ,EAAMyG,MAAMC,gBAE3C4L,GAAmBlS,EAAAA,EAAAA,KAAS,KAChC,MAAM6X,EAAiC9U,EAAMiM,QAAQmB,SAASC,OAAO3H,QAAQ0J,GAAoCA,EAAKxC,OAAOhN,aAAeA,EAAWJ,QAGvJ,OAFAsV,EAAUzC,MAAK,CAAC6C,EAAGC,IAAMD,EAAEtI,OAAO4I,SAAWL,EAAEvI,OAAO4I,WAE/CV,CAAS,IAGZW,GAAcxY,EAAAA,EAAAA,KAAS,IAAMwJ,KAAKtD,OAAOgM,EAAiBxK,MAAMpF,KAAKO,GAAMA,EAAE8M,OAAO4I,cAE1F,MAAO,CAAClZ,EAAUC,KACRW,EAAAA,EAAAA,IAAOqG,KACV/G,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAa4S,GAAY,CACtCjS,IAAK,EACL6O,QAAStQ,EAAQsQ,SAChB,KAAM,EAAG,CAAC,cACZ/O,EAAAA,EAAAA,IAAOiS,GAAkB1K,SACvBjI,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,QAAS9B,GAAY,CACtDiG,GACAE,IACAlG,EAAAA,EAAAA,GAAoB,QAAS,KAAM,GAChCkB,EAAAA,EAAAA,KAAW,IAAOW,EAAAA,EAAAA,IAAoB0B,EAAAA,GAAW,MAAMqG,EAAAA,EAAAA,KAAYhI,EAAAA,EAAAA,IAAOiS,IAAmB,CAACvC,EAAQxH,MAC7F5I,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,KAAM,CAC9CC,IAAKgI,EACL9H,MAAO,SACN,EACDhC,EAAAA,EAAAA,GAAoB,KAAM,KAAM,EAC9BA,EAAAA,EAAAA,GAAoB,OAAQ,MAAMyF,EAAAA,EAAAA,IAAiB6L,EAAOA,OAAO4I,UAAW,IAC5E1U,EAAAA,EAAAA,MACC8L,EAAOA,OAAO4I,YAAatY,EAAAA,EAAAA,IAAOuY,KAC9BjZ,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,OAAQsE,GAAY,cACvDlE,EAAAA,EAAAA,IAAoB,IAAI,MAE9BjC,EAAAA,EAAAA,GAAoB,KAAM,MAAMyF,EAAAA,EAAAA,IAAiB6L,EAAOA,OAAO8I,QAAS,IACxEpa,EAAAA,EAAAA,GAAoB,KAAM,MAAMyF,EAAAA,EAAAA,IAAiB6L,EAAOA,OAAO+I,MAAO,IACtEra,EAAAA,EAAAA,GAAoB,KAAM,KAAM,EAC9BwD,EAAAA,EAAAA,IAAawM,EAAgB,CAC3BrL,OAAQ2M,EAAOA,OAAOiE,OACtBvT,MAAO,qDACN,KAAM,EAAG,CAAC,YACbwB,EAAAA,EAAAA,IAAawQ,GAAiB,CAC5BT,MAAOjC,EAAO2C,YACb,KAAM,EAAG,CAAC,WACbzQ,EAAAA,EAAAA,IAAa0Q,GAAM,CACjB/B,QAASb,EAAOA,OAAOiE,OACvBvT,MAAO,2CACN,KAAM,EAAG,CAAC,eAEfhC,EAAAA,EAAAA,GAAoB,KAAM,KAAM,EAC9BwD,EAAAA,EAAAA,IAAa2Q,GAAU,CACrBpB,QAASzB,EAAOA,OAAOG,KACtB,KAAM,EAAG,CAAC,mBAGf,aAGPvQ,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,MAAOuE,GAAY,OAAQX,EAAAA,EAAAA,KAAiB7D,EAAAA,EAAAA,IAAO0C,GAAYY,QAAU,UAAW,GAE/H,IClIA,MAAM,GAAc,GAEpB,U,QCFA,MAAMnF,GAAa,CAAE+B,IAAK,GACpBkE,IAA0BhG,EAAAA,EAAAA,GAAoB,WAAY,KAAM,EACvDA,EAAAA,EAAAA,GAAoB,MAAO,CAAE+U,MAAO,CAAC,MAAQ,UAC7C/U,EAAAA,EAAAA,GAAoB,MAAO,CAAE+U,MAAO,CAAC,MAAQ,UAC7C/U,EAAAA,EAAAA,GAAoB,MAAO,CAAE+U,MAAO,CAAC,MAAQ,UAC7C/U,EAAAA,EAAAA,GAAoB,MAAO,CAAE+U,MAAO,CAAC,MAAQ,WACxD,GACE7O,IAA0BlG,EAAAA,EAAAA,GAAoB,QAAS,KAAM,EACpDA,EAAAA,EAAAA,GAAoB,KAAM,CAAEgC,MAAO,wCAA0C,EAC3EhC,EAAAA,EAAAA,GAAoB,KAAM,CACrCyT,MAAO,MACPzR,MAAO,sBACN,UACUhC,EAAAA,EAAAA,GAAoB,KAAM,CACrCyT,MAAO,MACPzR,MAAO,sBACN,QACUhC,EAAAA,EAAAA,GAAoB,KAAM,CACrCyT,MAAO,MACPzR,MAAO,sBACN,UACUhC,EAAAA,EAAAA,GAAoB,KAAM,CACrCyT,MAAO,MACPzR,MAAO,sBACN,qBAEH,GACEmE,GAAa,CAAErE,IAAK,GAgB1B,QAA4B5B,EAAAA,EAAAA,IAAiB,CAC3CC,OAAQ,aACRuE,MAAO,CACPiM,QAAS,CACPzN,KAAM8G,OACNnF,UAAU,IAGZzE,MAAMC,GAER,MAAMqE,EAAQrE,EAIRkB,GAAQC,EAAAA,EAAAA,MACRyG,GAAgBtG,EAAAA,EAAAA,KAAS,IAAMJ,EAAMyG,MAAMC,gBAE3C3D,EAAaD,EAAc,OAE3BwP,GAAmBlS,EAAAA,EAAAA,KAAS,KAChC,MAAM6X,EAAiC9U,EAAMiM,QAAQmB,SAASC,OAAO3H,QAAQ0J,GAAoCA,EAAKxC,OAAOhN,aAAeA,EAAWJ,QACvJ,OAAOsV,CAAS,IAGlB,MAAO,CAACxY,EAAUC,KACRW,EAAAA,EAAAA,IAAOqG,KACV/G,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAa4S,GAAY,CACtCjS,IAAK,EACL6O,QAAStQ,EAAQsQ,SAChB,KAAM,EAAG,CAAC,cACZ/O,EAAAA,EAAAA,IAAOiS,GAAkB1K,SACvBjI,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,QAAS9B,GAAY,CACtDiG,GACAE,IACAlG,EAAAA,EAAAA,GAAoB,QAAS,KAAM,GAChCkB,EAAAA,EAAAA,KAAW,IAAOW,EAAAA,EAAAA,IAAoB0B,EAAAA,GAAW,MAAMqG,EAAAA,EAAAA,KAAYhI,EAAAA,EAAAA,IAAOiS,IAAmB,CAACvC,EAAQxH,MAC7F5I,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,KAAM,CAC9CC,IAAKgI,EACL9H,MAAO,SACN,EACDhC,EAAAA,EAAAA,GAAoB,KAAM,MAAMyF,EAAAA,EAAAA,IAAiB6L,EAAOA,OAAOgJ,OAAQ,IACvEta,EAAAA,EAAAA,GAAoB,KAAM,MAAMyF,EAAAA,EAAAA,IAAiB6L,EAAOA,OAAOiJ,KAAM,IACrEva,EAAAA,EAAAA,GAAoB,KAAM,KAAM,EAC9BwF,EAAAA,EAAAA,KAAiBC,EAAAA,EAAAA,IAAiB6L,EAAOA,OAAOjI,OAAS,IAAK,IAC9D7F,EAAAA,EAAAA,IAAawQ,GAAiB,CAC5BT,MAAOjC,EAAO2C,YACb,KAAM,EAAG,CAAC,WACbzQ,EAAAA,EAAAA,IAAa0Q,GAAM,CACjB/B,QAASb,EAAOA,OAAOjI,MACvBrH,MAAO,2CACN,KAAM,EAAG,CAAC,eAEfhC,EAAAA,EAAAA,GAAoB,KAAM,KAAM,EAC9BwD,EAAAA,EAAAA,IAAa2Q,GAAU,CACrBpB,QAASzB,EAAOA,OAAOG,KACtB,KAAM,EAAG,CAAC,mBAGf,aAGPvQ,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,MAAOsE,GAAY,OAAQV,EAAAA,EAAAA,KAAiB7D,EAAAA,EAAAA,IAAO0C,GAAYY,QAAU,UAAW,GAE/H,IC1GA,MAAM,GAAc,GAEpB,UCFA,MAAMnF,GAAa,CAAE+B,IAAK,GACpBkE,IAA0BhG,EAAAA,EAAAA,GAAoB,WAAY,KAAM,EACvDA,EAAAA,EAAAA,GAAoB,MAAO,CAAEgC,MAAO,WACpChC,EAAAA,EAAAA,GAAoB,MAAO,CAAEgC,MAAO,YAC/C,GACEkE,IAA0BlG,EAAAA,EAAAA,GAAoB,QAAS,KAAM,EACpDA,EAAAA,EAAAA,GAAoB,KAAM,CAAEgC,MAAO,wCAA0C,EAC3EhC,EAAAA,EAAAA,GAAoB,KAAM,CACrCyT,MAAO,MACPzR,MAAO,sBACN,mBACUhC,EAAAA,EAAAA,GAAoB,KAAM,CACrCyT,MAAO,MACPzR,MAAO,sBACN,qBAEH,GACEmE,GAAa,CAAEnE,MAAO,QACtBoE,GAAa,CAAEpE,MAAO,QACtBqE,GAAa,CAAEvE,IAAK,GAiB1B,QAA4B5B,EAAAA,EAAAA,IAAiB,CAC3CC,OAAQ,aACRuE,MAAO,CACPiM,QAAS,CACPzN,KAAM8G,OACNnF,UAAU,GAEZF,OAAQ,CACNzB,KAAM0B,OACNC,UAAU,IAGZzE,MAAMC,GAER,MAAMqE,EAAQrE,EAERiE,EAAaD,EAAc,OAI3B9C,GAAQC,EAAAA,EAAAA,MACRyG,GAAgBtG,EAAAA,EAAAA,KAAS,IAAMJ,EAAMyG,MAAMC,gBAE3C4L,GAAmBlS,EAAAA,EAAAA,KAAS,KAChC,MAAM6X,EAAiC9U,EAAMiM,QAAQmB,SAASC,OAAO3H,QAAQ0J,GAAoCA,EAAKxC,OAAOhN,aAAeA,EAAWJ,QACvJ,OAAOsV,CAAS,IAGlB,MAAO,CAACxY,EAAUC,KACRW,EAAAA,EAAAA,IAAOqG,KACV/G,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAa4S,GAAY,CACtCjS,IAAK,EACL6O,QAAStQ,EAAQsQ,SAChB,KAAM,EAAG,CAAC,aACwB,KAApC/O,EAAAA,EAAAA,IAAOiS,GAAkB1K,SACvBjI,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,QAAS9B,GAAY,CACtDiG,GACAE,IACAlG,EAAAA,EAAAA,GAAoB,QAAS,KAAM,GAChCkB,EAAAA,EAAAA,KAAW,IAAOW,EAAAA,EAAAA,IAAoB0B,EAAAA,GAAW,MAAMqG,EAAAA,EAAAA,KAAYhI,EAAAA,EAAAA,IAAOiS,IAAmB,CAACvC,EAAQxH,MAC7F5I,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,KAAM,CAC9CC,IAAKgI,EACL9H,MAAO,SACN,EACDhC,EAAAA,EAAAA,GAAoB,KAAMmG,GAAY,EACpCnG,EAAAA,EAAAA,GAAoB,OAAQ,KAAM,EAChCwD,EAAAA,EAAAA,IAAawM,EAAgB,CAC3BrL,OAAQ2M,EAAOA,OAAOiE,OACtBvT,MAAO,qDACN,KAAM,EAAG,CAAC,cAEfwB,EAAAA,EAAAA,IAAawQ,GAAiB,CAC5BT,MAAOjC,EAAO2C,YACb,KAAM,EAAG,CAAC,WACbzQ,EAAAA,EAAAA,IAAa0Q,GAAM,CACjB/B,QAASb,EAAOA,OAAOiE,OACvBvT,MAAO,2CACN,KAAM,EAAG,CAAC,eAEfhC,EAAAA,EAAAA,GAAoB,KAAMoG,GAAY,EACpC5C,EAAAA,EAAAA,IAAa2Q,GAAU,CACrBpB,QAASzB,EAAOA,OAAOG,KACtB,KAAM,EAAG,CAAC,mBAGf,aAGPvQ,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,MAAOwE,GAAY,OAAQZ,EAAAA,EAAAA,KAAiB7D,EAAAA,EAAAA,IAAO0C,GAAYY,QAAU,UAAW,GAE/H,IC1GA,MAAM,GAAc,GAEpB,UCFA,MAAMnF,GAAa,CAAE+B,IAAK,GACpBkE,IAA0BhG,EAAAA,EAAAA,GAAoB,WAAY,KAAM,EACvDA,EAAAA,EAAAA,GAAoB,MAAO,CAAE+U,MAAO,CAAC,MAAQ,UAC7C/U,EAAAA,EAAAA,GAAoB,MAAO,CAAE+U,MAAO,CAAC,MAAQ,UAC7C/U,EAAAA,EAAAA,GAAoB,MAAO,CAAE+U,MAAO,CAAC,MAAQ,UAC7C/U,EAAAA,EAAAA,GAAoB,MAAO,CAAE+U,MAAO,CAAC,MAAQ,UAC7C/U,EAAAA,EAAAA,GAAoB,MAAO,CAAE+U,MAAO,CAAC,MAAQ,WACxD,GACE7O,IAA0BlG,EAAAA,EAAAA,GAAoB,QAAS,KAAM,EACpDA,EAAAA,EAAAA,GAAoB,KAAM,CAAEgC,MAAO,wCAA0C,EAC3EhC,EAAAA,EAAAA,GAAoB,KAAM,CACrCyT,MAAO,MACPzR,MAAO,sBACN,sBACUhC,EAAAA,EAAAA,GAAoB,KAAM,CACrCyT,MAAO,MACPzR,MAAO,sBACN,aACUhC,EAAAA,EAAAA,GAAoB,KAAM,CACrCyT,MAAO,MACPzR,MAAO,sBACN,kBACUhC,EAAAA,EAAAA,GAAoB,KAAM,CACrCyT,MAAO,MACPzR,MAAO,sBACN,iCACUhC,EAAAA,EAAAA,GAAoB,KAAM,CACrCyT,MAAO,MACPzR,MAAO,sBACN,qBAEH,GACEmE,GAAa,CAAEnE,MAAO,QACtBoE,GAAa,CAAEpE,MAAO,QACtBqE,GAAa,CAAErE,MAAO,QACtBsE,GAAa,CAAEtE,MAAO,QACtBuE,GAAa,CAAEvE,MAAO,QACtBwE,GAAa,CAAE1E,IAAK,GAgB1B,QAA4B5B,EAAAA,EAAAA,IAAiB,CAC3CC,OAAQ,cACRuE,MAAO,CACPiM,QAAS,CACPzN,KAAM8G,OACNnF,UAAU,GAEZF,OAAQ,CACNzB,KAAM0B,OACNC,UAAU,IAGZzE,MAAMC,GAER,MAAMqE,EAAQrE,EAIRiE,EAAaD,EAAc,QAE3B9C,GAAQC,EAAAA,EAAAA,MACRyG,GAAgBtG,EAAAA,EAAAA,KAAS,IAAMJ,EAAMyG,MAAMC,gBAE3C4L,GAAmBlS,EAAAA,EAAAA,KAAS,KAChC,MAAM6X,EAAkC9U,EAAMiM,QAAQmB,SAASC,OAAO3H,QAAQ0J,GAAqCA,EAAKxC,OAAOhN,aAAeA,EAAWJ,QACzJ,OAAOsV,CAAS,IAGlB,MAAO,CAACxY,EAAUC,KACRW,EAAAA,EAAAA,IAAOqG,KACV/G,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAa4S,GAAY,CACtCjS,IAAK,EACL6O,QAAStQ,EAAQsQ,SAChB,KAAM,EAAG,CAAC,aACwB,KAApC/O,EAAAA,EAAAA,IAAOiS,GAAkB1K,SACvBjI,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,QAAS9B,GAAY,CACtDiG,GACAE,IACAlG,EAAAA,EAAAA,GAAoB,QAAS,KAAM,GAChCkB,EAAAA,EAAAA,KAAW,IAAOW,EAAAA,EAAAA,IAAoB0B,EAAAA,GAAW,MAAMqG,EAAAA,EAAAA,KAAYhI,EAAAA,EAAAA,IAAOiS,IAAmB,CAACvC,EAAQxH,MAC7F5I,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,KAAM,CAC9CC,IAAKgI,EACL9H,MAAO,SACN,EACDhC,EAAAA,EAAAA,GAAoB,KAAMmG,GAAY,EACpCnG,EAAAA,EAAAA,GAAoB,OAAQ,MAAMyF,EAAAA,EAAAA,IAAiB6L,EAAOA,OAAOkJ,kBAAmB,MAEtFxa,EAAAA,EAAAA,GAAoB,KAAMoG,GAAY,EACpCpG,EAAAA,EAAAA,GAAoB,OAAQ,MAAMyF,EAAAA,EAAAA,IAAiB6L,EAAOA,OAAOmJ,UAAW,MAE9Eza,EAAAA,EAAAA,GAAoB,KAAMqG,GAAY,EACpCrG,EAAAA,EAAAA,GAAoB,OAAQ,MAAMyF,EAAAA,EAAAA,IAAiB6L,EAAOA,OAAOoJ,cAAe,MAElF1a,EAAAA,EAAAA,GAAoB,KAAMsG,GAAY,EACpCtG,EAAAA,EAAAA,GAAoB,OAAQ,MAAMyF,EAAAA,EAAAA,IAAiB6L,EAAOA,OAAOqJ,4BAA6B,IAC9FnX,EAAAA,EAAAA,IAAawQ,GAAiB,CAC5BT,MAAOjC,EAAO2C,YACb,KAAM,EAAG,CAAC,WACbzQ,EAAAA,EAAAA,IAAa0Q,GAAM,CACjB/B,QAASb,EAAOA,OAAOqJ,2BACvB3Y,MAAO,2CACN,KAAM,EAAG,CAAC,eAEfhC,EAAAA,EAAAA,GAAoB,KAAMuG,GAAY,EACpC/C,EAAAA,EAAAA,IAAa2Q,GAAU,CACrBpB,QAASzB,EAAOA,OAAOG,KACtB,KAAM,EAAG,CAAC,mBAGf,aAGPvQ,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,MAAO2E,GAAY,OAAQf,EAAAA,EAAAA,KAAiB7D,EAAAA,EAAAA,IAAO0C,GAAYY,QAAU,UAAW,GAE/H,IC/HA,MAAM,GAAc,GAEpB,U,UCJOlD,MAAM,4C,mCAAXH,EAAAA,EAAAA,IAAwD,MAAxD9B,G,CCAF,MAAM,GAAS,CAAC,EAGV,IAA2B,OAAgB,GAAQ,CAAC,CAAC,SAAS,MAEpE,UCJM,SAAU6a,GAAYC,GAC1B,OAAQA,GACN,IAAK,+BACH,MAAO,wBACT,IAAK,iBACH,MAAO,gBACT,IAAK,mBACH,MAAO,iBACT,IAAK,2BACH,MAAO,wBACT,QACE,MAAO,UAEb,CCdO,MAAMC,GAAa,CACxBC,WAAY,CACVC,OAAQ,aACR9X,KAAM,WAER+X,OAAQ,CACND,OAAQ,SACR9X,KAAM,WAERgY,mBAAoB,CAClBF,OAAQ,uBACR9X,KAAM,aAERiY,gBAAiB,CACfH,OAAQ,oBACR9X,KAAM,aAERkY,oBAAqB,CACnBJ,OAAQ,2BACR9X,KAAM,aAERmY,eAAgB,CACdL,OAAQ,mBACR9X,KAAM,aAERoY,uBAAwB,CACtBN,OAAQ,4BACR9X,KAAM,aAERqY,kBAAmB,CACjBP,OAAQ,uBACR9X,KAAM,aAERsY,cAAe,CACbR,OAAQ,gBACR9X,KAAM,iBAERuY,YAAa,CACXT,OAAQ,eACR9X,KAAM,SAERwY,UAAW,CACTV,OAAQ,YACR9X,KAAM,SAERyY,MAAO,CACLX,OAAQ,QACR9X,KAAM,SAER0Y,OAAQ,CACNZ,OAAQ,SACR9X,KAAM,SAER2Y,eAAgB,CACdb,OAAQ,kBACR9X,KAAM,SAER4Y,QAAS,CACPd,OAAQ,UACR9X,KAAM,SAER6Y,OAAQ,CACNf,OAAQ,SACR9X,KAAM,SAER8Y,IAAK,CACHhB,OAAQ,2BACR9X,KAAM,SAER+Y,OAAQ,CACNjB,OAAQ,SACR9X,KAAM,UCrEJnD,GAAa,CAAE+B,IAAK,GACpBkE,GAAa,CAAElE,IAAK,GACpBoE,GAAa,CAAEpE,IAAK,GAS1B,QAA4B5B,EAAAA,EAAAA,IAAiB,CAC3CC,OAAQ,gBACRuE,MAAO,CACPwX,MAAO,CACLhZ,KAAM0B,OACNC,UAAU,GAEZF,OAAQ,CACNzB,KAAM0B,OACNC,UAAU,GAEZsX,UAAW,CACTjZ,KAAM0B,OACNC,UAAU,IAGZzE,MAAMC,GAIR,MAAO,CAACW,EAAUC,MACRC,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAauX,GAAAA,EAAO,CAAExV,KAAM,WAAa,CAC7D6B,SAASM,EAAAA,EAAAA,KAAS,IAAM,CACH,0BAAlBhF,EAAQ6b,QACJhb,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB0B,EAAAA,GAAW,CAAEzB,IAAK,GAAK,EACxD0D,EAAAA,EAAAA,IAAiB,+MACjBxF,EAAAA,EAAAA,GAAoB,IAAK,MAAMyF,EAAAA,EAAAA,IAAiBpF,EAAQsE,QAAS,IACjEa,EAAAA,EAAAA,IAAiB,iCAChB,KACgB,kBAAlBnF,EAAQ6b,QACNhb,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB0B,EAAAA,GAAW,CAAEzB,IAAK,GAAK,EACxD9B,EAAAA,EAAAA,GAAoB,IAAK,MAAMyF,EAAAA,EAAAA,IAAiBpF,EAAQsE,QAAS,IACjEa,EAAAA,EAAAA,IAAiB,mDACjBhC,EAAAA,EAAAA,IAAawM,EAAgB,CAC3BrL,OAAQ,gBACR3C,MAAO,mCAETwD,EAAAA,EAAAA,IAAiB,SACjBhC,EAAAA,EAAAA,IAAawM,EAAgB,CAC3BrL,OAAQ,kBACR3C,MAAO,mCAETwD,EAAAA,EAAAA,IAAiB,iCAChB,KACgB,mBAAlBnF,EAAQ6b,QACNhb,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB0B,EAAAA,GAAW,CAAEzB,IAAK,GAAK,EACxD0D,EAAAA,EAAAA,IAAiB,sEACjBxF,EAAAA,EAAAA,GAAoB,IAAK,MAAMyF,EAAAA,EAAAA,IAAiBpF,EAAQsE,QAAS,IACjEa,EAAAA,EAAAA,IAAiB,yBAChB,KACgB,0BAAlBnF,EAAQ6b,QACNhb,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB0B,EAAAA,GAAW,CAAEzB,IAAK,GAAK,CACR,WAA/CF,EAAAA,EAAAA,IAAOkZ,IAAYza,EAAQ8b,WAAWjZ,OAClChC,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,IAAK9B,GAAY,8BAA+B0F,EAAAA,EAAAA,KAAiB7D,EAAAA,EAAAA,IAAOkZ,IAAYza,EAAQ8b,WAAWnB,QAAU,6EAA8E,IAClL,aAA/CpZ,EAAAA,EAAAA,IAAOkZ,IAAYza,EAAQ8b,WAAWjZ,OACpChC,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,IAAKmE,GAAY,gBAAiBP,EAAAA,EAAAA,KAAiB7D,EAAAA,EAAAA,IAAOkZ,IAAYza,EAAQ8b,WAAWnB,QAAU,yFAA0F,MAC/N9Z,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,IAAKqE,GAAY,qHACzD,OACFhF,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB0B,EAAAA,GAAW,CAAEzB,IAAK,GAAK,EACxD0D,EAAAA,EAAAA,IAAiB,kDACjBxF,EAAAA,EAAAA,GAAoB,IAAK,MAAMyF,EAAAA,EAAAA,IAAiBpF,EAAQsE,QAAS,IACjEa,EAAAA,EAAAA,IAAiB,OAChB,QAEfE,EAAG,IAGP,IC9EA,MAAM,GAAc,GAEpB,UC4EO,MAAM0W,GAA4B,CACvCvK,GAAI,KACJlN,OAAQ,KACRhG,SAAU,MASC0d,GAAoB,CAC/BzK,OAAQwK,GACRzX,OAAQ,GACRL,WAAY,IAUDgY,GAA6B,CACxCvK,OAAQ,GACRE,UAAW,GACXC,WAAY,IAQDqK,GAAgC,CAC3C5K,MAAO0K,GACPvK,SAAUwK,IAaCE,GAAsC,CACjD5C,EAAG2C,GACHE,KAAMF,GACN/I,MAAO+I,GACPG,IAAKH,GACLI,GAAIJ,GACJK,GAAIL,GACJM,IAAKN,ICxIDxc,GAAa,CAAEiC,MAAO,4BACtBgE,GAAa,CAAEhE,MAAO,+BACtBkE,GAAa,CAAElE,MAAO,4EACtBmE,GAAa,CAAEnE,MAAO,YACtBoE,GAAa,CAAEtE,IAAK,GACpBuE,GAAa,CAAEvE,IAAK,GACpBwE,IAA0BtG,EAAAA,EAAAA,GAAoB,SAAU,CAC5DkD,KAAM,SACNlB,MAAO,kOACN,mBAAoB,GACjBuE,GAAa,CAAEvE,MAAO,uCACtBwE,GAAa,CACjB1E,IAAK,EACL,cAAe,QAEX2E,GAAc,CAAEzE,MAAO,QACvB0E,GAAc,CAAE5E,IAAK,GACrB6E,GAAc,CAAE3E,MAAO,iBACvB4E,IAA2B5G,EAAAA,EAAAA,GAAoB,KAAM,CAAEgC,MAAO,oCAAsC,yBAA0B,GAC9H6E,GAAc,CAAE7E,MAAO,oCACvB8E,GAAc,CAAE9E,MAAO,6BACvB+E,GAAc,CAAE/E,MAAO,mBACvBgF,GAAc,CAClBhF,MAAO,4CACP2K,aAAc,OAyChB,QAA4BzM,EAAAA,EAAAA,IAAiB,CAC3CC,OAAQ,0BACRuE,MAAO,CACPoY,aAAc,CACZ5Z,KAAM0B,OACNC,UAAU,GAEZmK,iBAAkB,CAChB9L,KAAM0B,OACNC,UAAU,IAGZzE,MAAMC,GAER,MAAMqE,EAAQrE,EAIR6O,GAASC,EAAAA,EAAAA,MACT7K,GAAa3C,EAAAA,EAAAA,KAAS,IAAM0C,EAAcK,EAAMsK,oBAEhDrK,GAASuE,EAAAA,EAAAA,IAAI,IACb6T,GAAiB7T,EAAAA,EAAAA,IAAI,IACrBmE,GAAUnE,EAAAA,EAAAA,KAAI,GACdgT,GAAQhT,EAAAA,EAAAA,IAAyB,MACjC8T,GAAc9T,EAAAA,EAAAA,IAAIxL,OAAOuf,WAAa,KACtCC,GAAchU,EAAAA,EAAAA,IAAqB,MACnCiU,GAAcjU,EAAAA,EAAAA,IAAiB,CACnCyI,MAAO,CACLC,OAAQwK,GACRzX,OAAQA,EAAO0E,MACf/E,WAAYA,EAAW+E,MAAMnF,OAE/B4N,SAAUwK,KAGZ,SAASc,EAAYC,GACnB,MAA+B,QAA3B/Y,EAAW+E,MAAMnF,MACZ,aAAY7E,EAAAA,EAAAA,IAAoBge,YAAoB/Y,EAAW+E,MAAMlF,SAEvE,aAAY9E,EAAAA,EAAAA,IAAoBge,kBAA0B/Y,EAAW+E,MAAMlF,QACpF,CAEA,SAASiL,EAAWiO,GAClBnO,EAAOG,KAAK+N,EAAYC,GAC1B,CAEA,SAASC,IACPjQ,EAAQhE,OAAQ,EAChB6S,EAAM7S,MAAQ,KAEV6T,EAAY7T,OACd6T,EAAY7T,QAEd,MAAMkU,EAAcC,KAAAA,YAAAA,SACpBN,EAAY7T,MAAQkU,EAAYE,OAIhC,MAAMC,EAAsC,QAA3BpZ,EAAW+E,MAAMnF,MAAkB,qBAAuB,uBAE3EsZ,KAAAA,KAC8BE,EAAU,CACpC/Y,OAAQA,EAAO0E,MACfsU,UAAW,gBACXrZ,WAAYA,EAAW+E,MAAMiH,KAC5B,CACD4M,YAAaK,EAAYK,QAE1BC,MAAM/L,IACDpN,EAAMoY,gBAAiBzd,EAAAA,EAAAA,IAAoByS,EAASgM,KAAKC,iBAC3D7O,EAAO8O,QAAQ,CACbC,KAAMb,EAAYtL,EAASgM,KAAKC,kBAGpCpZ,EAAO0E,OAAQ1J,EAAAA,EAAAA,IAAwBmS,EAASgM,KAAKI,eACrDnB,EAAe1T,OAAQ1J,EAAAA,EAAAA,IAAwBmS,EAASgM,KAAKC,gBAC7DZ,EAAY9T,MAAQyI,EAASgM,KAAKX,YAClC9P,EAAQhE,OAAQ,CAAK,IAEtB8U,OAAO7I,IACDkI,KAAAA,SAAelI,KAClB4G,EAAM7S,MAAQuR,GAAYtF,EAAExD,SAASgM,KAAK5B,O,GAGlD,CAeA,OAbAkC,EAAAA,EAAAA,KAAM,IAAM1Z,EAAMoY,eAAc,KAC9B,MAAM5d,GAAaK,EAAAA,EAAAA,IAAoBmF,EAAMoY,cAC7CnY,EAAO0E,MAAQnK,EACf6d,EAAe1T,MAAQnK,EACvBoe,GAAM,GACL,CACDe,WAAW,IAGb3gB,OAAO4gB,iBAAiB,UAAU,KAChCtB,EAAY3T,MAAQ3L,OAAOuf,WAAa,GAAG,IAGtC,CAACjc,EAAUC,KAChB,MAAMkE,GAAyB7B,EAAAA,EAAAA,IAAkB,eAEjD,OAAQpC,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB0B,EAAAA,GAAW,KAAM,GACxDrC,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAaC,EAAAA,GAAW,CAAEC,GAAI,QAAU,EACrDmC,EAAAA,EAAAA,IAAa8L,GAAAA,EAAU,CACrBlK,MAAO,QAAOxD,EAAAA,EAAAA,IAAO0C,GAAYJ,qBAAqBS,EAAO0E,QAC7DkG,YAAa,sBAAqB3N,EAAAA,EAAAA,IAAO0C,GAAYY,YAAWtD,EAAAA,EAAAA,IAAO0C,GAAYJ,sBAAsBS,EAAO0E,mDAChHmG,IAAK,0BAA0B4N,EAAYL,EAAe1T,UACzD,KAAM,EAAG,CAAC,QAAS,cAAe,YAEvC7F,EAAAA,EAAAA,IAAaiM,EAAAA,EAAiB,CAC5B9K,OAAQA,EAAO0E,MACf,uBAAwB+T,EACxB,qBAAsB,CAAC,MAAO,MAAO,SAAS1e,UAASkD,EAAAA,EAAAA,IAAO0C,GAAYH,OAAS,SAAQvC,EAAAA,EAAAA,IAAO0C,GAAYJ,eAAiB,SAAQtC,EAAAA,EAAAA,IAAO0C,GAAYJ,iBACzJ,KAAM,EAAG,CAAC,SAAU,wBACvBlE,EAAAA,EAAAA,GAAoB,MAAOD,GAAY,EACrCC,EAAAA,EAAAA,GAAoB,OAAQgG,GAAY,EACtChG,EAAAA,EAAAA,GAAoB,MAAOkG,GAAY,EACrClG,EAAAA,EAAAA,GAAoB,KAAMmG,GAAY,EACpCX,EAAAA,EAAAA,KAAiBC,EAAAA,EAAAA,KAAiB7D,EAAAA,EAAAA,IAAO0C,GAAYJ,OAAS,KAAMuB,EAAAA,EAAAA,IAAiB,CAAC,MAAO,MAAO,SAAS/G,UAASkD,EAAAA,EAAAA,IAAO0C,GAAYH,OAAS,SAAW,WAAa,QAAS,GAClLQ,EAAO0E,QAAU0T,EAAe1T,QAC5BnI,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,IAAKuE,IAAYX,EAAAA,EAAAA,IAAiBd,EAAO0E,OAAQ,MACnFnI,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,OAAQwE,GAAY,EACrDrG,EAAAA,EAAAA,GAAoB,IAAK,MAAMyF,EAAAA,EAAAA,IAAiBsX,EAAe1T,OAAQ,IACvE7D,EAAAA,EAAAA,IAAiB,MAAOC,EAAAA,EAAAA,IAAiBd,EAAO0E,OAAS,IAAK,SAGtE7F,EAAAA,EAAAA,IAAawM,EAAgB,CAC3BrL,OAAQA,EAAO0E,MACfrH,MAAO,yCACN,CACD+C,SAASM,EAAAA,EAAAA,KAAS,IAAM,CACtBiB,MAEFZ,EAAG,GACF,EAAG,CAAC,cAET1F,EAAAA,EAAAA,GAAoB,MAAOuG,GAAY,CACpB,OAAhB2V,EAAM7S,QACFnI,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAaod,GAAe,CACzCzc,IAAK,EACLoa,MAAOA,EAAM7S,MACb1E,OAAQA,EAAO0E,MACf8S,UAAW,iBACV,KAAM,EAAG,CAAC,QAAS,YACrB9O,EAAQhE,QACNnI,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,MAAO2E,GAAY,EACpDhD,EAAAA,EAAAA,IAAagb,GAAmB,CAAExc,MAAO,oBACxCd,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB0B,EAAAA,GAAW,MAAMqG,EAAAA,EAAAA,IAAY,GAAI6U,IAC3Dze,EAAAA,EAAAA,GAAoB,MAAO,CAAE8B,IAAK2c,GAAK,GAC3Cvd,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB0B,EAAAA,GAAW,MAAMqG,EAAAA,EAAAA,IAAY,GAAI6U,IAC3Djb,EAAAA,EAAAA,IAAagb,GAAmB,CACrC1c,IAAK2c,EACLzc,MAAO,sDAEP,SAEJ,MACJwB,EAAAA,EAAAA,IAAagb,GAAmB,CAAExc,MAAO,gCACzCwB,EAAAA,EAAAA,IAAagb,GAAmB,CAAExc,MAAO,mBACzCwB,EAAAA,EAAAA,IAAagb,GAAmB,CAAExc,MAAO,qBACxCd,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB0B,EAAAA,GAAW,MAAMqG,EAAAA,EAAAA,IAAY,GAAI6U,KAC1Dvd,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB0B,EAAAA,GAAW,CAAEzB,IAAK2c,GAAK,EAC/Djb,EAAAA,EAAAA,IAAagb,GAAmB,CAAExc,MAAO,yBACzCwB,EAAAA,EAAAA,IAAagb,GAAmB,CAAExc,MAAO,0BACzCwB,EAAAA,EAAAA,IAAagb,GAAmB,CAAExc,MAAO,oBACxC,OACD,UAELd,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB0B,EAAAA,GAAW,CAAEzB,IAAK,GAAK,EACxD9B,EAAAA,EAAAA,GAAoB,IAAKyG,GAAa,iCAAkChB,EAAAA,EAAAA,IAAiB0X,EAAY9T,MAAMsI,MAAMC,OAAOjN,QAAU,yEAA0Ec,EAAAA,EAAAA,IAAiBd,EAAO0E,OAAS,IAAK,GACpM,IAA7C8T,EAAY9T,MAAMyI,SAASC,OAAO5I,SAC9BjI,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,MAAO6E,GAAa,EACrDlD,EAAAA,EAAAA,IAAakV,GAAAA,EAAO,CAAExV,KAAM,WAAa,CACvC6B,SAASM,EAAAA,EAAAA,KAAS,IAAM,EACtBrF,EAAAA,EAAAA,GAAoB,OAAQ,KAAM,EAChCA,EAAAA,EAAAA,GAAoB,OAAQ2G,IAAalB,EAAAA,EAAAA,IAAiBd,EAAO0E,OAAQ,IACzE7D,EAAAA,EAAAA,IAAiB,uBAAwBC,EAAAA,EAAAA,KAAiB7D,EAAAA,EAAAA,IAAO0C,GAAYJ,OAAS,YAAa,QAGvGwB,EAAG,OAGuB,OAA7B9D,EAAAA,EAAAA,IAAO0C,GAAYJ,QACjBhD,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAaud,GAAc,CACxC5c,IAAK,EACLE,MAAO,SACP2O,QAASwM,EAAY9T,MACrB,eAAgB,eAChB,cAAe,KACd,KAAM,EAAG,CAAC,aACiB,UAA7BzH,EAAAA,EAAAA,IAAO0C,GAAYJ,QACjBhD,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAaud,GAAc,CACxC5c,IAAK,EACLE,MAAO,SACP2O,QAASwM,EAAY9T,MACrB,eAAgB,eAChB,cAAe,QACd,KAAM,EAAG,CAAC,aACiB,SAA7BzH,EAAAA,EAAAA,IAAO0C,GAAYJ,QACjBhD,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAawd,GAAY,CACtC7c,IAAK,EACLE,MAAO,SACP2O,QAASwM,EAAY9T,MACrB1E,OAAQA,EAAO0E,OACd,KAAM,EAAG,CAAC,UAAW,YACM,WAA7BzH,EAAAA,EAAAA,IAAO0C,GAAYJ,QACjBhD,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAayd,GAAY,CACtC9c,IAAK,EACLE,MAAO,SACP2O,QAASwM,EAAY9T,MACrB,eAAgB,iBAChB,cAAe,QACf,aAAa,GACZ,KAAM,EAAG,CAAC,aACiB,SAA7BzH,EAAAA,EAAAA,IAAO0C,GAAYJ,QACjBhD,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAa0d,GAAY,CACtC/c,IAAK,EACLE,MAAO,SACP2O,QAASwM,EAAY9T,MACrB1E,OAAQA,EAAO0E,OACd,KAAM,EAAG,CAAC,UAAW,YACM,QAA7BzH,EAAAA,EAAAA,IAAO0C,GAAYJ,QACjBhD,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAa2d,GAAW,CACrChd,IAAK,EACLE,MAAO,SACP2O,QAASwM,EAAY9T,MACrB1E,OAAQA,EAAO0E,OACd,KAAM,EAAG,CAAC,UAAW,YACM,SAA7BzH,EAAAA,EAAAA,IAAO0C,GAAYJ,QACjBhD,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAa4d,GAAY,CACtCjd,IAAK,EACLE,MAAO,SACP2O,QAASwM,EAAY9T,MACrB1E,OAAQA,EAAO0E,OACd,KAAM,EAAG,CAAC,UAAW,YACM,QAA7BzH,EAAAA,EAAAA,IAAO0C,GAAYJ,QACjBhD,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAa6d,GAAW,CACrCld,IAAK,EACLE,MAAO,SACP2O,QAASwM,EAAY9T,OACpB,KAAM,EAAG,CAAC,aACiB,SAA7BzH,EAAAA,EAAAA,IAAO0C,GAAYJ,QACjBhD,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAa8d,GAAY,CACtCnd,IAAK,EACLE,MAAO,SACP2O,QAASwM,EAAY9T,MACrB1E,OAAQA,EAAO0E,OACd,KAAM,EAAG,CAAC,UAAW,YACM,SAA7BzH,EAAAA,EAAAA,IAAO0C,GAAYJ,QACjBhD,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAa+d,GAAY,CACtCpd,IAAK,GACLE,MAAO,SACP2O,QAASwM,EAAY9T,MACrB1E,OAAQA,EAAO0E,OACd,KAAM,EAAG,CAAC,UAAW,YACM,UAA7BzH,EAAAA,EAAAA,IAAO0C,GAAYJ,QACjBhD,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAage,GAAa,CACvCrd,IAAK,GACLE,MAAO,SACP2O,QAASwM,EAAY9T,MACrB1E,OAAQA,EAAO0E,OACd,KAAM,EAAG,CAAC,UAAW,YACM,SAA7BzH,EAAAA,EAAAA,IAAO0C,GAAYJ,QACjBhD,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAa4Y,GAAY,CACtCjY,IAAK,GACLE,MAAO,SACP2O,QAASwM,EAAY9T,MACrB1E,OAAQA,EAAO0E,OACd,KAAM,EAAG,CAAC,UAAW,cACvBnI,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAayd,GAAY,CACtC9c,IAAK,GACLE,MAAO,SACP2O,QAASwM,EAAY9T,MACrB,eAAgB,OAChB,eAAezH,EAAAA,EAAAA,IAAO0C,GAAYJ,OACjC,KAAM,EAAG,CAAC,UAAW,kBACpDV,EAAAA,EAAAA,IAAa0M,GAAQ,CACnBlO,MAAO,eACP+H,QAAQnI,EAAAA,EAAAA,IAAOwK,KACd,KAAM,EAAG,CAAC,WACbxF,IACApD,EAAAA,EAAAA,IAAauQ,GAAY,CAAEpD,QAASwM,EAAY9T,OAAS,KAAM,EAAG,CAAC,aAClE,MACTrJ,EAAAA,EAAAA,GAAoB,KAAM6G,GAAa,SAAUpB,EAAAA,EAAAA,KAAiB7D,EAAAA,EAAAA,IAAO0C,GAAYJ,OAAS,mCAAoC,IAClIlE,EAAAA,EAAAA,GAAoB,MAAO8G,GAAa,EACtC9G,EAAAA,EAAAA,GAAoB,IAAK+G,GAAa,EACpCvB,EAAAA,EAAAA,IAAiB,UACjBhC,EAAAA,EAAAA,IAAa2B,EAAwB,CACnC9D,GAAI,KAAIO,EAAAA,EAAAA,IAAO0C,GAAYH,gBAC3BnC,MAAO,qDACN,CACD+C,SAASM,EAAAA,EAAAA,KAAS,IAAM,EACtBG,EAAAA,EAAAA,KAAiBC,EAAAA,EAAAA,KAAiB7D,EAAAA,EAAAA,IAAO0C,GAAYJ,OAAS,UAAW,MAE3EwB,EAAG,GACF,EAAG,CAAC,QACPF,EAAAA,EAAAA,IAAiB,uBAAwBC,EAAAA,EAAAA,KAAiB7D,EAAAA,EAAAA,IAAO0C,GAAYJ,OAAS,8HAA+HuB,EAAAA,EAAAA,KAAiB7D,EAAAA,EAAAA,IAAO0C,GAAYY,QAAU,mCAAoC,MAEzSlF,EAAAA,EAAAA,GAAoB,OAAQgH,GAAa,EACvCxD,EAAAA,EAAAA,IAAamM,EAAAA,EAAc,CACzB,mBAAiD,SAA7B/N,EAAAA,EAAAA,IAAO0C,GAAYJ,MAAkB,4BAA8B,cACvF2L,UAAW,GACXC,WAAY,SAAQlO,EAAAA,EAAAA,IAAO0C,GAAYJ,eACvCkb,QAASza,EAAO0E,MAChB0G,YAAaX,GACZ,KAAM,EAAG,CAAC,mBAAoB,aAAc,uBAMzD5L,EAAAA,EAAAA,IAAakN,EAAAA,IACZ,GAAG,CAER,IC7XA,MAAM,GAAc,GAEpB,U,UCJO1O,MAAM,qI,IACHA,MAAM,iB,IACuFhC,EAAAA,EAAAA,GAAoD,QAA9CgC,MAAM,mBAAmB,cAAY,Q,aAAmBhC,EAAAA,EAAAA,GAAsC,QAAhC,cAAY,QAAO,KAAM,G,mEAFlM6B,EAAAA,EAAAA,IAIM,MAJN9B,GAIM,EAHJC,EAAAA,EAAAA,GAEO,OAFPgG,GAEO,UAFqB,qCACK,QAAoLb,EAAAA,CAAvK9D,GAAG,YAAYW,MAAM,iC,mBAAgC,IAAoD,CAApDkE,IAAoD,sBAAU,M,UCFrK,MAAM,GAAS,CAAC,EAGV,IAA2B,OAAgB,GAAQ,CAAC,CAAC,SAAS,MAEpE,U,WCHA,MAAMnG,GAAa,CAAEiC,MAAO,wKACtBgE,IAA0B8I,EAAAA,EAAAA,IAAmB,wtFAAiwF,GAC9yF5I,GAAa,CAAElE,MAAO,6DACtBmE,GAAa,CAAC,QACdC,IAA0BpG,EAAAA,EAAAA,GAAoB,OAAQ,CAC1DgC,MAAO,mBACP,cAAe,QACd,MAAO,GACJqE,IAA0BrG,EAAAA,EAAAA,GAAoB,OAAQ,CAAE,cAAe,QAAU,KAAM,GAG7F,QAA4BE,EAAAA,EAAAA,IAAiB,CAC3CC,OAAQ,sBACRC,MAAMC,GAER,MAAMgf,EAAS,CACb,CACEC,KAAM,2BACNC,YAAa,4BAEf,CACED,KAAM,2BACNC,YAAa,6BAIXC,EAAcC,aAAa9c,QAAQ,wBAEzC,IAAI+c,EACAF,EACFE,EAAcC,SAASH,EAAa,IAAM,GAE1CE,EAAcvU,KAAKE,SAAW,GAAM,EAAI,EACxCoU,aAAa7c,QAAQ,uBAAwB8c,EAAY5U,aAG3D,MAAM8U,EAAQP,EAAOK,GAErB,MAAO,CAAC1e,EAAUC,MACRC,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,MAAO9B,GAAY,CAC3DiG,IACAhG,EAAAA,EAAAA,GAAoB,OAAQkG,GAAY,EACtCV,EAAAA,EAAAA,KAAiBC,EAAAA,EAAAA,KAAiB7D,EAAAA,EAAAA,IAAOge,GAAON,MAAQ,IAAK,IAC7Dtf,EAAAA,EAAAA,GAAoB,IAAK,CACvB4K,KAAM,+EAA8EhJ,EAAAA,EAAAA,IAAOge,GAAOL,cAClG1U,IAAK,WACL7I,MAAO,qCACN,CACDoE,IACAZ,EAAAA,EAAAA,IAAiB,yBACjBa,IACC,EAAGF,QAIZ,ICvDA,MAAM,GAAc,GAEpB,UCFA,MAAMpG,GAAa,CAAEiC,MAAO,kDACtBgE,GAAa,CACjBhE,MAAO,sDACP2K,aAAc,OAEVzG,IAA0BlG,EAAAA,EAAAA,GAAoB,MAAO,CACzDyC,IAAK,eACLT,MAAO,kBACPiJ,IAAK,gBACLrF,MAAO,MACPC,OAAQ,MACP,MAAO,GACJM,GAAa,CAAEnE,MAAO,wEAa5B,QAA4B9B,EAAAA,EAAAA,IAAiB,CAC3CC,OAAQ,8BACRuE,MAAO,CACPmb,kBAAmB,CACjB3c,KAAM4c,SACN/a,QAAU2K,GAA0B,YAAYA,kBAElDqQ,iBAAkB,CAChB7c,KAAM0B,OACNG,aAAS+D,IAGX1I,MAAMC,GAER,MAAMqE,EAAQrE,EAIR6O,GAASC,EAAAA,EAAAA,MAEf,SAASC,EAAWzK,GAClBuK,EAAOG,KAAK3K,EAAMmb,kBAAkBlb,GACtC,CAEA,MAAO,CAAC3D,EAAUC,MACRC,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB0B,EAAAA,GAAW,KAAM,EACzDvD,EAAAA,EAAAA,GAAoB,SAAUD,GAAY,EACxCC,EAAAA,EAAAA,GAAoB,OAAQgG,GAAY,CACtCE,IACA1C,EAAAA,EAAAA,IAAamM,EAAAA,EAAc,CACzBC,UAAW,GACXC,UAAW,GACXE,YAAaX,EACb,cAAe/O,EAAQ0f,iBACvB/d,MAAO,6BACN,KAAM,EAAG,CAAC,iBACbhC,EAAAA,EAAAA,GAAoB,IAAKmG,GAAY,EACnCb,EAAAA,EAAAA,IAAYtE,EAAKuE,OAAQ,uBACxB3D,EAAAA,EAAAA,IAAO9C,EAAAA,GAAP8C,KACIV,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAa6e,GAAqB,CAC/Cle,IAAK,EACLE,MAAO,8BAETC,EAAAA,EAAAA,IAAoB,IAAI,MAE9BuB,EAAAA,EAAAA,IAAa0M,GAAQ,CACnBlO,MAAO,UACP+H,QAAQnI,EAAAA,EAAAA,IAAO8J,KACd,KAAM,EAAG,CAAC,cAEd9J,EAAAA,EAAAA,IAAO9C,EAAAA,GAAP8C,KACIV,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAa6e,GAAqB,CAC/Cle,IAAK,EACLE,MAAO,wCAERd,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAa8e,GAAmB,CAC7Cne,IAAK,EACLE,MAAO,0BAGfwB,EAAAA,EAAAA,IAAa0c,GAAAA,EAAa,CACxB,uBAAwB7f,EAAQwf,kBAChC,qBAAsBxf,EAAQ0f,kBAC7B,CACD5N,SAAS9M,EAAAA,EAAAA,KAAS,IAAM,EACtBC,EAAAA,EAAAA,IAAYtE,EAAKuE,OAAQ,cAE3BG,EAAG,GACF,EAAG,CAAC,uBAAwB,wBAC9B,IAEL,IChGA,MAAM,GAAc,GAEpB,UCFA,MAAM3F,IAA0BC,EAAAA,EAAAA,GAAoB,KAAM,CAAEgC,MAAO,kBAAoB,2BAA4B,GAC7GgE,IAA0BhG,EAAAA,EAAAA,GAAoB,IAAK,KAAM,4HAA6H,GACtLkG,IAA0BlG,EAAAA,EAAAA,GAAoB,IAAK,KAAM,gMAAiM,GAC1PmG,IAA0BnG,EAAAA,EAAAA,GAAoB,KAAM,KAAM,6BAA8B,GACxFoG,IAA0BpG,EAAAA,EAAAA,GAAoB,IAAK,KAAM,iGAAkG,GAC3JqG,IAA0BrG,EAAAA,EAAAA,GAAoB,KAAM,KAAM,EACjDA,EAAAA,EAAAA,GAAoB,KAAM,KAAM,2CAChCA,EAAAA,EAAAA,GAAoB,KAAM,KAAM,sCAChCA,EAAAA,EAAAA,GAAoB,KAAM,KAAM,kCAC3C,GACEsG,IAA0BtG,EAAAA,EAAAA,GAAoB,KAAM,KAAM,gBAAiB,GAC3EuG,IAA0BvG,EAAAA,EAAAA,GAAoB,MAAO,CACzDqN,QAAS,OACTrL,MAAO,gFACPS,IAAK,4CACLwI,IAAK,mCACL7F,MAAO,oCACN,MAAO,GACJoB,IAA0BxG,EAAAA,EAAAA,GAAoB,IAAK,KAAM,EAChDwF,EAAAA,EAAAA,IAAiB,yIACjBxF,EAAAA,EAAAA,GAAoB,OAAQ,KAAM,QAClCwF,EAAAA,EAAAA,IAAiB,UACjBxF,EAAAA,EAAAA,GAAoB,OAAQ,KAAM,aAClCwF,EAAAA,EAAAA,IAAiB,4EAC5B,GACEiB,IAA2BzG,EAAAA,EAAAA,GAAoB,IAAK,KAAM,EACjDA,EAAAA,EAAAA,GAAoB,OAAQ,KAAM,QAClCwF,EAAAA,EAAAA,IAAiB,sHACjBxF,EAAAA,EAAAA,GAAoB,OAAQ,KAAM,mBAClCwF,EAAAA,EAAAA,IAAiB,8JACjBxF,EAAAA,EAAAA,GAAoB,OAAQ,KAAM,sBAClCwF,EAAAA,EAAAA,IAAiB,OAC5B,GACEkB,IAA2B1G,EAAAA,EAAAA,GAAoB,IAAK,KAAM,EACjDwF,EAAAA,EAAAA,IAAiB,yMACjBxF,EAAAA,EAAAA,GAAoB,OAAQ,KAAM,0BAClCwF,EAAAA,EAAAA,IAAiB,uIACjBxF,EAAAA,EAAAA,GAAoB,OAAQ,KAAM,SAClCwF,EAAAA,EAAAA,IAAiB,oBACjBxF,EAAAA,EAAAA,GAAoB,OAAQ,KAAM,oCAClCwF,EAAAA,EAAAA,IAAiB,iDAC5B,GACEmB,IAA2B3G,EAAAA,EAAAA,GAAoB,IAAK,KAAM,uMAAwM,GAClQ4G,IAA2B5G,EAAAA,EAAAA,GAAoB,KAAM,KAAM,eAAgB,GAC3E6G,IAA2B7G,EAAAA,EAAAA,GAAoB,MAAO,CAC1DqN,QAAS,OACT5K,IAAK,6CACLwI,IAAK,kCACL7F,MAAO,mCACN,MAAO,GACJ0B,IAA2B9G,EAAAA,EAAAA,GAAoB,IAAK,KAAM,yTAA4T,GACtX+G,IAA2B/G,EAAAA,EAAAA,GAAoB,KAAM,KAAM,qBAAsB,GACjFgH,IAA2BhH,EAAAA,EAAAA,GAAoB,IAAK,KAAM,2MAA4M,GACtQ4M,IAA2B5M,EAAAA,EAAAA,GAAoB,IAAK,KAAM,yKAA4K,GACtO6M,IAA2B7M,EAAAA,EAAAA,GAAoB,KAAM,KAAM,8BAA+B,GAC1F8M,IAA2B9M,EAAAA,EAAAA,GAAoB,IAAK,KAAM,gLAAiL,GAC3O+M,IAA2B/M,EAAAA,EAAAA,GAAoB,KAAM,KAAM,eAAgB,GAC3EgN,IAA2BhN,EAAAA,EAAAA,GAAoB,IAAK,KAAM,8cAA+c,GACzgBiN,IAA2BjN,EAAAA,EAAAA,GAAoB,KAAM,KAAM,yBAA0B,GACrFkN,IAA2BlN,EAAAA,EAAAA,GAAoB,IAAK,KAAM,8XAA+X,GACzbmN,IAA2BnN,EAAAA,EAAAA,GAAoB,KAAM,KAAM,6BAA8B,GACzFoN,IAA2BpN,EAAAA,EAAAA,GAAoB,IAAK,KAAM,kPAAmP,GAC7SuN,IAA2BvN,EAAAA,EAAAA,GAAoB,IAAK,KAAM,mRAAoR,GAC9UwN,IAA2BxN,EAAAA,EAAAA,GAAoB,KAAM,KAAM,qBAAsB,GACjFyN,IAA2BzN,EAAAA,EAAAA,GAAoB,IAAK,KAAM,iEAAkE,GAC5H0N,IAA2B1N,EAAAA,EAAAA,GAAoB,KAAM,KAAM,EAClDA,EAAAA,EAAAA,GAAoB,KAAM,KAAM,oFAChCA,EAAAA,EAAAA,GAAoB,KAAM,KAAM,wHAChCA,EAAAA,EAAAA,GAAoB,KAAM,KAAM,+CAChCA,EAAAA,EAAAA,GAAoB,KAAM,KAAM,2HAC3C,GAMJ,QAA4BE,EAAAA,EAAAA,IAAiB,CAC3CC,OAAQ,aACRC,MAAMC,GAGR,MAAO,CAACW,EAAUC,MACRC,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB0B,EAAAA,GAAW,KAAM,GACxDrC,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAaC,EAAAA,GAAW,CAAEC,GAAI,QAAU,EACrDmC,EAAAA,EAAAA,IAAa8L,GAAAA,EAAU,CACrBlK,MAAO,0BACPmK,YAAa,iJACbC,IAAK,6CAGThM,EAAAA,EAAAA,IAAa2c,GAA6B,CACxC,uBAAyBzQ,GAAkB,YAAYA,uBACvD,qBAAsB,qBACrB,CACD,sBAAsBrK,EAAAA,EAAAA,KAAS,IAAM,EACnCG,EAAAA,EAAAA,IAAiB,yFACjBhC,EAAAA,EAAAA,IAAawM,EAAgB,CAC3BlL,KAAM,cACNH,OAAQ,cACR3C,MAAO,uDAETwD,EAAAA,EAAAA,IAAiB,SACjBhC,EAAAA,EAAAA,IAAawM,EAAgB,CAC3BlL,KAAM,cACNH,OAAQ,aACR3C,MAAO,uDAETwD,EAAAA,EAAAA,IAAiB,uCAEnB2M,SAAS9M,EAAAA,EAAAA,KAAS,IAAM,CACtBtF,GACAiG,GACAE,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACA4F,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAG,GACAC,GACAC,GACAC,MAEFhI,EAAG,GACF,EAAG,CAAC,0BACN,IAEL,ICjJA,MAAM,GAAc,GAEpB,UCFA,MAAM3F,GAAa,CAAEiC,MAAO,kBACtBgE,GAAa,CAAEhE,MAAO,qBACtBkE,GAAa,CAAElE,MAAO,0DACtBmE,GAAa,CACjBnE,MAAO,mEACP2K,aAAc,OAEVvG,IAA0BpG,EAAAA,EAAAA,GAAoB,KAAM,CAAEgC,MAAO,2CAA6C,qBAAsB,GAChIqE,GAAa,CAAErE,MAAO,qEACtBsE,IAA0BtG,EAAAA,EAAAA,GAAoB,KAAM,KAAM,MAAO,GAYvE,QAA4BE,EAAAA,EAAAA,IAAiB,CAC3CC,OAAQ,kBACRC,MAAMC,GAER,MAAM6O,GAASC,EAAAA,EAAAA,MAEf,SAASC,EAAWyC,GAClB3C,EAAOG,KAAK,QAAOhQ,EAAAA,EAAAA,IAAoBwS,mBACzC,CAEA,MAAO,CAAC7Q,EAAUC,KAChB,MAAMkE,GAAyB7B,EAAAA,EAAAA,IAAkB,eAEjD,OAAQpC,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB0B,EAAAA,GAAW,KAAM,GACxDrC,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAaC,EAAAA,GAAW,CAAEC,GAAI,QAAU,EACrDmC,EAAAA,EAAAA,IAAa8L,GAAAA,EAAU,CACrBlK,MAAO,oBACPmK,YAAa,wIACbC,IAAK,mDAGThM,EAAAA,EAAAA,IAAaiM,EAAAA,EAAiB,CAC5B,uBAAyBC,GAAkB,OAAOA,kBAClD,qBAAsB,iBACtB,wBAAwB,GACvB,KAAM,EAAG,CAAC,0BACb1P,EAAAA,EAAAA,GAAoB,MAAOD,GAAY,EACrCC,EAAAA,EAAAA,GAAoB,OAAQgG,GAAY,EACtChG,EAAAA,EAAAA,GAAoB,MAAOkG,GAAY,EACrClG,EAAAA,EAAAA,GAAoB,OAAQmG,GAAY,CACtCC,IACA5C,EAAAA,EAAAA,IAAamM,EAAAA,EAAc,CACzB3N,MAAO,iCACP4N,UAAW,GACXC,UAAW,GACX,wBAAwB,EACxBC,WAAY,iBACZ,mBAAoB,aACpBC,YAAaX,KAEfpP,EAAAA,EAAAA,GAAoB,IAAKqG,GAAY,EACnCb,EAAAA,EAAAA,IAAiB,yIACjBc,IACAd,EAAAA,EAAAA,IAAiB,sBACjBhC,EAAAA,EAAAA,IAAa2B,EAAwB,CACnC9D,GAAI,mCACJ+D,MAAO,kCACPpD,MAAO,qDACN,CACD+C,SAASM,EAAAA,EAAAA,KAAS,IAAM,EACtBG,EAAAA,EAAAA,IAAiB,qBAEnBE,EAAG,KAELF,EAAAA,EAAAA,IAAiB,SACjBhC,EAAAA,EAAAA,IAAa2B,EAAwB,CACnC9D,GAAI,4BACJ+D,MAAO,2BACPpD,MAAO,qDACN,CACD+C,SAASM,EAAAA,EAAAA,KAAS,IAAM,EACtBG,EAAAA,EAAAA,IAAiB,cAEnBE,EAAG,KAELF,EAAAA,EAAAA,IAAiB,oCAEnBhC,EAAAA,EAAAA,IAAa0M,GAAQ,CACnBlO,MAAO,eACP+H,QAAQnI,EAAAA,EAAAA,IAAOyK,KACd,KAAM,EAAG,CAAC,oBAKrB7I,EAAAA,EAAAA,IAAakN,EAAAA,IACZ,GAAG,CAER,ICnGA,MAAM,GAAc,GAEpB,UCFA,MAAM3Q,GAAa,CAAEiC,MAAO,4BACtBgE,GAAa,CAAEhE,MAAO,+BACtBkE,GAAa,CAAElE,MAAO,4EACtBmE,GAAa,CAAEnE,MAAO,YACtBoE,IAA0BpG,EAAAA,EAAAA,GAAoB,SAAU,CAC5DkD,KAAM,SACNlB,MAAO,kOACN,mBAAoB,GACjBqE,GAAa,CAAErE,MAAO,uCACtBsE,GAAa,CACjBxE,IAAK,EACL,cAAe,QAEXyE,GAAa,CAAEvE,MAAO,QACtBwE,GAAa,CACjB1E,IAAK,EACLE,MAAO,QAEHyE,GAAc,CAAEzE,MAAO,iBACvB0E,GAAc,CAAE1E,MAAO,iBACvB2E,IAA2B3G,EAAAA,EAAAA,GAAoB,KAAM,CAAEgC,MAAO,oCAAsC,yBAA0B,GAC9H4E,IAA2B5G,EAAAA,EAAAA,GAAoB,KAAM,CAAEgC,MAAO,oCAAsC,+CAAgD,GACpJ6E,GAAc,CAAE7E,MAAO,6BACvB8E,GAAc,CAAE9E,MAAO,mBACvB+E,GAAc,CAClB/E,MAAO,4CACP2K,aAAc,OAuBhB,QAA4BzM,EAAAA,EAAAA,IAAiB,CAC3CC,OAAQ,yBACRuE,MAAO,CACP0b,SAAU,CACRld,KAAM0B,OACNC,UAAU,IAGZzE,MAAMC,GAER,MAAMqE,EAAQrE,EAIR6O,GAASC,EAAAA,EAAAA,MAET0C,GAAK3I,EAAAA,EAAAA,IAAI,IACT6T,GAAiB7T,EAAAA,EAAAA,IAAI,IACrBmE,GAAUnE,EAAAA,EAAAA,KAAI,GACdgT,GAAQhT,EAAAA,EAAAA,IAAyB,MACjC8T,GAAc9T,EAAAA,EAAAA,IAAIxL,OAAOuf,WAAa,KACtCC,GAAchU,EAAAA,EAAAA,IAAqB,MACnCiU,GAAcjU,EAAAA,EAAAA,IAAiB,CACnCyI,MAAO,CACLC,OAAQwK,GACRzX,OAAQkN,EAAGxI,MACX/E,WAAY,OAEdwN,SAAUwK,KAGZ,SAASlN,EAAWiR,GAClBnR,EAAOG,KAAK,QAAOhQ,EAAAA,EAAAA,IAAoBghB,mBACzC,CAEA,SAAS/C,IACPjQ,EAAQhE,OAAQ,EAChB6S,EAAM7S,MAAQ,KAEV6T,EAAY7T,OACd6T,EAAY7T,QAEd,MAAMkU,EAAcC,KAAAA,YAAAA,SACpBN,EAAY7T,MAAQkU,EAAYE,OAEhCD,KAAAA,KACqB,qBAAsB,CACvC7Y,OAAQkN,EAAGxI,MACXsU,UAAW,iBACV,CACDT,YAAaK,EAAYK,QAE1BC,MAAM/L,IACLqL,EAAY9T,MAAQyI,EAASgM,KAC7BzQ,EAAQhE,OAAQ,CAAK,IAEtB8U,OAAO7I,IACDkI,KAAAA,SAAelI,KAClB4G,EAAM7S,MAAQuR,GAAYtF,EAAExD,SAASgM,KAAK5B,O,GAGlD,CAkBA,OAhBAkC,EAAAA,EAAAA,KAAM,IAAM1Z,EAAM0b,WAAU,KACtBrD,EAAe1T,QAAU3E,EAAM0b,WACjCvO,EAAGxI,MAAQiX,UAAU5b,EAAM0b,UACxB1gB,cACHqd,EAAe1T,MAAQiX,UAAU5b,EAAM0b,UACpC1gB,cACH4d,I,GAED,CACDe,WAAW,IAGb3gB,OAAO4gB,iBAAiB,UAAU,KAChCtB,EAAY3T,MAAQ3L,OAAOuf,WAAa,GAAG,IAGtC,CAACjc,EAAUC,KAChB,MAAMkE,GAAyB7B,EAAAA,EAAAA,IAAkB,eAEjD,OAAQpC,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB0B,EAAAA,GAAW,KAAM,GACxDrC,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAaC,EAAAA,GAAW,CAAEC,GAAI,QAAU,EACrDmC,EAAAA,EAAAA,IAAa8L,GAAAA,EAAU,CACrBlK,MAAO,yBAAyByM,EAAGxI,QACnCkG,YAAa,sCAAsCsC,EAAGxI,iEACtDmG,IAAK,8BAA8BuN,EAAe1T,uBACjD,KAAM,EAAG,CAAC,QAAS,cAAe,YAEvC7F,EAAAA,EAAAA,IAAaiM,EAAAA,EAAiB,CAC5B,uBAAyBC,GAAkB,OAAOA,kBAClD,qBAAsB,iBACtB/K,OAAQkN,EAAGxI,MACX,wBAAwB,GACvB,KAAM,EAAG,CAAC,uBAAwB,YACrCrJ,EAAAA,EAAAA,GAAoB,MAAOD,GAAY,EACrCC,EAAAA,EAAAA,GAAoB,OAAQgG,GAAY,EACtChG,EAAAA,EAAAA,GAAoB,MAAOkG,GAAY,EACrClG,EAAAA,EAAAA,GAAoB,KAAMmG,GAAY,EACpCX,EAAAA,EAAAA,IAAiB,2BACjBxF,EAAAA,EAAAA,GAAoB,IAAK,MAAMyF,EAAAA,EAAAA,IAAiBoM,EAAGxI,OAAQ,MAE7D7F,EAAAA,EAAAA,IAAawM,EAAgB,CAC3BrL,OAAQkN,EAAGxI,MACXrH,MAAO,yCACN,CACD+C,SAASM,EAAAA,EAAAA,KAAS,IAAM,CACtBe,MAEFV,EAAG,GACF,EAAG,CAAC,cAET1F,EAAAA,EAAAA,GAAoB,MAAOqG,GAAY,CACpB,OAAhB6V,EAAM7S,QACFnI,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAaod,GAAe,CACzCzc,IAAK,EACLoa,MAAOA,EAAM7S,MACb1E,OAAQkN,EAAGxI,MACX8S,UAAW,iBACV,KAAM,EAAG,CAAC,QAAS,YACrB9O,EAAQhE,QACNnI,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,MAAOyE,GAAY,EACpD9C,EAAAA,EAAAA,IAAagb,GAAmB,CAAExc,MAAO,oBACxCd,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB0B,EAAAA,GAAW,MAAMqG,EAAAA,EAAAA,IAAY,GAAI6U,IAC3Dze,EAAAA,EAAAA,GAAoB,MAAO,CAAE8B,IAAK2c,GAAK,GAC3Cvd,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB0B,EAAAA,GAAW,MAAMqG,EAAAA,EAAAA,IAAY,GAAI6U,IAC3Djb,EAAAA,EAAAA,IAAagb,GAAmB,CACrC1c,IAAK2c,EACLzc,MAAO,sDAEP,SAEJ,MACJwB,EAAAA,EAAAA,IAAagb,GAAmB,CAAExc,MAAO,gCACzCwB,EAAAA,EAAAA,IAAagb,GAAmB,CAAExc,MAAO,mBACzCwB,EAAAA,EAAAA,IAAagb,GAAmB,CAAExc,MAAO,qBACxCd,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB0B,EAAAA,GAAW,MAAMqG,EAAAA,EAAAA,IAAY,GAAI6U,KAC1Dvd,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB0B,EAAAA,GAAW,CAAEzB,IAAK2c,GAAK,EAC/Djb,EAAAA,EAAAA,IAAagb,GAAmB,CAAExc,MAAO,yBACzCwB,EAAAA,EAAAA,IAAagb,GAAmB,CAAExc,MAAO,0BACzCwB,EAAAA,EAAAA,IAAagb,GAAmB,CAAExc,MAAO,oBACxC,OACD,UAELd,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB0B,EAAAA,GAAW,CAAEzB,IAAK,GAAK,EACxD9B,EAAAA,EAAAA,GAAoB,IAAKuG,GAAY,wFAAyFd,EAAAA,EAAAA,IAAiBoM,EAAGxI,OAAS,+EAAgF,GAC7L,IAA7C8T,EAAY9T,MAAMyI,SAASC,OAAO5I,SAC9BjI,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,MAAO2E,GAAY,EACpDhD,EAAAA,EAAAA,IAAakV,GAAAA,EAAO,CAAExV,KAAM,WAAa,CACvC6B,SAASM,EAAAA,EAAAA,KAAS,IAAM,EACtBrF,EAAAA,EAAAA,GAAoB,OAAQ,KAAM,EAChCA,EAAAA,EAAAA,GAAoB,OAAQyG,IAAahB,EAAAA,EAAAA,IAAiBoM,EAAGxI,OAAQ,IACrE7D,EAAAA,EAAAA,IAAiB,gDAGrBE,EAAG,SAGNxE,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAauX,GAAAA,EAAO,CACjC5W,IAAK,EACLoB,KAAM,UACNlB,MAAO,QACN,CACD+C,SAASM,EAAAA,EAAAA,KAAS,IAAM,EACtBG,EAAAA,EAAAA,IAAiB,gCACjBxF,EAAAA,EAAAA,GAAoB,OAAQ0G,IAAajB,EAAAA,EAAAA,IAAiBoM,EAAGxI,OAAQ,IACrE7D,EAAAA,EAAAA,IAAiB,SACjBhC,EAAAA,EAAAA,IAAawM,EAAgB,CAC3BrL,OAAQwY,EAAY9T,MAAMyI,SAASC,OAAO,GAAGT,OAAOiE,OACpDvT,MAAO,iCACN,KAAM,EAAG,CAAC,YACbwB,EAAAA,EAAAA,IAAa+c,GAAe,CAC1BpO,QAASgL,EAAY9T,MAAMyI,SAASC,OAAO,GAAGT,OAAOiE,QACpD,KAAM,EAAG,CAAC,eAEf7P,EAAG,MAETlC,EAAAA,EAAAA,IAAa0M,GAAQ,CACnBlO,MAAO,eACP+H,QAAQnI,EAAAA,EAAAA,IAAO0K,KACd,KAAM,EAAG,CAAC,WACb3F,IACAnD,EAAAA,EAAAA,IAAauQ,GAAY,CAAEpD,QAASwM,EAAY9T,OAAS,KAAM,EAAG,CAAC,aAClE,KACTzC,IACA5G,EAAAA,EAAAA,GAAoB,MAAO6G,GAAa,EACtC7G,EAAAA,EAAAA,GAAoB,IAAK8G,GAAa,EACpCtB,EAAAA,EAAAA,IAAiB,UACjBhC,EAAAA,EAAAA,IAAa2B,EAAwB,CACnC9D,GAAI,sBACJW,MAAO,qDACN,CACD+C,SAASM,EAAAA,EAAAA,KAAS,IAAM,EACtBG,EAAAA,EAAAA,IAAiB,wBAEnBE,EAAG,KAELF,EAAAA,EAAAA,IAAiB,sLAEnBxF,EAAAA,EAAAA,GAAoB,OAAQ+G,GAAa,EACvCvD,EAAAA,EAAAA,IAAamM,EAAAA,EAAc,CACzB,mBAAoB,aACpBE,UAAW,GACXC,WAAY,iBACZsP,QAASvN,EAAGxI,MACZ0G,YAAaX,EACb,wBAAwB,GACvB,KAAM,EAAG,CAAC,uBAMvB5L,EAAAA,EAAAA,IAAakN,EAAAA,IACZ,GAAG,CAER,IC1QA,MAAM,GAAc,GAEpB,UCFA,MAAM3Q,GAAa,CAAEiC,MAAO,kBACtBgE,GAAa,CAAEhE,MAAO,qBACtBkE,GAAa,CAAElE,MAAO,uFACtBmE,GAAa,CACjBnE,MAAO,sDACP2K,aAAc,OAEVvG,IAA0BpG,EAAAA,EAAAA,GAAoB,KAAM,CAAEgC,MAAO,2CAA6C,wBAAyB,GACnIqE,GAAa,CAAErE,MAAO,qEACtBsE,GAAa,CAAEtE,MAAO,2EACtBuE,GAAa,CAAEvE,MAAO,6CACtBwE,IAA0BxG,EAAAA,EAAAA,GAAoB,KAAM,CAAEgC,MAAO,8BAAgC,wCAAyC,GACtIyE,GAAc,CAAEzE,MAAO,iEACvB0E,IAA2B1G,EAAAA,EAAAA,GAAoB,OAAQ,CAAEgC,MAAO,yBAA2B,WAAY,GACvG2E,GAAc,CAClBzD,KAAM,SACNlB,MAAO,sMAEH4E,GAAc,CAAE5E,MAAO,0BACvB6E,GAAc,CAAE7E,MAAO,mCACvB8E,IAA2B9G,EAAAA,EAAAA,GAAoB,IAAK,KAAM,EACjDwF,EAAAA,EAAAA,IAAiB,iJACjBxF,EAAAA,EAAAA,GAAoB,OAAQ,KAAM,mBAClCwF,EAAAA,EAAAA,IAAiB,mCACjBxF,EAAAA,EAAAA,GAAoB,OAAQ,KAAM,qBAClCwF,EAAAA,EAAAA,IAAiB,OAC5B,GACEuB,IAA2B/G,EAAAA,EAAAA,GAAoB,IAAK,KAAM,iPAAkP,GAC5SgH,IAA2BhH,EAAAA,EAAAA,GAAoB,MAAO,CAC1DgC,MAAO,yBACPS,IAAK,gDACLwI,IAAK,4CACJ,MAAO,GACJ2B,IAA2B5M,EAAAA,EAAAA,GAAoB,KAAM,CAAEC,GAAI,WAAa,mDAAoD,GAC5H4M,IAA2B7M,EAAAA,EAAAA,GAAoB,IAAK,KAAM,sFAAuF,GACjJ8M,IAA2B9M,EAAAA,EAAAA,GAAoB,KAAM,KAAM,kBAAmB,GAC9E+M,IAA2B/M,EAAAA,EAAAA,GAAoB,MAAO,CAC1DqN,QAAS,OACTrL,MAAO,sEACPS,IAAK,+DACLwI,IAAK,oCACJ,MAAO,GACJ+B,IAA2BhN,EAAAA,EAAAA,GAAoB,OAAQ,KAAM,6BAA8B,GAC3FiN,IAA2BjN,EAAAA,EAAAA,GAAoB,OAAQ,KAAM,eAAgB,GAC7EkN,IAA2BlN,EAAAA,EAAAA,GAAoB,MAAO,CAC1DqN,QAAS,OACTrL,MAAO,sEACPS,IAAK,oDACLwI,IAAK,kCACJ,MAAO,GACJkC,IAA2BnN,EAAAA,EAAAA,GAAoB,KAAM,KAAM,EAClDwF,EAAAA,EAAAA,IAAiB,2CACjBxF,EAAAA,EAAAA,GAAoB,SAAU,KAAM,6BACpCwF,EAAAA,EAAAA,IAAiB,eAC5B,GACE4H,IAA2BpN,EAAAA,EAAAA,GAAoB,KAAM,KAAM,EAClDwF,EAAAA,EAAAA,IAAiB,wEACjBxF,EAAAA,EAAAA,GAAoB,OAAQ,KAAM,SAClCwF,EAAAA,EAAAA,IAAiB,iBACjBxF,EAAAA,EAAAA,GAAoB,OAAQ,KAAM,MAClCwF,EAAAA,EAAAA,IAAiB,OAC5B,GACE+H,IAA2BvN,EAAAA,EAAAA,GAAoB,KAAM,CAAEC,GAAI,OAAS,kDAAmD,GACvHuN,IAA2BxN,EAAAA,EAAAA,GAAoB,IAAK,KAAM,6EAA8E,GACxIyN,IAA2BzN,EAAAA,EAAAA,GAAoB,KAAM,KAAM,YAAa,GACxE0N,IAA2B1N,EAAAA,EAAAA,GAAoB,MAAO,CAC1DqN,QAAS,OACTrL,MAAO,sEACPS,IAAK,qDACLwI,IAAK,4BACJ,MAAO,GACJ0C,IAA2B3N,EAAAA,EAAAA,GAAoB,OAAQ,KAAM,qBAAsB,GACnF4N,IAA2B5N,EAAAA,EAAAA,GAAoB,OAAQ,KAAM,eAAgB,GAC7E6N,IAA2B7N,EAAAA,EAAAA,GAAoB,MAAO,CAC1DqN,QAAS,OACTrL,MAAO,sEACPS,IAAK,gDACLwI,IAAK,wBACJ,MAAO,GACJ6C,IAA2B9N,EAAAA,EAAAA,GAAoB,KAAM,KAAM,EAClDwF,EAAAA,EAAAA,IAAiB,2CACjBxF,EAAAA,EAAAA,GAAoB,SAAU,KAAM,mBACpCwF,EAAAA,EAAAA,IAAiB,eAC5B,GACEuI,IAA2B/N,EAAAA,EAAAA,GAAoB,KAAM,KAAM,EAClDwF,EAAAA,EAAAA,IAAiB,wEACjBxF,EAAAA,EAAAA,GAAoB,OAAQ,KAAM,SAClCwF,EAAAA,EAAAA,IAAiB,iBACjBxF,EAAAA,EAAAA,GAAoB,OAAQ,KAAM,MAClCwF,EAAAA,EAAAA,IAAiB,OAC5B,GACEyI,IAA2BjO,EAAAA,EAAAA,GAAoB,KAAM,CAAEC,GAAI,SAAW,iDAAkD,GACxHiO,IAA2BlO,EAAAA,EAAAA,GAAoB,IAAK,KAAM,6EAA8E,GACxImO,IAA2BnO,EAAAA,EAAAA,GAAoB,KAAM,KAAM,YAAa,GACxEoO,IAA2BpO,EAAAA,EAAAA,GAAoB,MAAO,CAC1DqN,QAAS,OACTrL,MAAO,sEACPS,IAAK,uDACLwI,IAAK,4BACJ,MAAO,GACJoD,IAA2BrO,EAAAA,EAAAA,GAAoB,OAAQ,KAAM,qBAAsB,GACnFsO,IAA2BtO,EAAAA,EAAAA,GAAoB,OAAQ,KAAM,eAAgB,GAC7EwO,IAA2BxO,EAAAA,EAAAA,GAAoB,MAAO,CAC1DqN,QAAS,OACTrL,MAAO,sEACPS,IAAK,kDACLwI,IAAK,wBACJ,MAAO,GACJwD,IAA2BzO,EAAAA,EAAAA,GAAoB,KAAM,KAAM,EAClDwF,EAAAA,EAAAA,IAAiB,2CACjBxF,EAAAA,EAAAA,GAAoB,SAAU,KAAM,mBACpCwF,EAAAA,EAAAA,IAAiB,eAC5B,GACEkJ,IAA2B1O,EAAAA,EAAAA,GAAoB,KAAM,KAAM,EAClDwF,EAAAA,EAAAA,IAAiB,wEACjBxF,EAAAA,EAAAA,GAAoB,OAAQ,KAAM,SAClCwF,EAAAA,EAAAA,IAAiB,iBACjBxF,EAAAA,EAAAA,GAAoB,OAAQ,KAAM,MAClCwF,EAAAA,EAAAA,IAAiB,OAC5B,GACEmJ,IAA2B3O,EAAAA,EAAAA,GAAoB,KAAM,KAAM,sCAAuC,GAClG4O,IAA2B5O,EAAAA,EAAAA,GAAoB,IAAK,KAAM,8DAA+D,GACzH6O,IAA2B7O,EAAAA,EAAAA,GAAoB,MAAO,CAC1DqN,QAAS,OACTrL,MAAO,sEACPS,IAAK,0DACLwI,IAAK,sCACJ,MAAO,GACJuV,IAA2BxgB,EAAAA,EAAAA,GAAoB,MAAO,CAC1DqN,QAAS,OACTrL,MAAO,sEACPS,IAAK,kEACLwI,IAAK,wBACJ,MAAO,GACJwV,IAA2BzgB,EAAAA,EAAAA,GAAoB,KAAM,KAAM,0FAA2F,GAe5J,QAA4BE,EAAAA,EAAAA,IAAiB,CAC3CC,OAAQ,oBACRC,MAAMC,GAER,MAAM6O,GAASC,EAAAA,EAAAA,MAETF,EAAgD,CACpD,UACA,MACA,SAGF,SAASG,EAAWzK,GAClBuK,EAAOG,KAAK,aAAYhQ,EAAAA,EAAAA,IAAoBsF,iBAC9C,CAEA,MAAO,CAAC3D,EAAUC,KAChB,MAAMkE,GAAyB7B,EAAAA,EAAAA,IAAkB,eAEjD,OAAQpC,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB0B,EAAAA,GAAW,KAAM,GACxDrC,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAaC,EAAAA,GAAW,CAAEC,GAAI,QAAU,EACrDmC,EAAAA,EAAAA,IAAa8L,GAAAA,EAAU,CACrBlK,MAAO,uBACPmK,YAAa,4JACbC,IAAK,iDACJ,KAAM,EAAG,CAAC,YAEfhM,EAAAA,EAAAA,IAAaiM,EAAAA,EAAiB,CAC5B,uBAAyBC,GAAkB,YAAYA,gBACvD,qBAAsB,qBACrB,KAAM,EAAG,CAAC,0BACb1P,EAAAA,EAAAA,GAAoB,MAAOD,GAAY,EACrCC,EAAAA,EAAAA,GAAoB,OAAQgG,GAAY,EACtChG,EAAAA,EAAAA,GAAoB,MAAOkG,GAAY,EACrClG,EAAAA,EAAAA,GAAoB,OAAQmG,GAAY,CACtCC,IACA5C,EAAAA,EAAAA,IAAamM,EAAAA,EAAc,CACzB3N,MAAO,iCACP4N,UAAW,GACXC,UAAW,GACXC,WAAY,oBACZ,mBAAoB,qBACpBC,YAAaX,KAEfpP,EAAAA,EAAAA,GAAoB,IAAKqG,GAAY,EACnCb,EAAAA,EAAAA,IAAiB,6EACjBhC,EAAAA,EAAAA,IAAawM,EAAgB,CAC3BlL,KAAM,aACNH,OAAQ,eACR3C,MAAO,uDAETwD,EAAAA,EAAAA,IAAiB,SACjBhC,EAAAA,EAAAA,IAAawM,EAAgB,CAC3BlL,KAAM,aACNH,OAAQ,aACR3C,MAAO,uDAETwD,EAAAA,EAAAA,IAAiB,sFAEnBhC,EAAAA,EAAAA,IAAa0M,GAAQ,CACnBlO,MAAO,eACP+H,QAAQnI,EAAAA,EAAAA,IAAO2K,KACd,KAAM,EAAG,CAAC,gBAGjBvM,EAAAA,EAAAA,GAAoB,MAAOsG,GAAY,EACrCtG,EAAAA,EAAAA,GAAoB,MAAOuG,GAAY,CACrCC,IACAxG,EAAAA,EAAAA,GAAoB,OAAQyG,GAAa,CACvCC,KACCxF,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB0B,EAAAA,GAAW,MAAMqG,EAAAA,EAAAA,IAAYqF,GAAYkB,IACnE3M,EAAAA,EAAAA,IAAa2B,EAAwB,CAC1CrD,IAAKqO,EACL9O,GAAI,IAAI8O,EAASzQ,gBACjBsC,MAAO,+BACN,CACD+C,SAASM,EAAAA,EAAAA,KAAS,IAAM,EACtBrF,EAAAA,EAAAA,GAAoB,SAAU2G,GAAa,EACzCnD,EAAAA,EAAAA,IAAa4M,GAAM,CACjBnJ,KAAMkJ,EACNnO,MAAO,QACN,KAAM,EAAG,CAAC,UACbhC,EAAAA,EAAAA,GAAoB,OAAQ4G,IAAanB,EAAAA,EAAAA,IAAiB0K,GAAW,QAGzEzK,EAAG,GACF,KAAM,CAAC,SACR,UAGR1F,EAAAA,EAAAA,GAAoB,MAAO6G,GAAa,EACtC7G,EAAAA,EAAAA,GAAoB,MAAO,KAAM,CAC/B8G,GACAC,IACA/G,EAAAA,EAAAA,GAAoB,IAAK,KAAM,EAC7BwF,EAAAA,EAAAA,IAAiB,0EACjBhC,EAAAA,EAAAA,IAAa2B,EAAwB,CAAE9D,GAAI,iCAAmC,CAC5E0D,SAASM,EAAAA,EAAAA,KAAS,IAAM,EACtBG,EAAAA,EAAAA,IAAiB,QAEnBE,EAAG,KAELF,EAAAA,EAAAA,IAAiB,UACjBhC,EAAAA,EAAAA,IAAa2B,EAAwB,CAAE9D,GAAI,oCAAsC,CAC/E0D,SAASM,EAAAA,EAAAA,KAAS,IAAM,EACtBG,EAAAA,EAAAA,IAAiB,WAEnBE,EAAG,KAELF,EAAAA,EAAAA,IAAiB,6QAGrBwB,KAEF4F,GACAC,IACA7M,EAAAA,EAAAA,GAAoB,KAAM,KAAM,EAC9BA,EAAAA,EAAAA,GAAoB,KAAM,KAAM,EAC9BwF,EAAAA,EAAAA,IAAiB,WACjBsH,IACAtH,EAAAA,EAAAA,IAAiB,uBACjBxF,EAAAA,EAAAA,GAAoB,SAAU,KAAM,EAClCwD,EAAAA,EAAAA,IAAa4M,GAAM,CAAEnJ,KAAM,WAC3BzB,EAAAA,EAAAA,IAAiB,cACjBhC,EAAAA,EAAAA,IAAa4M,GAAM,CAAEnJ,KAAM,WAC3BzB,EAAAA,EAAAA,IAAiB,8BACjBhC,EAAAA,EAAAA,IAAa4M,GAAM,CAAEnJ,KAAM,UAC3BzB,EAAAA,EAAAA,IAAiB,cACjBhC,EAAAA,EAAAA,IAAa4M,GAAM,CAAEnJ,KAAM,WAC3BzB,EAAAA,EAAAA,IAAiB,YAEnBA,EAAAA,EAAAA,IAAiB,KACjBuH,MAEF/M,EAAAA,EAAAA,GAAoB,KAAM,KAAM,EAC9BwF,EAAAA,EAAAA,IAAiB,UACjBxF,EAAAA,EAAAA,GAAoB,SAAU,KAAM,EAClCwD,EAAAA,EAAAA,IAAa4M,GAAM,CAAEnJ,KAAM,UAC3BzB,EAAAA,EAAAA,MACAwH,MAEFxH,EAAAA,EAAAA,IAAiB,cACjBxF,EAAAA,EAAAA,GAAoB,SAAU,KAAM,EAClCwD,EAAAA,EAAAA,IAAa4M,GAAM,CAAEnJ,KAAM,UAC3BzB,EAAAA,EAAAA,IAAiB,eAEnBA,EAAAA,EAAAA,IAAiB,mCACjByH,IACAzH,EAAAA,EAAAA,IAAiB,KACjB0H,KAEFC,GACAC,KAEFG,GACAC,IACAxN,EAAAA,EAAAA,GAAoB,KAAM,KAAM,EAC9BA,EAAAA,EAAAA,GAAoB,KAAM,KAAM,EAC9BwF,EAAAA,EAAAA,IAAiB,WACjBiI,IACAjI,EAAAA,EAAAA,IAAiB,kBACjBxF,EAAAA,EAAAA,GAAoB,SAAU,KAAM,EAClCwD,EAAAA,EAAAA,IAAa4M,GAAM,CAAEnJ,KAAM,UAC3BzB,EAAAA,EAAAA,IAAiB,4BACjBhC,EAAAA,EAAAA,IAAa4M,GAAM,CAAEnJ,KAAM,UAC3BzB,EAAAA,EAAAA,IAAiB,uBACjBhC,EAAAA,EAAAA,IAAa4M,GAAM,CAAEnJ,KAAM,UAC3BzB,EAAAA,EAAAA,IAAiB,eAEnBA,EAAAA,EAAAA,IAAiB,KACjBkI,MAEF1N,EAAAA,EAAAA,GAAoB,KAAM,KAAM,EAC9BwF,EAAAA,EAAAA,IAAiB,UACjBxF,EAAAA,EAAAA,GAAoB,SAAU,KAAM,EAClCwD,EAAAA,EAAAA,IAAa4M,GAAM,CAAEnJ,KAAM,UAC3BzB,EAAAA,EAAAA,MACAmI,MAEFnI,EAAAA,EAAAA,IAAiB,cACjBxF,EAAAA,EAAAA,GAAoB,SAAU,KAAM,EAClCwD,EAAAA,EAAAA,IAAa4M,GAAM,CAAEnJ,KAAM,UAC3BzB,EAAAA,EAAAA,IAAiB,eAEnBA,EAAAA,EAAAA,IAAiB,mCACjBoI,IACApI,EAAAA,EAAAA,IAAiB,KACjBqI,KAEFC,GACAC,KAEFE,GACAC,IACAlO,EAAAA,EAAAA,GAAoB,KAAM,KAAM,EAC9BA,EAAAA,EAAAA,GAAoB,KAAM,KAAM,EAC9BwF,EAAAA,EAAAA,IAAiB,WACjB2I,IACA3I,EAAAA,EAAAA,IAAiB,kBACjBxF,EAAAA,EAAAA,GAAoB,SAAU,KAAM,EAClCwD,EAAAA,EAAAA,IAAa4M,GAAM,CAAEnJ,KAAM,UAC3BzB,EAAAA,EAAAA,IAAiB,gBACjBhC,EAAAA,EAAAA,IAAa4M,GAAM,CAAEnJ,KAAM,UAC3BzB,EAAAA,EAAAA,IAAiB,mBACjBhC,EAAAA,EAAAA,IAAa4M,GAAM,CAAEnJ,KAAM,UAC3BzB,EAAAA,EAAAA,IAAiB,eAEnBA,EAAAA,EAAAA,IAAiB,KACjB4I,MAEFpO,EAAAA,EAAAA,GAAoB,KAAM,KAAM,EAC9BwF,EAAAA,EAAAA,IAAiB,UACjBxF,EAAAA,EAAAA,GAAoB,SAAU,KAAM,EAClCwD,EAAAA,EAAAA,IAAa4M,GAAM,CAAEnJ,KAAM,UAC3BzB,EAAAA,EAAAA,MACA6I,MAEF7I,EAAAA,EAAAA,IAAiB,cACjBxF,EAAAA,EAAAA,GAAoB,SAAU,KAAM,EAClCwD,EAAAA,EAAAA,IAAa4M,GAAM,CAAEnJ,KAAM,UAC3BzB,EAAAA,EAAAA,IAAiB,eAEnBA,EAAAA,EAAAA,IAAiB,mCACjB8I,IACA9I,EAAAA,EAAAA,IAAiB,KACjBgJ,KAEFC,GACAC,KAEFC,GACAC,IACA5O,EAAAA,EAAAA,GAAoB,KAAM,KAAM,EAC9BA,EAAAA,EAAAA,GAAoB,KAAM,KAAM,EAC9BwF,EAAAA,EAAAA,IAAiB,cACjBhC,EAAAA,EAAAA,IAAa2B,EAAwB,CAAE9D,GAAI,0BAA4B,CACrE0D,SAASM,EAAAA,EAAAA,KAAS,IAAM,EACtBG,EAAAA,EAAAA,IAAiB,gCAEnBE,EAAG,KAELF,EAAAA,EAAAA,IAAiB,KACjBqJ,MAEF7O,EAAAA,EAAAA,GAAoB,KAAM,KAAM,EAC9BwF,EAAAA,EAAAA,IAAiB,0CACjBxF,EAAAA,EAAAA,GAAoB,SAAU,KAAM,EAClCwD,EAAAA,EAAAA,IAAa4M,GAAM,CAAEnJ,KAAM,UAC3BzB,EAAAA,EAAAA,IAAiB,eAEnBA,EAAAA,EAAAA,IAAiB,KACjBgb,KAEFC,YAKRjd,EAAAA,EAAAA,IAAakN,EAAAA,IACZ,GAAG,CAER,IC1ZA,MAAM,GAAc,GAEpB,UCFA,MAAM3Q,GAAa,CAAE+B,IAAK,GACpBkE,IAA0BhG,EAAAA,EAAAA,GAAoB,WAAY,KAAM,EACvDA,EAAAA,EAAAA,GAAoB,MAAO,CAAEgC,MAAO,kBACpChC,EAAAA,EAAAA,GAAoB,MAAO,CAAEgC,MAAO,kCACpChC,EAAAA,EAAAA,GAAoB,MAAO,CAAEgC,MAAO,oCACpChC,EAAAA,EAAAA,GAAoB,MAAO,CAAEgC,MAAO,+CACpChC,EAAAA,EAAAA,GAAoB,MAAO,CAAEgC,MAAO,qCAC/C,GACEkE,IAA0BlG,EAAAA,EAAAA,GAAoB,QAAS,KAAM,EACpDA,EAAAA,EAAAA,GAAoB,KAAM,CAAEgC,MAAO,wCAA0C,EAC3EhC,EAAAA,EAAAA,GAAoB,KAAM,CAAEyT,MAAO,SACnCzT,EAAAA,EAAAA,GAAoB,KAAM,CACrCyT,MAAO,MACPzR,MAAO,sBACN,eACUhC,EAAAA,EAAAA,GAAoB,KAAM,CACrCyT,MAAO,MACPzR,MAAO,2CACN,SACUhC,EAAAA,EAAAA,GAAoB,KAAM,CACrCyT,MAAO,MACPzR,MAAO,2CACN,cACUhC,EAAAA,EAAAA,GAAoB,KAAM,CACrCyT,MAAO,MACPzR,MAAO,2CACN,gBAEH,GACEmE,GAAa,CAAEnE,MAAO,SACtBoE,IAA0BpG,EAAAA,EAAAA,GAAoB,MAAO,CACzD4F,MAAO,MACPC,OAAQ,MACRE,QAAS,YACT/D,MAAO,SACP8D,KAAM,eACNH,MAAO,8BACN,EACY3F,EAAAA,EAAAA,GAAoB,OAAQ,CACvC,YAAa,UACbiG,EAAG,6HAEH,GACEI,GAAa,CACjBD,IAEIE,GAAa,CAAExE,IAAK,GACpByE,GAAa,CAAEvE,MAAO,QACtBwE,GAAa,CAAExE,MAAO,aACtByE,GAAc,CAAEzE,MAAO,wBACvB0E,GAAc,CAAE1E,MAAO,wBACvB2E,GAAc,CAAC,MAAO,MAAO,SAC7BC,GAAc,CAAE5E,MAAO,wBACvB6E,GAAc,CAClB/E,IAAK,EACLE,MAAO,UAEH8E,GAAc,CAAEkO,QAAS,KACzBjO,GAAc,CAAE/E,MAAO,oFACvBgF,GAAc,CAAEhF,MAAO,YACvB4K,GAAc,CAAE5K,MAAO,2CACvB6K,GAAc,CAAE7K,MAAO,wDACvB8K,IAA2B9M,EAAAA,EAAAA,GAAoB,KAAM,CACzDyT,MAAO,MACPzR,MAAO,yBACN,YAAa,GACV+K,GAAc,CAAC,QACfC,IAA2BhN,EAAAA,EAAAA,GAAoB,KAAM,CACzDyT,MAAO,MACPzR,MAAO,yBACN,MAAO,GACJiL,IAA2BjN,EAAAA,EAAAA,GAAoB,KAAM,CACzDyT,MAAO,MACPzR,MAAO,2CACN,WAAY,GACTkL,GAAc,CAAElL,MAAO,uBACvBmL,GAAc,CAAErL,IAAK,GAa3B,QAA4B5B,EAAAA,EAAAA,IAAiB,CAC3CC,OAAQ,cACRuE,MAAO,CACPgc,SAAU,CACRxd,KAAM8G,OACNnF,UAAU,GAEZ8b,YAAa,CACXzd,KAAM8G,OACNnF,UAAU,IAGZzE,MAAMC,GAER,MAAMqE,EAAQrE,EAIRwT,GAAmBlS,EAAAA,EAAAA,KAAS,IAAM+C,EAAMgc,SAAS5O,SAASC,OAAO6O,OAAOlc,EAAMic,YAAY7O,SAASC,QAAQ3H,QAAQ0J,GAAS,CAAC,IAAK,QAAQpV,SAASoV,EAAKxC,OAAOhN,gBAErK,SAAS2Q,EAAM3D,GACb,MAAI,SAAUA,EAAeA,EAAO4D,KAC7B5D,EAAO6D,KAAK/V,MAAM,GAAI,EAC/B,CAEA,MAAO,CAAC4B,EAAUC,IAC4B,KAApCW,EAAAA,EAAAA,IAAOiS,GAAkB1K,SAC5BjI,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,QAAS9B,GAAY,CACtDiG,GACAE,IACAlG,EAAAA,EAAAA,GAAoB,QAAS,KAAM,GAChCkB,EAAAA,EAAAA,KAAW,IAAOW,EAAAA,EAAAA,IAAoB0B,EAAAA,GAAW,MAAMqG,EAAAA,EAAAA,KAAYhI,EAAAA,EAAAA,IAAOiS,IAAmB,CAACvC,EAAQxH,KAAS,QAC9G,OAAQ5I,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB0B,EAAAA,GAAW,CAAEzB,IAAKgI,GAAS,EACnE9J,EAAAA,EAAAA,GAAoB,KAAMmG,GAAY,CACnCmL,EAAO8D,SACHlU,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,KAAM,CACvCC,IAAK,EACLE,MAAO,cACPD,QAASd,EAAO,KAAOA,EAAO,IAAKoU,EAAAA,EAAAA,KAAeC,IAAI,QAAW,QAAR,EAAAA,EAAEC,cAAM,OAAR,EAAUC,QAAQ,MAAMC,YAAYC,UAAUC,OAAO,UAAmB,QAAR,EAAAL,EAAEC,cAAM,OAAR,EAAUC,QAAQ,MAAMI,cAAc,OAAOF,UAAUC,OAAO,YAAY,GAAI,CAAC,WACvMtP,OACFnF,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,KAAMyE,MAC7CtG,EAAAA,EAAAA,GAAoB,KAAMuG,GAAY,EACpCvG,EAAAA,EAAAA,GAAoB,SAAUwG,IAAYf,EAAAA,EAAAA,IAAiBwP,EAAM3D,EAAOA,SAAU,IAClF9N,EAAAA,EAAAA,IAAa0Q,GAAM,CACjB/B,QAAS8C,EAAM3D,EAAOA,QACtBtP,MAAO,2CACN,KAAM,EAAG,CAAC,eAEfhC,EAAAA,EAAAA,GAAoB,KAAMyG,IAAahB,EAAAA,EAAAA,IAA8C,MAA7B6L,EAAOA,OAAOhN,WAAqB,OAAS,QAAS,IAC7GtE,EAAAA,EAAAA,GAAoB,KAAM0G,GAAa,CACpC4K,EAAO8D,SACHlU,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,MAAO,CACxCC,IAAK,EACLE,MAAO,+BACPS,IAAK,oCAAoC6O,EAAO8D,OAAOS,eACvD5K,IAAK,aAAaqG,EAAO8D,OAAOU,SAChC1Q,MAAO,aAAakM,EAAO8D,OAAOU,UACjC,KAAM,EAAGnP,MACZ1E,EAAAA,EAAAA,IAAoB,IAAI,IAC5BuD,EAAAA,EAAAA,IAAiB,KAAMC,EAAAA,EAAAA,IAA8B,QAAd,EAAC6L,EAAO8D,cAAM,aAAb,EAAeU,QAAS,MAElE9V,EAAAA,EAAAA,GAAoB,KAAM4G,IAAanB,EAAAA,EAAAA,IAA8B,QAAd,EAAC6L,EAAO8D,cAAM,aAAb,EAAekB,SAAU,KAElFhF,EAAO8D,SACHlU,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,KAAMgF,GAAa,EACpD7G,EAAAA,EAAAA,GAAoB,KAAM8G,GAAa,EACrC9G,EAAAA,EAAAA,GAAoB,MAAO+G,GAAa,EACtC/G,EAAAA,EAAAA,GAAoB,MAAOgH,GAAa,EACtChH,EAAAA,EAAAA,GAAoB,OAAQ4M,IAAanH,EAAAA,EAAAA,IAAiB6L,EAAO8D,OAAOe,KAAM,IAC9EnW,EAAAA,EAAAA,GAAoB,QAAS6M,GAAa,EACxC7M,EAAAA,EAAAA,GAAoB,QAAS,KAAM,EACjCA,EAAAA,EAAAA,GAAoB,KAAM,KAAM,CAC9B8M,IACA9M,EAAAA,EAAAA,GAAoB,KAAM,KAAM,EAC9BA,EAAAA,EAAAA,GAAoB,IAAK,CACvB4K,KAAM,sCAAsC0G,EAAO8D,OAAOgB,SAAS9E,EAAO8D,OAAOiB,eAAe/E,EAAO8D,OAAOkB,UAC9Gf,OAAQ,SACR1K,IAAK,sBACL7I,MAAO,sDACNyD,EAAAA,EAAAA,IAAiB6L,EAAO8D,OAAOgB,MAAQ,MAAO3Q,EAAAA,EAAAA,IAAiB6L,EAAO8D,OAAOiB,YAAc,MAAO5Q,EAAAA,EAAAA,IAAiB6L,EAAO8D,OAAOkB,SAAU,EAAGvJ,SAGrJ/M,EAAAA,EAAAA,GAAoB,KAAM,KAAM,CAC9BgN,IACAhN,EAAAA,EAAAA,GAAoB,KAAM,MAAMyF,EAAAA,EAAAA,IAAiB6L,EAAO8D,OAAOmB,IAAK,MAEtEvW,EAAAA,EAAAA,GAAoB,KAAM,KAAM,CAC9BiN,IACAjN,EAAAA,EAAAA,GAAoB,KAAM,MAAMyF,EAAAA,EAAAA,IAAiB6L,EAAO8D,OAAOU,QAAS,YAKhF9V,EAAAA,EAAAA,GAAoB,MAAOkN,GAAa,EACtClN,EAAAA,EAAAA,GAAoB,MAAO,CACzBgC,MAAO,mDACP+S,OAAOgB,EAAAA,EAAAA,IAAgB,CAAEC,gBAAiB,kGAAkG1E,EAAO8D,OAAOa,IAAM,KAAK3E,EAAO8D,OAAOc,sBAAsB5E,EAAO8D,OAAOa,OAAO3E,EAAO8D,OAAOc,yBAC3O,KAAM,aAKjBjU,EAAAA,EAAAA,IAAoB,IAAI,IAC3B,GAAG,IACJ,aAGPf,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,MAAOsL,GAAa,kCAE7D,ICtMA,MAAM,GAAc,GAEpB,UCFA,MAAMpN,GAAa,CAAEiC,MAAO,4BACtBgE,GAAa,CAAEhE,MAAO,+BACtBkE,GAAa,CAAElE,MAAO,4EACtBmE,GAAa,CAAEnE,MAAO,YACtBoE,GAAa,CAAEtE,IAAK,GACpBuE,GAAa,CAAEvE,IAAK,GACpBwE,IAA0BtG,EAAAA,EAAAA,GAAoB,SAAU,CAC5DkD,KAAM,SACNlB,MAAO,kOACN,mBAAoB,GACjBuE,GAAa,CAAEvE,MAAO,uCACtBwE,GAAa,CACjB1E,IAAK,EACL,cAAe,QAEX2E,GAAc,CAAEzE,MAAO,QACvB0E,GAAc,CAClB5E,IAAK,EACLE,MAAO,QAEH2E,GAAc,CAAE3E,MAAO,iBACvB4E,IAA2B5G,EAAAA,EAAAA,GAAoB,KAAM,CAAEgC,MAAO,gDAAkD,yBAA0B,GAC1I6E,GAAc,CAAE7E,MAAO,mCACvB8E,GAAc,CAAE9E,MAAO,WACvB+E,GAAc,CAAE/E,MAAO,WACvBgF,IAA2BhH,EAAAA,EAAAA,GAAoB,KAAM,CAAEgC,MAAO,oCAAsC,4DAA6D,GACjK4K,GAAc,CAAE5K,MAAO,6BACvB6K,GAAc,CAAE7K,MAAO,mBACvB8K,GAAc,CAClB9K,MAAO,4CACP2K,aAAc,OAyBhB,QAA4BzM,EAAAA,EAAAA,IAAiB,CAC3CC,OAAQ,2BACRuE,MAAO,CACPoY,aAAc,CACZ5Z,KAAM0B,OACNC,UAAU,IAGZzE,MAAMC,GAER,MAAMqE,EAAQrE,EAIR6O,GAASC,EAAAA,EAAAA,MAETxK,GAASuE,EAAAA,EAAAA,IAAI,IACb6T,GAAiB7T,EAAAA,EAAAA,IAAI,IACrBmE,GAAUnE,EAAAA,EAAAA,KAAI,GACdgT,GAAQhT,EAAAA,EAAAA,IAAyB,MACjC8T,GAAc9T,EAAAA,EAAAA,IAAIxL,OAAOuf,WAAa,KACtCC,GAAchU,EAAAA,EAAAA,IAAqB,MACnC2X,GAAe3X,EAAAA,EAAAA,IAAiB,CACpCyI,MAAO,CACLC,OAAQwK,GACRzX,OAAQA,EAAO0E,MACf/E,WAAY,KAEdwN,SAAUwK,KAENwE,GAAkB5X,EAAAA,EAAAA,IAAiB,CACvCyI,MAAO,CACLC,OAAQwK,GACRzX,OAAQA,EAAO0E,MACf/E,WAAY,QAEdwN,SAAUwK,KAGZ,SAASlN,EAAWiO,GAClBnO,EAAOG,KAAK,aAAYhQ,EAAAA,EAAAA,IAAoBge,iBAC9C,CAEA,SAASC,IACPjQ,EAAQhE,OAAQ,EAChB6S,EAAM7S,MAAQ,KAEV6T,EAAY7T,OACd6T,EAAY7T,QAEd,MAAMkU,EAAcC,KAAAA,YAAAA,SACpBN,EAAY7T,MAAQkU,EAAYE,OAEhCD,KAAAA,KAC4B,oBAAqB,CAC7C7Y,OAAQA,EAAO0E,OACd,CACD6T,YAAaK,EAAYK,QAE1BC,MAAM/L,IACDpN,EAAMoY,gBAAiBzd,EAAAA,EAAAA,IAAoByS,EAASgM,KAAKC,iBAC3D7O,EAAO8O,QAAQ,CACbC,KAAM,aAAY5e,EAAAA,EAAAA,IAAoByS,EAASgM,KAAKC,gCAGxDpZ,EAAO0E,OAAQ1J,EAAAA,EAAAA,IAAwBmS,EAASgM,KAAKI,eACrDnB,EAAe1T,OAAQ1J,EAAAA,EAAAA,IAAwBmS,EAASgM,KAAKC,gBAC7D8C,EAAaxX,MAAQyI,EAASgM,KAAKlE,EACnCkH,EAAgBzX,MAAQyI,EAASgM,KAAKrB,KACtCpP,EAAQhE,OAAQ,CAAK,IAEtB8U,OAAO7I,IACDkI,KAAAA,SAAelI,KAClB4G,EAAM7S,MAAQuR,GAAYtF,EAAExD,SAASgM,KAAK5B,O,GAGlD,CAeA,OAbAkC,EAAAA,EAAAA,KAAM,IAAM1Z,EAAMoY,eAAc,KAC9B,MAAM5d,GAAaK,EAAAA,EAAAA,IAAoBmF,EAAMoY,cAC7CnY,EAAO0E,MAAQnK,EACf6d,EAAe1T,MAAQnK,EACvBoe,GAAM,GACL,CACDe,WAAW,IAGb3gB,OAAO4gB,iBAAiB,UAAU,KAChCtB,EAAY3T,MAAQ3L,OAAOuf,WAAa,GAAG,IAGtC,CAACjc,EAAUC,KAChB,MAAMkE,GAAyB7B,EAAAA,EAAAA,IAAkB,eAEjD,OAAQpC,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB0B,EAAAA,GAAW,KAAM,GACxDrC,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAaC,EAAAA,GAAW,CAAEC,GAAI,QAAU,EACrDmC,EAAAA,EAAAA,IAAa8L,GAAAA,EAAU,CACrBlK,MAAO,wBAAwBT,EAAO0E,QACtCkG,YAAa,6CAA6C5K,EAAO0E,oDACjEmG,IAAK,mCAAmCuN,EAAe1T,qBACtD,KAAM,EAAG,CAAC,QAAS,cAAe,YAEvC7F,EAAAA,EAAAA,IAAaiM,EAAAA,EAAiB,CAC5B9K,OAAQA,EAAO0E,MACf,uBAAyBqG,GAAkB,YAAYA,gBACvD,qBAAsB,qBACrB,KAAM,EAAG,CAAC,SAAU,0BACvB1P,EAAAA,EAAAA,GAAoB,MAAOD,GAAY,EACrCC,EAAAA,EAAAA,GAAoB,OAAQgG,GAAY,EACtCxC,EAAAA,EAAAA,IAAa0M,GAAQ,CACnBlO,MAAO,UACP+H,QAAQnI,EAAAA,EAAAA,IAAO4K,KACd,KAAM,EAAG,CAAC,YACbxM,EAAAA,EAAAA,GAAoB,MAAOkG,GAAY,EACrClG,EAAAA,EAAAA,GAAoB,KAAMmG,GAAY,EACpCX,EAAAA,EAAAA,IAAiB,qBAChBb,EAAO0E,QAAU0T,EAAe1T,QAC5BnI,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,IAAKuE,IAAYX,EAAAA,EAAAA,IAAiBd,EAAO0E,OAAQ,MACnFnI,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,OAAQwE,GAAY,EACrDrG,EAAAA,EAAAA,GAAoB,IAAK,MAAMyF,EAAAA,EAAAA,IAAiBsX,EAAe1T,OAAQ,IACvE7D,EAAAA,EAAAA,IAAiB,MAAOC,EAAAA,EAAAA,IAAiBd,EAAO0E,OAAS,IAAK,SAGtE7F,EAAAA,EAAAA,IAAawM,EAAgB,CAC3BrL,OAAQA,EAAO0E,MACfrH,MAAO,yCACN,CACD+C,SAASM,EAAAA,EAAAA,KAAS,IAAM,CACtBiB,MAEFZ,EAAG,GACF,EAAG,CAAC,cAET1F,EAAAA,EAAAA,GAAoB,MAAOuG,GAAY,EACrC/C,EAAAA,EAAAA,IAAa0M,GAAQ,CACnBlO,MAAO,mBACP+H,QAAQnI,EAAAA,EAAAA,IAAO6K,KACd,KAAM,EAAG,CAAC,WACI,OAAhByP,EAAM7S,QACFnI,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAaod,GAAe,CACzCzc,IAAK,EACLoa,MAAOA,EAAM7S,MACb1E,OAAQA,EAAO0E,MACf8S,UAAW,iBACV,KAAM,EAAG,CAAC,QAAS,YACrB9O,EAAQhE,QACNnI,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,MAAO2E,GAAY,EACpDhD,EAAAA,EAAAA,IAAagb,GAAmB,CAAExc,MAAO,oBACxCd,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB0B,EAAAA,GAAW,MAAMqG,EAAAA,EAAAA,IAAY,GAAI6U,IAC3Dze,EAAAA,EAAAA,GAAoB,MAAO,CAAE8B,IAAK2c,GAAK,GAC3Cvd,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB0B,EAAAA,GAAW,MAAMqG,EAAAA,EAAAA,IAAY,GAAI6U,IAC3Djb,EAAAA,EAAAA,IAAagb,GAAmB,CACrC1c,IAAK2c,EACLzc,MAAO,sDAEP,SAEJ,MACJwB,EAAAA,EAAAA,IAAagb,GAAmB,CAAExc,MAAO,gCACzCwB,EAAAA,EAAAA,IAAagb,GAAmB,CAAExc,MAAO,mBACzCwB,EAAAA,EAAAA,IAAagb,GAAmB,CAAExc,MAAO,qBACxCd,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB0B,EAAAA,GAAW,MAAMqG,EAAAA,EAAAA,IAAY,GAAI6U,KAC1Dvd,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB0B,EAAAA,GAAW,CAAEzB,IAAK2c,GAAK,EAC/Djb,EAAAA,EAAAA,IAAagb,GAAmB,CAAExc,MAAO,yBACzCwB,EAAAA,EAAAA,IAAagb,GAAmB,CAAExc,MAAO,0BACzCwB,EAAAA,EAAAA,IAAagb,GAAmB,CAAExc,MAAO,oBACxC,OACD,UAELd,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB0B,EAAAA,GAAW,CAAEzB,IAAK,GAAK,EACxD9B,EAAAA,EAAAA,GAAoB,IAAKyG,GAAa,wFAAyFhB,EAAAA,EAAAA,IAAiBd,EAAO0E,OAAS,+EAAgF,GACjM,IAA9CwX,EAAaxX,MAAMyI,SAASC,OAAO5I,QAAiE,IAAjD2X,EAAgBzX,MAAMyI,SAASC,OAAO5I,SACrFjI,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,MAAO6E,GAAa,EACrDlD,EAAAA,EAAAA,IAAakV,GAAAA,EAAO,CAAExV,KAAM,WAAa,CACvC6B,SAASM,EAAAA,EAAAA,KAAS,IAAM,EACtBrF,EAAAA,EAAAA,GAAoB,OAAQ,KAAM,EAChCA,EAAAA,EAAAA,GAAoB,OAAQ2G,IAAalB,EAAAA,EAAAA,IAAiBd,EAAO0E,OAAQ,IACzE7D,EAAAA,EAAAA,IAAiB,yCAGrBE,EAAG,SAGNxE,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAa4f,GAAa,CACvCjf,IAAK,EACL,YAAa+e,EAAaxX,MAC1B,eAAgByX,EAAgBzX,OAC/B,KAAM,EAAG,CAAC,YAAa,kBAC9BzC,IACA5G,EAAAA,EAAAA,GAAoB,MAAO6G,GAAa,EACtC7G,EAAAA,EAAAA,GAAoB,MAAO8G,GAAa,EACtCtD,EAAAA,EAAAA,IAAauQ,GAAY,CAAEpD,QAASkQ,EAAaxX,OAAS,KAAM,EAAG,CAAC,eAEtErJ,EAAAA,EAAAA,GAAoB,MAAO+G,GAAa,EACtCvD,EAAAA,EAAAA,IAAauQ,GAAY,CAAEpD,QAASmQ,EAAgBzX,OAAS,KAAM,EAAG,CAAC,iBAG1E,MACT7F,EAAAA,EAAAA,IAAa0M,GAAQ,CACnBlO,MAAO,eACP+H,QAAQnI,EAAAA,EAAAA,IAAO8K,KACd,KAAM,EAAG,CAAC,WACb1F,IACAhH,EAAAA,EAAAA,GAAoB,MAAO4M,GAAa,EACtC5M,EAAAA,EAAAA,GAAoB,IAAK6M,GAAa,EACpCrH,EAAAA,EAAAA,IAAiB,UACjBhC,EAAAA,EAAAA,IAAa2B,EAAwB,CACnC9D,GAAI,yBACJW,MAAO,qDACN,CACD+C,SAASM,EAAAA,EAAAA,KAAS,IAAM,EACtBG,EAAAA,EAAAA,IAAiB,2BAEnBE,EAAG,KAELF,EAAAA,EAAAA,IAAiB,qMAEnBxF,EAAAA,EAAAA,GAAoB,OAAQ8M,GAAa,EACvCtJ,EAAAA,EAAAA,IAAamM,EAAAA,EAAc,CACzB,mBAAoB,cACpBE,UAAW,GACXC,WAAY,oBACZsP,QAASza,EAAO0E,MAChB0G,YAAaX,GACZ,KAAM,EAAG,CAAC,uBAMvB5L,EAAAA,EAAAA,IAAakN,EAAAA,IACZ,GAAG,CAER,IChSA,MAAM,GAAc,GAEpB,UCFA,MAAM3Q,IAA0BC,EAAAA,EAAAA,GAAoB,OAAQ,CAAE,iBAAkB,KAAO,MAAO,GACxFgG,IAA0BhG,EAAAA,EAAAA,GAAoB,KAAM,CAAEgC,MAAO,kBAAoB,cAAe,GAChGkE,IAA0BlG,EAAAA,EAAAA,GAAoB,IAAK,KAAM,gRAAiR,GAC1UmG,IAA0BnG,EAAAA,EAAAA,GAAoB,IAAK,KAAM,uNAAwN,GACjRoG,IAA0BpG,EAAAA,EAAAA,GAAoB,KAAM,KAAM,kCAAmC,GAC7FqG,IAA0BrG,EAAAA,EAAAA,GAAoB,IAAK,KAAM,8RAA+R,GACxVsG,IAA0BtG,EAAAA,EAAAA,GAAoB,KAAM,KAAM,8BAA+B,GACzFuG,IAA0BvG,EAAAA,EAAAA,GAAoB,IAAK,CACvD4K,KAAM,+EACN2K,OAAQ,SACR1K,IAAK,uBACJ,yBAA0B,GACvBrE,GAAa,CAAExE,MAAO,8BACtByE,IAA2BzG,EAAAA,EAAAA,GAAoB,KAAM,KAAM,mCAAoC,GAC/F0G,IAA2B1G,EAAAA,EAAAA,GAAoB,IAAK,KAAM,4RAA6R,GACvV2G,IAA2B3G,EAAAA,EAAAA,GAAoB,IAAK,KAAM,iTAAkT,GAC5W4G,IAA2B5G,EAAAA,EAAAA,GAAoB,IAAK,KAAM,6PAA8P,GAO9T,QAA4BE,EAAAA,EAAAA,IAAiB,CAC3CC,OAAQ,WACRC,MAAMC,GAGR,MAAO,CAACW,EAAUC,KAChB,MAAMkE,GAAyB7B,EAAAA,EAAAA,IAAkB,eAEjD,OAAQpC,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB0B,EAAAA,GAAW,KAAM,GACxDrC,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAaC,EAAAA,GAAW,CAAEC,GAAI,QAAU,EACrDmC,EAAAA,EAAAA,IAAa8L,GAAAA,EAAU,CACrBlK,MAAO,aACPmK,YAAa,+HACbC,IAAK,2BACLwR,YAAa,kDACbC,YAAa,sDAEd/f,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,KAAa8B,EAAAA,EAAAA,IAAyB,UAAW,CAAEC,KAAM,uBAAyB,CAC/F6B,SAASM,EAAAA,EAAAA,KAAS,IAAM,EACtBG,EAAAA,EAAAA,IAAiB,sRAEnBE,EAAG,SAGPlC,EAAAA,EAAAA,IAAa2c,GAA6B,CACxCN,kBAAoBlb,GAAW,YAAYA,kBAC1C,CACD,sBAAsBU,EAAAA,EAAAA,KAAS,IAAM,CACnCtF,IACAyF,EAAAA,EAAAA,IAAiB,sFACjBhC,EAAAA,EAAAA,IAAawM,EAAgB,CAC3BrL,OAAQ,gBACR3C,MAAO,uDAETwD,EAAAA,EAAAA,IAAiB,SACjBhC,EAAAA,EAAAA,IAAawM,EAAgB,CAC3BrL,OAAQ,kBACR3C,MAAO,uDAETwD,EAAAA,EAAAA,IAAiB,mCAEnB2M,SAAS9M,EAAAA,EAAAA,KAAS,IAAM,CACtBW,GACAE,GACAC,GACAC,GACAC,IACArG,EAAAA,EAAAA,GAAoB,IAAK,KAAM,EAC7BwF,EAAAA,EAAAA,IAAiB,8NACjBhC,EAAAA,EAAAA,IAAa2B,EAAwB,CAAE9D,GAAI,iCAAmC,CAC5E0D,SAASM,EAAAA,EAAAA,KAAS,IAAM,EACtBG,EAAAA,EAAAA,IAAiB,QAEnBE,EAAG,KAELF,EAAAA,EAAAA,IAAiB,OACjBhC,EAAAA,EAAAA,IAAa2B,EAAwB,CAAE9D,GAAI,oCAAsC,CAC/E0D,SAASM,EAAAA,EAAAA,KAAS,IAAM,EACtBG,EAAAA,EAAAA,IAAiB,WAEnBE,EAAG,KAELF,EAAAA,EAAAA,IAAiB,OACjBhC,EAAAA,EAAAA,IAAa2B,EAAwB,CAAE9D,GAAI,qCAAuC,CAChF0D,SAASM,EAAAA,EAAAA,KAAS,IAAM,EACtBG,EAAAA,EAAAA,IAAiB,YAEnBE,EAAG,KAELF,EAAAA,EAAAA,IAAiB,OACjBhC,EAAAA,EAAAA,IAAa2B,EAAwB,CAAE9D,GAAI,mCAAqC,CAC9E0D,SAASM,EAAAA,EAAAA,KAAS,IAAM,EACtBG,EAAAA,EAAAA,IAAiB,UAEnBE,EAAG,KAELF,EAAAA,EAAAA,IAAiB,OACjBhC,EAAAA,EAAAA,IAAa2B,EAAwB,CAAE9D,GAAI,kCAAoC,CAC7E0D,SAASM,EAAAA,EAAAA,KAAS,IAAM,EACtBG,EAAAA,EAAAA,IAAiB,SAEnBE,EAAG,KAELF,EAAAA,EAAAA,IAAiB,OACjBhC,EAAAA,EAAAA,IAAa2B,EAAwB,CAAE9D,GAAI,kCAAoC,CAC7E0D,SAASM,EAAAA,EAAAA,KAAS,IAAM,EACtBG,EAAAA,EAAAA,IAAiB,SAEnBE,EAAG,KAELF,EAAAA,EAAAA,IAAiB,UACjBhC,EAAAA,EAAAA,IAAa2B,EAAwB,CAAE9D,GAAI,mCAAqC,CAC9E0D,SAASM,EAAAA,EAAAA,KAAS,IAAM,EACtBG,EAAAA,EAAAA,IAAiB,UAEnBE,EAAG,KAELF,EAAAA,EAAAA,IAAiB,sEAEnBc,IACAtG,EAAAA,EAAAA,GAAoB,IAAK,KAAM,EAC7BwD,EAAAA,EAAAA,IAAa2B,EAAwB,CAAE9D,GAAI,+BAAiC,CAC1E0D,SAASM,EAAAA,EAAAA,KAAS,IAAM,EACtBG,EAAAA,EAAAA,IAAiB,gCAEnBE,EAAG,KAELF,EAAAA,EAAAA,IAAiB,2HACjBe,IACAf,EAAAA,EAAAA,IAAiB,sJAEnBxF,EAAAA,EAAAA,GAAoB,KAAMwG,GAAY,GACnCtF,EAAAA,EAAAA,KAAW,IAAOW,EAAAA,EAAAA,IAAoB0B,EAAAA,GAAW,MAAMqG,EAAAA,EAAAA,KAAYhI,EAAAA,EAAAA,IAAOkC,IAAc,CAAC2M,EAAiB3G,MACjG5I,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,KAAM,CAAEC,IAAKgI,GAAS,EAC9DtG,EAAAA,EAAAA,IAAa2B,EAAwB,CACnC9D,GAAI,IAAIoP,EAAgBtM,iBACvB,CACDY,SAASM,EAAAA,EAAAA,KAAS,IAAM,EACtBG,EAAAA,EAAAA,KAAiBC,EAAAA,EAAAA,IAAiBgL,EAAgBvM,OAAS,UAAW,MAExEwB,EAAG,GACF,KAAM,CAAC,QACVF,EAAAA,EAAAA,IAAiB,OAAQC,EAAAA,EAAAA,IAAiBgL,EAAgBlB,aAAc,QAExE,QAEN9I,GACAC,GACAC,GACAC,MAEFlB,EAAG,GACF,EAAG,CAAC,uBACN,GAAG,CAER,IC9JA,MAAM,GAAc,GAEpB,U,uFCFA,MAAM3F,GAAa,CAAEiC,MAAO,4CAO5B,QAA4B9B,EAAAA,EAAAA,IAAiB,CAC3CC,OAAQ,kBACRC,MAAMC,GAER,MAAMkB,GAAQC,EAAAA,EAAAA,MACRyG,GAAgBtG,EAAAA,EAAAA,IAAS,CAC7Buf,MACE,OAAO3f,EAAMyG,MAAMC,aACrB,EACAkZ,MACE5f,EAAMG,OAAO,kBACf,IAGF,MAAO,CAACV,EAAUC,MACRC,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,KAAaS,EAAAA,EAAAA,IAAOwf,GAAAA,IAAc,CACtD7K,GAAI,MACJvU,MAAO,qBACN,CACD+C,SAASM,EAAAA,EAAAA,KAAS,IAAM,EACtB7B,EAAAA,EAAAA,KAAa5B,EAAAA,EAAAA,IAAOyf,GAAAA,IAAS,CAC3BC,YAAY1f,EAAAA,EAAAA,IAAOqG,GACnB,sBAAuBhH,EAAO,KAAOA,EAAO,GAAMsgB,IAAiBC,EAAAA,EAAAA,IAAOvZ,GAAkBA,EAAeoB,MAAQkY,EAAS,MAC5Hvf,OAAO2H,EAAAA,EAAAA,IAAgB,EAAC/H,EAAAA,EAAAA,IAAOqG,GAAiB,gBAAkB,cAAe,8NAChF,CACDlD,SAASM,EAAAA,EAAAA,KAAS,IAAM,EACtBrF,EAAAA,EAAAA,GAAoB,OAAQ,CAC1B,cAAe,OACfgC,OAAO2H,EAAAA,EAAAA,IAAgB,EAAC/H,EAAAA,EAAAA,IAAOqG,GAAiB,gBAAkB,gBAAiB,gIAClF,KAAM,MAEXvC,EAAG,GACF,EAAG,CAAC,aAAc,WACrBlC,EAAAA,EAAAA,KAAa5B,EAAAA,EAAAA,IAAO6f,GAAAA,IAAc,CAChClL,GAAI,OACJvU,MAAO,eACN,CACD+C,SAASM,EAAAA,EAAAA,KAAS,IAAM,EACtBrF,EAAAA,EAAAA,GAAoB,OAAQD,GAAY,EACtCuF,EAAAA,EAAAA,IAAYtE,EAAKuE,OAAQ,gBAG7BG,EAAG,OAGPA,EAAG,IAGP,ICvDA,MAAM,GAAc,GAEpB,UCFA,MAAM3F,GAAa,CAAEiC,MAAO,4BACtBgE,GAAa,CAAEhE,MAAO,+BACtBkE,GAAa,CAAElE,MAAO,sBACtBmE,GAAa,CAAErE,IAAK,GACpBsE,GAAa,CAAEtE,IAAK,GACpBuE,GAAa,CACjBvE,IAAK,EACLE,MAAO,iFACP4I,KAAM,4CACNC,IAAK,YAEDvE,GAAa,CAAEtE,MAAO,yCACtBuE,GAAa,CACjBvE,MAAO,wCACP,aAAc,QAEVwE,GAAa,CAAExE,MAAO,QACtByE,GAAc,CAClBmE,KAAM,qCACN2K,OAAQ,SACR1K,IAAK,uBAEDnE,IAA2B1G,EAAAA,EAAAA,GAAoB,OAAQ,CAAEgC,MAAO,oBAAsB,SAAU,GAChG2E,IAA2B3G,EAAAA,EAAAA,GAAoB,OAAQ,CAAEgC,MAAO,oBAAsB,aAAc,GACpG4E,GAAc,CAAE5E,MAAO,QACvB6E,IAA2B7G,EAAAA,EAAAA,GAAoB,OAAQ,CAAEgC,MAAO,iEAAmE,UAAW,GAC9I8E,GAAc,CAAE9E,MAAO,uDACvB+E,GAAc,CAAE/E,MAAO,QACvBgF,GAAc,CAAEhF,MAAO,uCACvB4K,GAAc,CAAE9K,IAAK,GACrB+K,GAAc,CAAE/K,IAAK,GACrBgL,GAAc,CAAE9K,MAAO,QACvB+K,GAAc,CAAE/K,MAAO,QACvBgL,GAAc,CAAElL,IAAK,GACrBmL,GAAc,CAAEnL,IAAK,GACrBoL,GAAc,CAAEpL,IAAK,GACrBqL,GAAc,CAAErL,IAAK,GACrBsL,GAAc,CAAEtL,IAAK,GACrByL,GAAc,CAAEzL,IAAK,GACrB0L,IAA2BxN,EAAAA,EAAAA,GAAoB,IAAK,CACxD4K,KAAM,6CACN5I,MAAO,oDACPuT,OAAQ,SACR1K,IAAK,uBACJ,yCAA0C,GACvC4C,GAAc,CAAE3L,IAAK,GACrB4L,GAAc,CAAE1L,MAAO,cACvB2L,GAAc,CAClB7L,IAAK,EACLE,MAAO,8BAEH4L,GAAc,CAClB9L,IAAK,EACLE,MAAO,8BAEH6L,IAA2B7N,EAAAA,EAAAA,GAAoB,KAAM,CAAEgC,MAAO,oCAAsC,aAAc,GAClH8L,IAA2B9N,EAAAA,EAAAA,GAAoB,KAAM,CAAEgC,MAAO,oCAAsC,gBAAiB,GACrH+L,IAA2B/N,EAAAA,EAAAA,GAAoB,KAAM,CAAEgC,MAAO,oCAAsC,gBAAiB,GACrHiM,GAAc,CAClBnM,IAAK,EACLE,MAAO,wCAEHkM,GAAc,CAClBpM,IAAK,EACL,cAAe,OACfE,MAAO,QAEHmM,GAAc,CAAErM,IAAK,GACrBsM,IAA2BpO,EAAAA,EAAAA,GAAoB,KAAM,CAAEgC,MAAO,oCAAsC,eAAgB,GACpHqM,IAA2BrO,EAAAA,EAAAA,GAAoB,KAAM,CAAEgC,MAAO,oCAAsC,cAAe,GACnHsM,IAA2BtO,EAAAA,EAAAA,GAAoB,KAAM,CAAEgC,MAAO,oCAAsC,cAAe,GACnHwM,GAAc,CAClB1M,IAAK,EACL,cAAe,OACfE,MAAO,aAEHyM,IAA2BzO,EAAAA,EAAAA,GAAoB,KAAM,CAAEgC,MAAO,iDAAmD,iBAAkB,GACnI0M,GAAc,CAAE1M,MAAO,YACvB2M,GAAc,CAClB7M,IAAK,EACL,cAAe,OACfE,MAAO,aAEH4M,IAA2B5O,EAAAA,EAAAA,GAAoB,KAAM,CAAEgC,MAAO,oCAAsC,+CAAgD,GACpJ6M,GAAc,CAAE7M,MAAO,6BACvBwe,GAAc,CAAExe,MAAO,mBACvBye,GAAc,CAClBze,MAAO,4CACP2K,aAAc,OAqDhB,QAA4BzM,EAAAA,EAAAA,IAAiB,CAC3CC,OAAQ,oBACRuE,MAAO,CACPoY,aAAc,CACZ5Z,KAAM0B,OACNC,UAAU,IAGZzE,MAAMC,GAER,MAAMqE,EAAQrE,EAGRqhB,GAAQC,EAAAA,EAAAA,MACRzS,GAASC,EAAAA,EAAAA,MAETyB,EAAO,CACX,CAAEW,KAAM,aAAcqQ,QAAS,cAC/B,CAAErQ,KAAM,SAAUqQ,QAAS,cAC3B,CAAErQ,KAAM,gBAAiBqQ,QAAS,kBAE9BC,EAAuB,CAC3B,CAAEtQ,KAAM,qBAAsBqQ,QAAS,cACvC,CAAErQ,KAAM,kBAAmBqQ,QAAS,WACpC,CAAErQ,KAAM,sBAAuBqQ,QAAS,kBACxC,CAAErQ,KAAM,iBAAkBqQ,QAAS,UACnC,CAAErQ,KAAM,yBAA0BqQ,QAAS,oBAEvCE,EAAoB,CACxBC,OAAQ,CACN,CAAExQ,KAAM,cAAeqQ,QAAS,iBAElCI,UAAW,CACT,CAAEzQ,KAAM,YAAaqQ,QAAS,cAEhCK,KAAM,CACJ,CAAE1Q,KAAM,QAASqQ,QAAS,SAC1B,CAAErQ,KAAM,SAAUqQ,QAAS,WAE7BM,OAAQ,CACN,CAAE3Q,KAAM,iBAAkBqQ,QAAS,mBACnC,CAAErQ,KAAM,UAAWqQ,QAAS,YAE9B,gBAAiB,CACf,CAAErQ,KAAM,SAAUqQ,QAAS,UAC3B,CAAErQ,KAAM,MAAOqQ,QAAS,6BAE1B,gBAAiB,CACf,CAAErQ,KAAM,SAAUqQ,QAAS,YAIzBnR,GAAkBvH,EAAAA,EAAAA,IAAI,OACtBiZ,EAAmB,CAAC,QAAS,MAAO,MAAO,UAAW,MAAO,OAAQ,QAAS,QAAS,MAAO,QAAS,SAAU,KAAM,QAAS,MAAO,WAAY,OAAQ,MAAO,KAAM,MAAO,QAAS,OAAQ,QAAS,aAAc,aAAc,MAAO,MAAO,KAAM,QAAS,MAAO,SAAU,MAAO,MAAO,QAAS,KAAM,OAAQ,OAAQ,OAAQ,MAAO,UAC/UC,GAAuBlZ,EAAAA,EAAAA,IAAI,OAC3BmZ,GAA2B1gB,EAAAA,EAAAA,KAAS,IAAsC,KAA/BygB,EAAqB/Y,MAClE8Y,EACAA,EAAiB/X,QAAQ0J,GAASA,EAAKpU,cAAchB,SAAS0jB,EAAqB/Y,MAAM3J,mBAEvFiF,GAASuE,EAAAA,EAAAA,IAAI,IACb6T,GAAiB7T,EAAAA,EAAAA,IAAI,IACrBiT,GAAYjT,EAAAA,EAAAA,IAAIwY,EAAMY,KAAKnJ,UAAU,IACrCoJ,GAAerZ,EAAAA,EAAAA,KAAI,GACnBmE,GAAUnE,EAAAA,EAAAA,KAAI,GACdgT,GAAQhT,EAAAA,EAAAA,IAAyB,MACjC8T,GAAc9T,EAAAA,EAAAA,IAAIxL,OAAOuf,WAAa,KACtCC,GAAchU,EAAAA,EAAAA,IAAqB,MACnCsZ,GAA0BtZ,EAAAA,EAAAA,IAAqB,MAC/CyH,GAAUzH,EAAAA,EAAAA,IAAoBsT,IAC9BiG,GAAevZ,EAAAA,EAAAA,IAAiBqT,IAEtC,SAASmG,EAAaC,GACpB,MAAY,UAARA,EACK3Y,OAAO4Y,OAAOd,GAAmBe,MAAMC,GAAiBA,EAAaD,MAAMtN,GAAWA,EAAOhE,OAAS4K,EAAU9S,UAE7G,aAARsZ,EACK3Y,OAAO4Y,OAAOf,GAAsBgB,MAAMtN,GAAWA,EAAOhE,OAAS4K,EAAU9S,QAEjFsZ,IAAQxG,EAAU9S,KAC3B,CAEA,SAAS0Z,IACPR,EAAalZ,OAAQ,EACrBoZ,EAAapZ,MAAQkT,GAGjBiG,EAAwBnZ,OAC1BmZ,EAAwBnZ,QAE1B,MAAMkU,EAAcC,KAAAA,YAAAA,SACpBgF,EAAwBnZ,MAAQkU,EAAYE,OAE5CD,KAAAA,KAAW,uBAAwB,CACjC7Y,OAAQA,EAAO0E,MACfsU,UAAWxB,EAAU9S,MACrB/E,WAAYmM,EAAgBpH,OAC3B,CACD6T,YAAaK,EAAYK,QAExBC,MAAM/L,IACL2Q,EAAapZ,MAAQyI,EAASgM,KAAKX,YACnCoF,EAAalZ,OAAQ,CAAK,IAE3B8U,OAAO7I,IACDkI,KAAAA,SAAelI,IAClB0N,QAAQC,IAAI3N,EAAE4N,Q,GAGtB,CAEA,SAAS5F,IACiB,KAApBnB,EAAU9S,QACZ8S,EAAU9S,MAAQ,cAEpBgE,EAAQhE,OAAQ,EAChB6S,EAAM7S,MAAQ,KACdsH,EAAQtH,MAAQmT,GAEZU,EAAY7T,OACd6T,EAAY7T,QAEd,MAAMkU,EAAcC,KAAAA,YAAAA,SACpBN,EAAY7T,MAAQkU,EAAYE,OAEhCD,KAAAA,KAA+B,iBAAkB,CAC/C7Y,OAAQA,EAAO0E,MACfsU,UAAWxB,EAAU9S,OACpB,CACD6T,YAAaK,EAAYK,QAExBC,MAAM/L,IACDpN,EAAMoY,gBAAiBzd,EAAAA,EAAAA,IAAoByS,EAASgM,KAAKC,iBAC3D7O,EAAO8O,QAAQ,CACbC,KAAM,aAAY5e,EAAAA,EAAAA,IAAoByS,EAASgM,KAAKC,+BACpDuE,KAAMZ,EAAMY,OAGhB3d,EAAO0E,OAAQ1J,EAAAA,EAAAA,IAAwBmS,EAASgM,KAAKI,eACrDnB,EAAe1T,OAAQ1J,EAAAA,EAAAA,IAAwBmS,EAASgM,KAAKC,gBAC7DpN,EAAQtH,MAAQyI,EAASgM,KAAKnN,QACA,QAA1BF,EAAgBpH,QAClBkZ,EAAalZ,OAAQ,GAEvBgE,EAAQhE,OAAQ,CAAK,IAEtB8U,OAAO7I,IACDkI,KAAAA,SAAelI,KAClB4G,EAAM7S,MAAQuR,GAAYtF,EAAExD,SAASgM,KAAK5B,O,IAIlB,QAA1BzL,EAAgBpH,MAClBkZ,EAAalZ,OAAQ,EAErB0Z,GAEJ,CAEA,SAAS3T,EAAWiO,GAClBnO,EAAOG,KAAK,aAAYhQ,EAAAA,EAAAA,IAAoBge,kBAC9C,CA0BA,OAxBAe,EAAAA,EAAAA,KAAM,IAAM3N,EAAgBpH,QAAO,IAAM0Z,OAEzC3E,EAAAA,EAAAA,KAAM,IAAM1Z,EAAMoY,eAAc,KAC9B,MAAM5d,GAAaK,EAAAA,EAAAA,IAAoBmF,EAAMoY,cAC7CnY,EAAO0E,MAAQnK,EACf6d,EAAe1T,MAAQnK,EACvBoe,GAAM,GACL,CACDe,WAAW,KAGbD,EAAAA,EAAAA,KAAM,IAAMsD,EAAMY,OAAM,KACH,gBAAfZ,EAAMnQ,OAIV4K,EAAU9S,MAAQqY,EAAMY,KAAKnJ,UAAU,GACvCmE,IAAM,IAGR5f,OAAO4gB,iBAAiB,UAAU,KAChCtB,EAAY3T,MAAQ3L,OAAOuf,WAAa,GAAG,IAGtC,CAACjc,EAAUC,KAChB,MAAMkE,GAAyB7B,EAAAA,EAAAA,IAAkB,eAEjD,OAAQpC,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB0B,EAAAA,GAAW,KAAM,GACxDrC,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAaC,EAAAA,GAAW,CAAEC,GAAI,QAAU,EACrDmC,EAAAA,EAAAA,IAAa8L,GAAAA,EAAU,CACrBlK,MAAO,mBAAmBT,EAAO0E,QACjCkG,YAAa,0EAA0E5K,EAAO0E,+CAC9FmG,IAAK,mCAAmCuN,EAAe1T,sBACtD,KAAM,EAAG,CAAC,QAAS,cAAe,YAEvC7F,EAAAA,EAAAA,IAAaiM,EAAAA,EAAiB,CAAE9K,OAAQA,EAAO0E,OAAS,KAAM,EAAG,CAAC,YAClErJ,EAAAA,EAAAA,GAAoB,MAAOD,GAAY,EACrCC,EAAAA,EAAAA,GAAoB,OAAQgG,GAAY,EACtChG,EAAAA,EAAAA,GAAoB,KAAMkG,GAAY,EACpCV,EAAAA,EAAAA,IAAiB,oBAChBb,EAAO0E,QAAU0T,EAAe1T,QAC5BnI,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,IAAKsE,IAAYV,EAAAA,EAAAA,IAAiBd,EAAO0E,OAAQ,MACnFnI,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,OAAQuE,GAAY,EACrDpG,EAAAA,EAAAA,GAAoB,IAAK,MAAMyF,EAAAA,EAAAA,IAAiBsX,EAAe1T,OAAQ,IACvE7D,EAAAA,EAAAA,IAAiB,MAAOC,EAAAA,EAAAA,IAAiBd,EAAO0E,OAAS,IAAK,SAGrEzH,EAAAA,EAAAA,IAAO5C,EAAAA,GAAP4C,KACIV,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,IAAKwE,GAAY,gCACpDpE,EAAAA,EAAAA,IAAoB,IAAI,IAC5BjC,EAAAA,EAAAA,GAAoB,MAAOsG,GAAY,EACrCtG,EAAAA,EAAAA,GAAoB,MAAOuG,GAAY,GACpCrF,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB0B,EAAAA,GAAW,MAAMqG,EAAAA,EAAAA,IAAYgH,GAAO+R,IAC9Dnf,EAAAA,EAAAA,IAAa2B,EAAwB,CAC1CrD,IAAK6gB,EAAIpR,KACTlQ,GAAI,IAAIshB,EAAIpR,OACZ,eAAgBmR,EAAaC,EAAIpR,MAAQ,YAASzI,EAClD9G,OAAO2H,EAAAA,EAAAA,IAAgB,CAAC+Y,EAAaC,EAAIpR,MAAQ,oCAAsC,6EACvE,CAAC,SAAU,UAAW,iBAAiB7S,SAASikB,EAAIpR,MAAQ,mBAAqB,GACjF,gEACf,CACDxM,SAASM,EAAAA,EAAAA,KAAS,IAAM,EACtBG,EAAAA,EAAAA,KAAiBC,EAAAA,EAAAA,IAAiBkd,EAAIf,SAAU,MAElDlc,EAAG,GACF,KAAM,CAAC,KAAM,eAAgB,YAC9B,MACJlC,EAAAA,EAAAA,KAAa5B,EAAAA,EAAAA,IAAOuhB,GAAAA,IAAO,CACzB5M,GAAI,MACJvU,MAAO,6CACN,CACD+C,SAASM,EAAAA,EAAAA,KAAS,IAAM,EACtBrF,EAAAA,EAAAA,GAAoB,MAAO,KAAM,EAC/BwD,EAAAA,EAAAA,KAAa5B,EAAAA,EAAAA,IAAOwhB,GAAAA,IAAa,CAC/BphB,OAAO2H,EAAAA,EAAAA,IAAgB,CAC3B+Y,EAAa,YAAc,oCAAsC,6EACjE,4HAEK,CACD3d,SAASM,EAAAA,EAAAA,KAAS,IAAM,EACtBG,EAAAA,EAAAA,IAAiB,gBACjBhC,EAAAA,EAAAA,KAAa5B,EAAAA,EAAAA,IAAOyhB,IAAkB,CACpCrhB,MAAO,qBACP,cAAe,YAGnB0D,EAAG,GACF,EAAG,CAAC,aAETlC,EAAAA,EAAAA,IAAa8f,EAAAA,GAAa,CACxB,qBAAsB,mCACtB,mBAAoB,+BACpB,iBAAkB,kCAClB,qBAAsB,iCACtB,mBAAoB,kCACpB,iBAAkB,gCACjB,CACDve,SAASM,EAAAA,EAAAA,KAAS,IAAM,EACtB7B,EAAAA,EAAAA,KAAa5B,EAAAA,EAAAA,IAAO2hB,GAAAA,IAAY,CAAEvhB,MAAO,mJAAqJ,CAC5L+C,SAASM,EAAAA,EAAAA,KAAS,IAAM,EACtBrF,EAAAA,EAAAA,GAAoB,MAAOwG,GAAY,GACpCtF,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB0B,EAAAA,GAAW,MAAMqG,EAAAA,EAAAA,IAAYiY,GAAuB2B,IAC9EhgB,EAAAA,EAAAA,IAAa2B,EAAwB,CAC1CrD,IAAK0hB,EAAYjS,KACjBlQ,GAAI,IAAImiB,EAAYjS,QACnB,CACDxM,SAASM,EAAAA,EAAAA,KAAS,IAAM,EACtB7B,EAAAA,EAAAA,KAAa5B,EAAAA,EAAAA,IAAO6hB,GAAAA,IAAW,KAAM,CACnC1e,SAASM,EAAAA,EAAAA,KAAS,EAAGqe,YAAa,EAChC1jB,EAAAA,EAAAA,GAAoB,OAAQ,CAC1BgC,OAAO2H,EAAAA,EAAAA,IAAgB,CAAC+Z,EAAS,4BAA8B,gBAAiBhB,EAAac,EAAYjS,MAAQ,+BAAiC,GAAI,mCACrJ9L,EAAAA,EAAAA,IAAiB+d,EAAY5B,SAAU,MAE5Clc,EAAG,GACF,SAELA,EAAG,GACF,KAAM,CAAC,SACR,MACJ1F,EAAAA,EAAAA,GAAoB,IAAKyG,GAAa,EACpCjD,EAAAA,EAAAA,KAAa5B,EAAAA,EAAAA,IAAO6hB,GAAAA,IAAW,KAAM,CACnC1e,SAASM,EAAAA,EAAAA,KAAS,EAAGqe,YAAa,EAChC1jB,EAAAA,EAAAA,GAAoB,OAAQ,CAC1BgC,OAAO2H,EAAAA,EAAAA,IAAgB,CAAC+Z,EAAS,4BAA8B,gBAAiB,iDAC/E,EACDle,EAAAA,EAAAA,IAAiB,aACjBhC,EAAAA,EAAAA,KAAa5B,EAAAA,EAAAA,IAAO+hB,IAA4B,CAAE3hB,MAAO,qBACxD,MAEL0D,EAAG,WAKXA,EAAG,OAGPA,EAAG,OAGPA,EAAG,KAELlC,EAAAA,EAAAA,KAAa5B,EAAAA,EAAAA,IAAOuhB,GAAAA,IAAO,CACzB5M,GAAI,MACJvU,MAAO,mCACN,CACD+C,SAASM,EAAAA,EAAAA,KAAS,IAAM,EACtBrF,EAAAA,EAAAA,GAAoB,MAAO,KAAM,EAC/BwD,EAAAA,EAAAA,KAAa5B,EAAAA,EAAAA,IAAOwhB,GAAAA,IAAa,CAC/BphB,OAAO2H,EAAAA,EAAAA,IAAgB,CAC3B+Y,EAAa,cAAgB,6EAA+E,oCAC3GA,EAAa,eAAkBA,EAAa,SAAsG,GAA3F,yFACxD,4HAEK,CACD3d,SAASM,EAAAA,EAAAA,KAAS,IAAM,CACtBqB,GACAC,IACAnD,EAAAA,EAAAA,KAAa5B,EAAAA,EAAAA,IAAOyhB,IAAkB,CACpCrhB,MAAO,qBACP,cAAe,YAGnB0D,EAAG,GACF,EAAG,CAAC,aAETlC,EAAAA,EAAAA,IAAa8f,EAAAA,GAAa,CACxB,qBAAsB,mCACtB,mBAAoB,+BACpB,iBAAkB,kCAClB,qBAAsB,iCACtB,mBAAoB,kCACpB,iBAAkB,gCACjB,CACDve,SAASM,EAAAA,EAAAA,KAAS,IAAM,EACtB7B,EAAAA,EAAAA,KAAa5B,EAAAA,EAAAA,IAAO2hB,GAAAA,IAAY,CAAEvhB,MAAO,mJAAqJ,CAC5L+C,SAASM,EAAAA,EAAAA,KAAS,IAAM,EACtBrF,EAAAA,EAAAA,GAAoB,MAAO4G,GAAa,CACtCC,KACC3F,EAAAA,EAAAA,KAAW,IAAOW,EAAAA,EAAAA,IAAoB0B,EAAAA,GAAW,MAAMqG,EAAAA,EAAAA,IAAYgH,EAAKxR,MAAM,IAAKokB,KAC1EtiB,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAagE,EAAwB,CACzDrD,IAAK0hB,EAAYjS,KACjBlQ,GAAI,IAAImiB,EAAYjS,OACpBvP,MAAO,mBACN,CACD+C,SAASM,EAAAA,EAAAA,KAAS,IAAM,EACtB7B,EAAAA,EAAAA,KAAa5B,EAAAA,EAAAA,IAAO6hB,GAAAA,IAAW,KAAM,CACnC1e,SAASM,EAAAA,EAAAA,KAAS,EAAGqe,YAAa,EAChC1jB,EAAAA,EAAAA,GAAoB,OAAQ,CAC1BgC,OAAO2H,EAAAA,EAAAA,IAAgB,CAAC+Z,EAAS,4BAA8B,gBAAiBhB,EAAac,EAAYjS,MAAQ,+BAAiC,GAAI,mCACrJ9L,EAAAA,EAAAA,IAAiB+d,EAAY5B,SAAU,MAE5Clc,EAAG,GACF,SAELA,EAAG,GACF,KAAM,CAAC,UACR,QACHxE,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB0B,EAAAA,GAAW,MAAMqG,EAAAA,EAAAA,IAAYkY,GAAmB,CAACgB,EAAcvR,MACxFrQ,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB0B,EAAAA,GAAW,CAAEzB,IAAKyP,GAAQ,EAClEvR,EAAAA,EAAAA,GAAoB,OAAQ8G,IAAarB,EAAAA,EAAAA,IAAiB8L,GAAO,KAChErQ,EAAAA,EAAAA,KAAW,IAAOW,EAAAA,EAAAA,IAAoB0B,EAAAA,GAAW,MAAMqG,EAAAA,EAAAA,IAAYkZ,GAAeU,KACzEtiB,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAagE,EAAwB,CACzDrD,IAAK0hB,EAAYjS,KACjBlQ,GAAI,IAAImiB,EAAYjS,QACnB,CACDxM,SAASM,EAAAA,EAAAA,KAAS,IAAM,EACtB7B,EAAAA,EAAAA,KAAa5B,EAAAA,EAAAA,IAAO6hB,GAAAA,IAAW,KAAM,CACnC1e,SAASM,EAAAA,EAAAA,KAAS,EAAGqe,YAAa,EAChC1jB,EAAAA,EAAAA,GAAoB,OAAQ,CAC1BgC,OAAO2H,EAAAA,EAAAA,IAAgB,CAAC+Z,EAAS,4BAA8B,gBAAiBhB,EAAac,EAAYjS,MAAQ,+BAAiC,GAAI,mCACrJ9L,EAAAA,EAAAA,IAAiB+d,EAAY5B,SAAU,MAE5Clc,EAAG,GACF,SAELA,EAAG,GACF,KAAM,CAAC,UACR,OACH,OACD,UAGRA,EAAG,OAGPA,EAAG,OAGPA,EAAG,KAEL1F,EAAAA,EAAAA,GAAoB,MAAO+G,GAAa,EACtCvD,EAAAA,EAAAA,KAAa5B,EAAAA,EAAAA,IAAOuhB,GAAAA,IAAO,CACzB5M,GAAI,MACJvU,MAAO,yBACN,CACD+C,SAASM,EAAAA,EAAAA,KAAS,IAAM,EACtB7B,EAAAA,EAAAA,KAAa5B,EAAAA,EAAAA,IAAOwhB,GAAAA,IAAa,KAAM,CACrCre,SAASM,EAAAA,EAAAA,KAAS,IAAM,EACtB7B,EAAAA,EAAAA,KAAa5B,EAAAA,EAAAA,IAAOgiB,IAAgB,CAClC5hB,MAAO,wBACP,cAAe,YAGnB0D,EAAG,KAELlC,EAAAA,EAAAA,IAAa8f,EAAAA,GAAa,CACxB,qBAAsB,mCACtB,mBAAoB,+BACpB,iBAAkB,kCAClB,qBAAsB,iCACtB,mBAAoB,kCACpB,iBAAkB,gCACjB,CACDve,SAASM,EAAAA,EAAAA,KAAS,IAAM,EACtB7B,EAAAA,EAAAA,KAAa5B,EAAAA,EAAAA,IAAO2hB,GAAAA,IAAY,CAAEvhB,MAAO,4IAA8I,CACrL+C,SAASM,EAAAA,EAAAA,KAAS,IAAM,EACtB7B,EAAAA,EAAAA,IAAaqgB,GAAiB,KAAM,CAClC9e,SAASM,EAAAA,EAAAA,KAAS,IAAM,EACtBG,EAAAA,EAAAA,IAAiB,oBAEnBE,EAAG,OAGPA,EAAG,OAGPA,EAAG,OAGPA,EAAG,WAKX1F,EAAAA,EAAAA,GAAoB,MAAOgH,GAAa,CACrB,OAAhBkV,EAAM7S,QACFnI,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAaod,GAAe,CACzCzc,IAAK,EACLoa,MAAOA,EAAM7S,MACb1E,OAAQA,EAAO0E,MACf8S,UAAWA,EAAU9S,OACpB,KAAM,EAAG,CAAC,QAAS,SAAU,iBAC/BnI,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB0B,EAAAA,GAAW,CAAEzB,IAAK,GAAK,CACV,WAA7CF,EAAAA,EAAAA,IAAOkZ,IAAYqB,EAAU9S,OAAOnG,OAChChC,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,IAAK+K,GAAa,0BAA2BnH,EAAAA,EAAAA,KAAiB7D,EAAAA,EAAAA,IAAOkZ,IAAYqB,EAAU9S,OAAO2R,QAAU,mOAAoO,IACrU,aAA7CpZ,EAAAA,EAAAA,IAAOkZ,IAAYqB,EAAU9S,OAAOnG,OAClChC,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,IAAKgL,GAAa,QAASpH,EAAAA,EAAAA,KAAiB7D,EAAAA,EAAAA,IAAOkZ,IAAYqB,EAAU9S,OAAO2R,QAAU,kDAAmDvV,EAAAA,EAAAA,KAAiB7D,EAAAA,EAAAA,IAAOkZ,IAAYqB,EAAU9S,OAAO2R,QAAU,wGAAyGvV,EAAAA,EAAAA,KAAiB7D,EAAAA,EAAAA,IAAOkZ,IAAYqB,EAAU9S,OAAO2R,QAAU,4EAA6E,IACtb,eAA7CpZ,EAAAA,EAAAA,IAAOkZ,IAAYqB,EAAU9S,OAAOnG,OAClChC,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB0B,EAAAA,GAAW,CAAEzB,IAAK,GAAK,EACxD9B,EAAAA,EAAAA,GAAoB,IAAK8M,GAAa,QAASrH,EAAAA,EAAAA,KAAiB7D,EAAAA,EAAAA,IAAOkZ,IAAYqB,EAAU9S,OAAO2R,QAAU,kDAAmDvV,EAAAA,EAAAA,KAAiB7D,EAAAA,EAAAA,IAAOkZ,IAAYqB,EAAU9S,OAAO2R,QAAU,wGAAyGvV,EAAAA,EAAAA,KAAiB7D,EAAAA,EAAAA,IAAOkZ,IAAYqB,EAAU9S,OAAO2R,QAAU,4EAA6E,IACrdhb,EAAAA,EAAAA,GAAoB,IAAK+M,GAAa,CAChB,sBAAnBoP,EAAU9S,QACNnI,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,OAAQmL,GAAa,+CACpC,mBAAnBmP,EAAU9S,QACRnI,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,OAAQoL,GAAa,sCACpC,uBAAnBkP,EAAU9S,QACRnI,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,OAAQqL,GAAa,+CACpC,kBAAnBiP,EAAU9S,QACRnI,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,OAAQsL,GAAa,2CACpC,0BAAnBgP,EAAU9S,QACRnI,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,OAAQuL,GAAa,4DACpC,qBAAnB+O,EAAU9S,QACRnI,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,OAAQ0L,GAAa,yDACxDtL,EAAAA,EAAAA,IAAoB,IAAI,GACtCuL,MAED,OACFtM,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,IAAK4L,GAAa,0RAC7DzN,EAAAA,EAAAA,GAAoB,MAAO0N,GAAa,CACrCL,EAAQhE,QACJnI,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,MAAO8L,GAAa,GACpDzM,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB0B,EAAAA,GAAW,MAAMqG,EAAAA,EAAAA,IAAY,GAAI6U,IAC3Dze,EAAAA,EAAAA,GAAoB,MAAO,CAAE8B,IAAK2c,GAAK,EAC5Cjb,EAAAA,EAAAA,IAAagb,GAAmB,CAAExc,MAAO,yBACxCd,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB0B,EAAAA,GAAW,MAAMqG,EAAAA,EAAAA,IAAY,GAAI6U,IAC3Dze,EAAAA,EAAAA,GAAoB,MAAO,CAAE8B,IAAK2c,GAAK,GAC3Cvd,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB0B,EAAAA,GAAW,MAAMqG,EAAAA,EAAAA,IAAY,GAAI6U,IAC3Djb,EAAAA,EAAAA,IAAagb,GAAmB,CACrC1c,IAAK2c,EACLzc,MAAO,sDAEP,SAEJ,SAEJ,UAELd,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,MAAO+L,GAAa,CACrDC,IACArK,EAAAA,EAAAA,IAAakb,GAAc,CACzB/N,QAASA,EAAQtH,MAAMuQ,EACvB,eAAgB,eAChB,cAAe,KACd,KAAM,EAAG,CAAC,YACb9L,IACAtK,EAAAA,EAAAA,IAAakb,GAAc,CACzB/N,QAASA,EAAQtH,MAAMoT,KACvB,eAAgB,eAChB,cAAe,QACd,KAAM,EAAG,CAAC,YACb1O,IACAvK,EAAAA,EAAAA,IAAaob,GAAY,CACvBjO,QAASA,EAAQtH,MAAMmK,MACvB,eAAgB,iBAChB,cAAe,QACf,aAAa,EACb,6BAA6B,EAC7BxR,MAAO,UACN,KAAM,EAAG,CAAC,eAElBgb,EAAY3T,QACRnI,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,MAAOoM,GAAa,EACrDzK,EAAAA,EAAAA,IAAa0M,GAAQ,CACnBlO,MAAO,yBACP+H,QAAQnI,EAAAA,EAAAA,IAAOiK,KACd,KAAM,EAAG,CAAC,eAEf5J,EAAAA,EAAAA,IAAoB,IAAI,KAE7BoL,EAAQhE,QACJnI,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,MAAOqM,GAAa,GACpDhN,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB0B,EAAAA,GAAW,MAAMqG,EAAAA,EAAAA,IAAY,GAAI6U,IAC3Dze,EAAAA,EAAAA,GAAoB,MAAO,CAAE8B,IAAK2c,GAAK,EAC5Cjb,EAAAA,EAAAA,IAAagb,GAAmB,CAAExc,MAAO,yBACxCd,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB0B,EAAAA,GAAW,MAAMqG,EAAAA,EAAAA,IAAY,GAAI6U,IAC3Dze,EAAAA,EAAAA,GAAoB,MAAO,CAAE8B,IAAK2c,GAAK,GAC3Cvd,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB0B,EAAAA,GAAW,MAAMqG,EAAAA,EAAAA,IAAY,GAAI6U,IAC3Djb,EAAAA,EAAAA,IAAagb,GAAmB,CACrC1c,IAAK2c,EACLzc,MAAO,sDAEP,SAEJ,SAEJ,UAELd,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,MAAOsM,GAAa,CACrDC,IACA5K,EAAAA,EAAAA,IAAaqb,GAAY,CACvBlO,QAASA,EAAQtH,MAAMqT,IACvB/X,OAAQA,EAAO0E,MACfrH,MAAO,UACN,KAAM,EAAG,CAAC,UAAW,YACxBwB,EAAAA,EAAAA,IAAa0M,GAAQ,CACnBlO,MAAO,eACP+H,QAAQnI,EAAAA,EAAAA,IAAOkK,KACd,KAAM,EAAG,CAAC,WACbuC,IACA7K,EAAAA,EAAAA,IAAasb,GAAW,CACtBnO,QAASA,EAAQtH,MAAMsT,GACvBhY,OAAQA,EAAO0E,MACfrH,MAAO,UACN,KAAM,EAAG,CAAC,UAAW,WACxBsM,IACA9K,EAAAA,EAAAA,IAAawb,GAAW,CACtBrO,QAASA,EAAQtH,MAAMuT,GACvB5a,MAAO,UACN,KAAM,EAAG,CAAC,eAElBqL,EAAQhE,QACJnI,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,MAAO2M,GAAa,EACrDhL,EAAAA,EAAAA,IAAagb,GAAmB,CAAExc,MAAO,4BAE1Cd,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB0B,EAAAA,GAAW,CAAEzB,IAAK,GAAK,CACxD2M,IACAjL,EAAAA,EAAAA,KAAa5B,EAAAA,EAAAA,IAAOkiB,GAAAA,IAAW,CAC7BvN,GAAI,MACJ+K,WAAY7Q,EAAgBpH,MAC5B,sBAAuBpI,EAAO,KAAOA,EAAO,GAAMsgB,GAAkB9Q,EAAiBpH,MAAQkY,GAC7Fvf,MAAO,iDACN,CACD+C,SAASM,EAAAA,EAAAA,KAAS,IAAM,EACtB7B,EAAAA,EAAAA,KAAa5B,EAAAA,EAAAA,IAAOmiB,GAAAA,IAAgB,CAAE/hB,MAAO,WAAa,CACxD+C,SAASM,EAAAA,EAAAA,KAAS,IAAM,EACtBG,EAAAA,EAAAA,IAAiB,6BAEnBE,EAAG,KAEL1F,EAAAA,EAAAA,GAAoB,MAAO0O,GAAa,EACtClL,EAAAA,EAAAA,KAAa5B,EAAAA,EAAAA,IAAOoiB,GAAAA,IAAgB,CAClCC,SAAUhjB,EAAO,KAAOA,EAAO,GAAMsgB,GAAiBa,EAAqB/Y,MAAQkY,EAAOhM,OAAOlM,OACjG6a,QAASjjB,EAAO,KAAOA,EAAO,GAAMsgB,GAAiBa,EAAqB/Y,MAAQ,IAClFrH,MAAO,0KAETwB,EAAAA,EAAAA,KAAa5B,EAAAA,EAAAA,IAAOuiB,GAAAA,IAAiB,CAAEniB,MAAO,qFAAuF,CACnI+C,SAASM,EAAAA,EAAAA,KAAS,IAAM,EACtB7B,EAAAA,EAAAA,KAAa5B,EAAAA,EAAAA,IAAOwiB,IAAoB,CACtCpiB,MAAO,wBACP,cAAe,YAGnB0D,EAAG,KAEJ9D,EAAAA,EAAAA,IAAOygB,GAA0BlZ,OAAS,IACtCjI,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,KAAaS,EAAAA,EAAAA,IAAOyiB,GAAAA,IAAkB,CACnDviB,IAAK,EACLE,MAAO,gKACN,CACD+C,SAASM,EAAAA,EAAAA,KAAS,IAAM,GACrBnE,EAAAA,EAAAA,KAAW,IAAOW,EAAAA,EAAAA,IAAoB0B,EAAAA,GAAW,MAAMqG,EAAAA,EAAAA,KAAYhI,EAAAA,EAAAA,IAAOygB,IAA4BiC,KAC7FpjB,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,KAAaS,EAAAA,EAAAA,IAAO2iB,GAAAA,IAAiB,CACzDziB,IAAKwiB,EACLjb,MAAOib,EACP/N,GAAI,YACH,CACDxR,SAASM,EAAAA,EAAAA,KAAS,EAAGqe,SAAQza,cAAe,EAC1CjJ,EAAAA,EAAAA,GAAoB,KAAM,CACxBgC,OAAO2H,EAAAA,EAAAA,IAAgB,CAAC,qDAAsD+Z,EAAS,2BAA6B,mBACnH,EACD1jB,EAAAA,EAAAA,GAAoB,OAAQ,CAC1BgC,OAAO2H,EAAAA,EAAAA,IAAgB,CAAC,iBAAkBV,GAAY,oBACrDxD,EAAAA,EAAAA,IAAiB6e,GAAS,GAC7Brb,IACK/H,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,OAAQ,CACzCC,IAAK,EACLE,OAAO2H,EAAAA,EAAAA,IAAgB,CAAC,oDAAqD+Z,EAAS,aAAe,qBACpG,EACDlgB,EAAAA,EAAAA,KAAa5B,EAAAA,EAAAA,IAAO4iB,IAAY,CAC9BxiB,MAAO,UACP,cAAe,UAEhB,KACHC,EAAAA,EAAAA,IAAoB,IAAI,IAC3B,MAELyD,EAAG,GACF,KAAM,CAAC,aACR,SAENA,EAAG,MAELzD,EAAAA,EAAAA,IAAoB,IAAI,QAGhCyD,EAAG,GACF,EAAG,CAAC,gBACN,KACN2H,EAAQhE,OAASkZ,EAAalZ,QAC1BnI,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,MAAO8M,GAAa,GACpDzN,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB0B,EAAAA,GAAW,MAAMqG,EAAAA,EAAAA,IAAY,GAAI6U,IAC3Dze,EAAAA,EAAAA,GAAoB,MAAO,CAAE8B,IAAK2c,GAAK,GAC3Cvd,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB0B,EAAAA,GAAW,MAAMqG,EAAAA,EAAAA,IAAY,GAAI6U,IAC3Djb,EAAAA,EAAAA,IAAagb,GAAmB,CACrC1c,IAAK2c,EACLzc,MAAO,sDAEP,SAEJ,UAELd,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB0B,EAAAA,GAAW,CAAEzB,IAAK,GAAK,CAC7B,QAA1B2O,EAAgBpH,QACZnI,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAa8d,GAAY,CACtCnd,IAAK,EACL6O,QAASA,EAAQtH,MAAMwT,IACvBlY,OAAQA,EAAO0E,MACfrH,MAAO,UACN,KAAM,EAAG,CAAC,UAAW,YACG,QAA1ByO,EAAgBpH,QACdnI,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAawd,GAAY,CACtC7c,IAAK,EACL6O,QAAS8R,EAAapZ,MACtB1E,OAAQA,EAAO0E,MACfrH,MAAO,UACN,KAAM,EAAG,CAAC,UAAW,YACG,QAA1ByO,EAAgBpH,QACdnI,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAa4d,GAAY,CACtCjd,IAAK,EACL6O,QAAS8R,EAAapZ,MACtB1E,OAAQA,EAAO0E,MACfrH,MAAO,UACN,KAAM,EAAG,CAAC,UAAW,YACG,QAA1ByO,EAAgBpH,QACdnI,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAa+d,GAAY,CACtCpd,IAAK,EACL6O,QAAS8R,EAAapZ,MACtB1E,OAAQA,EAAO0E,MACfrH,MAAO,UACN,KAAM,EAAG,CAAC,UAAW,YACG,SAA1ByO,EAAgBpH,QACdnI,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAage,GAAa,CACvCrd,IAAK,EACL6O,QAAS8R,EAAapZ,MACtB1E,OAAQA,EAAO0E,MACfrH,MAAO,UACN,KAAM,EAAG,CAAC,UAAW,cACvBd,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAayd,GAAY,CACtC9c,IAAK,EACL6O,QAAS8R,EAAapZ,MACtB,eAAgB,OAChB,cAAeoH,EAAgBpH,MAC/BrH,MAAO,UACN,KAAM,EAAG,CAAC,UAAW,kBACnC,MACPwB,EAAAA,EAAAA,IAAa0M,GAAQ,CACnBlO,MAAO,eACP+H,QAAQnI,EAAAA,EAAAA,IAAOmK,KACd,KAAM,EAAG,CAAC,WACb6C,IACA5O,EAAAA,EAAAA,GAAoB,MAAO6O,GAAa,EACtC7O,EAAAA,EAAAA,GAAoB,IAAKwgB,GAAa,EACpChb,EAAAA,EAAAA,IAAiB,UACjBhC,EAAAA,EAAAA,IAAa2B,EAAwB,CACnC9D,GAAI,IACJW,MAAO,qDACN,CACD+C,SAASM,EAAAA,EAAAA,KAAS,IAAM,EACtBG,EAAAA,EAAAA,IAAiB,iBAEnBE,EAAG,KAELF,EAAAA,EAAAA,IAAiB,uKAEnBxF,EAAAA,EAAAA,GAAoB,OAAQygB,GAAa,EACvCjd,EAAAA,EAAAA,IAAamM,EAAAA,EAAc,CACzBE,UAAW,GACXuP,QAASza,EAAO0E,MAChB0G,YAAaX,GACZ,KAAM,EAAG,CAAC,iBAGhB,YAIb5L,EAAAA,EAAAA,IAAakN,EAAAA,IACZ,GAAG,CAER,ICz2BA,MAAM,GAAc,GAEpB,UCIA,SAAS+T,GAAS7K,EAAOC,GACvB,OAAOD,EAAE5H,MAAQ6H,EAAE7H,KAAO4H,EAAErI,OAASsI,EAAEtI,MAAQqI,EAAEtV,aAAeuV,EAAEvV,UACpE,CAEA,SAASogB,GAAe9K,EAAcC,GACpC,GAAID,EAAEzQ,SAAW0Q,EAAE1Q,OACjB,OAAO,EAGT,MAAMwb,EAAY,IAAI9K,GACtB,OAAOD,EAAEgL,OAAOva,IACd,MAAMP,EAAQ6a,EAAUE,WAAWC,GAAOL,GAASK,EAAIza,KACvD,OAAe,IAAXP,IAGJ6a,EAAUI,OAAOjb,EAAO,IACjB,EAAI,GAEf,CAEM,SAAUkb,GACdC,EACAlT,EACAzN,GAEA,MAAMqM,EAAUoB,EAAOA,OAAO3H,QAAQ0a,GAAOA,EAAGxgB,aAAeA,IACzDwF,EAAQmb,EAASJ,WAAWK,GAAYR,GAAeQ,EAAQvU,QAASA,KAC9E,IAAe,IAAX7G,EACF,MAAO,IAAImb,EAAU,CAAEtU,UAASwU,QAAS,CAACpT,GAASqT,gBAAwC,kBAAvBrT,EAAOyR,cAG7E,MAAM6B,EAAc,IAAIJ,GAKxB,OAJAI,EAAYvb,GAAOqb,QAAQ9V,KAAK0C,GACL,kBAAvBA,EAAOyR,cACT6B,EAAYvb,GAAOsb,iBAAkB,GAEhCH,CACT,CAEM,SAAUK,GAAexb,GAC7B,OAAOlF,OAAO2gB,aAAa,GAAKzb,EAClC,CAEM,SAAU0b,GAAWP,EAA0BlT,GACnD,MAAMjI,EAAQmb,EAASJ,WAAWK,GAAYA,EAAQC,QAAQzmB,SAASqT,KACvE,OAAe,IAAXjI,EACK,GAEFwb,GAAexb,EACxB,CCxDA,MACM2b,GAAqB,CAAC,aAAc,SAAU,UAAW,QAAS,gBAAiB,UAAW,UAAW,qBAAsB,0BAS/H,SAAUC,GAAoBC,GAClC,OAAOF,GAAmB/mB,SAASinB,EACrC,CCDA,MAAMC,GAAkF,CACtF,CAAEC,OAAQ,mBAAoBC,aAAc,cAC5C,CAAED,OAAQ,sBAAuBC,aAAc,WAC/C,CAAED,OAAQ,aAAcC,aAAc,UACtC,CAAED,OAAQ,sBAAuBC,aAAc,UAC/C,CAAED,OAAQ,sBAAuBC,aAAc,QAC/C,CAAED,OAAQ,oBAAqBC,aAAc,eAC7C,CAAED,OAAQ,cAAeC,aAAc,OACvC,CAAED,OAAQ,kBAAmBC,aAAc,aAC3C,CAAED,OAAQ,kBAAmBC,aAAc,aAC3C,CAAED,OAAQ,kBAAmBC,aAAc,aAC3C,CAAED,OAAQ,0BAA2BC,aAAc,aACnD,CAAED,OAAQ,yBAA0BC,aAAc,aAClD,CAAED,OAAQ,cAAeC,aAAc,SACvC,CAAED,OAAQ,eAAgBC,aAAc,UACxC,CAAED,OAAQ,iBAAkBC,aAAc,YAC1C,CAAED,OAAQ,mBAAoBC,aAAc,cAC5C,CAAED,OAAQ,mBAAoBC,aAAc,cAC5C,CAAED,OAAQ,qBAAsBC,aAAc,gBAC9C,CAAED,OAAQ,eAAgBC,aAAc,UACxC,CAAED,OAAQ,YAAaC,aAAc,UACrC,CAAED,OAAQ,kBAAmBC,aAAc,SAC3C,CAAED,OAAQ,kBAAmBC,aAAc,SAC3C,CAAED,OAAQ,kBAAmBC,aAAc,SAC3C,CAAED,OAAQ,mBAAoBC,aAAc,SAC5C,CAAED,OAAQ,YAAaC,aAAc,OACrC,CAAED,OAAQ,cAAeC,aAAc,SACvC,CAAED,OAAQ,eAAgBC,aAAc,SACxC,CAAED,OAAQ,eAAgBC,aAAc,SACxC,CAAED,OAAQ,eAAgBC,aAAc,SACxC,CAAED,OAAQ,iBAAkBC,aAAc,YAC1C,CAAED,OAAQ,eAAgBC,aAAc,OACxC,CAAED,OAAQ,cAAeC,aAAc,SACvC,CAAED,OAAQ,iBAAkBC,aAAc,oBAC1C,CAAED,OAAQ,iBAAkBC,aAAc,YAC1C,CAAED,OAAQ,uBAAwBC,aAAc,eAChD,CAAED,OAAQ,kBAAmBC,aAAc,aAC3C,CAAED,OAAQ,gBAAiBC,aAAc,WACzC,CAAED,OAAQ,sBAAuBC,aAAc,cAC/C,CAAED,OAAQ,mBAAoBC,aAAc,WAC5C,CAAED,OAAQ,iBAAkBC,aAAc,WAC1C,CAAED,OAAQ,gBAAiBC,aAAc,WACzC,CAAED,OAAQ,aAAcC,aAAc,WACtC,CAAED,OAAQ,wBAAyBC,aAAc,YACjD,CAAED,OAAQ,kBAAmBC,aAAc,aAC3C,CAAED,OAAQ,YAAaC,aAAc,UACrC,CAAED,OAAQ,gBAAiBC,aAAc,SACzC,CAAED,OAAQ,qBAAsBC,aAAc,YAC9C,CAAED,OAAQ,WAAYC,aAAc,OACpC,CAAED,OAAQ,WAAYC,aAAc,OACpC,CAAED,OAAQ,WAAYC,aAAc,OACpC,CAAED,OAAQ,qBAAsBC,aAAc,WAC9C,CAAED,OAAQ,oBAAqBC,aAAc,WAC7C,CAAED,OAAQ,sBAAuBC,aAAc,YAC/C,CAAED,OAAQ,sBAAuBC,aAAc,kCAC/C,CAAED,OAAQ,sBAAuBC,aAAc,UAC/C,CAAED,OAAQ,sBAAuBC,aAAc,wBAC/C,CAAED,OAAQ,sBAAuBC,aAAc,QAC/C,CAAED,OAAQ,sBAAuBC,aAAc,OAC/C,CAAED,OAAQ,sBAAuBC,aAAc,yBAC/C,CAAED,OAAQ,sBAAuBC,aAAc,UAC/C,CAAED,OAAQ,sBAAuBC,aAAc,UAC/C,CAAED,OAAQ,sBAAuBC,aAAc,YAC/C,CAAED,OAAQ,sBAAuBC,aAAc,QAC/C,CAAED,OAAQ,sBAAuBC,aAAc,SAC/C,CAAED,OAAQ,sBAAuBC,aAAc,gBAG3C,SAAUC,GAAqBC,GACnC,OAAQA,GACN,IAAK,aACH,MAAO,aACT,IAAK,SACH,MAAO,aACT,IAAK,UACH,MAAO,WACT,IAAK,QACH,MAAO,SACT,IAAK,MACH,MAAO,sBACT,IAAK,qBACH,MAAO,YACT,IAAK,yBACH,MAAO,2BACT,IAAK,UACH,MAAO,UACT,IAAK,cACH,MAAO,gBACT,IAAK,SACH,MAAO,wBACT,IAAK,QACH,MAAO,kBACT,IAAK,mBACH,MAAO,oBACT,IAAK,WACH,MAAO,eACT,IAAK,UACH,MAAO,WACT,IAAK,UACH,MAAO,WACT,IAAK,WACH,MAAO,mBACT,IAAK,YACH,MAAO,aACT,IAAK,SACH,MAAO,UACT,IAAK,cACH,MAAO,eACT,IAAK,iBACH,MAAO,kBACT,IAAK,MACH,MAAO,2BACT,IAAK,iCACH,MAAO,oCACT,IAAK,SACH,MAAO,wBACT,IAAK,uBACH,MAAO,yBACT,IAAK,wBACH,MAAO,2BACT,IAAK,SACH,MAAO,UACT,IAAK,cACH,MAAO,eACT,QACE,OAAOA,EAEb,CAEA,SAASC,GAAkBC,GACzB,GAAIA,EAAqB,OACvB,MAAM/P,EAA0F,QAAvF,EAAGyP,GAAuBrhB,MAAMshB,GAAWK,EAAoB/mB,SAAS0mB,EAAOA,iBAAQ,aAApF,EAAsFC,aAClG,GAAI3P,EACF,OAAOA,EAET,GAAI+P,EAAoBxnB,SAAS,YAC/B,MAAO,K,CAGX,MAAO,SACT,CAEM,SAAUynB,GAAoBhQ,GAClC,MAAY,YAARA,EACK,uBAEF,cAAcA,EAAIzW,mBAC3B,CAEM,SAAU0mB,GAAY9P,EAAkB+P,GAAS,GACrD,OAAQ/P,GACN,IAAK,cACH,MAAO,aAAa+P,EAAS,MAAQ,eACvC,IAAK,iBACH,MAAO,aAAaA,EAAS,MAAQ,eACvC,IAAK,YACH,MAAO,aAAaA,EAAS,MAAQ,eACvC,IAAK,QACH,MAAO,aAAaA,EAAS,MAAQ,eACvC,IAAK,SACH,MAAO,aAAaA,EAAS,MAAQ,eACvC,IAAK,MACH,MAAO,aAAaA,EAAS,MAAQ,eACvC,IAAK,SACH,MAAO,aAAaA,EAAS,MAAQ,eACvC,IAAK,UACH,MAAO,aAAaA,EAAS,MAAQ,eACvC,IAAK,SACH,MAAO,aAAaA,EAAS,MAAQ,eACvC,QACE,MAAO,aAAaA,EAAS,MAAQ,eAE3C,CAEA,SAASC,GAAgCX,GACvC,OAAOA,CACT,CAEA,SAASY,GAA6BZ,GACpC,OAAOA,CACT,CAEM,SAAUa,GAAQzU,GACtB,MAA2B,kBAAvBA,EAAOyR,YACF2C,GAAoBF,GAAkBlU,EAAOH,OAAOjN,SAEzD+gB,GAAoB3T,EAAOyR,aACtB2C,GAAoBG,GAAgCvU,EAAOyR,cAE7D4C,GAAYrU,EAAOyR,aAAa,EACzC,CAEM,SAAUiD,GAAQ1U,GACtB,GAA2B,kBAAvBA,EAAOyR,YAAiC,CAC1C,MAAMrN,EAAM4P,GAAqBE,GAAkBlU,EAAOH,OAAOjN,SACjE,MAAY,YAARwR,EACK,wBAAwBpE,EAAOH,OAAOjN,UAAY,GAEpD,wBAAwBoN,EAAOH,OAAOjN,cAAcwR,I,CAE7D,OAAIuP,GAAoB3T,EAAOyR,aACtB,GAAGzR,EAAOH,OAAOC,UAAUkU,GAAqBO,GAAgCvU,EAAOyR,iBAEzFuC,GAAqBQ,GAA6BxU,EAAOyR,aAClE,CCtNA,MAAMzjB,GAAa,CAAEiC,MAAO,YAc5B,QAA4B9B,EAAAA,EAAAA,IAAiB,CAC3CC,OAAQ,mBACRuE,MAAO,CACP4c,WAAY,CACVpe,KAAM0B,OACNG,QAAS,KAGX2hB,MAAO,CAAC,qBACRtmB,MAAMC,GAAS,KAAEsmB,IAEnB,MAAMjiB,EAAQrE,EAMRgJ,GAAQ1H,EAAAA,EAAAA,IAAS,CACrBuf,MACE,OAAOxc,EAAM4c,UACf,EACAH,IAAIyF,GACFD,EAAK,oBAAqBC,EAC5B,IAGI9iB,EAAc,CAAC,IAAK,OAAQ,QAAS,MAAO,MAAO,UAAW,MAAO,OAAQ,QAAS,QAAS,QAAS,MAAO,QAAS,SAAU,KAAM,QAAS,MAAO,WAAY,OAAQ,MAAO,KAAM,MAAO,KAAM,QAAS,KAAM,OAAQ,QAAS,aAAc,aAAc,MAAO,MAAO,KAAM,QAAS,MAAO,SAAU,MAAO,MAAO,QAAS,KAAM,OAAQ,OAAQ,OAAQ,MAAO,MAAO,UACnX+iB,GAAkB3d,EAAAA,EAAAA,IAAIxE,EAAM4c,YAC5BwF,GAAsBnlB,EAAAA,EAAAA,KAAS,IAAiC,KAA1BklB,EAAgBxd,MACxDvF,EACAA,EAAYsG,QAAQ0J,GAASA,EAAKpU,cAAchB,SAASmoB,EAAgBxd,MAAM3J,mBAEnF,MAAO,CAACsB,EAAUC,MACRC,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,KAAaS,EAAAA,EAAAA,IAAOkiB,GAAAA,IAAW,CACnDvN,GAAI,MACJvU,MAAO,eACPsf,YAAY1f,EAAAA,EAAAA,IAAOyH,GACnB,sBAAuBpI,EAAO,KAAOA,EAAO,GAAMsgB,IAAiBC,EAAAA,EAAAA,IAAOnY,GAAUA,EAAOA,MAAQkY,EAAS,OAC3G,CACDxc,SAASM,EAAAA,EAAAA,KAAS,IAAM,EACtB7B,EAAAA,EAAAA,KAAa5B,EAAAA,EAAAA,IAAOmiB,GAAAA,IAAgB,CAAE/hB,MAAO,2CAA6C,CACxF+C,SAASM,EAAAA,EAAAA,KAAS,IAAM,EACtBG,EAAAA,EAAAA,IAAiB,kBAEnBE,EAAG,KAEL1F,EAAAA,EAAAA,GAAoB,MAAOD,GAAY,EACrCyD,EAAAA,EAAAA,KAAa5B,EAAAA,EAAAA,IAAOoiB,GAAAA,IAAgB,CAClCC,SAAUhjB,EAAO,KAAOA,EAAO,GAAMsgB,GAAiBsF,EAAgBxd,MAAQkY,EAAOhM,OAAOlM,OAC5F6a,QAASjjB,EAAO,KAAOA,EAAO,GAAMsgB,GAAiBsF,EAAgBxd,MAAQ,IAC7ErH,MAAO,0KAETwB,EAAAA,EAAAA,KAAa5B,EAAAA,EAAAA,IAAOuiB,GAAAA,IAAiB,CAAEniB,MAAO,qFAAuF,CACnI+C,SAASM,EAAAA,EAAAA,KAAS,IAAM,EACtB7B,EAAAA,EAAAA,KAAa5B,EAAAA,EAAAA,IAAOwiB,IAAoB,CACtCpiB,MAAO,wBACP,cAAe,YAGnB0D,EAAG,KAEJ9D,EAAAA,EAAAA,IAAOklB,GAAqB3d,OAAS,IACjCjI,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,KAAaS,EAAAA,EAAAA,IAAOyiB,GAAAA,IAAkB,CACnDviB,IAAK,EACLE,MAAO,gKACN,CACD+C,SAASM,EAAAA,EAAAA,KAAS,IAAM,GACrBnE,EAAAA,EAAAA,KAAW,IAAOW,EAAAA,EAAAA,IAAoB0B,EAAAA,GAAW,MAAMqG,EAAAA,EAAAA,KAAYhI,EAAAA,EAAAA,IAAOklB,IAAuBxC,KACxFpjB,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,KAAaS,EAAAA,EAAAA,IAAO2iB,GAAAA,IAAiB,CACzDziB,IAAKwiB,EACLjb,MAAOib,EACP/N,GAAI,YACH,CACDxR,SAASM,EAAAA,EAAAA,KAAS,EAAGqe,SAAQza,cAAe,EAC1CjJ,EAAAA,EAAAA,GAAoB,KAAM,CACxBgC,OAAO2H,EAAAA,EAAAA,IAAgB,CAAC,qDAAsD+Z,EAAS,2BAA6B,mBACnH,EACD1jB,EAAAA,EAAAA,GAAoB,OAAQ,CAC1BgC,OAAO2H,EAAAA,EAAAA,IAAgB,CAAC,iBAAkBV,GAAY,oBACrDxD,EAAAA,EAAAA,IAAiB6e,GAAS,GAC7Brb,IACK/H,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,OAAQ,CACzCC,IAAK,EACLE,OAAO2H,EAAAA,EAAAA,IAAgB,CAAC,oDAAqD+Z,EAAS,aAAe,qBACpG,EACDlgB,EAAAA,EAAAA,KAAa5B,EAAAA,EAAAA,IAAO4iB,IAAY,CAC9BxiB,MAAO,UACP,cAAe,UAEhB,KACHC,EAAAA,EAAAA,IAAoB,IAAI,IAC3B,MAELyD,EAAG,GACF,KAAM,CAAC,aACR,SAENA,EAAG,MAELzD,EAAAA,EAAAA,IAAoB,IAAI,QAGhCyD,EAAG,GACF,EAAG,CAAC,eAET,ICvHA,MAAM,GAAc,GAEpB,U,WCFA,MAAM3F,GAAa,CAAEiC,MAAO,wCACtBgE,GAAa,CAAEhE,MAAO,yEACtBkE,GAAa,CAAElE,MAAO,uCACtBmE,GAAa,CAAEnE,MAAO,cACtBoE,IAA0BpG,EAAAA,EAAAA,GAAoB,KAAM,CACxDyT,MAAO,MACPzR,MAAO,0EACN,cAAe,GACZqE,IAA0BrG,EAAAA,EAAAA,GAAoB,KAAM,CACxDyT,MAAO,MACPzR,MAAO,6DACN,OAAQ,GACLsE,GAAa,CACjBmN,MAAO,MACPzR,MAAO,+DAEHuE,GAAa,CAAEvE,MAAO,qCACtBwE,GAAa,CAAExE,MAAO,kCACtByE,GAAc,CAAEzE,MAAO,0BACvB0E,GAAc,CAAC,MAAO,MAAO,SAC7BC,GAAc,CAAE3E,MAAO,QACvB4E,GAAc,CAAE5E,MAAO,yCACvB6E,GAAc,CAAE7E,MAAO,2BACvB8E,GAAc,CAAE9E,MAAO,+CACvB+E,GAAc,CAAE/E,MAAO,iBACvBgF,GAAc,CAAEhF,MAAO,6EAkB7B,QAA4B9B,EAAAA,EAAAA,IAAiB,CAC3CC,OAAQ,wBACRuE,MAAO,CACPqiB,MAAO,CACL7jB,KAAM2F,MACNhE,UAAU,IAGZzE,MAAMC,GAER,MAAMqE,EAAQrE,EAIR2mB,GAAcrlB,EAAAA,EAAAA,KAAS,IAAM+C,EAAMqiB,MAAMlE,MAAM/O,IAA0B,IAAjBA,EAAKoR,SAAqC,OAAjBpR,EAAKoR,YAE5F,MAAO,CAAClkB,EAAUC,MACRC,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,MAAO,KAAM,EACrD7B,EAAAA,EAAAA,GAAoB,MAAOD,GAAY,EACrCC,EAAAA,EAAAA,GAAoB,MAAOgG,GAAY,EACrChG,EAAAA,EAAAA,GAAoB,QAASkG,GAAY,EACvClG,EAAAA,EAAAA,GAAoB,QAASmG,GAAY,EACvCnG,EAAAA,EAAAA,GAAoB,KAAM,KAAM,CAC9BoG,GACAC,IACArG,EAAAA,EAAAA,GAAoB,KAAMsG,IAAYb,EAAAA,EAAAA,KAAiB7D,EAAAA,EAAAA,IAAOolB,GAAe,UAAY,YAAa,QAG1GhnB,EAAAA,EAAAA,GAAoB,QAASuG,GAAY,GACtCrF,EAAAA,EAAAA,KAAW,IAAOW,EAAAA,EAAAA,IAAoB0B,EAAAA,GAAW,MAAMqG,EAAAA,EAAAA,IAAYlF,EAAMqiB,OAAQjT,KACxE5S,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,KAAM,CAC9CC,IAAKgS,EAAKmT,WACT,EACDjnB,EAAAA,EAAAA,GAAoB,KAAMwG,GAAY,EACpCxG,EAAAA,EAAAA,GAAoB,MAAOyG,GAAa,EACtCzG,EAAAA,EAAAA,GAAoB,MAAO,CACzBgC,OAAO2H,EAAAA,EAAAA,IAAgB,CAAoB,WAAnBmK,EAAKoT,UAAyB,uBAAyB,mBAAoB,mBAClG,EACDlnB,EAAAA,EAAAA,GAAoB,MAAO,CACzBgC,OAAO2H,EAAAA,EAAAA,IAAmC,WAAnBmK,EAAKoT,UAAyB,uBAAyB,oBAC9EzkB,IAAKqR,EAAK0S,QACVvb,IAAK6I,EAAK2S,QACVrhB,MAAO0O,EAAK2S,SACX,KAAM,GAAI/f,KACZ,IACH1G,EAAAA,EAAAA,GAAoB,MAAO2G,GAAa,EACtC3G,EAAAA,EAAAA,GAAoB,MAAO4G,IAAanB,EAAAA,EAAAA,IAAiBqO,EAAKmT,WAAY,IAC1EjnB,EAAAA,EAAAA,GAAoB,MAAO6G,IAAapB,EAAAA,EAAAA,IAAiBqO,EAAKqT,YAAa,UAIjFnnB,EAAAA,EAAAA,GAAoB,KAAM8G,GAAa,EACrC9G,EAAAA,EAAAA,GAAoB,MAAO+G,GAAa,CACrC+M,EAAKrC,MACDvQ,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAagT,GAAU,CACpCrS,IAAK,EACLiR,QAASe,EAAKrC,KACb,KAAM,EAAG,CAAC,cACbxP,EAAAA,EAAAA,IAAoB,IAAI,QAGhCjC,EAAAA,EAAAA,GAAoB,KAAMgH,GAAa,EACnB,IAAjB8M,EAAKoR,UACDhkB,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,KAAaS,EAAAA,EAAAA,IAAOwlB,IAAkB,CACnDtlB,IAAK,EACLE,MAAO,iCACP,cAAe,YAEhBd,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB0B,EAAAA,GAAW,CAAEzB,IAAK,GAAK,EACxD0D,EAAAA,EAAAA,KAAiBC,EAAAA,EAAAA,IAAiBqO,EAAKoR,SAAU,IAChD,YAGT,gBAOhB,IC3HA,MAAM,GAAc,GAEpB,UCJc,SAAUmC,GAA6BC,EAAOC,EAAO,IACjE,IAAIrU,EAAI,EAER,MAAMsU,EAAW,IAAIC,KACnBC,aAAaxU,GACbA,EAAI3Q,YAAW,IAAM+kB,KAAMG,IAAOF,EAAK,EAGzC,OAAgBC,CAClB,CCPA,MAAMznB,GAAa,CAAC,OAcpB,QAA4BG,EAAAA,EAAAA,IAAiB,CAC3CC,OAAQ,iBACRuE,MAAO,CACPijB,QAAS,CACPzkB,KAAM2F,MACNhE,UAAU,IAGZzE,MAAMC,GAER,MAAMqE,EAAQrE,EAIRsnB,GAAUze,EAAAA,EAAAA,IAAI,IAEd0e,EAAyBP,IAAS,KACtCM,EAAQte,MAAQ3E,EAAMijB,QAAQ1jB,KAAK4jB,GAAW,MAAMA,EAAO5R,OAAO4R,EAAO3R,yBAA2C,IAAnB2R,EAAO3C,QAAmB,KAAO,IAAI2C,EAAO3C,kBAAiB9gB,MAAM,GACnK,KAWH,OATAga,EAAAA,EAAAA,KAAM,IAAM1Z,EAAMijB,UAAS,KACI,IAAzBjjB,EAAMijB,QAAQxe,OAEhBwe,EAAQte,MAAQ3E,EAAMijB,QAAQ1jB,KAAK4jB,GAAW,MAAMA,EAAO5R,OAAO4R,EAAO3R,yBAA2C,IAAnB2R,EAAO3C,QAAmB,KAAO,IAAI2C,EAAO3C,kBAAiB9gB,OAE9JwjB,G,IAIG,CAAC5mB,EAAUC,MACRC,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,MAAO,CAC/CY,IAAK,0GAA0GklB,EAAQte,wBACvH4B,IAAK,aACJ,KAAM,EAAGlL,IAEd,ICjDA,MAAM,GAAc,GAEpB,UCFA,MAAMA,GAAa,CAAEiC,MAAO,0BACtBgE,GAAa,CAAEhE,MAAO,qDACtBkE,GAAa,CAAElE,MAAO,2EACtBmE,GAAa,CAAEnE,MAAO,oBACtBoE,GAAa,CAAEpE,MAAO,qDACtBqE,GAAa,CAAErE,MAAO,mEACtBsE,GAAa,CAAEtE,MAAO,mBACtBuE,GAAa,CAAEvE,MAAO,SACtBwE,IAA0BxG,EAAAA,EAAAA,GAAoB,IAAK,KAAM,wGAAyG,GAClKyG,IAA2BzG,EAAAA,EAAAA,GAAoB,KAAM,KAAM,MAAO,GAClE0G,IAA2B1G,EAAAA,EAAAA,GAAoB,KAAM,KAAM,MAAO,GAClE2G,GAAc,CAAE3E,MAAO,mEACvB4E,GAAc,CAAE5E,MAAO,gCACvB6E,GAAc,CAAE7E,MAAO,0EACvB8E,GAAc,CAAE9E,MAAO,aACvB+E,GAAc,CAAE/E,MAAO,+BACvBgF,GAAc,CAAEhF,MAAO,+CACvB4K,GAAc,CAClB9K,IAAK,EACLE,MAAO,4GAEH6K,GAAc,CAAE7K,MAAO,8BACvB8K,GAAc,CAAE9K,MAAO,2BACvB+K,GAAc,CAAE/K,MAAO,mBACvBgL,GAAc,CAAC,MAAO,MAAO,SAC7BC,GAAc,CAAEjL,MAAO,4EACvBkL,GAAc,CAAElL,MAAO,+CACvBmL,GAAc,CAAC,MAAO,MAAO,SAC7BC,GAAc,CAClBtL,IAAK,EACLE,MAAO,yDAEHuL,GAAc,CAClBzL,IAAK,EACLE,MAAO,+BAEHwL,GAAc,CAAExL,MAAO,wDACvByL,GAAc,CAAEzL,MAAO,cACvB0L,IAA2B1N,EAAAA,EAAAA,GAAoB,KAAM,CAAEgC,MAAO,6CAA+C,6BAA8B,GAC3I2L,GAAc,CAAE3L,MAAO,mCACvB4L,GAAc,CAAE5L,MAAO,cACvB6L,IAA2B7N,EAAAA,EAAAA,GAAoB,KAAM,CAAEgC,MAAO,6CAA+C,uBAAwB,GACrI8L,GAAc,CAAE9L,MAAO,mCACvB+L,GAAc,CAAE/L,MAAO,0CACvBiM,IAA2BjO,EAAAA,EAAAA,GAAoB,KAAM,CAAEgC,MAAO,6CAA+C,wBAAyB,GACtIkM,IAA2BlO,EAAAA,EAAAA,GAAoB,IAAK,CAAEgC,MAAO,mCAAqC,wCAAyC,GA6BjJ,QAA4B9B,EAAAA,EAAAA,IAAiB,CAC3CC,OAAQ,wBACRuE,MAAO,CACPoY,aAAc,CACZ5Z,KAAM0B,OACNC,UAAU,GAEZmK,iBAAkB,CAChB9L,KAAM0B,OACNC,UAAU,IAGZzE,MAAMC,GAER,MAAMqE,EAAQrE,EAIRynB,EAA6C,CAAC,aAAc,SAAU,QAAS,UAAW,gBAAiB,UAAW,UAAW,qBAAsB,0BACvJC,EAA0C,CAAC,cAAe,iBAAkB,YAAa,QAAS,MAAO,SAAU,UAAW,SAAU,UAExIpjB,GAASuE,EAAAA,EAAAA,IAAI,IACb6T,GAAiB7T,EAAAA,EAAAA,IAAI,IACrBmE,GAAUnE,EAAAA,EAAAA,KAAI,GAEd5E,GAAa4E,EAAAA,EAAAA,IAAIxE,EAAMsK,iBAAiBvK,eAExCujB,GAAkB9e,EAAAA,EAAAA,IAAkD,IAAI+e,KACxEC,GAAoBhf,EAAAA,EAAAA,IAAoD,IAAI+e,KAC5EE,GAAyBjf,EAAAA,EAAAA,IAA0C,IAAI+e,KACvEhD,GAAW/b,EAAAA,EAAAA,IAAoB,IAE/Bkf,GAAyBzmB,EAAAA,EAAAA,KAAS,KAAK,MAC3C,MAAMhD,EAAgI,QAAxH,EAAG,IAAIqpB,EAAgB3e,MAAMuZ,YAAasF,EAAkB7e,MAAMuZ,YAAauF,EAAuB9e,MAAMuZ,UAAU,UAAE,aAArH,EAAuHyF,cACxI,QAAiBvf,IAAbnK,EAGJ,MAAiB,cAAbA,EACK,6BAEF,oBAAoB,IAEvB2pB,GAA+B3mB,EAAAA,EAAAA,KAAS,IAAMsjB,EAAS5b,MAAMe,QAAQ8a,GAAYA,EAAQE,kBAAiBjc,OAAS,IACnHof,GAAS5mB,EAAAA,EAAAA,KAAS,IAAMwJ,KAAK6F,OAAOiU,EAAS5b,MAAMe,QAAQ8a,IAAaA,EAAQE,kBAAiBoD,SAAStD,GAAYA,EAAQvU,QAAQ1M,KAAK6gB,GAAOA,EAAGrT,WACrJkW,GAAUhmB,EAAAA,EAAAA,KAAS,IAAM,IAAIumB,EAAkB7e,MAAMuZ,UAAU4F,SAAS1W,GACxEA,EAASF,OAAOjT,SACX,CAAC,CACNsX,IAAKnE,EAASF,OAAOjT,SAASsX,IAC9BC,IAAKpE,EAASF,OAAOjT,SAASuX,IAC9BgP,QAAmC,IAA1BD,EAAS5b,MAAMF,QAAgBqc,GAAWP,EAAS5b,MAAOyI,KAGhE,OAGT,SAASwL,IACPjQ,EAAQhE,OAAQ,EAChB2e,EAAgB3e,MAAQ,IAAI4e,IAC5BC,EAAkB7e,MAAQ,IAAI4e,IAC9BE,EAAuB9e,MAAQ,IAAI4e,IACnChD,EAAS5b,MAAQ,GAEjB,MAAMof,EAAa,IAAIC,UAAU,GAAGhrB,OAAOiB,SAASgqB,OAAO3K,QAAQ,QAAS,mCAE5EyK,EAAWG,UAAaC,IACtB,MAAM/W,EAAiCgX,KAAKhQ,MAAM+P,EAAM/K,MACxD,GAAI,SAAUhM,EACZkR,QAAQ9G,MAAMpK,EAASiX,UAClB,CACL,MAAMhX,EAASD,EAASkX,MACG,kBAAvBjX,EAAOyR,YACT2E,EAAuB9e,MAAM8X,IAAIpP,EAAOH,OAAQG,GACvC2T,GAAoB3T,EAAOyR,aACpCwE,EAAgB3e,MAAM8X,IAAIpP,EAAOyR,YAAazR,GAE9CmW,EAAkB7e,MAAM8X,IAAIpP,EAAOyR,YAAazR,GAElDkT,EAAS5b,MAAQ2b,GAAYC,EAAS5b,MAAO0I,EAAQzN,EAAW+E,M,GAIpEof,EAAWQ,OAAS,KAClBR,EAAWzlB,KAAK8lB,KAAKI,UAAU,CAAEvkB,OAAQD,EAAMoY,aAAcxY,WAAYI,EAAMsK,mBAAoB,EAGrGyZ,EAAWU,QAAU,KACnB9b,EAAQhE,OAAQ,CAAK,CAEzB,CAEA,SAAS+f,EAAkBzD,GACzB,MAAM7T,EAAWkW,EAAgB3e,MAAM6X,IAAIyE,GAC3C,OAAI7T,EACK,CACLmV,UAAWlB,GAAqBJ,GAChCwB,WAAYrV,EAASF,OAAOC,IAAM,GAClCJ,IAAKtG,KAAK6F,OAAOc,EAASC,OAAO9N,KAAK6gB,GAAOA,EAAGrT,OAChDyT,QAAmC,IAA1BD,EAAS5b,MAAMF,QAAgBqc,GAAWP,EAAS5b,MAAOyI,GACnE0U,QAASA,GAAQ1U,GACjB2U,QAASA,GAAQ3U,GACjBoV,UAAW,UAGR,CACLD,UAAWlB,GAAqBJ,GAChCwB,WAAY9Z,EAAQhE,MAAQ,UAAY,2BACxCoI,IAAK,KACLyT,QAAS,KACTsB,QAASL,GAAoBR,GAC7Bc,QAASV,GAAqBJ,GAC9BuB,UAAW,SAEf,CAEA,SAASmC,EAAmB1D,GAC1B,MAAM7T,EAAWoW,EAAkB7e,MAAM6X,IAAIyE,GAC7C,OAAI7T,EACK,CACLmV,UAAWlB,GAAqBJ,GAChCwB,WAAYrV,EAASF,OAAOC,IAAM,GAClCJ,IAAKtG,KAAK6F,OAAOc,EAASC,OAAO9N,KAAK6gB,GAAOA,EAAGrT,OAChDyT,QAAmC,IAA1BD,EAAS5b,MAAMF,QAAgBqc,GAAWP,EAAS5b,MAAOyI,GACnE0U,QAASJ,GAAYT,GACrBc,QAASA,GAAQ3U,GACjBoV,UAAW,OAGR,CACLD,UAAWlB,GAAqBJ,GAChCwB,WAAY9Z,EAAQhE,MAAQ,aAAe,4BAC3CoI,IAAK,KACLyT,QAAS,KACTsB,QAASJ,GAAYT,GACrBc,QAASV,GAAqBJ,GAC9BuB,UAAW,MAEf,CAEA,SAASoC,IACP,SAASC,EAAO3S,EAA8BpS,GAC5C,OAAIoS,EAAEqQ,UAAYziB,EAAEyiB,UACX,EAELrQ,EAAEqQ,UAAYziB,EAAEyiB,WACV,EAEH,CACT,CACA,OAAOpe,MAAM2gB,KAAKrB,EAAuB9e,OAAOpF,KAAI,EAAE2N,EAAQG,MAAY,CACxEkV,UAAWrV,EAAOjN,QAAU,GAC5BwiB,WAAYvV,EAAOC,IAAM,GACzBJ,IAAKtG,KAAK6F,OAAOe,EAAOA,OAAO9N,KAAK6gB,GAAOA,EAAGrT,OAC9CyT,QAAmC,IAA1BD,EAAS5b,MAAMF,QAAgBqc,GAAWP,EAAS5b,MAAO0I,GACnEyU,QAASA,GAAQzU,GACjB0U,QAASA,GAAQ1U,GACjBmV,UAAW,aACTnQ,KAAKwS,EACX,CAwBA,OAtBAnL,EAAAA,EAAAA,KAAM,IAAM9Z,EAAW+E,QAAO,KAC5B6F,GAAAA,KAAY,YAAY6N,EAAe1T,yBAAyB/E,EAAW+E,MAAM3J,iBAAiB,KAGpG0e,EAAAA,EAAAA,KAAM,IAAM1Z,EAAMoY,eAAc,KAC1BC,EAAe1T,QAAU3E,EAAMoY,eACjCnY,EAAO0E,MAAQiX,UAAU5b,EAAMoY,cAC5Bpd,cACHqd,EAAe1T,MAAQiX,UAAU5b,EAAMoY,cACpCpd,cACH4d,I,GAED,CACDe,WAAW,KAGbD,EAAAA,EAAAA,KAAM,IAAM1Z,EAAMsK,mBAAkB,KAClC1K,EAAW+E,MAAQ3E,EAAMsK,iBAAiBvK,cAC1C6Y,GAAM,IAID,CAACtc,EAAUC,KAChB,MAAMkE,GAAyB7B,EAAAA,EAAAA,IAAkB,eAEjD,OAAQpC,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB0B,EAAAA,GAAW,KAAM,GACxDrC,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAaC,EAAAA,GAAW,CAAEC,GAAI,QAAU,EACrDmC,EAAAA,EAAAA,IAAa8L,GAAAA,EAAU,CACrBlK,MAAO,uBAAuBT,EAAO0E,QACrCkG,YAAa,GAAG5K,EAAO0E,iIACvBmG,IAAK,mCAAmCuN,EAAe1T,yBAAyB/E,EAAW+E,MAAM3J,kBAChG,KAAM,EAAG,CAAC,QAAS,cAAe,YAEvC8D,EAAAA,EAAAA,IAAaiM,EAAAA,EAAiB,CAC5B9K,OAAQA,EAAO0E,MACf,uBAAyBqG,GAAkB,YAAYA,qBAAiCpL,EAAW+E,MAAM3J,iBACzG,qBAAsB,qBACrB,KAAM,EAAG,CAAC,SAAU,0BACvBM,EAAAA,EAAAA,GAAoB,MAAOD,GAAY,EACrCC,EAAAA,EAAAA,GAAoB,OAAQgG,GAAY,EACtChG,EAAAA,EAAAA,GAAoB,MAAOkG,GAAY,EACrClG,EAAAA,EAAAA,GAAoB,MAAOmG,GAAY,EACrCnG,EAAAA,EAAAA,GAAoB,KAAMoG,GAAY,wBAAyBX,EAAAA,EAAAA,IAAiBd,EAAO0E,QAAU0T,EAAe1T,MAAQ1E,EAAO0E,MAAQ,GAAG0T,EAAe1T,UAAU1E,EAAO0E,UAAW,IACrL7F,EAAAA,EAAAA,IAAa2B,EAAwB,CACnC9D,GAAI,YAAY0b,EAAe1T,qBAC/BrH,MAAO,+CACN,CACD+C,SAASM,EAAAA,EAAAA,KAAS,IAAM,EACtBG,EAAAA,EAAAA,IAAiB,sBAEnBE,EAAG,GACF,EAAG,CAAC,UAETlC,EAAAA,EAAAA,IAAaimB,GAAkB,CAC7BnI,WAAYhd,EAAW+E,MACvB,sBAAuBpI,EAAO,KAAOA,EAAO,GAAMsgB,GAAkBjd,EAAY+E,MAAQkY,IACvF,KAAM,EAAG,CAAC,kBAEfvhB,EAAAA,EAAAA,GAAoB,MAAOqG,GAAY,EACrCrG,EAAAA,EAAAA,GAAoB,MAAOsG,GAAY,EACrC9C,EAAAA,EAAAA,IAAa0M,GAAQ,CACnBlO,MAAO,qDACP+H,QAAQnI,EAAAA,EAAAA,IAAOoK,KACd,KAAM,EAAG,CAAC,YACbhM,EAAAA,EAAAA,GAAoB,MAAOuG,GAAY,EACrCvG,EAAAA,EAAAA,GAAoB,IAAK,KAAM,qEAAsEyF,EAAAA,EAAAA,IAAiB0iB,EAAuB9e,MAAMoB,MAAQ,mCAAoChF,EAAAA,EAAAA,IAAiBsX,EAAe1T,OAAS,OAAQ5D,EAAAA,EAAAA,IAAiBnB,EAAW+E,OAAS,YAAa,GAClS7C,IACE6G,EAAQhE,OAAS4b,EAAS5b,MAAMF,OAAS,IACtCjI,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB0B,EAAAA,GAAW,CAAEzB,IAAK,GAAK,CAC7B,IAA1BmjB,EAAS5b,MAAMF,SACXjI,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB0B,EAAAA,GAAW,CAAEzB,IAAK,GAAK,CAClB,IAArCmjB,EAAS5b,MAAM,GAAGsH,QAAQxH,SACtBjI,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB0B,EAAAA,GAAW,CAAEzB,IAAK,GAAK,CAClC,OAArBwC,EAAW+E,QACPnI,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAauoB,GAAAA,EAAgB,CAC1C5nB,IAAK,EACLoB,KAAM,UACNlB,MAAO,2BACP,cAAc,GACb,CACD+C,SAASM,EAAAA,EAAAA,KAAS,IAAM,EACtBG,EAAAA,EAAAA,IAAiB,gDACjBiB,IACAjB,EAAAA,EAAAA,IAAiB,kDACjBhC,EAAAA,EAAAA,IAAa2B,EAAwB,CACnC9D,GAAI,6BACJW,MAAO,4CACN,CACD+C,SAASM,EAAAA,EAAAA,KAAS,IAAM,EACtBG,EAAAA,EAAAA,IAAiB,gBAEnBE,EAAG,KAELF,EAAAA,EAAAA,IAAiB,wDACjBhC,EAAAA,EAAAA,IAAa2B,EAAwB,CACnC9D,GAAI,iEACJW,MAAO,4CACN,CACD+C,SAASM,EAAAA,EAAAA,KAAS,IAAM,EACtBG,EAAAA,EAAAA,IAAiB,eAEnBE,EAAG,KAELF,EAAAA,EAAAA,IAAiB,oDAEnBE,EAAG,OAEJxE,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAauoB,GAAAA,EAAgB,CAC1C5nB,IAAK,EACLoB,KAAM,OACNlB,MAAO,2BACP,cAAc,GACb,CACD+C,SAASM,EAAAA,EAAAA,KAAS,IAAM,EACtBG,EAAAA,EAAAA,IAAiB,6CACjBkB,IACAlB,EAAAA,EAAAA,IAAiB,kDACjBhC,EAAAA,EAAAA,IAAa2B,EAAwB,CACnC9D,GAAI,YAAY0b,EAAe1T,4BAC/BrH,MAAO,4CACN,CACD+C,SAASM,EAAAA,EAAAA,KAAS,IAAM,EACtBG,EAAAA,EAAAA,IAAiB,2BAEnBE,EAAG,GACF,EAAG,CAAC,QACPF,EAAAA,EAAAA,IAAiB,uDAEnBE,EAAG,MAER,OACFxE,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAauoB,GAAAA,EAAgB,CAC1C5nB,IAAK,EACLoB,KAAM,UACNlB,MAAO,2BACP,cAAc,GACb,CACD+C,SAASM,EAAAA,EAAAA,KAAS,IAAM,EACtBG,EAAAA,EAAAA,IAAiB,uGAEnBE,EAAG,MAER,KACF,CAAC,IAAK,QAAQhH,SAAS4F,EAAW+E,SAChCnI,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB0B,EAAAA,GAAW,CAAEzB,IAAK,GAAK,CACvDmjB,EAAS5b,MAAMF,OAAS,IACpBjI,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAauoB,GAAAA,EAAgB,CAC1C5nB,IAAK,EACLoB,KAAM,OACNlB,MAAO,2BACP,cAAc,GACb,CACD+C,SAASM,EAAAA,EAAAA,KAAS,IAAM,EACtBG,EAAAA,EAAAA,IAAiB,6JAEnBE,EAAG,MAELzD,EAAAA,EAAAA,IAAoB,IAAI,IAC3B,OACFf,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB0B,EAAAA,GAAW,CAAEzB,IAAK,GAAK,EACvDF,EAAAA,EAAAA,IAAO0mB,KACHpnB,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAauoB,GAAAA,EAAgB,CAC1C5nB,IAAK,EACLoB,KAAM,UACNlB,MAAO,2BACP,cAAc,GACb,CACD+C,SAASM,EAAAA,EAAAA,KAAS,IAAM,EACtBG,EAAAA,EAAAA,IAAiB,6FAA8FC,EAAAA,EAAAA,IAAiBd,EAAO0E,OAAS,wBAAyB,MAE3K3D,EAAG,OAEJxE,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,IAAauoB,GAAAA,EAAgB,CAC1C5nB,IAAK,EACLoB,KAAM,UACNlB,MAAO,2BACP,cAAc,GACb,CACD+C,SAASM,EAAAA,EAAAA,KAAS,IAAM,EACtBG,EAAAA,EAAAA,KAAiBC,EAAAA,EAAAA,IAAiBd,EAAO0E,OAAS,gDAAiD,IAClGzH,EAAAA,EAAAA,IAAO2mB,KACHrnB,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB0B,EAAAA,GAAW,CAAEzB,IAAK,GAAK,EACxD0D,EAAAA,EAAAA,IAAiB,uEACjBhC,EAAAA,EAAAA,IAAammB,GAAmB,CAAE5W,SAASnR,EAAAA,EAAAA,IAAO2mB,IAAW,KAAM,EAAG,CAAC,aACvE/iB,EAAAA,EAAAA,IAAiB,MAChB,MACHvD,EAAAA,EAAAA,IAAoB,IAAI,MAE9ByD,EAAG,MAER,MACR,MACHzD,EAAAA,EAAAA,IAAoB,IAAI,QAGhCuB,EAAAA,EAAAA,IAAaomB,GAAgB,CAC3BjC,SAAS/lB,EAAAA,EAAAA,IAAO+lB,GAChB3lB,MAAO,qCACN,KAAM,EAAG,CAAC,eAEfhC,EAAAA,EAAAA,GAAoB,KAAM2G,GAAa,GACpCzF,EAAAA,EAAAA,KAAW,IAAOW,EAAAA,EAAAA,IAAoB0B,EAAAA,GAAW,MAAMqG,EAAAA,EAAAA,IAAYqb,EAAS5b,OAAO,CAAC6b,EAASpb,MACpF5I,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,KAAM,CAC9CC,IAAKgI,EACL9H,MAAO,iIACN,EACDhC,EAAAA,EAAAA,GAAoB,MAAO4G,GAAa,EACtC5G,EAAAA,EAAAA,GAAoB,MAAO6G,GAAa,EACtC7G,EAAAA,EAAAA,GAAoB,MAAO8G,GAAa,EACtC9G,EAAAA,EAAAA,GAAoB,MAAO+G,GAAa,EACtC/G,EAAAA,EAAAA,GAAoB,KAAMgH,IAAavB,EAAAA,EAAAA,IAA2C,IAA1Bwf,EAAS5b,MAAMF,OAAe,cAAgB,YAAWvH,EAAAA,EAAAA,IAAO0jB,GAAP1jB,CAAuBkI,MAAW,GAClJob,EAAQE,kBACJlkB,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,OAAQ+K,GAAa,mBACxD3K,EAAAA,EAAAA,IAAoB,IAAI,MAE9BjC,EAAAA,EAAAA,GAAoB,IAAK6M,GAAa,cAAepH,EAAAA,EAAAA,IAA0C,GAAzBwf,EAAS5b,MAAMF,OAAc,OAAS,KAAM1D,EAAAA,EAAAA,IAA2C,GAA1Byf,EAAQC,QAAQhc,OAAc,WAAa,GAAG+b,EAAQC,QAAQhc,kBAAoB,IAAK,MAE5NnJ,EAAAA,EAAAA,GAAoB,MAAO8M,GAAa,EACtC9M,EAAAA,EAAAA,GAAoB,MAAO+M,GAAa,CACrCmY,EAAQC,QAAQhc,OAAS,IACrBjI,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB0B,EAAAA,GAAW,CAAEzB,IAAK,GAAK,GACvDZ,EAAAA,EAAAA,KAAW,IAAOW,EAAAA,EAAAA,IAAoB0B,EAAAA,GAAW,MAAMqG,EAAAA,EAAAA,IAAYsb,EAAQC,QAAQ/lB,MAAM,EAAG,IAAI,CAAC2S,EAAQjI,MAChG5I,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,MAAO,CAC/CC,IAAKgI,EACL9H,MAAO,sDACPS,KAAKb,EAAAA,EAAAA,IAAO4kB,GAAP5kB,CAAgBmQ,GACrB9G,KAAKrJ,EAAAA,EAAAA,IAAO6kB,GAAP7kB,CAAgBmQ,GACrB3M,OAAOxD,EAAAA,EAAAA,IAAO6kB,GAAP7kB,CAAgBmQ,IACtB,KAAM,EAAG/E,OACV,OACJhN,EAAAA,EAAAA,GAAoB,OAAQiN,GAAa,EACvCjN,EAAAA,EAAAA,GAAoB,OAAQkN,GAAa,KAAMzH,EAAAA,EAAAA,IAAiByf,EAAQC,QAAQhc,OAAS,GAAI,MAE9F,OACFjI,EAAAA,EAAAA,KAAW,IAAOW,EAAAA,EAAAA,IAAoB0B,EAAAA,GAAW,CAAEzB,IAAK,IAAK8H,EAAAA,EAAAA,IAAYsb,EAAQC,SAAS,CAACpT,EAAQjI,MAC1F5I,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,MAAO,CAC/CC,IAAKgI,EACL9H,MAAO,sDACPS,KAAKb,EAAAA,EAAAA,IAAO4kB,GAAP5kB,CAAgBmQ,GACrB9G,KAAKrJ,EAAAA,EAAAA,IAAO6kB,GAAP7kB,CAAgBmQ,GACrB3M,OAAOxD,EAAAA,EAAAA,IAAO6kB,GAAP7kB,CAAgBmQ,IACtB,KAAM,EAAG5E,OACV,cAKf+X,EAAQvU,QAAQxH,SACZjI,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,MAAOuL,IAAa3H,EAAAA,EAAAA,IAAiByf,EAAQvU,QAAQ1M,KAAK6gB,GAAOA,EAAG9S,MAAK5N,KAAK,OAAQ,MACxHlD,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,MAAO0L,GAAa,OAAQ9H,EAAAA,EAAAA,IAAiBnB,EAAW+E,OAAS,iBAAkB,SAE1H,SAEN7F,EAAAA,EAAAA,IAAa0M,GAAQ,CACnBlO,MAAO,eACP+H,QAAQnI,EAAAA,EAAAA,IAAOqK,KACd,KAAM,EAAG,CAAC,YACbjM,EAAAA,EAAAA,GAAoB,MAAOwN,GAAa,EACtCxN,EAAAA,EAAAA,GAAoB,MAAOyN,GAAa,CACtCC,IACA1N,EAAAA,EAAAA,GAAoB,IAAK2N,IAAalI,EAAAA,EAAAA,KAAiB7D,EAAAA,EAAAA,IAAOwmB,GAA0B,iBAAgBxmB,EAAAA,EAAAA,IAAOwmB,KAA4B,KAAM,IACjJ5kB,EAAAA,EAAAA,IAAaqmB,GAAuB,CAClC9C,MAAOuC,KACN,KAAM,EAAG,CAAC,aAEftpB,EAAAA,EAAAA,GAAoB,MAAO4N,GAAa,CACtCC,IACA7N,EAAAA,EAAAA,GAAoB,IAAK8N,IAAarI,EAAAA,EAAAA,KAAiB7D,EAAAA,EAAAA,IAAOwmB,GAA0B,iBAAgBxmB,EAAAA,EAAAA,IAAOwmB,KAA4B,KAAM,IACjJ5kB,EAAAA,EAAAA,IAAaqmB,GAAuB,CAClC9C,MAAOe,EAAiB7jB,KAAKuf,GAAgB4F,EAAkB5F,MAC9D,KAAM,EAAG,CAAC,aAEfxjB,EAAAA,EAAAA,GAAoB,MAAO+N,GAAa,CACtCE,GACAC,IACA1K,EAAAA,EAAAA,IAAaqmB,GAAuB,CAClC7nB,MAAO,aACP+kB,MAAOgB,EAAY9jB,KAAKuf,GAAgB6F,EAAmB7F,MAC1D,KAAM,EAAG,CAAC,eAGjBhgB,EAAAA,EAAAA,IAAa0M,GAAQ,CACnBlO,MAAO,eACP+H,QAAQnI,EAAAA,EAAAA,IAAOsK,KACd,KAAM,EAAG,CAAC,gBAGjB1I,EAAAA,EAAAA,IAAakN,EAAAA,IACZ,GAAG,CAER,IC3gBA,MAAM,GAAc,GAEpB,UCQA,MAAMoZ,GAAgC,CACpC,CACE7L,KAAM,IACN1M,KAAM,OACNwY,UAAWC,IAEb,CACE/L,KAAM,gBACN1M,KAAM,cACNwY,UAAWE,IAEb,CACEhM,KAAM,yBACN1M,KAAM,uBACNwY,UAAWxd,IAEb,CACE0R,KAAM,sBACN1M,KAAM,oBACNwY,UAAW1d,IAEb,CACE4R,KAAM,kCACNvZ,OAAO,EACP6M,KAAM,2BACNwY,UAAWG,IAEb,CACEjM,KAAM,yCACNvZ,OAAO,EACP6M,KAAM,aACNwY,UAAWI,IAEb,CACElM,KAAM,0CACNvZ,OAAO,EACP6M,KAAM,cACNwY,UAAWnL,IAEb,CACEX,KAAM,gEAAgEja,MACtEU,OAAO,EACP6M,KAAM,kBACNwY,UAAWK,IAEb,CACEnM,KAAM,sBAAsBja,aAC5BU,OAAO,EACP6M,KAAM,qBACNwY,UAAW5d,IAEb,CACE8R,KAAM,4DAA4Dja,MAClEU,OAAO,EACP6M,KAAM,4BACNwY,UAAWM,IAEb,CACEpM,KAAM,2DACNvZ,OAAO,EACP6M,KAAM,oBACNwY,UAAWM,IAEb,CACEpM,KAAM,YACN1M,KAAM,UACNwY,UAAW,IAAM,+BAEnB,CACE9L,KAAM,8CACN1M,KAAM,oBACNwY,UAAW,IAAM,+BAEnB,CACE9L,KAAM,4CACN1M,KAAM,kBACNwY,UAAW,IAAM,+BAEnB,CACE9L,KAAM,+CACN1M,KAAM,qBACNwY,UAAW,IAAM,+BAEnB,CACE9L,KAAM,eACN1M,KAAM,UACNwY,UAAW,IAAM,+BAEnB,CACE9L,KAAM,UACN1M,KAAM,QACNwY,UAAW,IAAM,+BAEnB,CACE9L,KAAM,wBACN1M,KAAM,gBACNwY,UAAW,IAAM,+BAEnB,CACE9L,KAAM,uBACN1M,KAAM,eACNwY,UAAW,IAAM,8BAEnB,CACE9L,KAAM,mBACN1M,KAAM,iBACNwY,UAAW,IAAM,+BAEnB,CACE9L,KAAM,0BACN1M,KAAM,wBACNwY,UAAW,IAAM,+BAEnB,CACE9L,KAAM,YACN1M,KAAM,sBACNwY,UAAW,IAAM,+BAEnB,CACE9L,KAAM,mBACN1M,KAAM,iBACNwY,UAAW,IAAM,+BAEnB,CACE9L,KAAM,yBACN1M,KAAM,uBACNwY,UAAW,IAAM,+BAEnB,CACE9L,KAAM,aACN1M,KAAM,WACNwY,UAAW,IAAM,+BAEnB,CACE9L,KAAM,yBACN1M,KAAM,mBACNwY,UAAW,IAAM,+BAEnB,CACE9L,KAAM,oCACN1M,KAAM,0BACNwY,UAAW,IAAM,+BAEnB,CACE9L,KAAM,8BACN1M,KAAM,mBACNwY,UAAW,IAAM,+BAEnB,CACE9L,KAAM,gCACN1M,KAAM,sBACNwY,UAAW,IAAM,+BAEnB,CACE9L,KAAM,uCACN1M,KAAM,6BACNwY,UAAW,IAAM,+BAEnB,CACE9L,KAAM,4CACN1M,KAAM,qCACNwY,UAAW,IAAM,+BAEnB,CACE9L,KAAM,6BACN1M,KAAM,sBACNwY,UAAW,IAAM,8BAEnB,CACE9L,KAAM,oDACN1M,KAAM,0CACNwY,UAAW,IAAM,+BAEnB,CACE9L,KAAM,yDACN1M,KAAM,8CACNwY,UAAW,IAAM,+BAEnB,CACE9L,KAAM,kCACN1M,KAAM,mCACNwY,UAAW,IAAM,+BAEnB,CACE9L,KAAM,kCACN1M,KAAM,iBACNwY,UAAW,IAAM,+BAEnB,CACE9L,KAAM,oCACN1M,KAAM,mBACNwY,UAAW,IAAM,+BAEnB,CACE9L,KAAM,iCACN1M,KAAM,gBACNwY,UAAW,IAAM,+BAEnB,CACE9L,KAAM,iCACN1M,KAAM,gBACNwY,UAAW,IAAM,+BAEnB,CACE9L,KAAM,kCACN1M,KAAM,iBACNwY,UAAW,IAAM,+BAEnB,CACE9L,KAAM,gCACN1M,KAAM,eACNwY,UAAW,IAAM,8BAEnB,CACE9L,KAAM,mCACN1M,KAAM,kBACNwY,UAAW,IAAM,+BAEnB,CACE9L,KAAM,kCACN1M,KAAM,iBACNwY,UAAW,IAAM,+BAEnB,CACE9L,KAAM,kCACN1M,KAAM,iBACNwY,UAAW,IAAM,+BAEnB,CACE9L,KAAM,mCACN1M,KAAM,qBACNwY,UAAW,IAAM,+BAEnB,CACE9L,KAAM,oCACN1M,KAAM,sBACNwY,UAAW,IAAM,+BAEnB,CACE9L,KAAM,qCACN1M,KAAM,uBACNwY,UAAW,IAAM,+BAEnB,CACE9L,KAAM,wCACN1M,KAAM,6BACNwY,UAAW,IAAM,8BAEnB,CACE9L,KAAM,gDACN1M,KAAM,qCACNwY,UAAW,IAAM,+BAEnB,CACE9L,KAAM,0DACN1M,KAAM,+CACNwY,UAAW,IAAM,+BAEnB,CACE9L,KAAM,mDACN1M,KAAM,wCACNwY,UAAW,IAAM,+BAEnB,CACE9L,KAAM,qDACN1M,KAAM,0CACNwY,UAAW,IAAM,+BAEnB,CACE9L,KAAM,4CACN1M,KAAM,iCACNwY,UAAW,IAAM,+BAEnB,CACE9L,KAAM,wCACN1M,KAAM,8BACNwY,UAAW,IAAM,+BAEnB,CACE9L,KAAM,qDACN1M,KAAM,0CACNwY,UAAW,IAAM,gCAIf7a,IAASob,EAAAA,EAAAA,IAAa,CAC1BC,SAASC,EAAAA,EAAAA,IAAiBC,KAC1BX,UACAY,eAAerpB,GACb,GAAIA,EAAGihB,KAAM,CACX,MAAMjY,EAAUoI,SAASkY,eAAetpB,EAAGihB,KAAKnJ,UAAU,IAC1D,GAAI9O,EACF,MAAO,CACLugB,GAAIvgB,E,CAIV,MAAO,CACLugB,GAAI,OAER,IAKF1b,GAAO2b,WAAU,CAACxpB,EAAImoB,KACpB,GAAInoB,EAAG4c,OAASuL,EAAKvL,MAAQ5c,EAAGihB,OAASkH,EAAKlH,KAAM,CAClD,MAAM9S,EAAM9R,OAAOiB,SAASgqB,OAAStnB,EAAG4c,KACrCD,QAAQ,oBAAqB,kBAC7BA,QAAQ,eAAgB,aAC3B8M,UAAU,WAAY,CAAEC,EAAGvb,EAAM9R,OAAOiB,SAASqsB,Q,KAIrD,UCjUAC,IAAAA,QAAe,EAEf,MAAMC,IAAOC,EAAAA,EAAAA,IAAUC,GAAKC,IAAI9pB,IAAO8pB,IAAInc,IAG3CuD,SAAS6L,iBAAiB,oBAAoB,KAC5C4M,GAAKI,MAAM,OAAO,G,iICTpB,MAAMvrB,EAAa,CAAEiC,MAAO,sBACtBgE,GAA0BhG,EAAAA,EAAAA,GAAoB,MAAO,CAAEgC,MAAO,wEAA0E,EAC/HhC,EAAAA,EAAAA,GAAoB,MAAO,CACtCgC,MAAO,wBACP2D,MAAO,6BACPI,QAAS,YACTD,KAAM,eACN,cAAe,QACd,EACY9F,EAAAA,EAAAA,GAAoB,OAAQ,CACvC,YAAa,UACbiG,EAAG,iIACH,YAAa,gBAGf,GACEC,GAA0BlG,EAAAA,EAAAA,GAAoB,QAAS,CAC3DurB,IAAK,cACLvpB,MAAO,WACN,eAAgB,GACbmE,EAAa,CAAC,YAAa,QAAS,eACpCC,EAAa,CAAEpE,MAAO,mBACtBqE,EAAa,CAAC,WACdC,EAAa,CAAC,UAAW,cAAe,WACxCC,EAAa,CAAC,OACdC,EAAa,CAAExE,MAAO,iBAa5B,OAA4B9B,EAAAA,EAAAA,IAAiB,CAC3CC,OAAQ,eACRuE,MAAO,CACPkL,UAAW5G,QACX6G,UAAW7G,QACXwiB,oBAAqB,CACnBtoB,KAAM8F,QACNjE,SAAS,GAEXqa,QAAS,CACPlc,KAAM0B,OACNG,QAAS,IAEX+K,WAAY,CACV5M,KAAM0B,OACNG,QAAS,oBAEX0mB,gBAAiB,CACfvoB,KAAM0B,OACNG,QAAS,gBAGX2hB,MAAO,CAAC,aACRtmB,MAAMC,GAAS,KAAEsmB,IAEnB,MAAMjiB,EAAQrE,EAMRqrB,EAAwB,gBAExBC,GAAsBziB,EAAAA,EAAAA,IAAI,IAAIL,OAC9B+iB,GAAc1iB,EAAAA,EAAAA,IAA6B,MAC3CgU,GAAchU,EAAAA,EAAAA,IAAqB,MACnC2iB,GAAe3iB,EAAAA,EAAAA,IAAI,IACnB0P,GAAS1P,EAAAA,EAAAA,IAAI,IACbD,GAAWC,EAAAA,EAAAA,KAAK,GAChB4iB,GAAW5iB,EAAAA,EAAAA,KAAI,GAGrB,SAASyD,EAAaof,GACpB,MAAMxW,EAASwW,EAAIxW,OAInB,GAHAqD,EAAOvP,MAAQkM,EAAOlM,MACtBwiB,EAAaxiB,MAAQkM,EAAOlM,MAEvB3E,EAAM8mB,oBAKX,GADAviB,EAASI,OAAS,EACS,KAAvBwiB,EAAaxiB,MACfsiB,EAAoBtiB,MAAQ,OACvB,CACD6T,EAAY7T,OACd6T,EAAY7T,QAEd,MAAMkU,EAAcC,IAAAA,YAAAA,SACpBN,EAAY7T,MAAQkU,EAAYE,OAChCD,IAAAA,IAAU,GAAGkO,IAAwBG,EAAaxiB,QAAS,CACzD6T,YAAaK,EAAYK,QACxBC,MAAM/L,IACP,MAAM,IAAEtC,GAAQsC,EAAS/H,OACzB,GAAIyF,EAAK,CACP,MAAMwc,EAAgBxc,EAAIyc,OAAOP,EAAsBviB,OAAQqG,EAAIrG,QAE/D6iB,IAAkBpT,EAAOvP,QACL,KAAlByI,EAASgM,KACX6N,EAAoBtiB,MAAQ,GAE5BsiB,EAAoBtiB,MAAQyI,EAASgM,KAAK/S,MAAM,MAC7Cyd,SAAS0D,GAAmB,CAAC,CAC5BtT,OAAQiT,EAAaxiB,MACrB8iB,WAAYD,M,KAKrB/N,OAAOjC,IACHsB,IAAAA,SAAetB,IAClB8G,QAAQC,IAAI/G,EAAMgH,Q,IAI1B,CAEA,SAAS1Q,EAAO1I,EAAesiB,GAAc,GACvCA,IACFP,EAAaxiB,MAAQsiB,EAAoBtiB,MAAMS,GAAO8O,OAAS+S,EAAoBtiB,MAAMS,GAAOqiB,YAElGljB,EAASI,MAAQS,CACnB,CAEA,SAASuiB,IACPR,EAAaxiB,MAAQuP,EAAOvP,MAC5BJ,EAASI,OAAS,CACpB,CAEA,SAASijB,EAAKC,GAUZ,OATwB,IAApBtjB,EAASI,MAETmJ,GADiB,IAAf+Z,EACKZ,EAAoBtiB,MAAMF,OAAS,EAEnC,GAFsC,GAK/CqJ,GAAQvJ,EAASI,MAAQsiB,EAAoBtiB,MAAMF,OAASojB,GAAaZ,EAAoBtiB,MAAMF,QAAQ,IAEtG,CACT,CAEA,SAASiG,EAAWtF,GAClB,MAAMsI,EAAQwZ,EAAYviB,MAC1B+I,EAAMO,OACNgU,EAAK,YAAagF,EAAoBtiB,MAAMS,GAAO8O,OAAS+S,EAAoBtiB,MAAMS,GAAOqiB,WAC/F,CAEA,SAASK,IACP,GAA2B,KAAvBX,EAAaxiB,MAAc,CAC7B,MAAM+I,EAAQwZ,EAAYviB,MAC1B+I,EAAMO,OACNgU,EAAK,YAAakF,EAAaxiB,M,CAEnC,CAEA,MAAMojB,GAAiB9qB,EAAAA,EAAAA,KAAS,IAAMgqB,EAAoBtiB,MAAMF,OAAS,GAAK2iB,EAASziB,QAevF,OAbAC,EAAAA,EAAAA,KAAU,KACR,GAAI5E,EAAMkL,UAAW,CACnB,MAAMwC,EAAQwZ,EAAYviB,MAC1B+I,EAAMsa,O,MAIVtO,EAAAA,EAAAA,KAAM,IAAM1Z,EAAM0a,UAAS,KACzByM,EAAaxiB,MAAQ3E,EAAM0a,OAAO,GACjC,CACDf,WAAW,IAGN,CAACrd,EAAUC,MACRC,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,MAAO9B,EAAY,EAC3DC,EAAAA,EAAAA,GAAoB,MAAO,CACzBgC,OAAO2H,EAAAA,EAAAA,IAAgB,CAAC,yEAA0E,CAAE,kBAAkB/H,EAAAA,EAAAA,IAAO6qB,GAAiBE,OAAQtsB,EAAQwP,cAC7J,CACD7J,EACAE,GACAlG,EAAAA,EAAAA,GAAoB,QAAS,CAC3BgC,MAAO,oCACP4qB,QAASjgB,EACTkgB,UAAW,CACT5rB,EAAO,KAAOA,EAAO,IAAK6rB,EAAAA,EAAAA,KAAUzX,EAAAA,EAAAA,KAAgBkM,GAAiB+K,GAAM,IAAK,CAAC,YAAa,CAAC,QAC/FrrB,EAAO,KAAOA,EAAO,IAAK6rB,EAAAA,EAAAA,KAAUzX,EAAAA,EAAAA,KAAgBkM,GAAiB+K,EAAK,IAAK,CAAC,YAAa,CAAC,WAC9FQ,EAAAA,EAAAA,IAAUT,EAAiB,CAAC,SAE9BnI,QAASjjB,EAAO,KAAOA,EAAO,GAAMsgB,GAAiBuK,EAASziB,OAAQ,GACtE0jB,OAAQ9rB,EAAO,KAAOA,EAAO,GAAMsgB,GAAiBuK,EAASziB,OAAQ,GACrEA,MAAOwiB,EAAaxiB,MACpBnG,KAAM,MACNjD,GAAI,cACJ2S,QAAS,cACT1J,IAAK0iB,EACLoB,YAAa3sB,EAAQorB,gBACrB9e,aAAc,MACdsgB,YAAa,MACbC,eAAgB,MAChBC,WAAY,SACX,KAAM,GAAIhnB,IACbnG,EAAAA,EAAAA,GAAoB,MAAOoG,EAAY,EACrCpG,EAAAA,EAAAA,GAAoB,SAAU,CAC5BgC,OAAO2H,EAAAA,EAAAA,IAAgB,CAAC,sEACTtJ,EAAQwP,UAAY,6CAA+C,sDAClF3M,KAAM,SACNnB,SAASsT,EAAAA,EAAAA,IAAemX,EAAsB,CAAC,OAAO,cACrD/mB,EAAAA,EAAAA,IAAiBpF,EAAQyP,YAAa,GAAIzJ,MAE9C,IACHwM,EAAAA,EAAAA,KAAgB7S,EAAAA,EAAAA,GAAoB,KAAM,CACxCotB,mBAAoBnsB,EAAO,KAAOA,EAAO,IAAKoU,EAAAA,EAAAA,KAAe,QAAU,CAAC,aACxErT,MAAO,2IACN,GACAd,EAAAA,EAAAA,KAAW,IAAOW,EAAAA,EAAAA,IAAoB0B,EAAAA,GAAW,MAAMqG,EAAAA,EAAAA,IAAY+hB,EAAoBtiB,OAAO,CAACgkB,EAAoBvjB,MAC1G5I,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,KAAM,CAC9CC,IAAK,GAAGurB,EAAmBzU,SAASyU,EAAmBlB,aACvDpqB,QAAUwf,GAAiBnS,EAAWtF,GACtCwjB,YAAc/L,GAAiB/O,EAAO1I,GACtCoa,QAAU3C,GAAiB/O,EAAO1I,GAClC9H,OAAO2H,EAAAA,EAAAA,IAAgB,CAAC,uCAAwC,CAAE,cAAeG,IAAUb,EAASI,UACnG,EACDrJ,EAAAA,EAAAA,GAAoB,MAAO,CACzBgC,MAAO,uCACPS,IAAK,oCAAoC4qB,EAAmBzU,SAASyU,EAAmBlB,iBACxFlhB,IAAK,IACJ,KAAM,EAAG1E,IACZf,EAAAA,EAAAA,KAAiBC,EAAAA,EAAAA,IAAiB4nB,EAAmBzU,QAAS,IAC9D5Y,EAAAA,EAAAA,GAAoB,OAAQwG,GAAYf,EAAAA,EAAAA,IAAiB4nB,EAAmBlB,YAAa,IACxF,GAAI7lB,MACL,OACH,KAAM,CACP,CAACwM,EAAAA,IAAQlR,EAAAA,EAAAA,IAAO6qB,QAItB,IClPA,MAAMnrB,EAAc,EAEpB,O,2FCFA,MAAMvB,EAAa,CAAC,WACdiG,EAAa,CAAC,WACdE,EAAa,CAAC,WACdC,EAAa,CAAC,QACdC,GAA0BpG,EAAAA,EAAAA,GAAoB,OAAQ,CAC1DuR,KAAM,eACNgc,SAAU,eACVpb,QAAS,uBACR,MAAO,GACJ9L,EAAa,CAAC,WACdC,EAAa,CAAC,WACdC,EAAa,CAAC,WACdC,GAA0BxG,EAAAA,EAAAA,GAAoB,OAAQ,CAC1DuR,KAAM,eACNgc,SAAU,eACVpb,QAAS,eACR,MAAO,GACJ1L,GAA2BzG,EAAAA,EAAAA,GAAoB,OAAQ,CAC3DuR,KAAM,kBACNgc,SAAU,kBACVpb,QAAS,aACR,MAAO,GACJzL,EAAc,CAAC,WACfC,EAAc,CAAC,WACfC,EAAc,CAAC,WACfC,EAAc,CAAC,WACfC,GAA2B9G,EAAAA,EAAAA,GAAoB,OAAQ,CAC3DuR,KAAM,eACNgc,SAAU,eACVpb,QAAS,eACR,MAAO,GACJpL,GAA2B/G,EAAAA,EAAAA,GAAoB,OAAQ,CAC3DuR,KAAM,UACNgc,SAAU,UACVpb,QAAS,WACR,MAAO,GACJnL,EAAc,CAAC,WACf4F,EAAc,CAAC,WACfC,EAAc,CAClB/K,IAAK,EACLyP,KAAM,UACNgc,SAAU,UACVpb,QAAS,WAIX,OAA4BjS,EAAAA,EAAAA,IAAiB,CAC3CC,OAAQ,WACRuE,MAAO,CACPU,MAAO,CACLlC,KAAM0B,OACNC,UAAU,GAEZ0K,YAAa,CACXrM,KAAM0B,OACNC,UAAU,GAEZ2K,IAAK,CACHtM,KAAM0B,OACNC,UAAU,GAEZmc,YAAa,CACX9d,KAAM0B,OACNG,QAAS,mDAEXkc,YAAa,CACX/d,KAAM0B,OACNG,QAAS,mDAEXyoB,QAAShvB,KACTivB,SAAUjvB,MAEV4B,MAAMC,GAIR,MAAO,CAACW,EAAUC,MACRC,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB0B,EAAAA,GAAW,KAAM,EACzDvD,EAAAA,EAAAA,GAAoB,QAAS,MAAMyF,EAAAA,EAAAA,IAAiBpF,EAAQ+E,OAAQ,IACpEpF,EAAAA,EAAAA,GAAoB,OAAQ,CAC1BuR,KAAM,cACNY,QAAS9R,EAAQkP,aAChB,KAAM,EAAGxP,IACZC,EAAAA,EAAAA,GAAoB,OAAQ,CAC1B0tB,SAAU,OACVvb,QAAS9R,EAAQ+E,OAChB,KAAM,EAAGY,IACZhG,EAAAA,EAAAA,GAAoB,OAAQ,CAC1B0tB,SAAU,cACVvb,QAAS9R,EAAQkP,aAChB,KAAM,EAAGrJ,IACZlG,EAAAA,EAAAA,GAAoB,OAAQ,CAC1B6K,IAAK,YACLD,KAAMvK,EAAQmP,KACb,KAAM,EAAGrJ,GACZC,GACApG,EAAAA,EAAAA,GAAoB,OAAQ,CAC1BuR,KAAM,gBACNgc,SAAU,gBACVpb,QAAS9R,EAAQ+E,OAChB,KAAM,EAAGiB,IACZrG,EAAAA,EAAAA,GAAoB,OAAQ,CAC1BuR,KAAM,sBACNgc,SAAU,sBACVpb,QAAS9R,EAAQkP,aAChB,KAAM,EAAGjJ,IACZtG,EAAAA,EAAAA,GAAoB,OAAQ,CAC1BuR,KAAM,oBACNgc,SAAU,oBACVpb,QAAS9R,EAAQ2gB,aAChB,KAAM,EAAGza,GACZC,EACAC,GACAzG,EAAAA,EAAAA,GAAoB,OAAQ,CAC1BuR,KAAM,WACNgc,SAAU,WACVpb,QAAS9R,EAAQ+E,OAChB,KAAM,EAAGsB,IACZ1G,EAAAA,EAAAA,GAAoB,OAAQ,CAC1BuR,KAAM,iBACNgc,SAAU,iBACVpb,QAAS9R,EAAQkP,aAChB,KAAM,EAAG5I,IACZ3G,EAAAA,EAAAA,GAAoB,OAAQ,CAC1BuR,KAAM,WACNgc,SAAU,WACVpb,QAAS9R,EAAQ4gB,aAChB,KAAM,EAAGra,IACZ5G,EAAAA,EAAAA,GAAoB,OAAQ,CAC1BuR,KAAM,SACNgc,SAAU,SACVpb,QAAS9R,EAAQmP,KAChB,KAAM,EAAG3I,GACZC,EACCzG,EAAQmtB,UACJtsB,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB0B,EAAAA,GAAW,CAAEzB,IAAK,GAAK,CACxDiF,GACA/G,EAAAA,EAAAA,GAAoB,OAAQ,CAC1BuR,KAAM,yBACNgc,SAAU,yBACVpb,QAAS9R,EAAQmtB,QAAQG,eACxB,KAAM,EAAG3mB,GACX3G,EAAQotB,WACJvsB,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,OAAQ,CACzCC,IAAK,EACLyP,KAAM,wBACNgc,SAAU,wBACVpb,QAAS9R,EAAQotB,SAASE,eACzB,KAAM,EAAG/gB,KACZ3K,EAAAA,EAAAA,IAAoB,IAAI,IAC3B,OACFf,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,OAAQgL,KAC9C,IAEL,IC1JA,MAAMvL,EAAc,EAEpB,O,2FCJKsJ,KAAK,eAAe5I,MAAM,uF,usDAC3BgE,G,kCADFnE,EAAAA,EAAAA,IAsBI,IAtBJ9B,EAsBI,E,eCtBN,MAAMoD,EAAS,CAAC,EAGV7B,GAA2B,OAAgB6B,EAAQ,CAAC,CAAC,SAASC,KAEpE,O,qGCHA,MAAMrD,EAAa,CAAEiC,MAAO,4CACtBgE,EAAa,CAAEhE,MAAO,4GACtBkE,EAAa,CACjBlE,MAAO,8CACP,cAAe,QAEXmE,EAAa,CACjBrE,IAAK,EACLE,MAAO,qDACP4D,MAAO,MACPC,OAAQ,MACRC,KAAM,OACNC,QAAS,eAELK,GAA0BpG,EAAAA,EAAAA,GAAoB,OAAQ,KAAM,EACnDA,EAAAA,EAAAA,GAAoB,UAAW,CAC1CC,GAAI,uCACJ2tB,EAAG,IACHC,EAAG,IACHjoB,MAAO,KACPC,OAAQ,KACRioB,aAAc,kBACb,EACY9tB,EAAAA,EAAAA,GAAoB,OAAQ,CACvC4tB,EAAG,IACHC,EAAG,IACHjoB,MAAO,IACPC,OAAQ,IACR7D,MAAO,gBACP8D,KAAM,qBAGR,GACEO,GAA0BrG,EAAAA,EAAAA,GAAoB,OAAQ,CAC1D4F,MAAO,MACPC,OAAQ,MACRC,KAAM,8CACL,MAAO,GACJQ,EAAa,CACjBF,EACAC,GAEIE,GAA0BuI,EAAAA,EAAAA,IAAmB,k5BAAm+B,GAChhCrI,EAAc,CAAEzE,MAAO,wCACvB0E,EAAc,CAAE1E,MAAO,2DACvB2E,EAAc,CAAE3E,MAAO,mCACvB4E,EAAc,CAAE5E,MAAO,mEACvB6E,EAAc,CAAE7E,MAAO,kCAO7B,OAA4B9B,EAAAA,EAAAA,IAAiB,CAC3CC,OAAQ,cACRuE,MAAO,CACPmb,kBAAmB,CACjB3c,KAAM4c,SACN/a,QAAU2K,GAA0B,YAAYA,kBAElDqQ,iBAAkB,CAChB7c,KAAM0B,OACNG,aAAS+D,IAGX1I,MAAMC,GAMR,MAAO,CAACW,EAAUC,MACRC,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB0B,EAAAA,GAAW,KAAM,EACzDC,EAAAA,EAAAA,IAAaiM,EAAAA,EAAiB,CAC5B,uBAAwBpP,EAAQwf,kBAChC,qBAAsBxf,EAAQ0f,kBAC7B,KAAM,EAAG,CAAC,uBAAwB,wBACrC/f,EAAAA,EAAAA,GAAoB,MAAOD,EAAY,EACrCC,EAAAA,EAAAA,GAAoB,MAAOgG,EAAY,EACrChG,EAAAA,EAAAA,GAAoB,MAAOkG,EAAY,CACnClF,EAAKuE,OAAO,gBAEVtD,EAAAA,EAAAA,IAAoB,IAAI,KADvBf,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,MAAOsE,EAAYG,IAE1DC,OAGJvG,EAAAA,EAAAA,GAAoB,MAAOyG,EAAa,EACtCzG,EAAAA,EAAAA,GAAoB,MAAO0G,EAAa,EACtC1G,EAAAA,EAAAA,GAAoB,QAAS2G,EAAa,EACxCrB,EAAAA,EAAAA,IAAYtE,EAAKuE,OAAQ,iBAE3BvF,EAAAA,EAAAA,GAAoB,OAAQ4G,EAAa,EACvCtB,EAAAA,EAAAA,IAAYtE,EAAKuE,OAAQ,cAE3BvF,EAAAA,EAAAA,GAAoB,QAAS6G,EAAa,EACxCvB,EAAAA,EAAAA,IAAYtE,EAAKuE,OAAQ,wBAKjC/B,EAAAA,EAAAA,IAAakN,EAAAA,IACZ,IAEL,ICxGA,MAAMpP,EAAc,EAEpB,O,oJCAA,MAAMvB,EAAa,CAAEiC,MAAO,iEACtBgE,EAAa,CAAEhE,MAAO,6EACtBkE,EAAa,CAAElE,MAAO,qDACtBmE,GAA0BnG,EAAAA,EAAAA,GAAoB,MAAO,CACzDyC,IAAK6K,EACLtL,MAAO,6BACPiJ,IAAK,gBACLrF,MAAO,MACPC,OAAQ,MACP,MAAO,GACJO,EAAa,CAAEpE,MAAO,8BACtBqE,EAAa,CAAErE,MAAO,0CACtBsE,GAA0BwI,EAAAA,EAAAA,IAAmB,slDAAqoD,GAClrDvI,EAAa,CAAEvE,MAAO,kCACtBwE,GAA0BxG,EAAAA,EAAAA,GAAoB,KAAM,CAAEgC,MAAO,qBAAuB,aAAc,GAClGyE,EAAc,CAAEzE,MAAO,0CACvB0E,EAAc,CAAE1E,MAAO,kCACvB2E,EAAc,CAAE3E,MAAO,qBACvB4E,EAAc,CAAE5E,MAAO,0CACvB6E,EAAc,CAAE7E,MAAO,kCACvB8E,EAAc,CAAE9E,MAAO,qBACvB+E,EAAc,CAAE/E,MAAO,0CACvBgF,GAA2BhH,EAAAA,EAAAA,GAAoB,KAAM,KAAM,EAClDA,EAAAA,EAAAA,GAAoB,IAAK,CACpCgC,MAAO,aACP4I,KAAM,6BACNC,IAAK,+BACL0K,OAAQ,UACP,YACD,GACE3I,GAA2B5M,EAAAA,EAAAA,GAAoB,KAAM,KAAM,EAClDA,EAAAA,EAAAA,GAAoB,OAAQ,CAAE,iBAAkB,QAC3D,GAMJ,OAA4BE,EAAAA,EAAAA,IAAiB,CAC3CC,OAAQ,kBACRC,MAAMC,GAER,MAAM0tB,GAAO7kB,EAAAA,EAAAA,KAAI,IAAI1K,MAAOL,eAI5B,OAFAP,EAAAA,EAAAA,MAEO,CAACoD,EAAUC,KAChB,MAAMkE,GAAyB7B,EAAAA,EAAAA,IAAkB,eAEjD,OAAQpC,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,SAAU9B,EAAY,EAC9DC,EAAAA,EAAAA,GAAoB,MAAOgG,EAAY,EACrChG,EAAAA,EAAAA,GAAoB,MAAOkG,EAAY,EACrC1C,EAAAA,EAAAA,IAAa2B,EAAwB,CAAE9D,GAAI,KAAO,CAChD0D,SAASM,EAAAA,EAAAA,KAAS,IAAM,CACtBc,KAEFT,EAAG,KAEL1F,EAAAA,EAAAA,GAAoB,OAAQoG,EAAY,EACtCpG,EAAAA,EAAAA,GAAoB,KAAMqG,EAAY,EACpCrG,EAAAA,EAAAA,GAAoB,KAAM,KAAM,MAAOyF,EAAAA,EAAAA,IAAiBsoB,EAAK1kB,OAAQ,GACrE/C,SAINtG,EAAAA,EAAAA,GAAoB,MAAOuG,EAAY,CACrCC,GACAxG,EAAAA,EAAAA,GAAoB,KAAMyG,EAAa,EACrCzG,EAAAA,EAAAA,GAAoB,KAAM,KAAM,EAC9BwD,EAAAA,EAAAA,IAAa2B,EAAwB,CACnCnD,MAAO,aACPX,GAAI,uBACH,CACD0D,SAASM,EAAAA,EAAAA,KAAS,IAAM,EACtBG,EAAAA,EAAAA,IAAiB,wBAEnBE,EAAG,OAGP1F,EAAAA,EAAAA,GAAoB,KAAM,KAAM,EAC9BwD,EAAAA,EAAAA,IAAa2B,EAAwB,CACnCnD,MAAO,aACPX,GAAI,iBACH,CACD0D,SAASM,EAAAA,EAAAA,KAAS,IAAM,EACtBG,EAAAA,EAAAA,IAAiB,kBAEnBE,EAAG,OAGP1F,EAAAA,EAAAA,GAAoB,KAAM,KAAM,EAC9BwD,EAAAA,EAAAA,IAAa2B,EAAwB,CACnCnD,MAAO,aACPX,GAAI,0BACH,CACD0D,SAASM,EAAAA,EAAAA,KAAS,IAAM,EACtBG,EAAAA,EAAAA,IAAiB,2BAEnBE,EAAG,OAGP1F,EAAAA,EAAAA,GAAoB,KAAM,KAAM,EAC9BwD,EAAAA,EAAAA,IAAa2B,EAAwB,CACnCnD,MAAO,aACPX,GAAI,kBACH,CACD0D,SAASM,EAAAA,EAAAA,KAAS,IAAM,EACtBG,EAAAA,EAAAA,IAAiB,mBAEnBE,EAAG,OAGP1F,EAAAA,EAAAA,GAAoB,KAAM,KAAM,EAC9BwD,EAAAA,EAAAA,IAAa2B,EAAwB,CACnCnD,MAAO,aACPX,GAAI,gBACH,CACD0D,SAASM,EAAAA,EAAAA,KAAS,IAAM,EACtBG,EAAAA,EAAAA,IAAiB,iBAEnBE,EAAG,WAKX1F,EAAAA,EAAAA,GAAoB,MAAO0G,EAAa,EACtC1G,EAAAA,EAAAA,GAAoB,KAAM2G,EAAa,EACrCnD,EAAAA,EAAAA,IAAa2B,EAAwB,CAAE9D,GAAI,cAAgB,CACzD0D,SAASM,EAAAA,EAAAA,KAAS,IAAM,EACtBG,EAAAA,EAAAA,IAAiB,sBAEnBE,EAAG,OAGP1F,EAAAA,EAAAA,GAAoB,KAAM4G,EAAa,EACrC5G,EAAAA,EAAAA,GAAoB,KAAM,KAAM,EAC9BwD,EAAAA,EAAAA,IAAa2B,EAAwB,CACnCnD,MAAO,aACPX,GAAI,+BACH,CACD0D,SAASM,EAAAA,EAAAA,KAAS,IAAM,EACtBG,EAAAA,EAAAA,IAAiB,uBAEnBE,EAAG,OAGP1F,EAAAA,EAAAA,GAAoB,KAAM,KAAM,EAC9BwD,EAAAA,EAAAA,IAAa2B,EAAwB,CACnCnD,MAAO,aACPX,GAAI,aACH,CACD0D,SAASM,EAAAA,EAAAA,KAAS,IAAM,EACtBG,EAAAA,EAAAA,IAAiB,wBAEnBE,EAAG,WAKX1F,EAAAA,EAAAA,GAAoB,MAAO6G,EAAa,EACtC7G,EAAAA,EAAAA,GAAoB,KAAM8G,EAAa,EACrCtD,EAAAA,EAAAA,IAAa2B,EAAwB,CAAE9D,GAAI,WAAa,CACtD0D,SAASM,EAAAA,EAAAA,KAAS,IAAM,EACtBG,EAAAA,EAAAA,IAAiB,YAEnBE,EAAG,OAGP1F,EAAAA,EAAAA,GAAoB,KAAM+G,EAAa,EACrC/G,EAAAA,EAAAA,GAAoB,KAAM,KAAM,EAC9BwD,EAAAA,EAAAA,IAAa2B,EAAwB,CACnCnD,MAAO,aACPX,GAAI,gBACH,CACD0D,SAASM,EAAAA,EAAAA,KAAS,IAAM,EACtBG,EAAAA,EAAAA,IAAiB,cAEnBE,EAAG,OAGP1F,EAAAA,EAAAA,GAAoB,KAAM,KAAM,EAC9BwD,EAAAA,EAAAA,IAAa2B,EAAwB,CACnCnD,MAAO,aACPX,GAAI,aACH,CACD0D,SAASM,EAAAA,EAAAA,KAAS,IAAM,EACtBG,EAAAA,EAAAA,IAAiB,gBAEnBE,EAAG,OAGP1F,EAAAA,EAAAA,GAAoB,KAAM,KAAM,EAC9BwD,EAAAA,EAAAA,IAAa2B,EAAwB,CACnCnD,MAAO,aACPX,GAAI,oBACH,CACD0D,SAASM,EAAAA,EAAAA,KAAS,IAAM,EACtBG,EAAAA,EAAAA,IAAiB,qBAEnBE,EAAG,OAGP1F,EAAAA,EAAAA,GAAoB,KAAM,KAAM,EAC9BwD,EAAAA,EAAAA,IAAa2B,EAAwB,CACnCnD,MAAO,aACPX,GAAI,0BACH,CACD0D,SAASM,EAAAA,EAAAA,KAAS,IAAM,EACtBG,EAAAA,EAAAA,IAAiB,2BAEnBE,EAAG,MAGPsB,EACA4F,SAIN,CAEJ,IC9NA,MAAMtL,EAAc,EAEpB,O,iLCAA,MAAMvB,EAAa,CACjB+B,IAAK,EACLE,MAAO,4DAEHgE,GAA0BhG,EAAAA,EAAAA,GAAoB,OAAQ,CAAEgC,MAAO,2CAA6C,EACnGhC,EAAAA,EAAAA,GAAoB,IAAK,CACpCgC,MAAO,kBACP4I,KAAM,gBACL,qDACD,GACE1E,EAAa,CAAElE,MAAO,6HACtBmE,GAA0BnG,EAAAA,EAAAA,GAAoB,MAAO,CACzDyC,IAAK6K,EACLrC,IAAK,gBACLrF,MAAO,MACPC,OAAQ,KACR7D,MAAO,UACN,MAAO,GACJoE,EAAa,CACjBpE,MAAO,uCACP2K,aAAc,OAEVtG,EAAa,CAAErE,MAAO,qEACtBsE,GAA0BtG,EAAAA,EAAAA,GAAoB,IAAK,CACvD4K,KAAM,+BACNC,IAAK,WACL7I,MAAO,iBACN,EACYhC,EAAAA,EAAAA,GAAoB,OAAQ,CAAEgC,MAAO,oBAAsB,eAC3DwD,EAAAA,EAAAA,IAAiB,WAC5B,GAUJ,OAA4BtF,EAAAA,EAAAA,IAAiB,CAC3CC,OAAQ,kBACRuE,MAAO,CACPC,OAAQ,CACNzB,KAAM0B,OACNG,aAAS+D,GAEX+W,kBAAmB,CACjB3c,KAAM4c,SACN/a,aAAS+D,GAEXiX,iBAAkB,CAChB7c,KAAM0B,OACNG,aAAS+D,GAEX0iB,oBAAqB,CACnBtoB,KAAM8F,QACNjE,SAAS,IAGX3E,MAAMC,GAER,MAAMqE,EAAQrE,EAIR6O,GAASC,EAAAA,EAAAA,MAET5N,GAAQC,EAAAA,EAAAA,MACR+G,EAAe,IAAMhH,EAAMG,OAAO,gBAClCyG,GAAaxG,EAAAA,EAAAA,KAAS,IAAMJ,EAAMyG,MAAMG,aAE9C,SAASiH,EAAWiO,GACd3Y,EAAMmb,kBACR3Q,EAAOG,KAAK3K,EAAMmb,kBAAkBxC,IAGpCnO,EAAOG,KAAK,aAAYhQ,EAAAA,EAAAA,IAAoBge,kBAEhD,CAEA,MAAO,CAACrc,EAAUC,KAChB,MAAMkE,GAAyB7B,EAAAA,EAAAA,IAAkB,eAEjD,OAAQpC,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB0B,EAAAA,GAAW,KAAM,EACxD3B,EAAAA,EAAAA,IAAOuG,KACHjH,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,MAAO9B,EAAY,CACpDiG,GACAhG,EAAAA,EAAAA,GAAoB,OAAQ,CAC1BgC,MAAO,sCACPD,QAASwG,GACR,EACD/E,EAAAA,EAAAA,KAAa5B,EAAAA,EAAAA,IAAOosB,GAAY,CAAEhsB,MAAO,kBAG7CC,EAAAA,EAAAA,IAAoB,IAAI,IAC5BjC,EAAAA,EAAAA,GAAoB,MAAOkG,EAAY,EACrC1C,EAAAA,EAAAA,IAAa2B,EAAwB,CACnC9D,GAAI,IACJW,MAAO,8CACN,CACD+C,SAASM,EAAAA,EAAAA,KAAS,IAAM,CACtBc,KAEFT,EAAG,KAEL1F,EAAAA,EAAAA,GAAoB,OAAQoG,EAAY,EACtC5C,EAAAA,EAAAA,IAAamM,EAAAA,EAAc,CACzByP,QAAS/e,EAAQsE,OACjBoL,YAAaX,EACb,cAAe/O,EAAQ0f,iBACvB,uBAAwB1f,EAAQmrB,qBAC/B,KAAM,EAAG,CAAC,UAAW,cAAe,4BAEzCxrB,EAAAA,EAAAA,GAAoB,MAAOqG,EAAY,EACrC7C,EAAAA,EAAAA,IAAa2B,EAAwB,CACnC9D,GAAI,aACJW,MAAO,iBACN,CACD+C,SAASM,EAAAA,EAAAA,KAAS,IAAM,EACtBG,EAAAA,EAAAA,IAAiB,eAEnBE,EAAG,KAELlC,EAAAA,EAAAA,IAAa2B,EAAwB,CACnC9D,GAAI,YACJW,MAAO,kCACN,CACD+C,SAASM,EAAAA,EAAAA,KAAS,IAAM,EACtBG,EAAAA,EAAAA,IAAiB,wBAEnBE,EAAG,IAELY,OAGH,GAAG,CAER,IC5IA,MAAMhF,EAAc,EAEpB,O,oICFA,MAAMvB,EAAa,CAAEiC,MAAO,QACtBgE,EAAa,CAAEhE,MAAO,iBACtBkE,EAAa,CAAElE,MAAO,QAQ5B,OAA4B9B,EAAAA,EAAAA,IAAiB,CAC3CC,OAAQ,iBACRuE,MAAO,CACPxB,KAAM,CACJA,KAAM0B,OACNG,QAAS,WAEXkpB,UAAW,CACT/qB,KAAM8F,QACNjE,SAAS,IAGX3E,MAAMC,GAIR,MAAO,CAACW,EAAUC,MACRC,EAAAA,EAAAA,OAAcW,EAAAA,EAAAA,IAAoB,MAAO,CAC/CG,OAAO2H,EAAAA,EAAAA,IAAgB,CAAC,iBACZtJ,EAAQ4tB,UAAY,SAAW,GACd,YAAjB5tB,EAAQ6C,KAAqB,+EAAiF,GAC7F,SAAjB7C,EAAQ6C,KAAkB,2EAA6E,GACtF,YAAjB7C,EAAQ6C,MAAuC,WAAjB7C,EAAQ6C,KAAoB,mFAAqF,MAC1J,EACDlD,EAAAA,EAAAA,GAAoB,MAAOD,EAAY,EACrCC,EAAAA,EAAAA,GAAoB,MAAOgG,EAAY,CACnB,YAAjB3F,EAAQ6C,OACJhC,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,KAAaS,EAAAA,EAAAA,IAAOwlB,GAAkB,CACnDtlB,IAAK,EACLE,MAAO,yBACP,cAAe,UAEC,SAAjB3B,EAAQ6C,OACNhC,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,KAAaS,EAAAA,EAAAA,IAAOssB,GAAwB,CACzDpsB,IAAK,EACLE,MAAO,wBACP,cAAe,UAEC,YAAjB3B,EAAQ6C,MAAuC,WAAjB7C,EAAQ6C,OACpChC,EAAAA,EAAAA,OAAcC,EAAAA,EAAAA,KAAaS,EAAAA,EAAAA,IAAOusB,GAA0B,CAC3DrsB,IAAK,EACLE,MAAO,0BACP,cAAe,WAEjBC,EAAAA,EAAAA,IAAoB,IAAI,MAElCjC,EAAAA,EAAAA,GAAoB,MAAOkG,EAAY,EACrClG,EAAAA,EAAAA,GAAoB,IAAK,CACvBgC,OAAO2H,EAAAA,EAAAA,IAAgB,CAAkB,YAAjBtJ,EAAQ6C,KAAqB,iBAAmB,GAC7C,SAAjB7C,EAAQ6C,KAAkB,gBAAkB,GAC3B,YAAjB7C,EAAQ6C,MAAuC,WAAjB7C,EAAQ6C,KAAoB,kBAAoB,MACvF,EACDoC,EAAAA,EAAAA,IAAYtE,EAAKuE,OAAQ,YACxB,QAGN,GAEL,ICpEA,MAAMjE,EAAc,EAEpB,O,qBCFA8sB,EAAQ,EAAc,CACpB,CACElqB,MAAO,IACPC,MAAO,IACPmM,IAAK,IACLf,YAAa,eACbrK,OAAQ,iBACRqL,gBAAgB,EAChBF,aAAc,gCACdJ,eAAgB,CAAC,aAAc,gBAEjC,CACE/L,MAAO,OACPC,MAAO,OACPmM,IAAK,OACLf,YAAa,eACbrK,OAAQ,iBACRqL,gBAAgB,EAChBF,aAAc,mCACdJ,eAAgB,CAAC,eAAgB,gBAEnC,CACE/L,MAAO,QACPC,MAAO,QACPmM,IAAK,QACLf,YAAa,wBACbrK,OAAQ,yBACRqL,gBAAgB,EAChBF,kBAAcvH,EACdmH,eAAgB,CAAC,gBAAiB,kBAEpC,CACE/L,MAAO,MACPC,MAAO,MACPmM,IAAK,MACLf,YAAa,sBACbrK,OAAQ,uBACRqL,gBAAgB,EAChBF,kBAAcvH,EACdmH,eAAgB,CAAC,cAAe,cAElC,CACE/L,MAAO,OACPC,MAAO,OACPmM,IAAK,OACLf,YAAa,8BACbrK,OAAQ,sCACRqL,gBAAgB,EAChBF,kBAAcvH,EACdmH,eAAgB,CAAC,eAAgB,cAEnC,CACE/L,MAAO,MACPC,MAAO,MACPmM,IAAK,MACLf,YAAa,wCACbrK,OAAQ,yCACRqL,gBAAgB,EAChBF,kBAAcvH,EACdmH,eAAgB,CAAC,YAAa,iBAEhC,CACE/L,MAAO,UACPC,MAAO,UACPmM,IAAK,UACLf,YAAa,yBACbrK,OAAQ,mCACRqL,gBAAgB,EAChBF,kBAAcvH,EACdmH,eAAgB,CAAC,SAAU,eAE7B,CACE/L,MAAO,MACPC,MAAO,MACPmM,IAAK,MACLf,YAAa,mBACbrK,OAAQ,6BACRqL,gBAAgB,EAChBF,kBAAcvH,EACdmH,eAAgB,CAAC,WAAY,kBAE/B,CACE/L,MAAO,OACPC,MAAO,OACPmM,IAAK,OACLf,YAAa,4BACbrK,OAAQ,6BACRqL,gBAAgB,EAChBF,kBAAcvH,EACdmH,eAAgB,CAAC,cAAe,aAElC,CACE/L,MAAO,QACPC,MAAO,QACPmM,IAAK,QACLf,YAAa,iBACbrK,OAAQ,kBACRqL,gBAAgB,EAChBF,aAAc,oCACdJ,eAAgB,CAAC,iBAAkB,mBAErC,CACE/L,MAAO,QACPC,MAAO,QACPmM,IAAK,QACLf,YAAa,kCACbrK,OAAQ,0CACRqL,gBAAgB,EAChBF,kBAAcvH,EACdmH,eAAgB,CAAC,gBAAiB,iBAEpC,CACE/L,MAAO,QACPC,MAAO,QACPmM,IAAK,QACLf,YAAa,kBACbrK,OAAQ,mBACRqL,gBAAgB,EAChBF,kBAAcvH,EACdmH,eAAgB,CAAC,YAAa,cAEhC,CACE/L,MAAO,MACPC,MAAO,MACPmM,IAAK,MACLf,YAAa,8BACbrK,OAAQ,+BACRqL,gBAAgB,EAChBF,kBAAcvH,EACdmH,eAAgB,CAAC,aAAc,wBAEjC,CACE/L,MAAO,QACPC,MAAO,QACPmM,IAAK,QACLf,YAAa,kBACbrK,OAAQ,mBACRqL,gBAAgB,EAChBF,kBAAcvH,EACdmH,eAAgB,CAAC,YAAa,kBAEhC,CACE/L,MAAO,SACPC,MAAO,SACPmM,IAAK,SACLf,YAAa,+BACbrK,OAAQ,gCACRqL,gBAAgB,EAChBF,kBAAcvH,EACdmH,eAAgB,CAAC,gBAAiB,YAEpC,CACE/L,MAAO,KACPC,MAAO,KACPmM,IAAK,KACLf,YAAa,oBACbrK,OAAQ,qBACRqL,gBAAgB,EAChBF,kBAAcvH,EACdmH,eAAgB,CAAC,aAAc,cAEjC,CACE/L,MAAO,QACPC,MAAO,QACPmM,IAAK,QACLf,YAAa,uBACbrK,OAAQ,yBACRqL,gBAAgB,EAChBF,kBAAcvH,EACdmH,eAAgB,CAAC,SAAU,aAE7B,CACE/L,MAAO,QACPC,MAAO,QACPmM,IAAK,QACLf,YAAa,uBACbrK,OAAQ,yBACRqL,gBAAgB,EAChBF,kBAAcvH,EACdmH,eAAgB,CAAC,eAAgB,gBAEnC,CACE/L,MAAO,QACPC,MAAO,QACPmM,IAAK,QACLf,YAAa,mBACbrK,OAAQ,mBACRqL,gBAAgB,EAChBF,kBAAcvH,EACdmH,eAAgB,CAAC,cAAe,YAElC,CACE/L,MAAO,MACPC,MAAO,MACPmM,IAAK,MACLf,YAAa,+BACbrK,OAAQ,gCACRqL,gBAAgB,EAChBF,kBAAcvH,EACdmH,eAAgB,CAAC,aAAc,cAEjC,CACE/L,MAAO,QACPC,MAAO,QACPmM,IAAK,QACLf,YAAa,gBACbrK,OAAQ,iBACRqL,gBAAgB,EAChBF,kBAAcvH,EACdmH,eAAgB,CAAC,aAAc,mBAEjC,CACE/L,MAAO,WACPC,MAAO,WACPmM,IAAK,WACLf,YAAa,8BACbrK,OAAQ,+BACRqL,gBAAgB,EAChBF,kBAAcvH,EACdmH,eAAgB,CAAC,UAAW,gBAE9B,CACE/L,MAAO,OACPC,MAAO,OACPmM,IAAK,OACLf,YAAa,4BACbrK,OAAQ,6BACRqL,gBAAgB,EAChBF,kBAAcvH,EACdmH,eAAgB,CAAC,WAAY,eAE/B,CACE/L,MAAO,MACPC,MAAO,MACPmM,IAAK,MACLf,YAAa,qDACbrK,OAAQ,gCACRqL,gBAAgB,EAChBF,kBAAcvH,EACdmH,eAAgB,CAAC,SAAU,YAE7B,CACE/L,MAAO,KACPC,MAAO,KACPmM,IAAK,KACLf,YAAa,eACbrK,OAAQ,gBACRqL,gBAAgB,EAChBF,kBAAcvH,EACdmH,eAAgB,CAAC,YAAa,gBAEhC,CACE/L,MAAO,MACPC,MAAO,MACPmM,IAAK,MACLf,YAAa,wBACbrK,OAAQ,yBACRqL,gBAAgB,EAChBF,kBAAcvH,EACdmH,eAAgB,CAAC,cAAe,cAElC,CACE/L,MAAO,KACPC,MAAO,KACPmM,IAAK,KACLf,YAAa,gBACbrK,OAAQ,eACRqL,gBAAgB,EAChBF,aAAc,iCACdJ,eAAgB,CAAC,cAAe,cAElC,CACE/L,MAAO,QACPC,MAAO,QACPmM,IAAK,QACLf,YAAa,2BACbrK,OAAQ,4BACRqL,gBAAgB,EAChBF,kBAAcvH,EACdmH,eAAgB,CAAC,aAAc,4BAEjC,CACE/L,MAAO,KACPC,MAAO,KACPmM,IAAK,KACLf,YAAa,cACbrK,OAAQ,eACRqL,gBAAgB,EAChBF,aAAc,iCACdJ,eAAgB,CAAC,oBAAqB,aAExC,CACE/L,MAAO,QACPC,MAAO,QACPmM,IAAK,QACLf,YAAa,0BACbrK,OAAQ,kCACRqL,gBAAgB,EAChBF,kBAAcvH,EACdmH,eAAgB,CAAC,aAAc,kBAEjC,CACE/L,MAAO,aACPC,MAAO,aACPmM,IAAK,aACLf,YAAa,sBACbrK,OAAQ,uBACRqL,gBAAgB,EAChBF,kBAAcvH,EACdmH,eAAgB,CAAC,YAAa,iBAEhC,CACE/L,MAAO,OACPC,MAAO,OACPmM,IAAK,OACLf,YAAa,mCACbrK,OAAQ,sBACRqL,gBAAgB,EAChBF,kBAAcvH,EACdmH,eAAgB,CAAC,UAAW,cAE9B,CACE/L,MAAO,MACPC,MAAO,MACPmM,IAAK,MACLf,YAAa,iCACbrK,OAAQ,cACRqL,gBAAgB,EAChBF,kBAAcvH,EACdmH,eAAgB,CAAC,cAAe,gBAElC,CACE/L,MAAO,aACPC,MAAO,aACPmM,IAAK,aACLf,YAAa,yBACbrK,OAAQ,sBACRqL,gBAAgB,EAChBF,kBAAcvH,EACdmH,eAAgB,CAAC,iBAAkB,mBAErC,CACE/L,MAAO,MACPC,MAAO,MACPmM,IAAK,MACLf,YAAa,cACbrK,OAAQ,eACRqL,gBAAgB,EAChBF,kBAAcvH,EACdmH,eAAgB,CAAC,WAAY,eAE/B,CACE/L,MAAO,MACPC,MAAO,MACPmM,IAAK,MACLf,YAAa,yBACbrK,OAAQ,0BACRqL,gBAAgB,EAChBF,aAAc,kCACdJ,eAAgB,CAAC,UAAW,oBAE9B,CACE/L,MAAO,KACPC,MAAO,KACPmM,IAAK,KACLf,YAAa,qBACbrK,OAAQ,qBACRqL,gBAAgB,EAChBF,kBAAcvH,EACdmH,eAAgB,CAAC,YAAa,eAEhC,CACE/L,MAAO,QACPC,MAAO,QACPmM,IAAK,QACLf,YAAa,uCACbrK,OAAQ,oCACRqL,gBAAgB,EAChBF,kBAAcvH,EACdmH,eAAgB,CAAC,iBAAkB,gBAErC,CACE/L,MAAO,MACPC,MAAO,MACPmM,IAAK,MACLf,YAAa,4DACbrK,OAAQ,oCACRqL,gBAAgB,EAChBF,kBAAcvH,EACdmH,eAAgB,CAAC,UAAW,oBAE9B,CACE/L,MAAO,SACPC,MAAO,SACPmM,IAAK,SACLf,YAAa,qBACbrK,OAAQ,sBACRqL,gBAAgB,EAChBF,kBAAcvH,EACdmH,eAAgB,CAAC,aAAc,cAEjC,CACE/L,MAAO,MACPC,MAAO,MACPmM,IAAK,MACLf,YAAa,qBACbrK,OAAQ,6BACRqL,gBAAgB,EAChBF,aAAc,kCACdJ,eAAgB,CAAC,aAAc,WAEjC,CACE/L,MAAO,MACPC,MAAO,MACPmM,IAAK,MACLf,YAAa,0BACbrK,OAAQ,cACRqL,gBAAgB,EAChBF,kBAAcvH,EACdmH,eAAgB,CAAC,YAAa,aAEhC,CACE/L,MAAO,QACPC,MAAO,QACPmM,IAAK,QACLf,YAAa,iCACbrK,OAAQ,8BACRqL,gBAAgB,EAChBF,kBAAcvH,EACdmH,eAAgB,CAAC,YAAa,aAEhC,CACE/L,MAAO,OACPC,MAAO,OACPmM,IAAK,OACLf,YAAa,kBACbrK,OAAQ,mBACRqL,gBAAgB,EAChBF,kBAAcvH,EACdmH,eAAgB,CAAC,aAAc,cAEjC,CACE/L,MAAO,MACPC,MAAO,MACPmM,IAAK,MACLf,YAAa,kBACbrK,OAAQ,mBACRqL,gBAAgB,EAChBF,aAAc,kCACdJ,eAAgB,CAAC,iBAAkB,oBAErC,CACE/L,MAAO,KACPC,MAAO,KACPmM,IAAK,KACLf,YAAa,6BACbrK,OAAQ,2BACRqL,gBAAgB,EAChBF,kBAAcvH,EACdmH,eAAgB,CAAC,eAAgB,aAEnC,CACE/L,MAAO,OACPC,MAAO,OACPmM,IAAK,OACLf,YAAa,kBACbrK,OAAQ,mBACRqL,gBAAgB,EAChBF,kBAAcvH,EACdmH,eAAgB,CAAC,oBAAqB,iBAExC,CACE/L,MAAO,OACPC,MAAO,OACPmM,IAAK,OACLf,YAAa,kCACbrK,OAAQ,+BACRqL,gBAAgB,EAChBF,kBAAcvH,EACdmH,eAAgB,CAAC,cAAe,wBAElC,CACE/L,MAAO,OACPC,MAAO,OACPmM,IAAK,OACLf,YAAa,wBACbrK,OAAQ,wBACRqL,gBAAgB,EAChBF,kBAAcvH,EACdmH,eAAgB,CAAC,cAAe,mBAElC,CACE/L,MAAO,MACPC,MAAO,MACPmM,IAAK,MACLf,YAAa,sBACbrK,OAAQ,eACRqL,gBAAgB,EAChBF,aAAc,kCACdJ,eAAgB,CAAC,mBAAoB,gBAEvC,CACE/L,MAAO,MACPC,MAAO,MACPmM,IAAK,MACLf,YAAa,8BACbrK,OAAQ,+BACRqL,gBAAgB,EAChBF,kBAAcvH,EACdmH,eAAgB,CAAC,aAAc,eAEjC,CACE/L,MAAO,SACPC,MAAO,SACPmM,IAAK,SACLf,YAAa,+BACbrK,OAAQ,2BACRqL,gBAAgB,EAChBF,kBAAcvH,EACdmH,eAAgB,CAAC,cAAe,gB,GCzgBhCoe,EAA2B,CAAC,EAGhC,SAASC,EAAoBC,GAE5B,IAAIC,EAAeH,EAAyBE,GAC5C,QAAqBzlB,IAAjB0lB,EACH,OAAOA,EAAaJ,QAGrB,IAAIK,EAASJ,EAAyBE,GAAY,CAGjDH,QAAS,CAAC,GAOX,OAHAM,EAAoBH,GAAUE,EAAQA,EAAOL,QAASE,GAG/CG,EAAOL,OACf,CAGAE,EAAoBnb,EAAIub,E,WCzBxB,IAAIC,EAAW,GACfL,EAAoBM,EAAI,SAAS1C,EAAQ2C,EAAUC,EAAI5U,GACtD,IAAG2U,EAAH,CAMA,IAAIE,EAAeC,IACnB,IAAS5sB,EAAI,EAAGA,EAAIusB,EAASxlB,OAAQ/G,IAAK,CACrCysB,EAAWF,EAASvsB,GAAG,GACvB0sB,EAAKH,EAASvsB,GAAG,GACjB8X,EAAWyU,EAASvsB,GAAG,GAE3B,IAJA,IAGI6sB,GAAY,EACPC,EAAI,EAAGA,EAAIL,EAAS1lB,OAAQ+lB,MACpB,EAAXhV,GAAsB6U,GAAgB7U,IAAalQ,OAAOmlB,KAAKb,EAAoBM,GAAGhK,OAAM,SAAS9iB,GAAO,OAAOwsB,EAAoBM,EAAE9sB,GAAK+sB,EAASK,GAAK,IAChKL,EAAS9J,OAAOmK,IAAK,IAErBD,GAAY,EACT/U,EAAW6U,IAAcA,EAAe7U,IAG7C,GAAG+U,EAAW,CACbN,EAAS5J,OAAO3iB,IAAK,GACrB,IAAIoC,EAAIsqB,SACEhmB,IAANtE,IAAiB0nB,EAAS1nB,EAC/B,CACD,CACA,OAAO0nB,CArBP,CAJChS,EAAWA,GAAY,EACvB,IAAI,IAAI9X,EAAIusB,EAASxlB,OAAQ/G,EAAI,GAAKusB,EAASvsB,EAAI,GAAG,GAAK8X,EAAU9X,IAAKusB,EAASvsB,GAAKusB,EAASvsB,EAAI,GACrGusB,EAASvsB,GAAK,CAACysB,EAAUC,EAAI5U,EAwB/B,C,eC5BAoU,EAAoB7P,EAAI,SAASgQ,GAChC,IAAIW,EAASX,GAAUA,EAAOY,WAC7B,WAAa,OAAOZ,EAAO,UAAY,EACvC,WAAa,OAAOA,CAAQ,EAE7B,OADAH,EAAoBroB,EAAEmpB,EAAQ,CAAExV,EAAGwV,IAC5BA,CACR,C,eCNAd,EAAoBroB,EAAI,SAASmoB,EAASkB,GACzC,IAAI,IAAIxtB,KAAOwtB,EACXhB,EAAoBiB,EAAED,EAAYxtB,KAASwsB,EAAoBiB,EAAEnB,EAAStsB,IAC5EkI,OAAOwlB,eAAepB,EAAStsB,EAAK,CAAE2tB,YAAY,EAAMvO,IAAKoO,EAAWxtB,IAG3E,C,eCPAwsB,EAAoBoB,EAAI,CAAC,EAGzBpB,EAAoBhZ,EAAI,SAASqa,GAChC,OAAOC,QAAQ/e,IAAI7G,OAAOmlB,KAAKb,EAAoBoB,GAAGG,QAAO,SAASC,EAAUhuB,GAE/E,OADAwsB,EAAoBoB,EAAE5tB,GAAK6tB,EAASG,GAC7BA,CACR,GAAG,IACJ,C,eCPAxB,EAAoBvD,EAAI,SAAS4E,GAEhC,MAAO,wBACR,C,eCHArB,EAAoByB,SAAW,SAASJ,GAGxC,C,eCJArB,EAAoB0B,EAAI,WACvB,GAA0B,kBAAfC,WAAyB,OAAOA,WAC3C,IACC,OAAOC,MAAQ,IAAIpQ,SAAS,cAAb,EAGhB,CAFE,MAAOxK,GACR,GAAsB,kBAAX5X,OAAqB,OAAOA,MACxC,CACA,CAPuB,E,eCAxB4wB,EAAoBiB,EAAI,SAASY,EAAKC,GAAQ,OAAOpmB,OAAOqmB,UAAUC,eAAeC,KAAKJ,EAAKC,EAAO,C,eCAtG,IAAII,EAAa,CAAC,EACdC,EAAoB,YAExBnC,EAAoB1X,EAAI,SAASpH,EAAKkhB,EAAM5uB,EAAK6tB,GAChD,GAAGa,EAAWhhB,GAAQghB,EAAWhhB,GAAKH,KAAKqhB,OAA3C,CACA,IAAIvtB,EAAQwtB,EACZ,QAAW7nB,IAARhH,EAEF,IADA,IAAI8uB,EAAUne,SAASoe,qBAAqB,UACpCzuB,EAAI,EAAGA,EAAIwuB,EAAQznB,OAAQ/G,IAAK,CACvC,IAAIsI,EAAIkmB,EAAQxuB,GAChB,GAAGsI,EAAEomB,aAAa,QAAUthB,GAAO9E,EAAEomB,aAAa,iBAAmBL,EAAoB3uB,EAAK,CAAEqB,EAASuH,EAAG,KAAO,CACpH,CAEGvH,IACHwtB,GAAa,EACbxtB,EAASsP,SAASse,cAAc,UAEhC5tB,EAAO6tB,QAAU,QACjB7tB,EAAO8tB,QAAU,IACb3C,EAAoB4C,IACvB/tB,EAAOoP,aAAa,QAAS+b,EAAoB4C,IAElD/tB,EAAOoP,aAAa,eAAgBke,EAAoB3uB,GACxDqB,EAAOV,IAAM+M,GAEdghB,EAAWhhB,GAAO,CAACkhB,GACnB,IAAIS,EAAmB,SAASC,EAAMvI,GAErC1lB,EAAOb,QAAUa,EAAOX,OAAS,KACjCklB,aAAauJ,GACb,IAAII,EAAUb,EAAWhhB,GAIzB,UAHOghB,EAAWhhB,GAClBrM,EAAOmuB,YAAcnuB,EAAOmuB,WAAWC,YAAYpuB,GACnDkuB,GAAWA,EAAQ3X,SAAQ,SAASoV,GAAM,OAAOA,EAAGjG,EAAQ,IACzDuI,EAAM,OAAOA,EAAKvI,EACtB,EAEIoI,EAAU1uB,WAAW4uB,EAAiBK,KAAK,UAAM1oB,EAAW,CAAE5F,KAAM,UAAWqS,OAAQpS,IAAW,MACtGA,EAAOb,QAAU6uB,EAAiBK,KAAK,KAAMruB,EAAOb,SACpDa,EAAOX,OAAS2uB,EAAiBK,KAAK,KAAMruB,EAAOX,QACnDmuB,GAAcle,SAASgf,KAAKC,YAAYvuB,EApCkB,CAqC3D,C,eCxCAmrB,EAAoB9pB,EAAI,SAAS4pB,GACX,qBAAXuD,QAA0BA,OAAOC,aAC1C5nB,OAAOwlB,eAAepB,EAASuD,OAAOC,YAAa,CAAEvoB,MAAO,WAE7DW,OAAOwlB,eAAepB,EAAS,aAAc,CAAE/kB,OAAO,GACvD,C,eCNAilB,EAAoBuD,EAAI,G,eCKxB,IAAIC,EAAkB,CACrB,IAAK,GAGNxD,EAAoBoB,EAAER,EAAI,SAASS,EAASG,GAE1C,IAAIiC,EAAqBzD,EAAoBiB,EAAEuC,EAAiBnC,GAAWmC,EAAgBnC,QAAW7mB,EACtG,GAA0B,IAAvBipB,EAGF,GAAGA,EACFjC,EAASzgB,KAAK0iB,EAAmB,QAC3B,CAGL,IAAIC,EAAU,IAAIpC,SAAQ,SAASqC,EAASC,GAAUH,EAAqBD,EAAgBnC,GAAW,CAACsC,EAASC,EAAS,IACzHpC,EAASzgB,KAAK0iB,EAAmB,GAAKC,GAGtC,IAAIxiB,EAAM8e,EAAoBuD,EAAIvD,EAAoBvD,EAAE4E,GAEpDzT,EAAQ,IAAIiW,MACZC,EAAe,SAASvJ,GAC3B,GAAGyF,EAAoBiB,EAAEuC,EAAiBnC,KACzCoC,EAAqBD,EAAgBnC,GACX,IAAvBoC,IAA0BD,EAAgBnC,QAAW7mB,GACrDipB,GAAoB,CACtB,IAAIM,EAAYxJ,IAAyB,SAAfA,EAAM3lB,KAAkB,UAAY2lB,EAAM3lB,MAChEovB,EAAUzJ,GAASA,EAAMtT,QAAUsT,EAAMtT,OAAO9S,IACpDyZ,EAAMgH,QAAU,iBAAmByM,EAAU,cAAgB0C,EAAY,KAAOC,EAAU,IAC1FpW,EAAM3K,KAAO,iBACb2K,EAAMhZ,KAAOmvB,EACbnW,EAAMqW,QAAUD,EAChBP,EAAmB,GAAG7V,EACvB,CAEF,EACAoS,EAAoB1X,EAAEpH,EAAK4iB,EAAc,SAAWzC,EAASA,EAE/D,CAEH,EAUArB,EAAoBM,EAAEM,EAAI,SAASS,GAAW,OAAoC,IAA7BmC,EAAgBnC,EAAgB,EAGrF,IAAI6C,EAAuB,SAASC,EAA4B3U,GAC/D,IAKIyQ,EAAUoB,EALVd,EAAW/Q,EAAK,GAChB4U,EAAc5U,EAAK,GACnB6U,EAAU7U,EAAK,GAGI1b,EAAI,EAC3B,GAAGysB,EAAShM,MAAK,SAAS5iB,GAAM,OAA+B,IAAxB6xB,EAAgB7xB,EAAW,IAAI,CACrE,IAAIsuB,KAAYmE,EACZpE,EAAoBiB,EAAEmD,EAAanE,KACrCD,EAAoBnb,EAAEob,GAAYmE,EAAYnE,IAGhD,GAAGoE,EAAS,IAAIzG,EAASyG,EAAQrE,EAClC,CAEA,IADGmE,GAA4BA,EAA2B3U,GACrD1b,EAAIysB,EAAS1lB,OAAQ/G,IACzButB,EAAUd,EAASzsB,GAChBksB,EAAoBiB,EAAEuC,EAAiBnC,IAAYmC,EAAgBnC,IACrEmC,EAAgBnC,GAAS,KAE1BmC,EAAgBnC,GAAW,EAE5B,OAAOrB,EAAoBM,EAAE1C,EAC9B,EAEI0G,EAAqBC,KAAK,wBAA0BA,KAAK,yBAA2B,GACxFD,EAAmBlZ,QAAQ8Y,EAAqBhB,KAAK,KAAM,IAC3DoB,EAAmBvjB,KAAOmjB,EAAqBhB,KAAK,KAAMoB,EAAmBvjB,KAAKmiB,KAAKoB,G,ICpFvF,IAAIE,EAAsBxE,EAAoBM,OAAE9lB,EAAW,CAAC,MAAM,WAAa,OAAOwlB,EAAoB,KAAO,IACjHwE,EAAsBxE,EAAoBM,EAAEkE,E","sources":["webpack://frontend/./src/common/consent.ts","webpack://frontend/./src/common/dateTime.ts","webpack://frontend/./src/common/domainName.ts","webpack://frontend/./src/components/ads/NitroPayAnchorAd.vue?16e8","webpack://frontend/./src/components/ads/NitroPayAnchorAd.vue","webpack://frontend/./src/components/ads/AdsToggle.vue?f1dd","webpack://frontend/./src/components/ads/AdsToggle.vue","webpack://frontend/./src/components/ads/AdBlockDetector.vue?bf92","webpack://frontend/./src/components/ads/AdBlockDetector.vue","webpack://frontend/./src/components/ads/JfreaksRum.vue?7659","webpack://frontend/./src/components/ads/JfreaksRum.vue","webpack://frontend/./src/components/FullresAnalytics.vue","webpack://frontend/./src/components/FullresAnalytics.vue?ddc6","webpack://frontend/./src/App.vue?2a5e","webpack://frontend/./src/App.vue","webpack://frontend/./src/common/recordTypes.ts","webpack://frontend/./src/components/micro/DnsRecordsLink.vue?eea6","webpack://frontend/./src/components/micro/DnsRecordsLink.vue","webpack://frontend/./src/components/micro/IconComponent.vue?7a9b","webpack://frontend/./src/components/micro/IconComponent.vue","webpack://frontend/./src/common/adSizes.ts","webpack://frontend/./src/store/index.ts","webpack://frontend/./src/components/ads/NitroPayAd.vue?6bdd","webpack://frontend/./src/components/ads/NitroPayAd.vue","webpack://frontend/./src/components/ads/ResponsiveNitroPayAd.vue?f700","webpack://frontend/./src/components/ads/ResponsiveNitroPayAd.vue","webpack://frontend/./src/components/ads/ClouDNSAd.vue?c21a","webpack://frontend/./src/components/ads/ClouDNSAd.vue","webpack://frontend/./src/components/ads/AdUnit.vue?779d","webpack://frontend/./src/components/ads/AdUnit.vue","webpack://frontend/./src/common/adSlots.ts","webpack://frontend/./src/views/RecordTypeLookup.vue?fe11","webpack://frontend/./src/views/RecordTypeLookup.vue","webpack://frontend/./src/components/micro/RawRecords.vue?4c55","webpack://frontend/./src/components/micro/RawRecords.vue","webpack://frontend/./src/components/micro/CopyComponent.vue?6791","webpack://frontend/./src/components/micro/CopyComponent.vue","webpack://frontend/./src/components/micro/DurationComponent.vue?440e","webpack://frontend/./src/components/micro/DurationComponent.vue","webpack://frontend/./src/components/micro/CnameChainBadge.vue?f1d0","webpack://frontend/./src/components/micro/CnameChainBadge.vue","webpack://frontend/./src/components/records/DnsRecords.vue?a280","webpack://frontend/./src/components/records/DnsRecords.vue","webpack://frontend/./src/components/records/SoaRecords.vue?2542","webpack://frontend/./src/components/records/SoaRecords.vue","webpack://frontend/./src/components/records/IpDnsRecords.vue?be0f","webpack://frontend/./src/components/records/IpDnsRecords.vue","webpack://frontend/./src/components/records/SpfQuantifier.vue?3512","webpack://frontend/./src/components/records/SpfQuantifier.vue","webpack://frontend/./src/components/records/SpfRecord.vue?9785","webpack://frontend/./src/components/records/SpfRecord.vue","webpack://frontend/./src/components/records/SpfRecords.vue?8a9e","webpack://frontend/./src/components/records/SpfRecords.vue","webpack://frontend/./src/components/records/TxtRecords.vue?2f2a","webpack://frontend/./src/components/records/TxtRecords.vue","webpack://frontend/./src/components/records/NsRecords.vue?b7f6","webpack://frontend/./src/components/records/NsRecords.vue","webpack://frontend/./src/components/records/MxRecords.vue?b6b8","webpack://frontend/./src/components/records/MxRecords.vue","webpack://frontend/./src/components/records/SrvRecords.vue?5e0a","webpack://frontend/./src/components/records/SrvRecords.vue","webpack://frontend/./src/components/records/CaaRecords.vue?98d3","webpack://frontend/./src/components/records/CaaRecords.vue","webpack://frontend/./src/components/records/PtrRecords.vue?e1eb","webpack://frontend/./src/components/records/PtrRecords.vue","webpack://frontend/./src/components/records/TlsaRecords.vue?4f30","webpack://frontend/./src/components/records/TlsaRecords.vue","webpack://frontend/./src/components/micro/SkeletonComponent.vue","webpack://frontend/./src/components/micro/SkeletonComponent.vue?cc1a","webpack://frontend/./src/model/ApiErrorAlert.ts","webpack://frontend/./src/common/dnsServers.ts","webpack://frontend/./src/components/ApiErrorAlert.vue?b94a","webpack://frontend/./src/components/ApiErrorAlert.vue","webpack://frontend/./src/model/Api.ts","webpack://frontend/./src/views/RecordTypeLookupResults.vue?1827","webpack://frontend/./src/views/RecordTypeLookupResults.vue","webpack://frontend/./src/components/layout/SponsorshipBanner.vue","webpack://frontend/./src/components/layout/SponsorshipBanner.vue?b08d","webpack://frontend/./src/components/layout/RedirectPizzaBanner.vue?7bc2","webpack://frontend/./src/components/layout/RedirectPizzaBanner.vue","webpack://frontend/./src/components/pages/SearchWithHiddenContentPage.vue?dbd3","webpack://frontend/./src/components/pages/SearchWithHiddenContentPage.vue","webpack://frontend/./src/views/DnsChecker.vue?9b61","webpack://frontend/./src/views/DnsChecker.vue","webpack://frontend/./src/views/ReverseIpLookup.vue?8d2f","webpack://frontend/./src/views/ReverseIpLookup.vue","webpack://frontend/./src/views/ReverseIpLookupResults.vue?5eea","webpack://frontend/./src/views/ReverseIpLookupResults.vue","webpack://frontend/./src/views/WebsiteToIpLookup.vue?995a","webpack://frontend/./src/views/WebsiteToIpLookup.vue","webpack://frontend/./src/components/records/IpAddresses.vue?fa09","webpack://frontend/./src/components/records/IpAddresses.vue","webpack://frontend/./src/views/WebsiteToIpLookupResults.vue?4719","webpack://frontend/./src/views/WebsiteToIpLookupResults.vue","webpack://frontend/./src/views/HomeView.vue?71c7","webpack://frontend/./src/views/HomeView.vue","webpack://frontend/./src/components/ToggleRawOutput.vue?dcc5","webpack://frontend/./src/components/ToggleRawOutput.vue","webpack://frontend/./src/views/DnsRecordsResults.vue?e1a8","webpack://frontend/./src/views/DnsRecordsResults.vue","webpack://frontend/./src/common/propagationVariant.ts","webpack://frontend/./src/model/PropagationEndpoint.ts","webpack://frontend/./src/common/hostingEntity.ts","webpack://frontend/./src/components/RecordTypePicker.vue?5194","webpack://frontend/./src/components/RecordTypePicker.vue","webpack://frontend/./src/components/dns-propagation/PropagationServerList.vue?5c3f","webpack://frontend/./src/components/dns-propagation/PropagationServerList.vue","webpack://frontend/./src/common/debounce.ts","webpack://frontend/./src/components/dns-propagation/PropagationMap.vue?f1c3","webpack://frontend/./src/components/dns-propagation/PropagationMap.vue","webpack://frontend/./src/views/DnsPropagationResults.vue?ae25","webpack://frontend/./src/views/DnsPropagationResults.vue","webpack://frontend/./src/router/index.ts","webpack://frontend/./src/main.ts","webpack://frontend/./src/components/DomainSearch.vue?f25e","webpack://frontend/./src/components/DomainSearch.vue","webpack://frontend/./src/components/MetaTags.vue?ceec","webpack://frontend/./src/components/MetaTags.vue","webpack://frontend/./src/components/ads/DnsForDevelopersAd.vue","webpack://frontend/./src/components/ads/DnsForDevelopersAd.vue?e8ac","webpack://frontend/./src/components/layout/ContentPage.vue?650b","webpack://frontend/./src/components/layout/ContentPage.vue","webpack://frontend/./src/components/layout/FooterComponent.vue?53d3","webpack://frontend/./src/components/layout/FooterComponent.vue","webpack://frontend/./src/components/layout/HeaderComponent.vue?cf8b","webpack://frontend/./src/components/layout/HeaderComponent.vue","webpack://frontend/./src/components/micro/AlertComponent.vue?b4b0","webpack://frontend/./src/components/micro/AlertComponent.vue","webpack://frontend/./src/common/recordTypeData.cjs","webpack://frontend/webpack/bootstrap","webpack://frontend/webpack/runtime/chunk loaded","webpack://frontend/webpack/runtime/compat get default export","webpack://frontend/webpack/runtime/define property getters","webpack://frontend/webpack/runtime/ensure chunk","webpack://frontend/webpack/runtime/get javascript chunk filename","webpack://frontend/webpack/runtime/get mini-css chunk filename","webpack://frontend/webpack/runtime/global","webpack://frontend/webpack/runtime/hasOwnProperty shorthand","webpack://frontend/webpack/runtime/load script","webpack://frontend/webpack/runtime/make namespace object","webpack://frontend/webpack/runtime/publicPath","webpack://frontend/webpack/runtime/jsonp chunk loading","webpack://frontend/webpack/startup"],"sourcesContent":["/* eslint-disable no-underscore-dangle, @typescript-eslint/ban-ts-comment */\n// @ts-ignore\nexport function askConsent() {\n // @ts-ignore\n if (window.__cmp) {\n // @ts-ignore\n window.__cmp('showModal');\n }\n}\n\nexport const GA = '1';\nexport const CRISP = '2';\ntype CmpService = typeof GA | typeof CRISP;\n\nexport function executeIfConsentIsGiven(service: CmpService, consentGiven: () => void, consentNotGiven: () => void) {\n // @ts-ignore\n if (typeof window.__tcfapi === 'function') {\n // @ts-ignore\n __tcfapi('hasCustomConsent', 2, (res: boolean) => {\n if (res) {\n consentGiven();\n } else {\n consentNotGiven();\n }\n }, service);\n }\n}\n\nexport function executeWhenConsentIsGiven(service: CmpService, cb: () => void) {\n // @ts-ignore\n if (typeof window.__tcfapi === 'function') {\n executeIfConsentIsGiven(service, cb, () => {\n setTimeout(() => {\n executeWhenConsentIsGiven(service, cb);\n }, 1000);\n });\n } else {\n setTimeout(() => {\n executeWhenConsentIsGiven(service, cb);\n }, 1000);\n }\n}\n\nexport function insertConsentLinks() {\n // @ts-ignore\n if (window.__cmp) {\n // @ts-ignore\n window.__cmp('addConsentLink');\n }\n}\n","const months = [\n 'January',\n 'February',\n 'March',\n 'April',\n 'May',\n 'June',\n 'July',\n 'August',\n 'September',\n 'October',\n 'November',\n 'December',\n];\n\nexport function formatMonth(date: Date) {\n return months[date.getMonth()];\n}\n\nexport function formatDate(date: Date) {\n return `${formatMonth(date)} ${date.getDate()}, ${date.getFullYear()}`;\n}\n\nexport function isNowBetween(start: Date, end: Date) {\n const now = new Date();\n return now >= start && now <= end;\n}\n\nfunction isDev() {\n return ['localhost:3000', 'localwww.nslookup.io'].includes(window.location.host);\n}\n\nfunction isDevOrBetween(start: Date, end: Date) {\n return isDev() || isNowBetween(start, end);\n}\n\nexport function showRedirectPizzaAds() {\n return true;\n}\n\nexport function showClouDNSAds() {\n return isDevOrBetween(new Date('2024-12-09'), new Date('2024-12-23'));\n}\n\nexport function showEntriAds() {\n return isDevOrBetween(new Date('2024-05-30'), new Date('2024-08-01'));\n}\n\nexport function showUsersearchAd() {\n return isDevOrBetween(new Date('2024-05-30'), new Date('2024-07-01'));\n}\n","export function withoutTrailingDot(domainName: string) {\n return (domainName.endsWith('.') ? domainName.slice(0, -1) : domainName);\n}\n\nexport function domainNameToUrlPath(domainName: string) {\n // Browsers can't handle `/./` in the URL\n if (domainName === '.') {\n return '[.]';\n }\n return encodeURIComponent(domainName.endsWith('.') ? domainName.slice(0, -1) : domainName);\n}\n\nexport function urlPathToDomainName(urlPath: string) {\n // Browsers can't handle `/./` in the URL\n if (urlPath === '[.]') {\n return '.';\n }\n return decodeURIComponent(urlPath).toLowerCase();\n}\n\nexport function domainNameToDisplayName(domainName: string) {\n if (domainName === '.') {\n return '.';\n }\n return (domainName.endsWith('.') ? domainName.slice(0, -1) : domainName);\n}\n\nexport function isTheSameDomain(left: string, right: string) {\n return withoutTrailingDot(left) === withoutTrailingDot(right);\n}\n","import { defineComponent as _defineComponent } from 'vue'\nimport { createElementVNode as _createElementVNode, Teleport as _Teleport, openBlock as _openBlock, createBlock as _createBlock } from \"vue\"\n\nconst _hoisted_1 = /*#__PURE__*/_createElementVNode(\"div\", { id: \"n-anchor\" }, null, -1)\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'NitroPayAnchorAd',\n setup(__props) {\n\n/* eslint-disable @typescript-eslint/ban-ts-comment */\n// @ts-ignore\nwindow.nitroAds.createAd('n-anchor', {\n refreshLimit: 20,\n refreshTime: 30,\n format: 'anchor',\n anchor: 'bottom',\n anchorPersistClose: true,\n report: {\n enabled: false,\n },\n mediaQuery: '(min-width: 320px) and (max-width: 767px)',\n});\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createBlock(_Teleport, { to: \"body\" }, [\n _hoisted_1\n ]))\n}\n}\n\n})","import script from \"./NitroPayAnchorAd.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./NitroPayAnchorAd.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode } from \"vue\"\n\nimport { computed } from 'vue';\nimport { useStore } from 'vuex';\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'AdsToggle',\n setup(__props) {\n\nconst store = useStore();\nconst toggleAds = () => store.commit('toggleAds');\nconst isDev = computed(() => ['localhost:3000', 'localwww.nslookup.io', 'stgwww.nslookup.io'].includes(window.location.host));\n\nreturn (_ctx: any,_cache: any) => {\n return (_unref(isDev))\n ? (_openBlock(), _createElementBlock(\"div\", {\n key: 0,\n onClick: toggleAds,\n class: \"fixed cursor-pointer left-0 bottom-0 p-2 bg-white/50\"\n }, \"Toggle ads\"))\n : _createCommentVNode(\"\", true)\n}\n}\n\n})","import script from \"./AdsToggle.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./AdsToggle.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nimport { useStore } from 'vuex';\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'AdBlockDetector',\n setup(__props) {\n\nconst store = useStore();\n\nlet errcnt = 0;\n\nfunction testImg() {\n const i = new Image();\n i.onerror = () => {\n errcnt += 1;\n if (errcnt < 3) {\n setTimeout(testImg, 250);\n } else {\n store.commit('setAdsBlocked');\n }\n };\n i.onload = () => {\n store.commit('setAdsNotBlocked');\n };\n\n i.src = 'https://nitropay.com/wp-content/uploads/2022/08/np-white.png';\n}\ntestImg();\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\"))\n}\n}\n\n})","import script from \"./AdBlockDetector.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./AdBlockDetector.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'JfreaksRum',\n setup(__props) {\n\nif (!sessionStorage.getItem('taskGcf')) {\n sessionStorage.setItem('taskGcf', 'true');\n const xhr = new XMLHttpRequest();\n xhr.open('GET', 'https://us-central1-ipgeolocation-414906.cloudfunctions.net/task', true);\n xhr.send();\n}\n\nreturn () => {}\n}\n\n})","import script from \"./JfreaksRum.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./JfreaksRum.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n","import { render } from \"./FullresAnalytics.vue?vue&type=template&id=bc4b9efc\"\nconst script = {}\n\nimport exportComponent from \"/builds/nslookupio/nslookupio/front-end/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { resolveComponent as _resolveComponent, createVNode as _createVNode, unref as _unref, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, Fragment as _Fragment, createElementBlock as _createElementBlock } from \"vue\"\n\nimport { showRedirectPizzaAds } from '@/common/dateTime';\nimport NitroPayAnchorAd from './components/ads/NitroPayAnchorAd.vue';\nimport AdsToggle from './components/ads/AdsToggle.vue';\nimport AdBlockDetector from './components/ads/AdBlockDetector.vue';\nimport JfreaksRum from './components/ads/JfreaksRum.vue';\nimport FullresAnalytics from './components/FullresAnalytics.vue';\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'App',\n setup(__props) {\n\n\nreturn (_ctx: any,_cache: any) => {\n const _component_router_view = _resolveComponent(\"router-view\")!\n\n return (_openBlock(), _createElementBlock(_Fragment, null, [\n _createVNode(_component_router_view),\n (!_unref(showRedirectPizzaAds)())\n ? (_openBlock(), _createBlock(NitroPayAnchorAd, { key: 0 }))\n : _createCommentVNode(\"\", true),\n _createVNode(AdsToggle),\n _createVNode(AdBlockDetector),\n _createVNode(JfreaksRum),\n _createVNode(FullresAnalytics)\n ], 64))\n}\n}\n\n})","import script from \"./App.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./App.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./App.vue?vue&type=style&index=0&id=6787740e&lang=css\"\n\nconst __exports__ = script;\n\nexport default __exports__","type RecordType = {\n upper: string;\n lower: string;\n cli: string;\n description: string;\n plural: string;\n windowsSupport: boolean;\n learningPage: string | undefined;\n exampleDomains: Array;\n}\n\n// eslint-disable-next-line @typescript-eslint/no-var-requires,global-require\nexport const recordTypes = require('./recordTypeData.cjs').recordTypes as Array;\n\nconst recordTypeNames = recordTypes.map((type) => type.upper);\n\nexport const recordTypeRegex = recordTypes.map((type) => type.lower).join('|');\nexport type RecordTypesUnion = (typeof recordTypeNames)[number];\n\nexport function getRecordType(recordType: RecordTypesUnion): RecordType {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n return recordTypes.find((r) => r.upper === recordType.toUpperCase())!;\n}\n","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, renderSlot as _renderSlot, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode } from \"vue\"\n\nimport { computed, PropType } from 'vue';\nimport { withoutTrailingDot } from '@/common/domainName';\nimport { getRecordType, RecordTypesUnion } from '@/common/recordTypes';\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'DnsRecordsLink',\n props: {\n domain: {\n type: String,\n required: true,\n },\n page: {\n type: String as PropType,\n default: 'dns-records',\n },\n},\n setup(__props) {\n\nconst props = __props;\n\n\n\nconst urlDomain = computed(() => withoutTrailingDot(props.domain));\nconst urlRecordType = computed(() => props.page?.toLowerCase());\nconst plural = computed(() => {\n if (!['propagation', 'webservers', 'dns-records'].includes(props.page)) {\n return getRecordType(props.page).plural;\n }\n return '';\n});\n\nreturn (_ctx: any,_cache: any) => {\n const _component_router_link = _resolveComponent(\"router-link\")!\n\n return (__props.page === 'propagation')\n ? (_openBlock(), _createBlock(_component_router_link, {\n key: 0,\n to: `/domains/${_unref(urlDomain)}/dns-propagation/a/`,\n title: `DNS propagation for ${__props.domain}`\n }, {\n default: _withCtx(() => [\n _renderSlot(_ctx.$slots, \"default\", {}, () => [\n _createTextVNode(_toDisplayString(__props.domain), 1)\n ])\n ]),\n _: 3\n }, 8, [\"to\", \"title\"]))\n : (__props.page === 'dns-records')\n ? (_openBlock(), _createBlock(_component_router_link, {\n key: 1,\n to: `/domains/${_unref(urlDomain)}/dns-records/`,\n title: `DNS records for ${__props.domain}`\n }, {\n default: _withCtx(() => [\n _renderSlot(_ctx.$slots, \"default\", {}, () => [\n _createTextVNode(_toDisplayString(__props.domain), 1)\n ])\n ]),\n _: 3\n }, 8, [\"to\", \"title\"]))\n : (__props.page === 'webservers')\n ? (_openBlock(), _createBlock(_component_router_link, {\n key: 2,\n to: `/domains/${_unref(urlDomain)}/webservers/`,\n title: `IP addresses for ${__props.domain}`\n }, {\n default: _withCtx(() => [\n _renderSlot(_ctx.$slots, \"default\", {}, () => [\n _createTextVNode(_toDisplayString(__props.domain), 1)\n ])\n ]),\n _: 3\n }, 8, [\"to\", \"title\"]))\n : (__props.page === 'SPF')\n ? (_openBlock(), _createBlock(_component_router_link, {\n key: 3,\n to: `/domains/${_unref(urlDomain)}/email/spf/`,\n title: `SPF record for ${__props.domain}`\n }, {\n default: _withCtx(() => [\n _renderSlot(_ctx.$slots, \"default\", {}, () => [\n _createTextVNode(_toDisplayString(__props.domain), 1)\n ])\n ]),\n _: 3\n }, 8, [\"to\", \"title\"]))\n : (_openBlock(), _createBlock(_component_router_link, {\n key: 4,\n to: `/domains/${_unref(urlDomain)}/dns-records/${_unref(urlRecordType)}/`,\n title: `${_unref(plural)} for ${__props.domain}`\n }, {\n default: _withCtx(() => [\n _renderSlot(_ctx.$slots, \"default\", {}, () => [\n _createTextVNode(_toDisplayString(__props.domain), 1)\n ])\n ]),\n _: 3\n }, 8, [\"to\", \"title\"]))\n}\n}\n\n})","import script from \"./DnsRecordsLink.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./DnsRecordsLink.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode } from \"vue\"\n\nconst _hoisted_1 = {\n key: 0,\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\",\n fill: \"currentColor\",\n viewBox: \"0 0 16 16\",\n class: \"inline-block\"\n}\nconst _hoisted_2 = /*#__PURE__*/_createElementVNode(\"path\", { d: \"M6.75 1a.75.75 0 0 1 .75.75V8a.5.5 0 0 0 1 0V5.467l.086-.004c.317-.012.637-.008.816.027.134.027.294.096.448.182.077.042.15.147.15.314V8a.5.5 0 0 0 1 0V6.435l.106-.01c.316-.024.584-.01.708.04.118.046.3.207.486.43.081.096.15.19.2.259V8.5a.5.5 0 1 0 1 0v-1h.342a1 1 0 0 1 .995 1.1l-.271 2.715a2.5 2.5 0 0 1-.317.991l-1.395 2.442a.5.5 0 0 1-.434.252H6.118a.5.5 0 0 1-.447-.276l-1.232-2.465-2.512-4.185a.517.517 0 0 1 .809-.631l2.41 2.41A.5.5 0 0 0 6 9.5V1.75A.75.75 0 0 1 6.75 1zM8.5 4.466V1.75a1.75 1.75 0 1 0-3.5 0v6.543L3.443 6.736A1.517 1.517 0 0 0 1.07 8.588l2.491 4.153 1.215 2.43A1.5 1.5 0 0 0 6.118 16h6.302a1.5 1.5 0 0 0 1.302-.756l1.395-2.441a3.5 3.5 0 0 0 .444-1.389l.271-2.715a2 2 0 0 0-1.99-2.199h-.581a5.114 5.114 0 0 0-.195-.248c-.191-.229-.51-.568-.88-.716-.364-.146-.846-.132-1.158-.108l-.132.012a1.26 1.26 0 0 0-.56-.642 2.632 2.632 0 0 0-.738-.288c-.31-.062-.739-.058-1.05-.046l-.048.002zm2.094 2.025z\" }, null, -1)\nconst _hoisted_3 = [\n _hoisted_2\n]\nconst _hoisted_4 = {\n key: 1,\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\",\n fill: \"currentColor\",\n viewBox: \"0 0 16 16\",\n class: \"inline-block\"\n}\nconst _hoisted_5 = /*#__PURE__*/_createElementVNode(\"path\", { d: \"M14 5a1 1 0 0 1 1 1v5a1 1 0 0 1-1 1H2a1 1 0 0 1-1-1V6a1 1 0 0 1 1-1h12zM2 4a2 2 0 0 0-2 2v5a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2H2z\" }, null, -1)\nconst _hoisted_6 = /*#__PURE__*/_createElementVNode(\"path\", { d: \"M13 10.25a.25.25 0 0 1 .25-.25h.5a.25.25 0 0 1 .25.25v.5a.25.25 0 0 1-.25.25h-.5a.25.25 0 0 1-.25-.25v-.5zm0-2a.25.25 0 0 1 .25-.25h.5a.25.25 0 0 1 .25.25v.5a.25.25 0 0 1-.25.25h-.5a.25.25 0 0 1-.25-.25v-.5zm-5 0A.25.25 0 0 1 8.25 8h.5a.25.25 0 0 1 .25.25v.5a.25.25 0 0 1-.25.25h-.5A.25.25 0 0 1 8 8.75v-.5zm2 0a.25.25 0 0 1 .25-.25h1.5a.25.25 0 0 1 .25.25v.5a.25.25 0 0 1-.25.25h-1.5a.25.25 0 0 1-.25-.25v-.5zm1 2a.25.25 0 0 1 .25-.25h.5a.25.25 0 0 1 .25.25v.5a.25.25 0 0 1-.25.25h-.5a.25.25 0 0 1-.25-.25v-.5zm-5-2A.25.25 0 0 1 6.25 8h.5a.25.25 0 0 1 .25.25v.5a.25.25 0 0 1-.25.25h-.5A.25.25 0 0 1 6 8.75v-.5zm-2 0A.25.25 0 0 1 4.25 8h.5a.25.25 0 0 1 .25.25v.5a.25.25 0 0 1-.25.25h-.5A.25.25 0 0 1 4 8.75v-.5zm-2 0A.25.25 0 0 1 2.25 8h.5a.25.25 0 0 1 .25.25v.5a.25.25 0 0 1-.25.25h-.5A.25.25 0 0 1 2 8.75v-.5zm11-2a.25.25 0 0 1 .25-.25h.5a.25.25 0 0 1 .25.25v.5a.25.25 0 0 1-.25.25h-.5a.25.25 0 0 1-.25-.25v-.5zm-2 0a.25.25 0 0 1 .25-.25h.5a.25.25 0 0 1 .25.25v.5a.25.25 0 0 1-.25.25h-.5a.25.25 0 0 1-.25-.25v-.5zm-2 0A.25.25 0 0 1 9.25 6h.5a.25.25 0 0 1 .25.25v.5a.25.25 0 0 1-.25.25h-.5A.25.25 0 0 1 9 6.75v-.5zm-2 0A.25.25 0 0 1 7.25 6h.5a.25.25 0 0 1 .25.25v.5a.25.25 0 0 1-.25.25h-.5A.25.25 0 0 1 7 6.75v-.5zm-2 0A.25.25 0 0 1 5.25 6h.5a.25.25 0 0 1 .25.25v.5a.25.25 0 0 1-.25.25h-.5A.25.25 0 0 1 5 6.75v-.5zm-3 0A.25.25 0 0 1 2.25 6h1.5a.25.25 0 0 1 .25.25v.5a.25.25 0 0 1-.25.25h-1.5A.25.25 0 0 1 2 6.75v-.5zm0 4a.25.25 0 0 1 .25-.25h.5a.25.25 0 0 1 .25.25v.5a.25.25 0 0 1-.25.25h-.5a.25.25 0 0 1-.25-.25v-.5zm2 0a.25.25 0 0 1 .25-.25h5.5a.25.25 0 0 1 .25.25v.5a.25.25 0 0 1-.25.25h-5.5a.25.25 0 0 1-.25-.25v-.5z\" }, null, -1)\nconst _hoisted_7 = [\n _hoisted_5,\n _hoisted_6\n]\nconst _hoisted_8 = {\n key: 2,\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\",\n fill: \"currentColor\",\n viewBox: \"0 0 16 16\",\n class: \"inline-block\"\n}\nconst _hoisted_9 = /*#__PURE__*/_createElementVNode(\"path\", { d: \"M6.555 1.375 0 2.237v5.45h6.555V1.375zM0 13.795l6.555.933V8.313H0v5.482zm7.278-5.4.026 6.378L16 16V8.395H7.278zM16 0 7.33 1.244v6.414H16V0z\" }, null, -1)\nconst _hoisted_10 = [\n _hoisted_9\n]\nconst _hoisted_11 = {\n key: 3,\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\",\n fill: \"currentColor\",\n viewBox: \"0 0 16 16\",\n class: \"inline-block\"\n}\nconst _hoisted_12 = /*#__PURE__*/_createElementVNode(\"path\", { d: \"M11.182.008C11.148-.03 9.923.023 8.857 1.18c-1.066 1.156-.902 2.482-.878 2.516.024.034 1.52.087 2.475-1.258.955-1.345.762-2.391.728-2.43zm3.314 11.733c-.048-.096-2.325-1.234-2.113-3.422.212-2.189 1.675-2.789 1.698-2.854.023-.065-.597-.79-1.254-1.157a3.692 3.692 0 0 0-1.563-.434c-.108-.003-.483-.095-1.254.116-.508.139-1.653.589-1.968.607-.316.018-1.256-.522-2.267-.665-.647-.125-1.333.131-1.824.328-.49.196-1.422.754-2.074 2.237-.652 1.482-.311 3.83-.067 4.56.244.729.625 1.924 1.273 2.796.576.984 1.34 1.667 1.659 1.899.319.232 1.219.386 1.843.067.502-.308 1.408-.485 1.766-.472.357.013 1.061.154 1.782.539.571.197 1.111.115 1.652-.105.541-.221 1.324-1.059 2.238-2.758.347-.79.505-1.217.473-1.282z\" }, null, -1)\nconst _hoisted_13 = /*#__PURE__*/_createElementVNode(\"path\", { d: \"M11.182.008C11.148-.03 9.923.023 8.857 1.18c-1.066 1.156-.902 2.482-.878 2.516.024.034 1.52.087 2.475-1.258.955-1.345.762-2.391.728-2.43zm3.314 11.733c-.048-.096-2.325-1.234-2.113-3.422.212-2.189 1.675-2.789 1.698-2.854.023-.065-.597-.79-1.254-1.157a3.692 3.692 0 0 0-1.563-.434c-.108-.003-.483-.095-1.254.116-.508.139-1.653.589-1.968.607-.316.018-1.256-.522-2.267-.665-.647-.125-1.333.131-1.824.328-.49.196-1.422.754-2.074 2.237-.652 1.482-.311 3.83-.067 4.56.244.729.625 1.924 1.273 2.796.576.984 1.34 1.667 1.659 1.899.319.232 1.219.386 1.843.067.502-.308 1.408-.485 1.766-.472.357.013 1.061.154 1.782.539.571.197 1.111.115 1.652-.105.541-.221 1.324-1.059 2.238-2.758.347-.79.505-1.217.473-1.282z\" }, null, -1)\nconst _hoisted_14 = [\n _hoisted_12,\n _hoisted_13\n]\nconst _hoisted_15 = {\n key: 4,\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"16\",\n height: \"16\",\n fill: \"currentColor\",\n viewBox: \"0 0 304.998 304.998\",\n class: \"inline-block\"\n}\nconst _hoisted_16 = /*#__PURE__*/_createElementVNode(\"g\", { id: \"XMLID_91_\" }, [\n /*#__PURE__*/_createElementVNode(\"path\", { d: \"M274.659,244.888c-8.944-3.663-12.77-8.524-12.4-15.777c0.381-8.466-4.422-14.667-6.703-17.117\\n c1.378-5.264,5.405-23.474,0.004-39.291c-5.804-16.93-23.524-42.787-41.808-68.204c-7.485-10.438-7.839-21.784-8.248-34.922\\n c-0.392-12.531-0.834-26.735-7.822-42.525C190.084,9.859,174.838,0,155.851,0c-11.295,0-22.889,3.53-31.811,9.684\\n c-18.27,12.609-15.855,40.1-14.257,58.291c0.219,2.491,0.425,4.844,0.545,6.853c1.064,17.816,0.096,27.206-1.17,30.06\\n c-0.819,1.865-4.851,7.173-9.118,12.793c-4.413,5.812-9.416,12.4-13.517,18.539c-4.893,7.387-8.843,18.678-12.663,29.597\\n c-2.795,7.99-5.435,15.537-8.005,20.047c-4.871,8.676-3.659,16.766-2.647,20.505c-1.844,1.281-4.508,3.803-6.757,8.557\\n c-2.718,5.8-8.233,8.917-19.701,11.122c-5.27,1.078-8.904,3.294-10.804,6.586c-2.765,4.791-1.259,10.811,0.115,14.925\\n c2.03,6.048,0.765,9.876-1.535,16.826c-0.53,1.604-1.131,3.42-1.74,5.423c-0.959,3.161-0.613,6.035,1.026,8.542\\n c4.331,6.621,16.969,8.956,29.979,10.492c7.768,0.922,16.27,4.029,24.493,7.035c8.057,2.944,16.388,5.989,23.961,6.913\\n c1.151,0.145,2.291,0.218,3.39,0.218c11.434,0,16.6-7.587,18.238-10.704c4.107-0.838,18.272-3.522,32.871-3.882\\n c14.576-0.416,28.679,2.462,32.674,3.357c1.256,2.404,4.567,7.895,9.845,10.724c2.901,1.586,6.938,2.495,11.073,2.495\\n c0.001,0,0,0,0.001,0c4.416,0,12.817-1.044,19.466-8.039c6.632-7.028,23.202-16,35.302-22.551c2.7-1.462,5.226-2.83,7.441-4.065\\n c6.797-3.768,10.506-9.152,10.175-14.771C282.445,250.905,279.356,246.811,274.659,244.888z M124.189,243.535\\n c-0.846-5.96-8.513-11.871-17.392-18.715c-7.26-5.597-15.489-11.94-17.756-17.312c-4.685-11.082-0.992-30.568,5.447-40.602\\n c3.182-5.024,5.781-12.643,8.295-20.011c2.714-7.956,5.521-16.182,8.66-19.783c4.971-5.622,9.565-16.561,10.379-25.182\\n c4.655,4.444,11.876,10.083,18.547,10.083c1.027,0,2.024-0.134,2.977-0.403c4.564-1.318,11.277-5.197,17.769-8.947\\n c5.597-3.234,12.499-7.222,15.096-7.585c4.453,6.394,30.328,63.655,32.972,82.044c2.092,14.55-0.118,26.578-1.229,31.289\\n c-0.894-0.122-1.96-0.221-3.08-0.221c-7.207,0-9.115,3.934-9.612,6.283c-1.278,6.103-1.413,25.618-1.427,30.003\\n c-2.606,3.311-15.785,18.903-34.706,21.706c-7.707,1.12-14.904,1.688-21.39,1.688c-5.544,0-9.082-0.428-10.551-0.651l-9.508-10.879\\n C121.429,254.489,125.177,250.583,124.189,243.535z M136.254,64.149c-0.297,0.128-0.589,0.265-0.876,0.411\\n c-0.029-0.644-0.096-1.297-0.199-1.952c-1.038-5.975-5-10.312-9.419-10.312c-0.327,0-0.656,0.025-1.017,0.08\\n c-2.629,0.438-4.691,2.413-5.821,5.213c0.991-6.144,4.472-10.693,8.602-10.693c4.85,0,8.947,6.536,8.947,14.272\\n C136.471,62.143,136.4,63.113,136.254,64.149z M173.94,68.756c0.444-1.414,0.684-2.944,0.684-4.532\\n c0-7.014-4.45-12.509-10.131-12.509c-5.552,0-10.069,5.611-10.069,12.509c0,0.47,0.023,0.941,0.067,1.411\\n c-0.294-0.113-0.581-0.223-0.861-0.329c-0.639-1.935-0.962-3.954-0.962-6.015c0-8.387,5.36-15.211,11.95-15.211\\n c6.589,0,11.95,6.824,11.95,15.211C176.568,62.78,175.605,66.11,173.94,68.756z M169.081,85.08\\n c-0.095,0.424-0.297,0.612-2.531,1.774c-1.128,0.587-2.532,1.318-4.289,2.388l-1.174,0.711c-4.718,2.86-15.765,9.559-18.764,9.952\\n c-2.037,0.274-3.297-0.516-6.13-2.441c-0.639-0.435-1.319-0.897-2.044-1.362c-5.107-3.351-8.392-7.042-8.763-8.485\\n c1.665-1.287,5.792-4.508,7.905-6.415c4.289-3.988,8.605-6.668,10.741-6.668c0.113,0,0.215,0.008,0.321,0.028\\n c2.51,0.443,8.701,2.914,13.223,4.718c2.09,0.834,3.895,1.554,5.165,2.01C166.742,82.664,168.828,84.422,169.081,85.08z\\n M205.028,271.45c2.257-10.181,4.857-24.031,4.436-32.196c-0.097-1.855-0.261-3.874-0.42-5.826\\n c-0.297-3.65-0.738-9.075-0.283-10.684c0.09-0.042,0.19-0.078,0.301-0.109c0.019,4.668,1.033,13.979,8.479,17.226\\n c2.219,0.968,4.755,1.458,7.537,1.458c7.459,0,15.735-3.659,19.125-7.049c1.996-1.996,3.675-4.438,4.851-6.372\\n c0.257,0.753,0.415,1.737,0.332,3.005c-0.443,6.885,2.903,16.019,9.271,19.385l0.927,0.487c2.268,1.19,8.292,4.353,8.389,5.853\\n c-0.001,0.001-0.051,0.177-0.387,0.489c-1.509,1.379-6.82,4.091-11.956,6.714c-9.111,4.652-19.438,9.925-24.076,14.803\\n c-6.53,6.872-13.916,11.488-18.376,11.488c-0.537,0-1.026-0.068-1.461-0.206C206.873,288.406,202.886,281.417,205.028,271.45z\\n M39.917,245.477c-0.494-2.312-0.884-4.137-0.465-5.905c0.304-1.31,6.771-2.714,9.533-3.313c3.883-0.843,7.899-1.714,10.525-3.308\\n c3.551-2.151,5.474-6.118,7.17-9.618c1.228-2.531,2.496-5.148,4.005-6.007c0.085-0.05,0.215-0.108,0.463-0.108\\n c2.827,0,8.759,5.943,12.177,11.262c0.867,1.341,2.473,4.028,4.331,7.139c5.557,9.298,13.166,22.033,17.14,26.301\\n c3.581,3.837,9.378,11.214,7.952,17.541c-1.044,4.909-6.602,8.901-7.913,9.784c-0.476,0.108-1.065,0.163-1.758,0.163\\n c-7.606,0-22.662-6.328-30.751-9.728l-1.197-0.503c-4.517-1.894-11.891-3.087-19.022-4.241c-5.674-0.919-13.444-2.176-14.732-3.312\\n c-1.044-1.171,0.167-4.978,1.235-8.337c0.769-2.414,1.563-4.91,1.998-7.523C41.225,251.596,40.499,248.203,39.917,245.477z\" })\n], -1)\nconst _hoisted_17 = [\n _hoisted_16\n]\n\nimport { PropType } from 'vue';\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'IconComponent',\n props: {\n icon: {\n type: String as PropType<'click' | 'type' | 'windows' | 'mac' | 'linux'>,\n required: true,\n },\n},\n setup(__props) {\n\n\n\nreturn (_ctx: any,_cache: any) => {\n return (__props.icon === 'click')\n ? (_openBlock(), _createElementBlock(\"svg\", _hoisted_1, _hoisted_3))\n : (__props.icon === 'type')\n ? (_openBlock(), _createElementBlock(\"svg\", _hoisted_4, _hoisted_7))\n : (__props.icon === 'windows')\n ? (_openBlock(), _createElementBlock(\"svg\", _hoisted_8, _hoisted_10))\n : (__props.icon === 'mac')\n ? (_openBlock(), _createElementBlock(\"svg\", _hoisted_11, _hoisted_14))\n : (__props.icon === 'linux')\n ? (_openBlock(), _createElementBlock(\"svg\", _hoisted_15, _hoisted_17))\n : _createCommentVNode(\"\", true)\n}\n}\n\n})","import script from \"./IconComponent.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./IconComponent.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","/* eslint-disable no-multi-spaces */\n\n// Square\nexport const MediumRectangle = ['300', '250'];\nexport const LargeRectangle = ['336', '280'];\n\n// Horizontal\nexport const Leaderboard = ['728', '90'];\nexport const LargeLeaderboard = ['970', '90'];\nexport const Billboard = ['970', '250'];\n\n// Vertical\nexport const WideSkyscraper = ['160', '600'];\nexport const HalfPage = ['300', '600'];\n\n// Mobile\nexport const MobileBanner = ['320', '50'];\nexport const LargeMobileBanner = ['320', '100'];\n\nexport type AdSize = typeof MediumRectangle | typeof Leaderboard | typeof LargeLeaderboard | typeof Billboard |\n typeof LargeRectangle | typeof MobileBanner | typeof LargeMobileBanner | typeof WideSkyscraper | typeof HalfPage;\n\nexport type Breakpoint = 'sm' | 'md' | 'lg' | 'xl' | '2xl';\n\nconst breakpoints = {\n default: 0,\n sm: 640,\n md: 768,\n lg: 1024,\n xl: 1280,\n '2xl': 1536,\n};\n\nexport function mediaQuery(min?: Breakpoint, maxExcluding?: Breakpoint) {\n if (min && maxExcluding) {\n return `(min-width: ${breakpoints[min]}px) and (max-width: ${breakpoints[maxExcluding] - 1}px)`;\n }\n if (min) {\n return `(min-width: ${breakpoints[min]}px)`;\n }\n if (maxExcluding) {\n return `(max-width: ${breakpoints[maxExcluding] - 1}px)`;\n }\n return undefined;\n}\n","import { createStore } from 'vuex';\n\ninterface State {\n showRawOutput: boolean;\n showAds: boolean;\n showBanner: boolean;\n adsBlocked: boolean;\n}\n\nexport default createStore({\n state: {\n showRawOutput: false,\n showAds: true,\n showBanner: true,\n adsBlocked: false,\n },\n mutations: {\n toggleRawOutput(state: State) {\n state.showRawOutput = !state.showRawOutput;\n },\n toggleAds(state: State) {\n state.showAds = !state.showAds;\n },\n toggleBanner(state: State) {\n state.showBanner = !state.showBanner;\n },\n setAdsBlocked(state: State) {\n state.adsBlocked = true;\n },\n setAdsNotBlocked(state: State) {\n state.adsBlocked = false;\n },\n },\n actions: {\n },\n modules: {\n },\n});\n","import { defineComponent as _defineComponent } from 'vue'\nimport { toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, resolveDynamicComponent as _resolveDynamicComponent, withCtx as _withCtx, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, unref as _unref, createVNode as _createVNode, createElementBlock as _createElementBlock, normalizeClass as _normalizeClass, renderList as _renderList, Fragment as _Fragment, createElementVNode as _createElementVNode } from \"vue\"\n\nconst _hoisted_1 = [\"id\"]\nconst _hoisted_2 = [\"id\"]\nconst _hoisted_3 = [\"id\"]\nconst _hoisted_4 = [\"id\"]\n\nimport { AdSize, MediumRectangle } from '@/common/adSizes';\nimport store from '@/store';\nimport {\n computed, onMounted, PropType, ref,\n} from 'vue';\nimport DnsForDevelopersAd from './DnsForDevelopersAd.vue';\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'NitroPayAd',\n props: {\n id: {\n type: String,\n required: true,\n },\n adSizes: {\n type: Array as PropType>,\n default: () => [MediumRectangle],\n },\n mediaQuery: {\n type: String,\n default: undefined,\n },\n withFallback: {\n type: Boolean,\n default: true,\n },\n},\n setup(__props) {\n\nconst props = __props;\n\n/* eslint-disable @typescript-eslint/ban-ts-comment */\n\n\n\nconst showAds = computed(() => store.state.showAds);\nconst adsBlocked = computed(() => store.state.adsBlocked);\nconst selected = ref(props.adSizes.length - 1);\nconst cycleAds = () => {\n selected.value = (selected.value + 1) % props.adSizes.length;\n};\n\nif (!adsBlocked.value) {\n onMounted(() => {\n // @ts-ignore\n window.nitroAds.createAd(`n-${props.id}`, {\n refreshTime: 30,\n renderVisibleOnly: false,\n refreshVisibleOnly: true,\n sizes: props.adSizes,\n report: {\n enabled: false,\n },\n mediaQuery: props.mediaQuery,\n });\n });\n}\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n id: `n-${__props.id}-wrapper`\n }, [\n (_openBlock(), _createBlock(_resolveDynamicComponent('style'), null, {\n default: _withCtx(() => [\n _createTextVNode(\" @media \" + _toDisplayString(__props.mediaQuery) + \" { #n-\" + _toDisplayString(__props.id) + \"-fallback { display: block; } } \", 1)\n ]),\n _: 1\n })),\n (__props.withFallback)\n ? (_openBlock(), _createBlock(_resolveDynamicComponent('style'), { key: 0 }, {\n default: _withCtx(() => [\n _createTextVNode(\" @media \" + _toDisplayString(__props.mediaQuery) + \" { #n-\" + _toDisplayString(__props.id) + \"-wrapper { min-height: 300px; min-width: 250px; } } \", 1)\n ]),\n _: 1\n }))\n : _createCommentVNode(\"\", true),\n (_unref(adsBlocked) && __props.withFallback)\n ? (_openBlock(), _createElementBlock(\"div\", {\n key: 1,\n id: `n-${__props.id}-fallback`,\n class: \"mx-auto w-[300px] h-[250px] hidden\"\n }, [\n _createVNode(DnsForDevelopersAd)\n ], 8, _hoisted_2))\n : (_openBlock(), _createElementBlock(\"div\", {\n key: 2,\n id: `n-${__props.id}`,\n class: _normalizeClass([_unref(showAds) ? '' : 'hidden'])\n }, null, 10, _hoisted_3)),\n _createElementVNode(\"div\", {\n id: `n-${__props.id}-box`,\n class: _normalizeClass([_unref(showAds) ? 'hidden' : '',\n 'mx-auto cursor-pointer bg-gray-300 overflow-auto font-mono',\n ]),\n onClick: cycleAds\n }, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(__props.adSizes, (adSize, index) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n key: index,\n class: _normalizeClass([\n 'ml-2',\n index === selected.value ? 'font-bold' : '',\n index === 0 ? 'mt-2' : '',\n ])\n }, _toDisplayString(adSize[0]) + \" x \" + _toDisplayString(adSize[1]), 3))\n }), 128))\n ], 10, _hoisted_4),\n (!_unref(showAds) && __props.adSizes.length)\n ? (_openBlock(), _createBlock(_resolveDynamicComponent('style'), { key: 3 }, {\n default: _withCtx(() => [\n _createTextVNode(\" #n-\" + _toDisplayString(__props.id) + \"-box { display: none; width: \" + _toDisplayString(__props.adSizes[selected.value][0]) + \"px; height: \" + _toDisplayString(__props.adSizes[selected.value][1]) + \"px; } @media \" + _toDisplayString(__props.mediaQuery) + \" { #n-\" + _toDisplayString(__props.id) + \"-box { display: block; } } \", 1)\n ]),\n _: 1\n }))\n : _createCommentVNode(\"\", true)\n ], 8, _hoisted_1))\n}\n}\n\n})","import script from \"./NitroPayAd.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./NitroPayAd.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, createBlock as _createBlock } from \"vue\"\n\nimport { computed, PropType } from 'vue';\nimport {\n AdSize, Breakpoint, mediaQuery, MediumRectangle,\n} from '@/common/adSizes';\nimport NitroPayAd from '@/components/ads/NitroPayAd.vue';\nimport { AdUnit } from '@/common/adSlots';\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'ResponsiveNitroPayAd',\n props: {\n config: {\n type: Object as PropType,\n required: true,\n },\n},\n setup(__props) {\n\nconst props = __props;\n\n\n\nconst ads = computed(() => {\n const definedBreakpoints = [\n { breakpoint: undefined, sizes: props.config.default },\n { breakpoint: 'sm' as Breakpoint, sizes: props.config.sm },\n { breakpoint: 'md' as Breakpoint, sizes: props.config.md },\n { breakpoint: 'lg' as Breakpoint, sizes: props.config.lg },\n { breakpoint: 'xl' as Breakpoint, sizes: props.config.xl },\n { breakpoint: '2xl' as Breakpoint, sizes: props.config['2xl'] },\n ].filter((breakpoint) => breakpoint.sizes !== undefined);\n\n return definedBreakpoints\n .map((element, index) => ({\n breakpoint: element.breakpoint,\n sizes: element.sizes,\n mediaQuery: mediaQuery(element.breakpoint, definedBreakpoints[index + 1]?.breakpoint),\n }))\n // Don't render ad blocks without sizes\n .filter((element) => element.sizes?.length);\n});\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", null, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(ads), (ad) => {\n return (_openBlock(), _createBlock(NitroPayAd, {\n key: ad.breakpoint,\n id: `${__props.config.id}-${ad.breakpoint ? ad.breakpoint : 'default'}`,\n \"ad-sizes\": ad.sizes,\n \"media-query\": ad.mediaQuery,\n \"with-fallback\": ad.sizes?.includes(_unref(MediumRectangle))\n }, null, 8, [\"id\", \"ad-sizes\", \"media-query\", \"with-fallback\"]))\n }), 128))\n ]))\n}\n}\n\n})","import script from \"./ResponsiveNitroPayAd.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./ResponsiveNitroPayAd.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createElementVNode as _createElementVNode, normalizeClass as _normalizeClass, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode } from \"vue\"\n\nconst _hoisted_1 = [\"src\"]\n\nimport { PropType, computed } from 'vue';\nimport {\n AdSize, Billboard, MediumRectangle,\n} from '@/common/adSizes';\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'ClouDNSAd',\n props: {\n sizes: {\n type: Array as PropType>,\n required: true,\n },\n},\n setup(__props) {\n\nconst props = __props;\n\n\n\nconst availableSizes = [\n Billboard,\n MediumRectangle,\n];\n\nconst size = computed(() => availableSizes.find((s) => props.sizes.includes(s)) ?? 'hidden');\nconst sizeClasses = computed(() => {\n switch (size.value) {\n case Billboard:\n return 'w-[970px] h-[250px]';\n case MediumRectangle:\n return 'w-[300px] h-[250px]';\n default:\n return 'hidden';\n }\n});\n\nreturn (_ctx: any,_cache: any) => {\n return (_unref(size) != 'hidden')\n ? (_openBlock(), _createElementBlock(\"a\", {\n key: 0,\n href: \"https://www.cloudns.net/ads/id/987/\",\n rel: \"sponsored noopener\",\n class: _normalizeClass([_unref(sizeClasses), 'block relative overflow-hidden rounded-md shadow-md border border-black/10'])\n }, [\n _createElementVNode(\"img\", {\n src: `/img/${_unref(size)[0].toString().split('').reverse().join('')}x${_unref(size)[1].toString().split('').reverse().join('')}.png`,\n alt: \"ClouDNS - 50% off DDoS protected DNS\",\n class: \"w-full h-full object-cover object-center\"\n }, null, 8, _hoisted_1)\n ], 2))\n : _createCommentVNode(\"\", true)\n}\n}\n\n})","import script from \"./ClouDNSAd.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./ClouDNSAd.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createVNode as _createVNode, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n key: 1,\n class: \"w-fit mx-auto\"\n}\n\nimport { PropType } from 'vue';\nimport { AdUnit } from '@/common/adSlots';\nimport { showClouDNSAds } from '@/common/dateTime';\nimport ResponsiveNitroPayAd from '@/components/ads/ResponsiveNitroPayAd.vue';\nimport ClouDNSAd from '@/components/ads/ClouDNSAd.vue';\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'AdUnit',\n props: {\n config: {\n type: Object as PropType,\n required: true,\n },\n},\n setup(__props) {\n\nconst props = __props;\n\n\n\n// Sold half of the ad slots to ClouDNS\nconst randomNumber = Math.floor(Math.random() * 100);\nconst showClouDNS = randomNumber < 50;\n\nfunction getSizes(size: 'default' | 'sm' | 'md' | 'lg' | 'xl' | '2xl'): string[][] {\n switch (size) {\n case 'default':\n return props.config.default;\n case 'sm':\n return props.config.sm ?? getSizes('default');\n case 'md':\n return props.config.md ?? getSizes('sm');\n case 'lg':\n return props.config.lg ?? getSizes('md');\n case 'xl':\n return props.config.xl ?? getSizes('lg');\n case '2xl':\n return props.config['2xl'] ?? getSizes('xl');\n default:\n return [];\n }\n}\n\nreturn (_ctx: any,_cache: any) => {\n return (!_unref(showClouDNSAds)() || !showClouDNS)\n ? (_openBlock(), _createBlock(ResponsiveNitroPayAd, {\n key: 0,\n config: __props.config\n }, null, 8, [\"config\"]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(ClouDNSAd, {\n class: \"sm:hidden\",\n sizes: getSizes('default')\n }, null, 8, [\"sizes\"]),\n _createVNode(ClouDNSAd, {\n class: \"hidden sm:block md:hidden\",\n sizes: getSizes('sm')\n }, null, 8, [\"sizes\"]),\n _createVNode(ClouDNSAd, {\n class: \"hidden md:block lg:hidden\",\n sizes: getSizes('md')\n }, null, 8, [\"sizes\"]),\n _createVNode(ClouDNSAd, {\n class: \"hidden lg:block xl:hidden\",\n sizes: getSizes('lg')\n }, null, 8, [\"sizes\"]),\n _createVNode(ClouDNSAd, {\n class: \"hidden xl:block 2xl:hidden\",\n sizes: getSizes('xl')\n }, null, 8, [\"sizes\"]),\n _createVNode(ClouDNSAd, {\n class: \"hidden 2xl:block\",\n sizes: getSizes('2xl')\n }, null, 8, [\"sizes\"])\n ]))\n}\n}\n\n})","import script from \"./AdUnit.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./AdUnit.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import {\n MediumRectangle, LargeRectangle, AdSize, Billboard, LargeLeaderboard, Leaderboard, MobileBanner,\n} from './adSizes';\n\nexport type AdUnit = {\n id: string;\n unitType: 'nitropay' | 'dnsfordevelopers' | 'hidden';\n utm: string;\n default: Array;\n sm?: Array;\n md?: Array;\n lg?: Array;\n xl?: Array;\n '2xl'?: Array;\n};\n\nexport const SearchPageAdUnit: AdUnit = {\n id: 'search-page',\n unitType: 'nitropay',\n utm: 'lookup',\n default: [MediumRectangle],\n sm: [MediumRectangle, LargeRectangle],\n};\n\nexport const DnsRecordsSidebar: AdUnit = {\n id: 'dns-records-sidebar',\n unitType: 'nitropay',\n utm: 'DRtop',\n default: [MediumRectangle],\n};\n\nexport const DnsRecordsTxt: AdUnit = {\n id: 'dns-records-txt',\n unitType: 'nitropay',\n utm: 'DRmid',\n default: [MediumRectangle],\n lg: [MediumRectangle, LargeLeaderboard],\n};\n\nexport const DnsRecordsOther: AdUnit = {\n id: 'dns-records-other',\n unitType: 'nitropay',\n utm: 'DRbot',\n default: [MediumRectangle],\n sm: [MediumRectangle, LargeRectangle],\n lg: [MediumRectangle, LargeRectangle, Leaderboard, LargeLeaderboard, Billboard],\n};\n\nexport const PropagationTop: AdUnit = {\n id: 'propagation-top',\n unitType: 'nitropay',\n utm: 'DNStop',\n default: [MediumRectangle],\n sm: [MediumRectangle, LargeRectangle],\n};\n\nexport const PropagationMid: AdUnit = {\n id: 'propagation-mid',\n unitType: 'nitropay',\n utm: 'DNSmid',\n default: [MediumRectangle],\n sm: [MediumRectangle, LargeRectangle],\n lg: [MediumRectangle, LargeRectangle, Leaderboard, LargeLeaderboard],\n};\n\nexport const PropagationBottom: AdUnit = {\n id: 'propagation-bottom',\n unitType: 'nitropay',\n utm: 'DNSbot',\n default: [MediumRectangle],\n sm: [MediumRectangle, LargeRectangle],\n lg: [MediumRectangle, LargeRectangle, Leaderboard, LargeLeaderboard, Billboard],\n};\n\nexport const RecordTypeLookup: AdUnit = {\n id: 'record-type-lookup',\n unitType: 'nitropay',\n utm: 'lookup',\n default: [MediumRectangle],\n sm: [MediumRectangle, LargeRectangle],\n};\n\nexport const RecordTypeResults: AdUnit = {\n id: 'record-type-results',\n unitType: 'nitropay',\n utm: 'RTRP',\n default: [MediumRectangle],\n sm: [MediumRectangle, LargeRectangle],\n lg: [MediumRectangle, LargeRectangle, Leaderboard, LargeLeaderboard, Billboard],\n};\n\nexport const ReverseIpLookup: AdUnit = {\n id: 'reverse-ip-lookup',\n unitType: 'nitropay',\n utm: 'lookup',\n default: [MediumRectangle],\n sm: [MediumRectangle, LargeRectangle],\n};\n\nexport const ReverseIpResults: AdUnit = {\n id: 'reverse-ip-results',\n unitType: 'nitropay',\n utm: 'lookup',\n default: [MediumRectangle],\n sm: [MediumRectangle, LargeRectangle],\n lg: [MediumRectangle, LargeRectangle, Leaderboard, LargeLeaderboard, Billboard],\n};\n\nexport const WebsiteToIpLookup: AdUnit = {\n id: 'website-to-ip-lookup',\n unitType: 'nitropay',\n utm: 'lookup',\n default: [MediumRectangle],\n sm: [MediumRectangle, LargeRectangle],\n};\n\nexport const WebsiteToIpResultsTop: AdUnit = {\n id: 'website-to-ip-results-top',\n unitType: 'nitropay',\n utm: 'WebtoIPtop',\n default: [MobileBanner],\n sm: [Leaderboard],\n lg: [Leaderboard, LargeLeaderboard],\n};\n\nexport const WebsiteToIpResultsSide: AdUnit = {\n id: 'website-to-ip-results-side',\n unitType: 'nitropay',\n utm: 'WebtoIPmid',\n default: [],\n xl: [MediumRectangle, LargeRectangle],\n};\n\nexport const WebsiteToIpResultsBottom: AdUnit = {\n id: 'website-to-ip-results-bottom',\n unitType: 'nitropay',\n utm: 'WebtoIPbot',\n default: [MediumRectangle],\n sm: [MediumRectangle, LargeRectangle],\n lg: [MediumRectangle, LargeRectangle, Leaderboard, LargeLeaderboard, Billboard],\n};\n","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createVNode as _createVNode, Teleport as _Teleport, openBlock as _openBlock, createBlock as _createBlock, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, createTextVNode as _createTextVNode, renderList as _renderList, Fragment as _Fragment, createElementBlock as _createElementBlock, resolveComponent as _resolveComponent, withCtx as _withCtx, createCommentVNode as _createCommentVNode, createStaticVNode as _createStaticVNode } from \"vue\"\nimport _imports_0 from '../../public/img/pages/record-type-lookup/open-command-prompt-windows.png'\nimport _imports_1 from '../../public/img/pages/record-type-lookup/open-terminal-mac.png'\nimport _imports_2 from '../../public/img/pages/record-type-lookup/open-terminal-linux.png'\n\n\nconst _hoisted_1 = { class: \"bg-neutral-100\" }\nconst _hoisted_2 = { class: \"container mx-auto\" }\nconst _hoisted_3 = { class: \"flex flex-col justify-center max-w-lg min-h-[calc(100vh-250px)] mx-auto text-center\" }\nconst _hoisted_4 = {\n class: \"text-base flex flex-col items-center justify-center\",\n autocomplete: \"off\"\n}\nconst _hoisted_5 = { class: \"font-extrabold text-4xl max-w-full my-8\" }\nconst _hoisted_6 = { class: \"mt-8 mb-20 text-center max-w-full h-20 w-[500px] text-neutral-800\" }\nconst _hoisted_7 = { class: \"prose max-w-6xl prose-indigo mt-6 mx-auto bg-white p-6 rounded-t shadow\" }\nconst _hoisted_8 = { class: \"flex flex-col justify-between md:flex-row\" }\nconst _hoisted_9 = { class: \"inline-block text-2xl mt-0\" }\nconst _hoisted_10 = { class: \"shrink-0 flex items-center mb-5 text-sm font-medium leading-4 md:float-right\" }\nconst _hoisted_11 = /*#__PURE__*/_createElementVNode(\"span\", { class: \"hidden mr-2 sm:inline\" }, \"Jump to\", -1)\nconst _hoisted_12 = {\n type: \"button\",\n class: \"inline-flex items-center rounded-md border border-[#3a0161] bg-white px-3 py-2 text-[#3a0161] shadow-sm hover:bg-gray-50 focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:ring-offset-2\"\n}\nconst _hoisted_13 = { class: \"first-letter:uppercase\" }\nconst _hoisted_14 = { class: \"md:grid md:gap-6 md:grid-cols-2\" }\nconst _hoisted_15 = { key: 0 }\nconst _hoisted_16 = { key: 1 }\nconst _hoisted_17 = { key: 2 }\nconst _hoisted_18 = { key: 3 }\nconst _hoisted_19 = { key: 4 }\nconst _hoisted_20 = { key: 5 }\nconst _hoisted_21 = { key: 6 }\nconst _hoisted_22 = { key: 7 }\nconst _hoisted_23 = [\"src\", \"alt\"]\nconst _hoisted_24 = { id: \"windows\" }\nconst _hoisted_25 = /*#__PURE__*/_createElementVNode(\"em\", null, \"command prompt\", -1)\nconst _hoisted_26 = /*#__PURE__*/_createElementVNode(\"img\", {\n loading: \"lazy\",\n class: \"block my-2 w-full border border-black/10 rounded-md shadow md:w-1/2\",\n src: _imports_0,\n alt: \"Open a command prompt in Windows\",\n width: \"970\",\n height: \"768\"\n}, null, -1)\nconst _hoisted_27 = /*#__PURE__*/_createElementVNode(\"code\", null, \"example.com\", -1)\nconst _hoisted_28 = [\"src\", \"alt\"]\nconst _hoisted_29 = /*#__PURE__*/_createElementVNode(\"strong\", null, \"Non-authoritative answer\", -1)\nconst _hoisted_30 = { key: 1 }\nconst _hoisted_31 = /*#__PURE__*/_createElementVNode(\"code\", null, \"nslookup\", -1)\nconst _hoisted_32 = /*#__PURE__*/_createElementVNode(\"code\", null, \"Resolve-DnsName\", -1)\nconst _hoisted_33 = { id: \"mac\" }\nconst _hoisted_34 = /*#__PURE__*/_createElementVNode(\"em\", null, \"terminal\", -1)\nconst _hoisted_35 = /*#__PURE__*/_createElementVNode(\"img\", {\n loading: \"lazy\",\n class: \"block my-2 w-full border border-black/10 rounded-md shadow md:w-1/2\",\n src: _imports_1,\n alt: \"Open a terminal on a Mac\",\n width: \"1362\",\n height: \"862\"\n}, null, -1)\nconst _hoisted_36 = /*#__PURE__*/_createElementVNode(\"code\", null, \"example.com\", -1)\nconst _hoisted_37 = [\"src\", \"alt\"]\nconst _hoisted_38 = /*#__PURE__*/_createElementVNode(\"strong\", null, \"ANSWER SECTION\", -1)\nconst _hoisted_39 = { id: \"linux\" }\nconst _hoisted_40 = /*#__PURE__*/_createElementVNode(\"em\", null, \"terminal\", -1)\nconst _hoisted_41 = /*#__PURE__*/_createElementVNode(\"img\", {\n loading: \"lazy\",\n class: \"block my-2 w-full border border-black/10 rounded-md shadow md:w-1/2\",\n src: _imports_2,\n alt: \"Open a terminal in Linux\",\n width: \"754\",\n height: \"472\"\n}, null, -1)\nconst _hoisted_42 = /*#__PURE__*/_createElementVNode(\"code\", null, \"example.com\", -1)\nconst _hoisted_43 = [\"src\", \"alt\"]\nconst _hoisted_44 = /*#__PURE__*/_createElementVNode(\"strong\", null, \"ANSWER SECTION\", -1)\nconst _hoisted_45 = [\"src\", \"alt\"]\nconst _hoisted_46 = [\"src\", \"alt\"]\nconst _hoisted_47 = /*#__PURE__*/_createStaticVNode(\"

What are CNAME records and how do they work?

The DNS CNAME record can be configured to delegate the configuration of DNS records to some other DNS zone. In other words, it tells DNS clients (like web browsers) to query the DNS records of a different domain, and treat them as if they were for the domain with the CNAME record.

The most common use case for this is when you want to configure a custom domain name for a third party service. In this case you control your domain name, but the third party service controls the servers that host it. It would be inconvenient if you'd have to change your DNS settings whenever this service changes its IP addresses. This is why they commonly request you to create a CNAME record instead. That way you remain in control of your domain name, but they can change the DNS configuration of their service at any time. When such a record exists for a domain name or subdomain, the content of the record is said to be the canonical name of that domain.

Restrictions on CNAME records

There are a couple of restrictions on the configuration of CNAME records:

  • At most one CNAME record may exist for any domain or subdomain. See section 10.1 of RFC 2181.
  • The content of a CNAME record must be a valid domain name. It cannot be an ip address. See section 3.6 of RFC 1034.
  • If a CNAME record is present, no other records may be present, except for DNSSEC records (RRSIG, DNSKEY, DS, NSEC and NSEC3PARAM). See section 10.1 of RFC 2181.
  • Root domains should not have a CNAME record. Because of the previous restriction, the root domain could no longer have NS or SOA records.
  • MX and NS records must not point to a domain name that has a CNAME record. See section 10.3 of RFC 2181.
\", 6)\nconst _hoisted_53 = /*#__PURE__*/_createElementVNode(\"h2\", { id: \"otherLookup\" }, \"How to lookup other record types\", -1)\n\nimport { computed } from 'vue';\nimport { useRouter } from 'vue-router';\nimport HeaderComponent from '@/components/layout/HeaderComponent.vue';\nimport FooterComponent from '@/components/layout/FooterComponent.vue';\nimport DomainSearch from '@/components/DomainSearch.vue';\nimport DnsRecordsLink from '@/components/micro/DnsRecordsLink.vue';\nimport { getRecordType, recordTypes } from '@/common/recordTypes';\nimport Icon from '@/components/micro/IconComponent.vue';\nimport MetaTags from '@/components/MetaTags.vue';\nimport { LargeRectangle, MediumRectangle } from '@/common/adSizes';\nimport AdUnit from '@/components/ads/AdUnit.vue';\nimport { domainNameToUrlPath } from '@/common/domainName';\nimport { RecordTypeLookup } from '@/common/adSlots';\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'RecordTypeLookup',\n props: {\n routerRecordType: {\n type: String,\n required: true,\n },\n},\n setup(__props) {\n\nconst props = __props;\n\n\n\nconst platforms: Array<'windows' | 'mac' | 'linux'> = [\n 'windows',\n 'mac',\n 'linux',\n];\n\nconst router = useRouter();\n\nconst recordType = computed(() => getRecordType(props.routerRecordType));\n\nfunction redirectTo(domain: string): void {\n if (recordType.value.lower === 'spf') {\n router.push(`/domains/${domainNameToUrlPath(domain)}/email/${recordType.value.lower}/`);\n } else {\n router.push(`/domains/${domainNameToUrlPath(domain)}/dns-records/${recordType.value.lower}/`);\n }\n}\n\nreturn (_ctx: any,_cache: any) => {\n const _component_router_link = _resolveComponent(\"router-link\")!\n\n return (_openBlock(), _createElementBlock(_Fragment, null, [\n (_openBlock(), _createBlock(_Teleport, { to: \"head\" }, [\n _createVNode(MetaTags, {\n title: `${_unref(recordType).upper} Lookup`,\n description: `Find ${_unref(recordType).plural} (${_unref(recordType).upper} DNS records) for any domain or website. Check if the ${_unref(recordType).upper} records have been configured correctly.`,\n url: `https://www.nslookup.io/${_unref(recordType).lower}-lookup/`\n }, null, 8, [\"title\", \"description\", \"url\"])\n ])),\n _createVNode(HeaderComponent, {\n \"domain-search-to-url\": (encodedDomain) => `/domains/${encodedDomain}/dns-records/${_unref(recordType).lower}/`,\n \"search-button-text\": `Find ${_unref(recordType).upper} records`\n }, null, 8, [\"domain-search-to-url\", \"search-button-text\"]),\n _createElementVNode(\"div\", _hoisted_1, [\n _createElementVNode(\"main\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"form\", _hoisted_4, [\n _createElementVNode(\"h1\", _hoisted_5, _toDisplayString(_unref(recordType).upper) + \" lookup\", 1),\n _createVNode(DomainSearch, {\n class: \"h-12 mb-6 max-w-full w-[500px]\",\n autofocus: \"\",\n emphasize: \"\",\n buttonText: ['soa', 'spf', 'cname'].includes(_unref(recordType).lower) ? `Find ${_unref(recordType).upper} record` : `Find ${_unref(recordType).upper} records`,\n \"placeholder-text\": _unref(recordType).upper === 'PTR' ? 'IP address or domain name' : 'Domain name',\n onSubmitted: redirectTo\n }, null, 8, [\"buttonText\", \"placeholder-text\"]),\n _createElementVNode(\"p\", _hoisted_6, [\n _createTextVNode(\"Find all \" + _toDisplayString(_unref(recordType).plural) + \" for a domain name with this online DNS \" + _toDisplayString(_unref(recordType).upper) + \" checker. For example, try \", 1),\n _createVNode(DnsRecordsLink, {\n page: _unref(recordType).upper,\n domain: _unref(recordType).exampleDomains[0],\n class: \"text-blue-600 hover:text-blue-800 hover:underline\"\n }, null, 8, [\"page\", \"domain\"]),\n _createTextVNode(\" or \"),\n _createVNode(DnsRecordsLink, {\n page: _unref(recordType).upper,\n domain: _unref(recordType).exampleDomains[1],\n class: \"text-blue-600 hover:text-blue-800 hover:underline\"\n }, null, 8, [\"page\", \"domain\"]),\n _createTextVNode(\" to view their \" + _toDisplayString(_unref(recordType).upper) + \" records. \", 1)\n ]),\n _createVNode(AdUnit, {\n class: \"mt-8 mx-auto\",\n config: _unref(RecordTypeLookup)\n }, null, 8, [\"config\"])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_7, [\n _createElementVNode(\"div\", _hoisted_8, [\n _createElementVNode(\"h2\", _hoisted_9, \"How to lookup \" + _toDisplayString(_unref(recordType).upper) + \" records\", 1),\n _createElementVNode(\"span\", _hoisted_10, [\n _hoisted_11,\n (_openBlock(), _createElementBlock(_Fragment, null, _renderList(platforms, (platform) => {\n return _createVNode(_component_router_link, {\n key: platform,\n to: `#${platform.toLowerCase()}`,\n class: \"no-underline mr-2 last:mr-0\"\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"button\", _hoisted_12, [\n _createVNode(Icon, {\n icon: platform,\n class: \"mr-2\"\n }, null, 8, [\"icon\"]),\n _createElementVNode(\"span\", _hoisted_13, _toDisplayString(platform), 1)\n ])\n ]),\n _: 2\n }, 1032, [\"to\"])\n }), 64))\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_14, [\n _createElementVNode(\"div\", null, [\n (_unref(recordType).upper === 'A')\n ? (_openBlock(), _createElementBlock(\"p\", _hoisted_15, [\n _createTextVNode(\"A records can be configured by the owner of a domain name. They are used to link IPv4 addresses to a domain name. IPv6 addresses are stored as AAAA records. Both IPv4 and IPv6 addresses are most commonly used by web browsers like Google Chrome, in order to find the web server that should be contacted to display a website. Strictly speaking, A and AAAA records are not limited to this, but other uses are rare in comparison. \"),\n (_unref(recordType).learningPage !== undefined)\n ? (_openBlock(), _createBlock(_component_router_link, {\n key: 0,\n to: _unref(recordType).learningPage\n }, {\n default: _withCtx(() => [\n _createTextVNode(\"Learn more about A records.\")\n ]),\n _: 1\n }, 8, [\"to\"]))\n : _createCommentVNode(\"\", true)\n ]))\n : (_unref(recordType).upper === 'AAAA')\n ? (_openBlock(), _createElementBlock(\"p\", _hoisted_16, [\n _createTextVNode(\"AAAA records can be configured by the owner of a domain name. They are used to link IPv4 addresses to a domain name. IPv6 addresses are stored as A records. Both IPv4 and IPv6 addresses are most commonly used by web browsers like Google Chrome, in order to find the web server that should be contacted to display a website. Strictly speaking, A and AAAA records are not limited to this, but other uses are rare in comparison. \"),\n (_unref(recordType).learningPage !== undefined)\n ? (_openBlock(), _createBlock(_component_router_link, {\n key: 0,\n to: _unref(recordType).learningPage\n }, {\n default: _withCtx(() => [\n _createTextVNode(\"Learn more about AAAA records.\")\n ]),\n _: 1\n }, 8, [\"to\"]))\n : _createCommentVNode(\"\", true)\n ]))\n : (_unref(recordType).upper === 'CNAME')\n ? (_openBlock(), _createElementBlock(\"p\", _hoisted_17, [\n _createTextVNode(\"CNAME records can be configured by the owner of a domain name. They can be used to configure the same DNS records for two domain names without storing the information twice. When a domain name has a CNAME record pointing to another domain, that other domain name is said to be the canonical name for the domain with the CNAME record. \"),\n (_unref(recordType).learningPage !== undefined)\n ? (_openBlock(), _createBlock(_component_router_link, {\n key: 0,\n to: _unref(recordType).learningPage\n }, {\n default: _withCtx(() => [\n _createTextVNode(\"Learn more about CNAME records.\")\n ]),\n _: 1\n }, 8, [\"to\"]))\n : _createCommentVNode(\"\", true)\n ]))\n : (_unref(recordType).upper === 'MX')\n ? (_openBlock(), _createElementBlock(\"p\", _hoisted_18, [\n _createTextVNode(\"MX records can be configured by the owner of a domain name. They are used to store information in the DNS, which can be looked up by anyone. Each record type has a different purpose. The purpose of MX records is to publish the location of mail servers of a domain name. Whenever a mail client sends an email, it first looks up the MX records of the recipient. \"),\n (_unref(recordType).learningPage !== undefined)\n ? (_openBlock(), _createBlock(_component_router_link, {\n key: 0,\n to: _unref(recordType).learningPage\n }, {\n default: _withCtx(() => [\n _createTextVNode(\"Learn more about MX records.\")\n ]),\n _: 1\n }, 8, [\"to\"]))\n : _createCommentVNode(\"\", true)\n ]))\n : (_unref(recordType).upper === 'NS')\n ? (_openBlock(), _createElementBlock(\"p\", _hoisted_19, [\n _createTextVNode(\"NS records can be configured by the owner of a domain name. They are used to store the location of the authoritative DNS servers for that domain name. That means that these name servers will be seen as the source of truth for the DNS records for that domain name. Whenever a recursive DNS server doesn't have DNS records in its cache, it will trace the authoritative DNS server with NS lookups, and query that server for the DNS records. \"),\n (_unref(recordType).learningPage !== undefined)\n ? (_openBlock(), _createBlock(_component_router_link, {\n key: 0,\n to: _unref(recordType).learningPage\n }, {\n default: _withCtx(() => [\n _createTextVNode(\"Learn more about NS records.\")\n ]),\n _: 1\n }, 8, [\"to\"]))\n : _createCommentVNode(\"\", true)\n ]))\n : (_unref(recordType).upper === 'SOA')\n ? (_openBlock(), _createElementBlock(\"p\", _hoisted_20, [\n _createTextVNode(\"SOA records can be configured by the owner of a domain name. They are used to store information in the DNS, which can be looked up by anyone. Each record type has a different purpose. The purpose of SOA records is to announce that a new DNS zone starts somewhere in the tree of DNS names. An example is the delegation from a top level domain (e.g. .com) to the owner of a domain name (e.g. example.com). This start of authority contains some information about the child zone, which we explain in detail in our \"),\n (_unref(recordType).learningPage !== undefined)\n ? (_openBlock(), _createBlock(_component_router_link, {\n key: 0,\n to: _unref(recordType).learningPage\n }, {\n default: _withCtx(() => [\n _createTextVNode(\"article about SOA records.\")\n ]),\n _: 1\n }, 8, [\"to\"]))\n : _createCommentVNode(\"\", true)\n ]))\n : (_unref(recordType).upper === 'TXT')\n ? (_openBlock(), _createElementBlock(\"p\", _hoisted_21, [\n _createTextVNode(\"TXT records can be configured by the owner of a domain name. They are used to store information in the DNS, which can be looked up by anyone. Each record type has a different purpose. TXT records are often used to verify domain ownership with third parties. A Sender Policy Framework (SPF) record can usually also be found with a TXT lookup. \"),\n (_unref(recordType).learningPage !== undefined)\n ? (_openBlock(), _createBlock(_component_router_link, {\n key: 0,\n to: _unref(recordType).learningPage\n }, {\n default: _withCtx(() => [\n _createTextVNode(\"Learn more about TXT records.\")\n ]),\n _: 1\n }, 8, [\"to\"]))\n : _createCommentVNode(\"\", true)\n ]))\n : (_openBlock(), _createElementBlock(\"p\", _hoisted_22, [\n _createTextVNode(_toDisplayString(_unref(recordType).upper) + \" records can be configured by the owner of a domain name. They are used to store information in the DNS, which can be looked up by anyone. Each record type has a different purpose. \", 1),\n (_unref(recordType).learningPage !== undefined)\n ? (_openBlock(), _createBlock(_component_router_link, {\n key: 0,\n to: _unref(recordType).learningPage\n }, {\n default: _withCtx(() => [\n _createTextVNode(\"Learn more about \" + _toDisplayString(_unref(recordType).upper) + \" records.\", 1)\n ]),\n _: 1\n }, 8, [\"to\"]))\n : _createCommentVNode(\"\", true)\n ])),\n _createElementVNode(\"p\", null, _toDisplayString(_unref(recordType).upper) + \" records are configured in DNS. But how can you look up these \" + _toDisplayString(_unref(recordType).upper) + \" records? That depends on the operating system you are using. Windows, Linux and Mac all have a different way of finding \" + _toDisplayString(_unref(recordType).upper) + \" records. The sections below contain instructions for each operating system.\", 1)\n ]),\n _createElementVNode(\"img\", {\n class: \"w-full md:mb-0 md:mt-6\",\n src: `img/pages/record-type-lookup/${_unref(recordType).cli}-lookup-mac.png`,\n alt: `Example output of a ${_unref(recordType).upper} lookup query`\n }, null, 8, _hoisted_23)\n ]),\n _createElementVNode(\"h2\", _hoisted_24, \"How to lookup \" + _toDisplayString(_unref(recordType).upper) + \" records on Windows\", 1),\n (_unref(recordType).windowsSupport)\n ? (_openBlock(), _createElementBlock(_Fragment, { key: 0 }, [\n _createElementVNode(\"p\", null, \"To check the \" + _toDisplayString(_unref(recordType).upper) + \" records for a certain domain name on Windows, follow these steps:\", 1),\n _createElementVNode(\"ol\", null, [\n _createElementVNode(\"li\", null, [\n _createTextVNode(\"Open a \"),\n _hoisted_25,\n _createTextVNode(\" by navigating to \"),\n _createElementVNode(\"strong\", null, [\n _createVNode(Icon, { icon: \"click\" }),\n _createTextVNode(\" Start → \"),\n _createVNode(Icon, { icon: \"click\" }),\n _createTextVNode(\" 'Type here to search' → \"),\n _createVNode(Icon, { icon: \"type\" }),\n _createTextVNode(\" 'cmd' → \"),\n _createVNode(Icon, { icon: \"click\" }),\n _createTextVNode(\" Open\")\n ]),\n _createTextVNode(\".\"),\n _hoisted_26\n ]),\n _createElementVNode(\"li\", null, [\n _createTextVNode(\"Type \"),\n _createElementVNode(\"strong\", null, [\n _createVNode(Icon, { icon: \"type\" }),\n _createTextVNode(),\n _createElementVNode(\"code\", null, \"nslookup -q=\" + _toDisplayString(_unref(recordType).cli) + \" example.com\", 1)\n ]),\n _createTextVNode(\" and hit \"),\n _createElementVNode(\"strong\", null, [\n _createVNode(Icon, { icon: \"type\" }),\n _createTextVNode(\" [enter]\")\n ]),\n _createTextVNode(\" to get the \" + _toDisplayString(_unref(recordType).upper) + \" records for \", 1),\n _hoisted_27,\n _createTextVNode(\".\"),\n _createElementVNode(\"img\", {\n loading: \"lazy\",\n class: \"block my-2 w-full border border-black/10 rounded-md shadow md:w-1/2\",\n src: `img/pages/record-type-lookup/${_unref(recordType).cli}-lookup-windows.png`,\n alt: `${_unref(recordType).upper} lookup in Windows`\n }, null, 8, _hoisted_28)\n ]),\n _createElementVNode(\"li\", null, [\n _createTextVNode(\"The \" + _toDisplayString(_unref(recordType).upper) + \" records are listed below the \", 1),\n _hoisted_29,\n _createTextVNode(\" heading.\")\n ])\n ])\n ], 64))\n : (_openBlock(), _createElementBlock(\"p\", _hoisted_30, [\n _createTextVNode(\"The \" + _toDisplayString(_unref(recordType).upper) + \" record type cannot be looked up in Windows. Neither \", 1),\n _hoisted_31,\n _createTextVNode(\", nor Powershell's \"),\n _hoisted_32,\n _createTextVNode(\" has support for it. You can either install WSL and follow the Linux instructions below, or use an online \" + _toDisplayString(_unref(recordType).upper) + \" lookup tool like the one on the top of this page.\", 1)\n ])),\n _createElementVNode(\"h2\", _hoisted_33, \"How to lookup \" + _toDisplayString(_unref(recordType).upper) + \" records on Mac OS\", 1),\n _createElementVNode(\"p\", null, \"To check the \" + _toDisplayString(_unref(recordType).upper) + \" records for a certain domain name on a Mac, follow these steps:\", 1),\n _createElementVNode(\"ol\", null, [\n _createElementVNode(\"li\", null, [\n _createTextVNode(\"Open a \"),\n _hoisted_34,\n _createTextVNode(\" by entering \"),\n _createElementVNode(\"strong\", null, [\n _createVNode(Icon, { icon: \"type\" }),\n _createTextVNode(\" [command] + [space] → \"),\n _createVNode(Icon, { icon: \"type\" }),\n _createTextVNode(\" 'terminal.app' → \"),\n _createVNode(Icon, { icon: \"type\" }),\n _createTextVNode(\" [enter]\")\n ]),\n _createTextVNode(\".\"),\n _hoisted_35\n ]),\n _createElementVNode(\"li\", null, [\n _createTextVNode(\"Type \"),\n _createElementVNode(\"strong\", null, [\n _createVNode(Icon, { icon: \"type\" }),\n _createTextVNode(),\n _createElementVNode(\"code\", null, \"dig example.com \" + _toDisplayString(_unref(recordType).cli), 1)\n ]),\n _createTextVNode(\" and hit \"),\n _createElementVNode(\"strong\", null, [\n _createVNode(Icon, { icon: \"type\" }),\n _createTextVNode(\" [enter]\")\n ]),\n _createTextVNode(\" to get the \" + _toDisplayString(_unref(recordType).upper) + \" records for \", 1),\n _hoisted_36,\n _createTextVNode(\".\"),\n _createElementVNode(\"img\", {\n loading: \"lazy\",\n class: \"block my-2 w-full border border-black/10 rounded-md shadow md:w-1/2\",\n src: `img/pages/record-type-lookup/${_unref(recordType).cli}-lookup-mac.png`,\n alt: `${_unref(recordType).upper} lookup on a Mac`\n }, null, 8, _hoisted_37)\n ]),\n _createElementVNode(\"li\", null, [\n _createTextVNode(\"The \" + _toDisplayString(_unref(recordType).upper) + \" records are listed below the \", 1),\n _hoisted_38,\n _createTextVNode(\" heading.\")\n ])\n ]),\n _createElementVNode(\"h2\", _hoisted_39, \"How to lookup \" + _toDisplayString(_unref(recordType).upper) + \" records on Linux\", 1),\n _createElementVNode(\"p\", null, \"To check the \" + _toDisplayString(_unref(recordType).upper) + \" records for a certain domain name on Linux, follow these steps:\", 1),\n _createElementVNode(\"ol\", null, [\n _createElementVNode(\"li\", null, [\n _createTextVNode(\"Open a \"),\n _hoisted_40,\n _createTextVNode(\" by entering \"),\n _createElementVNode(\"strong\", null, [\n _createVNode(Icon, { icon: \"type\" }),\n _createTextVNode(\" [Super] → \"),\n _createVNode(Icon, { icon: \"type\" }),\n _createTextVNode(\" 'terminal' → \"),\n _createVNode(Icon, { icon: \"type\" }),\n _createTextVNode(\" [enter]\")\n ]),\n _createTextVNode(\".\"),\n _hoisted_41\n ]),\n _createElementVNode(\"li\", null, [\n _createTextVNode(\"Type \"),\n _createElementVNode(\"strong\", null, [\n _createVNode(Icon, { icon: \"type\" }),\n _createTextVNode(),\n _createElementVNode(\"code\", null, \"dig example.com \" + _toDisplayString(_unref(recordType).cli), 1)\n ]),\n _createTextVNode(\" and hit \"),\n _createElementVNode(\"strong\", null, [\n _createVNode(Icon, { icon: \"type\" }),\n _createTextVNode(\" [enter]\")\n ]),\n _createTextVNode(\" to get the \" + _toDisplayString(_unref(recordType).upper) + \" records for \", 1),\n _hoisted_42,\n _createTextVNode(\".\"),\n _createElementVNode(\"img\", {\n loading: \"lazy\",\n class: \"block my-2 w-full border border-black/10 rounded-md shadow md:w-1/2\",\n src: `img/pages/record-type-lookup/${_unref(recordType).cli}-lookup-linux.png`,\n alt: `${_unref(recordType).upper} lookup in Linux`\n }, null, 8, _hoisted_43)\n ]),\n _createElementVNode(\"li\", null, [\n _createTextVNode(\"The \" + _toDisplayString(_unref(recordType).upper) + \" records are listed below the \", 1),\n _hoisted_44,\n _createTextVNode(\" heading.\")\n ])\n ]),\n _createElementVNode(\"h2\", null, \"How to find \" + _toDisplayString(_unref(recordType).upper) + \" records\", 1),\n _createElementVNode(\"p\", null, \"To check the \" + _toDisplayString(_unref(recordType).upper) + \" records of a domain, follow these steps:\", 1),\n _createElementVNode(\"ol\", null, [\n _createElementVNode(\"li\", null, [\n _createTextVNode(\"Open the \"),\n _createVNode(_component_router_link, {\n to: `/${_unref(recordType).lower}-lookup/`\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_unref(recordType).upper) + \" lookup tool\", 1)\n ]),\n _: 1\n }, 8, [\"to\"]),\n _createTextVNode(\".\"),\n _createElementVNode(\"img\", {\n loading: \"lazy\",\n class: \"block my-2 w-full border border-black/10 rounded-md shadow md:w-1/2\",\n src: `img/pages/record-type-lookup/${_unref(recordType).lower}-lookup-tool.png`,\n alt: `Open the ${_unref(recordType).upper} lookup tool`\n }, null, 8, _hoisted_45)\n ]),\n _createElementVNode(\"li\", null, [\n _createTextVNode(\"Enter the domain name and hit \"),\n _createElementVNode(\"strong\", null, [\n _createVNode(Icon, { icon: \"type\" }),\n _createTextVNode(\" [enter]\")\n ]),\n _createTextVNode(\".\"),\n _createElementVNode(\"img\", {\n loading: \"lazy\",\n class: \"block my-2 w-full border border-black/10 rounded-md shadow md:w-1/2\",\n src: `img/pages/record-type-lookup/${_unref(recordType).lower}-records-example.png`,\n alt: `Example DNS ${_unref(recordType).upper} records`\n }, null, 8, _hoisted_46)\n ]),\n _createElementVNode(\"li\", null, \"The tool will query the \" + _toDisplayString(_unref(recordType).upper) + \" records and shown them at the top of the page.\", 1)\n ]),\n (_unref(recordType).upper === 'CNAME')\n ? (_openBlock(), _createElementBlock(_Fragment, { key: 2 }, [\n _hoisted_47,\n _createElementVNode(\"p\", null, [\n _createVNode(_component_router_link, { to: \"/learning/dns-record-types/cname/\" }, {\n default: _withCtx(() => [\n _createTextVNode(\"Learn more about CNAME records.\")\n ]),\n _: 1\n })\n ])\n ], 64))\n : _createCommentVNode(\"\", true),\n _hoisted_53,\n _createElementVNode(\"p\", null, [\n _createTextVNode(\"There are other types of DNS records then just \" + _toDisplayString(_unref(recordType).upper) + \". The most commonly used DNS record types are A, AAAA, CNAME, NS, TXT, MX and SOA. If you'd like to look up all records of these record types, you can do so with \", 1),\n _createVNode(_component_router_link, { to: \"/\" }, {\n default: _withCtx(() => [\n _createTextVNode(\"nslookup\")\n ]),\n _: 1\n }),\n _createTextVNode(\". Click any of the record types below to find DNS records for that specific record type. \")\n ]),\n _createElementVNode(\"ul\", null, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(recordTypes).filter((other) => other.upper !== _unref(recordType).upper), (otherRecordType, index) => {\n return (_openBlock(), _createElementBlock(\"li\", { key: index }, [\n _createVNode(_component_router_link, {\n to: `/${otherRecordType.lower}-lookup/`\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(otherRecordType.upper) + \" lookup\", 1)\n ]),\n _: 2\n }, 1032, [\"to\"]),\n _createTextVNode(\" — \" + _toDisplayString(otherRecordType.description), 1)\n ]))\n }), 128))\n ])\n ])\n ])\n ]),\n _createVNode(FooterComponent)\n ], 64))\n}\n}\n\n})","import script from \"./RecordTypeLookup.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./RecordTypeLookup.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, createTextVNode as _createTextVNode } from \"vue\"\n\nconst _hoisted_1 = /*#__PURE__*/_createElementVNode(\"span\", { class: \"block mt-3 uppercase font-medium text-neutral-600\" }, \"Question\", -1)\nconst _hoisted_2 = /*#__PURE__*/_createElementVNode(\"span\", { class: \"block mt-3 uppercase font-medium text-neutral-600\" }, \"Answer\", -1)\nconst _hoisted_3 = { class: \"max-w-full overflow-auto [tab-size:2]\" }\nconst _hoisted_4 = /*#__PURE__*/_createElementVNode(\"span\", { class: \"block mt-3 uppercase font-medium text-neutral-600\" }, \"Authority\", -1)\nconst _hoisted_5 = { class: \"max-w-full overflow-auto [tab-size:2]\" }\nconst _hoisted_6 = /*#__PURE__*/_createElementVNode(\"span\", { class: \"block mt-3 uppercase font-medium text-neutral-600\" }, \"Additional\", -1)\nconst _hoisted_7 = { class: \"max-w-full overflow-auto [tab-size:2]\" }\n\nimport { PropType } from 'vue';\nimport { QueryResult, RecordWithInfo } from '@/model/Api';\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'RawRecords',\n props: {\n records: {\n type: Object as PropType,\n required: true,\n },\n},\n setup(__props) {\n\n\n\nfunction tabs(all: Array, current: RecordWithInfo, length: (r: RecordWithInfo) => number) {\n const maxWidth = Math.max(...all.map(length));\n const maxTabs = Math.floor(maxWidth / 2) + 1;\n const currentWidth = length(current);\n const currentTabs = maxTabs - Math.floor(currentWidth / 2);\n return '\\t'.repeat(currentTabs);\n}\n\nfunction toName(record: RecordWithInfo) {\n return record.record.name.length;\n}\n\nfunction toTtl(record: RecordWithInfo) {\n return record.record.ttl.toString().length;\n}\n\nfunction toType(record: RecordWithInfo) {\n return record.record.recordType.length;\n}\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(_Fragment, null, [\n _hoisted_1,\n _createElementVNode(\"pre\", null, \"dig @\" + _toDisplayString(__props.records.query.server.domain || __props.records.query.server.ip) + \" \" + _toDisplayString(__props.records.query.domain) + \" \" + _toDisplayString(__props.records.query.recordType), 1),\n _hoisted_2,\n _createElementVNode(\"pre\", _hoisted_3, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(__props.records.response.answer, (record, index) => {\n return (_openBlock(), _createElementBlock(_Fragment, { key: index }, [\n _createTextVNode(_toDisplayString(record.record.name) + _toDisplayString(tabs(__props.records.response.answer, record, toName)) + _toDisplayString(record.record.ttl) + _toDisplayString(tabs(__props.records.response.answer, record, toTtl)) + _toDisplayString(record.record.recordType) + _toDisplayString(tabs(__props.records.response.answer, record, toType)) + _toDisplayString(record.record.raw) + \"\\n\", 1)\n ], 64))\n }), 128))\n ]),\n _hoisted_4,\n _createElementVNode(\"pre\", _hoisted_5, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(__props.records.response.authority, (record, index) => {\n return (_openBlock(), _createElementBlock(_Fragment, { key: index }, [\n _createTextVNode(_toDisplayString(record.record.name) + _toDisplayString(tabs(__props.records.response.authority, record, toName)) + _toDisplayString(record.record.ttl) + _toDisplayString(tabs(__props.records.response.authority, record, toTtl)) + _toDisplayString(record.record.recordType) + _toDisplayString(tabs(__props.records.response.authority, record, toType)) + _toDisplayString(record.record.raw) + \"\\n\", 1)\n ], 64))\n }), 128))\n ]),\n _hoisted_6,\n _createElementVNode(\"pre\", _hoisted_7, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(__props.records.response.additional, (record, index) => {\n return (_openBlock(), _createElementBlock(_Fragment, { key: index }, [\n _createTextVNode(_toDisplayString(record.record.name) + _toDisplayString(tabs(__props.records.response.additional, record, toName)) + _toDisplayString(record.record.ttl) + _toDisplayString(tabs(__props.records.response.additional, record, toTtl)) + _toDisplayString(record.record.recordType) + _toDisplayString(tabs(__props.records.response.additional, record, toType)) + _toDisplayString(record.record.raw) + \"\\n\", 1)\n ], 64))\n }), 128))\n ])\n ], 64))\n}\n}\n\n})","import script from \"./RawRecords.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./RawRecords.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { createElementVNode as _createElementVNode, vShow as _vShow, openBlock as _openBlock, createElementBlock as _createElementBlock, withDirectives as _withDirectives } from \"vue\"\n\nconst _hoisted_1 = [\"value\"]\nconst _hoisted_2 = {\n ref: \"copyIcon\",\n width: \"1em\",\n height: \"1em\",\n viewBox: \"0 0 16 16\",\n class: \"bi bi-clipboard inline\",\n fill: \"currentColor\",\n xmlns: \"http://www.w3.org/2000/svg\",\n \"data-toggle\": \"tooltip\",\n \"data-placement\": \"top\",\n title: \"Copy\"\n}\nconst _hoisted_3 = /*#__PURE__*/_createElementVNode(\"path\", {\n \"fill-rule\": \"evenodd\",\n d: \"M4 1.5H3a2 2 0 0 0-2 2V14a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V3.5a2 2 0 0 0-2-2h-1v1h1a1 1 0 0 1 1 1V14a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V3.5a1 1 0 0 1 1-1h1v-1z\"\n}, null, -1)\nconst _hoisted_4 = /*#__PURE__*/_createElementVNode(\"path\", {\n \"fill-rule\": \"evenodd\",\n d: \"M9.5 1h-3a.5.5 0 0 0-.5.5v1a.5.5 0 0 0 .5.5h3a.5.5 0 0 0 .5-.5v-1a.5.5 0 0 0-.5-.5zm-3-1A1.5 1.5 0 0 0 5 1.5v1A1.5 1.5 0 0 0 6.5 4h3A1.5 1.5 0 0 0 11 2.5v-1A1.5 1.5 0 0 0 9.5 0h-3z\"\n}, null, -1)\nconst _hoisted_5 = [\n _hoisted_3,\n _hoisted_4\n]\nconst _hoisted_6 = {\n ref: \"copiedIcon\",\n width: \"1em\",\n height: \"1em\",\n viewBox: \"0 0 16 16\",\n class: \"bi bi-clipboard-check inline\",\n fill: \"currentColor\",\n xmlns: \"http://www.w3.org/2000/svg\",\n \"data-placement\": \"top\",\n title: \"Copied!\"\n}\nconst _hoisted_7 = /*#__PURE__*/_createElementVNode(\"path\", {\n \"fill-rule\": \"evenodd\",\n d: \"M4 1.5H3a2 2 0 0 0-2 2V14a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V3.5a2 2 0 0 0-2-2h-1v1h1a1 1 0 0 1 1 1V14a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V3.5a1 1 0 0 1 1-1h1v-1z\"\n}, null, -1)\nconst _hoisted_8 = /*#__PURE__*/_createElementVNode(\"path\", {\n \"fill-rule\": \"evenodd\",\n d: \"M9.5 1h-3a.5.5 0 0 0-.5.5v1a.5.5 0 0 0 .5.5h3a.5.5 0 0 0 .5-.5v-1a.5.5 0 0 0-.5-.5zm-3-1A1.5 1.5 0 0 0 5 1.5v1A1.5 1.5 0 0 0 6.5 4h3A1.5 1.5 0 0 0 11 2.5v-1A1.5 1.5 0 0 0 9.5 0h-3zm4.354 7.146a.5.5 0 0 1 0 .708l-3 3a.5.5 0 0 1-.708 0l-1.5-1.5a.5.5 0 1 1 .708-.708L7.5 9.793l2.646-2.647a.5.5 0 0 1 .708 0z\"\n}, null, -1)\nconst _hoisted_9 = [\n _hoisted_7,\n _hoisted_8\n]\n\nimport { ref } from 'vue';\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'CopyComponent',\n props: {\n content: {\n type: String,\n required: true,\n },\n},\n setup(__props) {\n\n\n\nconst input = ref(null);\nconst recentlyClicked = ref(false);\n\nfunction clicked() {\n if (input.value) {\n input.value.setAttribute('type', 'text');\n input.value.select();\n document.execCommand('copy');\n input.value.blur(); // Prevent keyboard from popping up on Android\n input.value.setAttribute('type', 'hidden');\n\n recentlyClicked.value = true;\n setTimeout(() => { recentlyClicked.value = false; }, 2000);\n }\n}\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"span\", {\n onClick: clicked,\n class: \"cursor-pointer ml-[0.8em]\"\n }, [\n _createElementVNode(\"input\", {\n type: \"hidden\",\n value: __props.content,\n ref_key: \"input\",\n ref: input\n }, null, 8, _hoisted_1),\n _withDirectives((_openBlock(), _createElementBlock(\"svg\", _hoisted_2, _hoisted_5, 512)), [\n [_vShow, !recentlyClicked.value]\n ]),\n _withDirectives((_openBlock(), _createElementBlock(\"svg\", _hoisted_6, _hoisted_9, 512)), [\n [_vShow, recentlyClicked.value]\n ])\n ]))\n}\n}\n\n})","import script from \"./CopyComponent.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./CopyComponent.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, toDisplayString as _toDisplayString } from \"vue\"\n\nimport { computed } from 'vue';\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'DurationComponent',\n props: {\n seconds: {\n type: Number,\n required: true,\n },\n},\n setup(__props) {\n\nconst props = __props;\n\n\n\nconst durationString = computed(() => {\n const h = Math.floor(props.seconds / 3600);\n const m = Math.floor(props.seconds / 60) % 60;\n const s = props.seconds % 60;\n const hs = h > 0 ? [`${h}h`] : [];\n const ms = m > 0 ? [`${m}m`] : [];\n const ss = s > 0 ? [`${s}s`] : [];\n return [...hs, ...ms, ...ss].join(' ');\n});\n\nreturn (_ctx: any,_cache: any) => {\n return _toDisplayString(_unref(durationString))\n}\n}\n\n})","import script from \"./DurationComponent.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./DurationComponent.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createVNode as _createVNode, createTextVNode as _createTextVNode } from \"vue\"\n\nconst _hoisted_1 = {\n key: 0,\n class: \"ml-2 inline-flex items-center rounded-full bg-gray-100 px-2.5 py-0.5 text-xs font-medium text-gray-800\"\n}\nconst _hoisted_2 = { key: 0 }\n\nimport DnsRecordsLink from '@/components/micro/DnsRecordsLink.vue';\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'CnameChainBadge',\n props: {\n chain: {\n type: Array as () => Array,\n required: true,\n },\n},\n setup(__props) {\n\n\n\nreturn (_ctx: any,_cache: any) => {\n return (__props.chain.length > 0)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_1, [\n _createTextVNode(\" For CNAME  \"),\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(__props.chain, (cname, index) => {\n return (_openBlock(), _createElementBlock(\"span\", { key: index }, [\n (index !== 0)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_2, \" ← \"))\n : _createCommentVNode(\"\", true),\n _createVNode(DnsRecordsLink, {\n domain: cname,\n class: \"text-blue-600 hover:text-blue-800 hover:underline\"\n }, null, 8, [\"domain\"])\n ]))\n }), 128))\n ]))\n : _createCommentVNode(\"\", true)\n}\n}\n\n})","import script from \"./CnameChainBadge.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./CnameChainBadge.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, renderList as _renderList, Fragment as _Fragment, createElementBlock as _createElementBlock, createVNode as _createVNode } from \"vue\"\n\nconst _hoisted_1 = { key: 1 }\nconst _hoisted_2 = /*#__PURE__*/_createElementVNode(\"colgroup\", null, [\n /*#__PURE__*/_createElementVNode(\"col\", { class: \"w-2/3\" }),\n /*#__PURE__*/_createElementVNode(\"col\", { class: \"w-1/3\" })\n], -1)\nconst _hoisted_3 = { class: \"border-b-2 border-gray-200 text-left\" }\nconst _hoisted_4 = {\n scope: \"col\",\n class: \"py-1.5 font-medium\"\n}\nconst _hoisted_5 = /*#__PURE__*/_createElementVNode(\"th\", {\n scope: \"col\",\n class: \"py-1.5 font-medium\"\n}, \"Revalidate in\", -1)\nconst _hoisted_6 = { class: \"py-1\" }\nconst _hoisted_7 = { key: 0 }\nconst _hoisted_8 = { key: 1 }\nconst _hoisted_9 = { class: \"py-1\" }\nconst _hoisted_10 = { key: 2 }\n\nimport { computed, PropType } from 'vue';\nimport { useStore } from 'vuex';\nimport Copy from '@/components/micro/CopyComponent.vue';\nimport Duration from '@/components/micro/DurationComponent.vue';\nimport RawRecords from '@/components/micro/RawRecords.vue';\nimport CnameChainBadge from '@/components/micro/CnameChainBadge.vue';\nimport DnsRecordsLink from '@/components/micro/DnsRecordsLink.vue';\nimport { QueryResult } from '@/model/Api';\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'DnsRecords',\n props: {\n records: {\n type: Object as PropType,\n required: true,\n },\n columnTitle: {\n type: String,\n required: true,\n },\n recordType: {\n type: String,\n required: true,\n },\n isDomain: {\n type: Boolean,\n default: false,\n },\n canHaveMultipleRecords: {\n type: Boolean,\n default: true,\n },\n},\n setup(__props) {\n\nconst props = __props;\n\n\n\nconst store = useStore();\nconst showRawOutput = computed(() => store.state.showRawOutput);\n\nconst processedRecords = computed(() => props.records.response.answer.filter((item) => item.record.recordType === props.recordType));\n\nreturn (_ctx: any,_cache: any) => {\n return (_unref(showRawOutput))\n ? (_openBlock(), _createBlock(RawRecords, {\n key: 0,\n records: __props.records\n }, null, 8, [\"records\"]))\n : (_unref(processedRecords).length)\n ? (_openBlock(), _createElementBlock(\"table\", _hoisted_1, [\n _hoisted_2,\n _createElementVNode(\"thead\", null, [\n _createElementVNode(\"tr\", _hoisted_3, [\n _createElementVNode(\"th\", _hoisted_4, _toDisplayString(__props.columnTitle), 1),\n _hoisted_5\n ])\n ]),\n _createElementVNode(\"tbody\", null, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(processedRecords), (record, index) => {\n return (_openBlock(), _createElementBlock(\"tr\", {\n key: index,\n class: \"group\"\n }, [\n _createElementVNode(\"td\", _hoisted_6, [\n (__props.isDomain)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_7, [\n _createVNode(DnsRecordsLink, {\n domain: record.record.raw,\n class: \"text-blue-600 hover:text-blue-800 hover:underline\"\n }, null, 8, [\"domain\"])\n ]))\n : (_openBlock(), _createElementBlock(\"span\", _hoisted_8, _toDisplayString(record.record.raw), 1)),\n _createVNode(CnameChainBadge, {\n chain: record.cnameChain\n }, null, 8, [\"chain\"]),\n _createVNode(Copy, {\n content: record.record.raw,\n class: \"[visibility:hidden] group-hover:visible\"\n }, null, 8, [\"content\"])\n ]),\n _createElementVNode(\"td\", _hoisted_9, [\n _createVNode(Duration, {\n seconds: record.record.ttl\n }, null, 8, [\"seconds\"])\n ])\n ]))\n }), 128))\n ])\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_10, \"No \" + _toDisplayString(__props.recordType) + \" \" + _toDisplayString(__props.canHaveMultipleRecords ? 'records' : 'record') + \" found.\", 1))\n}\n}\n\n})","import script from \"./DnsRecords.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./DnsRecords.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createElementVNode as _createElementVNode, renderList as _renderList, Fragment as _Fragment, createElementBlock as _createElementBlock, createVNode as _createVNode, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode } from \"vue\"\n\nconst _hoisted_1 = { class: \"\" }\nconst _hoisted_2 = {\n key: 1,\n class: \"text-left w-full\"\n}\nconst _hoisted_3 = /*#__PURE__*/_createElementVNode(\"colgroup\", null, [\n /*#__PURE__*/_createElementVNode(\"col\", { class: \"w-3/4\" }),\n /*#__PURE__*/_createElementVNode(\"col\", { class: \"w-1/4\" })\n], -1)\nconst _hoisted_4 = /*#__PURE__*/_createElementVNode(\"thead\", null, [\n /*#__PURE__*/_createElementVNode(\"tr\", { class: \"border-b-2 border-gray-200 text-left\" }, [\n /*#__PURE__*/_createElementVNode(\"th\", {\n scope: \"col\",\n class: \"py-1.5 font-medium\"\n }, \"SOA data\"),\n /*#__PURE__*/_createElementVNode(\"th\", {\n scope: \"col\",\n class: \"py-1.5 font-medium\"\n }, \"Revalidate in\")\n ])\n], -1)\nconst _hoisted_5 = { class: \"w-full ml-2 border-separate border-spacing-y-1.5\" }\nconst _hoisted_6 = { class: \"group\" }\nconst _hoisted_7 = /*#__PURE__*/_createElementVNode(\"th\", {\n scope: \"row\",\n class: \"font-medium\"\n}, \"Start of authority\", -1)\nconst _hoisted_8 = /*#__PURE__*/_createElementVNode(\"th\", {\n scope: \"row\",\n class: \"font-medium\"\n}, \"Email\", -1)\nconst _hoisted_9 = { key: 1 }\nconst _hoisted_10 = /*#__PURE__*/_createElementVNode(\"th\", {\n scope: \"row\",\n class: \"font-medium\"\n}, \"Serial\", -1)\nconst _hoisted_11 = /*#__PURE__*/_createElementVNode(\"th\", {\n scope: \"row\",\n class: \"font-medium\"\n}, \"Refresh\", -1)\nconst _hoisted_12 = /*#__PURE__*/_createElementVNode(\"th\", {\n scope: \"row\",\n class: \"font-medium\"\n}, \"Retry\", -1)\nconst _hoisted_13 = /*#__PURE__*/_createElementVNode(\"th\", {\n scope: \"row\",\n class: \"font-medium\"\n}, \"Expire\", -1)\nconst _hoisted_14 = /*#__PURE__*/_createElementVNode(\"th\", {\n scope: \"row\",\n class: \"font-medium\"\n}, \"Negative cache TTL\", -1)\nconst _hoisted_15 = { class: \"align-top\" }\nconst _hoisted_16 = { key: 2 }\n\nimport { computed, PropType } from 'vue';\nimport { useStore } from 'vuex';\nimport Copy from '@/components/micro/CopyComponent.vue';\nimport Duration from '@/components/micro/DurationComponent.vue';\nimport RawRecords from '@/components/micro/RawRecords.vue';\nimport DnsRecordsLink from '@/components/micro/DnsRecordsLink.vue';\nimport { QueryResult, RecordInfo, SOA } from '@/model/Api';\n\ntype SoaRecordWithInfo = {\n record: SOA;\n} & RecordInfo\n\n// Input: 'aa\\.bb\\.cc.domain.co.uk\n// Match group 1: 'aa\\.bb\\.cc'\n// Match group 3: 'domain.co.uk'\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'SoaRecords',\n props: {\n records: {\n type: Object as PropType,\n required: true,\n },\n domain: {\n type: String,\n required: true,\n },\n},\n setup(__props) {\n\nconst props = __props;\n\n\n\nconst adminHostRegex = /^((.*\\\\\\.)?[^.]*)\\.(.*)/;\n\nconst store = useStore();\nconst showRawOutput = computed(() => store.state.showRawOutput);\n\nconst processedRecords = computed(() => props.records.response.answer.filter((item): item is SoaRecordWithInfo => item.record.recordType === 'SOA'));\n\nconst adminUserAndHost = computed(() => {\n if (processedRecords.value.length > 0) {\n const match = processedRecords.value[0].record.admin.match(adminHostRegex);\n if (match) {\n return {\n user: match[1].replaceAll('\\\\.', '.'),\n host: match[3].slice(0, -1), // Remove the trailing dot\n };\n }\n }\n return {\n user: '',\n host: '',\n };\n});\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (_unref(showRawOutput))\n ? (_openBlock(), _createBlock(RawRecords, {\n key: 0,\n records: __props.records\n }, null, 8, [\"records\"]))\n : (_unref(processedRecords).length !== 0)\n ? (_openBlock(), _createElementBlock(\"table\", _hoisted_2, [\n _hoisted_3,\n _hoisted_4,\n _createElementVNode(\"tbody\", null, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(processedRecords), (record, index) => {\n return (_openBlock(), _createElementBlock(\"tr\", { key: index }, [\n _createElementVNode(\"td\", null, [\n _createElementVNode(\"table\", _hoisted_5, [\n _createElementVNode(\"tbody\", null, [\n _createElementVNode(\"tr\", _hoisted_6, [\n _hoisted_7,\n _createElementVNode(\"td\", null, [\n _createVNode(DnsRecordsLink, {\n domain: record.record.host,\n class: \"text-blue-600 hover:text-blue-800 hover:underline\"\n }, null, 8, [\"domain\"]),\n _createVNode(Copy, {\n content: record.record.host,\n class: \"[visibility:hidden] group-hover:visible\"\n }, null, 8, [\"content\"])\n ])\n ]),\n _createElementVNode(\"tr\", null, [\n _hoisted_8,\n _createElementVNode(\"td\", null, [\n _createTextVNode(_toDisplayString(_unref(adminUserAndHost).user) + \"@\", 1),\n (__props.domain !== _unref(adminUserAndHost).host)\n ? (_openBlock(), _createBlock(DnsRecordsLink, {\n key: 0,\n domain: _unref(adminUserAndHost).host,\n class: \"text-blue-600 hover:text-blue-800 hover:underline\"\n }, null, 8, [\"domain\"]))\n : (_openBlock(), _createElementBlock(\"span\", _hoisted_9, _toDisplayString(_unref(adminUserAndHost).host), 1))\n ])\n ]),\n _createElementVNode(\"tr\", null, [\n _hoisted_10,\n _createElementVNode(\"td\", null, _toDisplayString(record.record.serial), 1)\n ]),\n _createElementVNode(\"tr\", null, [\n _hoisted_11,\n _createElementVNode(\"td\", null, [\n _createVNode(Duration, {\n seconds: record.record.refresh\n }, null, 8, [\"seconds\"])\n ])\n ]),\n _createElementVNode(\"tr\", null, [\n _hoisted_12,\n _createElementVNode(\"td\", null, [\n _createVNode(Duration, {\n seconds: record.record.retry\n }, null, 8, [\"seconds\"])\n ])\n ]),\n _createElementVNode(\"tr\", null, [\n _hoisted_13,\n _createElementVNode(\"td\", null, [\n _createVNode(Duration, {\n seconds: record.record.expire\n }, null, 8, [\"seconds\"])\n ])\n ]),\n _createElementVNode(\"tr\", null, [\n _hoisted_14,\n _createElementVNode(\"td\", null, [\n _createVNode(Duration, {\n seconds: record.record.minimum\n }, null, 8, [\"seconds\"])\n ])\n ])\n ])\n ])\n ]),\n _createElementVNode(\"td\", _hoisted_15, [\n _createVNode(Duration, {\n seconds: record.record.ttl\n }, null, 8, [\"seconds\"])\n ])\n ]))\n }), 128))\n ])\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_16, \"No SOA records found.\"))\n ]))\n}\n}\n\n})","import script from \"./SoaRecords.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./SoaRecords.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, renderList as _renderList, Fragment as _Fragment, createElementBlock as _createElementBlock, withModifiers as _withModifiers, createVNode as _createVNode, normalizeStyle as _normalizeStyle } from \"vue\"\n\nconst _hoisted_1 = { key: 1 }\nconst _hoisted_2 = /*#__PURE__*/_createElementVNode(\"colgroup\", null, [\n /*#__PURE__*/_createElementVNode(\"col\", { style: {\"min-width\":\"35px\"} }),\n /*#__PURE__*/_createElementVNode(\"col\", { style: {\"width\":\"70%\"} }),\n /*#__PURE__*/_createElementVNode(\"col\", { style: {\"width\":\"30%\"} })\n], -1)\nconst _hoisted_3 = { class: \"border-b-2 border-gray-200 text-left\" }\nconst _hoisted_4 = /*#__PURE__*/_createElementVNode(\"th\", { scope: \"col\" }, null, -1)\nconst _hoisted_5 = {\n scope: \"col\",\n class: \"py-1.5 font-medium\"\n}\nconst _hoisted_6 = /*#__PURE__*/_createElementVNode(\"th\", {\n scope: \"col\",\n class: \"py-1.5 font-medium\"\n}, \"Revalidate in\", -1)\nconst _hoisted_7 = { class: \"group\" }\nconst _hoisted_8 = /*#__PURE__*/_createElementVNode(\"svg\", {\n width: \"1em\",\n height: \"1em\",\n viewBox: \"0 0 16 16\",\n class: \"inline\",\n fill: \"currentColor\",\n xmlns: \"http://www.w3.org/2000/svg\"\n}, [\n /*#__PURE__*/_createElementVNode(\"path\", {\n \"fill-rule\": \"evenodd\",\n d: \"M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z\"\n })\n], -1)\nconst _hoisted_9 = [\n _hoisted_8\n]\nconst _hoisted_10 = { key: 1 }\nconst _hoisted_11 = { class: \"py-1\" }\nconst _hoisted_12 = [\"src\", \"alt\", \"title\"]\nconst _hoisted_13 = {\n key: 0,\n class: \"hidden\"\n}\nconst _hoisted_14 = { colspan: \"3\" }\nconst _hoisted_15 = { class: \"bg-neutral-50 pb-4 rounded-sm overflow-hidden\" }\nconst _hoisted_16 = { class: \"block m-6 ml-8 mb-4 text-lg font-medium\" }\nconst _hoisted_17 = { class: \"w-full mx-6 border-separate border-spacing-2\" }\nconst _hoisted_18 = /*#__PURE__*/_createElementVNode(\"th\", {\n scope: \"row\",\n class: \"text-left font-medium\"\n}, \"Location\", -1)\nconst _hoisted_19 = [\"href\"]\nconst _hoisted_20 = /*#__PURE__*/_createElementVNode(\"th\", {\n scope: \"row\",\n class: \"text-left font-medium\"\n}, \"AS\", -1)\nconst _hoisted_21 = /*#__PURE__*/_createElementVNode(\"th\", {\n scope: \"row\",\n class: \"text-left font-medium whitespace-nowrap\"\n}, \"AS name\", -1)\nconst _hoisted_22 = { key: 2 }\n\nimport { computed, PropType } from 'vue';\nimport { useStore } from 'vuex';\nimport Copy from '@/components/micro/CopyComponent.vue';\nimport Duration from '@/components/micro/DurationComponent.vue';\nimport RawRecords from '@/components/micro/RawRecords.vue';\nimport CnameChainBadge from '@/components/micro/CnameChainBadge.vue';\nimport { A, AAAA, QueryResult } from '@/model/Api';\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'IpDnsRecords',\n props: {\n records: {\n type: Object as PropType,\n required: true,\n },\n columnTitle: {\n type: String,\n required: true,\n },\n recordType: {\n type: String,\n required: true,\n },\n},\n setup(__props) {\n\nconst props = __props;\n\n\n\nconst store = useStore();\nconst showRawOutput = computed(() => store.state.showRawOutput);\n\nconst processedRecords = computed(() => props.records.response.answer.filter((item) => ['A', 'AAAA'].includes(item.record.recordType)));\n\nfunction getIp(record: A | AAAA): string {\n if ('ipv4' in record) return record.ipv4;\n return record.ipv6.slice(1, -1);\n}\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", null, [\n (_unref(showRawOutput))\n ? (_openBlock(), _createBlock(RawRecords, {\n key: 0,\n records: __props.records\n }, null, 8, [\"records\"]))\n : (_unref(processedRecords).length !== 0)\n ? (_openBlock(), _createElementBlock(\"table\", _hoisted_1, [\n _hoisted_2,\n _createElementVNode(\"thead\", null, [\n _createElementVNode(\"tr\", _hoisted_3, [\n _hoisted_4,\n _createElementVNode(\"th\", _hoisted_5, _toDisplayString(__props.columnTitle), 1),\n _hoisted_6\n ])\n ]),\n _createElementVNode(\"tbody\", null, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(processedRecords), (record, index) => {\n return (_openBlock(), _createElementBlock(_Fragment, { key: index }, [\n _createElementVNode(\"tr\", _hoisted_7, [\n (record.ipInfo)\n ? (_openBlock(), _createElementBlock(\"td\", {\n key: 0,\n class: \"text-center\",\n onClick: _cache[0] || (_cache[0] = _withModifiers(e => { e.target.closest('tr').nextSibling.classList.toggle('hidden'); e.target.closest('tr').querySelector('svg').classList.toggle('rotate-90') }, [\"stop\"]))\n }, _hoisted_9))\n : (_openBlock(), _createElementBlock(\"td\", _hoisted_10)),\n _createElementVNode(\"td\", _hoisted_11, [\n (record.ipInfo)\n ? (_openBlock(), _createElementBlock(\"img\", {\n key: 0,\n class: \"inline w-4 h-4 mb-0.5 mr-1.5\",\n src: `https://icons.duckduckgo.com/ip3/${record.ipInfo.asdomain}.ico`,\n alt: `Hosted by ${record.ipInfo.asname}`,\n title: `Hosted by ${record.ipInfo.asname}`\n }, null, 8, _hoisted_12))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"span\", null, _toDisplayString(getIp(record.record)), 1),\n _createVNode(CnameChainBadge, {\n chain: record.cnameChain\n }, null, 8, [\"chain\"]),\n _createVNode(Copy, {\n content: getIp(record.record),\n class: \"inline-block -mt-2 invisible group-hover:visible\"\n }, null, 8, [\"content\"])\n ]),\n _createElementVNode(\"td\", null, [\n _createVNode(Duration, {\n seconds: record.record.ttl\n }, null, 8, [\"seconds\"])\n ])\n ]),\n (record.ipInfo)\n ? (_openBlock(), _createElementBlock(\"tr\", _hoisted_13, [\n _createElementVNode(\"td\", _hoisted_14, [\n _createElementVNode(\"div\", _hoisted_15, [\n _createElementVNode(\"div\", {\n class: \"w-full h-32 bg-center\",\n style: _normalizeStyle({ backgroundImage: `url(https://stadiamaps.com/static/outdoors?api_key=23fe682b-ac7c-4f2b-83db-39dcf2a8b9ac¢er=${record.ipInfo.lat + 2},${record.ipInfo.lon}&zoom=2&markers=${record.ipInfo.lat},${record.ipInfo.lon}&size=1038x128)` })\n }, null, 4),\n _createElementVNode(\"span\", _hoisted_16, _toDisplayString(record.ipInfo.org), 1),\n _createElementVNode(\"table\", _hoisted_17, [\n _createElementVNode(\"tbody\", null, [\n _createElementVNode(\"tr\", null, [\n _hoisted_18,\n _createElementVNode(\"td\", null, [\n _createElementVNode(\"a\", {\n href: `https://www.google.com/maps/search/${record.ipInfo.city}, ${record.ipInfo.regionName}, ${record.ipInfo.country}`,\n target: \"_blank\",\n rel: \"noopener noreferrer\",\n class: \"text-blue-600 hover:text-blue-800 hover:underline\"\n }, _toDisplayString(record.ipInfo.city) + \", \" + _toDisplayString(record.ipInfo.regionName) + \", \" + _toDisplayString(record.ipInfo.country), 9, _hoisted_19)\n ])\n ]),\n _createElementVNode(\"tr\", null, [\n _hoisted_20,\n _createElementVNode(\"td\", null, _toDisplayString(record.ipInfo.as), 1)\n ]),\n _createElementVNode(\"tr\", null, [\n _hoisted_21,\n _createElementVNode(\"td\", null, _toDisplayString(record.ipInfo.asname), 1)\n ])\n ])\n ])\n ])\n ])\n ]))\n : _createCommentVNode(\"\", true)\n ], 64))\n }), 128))\n ])\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_22, \"No \" + _toDisplayString(__props.recordType) + \" records found.\", 1))\n ]))\n}\n}\n\n})","import script from \"./IpDnsRecords.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./IpDnsRecords.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode } from \"vue\"\n\nconst _hoisted_1 = {\n key: 0,\n class: \"text-red-600 font-semibold\"\n}\nconst _hoisted_2 = {\n key: 1,\n class: \"text-orange-600 font-semibold\"\n}\nconst _hoisted_3 = {\n key: 2,\n class: \"text-orange-600 font-semibold\"\n}\nconst _hoisted_4 = {\n key: 3,\n class: \"text-green-600 font-semibold\"\n}\n\nimport { PropType } from 'vue';\nimport { Qualifier } from '@/model/Spf';\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'SpfQuantifier',\n props: {\n qualifier: {\n type: String as PropType,\n required: true,\n },\n},\n setup(__props) {\n\n\n\nreturn (_ctx: any,_cache: any) => {\n return (__props.qualifier === 'Fail')\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_1, \"fail\"))\n : (__props.qualifier === 'Softfail')\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_2, \"softfail\"))\n : (__props.qualifier === 'Neutral')\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_3, \"neutral\"))\n : (_openBlock(), _createElementBlock(\"span\", _hoisted_4, \"pass\"))\n}\n}\n\n})","import script from \"./SpfQuantifier.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./SpfQuantifier.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, normalizeClass as _normalizeClass, createElementVNode as _createElementVNode, createVNode as _createVNode, createTextVNode as _createTextVNode, toDisplayString as _toDisplayString, withCtx as _withCtx, createBlock as _createBlock, resolveComponent as _resolveComponent } from \"vue\"\n\nconst _hoisted_1 = { class: \"border border-gray-200 rounded-md divide-y divide-gray-200\" }\nconst _hoisted_2 = { class: \"flex-1 flex\" }\nconst _hoisted_3 = { class: \"flex-1 ml-2\" }\nconst _hoisted_4 = { key: 0 }\nconst _hoisted_5 = {\n key: 0,\n class: \"font-semibold\"\n}\nconst _hoisted_6 = { class: \"font-semibold\" }\nconst _hoisted_7 = { class: \"font-semibold\" }\nconst _hoisted_8 = { class: \"font-semibold\" }\nconst _hoisted_9 = { class: \"font-semibold\" }\nconst _hoisted_10 = { class: \"font-semibold\" }\nconst _hoisted_11 = { class: \"font-semibold\" }\nconst _hoisted_12 = { class: \"font-semibold\" }\nconst _hoisted_13 = { class: \"font-semibold\" }\nconst _hoisted_14 = { class: \"font-semibold\" }\nconst _hoisted_15 = { class: \"font-semibold\" }\nconst _hoisted_16 = { class: \"font-semibold\" }\nconst _hoisted_17 = { class: \"font-semibold\" }\nconst _hoisted_18 = { class: \"font-semibold\" }\nconst _hoisted_19 = { class: \"font-semibold\" }\nconst _hoisted_20 = { class: \"font-semibold\" }\nconst _hoisted_21 = { class: \"font-semibold\" }\nconst _hoisted_22 = { key: 0 }\nconst _hoisted_23 = { key: 0 }\nconst _hoisted_24 = { key: 0 }\nconst _hoisted_25 = { class: \"ml-2 flex-shrink-0 text-gray-500 text-left sm:ml-4\" }\n\nimport { PropType } from 'vue';\nimport SpfQuantifier from '@/components/records/SpfQuantifier.vue';\nimport DnsRecordsLink from '@/components/micro/DnsRecordsLink.vue';\nimport { Qualifier, Term } from '@/model/Spf';\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'SpfRecord',\n props: {\n terms: {\n type: Object as PropType>,\n required: true,\n },\n domain: {\n type: String,\n required: true,\n },\n},\n setup(__props) {\n\n\n\nfunction encodeQualifier(qualifier: Qualifier) {\n switch (qualifier) {\n case 'Pass': return '+';\n case 'Fail': return '-';\n case 'Softfail': return '~';\n case 'Neutral': return '?';\n case 'None': return '';\n default: return '';\n }\n}\n\nfunction sortTerms(l: Term, r: Term) {\n function toValue(t: Term) {\n if ('Directive' in t) return 1;\n if ('Redirect' in t) return 2;\n if ('Exp' in t) return 3;\n if ('UnknownModifier' in t) return 4;\n return 0;\n }\n return toValue(l) - toValue(r);\n}\n\nreturn (_ctx: any,_cache: any) => {\n const _component_router_link = _resolveComponent(\"router-link\")!\n\n return (_openBlock(), _createElementBlock(\"ol\", _hoisted_1, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList([...__props.terms].sort(sortTerms), (term, index) => {\n return (_openBlock(), _createElementBlock(\"li\", {\n key: index,\n class: \"pl-3 pr-4 py-3 flex flex-col justify-between sm:flex-row sm:items-center\"\n }, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"span\", _hoisted_3, [\n (term.Directive)\n ? (_openBlock(), _createElementBlock(_Fragment, { key: 0 }, [\n (index !== 0)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_4, \"Or else, \"))\n : _createCommentVNode(\"\", true),\n (term.Directive.mechanism.All)\n ? (_openBlock(), _createElementBlock(_Fragment, { key: 1 }, [\n _createElementVNode(\"span\", {\n class: _normalizeClass({ capitalize: index === 0 })\n }, \"mark\", 2),\n _createTextVNode(\" the email as \"),\n _createVNode(SpfQuantifier, {\n qualifier: term.Directive.qualifier\n }, null, 8, [\"qualifier\"]),\n _createTextVNode(\". \")\n ], 64))\n : (term.Directive.mechanism.Include)\n ? (_openBlock(), _createElementBlock(_Fragment, { key: 2 }, [\n _createElementVNode(\"span\", {\n class: _normalizeClass([\"text-cyan-600 font-semibold\", { capitalize: index === 0 }])\n }, \"include\", 2),\n _createTextVNode(\" the SPF record at \"),\n (term.Directive.mechanism.Include.domain.includes('%'))\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_5, _toDisplayString(term.Directive.mechanism.Include.domain), 1))\n : (_openBlock(), _createBlock(DnsRecordsLink, {\n key: 1,\n domain: term.Directive.mechanism.Include.domain,\n page: \"SPF\",\n class: \"text-blue-600 hover:text-blue-800 font-semibold\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(term.Directive.mechanism.Include.domain), 1)\n ]),\n _: 2\n }, 1032, [\"domain\"])),\n _createTextVNode(\" and \"),\n _createVNode(SpfQuantifier, {\n qualifier: term.Directive.qualifier\n }, null, 8, [\"qualifier\"]),\n _createTextVNode(\" if it matches the sender's IP. \")\n ], 64))\n : (term.Directive.mechanism.A)\n ? (_openBlock(), _createElementBlock(_Fragment, { key: 3 }, [\n _createVNode(SpfQuantifier, {\n qualifier: term.Directive.qualifier,\n class: _normalizeClass({ capitalize: index === 0 })\n }, null, 8, [\"qualifier\", \"class\"]),\n _createTextVNode(\" if the email sender's IP is in the \"),\n _createVNode(DnsRecordsLink, {\n domain: term.Directive.mechanism.A.domain ? term.Directive.mechanism.A.domain : __props.domain,\n page: \"a\",\n class: \"text-blue-600 hover:text-blue-800 font-semibold\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(\"A\")\n ]),\n _: 2\n }, 1032, [\"domain\"]),\n (term.Directive.mechanism.A.ip4cidr)\n ? (_openBlock(), _createElementBlock(_Fragment, { key: 0 }, [\n _createTextVNode(\" (with CIDR \"),\n _createElementVNode(\"span\", _hoisted_6, \"/\" + _toDisplayString(term.Directive.mechanism.A.ip4cidr), 1),\n _createTextVNode(\")\")\n ], 64))\n : _createCommentVNode(\"\", true),\n _createTextVNode(\" or \"),\n _createVNode(DnsRecordsLink, {\n domain: term.Directive.mechanism.A.domain ? term.Directive.mechanism.A.domain : __props.domain,\n page: \"aaaa\",\n class: \"text-blue-600 hover:text-blue-800 font-semibold\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(\"AAAA\")\n ]),\n _: 2\n }, 1032, [\"domain\"]),\n (term.Directive.mechanism.A.ip6cidr)\n ? (_openBlock(), _createElementBlock(_Fragment, { key: 1 }, [\n _createTextVNode(\" (with CIDR \"),\n _createElementVNode(\"span\", _hoisted_7, \"/\" + _toDisplayString(term.Directive.mechanism.A.ip6cidr), 1),\n _createTextVNode(\")\")\n ], 64))\n : _createCommentVNode(\"\", true),\n _createTextVNode(\" records of \"),\n _createElementVNode(\"span\", _hoisted_8, _toDisplayString(term.Directive.mechanism.A.domain ? term.Directive.mechanism.A.domain : __props.domain), 1),\n _createTextVNode(\". \")\n ], 64))\n : (term.Directive.mechanism.MX)\n ? (_openBlock(), _createElementBlock(_Fragment, { key: 4 }, [\n _createVNode(SpfQuantifier, {\n qualifier: term.Directive.qualifier,\n class: _normalizeClass({ capitalize: index === 0 })\n }, null, 8, [\"qualifier\", \"class\"]),\n _createTextVNode(\" if the email sender's IP is in the MX records \"),\n (term.Directive.mechanism.MX.ip4cidr && term.Directive.mechanism.MX.ip6cidr)\n ? (_openBlock(), _createElementBlock(_Fragment, { key: 0 }, [\n _createTextVNode(\"(with CIDR \"),\n _createElementVNode(\"span\", _hoisted_9, \"/\" + _toDisplayString(term.Directive.mechanism.MX.ip4cidr), 1),\n _createTextVNode(\" for IPv4 and \"),\n _createElementVNode(\"span\", _hoisted_10, \"/\" + _toDisplayString(term.Directive.mechanism.MX.ip6cidr), 1),\n _createTextVNode(\" for IPv6) \")\n ], 64))\n : (term.Directive.mechanism.MX.ip4cidr)\n ? (_openBlock(), _createElementBlock(_Fragment, { key: 1 }, [\n _createTextVNode(\"(with CIDR \"),\n _createElementVNode(\"span\", _hoisted_11, \"/\" + _toDisplayString(term.Directive.mechanism.MX.ip4cidr), 1),\n _createTextVNode(\" for IPv4) \")\n ], 64))\n : (term.Directive.mechanism.MX.ip6cidr)\n ? (_openBlock(), _createElementBlock(_Fragment, { key: 2 }, [\n _createTextVNode(\"(with CIDR \"),\n _createElementVNode(\"span\", _hoisted_12, \"/\" + _toDisplayString(term.Directive.mechanism.MX.ip6cidr), 1),\n _createTextVNode(\" for IPv6) \")\n ], 64))\n : _createCommentVNode(\"\", true),\n _createTextVNode(\"of \"),\n _createElementVNode(\"span\", _hoisted_13, _toDisplayString(term.Directive.mechanism.MX.domain ? term.Directive.mechanism.MX.domain : __props.domain), 1),\n _createTextVNode(\". \")\n ], 64))\n : (term.Directive.mechanism.PTR)\n ? (_openBlock(), _createElementBlock(_Fragment, { key: 5 }, [\n _createVNode(SpfQuantifier, {\n qualifier: term.Directive.qualifier,\n class: _normalizeClass({ capitalize: index === 0 })\n }, null, 8, [\"qualifier\", \"class\"]),\n _createTextVNode(\" if a \"),\n _createVNode(_component_router_link, {\n to: \"/ptr-lookup/\",\n class: \"text-blue-600 hover:text-blue-800 font-semibold\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(\"reverse lookup\")\n ]),\n _: 1\n }),\n _createTextVNode(\" of the email sender's IP resolves to \"),\n _createElementVNode(\"span\", _hoisted_14, _toDisplayString(term.Directive.mechanism.PTR.domain ? term.Directive.mechanism.PTR.domain : __props.domain), 1),\n _createTextVNode(\". \")\n ], 64))\n : (term.Directive.mechanism.IP4)\n ? (_openBlock(), _createElementBlock(_Fragment, { key: 6 }, [\n (term.Directive.mechanism.IP4.ipStart === term.Directive.mechanism.IP4.ipEnd)\n ? (_openBlock(), _createElementBlock(_Fragment, { key: 0 }, [\n _createVNode(SpfQuantifier, {\n qualifier: term.Directive.qualifier,\n class: _normalizeClass({ capitalize: index === 0 })\n }, null, 8, [\"qualifier\", \"class\"]),\n _createTextVNode(\" if the email sender's IP is \"),\n _createElementVNode(\"span\", _hoisted_15, _toDisplayString(term.Directive.mechanism.IP4.ip), 1),\n _createTextVNode(\". \")\n ], 64))\n : (_openBlock(), _createElementBlock(_Fragment, { key: 1 }, [\n _createVNode(SpfQuantifier, {\n qualifier: term.Directive.qualifier,\n class: _normalizeClass({ capitalize: index === 0 })\n }, null, 8, [\"qualifier\", \"class\"]),\n _createTextVNode(\" if the email sender's IP is between \"),\n _createElementVNode(\"span\", _hoisted_16, _toDisplayString(term.Directive.mechanism.IP4.ipStart), 1),\n _createTextVNode(\" and \"),\n _createElementVNode(\"span\", _hoisted_17, _toDisplayString(term.Directive.mechanism.IP4.ipEnd), 1),\n _createTextVNode(\". \")\n ], 64))\n ], 64))\n : (term.Directive.mechanism.IP6)\n ? (_openBlock(), _createElementBlock(_Fragment, { key: 7 }, [\n (term.Directive.mechanism.IP6.ipStart === term.Directive.mechanism.IP6.ipEnd)\n ? (_openBlock(), _createElementBlock(_Fragment, { key: 0 }, [\n _createVNode(SpfQuantifier, {\n qualifier: term.Directive.qualifier,\n class: _normalizeClass({ capitalize: index === 0 })\n }, null, 8, [\"qualifier\", \"class\"]),\n _createTextVNode(\" if the email sender's IP is \"),\n _createElementVNode(\"span\", _hoisted_18, _toDisplayString(term.Directive.mechanism.IP6.ip), 1),\n _createTextVNode(\". \")\n ], 64))\n : (_openBlock(), _createElementBlock(_Fragment, { key: 1 }, [\n _createVNode(SpfQuantifier, {\n qualifier: term.Directive.qualifier,\n class: _normalizeClass({ capitalize: index === 0 })\n }, null, 8, [\"qualifier\", \"class\"]),\n _createTextVNode(\" if the email sender's IP is between \"),\n _createElementVNode(\"span\", _hoisted_19, _toDisplayString(term.Directive.mechanism.IP6.ipStart), 1),\n _createTextVNode(\" and \"),\n _createElementVNode(\"span\", _hoisted_20, _toDisplayString(term.Directive.mechanism.IP6.ipEnd), 1),\n _createTextVNode(\". \")\n ], 64))\n ], 64))\n : (term.Directive.mechanism.Exists)\n ? (_openBlock(), _createElementBlock(_Fragment, { key: 8 }, [\n _createVNode(SpfQuantifier, {\n qualifier: term.Directive.qualifier,\n class: _normalizeClass({ capitalize: index === 0 })\n }, null, 8, [\"qualifier\", \"class\"]),\n _createTextVNode(\" if an A record exists for \"),\n _createElementVNode(\"span\", _hoisted_21, _toDisplayString(term.Directive.mechanism.Exists.domain), 1),\n _createTextVNode(\". \")\n ], 64))\n : _createCommentVNode(\"\", true)\n ], 64))\n : (term.Exp)\n ? (_openBlock(), _createElementBlock(_Fragment, { key: 1 }, [\n (index !== 0)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_22, \"And \"))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"span\", {\n class: _normalizeClass({ capitalize: index === 0 })\n }, \"query\", 2),\n _createTextVNode(),\n _createVNode(DnsRecordsLink, {\n domain: term.Modifier.Exp.domain,\n page: \"SPF\",\n class: \"text-blue-600 hover:text-blue-800 font-semibold\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(term.Modifier.Exp.domain), 1)\n ]),\n _: 2\n }, 1032, [\"domain\"]),\n _createTextVNode(\" for an explanation when the SPF check fails. \")\n ], 64))\n : (term.Redirect)\n ? (_openBlock(), _createElementBlock(_Fragment, { key: 2 }, [\n (index !== 0)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_23, \"Or else, \"))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"span\", {\n class: _normalizeClass([\"text-cyan-600 font-semibold\", { capitalize: index === 0 }])\n }, \"redirect\", 2),\n _createTextVNode(\" SPF checking to \"),\n (term.Redirect.domain.includes('%'))\n ? (_openBlock(), _createElementBlock(_Fragment, { key: 1 }, [\n _createTextVNode(_toDisplayString(term.Redirect.domain), 1)\n ], 64))\n : (_openBlock(), _createBlock(DnsRecordsLink, {\n key: 2,\n domain: term.Redirect.domain,\n page: \"SPF\",\n class: \"text-blue-600 hover:text-blue-800 font-semibold\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(term.Redirect.domain), 1)\n ]),\n _: 2\n }, 1032, [\"domain\"])),\n _createTextVNode(\". \")\n ], 64))\n : (term.UnknownModifier)\n ? (_openBlock(), _createElementBlock(_Fragment, { key: 3 }, [\n (index !== 0)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_24, \"And \"))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"span\", {\n class: _normalizeClass({ capitalize: index === 0 })\n }, \"ignore\", 2),\n _createTextVNode(\" this unknown modifier. \")\n ], 64))\n : _createCommentVNode(\"\", true)\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_25, [\n (term.Directive)\n ? (_openBlock(), _createElementBlock(_Fragment, { key: 0 }, [\n (term.Directive.mechanism.All)\n ? (_openBlock(), _createElementBlock(_Fragment, { key: 0 }, [\n _createTextVNode(_toDisplayString(encodeQualifier(term.Directive.qualifier)) + \"all \", 1)\n ], 64))\n : (term.Directive.mechanism.Include)\n ? (_openBlock(), _createElementBlock(_Fragment, { key: 1 }, [\n _createTextVNode(_toDisplayString(encodeQualifier(term.Directive.qualifier)) + \"include:\" + _toDisplayString(term.Directive.mechanism.Include.domain), 1)\n ], 64))\n : (term.Directive.mechanism.A)\n ? (_openBlock(), _createElementBlock(_Fragment, { key: 2 }, [\n _createTextVNode(_toDisplayString(encodeQualifier(term.Directive.qualifier)) + \"a\" + _toDisplayString(term.Directive.mechanism.A.domain ? ':' + term.Directive.mechanism.A.domain : '') + _toDisplayString(term.Directive.mechanism.A.ip4cidr ? `/${term.Directive.mechanism.A.ip4cidr}` : '') + _toDisplayString(term.Directive.mechanism.A.ip6cidr ? `//${term.Directive.mechanism.A.ip6cidr}` : ''), 1)\n ], 64))\n : (term.Directive.mechanism.MX)\n ? (_openBlock(), _createElementBlock(_Fragment, { key: 3 }, [\n _createTextVNode(_toDisplayString(encodeQualifier(term.Directive.qualifier)) + \"mx\" + _toDisplayString(term.Directive.mechanism.MX.domain ? ':' + term.Directive.mechanism.MX.domain : '') + _toDisplayString(term.Directive.mechanism.MX.ip4cidr ? `/${term.Directive.mechanism.MX.ip4cidr}` : '') + _toDisplayString(term.Directive.mechanism.MX.ip6cidr ? `//${term.Directive.mechanism.MX.ip6cidr}` : ''), 1)\n ], 64))\n : (term.Directive.mechanism.PTR)\n ? (_openBlock(), _createElementBlock(_Fragment, { key: 4 }, [\n _createTextVNode(_toDisplayString(encodeQualifier(term.Directive.qualifier)) + \"ptr\" + _toDisplayString(term.Directive.mechanism.PTR.domain ? ':' + term.Directive.mechanism.PTR.domain : ''), 1)\n ], 64))\n : (term.Directive.mechanism.IP4)\n ? (_openBlock(), _createElementBlock(_Fragment, { key: 5 }, [\n _createTextVNode(_toDisplayString(encodeQualifier(term.Directive.qualifier)) + \"ip4:\" + _toDisplayString(term.Directive.mechanism.IP4.ipStart) + _toDisplayString(term.Directive.mechanism.IP4.cidr ? `/${term.Directive.mechanism.IP4.cidr}` : ''), 1)\n ], 64))\n : (term.Directive.mechanism.IP6)\n ? (_openBlock(), _createElementBlock(_Fragment, { key: 6 }, [\n _createTextVNode(_toDisplayString(encodeQualifier(term.Directive.qualifier)) + \"ip6:\" + _toDisplayString(term.Directive.mechanism.IP6.ipStart) + _toDisplayString(term.Directive.mechanism.IP6.cidr ? `/${term.Directive.mechanism.IP6.cidr}` : ''), 1)\n ], 64))\n : (term.Directive.mechanism.Exists)\n ? (_openBlock(), _createElementBlock(_Fragment, { key: 7 }, [\n _createTextVNode(_toDisplayString(encodeQualifier(term.Directive.qualifier)) + \"exists:\" + _toDisplayString(term.Directive.mechanism.Exists.domain), 1)\n ], 64))\n : _createCommentVNode(\"\", true)\n ], 64))\n : _createCommentVNode(\"\", true),\n (term.Exp)\n ? (_openBlock(), _createElementBlock(_Fragment, { key: 1 }, [\n _createTextVNode(\" exp=\" + _toDisplayString(term.Exp.domain), 1)\n ], 64))\n : (term.Redirect)\n ? (_openBlock(), _createElementBlock(_Fragment, { key: 2 }, [\n _createTextVNode(\" redirect=\" + _toDisplayString(term.Redirect.domain), 1)\n ], 64))\n : (term.UnknownModifier)\n ? (_openBlock(), _createElementBlock(_Fragment, { key: 3 }, [\n _createTextVNode(_toDisplayString(term.UnknownModifier.name) + \"=\" + _toDisplayString(term.UnknownModifier.macroString), 1)\n ], 64))\n : _createCommentVNode(\"\", true)\n ])\n ]))\n }), 128))\n ]))\n}\n}\n\n})","import script from \"./SpfRecord.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./SpfRecord.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, createVNode as _createVNode, createTextVNode as _createTextVNode, createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, withCtx as _withCtx, createBlock as _createBlock, createCommentVNode as _createCommentVNode } from \"vue\"\n\nconst _hoisted_1 = { class: \"block mb-3\" }\nconst _hoisted_2 = { class: \"font-semibold\" }\n\nimport { computed, PropType } from 'vue';\nimport { getRecordType } from '@/common/recordTypes';\nimport Alert from '@/components/micro/AlertComponent.vue';\nimport Duration from '@/components/micro/DurationComponent.vue';\nimport SpfRecordComponent from '@/components/records/SpfRecord.vue';\nimport { QueryResult, RecordInfo, TXT } from '@/model/Api';\n\ntype SpfRecord = {\n record: TXT;\n} & RecordInfo\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'SpfRecords',\n props: {\n records: {\n type: Object as PropType,\n required: true,\n },\n domain: {\n type: String,\n required: true,\n },\n},\n setup(__props) {\n\nconst props = __props;\n\n\n\nconst recordType = getRecordType('SPF');\nconst processedRecords = computed(() => props.records.response.answer.filter((item): item is SpfRecord => item.record.recordType === 'TXT' && item.parsedSpf !== undefined));\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(_Fragment, null, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(processedRecords), (spf, index) => {\n return (_openBlock(), _createElementBlock(_Fragment, { key: index }, [\n _createElementVNode(\"span\", _hoisted_1, [\n _createTextVNode(\"This record is valid for \"),\n _createVNode(Duration, {\n seconds: spf.record.ttl\n }, null, 8, [\"seconds\"]),\n _createTextVNode(\".\")\n ]),\n _createVNode(SpfRecordComponent, {\n domain: __props.domain,\n terms: spf.parsedSpf\n }, null, 8, [\"domain\", \"terms\"])\n ], 64))\n }), 128)),\n (!_unref(processedRecords).length)\n ? (_openBlock(), _createBlock(Alert, {\n key: 0,\n type: \"warning\"\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"span\", null, [\n _createElementVNode(\"span\", _hoisted_2, _toDisplayString(__props.domain), 1),\n _createTextVNode(\" does not have any \" + _toDisplayString(_unref(recordType).upper) + \" records.\", 1)\n ])\n ]),\n _: 1\n }))\n : _createCommentVNode(\"\", true)\n ], 64))\n}\n}\n\n})","import script from \"./SpfRecords.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./SpfRecords.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createElementBlock as _createElementBlock, renderList as _renderList, Fragment as _Fragment, createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, createVNode as _createVNode, createTextVNode as _createTextVNode } from \"vue\"\n\nconst _hoisted_1 = { class: \"component-dns-records component-txt-records\" }\nconst _hoisted_2 = { key: 1 }\nconst _hoisted_3 = {\n key: 0,\n class: \"mt-3 mb-2 font-medium text-lg\"\n}\nconst _hoisted_4 = {\n key: 1,\n class: \"grid grid-cols-1 gap-3 items-stretch sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-4 xl:grid-cols-5\"\n}\nconst _hoisted_5 = [\"src\", \"alt\"]\nconst _hoisted_6 = { class: \"grow flex flex-col p-5 bg-white\" }\nconst _hoisted_7 = { class: \"inline-block pb-3 text-lg font-medium\" }\nconst _hoisted_8 = {\n key: 0,\n class: \"card-text verification-code mb-2\"\n}\nconst _hoisted_9 = { class: \"card-text verification-code\" }\nconst _hoisted_10 = { class: \"grow mt-2 flex flex-col justify-end\" }\nconst _hoisted_11 = { class: \"text-sm text-gray-500\" }\nconst _hoisted_12 = /*#__PURE__*/_createElementVNode(\"h3\", { class: \"mt-5 mb-2 font-medium text-lg\" }, \"SPF record\", -1)\nconst _hoisted_13 = {\n key: 3,\n class: \"mt-3 mb-2 font-medium text-lg\"\n}\nconst _hoisted_14 = {\n key: 4,\n class: \"w-full\"\n}\nconst _hoisted_15 = /*#__PURE__*/_createElementVNode(\"colgroup\", null, [\n /*#__PURE__*/_createElementVNode(\"col\", { class: \"w-2/3\" }),\n /*#__PURE__*/_createElementVNode(\"col\", { class: \"w-1/3\" })\n], -1)\nconst _hoisted_16 = /*#__PURE__*/_createElementVNode(\"thead\", null, [\n /*#__PURE__*/_createElementVNode(\"tr\", { class: \"border-b-2 border-gray-200 text-left\" }, [\n /*#__PURE__*/_createElementVNode(\"th\", {\n scope: \"col\",\n class: \"py-1.5 font-medium\"\n }, \"TXT data\"),\n /*#__PURE__*/_createElementVNode(\"th\", {\n scope: \"col\",\n class: \"py-1.5 font-medium\"\n }, \"Revalidate in\")\n ])\n], -1)\nconst _hoisted_17 = { class: \"py-1 break-all\" }\nconst _hoisted_18 = /*#__PURE__*/_createElementVNode(\"span\", { class: \"text-gray-400\" }, \"\\\"\", -1)\nconst _hoisted_19 = /*#__PURE__*/_createElementVNode(\"span\", { class: \"text-gray-400\" }, \"\\\" \", -1)\nconst _hoisted_20 = { key: 2 }\n\nimport { computed, PropType } from 'vue';\nimport { useStore } from 'vuex';\nimport Duration from '@/components/micro/DurationComponent.vue';\nimport RawRecords from '@/components/micro/RawRecords.vue';\nimport Copy from '@/components/micro/CopyComponent.vue';\nimport CnameChainBadge from '@/components/micro/CnameChainBadge.vue';\nimport SpfRecords from '@/components/records/SpfRecords.vue';\nimport { Term } from '@/model/Spf';\nimport { QueryResult, RecordInfo, TXT } from '@/model/Api';\n\ntype TxtRecordWithInfo = {\n record: TXT;\n} & RecordInfo\n\ntype VerificationRecord = {\n type: 'verification';\n org: string;\n verificationIdentifier: string;\n verificationCode: string;\n}\n\ntype SpfRecord = {\n terms: Array;\n}\n\ntype OtherRecord = {\n type: 'other';\n strings: string[];\n}\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'TxtRecords',\n props: {\n records: {\n type: Object as PropType,\n required: true,\n },\n domain: {\n type: String,\n required: true,\n },\n},\n setup(__props) {\n\nconst props = __props;\n\nconst verificationConfig = [\n { org: 'Google', prefix: 'google-site-verification', separator: '=' },\n { org: 'Microsoft', prefix: 'MS', separator: '=' },\n { org: 'Facebook', prefix: 'facebook-domain-verification', separator: '=' },\n { org: 'GlobalSign', prefix: '_globalsign-domain-verification', separator: '=' },\n { org: 'Adobe identity provider', prefix: 'adobe-idp-site-verification', separator: '=' },\n { org: 'Atlassian', prefix: 'atlassian-domain-verification', separator: '=' },\n { org: 'Amazon SES', prefix: 'amazonses', separator: ':' },\n { org: 'DocuSign', prefix: 'docusign', separator: '=' },\n { org: 'Yandex', prefix: 'yandex-verification', separator: ':' },\n { org: 'GlobalSign', prefix: 'globalsign-domain-verification', separator: '=' },\n { org: 'Zoom', prefix: 'ZOOM_verify', separator: '_' },\n { org: 'Pardot', prefix: 'pardot', separator: '=' },\n { org: 'Apple', prefix: 'apple-domain-verification', separator: '=' },\n { org: 'Apple', prefix: 'apple-domain', separator: '=' },\n // TODO\n // eslint-disable-next-line no-tabs\n // spf2.0\tamazon.com.\tspf2.0/pra include:spf1.amazon.com include:spf2.amazon.com include:amazonses.com -all\n { org: 'Ahrefs', prefix: 'ahrefs-site-verification', separator: '_' },\n { org: 'Cisco CI', prefix: 'cisco-ci-domain-verification', separator: '=' },\n { org: 'Sendinblue', prefix: 'Sendinblue-code', separator: ':' },\n { org: 'Zoho', prefix: 'zoho-verification', separator: '=' },\n // TODO\n // eslint-disable-next-line no-tabs\n // v=DMARC1;\tspringer.com.\tv=DMARC1; p=none; pct=100; rua=mailto:re+undujzcqrz6@dmarc.postmarkapp.com; sp=none; aspf=r;\n { org: 'Mail.ru', prefix: 'mailru-verification', separator: ': ' },\n // TODO\n // eslint-disable-next-line no-tabs\n // v=DKIM1;\twebmd.com.\tv=DKIM1; k=rsa; p=MIIBIjANB\\\" \\\"gkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAglkiu3gC0LOVJ8uWLfw8Ykk9tEFFL/EdXmMFBDUZSHMtPKRG0LBUBsmV/piNw1xsjg+nR3zpqqu68DeV/2GnFTvcKu02YJS7B6T7ibL/One14BoZW5Hpdp2LEnQxmrMxGjlzZHvwI9+3w9qgpo1jCe34jKW2pr6ext5cX7SxyNO41c5l4QgI4oJu3GGq2l\" \"6CMN+OJAc54GU4ofetwS+L8gcWK86\\\" \\\"+ebMilGq3OgpowJZATl27ii7KiIHxZXixNLB5nDVPKrmuN4jcYEYGPEVELK4X/NxZWGTiZoFRXxwTDZYaBrDyxvOoFbQqwwOHfrMHHwTSTSRH5eLp2CGmMQtutwIDAQAB\n { org: 'Statuspage', prefix: 'status-page-domain-verification', separator: '=' },\n { org: 'Webex', prefix: 'webexdomainverification.', separator: '=' },\n { org: 'Microsoft', prefix: 'ms', separator: '=' },\n { org: 'KnownBe4', prefix: 'knowbe4-site-verification', separator: '=' },\n { org: 'Stripe', prefix: 'stripe-verification', separator: '=' },\n { org: 'Cisco CI', prefix: 'ciscocidomainverification', separator: '=' },\n { org: 'Have I been pwned', prefix: 'have-i-been-pwned-verification', separator: '=' },\n { org: 'QuoVadis', prefix: 'QuoVadis', separator: '=' },\n { org: 'Dropbox', prefix: 'dropbox-domain-verification', separator: '=' },\n { org: 'Brave ledger', prefix: 'brave-ledger-verification', separator: '=' },\n { org: 'LogMeIn', prefix: 'logmein-verification-code', separator: '=' },\n { org: 'Workplace', prefix: 'workplace-domain-verification', separator: '=' },\n { org: 'OneTrust', prefix: 'onetrust-domain-verification', separator: '=' },\n { org: 'Adobe Sign', prefix: 'adobe-sign-verification', separator: '=' },\n // TODO\n // eslint-disable-next-line no-tabs\n // k=rsa;\tnypost.com.\tk=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDiTxvTgpRaUPa3Zsawin7pRP+CPIij6s1io0EsxRAfrCox6uw/QdKyEiozMHKz14AWPx6gLqb09Om7xmN9Snb5tcnWQdD46XFld1rm+DVwP1UezK/VagJDp6aMhabY1T1hBpK4R/YBnQ70R1AivL6Km7TfNgRU6UMSx2TtQnkFawIDAQAB\n { org: 'Firebase', prefix: 'firebase', separator: '=' },\n { org: 'Klaviyo', prefix: 'klaviyo-site-verification', separator: '=' },\n { org: 'Loader.io', prefix: 'loaderio', separator: '=' },\n { org: 'Salesforce Marketing Cloud', prefix: 'SFMC', separator: '-' }, // Not sure if this is correct..\n { org: 'Citrix', prefix: 'citrix-verification-code', separator: '=' },\n { org: 'Emma', prefix: 'e2ma-verification', separator: '=' },\n { org: 'Sophos', prefix: 'sophos-domain-verification', separator: '=' },\n { org: 'Detectify', prefix: 'detectify-verification', separator: '=' },\n { org: 'Dynamics 365 marketing', prefix: 'd365mktkey', separator: '=' },\n { org: 'Mail.ru', prefix: 'mailru-domain', separator: ': ' },\n { org: 'Keybase', prefix: 'keybase-site-verification', separator: '=' },\n { org: 'Postman', prefix: 'postman-domain-verification', separator: '=' },\n { org: 'SwissSign', prefix: 'swisssign-check', separator: '=' },\n { org: 'ProtonMail', prefix: 'protonmail-verification', separator: '=' },\n { org: 'Dynatrace', prefix: 'Dynatrace-site-verification', separator: '=' },\n { org: 'Smartsheet', prefix: 'smartsheet-site-validation', separator: '=' },\n { org: 'TeamViewer', prefix: 'teamviewer-sso-verification', separator: '=' },\n { org: 'Wrike', prefix: 'wrike-verification', separator: '=' },\n { org: 'Miro', prefix: 'miro-verification', separator: '=' },\n { org: 'Dailymotion', prefix: 'dailymotion-domain-verification', separator: '=' },\n { org: 'MongoDB', prefix: 'mongodb-site-verification', separator: '=' },\n { org: 'Segment', prefix: 'segment-site-verification', separator: '=' },\n { org: 'Fastly', prefix: 'fastly-domain-delegation', separator: '-' },\n { org: 'Pax8', prefix: 'pax8validat', separator: 'e' }, // Doesn't use a verification code\n { org: 'eSputnik', prefix: 'esputnik-verification', separator: '=' },\n { org: 'CloudHealth', prefix: 'cloudhealth', separator: '=' },\n // TODO\n // eslint-disable-next-line no-tabs\n // _acme-challenge\tchosun.com.\t_acme-challenge.sandbox.chosun.com.=WQZ-txQ8JpD8amqBbabzVkHdqj_f9xJ57ixWAjMOiOw\n { org: 'GoDaddy', prefix: 'godaddyverification', separator: '=' },\n { org: 'SpyCloud', prefix: 'spycloud-domain-verification', separator: '=' },\n // TODO: Unknown verification record\n // eslint-disable-next-line no-tabs\n // hj-ownership\thomedepot.com.\thj-ownership=0ZCtxdHCuFnR\n { org: 'Bugcrowd', prefix: 'bugcrowd-verification', separator: '=' },\n { org: 'Botify', prefix: 'botify-site-verification', separator: '=' },\n { org: 'Heroku', prefix: 'heroku-domain-verification', separator: '=' },\n { org: 'Drift', prefix: 'drift-domain-verification', separator: '=' },\n { org: 'Mixpanel', prefix: 'mixpanel-domain-verify', separator: '=' },\n { org: 'Intacct ESK', prefix: 'intacct-esk', separator: '=' },\n { org: 'Traction Guest', prefix: 'traction-guest', separator: '=' },\n { org: 'AbuseIPDB', prefix: 'abuseipdb-verification', separator: '=' },\n { org: 'Aliyun', prefix: 'aliyun-site-verification', separator: '=' },\n { org: 'Zapier', prefix: 'zapier-domain-verification-challenge', separator: '=' },\n { org: 'HackerOne', prefix: 'h1-domain-verification', separator: '=' },\n { org: 'GitHub', prefix: '_github-challenge-', separator: '=' },\n { org: 'Virtru', prefix: 'virtru-site-verify', separator: '=' },\n { org: 'Nintex', prefix: 'nintex', separator: '.' },\n { org: 'Mail QQ', prefix: 'qqmail-site-verification', separator: '=' },\n { org: 'Beam', prefix: 'beam-verification', separator: '=' },\n { org: 'Trustpilot', prefix: 'Trustpilot-Verification', separator: '-' },\n { org: 'Canva', prefix: 'canva-site-verification', separator: '=' },\n { org: 'FortiFi', prefix: 'fortifi-domain-verification', separator: '=' },\n { org: 'Loom', prefix: 'loom-site-verification', separator: '=' },\n { org: 'Loom', prefix: 'loom-verification', separator: '=' },\n { org: 'Meltwater', prefix: 'meltwater', separator: '_' },\n { org: 'Mandrill', prefix: 'mandrill_verify', separator: '.' },\n { org: 'Cloudflare', prefix: 'cloudflare-verify', separator: '.' },\n { org: 'Docker', prefix: 'docker-verification', separator: '=' },\n { org: 'Fastly', prefix: 'Fastly-Domain-Verify', separator: '-' },\n { org: 'Pendo', prefix: 'pendo-domain-verification', separator: '=' },\n { org: 'Notion', prefix: 'notion-domain-verification', separator: '=' },\n { org: 'Notion', prefix: 'notion_verify', separator: '_' },\n { org: 'Nulab', prefix: 'nulab-verification-code', separator: '=' },\n { org: 'HEY', prefix: 'hey-verification', separator: ':' },\n { org: 'HubSpot', prefix: 'hubspot-domain-verification', separator: '=' },\n { org: 'Slack', prefix: 'slack-domain-verification', separator: '=' },\n { org: 'Webflow', prefix: 'proxy-ssl.webflow.com', separator: '' },\n { org: 'Shopify', prefix: 'shopify-verification-code', separator: '=' },\n { org: 'IdenTrust', prefix: 'identrust_validate', separator: '=' },\n { org: 'Duo', prefix: 'duo_sso_verification', separator: '=' },\n { org: '1Password', prefix: '1password-site-verification', separator: '=' },\n { org: 'Flexera', prefix: 'flexera-domain-verification', separator: '-' },\n { org: 'Appspace', prefix: 'appspace-domain-verification', separator: '=' },\n { org: 'Atlassian', prefix: 'atlassian-sending-domain-verification', separator: '=' },\n { org: 'Actalis', prefix: 'actalis-dcv', separator: '=' },\n { org: 'Intersight', prefix: 'intersight', separator: '=' },\n { org: 'Twilio', prefix: 'twilio-domain-verification', separator: '=' },\n { org: 'Wiz', prefix: 'wiz-domain-verification', separator: '=' },\n { org: 'Vmware Cloud', prefix: 'vmware-cloud-verification', separator: '-' },\n { org: 'Pinterest', prefix: 'pinterest-site-verification', separator: '=' },\n { org: 'GitHub', prefix: 'github-verification', separator: '=' },\n { org: 'Proofpoint', prefix: 'ppe', separator: '-' },\n { org: 'SimpleLogin', prefix: 'sl-verification', separator: '=' },\n { org: 'Dan', prefix: 'dan-ownership-verification', separator: '=' },\n { org: 'Paloalto networks', prefix: 'paloaltonetworks-site-verification', separator: '=' },\n { org: 'Afternic', prefix: 'afternic-verification', separator: '-' },\n { org: 'Validity', prefix: 'Validity-Domain-Verification', separator: '=' },\n { org: 'Autodesk', prefix: 'autodesk-domain-verification', separator: '=' },\n { org: 'Jamf', prefix: 'jamf-site-verification', separator: '=' },\n { org: 'Apple', prefix: 'apple-domain', separator: '=' },\n { org: 'OpenAI', prefix: 'openai-domain-verification', separator: '=' },\n { org: 'Forward Email (paid)', prefix: 'forward-email-site-verification', separator: '=' },\n { org: 'Forward Email (free)', prefix: 'forward-email', separator: '=' },\n { org: 'Yahoo', prefix: 'yahoo-verification-key', separator: '=' },\n { org: 'Lucid', prefix: 'lucid-verification', separator: '=' },\n { org: 'Dell', prefix: 'dell-technologies-domain-verification=', separator: '_' },\n];\n\n\n\nconst store = useStore();\nconst showRawOutput = computed(() => store.state.showRawOutput);\n\nfunction parse(strings: string[]): VerificationRecord | OtherRecord {\n if (strings.length === 1) {\n const config = verificationConfig.find((c) => strings[0].startsWith(c.prefix));\n if (config) {\n const recordWithoutPrefix = strings[0].substring(config.prefix.length);\n if (recordWithoutPrefix.startsWith(config.separator)) {\n return {\n type: 'verification',\n org: config.org,\n verificationIdentifier: '',\n verificationCode: recordWithoutPrefix.substring(config.separator.length),\n } as VerificationRecord;\n }\n const separatorIndex = recordWithoutPrefix.indexOf(config.separator);\n return {\n type: 'verification',\n org: config.org,\n verificationIdentifier: recordWithoutPrefix.substring(0, separatorIndex),\n verificationCode: recordWithoutPrefix.substring(separatorIndex + 1),\n };\n }\n }\n\n return {\n type: 'other',\n strings,\n };\n}\n\nconst processedRecords = computed(() => {\n const processed = {\n verification: Array(),\n spf: Array(),\n other: Array}>(),\n };\n props.records.response.answer\n .filter((item): item is TxtRecordWithInfo => item.record.recordType === 'TXT')\n .forEach((r) => {\n if (r.parsedSpf) {\n processed.spf.push({ terms: r.parsedSpf, ttl: r.record.ttl });\n } else if (r.record.raw) {\n const parsed = parse(r.record.strings);\n if (parsed.type === 'verification') {\n processed.verification.push({ ttl: r.record.ttl, ...parsed });\n } else {\n processed.other.push({\n raw: r.record.raw, ttl: r.record.ttl, cnameChain: r.cnameChain, ...parsed,\n });\n }\n }\n });\n\n processed.verification.sort((a, b) => a.org.localeCompare(b.org));\n return processed;\n});\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (_unref(showRawOutput))\n ? (_openBlock(), _createBlock(RawRecords, {\n key: 0,\n records: __props.records\n }, null, 8, [\"records\"]))\n : (_unref(processedRecords).verification.length + _unref(processedRecords).other.length + _unref(processedRecords).spf.length !== 0)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_2, [\n (_unref(processedRecords).verification.length !== 0)\n ? (_openBlock(), _createElementBlock(\"h3\", _hoisted_3, \"Site ownership verification\"))\n : _createCommentVNode(\"\", true),\n (_unref(processedRecords).verification.length !== 0)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_4, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(processedRecords).verification, (record, index) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n key: index,\n class: \"flex flex-col w-full break-words rounded overflow-hidden shadow-sm bg-gray-100 border border-gray-300\"\n }, [\n _createElementVNode(\"img\", {\n src: 'img/components/txt-records/' + record.org + '.png',\n alt: `${record.org} logo`,\n width: \"128\",\n height: \"104\",\n class: \"mx-auto py-8\"\n }, null, 8, _hoisted_5),\n _createElementVNode(\"div\", _hoisted_6, [\n _createElementVNode(\"span\", _hoisted_7, _toDisplayString(record.org), 1),\n (record.verificationIdentifier !== '')\n ? (_openBlock(), _createElementBlock(\"p\", _hoisted_8, _toDisplayString(record.verificationIdentifier), 1))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"p\", _hoisted_9, _toDisplayString(record.verificationCode), 1),\n _createElementVNode(\"p\", _hoisted_10, [\n _createElementVNode(\"small\", _hoisted_11, [\n _createTextVNode(\"Revalidate in \"),\n _createVNode(Duration, {\n seconds: record.ttl\n }, null, 8, [\"seconds\"])\n ])\n ])\n ])\n ]))\n }), 128))\n ]))\n : _createCommentVNode(\"\", true),\n (_unref(processedRecords).spf.length !== 0)\n ? (_openBlock(), _createElementBlock(_Fragment, { key: 2 }, [\n _hoisted_12,\n _createVNode(SpfRecords, {\n domain: __props.domain,\n records: __props.records\n }, null, 8, [\"domain\", \"records\"])\n ], 64))\n : _createCommentVNode(\"\", true),\n (_unref(processedRecords).other.length !== 0 && _unref(processedRecords).verification.length !== 0)\n ? (_openBlock(), _createElementBlock(\"h3\", _hoisted_13, \"Other TXT records\"))\n : _createCommentVNode(\"\", true),\n (_unref(processedRecords).other.length !== 0)\n ? (_openBlock(), _createElementBlock(\"table\", _hoisted_14, [\n _hoisted_15,\n _hoisted_16,\n _createElementVNode(\"tbody\", null, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(processedRecords).other, (record, index) => {\n return (_openBlock(), _createElementBlock(\"tr\", {\n key: index,\n class: \"group\"\n }, [\n _createElementVNode(\"td\", _hoisted_17, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(record.strings, (string, index) => {\n return (_openBlock(), _createElementBlock(\"span\", { key: index }, [\n _hoisted_18,\n _createTextVNode(_toDisplayString(string), 1),\n _hoisted_19\n ]))\n }), 128)),\n _createVNode(CnameChainBadge, {\n chain: record.cnameChain\n }, null, 8, [\"chain\"]),\n _createVNode(Copy, {\n content: record.raw,\n class: \"[visibility:hidden] group-hover:visible\"\n }, null, 8, [\"content\"])\n ]),\n _createElementVNode(\"td\", null, [\n _createVNode(Duration, {\n seconds: record.ttl\n }, null, 8, [\"seconds\"])\n ])\n ]))\n }), 128))\n ])\n ]))\n : _createCommentVNode(\"\", true)\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_20, \"No TXT records found.\"))\n ]))\n}\n}\n\n})","import script from \"./TxtRecords.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./TxtRecords.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createElementVNode as _createElementVNode, renderList as _renderList, Fragment as _Fragment, createElementBlock as _createElementBlock, createVNode as _createVNode, createTextVNode as _createTextVNode, withCtx as _withCtx } from \"vue\"\n\nconst _hoisted_1 = { key: 1 }\nconst _hoisted_2 = /*#__PURE__*/_createElementVNode(\"colgroup\", null, [\n /*#__PURE__*/_createElementVNode(\"col\", { class: \"w-3/4\" }),\n /*#__PURE__*/_createElementVNode(\"col\", { class: \"w-1/4\" })\n], -1)\nconst _hoisted_3 = /*#__PURE__*/_createElementVNode(\"thead\", null, [\n /*#__PURE__*/_createElementVNode(\"tr\", { class: \"border-b-2 border-gray-200 text-left\" }, [\n /*#__PURE__*/_createElementVNode(\"th\", {\n scope: \"col\",\n class: \"py-1.5 font-medium\"\n }, \"Name server\"),\n /*#__PURE__*/_createElementVNode(\"th\", {\n scope: \"col\",\n class: \"py-1.5 font-medium\"\n }, \"Revalidate in\")\n ])\n], -1)\nconst _hoisted_4 = { class: \"py-1\" }\nconst _hoisted_5 = { class: \"py-1\" }\nconst _hoisted_6 = { key: 2 }\nconst _hoisted_7 = /*#__PURE__*/_createElementVNode(\"span\", null, \"No NS records found.\", -1)\n\nimport { computed, PropType } from 'vue';\nimport { useStore } from 'vuex';\nimport Copy from '@/components/micro/CopyComponent.vue';\nimport Duration from '@/components/micro/DurationComponent.vue';\nimport RawRecords from '@/components/micro/RawRecords.vue';\nimport Alert from '@/components/micro/AlertComponent.vue';\nimport CnameChainBadge from '@/components/micro/CnameChainBadge.vue';\nimport DnsRecordsLink from '@/components/micro/DnsRecordsLink.vue';\nimport { NS, QueryResult, RecordInfo } from '@/model/Api';\n\ntype NsRecordWithInfo = {\n record: NS;\n} & RecordInfo\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'NsRecords',\n props: {\n records: {\n type: Object as PropType,\n required: true,\n },\n domain: {\n type: String,\n required: true,\n },\n},\n setup(__props) {\n\nconst props = __props;\n\n\n\nconst store = useStore();\nconst showRawOutput = computed(() => store.state.showRawOutput);\n\nconst processedRecords = computed(() => {\n const processed: NsRecordWithInfo[] = props.records.response.answer.filter((item): item is NsRecordWithInfo => item.record.recordType === 'NS');\n return processed;\n});\nconst parentDomain = computed(() => props.domain.substring(props.domain.indexOf('.') + 1));\n\nreturn (_ctx: any,_cache: any) => {\n return (_unref(showRawOutput))\n ? (_openBlock(), _createBlock(RawRecords, {\n key: 0,\n records: __props.records\n }, null, 8, [\"records\"]))\n : (_unref(processedRecords).length !== 0)\n ? (_openBlock(), _createElementBlock(\"table\", _hoisted_1, [\n _hoisted_2,\n _hoisted_3,\n _createElementVNode(\"tbody\", null, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(processedRecords), (record, index) => {\n return (_openBlock(), _createElementBlock(\"tr\", {\n key: index,\n class: \"group\"\n }, [\n _createElementVNode(\"td\", _hoisted_4, [\n _createElementVNode(\"span\", null, [\n _createVNode(DnsRecordsLink, {\n domain: record.record.target,\n class: \"text-blue-600 hover:text-blue-800 hover:underline\"\n }, null, 8, [\"domain\"])\n ]),\n _createVNode(CnameChainBadge, {\n chain: record.cnameChain\n }, null, 8, [\"chain\"]),\n _createVNode(Copy, {\n content: record.record.target,\n class: \"[visibility:hidden] group-hover:visible\"\n }, null, 8, [\"content\"])\n ]),\n _createElementVNode(\"td\", _hoisted_5, [\n _createVNode(Duration, {\n seconds: record.record.ttl\n }, null, 8, [\"seconds\"])\n ])\n ]))\n }), 128))\n ])\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_6, [\n _hoisted_7,\n _createVNode(Alert, { type: \"info\" }, {\n default: _withCtx(() => [\n _createTextVNode(\"The name servers for this domain are inherited from one of its ancestor domains. Try its parent domain: \"),\n _createVNode(DnsRecordsLink, {\n domain: _unref(parentDomain),\n class: \"font-semibold hover:underline\"\n }, null, 8, [\"domain\"]),\n _createTextVNode(\". \")\n ]),\n _: 1\n })\n ]))\n}\n}\n\n})","import script from \"./NsRecords.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./NsRecords.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createElementVNode as _createElementVNode, renderList as _renderList, Fragment as _Fragment, createElementBlock as _createElementBlock, toDisplayString as _toDisplayString, createVNode as _createVNode, createTextVNode as _createTextVNode } from \"vue\"\n\nconst _hoisted_1 = { key: 1 }\nconst _hoisted_2 = /*#__PURE__*/_createElementVNode(\"colgroup\", null, [\n /*#__PURE__*/_createElementVNode(\"col\", { class: \"w-2/4\" }),\n /*#__PURE__*/_createElementVNode(\"col\", { class: \"w-1/4\" }),\n /*#__PURE__*/_createElementVNode(\"col\", { class: \"w-1/4\" })\n], -1)\nconst _hoisted_3 = /*#__PURE__*/_createElementVNode(\"thead\", null, [\n /*#__PURE__*/_createElementVNode(\"tr\", { class: \"border-b-2 border-gray-200 text-left\" }, [\n /*#__PURE__*/_createElementVNode(\"th\", {\n scope: \"col\",\n class: \"py-1.5 font-medium\"\n }, \"Mail server\"),\n /*#__PURE__*/_createElementVNode(\"th\", {\n scope: \"col\",\n class: \"py-1.5 font-medium\"\n }, \"Priority\"),\n /*#__PURE__*/_createElementVNode(\"th\", {\n scope: \"col\",\n class: \"py-1.5 font-medium\"\n }, \"Revalidate in\")\n ])\n], -1)\nconst _hoisted_4 = { class: \"py-1\" }\nconst _hoisted_5 = { key: 0 }\nconst _hoisted_6 = { class: \"py-1\" }\nconst _hoisted_7 = {\n key: 0,\n class: \"inline-flex items-center rounded-full bg-blue-100 px-2.5 py-0.5 text-xs font-medium text-blue-800\"\n}\nconst _hoisted_8 = { class: \"py-1\" }\nconst _hoisted_9 = { key: 2 }\n\nimport { computed, PropType } from 'vue';\nimport { useStore } from 'vuex';\nimport { isTheSameDomain } from '@/common/domainName';\nimport Duration from '@/components/micro/DurationComponent.vue';\nimport Copy from '@/components/micro/CopyComponent.vue';\nimport RawRecords from '@/components/micro/RawRecords.vue';\nimport CnameChainBadge from '@/components/micro/CnameChainBadge.vue';\nimport DnsRecordsLink from '@/components/micro/DnsRecordsLink.vue';\nimport { MX, QueryResult, RecordInfo } from '@/model/Api';\n\ntype MxRecordWithInfo = {\n record: MX;\n} & RecordInfo\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'MxRecords',\n props: {\n records: {\n type: Object as PropType,\n required: true,\n },\n},\n setup(__props) {\n\nconst props = __props;\n\n\n\nconst store = useStore();\nconst showRawOutput = computed(() => store.state.showRawOutput);\n\nconst processedRecords = computed(() => {\n const processed: MxRecordWithInfo[] = props.records.response.answer.filter((item): item is MxRecordWithInfo => item.record.recordType === 'MX');\n processed.sort((a, b) => a.record.priority - b.record.priority);\n\n return processed;\n});\n\nconst minPriority = computed(() => Math.min(...processedRecords.value.map((r) => r.record.priority)));\n\nreturn (_ctx: any,_cache: any) => {\n return (_unref(showRawOutput))\n ? (_openBlock(), _createBlock(RawRecords, {\n key: 0,\n records: __props.records\n }, null, 8, [\"records\"]))\n : (_unref(processedRecords).length)\n ? (_openBlock(), _createElementBlock(\"table\", _hoisted_1, [\n _hoisted_2,\n _hoisted_3,\n _createElementVNode(\"tbody\", null, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(processedRecords), (record, index) => {\n return (_openBlock(), _createElementBlock(\"tr\", {\n key: index,\n class: \"group\"\n }, [\n _createElementVNode(\"td\", _hoisted_4, [\n (_unref(isTheSameDomain)(__props.records.query.domain, record.record.target))\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_5, _toDisplayString(record.record.target), 1))\n : (_openBlock(), _createBlock(DnsRecordsLink, {\n key: 1,\n domain: record.record.target,\n class: \"text-blue-600 hover:text-blue-800 hover:underline break-all\"\n }, null, 8, [\"domain\"])),\n _createVNode(CnameChainBadge, {\n chain: record.cnameChain\n }, null, 8, [\"chain\"]),\n _createVNode(Copy, {\n content: record.record.target ,\n class: \"[visibility:hidden] group-hover:visible\"\n }, null, 8, [\"content\"])\n ]),\n _createElementVNode(\"td\", _hoisted_6, [\n _createElementVNode(\"span\", null, _toDisplayString(record.record.priority), 1),\n _createTextVNode(),\n (record.record.priority === _unref(minPriority))\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_7, \" Primary\"))\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"td\", _hoisted_8, [\n _createVNode(Duration, {\n seconds: record.record.ttl\n }, null, 8, [\"seconds\"])\n ])\n ]))\n }), 128))\n ])\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_9, \"No mail servers found.\"))\n}\n}\n\n})","import script from \"./MxRecords.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./MxRecords.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createElementVNode as _createElementVNode, renderList as _renderList, Fragment as _Fragment, createElementBlock as _createElementBlock, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, createVNode as _createVNode } from \"vue\"\n\nconst _hoisted_1 = { key: 1 }\nconst _hoisted_2 = /*#__PURE__*/_createElementVNode(\"colgroup\", null, [\n /*#__PURE__*/_createElementVNode(\"col\", { style: {\"width\":\"17%\"} }),\n /*#__PURE__*/_createElementVNode(\"col\", { style: {\"width\":\"17%\"} }),\n /*#__PURE__*/_createElementVNode(\"col\", { style: {\"width\":\"17%\"} }),\n /*#__PURE__*/_createElementVNode(\"col\", { style: {\"width\":\"25%\"} }),\n /*#__PURE__*/_createElementVNode(\"col\", { style: {\"width\":\"24%\"} })\n], -1)\nconst _hoisted_3 = /*#__PURE__*/_createElementVNode(\"thead\", null, [\n /*#__PURE__*/_createElementVNode(\"tr\", null, [\n /*#__PURE__*/_createElementVNode(\"th\", {\n scope: \"col\",\n class: \"py-1.5 font-medium\"\n }, \"Priority\"),\n /*#__PURE__*/_createElementVNode(\"th\", {\n scope: \"col\",\n class: \"py-1.5 font-medium\"\n }, \"Weight\"),\n /*#__PURE__*/_createElementVNode(\"th\", {\n scope: \"col\",\n class: \"py-1.5 font-medium\"\n }, \"Port\"),\n /*#__PURE__*/_createElementVNode(\"th\", {\n scope: \"col\",\n class: \"py-1.5 font-medium\"\n }, \"Target\"),\n /*#__PURE__*/_createElementVNode(\"th\", {\n scope: \"col\",\n class: \"py-1.5 font-medium\"\n }, \"Revalidate in\")\n ])\n], -1)\nconst _hoisted_4 = {\n key: 0,\n class: \"badge badge-secondary\"\n}\nconst _hoisted_5 = { key: 2 }\n\nimport { computed, PropType } from 'vue';\nimport { useStore } from 'vuex';\nimport Duration from '@/components/micro/DurationComponent.vue';\nimport Copy from '@/components/micro/CopyComponent.vue';\nimport RawRecords from '@/components/micro/RawRecords.vue';\nimport CnameChainBadge from '@/components/micro/CnameChainBadge.vue';\nimport DnsRecordsLink from '@/components/micro/DnsRecordsLink.vue';\nimport { getRecordType } from '@/common/recordTypes';\nimport { QueryResult, RecordInfo, SRV } from '@/model/Api';\n\ntype SrvRecordWithInfo = {\n record: SRV;\n} & RecordInfo\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'SrvRecords',\n props: {\n records: {\n type: Object as PropType,\n required: true,\n },\n},\n setup(__props) {\n\nconst props = __props;\n\nconst recordType = getRecordType('SRV');\n\n\n\nconst store = useStore();\nconst showRawOutput = computed(() => store.state.showRawOutput);\n\nconst processedRecords = computed(() => {\n const processed: SrvRecordWithInfo[] = props.records.response.answer.filter((item): item is SrvRecordWithInfo => item.record.recordType === recordType.upper);\n processed.sort((a, b) => a.record.priority - b.record.priority);\n\n return processed;\n});\n\nconst minPriority = computed(() => Math.min(...processedRecords.value.map((r) => r.record.priority)));\n\nreturn (_ctx: any,_cache: any) => {\n return (_unref(showRawOutput))\n ? (_openBlock(), _createBlock(RawRecords, {\n key: 0,\n records: __props.records\n }, null, 8, [\"records\"]))\n : (_unref(processedRecords).length)\n ? (_openBlock(), _createElementBlock(\"table\", _hoisted_1, [\n _hoisted_2,\n _hoisted_3,\n _createElementVNode(\"tbody\", null, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(processedRecords), (record, index) => {\n return (_openBlock(), _createElementBlock(\"tr\", {\n key: index,\n class: \"group\"\n }, [\n _createElementVNode(\"td\", null, [\n _createElementVNode(\"span\", null, _toDisplayString(record.record.priority), 1),\n _createTextVNode(),\n (record.record.priority === _unref(minPriority))\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_4, \" Primary\"))\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"td\", null, _toDisplayString(record.record.weight), 1),\n _createElementVNode(\"td\", null, _toDisplayString(record.record.port), 1),\n _createElementVNode(\"td\", null, [\n _createVNode(DnsRecordsLink, {\n domain: record.record.target,\n class: \"text-blue-600 hover:text-blue-800 hover:underline\"\n }, null, 8, [\"domain\"]),\n _createVNode(CnameChainBadge, {\n chain: record.cnameChain\n }, null, 8, [\"chain\"]),\n _createVNode(Copy, {\n content: record.record.target,\n class: \"[visibility:hidden] group-hover:visible\"\n }, null, 8, [\"content\"])\n ]),\n _createElementVNode(\"td\", null, [\n _createVNode(Duration, {\n seconds: record.record.ttl\n }, null, 8, [\"seconds\"])\n ])\n ]))\n }), 128))\n ])\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_5, \"No \" + _toDisplayString(_unref(recordType).plural) + \" found.\", 1))\n}\n}\n\n})","import script from \"./SrvRecords.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./SrvRecords.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createElementVNode as _createElementVNode, renderList as _renderList, Fragment as _Fragment, createElementBlock as _createElementBlock, toDisplayString as _toDisplayString, createVNode as _createVNode, createTextVNode as _createTextVNode } from \"vue\"\n\nconst _hoisted_1 = { key: 1 }\nconst _hoisted_2 = /*#__PURE__*/_createElementVNode(\"colgroup\", null, [\n /*#__PURE__*/_createElementVNode(\"col\", { style: {\"width\":\"20%\"} }),\n /*#__PURE__*/_createElementVNode(\"col\", { style: {\"width\":\"20%\"} }),\n /*#__PURE__*/_createElementVNode(\"col\", { style: {\"width\":\"30%\"} }),\n /*#__PURE__*/_createElementVNode(\"col\", { style: {\"width\":\"30%\"} })\n], -1)\nconst _hoisted_3 = /*#__PURE__*/_createElementVNode(\"thead\", null, [\n /*#__PURE__*/_createElementVNode(\"tr\", { class: \"border-b-2 border-gray-200 text-left\" }, [\n /*#__PURE__*/_createElementVNode(\"th\", {\n scope: \"col\",\n class: \"py-1.5 font-medium\"\n }, \"Flags\"),\n /*#__PURE__*/_createElementVNode(\"th\", {\n scope: \"col\",\n class: \"py-1.5 font-medium\"\n }, \"Tag\"),\n /*#__PURE__*/_createElementVNode(\"th\", {\n scope: \"col\",\n class: \"py-1.5 font-medium\"\n }, \"Value\"),\n /*#__PURE__*/_createElementVNode(\"th\", {\n scope: \"col\",\n class: \"py-1.5 font-medium\"\n }, \"Revalidate in\")\n ])\n], -1)\nconst _hoisted_4 = { key: 2 }\n\nimport { computed, PropType } from 'vue';\nimport { useStore } from 'vuex';\nimport Duration from '@/components/micro/DurationComponent.vue';\nimport Copy from '@/components/micro/CopyComponent.vue';\nimport RawRecords from '@/components/micro/RawRecords.vue';\nimport CnameChainBadge from '@/components/micro/CnameChainBadge.vue';\nimport { getRecordType } from '@/common/recordTypes';\nimport { CAA, QueryResult, RecordInfo } from '@/model/Api';\n\ntype CaaRecordWithInfo = {\n record: CAA;\n} & RecordInfo\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'CaaRecords',\n props: {\n records: {\n type: Object as PropType,\n required: true,\n },\n},\n setup(__props) {\n\nconst props = __props;\n\n\n\nconst store = useStore();\nconst showRawOutput = computed(() => store.state.showRawOutput);\n\nconst recordType = getRecordType('CAA');\n\nconst processedRecords = computed(() => {\n const processed: CaaRecordWithInfo[] = props.records.response.answer.filter((item): item is CaaRecordWithInfo => item.record.recordType === recordType.upper);\n return processed;\n});\n\nreturn (_ctx: any,_cache: any) => {\n return (_unref(showRawOutput))\n ? (_openBlock(), _createBlock(RawRecords, {\n key: 0,\n records: __props.records\n }, null, 8, [\"records\"]))\n : (_unref(processedRecords).length)\n ? (_openBlock(), _createElementBlock(\"table\", _hoisted_1, [\n _hoisted_2,\n _hoisted_3,\n _createElementVNode(\"tbody\", null, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(processedRecords), (record, index) => {\n return (_openBlock(), _createElementBlock(\"tr\", {\n key: index,\n class: \"group\"\n }, [\n _createElementVNode(\"td\", null, _toDisplayString(record.record.flags), 1),\n _createElementVNode(\"td\", null, _toDisplayString(record.record.tag), 1),\n _createElementVNode(\"td\", null, [\n _createTextVNode(_toDisplayString(record.record.value) + \" \", 1),\n _createVNode(CnameChainBadge, {\n chain: record.cnameChain\n }, null, 8, [\"chain\"]),\n _createVNode(Copy, {\n content: record.record.value,\n class: \"[visibility:hidden] group-hover:visible\"\n }, null, 8, [\"content\"])\n ]),\n _createElementVNode(\"td\", null, [\n _createVNode(Duration, {\n seconds: record.record.ttl\n }, null, 8, [\"seconds\"])\n ])\n ]))\n }), 128))\n ])\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_4, \"No \" + _toDisplayString(_unref(recordType).plural) + \" found.\", 1))\n}\n}\n\n})","import script from \"./CaaRecords.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./CaaRecords.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createElementVNode as _createElementVNode, renderList as _renderList, Fragment as _Fragment, createElementBlock as _createElementBlock, createVNode as _createVNode, toDisplayString as _toDisplayString } from \"vue\"\n\nconst _hoisted_1 = { key: 1 }\nconst _hoisted_2 = /*#__PURE__*/_createElementVNode(\"colgroup\", null, [\n /*#__PURE__*/_createElementVNode(\"col\", { class: \"w-2/3\" }),\n /*#__PURE__*/_createElementVNode(\"col\", { class: \"w-1/3\" })\n], -1)\nconst _hoisted_3 = /*#__PURE__*/_createElementVNode(\"thead\", null, [\n /*#__PURE__*/_createElementVNode(\"tr\", { class: \"border-b-2 border-gray-200 text-left\" }, [\n /*#__PURE__*/_createElementVNode(\"th\", {\n scope: \"col\",\n class: \"py-1.5 font-medium\"\n }, \"Pointer target\"),\n /*#__PURE__*/_createElementVNode(\"th\", {\n scope: \"col\",\n class: \"py-1.5 font-medium\"\n }, \"Revalidate in\")\n ])\n], -1)\nconst _hoisted_4 = { class: \"py-1\" }\nconst _hoisted_5 = { class: \"py-1\" }\nconst _hoisted_6 = { key: 2 }\n\nimport { computed, PropType } from 'vue';\nimport { useStore } from 'vuex';\nimport Copy from '@/components/micro/CopyComponent.vue';\nimport Duration from '@/components/micro/DurationComponent.vue';\nimport RawRecords from '@/components/micro/RawRecords.vue';\nimport CnameChainBadge from '@/components/micro/CnameChainBadge.vue';\nimport DnsRecordsLink from '@/components/micro/DnsRecordsLink.vue';\nimport { getRecordType } from '@/common/recordTypes';\nimport { PTR, QueryResult, RecordInfo } from '@/model/Api';\n\ntype PtrRecordWithInfo = {\n record: PTR;\n} & RecordInfo\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'PtrRecords',\n props: {\n records: {\n type: Object as PropType,\n required: true,\n },\n domain: {\n type: String,\n required: true,\n },\n},\n setup(__props) {\n\nconst props = __props;\n\nconst recordType = getRecordType('PTR');\n\n\n\nconst store = useStore();\nconst showRawOutput = computed(() => store.state.showRawOutput);\n\nconst processedRecords = computed(() => {\n const processed: PtrRecordWithInfo[] = props.records.response.answer.filter((item): item is PtrRecordWithInfo => item.record.recordType === recordType.upper);\n return processed;\n});\n\nreturn (_ctx: any,_cache: any) => {\n return (_unref(showRawOutput))\n ? (_openBlock(), _createBlock(RawRecords, {\n key: 0,\n records: __props.records\n }, null, 8, [\"records\"]))\n : (_unref(processedRecords).length !== 0)\n ? (_openBlock(), _createElementBlock(\"table\", _hoisted_1, [\n _hoisted_2,\n _hoisted_3,\n _createElementVNode(\"tbody\", null, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(processedRecords), (record, index) => {\n return (_openBlock(), _createElementBlock(\"tr\", {\n key: index,\n class: \"group\"\n }, [\n _createElementVNode(\"td\", _hoisted_4, [\n _createElementVNode(\"span\", null, [\n _createVNode(DnsRecordsLink, {\n domain: record.record.target,\n class: \"text-blue-600 hover:text-blue-800 hover:underline\"\n }, null, 8, [\"domain\"])\n ]),\n _createVNode(CnameChainBadge, {\n chain: record.cnameChain\n }, null, 8, [\"chain\"]),\n _createVNode(Copy, {\n content: record.record.target,\n class: \"[visibility:hidden] group-hover:visible\"\n }, null, 8, [\"content\"])\n ]),\n _createElementVNode(\"td\", _hoisted_5, [\n _createVNode(Duration, {\n seconds: record.record.ttl\n }, null, 8, [\"seconds\"])\n ])\n ]))\n }), 128))\n ])\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_6, \"No \" + _toDisplayString(_unref(recordType).plural) + \" found.\", 1))\n}\n}\n\n})","import script from \"./PtrRecords.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./PtrRecords.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createElementVNode as _createElementVNode, renderList as _renderList, Fragment as _Fragment, createElementBlock as _createElementBlock, toDisplayString as _toDisplayString, createVNode as _createVNode } from \"vue\"\n\nconst _hoisted_1 = { key: 1 }\nconst _hoisted_2 = /*#__PURE__*/_createElementVNode(\"colgroup\", null, [\n /*#__PURE__*/_createElementVNode(\"col\", { style: {\"width\":\"15%\"} }),\n /*#__PURE__*/_createElementVNode(\"col\", { style: {\"width\":\"10%\"} }),\n /*#__PURE__*/_createElementVNode(\"col\", { style: {\"width\":\"15%\"} }),\n /*#__PURE__*/_createElementVNode(\"col\", { style: {\"width\":\"45%\"} }),\n /*#__PURE__*/_createElementVNode(\"col\", { style: {\"width\":\"15%\"} })\n], -1)\nconst _hoisted_3 = /*#__PURE__*/_createElementVNode(\"thead\", null, [\n /*#__PURE__*/_createElementVNode(\"tr\", { class: \"border-b-2 border-gray-200 text-left\" }, [\n /*#__PURE__*/_createElementVNode(\"th\", {\n scope: \"col\",\n class: \"py-1.5 font-medium\"\n }, \"Certificate usage\"),\n /*#__PURE__*/_createElementVNode(\"th\", {\n scope: \"col\",\n class: \"py-1.5 font-medium\"\n }, \"Selector\"),\n /*#__PURE__*/_createElementVNode(\"th\", {\n scope: \"col\",\n class: \"py-1.5 font-medium\"\n }, \"Matching type\"),\n /*#__PURE__*/_createElementVNode(\"th\", {\n scope: \"col\",\n class: \"py-1.5 font-medium\"\n }, \"Certificate association data\"),\n /*#__PURE__*/_createElementVNode(\"th\", {\n scope: \"col\",\n class: \"py-1.5 font-medium\"\n }, \"Revalidate in\")\n ])\n], -1)\nconst _hoisted_4 = { class: \"py-1\" }\nconst _hoisted_5 = { class: \"py-1\" }\nconst _hoisted_6 = { class: \"py-1\" }\nconst _hoisted_7 = { class: \"py-1\" }\nconst _hoisted_8 = { class: \"py-1\" }\nconst _hoisted_9 = { key: 2 }\n\nimport { computed, PropType } from 'vue';\nimport { useStore } from 'vuex';\nimport Copy from '@/components/micro/CopyComponent.vue';\nimport Duration from '@/components/micro/DurationComponent.vue';\nimport RawRecords from '@/components/micro/RawRecords.vue';\nimport CnameChainBadge from '@/components/micro/CnameChainBadge.vue';\nimport { getRecordType } from '@/common/recordTypes';\nimport { QueryResult, RecordInfo, TLSA } from '@/model/Api';\n\ntype TlsaRecordWithInfo = {\n record: TLSA;\n} & RecordInfo\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'TlsaRecords',\n props: {\n records: {\n type: Object as PropType,\n required: true,\n },\n domain: {\n type: String,\n required: true,\n },\n},\n setup(__props) {\n\nconst props = __props;\n\n\n\nconst recordType = getRecordType('TLSA');\n\nconst store = useStore();\nconst showRawOutput = computed(() => store.state.showRawOutput);\n\nconst processedRecords = computed(() => {\n const processed: TlsaRecordWithInfo[] = props.records.response.answer.filter((item): item is TlsaRecordWithInfo => item.record.recordType === recordType.upper);\n return processed;\n});\n\nreturn (_ctx: any,_cache: any) => {\n return (_unref(showRawOutput))\n ? (_openBlock(), _createBlock(RawRecords, {\n key: 0,\n records: __props.records\n }, null, 8, [\"records\"]))\n : (_unref(processedRecords).length !== 0)\n ? (_openBlock(), _createElementBlock(\"table\", _hoisted_1, [\n _hoisted_2,\n _hoisted_3,\n _createElementVNode(\"tbody\", null, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(processedRecords), (record, index) => {\n return (_openBlock(), _createElementBlock(\"tr\", {\n key: index,\n class: \"group\"\n }, [\n _createElementVNode(\"td\", _hoisted_4, [\n _createElementVNode(\"span\", null, _toDisplayString(record.record.certificateUsage), 1)\n ]),\n _createElementVNode(\"td\", _hoisted_5, [\n _createElementVNode(\"span\", null, _toDisplayString(record.record.selector), 1)\n ]),\n _createElementVNode(\"td\", _hoisted_6, [\n _createElementVNode(\"span\", null, _toDisplayString(record.record.matchingType), 1)\n ]),\n _createElementVNode(\"td\", _hoisted_7, [\n _createElementVNode(\"span\", null, _toDisplayString(record.record.certificateAssociationData), 1),\n _createVNode(CnameChainBadge, {\n chain: record.cnameChain\n }, null, 8, [\"chain\"]),\n _createVNode(Copy, {\n content: record.record.certificateAssociationData,\n class: \"[visibility:hidden] group-hover:visible\"\n }, null, 8, [\"content\"])\n ]),\n _createElementVNode(\"td\", _hoisted_8, [\n _createVNode(Duration, {\n seconds: record.record.ttl\n }, null, 8, [\"seconds\"])\n ])\n ]))\n }), 128))\n ])\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_9, \"No \" + _toDisplayString(_unref(recordType).plural) + \" found.\", 1))\n}\n}\n\n})","import script from \"./TlsaRecords.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./TlsaRecords.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n","import { render } from \"./SkeletonComponent.vue?vue&type=template&id=4d790add\"\nconst script = {}\n\nimport exportComponent from \"/builds/nslookupio/nslookupio/front-end/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","export type ApiErrorType = 'Unknown' | 'HasNoReverseDnsRecord' | 'InvalidDomain' | 'DnsQueryFailed' | 'NoDnsServersAvailable'\n\nexport function toErrorType(errorMessage: string): ApiErrorType {\n switch (errorMessage) {\n case 'IP has no reverse DNS record':\n return 'HasNoReverseDnsRecord';\n case 'Invalid domain':\n return 'InvalidDomain';\n case 'DNS query failed':\n return 'DnsQueryFailed';\n case 'No DNS servers available':\n return 'NoDnsServersAvailable';\n default:\n return 'Unknown';\n }\n}\n","// eslint-disable-next-line import/prefer-default-export\nexport const dnsServers = {\n cloudflare: {\n pretty: 'Cloudflare',\n type: 'popular',\n },\n google: {\n pretty: 'Google',\n type: 'popular',\n },\n controldunfiltered: {\n pretty: 'Control D Unfintered',\n type: 'control d',\n },\n controldmalware: {\n pretty: 'Control D Malware',\n type: 'control d',\n },\n controldadstracking: {\n pretty: 'Control D Ads & Tracking',\n type: 'control d',\n },\n controldsocial: {\n pretty: 'Control D Social',\n type: 'control d',\n },\n controldfamilyfriendly: {\n pretty: 'Control D Family Friendly',\n type: 'control d',\n },\n controlduncesored: {\n pretty: 'Control D Uncensored',\n type: 'control d',\n },\n authoritative: {\n pretty: 'authoritative',\n type: 'authoritative',\n },\n southafrica: {\n pretty: 'South Africa',\n type: 'local',\n },\n australia: {\n pretty: 'Australia',\n type: 'local',\n },\n india: {\n pretty: 'India',\n type: 'local',\n },\n russia: {\n pretty: 'Russia',\n type: 'local',\n },\n thenetherlands: {\n pretty: 'The Netherlands',\n type: 'local',\n },\n ukraine: {\n pretty: 'Ukraine',\n type: 'local',\n },\n canada: {\n pretty: 'Canada',\n type: 'local',\n },\n usa: {\n pretty: 'United States of America',\n type: 'local',\n },\n brazil: {\n pretty: 'Brazil',\n type: 'local',\n },\n};\n","import { defineComponent as _defineComponent } from 'vue'\nimport { toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, createTextVNode as _createTextVNode, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createVNode as _createVNode, unref as _unref, withCtx as _withCtx, createBlock as _createBlock } from \"vue\"\n\nconst _hoisted_1 = { key: 0 }\nconst _hoisted_2 = { key: 1 }\nconst _hoisted_3 = { key: 2 }\n\nimport { PropType } from 'vue';\nimport DnsRecordsLink from '@/components/micro/DnsRecordsLink.vue';\nimport Alert from '@/components/micro/AlertComponent.vue';\nimport { dnsServers } from '@/common/dnsServers';\nimport { ApiErrorType } from '@/model/ApiErrorAlert';\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'ApiErrorAlert',\n props: {\n error: {\n type: String as PropType,\n required: true,\n },\n domain: {\n type: String,\n required: true,\n },\n dnsserver: {\n type: String,\n required: true,\n },\n},\n setup(__props) {\n\n\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createBlock(Alert, { type: \"warning\" }, {\n default: _withCtx(() => [\n (__props.error === 'HasNoReverseDnsRecord')\n ? (_openBlock(), _createElementBlock(_Fragment, { key: 0 }, [\n _createTextVNode(\" IP addresses can't have any DNS records attached to them. We tried to find the hostname of this IP address with a reverse DNS lookup, and show the DNS records for that instead. However, the IP address \"),\n _createElementVNode(\"b\", null, _toDisplayString(__props.domain), 1),\n _createTextVNode(\" has no reverse DNS record. \")\n ], 64))\n : (__props.error === 'InvalidDomain')\n ? (_openBlock(), _createElementBlock(_Fragment, { key: 1 }, [\n _createElementVNode(\"b\", null, _toDisplayString(__props.domain), 1),\n _createTextVNode(\" is not a valid domain name. For example, try \"),\n _createVNode(DnsRecordsLink, {\n domain: \"wikipedia.org\",\n class: \"font-semibold hover:underline\"\n }),\n _createTextVNode(\" or \"),\n _createVNode(DnsRecordsLink, {\n domain: \"www.twitter.com\",\n class: \"font-semibold hover:underline\"\n }),\n _createTextVNode(\" to view their DNS records. \")\n ], 64))\n : (__props.error === 'DnsQueryFailed')\n ? (_openBlock(), _createElementBlock(_Fragment, { key: 2 }, [\n _createTextVNode(\" One or more DNS queries failed while looking up DNS records for \"),\n _createElementVNode(\"b\", null, _toDisplayString(__props.domain), 1),\n _createTextVNode(\". Please try again. \")\n ], 64))\n : (__props.error === 'NoDnsServersAvailable')\n ? (_openBlock(), _createElementBlock(_Fragment, { key: 3 }, [\n (_unref(dnsServers)[__props.dnsserver].type === 'local')\n ? (_openBlock(), _createElementBlock(\"p\", _hoisted_1, \"None of the DNS server in \" + _toDisplayString(_unref(dnsServers)[__props.dnsserver].pretty) + \" are available. Please try again another DNS server by selecting it above.\", 1))\n : (_unref(dnsServers)[__props.dnsserver].type === 'popular')\n ? (_openBlock(), _createElementBlock(\"p\", _hoisted_2, \"None of the \" + _toDisplayString(_unref(dnsServers)[__props.dnsserver].pretty) + \" DNS servers are available. Please try again another DNS server by selecting it above.\", 1))\n : (_openBlock(), _createElementBlock(\"p\", _hoisted_3, \"None of the authoritative DNS servers are available. Please try again another DNS server by selecting it above.\"))\n ], 64))\n : (_openBlock(), _createElementBlock(_Fragment, { key: 4 }, [\n _createTextVNode(\" Nslookup was unable to find DNS records for \"),\n _createElementVNode(\"b\", null, _toDisplayString(__props.domain), 1),\n _createTextVNode(\". \")\n ], 64))\n ]),\n _: 1\n }))\n}\n}\n\n})","import script from \"./ApiErrorAlert.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./ApiErrorAlert.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { Term } from '@/model/Spf';\n\nexport type IpInfo = {\n query: string;\n countryCode: string;\n country: string;\n regionName: string;\n city: string;\n lat: number;\n lon: number;\n org: string;\n as: string;\n asname: string;\n asdomain: string;\n isAnycast: boolean;\n}\n\nexport type RrBase = {\n raw: string;\n name: string;\n ttl: number;\n recordType: string;\n}\n\nexport type A = RrBase & { ipv4: string; recordType: 'A'; }\nexport type AAAA = RrBase & { ipv6: string; recordType: 'AAAA'; }\nexport type CAA = RrBase & { flags: number, tag: string, value: string; recordType: 'CAA'; }\nexport type CNAME = RrBase & { target: string; recordType: 'CNAME'; }\nexport type MX = RrBase & { priority: number; target: string; recordType: 'MX'; }\nexport type NS = RrBase & { target: string; recordType: 'NS'; }\nexport type PTR = RrBase & { target: string; recordType: 'PTR'; }\nexport type SOA = RrBase & {\n host: string;\n admin: string;\n serial: number;\n refresh: number;\n retry: number;\n expire: number;\n minimum: number;\n recordType: 'SOA';\n}\nexport type SRV = RrBase & {\n priority: number;\n weight: number;\n port: number;\n target: string;\n recordType: 'SRV';\n}\nexport type TLSA = RrBase & {\n certificateUsage: number;\n selector: number;\n matchingType: number;\n certificateAssociationData: string;\n recordType: 'TLSA';\n}\nexport type TXT = RrBase & { strings: string[]; recordType: 'TXT'; }\nexport type NotImplemented = RrBase & { recordType: string; }\n\nexport type RR = A | AAAA | CAA | CNAME | MX | NS | PTR | SOA | SRV | TLSA | TXT | NotImplemented\n\nexport type RecordInfo = {\n cnameChain: Array;\n ipInfo: IpInfo | null;\n parsedSpf: Array | null;\n}\n\nexport type RecordWithInfo = {\n record: RR;\n} & RecordInfo\n\nexport type Geolocation = {\n lat: number;\n lon: number;\n}\n\nexport type DnsServer = {\n ip: string | null;\n domain: string | null;\n location: Geolocation | null;\n}\n\nexport const emptyDnsServer: DnsServer = {\n ip: null,\n domain: null,\n location: null,\n};\n\nexport type Query = {\n server: DnsServer,\n domain: string,\n recordType: string\n}\n\nexport const emptyQuery: Query = {\n server: emptyDnsServer,\n domain: '',\n recordType: '',\n};\n\nexport type DnsResponse = {\n answer: Array;\n authority: Array;\n additional: Array;\n // header: Header;\n}\n\nexport const emptyResponse: DnsResponse = {\n answer: [],\n authority: [],\n additional: [],\n};\n\nexport type QueryResult = {\n query: Query;\n response: DnsResponse;\n}\n\nexport const emptyQueryResult: QueryResult = {\n query: emptyQuery,\n response: emptyResponse,\n};\n\nexport type PopularRecords = {\n a: QueryResult;\n aaaa: QueryResult;\n cname: QueryResult;\n txt: QueryResult;\n ns: QueryResult;\n mx: QueryResult;\n soa: QueryResult;\n}\n\nexport const emptyPopularRecords: PopularRecords = {\n a: emptyQueryResult,\n aaaa: emptyQueryResult,\n cname: emptyQueryResult,\n txt: emptyQueryResult,\n ns: emptyQueryResult,\n mx: emptyQueryResult,\n soa: emptyQueryResult,\n};\n\nexport type GetRecordsResponse = {\n punycodeDomain: string;\n unicodeDomain: string;\n records: PopularRecords;\n}\n\nexport type OtherRecordsResponse = {\n punycodeDomain: string;\n unicodeDomain: string;\n queryResult: QueryResult;\n}\n\nexport type WebserversResponse = {\n punycodeDomain: string;\n unicodeDomain: string;\n a: QueryResult;\n aaaa: QueryResult;\n}\n","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createVNode as _createVNode, Teleport as _Teleport, openBlock as _openBlock, createBlock as _createBlock, toDisplayString as _toDisplayString, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createElementVNode as _createElementVNode, createTextVNode as _createTextVNode, withCtx as _withCtx, renderList as _renderList, Fragment as _Fragment, resolveComponent as _resolveComponent } from \"vue\"\n\nconst _hoisted_1 = { class: \"flex-grow bg-neutral-100\" }\nconst _hoisted_2 = { class: \"container mx-auto max-w-6xl\" }\nconst _hoisted_3 = { class: \"flex flex-col justify-between mt-8 mb-6 ml-6 sm:flex-row sm:items-center\" }\nconst _hoisted_4 = { class: \"text-3xl\" }\nconst _hoisted_5 = { key: 0 }\nconst _hoisted_6 = { key: 1 }\nconst _hoisted_7 = /*#__PURE__*/_createElementVNode(\"button\", {\n type: \"button\",\n class: \"inline-flex items-center rounded-md border border-gray-300 bg-white px-3 py-2 text-sm font-medium leading-4 text-gray-700 shadow-sm hover:bg-gray-50 focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:ring-offset-2\"\n}, \"All DNS records\", -1)\nconst _hoisted_8 = { class: \"bg-white shadow p-6 pb-10 rounded-t\" }\nconst _hoisted_9 = {\n key: 1,\n \"aria-hidden\": \"true\"\n}\nconst _hoisted_10 = { class: \"mb-3\" }\nconst _hoisted_11 = { key: 0 }\nconst _hoisted_12 = { class: \"font-semibold\" }\nconst _hoisted_13 = /*#__PURE__*/_createElementVNode(\"h2\", { class: \"mt-8 mb-2 font-semibold text-2xl\" }, \"Question and response\", -1)\nconst _hoisted_14 = { class: \"mt-8 mb-2 font-semibold text-2xl\" }\nconst _hoisted_15 = { class: \"flex flex-col lg:flex-row\" }\nconst _hoisted_16 = { class: \"shrink max-w-xl\" }\nconst _hoisted_17 = {\n class: \"mt-3 w-[500px] max-w-full sm:px-6 lg:mt-0\",\n autocomplete: \"off\"\n}\n\nimport {\n computed, ref, watch,\n} from 'vue';\nimport { useRouter } from 'vue-router';\nimport axios, { Canceler } from 'axios';\nimport { domainNameToDisplayName, domainNameToUrlPath, urlPathToDomainName } from '@/common/domainName';\nimport HeaderComponent from '@/components/layout/HeaderComponent.vue';\nimport FooterComponent from '@/components/layout/FooterComponent.vue';\nimport DomainSearch from '@/components/DomainSearch.vue';\nimport Alert from '@/components/micro/AlertComponent.vue';\nimport DnsRecordsLink from '@/components/micro/DnsRecordsLink.vue';\nimport { getRecordType } from '@/common/recordTypes';\nimport RawRecords from '@/components/micro/RawRecords.vue';\nimport DnsRecords from '@/components/records/DnsRecords.vue';\nimport SoaRecords from '@/components/records/SoaRecords.vue';\nimport IpDnsRecords from '@/components/records/IpDnsRecords.vue';\nimport TxtRecords from '@/components/records/TxtRecords.vue';\nimport NsRecords from '@/components/records/NsRecords.vue';\nimport MxRecords from '@/components/records/MxRecords.vue';\nimport MetaTags from '@/components/MetaTags.vue';\nimport SrvRecords from '@/components/records/SrvRecords.vue';\nimport CaaRecords from '@/components/records/CaaRecords.vue';\nimport PtrRecords from '@/components/records/PtrRecords.vue';\nimport TlsaRecords from '@/components/records/TlsaRecords.vue';\nimport SkeletonComponent from '@/components/micro/SkeletonComponent.vue';\nimport { ApiErrorType, toErrorType } from '@/model/ApiErrorAlert';\nimport ApiErrorAlert from '@/components/ApiErrorAlert.vue';\nimport SpfRecords from '@/components/records/SpfRecords.vue';\nimport {\n OtherRecordsResponse, QueryResult, emptyDnsServer, emptyResponse,\n} from '@/model/Api';\nimport {\n Billboard, LargeLeaderboard, LargeRectangle, Leaderboard, MediumRectangle,\n} from '@/common/adSizes';\nimport AdUnit from '@/components/ads/AdUnit.vue';\nimport { RecordTypeResults } from '@/common/adSlots';\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'RecordTypeLookupResults',\n props: {\n routerDomain: {\n type: String,\n required: true,\n },\n routerRecordType: {\n type: String,\n required: true,\n },\n},\n setup(__props) {\n\nconst props = __props;\n\n\n\nconst router = useRouter();\nconst recordType = computed(() => getRecordType(props.routerRecordType));\n\nconst domain = ref('');\nconst domainPunycode = ref('');\nconst loading = ref(true);\nconst error = ref(null);\nconst showSidebar = ref(window.innerWidth > 991);\nconst cancelToken = ref(null);\nconst queryResult = ref({\n query: {\n server: emptyDnsServer,\n domain: domain.value,\n recordType: recordType.value.upper,\n },\n response: emptyResponse,\n});\n\nfunction domainToUrl(newDomain: string): string {\n if (recordType.value.upper === 'SPF') {\n return `/domains/${domainNameToUrlPath(newDomain)}/email/${recordType.value.lower}/`;\n }\n return `/domains/${domainNameToUrlPath(newDomain)}/dns-records/${recordType.value.lower}/`;\n}\n\nfunction redirectTo(newDomain: string): void {\n router.push(domainToUrl(newDomain));\n}\n\nfunction load() {\n loading.value = true;\n error.value = null;\n\n if (cancelToken.value) {\n cancelToken.value();\n }\n const axiosSource = axios.CancelToken.source();\n cancelToken.value = axiosSource.cancel;\n\n // Normally, we want to resolve the hostname of an IP address (which is what `/other-records` does).\n // But when looking up a PTR, we should show the result of querying the PTR records.\n const endpoint = recordType.value.upper === 'PTR' ? 'api/v1/ptr-records' : 'api/v1/other-records';\n\n axios\n .post(endpoint, {\n domain: domain.value,\n dnsServer: 'authoritative',\n recordType: recordType.value.cli,\n }, {\n cancelToken: axiosSource.token,\n })\n .then((response) => {\n if (props.routerDomain !== domainNameToUrlPath(response.data.punycodeDomain)) {\n router.replace({\n path: domainToUrl(response.data.punycodeDomain),\n });\n }\n domain.value = domainNameToDisplayName(response.data.unicodeDomain);\n domainPunycode.value = domainNameToDisplayName(response.data.punycodeDomain);\n queryResult.value = response.data.queryResult;\n loading.value = false;\n })\n .catch((e) => {\n if (!axios.isCancel(e)) {\n error.value = toErrorType(e.response.data.error);\n }\n });\n}\n\nwatch(() => props.routerDomain, () => {\n const domainName = urlPathToDomainName(props.routerDomain);\n domain.value = domainName;\n domainPunycode.value = domainName;\n load();\n}, {\n immediate: true,\n});\n\nwindow.addEventListener('resize', () => {\n showSidebar.value = window.innerWidth > 991;\n});\n\nreturn (_ctx: any,_cache: any) => {\n const _component_router_link = _resolveComponent(\"router-link\")!\n\n return (_openBlock(), _createElementBlock(_Fragment, null, [\n (_openBlock(), _createBlock(_Teleport, { to: \"head\" }, [\n _createVNode(MetaTags, {\n title: `DNS ${_unref(recordType).upper} records for ${domain.value}`,\n description: `These are all the ${_unref(recordType).plural} (${_unref(recordType).upper} records) for ${domain.value} according to the authoritative DNS server.`,\n url: `https://www.nslookup.io${domainToUrl(domainPunycode.value)}`\n }, null, 8, [\"title\", \"description\", \"url\"])\n ])),\n _createVNode(HeaderComponent, {\n domain: domain.value,\n \"domain-search-to-url\": domainToUrl,\n \"search-button-text\": ['soa', 'spf', 'cname'].includes(_unref(recordType).lower) ? `Find ${_unref(recordType).upper} record` : `Find ${_unref(recordType).upper} records`\n }, null, 8, [\"domain\", \"search-button-text\"]),\n _createElementVNode(\"div\", _hoisted_1, [\n _createElementVNode(\"main\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"h1\", _hoisted_4, [\n _createTextVNode(_toDisplayString(_unref(recordType).upper) + \" \" + _toDisplayString(['soa', 'spf', 'cname'].includes(_unref(recordType).lower) ? 'record' : 'records') + \" for \", 1),\n (domain.value === domainPunycode.value)\n ? (_openBlock(), _createElementBlock(\"b\", _hoisted_5, _toDisplayString(domain.value), 1))\n : (_openBlock(), _createElementBlock(\"span\", _hoisted_6, [\n _createElementVNode(\"b\", null, _toDisplayString(domainPunycode.value), 1),\n _createTextVNode(\" (\" + _toDisplayString(domain.value) + \")\", 1)\n ]))\n ]),\n _createVNode(DnsRecordsLink, {\n domain: domain.value,\n class: \"shrink-0 hidden mr-6 sm:block xl:mr-0\"\n }, {\n default: _withCtx(() => [\n _hoisted_7\n ]),\n _: 1\n }, 8, [\"domain\"])\n ]),\n _createElementVNode(\"div\", _hoisted_8, [\n (error.value !== null)\n ? (_openBlock(), _createBlock(ApiErrorAlert, {\n key: 0,\n error: error.value,\n domain: domain.value,\n dnsserver: \"authoritative\"\n }, null, 8, [\"error\", \"domain\"]))\n : (loading.value)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_9, [\n _createVNode(SkeletonComponent, { class: \"w-56 h-8 mb-6\" }),\n (_openBlock(), _createElementBlock(_Fragment, null, _renderList(2, (n) => {\n return _createElementVNode(\"div\", { key: n }, [\n (_openBlock(), _createElementBlock(_Fragment, null, _renderList(2, (n) => {\n return _createVNode(SkeletonComponent, {\n key: n,\n class: \"inline-block w-1/2 h-4 pr-[10%] bg-clip-content\"\n })\n }), 64))\n ])\n }), 64)),\n _createVNode(SkeletonComponent, { class: \"inline-block w-56 h-8 my-6\" }),\n _createVNode(SkeletonComponent, { class: \"w-24 h-4 mb-2\" }),\n _createVNode(SkeletonComponent, { class: \"w-1/2 h-4 mb-6\" }),\n (_openBlock(), _createElementBlock(_Fragment, null, _renderList(3, (n) => {\n return (_openBlock(), _createElementBlock(_Fragment, { key: n }, [\n _createVNode(SkeletonComponent, { class: \"w-24 h-4 mb-2 block\" }),\n _createVNode(SkeletonComponent, { class: \"w-1/2 h-4 mb-2 block\" }),\n _createVNode(SkeletonComponent, { class: \"w-1/2 h-4 mb-6\" })\n ], 64))\n }), 64))\n ]))\n : (_openBlock(), _createElementBlock(_Fragment, { key: 2 }, [\n _createElementVNode(\"p\", _hoisted_10, \"An authoritative DNS server (\" + _toDisplayString(queryResult.value.query.server.domain) + \") responded with these DNS records when we queried it for the domain \" + _toDisplayString(domain.value) + \".\", 1),\n (queryResult.value.response.answer.length === 0)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_11, [\n _createVNode(Alert, { type: \"warning\" }, {\n default: _withCtx(() => [\n _createElementVNode(\"span\", null, [\n _createElementVNode(\"span\", _hoisted_12, _toDisplayString(domain.value), 1),\n _createTextVNode(\" does not have any \" + _toDisplayString(_unref(recordType).upper) + \" records.\", 1)\n ])\n ]),\n _: 1\n })\n ]))\n : (_unref(recordType).upper === 'A')\n ? (_openBlock(), _createBlock(IpDnsRecords, {\n key: 1,\n class: \"w-full\",\n records: queryResult.value,\n \"column-title\": \"IPv4 address\",\n \"record-type\": \"A\"\n }, null, 8, [\"records\"]))\n : (_unref(recordType).upper === 'AAAA')\n ? (_openBlock(), _createBlock(IpDnsRecords, {\n key: 2,\n class: \"w-full\",\n records: queryResult.value,\n \"column-title\": \"IPv6 address\",\n \"record-type\": \"AAAA\"\n }, null, 8, [\"records\"]))\n : (_unref(recordType).upper === 'CAA')\n ? (_openBlock(), _createBlock(CaaRecords, {\n key: 3,\n class: \"w-full\",\n records: queryResult.value,\n domain: domain.value\n }, null, 8, [\"records\", \"domain\"]))\n : (_unref(recordType).upper === 'CNAME')\n ? (_openBlock(), _createBlock(DnsRecords, {\n key: 4,\n class: \"w-full\",\n records: queryResult.value,\n \"column-title\": \"Canonical name\",\n \"record-type\": \"CNAME\",\n \"is-domain\": true\n }, null, 8, [\"records\"]))\n : (_unref(recordType).upper === 'TXT')\n ? (_openBlock(), _createBlock(TxtRecords, {\n key: 5,\n class: \"w-full\",\n records: queryResult.value,\n domain: domain.value\n }, null, 8, [\"records\", \"domain\"]))\n : (_unref(recordType).upper === 'NS')\n ? (_openBlock(), _createBlock(NsRecords, {\n key: 6,\n class: \"w-full\",\n records: queryResult.value,\n domain: domain.value\n }, null, 8, [\"records\", \"domain\"]))\n : (_unref(recordType).upper === 'PTR')\n ? (_openBlock(), _createBlock(PtrRecords, {\n key: 7,\n class: \"w-full\",\n records: queryResult.value,\n domain: domain.value\n }, null, 8, [\"records\", \"domain\"]))\n : (_unref(recordType).upper === 'MX')\n ? (_openBlock(), _createBlock(MxRecords, {\n key: 8,\n class: \"w-full\",\n records: queryResult.value\n }, null, 8, [\"records\"]))\n : (_unref(recordType).upper === 'SOA')\n ? (_openBlock(), _createBlock(SoaRecords, {\n key: 9,\n class: \"w-full\",\n records: queryResult.value,\n domain: domain.value\n }, null, 8, [\"records\", \"domain\"]))\n : (_unref(recordType).upper === 'SRV')\n ? (_openBlock(), _createBlock(SrvRecords, {\n key: 10,\n class: \"w-full\",\n records: queryResult.value,\n domain: domain.value\n }, null, 8, [\"records\", \"domain\"]))\n : (_unref(recordType).upper === 'TLSA')\n ? (_openBlock(), _createBlock(TlsaRecords, {\n key: 11,\n class: \"w-full\",\n records: queryResult.value,\n domain: domain.value\n }, null, 8, [\"records\", \"domain\"]))\n : (_unref(recordType).upper === 'SPF')\n ? (_openBlock(), _createBlock(SpfRecords, {\n key: 12,\n class: \"w-full\",\n records: queryResult.value,\n domain: domain.value\n }, null, 8, [\"records\", \"domain\"]))\n : (_openBlock(), _createBlock(DnsRecords, {\n key: 13,\n class: \"w-full\",\n records: queryResult.value,\n \"column-title\": \"Data\",\n \"record-type\": _unref(recordType).upper\n }, null, 8, [\"records\", \"record-type\"])),\n _createVNode(AdUnit, {\n class: \"mt-8 mx-auto\",\n config: _unref(RecordTypeResults)\n }, null, 8, [\"config\"]),\n _hoisted_13,\n _createVNode(RawRecords, { records: queryResult.value }, null, 8, [\"records\"])\n ], 64)),\n _createElementVNode(\"h2\", _hoisted_14, \"Find \" + _toDisplayString(_unref(recordType).upper) + \" records for another domain name\", 1),\n _createElementVNode(\"div\", _hoisted_15, [\n _createElementVNode(\"p\", _hoisted_16, [\n _createTextVNode(\"With \"),\n _createVNode(_component_router_link, {\n to: `/${_unref(recordType).lower}-lookup/`,\n class: \"text-blue-600 hover:text-blue-800 hover:underline\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_unref(recordType).upper) + \" lookup\", 1)\n ]),\n _: 1\n }, 8, [\"to\"]),\n _createTextVNode(\", you can find the \" + _toDisplayString(_unref(recordType).upper) + \" record for any domain name or subdomain. When you enter the domain in the input field below, it will show whether or not \" + _toDisplayString(_unref(recordType).plural) + \" are configured for that domain.\", 1)\n ]),\n _createElementVNode(\"form\", _hoisted_17, [\n _createVNode(DomainSearch, {\n \"placeholder-text\": _unref(recordType).upper === 'PTR' ? 'IP address or domain name' : 'Domain name',\n emphasize: \"\",\n buttonText: `Find ${_unref(recordType).upper} record`,\n prefill: domain.value,\n onSubmitted: redirectTo\n }, null, 8, [\"placeholder-text\", \"buttonText\", \"prefill\"])\n ])\n ])\n ])\n ])\n ]),\n _createVNode(FooterComponent)\n ], 64))\n}\n}\n\n})","import script from \"./RecordTypeLookupResults.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./RecordTypeLookupResults.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n","import { render } from \"./SponsorshipBanner.vue?vue&type=template&id=191dadc3\"\nconst script = {}\n\nimport exportComponent from \"/builds/nslookupio/nslookupio/front-end/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { createElementVNode as _createElementVNode, unref as _unref, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, createStaticVNode as _createStaticVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"flex items-center relative overflow-hidden rounded-full py-1.5 pl-2 pr-4 text-sm leading-6 shadow shadow-[#BD4680]/50 ring-1 ring-gray-900/10 hover:ring-gray-900/20\" }\nconst _hoisted_2 = /*#__PURE__*/_createStaticVNode(\"\", 1)\nconst _hoisted_3 = { class: \"flex flex-col items-center w-full sm:inline text-gray-600\" }\nconst _hoisted_4 = [\"href\"]\nconst _hoisted_5 = /*#__PURE__*/_createElementVNode(\"span\", {\n class: \"absolute inset-0\",\n \"aria-hidden\": \"true\"\n}, null, -1)\nconst _hoisted_6 = /*#__PURE__*/_createElementVNode(\"span\", { \"aria-hidden\": \"true\" }, \"→\", -1)\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'RedirectPizzaBanner',\n setup(__props) {\n\nconst groups = [\n {\n text: 'DNS redirects with HTTPS',\n utm_content: 'dns-redirects-with-https',\n },\n {\n text: 'DNS redirects with HTTPS',\n utm_content: 'dns-redirects-with-https',\n },\n];\n\nconst storedGroup = localStorage.getItem('abGroupRedirectPizza');\n\nlet groupNumber;\nif (storedGroup) {\n groupNumber = parseInt(storedGroup, 10) % 2;\n} else {\n groupNumber = Math.random() > 0.5 ? 0 : 1;\n localStorage.setItem('abGroupRedirectPizza', groupNumber.toString());\n}\n\nconst group = groups[groupNumber];\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _hoisted_2,\n _createElementVNode(\"span\", _hoisted_3, [\n _createTextVNode(_toDisplayString(_unref(group).text) + \" \", 1),\n _createElementVNode(\"a\", {\n href: `https://redirect.pizza/?utm_source=nslookup.io&utm_medium=text&utm_content=${_unref(group).utm_content}`,\n rel: \"noopener\",\n class: \"font-semibold text-[#BD4680] ml-3\"\n }, [\n _hoisted_5,\n _createTextVNode(\"Create free redirect \"),\n _hoisted_6\n ], 8, _hoisted_4)\n ])\n ]))\n}\n}\n\n})","import script from \"./RedirectPizzaBanner.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./RedirectPizzaBanner.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { createElementVNode as _createElementVNode, createVNode as _createVNode, renderSlot as _renderSlot, unref as _unref, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, withCtx as _withCtx, Fragment as _Fragment, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"flex flex-col bg-neutral-100 px-3 min-h-screen\" }\nconst _hoisted_2 = {\n class: \"flex-grow flex flex-col items-center justify-center\",\n autocomplete: \"off\"\n}\nconst _hoisted_3 = /*#__PURE__*/_createElementVNode(\"img\", {\n src: \"img/logo.svg\",\n class: \"max-w-full my-8\",\n alt: \"NsLookup logo\",\n width: \"337\",\n height: \"57\"\n}, null, -1)\nconst _hoisted_4 = { class: \"mt-8 mb-8 sm:mb-20 text-center max-w-full w-[500px] text-neutral-800\" }\n\nimport { PropType } from 'vue';\nimport { useRouter } from 'vue-router';\nimport DomainSearch from '@/components/DomainSearch.vue';\nimport SponsorshipBanner from '@/components/layout/SponsorshipBanner.vue';\nimport { SearchPageAdUnit } from '@/common/adSlots';\nimport AdUnit from '@/components/ads/AdUnit.vue';\nimport ContentPage from '@/components/layout/ContentPage.vue';\nimport { showRedirectPizzaAds } from '@/common/dateTime';\nimport RedirectPizzaBanner from '@/components/layout/RedirectPizzaBanner.vue';\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'SearchWithHiddenContentPage',\n props: {\n domainSearchToUrl: {\n type: Function as PropType<(encodedDomain: string) => string>,\n default: (encodedDomain: string) => `/domains/${encodedDomain}/dns-records/`,\n },\n searchButtonText: {\n type: String,\n default: undefined,\n },\n},\n setup(__props) {\n\nconst props = __props;\n\n\n\nconst router = useRouter();\n\nfunction redirectTo(domain: string): void {\n router.push(props.domainSearchToUrl(domain));\n}\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(_Fragment, null, [\n _createElementVNode(\"header\", _hoisted_1, [\n _createElementVNode(\"form\", _hoisted_2, [\n _hoisted_3,\n _createVNode(DomainSearch, {\n autofocus: \"\",\n emphasize: \"\",\n onSubmitted: redirectTo,\n \"button-text\": __props.searchButtonText,\n class: \"h-12 max-w-full w-[500px]\"\n }, null, 8, [\"button-text\"]),\n _createElementVNode(\"p\", _hoisted_4, [\n _renderSlot(_ctx.$slots, \"search-explanation\"),\n (_unref(showRedirectPizzaAds)())\n ? (_openBlock(), _createBlock(RedirectPizzaBanner, {\n key: 0,\n class: \"mt-20 mx-auto sm:hidden\"\n }))\n : _createCommentVNode(\"\", true)\n ]),\n _createVNode(AdUnit, {\n class: \"mx-auto\",\n config: _unref(SearchPageAdUnit)\n }, null, 8, [\"config\"])\n ]),\n (_unref(showRedirectPizzaAds)())\n ? (_openBlock(), _createBlock(RedirectPizzaBanner, {\n key: 0,\n class: \"mb-6 mt-8 mx-auto hidden sm:flex\"\n }))\n : (_openBlock(), _createBlock(SponsorshipBanner, {\n key: 1,\n class: \"mb-6 mt-8 mx-auto\"\n }))\n ]),\n _createVNode(ContentPage, {\n \"domain-search-to-url\": __props.domainSearchToUrl,\n \"search-button-text\": __props.searchButtonText\n }, {\n content: _withCtx(() => [\n _renderSlot(_ctx.$slots, \"content\")\n ]),\n _: 3\n }, 8, [\"domain-search-to-url\", \"search-button-text\"])\n ], 64))\n}\n}\n\n})","import script from \"./SearchWithHiddenContentPage.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./SearchWithHiddenContentPage.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { createVNode as _createVNode, Teleport as _Teleport, openBlock as _openBlock, createBlock as _createBlock, createTextVNode as _createTextVNode, createElementVNode as _createElementVNode, withCtx as _withCtx, Fragment as _Fragment, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = /*#__PURE__*/_createElementVNode(\"h1\", { class: \"text-3xl mt-14\" }, \"DNS propagation checker\", -1)\nconst _hoisted_2 = /*#__PURE__*/_createElementVNode(\"p\", null, \"Check the DNS propagation for any website using this online tool. This checker supports A, AAAA, NS, MX and TXT records.\", -1)\nconst _hoisted_3 = /*#__PURE__*/_createElementVNode(\"p\", null, \"It helps you debug DNS resolution issues, and to find the time it will take before your DNS records will propagate. It will also show you a warning when your DNS records are misconfigured.\", -1)\nconst _hoisted_4 = /*#__PURE__*/_createElementVNode(\"h2\", null, \"How to check DNS records?\", -1)\nconst _hoisted_5 = /*#__PURE__*/_createElementVNode(\"p\", null, \"Not sure how to check DNS records? There are multiple ways, and we'll go through all of them:\", -1)\nconst _hoisted_6 = /*#__PURE__*/_createElementVNode(\"ol\", null, [\n /*#__PURE__*/_createElementVNode(\"li\", null, \"From the command line on Linux or Mac;\"),\n /*#__PURE__*/_createElementVNode(\"li\", null, \"From the command line on Windows;\"),\n /*#__PURE__*/_createElementVNode(\"li\", null, \"Using an online DNS checker.\")\n], -1)\nconst _hoisted_7 = /*#__PURE__*/_createElementVNode(\"h3\", null, \"Command line\", -1)\nconst _hoisted_8 = /*#__PURE__*/_createElementVNode(\"img\", {\n loading: \"lazy\",\n class: \"block my-2 w-full border border-black/10 rounded-md shadow py-2 pr-1 bg-black\",\n src: \"/img/pages/dns-checker/mac-dig-output.png\",\n alt: \"Output of the dig command on mac\",\n title: \"Output of the dig command on mac\"\n}, null, -1)\nconst _hoisted_9 = /*#__PURE__*/_createElementVNode(\"p\", null, [\n /*#__PURE__*/_createTextVNode(\"If you're already familiar with using the command line, you can use a DNS checker that's built into your operating system. Both the \"),\n /*#__PURE__*/_createElementVNode(\"code\", null, \"dig\"),\n /*#__PURE__*/_createTextVNode(\" and \"),\n /*#__PURE__*/_createElementVNode(\"code\", null, \"nslookup\"),\n /*#__PURE__*/_createTextVNode(\" DNS checkers help you to quickly find the DNS records for a hostname.\")\n], -1)\nconst _hoisted_10 = /*#__PURE__*/_createElementVNode(\"p\", null, [\n /*#__PURE__*/_createElementVNode(\"code\", null, \"dig\"),\n /*#__PURE__*/_createTextVNode(\" comes pre-installed on Linux and MacOS. To check DNS records for a particular website, open a terminal and type \"),\n /*#__PURE__*/_createElementVNode(\"code\", null, \"dig google.com\"),\n /*#__PURE__*/_createTextVNode(\", then hit enter. This will show the A records of the domain name google.com. To check a different record type, simply append it to the command like so: \"),\n /*#__PURE__*/_createElementVNode(\"code\", null, \"dig google.com MX\"),\n /*#__PURE__*/_createTextVNode(\".\")\n], -1)\nconst _hoisted_11 = /*#__PURE__*/_createElementVNode(\"p\", null, [\n /*#__PURE__*/_createTextVNode(\"You can also use dig on Windows, but you'll have to install it first. It's more convenient to use the built-in nslookup command if you're using Windows. Open a terminal (Start → cmd.exe) and type \"),\n /*#__PURE__*/_createElementVNode(\"code\", null, \"nslookup facebook.com\"),\n /*#__PURE__*/_createTextVNode(\" to find the IP addresses that host Facebook.com. If you want to check for different record types than A records, you can add the \"),\n /*#__PURE__*/_createElementVNode(\"code\", null, \"type\"),\n /*#__PURE__*/_createTextVNode(\" argument. So, \"),\n /*#__PURE__*/_createElementVNode(\"code\", null, \"nslookup -type=TXT facebook.com\"),\n /*#__PURE__*/_createTextVNode(\" retrieves all TXT records of Facebook.com.\")\n], -1)\nconst _hoisted_12 = /*#__PURE__*/_createElementVNode(\"p\", null, \"If you want to check the propagation of the DNS records at servers around the globe, then you'll have to execute this command for each server. This is where the online DNS checker comes in handy.\", -1)\nconst _hoisted_13 = /*#__PURE__*/_createElementVNode(\"h3\", null, \"Online tool\", -1)\nconst _hoisted_14 = /*#__PURE__*/_createElementVNode(\"img\", {\n loading: \"lazy\",\n src: \"/img/pages/dns-checker/nslookup-output.png\",\n alt: \"Output of an online DNS checker\",\n title: \"Output of an online DNS checker\"\n}, null, -1)\nconst _hoisted_15 = /*#__PURE__*/_createElementVNode(\"p\", null, \"A more convenient way to find DNS records is to use an online DNS checker like the one on this page. It helps you check DNS records right from your browser, without the need for a command line. Simply scroll up, type the name of the website you want to check the DNS records of, and click \\\"check propagation\\\".\", -1)\nconst _hoisted_16 = /*#__PURE__*/_createElementVNode(\"h2\", null, \"DNS domain tester\", -1)\nconst _hoisted_17 = /*#__PURE__*/_createElementVNode(\"p\", null, \"The Domain Name System (DNS) contains every domain name. It's sometimes useful to test a DNS domain to see what the IP addresses it resolves to. You can check a DNS domain with the tool on this page.\", -1)\nconst _hoisted_18 = /*#__PURE__*/_createElementVNode(\"p\", null, \"Scroll to the DNS domain checker at the top of this page and type the domain name you want to test. Click \\\"check propagation\\\" to see all DNS records for that domain.\", -1)\nconst _hoisted_19 = /*#__PURE__*/_createElementVNode(\"h2\", null, \"Why check DNS propagation?\", -1)\nconst _hoisted_20 = /*#__PURE__*/_createElementVNode(\"p\", null, \"Whether you're setting up a new website, updating records for an existing site, or checking the configuration of a mail server, a DNS propagation checker can come in handy!\", -1)\nconst _hoisted_21 = /*#__PURE__*/_createElementVNode(\"h3\", null, \"New website\", -1)\nconst _hoisted_22 = /*#__PURE__*/_createElementVNode(\"p\", null, \"When setting up a new website, one of the things you'll have to do is configure DNS records. Nearly all hosting providers have dedicated DNS servers. You can use these to configure DNS records. If you want to use DNS servers of another organization, you'll have to point the NS records from the hosting provider there. This process can take a while, so it can be convenient to check if the DNS records are still propagating, or have already fully propagated.\", -1)\nconst _hoisted_23 = /*#__PURE__*/_createElementVNode(\"h3\", null, \"Check updated records\", -1)\nconst _hoisted_24 = /*#__PURE__*/_createElementVNode(\"p\", null, \"If you're changing DNS records, there might be some DNS servers that cache the old version of your records. They will eventually remove that version, but it might take a while before the so-called 'time to live' (TTL) expires. So, if you've just updated your DNS records, you can use a DNS checker to find out whether the DNS servers are serving a fresh or stale set of records.\", -1)\nconst _hoisted_25 = /*#__PURE__*/_createElementVNode(\"h3\", null, \"Mail server configuration\", -1)\nconst _hoisted_26 = /*#__PURE__*/_createElementVNode(\"p\", null, \"Email works like a distributed system, consisting of independent mail servers. The mail servers from Gmail and Outlook.com, for example, can change independently. They need some way to communicate these changes. That's where DNS comes in.\", -1)\nconst _hoisted_27 = /*#__PURE__*/_createElementVNode(\"p\", null, \"Everyone that has configured email for a domain name, has to update their DNS records. MX records tell which to which servers an email for a certain domain should be sent. TXT records contain SPF data that prevents spam. You can inspect these settings with a DNS checker.\", -1)\nconst _hoisted_28 = /*#__PURE__*/_createElementVNode(\"h2\", null, \"How does it work?\", -1)\nconst _hoisted_29 = /*#__PURE__*/_createElementVNode(\"p\", null, \"You can check the DNS propagation of a domain name like this:\", -1)\nconst _hoisted_30 = /*#__PURE__*/_createElementVNode(\"ol\", null, [\n /*#__PURE__*/_createElementVNode(\"li\", null, \"Fill in a domain name in on the top of this page and click \\\"check propagation\\\".\"),\n /*#__PURE__*/_createElementVNode(\"li\", null, \"One of the servers of Nslookup will query the DNS records for that website using many local and global DNS servers.\"),\n /*#__PURE__*/_createElementVNode(\"li\", null, \"The DNS servers responds with DNS records.\"),\n /*#__PURE__*/_createElementVNode(\"li\", null, \"The DNS records are parsed and grouped, so you can easily see which servers respond with the same set of DNS records.\")\n], -1)\n\nimport DnsRecordsLink from '@/components/micro/DnsRecordsLink.vue';\nimport MetaTags from '@/components/MetaTags.vue';\nimport SearchWithHiddenContentPage from '@/components/pages/SearchWithHiddenContentPage.vue';\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'DnsChecker',\n setup(__props) {\n\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(_Fragment, null, [\n (_openBlock(), _createBlock(_Teleport, { to: \"head\" }, [\n _createVNode(MetaTags, {\n title: \"DNS Propagation Checker\",\n description: \"Check global DNS propagation for any website using this free online tool. Global DNS propagation checker — check DNS records around the world.\",\n url: \"https://www.nslookup.io/dns-checker/\"\n })\n ])),\n _createVNode(SearchWithHiddenContentPage, {\n \"domain-search-to-url\": (encodedDomain) => `/domains/${encodedDomain}/dns-propagation/a/`,\n \"search-button-text\": \"Check propagation\"\n }, {\n \"search-explanation\": _withCtx(() => [\n _createTextVNode(\" Check the DNS propagation for any website using this online tool. For example, try \"),\n _createVNode(DnsRecordsLink, {\n page: \"propagation\",\n domain: \"youtube.com\",\n class: \"text-blue-600 hover:text-blue-800 hover:underline\"\n }),\n _createTextVNode(\" or \"),\n _createVNode(DnsRecordsLink, {\n page: \"propagation\",\n domain: \"amazon.com\",\n class: \"text-blue-600 hover:text-blue-800 hover:underline\"\n }),\n _createTextVNode(\" to view their DNS propagation. \")\n ]),\n content: _withCtx(() => [\n _hoisted_1,\n _hoisted_2,\n _hoisted_3,\n _hoisted_4,\n _hoisted_5,\n _hoisted_6,\n _hoisted_7,\n _hoisted_8,\n _hoisted_9,\n _hoisted_10,\n _hoisted_11,\n _hoisted_12,\n _hoisted_13,\n _hoisted_14,\n _hoisted_15,\n _hoisted_16,\n _hoisted_17,\n _hoisted_18,\n _hoisted_19,\n _hoisted_20,\n _hoisted_21,\n _hoisted_22,\n _hoisted_23,\n _hoisted_24,\n _hoisted_25,\n _hoisted_26,\n _hoisted_27,\n _hoisted_28,\n _hoisted_29,\n _hoisted_30\n ]),\n _: 1\n }, 8, [\"domain-search-to-url\"])\n ], 64))\n}\n}\n\n})","import script from \"./DnsChecker.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./DnsChecker.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { createVNode as _createVNode, Teleport as _Teleport, openBlock as _openBlock, createBlock as _createBlock, createElementVNode as _createElementVNode, createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, unref as _unref, Fragment as _Fragment, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"bg-neutral-100\" }\nconst _hoisted_2 = { class: \"container mx-auto\" }\nconst _hoisted_3 = { class: \"max-w-lg min-h-[calc(100vh-250px)] mx-auto text-center\" }\nconst _hoisted_4 = {\n class: \"text-base flex flex-col items-center justify-center min-h-screen\",\n autocomplete: \"off\"\n}\nconst _hoisted_5 = /*#__PURE__*/_createElementVNode(\"h1\", { class: \"font-extrabold text-4xl max-w-full my-8\" }, \"Reverse IP lookup\", -1)\nconst _hoisted_6 = { class: \"mt-8 mb-20 text-center max-w-full h-20 w-[500px] text-neutral-800\" }\nconst _hoisted_7 = /*#__PURE__*/_createElementVNode(\"br\", null, null, -1)\n\nimport { useRouter } from 'vue-router';\nimport HeaderComponent from '@/components/layout/HeaderComponent.vue';\nimport FooterComponent from '@/components/layout/FooterComponent.vue';\nimport DomainSearch from '@/components/DomainSearch.vue';\nimport MetaTags from '@/components/MetaTags.vue';\nimport AdUnit from '@/components/ads/AdUnit.vue';\nimport { domainNameToUrlPath } from '@/common/domainName';\nimport { ReverseIpLookup } from '@/common/adSlots';\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'ReverseIpLookup',\n setup(__props) {\n\nconst router = useRouter();\n\nfunction redirectTo(ip: string): void {\n router.push(`/ip/${domainNameToUrlPath(ip)}/domain-names/`);\n}\n\nreturn (_ctx: any,_cache: any) => {\n const _component_router_link = _resolveComponent(\"router-link\")!\n\n return (_openBlock(), _createElementBlock(_Fragment, null, [\n (_openBlock(), _createBlock(_Teleport, { to: \"head\" }, [\n _createVNode(MetaTags, {\n title: \"Reverse IP Lookup\",\n description: \"Find the domain name that is connected to an IP address. Check if the any websites are hosted on an IP by doing a reverse DNS lookup.\",\n url: \"https://www.nslookup.io/reverse-ip-lookup/\"\n })\n ])),\n _createVNode(HeaderComponent, {\n \"domain-search-to-url\": (encodedDomain) => `/ip/${encodedDomain}/domain-names/`,\n \"search-button-text\": \"Reverse lookup\",\n \"autocomplete-enabled\": false\n }, null, 8, [\"domain-search-to-url\"]),\n _createElementVNode(\"div\", _hoisted_1, [\n _createElementVNode(\"main\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"form\", _hoisted_4, [\n _hoisted_5,\n _createVNode(DomainSearch, {\n class: \"h-12 mb-6 max-w-full w-[500px]\",\n autofocus: \"\",\n emphasize: \"\",\n \"autocomplete-enabled\": false,\n buttonText: \"Reverse lookup\",\n \"placeholder-text\": \"IP address\",\n onSubmitted: redirectTo\n }),\n _createElementVNode(\"p\", _hoisted_6, [\n _createTextVNode(\"Find the domain name that is connected to an IP address. Check if the any websites are hosted on an IP by doing a reverse DNS lookup.\"),\n _hoisted_7,\n _createTextVNode(\"For example, try \"),\n _createVNode(_component_router_link, {\n to: \"/ip/91.198.174.192/domain-names/\",\n title: \"Domain names for 91.198.174.192\",\n class: \"text-blue-600 hover:text-blue-800 hover:underline\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(\"91.198.174.192\")\n ]),\n _: 1\n }),\n _createTextVNode(\" or \"),\n _createVNode(_component_router_link, {\n to: \"/ip/1.1.1.1/domain-names/\",\n title: \"Domain names for 1.1.1.1\",\n class: \"text-blue-600 hover:text-blue-800 hover:underline\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(\"1.1.1.1\")\n ]),\n _: 1\n }),\n _createTextVNode(\" to view their domain names. \")\n ]),\n _createVNode(AdUnit, {\n class: \"mt-8 mx-auto\",\n config: _unref(ReverseIpLookup)\n }, null, 8, [\"config\"])\n ])\n ])\n ])\n ]),\n _createVNode(FooterComponent)\n ], 64))\n}\n}\n\n})","import script from \"./ReverseIpLookup.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./ReverseIpLookup.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { createVNode as _createVNode, Teleport as _Teleport, openBlock as _openBlock, createBlock as _createBlock, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, createTextVNode as _createTextVNode, withCtx as _withCtx, createCommentVNode as _createCommentVNode, renderList as _renderList, Fragment as _Fragment, createElementBlock as _createElementBlock, unref as _unref, resolveComponent as _resolveComponent } from \"vue\"\n\nconst _hoisted_1 = { class: \"flex-grow bg-neutral-100\" }\nconst _hoisted_2 = { class: \"container mx-auto max-w-6xl\" }\nconst _hoisted_3 = { class: \"flex flex-col justify-between mt-8 mb-6 ml-6 sm:flex-row sm:items-center\" }\nconst _hoisted_4 = { class: \"text-3xl\" }\nconst _hoisted_5 = /*#__PURE__*/_createElementVNode(\"button\", {\n type: \"button\",\n class: \"inline-flex items-center rounded-md border border-gray-300 bg-white px-3 py-2 text-sm font-medium leading-4 text-gray-700 shadow-sm hover:bg-gray-50 focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:ring-offset-2\"\n}, \"All DNS records\", -1)\nconst _hoisted_6 = { class: \"bg-white shadow p-6 pb-10 rounded-t\" }\nconst _hoisted_7 = {\n key: 1,\n \"aria-hidden\": \"true\"\n}\nconst _hoisted_8 = { class: \"mb-3\" }\nconst _hoisted_9 = {\n key: 0,\n class: \"mt-4\"\n}\nconst _hoisted_10 = { class: \"font-semibold\" }\nconst _hoisted_11 = { class: \"font-semibold\" }\nconst _hoisted_12 = /*#__PURE__*/_createElementVNode(\"h2\", { class: \"mt-8 mb-2 font-semibold text-2xl\" }, \"Question and response\", -1)\nconst _hoisted_13 = /*#__PURE__*/_createElementVNode(\"h2\", { class: \"mt-8 mb-2 font-semibold text-2xl\" }, \"Find the domain name for another IP address\", -1)\nconst _hoisted_14 = { class: \"flex flex-col lg:flex-row\" }\nconst _hoisted_15 = { class: \"shrink max-w-xl\" }\nconst _hoisted_16 = {\n class: \"mt-3 w-[500px] max-w-full sm:px-6 lg:mt-0\",\n autocomplete: \"off\"\n}\n\nimport axios, { Canceler } from 'axios';\nimport { ref, watch } from 'vue';\nimport { useRouter } from 'vue-router';\nimport ApiErrorAlert from '@/components/ApiErrorAlert.vue';\nimport DomainSearch from '@/components/DomainSearch.vue';\nimport FooterComponent from '@/components/layout/FooterComponent.vue';\nimport HeaderComponent from '@/components/layout/HeaderComponent.vue';\nimport MetaTags from '@/components/MetaTags.vue';\nimport Alert from '@/components/micro/AlertComponent.vue';\nimport CopyComponent from '@/components/micro/CopyComponent.vue';\nimport DnsRecordsLink from '@/components/micro/DnsRecordsLink.vue';\nimport RawRecords from '@/components/micro/RawRecords.vue';\nimport SkeletonComponent from '@/components/micro/SkeletonComponent.vue';\nimport { QueryResult, emptyDnsServer, emptyResponse } from '@/model/Api';\nimport { ApiErrorType, toErrorType } from '@/model/ApiErrorAlert';\nimport AdUnit from '@/components/ads/AdUnit.vue';\nimport { domainNameToUrlPath } from '@/common/domainName';\nimport { ReverseIpResults } from '@/common/adSlots';\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'ReverseIpLookupResults',\n props: {\n routerIp: {\n type: String,\n required: true,\n },\n},\n setup(__props) {\n\nconst props = __props;\n\n\n\nconst router = useRouter();\n\nconst ip = ref('');\nconst domainPunycode = ref('');\nconst loading = ref(true);\nconst error = ref(null);\nconst showSidebar = ref(window.innerWidth > 991);\nconst cancelToken = ref(null);\nconst queryResult = ref({\n query: {\n server: emptyDnsServer,\n domain: ip.value,\n recordType: 'PTR',\n },\n response: emptyResponse,\n});\n\nfunction redirectTo(newIp: string): void {\n router.push(`/ip/${domainNameToUrlPath(newIp)}/domain-names/`);\n}\n\nfunction load() {\n loading.value = true;\n error.value = null;\n\n if (cancelToken.value) {\n cancelToken.value();\n }\n const axiosSource = axios.CancelToken.source();\n cancelToken.value = axiosSource.cancel;\n\n axios\n .post('api/v1/ptr-records', {\n domain: ip.value,\n dnsServer: 'authoritative',\n }, {\n cancelToken: axiosSource.token,\n })\n .then((response) => {\n queryResult.value = response.data;\n loading.value = false;\n })\n .catch((e) => {\n if (!axios.isCancel(e)) {\n error.value = toErrorType(e.response.data.error);\n }\n });\n}\n\nwatch(() => props.routerIp, () => {\n if (domainPunycode.value !== props.routerIp) {\n ip.value = decodeURI(props.routerIp)\n .toLowerCase();\n domainPunycode.value = decodeURI(props.routerIp)\n .toLowerCase();\n load();\n }\n}, {\n immediate: true,\n});\n\nwindow.addEventListener('resize', () => {\n showSidebar.value = window.innerWidth > 991;\n});\n\nreturn (_ctx: any,_cache: any) => {\n const _component_router_link = _resolveComponent(\"router-link\")!\n\n return (_openBlock(), _createElementBlock(_Fragment, null, [\n (_openBlock(), _createBlock(_Teleport, { to: \"head\" }, [\n _createVNode(MetaTags, {\n title: `Reverse IP lookup for ${ip.value}`,\n description: `This is the canonical hostname for ${ip.value}. It has been configured by the owner of this IP address.`,\n url: `https://www.nslookup.io/ip/${domainPunycode.value}/domain-names/`\n }, null, 8, [\"title\", \"description\", \"url\"])\n ])),\n _createVNode(HeaderComponent, {\n \"domain-search-to-url\": (encodedDomain) => `/ip/${encodedDomain}/domain-names/`,\n \"search-button-text\": \"Reverse lookup\",\n domain: ip.value,\n \"autocomplete-enabled\": false\n }, null, 8, [\"domain-search-to-url\", \"domain\"]),\n _createElementVNode(\"div\", _hoisted_1, [\n _createElementVNode(\"main\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"h1\", _hoisted_4, [\n _createTextVNode(\"Reverse IP lookup for \"),\n _createElementVNode(\"b\", null, _toDisplayString(ip.value), 1)\n ]),\n _createVNode(DnsRecordsLink, {\n domain: ip.value,\n class: \"shrink-0 hidden mr-6 sm:block xl:mr-0\"\n }, {\n default: _withCtx(() => [\n _hoisted_5\n ]),\n _: 1\n }, 8, [\"domain\"])\n ]),\n _createElementVNode(\"div\", _hoisted_6, [\n (error.value !== null)\n ? (_openBlock(), _createBlock(ApiErrorAlert, {\n key: 0,\n error: error.value,\n domain: ip.value,\n dnsserver: \"authoritative\"\n }, null, 8, [\"error\", \"domain\"]))\n : (loading.value)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_7, [\n _createVNode(SkeletonComponent, { class: \"w-56 h-8 mb-6\" }),\n (_openBlock(), _createElementBlock(_Fragment, null, _renderList(2, (n) => {\n return _createElementVNode(\"div\", { key: n }, [\n (_openBlock(), _createElementBlock(_Fragment, null, _renderList(2, (n) => {\n return _createVNode(SkeletonComponent, {\n key: n,\n class: \"inline-block w-1/2 h-4 pr-[10%] bg-clip-content\"\n })\n }), 64))\n ])\n }), 64)),\n _createVNode(SkeletonComponent, { class: \"inline-block w-56 h-8 my-6\" }),\n _createVNode(SkeletonComponent, { class: \"w-24 h-4 mb-2\" }),\n _createVNode(SkeletonComponent, { class: \"w-1/2 h-4 mb-6\" }),\n (_openBlock(), _createElementBlock(_Fragment, null, _renderList(3, (n) => {\n return (_openBlock(), _createElementBlock(_Fragment, { key: n }, [\n _createVNode(SkeletonComponent, { class: \"w-24 h-4 mb-2 block\" }),\n _createVNode(SkeletonComponent, { class: \"w-1/2 h-4 mb-2 block\" }),\n _createVNode(SkeletonComponent, { class: \"w-1/2 h-4 mb-6\" })\n ], 64))\n }), 64))\n ]))\n : (_openBlock(), _createElementBlock(_Fragment, { key: 2 }, [\n _createElementVNode(\"p\", _hoisted_8, \"Our DNS servers responded with these IP addresses when we queried it for the domain \" + _toDisplayString(ip.value) + \". Some DNS servers may return different IP addresses based on your location.\", 1),\n (queryResult.value.response.answer.length === 0)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_9, [\n _createVNode(Alert, { type: \"warning\" }, {\n default: _withCtx(() => [\n _createElementVNode(\"span\", null, [\n _createElementVNode(\"span\", _hoisted_10, _toDisplayString(ip.value), 1),\n _createTextVNode(\" does not have a reverse lookup record.\")\n ])\n ]),\n _: 1\n })\n ]))\n : (_openBlock(), _createBlock(Alert, {\n key: 1,\n type: \"success\",\n class: \"mt-4\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(\" The canonical hostname of \"),\n _createElementVNode(\"span\", _hoisted_11, _toDisplayString(ip.value), 1),\n _createTextVNode(\" is \"),\n _createVNode(DnsRecordsLink, {\n domain: queryResult.value.response.answer[0].record.target,\n class: \"font-semibold hover:underline\"\n }, null, 8, [\"domain\"]),\n _createVNode(CopyComponent, {\n content: queryResult.value.response.answer[0].record.target\n }, null, 8, [\"content\"])\n ]),\n _: 1\n })),\n _createVNode(AdUnit, {\n class: \"mt-8 mx-auto\",\n config: _unref(ReverseIpResults)\n }, null, 8, [\"config\"]),\n _hoisted_12,\n _createVNode(RawRecords, { records: queryResult.value }, null, 8, [\"records\"])\n ], 64)),\n _hoisted_13,\n _createElementVNode(\"div\", _hoisted_14, [\n _createElementVNode(\"p\", _hoisted_15, [\n _createTextVNode(\"With \"),\n _createVNode(_component_router_link, {\n to: \"/reverse-ip-lookup/\",\n class: \"text-blue-600 hover:text-blue-800 hover:underline\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(\"reverse IP lookup\")\n ]),\n _: 1\n }),\n _createTextVNode(\", you can find the domain name for any IP address. When you enter an IPv4 or IPv6 address in the input field below, it will show the canonical domain name for that IP address.\")\n ]),\n _createElementVNode(\"form\", _hoisted_16, [\n _createVNode(DomainSearch, {\n \"placeholder-text\": \"IP address\",\n emphasize: \"\",\n buttonText: \"Reverse lookup\",\n prefill: ip.value,\n onSubmitted: redirectTo,\n \"autocomplete-enabled\": false\n }, null, 8, [\"prefill\"])\n ])\n ])\n ])\n ])\n ]),\n _createVNode(FooterComponent)\n ], 64))\n}\n}\n\n})","import script from \"./ReverseIpLookupResults.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./ReverseIpLookupResults.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { createVNode as _createVNode, Teleport as _Teleport, openBlock as _openBlock, createBlock as _createBlock, createElementVNode as _createElementVNode, createTextVNode as _createTextVNode, unref as _unref, renderList as _renderList, Fragment as _Fragment, createElementBlock as _createElementBlock, toDisplayString as _toDisplayString, resolveComponent as _resolveComponent, withCtx as _withCtx } from \"vue\"\n\nconst _hoisted_1 = { class: \"bg-neutral-100\" }\nconst _hoisted_2 = { class: \"container mx-auto\" }\nconst _hoisted_3 = { class: \"flex flex-col justify-center max-w-lg min-h-[calc(100vh-250px)] mx-auto text-center\" }\nconst _hoisted_4 = {\n class: \"text-base flex flex-col items-center justify-center\",\n autocomplete: \"off\"\n}\nconst _hoisted_5 = /*#__PURE__*/_createElementVNode(\"h1\", { class: \"font-extrabold text-4xl max-w-full my-8\" }, \"Website to IP lookup\", -1)\nconst _hoisted_6 = { class: \"mt-8 mb-20 text-center max-w-full h-20 w-[500px] text-neutral-800\" }\nconst _hoisted_7 = { class: \"prose max-w-6xl prose-indigo mt-6 mx-auto bg-white p-6 rounded-t shadow\" }\nconst _hoisted_8 = { class: \"flex flex-col justify-between md:flex-row\" }\nconst _hoisted_9 = /*#__PURE__*/_createElementVNode(\"h2\", { class: \"inline-block text-2xl mt-0\" }, \"How to lookup a website's IP address\", -1)\nconst _hoisted_10 = { class: \"shrink-0 flex items-center mb-5 text-sm font-medium leading-4\" }\nconst _hoisted_11 = /*#__PURE__*/_createElementVNode(\"span\", { class: \"hidden mr-2 sm:inline\" }, \"Jump to\", -1)\nconst _hoisted_12 = {\n type: \"button\",\n class: \"inline-flex items-center rounded-md border border-[#3a0161] bg-white px-3 py-2 text-[#3a0161] shadow-sm hover:bg-gray-50 focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:ring-offset-2\"\n}\nconst _hoisted_13 = { class: \"first-letter:uppercase\" }\nconst _hoisted_14 = { class: \"md:grid md:gap-6 md:grid-cols-2\" }\nconst _hoisted_15 = /*#__PURE__*/_createElementVNode(\"p\", null, [\n /*#__PURE__*/_createTextVNode(\"Every website has at least one IP address connected to its domain name. For example, the website Facebook has, among others, the IP address \"),\n /*#__PURE__*/_createElementVNode(\"code\", null, \"157.240.214.35\"),\n /*#__PURE__*/_createTextVNode(\" connected to the domain name \"),\n /*#__PURE__*/_createElementVNode(\"code\", null, \"www.facebook.com\"),\n /*#__PURE__*/_createTextVNode(\".\")\n], -1)\nconst _hoisted_16 = /*#__PURE__*/_createElementVNode(\"p\", null, \"When you enter a URL in your browser, it will first determine the domain name of that URL. It then looks up the IP address and connects to the server with this IP. Once connected, it fetches the website's source code to display the page.\", -1)\nconst _hoisted_17 = /*#__PURE__*/_createElementVNode(\"img\", {\n class: \"w-full md:mb-0 md:mt-6\",\n src: \"img/pages/record-type-lookup/a-lookup-mac.png\",\n alt: \"Example output of an IPv4 address lookup\"\n}, null, -1)\nconst _hoisted_18 = /*#__PURE__*/_createElementVNode(\"h2\", { id: \"windows\" }, \"How to lookup a website's IP address on Windows\", -1)\nconst _hoisted_19 = /*#__PURE__*/_createElementVNode(\"p\", null, \"To check the server IP addresses for a domain name on Windows, follow these steps:\", -1)\nconst _hoisted_20 = /*#__PURE__*/_createElementVNode(\"em\", null, \"command prompt\", -1)\nconst _hoisted_21 = /*#__PURE__*/_createElementVNode(\"img\", {\n loading: \"lazy\",\n class: \"block my-2 w-full border border-black/10 rounded-md shadow md:w-1/2\",\n src: \"img/pages/record-type-lookup/open-command-prompt-windows.png\",\n alt: \"Open a command prompt in Windows\"\n}, null, -1)\nconst _hoisted_22 = /*#__PURE__*/_createElementVNode(\"code\", null, \"nslookup -q=A example.com\", -1)\nconst _hoisted_23 = /*#__PURE__*/_createElementVNode(\"code\", null, \"example.com\", -1)\nconst _hoisted_24 = /*#__PURE__*/_createElementVNode(\"img\", {\n loading: \"lazy\",\n class: \"block my-2 w-full border border-black/10 rounded-md shadow md:w-1/2\",\n src: \"img/pages/record-type-lookup/a-lookup-windows.png\",\n alt: \"IPv4 address lookup in Windows\"\n}, null, -1)\nconst _hoisted_25 = /*#__PURE__*/_createElementVNode(\"li\", null, [\n /*#__PURE__*/_createTextVNode(\"The IP addresses are listed below the \"),\n /*#__PURE__*/_createElementVNode(\"strong\", null, \"Non-authoritative answer\"),\n /*#__PURE__*/_createTextVNode(\" heading.\")\n], -1)\nconst _hoisted_26 = /*#__PURE__*/_createElementVNode(\"li\", null, [\n /*#__PURE__*/_createTextVNode(\"(Optional) To also see the IPv6 addresses, repeat these steps with \"),\n /*#__PURE__*/_createElementVNode(\"code\", null, \"AAAA\"),\n /*#__PURE__*/_createTextVNode(\" instead of \"),\n /*#__PURE__*/_createElementVNode(\"code\", null, \"A\"),\n /*#__PURE__*/_createTextVNode(\".\")\n], -1)\nconst _hoisted_27 = /*#__PURE__*/_createElementVNode(\"h2\", { id: \"mac\" }, \"How to lookup a website's IP address on Mac OS\", -1)\nconst _hoisted_28 = /*#__PURE__*/_createElementVNode(\"p\", null, \"To check the IP addresses for a domain name on a Mac, follow these steps:\", -1)\nconst _hoisted_29 = /*#__PURE__*/_createElementVNode(\"em\", null, \"terminal\", -1)\nconst _hoisted_30 = /*#__PURE__*/_createElementVNode(\"img\", {\n loading: \"lazy\",\n class: \"block my-2 w-full border border-black/10 rounded-md shadow md:w-1/2\",\n src: \"img/pages/record-type-lookup/open-terminal-mac.png\",\n alt: \"Open a terminal on a Mac\"\n}, null, -1)\nconst _hoisted_31 = /*#__PURE__*/_createElementVNode(\"code\", null, \"dig example.com A\", -1)\nconst _hoisted_32 = /*#__PURE__*/_createElementVNode(\"code\", null, \"example.com\", -1)\nconst _hoisted_33 = /*#__PURE__*/_createElementVNode(\"img\", {\n loading: \"lazy\",\n class: \"block my-2 w-full border border-black/10 rounded-md shadow md:w-1/2\",\n src: \"img/pages/record-type-lookup/a-lookup-mac.png\",\n alt: \"IPv4 lookup on a Mac\"\n}, null, -1)\nconst _hoisted_34 = /*#__PURE__*/_createElementVNode(\"li\", null, [\n /*#__PURE__*/_createTextVNode(\"The IP addresses are listed below the \"),\n /*#__PURE__*/_createElementVNode(\"strong\", null, \"ANSWER SECTION\"),\n /*#__PURE__*/_createTextVNode(\" heading.\")\n], -1)\nconst _hoisted_35 = /*#__PURE__*/_createElementVNode(\"li\", null, [\n /*#__PURE__*/_createTextVNode(\"(Optional) To also see the IPv6 addresses, repeat these steps with \"),\n /*#__PURE__*/_createElementVNode(\"code\", null, \"AAAA\"),\n /*#__PURE__*/_createTextVNode(\" instead of \"),\n /*#__PURE__*/_createElementVNode(\"code\", null, \"A\"),\n /*#__PURE__*/_createTextVNode(\".\")\n], -1)\nconst _hoisted_36 = /*#__PURE__*/_createElementVNode(\"h2\", { id: \"linux\" }, \"How to lookup a website's IP address on Linux\", -1)\nconst _hoisted_37 = /*#__PURE__*/_createElementVNode(\"p\", null, \"To check the IP addresses for a domain name on Linux, follow these steps:\", -1)\nconst _hoisted_38 = /*#__PURE__*/_createElementVNode(\"em\", null, \"terminal\", -1)\nconst _hoisted_39 = /*#__PURE__*/_createElementVNode(\"img\", {\n loading: \"lazy\",\n class: \"block my-2 w-full border border-black/10 rounded-md shadow md:w-1/2\",\n src: \"img/pages/record-type-lookup/open-terminal-linux.png\",\n alt: \"Open a terminal in Linux\"\n}, null, -1)\nconst _hoisted_40 = /*#__PURE__*/_createElementVNode(\"code\", null, \"dig example.com A\", -1)\nconst _hoisted_41 = /*#__PURE__*/_createElementVNode(\"code\", null, \"example.com\", -1)\nconst _hoisted_42 = /*#__PURE__*/_createElementVNode(\"img\", {\n loading: \"lazy\",\n class: \"block my-2 w-full border border-black/10 rounded-md shadow md:w-1/2\",\n src: \"img/pages/record-type-lookup/a-lookup-linux.png\",\n alt: \"IPv4 lookup in Linux\"\n}, null, -1)\nconst _hoisted_43 = /*#__PURE__*/_createElementVNode(\"li\", null, [\n /*#__PURE__*/_createTextVNode(\"The IP addresses are listed below the \"),\n /*#__PURE__*/_createElementVNode(\"strong\", null, \"ANSWER SECTION\"),\n /*#__PURE__*/_createTextVNode(\" heading.\")\n], -1)\nconst _hoisted_44 = /*#__PURE__*/_createElementVNode(\"li\", null, [\n /*#__PURE__*/_createTextVNode(\"(Optional) To also see the IPv6 addresses, repeat these steps with \"),\n /*#__PURE__*/_createElementVNode(\"code\", null, \"AAAA\"),\n /*#__PURE__*/_createTextVNode(\" instead of \"),\n /*#__PURE__*/_createElementVNode(\"code\", null, \"A\"),\n /*#__PURE__*/_createTextVNode(\".\")\n], -1)\nconst _hoisted_45 = /*#__PURE__*/_createElementVNode(\"h2\", null, \"How to find a website's IP address\", -1)\nconst _hoisted_46 = /*#__PURE__*/_createElementVNode(\"p\", null, \"To check the IP addresses of a domain, follow these steps:\", -1)\nconst _hoisted_47 = /*#__PURE__*/_createElementVNode(\"img\", {\n loading: \"lazy\",\n class: \"block my-2 w-full border border-black/10 rounded-md shadow md:w-1/2\",\n src: \"img/pages/website-to-ip-lookup/website-to-ip-lookup.png\",\n alt: \"Open the website to IP lookup tool\"\n}, null, -1)\nconst _hoisted_48 = /*#__PURE__*/_createElementVNode(\"img\", {\n loading: \"lazy\",\n class: \"block my-2 w-full border border-black/10 rounded-md shadow md:w-1/2\",\n src: \"img/pages/website-to-ip-lookup/website-to-ip-lookup-results.png\",\n alt: \"Example IP addresses\"\n}, null, -1)\nconst _hoisted_49 = /*#__PURE__*/_createElementVNode(\"li\", null, \"The tool will query the IPv4 and IPv6 addresses and shown them at the top of the page.\", -1)\n\nimport { useRouter } from 'vue-router';\nimport HeaderComponent from '@/components/layout/HeaderComponent.vue';\nimport FooterComponent from '@/components/layout/FooterComponent.vue';\nimport DomainSearch from '@/components/DomainSearch.vue';\nimport DnsRecordsLink from '@/components/micro/DnsRecordsLink.vue';\nimport Icon from '@/components/micro/IconComponent.vue';\nimport MetaTags from '@/components/MetaTags.vue';\nimport { LargeRectangle, MediumRectangle } from '@/common/adSizes';\nimport AdUnit from '@/components/ads/AdUnit.vue';\nimport { domainNameToUrlPath } from '@/common/domainName';\nimport { WebsiteToIpLookup } from '@/common/adSlots';\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'WebsiteToIpLookup',\n setup(__props) {\n\nconst router = useRouter();\n\nconst platforms: Array<'windows' | 'mac' | 'linux'> = [\n 'windows',\n 'mac',\n 'linux',\n];\n\nfunction redirectTo(domain: string): void {\n router.push(`/domains/${domainNameToUrlPath(domain)}/webservers/`);\n}\n\nreturn (_ctx: any,_cache: any) => {\n const _component_router_link = _resolveComponent(\"router-link\")!\n\n return (_openBlock(), _createElementBlock(_Fragment, null, [\n (_openBlock(), _createBlock(_Teleport, { to: \"head\" }, [\n _createVNode(MetaTags, {\n title: \"Website to IP Lookup\",\n description: \"Find the IP addresses for any website or domain name. This online tool shows both IPv4 and IPv6 addresses as well as their hosting provider and location.\",\n url: `https://www.nslookup.io/website-to-ip-lookup/`\n }, null, 8, [\"url\"])\n ])),\n _createVNode(HeaderComponent, {\n \"domain-search-to-url\": (encodedDomain) => `/domains/${encodedDomain}/webservers/`,\n \"search-button-text\": \"Find IP addresses\"\n }, null, 8, [\"domain-search-to-url\"]),\n _createElementVNode(\"div\", _hoisted_1, [\n _createElementVNode(\"main\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"form\", _hoisted_4, [\n _hoisted_5,\n _createVNode(DomainSearch, {\n class: \"h-12 mb-6 max-w-full w-[500px]\",\n autofocus: \"\",\n emphasize: \"\",\n buttonText: \"Find IP addresses\",\n \"placeholder-text\": \"URL or domain name\",\n onSubmitted: redirectTo\n }),\n _createElementVNode(\"p\", _hoisted_6, [\n _createTextVNode(\"Find all IP addresses with this website to IP checker. For example, try \"),\n _createVNode(DnsRecordsLink, {\n page: \"webservers\",\n domain: \"facebook.com\",\n class: \"text-blue-600 hover:text-blue-800 hover:underline\"\n }),\n _createTextVNode(\" or \"),\n _createVNode(DnsRecordsLink, {\n page: \"webservers\",\n domain: \"google.com\",\n class: \"text-blue-600 hover:text-blue-800 hover:underline\"\n }),\n _createTextVNode(\" to view their IP addresses. You can also enter a URL to get its IP addresses. \")\n ]),\n _createVNode(AdUnit, {\n class: \"mt-8 mx-auto\",\n config: _unref(WebsiteToIpLookup)\n }, null, 8, [\"config\"])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_7, [\n _createElementVNode(\"div\", _hoisted_8, [\n _hoisted_9,\n _createElementVNode(\"span\", _hoisted_10, [\n _hoisted_11,\n (_openBlock(), _createElementBlock(_Fragment, null, _renderList(platforms, (platform) => {\n return _createVNode(_component_router_link, {\n key: platform,\n to: `#${platform.toLowerCase()}`,\n class: \"no-underline mr-2 last:mr-0\"\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"button\", _hoisted_12, [\n _createVNode(Icon, {\n icon: platform,\n class: \"mr-2\"\n }, null, 8, [\"icon\"]),\n _createElementVNode(\"span\", _hoisted_13, _toDisplayString(platform), 1)\n ])\n ]),\n _: 2\n }, 1032, [\"to\"])\n }), 64))\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_14, [\n _createElementVNode(\"div\", null, [\n _hoisted_15,\n _hoisted_16,\n _createElementVNode(\"p\", null, [\n _createTextVNode(\"These IP addresses are configured in the Domain Name System (DNS) as \"),\n _createVNode(_component_router_link, { to: \"/learning/dns-record-types/a/\" }, {\n default: _withCtx(() => [\n _createTextVNode(\"A\")\n ]),\n _: 1\n }),\n _createTextVNode(\" and \"),\n _createVNode(_component_router_link, { to: \"/learning/dns-record-types/aaaa/\" }, {\n default: _withCtx(() => [\n _createTextVNode(\"AAAA\")\n ]),\n _: 1\n }),\n _createTextVNode(\" records. But how can you look up those IP addresses? That depends on the operating system you are using. Windows, Linux and Mac all have a different way of finding the IPv4 and IPv6 addresses. The sections below list the instructions for each operating system.\")\n ])\n ]),\n _hoisted_17\n ]),\n _hoisted_18,\n _hoisted_19,\n _createElementVNode(\"ol\", null, [\n _createElementVNode(\"li\", null, [\n _createTextVNode(\"Open a \"),\n _hoisted_20,\n _createTextVNode(\" by navigating to \"),\n _createElementVNode(\"strong\", null, [\n _createVNode(Icon, { icon: \"click\" }),\n _createTextVNode(\" Start → \"),\n _createVNode(Icon, { icon: \"click\" }),\n _createTextVNode(\" 'Type here to search' → \"),\n _createVNode(Icon, { icon: \"type\" }),\n _createTextVNode(\" 'cmd' → \"),\n _createVNode(Icon, { icon: \"click\" }),\n _createTextVNode(\" Open\")\n ]),\n _createTextVNode(\".\"),\n _hoisted_21\n ]),\n _createElementVNode(\"li\", null, [\n _createTextVNode(\"Type \"),\n _createElementVNode(\"strong\", null, [\n _createVNode(Icon, { icon: \"type\" }),\n _createTextVNode(),\n _hoisted_22\n ]),\n _createTextVNode(\" and hit \"),\n _createElementVNode(\"strong\", null, [\n _createVNode(Icon, { icon: \"type\" }),\n _createTextVNode(\" [enter]\")\n ]),\n _createTextVNode(\" to get the IPv4 addresses for \"),\n _hoisted_23,\n _createTextVNode(\".\"),\n _hoisted_24\n ]),\n _hoisted_25,\n _hoisted_26\n ]),\n _hoisted_27,\n _hoisted_28,\n _createElementVNode(\"ol\", null, [\n _createElementVNode(\"li\", null, [\n _createTextVNode(\"Open a \"),\n _hoisted_29,\n _createTextVNode(\" by entering \"),\n _createElementVNode(\"strong\", null, [\n _createVNode(Icon, { icon: \"type\" }),\n _createTextVNode(\" [command] + [space] → \"),\n _createVNode(Icon, { icon: \"type\" }),\n _createTextVNode(\" 'terminal.app' → \"),\n _createVNode(Icon, { icon: \"type\" }),\n _createTextVNode(\" [enter]\")\n ]),\n _createTextVNode(\".\"),\n _hoisted_30\n ]),\n _createElementVNode(\"li\", null, [\n _createTextVNode(\"Type \"),\n _createElementVNode(\"strong\", null, [\n _createVNode(Icon, { icon: \"type\" }),\n _createTextVNode(),\n _hoisted_31\n ]),\n _createTextVNode(\" and hit \"),\n _createElementVNode(\"strong\", null, [\n _createVNode(Icon, { icon: \"type\" }),\n _createTextVNode(\" [enter]\")\n ]),\n _createTextVNode(\" to get the IPv4 addresses for \"),\n _hoisted_32,\n _createTextVNode(\".\"),\n _hoisted_33\n ]),\n _hoisted_34,\n _hoisted_35\n ]),\n _hoisted_36,\n _hoisted_37,\n _createElementVNode(\"ol\", null, [\n _createElementVNode(\"li\", null, [\n _createTextVNode(\"Open a \"),\n _hoisted_38,\n _createTextVNode(\" by entering \"),\n _createElementVNode(\"strong\", null, [\n _createVNode(Icon, { icon: \"type\" }),\n _createTextVNode(\" [Super] → \"),\n _createVNode(Icon, { icon: \"type\" }),\n _createTextVNode(\" 'terminal' → \"),\n _createVNode(Icon, { icon: \"type\" }),\n _createTextVNode(\" [enter]\")\n ]),\n _createTextVNode(\".\"),\n _hoisted_39\n ]),\n _createElementVNode(\"li\", null, [\n _createTextVNode(\"Type \"),\n _createElementVNode(\"strong\", null, [\n _createVNode(Icon, { icon: \"type\" }),\n _createTextVNode(),\n _hoisted_40\n ]),\n _createTextVNode(\" and hit \"),\n _createElementVNode(\"strong\", null, [\n _createVNode(Icon, { icon: \"type\" }),\n _createTextVNode(\" [enter]\")\n ]),\n _createTextVNode(\" to get the IPv4 addresses for \"),\n _hoisted_41,\n _createTextVNode(\".\"),\n _hoisted_42\n ]),\n _hoisted_43,\n _hoisted_44\n ]),\n _hoisted_45,\n _hoisted_46,\n _createElementVNode(\"ol\", null, [\n _createElementVNode(\"li\", null, [\n _createTextVNode(\"Open the \"),\n _createVNode(_component_router_link, { to: \"/website-to-ip-lookup/\" }, {\n default: _withCtx(() => [\n _createTextVNode(\"website to IP lookup tool\")\n ]),\n _: 1\n }),\n _createTextVNode(\".\"),\n _hoisted_47\n ]),\n _createElementVNode(\"li\", null, [\n _createTextVNode(\"Enter the URL or domain name and hit \"),\n _createElementVNode(\"strong\", null, [\n _createVNode(Icon, { icon: \"type\" }),\n _createTextVNode(\" [enter]\")\n ]),\n _createTextVNode(\".\"),\n _hoisted_48\n ]),\n _hoisted_49\n ])\n ])\n ])\n ]),\n _createVNode(FooterComponent)\n ], 64))\n}\n}\n\n})","import script from \"./WebsiteToIpLookup.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./WebsiteToIpLookup.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createElementVNode as _createElementVNode, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, withModifiers as _withModifiers, createCommentVNode as _createCommentVNode, toDisplayString as _toDisplayString, createVNode as _createVNode, createTextVNode as _createTextVNode, normalizeStyle as _normalizeStyle } from \"vue\"\n\nconst _hoisted_1 = { key: 0 }\nconst _hoisted_2 = /*#__PURE__*/_createElementVNode(\"colgroup\", null, [\n /*#__PURE__*/_createElementVNode(\"col\", { class: \"min-w-[35px]\" }),\n /*#__PURE__*/_createElementVNode(\"col\", { class: \"w-full sm:w-[60%] md:w-[35%]\" }),\n /*#__PURE__*/_createElementVNode(\"col\", { class: \"w-[10%] hidden md:table-column\" }),\n /*#__PURE__*/_createElementVNode(\"col\", { class: \"w-[40%] hidden md:w-[25%] sm:table-column\" }),\n /*#__PURE__*/_createElementVNode(\"col\", { class: \"w-[30%] hidden md:table-column\" })\n], -1)\nconst _hoisted_3 = /*#__PURE__*/_createElementVNode(\"thead\", null, [\n /*#__PURE__*/_createElementVNode(\"tr\", { class: \"border-b-2 border-gray-200 text-left\" }, [\n /*#__PURE__*/_createElementVNode(\"th\", { scope: \"col\" }),\n /*#__PURE__*/_createElementVNode(\"th\", {\n scope: \"col\",\n class: \"py-1.5 font-medium\"\n }, \"IP address\"),\n /*#__PURE__*/_createElementVNode(\"th\", {\n scope: \"col\",\n class: \"py-1.5 font-medium hidden md:table-cell\"\n }, \"Type\"),\n /*#__PURE__*/_createElementVNode(\"th\", {\n scope: \"col\",\n class: \"py-1.5 font-medium hidden sm:table-cell\"\n }, \"Hosted by\"),\n /*#__PURE__*/_createElementVNode(\"th\", {\n scope: \"col\",\n class: \"py-1.5 font-medium hidden md:table-cell\"\n }, \"Location\")\n ])\n], -1)\nconst _hoisted_4 = { class: \"group\" }\nconst _hoisted_5 = /*#__PURE__*/_createElementVNode(\"svg\", {\n width: \"1em\",\n height: \"1em\",\n viewBox: \"0 0 16 16\",\n class: \"inline\",\n fill: \"currentColor\",\n xmlns: \"http://www.w3.org/2000/svg\"\n}, [\n /*#__PURE__*/_createElementVNode(\"path\", {\n \"fill-rule\": \"evenodd\",\n d: \"M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z\"\n })\n], -1)\nconst _hoisted_6 = [\n _hoisted_5\n]\nconst _hoisted_7 = { key: 1 }\nconst _hoisted_8 = { class: \"py-1\" }\nconst _hoisted_9 = { class: \"break-all\" }\nconst _hoisted_10 = { class: \"hidden md:table-cell\" }\nconst _hoisted_11 = { class: \"hidden sm:table-cell\" }\nconst _hoisted_12 = [\"src\", \"alt\", \"title\"]\nconst _hoisted_13 = { class: \"hidden md:table-cell\" }\nconst _hoisted_14 = {\n key: 0,\n class: \"hidden\"\n}\nconst _hoisted_15 = { colspan: \"5\" }\nconst _hoisted_16 = { class: \"flex flex-col items-stretch bg-neutral-50 rounded-sm overflow-hidden md:flex-row\" }\nconst _hoisted_17 = { class: \"md:w-1/2\" }\nconst _hoisted_18 = { class: \"block m-6 ml-8 mb-4 text-lg font-medium\" }\nconst _hoisted_19 = { class: \"w-full mx-6 md:mb-4 border-separate border-spacing-2\" }\nconst _hoisted_20 = /*#__PURE__*/_createElementVNode(\"th\", {\n scope: \"row\",\n class: \"text-left font-medium\"\n}, \"Location\", -1)\nconst _hoisted_21 = [\"href\"]\nconst _hoisted_22 = /*#__PURE__*/_createElementVNode(\"th\", {\n scope: \"row\",\n class: \"text-left font-medium\"\n}, \"AS\", -1)\nconst _hoisted_23 = /*#__PURE__*/_createElementVNode(\"th\", {\n scope: \"row\",\n class: \"text-left font-medium whitespace-nowrap\"\n}, \"AS name\", -1)\nconst _hoisted_24 = { class: \"w-full p-4 md:w-1/2\" }\nconst _hoisted_25 = { key: 1 }\n\nimport { computed, PropType } from 'vue';\nimport Copy from '@/components/micro/CopyComponent.vue';\nimport {\n A, AAAA, QueryResult, RecordInfo,\n} from '@/model/Api';\n\ntype IpRecordWithInfo = {\n record: A | AAAA;\n} & RecordInfo\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'IpAddresses',\n props: {\n aRecords: {\n type: Object as PropType,\n required: true,\n },\n aaaaRecords: {\n type: Object as PropType,\n required: true,\n },\n},\n setup(__props) {\n\nconst props = __props;\n\n\n\nconst processedRecords = computed(() => props.aRecords.response.answer.concat(props.aaaaRecords.response.answer).filter((item) => ['A', 'AAAA'].includes(item.record.recordType)) as Array);\n\nfunction getIp(record: A | AAAA): string {\n if ('ipv4' in record) return record.ipv4;\n return record.ipv6.slice(1, -1);\n}\n\nreturn (_ctx: any,_cache: any) => {\n return (_unref(processedRecords).length !== 0)\n ? (_openBlock(), _createElementBlock(\"table\", _hoisted_1, [\n _hoisted_2,\n _hoisted_3,\n _createElementVNode(\"tbody\", null, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(processedRecords), (record, index) => {\n return (_openBlock(), _createElementBlock(_Fragment, { key: index }, [\n _createElementVNode(\"tr\", _hoisted_4, [\n (record.ipInfo)\n ? (_openBlock(), _createElementBlock(\"td\", {\n key: 0,\n class: \"text-center\",\n onClick: _cache[0] || (_cache[0] = _withModifiers(e => { e.target?.closest('tr').nextSibling.classList.toggle('hidden'); e.target?.closest('tr').querySelector('svg').classList.toggle('rotate-90') }, [\"stop\"]))\n }, _hoisted_6))\n : (_openBlock(), _createElementBlock(\"td\", _hoisted_7)),\n _createElementVNode(\"td\", _hoisted_8, [\n _createElementVNode(\"strong\", _hoisted_9, _toDisplayString(getIp(record.record)), 1),\n _createVNode(Copy, {\n content: getIp(record.record),\n class: \"[visibility:hidden] group-hover:visible\"\n }, null, 8, [\"content\"])\n ]),\n _createElementVNode(\"td\", _hoisted_10, _toDisplayString(record.record.recordType === 'A' ? 'IPv4' : 'IPv6'), 1),\n _createElementVNode(\"td\", _hoisted_11, [\n (record.ipInfo)\n ? (_openBlock(), _createElementBlock(\"img\", {\n key: 0,\n class: \"inline w-4 h-4 mb-0.5 mr-1.5\",\n src: `https://icons.duckduckgo.com/ip3/${record.ipInfo.asdomain}.ico`,\n alt: `Hosted by ${record.ipInfo.asname}`,\n title: `Hosted by ${record.ipInfo.asname}`\n }, null, 8, _hoisted_12))\n : _createCommentVNode(\"\", true),\n _createTextVNode(\" \" + _toDisplayString(record.ipInfo?.asname), 1)\n ]),\n _createElementVNode(\"td\", _hoisted_13, _toDisplayString(record.ipInfo?.country), 1)\n ]),\n (record.ipInfo)\n ? (_openBlock(), _createElementBlock(\"tr\", _hoisted_14, [\n _createElementVNode(\"td\", _hoisted_15, [\n _createElementVNode(\"div\", _hoisted_16, [\n _createElementVNode(\"div\", _hoisted_17, [\n _createElementVNode(\"span\", _hoisted_18, _toDisplayString(record.ipInfo.org), 1),\n _createElementVNode(\"table\", _hoisted_19, [\n _createElementVNode(\"tbody\", null, [\n _createElementVNode(\"tr\", null, [\n _hoisted_20,\n _createElementVNode(\"td\", null, [\n _createElementVNode(\"a\", {\n href: `https://www.google.com/maps/search/${record.ipInfo.city}, ${record.ipInfo.regionName}, ${record.ipInfo.country}`,\n target: \"_blank\",\n rel: \"noopener noreferrer\",\n class: \"text-blue-600 hover:text-blue-800 hover:underline\"\n }, _toDisplayString(record.ipInfo.city) + \", \" + _toDisplayString(record.ipInfo.regionName) + \", \" + _toDisplayString(record.ipInfo.country), 9, _hoisted_21)\n ])\n ]),\n _createElementVNode(\"tr\", null, [\n _hoisted_22,\n _createElementVNode(\"td\", null, _toDisplayString(record.ipInfo.as), 1)\n ]),\n _createElementVNode(\"tr\", null, [\n _hoisted_23,\n _createElementVNode(\"td\", null, _toDisplayString(record.ipInfo.asname), 1)\n ])\n ])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_24, [\n _createElementVNode(\"div\", {\n class: \"min-h-[140px] h-full w-full rounded-sm bg-center\",\n style: _normalizeStyle({ backgroundImage: `url(https://stadiamaps.com/static/outdoors?api_key=23fe682b-ac7c-4f2b-83db-39dcf2a8b9ac¢er=${record.ipInfo.lat + 2},${record.ipInfo.lon}&zoom=2&markers=${record.ipInfo.lat},${record.ipInfo.lon}&size=1068x534 )` })\n }, null, 4)\n ])\n ])\n ])\n ]))\n : _createCommentVNode(\"\", true)\n ], 64))\n }), 128))\n ])\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_25, \"No IP addresses records found.\"))\n}\n}\n\n})","import script from \"./IpAddresses.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./IpAddresses.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { createVNode as _createVNode, Teleport as _Teleport, openBlock as _openBlock, createBlock as _createBlock, unref as _unref, toDisplayString as _toDisplayString, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createElementVNode as _createElementVNode, createTextVNode as _createTextVNode, withCtx as _withCtx, renderList as _renderList, Fragment as _Fragment, resolveComponent as _resolveComponent } from \"vue\"\n\nconst _hoisted_1 = { class: \"flex-grow bg-neutral-100\" }\nconst _hoisted_2 = { class: \"container mx-auto max-w-6xl\" }\nconst _hoisted_3 = { class: \"flex flex-col justify-between mt-8 mb-6 ml-6 sm:flex-row sm:items-center\" }\nconst _hoisted_4 = { class: \"text-3xl\" }\nconst _hoisted_5 = { key: 0 }\nconst _hoisted_6 = { key: 1 }\nconst _hoisted_7 = /*#__PURE__*/_createElementVNode(\"button\", {\n type: \"button\",\n class: \"inline-flex items-center rounded-md border border-gray-300 bg-white px-3 py-2 text-sm font-medium leading-4 text-gray-700 shadow-sm hover:bg-gray-50 focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:ring-offset-2\"\n}, \"All DNS records\", -1)\nconst _hoisted_8 = { class: \"bg-white shadow p-6 pb-10 rounded-t\" }\nconst _hoisted_9 = {\n key: 1,\n \"aria-hidden\": \"true\"\n}\nconst _hoisted_10 = { class: \"mb-3\" }\nconst _hoisted_11 = {\n key: 0,\n class: \"mt-4\"\n}\nconst _hoisted_12 = { class: \"font-semibold\" }\nconst _hoisted_13 = /*#__PURE__*/_createElementVNode(\"h2\", { class: \"mt-8 mb-2 font-semibold text-2xl clear-right\" }, \"Question and response\", -1)\nconst _hoisted_14 = { class: \"flex flex-col gap-6 lg:flex-row\" }\nconst _hoisted_15 = { class: \"min-w-0\" }\nconst _hoisted_16 = { class: \"min-w-0\" }\nconst _hoisted_17 = /*#__PURE__*/_createElementVNode(\"h2\", { class: \"mt-8 mb-2 font-semibold text-2xl\" }, \"Find the IP addresses for another website or domain name\", -1)\nconst _hoisted_18 = { class: \"flex flex-col lg:flex-row\" }\nconst _hoisted_19 = { class: \"shrink max-w-xl\" }\nconst _hoisted_20 = {\n class: \"mt-3 w-[500px] max-w-full sm:px-6 lg:mt-0\",\n autocomplete: \"off\"\n}\n\nimport { ref, watch } from 'vue';\nimport { useRouter } from 'vue-router';\nimport axios, { Canceler } from 'axios';\nimport { domainNameToDisplayName, domainNameToUrlPath, urlPathToDomainName } from '@/common/domainName';\nimport HeaderComponent from '@/components/layout/HeaderComponent.vue';\nimport FooterComponent from '@/components/layout/FooterComponent.vue';\nimport DomainSearch from '@/components/DomainSearch.vue';\nimport Alert from '@/components/micro/AlertComponent.vue';\nimport DnsRecordsLink from '@/components/micro/DnsRecordsLink.vue';\nimport RawRecords from '@/components/micro/RawRecords.vue';\nimport MetaTags from '@/components/MetaTags.vue';\nimport SkeletonComponent from '@/components/micro/SkeletonComponent.vue';\nimport { ApiErrorType, toErrorType } from '@/model/ApiErrorAlert';\nimport ApiErrorAlert from '@/components/ApiErrorAlert.vue';\nimport IpAddresses from '@/components/records/IpAddresses.vue';\nimport {\n QueryResult, WebserversResponse, emptyDnsServer, emptyResponse,\n} from '@/model/Api';\nimport AdUnit from '@/components/ads/AdUnit.vue';\nimport { WebsiteToIpResultsTop, WebsiteToIpResultsSide, WebsiteToIpResultsBottom } from '@/common/adSlots';\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'WebsiteToIpLookupResults',\n props: {\n routerDomain: {\n type: String,\n required: true,\n },\n},\n setup(__props) {\n\nconst props = __props;\n\n\n\nconst router = useRouter();\n\nconst domain = ref('');\nconst domainPunycode = ref('');\nconst loading = ref(true);\nconst error = ref(null);\nconst showSidebar = ref(window.innerWidth > 991);\nconst cancelToken = ref(null);\nconst queryResultA = ref({\n query: {\n server: emptyDnsServer,\n domain: domain.value,\n recordType: 'A',\n },\n response: emptyResponse,\n});\nconst queryResultAaaa = ref({\n query: {\n server: emptyDnsServer,\n domain: domain.value,\n recordType: 'AAAA',\n },\n response: emptyResponse,\n});\n\nfunction redirectTo(newDomain: string): void {\n router.push(`/domains/${domainNameToUrlPath(newDomain)}/webservers/`);\n}\n\nfunction load() {\n loading.value = true;\n error.value = null;\n\n if (cancelToken.value) {\n cancelToken.value();\n }\n const axiosSource = axios.CancelToken.source();\n cancelToken.value = axiosSource.cancel;\n\n axios\n .post('api/v1/webservers', {\n domain: domain.value,\n }, {\n cancelToken: axiosSource.token,\n })\n .then((response) => {\n if (props.routerDomain !== domainNameToUrlPath(response.data.punycodeDomain)) {\n router.replace({\n path: `/domains/${domainNameToUrlPath(response.data.punycodeDomain)}/webservers/`,\n });\n }\n domain.value = domainNameToDisplayName(response.data.unicodeDomain);\n domainPunycode.value = domainNameToDisplayName(response.data.punycodeDomain);\n queryResultA.value = response.data.a;\n queryResultAaaa.value = response.data.aaaa;\n loading.value = false;\n })\n .catch((e) => {\n if (!axios.isCancel(e)) {\n error.value = toErrorType(e.response.data.error);\n }\n });\n}\n\nwatch(() => props.routerDomain, () => {\n const domainName = urlPathToDomainName(props.routerDomain);\n domain.value = domainName;\n domainPunycode.value = domainName;\n load();\n}, {\n immediate: true,\n});\n\nwindow.addEventListener('resize', () => {\n showSidebar.value = window.innerWidth > 991;\n});\n\nreturn (_ctx: any,_cache: any) => {\n const _component_router_link = _resolveComponent(\"router-link\")!\n\n return (_openBlock(), _createElementBlock(_Fragment, null, [\n (_openBlock(), _createBlock(_Teleport, { to: \"head\" }, [\n _createVNode(MetaTags, {\n title: `IP addresses used by ${domain.value}`,\n description: `These are the IPv4 and IPv6 addresses for ${domain.value}, according to the authoritative DNS server.`,\n url: `https://www.nslookup.io/domains/${domainPunycode.value}/webservers/`\n }, null, 8, [\"title\", \"description\", \"url\"])\n ])),\n _createVNode(HeaderComponent, {\n domain: domain.value,\n \"domain-search-to-url\": (encodedDomain) => `/domains/${encodedDomain}/webservers/`,\n \"search-button-text\": \"Find IP addresses\"\n }, null, 8, [\"domain\", \"domain-search-to-url\"]),\n _createElementVNode(\"div\", _hoisted_1, [\n _createElementVNode(\"main\", _hoisted_2, [\n _createVNode(AdUnit, {\n class: \"mx-auto\",\n config: _unref(WebsiteToIpResultsTop)\n }, null, 8, [\"config\"]),\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"h1\", _hoisted_4, [\n _createTextVNode(\"IP addresses for \"),\n (domain.value === domainPunycode.value)\n ? (_openBlock(), _createElementBlock(\"b\", _hoisted_5, _toDisplayString(domain.value), 1))\n : (_openBlock(), _createElementBlock(\"span\", _hoisted_6, [\n _createElementVNode(\"b\", null, _toDisplayString(domainPunycode.value), 1),\n _createTextVNode(\" (\" + _toDisplayString(domain.value) + \")\", 1)\n ]))\n ]),\n _createVNode(DnsRecordsLink, {\n domain: domain.value,\n class: \"shrink-0 hidden mr-6 sm:block xl:mr-0\"\n }, {\n default: _withCtx(() => [\n _hoisted_7\n ]),\n _: 1\n }, 8, [\"domain\"])\n ]),\n _createElementVNode(\"div\", _hoisted_8, [\n _createVNode(AdUnit, {\n class: \"float-right ml-6\",\n config: _unref(WebsiteToIpResultsSide)\n }, null, 8, [\"config\"]),\n (error.value !== null)\n ? (_openBlock(), _createBlock(ApiErrorAlert, {\n key: 0,\n error: error.value,\n domain: domain.value,\n dnsserver: \"authoritative\"\n }, null, 8, [\"error\", \"domain\"]))\n : (loading.value)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_9, [\n _createVNode(SkeletonComponent, { class: \"w-56 h-8 mb-6\" }),\n (_openBlock(), _createElementBlock(_Fragment, null, _renderList(2, (n) => {\n return _createElementVNode(\"div\", { key: n }, [\n (_openBlock(), _createElementBlock(_Fragment, null, _renderList(2, (n) => {\n return _createVNode(SkeletonComponent, {\n key: n,\n class: \"inline-block w-1/2 h-4 pr-[10%] bg-clip-content\"\n })\n }), 64))\n ])\n }), 64)),\n _createVNode(SkeletonComponent, { class: \"inline-block w-56 h-8 my-6\" }),\n _createVNode(SkeletonComponent, { class: \"w-24 h-4 mb-2\" }),\n _createVNode(SkeletonComponent, { class: \"w-1/2 h-4 mb-6\" }),\n (_openBlock(), _createElementBlock(_Fragment, null, _renderList(3, (n) => {\n return (_openBlock(), _createElementBlock(_Fragment, { key: n }, [\n _createVNode(SkeletonComponent, { class: \"w-24 h-4 mb-2 block\" }),\n _createVNode(SkeletonComponent, { class: \"w-1/2 h-4 mb-2 block\" }),\n _createVNode(SkeletonComponent, { class: \"w-1/2 h-4 mb-6\" })\n ], 64))\n }), 64))\n ]))\n : (_openBlock(), _createElementBlock(_Fragment, { key: 2 }, [\n _createElementVNode(\"p\", _hoisted_10, \"Our DNS servers responded with these IP addresses when we queried it for the domain \" + _toDisplayString(domain.value) + \". Some DNS servers may return different IP addresses based on your location.\", 1),\n (queryResultA.value.response.answer.length === 0 && queryResultAaaa.value.response.answer.length === 0)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_11, [\n _createVNode(Alert, { type: \"warning\" }, {\n default: _withCtx(() => [\n _createElementVNode(\"span\", null, [\n _createElementVNode(\"span\", _hoisted_12, _toDisplayString(domain.value), 1),\n _createTextVNode(\" does not have any IP addresses.\")\n ])\n ]),\n _: 1\n })\n ]))\n : (_openBlock(), _createBlock(IpAddresses, {\n key: 1,\n \"a-records\": queryResultA.value,\n \"aaaa-records\": queryResultAaaa.value\n }, null, 8, [\"a-records\", \"aaaa-records\"])),\n _hoisted_13,\n _createElementVNode(\"div\", _hoisted_14, [\n _createElementVNode(\"div\", _hoisted_15, [\n _createVNode(RawRecords, { records: queryResultA.value }, null, 8, [\"records\"])\n ]),\n _createElementVNode(\"div\", _hoisted_16, [\n _createVNode(RawRecords, { records: queryResultAaaa.value }, null, 8, [\"records\"])\n ])\n ])\n ], 64)),\n _createVNode(AdUnit, {\n class: \"mt-8 mx-auto\",\n config: _unref(WebsiteToIpResultsBottom)\n }, null, 8, [\"config\"]),\n _hoisted_17,\n _createElementVNode(\"div\", _hoisted_18, [\n _createElementVNode(\"p\", _hoisted_19, [\n _createTextVNode(\"With \"),\n _createVNode(_component_router_link, {\n to: \"/website-to-ip-lookup/\",\n class: \"text-blue-600 hover:text-blue-800 hover:underline\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(\"website to IP lookup\")\n ]),\n _: 1\n }),\n _createTextVNode(\", you can find the IP addresses for any domain name or subdomain. When you enter the domain in the input field below, it will show whether or not IP addresses are configured for that domain.\")\n ]),\n _createElementVNode(\"form\", _hoisted_20, [\n _createVNode(DomainSearch, {\n \"placeholder-text\": \"Domain name\",\n emphasize: \"\",\n buttonText: \"Find IP addresses\",\n prefill: domain.value,\n onSubmitted: redirectTo\n }, null, 8, [\"prefill\"])\n ])\n ])\n ])\n ])\n ]),\n _createVNode(FooterComponent)\n ], 64))\n}\n}\n\n})","import script from \"./WebsiteToIpLookupResults.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./WebsiteToIpLookupResults.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { createVNode as _createVNode, createTextVNode as _createTextVNode, resolveDynamicComponent as _resolveDynamicComponent, withCtx as _withCtx, openBlock as _openBlock, createBlock as _createBlock, Teleport as _Teleport, createElementVNode as _createElementVNode, resolveComponent as _resolveComponent, unref as _unref, renderList as _renderList, Fragment as _Fragment, createElementBlock as _createElementBlock, toDisplayString as _toDisplayString } from \"vue\"\n\nconst _hoisted_1 = /*#__PURE__*/_createElementVNode(\"span\", { \"data-ccpa-link\": \"1\" }, null, -1)\nconst _hoisted_2 = /*#__PURE__*/_createElementVNode(\"h1\", { class: \"text-3xl mt-14\" }, \"Dns lookup\", -1)\nconst _hoisted_3 = /*#__PURE__*/_createElementVNode(\"p\", null, \"Online nslookup is a web based DNS client that queries DNS records for a given domain name. It allows you to view all the DNS records for a website. It provides the same information as command line tools like dig and nslookup, from the convenience of your web browser.\", -1)\nconst _hoisted_4 = /*#__PURE__*/_createElementVNode(\"p\", null, \"Nslookup.io does not cache the DNS responses it shows, but the DNS servers that are queried usually do respond with a cached record set. Except for authoritative DNS servers. They never serve cached DNS records.\", -1)\nconst _hoisted_5 = /*#__PURE__*/_createElementVNode(\"h2\", null, \"How does online nslookup work?\", -1)\nconst _hoisted_6 = /*#__PURE__*/_createElementVNode(\"p\", null, \"Using nslookup online is very simple. Enter a domain name in the search bar above and hit 'enter'. This will take you to an overview of DNS records for the domain name you specified. Behind the scenes, NsLookup.io will query a DNS server for DNS records without caching the results.\", -1)\nconst _hoisted_7 = /*#__PURE__*/_createElementVNode(\"h2\", null, \"Supported DNS record types\", -1)\nconst _hoisted_8 = /*#__PURE__*/_createElementVNode(\"a\", {\n href: \"https://en.wikipedia.org/wiki/List_of_DNS_record_types#Obsolete_record_types\",\n target: \"_blank\",\n rel: \"noopener noreferrer\"\n}, \"obsolete record types\", -1)\nconst _hoisted_9 = { class: \"ml-2 list-disc list-inside\" }\nconst _hoisted_10 = /*#__PURE__*/_createElementVNode(\"h2\", null, \"Use cases for online DNS lookup\", -1)\nconst _hoisted_11 = /*#__PURE__*/_createElementVNode(\"p\", null, \"There are many situations where online nslookup can be a useful tool. For example, when you are configuring the DNS records of your own domain, you might want to check whether you have configured them correctly. You can do this by entering the domain name at the top of this page.\", -1)\nconst _hoisted_12 = /*#__PURE__*/_createElementVNode(\"p\", null, \"Whenever you change DNS records, it takes a while for it to propagate through the entire domain name system. This takes time because DNS servers cache records in order to speed up DNS resolution. So whenever you change DNS records, you can check whether they have propagated yet by doing a DNS lookup.\", -1)\nconst _hoisted_13 = /*#__PURE__*/_createElementVNode(\"p\", null, \"There are of course more use cases for online nslookup, instead of using a CLI. Those include being able to share the results with a colleague or friend, and the ability to see multiple record types at the same time, without querying multiple times.\", -1)\n\nimport { recordTypes } from '@/common/recordTypes';\nimport DnsRecordsLink from '@/components/micro/DnsRecordsLink.vue';\nimport MetaTags from '@/components/MetaTags.vue';\nimport SearchWithHiddenContentPage from '@/components/pages/SearchWithHiddenContentPage.vue';\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'HomeView',\n setup(__props) {\n\n\nreturn (_ctx: any,_cache: any) => {\n const _component_router_link = _resolveComponent(\"router-link\")!\n\n return (_openBlock(), _createElementBlock(_Fragment, null, [\n (_openBlock(), _createBlock(_Teleport, { to: \"head\" }, [\n _createVNode(MetaTags, {\n title: \"DNS Lookup\",\n description: \"Find all DNS records for a domain name with this online tool. Nslookup shows A, AAAA, CNAME, TXT, MX, SPF, NS, SOA and more.\",\n url: \"https://www.nslookup.io/\",\n img1024x512: \"https://www.nslookup.io/img/social-1024x512.png\",\n img1200x630: \"https://www.nslookup.io/img/social-1200x630.png\"\n }),\n (_openBlock(), _createBlock(_resolveDynamicComponent('script'), { type: \"application/ld+json\" }, {\n default: _withCtx(() => [\n _createTextVNode(\" { \\\"@context\\\": \\\"https://schema.org\\\", \\\"@type\\\": \\\"WebSite\\\", \\\"url\\\": \\\"https://www.nslookup.io/\\\", \\\"potentialAction\\\": { \\\"@type\\\": \\\"SearchAction\\\", \\\"target\\\": \\\"https://www.nslookup.io/domains/{search_term_string}/dns-records/\\\", \\\"query-input\\\": \\\"required name=search_term_string\\\" } } \")\n ]),\n _: 1\n }))\n ])),\n _createVNode(SearchWithHiddenContentPage, {\n domainSearchToUrl: (domain) => `/domains/${domain}/dns-records/`\n }, {\n \"search-explanation\": _withCtx(() => [\n _hoisted_1,\n _createTextVNode(\" Find all DNS records for a domain name using this online tool. For example, try \"),\n _createVNode(DnsRecordsLink, {\n domain: \"wikipedia.org\",\n class: \"text-blue-600 hover:text-blue-800 hover:underline\"\n }),\n _createTextVNode(\" or \"),\n _createVNode(DnsRecordsLink, {\n domain: \"www.twitter.com\",\n class: \"text-blue-600 hover:text-blue-800 hover:underline\"\n }),\n _createTextVNode(\" to view their DNS records. \")\n ]),\n content: _withCtx(() => [\n _hoisted_2,\n _hoisted_3,\n _hoisted_4,\n _hoisted_5,\n _hoisted_6,\n _createElementVNode(\"p\", null, [\n _createTextVNode(\"You can select from a range of DNS servers on the result page. These include popular public DNS servers, the authoritative DNS server for the given domain, and local DNS servers all around the world. By default, only \"),\n _createVNode(_component_router_link, { to: \"/learning/dns-record-types/a/\" }, {\n default: _withCtx(() => [\n _createTextVNode(\"A\")\n ]),\n _: 1\n }),\n _createTextVNode(\", \"),\n _createVNode(_component_router_link, { to: \"/learning/dns-record-types/aaaa/\" }, {\n default: _withCtx(() => [\n _createTextVNode(\"AAAA\")\n ]),\n _: 1\n }),\n _createTextVNode(\", \"),\n _createVNode(_component_router_link, { to: \"/learning/dns-record-types/cname/\" }, {\n default: _withCtx(() => [\n _createTextVNode(\"CNAME\")\n ]),\n _: 1\n }),\n _createTextVNode(\", \"),\n _createVNode(_component_router_link, { to: \"/learning/dns-record-types/txt/\" }, {\n default: _withCtx(() => [\n _createTextVNode(\"TXT\")\n ]),\n _: 1\n }),\n _createTextVNode(\", \"),\n _createVNode(_component_router_link, { to: \"/learning/dns-record-types/ns/\" }, {\n default: _withCtx(() => [\n _createTextVNode(\"NS\")\n ]),\n _: 1\n }),\n _createTextVNode(\", \"),\n _createVNode(_component_router_link, { to: \"/learning/dns-record-types/mx/\" }, {\n default: _withCtx(() => [\n _createTextVNode(\"MX\")\n ]),\n _: 1\n }),\n _createTextVNode(\" and \"),\n _createVNode(_component_router_link, { to: \"/learning/dns-record-types/soa/\" }, {\n default: _withCtx(() => [\n _createTextVNode(\"SOA\")\n ]),\n _: 1\n }),\n _createTextVNode(\" records are shown, but you can select additional record types. \")\n ]),\n _hoisted_7,\n _createElementVNode(\"p\", null, [\n _createVNode(_component_router_link, { to: \"/learning/dns-record-types/\" }, {\n default: _withCtx(() => [\n _createTextVNode(\"DNS has many record types\")\n ]),\n _: 1\n }),\n _createTextVNode(\" that each serve a distinct purpose. However, some of these record types are no longer in use. Wikipedia has a list of \"),\n _hoisted_8,\n _createTextVNode(\". These obsolete types are not supported by nslookup.io. All the DNS record types that are known to be in active use are supported by nslookup:\")\n ]),\n _createElementVNode(\"ul\", _hoisted_9, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(recordTypes), (otherRecordType, index) => {\n return (_openBlock(), _createElementBlock(\"li\", { key: index }, [\n _createVNode(_component_router_link, {\n to: `/${otherRecordType.lower}-lookup/`\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(otherRecordType.upper) + \" lookup\", 1)\n ]),\n _: 2\n }, 1032, [\"to\"]),\n _createTextVNode(\" — \" + _toDisplayString(otherRecordType.description), 1)\n ]))\n }), 128))\n ]),\n _hoisted_10,\n _hoisted_11,\n _hoisted_12,\n _hoisted_13\n ]),\n _: 1\n }, 8, [\"domainSearchToUrl\"])\n ], 64))\n}\n}\n\n})","import script from \"./HomeView.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./HomeView.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, normalizeClass as _normalizeClass, createElementVNode as _createElementVNode, isRef as _isRef, withCtx as _withCtx, createVNode as _createVNode, renderSlot as _renderSlot, openBlock as _openBlock, createBlock as _createBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"text-sm font-medium text-gray-900 w-full\" }\n\nimport { useStore } from 'vuex';\nimport { computed } from 'vue';\nimport { Switch, SwitchGroup, SwitchLabel } from '@headlessui/vue';\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'ToggleRawOutput',\n setup(__props) {\n\nconst store = useStore();\nconst showRawOutput = computed({\n get() {\n return store.state.showRawOutput;\n },\n set() {\n store.commit('toggleRawOutput');\n },\n});\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createBlock(_unref(SwitchGroup), {\n as: \"div\",\n class: \"flex items-center\"\n }, {\n default: _withCtx(() => [\n _createVNode(_unref(Switch), {\n modelValue: _unref(showRawOutput),\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => (_isRef(showRawOutput) ? (showRawOutput).value = $event : null)),\n class: _normalizeClass([_unref(showRawOutput) ? 'bg-indigo-600' : 'bg-gray-200', 'relative inline-flex h-6 w-11 flex-shrink-0 cursor-pointer rounded-full border-2 border-transparent transition-colors duration-200 ease-in-out focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:ring-offset-2'])\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"span\", {\n \"aria-hidden\": \"true\",\n class: _normalizeClass([_unref(showRawOutput) ? 'translate-x-5' : 'translate-x-0', 'pointer-events-none inline-block h-5 w-5 transform rounded-full bg-white shadow ring-0 transition duration-200 ease-in-out'])\n }, null, 2)\n ]),\n _: 1\n }, 8, [\"modelValue\", \"class\"]),\n _createVNode(_unref(SwitchLabel), {\n as: \"span\",\n class: \"ml-3 w-full\"\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"span\", _hoisted_1, [\n _renderSlot(_ctx.$slots, \"default\")\n ])\n ]),\n _: 3\n })\n ]),\n _: 3\n }))\n}\n}\n\n})","import script from \"./ToggleRawOutput.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./ToggleRawOutput.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { createVNode as _createVNode, Teleport as _Teleport, openBlock as _openBlock, createBlock as _createBlock, toDisplayString as _toDisplayString, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createElementVNode as _createElementVNode, createTextVNode as _createTextVNode, unref as _unref, renderList as _renderList, Fragment as _Fragment, resolveComponent as _resolveComponent, normalizeClass as _normalizeClass, withCtx as _withCtx, Transition as _Transition } from \"vue\"\n\nconst _hoisted_1 = { class: \"flex-grow bg-neutral-100\" }\nconst _hoisted_2 = { class: \"container mx-auto max-w-6xl\" }\nconst _hoisted_3 = { class: \"text-3xl mt-8 ml-6\" }\nconst _hoisted_4 = { key: 0 }\nconst _hoisted_5 = { key: 1 }\nconst _hoisted_6 = {\n key: 0,\n class: \"inline-block mt-1 ml-6 text-gray-600 font-medium text-sm hover:text-indigo-600\",\n href: \"https://usersearch.org/landing/index.html\",\n rel: \"noopener\"\n}\nconst _hoisted_7 = { class: \"sticky z-10 mt-6 top-0 bg-neutral-100\" }\nconst _hoisted_8 = {\n class: \"pl-6 flex gap-7 items-center md:gap-8\",\n \"aria-label\": \"Tabs\"\n}\nconst _hoisted_9 = { class: \"py-1\" }\nconst _hoisted_10 = {\n href: \"https://controld.com/?cid=nslookup\",\n target: \"_blank\",\n rel: \"noopener nereferrer\"\n}\nconst _hoisted_11 = /*#__PURE__*/_createElementVNode(\"span\", { class: \"inline sm:hidden\" }, \"Other\", -1)\nconst _hoisted_12 = /*#__PURE__*/_createElementVNode(\"span\", { class: \"hidden sm:inline\" }, \"Local DNS\", -1)\nconst _hoisted_13 = { class: \"py-1\" }\nconst _hoisted_14 = /*#__PURE__*/_createElementVNode(\"span\", { class: \"block px-4 mt-2 text-sm font-semibold text-gray-500 sm:hidden\" }, \"Global\", -1)\nconst _hoisted_15 = { class: \"block px-4 mt-2 text-sm font-semibold text-gray-500\" }\nconst _hoisted_16 = { class: \"grow\" }\nconst _hoisted_17 = { class: \"bg-white shadow p-6 pb-10 rounded-t\" }\nconst _hoisted_18 = { key: 0 }\nconst _hoisted_19 = { key: 1 }\nconst _hoisted_20 = { class: \"mb-2\" }\nconst _hoisted_21 = { class: \"mt-2\" }\nconst _hoisted_22 = { key: 0 }\nconst _hoisted_23 = { key: 1 }\nconst _hoisted_24 = { key: 2 }\nconst _hoisted_25 = { key: 3 }\nconst _hoisted_26 = { key: 4 }\nconst _hoisted_27 = { key: 5 }\nconst _hoisted_28 = /*#__PURE__*/_createElementVNode(\"a\", {\n href: \"https://controld.com/free-dns?cid=nslookup\",\n class: \"text-blue-600 hover:text-blue-800 hover:underline\",\n target: \"_blank\",\n rel: \"noopener noreferrer\"\n}, \"Configure this server on your device.\", -1)\nconst _hoisted_29 = { key: 3 }\nconst _hoisted_30 = { class: \"flex gap-6\" }\nconst _hoisted_31 = {\n key: 0,\n class: \"shrink w-full lg:max-w-2xl\"\n}\nconst _hoisted_32 = {\n key: 1,\n class: \"shrink w-full lg:max-w-2xl\"\n}\nconst _hoisted_33 = /*#__PURE__*/_createElementVNode(\"h2\", { class: \"mt-8 mb-2 font-semibold text-2xl\" }, \"A records\", -1)\nconst _hoisted_34 = /*#__PURE__*/_createElementVNode(\"h2\", { class: \"mt-8 mb-2 font-semibold text-2xl\" }, \"AAAA records\", -1)\nconst _hoisted_35 = /*#__PURE__*/_createElementVNode(\"h2\", { class: \"mt-8 mb-2 font-semibold text-2xl\" }, \"CNAME record\", -1)\nconst _hoisted_36 = {\n key: 2,\n class: \"grow w-[330px] mt-10 hidden lg:block\"\n}\nconst _hoisted_37 = {\n key: 4,\n \"aria-hidden\": \"true\",\n class: \"mb-8\"\n}\nconst _hoisted_38 = { key: 5 }\nconst _hoisted_39 = /*#__PURE__*/_createElementVNode(\"h2\", { class: \"mt-8 mb-2 font-semibold text-2xl\" }, \"TXT records\", -1)\nconst _hoisted_40 = /*#__PURE__*/_createElementVNode(\"h2\", { class: \"mt-8 mb-2 font-semibold text-2xl\" }, \"NS records\", -1)\nconst _hoisted_41 = /*#__PURE__*/_createElementVNode(\"h2\", { class: \"mt-8 mb-2 font-semibold text-2xl\" }, \"MX records\", -1)\nconst _hoisted_42 = {\n key: 6,\n \"aria-hidden\": \"true\",\n class: \"mt-6 mb-8\"\n}\nconst _hoisted_43 = /*#__PURE__*/_createElementVNode(\"h2\", { class: \"mt-8 mb-4 font-semibold text-2xl inline-block\" }, \"Other records\", -1)\nconst _hoisted_44 = { class: \"relative\" }\nconst _hoisted_45 = {\n key: 8,\n \"aria-hidden\": \"true\",\n class: \"mt-6 mb-8\"\n}\nconst _hoisted_46 = /*#__PURE__*/_createElementVNode(\"h2\", { class: \"mt-8 mb-2 font-semibold text-2xl\" }, \"Look up DNS records for another domain name\", -1)\nconst _hoisted_47 = { class: \"flex flex-col lg:flex-row\" }\nconst _hoisted_48 = { class: \"shrink max-w-xl\" }\nconst _hoisted_49 = {\n class: \"mt-3 w-[500px] max-w-full sm:px-6 lg:mt-0\",\n autocomplete: \"off\"\n}\n\nimport { computed, ref, watch } from 'vue';\nimport { useRoute, useRouter } from 'vue-router';\nimport axios, { Canceler } from 'axios';\nimport {\n Combobox,\n ComboboxButton,\n ComboboxInput,\n ComboboxLabel,\n ComboboxOption,\n ComboboxOptions,\n Menu,\n MenuButton,\n MenuItem,\n MenuItems,\n} from '@headlessui/vue';\nimport {\n CheckIcon,\n ChevronUpDownIcon,\n ChevronDownIcon,\n ArrowTopRightOnSquareIcon,\n} from '@heroicons/vue/20/solid';\nimport { Cog6ToothIcon } from '@heroicons/vue/24/outline';\nimport HeaderComponent from '@/components/layout/HeaderComponent.vue';\nimport FooterComponent from '@/components/layout/FooterComponent.vue';\nimport DnsRecords from '@/components/records/DnsRecords.vue';\nimport IpDnsRecords from '@/components/records/IpDnsRecords.vue';\nimport SoaRecords from '@/components/records/SoaRecords.vue';\nimport TxtRecords from '@/components/records/TxtRecords.vue';\nimport MxRecords from '@/components/records/MxRecords.vue';\nimport ToggleRawOutput from '@/components/ToggleRawOutput.vue';\nimport NsRecords from '@/components/records/NsRecords.vue';\nimport MetaTags from '@/components/MetaTags.vue';\nimport CaaRecords from '@/components/records/CaaRecords.vue';\nimport PtrRecords from '@/components/records/PtrRecords.vue';\nimport SrvRecords from '@/components/records/SrvRecords.vue';\nimport TlsaRecords from '@/components/records/TlsaRecords.vue';\nimport { domainNameToDisplayName, domainNameToUrlPath, urlPathToDomainName } from '@/common/domainName';\nimport SkeletonComponent from '@/components/micro/SkeletonComponent.vue';\nimport DomainSearch from '@/components/DomainSearch.vue';\nimport { ApiErrorType, toErrorType } from '@/model/ApiErrorAlert';\nimport ApiErrorAlert from '@/components/ApiErrorAlert.vue';\nimport { dnsServers } from '@/common/dnsServers';\nimport {\n GetRecordsResponse, PopularRecords, QueryResult, emptyPopularRecords, emptyQueryResult,\n} from '@/model/Api';\nimport AdUnit from '@/components/ads/AdUnit.vue';\nimport { DnsRecordsOther, DnsRecordsSidebar, DnsRecordsTxt } from '@/common/adSlots';\nimport { showUsersearchAd } from '@/common/dateTime';\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'DnsRecordsResults',\n props: {\n routerDomain: {\n type: String,\n required: true,\n },\n},\n setup(__props) {\n\nconst props = __props;\n\n\nconst route = useRoute();\nconst router = useRouter();\n\nconst tabs = [\n { name: 'cloudflare', display: 'Cloudflare' },\n { name: 'google', display: 'Google DNS' },\n { name: 'authoritative', display: 'Authoritative' },\n];\nconst controlDQueryTargest = [\n { name: 'controldunfiltered', display: 'Unfiltered' },\n { name: 'controldmalware', display: 'Malware' },\n { name: 'controldadstracking', display: 'Ads & Tracking' },\n { name: 'controldsocial', display: 'Social' },\n { name: 'controldfamilyfriendly', display: 'Family Friendly' },\n];\nconst localQueryTargets = {\n Africa: [\n { name: 'southafrica', display: 'South Africa' },\n ],\n Australia: [\n { name: 'australia', display: 'Australia' },\n ],\n Asia: [\n { name: 'india', display: 'India' },\n { name: 'russia', display: 'Russia' },\n ],\n Europe: [\n { name: 'thenetherlands', display: 'The Netherlands' },\n { name: 'ukraine', display: 'Ukraine' },\n ],\n 'North America': [\n { name: 'canada', display: 'Canada' },\n { name: 'usa', display: 'United States of America' },\n ],\n 'South America': [\n { name: 'brazil', display: 'Brazil' },\n ],\n};\n\nconst otherRecordType = ref('SOA');\nconst otherRecordTypes = ['AFSDB', 'APL', 'CAA', 'CDNSKEY', 'CDS', 'CERT', 'CSYNC', 'DHCID', 'DLV', 'DNAME', 'DNSKEY', 'DS', 'HINFO', 'HIP', 'IPSECKEY', 'IXFR', 'KEY', 'KX', 'LOC', 'NAPTR', 'NSEC', 'NSEC3', 'NSEC3PARAM', 'OPENPGPKEY', 'OPT', 'PTR', 'RP', 'RRSIG', 'SIG', 'SMIMEA', 'SOA', 'SRV', 'SSHFP', 'TA', 'TKEY', 'TLSA', 'TSIG', 'URI', 'ZONEMD'];\nconst otherRecordTypeQuery = ref('SOA');\nconst filteredOtherRecordTypes = computed(() => (otherRecordTypeQuery.value === ''\n ? otherRecordTypes\n : otherRecordTypes.filter((item) => item.toLowerCase().includes(otherRecordTypeQuery.value.toLowerCase()))));\n\nconst domain = ref('');\nconst domainPunycode = ref('');\nconst dnsserver = ref(route.hash.substring(1));\nconst loadingOther = ref(true);\nconst loading = ref(true);\nconst error = ref(null);\nconst showSidebar = ref(window.innerWidth > 991);\nconst cancelToken = ref(null);\nconst cancelTokenOtherRecords = ref(null);\nconst records = ref(emptyPopularRecords);\nconst otherRecords = ref(emptyQueryResult);\n\nfunction isCurrentTab(tab: string) {\n if (tab === 'local') {\n return Object.values(localQueryTargets).some((queryTargets) => queryTargets.some((target) => target.name === dnsserver.value));\n }\n if (tab === 'controld') {\n return Object.values(controlDQueryTargest).some((target) => target.name === dnsserver.value);\n }\n return tab === dnsserver.value;\n}\n\nfunction loadOtherRecord(): void {\n loadingOther.value = true;\n otherRecords.value = emptyQueryResult;\n\n // Cancel any previous request\n if (cancelTokenOtherRecords.value) {\n cancelTokenOtherRecords.value();\n }\n const axiosSource = axios.CancelToken.source();\n cancelTokenOtherRecords.value = axiosSource.cancel;\n\n axios.post('api/v1/other-records', {\n domain: domain.value,\n dnsServer: dnsserver.value,\n recordType: otherRecordType.value,\n }, {\n cancelToken: axiosSource.token,\n })\n .then((response) => {\n otherRecords.value = response.data.queryResult;\n loadingOther.value = false;\n })\n .catch((e) => {\n if (!axios.isCancel(e)) {\n console.log(e.message);\n }\n });\n}\n\nfunction load() {\n if (dnsserver.value === '') {\n dnsserver.value = 'cloudflare';\n }\n loading.value = true;\n error.value = null;\n records.value = emptyPopularRecords;\n\n if (cancelToken.value) {\n cancelToken.value();\n }\n const axiosSource = axios.CancelToken.source();\n cancelToken.value = axiosSource.cancel;\n\n axios.post('api/v1/records', {\n domain: domain.value,\n dnsServer: dnsserver.value,\n }, {\n cancelToken: axiosSource.token,\n })\n .then((response) => {\n if (props.routerDomain !== domainNameToUrlPath(response.data.punycodeDomain)) {\n router.replace({\n path: `/domains/${domainNameToUrlPath(response.data.punycodeDomain)}/dns-records/`,\n hash: route.hash,\n });\n }\n domain.value = domainNameToDisplayName(response.data.unicodeDomain);\n domainPunycode.value = domainNameToDisplayName(response.data.punycodeDomain);\n records.value = response.data.records;\n if (otherRecordType.value === 'SOA') {\n loadingOther.value = false;\n }\n loading.value = false;\n })\n .catch((e) => {\n if (!axios.isCancel(e)) {\n error.value = toErrorType(e.response.data.error);\n }\n });\n\n if (otherRecordType.value === 'SOA') {\n loadingOther.value = true;\n } else {\n loadOtherRecord();\n }\n}\n\nfunction redirectTo(newDomain: string): void {\n router.push(`/domains/${domainNameToUrlPath(newDomain)}/dns-records/`);\n}\n\nwatch(() => otherRecordType.value, () => loadOtherRecord());\n\nwatch(() => props.routerDomain, () => {\n const domainName = urlPathToDomainName(props.routerDomain);\n domain.value = domainName;\n domainPunycode.value = domainName;\n load();\n}, {\n immediate: true,\n});\n\nwatch(() => route.hash, () => {\n if (route.name !== 'Dns records') {\n return; // Prevent loading DNS records when moving to another page\n }\n\n dnsserver.value = route.hash.substring(1);\n load();\n});\n\nwindow.addEventListener('resize', () => {\n showSidebar.value = window.innerWidth > 991;\n});\n\nreturn (_ctx: any,_cache: any) => {\n const _component_router_link = _resolveComponent(\"router-link\")!\n\n return (_openBlock(), _createElementBlock(_Fragment, null, [\n (_openBlock(), _createBlock(_Teleport, { to: \"head\" }, [\n _createVNode(MetaTags, {\n title: `DNS records for ${domain.value}`,\n description: `These are the uncached A, AAAA, CNAME, TXT, NS, MX and SOA records for ${domain.value}. Other DNS records are also available.`,\n url: `https://www.nslookup.io/domains/${domainPunycode.value}/dns-records/`\n }, null, 8, [\"title\", \"description\", \"url\"])\n ])),\n _createVNode(HeaderComponent, { domain: domain.value }, null, 8, [\"domain\"]),\n _createElementVNode(\"div\", _hoisted_1, [\n _createElementVNode(\"main\", _hoisted_2, [\n _createElementVNode(\"h1\", _hoisted_3, [\n _createTextVNode(\"DNS records for \"),\n (domain.value === domainPunycode.value)\n ? (_openBlock(), _createElementBlock(\"b\", _hoisted_4, _toDisplayString(domain.value), 1))\n : (_openBlock(), _createElementBlock(\"span\", _hoisted_5, [\n _createElementVNode(\"b\", null, _toDisplayString(domainPunycode.value), 1),\n _createTextVNode(\" (\" + _toDisplayString(domain.value) + \")\", 1)\n ]))\n ]),\n (_unref(showUsersearchAd)())\n ? (_openBlock(), _createElementBlock(\"a\", _hoisted_6, \"Find domains by this owner\"))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", _hoisted_7, [\n _createElementVNode(\"nav\", _hoisted_8, [\n (_openBlock(), _createElementBlock(_Fragment, null, _renderList(tabs, (tab) => {\n return _createVNode(_component_router_link, {\n key: tab.name,\n to: `#${tab.name}`,\n \"aria-current\": isCurrentTab(tab.name) ? 'page' : undefined,\n class: _normalizeClass([isCurrentTab(tab.name) ? 'border-indigo-500 text-indigo-600' : 'border-transparent text-gray-600 hover:text-gray-700 hover:border-gray-300',\n ['google', 'opendns', 'authoritative'].includes(tab.name) ? 'hidden sm:inline' : '',\n 'whitespace-nowrap py-4 px-1 border-b-2 font-medium text-sm'])\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(tab.display), 1)\n ]),\n _: 2\n }, 1032, [\"to\", \"aria-current\", \"class\"])\n }), 64)),\n _createVNode(_unref(Menu), {\n as: \"div\",\n class: \"hidden sm:inline-block relative text-left\"\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", null, [\n _createVNode(_unref(MenuButton), {\n class: _normalizeClass([\n isCurrentTab('controld') ? 'border-indigo-500 text-indigo-600' : 'border-transparent text-gray-600 hover:text-gray-700 hover:border-gray-300',\n 'inline-flex w-full justify-center whitespace-nowrap py-4 px-1 border-b-2 font-medium text-sm focus:outline-transparent',\n ])\n }, {\n default: _withCtx(() => [\n _createTextVNode(\" Control D \"),\n _createVNode(_unref(ChevronDownIcon), {\n class: \"-mr-1 ml-2 h-5 w-5\",\n \"aria-hidden\": \"true\"\n })\n ]),\n _: 1\n }, 8, [\"class\"])\n ]),\n _createVNode(_Transition, {\n \"enter-active-class\": \"transition ease-out duration-100\",\n \"enter-from-class\": \"transform opacity-0 scale-95\",\n \"enter-to-class\": \"transform opacity-100 scale-100\",\n \"leave-active-class\": \"transition ease-in duration-75\",\n \"leave-from-class\": \"transform opacity-100 scale-100\",\n \"leave-to-class\": \"transform opacity-0 scale-95\"\n }, {\n default: _withCtx(() => [\n _createVNode(_unref(MenuItems), { class: \"absolute -right-16 z-10 mt-2 w-44 origin-top-right rounded-md bg-white shadow-lg ring-1 ring-black ring-opacity-5 focus:outline-none sm:right-0\" }, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_9, [\n (_openBlock(), _createElementBlock(_Fragment, null, _renderList(controlDQueryTargest, (queryTarget) => {\n return _createVNode(_component_router_link, {\n key: queryTarget.name,\n to: `#${queryTarget.name}`\n }, {\n default: _withCtx(() => [\n _createVNode(_unref(MenuItem), null, {\n default: _withCtx(({ active }) => [\n _createElementVNode(\"span\", {\n class: _normalizeClass([active ? 'bg-gray-100 text-gray-900' : 'text-gray-700', isCurrentTab(queryTarget.name) ? '!text-indigo-600 font-medium' : '', 'block pl-6 pr-4 py-2 text-sm'])\n }, _toDisplayString(queryTarget.display), 3)\n ]),\n _: 2\n }, 1024)\n ]),\n _: 2\n }, 1032, [\"to\"])\n }), 64)),\n _createElementVNode(\"a\", _hoisted_10, [\n _createVNode(_unref(MenuItem), null, {\n default: _withCtx(({ active }) => [\n _createElementVNode(\"span\", {\n class: _normalizeClass([active ? 'bg-gray-100 text-gray-900' : 'text-gray-700', 'flex justify-between pl-6 pr-4 py-2 text-sm'])\n }, [\n _createTextVNode(\" Custom \"),\n _createVNode(_unref(ArrowTopRightOnSquareIcon), { class: \"w-4 float-right\" })\n ], 2)\n ]),\n _: 1\n })\n ])\n ])\n ]),\n _: 1\n })\n ]),\n _: 1\n })\n ]),\n _: 1\n }),\n _createVNode(_unref(Menu), {\n as: \"div\",\n class: \"relative inline-block text-left\"\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", null, [\n _createVNode(_unref(MenuButton), {\n class: _normalizeClass([\n isCurrentTab('cloudflare') ? 'border-transparent text-gray-600 hover:text-gray-700 hover:border-gray-300' : 'border-indigo-500 text-indigo-600',\n !isCurrentTab('cloudflare') && !isCurrentTab('local') ? 'sm:border-transparent sm:text-gray-600 sm:hover:text-gray-700 sm:hover:border-gray-300' : '',\n 'inline-flex w-full justify-center whitespace-nowrap py-4 px-1 border-b-2 font-medium text-sm focus:outline-transparent',\n ])\n }, {\n default: _withCtx(() => [\n _hoisted_11,\n _hoisted_12,\n _createVNode(_unref(ChevronDownIcon), {\n class: \"-mr-1 ml-2 h-5 w-5\",\n \"aria-hidden\": \"true\"\n })\n ]),\n _: 1\n }, 8, [\"class\"])\n ]),\n _createVNode(_Transition, {\n \"enter-active-class\": \"transition ease-out duration-100\",\n \"enter-from-class\": \"transform opacity-0 scale-95\",\n \"enter-to-class\": \"transform opacity-100 scale-100\",\n \"leave-active-class\": \"transition ease-in duration-75\",\n \"leave-from-class\": \"transform opacity-100 scale-100\",\n \"leave-to-class\": \"transform opacity-0 scale-95\"\n }, {\n default: _withCtx(() => [\n _createVNode(_unref(MenuItems), { class: \"absolute -right-16 z-10 mt-2 w-56 origin-top-right rounded-md bg-white shadow-lg ring-1 ring-black ring-opacity-5 focus:outline-none sm:right-0\" }, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_13, [\n _hoisted_14,\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(tabs.slice(1), (queryTarget) => {\n return (_openBlock(), _createBlock(_component_router_link, {\n key: queryTarget.name,\n to: `#${queryTarget.name}`,\n class: \"block sm:hidden\"\n }, {\n default: _withCtx(() => [\n _createVNode(_unref(MenuItem), null, {\n default: _withCtx(({ active }) => [\n _createElementVNode(\"span\", {\n class: _normalizeClass([active ? 'bg-gray-100 text-gray-900' : 'text-gray-700', isCurrentTab(queryTarget.name) ? '!text-indigo-600 font-medium' : '', 'block pl-6 pr-4 py-2 text-sm'])\n }, _toDisplayString(queryTarget.display), 3)\n ]),\n _: 2\n }, 1024)\n ]),\n _: 2\n }, 1032, [\"to\"]))\n }), 128)),\n (_openBlock(), _createElementBlock(_Fragment, null, _renderList(localQueryTargets, (queryTargets, name) => {\n return (_openBlock(), _createElementBlock(_Fragment, { key: name }, [\n _createElementVNode(\"span\", _hoisted_15, _toDisplayString(name), 1),\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(queryTargets, (queryTarget) => {\n return (_openBlock(), _createBlock(_component_router_link, {\n key: queryTarget.name,\n to: `#${queryTarget.name}`\n }, {\n default: _withCtx(() => [\n _createVNode(_unref(MenuItem), null, {\n default: _withCtx(({ active }) => [\n _createElementVNode(\"span\", {\n class: _normalizeClass([active ? 'bg-gray-100 text-gray-900' : 'text-gray-700', isCurrentTab(queryTarget.name) ? '!text-indigo-600 font-medium' : '', 'block pl-6 pr-4 py-2 text-sm'])\n }, _toDisplayString(queryTarget.display), 3)\n ]),\n _: 2\n }, 1024)\n ]),\n _: 2\n }, 1032, [\"to\"]))\n }), 128))\n ], 64))\n }), 64))\n ])\n ]),\n _: 1\n })\n ]),\n _: 1\n })\n ]),\n _: 1\n }),\n _createElementVNode(\"div\", _hoisted_16, [\n _createVNode(_unref(Menu), {\n as: \"div\",\n class: \"ml-auto w-6 mr-4 flex\"\n }, {\n default: _withCtx(() => [\n _createVNode(_unref(MenuButton), null, {\n default: _withCtx(() => [\n _createVNode(_unref(Cog6ToothIcon), {\n class: \"h-6 w-6 text-gray-600\",\n \"aria-hidden\": \"true\"\n })\n ]),\n _: 1\n }),\n _createVNode(_Transition, {\n \"enter-active-class\": \"transition ease-out duration-100\",\n \"enter-from-class\": \"transform opacity-0 scale-95\",\n \"enter-to-class\": \"transform opacity-100 scale-100\",\n \"leave-active-class\": \"transition ease-in duration-75\",\n \"leave-from-class\": \"transform opacity-100 scale-100\",\n \"leave-to-class\": \"transform opacity-0 scale-95\"\n }, {\n default: _withCtx(() => [\n _createVNode(_unref(MenuItems), { class: \"absolute right-12 top-3 z-10 p-3 w-56 origin-top-right rounded-md bg-white shadow-lg ring-1 ring-black ring-opacity-5 focus:outline-none\" }, {\n default: _withCtx(() => [\n _createVNode(ToggleRawOutput, null, {\n default: _withCtx(() => [\n _createTextVNode(\"Show raw data\")\n ]),\n _: 1\n })\n ]),\n _: 1\n })\n ]),\n _: 1\n })\n ]),\n _: 1\n })\n ])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_17, [\n (error.value !== null)\n ? (_openBlock(), _createBlock(ApiErrorAlert, {\n key: 0,\n error: error.value,\n domain: domain.value,\n dnsserver: dnsserver.value\n }, null, 8, [\"error\", \"domain\", \"dnsserver\"]))\n : (_openBlock(), _createElementBlock(_Fragment, { key: 1 }, [\n (_unref(dnsServers)[dnsserver.value].type === 'local')\n ? (_openBlock(), _createElementBlock(\"p\", _hoisted_18, \"A local DNS server in \" + _toDisplayString(_unref(dnsServers)[dnsserver.value].pretty) + \" responded with these DNS records. It will serve these records for as long as the time to live (TTL) has not expired. After this period, the DNS server will update its cache by querying one of the authoritative name servers.\", 1))\n : (_unref(dnsServers)[dnsserver.value].type === 'popular')\n ? (_openBlock(), _createElementBlock(\"p\", _hoisted_19, \"The \" + _toDisplayString(_unref(dnsServers)[dnsserver.value].pretty) + \" DNS server responded with these DNS records. \" + _toDisplayString(_unref(dnsServers)[dnsserver.value].pretty) + \" will serve these records for as long as the time to live (TTL) has not expired. After this period, \" + _toDisplayString(_unref(dnsServers)[dnsserver.value].pretty) + \" will update its cache by querying one of the authoritative name servers.\", 1))\n : (_unref(dnsServers)[dnsserver.value].type === 'control d')\n ? (_openBlock(), _createElementBlock(_Fragment, { key: 2 }, [\n _createElementVNode(\"p\", _hoisted_20, \"The \" + _toDisplayString(_unref(dnsServers)[dnsserver.value].pretty) + \" DNS server responded with these DNS records. \" + _toDisplayString(_unref(dnsServers)[dnsserver.value].pretty) + \" will serve these records for as long as the time to live (TTL) has not expired. After this period, \" + _toDisplayString(_unref(dnsServers)[dnsserver.value].pretty) + \" will update its cache by querying one of the authoritative name servers.\", 1),\n _createElementVNode(\"p\", _hoisted_21, [\n (dnsserver.value == 'controldunfiltered')\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_22, \"This DNS server does not filter requests. \"))\n : (dnsserver.value == 'controldmalware')\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_23, \"This DNS server filters malware. \"))\n : (dnsserver.value == 'controldadstracking')\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_24, \"This DNS server filters ads and trackers. \"))\n : (dnsserver.value == 'controldsocial')\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_25, \"This DNS server filters social media. \"))\n : (dnsserver.value == 'controldfamilyfriendly')\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_26, \"This DNS server filters adult and drugs related sites. \"))\n : (dnsserver.value == 'controlduncesored')\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_27, \"This DNS server restores access to censored sites. \"))\n : _createCommentVNode(\"\", true),\n _hoisted_28\n ])\n ], 64))\n : (_openBlock(), _createElementBlock(\"p\", _hoisted_29, \"The authoritative DNS server responded with these DNS records. It has indicated that records should be cached for the period specified by the time to live (TTL). When the configuration of the authoritative DNS server changes, it will immediately serve the updated DNS records.\")),\n _createElementVNode(\"div\", _hoisted_30, [\n (loading.value)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_31, [\n (_openBlock(), _createElementBlock(_Fragment, null, _renderList(2, (n) => {\n return _createElementVNode(\"div\", { key: n }, [\n _createVNode(SkeletonComponent, { class: \"w-56 h-8 mb-6 mt-8\" }),\n (_openBlock(), _createElementBlock(_Fragment, null, _renderList(2, (n) => {\n return _createElementVNode(\"div\", { key: n }, [\n (_openBlock(), _createElementBlock(_Fragment, null, _renderList(2, (n) => {\n return _createVNode(SkeletonComponent, {\n key: n,\n class: \"inline-block w-1/2 h-4 pr-[10%] bg-clip-content\"\n })\n }), 64))\n ])\n }), 64))\n ])\n }), 64))\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_32, [\n _hoisted_33,\n _createVNode(IpDnsRecords, {\n records: records.value.a,\n \"column-title\": \"IPv4 address\",\n \"record-type\": \"A\"\n }, null, 8, [\"records\"]),\n _hoisted_34,\n _createVNode(IpDnsRecords, {\n records: records.value.aaaa,\n \"column-title\": \"IPv6 address\",\n \"record-type\": \"AAAA\"\n }, null, 8, [\"records\"]),\n _hoisted_35,\n _createVNode(DnsRecords, {\n records: records.value.cname,\n \"column-title\": \"Canonical name\",\n \"record-type\": \"CNAME\",\n \"is-domain\": true,\n \"can-have-multiple-records\": false,\n class: \"w-full\"\n }, null, 8, [\"records\"])\n ])),\n (showSidebar.value)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_36, [\n _createVNode(AdUnit, {\n class: \"!sticky top-16 mx-auto\",\n config: _unref(DnsRecordsSidebar)\n }, null, 8, [\"config\"])\n ]))\n : _createCommentVNode(\"\", true)\n ]),\n (loading.value)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_37, [\n (_openBlock(), _createElementBlock(_Fragment, null, _renderList(3, (n) => {\n return _createElementVNode(\"div\", { key: n }, [\n _createVNode(SkeletonComponent, { class: \"w-56 h-8 mb-6 mt-8\" }),\n (_openBlock(), _createElementBlock(_Fragment, null, _renderList(3, (n) => {\n return _createElementVNode(\"div\", { key: n }, [\n (_openBlock(), _createElementBlock(_Fragment, null, _renderList(3, (n) => {\n return _createVNode(SkeletonComponent, {\n key: n,\n class: \"inline-block w-1/3 h-4 pr-[10%] bg-clip-content\"\n })\n }), 64))\n ])\n }), 64))\n ])\n }), 64))\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_38, [\n _hoisted_39,\n _createVNode(TxtRecords, {\n records: records.value.txt,\n domain: domain.value,\n class: \"w-full\"\n }, null, 8, [\"records\", \"domain\"]),\n _createVNode(AdUnit, {\n class: \"mt-8 mx-auto\",\n config: _unref(DnsRecordsTxt)\n }, null, 8, [\"config\"]),\n _hoisted_40,\n _createVNode(NsRecords, {\n records: records.value.ns,\n domain: domain.value,\n class: \"w-full\"\n }, null, 8, [\"records\", \"domain\"]),\n _hoisted_41,\n _createVNode(MxRecords, {\n records: records.value.mx,\n class: \"w-full\"\n }, null, 8, [\"records\"])\n ])),\n (loading.value)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_42, [\n _createVNode(SkeletonComponent, { class: \"w-56 h-8 mb-6 mt-8\" })\n ]))\n : (_openBlock(), _createElementBlock(_Fragment, { key: 7 }, [\n _hoisted_43,\n _createVNode(_unref(Combobox), {\n as: \"div\",\n modelValue: otherRecordType.value,\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = ($event: any) => ((otherRecordType).value = $event)),\n class: \"mb-3 sm:mb-0 sm:mt-8 sm:ml-10 sm:inline-block\"\n }, {\n default: _withCtx(() => [\n _createVNode(_unref(ComboboxLabel), { class: \"sr-only\" }, {\n default: _withCtx(() => [\n _createTextVNode(\"Additional record type\")\n ]),\n _: 1\n }),\n _createElementVNode(\"div\", _hoisted_44, [\n _createVNode(_unref(ComboboxInput), {\n onChange: _cache[0] || (_cache[0] = ($event: any) => (otherRecordTypeQuery.value = $event.target.value)),\n onFocus: _cache[1] || (_cache[1] = ($event: any) => (otherRecordTypeQuery.value = '')),\n class: \"w-full rounded-md border border-gray-300 bg-white py-2 pl-3 pr-10 shadow-sm focus:border-indigo-500 focus:outline-none focus:ring-1 focus:ring-indigo-500 sm:text-sm\"\n }),\n _createVNode(_unref(ComboboxButton), { class: \"absolute inset-y-0 right-0 flex items-center rounded-r-md px-2 focus:outline-none\" }, {\n default: _withCtx(() => [\n _createVNode(_unref(ChevronUpDownIcon), {\n class: \"h-5 w-5 text-gray-400\",\n \"aria-hidden\": \"true\"\n })\n ]),\n _: 1\n }),\n (_unref(filteredOtherRecordTypes).length > 0)\n ? (_openBlock(), _createBlock(_unref(ComboboxOptions), {\n key: 0,\n class: \"absolute z-10 mt-1 max-h-60 w-full overflow-auto rounded-md bg-white py-1 text-base shadow-lg ring-1 ring-black ring-opacity-5 focus:outline-none sm:text-sm\"\n }, {\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(filteredOtherRecordTypes), (person) => {\n return (_openBlock(), _createBlock(_unref(ComboboxOption), {\n key: person,\n value: person,\n as: \"template\"\n }, {\n default: _withCtx(({ active, selected }) => [\n _createElementVNode(\"li\", {\n class: _normalizeClass(['relative cursor-default select-none py-2 pl-3 pr-9', active ? 'bg-indigo-600 text-white' : 'text-gray-900'])\n }, [\n _createElementVNode(\"span\", {\n class: _normalizeClass(['block truncate', selected && 'font-semibold'])\n }, _toDisplayString(person), 3),\n selected\n ? (_openBlock(), _createElementBlock(\"span\", {\n key: 0,\n class: _normalizeClass(['absolute inset-y-0 right-0 flex items-center pr-4', active ? 'text-white' : 'text-indigo-600'])\n }, [\n _createVNode(_unref(CheckIcon), {\n class: \"h-5 w-5\",\n \"aria-hidden\": \"true\"\n })\n ], 2))\n : _createCommentVNode(\"\", true)\n ], 2)\n ]),\n _: 2\n }, 1032, [\"value\"]))\n }), 128))\n ]),\n _: 1\n }))\n : _createCommentVNode(\"\", true)\n ])\n ]),\n _: 1\n }, 8, [\"modelValue\"])\n ], 64)),\n (loading.value || loadingOther.value)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_45, [\n (_openBlock(), _createElementBlock(_Fragment, null, _renderList(3, (n) => {\n return _createElementVNode(\"div\", { key: n }, [\n (_openBlock(), _createElementBlock(_Fragment, null, _renderList(3, (n) => {\n return _createVNode(SkeletonComponent, {\n key: n,\n class: \"inline-block w-1/3 h-4 pr-[10%] bg-clip-content\"\n })\n }), 64))\n ])\n }), 64))\n ]))\n : (_openBlock(), _createElementBlock(_Fragment, { key: 9 }, [\n (otherRecordType.value === 'SOA')\n ? (_openBlock(), _createBlock(SoaRecords, {\n key: 0,\n records: records.value.soa,\n domain: domain.value,\n class: \"w-full\"\n }, null, 8, [\"records\", \"domain\"]))\n : (otherRecordType.value === 'CAA')\n ? (_openBlock(), _createBlock(CaaRecords, {\n key: 1,\n records: otherRecords.value,\n domain: domain.value,\n class: \"w-full\"\n }, null, 8, [\"records\", \"domain\"]))\n : (otherRecordType.value === 'PTR')\n ? (_openBlock(), _createBlock(PtrRecords, {\n key: 2,\n records: otherRecords.value,\n domain: domain.value,\n class: \"w-full\"\n }, null, 8, [\"records\", \"domain\"]))\n : (otherRecordType.value === 'SRV')\n ? (_openBlock(), _createBlock(SrvRecords, {\n key: 3,\n records: otherRecords.value,\n domain: domain.value,\n class: \"w-full\"\n }, null, 8, [\"records\", \"domain\"]))\n : (otherRecordType.value === 'TLSA')\n ? (_openBlock(), _createBlock(TlsaRecords, {\n key: 4,\n records: otherRecords.value,\n domain: domain.value,\n class: \"w-full\"\n }, null, 8, [\"records\", \"domain\"]))\n : (_openBlock(), _createBlock(DnsRecords, {\n key: 5,\n records: otherRecords.value,\n \"column-title\": \"Data\",\n \"record-type\": otherRecordType.value,\n class: \"w-full\"\n }, null, 8, [\"records\", \"record-type\"]))\n ], 64)),\n _createVNode(AdUnit, {\n class: \"mt-8 mx-auto\",\n config: _unref(DnsRecordsOther)\n }, null, 8, [\"config\"]),\n _hoisted_46,\n _createElementVNode(\"div\", _hoisted_47, [\n _createElementVNode(\"p\", _hoisted_48, [\n _createTextVNode(\"With \"),\n _createVNode(_component_router_link, {\n to: `/`,\n class: \"text-blue-600 hover:text-blue-800 hover:underline\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(\"DNS lookup\")\n ]),\n _: 1\n }),\n _createTextVNode(\", you can find the DNS record for any domain name or subdomain. When you enter the domain, it will show all the DNS records that are configured for that domain.\")\n ]),\n _createElementVNode(\"form\", _hoisted_49, [\n _createVNode(DomainSearch, {\n emphasize: \"\",\n prefill: domain.value,\n onSubmitted: redirectTo\n }, null, 8, [\"prefill\"])\n ])\n ])\n ], 64))\n ])\n ])\n ]),\n _createVNode(FooterComponent)\n ], 64))\n}\n}\n\n})","import script from \"./DnsRecordsResults.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./DnsRecordsResults.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { RR } from '@/model/Api';\nimport { DnsPropagationAnswer } from '@/model/PropagationEndpoint';\n\nexport interface Variant {\n records: Array;\n answers: Array;\n isAuthoritative: boolean;\n}\n\nfunction rrEquals(a: RR, b: RR): boolean {\n return a.raw === b.raw && a.name === b.name && a.recordType === b.recordType;\n}\n\nfunction responseEquals(a: Array, b: Array): boolean {\n if (a.length !== b.length) {\n return false;\n }\n\n const remaining = [...b];\n return a.every((element) => {\n const index = remaining.findIndex((rr) => rrEquals(rr, element));\n if (index === -1) {\n return false;\n }\n remaining.splice(index, 1);\n return true;\n });\n}\n\nexport function addResponse(\n variants: Array,\n answer: DnsPropagationAnswer,\n recordType: string,\n): Array {\n const records = answer.answer.filter((rr) => rr.recordType === recordType);\n const index = variants.findIndex((variant) => responseEquals(variant.records, records));\n if (index === -1) {\n return [...variants, { records, answers: [answer], isAuthoritative: answer.queryTarget === 'Authoritative' }];\n }\n\n const newVariants = [...variants];\n newVariants[index].answers.push(answer);\n if (answer.queryTarget === 'Authoritative') {\n newVariants[index].isAuthoritative = true;\n }\n return variants;\n}\n\nexport function getVariantName(index: number): string {\n return String.fromCharCode(65 + index);\n}\n\nexport function getVariant(variants: Array, answer: DnsPropagationAnswer): string {\n const index = variants.findIndex((variant) => variant.answers.includes(answer));\n if (index === -1) {\n return '';\n }\n return getVariantName(index);\n}\n","import { DnsServer, RR } from './Api';\n\nconst regionalQueryTargets = ['SouthAfrica', 'TheNetherlands', 'Australia', 'India', 'Canada', 'USA', 'Brazil', 'Ukraine', 'Russia'];\nconst globalQueryTargets = ['CloudFlare', 'Google', 'OpenDns', 'Quad9', 'CleanBrowsing', 'AdGuard', 'NextDNS', 'ControlDUnfiltered', 'UltimateHostsBlacklist'];\nexport type RegionalQueryTarget = 'SouthAfrica' | 'TheNetherlands' | 'Australia' | 'India' | 'Canada' | 'USA' | 'Brazil' | 'Ukraine' | 'Russia';\nexport type GlobalQueryTarget = 'CloudFlare' | 'Google' | 'OpenDns' | 'Quad9' | 'CleanBrowsing' | 'AdGuard' | 'NextDNS' | 'ControlDUnfiltered' | 'UltimateHostsBlacklist';\nexport type QueryTarget = 'Authoritative' | RegionalQueryTarget | GlobalQueryTarget;\n\nexport function isRegionalQueryTarget(qt: QueryTarget): qt is RegionalQueryTarget {\n return regionalQueryTargets.includes(qt);\n}\n\nexport function isGlobalQueryTarget(qt: QueryTarget): qt is GlobalQueryTarget {\n return globalQueryTargets.includes(qt);\n}\n\nexport type QueryLocation = 'Amsterdam' | 'SanFransisco';\n\nexport type DnsPropagationAnswer = {\n queryLocation: QueryLocation;\n queryTarget: QueryTarget;\n server: DnsServer;\n answer: Array;\n}\n\nexport type DnsPropagationError = {\n Left: {\n queryTarget: QueryTarget;\n server: string;\n };\n}\n\nexport type DnsPropagationSuccess = {\n Right: DnsPropagationAnswer;\n}\n\nexport type DnsPropagationResult = DnsPropagationSuccess | DnsPropagationError;\n","import {\n DnsPropagationAnswer, GlobalQueryTarget, isGlobalQueryTarget, RegionalQueryTarget,\n} from '@/model/PropagationEndpoint';\n\nexport type DnsOrganization = 'CloudFlare' | 'Google' | 'OpenDns' | 'Quad9' | 'CleanBrowsing' | 'AdGuard' | 'NextDNS' | 'ControlDUnfiltered' | 'UltimateHostsBlacklist' |\n 'AWS' | 'Godaddy' | 'Akamai' | 'Enom' | 'DnsMadeEasy' | 'NS1' | 'Wordpress' | 'Dreamhost' | 'Namecheap' | 'Gandi' | 'Linode' |\n 'DNSimple' | 'Siteground' | 'DigitalOcean' | 'DynDNS' | 'Azure' | 'OVH' | 'IONOS' | 'Siteground' | 'Bluehost' | 'Wix' | 'Hover' |\n 'Verisign' | 'ICB' | 'Afilias' | 'UniversityOfSouthernCalifornia' | 'Cogent' | 'UniversityOfMaryland' | 'NASA' | 'ISC' |\n 'UsDepartmentOfDefense' | 'UsArmy' | 'Netnod' | 'RIPE' | 'ICANN' | 'WideProject' | 'NetworkSolutions' | 'Register' | 'Squarespace' |\n 'HostGator' | 'ClouDNS' | 'NameBright' | 'ArubaIt' | 'NameCom' | 'InMotion' | 'A2Hosting' | 'OneCom' | 'Ezoic' | 'Unknown';\nexport type Country = 'SouthAfrica' | 'TheNetherlands' | 'Australia' | 'India' | 'Canada' | 'USA' | 'Brazil' | 'Ukraine' | 'Russia';\nexport type HostingEntity = DnsOrganization | Country;\n\nconst knownDnsServerSuffixes: Array<{ suffix: string, organization: DnsOrganization}> = [\n { suffix: '.cloudflare.com.', organization: 'CloudFlare' },\n { suffix: '.domaincontrol.com.', organization: 'Godaddy' },\n { suffix: '.akam.net.', organization: 'Akamai' },\n { suffix: '.googledomains.com.', organization: 'Google' },\n { suffix: '.name-services.com.', organization: 'Enom' },\n { suffix: '.dnsmadeeasy.com.', organization: 'DnsMadeEasy' },\n { suffix: '.nsone.net.', organization: 'NS1' },\n { suffix: '.wordpress.com.', organization: 'Wordpress' },\n { suffix: '.wordpress.org.', organization: 'Wordpress' },\n { suffix: '.dreamhost.com.', organization: 'Dreamhost' },\n { suffix: '.registrar-servers.com.', organization: 'Namecheap' },\n { suffix: '.namecheaphosting.com.', organization: 'Namecheap' },\n { suffix: '.gandi.net.', organization: 'Gandi' },\n { suffix: '.linode.com.', organization: 'Linode' },\n { suffix: '.dnsimple.com.', organization: 'DNSimple' },\n { suffix: '.siteground.com.', organization: 'Siteground' },\n { suffix: '.siteground.net.', organization: 'Siteground' },\n { suffix: '.digitalocean.com.', organization: 'DigitalOcean' },\n { suffix: '.dynect.net.', organization: 'DynDNS' },\n { suffix: '.dyn.com.', organization: 'DynDNS' },\n { suffix: '.azure-dns.com.', organization: 'Azure' },\n { suffix: '.azure-dns.org.', organization: 'Azure' },\n { suffix: '.azure-dns.net.', organization: 'Azure' },\n { suffix: '.azure-dns.info.', organization: 'Azure' },\n { suffix: '.ovh.net.', organization: 'OVH' },\n { suffix: '.ui-dns.de.', organization: 'IONOS' },\n { suffix: '.ui-dns.org.', organization: 'IONOS' },\n { suffix: '.ui-dns.biz.', organization: 'IONOS' },\n { suffix: '.ui-dns.com.', organization: 'IONOS' },\n { suffix: '.bluehost.com.', organization: 'Bluehost' },\n { suffix: '.wixdns.net.', organization: 'Wix' },\n { suffix: '.hover.com.', organization: 'Hover' },\n { suffix: '.worldnic.com.', organization: 'NetworkSolutions' },\n { suffix: '.register.com.', organization: 'Register' },\n { suffix: '.squarespacedns.com.', organization: 'Squarespace' },\n { suffix: '.hostgator.com.', organization: 'HostGator' },\n { suffix: '.cloudns.net.', organization: 'ClouDNS' },\n { suffix: '.namebrightdns.com.', organization: 'NameBright' },\n { suffix: '.technorail.com.', organization: 'ArubaIt' },\n { suffix: '.arubadns.net.', organization: 'ArubaIt' },\n { suffix: '.arubadns.cz.', organization: 'ArubaIt' },\n { suffix: '.name.com.', organization: 'NameCom' },\n { suffix: '.inmotionhosting.com.', organization: 'InMotion' },\n { suffix: '.a2hosting.com.', organization: 'A2Hosting' },\n { suffix: '.one.com.', organization: 'OneCom' },\n { suffix: '.ezoicns.com.', organization: 'Ezoic' },\n { suffix: '.gtld-servers.net.', organization: 'Verisign' },\n { suffix: '.nic.io.', organization: 'ICB' },\n { suffix: '.nic.ac.', organization: 'ICB' },\n { suffix: '.nic.sh.', organization: 'ICB' },\n { suffix: '.afilias-nst.info.', organization: 'Afilias' },\n { suffix: '.afilias-nst.org.', organization: 'Afilias' },\n { suffix: 'a.root-servers.net.', organization: 'Verisign' },\n { suffix: 'b.root-servers.net.', organization: 'UniversityOfSouthernCalifornia' },\n { suffix: 'c.root-servers.net.', organization: 'Cogent' },\n { suffix: 'd.root-servers.net.', organization: 'UniversityOfMaryland' },\n { suffix: 'e.root-servers.net.', organization: 'NASA' },\n { suffix: 'f.root-servers.net.', organization: 'ISC' },\n { suffix: 'g.root-servers.net.', organization: 'UsDepartmentOfDefense' },\n { suffix: 'h.root-servers.net.', organization: 'UsArmy' },\n { suffix: 'i.root-servers.net.', organization: 'Netnod' },\n { suffix: 'j.root-servers.net.', organization: 'Verisign' },\n { suffix: 'k.root-servers.net.', organization: 'RIPE' },\n { suffix: 'l.root-servers.net.', organization: 'ICANN' },\n { suffix: 'm.root-servers.net.', organization: 'WideProject' },\n];\n\nexport function displayHostingEntity(entity: HostingEntity): string {\n switch (entity) {\n case 'CloudFlare':\n return 'Cloudflare';\n case 'Google':\n return 'Google DNS';\n case 'OpenDns':\n return 'Open DNS';\n case 'Quad9':\n return 'Quad 9';\n case 'AWS':\n return 'Amazon Web Services';\n case 'ControlDUnfiltered':\n return 'Control D';\n case 'UltimateHostsBlacklist':\n return 'Ultimate Hosts Blacklist';\n case 'Godaddy':\n return 'GoDaddy';\n case 'DnsMadeEasy':\n return 'DNS Made Easy';\n case 'DynDNS':\n return 'Oracle Cloud (DynDNS)';\n case 'Azure':\n return 'Microsoft Azure';\n case 'NetworkSolutions':\n return 'Network Solutions';\n case 'Register':\n return 'Register.com';\n case 'ArubaIt':\n return 'Aruba.it';\n case 'NameCom':\n return 'Name.com';\n case 'InMotion':\n return 'InMotion Hosting';\n case 'A2Hosting':\n return 'A2 Hosting';\n case 'OneCom':\n return 'One.com';\n case 'SouthAfrica':\n return 'South Africa';\n case 'TheNetherlands':\n return 'The Netherlands';\n case 'USA':\n return 'United States of Amarica';\n case 'UniversityOfSouthernCalifornia':\n return 'University of Southern California';\n case 'Cogent':\n return 'Cogent Communications';\n case 'UniversityOfMaryland':\n return 'University of Maryland';\n case 'UsDepartmentOfDefense':\n return 'US Department of Defense';\n case 'UsArmy':\n return 'US Army';\n case 'WideProject':\n return 'Wide Project';\n default:\n return entity;\n }\n}\n\nfunction toDnsOrganization(dnsServerDomainName: string | null): DnsOrganization {\n if (dnsServerDomainName) {\n const org = knownDnsServerSuffixes.find((suffix) => dnsServerDomainName.endsWith(suffix.suffix))?.organization;\n if (org) {\n return org;\n }\n if (dnsServerDomainName.includes('.awsdns-')) {\n return 'AWS';\n }\n }\n return 'Unknown';\n}\n\nexport function organizationIconSrc(org: DnsOrganization): string {\n if (org === 'Unknown') {\n return 'img/flags/1x1/xx.svg';\n }\n return `/img/logos/${org.toLowerCase()}.png`;\n}\n\nexport function flagIconSrc(country: Country, square = false): string {\n switch (country) {\n case 'SouthAfrica':\n return `img/flags/${square ? '1x1' : '4x3'}/za.svg`;\n case 'TheNetherlands':\n return `img/flags/${square ? '1x1' : '4x3'}/nl.svg`;\n case 'Australia':\n return `img/flags/${square ? '1x1' : '4x3'}/au.svg`;\n case 'India':\n return `img/flags/${square ? '1x1' : '4x3'}/in.svg`;\n case 'Canada':\n return `img/flags/${square ? '1x1' : '4x3'}/ca.svg`;\n case 'USA':\n return `img/flags/${square ? '1x1' : '4x3'}/us.svg`;\n case 'Brazil':\n return `img/flags/${square ? '1x1' : '4x3'}/br.svg`;\n case 'Ukraine':\n return `img/flags/${square ? '1x1' : '4x3'}/ua.svg`;\n case 'Russia':\n return `img/flags/${square ? '1x1' : '4x3'}/ru.svg`;\n default:\n return `img/flags/${square ? '1x1' : '4x3'}/xx.svg`;\n }\n}\n\nfunction globalQueryTargetToOrganization(qt: GlobalQueryTarget): DnsOrganization {\n return qt;\n}\n\nfunction regionalQueryTargetToCountry(qt: RegionalQueryTarget): Country {\n return qt;\n}\n\nexport function iconSrc(answer: DnsPropagationAnswer): string {\n if (answer.queryTarget === 'Authoritative') {\n return organizationIconSrc(toDnsOrganization(answer.server.domain));\n }\n if (isGlobalQueryTarget(answer.queryTarget)) {\n return organizationIconSrc(globalQueryTargetToOrganization(answer.queryTarget));\n }\n return flagIconSrc(answer.queryTarget, true);\n}\n\nexport function iconAlt(answer: DnsPropagationAnswer): string {\n if (answer.queryTarget === 'Authoritative') {\n const org = displayHostingEntity(toDnsOrganization(answer.server.domain));\n if (org === 'Unknown') {\n return `Authoritative server ${answer.server.domain}` || '';\n }\n return `Authoritative server ${answer.server.domain} (by ${org})`;\n }\n if (isGlobalQueryTarget(answer.queryTarget)) {\n return `${answer.server.ip} (by ${displayHostingEntity(globalQueryTargetToOrganization(answer.queryTarget))})`;\n }\n return displayHostingEntity(regionalQueryTargetToCountry(answer.queryTarget));\n}\n","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createTextVNode as _createTextVNode, withCtx as _withCtx, createVNode as _createVNode, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, toDisplayString as _toDisplayString, normalizeClass as _normalizeClass, createElementVNode as _createElementVNode, createCommentVNode as _createCommentVNode, createBlock as _createBlock, isRef as _isRef } from \"vue\"\n\nconst _hoisted_1 = { class: \"relative\" }\n\nimport { ref, computed } from 'vue';\nimport {\n Combobox,\n ComboboxButton,\n ComboboxInput,\n ComboboxLabel,\n ComboboxOption,\n ComboboxOptions,\n} from '@headlessui/vue';\nimport { CheckIcon, ChevronUpDownIcon } from '@heroicons/vue/20/solid';\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'RecordTypePicker',\n props: {\n modelValue: {\n type: String,\n default: '',\n },\n},\n emits: ['update:modelValue'],\n setup(__props, { emit }) {\n\nconst props = __props;\n\n\n\n\n\nconst value = computed({\n get() {\n return props.modelValue;\n },\n set(newValue) {\n emit('update:modelValue', newValue);\n },\n});\n\nconst recordTypes = ['A', 'AAAA', 'AFSDB', 'APL', 'CAA', 'CDNSKEY', 'CDS', 'CERT', 'CNAME', 'CSYNC', 'DHCID', 'DLV', 'DNAME', 'DNSKEY', 'DS', 'HINFO', 'HIP', 'IPSECKEY', 'IXFR', 'KEY', 'KX', 'LOC', 'MX', 'NAPTR', 'NS', 'NSEC', 'NSEC3', 'NSEC3PARAM', 'OPENPGPKEY', 'OPT', 'PTR', 'RP', 'RRSIG', 'SIG', 'SMIMEA', 'SOA', 'SRV', 'SSHFP', 'TA', 'TKEY', 'TLSA', 'TSIG', 'TXT', 'URI', 'ZONEMD'];\nconst recordTypeQuery = ref(props.modelValue);\nconst filteredRecordTypes = computed(() => (recordTypeQuery.value === ''\n ? recordTypes\n : recordTypes.filter((item) => item.toLowerCase().includes(recordTypeQuery.value.toLowerCase()))));\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createBlock(_unref(Combobox), {\n as: \"div\",\n class: \"inline-block\",\n modelValue: _unref(value),\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = ($event: any) => (_isRef(value) ? (value).value = $event : null))\n }, {\n default: _withCtx(() => [\n _createVNode(_unref(ComboboxLabel), { class: \"block text-sm font-medium text-gray-600\" }, {\n default: _withCtx(() => [\n _createTextVNode(\"Record type\")\n ]),\n _: 1\n }),\n _createElementVNode(\"div\", _hoisted_1, [\n _createVNode(_unref(ComboboxInput), {\n onChange: _cache[0] || (_cache[0] = ($event: any) => (recordTypeQuery.value = $event.target.value)),\n onFocus: _cache[1] || (_cache[1] = ($event: any) => (recordTypeQuery.value = '')),\n class: \"w-full rounded-md border border-gray-300 bg-white py-2 pl-3 pr-10 shadow-sm focus:border-indigo-500 focus:outline-none focus:ring-1 focus:ring-indigo-500 sm:text-sm\"\n }),\n _createVNode(_unref(ComboboxButton), { class: \"absolute inset-y-0 right-0 flex items-center rounded-r-md px-2 focus:outline-none\" }, {\n default: _withCtx(() => [\n _createVNode(_unref(ChevronUpDownIcon), {\n class: \"h-5 w-5 text-gray-400\",\n \"aria-hidden\": \"true\"\n })\n ]),\n _: 1\n }),\n (_unref(filteredRecordTypes).length > 0)\n ? (_openBlock(), _createBlock(_unref(ComboboxOptions), {\n key: 0,\n class: \"absolute z-10 mt-1 max-h-60 w-full overflow-auto rounded-md bg-white py-1 text-base shadow-lg ring-1 ring-black ring-opacity-5 focus:outline-none sm:text-sm\"\n }, {\n default: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(filteredRecordTypes), (person) => {\n return (_openBlock(), _createBlock(_unref(ComboboxOption), {\n key: person,\n value: person,\n as: \"template\"\n }, {\n default: _withCtx(({ active, selected }) => [\n _createElementVNode(\"li\", {\n class: _normalizeClass(['relative cursor-default select-none py-2 pl-3 pr-9', active ? 'bg-indigo-600 text-white' : 'text-gray-900'])\n }, [\n _createElementVNode(\"span\", {\n class: _normalizeClass(['block truncate', selected && 'font-semibold'])\n }, _toDisplayString(person), 3),\n selected\n ? (_openBlock(), _createElementBlock(\"span\", {\n key: 0,\n class: _normalizeClass(['absolute inset-y-0 right-0 flex items-center pr-4', active ? 'text-white' : 'text-indigo-600'])\n }, [\n _createVNode(_unref(CheckIcon), {\n class: \"h-5 w-5\",\n \"aria-hidden\": \"true\"\n })\n ], 2))\n : _createCommentVNode(\"\", true)\n ], 2)\n ]),\n _: 2\n }, 1032, [\"value\"]))\n }), 128))\n ]),\n _: 1\n }))\n : _createCommentVNode(\"\", true)\n ])\n ]),\n _: 1\n }, 8, [\"modelValue\"]))\n}\n}\n\n})","import script from \"./RecordTypePicker.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./RecordTypePicker.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { createElementVNode as _createElementVNode, unref as _unref, toDisplayString as _toDisplayString, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, normalizeClass as _normalizeClass, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createTextVNode as _createTextVNode } from \"vue\"\n\nconst _hoisted_1 = { class: \"inline-block min-w-full align-middle\" }\nconst _hoisted_2 = { class: \"overflow-hidden shadow ring-1 ring-black ring-opacity-5 md:rounded-lg\" }\nconst _hoisted_3 = { class: \"min-w-full divide-y divide-gray-300\" }\nconst _hoisted_4 = { class: \"bg-gray-50\" }\nconst _hoisted_5 = /*#__PURE__*/_createElementVNode(\"th\", {\n scope: \"col\",\n class: \"py-3.5 pl-4 pr-3 text-left text-sm font-semibold text-gray-900 sm:pl-6\"\n}, \"DNS server\", -1)\nconst _hoisted_6 = /*#__PURE__*/_createElementVNode(\"th\", {\n scope: \"col\",\n class: \"px-3 py-3.5 text-left text-sm font-semibold text-gray-900\"\n}, \"TTL\", -1)\nconst _hoisted_7 = {\n scope: \"col\",\n class: \"px-3 py-3.5 text-center text-sm font-semibold text-gray-900\"\n}\nconst _hoisted_8 = { class: \"divide-y divide-gray-200 bg-white\" }\nconst _hoisted_9 = { class: \"py-2 pl-4 pr-3 text-sm sm:pl-6\" }\nconst _hoisted_10 = { class: \"h-10 flex items-center\" }\nconst _hoisted_11 = [\"src\", \"alt\", \"title\"]\nconst _hoisted_12 = { class: \"ml-4\" }\nconst _hoisted_13 = { class: \"break-words font-medium text-gray-900\" }\nconst _hoisted_14 = { class: \"break-all text-gray-500\" }\nconst _hoisted_15 = { class: \"break-words px-3 py-2 text-sm text-gray-500\" }\nconst _hoisted_16 = { class: \"text-gray-900\" }\nconst _hoisted_17 = { class: \"whitespace-nowrap px-3 py-2 text-lg text-gray-500 font-medium text-center\" }\n\nimport { computed, PropType } from 'vue';\nimport { CheckCircleIcon } from '@heroicons/vue/20/solid';\nimport Duration from '@/components/micro/DurationComponent.vue';\n\nexport interface PropagationServerListItem {\n firstLine: string;\n secondLine: string;\n ttl: number | null;\n // null = not yet checked; true = only one variant; string = multiple variants\n variant: string | true | null;\n iconSrc: string;\n iconAlt: string;\n iconShape: 'circle' | '4x3';\n}\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'PropagationServerList',\n props: {\n items: {\n type: Array as PropType>,\n required: true,\n },\n},\n setup(__props) {\n\nconst props = __props;\n\n\n\nconst hasVariants = computed(() => props.items.some((item) => item.variant !== true && item.variant !== null));\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", null, [\n _createElementVNode(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"table\", _hoisted_3, [\n _createElementVNode(\"thead\", _hoisted_4, [\n _createElementVNode(\"tr\", null, [\n _hoisted_5,\n _hoisted_6,\n _createElementVNode(\"th\", _hoisted_7, _toDisplayString(_unref(hasVariants) ? 'Variant' : 'Response'), 1)\n ])\n ]),\n _createElementVNode(\"tbody\", _hoisted_8, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(props.items, (item) => {\n return (_openBlock(), _createElementBlock(\"tr\", {\n key: item.firstLine\n }, [\n _createElementVNode(\"td\", _hoisted_9, [\n _createElementVNode(\"div\", _hoisted_10, [\n _createElementVNode(\"div\", {\n class: _normalizeClass([item.iconShape === 'circle' ? 'h-6 w-6 rounded-full' : 'h-[1.125rem] w-6', \"flex-shrink-0\"])\n }, [\n _createElementVNode(\"img\", {\n class: _normalizeClass(item.iconShape === 'circle' ? 'h-6 w-6 rounded-full' : 'h-[1.125rem] w-6'),\n src: item.iconSrc,\n alt: item.iconAlt,\n title: item.iconAlt\n }, null, 10, _hoisted_11)\n ], 2),\n _createElementVNode(\"div\", _hoisted_12, [\n _createElementVNode(\"div\", _hoisted_13, _toDisplayString(item.firstLine), 1),\n _createElementVNode(\"div\", _hoisted_14, _toDisplayString(item.secondLine), 1)\n ])\n ])\n ]),\n _createElementVNode(\"td\", _hoisted_15, [\n _createElementVNode(\"div\", _hoisted_16, [\n (item.ttl)\n ? (_openBlock(), _createBlock(Duration, {\n key: 0,\n seconds: item.ttl\n }, null, 8, [\"seconds\"]))\n : _createCommentVNode(\"\", true)\n ])\n ]),\n _createElementVNode(\"td\", _hoisted_17, [\n (item.variant === true)\n ? (_openBlock(), _createBlock(_unref(CheckCircleIcon), {\n key: 0,\n class: \"h-6 w-6 text-green-500 mx-auto\",\n \"aria-hidden\": \"true\"\n }))\n : (_openBlock(), _createElementBlock(_Fragment, { key: 1 }, [\n _createTextVNode(_toDisplayString(item.variant), 1)\n ], 64))\n ])\n ]))\n }), 128))\n ])\n ])\n ])\n ])\n ]))\n}\n}\n\n})","import script from \"./PropagationServerList.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./PropagationServerList.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","// eslint-disable-next-line @typescript-eslint/ban-types\nexport default function debounce(cb: T, wait = 20) {\n let h = 0;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const callable = (...args: any) => {\n clearTimeout(h);\n h = setTimeout(() => cb(...args), wait);\n };\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return (callable);\n}\n","import { defineComponent as _defineComponent } from 'vue'\nimport { openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = [\"src\"]\n\nimport {\n PropType, watch, ref,\n} from 'vue';\nimport debounce from '@/common/debounce';\n\nexport interface Marker {\n lat: number;\n lon: number;\n variant: string | true | null;\n}\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'PropagationMap',\n props: {\n markers: {\n type: Array as PropType>,\n required: true,\n },\n},\n setup(__props) {\n\nconst props = __props;\n\n\n\nconst markers = ref('');\n\nconst debouncedUpdateMarkers = debounce(() => {\n markers.value = props.markers.map((marker) => `&m=${marker.lat},${marker.lon},osm_bright,f87171${marker.variant === true ? ',,' : `,${marker.variant},fff`}`).join();\n}, 100);\n\nwatch(() => props.markers, () => {\n if (props.markers.length === 8) {\n // Don't wait 100ms if we have all the markers\n markers.value = props.markers.map((marker) => `&m=${marker.lat},${marker.lon},osm_bright,f87171${marker.variant === true ? ',,' : `,${marker.variant},fff`}`).join();\n } else {\n debouncedUpdateMarkers();\n }\n});\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"img\", {\n src: `https://stadiamaps.com/static/outdoors?api_key=23fe682b-ac7c-4f2b-83db-39dcf2a8b9ac¢er=27,10&zoom=0${markers.value}&size=512x265@2x`,\n alt: \"World map\"\n }, null, 8, _hoisted_1))\n}\n}\n\n})","import script from \"./PropagationMap.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./PropagationMap.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { createVNode as _createVNode, Teleport as _Teleport, openBlock as _openBlock, createBlock as _createBlock, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, unref as _unref, createCommentVNode as _createCommentVNode, Fragment as _Fragment, createElementBlock as _createElementBlock, renderList as _renderList } from \"vue\"\n\nconst _hoisted_1 = { class: \"flex-grow bg-[#f5f5f5]\" }\nconst _hoisted_2 = { class: \"container mx-auto px-4 pt-6 pb-14 sm:px-6 lg:px-8\" }\nconst _hoisted_3 = { class: \"flex flex-row flex-wrap justify-between mt-8 mb-6 gap-3 md:items-center\" }\nconst _hoisted_4 = { class: \"w-full lg:w-auto\" }\nconst _hoisted_5 = { class: \"text-3xl tracking-tight font-medium text-gray-900\" }\nconst _hoisted_6 = { class: \"grid grid-cols-1 gap-6 md:grid-cols-2 xl:grid-cols-3 clear-both\" }\nconst _hoisted_7 = { class: \"mb-6 col-span-2\" }\nconst _hoisted_8 = { class: \"prose\" }\nconst _hoisted_9 = /*#__PURE__*/_createElementVNode(\"p\", null, \"Their responses are grouped, so you can easily see which DNS servers are returning the same records.\", -1)\nconst _hoisted_10 = /*#__PURE__*/_createElementVNode(\"br\", null, null, -1)\nconst _hoisted_11 = /*#__PURE__*/_createElementVNode(\"br\", null, null, -1)\nconst _hoisted_12 = { class: \"grid grid-cols-1 gap-6 md:grid-cols-2 xl:grid-cols-3 clear-both\" }\nconst _hoisted_13 = { class: \"px-4 py-5 sm:px-6 bg-gray-50\" }\nconst _hoisted_14 = { class: \"-ml-4 -mt-4 flex flex-wrap items-center justify-between sm:flex-nowrap\" }\nconst _hoisted_15 = { class: \"ml-4 mt-4\" }\nconst _hoisted_16 = { class: \"flex items-center space-x-3\" }\nconst _hoisted_17 = { class: \"text-lg font-medium leading-6 text-gray-900\" }\nconst _hoisted_18 = {\n key: 0,\n class: \"inline-block flex-shrink-0 rounded-full bg-green-100 ml-2 px-2 py-0.5 text-xs font-medium text-green-800\"\n}\nconst _hoisted_19 = { class: \"mt-1 text-sm text-gray-500\" }\nconst _hoisted_20 = { class: \"ml-4 mt-4 flex-shrink-0\" }\nconst _hoisted_21 = { class: \"flex -space-x-2\" }\nconst _hoisted_22 = [\"src\", \"alt\", \"title\"]\nconst _hoisted_23 = { class: \"inline-flex h-8 w-8 items-center justify-center rounded-full bg-gray-500\" }\nconst _hoisted_24 = { class: \"text-sm font-medium leading-none text-white\" }\nconst _hoisted_25 = [\"src\", \"alt\", \"title\"]\nconst _hoisted_26 = {\n key: 0,\n class: \"flex-grow font-mono overflow-x-auto px-4 py-5 sm:px-6\"\n}\nconst _hoisted_27 = {\n key: 1,\n class: \"flex-grow px-4 py-5 sm:px-6\"\n}\nconst _hoisted_28 = { class: \"grid grid-cols-1 gap-6 lg:grid-cols-2 xl:grid-cols-3\" }\nconst _hoisted_29 = { class: \"col-span-1\" }\nconst _hoisted_30 = /*#__PURE__*/_createElementVNode(\"h2\", { class: \"pt-12 text-xl font-semibold text-gray-900\" }, \"Authoritative DNS servers\", -1)\nconst _hoisted_31 = { class: \"mt-2 pb-3 text-sm text-gray-700\" }\nconst _hoisted_32 = { class: \"col-span-1\" }\nconst _hoisted_33 = /*#__PURE__*/_createElementVNode(\"h2\", { class: \"pt-12 text-xl font-semibold text-gray-900\" }, \"Global DNS networks\", -1)\nconst _hoisted_34 = { class: \"mt-2 pb-3 text-sm text-gray-700\" }\nconst _hoisted_35 = { class: \"col-span-1 lg:col-span-2 xl:col-span-1\" }\nconst _hoisted_36 = /*#__PURE__*/_createElementVNode(\"h2\", { class: \"pt-12 text-xl font-semibold text-gray-900\" }, \"Regional DNS servers\", -1)\nconst _hoisted_37 = /*#__PURE__*/_createElementVNode(\"p\", { class: \"mt-2 pb-3 text-sm text-gray-700\" }, \"These servers may cache DNS records.\", -1)\n\nimport { computed, ref, watch } from 'vue';\nimport router from '@/router';\nimport {\n addResponse, getVariant, getVariantName, Variant,\n} from '@/common/propagationVariant';\nimport {\n flagIconSrc, organizationIconSrc, displayHostingEntity, iconSrc, iconAlt,\n} from '@/common/hostingEntity';\nimport MetaTags from '@/components/MetaTags.vue';\nimport FooterComponent from '@/components/layout/FooterComponent.vue';\nimport HeaderComponent from '@/components/layout/HeaderComponent.vue';\nimport RecordTypePicker from '@/components/RecordTypePicker.vue';\nimport PropagationServerList, { PropagationServerListItem } from '@/components/dns-propagation/PropagationServerList.vue';\nimport {\n DnsPropagationAnswer, DnsPropagationResult, GlobalQueryTarget, isGlobalQueryTarget, RegionalQueryTarget,\n} from '@/model/PropagationEndpoint';\nimport PropagationMap from '@/components/dns-propagation/PropagationMap.vue';\nimport AlertComponent from '@/components/micro/AlertComponent.vue';\nimport DurationComponent from '@/components/micro/DurationComponent.vue';\nimport { DnsServer } from '@/model/Api';\nimport AdUnit from '@/components/ads/AdUnit.vue';\nimport {\n Billboard, LargeLeaderboard, LargeRectangle, Leaderboard, MediumRectangle,\n} from '@/common/adSizes';\nimport { PropagationTop, PropagationMid, PropagationBottom } from '@/common/adSlots';\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'DnsPropagationResults',\n props: {\n routerDomain: {\n type: String,\n required: true,\n },\n routerRecordType: {\n type: String,\n required: true,\n },\n},\n setup(__props) {\n\nconst props = __props;\n\n\n\nconst organizationList: Array = ['CloudFlare', 'Google', 'Quad9', 'OpenDns', 'CleanBrowsing', 'AdGuard', 'NextDNS', 'ControlDUnfiltered', 'UltimateHostsBlacklist'];\nconst countryList: Array = ['SouthAfrica', 'TheNetherlands', 'Australia', 'India', 'USA', 'Brazil', 'Ukraine', 'Russia', 'Canada'];\n\nconst domain = ref('');\nconst domainPunycode = ref('');\nconst loading = ref(true);\n\nconst recordType = ref(props.routerRecordType.toUpperCase());\n\nconst globalResponses = ref>(new Map());\nconst regionalResponses = ref>(new Map());\nconst authoritativeResponses = ref>(new Map());\nconst variants = ref>([]);\n\nconst formattedQueryLocation = computed(() => {\n const location = [...globalResponses.value.values(), ...regionalResponses.value.values(), ...authoritativeResponses.value.values()][0]?.queryLocation;\n if (location === undefined) {\n return undefined;\n }\n if (location === 'Amsterdam') {\n return 'Amsterdam, the Netherlands';\n }\n return 'San Fransisco, USA';\n});\nconst authoritativeServersDisagree = computed(() => variants.value.filter((variant) => variant.isAuthoritative).length > 1);\nconst maxTtl = computed(() => Math.max(...variants.value.filter((variant) => !variant.isAuthoritative).flatMap((variant) => variant.records.map((rr) => rr.ttl))));\nconst markers = computed(() => [...regionalResponses.value.values()].flatMap((response) => {\n if (response.server.location) {\n return [{\n lat: response.server.location.lat,\n lon: response.server.location.lon,\n variant: variants.value.length === 1 || getVariant(variants.value, response),\n }];\n }\n return [];\n}));\n\nfunction load() {\n loading.value = true;\n globalResponses.value = new Map();\n regionalResponses.value = new Map();\n authoritativeResponses.value = new Map();\n variants.value = [];\n\n const connection = new WebSocket(`${window.location.origin.replace(/^http/, 'ws')}/api/v1/ws/dns-propagation`);\n\n connection.onmessage = (event) => {\n const response: DnsPropagationResult = JSON.parse(event.data);\n if ('Left' in response) {\n console.error(response.Left);\n } else {\n const answer = response.Right;\n if (answer.queryTarget === 'Authoritative') {\n authoritativeResponses.value.set(answer.server, answer);\n } else if (isGlobalQueryTarget(answer.queryTarget)) {\n globalResponses.value.set(answer.queryTarget, answer);\n } else {\n regionalResponses.value.set(answer.queryTarget, answer);\n }\n variants.value = addResponse(variants.value, answer, recordType.value);\n }\n };\n\n connection.onopen = () => {\n connection.send(JSON.stringify({ domain: props.routerDomain, recordType: props.routerRecordType }));\n };\n\n connection.onclose = () => {\n loading.value = false;\n };\n}\n\nfunction getGlobalResponse(qt: GlobalQueryTarget): PropagationServerListItem {\n const response = globalResponses.value.get(qt);\n if (response) {\n return {\n firstLine: displayHostingEntity(qt),\n secondLine: response.server.ip || '',\n ttl: Math.max(...response.answer.map((rr) => rr.ttl)),\n variant: variants.value.length === 1 || getVariant(variants.value, response),\n iconSrc: iconSrc(response),\n iconAlt: iconAlt(response),\n iconShape: 'circle',\n };\n }\n return {\n firstLine: displayHostingEntity(qt),\n secondLine: loading.value ? 'loading' : 'DNS server did not reply',\n ttl: null,\n variant: null,\n iconSrc: organizationIconSrc(qt),\n iconAlt: displayHostingEntity(qt),\n iconShape: 'circle',\n };\n}\n\nfunction getCountryResponse(qt: RegionalQueryTarget): PropagationServerListItem {\n const response = regionalResponses.value.get(qt);\n if (response) {\n return {\n firstLine: displayHostingEntity(qt),\n secondLine: response.server.ip || '',\n ttl: Math.max(...response.answer.map((rr) => rr.ttl)),\n variant: variants.value.length === 1 || getVariant(variants.value, response),\n iconSrc: flagIconSrc(qt),\n iconAlt: iconAlt(response),\n iconShape: '4x3',\n };\n }\n return {\n firstLine: displayHostingEntity(qt),\n secondLine: loading.value ? 'Loading...' : 'DNS server did not reply.',\n ttl: null,\n variant: null,\n iconSrc: flagIconSrc(qt),\n iconAlt: displayHostingEntity(qt),\n iconShape: '4x3',\n };\n}\n\nfunction getAuthoritativeResponses(): PropagationServerListItem[] {\n function sortFn(l: PropagationServerListItem, r: PropagationServerListItem) {\n if (l.firstLine > r.firstLine) {\n return 1;\n }\n if (l.firstLine < r.firstLine) {\n return -1;\n }\n return 0;\n }\n return Array.from(authoritativeResponses.value).map(([server, answer]) => ({\n firstLine: server.domain || '',\n secondLine: server.ip || '',\n ttl: Math.max(...answer.answer.map((rr) => rr.ttl)),\n variant: variants.value.length === 1 || getVariant(variants.value, answer),\n iconSrc: iconSrc(answer),\n iconAlt: iconAlt(answer),\n iconShape: 'circle' as const,\n })).sort(sortFn);\n}\n\nwatch(() => recordType.value, () => {\n router.push(`/domains/${domainPunycode.value}/dns-propagation/${recordType.value.toLowerCase()}/`);\n});\n\nwatch(() => props.routerDomain, () => {\n if (domainPunycode.value !== props.routerDomain) {\n domain.value = decodeURI(props.routerDomain)\n .toLowerCase();\n domainPunycode.value = decodeURI(props.routerDomain)\n .toLowerCase();\n load();\n }\n}, {\n immediate: true,\n});\n\nwatch(() => props.routerRecordType, () => {\n recordType.value = props.routerRecordType.toUpperCase();\n load();\n});\n\n\nreturn (_ctx: any,_cache: any) => {\n const _component_router_link = _resolveComponent(\"router-link\")!\n\n return (_openBlock(), _createElementBlock(_Fragment, null, [\n (_openBlock(), _createBlock(_Teleport, { to: \"head\" }, [\n _createVNode(MetaTags, {\n title: `DNS propagation for ${domain.value}`,\n description: `${domain.value}'s global DNS propagation shown on a map. Shows authoritative responses, global DNS servers, local DNS servers, and more.`,\n url: `https://www.nslookup.io/domains/${domainPunycode.value}/dns-propagation/${recordType.value.toLowerCase()}/`\n }, null, 8, [\"title\", \"description\", \"url\"])\n ])),\n _createVNode(HeaderComponent, {\n domain: domain.value,\n \"domain-search-to-url\": (encodedDomain) => `/domains/${encodedDomain}/dns-propagation/${recordType.value.toLowerCase()}/`,\n \"search-button-text\": \"Check propagation\"\n }, null, 8, [\"domain\", \"domain-search-to-url\"]),\n _createElementVNode(\"div\", _hoisted_1, [\n _createElementVNode(\"main\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"h1\", _hoisted_5, \"DNS propagation for \" + _toDisplayString(domain.value === domainPunycode.value ? domain.value : `${domainPunycode.value} (${domain.value})`), 1),\n _createVNode(_component_router_link, {\n to: `/domains/${domainPunycode.value}/dns-records/`,\n class: \"underline text-sm font-medium text-blue-600\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(\"All DNS records\")\n ]),\n _: 1\n }, 8, [\"to\"])\n ]),\n _createVNode(RecordTypePicker, {\n modelValue: recordType.value,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((recordType).value = $event))\n }, null, 8, [\"modelValue\"])\n ]),\n _createElementVNode(\"div\", _hoisted_6, [\n _createElementVNode(\"div\", _hoisted_7, [\n _createVNode(AdUnit, {\n class: \"float-right ml-6 shadow rounded-lg overflow-hidden\",\n config: _unref(PropagationTop)\n }, null, 8, [\"config\"]),\n _createElementVNode(\"div\", _hoisted_8, [\n _createElementVNode(\"p\", null, \"We've queried 9 regional DNS servers, 9 global DNS networks, and \" + _toDisplayString(authoritativeResponses.value.size) + \" authoritative DNS servers for \" + _toDisplayString(domainPunycode.value) + \"'s \" + _toDisplayString(recordType.value) + \" records.\", 1),\n _hoisted_9,\n (!loading.value && variants.value.length > 0)\n ? (_openBlock(), _createElementBlock(_Fragment, { key: 0 }, [\n (variants.value.length === 1)\n ? (_openBlock(), _createElementBlock(_Fragment, { key: 0 }, [\n (variants.value[0].records.length === 0)\n ? (_openBlock(), _createElementBlock(_Fragment, { key: 0 }, [\n (recordType.value === 'NS')\n ? (_openBlock(), _createBlock(AlertComponent, {\n key: 0,\n type: \"warning\",\n class: \"flex not-prose shadow-sm\",\n \"has-border\": true\n }, {\n default: _withCtx(() => [\n _createTextVNode(\"None of the servers returned any NS records.\"),\n _hoisted_10,\n _createTextVNode(\"This means that the domain name has not been \"),\n _createVNode(_component_router_link, {\n to: \"/learning/zone-delegation/\",\n class: \"font-medium underline underline-offset-2\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(\"delegated\")\n ]),\n _: 1\n }),\n _createTextVNode(\". If this domain was recently registered, then the \"),\n _createVNode(_component_router_link, {\n to: \"/learning/how-does-domain-name-registration-work/#the-registry\",\n class: \"font-medium underline underline-offset-2\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(\"registry\")\n ]),\n _: 1\n }),\n _createTextVNode(\" likely hasn't updated their DNS records yet.\")\n ]),\n _: 1\n }))\n : (_openBlock(), _createBlock(AlertComponent, {\n key: 1,\n type: \"info\",\n class: \"flex not-prose shadow-sm\",\n \"has-border\": true\n }, {\n default: _withCtx(() => [\n _createTextVNode(\"None of the servers returned any records.\"),\n _hoisted_11,\n _createTextVNode(\"If this is not what you were expecting, then \"),\n _createVNode(_component_router_link, {\n to: `/domains/${domainPunycode.value}/dns-propagation/ns/`,\n class: \"font-medium underline underline-offset-2\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(\"check the NS records\")\n ]),\n _: 1\n }, 8, [\"to\"]),\n _createTextVNode(\" for this domain to see if they have propagated.\")\n ]),\n _: 1\n }))\n ], 64))\n : (_openBlock(), _createBlock(AlertComponent, {\n key: 1,\n type: \"success\",\n class: \"flex not-prose shadow-sm\",\n \"has-border\": true\n }, {\n default: _withCtx(() => [\n _createTextVNode(\"All servers returned the same record set. This means that the DNS records have fully propagated.\")\n ]),\n _: 1\n }))\n ], 64))\n : (['A', 'AAAA'].includes(recordType.value))\n ? (_openBlock(), _createElementBlock(_Fragment, { key: 1 }, [\n (variants.value.length > 2)\n ? (_openBlock(), _createBlock(AlertComponent, {\n key: 0,\n type: \"info\",\n class: \"flex not-prose shadow-sm\",\n \"has-border\": true\n }, {\n default: _withCtx(() => [\n _createTextVNode(\"There are more than two variants. The authoritative servers likely return different record sets in order to spread the load among multiple webservers.\")\n ]),\n _: 1\n }))\n : _createCommentVNode(\"\", true)\n ], 64))\n : (_openBlock(), _createElementBlock(_Fragment, { key: 2 }, [\n (_unref(authoritativeServersDisagree))\n ? (_openBlock(), _createBlock(AlertComponent, {\n key: 0,\n type: \"warning\",\n class: \"flex not-prose shadow-sm\",\n \"has-border\": true\n }, {\n default: _withCtx(() => [\n _createTextVNode(\"The authoritative DNS servers returned different record sets. This indicates an issue in \" + _toDisplayString(domain.value) + \"'s DNS configuration.\", 1)\n ]),\n _: 1\n }))\n : (_openBlock(), _createBlock(AlertComponent, {\n key: 1,\n type: \"warning\",\n class: \"flex not-prose shadow-sm\",\n \"has-border\": true\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(domain.value) + \"'s DNS records have not yet fully propagated.\", 1),\n (_unref(maxTtl))\n ? (_openBlock(), _createElementBlock(_Fragment, { key: 0 }, [\n _createTextVNode(\" Based on the response TTLs, this will likely persist for another \"),\n _createVNode(DurationComponent, { seconds: _unref(maxTtl) }, null, 8, [\"seconds\"]),\n _createTextVNode(\".\")\n ], 64))\n : _createCommentVNode(\"\", true)\n ]),\n _: 1\n }))\n ], 64))\n ], 64))\n : _createCommentVNode(\"\", true)\n ])\n ]),\n _createVNode(PropagationMap, {\n markers: _unref(markers),\n class: \"rounded-lg shadow overflow-hidden\"\n }, null, 8, [\"markers\"])\n ]),\n _createElementVNode(\"ul\", _hoisted_12, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(variants.value, (variant, index) => {\n return (_openBlock(), _createElementBlock(\"li\", {\n key: index,\n class: \"flex flex-col col-span-1 divide-y divide-gray-200 rounded-lg bg-white shadow overflow-hidden ring-1 ring-black ring-opacity-5\"\n }, [\n _createElementVNode(\"div\", _hoisted_13, [\n _createElementVNode(\"div\", _hoisted_14, [\n _createElementVNode(\"div\", _hoisted_15, [\n _createElementVNode(\"div\", _hoisted_16, [\n _createElementVNode(\"h3\", _hoisted_17, _toDisplayString(variants.value.length === 1 ? 'DNS records' : `Variant ${_unref(getVariantName)(index)}`), 1),\n (variant.isAuthoritative)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_18, \"Authoritative\"))\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"p\", _hoisted_19, \"Served by \" + _toDisplayString(variants.value.length == 1 ? 'all ' : '') + _toDisplayString(variant.answers.length == 1 ? '1 server' : `${variant.answers.length} servers`) + \".\", 1)\n ]),\n _createElementVNode(\"div\", _hoisted_20, [\n _createElementVNode(\"div\", _hoisted_21, [\n (variant.answers.length > 5)\n ? (_openBlock(), _createElementBlock(_Fragment, { key: 0 }, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(variant.answers.slice(0, 4), (answer, index) => {\n return (_openBlock(), _createElementBlock(\"img\", {\n key: index,\n class: \"inline-block h-8 w-8 rounded-full ring-2 ring-white\",\n src: _unref(iconSrc)(answer),\n alt: _unref(iconAlt)(answer),\n title: _unref(iconAlt)(answer)\n }, null, 8, _hoisted_22))\n }), 128)),\n _createElementVNode(\"span\", _hoisted_23, [\n _createElementVNode(\"span\", _hoisted_24, \"+\" + _toDisplayString(variant.answers.length - 4), 1)\n ])\n ], 64))\n : (_openBlock(true), _createElementBlock(_Fragment, { key: 1 }, _renderList(variant.answers, (answer, index) => {\n return (_openBlock(), _createElementBlock(\"img\", {\n key: index,\n class: \"inline-block h-8 w-8 rounded-full ring-2 ring-white\",\n src: _unref(iconSrc)(answer),\n alt: _unref(iconAlt)(answer),\n title: _unref(iconAlt)(answer)\n }, null, 8, _hoisted_25))\n }), 128))\n ])\n ])\n ])\n ]),\n (variant.records.length)\n ? (_openBlock(), _createElementBlock(\"pre\", _hoisted_26, _toDisplayString(variant.records.map((rr) => rr.raw).join('\\n')), 1))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_27, \"No \" + _toDisplayString(recordType.value) + \" records found\", 1))\n ]))\n }), 128))\n ]),\n _createVNode(AdUnit, {\n class: \"mt-8 mx-auto\",\n config: _unref(PropagationMid)\n }, null, 8, [\"config\"]),\n _createElementVNode(\"div\", _hoisted_28, [\n _createElementVNode(\"div\", _hoisted_29, [\n _hoisted_30,\n _createElementVNode(\"p\", _hoisted_31, _toDisplayString(_unref(formattedQueryLocation) ? `Queried from ${_unref(formattedQueryLocation)}` : ' '), 1),\n _createVNode(PropagationServerList, {\n items: getAuthoritativeResponses()\n }, null, 8, [\"items\"])\n ]),\n _createElementVNode(\"div\", _hoisted_32, [\n _hoisted_33,\n _createElementVNode(\"p\", _hoisted_34, _toDisplayString(_unref(formattedQueryLocation) ? `Queried from ${_unref(formattedQueryLocation)}` : ' '), 1),\n _createVNode(PropagationServerList, {\n items: organizationList.map((queryTarget) => getGlobalResponse(queryTarget))\n }, null, 8, [\"items\"])\n ]),\n _createElementVNode(\"div\", _hoisted_35, [\n _hoisted_36,\n _hoisted_37,\n _createVNode(PropagationServerList, {\n class: \"min-w-full\",\n items: countryList.map((queryTarget) => getCountryResponse(queryTarget))\n }, null, 8, [\"items\"])\n ])\n ]),\n _createVNode(AdUnit, {\n class: \"mt-8 mx-auto\",\n config: _unref(PropagationBottom)\n }, null, 8, [\"config\"])\n ])\n ]),\n _createVNode(FooterComponent)\n ], 64))\n}\n}\n\n})","import script from \"./DnsPropagationResults.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./DnsPropagationResults.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { createRouter, createWebHistory, RouteRecordRaw } from 'vue-router';\nimport { recordTypeRegex } from '@/common/recordTypes';\nimport RecordTypeLookup from '@/views/RecordTypeLookup.vue';\nimport RecordTypeLookupResults from '@/views/RecordTypeLookupResults.vue';\nimport DnsChecker from '@/views/DnsChecker.vue';\nimport ReverseIpLookup from '@/views/ReverseIpLookup.vue';\nimport ReverseIpLookupResults from '@/views/ReverseIpLookupResults.vue';\nimport WebsiteToIpLookup from '@/views/WebsiteToIpLookup.vue';\nimport WebsiteToIpLookupResults from '@/views/WebsiteToIpLookupResults.vue';\nimport Home from '@/views/HomeView.vue';\nimport DnsRecords from '@/views/DnsRecordsResults.vue';\nimport DnsPropagation from '@/views/DnsPropagationResults.vue';\n\nconst routes: Array = [\n {\n path: '/',\n name: 'Home',\n component: Home,\n },\n {\n path: '/dns-checker/',\n name: 'Dns Checker',\n component: DnsChecker,\n },\n {\n path: '/website-to-ip-lookup/',\n name: 'Website to IP lookup',\n component: WebsiteToIpLookup,\n },\n {\n path: '/reverse-ip-lookup/',\n name: 'Reverse IP lookup',\n component: ReverseIpLookup,\n },\n {\n path: '/ip/:routerIp(.*)/domain-names/',\n props: true,\n name: 'Reverse IP lookup result',\n component: ReverseIpLookupResults,\n },\n {\n path: '/domains/:routerDomain(.*)/webservers/',\n props: true,\n name: 'Webservers',\n component: WebsiteToIpLookupResults,\n },\n {\n path: '/domains/:routerDomain(.*)/dns-records/',\n props: true,\n name: 'Dns records', // DnsRecordsResults.vue depends on this magic string.\n component: DnsRecords,\n },\n {\n path: `/domains/:routerDomain(.*)/dns-propagation/:routerRecordType(${recordTypeRegex})/`,\n props: true,\n name: 'Dns propagation',\n component: DnsPropagation,\n },\n {\n path: `/:routerRecordType(${recordTypeRegex})-lookup/`,\n props: true,\n name: 'Record type lookup',\n component: RecordTypeLookup,\n },\n {\n path: `/domains/:routerDomain(.*)/dns-records/:routerRecordType(${recordTypeRegex})/`,\n props: true,\n name: 'Record type lookup result',\n component: RecordTypeLookupResults,\n },\n {\n path: '/domains/:routerDomain(.*)/email/:routerRecordType(spf)/',\n props: true,\n name: 'SPF lookup result',\n component: RecordTypeLookupResults,\n },\n {\n path: '/install/',\n name: 'Install',\n component: () => import(/* webpackChunkName: \"content\" */'@/views/InstallView.vue'),\n },\n {\n path: '/install/how-to-view-dns-records-in-chrome/',\n name: 'Install in Chrome',\n component: () => import(/* webpackChunkName: \"content\" */'@/views/install/InstallChrome.vue'),\n },\n {\n path: '/install/how-to-view-dns-records-in-edge/',\n name: 'Install in Edge',\n component: () => import(/* webpackChunkName: \"content\" */'@/views/install/InstallEdge.vue'),\n },\n {\n path: '/install/how-to-view-dns-records-in-firefox/',\n name: 'Install in Firefox',\n component: () => import(/* webpackChunkName: \"content\" */'@/views/install/InstallFirefox.vue'),\n },\n {\n path: '/contact-us/',\n name: 'Contact',\n component: () => import(/* webpackChunkName: \"content\" */'../views/ContactUs.vue'),\n },\n {\n path: '/about/',\n name: 'About',\n component: () => import(/* webpackChunkName: \"content\" */'../views/AboutView.vue'),\n },\n {\n path: '/about/jeff-westhead/',\n name: 'Jeff Westhead',\n component: () => import(/* webpackChunkName: \"content\" */'../views/AboutJeff.vue'),\n },\n {\n path: '/about/ruurtjan-pul/',\n name: 'Ruurtjan Pul',\n component: () => import(/* webpackChunkName: \"content\" */'../views/AboutRuurtjan.vue'),\n },\n {\n path: '/dns-lookup-api/',\n name: 'DNS lookup API',\n component: () => import(/* webpackChunkName: \"content\" */'../views/ApiView.vue'),\n },\n {\n path: '/welcome-to-the-course/',\n name: 'Welcome to the course',\n component: () => import(/* webpackChunkName: \"content\" */'../views/WelcomeToTheCourse.vue'),\n },\n {\n path: '/sponsor/',\n name: 'Sponsor NsLookup.io',\n component: () => import(/* webpackChunkName: \"content\" */'../views/SponsorView.vue'),\n },\n {\n path: '/privacy-policy/',\n name: 'Privacy policy',\n component: () => import(/* webpackChunkName: \"content\" */'../views/PrivacyPolicy.vue'),\n },\n {\n path: '/terms-and-conditions/',\n name: 'Terms and conditions',\n component: () => import(/* webpackChunkName: \"content\" */'../views/TermsAndConditions.vue'),\n },\n {\n path: '/learning/',\n name: 'Learning',\n component: () => import(/* webpackChunkName: \"content\" */'../views/LearningView.vue'),\n },\n {\n path: '/learning/what-is-dns/',\n name: 'What is the DNS?',\n component: () => import(/* webpackChunkName: \"content\" */'../views/learning/WhatIsDns.vue'),\n },\n {\n path: '/learning/what-is-a-dns-resolver/',\n name: 'What is a DNS resolver?',\n component: () => import(/* webpackChunkName: \"content\" */'../views/learning/WhatIsADnsResolver.vue'),\n },\n {\n path: '/learning/dns-record-types/',\n name: 'DNS Record Types',\n component: () => import(/* webpackChunkName: \"content\" */'../views/learning/DnsRecordTypes.vue'),\n },\n {\n path: '/learning/what-is-a-dns-zone/',\n name: 'What is a DNS zone?',\n component: () => import(/* webpackChunkName: \"content\" */'../views/learning/WhatIsADnsZone.vue'),\n },\n {\n path: '/learning/what-is-the-dns-root-zone/',\n name: 'What is the DNS root zone?',\n component: () => import(/* webpackChunkName: \"content\" */'../views/learning/WhatIsTheDnsRootZone.vue'),\n },\n {\n path: '/learning/recursive-vs-authoritative-dns/',\n name: 'Recursive versus authoritative DNS',\n component: () => import(/* webpackChunkName: \"content\" */'../views/learning/RecursiveVsAuthoritativeDns.vue'),\n },\n {\n path: '/learning/zone-delegation/',\n name: 'DNS Zone Delegation',\n component: () => import(/* webpackChunkName: \"content\" */'../views/learning/ZoneDelegation.vue'),\n },\n {\n path: '/learning/how-does-domain-name-registration-work/',\n name: 'How does domain name registration work?',\n component: () => import(/* webpackChunkName: \"content\" */'../views/learning/HowDoesDomainNameRegistrationWork.vue'),\n },\n {\n path: '/learning/10-tips-for-picking-the-perfect-domain-name/',\n name: '10 tips for picking the perfect domain name',\n component: () => import(/* webpackChunkName: \"content\" */'@/views/learning/domain-names/TipsForPickingADomainName.vue'),\n },\n {\n path: '/learning/security/dns-changer/',\n name: 'What is the DNS Changer Malware?',\n component: () => import(/* webpackChunkName: \"content\" */'../views/learning/security/DnsChanger.vue'),\n },\n {\n path: '/learning/dns-record-types/soa/',\n name: 'The SOA record',\n component: () => import(/* webpackChunkName: \"content\" */'../views/learning/DnsRecordTypes/RecordTypeSoa.vue'),\n },\n {\n path: '/learning/dns-record-types/cname/',\n name: 'The CNAME record',\n component: () => import(/* webpackChunkName: \"content\" */'../views/learning/DnsRecordTypes/RecordTypeCname.vue'),\n },\n {\n path: '/learning/dns-record-types/ns/',\n name: 'The NS record',\n component: () => import(/* webpackChunkName: \"content\" */'../views/learning/DnsRecordTypes/RecordTypeNs.vue'),\n },\n {\n path: '/learning/dns-record-types/mx/',\n name: 'The MX record',\n component: () => import(/* webpackChunkName: \"content\" */'../views/learning/DnsRecordTypes/RecordTypeMx.vue'),\n },\n {\n path: '/learning/dns-record-types/txt/',\n name: 'The TXT record',\n component: () => import(/* webpackChunkName: \"content\" */'../views/learning/DnsRecordTypes/RecordTypeTxt.vue'),\n },\n {\n path: '/learning/dns-record-types/a/',\n name: 'The A record',\n component: () => import(/* webpackChunkName: \"content\" */'../views/learning/DnsRecordTypes/RecordTypeA.vue'),\n },\n {\n path: '/learning/dns-record-types/aaaa/',\n name: 'The AAAA record',\n component: () => import(/* webpackChunkName: \"content\" */'../views/learning/DnsRecordTypes/RecordTypeAAAA.vue'),\n },\n {\n path: '/learning/dns-record-types/srv/',\n name: 'The SRV record',\n component: () => import(/* webpackChunkName: \"content\" */'../views/learning/DnsRecordTypes/RecordTypeSrv.vue'),\n },\n {\n path: '/learning/dns-record-types/ptr/',\n name: 'The PTR record',\n component: () => import(/* webpackChunkName: \"content\" */'../views/learning/DnsRecordTypes/RecordTypePtr.vue'),\n },\n {\n path: '/learning/spf-a-practical-guide/',\n name: 'Email security SPF',\n component: () => import(/* webpackChunkName: \"content\" */'../views/learning/EmailSecurity/EmailSecuritySpf.vue'),\n },\n {\n path: '/learning/dkim-a-practical-guide/',\n name: 'Email security DKIM',\n component: () => import(/* webpackChunkName: \"content\" */'../views/learning/EmailSecurity/EmailSecurityDkim.vue'),\n },\n {\n path: '/learning/dmarc-a-practical-guide/',\n name: 'Email security DMARC',\n component: () => import(/* webpackChunkName: \"content\" */'../views/learning/EmailSecurity/EmailSecurityDmarc.vue'),\n },\n {\n path: '/learning/how-to-merge-dmarc-records/',\n name: 'How to merge DMARC records',\n component: () => import(/* webpackChunkName: \"content\" */'../views/learning/EmailSecurity/EmailSecurityHowToMergeDmarcRecords.vue'),\n },\n {\n path: '/learning/mx-vs-spf-vs-dmarc-vs-dkim-vs-bimi/',\n name: 'MX vs SPF vs DMARC vs DKIM vs BIMI',\n component: () => import(/* webpackChunkName: \"content\" */'../views/learning/MxVsSpfVsDmarcVsDkimVsBimi.vue'),\n },\n {\n path: '/learning/using-different-dmarc-records-for-subdomains/',\n name: 'Using different DMARC records for subdomains',\n component: () => import(/* webpackChunkName: \"content\" */'../views/learning/EmailSecurity/EmailSecurityUsingDifferentDmarcRecordsForSubdomains.vue'),\n },\n {\n path: '/learning/the-life-of-a-dns-query-in-kubernetes/',\n name: 'The life of a DNS query in Kubernetes',\n component: () => import(/* webpackChunkName: \"content\" */'../views/learning/TheLifeOfADnsQueryInKubernetes.vue'),\n },\n {\n path: '/learning/how-to-specify-a-dns-server-in-nslookup/',\n name: 'How to specify a DNS server in nslookup',\n component: () => import(/* webpackChunkName: \"content\" */'../views/learning/command-line/HowToSpecifyADnsServerInNslookup.vue'),\n },\n {\n path: '/learning/dns-propagation-does-not-exist/',\n name: 'DNS propagation does not exist',\n component: () => import(/* webpackChunkName: \"content\" */'../views/learning/DnsPropagationDoesNotExist.vue'),\n },\n {\n path: '/learning/what-is-a-good-ttl-for-dns/',\n name: 'What is a good TTL for DNS?',\n component: () => import(/* webpackChunkName: \"content\" */'../views/learning/WhatIsAGoodTtlForDns.vue'),\n },\n {\n path: '/learning/finding-whois-servers-using-srv-records/',\n name: 'Finding WHOIS servers using SRV records',\n component: () => import(/* webpackChunkName: \"content\" */'../views/learning/FindingWhoisServersUsingSrvRecords.vue'),\n },\n];\n\nconst router = createRouter({\n history: createWebHistory(process.env.BASE_URL),\n routes,\n scrollBehavior(to) {\n if (to.hash) {\n const element = document.getElementById(to.hash.substring(1));\n if (element) {\n return {\n el: element,\n };\n }\n }\n return {\n el: '#app',\n };\n },\n});\n\ndeclare function plausible(eventName: string, options?: { u?: string }): void;\n\nrouter.afterEach((to, from) => {\n if (to.path !== from.path || to.hash === from.hash) {\n const url = window.location.origin + to.path\n .replace(/\\/domains\\/.*?\\//g, '/domains/_ID_/')\n .replace(/\\/ip\\/.*?\\//g, '/ip/_ID_/');\n plausible('pageview', { u: url + window.location.search });\n }\n});\n\nexport default router;\n","import { createApp } from 'vue';\nimport Prism from 'prismjs';\nimport App from './App.vue';\nimport router from './router';\nimport store from './store';\n\nPrism.manual = true;\n\nconst root = createApp(App).use(store).use(router);\n\n// As suggested by https://github.com/chrisvfritz/prerender-spa-plugin#js-not-firing-before-prerender\ndocument.addEventListener('DOMContentLoaded', () => {\n root.mount('#app');\n});\n","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, withModifiers as _withModifiers, withKeys as _withKeys, toDisplayString as _toDisplayString, normalizeClass as _normalizeClass, renderList as _renderList, Fragment as _Fragment, createTextVNode as _createTextVNode, vShow as _vShow, withDirectives as _withDirectives } from \"vue\"\n\nconst _hoisted_1 = { class: \"relative my-4 h-10\" }\nconst _hoisted_2 = /*#__PURE__*/_createElementVNode(\"div\", { class: \"pointer-events-none absolute inset-y-0 left-0 flex items-center pl-3\" }, [\n /*#__PURE__*/_createElementVNode(\"svg\", {\n class: \"h-5 w-5 text-gray-400\",\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 20 20\",\n fill: \"currentColor\",\n \"aria-hidden\": \"true\"\n }, [\n /*#__PURE__*/_createElementVNode(\"path\", {\n \"fill-rule\": \"evenodd\",\n d: \"M9 3.5a5.5 5.5 0 100 11 5.5 5.5 0 000-11zM2 9a7 7 0 1112.452 4.391l3.328 3.329a.75.75 0 11-1.06 1.06l-3.329-3.328A7 7 0 012 9z\",\n \"clip-rule\": \"evenodd\"\n })\n ])\n], -1)\nconst _hoisted_3 = /*#__PURE__*/_createElementVNode(\"label\", {\n for: \"inputDomain\",\n class: \"sr-only\"\n}, \"Domain name\", -1)\nconst _hoisted_4 = [\"onKeydown\", \"value\", \"placeholder\"]\nconst _hoisted_5 = { class: \"grow-0 shrink-0\" }\nconst _hoisted_6 = [\"onClick\"]\nconst _hoisted_7 = [\"onClick\", \"onMouseover\", \"onFocus\"]\nconst _hoisted_8 = [\"src\"]\nconst _hoisted_9 = { class: \"text-gray-800\" }\n\nimport axios, { AxiosResponse, Canceler } from 'axios';\nimport {\n ref, computed, onMounted, watch,\n} from 'vue';\n\ntype AutocompleteDomain = {\n prefix: string;\n completion: string;\n}\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'DomainSearch',\n props: {\n autofocus: Boolean,\n emphasize: Boolean,\n autocompleteEnabled: {\n type: Boolean,\n default: true,\n },\n prefill: {\n type: String,\n default: '',\n },\n buttonText: {\n type: String,\n default: 'Find DNS records',\n },\n placeholderText: {\n type: String,\n default: 'Domain name',\n },\n},\n emits: ['submitted'],\n setup(__props, { emit }) {\n\nconst props = __props;\n\n\n\n\n\nconst autocompleteUrlPrefix = 'autocomplete/';\n\nconst autocompleteDomains = ref(new Array());\nconst inputDomain = ref(null);\nconst cancelToken = ref(null);\nconst visibleInput = ref('');\nconst prefix = ref('');\nconst selected = ref(-1);\nconst hasFocus = ref(false);\n\n// see https://github.com/vuejs/vue/issues/9299#issuecomment-481530279\nfunction autocomplete(evt: Event): void {\n const target = evt.target as HTMLInputElement;\n prefix.value = target.value;\n visibleInput.value = target.value;\n\n if (!props.autocompleteEnabled) {\n return;\n }\n\n selected.value = -1;\n if (visibleInput.value === '') {\n autocompleteDomains.value = [];\n } else {\n if (cancelToken.value) {\n cancelToken.value();\n }\n const axiosSource = axios.CancelToken.source();\n cancelToken.value = axiosSource.cancel;\n axios.get(`${autocompleteUrlPrefix}${visibleInput.value}`, {\n cancelToken: axiosSource.token,\n }).then((response: AxiosResponse) => {\n const { url } = response.config;\n if (url) {\n const fetchedPrefix = url.substr(autocompleteUrlPrefix.length, url.length);\n // Prevent race conditions\n if (fetchedPrefix === prefix.value) {\n if (response.data === '') {\n autocompleteDomains.value = [];\n } else {\n autocompleteDomains.value = response.data.split('\\n')\n .flatMap((result: string) => [{\n prefix: visibleInput.value,\n completion: result,\n }]);\n }\n }\n }\n }).catch((error) => {\n if (!axios.isCancel(error)) {\n console.log(error.message);\n }\n });\n }\n}\n\nfunction select(index: number, updateInput = false): void {\n if (updateInput) {\n visibleInput.value = autocompleteDomains.value[index].prefix + autocompleteDomains.value[index].completion;\n }\n selected.value = index;\n}\n\nfunction cancelSelection(): void {\n visibleInput.value = prefix.value;\n selected.value = -1;\n}\n\nfunction move(direction: number): boolean {\n if (selected.value === -1) {\n if (direction === -1) {\n select(autocompleteDomains.value.length - 1, true);\n } else {\n select(0, true);\n }\n } else {\n select((selected.value + autocompleteDomains.value.length + direction) % autocompleteDomains.value.length, true);\n }\n return false;\n}\n\nfunction redirectTo(index: number): void {\n const input = inputDomain.value as HTMLInputElement;\n input.blur();\n emit('submitted', autocompleteDomains.value[index].prefix + autocompleteDomains.value[index].completion);\n}\n\nfunction redirectToDnsRecords(): void {\n if (visibleInput.value !== '') {\n const input = inputDomain.value as HTMLInputElement;\n input.blur();\n emit('submitted', visibleInput.value);\n }\n}\n\nconst autocompleting = computed(() => autocompleteDomains.value.length > 0 && hasFocus.value);\n\nonMounted(() => {\n if (props.autofocus) {\n const input = inputDomain.value as HTMLInputElement;\n input.focus();\n }\n});\n\nwatch(() => props.prefill, () => {\n visibleInput.value = props.prefill;\n}, {\n immediate: true,\n});\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"flex border border-gray-300 bg-white rounded-md h-full overflow-hidden\", { 'rounded-b-none': _unref(autocompleting), shadow: __props.emphasize }])\n }, [\n _hoisted_2,\n _hoisted_3,\n _createElementVNode(\"input\", {\n class: \"w-full min-w-0 pl-11 outline-none\",\n onInput: autocomplete,\n onKeydown: [\n _cache[0] || (_cache[0] = _withKeys(_withModifiers(($event: any) => (move(-1)), [\"prevent\"]), [\"up\"])),\n _cache[1] || (_cache[1] = _withKeys(_withModifiers(($event: any) => (move(1)), [\"prevent\"]), [\"down\"])),\n _withKeys(cancelSelection, [\"esc\"])\n ],\n onFocus: _cache[2] || (_cache[2] = ($event: any) => (hasFocus.value = true)),\n onBlur: _cache[3] || (_cache[3] = ($event: any) => (hasFocus.value = false)),\n value: visibleInput.value,\n type: \"url\",\n id: \"inputDomain\",\n ref_key: \"inputDomain\",\n ref: inputDomain,\n placeholder: __props.placeholderText,\n autocomplete: \"off\",\n autocorrect: \"off\",\n autocapitalize: \"off\",\n spellcheck: \"false\"\n }, null, 40, _hoisted_4),\n _createElementVNode(\"div\", _hoisted_5, [\n _createElementVNode(\"button\", {\n class: _normalizeClass(['h-full align-middle px-4 whitespace-nowrap border-gray-300 border-l',\n __props.emphasize ? 'text-white bg-[#3a0161] hover:bg-[#23013c]' : 'text-gray-800 hover:text-white hover:bg-[#3a0161]']),\n type: \"submit\",\n onClick: _withModifiers(redirectToDnsRecords, [\"stop\",\"prevent\"])\n }, _toDisplayString(__props.buttonText), 11, _hoisted_6)\n ])\n ], 2),\n _withDirectives(_createElementVNode(\"ul\", {\n onMousedownCapture: _cache[4] || (_cache[4] = _withModifiers(() => {}, [\"prevent\"])),\n class: \"absolute border-box p-0 w-full overflow-hidden z-[1001] text-left text-gray-500 bg-white border border-t-0 border-gray-300 rounded-b-md\"\n }, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(autocompleteDomains.value, (autocompleteDomain, index) => {\n return (_openBlock(), _createElementBlock(\"li\", {\n key: `${autocompleteDomain.prefix}${autocompleteDomain.completion}`,\n onClick: ($event: any) => (redirectTo(index)),\n onMouseover: ($event: any) => (select(index)),\n onFocus: ($event: any) => (select(index)),\n class: _normalizeClass([\"px-3 py-1.5 list-none cursor-pointer\", { 'bg-gray-200': index === selected.value }])\n }, [\n _createElementVNode(\"img\", {\n class: \"h-4 w-4 inline inset-y-0 left-0 mr-4\",\n src: `https://icons.duckduckgo.com/ip3/${autocompleteDomain.prefix}${autocompleteDomain.completion}.ico`,\n alt: \"\"\n }, null, 8, _hoisted_8),\n _createTextVNode(_toDisplayString(autocompleteDomain.prefix), 1),\n _createElementVNode(\"span\", _hoisted_9, _toDisplayString(autocompleteDomain.completion), 1)\n ], 42, _hoisted_7))\n }), 128))\n ], 544), [\n [_vShow, _unref(autocompleting)]\n ])\n ]))\n}\n}\n\n})","import script from \"./DomainSearch.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./DomainSearch.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, Fragment as _Fragment } from \"vue\"\n\nconst _hoisted_1 = [\"content\"]\nconst _hoisted_2 = [\"content\"]\nconst _hoisted_3 = [\"content\"]\nconst _hoisted_4 = [\"href\"]\nconst _hoisted_5 = /*#__PURE__*/_createElementVNode(\"meta\", {\n name: \"twitter:card\",\n property: \"twitter:card\",\n content: \"summary_large_image\"\n}, null, -1)\nconst _hoisted_6 = [\"content\"]\nconst _hoisted_7 = [\"content\"]\nconst _hoisted_8 = [\"content\"]\nconst _hoisted_9 = /*#__PURE__*/_createElementVNode(\"meta\", {\n name: \"twitter:site\",\n property: \"twitter:site\",\n content: \"@nslookupio\"\n}, null, -1)\nconst _hoisted_10 = /*#__PURE__*/_createElementVNode(\"meta\", {\n name: \"twitter:creator\",\n property: \"twitter:creator\",\n content: \"@ruurtjan\"\n}, null, -1)\nconst _hoisted_11 = [\"content\"]\nconst _hoisted_12 = [\"content\"]\nconst _hoisted_13 = [\"content\"]\nconst _hoisted_14 = [\"content\"]\nconst _hoisted_15 = /*#__PURE__*/_createElementVNode(\"meta\", {\n name: \"og:site_name\",\n property: \"og:site_name\",\n content: \"NsLookup.io\"\n}, null, -1)\nconst _hoisted_16 = /*#__PURE__*/_createElementVNode(\"meta\", {\n name: \"og:type\",\n property: \"og:type\",\n content: \"article\"\n}, null, -1)\nconst _hoisted_17 = [\"content\"]\nconst _hoisted_18 = [\"content\"]\nconst _hoisted_19 = {\n key: 1,\n name: \"og:type\",\n property: \"og:type\",\n content: \"website\"\n}\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'MetaTags',\n props: {\n title: {\n type: String,\n required: true,\n },\n description: {\n type: String,\n required: true,\n },\n url: {\n type: String,\n required: true,\n },\n img1024x512: {\n type: String,\n default: 'https://www.nslookup.io/img/social-1024x512.png',\n },\n img1200x630: {\n type: String,\n default: 'https://www.nslookup.io/img/social-1200x630.png',\n },\n written: Date,\n modified: Date,\n},\n setup(__props) {\n\n\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(_Fragment, null, [\n _createElementVNode(\"title\", null, _toDisplayString(__props.title), 1),\n _createElementVNode(\"meta\", {\n name: \"description\",\n content: __props.description\n }, null, 8, _hoisted_1),\n _createElementVNode(\"meta\", {\n itemprop: \"name\",\n content: __props.title\n }, null, 8, _hoisted_2),\n _createElementVNode(\"meta\", {\n itemprop: \"description\",\n content: __props.description\n }, null, 8, _hoisted_3),\n _createElementVNode(\"link\", {\n rel: \"canonical\",\n href: __props.url\n }, null, 8, _hoisted_4),\n _hoisted_5,\n _createElementVNode(\"meta\", {\n name: \"twitter:title\",\n property: \"twitter:title\",\n content: __props.title\n }, null, 8, _hoisted_6),\n _createElementVNode(\"meta\", {\n name: \"twitter:description\",\n property: \"twitter:description\",\n content: __props.description\n }, null, 8, _hoisted_7),\n _createElementVNode(\"meta\", {\n name: \"twitter:image:src\",\n property: \"twitter:image:src\",\n content: __props.img1024x512\n }, null, 8, _hoisted_8),\n _hoisted_9,\n _hoisted_10,\n _createElementVNode(\"meta\", {\n name: \"og:title\",\n property: \"og:title\",\n content: __props.title\n }, null, 8, _hoisted_11),\n _createElementVNode(\"meta\", {\n name: \"og:description\",\n property: \"og:description\",\n content: __props.description\n }, null, 8, _hoisted_12),\n _createElementVNode(\"meta\", {\n name: \"og:image\",\n property: \"og:image\",\n content: __props.img1200x630\n }, null, 8, _hoisted_13),\n _createElementVNode(\"meta\", {\n name: \"og:url\",\n property: \"og:url\",\n content: __props.url\n }, null, 8, _hoisted_14),\n _hoisted_15,\n (__props.written)\n ? (_openBlock(), _createElementBlock(_Fragment, { key: 0 }, [\n _hoisted_16,\n _createElementVNode(\"meta\", {\n name: \"article:published_time\",\n property: \"article:published_time\",\n content: __props.written.toISOString()\n }, null, 8, _hoisted_17),\n (__props.modified)\n ? (_openBlock(), _createElementBlock(\"meta\", {\n key: 0,\n name: \"article:modified_time\",\n property: \"article:modified_time\",\n content: __props.modified.toISOString()\n }, null, 8, _hoisted_18))\n : _createCommentVNode(\"\", true)\n ], 64))\n : (_openBlock(), _createElementBlock(\"meta\", _hoisted_19))\n ], 64))\n}\n}\n\n})","import script from \"./MetaTags.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./MetaTags.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n","import { render } from \"./DnsForDevelopersAd.vue?vue&type=template&id=974a8ebe\"\nconst script = {}\n\nimport exportComponent from \"/builds/nslookupio/nslookupio/front-end/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { createVNode as _createVNode, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, renderSlot as _renderSlot, createStaticVNode as _createStaticVNode, Fragment as _Fragment } from \"vue\"\n\nconst _hoisted_1 = { class: \"flex-grow bg-white relative flex-1 pb-16\" }\nconst _hoisted_2 = { class: \"hidden overflow-hidden [overflow-anchor:none] 2xl:block 2xl:absolute 2xl:inset-y-0 2xl:h-full 2xl:w-full\" }\nconst _hoisted_3 = {\n class: \"relative h-full text-lg max-w-prose mx-auto\",\n \"aria-hidden\": \"true\"\n}\nconst _hoisted_4 = {\n key: 0,\n class: \"absolute top-12 left-full translate-x-32 transform\",\n width: \"404\",\n height: \"384\",\n fill: \"none\",\n viewBox: \"0 0 404 384\"\n}\nconst _hoisted_5 = /*#__PURE__*/_createElementVNode(\"defs\", null, [\n /*#__PURE__*/_createElementVNode(\"pattern\", {\n id: \"74b3fd99-0a6f-4271-bef2-e80eeafdf357\",\n x: \"0\",\n y: \"0\",\n width: \"20\",\n height: \"20\",\n patternUnits: \"userSpaceOnUse\"\n }, [\n /*#__PURE__*/_createElementVNode(\"rect\", {\n x: \"0\",\n y: \"0\",\n width: \"4\",\n height: \"4\",\n class: \"text-gray-200\",\n fill: \"currentColor\"\n })\n ])\n], -1)\nconst _hoisted_6 = /*#__PURE__*/_createElementVNode(\"rect\", {\n width: \"404\",\n height: \"384\",\n fill: \"url(#74b3fd99-0a6f-4271-bef2-e80eeafdf357)\"\n}, null, -1)\nconst _hoisted_7 = [\n _hoisted_5,\n _hoisted_6\n]\nconst _hoisted_8 = /*#__PURE__*/_createStaticVNode(\"\", 2)\nconst _hoisted_10 = { class: \"flex flex-col justify-between flex-1\" }\nconst _hoisted_11 = { class: \"relative flex justify-center gap-6 px-4 sm:px-6 lg:px-8\" }\nconst _hoisted_12 = { class: \"w-80 not-prose hidden 2xl:block\" }\nconst _hoisted_13 = { class: \"prose prose-indigo prose-lg text-gray-500 min-w-0 max-w-[46rem]\" }\nconst _hoisted_14 = { class: \"w-80 not-prose hidden xl:block\" }\n\nimport { PropType } from 'vue';\nimport HeaderComponent from '@/components/layout/HeaderComponent.vue';\nimport FooterComponent from '@/components/layout/FooterComponent.vue';\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'ContentPage',\n props: {\n domainSearchToUrl: {\n type: Function as PropType<(encodedDomain: string) => string>,\n default: (encodedDomain: string) => `/domains/${encodedDomain}/dns-records/`,\n },\n searchButtonText: {\n type: String,\n default: undefined,\n },\n},\n setup(__props) {\n\nconst props = __props;\n\n\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(_Fragment, null, [\n _createVNode(HeaderComponent, {\n \"domain-search-to-url\": __props.domainSearchToUrl,\n \"search-button-text\": __props.searchButtonText\n }, null, 8, [\"domain-search-to-url\", \"search-button-text\"]),\n _createElementVNode(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n (!_ctx.$slots['aside-right'])\n ? (_openBlock(), _createElementBlock(\"svg\", _hoisted_4, _hoisted_7))\n : _createCommentVNode(\"\", true),\n _hoisted_8\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_10, [\n _createElementVNode(\"div\", _hoisted_11, [\n _createElementVNode(\"aside\", _hoisted_12, [\n _renderSlot(_ctx.$slots, \"aside-left\")\n ]),\n _createElementVNode(\"main\", _hoisted_13, [\n _renderSlot(_ctx.$slots, \"content\")\n ]),\n _createElementVNode(\"aside\", _hoisted_14, [\n _renderSlot(_ctx.$slots, \"aside-right\")\n ])\n ])\n ])\n ]),\n _createVNode(FooterComponent)\n ], 64))\n}\n}\n\n})","import script from \"./ContentPage.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./ContentPage.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { createElementVNode as _createElementVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, createStaticVNode as _createStaticVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\nimport _imports_0 from '../../../public/img/logo-white.svg'\n\n\nconst _hoisted_1 = { class: \"[overflow-anchor:none] bg-gray-800 text-gray-100 px-3 sm:px-5\" }\nconst _hoisted_2 = { class: \"flex flex-wrap justify-between gap-5 max-w-6xl mx-auto px-6 py-8 sm:py-14\" }\nconst _hoisted_3 = { class: \"flex-1 min-w-full mt-1.5 w-50 shrink-0 sm:min-w-0\" }\nconst _hoisted_4 = /*#__PURE__*/_createElementVNode(\"img\", {\n src: _imports_0,\n class: \"text-gray-100 fill-current\",\n alt: \"NsLookup logo\",\n width: \"106\",\n height: \"18\"\n}, null, -1)\nconst _hoisted_5 = { class: \"block mt-1 mb-3 text-muted\" }\nconst _hoisted_6 = { class: \"list-unstyled text-small text-gray-400\" }\nconst _hoisted_7 = /*#__PURE__*/_createStaticVNode(\"
  • \", 1)\nconst _hoisted_8 = { class: \"flex-1 w-50 min-w-fit shrink-0\" }\nconst _hoisted_9 = /*#__PURE__*/_createElementVNode(\"h5\", { class: \"text-lg font-bold\" }, \"DNS tools\", -1)\nconst _hoisted_10 = { class: \"list-unstyled text-small text-gray-400\" }\nconst _hoisted_11 = { class: \"flex-1 w-50 min-w-fit shrink-0\" }\nconst _hoisted_12 = { class: \"text-lg font-bold\" }\nconst _hoisted_13 = { class: \"list-unstyled text-small text-gray-400\" }\nconst _hoisted_14 = { class: \"flex-1 w-50 min-w-fit shrink-0\" }\nconst _hoisted_15 = { class: \"text-lg font-bold\" }\nconst _hoisted_16 = { class: \"list-unstyled text-small text-gray-400\" }\nconst _hoisted_17 = /*#__PURE__*/_createElementVNode(\"li\", null, [\n /*#__PURE__*/_createElementVNode(\"a\", {\n class: \"text-muted\",\n href: \"https://status.nslookup.io\",\n rel: \"nofollow noopener noreferrer\",\n target: \"_blank\"\n }, \"Status\")\n], -1)\nconst _hoisted_18 = /*#__PURE__*/_createElementVNode(\"li\", null, [\n /*#__PURE__*/_createElementVNode(\"span\", { \"data-ccpa-link\": \"1\" })\n], -1)\n\nimport { ref } from 'vue';\nimport { insertConsentLinks } from '@/common/consent';\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'FooterComponent',\n setup(__props) {\n\nconst year = ref(new Date().getFullYear());\n\ninsertConsentLinks();\n\nreturn (_ctx: any,_cache: any) => {\n const _component_router_link = _resolveComponent(\"router-link\")!\n\n return (_openBlock(), _createElementBlock(\"footer\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createVNode(_component_router_link, { to: \"/\" }, {\n default: _withCtx(() => [\n _hoisted_4\n ]),\n _: 1\n }),\n _createElementVNode(\"span\", _hoisted_5, [\n _createElementVNode(\"ul\", _hoisted_6, [\n _createElementVNode(\"li\", null, \"© \" + _toDisplayString(year.value), 1),\n _hoisted_7\n ])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_8, [\n _hoisted_9,\n _createElementVNode(\"ul\", _hoisted_10, [\n _createElementVNode(\"li\", null, [\n _createVNode(_component_router_link, {\n class: \"text-muted\",\n to: \"/reverse-ip-lookup/\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(\"Reverse IP lookup\")\n ]),\n _: 1\n })\n ]),\n _createElementVNode(\"li\", null, [\n _createVNode(_component_router_link, {\n class: \"text-muted\",\n to: \"/dns-checker/\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(\"DNS checker\")\n ]),\n _: 1\n })\n ]),\n _createElementVNode(\"li\", null, [\n _createVNode(_component_router_link, {\n class: \"text-muted\",\n to: \"/website-to-ip-lookup/\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(\"Website to IP lookup\")\n ]),\n _: 1\n })\n ]),\n _createElementVNode(\"li\", null, [\n _createVNode(_component_router_link, {\n class: \"text-muted\",\n to: \"/cname-lookup/\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(\"CNAME lookup\")\n ]),\n _: 1\n })\n ]),\n _createElementVNode(\"li\", null, [\n _createVNode(_component_router_link, {\n class: \"text-muted\",\n to: \"/txt-lookup/\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(\"TXT lookup\")\n ]),\n _: 1\n })\n ])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_11, [\n _createElementVNode(\"h5\", _hoisted_12, [\n _createVNode(_component_router_link, { to: \"/learning/\" }, {\n default: _withCtx(() => [\n _createTextVNode(\"Learning center\")\n ]),\n _: 1\n })\n ]),\n _createElementVNode(\"ul\", _hoisted_13, [\n _createElementVNode(\"li\", null, [\n _createVNode(_component_router_link, {\n class: \"text-muted\",\n to: \"/learning/dns-record-types/\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(\"DNS record types\")\n ]),\n _: 1\n })\n ]),\n _createElementVNode(\"li\", null, [\n _createVNode(_component_router_link, {\n class: \"text-muted\",\n to: \"/install/\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(\"Browser extension\")\n ]),\n _: 1\n })\n ])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_14, [\n _createElementVNode(\"h5\", _hoisted_15, [\n _createVNode(_component_router_link, { to: \"/about/\" }, {\n default: _withCtx(() => [\n _createTextVNode(\"About\")\n ]),\n _: 1\n })\n ]),\n _createElementVNode(\"ul\", _hoisted_16, [\n _createElementVNode(\"li\", null, [\n _createVNode(_component_router_link, {\n class: \"text-muted\",\n to: \"/contact-us/\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(\"Contact\")\n ]),\n _: 1\n })\n ]),\n _createElementVNode(\"li\", null, [\n _createVNode(_component_router_link, {\n class: \"text-muted\",\n to: \"/sponsor/\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(\"Advertise\")\n ]),\n _: 1\n })\n ]),\n _createElementVNode(\"li\", null, [\n _createVNode(_component_router_link, {\n class: \"text-muted\",\n to: \"/privacy-policy/\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(\"Privacy policy\")\n ]),\n _: 1\n })\n ]),\n _createElementVNode(\"li\", null, [\n _createVNode(_component_router_link, {\n class: \"text-muted\",\n to: \"/terms-and-conditions/\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(\"Terms and conditions\")\n ]),\n _: 1\n })\n ]),\n _hoisted_17,\n _hoisted_18\n ])\n ])\n ])\n ]))\n}\n}\n\n})","import script from \"./FooterComponent.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./FooterComponent.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createElementVNode as _createElementVNode, createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createTextVNode as _createTextVNode, Fragment as _Fragment } from \"vue\"\nimport _imports_0 from '../../../public/img/logo.svg'\n\n\nconst _hoisted_1 = {\n key: 0,\n class: \"flex items-center justify-center bg-[#390261] text-white\"\n}\nconst _hoisted_2 = /*#__PURE__*/_createElementVNode(\"span\", { class: \"flex flex-1 items-center justify-center\" }, [\n /*#__PURE__*/_createElementVNode(\"a\", {\n class: \"p-2 font-medium\",\n href: \"/dns-course/\"\n }, \"DNS for Developers — Learn DNS once and for all\")\n], -1)\nconst _hoisted_3 = { class: \"flex flex-col justify-between items-center shadow-sm bg-white text-gray-800 border-b border-gray-200 sm:flex-row sm:gap-3\" }\nconst _hoisted_4 = /*#__PURE__*/_createElementVNode(\"img\", {\n src: _imports_0,\n alt: \"NsLookup logo\",\n width: \"142\",\n height: \"24\",\n class: \"inline\"\n}, null, -1)\nconst _hoisted_5 = {\n class: \"w-full max-w-lg px-3 sm:pl-0 pd:pr-0\",\n autocomplete: \"off\"\n}\nconst _hoisted_6 = { class: \"w-80 min-w-fit pr-2 whitespace-nowrap text-right hidden md:inline\" }\nconst _hoisted_7 = /*#__PURE__*/_createElementVNode(\"a\", {\n href: \"https://www.whoisfreaks.com/\",\n rel: \"noopener\",\n class: \"p-3 text-dark\"\n}, [\n /*#__PURE__*/_createElementVNode(\"span\", { class: \"hidden xl:inline\" }, \"DNS lookup\"),\n /*#__PURE__*/_createTextVNode(\" API \")\n], -1)\n\nimport { useStore } from 'vuex';\nimport { PropType, computed } from 'vue';\nimport { useRouter } from 'vue-router';\nimport DomainSearch from '@/components/DomainSearch.vue';\nimport { domainNameToUrlPath } from '@/common/domainName';\nimport { XMarkIcon } from '@heroicons/vue/24/outline';\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'HeaderComponent',\n props: {\n domain: {\n type: String,\n default: undefined,\n },\n domainSearchToUrl: {\n type: Function as PropType<(encodedDomain: string) => string>,\n default: undefined,\n },\n searchButtonText: {\n type: String,\n default: undefined,\n },\n autocompleteEnabled: {\n type: Boolean,\n default: true,\n },\n},\n setup(__props) {\n\nconst props = __props;\n\n\n\nconst router = useRouter();\n\nconst store = useStore();\nconst toggleBanner = () => store.commit('toggleBanner');\nconst showBanner = computed(() => store.state.showBanner);\n\nfunction redirectTo(newDomain: string): void {\n if (props.domainSearchToUrl) {\n router.push(props.domainSearchToUrl(newDomain));\n } else {\n // Vue acts up when setting this as a default prop\n router.push(`/domains/${domainNameToUrlPath(newDomain)}/dns-records/`);\n }\n}\n\nreturn (_ctx: any,_cache: any) => {\n const _component_router_link = _resolveComponent(\"router-link\")!\n\n return (_openBlock(), _createElementBlock(_Fragment, null, [\n (_unref(showBanner))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _hoisted_2,\n _createElementVNode(\"span\", {\n class: \"justify-self-end p-2 cursor-pointer\",\n onClick: toggleBanner\n }, [\n _createVNode(_unref(XMarkIcon), { class: \"h-5 w-5\" })\n ])\n ]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", _hoisted_3, [\n _createVNode(_component_router_link, {\n to: \"/\",\n class: \"mx-auto mt-4 min-w-fit pl-6 sm:m-0 sm:w-80\"\n }, {\n default: _withCtx(() => [\n _hoisted_4\n ]),\n _: 1\n }),\n _createElementVNode(\"form\", _hoisted_5, [\n _createVNode(DomainSearch, {\n prefill: __props.domain,\n onSubmitted: redirectTo,\n \"button-text\": __props.searchButtonText,\n \"autocomplete-enabled\": __props.autocompleteEnabled\n }, null, 8, [\"prefill\", \"button-text\", \"autocomplete-enabled\"])\n ]),\n _createElementVNode(\"nav\", _hoisted_6, [\n _createVNode(_component_router_link, {\n to: \"/learning/\",\n class: \"p-3 text-dark\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(\"Learning\")\n ]),\n _: 1\n }),\n _createVNode(_component_router_link, {\n to: \"/install/\",\n class: \"p-3 text-dark hidden lg:inline\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(\"Browser extension\")\n ]),\n _: 1\n }),\n _hoisted_7\n ])\n ])\n ], 64))\n}\n}\n\n})","import script from \"./HeaderComponent.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./HeaderComponent.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createElementVNode as _createElementVNode, renderSlot as _renderSlot, normalizeClass as _normalizeClass, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"flex\" }\nconst _hoisted_2 = { class: \"flex-shrink-0\" }\nconst _hoisted_3 = { class: \"ml-3\" }\n\nimport { PropType } from 'vue';\nimport { CheckCircleIcon, ExclamationTriangleIcon, InformationCircleIcon } from '@heroicons/vue/20/solid';\n\ntype AlertType = 'success' | 'info' | 'warning' | 'danger'\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'AlertComponent',\n props: {\n type: {\n type: String as PropType,\n default: 'warning',\n },\n hasBorder: {\n type: Boolean,\n default: false,\n },\n},\n setup(__props) {\n\n\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: _normalizeClass(['rounded-md p-4',\n __props.hasBorder ? 'border' : '',\n __props.type === 'success' ? 'border-green-200 bg-green-50 [&>a]:text-green-600 [&>a]:hover:text-green-800' : '',\n __props.type === 'info' ? 'border-blue-200 bg-blue-50 [&>a]:text-blue-600 [&>a]:hover:text-blue-800' : '',\n __props.type === 'warning' || __props.type === 'danger' ? 'border-yellow-200 bg-yellow-50 [&>a]:text-yellow-600 [&>a]:hover:text-yellow-800' : ''])\n }, [\n _createElementVNode(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n (__props.type === 'success')\n ? (_openBlock(), _createBlock(_unref(CheckCircleIcon), {\n key: 0,\n class: \"h-6 w-6 text-green-400\",\n \"aria-hidden\": \"true\"\n }))\n : (__props.type === 'info')\n ? (_openBlock(), _createBlock(_unref(InformationCircleIcon), {\n key: 1,\n class: \"h-6 w-6 text-blue-400\",\n \"aria-hidden\": \"true\"\n }))\n : (__props.type === 'warning' || __props.type === 'danger')\n ? (_openBlock(), _createBlock(_unref(ExclamationTriangleIcon), {\n key: 2,\n class: \"h-6 w-6 text-yellow-400\",\n \"aria-hidden\": \"true\"\n }))\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"p\", {\n class: _normalizeClass([__props.type === 'success' ? 'text-green-800' : '',\n __props.type === 'info' ? 'text-blue-700' : '',\n __props.type === 'warning' || __props.type === 'danger' ? 'text-yellow-700' : ''])\n }, [\n _renderSlot(_ctx.$slots, \"default\")\n ], 2)\n ])\n ])\n ], 2))\n}\n}\n\n})","import script from \"./AlertComponent.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./AlertComponent.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","// This file is CommonJS, because `vue.config.js` can't import TypeScript.\n// Use `recordTypes.ts` anywhere else.\n// TODO: Migrate to TypeScript when NsLookup.io has server-side rendering\nexports.recordTypes = [\n {\n upper: 'A',\n lower: 'a',\n cli: 'a',\n description: 'IPv4 address',\n plural: 'IPv4 addresses',\n windowsSupport: true,\n learningPage: '/learning/dns-record-types/a/',\n exampleDomains: ['google.com', 'youtube.com'],\n },\n {\n upper: 'AAAA',\n lower: 'aaaa',\n cli: 'aaaa',\n description: 'IPv6 address',\n plural: 'IPv6 addresses',\n windowsSupport: true,\n learningPage: '/learning/dns-record-types/aaaa/',\n exampleDomains: ['facebook.com', 'netflix.com'],\n },\n {\n upper: 'AFSDB',\n lower: 'afsdb',\n cli: 'afsdb',\n description: 'AFS database location',\n plural: 'AFS database locations',\n windowsSupport: true,\n learningPage: undefined,\n exampleDomains: ['microsoft.com', 'instagram.com'],\n },\n {\n upper: 'APL',\n lower: 'apl',\n cli: 'apl',\n description: 'Address prefix list',\n plural: 'address prefix lists',\n windowsSupport: false,\n learningPage: undefined,\n exampleDomains: ['twitter.com', 'baidu.com'],\n },\n {\n upper: 'AXFR',\n lower: 'axfr',\n cli: 'axfr',\n description: 'Authoritative zone transfer',\n plural: 'authoritative zone transfer records',\n windowsSupport: false,\n learningPage: undefined,\n exampleDomains: ['linkedin.com', 'apple.com'],\n },\n {\n upper: 'CAA',\n lower: 'caa',\n cli: 'caa',\n description: 'Certification authority authorization',\n plural: 'certification authority authorizations',\n windowsSupport: false,\n learningPage: undefined,\n exampleDomains: ['yahoo.com', 'bilibili.com'],\n },\n {\n upper: 'CDNSKEY',\n lower: 'cdnskey',\n cli: 'cdnskey',\n description: 'Child copy of a DNSKEY',\n plural: 'child copies of a DNSKEY records',\n windowsSupport: false,\n learningPage: undefined,\n exampleDomains: ['qq.com', 'amazon.com'],\n },\n {\n upper: 'CDS',\n lower: 'cds',\n cli: 'cds',\n description: 'Child copy of DS',\n plural: 'Child copies of DS records',\n windowsSupport: false,\n learningPage: undefined,\n exampleDomains: ['live.com', 'wordpress.org'],\n },\n {\n upper: 'CERT',\n lower: 'cert',\n cli: 'cert',\n description: 'Cryptographic certificate',\n plural: 'cryptographic certificates',\n windowsSupport: false,\n learningPage: undefined,\n exampleDomains: ['netflix.net', 'bing.com'],\n },\n {\n upper: 'CNAME',\n lower: 'cname',\n cli: 'cname',\n description: 'Canonical name',\n plural: 'canonical names',\n windowsSupport: true,\n learningPage: '/learning/dns-record-types/cname/',\n exampleDomains: ['www.github.com', 'www.reddit.com'],\n },\n {\n upper: 'CSYNC',\n lower: 'csync',\n cli: 'csync',\n description: 'Child-to-parent synchronization',\n plural: 'child-to-parent synchronization records',\n windowsSupport: false,\n learningPage: undefined,\n exampleDomains: ['pinterest.com', 'whatsapp.com'],\n },\n {\n upper: 'DHCID',\n lower: 'dhcid',\n cli: 'dhcid',\n description: 'DHCP identifier',\n plural: 'DHCP identifiers',\n windowsSupport: false,\n learningPage: undefined,\n exampleDomains: ['zhihu.com', 'vimeo.com'],\n },\n {\n upper: 'DLV',\n lower: 'dlv',\n cli: 'dlv',\n description: 'DNSSEC lookaside validation',\n plural: 'DNSSEC lookaside validations',\n windowsSupport: false,\n learningPage: undefined,\n exampleDomains: ['office.com', 'microsoftonline.com'],\n },\n {\n upper: 'DNAME',\n lower: 'dname',\n cli: 'dname',\n description: 'Delegation name',\n plural: 'delegation names',\n windowsSupport: true,\n learningPage: undefined,\n exampleDomains: ['adobe.com', 'amazonaws.com'],\n },\n {\n upper: 'DNSKEY',\n lower: 'dnskey',\n cli: 'dnskey',\n description: 'Cryptographic key for DNSSEC',\n plural: 'cryptographic keys for DNSSEC',\n windowsSupport: false,\n learningPage: undefined,\n exampleDomains: ['wordpress.com', 'zoom.us'],\n },\n {\n upper: 'DS',\n lower: 'ds',\n cli: 'ds',\n description: 'Delegation signer',\n plural: 'delegation signers',\n windowsSupport: false,\n learningPage: undefined,\n exampleDomains: ['taobao.com', 'weibo.com'],\n },\n {\n upper: 'EUI48',\n lower: 'eui48',\n cli: 'eui48',\n description: 'MAC address (EUI-48)',\n plural: 'MAC addresses (EUI-48)',\n windowsSupport: false,\n learningPage: undefined,\n exampleDomains: ['vk.com', 'csdn.net'],\n },\n {\n upper: 'EUI64',\n lower: 'eui64',\n cli: 'eui64',\n description: 'Mac address (EUI-64)',\n plural: 'Mac addresses (EUI-64)',\n windowsSupport: false,\n learningPage: undefined,\n exampleDomains: ['blogspot.com', 'sina.com.cn'],\n },\n {\n upper: 'HINFO',\n lower: 'hinfo',\n cli: 'hinfo',\n description: 'Host information',\n plural: 'host information',\n windowsSupport: true,\n learningPage: undefined,\n exampleDomains: ['mozilla.org', 'msn.com'],\n },\n {\n upper: 'HIP',\n lower: 'hip',\n cli: 'hip',\n description: 'Host identification protocol',\n plural: 'host identification protocols',\n windowsSupport: false,\n learningPage: undefined,\n exampleDomains: ['tumblr.com', 'yandex.ru'],\n },\n {\n upper: 'HTTPS',\n lower: 'https',\n cli: 'https',\n description: 'HTTPS binding',\n plural: 'HTTPS bindings',\n windowsSupport: false,\n learningPage: undefined,\n exampleDomains: ['paypal.com', 'macromedia.com'],\n },\n {\n upper: 'IPSECKEY',\n lower: 'ipseckey',\n cli: 'ipseckey',\n description: 'Cryptographic key for IPsec',\n plural: 'cryptographic keys for IPsec',\n windowsSupport: false,\n learningPage: undefined,\n exampleDomains: ['163.com', 'nytimes.com'],\n },\n {\n upper: 'IXFR',\n lower: 'ixfr',\n cli: 'ixfr',\n description: 'Incremental zone transfer',\n plural: 'incremental zone transfers',\n windowsSupport: true,\n learningPage: undefined,\n exampleDomains: ['sohu.com', 'tiktok.com'],\n },\n {\n upper: 'KEY',\n lower: 'key',\n cli: 'key',\n description: 'Cryptographic key for DNSSEC (obsoleted by DNSKEY)',\n plural: 'cryptographic keys for DNSSEC',\n windowsSupport: true,\n learningPage: undefined,\n exampleDomains: ['jd.com', 'nih.gov'],\n },\n {\n upper: 'KX',\n lower: 'kx',\n cli: 'kx',\n description: 'Key exchange',\n plural: 'key exchanges',\n windowsSupport: false,\n learningPage: undefined,\n exampleDomains: ['tmall.com', 'pornhub.com'],\n },\n {\n upper: 'LOC',\n lower: 'loc',\n cli: 'loc',\n description: 'Geographical location',\n plural: 'geographical locations',\n windowsSupport: false,\n learningPage: undefined,\n exampleDomains: ['xvideos.com', 'skype.com'],\n },\n {\n upper: 'MX',\n lower: 'mx',\n cli: 'mx',\n description: 'Mail exchange',\n plural: 'mail servers',\n windowsSupport: true,\n learningPage: '/learning/dns-record-types/mx/',\n exampleDomains: ['spotify.com', 'europa.eu'],\n },\n {\n upper: 'NAPTR',\n lower: 'naptr',\n cli: 'naptr',\n description: 'Naming authority pointer',\n plural: 'naming authority pointers',\n windowsSupport: false,\n learningPage: undefined,\n exampleDomains: ['flickr.com', 'consortiumeducation.com'],\n },\n {\n upper: 'NS',\n lower: 'ns',\n cli: 'ns',\n description: 'Name server',\n plural: 'name servers',\n windowsSupport: true,\n learningPage: '/learning/dns-record-types/ns/',\n exampleDomains: ['stackoverflow.com', 'imdb.com'],\n },\n {\n upper: 'NSEC3',\n lower: 'nsec3',\n cli: 'nsec3',\n description: 'Next secure (version 3)',\n plural: 'Next secure (version 3) records',\n windowsSupport: false,\n learningPage: undefined,\n exampleDomains: ['medium.com', 'office365.com'],\n },\n {\n upper: 'NSEC3PARAM',\n lower: 'nsec3param',\n cli: 'nsec3param',\n description: 'Parameter for NSEC3',\n plural: 'parameters for NSEC3',\n windowsSupport: false,\n learningPage: undefined,\n exampleDomains: ['canva.com', 'gravatar.com'],\n },\n {\n upper: 'NSEC',\n lower: 'nsec',\n cli: 'nsec',\n description: 'Next secure (obsoleted by NSEC3)',\n plural: 'next secure records',\n windowsSupport: false,\n learningPage: undefined,\n exampleDomains: ['cnn.com', 'twitch.tv'],\n },\n {\n upper: 'NXT',\n lower: 'nxt',\n cli: 'nxt',\n description: 'DNSSEC key (obsoleted by NSEC)',\n plural: 'DNSSEC keys',\n windowsSupport: false,\n learningPage: undefined,\n exampleDomains: ['yahoo.co.jp', 'dropbox.com'],\n },\n {\n upper: 'OPENPGPKEY',\n lower: 'openpgpkey',\n cli: 'openpgpkey',\n description: 'Public key for OpenPGP',\n plural: 'OpenPGP public keys',\n windowsSupport: false,\n learningPage: undefined,\n exampleDomains: ['soundcloud.com', 'aliexpress.com'],\n },\n {\n upper: 'OPT',\n lower: 'opt',\n cli: 'opt',\n description: 'EDNS option',\n plural: 'EDNS options',\n windowsSupport: false,\n learningPage: undefined,\n exampleDomains: ['ebay.com', 'fandom.com'],\n },\n {\n upper: 'PTR',\n lower: 'ptr',\n cli: 'ptr',\n description: 'Canonical name pointer',\n plural: 'canonical name pointers',\n windowsSupport: true,\n learningPage: '/learning/dns-record-types/ptr/',\n exampleDomains: ['1.1.1.1', '199.252.157.234'],\n },\n {\n upper: 'RP',\n lower: 'rp',\n cli: 'rp',\n description: 'Responsible person',\n plural: 'responsible people',\n windowsSupport: true,\n learningPage: undefined,\n exampleDomains: ['naver.com', 'apache.org'],\n },\n {\n upper: 'RRSIG',\n lower: 'rrsig',\n cli: 'rrsig',\n description: 'Resource record signature for DNSSEC',\n plural: 'DNSSEC resource record signatures',\n windowsSupport: false,\n learningPage: undefined,\n exampleDomains: ['cloudflare.com', 'archive.org'],\n },\n {\n upper: 'SIG',\n lower: 'sig',\n cli: 'sig',\n description: 'Resource record signature for DNSSEC (obsoleted by RRSIG)',\n plural: 'DNSSEC resource record signatures',\n windowsSupport: true,\n learningPage: undefined,\n exampleDomains: ['mail.ru', 'theguardian.com'],\n },\n {\n upper: 'SMIMEA',\n lower: 'smimea',\n cli: 'smimea',\n description: 'S/MIME association',\n plural: 'S/MIME associations',\n windowsSupport: false,\n learningPage: undefined,\n exampleDomains: ['forbes.com', 'bbc.co.uk'],\n },\n {\n upper: 'SOA',\n lower: 'soa',\n cli: 'soa',\n description: 'Start of authority',\n plural: 'start of authority records',\n windowsSupport: true,\n learningPage: '/learning/dns-record-types/soa/',\n exampleDomains: ['douban.com', 'w3.org'],\n },\n {\n upper: 'SPF',\n lower: 'spf',\n cli: 'txt',\n description: 'Sender Policy Framework',\n plural: 'SPF records',\n windowsSupport: true,\n learningPage: undefined,\n exampleDomains: ['gmail.com', 'live.com'],\n },\n {\n upper: 'SSHFP',\n lower: 'sshfp',\n cli: 'sshfp',\n description: 'Public key fingerprint for SSH',\n plural: 'SSH public key fingerprints',\n windowsSupport: false,\n learningPage: undefined,\n exampleDomains: ['quora.com', '1688.com'],\n },\n {\n upper: 'SVCB',\n lower: 'svcb',\n cli: 'svcb',\n description: 'Service binding',\n plural: 'service bindings',\n windowsSupport: false,\n learningPage: undefined,\n exampleDomains: ['aparat.com', 'github.io'],\n },\n {\n upper: 'SRV',\n lower: 'srv',\n cli: 'srv',\n description: 'Service locator',\n plural: 'service locators',\n windowsSupport: true,\n learningPage: '/learning/dns-record-types/srv/',\n exampleDomains: ['akamaiedge.net', 'sourceforge.net'],\n },\n {\n upper: 'TA',\n lower: 'ta',\n cli: 'ta',\n description: 'Trust authority for DNSSEC',\n plural: 'DNSSEC trust authorities',\n windowsSupport: false,\n learningPage: undefined,\n exampleDomains: ['digicert.com', 'etsy.com'],\n },\n {\n upper: 'TKEY',\n lower: 'tkey',\n cli: 'tkey',\n description: 'Transaction key',\n plural: 'transaction keys',\n windowsSupport: false,\n learningPage: undefined,\n exampleDomains: ['sciencedirect.com', 'google.co.in'],\n },\n {\n upper: 'TLSA',\n lower: 'tlsa',\n cli: 'tlsa',\n description: 'Certificate association for TLS',\n plural: 'TLS certificate associations',\n windowsSupport: false,\n learningPage: undefined,\n exampleDomains: ['miit.gov.cn', 'creativecommons.org'],\n },\n {\n upper: 'TSIG',\n lower: 'tsig',\n cli: 'tsig',\n description: 'Transaction signature',\n plural: 'transaction signature',\n windowsSupport: false,\n learningPage: undefined,\n exampleDomains: ['outlook.com', 'duckduckgo.com'],\n },\n {\n upper: 'TXT',\n lower: 'txt',\n cli: 'txt',\n description: 'Human-readable text',\n plural: 'text records',\n windowsSupport: true,\n learningPage: '/learning/dns-record-types/txt/',\n exampleDomains: ['researchgate.net', 'cnblogs.com'],\n },\n {\n upper: 'URI',\n lower: 'uri',\n cli: 'uri',\n description: 'Uniform resource identifier',\n plural: 'uniform resource identifiers',\n windowsSupport: false,\n learningPage: undefined,\n exampleDomains: ['weebly.com', 'indeed.com'],\n },\n {\n upper: 'ZONEMD',\n lower: 'zonemd',\n cli: 'zonemd',\n description: 'Message digest for DNS zones',\n plural: 'DNS zone message digests',\n windowsSupport: false,\n learningPage: undefined,\n exampleDomains: ['discord.com', 'reuters.com'],\n },\n];\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","var deferred = [];\n__webpack_require__.O = function(result, chunkIds, fn, priority) {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = function(chunkId) {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce(function(promises, key) {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"js/\" + \"content\" + \".\" + \"fc3d78a6\" + \".js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = function(chunkId) {\n\t// return url for filenames based on template\n\treturn undefined;\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","var inProgress = {};\nvar dataWebpackPrefix = \"frontend:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = function(url, done, key, chunkId) {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = function(prev, event) {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach(function(fn) { return fn(event); });\n\t\tif(prev) return prev(event);\n\t}\n\t;\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.p = \"/\";","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t143: 0\n};\n\n__webpack_require__.f.j = function(chunkId, promises) {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise(function(resolve, reject) { installedChunkData = installedChunks[chunkId] = [resolve, reject]; });\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = function(event) {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t} else installedChunks[chunkId] = 0;\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkfrontend\"] = self[\"webpackChunkfrontend\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [998], function() { return __webpack_require__(1056); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["askConsent","window","__cmp","insertConsentLinks","months","formatMonth","date","getMonth","formatDate","getDate","getFullYear","isNowBetween","start","end","now","Date","isDev","includes","location","host","isDevOrBetween","showRedirectPizzaAds","showClouDNSAds","showUsersearchAd","withoutTrailingDot","domainName","endsWith","slice","domainNameToUrlPath","encodeURIComponent","urlPathToDomainName","urlPath","decodeURIComponent","toLowerCase","domainNameToDisplayName","isTheSameDomain","left","right","_hoisted_1","_createElementVNode","id","_defineComponent","__name","setup","__props","nitroAds","createAd","refreshLimit","refreshTime","format","anchor","anchorPersistClose","report","enabled","mediaQuery","_ctx","_cache","_openBlock","_createBlock","_Teleport","to","__exports__","store","useStore","toggleAds","commit","computed","_unref","_createElementBlock","key","onClick","class","_createCommentVNode","errcnt","testImg","i","Image","onerror","setTimeout","onload","src","sessionStorage","getItem","setItem","xhr","XMLHttpRequest","open","send","_resolveDynamicComponent","type","script","render","_component_router_view","_resolveComponent","_Fragment","_createVNode","NitroPayAnchorAd","AdsToggle","AdBlockDetector","JfreaksRum","FullresAnalytics","recordTypes","require","recordTypeRegex","map","upper","lower","join","getRecordType","recordType","find","r","toUpperCase","props","domain","String","required","page","default","urlDomain","urlRecordType","plural","_component_router_link","title","_withCtx","_renderSlot","$slots","_createTextVNode","_toDisplayString","_","xmlns","width","height","fill","viewBox","_hoisted_2","d","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_9","_hoisted_10","_hoisted_11","_hoisted_12","_hoisted_13","_hoisted_14","_hoisted_15","_hoisted_16","_hoisted_17","icon","MediumRectangle","LargeRectangle","Leaderboard","LargeLeaderboard","Billboard","MobileBanner","breakpoints","sm","md","lg","xl","min","maxExcluding","createStore","state","showRawOutput","showAds","showBanner","adsBlocked","mutations","toggleRawOutput","toggleBanner","setAdsBlocked","setAdsNotBlocked","actions","modules","adSizes","Array","undefined","withFallback","Boolean","selected","ref","length","cycleAds","value","onMounted","renderVisibleOnly","refreshVisibleOnly","sizes","DnsForDevelopersAd","_normalizeClass","_renderList","adSize","index","config","Object","ads","definedBreakpoints","breakpoint","filter","element","ad","NitroPayAd","availableSizes","size","s","sizeClasses","href","rel","toString","split","reverse","alt","randomNumber","Math","floor","random","showClouDNS","getSizes","ClouDNSAd","ResponsiveNitroPayAd","SearchPageAdUnit","unitType","utm","DnsRecordsSidebar","DnsRecordsTxt","DnsRecordsOther","PropagationTop","PropagationMid","PropagationBottom","RecordTypeLookup","RecordTypeResults","ReverseIpLookup","ReverseIpResults","WebsiteToIpLookup","WebsiteToIpResultsTop","WebsiteToIpResultsSide","WebsiteToIpResultsBottom","autocomplete","_hoisted_18","_hoisted_19","_hoisted_20","_hoisted_21","_hoisted_22","_hoisted_23","_hoisted_24","_hoisted_25","_hoisted_26","loading","_imports_0","_hoisted_27","_hoisted_28","_hoisted_29","_hoisted_30","_hoisted_31","_hoisted_32","_hoisted_33","_hoisted_34","_hoisted_35","_imports_1","_hoisted_36","_hoisted_37","_hoisted_38","_hoisted_39","_hoisted_40","_hoisted_41","_imports_2","_hoisted_42","_hoisted_43","_hoisted_44","_hoisted_45","_hoisted_46","_hoisted_47","_createStaticVNode","_hoisted_53","routerRecordType","platforms","router","useRouter","redirectTo","push","MetaTags","description","url","HeaderComponent","encodedDomain","DomainSearch","autofocus","emphasize","buttonText","onSubmitted","DnsRecordsLink","exampleDomains","AdUnit","platform","Icon","learningPage","cli","windowsSupport","other","otherRecordType","FooterComponent","records","tabs","all","current","maxWidth","max","maxTabs","currentWidth","currentTabs","repeat","toName","record","name","toTtl","ttl","toType","query","server","ip","response","answer","raw","authority","additional","content","input","recentlyClicked","clicked","setAttribute","select","document","execCommand","blur","ref_key","_withDirectives","_vShow","seconds","Number","durationString","h","m","hs","ms","ss","chain","cname","scope","columnTitle","isDomain","canHaveMultipleRecords","processedRecords","item","RawRecords","CnameChainBadge","cnameChain","Copy","Duration","adminHostRegex","adminUserAndHost","match","admin","user","replaceAll","serial","refresh","retry","expire","minimum","style","colspan","getIp","ipv4","ipv6","ipInfo","_withModifiers","e","target","closest","nextSibling","classList","toggle","querySelector","asdomain","asname","_normalizeStyle","backgroundImage","lat","lon","org","city","regionName","country","as","qualifier","terms","encodeQualifier","sortTerms","l","toValue","t","sort","term","Directive","mechanism","All","capitalize","SpfQuantifier","Include","A","ip4cidr","ip6cidr","MX","PTR","IP4","ipStart","ipEnd","IP6","Exists","Exp","Modifier","Redirect","UnknownModifier","cidr","macroString","parsedSpf","spf","SpfRecordComponent","Alert","verificationConfig","prefix","separator","parse","strings","c","startsWith","recordWithoutPrefix","substring","verificationIdentifier","verificationCode","separatorIndex","indexOf","processed","verification","forEach","parsed","a","b","localeCompare","SpfRecords","string","parentDomain","priority","minPriority","weight","port","flags","tag","certificateUsage","selector","matchingType","certificateAssociationData","toErrorType","errorMessage","dnsServers","cloudflare","pretty","google","controldunfiltered","controldmalware","controldadstracking","controldsocial","controldfamilyfriendly","controlduncesored","authoritative","southafrica","australia","india","russia","thenetherlands","ukraine","canada","usa","brazil","error","dnsserver","emptyDnsServer","emptyQuery","emptyResponse","emptyQueryResult","emptyPopularRecords","aaaa","txt","ns","mx","soa","routerDomain","domainPunycode","showSidebar","innerWidth","cancelToken","queryResult","domainToUrl","newDomain","load","axiosSource","axios","cancel","endpoint","dnsServer","token","then","data","punycodeDomain","replace","path","unicodeDomain","catch","watch","immediate","addEventListener","ApiErrorAlert","SkeletonComponent","n","IpDnsRecords","CaaRecords","DnsRecords","TxtRecords","NsRecords","PtrRecords","MxRecords","SoaRecords","SrvRecords","TlsaRecords","prefill","groups","text","utm_content","storedGroup","localStorage","groupNumber","parseInt","group","domainSearchToUrl","Function","searchButtonText","RedirectPizzaBanner","SponsorshipBanner","ContentPage","SearchWithHiddenContentPage","routerIp","newIp","decodeURI","CopyComponent","_hoisted_48","_hoisted_49","aRecords","aaaaRecords","concat","queryResultA","queryResultAaaa","IpAddresses","img1024x512","img1200x630","get","set","SwitchGroup","Switch","modelValue","$event","_isRef","SwitchLabel","route","useRoute","display","controlDQueryTargest","localQueryTargets","Africa","Australia","Asia","Europe","otherRecordTypes","otherRecordTypeQuery","filteredOtherRecordTypes","hash","loadingOther","cancelTokenOtherRecords","otherRecords","isCurrentTab","tab","values","some","queryTargets","loadOtherRecord","console","log","message","Menu","MenuButton","ChevronDownIcon","_Transition","MenuItems","queryTarget","MenuItem","active","ArrowTopRightOnSquareIcon","Cog6ToothIcon","ToggleRawOutput","Combobox","ComboboxLabel","ComboboxInput","onChange","onFocus","ComboboxButton","ChevronUpDownIcon","ComboboxOptions","person","ComboboxOption","CheckIcon","rrEquals","responseEquals","remaining","every","findIndex","rr","splice","addResponse","variants","variant","answers","isAuthoritative","newVariants","getVariantName","fromCharCode","getVariant","globalQueryTargets","isGlobalQueryTarget","qt","knownDnsServerSuffixes","suffix","organization","displayHostingEntity","entity","toDnsOrganization","dnsServerDomainName","organizationIconSrc","flagIconSrc","square","globalQueryTargetToOrganization","regionalQueryTargetToCountry","iconSrc","iconAlt","emits","emit","newValue","recordTypeQuery","filteredRecordTypes","items","hasVariants","firstLine","iconShape","secondLine","CheckCircleIcon","debounce","cb","wait","callable","args","clearTimeout","markers","debouncedUpdateMarkers","marker","organizationList","countryList","globalResponses","Map","regionalResponses","authoritativeResponses","formattedQueryLocation","queryLocation","authoritativeServersDisagree","maxTtl","flatMap","connection","WebSocket","origin","onmessage","event","JSON","Left","Right","onopen","stringify","onclose","getGlobalResponse","getCountryResponse","getAuthoritativeResponses","sortFn","from","RecordTypePicker","AlertComponent","DurationComponent","PropagationMap","PropagationServerList","routes","component","Home","DnsChecker","ReverseIpLookupResults","WebsiteToIpLookupResults","DnsPropagation","RecordTypeLookupResults","createRouter","history","createWebHistory","process","scrollBehavior","getElementById","el","afterEach","plausible","u","search","Prism","root","createApp","App","use","mount","for","autocompleteEnabled","placeholderText","autocompleteUrlPrefix","autocompleteDomains","inputDomain","visibleInput","hasFocus","evt","fetchedPrefix","substr","result","completion","updateInput","cancelSelection","move","direction","redirectToDnsRecords","autocompleting","focus","shadow","onInput","onKeydown","_withKeys","onBlur","placeholder","autocorrect","autocapitalize","spellcheck","onMousedownCapture","autocompleteDomain","onMouseover","property","written","modified","itemprop","toISOString","x","y","patternUnits","year","XMarkIcon","hasBorder","InformationCircleIcon","ExclamationTriangleIcon","exports","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","module","__webpack_modules__","deferred","O","chunkIds","fn","notFulfilled","Infinity","fulfilled","j","keys","getter","__esModule","definition","o","defineProperty","enumerable","f","chunkId","Promise","reduce","promises","miniCssF","g","globalThis","this","obj","prop","prototype","hasOwnProperty","call","inProgress","dataWebpackPrefix","done","needAttach","scripts","getElementsByTagName","getAttribute","createElement","charset","timeout","nc","onScriptComplete","prev","doneFns","parentNode","removeChild","bind","head","appendChild","Symbol","toStringTag","p","installedChunks","installedChunkData","promise","resolve","reject","Error","loadingEnded","errorType","realSrc","request","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","chunkLoadingGlobal","self","__webpack_exports__"],"sourceRoot":""}