{"version":3,"file":"apply.js","mappings":";;AAEAA,EAAQC,WAuCR,SAASA,WAAYC,GACnB,IAAIC,EAAOC,QAAQF,GACfG,EAAWF,EAAK,GAChBG,EAAkBH,EAAK;AAC3B,OAAuC,GAA9BE,EAAWC,GAAuB,EAAKA,CAClD;AA3CAN,EAAQO,YAiDR,SAASA,YAAaL,GACpB,IAAIM,EAcAC,EAbAN,EAAOC,QAAQF,GACfG,EAAWF,EAAK,GAChBG,EAAkBH,EAAK,GAEvBO,EAAM,IAAIC,EAVhB,SAASC,YAAaV,EAAKG,EAAUC,GACnC,OAAuC,GAA9BD,EAAWC,GAAuB,EAAKA,CAClD,CAQoBM,CAAYV,EAAKG,EAAUC,IAEzCO,EAAU,EAGVC,EAAMR,EAAkB,EACxBD,EAAW,EACXA;AAGJ,IAAKI,EAAI,EAAGA,EAAIK,EAAKL,GAAK,EAAG,CAC3BD,EACGO,EAAUb,EAAIc,WAAWP,KAAO,GAChCM,EAAUb,EAAIc,WAAWP,EAAI,KAAO,GACpCM,EAAUb,EAAIc,WAAWP,EAAI,KAAO,EACrCM,EAAUb,EAAIc,WAAWP,EAAI;AAC/BC,EAAIG,KAAcL,GAAO,GAAM;AAC/BE,EAAIG,KAAcL,GAAO,EAAK;AAC9BE,EAAIG,KAAmB,IAANL,CACnB,CAEA,GAAwB,IAApBF,EAAuB,CACzBE,EACGO,EAAUb,EAAIc,WAAWP,KAAO,EAChCM,EAAUb,EAAIc,WAAWP,EAAI,KAAO;AACvCC,EAAIG,KAAmB,IAANL,CACnB,CAEA,GAAwB,IAApBF,EAAuB,CACzBE,EACGO,EAAUb,EAAIc,WAAWP,KAAO,GAChCM,EAAUb,EAAIc,WAAWP,EAAI,KAAO,EACpCM,EAAUb,EAAIc,WAAWP,EAAI,KAAO;AACvCC,EAAIG,KAAcL,GAAO,EAAK;AAC9BE,EAAIG,KAAmB,IAANL,CACnB,CAEA,OAAOE,CACT;AA5FAV,EAAQiB,cAkHR,SAASA,cAAeC,GAQtB,IAPA,IAAIV,EACAM,EAAMI,EAAMC,OACZC,EAAaN,EAAM,EACnBO,EAAQ,GACRC,EAAiB,MAGZb,EAAI,EAAGc,EAAOT,EAAMM,EAAYX,EAAIc,EAAMd,GAAKa,EACtDD,EAAMG,KAAKC,YAAYP,EAAOT,EAAIA,EAAIa,EAAkBC,EAAOA,EAAQd,EAAIa;AAI7E,GAAmB,IAAfF,EAAkB,CACpBZ,EAAMU,EAAMJ,EAAM;AAClBO,EAAMG,KACJE,EAAOlB,GAAO,GACdkB,EAAQlB,GAAO,EAAK,IACpB,KAEJ,MAAO,GAAmB,IAAfY,EAAkB,CAC3BZ,GAAOU,EAAMJ,EAAM,IAAM,GAAKI,EAAMJ,EAAM;AAC1CO,EAAMG,KACJE,EAAOlB,GAAO,IACdkB,EAAQlB,GAAO,EAAK,IACpBkB,EAAQlB,GAAO,EAAK,IACpB,IAEJ,CAEA,OAAOa,EAAMM,KAAK,GACpB;AA1IA,IALA,IAAID,EAAS,GACTX,EAAY,GACZJ,EAA4B,oBAAfiB,WAA6BA,WAAaC,MAEvDC,EAAO,mEACFrB,EAAI,EAAsBA,EAAbqB,KAAwBrB,EAAG,CAC/CiB,EAAOjB,GAAKqB,EAAKrB;AACjBM,EAAUe,EAAKd,WAAWP,IAAMA,CAClC,CAIAM,EAAU,IAAIC,WAAW,IAAM;AAC/BD,EAAU,IAAIC,WAAW,IAAM;AAE/B,SAASZ,QAASF,GAChB,IAAIY,EAAMZ,EAAIiB;AAEd,GAAIL,EAAM,EAAI,EACZ,MAAM,IAAIiB,MAAM;AAKlB,IAAI1B,EAAWH,EAAI8B,QAAQ,MACT,IAAd3B,IAAiBA,EAAWS;AAEhC,IAAIR,EAAkBD,IAAaS,EAC/B,EACA,EAAKT,EAAW;AAEpB,MAAO,CAACA,EAAUC,EACpB,CAmEA,SAASmB,YAAaP,EAAOe,EAAOC,GAGlC,IAFA,IAAI1B,EARoB2B,EASpBC,EAAS,GACJ3B,EAAIwB,EAAOxB,EAAIyB,EAAKzB,GAAK,EAAG,CACnCD,GACIU,EAAMT,IAAM,GAAM,WAClBS,EAAMT,EAAI,IAAM,EAAK,QACP,IAAfS,EAAMT,EAAI;AACb2B,EAAOZ,MAfeW,EAeM3B,EAdvBkB,EAAOS,GAAO,GAAK,IACxBT,EAAOS,GAAO,GAAK,IACnBT,EAAOS,GAAO,EAAI,IAClBT,EAAa,GAANS,IAYT,CACA,OAAOC,EAAOT,KAAK,GACrB;AC1GA,MAAMU,EAAS,EAAQ,MACjBC,EAAU,EAAQ,KAClBC,EACe,mBAAXC,QAAkD,mBAAlBA,OAAY,IAChDA,OAAY,IAAE,8BACd;AAENxC,EAAQ,GAASyC,QA0TjB,SAASC,WAAYvB,IACdA,GAAUA,IACbA,EAAS;AAEX,OAAOsB,OAAOE,OAAOxB,EACvB;AA7TAnB,EAAQ,GAAoB;AAE5B,MAAM4C,EAAe;AACAA;AAgBrBH,OAAOI,oBAUP,SAASC,oBAEP,IACE,MAAMpC,EAAM,IAAIkB,WAAW,GACrBmB,EAAQ,CAAEC,IAAK,WAAc,OAAO,EAAG;AAC7CC,OAAOC,eAAeH,EAAOnB,WAAWuB;AACxCF,OAAOC,eAAexC,EAAKqC;AAC3B,OAAqB,KAAdrC,EAAIsC,KACb,CAAE,MAAOI,GACP,OAAO,CACT,CACF,CArB6BN;AAExBL,OAAOI,qBAA0C,oBAAZQ,SACb,mBAAlBA,QAAQC,OACjBD,QAAQC,MACN;AAkBJL,OAAOM,eAAed,OAAOU,UAAW,SAAU,CAChDK,YAAY,EACZC,IAAK,WACH,GAAKhB,OAAOiB,SAASC,MACrB,OAAOA,KAAKC,MACd;AAGFX,OAAOM,eAAed,OAAOU,UAAW,SAAU,CAChDK,YAAY,EACZC,IAAK,WACH,GAAKhB,OAAOiB,SAASC,MACrB,OAAOA,KAAKE,UACd;AAGF,SAASC,aAAc3C,GACrB,GAAIA,EAASyB,EACX,MAAM,IAAImB,WAAW,cAAgB5C,EAAS;AAGhD,MAAM6C,EAAM,IAAIpC,WAAWT;AAC3B8B,OAAOC,eAAec,EAAKvB,OAAOU;AAClC,OAAOa,CACT,CAYA,SAASvB,OAAQwB,EAAKC,EAAkB/C,GAEtC,GAAmB,iBAAR8C,EAAkB,CAC3B,GAAgC,iBAArBC,EACT,MAAM,IAAIC,UACR;AAGJ,OAAOC,YAAYH,EACrB,CACA,OAAOI,KAAKJ,EAAKC,EAAkB/C,EACrC,CAEAsB,OAAO6B,SAAW;AAElB,SAASD,KAAME,EAAOL,EAAkB/C,GACtC,GAAqB,iBAAVoD,EACT,OAqHJ,SAASC,WAAYC,EAAQC,GACH,iBAAbA,GAAsC,KAAbA,IAClCA,EAAW;AAGb,IAAKjC,OAAOkC,WAAWD,GACrB,MAAM,IAAIP,UAAU,qBAAuBO;AAG7C,MAAMvD,EAAwC,EAA/BlB,WAAWwE,EAAQC;AAClC,IAAIV,EAAMF,aAAa3C;AAEvB,MAAMyD,EAASZ,EAAIa,MAAMJ,EAAQC;AAE7BE,IAAWzD,IAIb6C,EAAMA,EAAIc,MAAM,EAAGF;AAGrB,OAAOZ,CACT,CA3IWQ,CAAWD,EAAOL;AAG3B,GAAIa,YAAYC,OAAOT,GACrB,OAkJJ,SAASU,cAAeC,GACtB,GAAIC,WAAWD,EAAWtD,YAAa,CACrC,MAAMwD,EAAO,IAAIxD,WAAWsD;AAC5B,OAAOG,gBAAgBD,EAAKxB,OAAQwB,EAAKvB,WAAYuB,EAAKnF,WAC5D,CACA,OAAOqF,cAAcJ,EACvB,CAxJWD,CAAcV;AAGvB,GAAa,MAATA,EACF,MAAM,IAAIJ,UACR,yHACiDI;AAIrD,GAAIY,WAAWZ,EAAOQ,cACjBR,GAASY,WAAWZ,EAAMX,OAAQmB,aACrC,OAAOM,gBAAgBd,EAAOL,EAAkB/C;AAGlD,GAAiC,oBAAtBoE,oBACNJ,WAAWZ,EAAOgB,oBAClBhB,GAASY,WAAWZ,EAAMX,OAAQ2B,oBACrC,OAAOF,gBAAgBd,EAAOL,EAAkB/C;AAGlD,GAAqB,iBAAVoD,EACT,MAAM,IAAIJ,UACR;AAIJ,MAAMqB,EAAUjB,EAAMiB,SAAWjB,EAAMiB;AACvC,GAAe,MAAXA,GAAmBA,IAAYjB,EACjC,OAAO9B,OAAO4B,KAAKmB,EAAStB,EAAkB/C;AAGhD,MAAMsE,EAkJR,SAASC,WAAYC,GACnB,GAAIlD,OAAOiB,SAASiC,GAAM,CACxB,MAAM7E,EAA4B,EAAtB8E,QAAQD,EAAIxE,QAClB6C,EAAMF,aAAahD;AAEzB,GAAmB,IAAfkD,EAAI7C,OACN,OAAO6C;AAGT2B,EAAIP,KAAKpB,EAAK,EAAG,EAAGlD;AACpB,OAAOkD,CACT,CAEA,QAAmB6B,IAAfF,EAAIxE,OACN,MAA0B,iBAAfwE,EAAIxE,QAAuB2E,YAAYH,EAAIxE,QAC7C2C,aAAa,GAEfwB,cAAcK;AAGvB,GAAiB,WAAbA,EAAII,MAAqBlE,MAAMmE,QAAQL,EAAIM,MAC7C,OAAOX,cAAcK,EAAIM,KAE7B,CAzKYP,CAAWnB;AACrB,GAAIkB,EAAG,OAAOA;AAEd,GAAsB,oBAAXjD,QAAgD,MAAtBA,OAAO0D,aACH,mBAA9B3B,EAAM/B,OAAO0D,aACtB,OAAOzD,OAAO4B,KAAKE,EAAM/B,OAAO0D,aAAa,UAAWhC,EAAkB/C;AAG5E,MAAM,IAAIgD,UACR,yHACiDI,EAErD,CAUA9B,OAAO4B,KAAO,SAAUE,EAAOL,EAAkB/C,GAC/C,OAAOkD,KAAKE,EAAOL,EAAkB/C,EACvC;AAIA8B,OAAOC,eAAeT,OAAOU,UAAWvB,WAAWuB;AACnDF,OAAOC,eAAeT,OAAQb;AAE9B,SAASuE,WAAYC,GACnB,GAAoB,iBAATA,EACT,MAAM,IAAIjC,UAAU;AACf,GAAIiC,EAAO,EAChB,MAAM,IAAIrC,WAAW,cAAgBqC,EAAO,iCAEhD,CAsBA3D,OAAOE,MAAQ,SAAUyD,EAAMC,EAAM3B,GACnC,OArBF,SAAS/B,MAAOyD,EAAMC,EAAM3B,GAC1ByB,WAAWC;AACX,OAAIA,GAAQ,EACHtC,aAAasC,QAETP,IAATQ,EAIyB,iBAAb3B,EACVZ,aAAasC,GAAMC,KAAKA,EAAM3B,GAC9BZ,aAAasC,GAAMC,KAAKA,GAEvBvC,aAAasC,EACtB,CAOSzD,CAAMyD,EAAMC,EAAM3B,EAC3B;AAEA,SAASN,YAAagC,GACpBD,WAAWC;AACX,OAAOtC,aAAasC,EAAO,EAAI,EAAoB,EAAhBR,QAAQQ,GAC7C,CAKA3D,OAAO2B,YAAc,SAAUgC,GAC7B,OAAOhC,YAAYgC,EACrB;AAIA3D,OAAO6D,gBAAkB,SAAUF,GACjC,OAAOhC,YAAYgC,EACrB;AA0BA,SAASd,cAAeiB,GACtB,MAAMpF,EAASoF,EAAMpF,OAAS,EAAI,EAA4B,EAAxByE,QAAQW,EAAMpF,QAC9C6C,EAAMF,aAAa3C;AACzB,IAAK,IAAIV,EAAI,EAAGA,EAAIU,EAAQV,GAAK,EAC/BuD,EAAIvD,GAAgB,IAAX8F,EAAM9F;AAEjB,OAAOuD,CACT,CAUA,SAASqB,gBAAiBkB,EAAO1C,EAAY1C,GAC3C,GAAI0C,EAAa,GAAK0C,EAAMtG,WAAa4D,EACvC,MAAM,IAAIE,WAAW;AAGvB,GAAIwC,EAAMtG,WAAa4D,GAAc1C,GAAU,GAC7C,MAAM,IAAI4C,WAAW;AAGvB,IAAIC;AAEFA,OADiB6B,IAAfhC,QAAuCgC,IAAX1E,EACxB,IAAIS,WAAW2E,QACDV,IAAX1E,EACH,IAAIS,WAAW2E,EAAO1C,GAEtB,IAAIjC,WAAW2E,EAAO1C,EAAY1C;AAI1C8B,OAAOC,eAAec,EAAKvB,OAAOU;AAElC,OAAOa,CACT,CA2BA,SAAS4B,QAASzE,GAGhB,GAAIA,GAAUyB,EACZ,MAAM,IAAImB,WAAW,0DACanB,EAAa4D,SAAS,IAAM;AAEhE,OAAgB,EAATrF,CACT,CASAsB,OAAOiB,SAAW,SAASA,SAAU+B,GACnC,OAAY,MAALA,IAA6B,IAAhBA,EAAEgB,WACpBhB,IAAMhD,OAAOU,SACjB;AAEAV,OAAOiE,QAAU,SAASA,QAASC,EAAGlB,GAChCN,WAAWwB,EAAG/E,cAAa+E,EAAIlE,OAAO4B,KAAKsC,EAAGA,EAAEC,OAAQD,EAAE1G;AAC1DkF,WAAWM,EAAG7D,cAAa6D,EAAIhD,OAAO4B,KAAKoB,EAAGA,EAAEmB,OAAQnB,EAAExF;AAC9D,IAAKwC,OAAOiB,SAASiD,KAAOlE,OAAOiB,SAAS+B,GAC1C,MAAM,IAAItB,UACR;AAIJ,GAAIwC,IAAMlB,EAAG,OAAO;AAEpB,IAAIoB,EAAIF,EAAExF,OACN2F,EAAIrB,EAAEtE;AAEV,IAAK,IAAIV,EAAI,EAAGK,EAAMiG,KAAKC,IAAIH,EAAGC,GAAIrG,EAAIK,IAAOL,EAC/C,GAAIkG,EAAElG,KAAOgF,EAAEhF,GAAI,CACjBoG,EAAIF,EAAElG;AACNqG,EAAIrB,EAAEhF;AACN,KACF,CAGF,OAAIoG,EAAIC,GAAW,EACfA,EAAID,EAAU,EACX,CACT;AAEApE,OAAOkC,WAAa,SAASA,WAAYD,GACvC,OAAQuC,OAAOvC,GAAUwC,eACvB,IAAK,MACL,IAAK,OACL,IAAK,QACL,IAAK,QACL,IAAK,SACL,IAAK,SACL,IAAK,SACL,IAAK,OACL,IAAK,QACL,IAAK,UACL,IAAK,WACH,OAAO;AACT,QACE,OAAO,EAEb;AAEAzE,OAAO0E,OAAS,SAASA,OAAQC,EAAMjG,GACrC,IAAKU,MAAMmE,QAAQoB,GACjB,MAAM,IAAIjD,UAAU;AAGtB,GAAoB,IAAhBiD,EAAKjG,OACP,OAAOsB,OAAOE,MAAM;AAGtB,IAAIlC;AACJ,QAAeoF,IAAX1E,EAAsB,CACxBA,EAAS;AACT,IAAKV,EAAI,EAAGA,EAAI2G,EAAKjG,SAAUV,EAC7BU,GAAUiG,EAAK3G,GAAGU,MAEtB,CAEA,MAAMyC,EAASnB,OAAO2B,YAAYjD;AAClC,IAAIkG,EAAM;AACV,IAAK5G,EAAI,EAAGA,EAAI2G,EAAKjG,SAAUV,EAAG,CAChC,IAAIuD,EAAMoD,EAAK3G;AACf,GAAI0E,WAAWnB,EAAKpC,YAClB,GAAIyF,EAAMrD,EAAI7C,OAASyC,EAAOzC,OAAQ,CAC/BsB,OAAOiB,SAASM,KAAMA,EAAMvB,OAAO4B,KAAKL;AAC7CA,EAAIoB,KAAKxB,EAAQyD,EACnB,MACEzF,WAAWuB,UAAUmE,IAAIC,KACvB3D,EACAI,EACAqD;IAGC,KAAK5E,OAAOiB,SAASM,GAC1B,MAAM,IAAIG,UAAU;AAEpBH,EAAIoB,KAAKxB,EAAQyD,EACnB,CACAA,GAAOrD,EAAI7C,MACb,CACA,OAAOyC,CACT;AAEA,SAAS3D,WAAYwE,EAAQC,GAC3B,GAAIjC,OAAOiB,SAASe,GAClB,OAAOA,EAAOtD;AAEhB,GAAI4D,YAAYC,OAAOP,IAAWU,WAAWV,EAAQM,aACnD,OAAON,EAAOxE;AAEhB,GAAsB,iBAAXwE,EACT,MAAM,IAAIN,UACR,kGAC0BM;AAI9B,MAAM3D,EAAM2D,EAAOtD,OACbqG,EAAaC,UAAUtG,OAAS,IAAsB,IAAjBsG,UAAU;AACrD,IAAKD,GAAqB,IAAR1G,EAAW,OAAO;AAGpC,IAAI4G,GAAc;AAClB,OACE,OAAQhD,GACN,IAAK,QACL,IAAK,SACL,IAAK,SACH,OAAO5D;AACT,IAAK,OACL,IAAK,QACH,OAAO6G,YAAYlD,GAAQtD;AAC7B,IAAK,OACL,IAAK,QACL,IAAK,UACL,IAAK,WACH,OAAa,EAANL;AACT,IAAK,MACH,OAAOA,IAAQ;AACjB,IAAK,SACH,OAAO8G,cAAcnD,GAAQtD;AAC/B,QACE,GAAIuG,EACF,OAAOF,GAAa,EAAIG,YAAYlD,GAAQtD;AAE9CuD,GAAY,GAAKA,GAAUwC;AAC3BQ,GAAc,EAGtB,CACAjF,OAAOxC,WAAaA;AAEpB,SAAS4H,aAAcnD,EAAUzC,EAAOC,GACtC,IAAIwF,GAAc,QASJ7B,IAAV5D,GAAuBA,EAAQ,KACjCA,EAAQ;AAIV,GAAIA,EAAQ0B,KAAKxC,OACf,MAAO,SAGG0E,IAAR3D,GAAqBA,EAAMyB,KAAKxC,UAClCe,EAAMyB,KAAKxC;AAGb,GAAIe,GAAO,EACT,MAAO;AAITA,KAAS;AACTD,KAAW;AAEX,GAAIC,GAAOD,EACT,MAAO;AAGJyC,IAAUA,EAAW;AAE1B,OACE,OAAQA,GACN,IAAK,MACH,OAAOoD,SAASnE,KAAM1B,EAAOC;AAE/B,IAAK,OACL,IAAK,QACH,OAAO6F,UAAUpE,KAAM1B,EAAOC;AAEhC,IAAK,QACH,OAAO8F,WAAWrE,KAAM1B,EAAOC;AAEjC,IAAK,SACL,IAAK,SACH,OAAO+F,YAAYtE,KAAM1B,EAAOC;AAElC,IAAK,SACH,OAAOgG,YAAYvE,KAAM1B,EAAOC;AAElC,IAAK,OACL,IAAK,QACL,IAAK,UACL,IAAK,WACH,OAAOiG,aAAaxE,KAAM1B,EAAOC;AAEnC,QACE,GAAIwF,EAAa,MAAM,IAAIvD,UAAU,qBAAuBO;AAC5DA,GAAYA,EAAW,IAAIwC;AAC3BQ,GAAc,EAGtB,CAQAjF,OAAOU,UAAUsD,WAAY;AAE7B,SAAS2B,KAAM3C,EAAG4C,EAAGC,GACnB,MAAM7H,EAAIgF,EAAE4C;AACZ5C,EAAE4C,GAAK5C,EAAE6C;AACT7C,EAAE6C,GAAK7H,CACT,CAEAgC,OAAOU,UAAUoF,OAAS,SAASA,SACjC,MAAMzH,EAAM6C,KAAKxC;AACjB,GAAIL,EAAM,GAAM,EACd,MAAM,IAAIiD,WAAW;AAEvB,IAAK,IAAItD,EAAI,EAAGA,EAAIK,EAAKL,GAAK,EAC5B2H,KAAKzE,KAAMlD,EAAGA,EAAI;AAEpB,OAAOkD,IACT;AAEAlB,OAAOU,UAAUqF,OAAS,SAASA,SACjC,MAAM1H,EAAM6C,KAAKxC;AACjB,GAAIL,EAAM,GAAM,EACd,MAAM,IAAIiD,WAAW;AAEvB,IAAK,IAAItD,EAAI,EAAGA,EAAIK,EAAKL,GAAK,EAAG,CAC/B2H,KAAKzE,KAAMlD,EAAGA,EAAI;AAClB2H,KAAKzE,KAAMlD,EAAI,EAAGA,EAAI,EACxB,CACA,OAAOkD,IACT;AAEAlB,OAAOU,UAAUsF,OAAS,SAASA,SACjC,MAAM3H,EAAM6C,KAAKxC;AACjB,GAAIL,EAAM,GAAM,EACd,MAAM,IAAIiD,WAAW;AAEvB,IAAK,IAAItD,EAAI,EAAGA,EAAIK,EAAKL,GAAK,EAAG,CAC/B2H,KAAKzE,KAAMlD,EAAGA,EAAI;AAClB2H,KAAKzE,KAAMlD,EAAI,EAAGA,EAAI;AACtB2H,KAAKzE,KAAMlD,EAAI,EAAGA,EAAI;AACtB2H,KAAKzE,KAAMlD,EAAI,EAAGA,EAAI,EACxB,CACA,OAAOkD,IACT;AAEAlB,OAAOU,UAAUqD,SAAW,SAASA,WACnC,MAAMrF,EAASwC,KAAKxC;AACpB,OAAe,IAAXA,EAAqB,GACA,IAArBsG,UAAUtG,OAAqB4G,UAAUpE,KAAM,EAAGxC,GAC/C0G,aAAaa,MAAM/E,KAAM8D,UAClC;AAEAhF,OAAOU,UAAUwF,eAAiBlG,OAAOU,UAAUqD;AAEnD/D,OAAOU,UAAUyF,OAAS,SAASA,OAAQnD,GACzC,IAAKhD,OAAOiB,SAAS+B,GAAI,MAAM,IAAItB,UAAU;AAC7C,OAAIR,OAAS8B,GACsB,IAA5BhD,OAAOiE,QAAQ/C,KAAM8B,EAC9B;AAEAhD,OAAOU,UAAU0F,QAAU,SAASA,UAClC,IAAIC,EAAM;AACV,MAAMC,EAAM/I,EAAQ;AACpB8I,EAAMnF,KAAK6C,SAAS,MAAO,EAAGuC,GAAKC,QAAQ,UAAW,OAAOC;AACzDtF,KAAKxC,OAAS4H,IAAKD,GAAO;AAC9B,MAAO,WAAaA,EAAM,GAC5B;AACIvG,IACFE,OAAOU,UAAUZ,GAAuBE,OAAOU,UAAU0F;AAG3DpG,OAAOU,UAAUuD,QAAU,SAASA,QAASwC,EAAQjH,EAAOC,EAAKiH,EAAWC,GACtEjE,WAAW+D,EAAQtH,cACrBsH,EAASzG,OAAO4B,KAAK6E,EAAQA,EAAOtC,OAAQsC,EAAOjJ;AAErD,IAAKwC,OAAOiB,SAASwF,GACnB,MAAM,IAAI/E,UACR,wFAC2B+E;KAIjBrD,IAAV5D,IACFA,EAAQ;KAEE4D,IAAR3D,IACFA,EAAMgH,EAASA,EAAO/H,OAAS;KAEf0E,IAAdsD,IACFA,EAAY;KAEEtD,IAAZuD,IACFA,EAAUzF,KAAKxC;AAGjB,GAAIc,EAAQ,GAAKC,EAAMgH,EAAO/H,QAAUgI,EAAY,GAAKC,EAAUzF,KAAKxC,OACtE,MAAM,IAAI4C,WAAW;AAGvB,GAAIoF,GAAaC,GAAWnH,GAASC,EACnC,OAAO;AAET,GAAIiH,GAAaC,EACf,OAAQ;AAEV,GAAInH,GAASC,EACX,OAAO;AAGTD,KAAW;AACXC,KAAS;AACTiH,KAAe;AACfC,KAAa;AAEb,GAAIzF,OAASuF,EAAQ,OAAO;AAE5B,IAAIrC,EAAIuC,EAAUD,EACdrC,EAAI5E,EAAMD;AACd,MAAMnB,EAAMiG,KAAKC,IAAIH,EAAGC,GAElBuC,EAAW1F,KAAKmB,MAAMqE,EAAWC,GACjCE,EAAaJ,EAAOpE,MAAM7C,EAAOC;AAEvC,IAAK,IAAIzB,EAAI,EAAGA,EAAIK,IAAOL,EACzB,GAAI4I,EAAS5I,KAAO6I,EAAW7I,GAAI,CACjCoG,EAAIwC,EAAS5I;AACbqG,EAAIwC,EAAW7I;AACf,KACF,CAGF,OAAIoG,EAAIC,GAAW,EACfA,EAAID,EAAU,EACX,CACT;AAWA,SAAS0C,qBAAsB3F,EAAQ4F,EAAK3F,EAAYa,EAAU+E,GAEhE,GAAsB,IAAlB7F,EAAOzC,OAAc,OAAQ;AAGjC,GAA0B,iBAAf0C,EAAyB,CAClCa,EAAWb;AACXA,EAAa,CACf,MAAWA,EAAa,WACtBA,EAAa,WACJA,GAAc,aACvBA,GAAc;AAEhBA,GAAcA;AACViC,YAAYjC,KAEdA,EAAa4F,EAAM,EAAK7F,EAAOzC,OAAS;AAItC0C,EAAa,IAAGA,EAAaD,EAAOzC,OAAS0C;AACjD,GAAIA,GAAcD,EAAOzC,OAAQ,CAC/B,GAAIsI,EAAK,OAAQ;AACZ5F,EAAaD,EAAOzC,OAAS,CACpC,MAAO,GAAI0C,EAAa,EAAG,CACzB,IAAI4F,EACC,OAAQ;AADJ5F,EAAa,CAExB,CAGmB,iBAAR2F,IACTA,EAAM/G,OAAO4B,KAAKmF,EAAK9E;AAIzB,GAAIjC,OAAOiB,SAAS8F,GAElB,OAAmB,IAAfA,EAAIrI,QACE,EAEHuI,aAAa9F,EAAQ4F,EAAK3F,EAAYa,EAAU+E;AAClD,GAAmB,iBAARD,EAAkB,CAClCA,GAAY;AACZ,MAA4C,mBAAjC5H,WAAWuB,UAAUnB,QAC1ByH,EACK7H,WAAWuB,UAAUnB,QAAQuF,KAAK3D,EAAQ4F,EAAK3F,GAE/CjC,WAAWuB,UAAUwG,YAAYpC,KAAK3D,EAAQ4F,EAAK3F,GAGvD6F,aAAa9F,EAAQ,CAAC4F,GAAM3F,EAAYa,EAAU+E,EAC3D,CAEA,MAAM,IAAItF,UAAU,uCACtB,CAEA,SAASuF,aAAchJ,EAAK8I,EAAK3F,EAAYa,EAAU+E,GACrD,IA0BIhJ,EA1BAmJ,EAAY,EACZC,EAAYnJ,EAAIS,OAChB2I,EAAYN,EAAIrI;AAEpB,QAAiB0E,IAAbnB,EAAwB,CAC1BA,EAAWuC,OAAOvC,GAAUwC;AAC5B,GAAiB,SAAbxC,GAAoC,UAAbA,GACV,YAAbA,GAAuC,aAAbA,EAAyB,CACrD,GAAIhE,EAAIS,OAAS,GAAKqI,EAAIrI,OAAS,EACjC,OAAQ;AAEVyI,EAAY;AACZC,GAAa;AACbC,GAAa;AACbjG,GAAc,CAChB,CACF,CAEA,SAASkG,KAAM/F,EAAKvD,GAClB,OAAkB,IAAdmJ,EACK5F,EAAIvD,GAEJuD,EAAIgG,aAAavJ,EAAImJ,EAEhC,CAGA,GAAIH,EAAK,CACP,IAAIQ,GAAc;AAClB,IAAKxJ,EAAIoD,EAAYpD,EAAIoJ,EAAWpJ,IAClC,GAAIsJ,KAAKrJ,EAAKD,KAAOsJ,KAAKP,GAAqB,IAAhBS,EAAoB,EAAIxJ,EAAIwJ,GAAa,EAClD,IAAhBA,IAAmBA,EAAaxJ;AACpC,GAAIA,EAAIwJ,EAAa,IAAMH,EAAW,OAAOG,EAAaL,CAC5D,KAAO,EACe,IAAhBK,IAAmBxJ,GAAKA,EAAIwJ;AAChCA,GAAc,CAChB,CAEJ,KAAO,CACDpG,EAAaiG,EAAYD,IAAWhG,EAAagG,EAAYC;AACjE,IAAKrJ,EAAIoD,EAAYpD,GAAK,EAAGA,IAAK,CAChC,IAAIyJ,GAAQ;AACZ,IAAK,IAAIC,EAAI,EAAGA,EAAIL,EAAWK,IAC7B,GAAIJ,KAAKrJ,EAAKD,EAAI0J,KAAOJ,KAAKP,EAAKW,GAAI,CACrCD,GAAQ;AACR,KACF,CAEF,GAAIA,EAAO,OAAOzJ,CACpB,CACF,CAEA,OAAQ,CACV,CAEAgC,OAAOU,UAAUiH,SAAW,SAASA,SAAUZ,EAAK3F,EAAYa,GAC9D,OAAoD,IAA7Cf,KAAK3B,QAAQwH,EAAK3F,EAAYa,EACvC;AAEAjC,OAAOU,UAAUnB,QAAU,SAASA,QAASwH,EAAK3F,EAAYa,GAC5D,OAAO6E,qBAAqB5F,KAAM6F,EAAK3F,EAAYa,GAAU,EAC/D;AAEAjC,OAAOU,UAAUwG,YAAc,SAASA,YAAaH,EAAK3F,EAAYa,GACpE,OAAO6E,qBAAqB5F,KAAM6F,EAAK3F,EAAYa,GAAU,EAC/D;AAEA,SAAS2F,SAAUrG,EAAKS,EAAQmC,EAAQzF,GACtCyF,EAAS0D,OAAO1D,IAAW;AAC3B,MAAM2D,EAAYvG,EAAI7C,OAASyF;AAC/B,GAAKzF,EAEE,CACLA,EAASmJ,OAAOnJ;AACZA,EAASoJ,IACXpJ,EAASoJ,EAEb,MANEpJ,EAASoJ;AAQX,MAAMC,EAAS/F,EAAOtD;AAElBA,EAASqJ,EAAS,IACpBrJ,EAASqJ,EAAS;AAEpB,IAAI/J;AACJ,IAAKA,EAAI,EAAGA,EAAIU,IAAUV,EAAG,CAC3B,MAAMgK,EAASC,SAASjG,EAAOkG,OAAW,EAAJlK,EAAO,GAAI;AACjD,GAAIqF,YAAY2E,GAAS,OAAOhK;AAChCuD,EAAI4C,EAASnG,GAAKgK,CACpB,CACA,OAAOhK,CACT,CAEA,SAASmK,UAAW5G,EAAKS,EAAQmC,EAAQzF,GACvC,OAAO0J,WAAWlD,YAAYlD,EAAQT,EAAI7C,OAASyF,GAAS5C,EAAK4C,EAAQzF,EAC3E,CAEA,SAAS2J,WAAY9G,EAAKS,EAAQmC,EAAQzF,GACxC,OAAO0J,WAypCT,SAASE,aAAcjC,GACrB,MAAMkC,EAAY;AAClB,IAAK,IAAIvK,EAAI,EAAGA,EAAIqI,EAAI3H,SAAUV,EAEhCuK,EAAUxJ,KAAyB,IAApBsH,EAAI9H,WAAWP;AAEhC,OAAOuK,CACT,CAhqCoBD,CAAatG,GAAST,EAAK4C,EAAQzF,EACvD,CAEA,SAAS8J,YAAajH,EAAKS,EAAQmC,EAAQzF,GACzC,OAAO0J,WAAWjD,cAAcnD,GAAST,EAAK4C,EAAQzF,EACxD,CAEA,SAAS+J,UAAWlH,EAAKS,EAAQmC,EAAQzF,GACvC,OAAO0J,WA0pCT,SAASM,eAAgBrC,EAAKsC,GAC5B,IAAIC,EAAGC,EAAIC;AACX,MAAMP,EAAY;AAClB,IAAK,IAAIvK,EAAI,EAAGA,EAAIqI,EAAI3H,WACjBiK,GAAS,GAAK,KADa3K,EAAG,CAGnC4K,EAAIvC,EAAI9H,WAAWP;AACnB6K,EAAKD,GAAK;AACVE,EAAKF,EAAI;AACTL,EAAUxJ,KAAK+J;AACfP,EAAUxJ,KAAK8J,EACjB,CAEA,OAAON,CACT,CAxqCoBG,CAAe1G,EAAQT,EAAI7C,OAASyF,GAAS5C,EAAK4C,EAAQzF,EAC9E,CAEAsB,OAAOU,UAAU0B,MAAQ,SAASA,MAAOJ,EAAQmC,EAAQzF,EAAQuD,GAE/D,QAAemB,IAAXe,EAAsB,CACxBlC,EAAW;AACXvD,EAASwC,KAAKxC;AACdyF,EAAS,CAEX,MAAO,QAAef,IAAX1E,GAA0C,iBAAXyF,EAAqB,CAC7DlC,EAAWkC;AACXzF,EAASwC,KAAKxC;AACdyF,EAAS,CAEX,KAAO,KAAI4E,SAAS5E,GAUlB,MAAM,IAAI7E,MACR;AAVF6E,KAAoB;AACpB,GAAI4E,SAASrK,GAAS,CACpBA,KAAoB;KACH0E,IAAbnB,IAAwBA,EAAW,OACzC,KAAO,CACLA,EAAWvD;AACXA,OAAS0E,CACX,CAKF,CAEA,MAAM0E,EAAY5G,KAAKxC,OAASyF,QACjBf,IAAX1E,GAAwBA,EAASoJ,KAAWpJ,EAASoJ;AAEzD,GAAK9F,EAAOtD,OAAS,IAAMA,EAAS,GAAKyF,EAAS,IAAOA,EAASjD,KAAKxC,OACrE,MAAM,IAAI4C,WAAW;AAGlBW,IAAUA,EAAW;AAE1B,IAAIgD,GAAc;AAClB,OACE,OAAQhD,GACN,IAAK,MACH,OAAO2F,SAAS1G,KAAMc,EAAQmC,EAAQzF;AAExC,IAAK,OACL,IAAK,QACH,OAAOyJ,UAAUjH,KAAMc,EAAQmC,EAAQzF;AAEzC,IAAK,QACL,IAAK,SACL,IAAK,SACH,OAAO2J,WAAWnH,KAAMc,EAAQmC,EAAQzF;AAE1C,IAAK,SAEH,OAAO8J,YAAYtH,KAAMc,EAAQmC,EAAQzF;AAE3C,IAAK,OACL,IAAK,QACL,IAAK,UACL,IAAK,WACH,OAAO+J,UAAUvH,KAAMc,EAAQmC,EAAQzF;AAEzC,QACE,GAAIuG,EAAa,MAAM,IAAIvD,UAAU,qBAAuBO;AAC5DA,GAAY,GAAKA,GAAUwC;AAC3BQ,GAAc,EAGtB;AAEAjF,OAAOU,UAAUsI,OAAS,SAASA,SACjC,MAAO,CACL1F,KAAM,SACNE,KAAMpE,MAAMsB,UAAU2B,MAAMyC,KAAK5D,KAAK+H,MAAQ/H,KAAM,GAExD;AAEA,SAASuE,YAAalE,EAAK/B,EAAOC,GAChC,OAAc,IAAVD,GAAeC,IAAQ8B,EAAI7C,OACtBkB,EAAOpB,cAAc+C,GAErB3B,EAAOpB,cAAc+C,EAAIc,MAAM7C,EAAOC,GAEjD,CAEA,SAAS6F,UAAW/D,EAAK/B,EAAOC,GAC9BA,EAAM6E,KAAKC,IAAIhD,EAAI7C,OAAQe;AAC3B,MAAMyJ,EAAM;AAEZ,IAAIlL,EAAIwB;AACR,KAAOxB,EAAIyB,GAAK,CACd,MAAM0J,EAAY5H,EAAIvD;AACtB,IAAIoL,EAAY,KACZC,EAAoBF,EAAY,IAChC,EACCA,EAAY,IACT,EACCA,EAAY,IACT,EACA;AAEZ,GAAInL,EAAIqL,GAAoB5J,EAAK,CAC/B,IAAI6J,EAAYC,EAAWC,EAAYC;AAEvC,OAAQJ,GACN,KAAK,EACCF,EAAY,MACdC,EAAYD;AAEd;AACF,KAAK,EACHG,EAAa/H,EAAIvD,EAAI;AACrB,GAA4B,MAAV,IAAbsL,GAA6B,CAChCG,GAA6B,GAAZN,IAAqB,EAAoB,GAAbG;AACzCG,EAAgB,MAClBL,EAAYK,EAEhB,CACA;AACF,KAAK,EACHH,EAAa/H,EAAIvD,EAAI;AACrBuL,EAAYhI,EAAIvD,EAAI;AACpB,GAA4B,MAAV,IAAbsL,IAAsD,MAAV,IAAZC,GAA4B,CAC/DE,GAA6B,GAAZN,IAAoB,IAAoB,GAAbG,IAAsB,EAAmB,GAAZC;AACrEE,EAAgB,OAAUA,EAAgB,OAAUA,EAAgB,SACtEL,EAAYK,EAEhB,CACA;AACF,KAAK,EACHH,EAAa/H,EAAIvD,EAAI;AACrBuL,EAAYhI,EAAIvD,EAAI;AACpBwL,EAAajI,EAAIvD,EAAI;AACrB,GAA4B,MAAV,IAAbsL,IAAsD,MAAV,IAAZC,IAAsD,MAAV,IAAbC,GAA6B,CAC/FC,GAA6B,GAAZN,IAAoB,IAAqB,GAAbG,IAAsB,IAAmB,GAAZC,IAAqB,EAAoB,GAAbC;AAClGC,EAAgB,OAAUA,EAAgB,UAC5CL,EAAYK,EAEhB,EAEN,CAEA,GAAkB,OAAdL,EAAoB,CAGtBA,EAAY;AACZC,EAAmB,CACrB,MAAO,GAAID,EAAY,MAAQ,CAE7BA,GAAa;AACbF,EAAInK,KAAKqK,IAAc,GAAK,KAAQ;AACpCA,EAAY,MAAqB,KAAZA,CACvB,CAEAF,EAAInK,KAAKqK;AACTpL,GAAKqL,CACP,CAEA,OAQF,SAASK,sBAAuBC,GAC9B,MAAMtL,EAAMsL,EAAWjL;AACvB,GAAIL,GAAOuL,EACT,OAAOpF,OAAOqF,aAAa5D,MAAMzB,OAAQmF;AAI3C,IAAIT,EAAM,GACNlL,EAAI;AACR,KAAOA,EAAIK,GACT6K,GAAO1E,OAAOqF,aAAa5D,MACzBzB,OACAmF,EAAWtH,MAAMrE,EAAGA,GAAK4L;AAG7B,OAAOV,CACT,CAxBSQ,CAAsBR,EAC/B,CAKA,MAAMU,EAAuB;AAoB7B,SAASrE,WAAYhE,EAAK/B,EAAOC,GAC/B,IAAIqK,EAAM;AACVrK,EAAM6E,KAAKC,IAAIhD,EAAI7C,OAAQe;AAE3B,IAAK,IAAIzB,EAAIwB,EAAOxB,EAAIyB,IAAOzB,EAC7B8L,GAAOtF,OAAOqF,aAAsB,IAATtI,EAAIvD;AAEjC,OAAO8L,CACT,CAEA,SAAStE,YAAajE,EAAK/B,EAAOC,GAChC,IAAIqK,EAAM;AACVrK,EAAM6E,KAAKC,IAAIhD,EAAI7C,OAAQe;AAE3B,IAAK,IAAIzB,EAAIwB,EAAOxB,EAAIyB,IAAOzB,EAC7B8L,GAAOtF,OAAOqF,aAAatI,EAAIvD;AAEjC,OAAO8L,CACT,CAEA,SAASzE,SAAU9D,EAAK/B,EAAOC,GAC7B,MAAMpB,EAAMkD,EAAI7C,SAEXc,GAASA,EAAQ,KAAGA,EAAQ,KAC5BC,GAAOA,EAAM,GAAKA,EAAMpB,KAAKoB,EAAMpB;AAExC,IAAI0L,EAAM;AACV,IAAK,IAAI/L,EAAIwB,EAAOxB,EAAIyB,IAAOzB,EAC7B+L,GAAOC,EAAoBzI,EAAIvD;AAEjC,OAAO+L,CACT,CAEA,SAASrE,aAAcnE,EAAK/B,EAAOC,GACjC,MAAMwK,EAAQ1I,EAAIc,MAAM7C,EAAOC;AAC/B,IAAIyJ,EAAM;AAEV,IAAK,IAAIlL,EAAI,EAAGA,EAAIiM,EAAMvL,OAAS,EAAGV,GAAK,EACzCkL,GAAO1E,OAAOqF,aAAaI,EAAMjM,GAAqB,IAAfiM,EAAMjM,EAAI;AAEnD,OAAOkL,CACT,CAEAlJ,OAAOU,UAAU2B,MAAQ,SAASA,MAAO7C,EAAOC,GAC9C,MAAMpB,EAAM6C,KAAKxC;AACjBc,IAAUA;AACVC,OAAc2D,IAAR3D,EAAoBpB,IAAQoB;AAElC,GAAID,EAAQ,EAAG,CACbA,GAASnB;AACLmB,EAAQ,IAAGA,EAAQ,EACzB,MAAWA,EAAQnB,IACjBmB,EAAQnB;AAGV,GAAIoB,EAAM,EAAG,CACXA,GAAOpB;AACHoB,EAAM,IAAGA,EAAM,EACrB,MAAWA,EAAMpB,IACfoB,EAAMpB;AAGJoB,EAAMD,IAAOC,EAAMD;AAEvB,MAAM0K,EAAShJ,KAAKiJ,SAAS3K,EAAOC;AAEpCe,OAAOC,eAAeyJ,EAAQlK,OAAOU;AAErC,OAAOwJ,CACT;AAKA,SAASE,YAAajG,EAAQkG,EAAK3L,GACjC,GAAKyF,EAAS,GAAO,GAAKA,EAAS,EAAG,MAAM,IAAI7C,WAAW;AAC3D,GAAI6C,EAASkG,EAAM3L,EAAQ,MAAM,IAAI4C,WAAW,wCAClD,CAEAtB,OAAOU,UAAU4J,WACjBtK,OAAOU,UAAU6J,WAAa,SAASA,WAAYpG,EAAQ3G,EAAYgN,GACrErG,KAAoB;AACpB3G,KAA4B;AACvBgN,GAAUJ,YAAYjG,EAAQ3G,EAAY0D,KAAKxC;AAEpD,IAAIqI,EAAM7F,KAAKiD,GACXsG,EAAM,EACNzM,EAAI;AACR,OAASA,EAAIR,IAAeiN,GAAO,MACjC1D,GAAO7F,KAAKiD,EAASnG,GAAKyM;AAG5B,OAAO1D,CACT;AAEA/G,OAAOU,UAAUgK,WACjB1K,OAAOU,UAAUiK,WAAa,SAASA,WAAYxG,EAAQ3G,EAAYgN,GACrErG,KAAoB;AACpB3G,KAA4B;AACvBgN,GACHJ,YAAYjG,EAAQ3G,EAAY0D,KAAKxC;AAGvC,IAAIqI,EAAM7F,KAAKiD,IAAW3G,GACtBiN,EAAM;AACV,KAAOjN,EAAa,IAAMiN,GAAO,MAC/B1D,GAAO7F,KAAKiD,IAAW3G,GAAciN;AAGvC,OAAO1D,CACT;AAEA/G,OAAOU,UAAUkK,UACjB5K,OAAOU,UAAUmK,UAAY,SAASA,UAAW1G,EAAQqG,GACvDrG,KAAoB;AACfqG,GAAUJ,YAAYjG,EAAQ,EAAGjD,KAAKxC;AAC3C,OAAOwC,KAAKiD,EACd;AAEAnE,OAAOU,UAAUoK,aACjB9K,OAAOU,UAAUqK,aAAe,SAASA,aAAc5G,EAAQqG,GAC7DrG,KAAoB;AACfqG,GAAUJ,YAAYjG,EAAQ,EAAGjD,KAAKxC;AAC3C,OAAOwC,KAAKiD,GAAWjD,KAAKiD,EAAS,IAAM,CAC7C;AAEAnE,OAAOU,UAAUsK,aACjBhL,OAAOU,UAAU6G,aAAe,SAASA,aAAcpD,EAAQqG,GAC7DrG,KAAoB;AACfqG,GAAUJ,YAAYjG,EAAQ,EAAGjD,KAAKxC;AAC3C,OAAQwC,KAAKiD,IAAW,EAAKjD,KAAKiD,EAAS,EAC7C;AAEAnE,OAAOU,UAAUuK,aACjBjL,OAAOU,UAAUwK,aAAe,SAASA,aAAc/G,EAAQqG,GAC7DrG,KAAoB;AACfqG,GAAUJ,YAAYjG,EAAQ,EAAGjD,KAAKxC;AAE3C,OAASwC,KAAKiD,GACTjD,KAAKiD,EAAS,IAAM,EACpBjD,KAAKiD,EAAS,IAAM,IACD,SAAnBjD,KAAKiD,EAAS,EACrB;AAEAnE,OAAOU,UAAUyK,aACjBnL,OAAOU,UAAU0K,aAAe,SAASA,aAAcjH,EAAQqG,GAC7DrG,KAAoB;AACfqG,GAAUJ,YAAYjG,EAAQ,EAAGjD,KAAKxC;AAE3C,OAAuB,SAAfwC,KAAKiD,IACTjD,KAAKiD,EAAS,IAAM,GACrBjD,KAAKiD,EAAS,IAAM,EACrBjD,KAAKiD,EAAS,GAClB;AAEAnE,OAAOU,UAAU2K,gBAAkBC,oBAAmB,SAASD,gBAAiBlH,GAC9EA,KAAoB;AACpBoH,eAAepH,EAAQ;AACvB,MAAMqH,EAAQtK,KAAKiD,GACbsH,EAAOvK,KAAKiD,EAAS;KACbf,IAAVoI,QAAgCpI,IAATqI,GACzBC,YAAYvH,EAAQjD,KAAKxC,OAAS;AAGpC,MAAMoK,EAAK0C,EACQ,IAAjBtK,OAAOiD,GACU,MAAjBjD,OAAOiD,GACPjD,OAAOiD,GAAU,GAAK,GAElB0E,EAAK3H,OAAOiD,GACC,IAAjBjD,OAAOiD,GACU,MAAjBjD,OAAOiD,GACPsH,EAAO,GAAK;AAEd,OAAOE,OAAO7C,IAAO6C,OAAO9C,IAAO8C,OAAO,IAC5C;AAEA3L,OAAOU,UAAUkL,gBAAkBN,oBAAmB,SAASM,gBAAiBzH,GAC9EA,KAAoB;AACpBoH,eAAepH,EAAQ;AACvB,MAAMqH,EAAQtK,KAAKiD,GACbsH,EAAOvK,KAAKiD,EAAS;KACbf,IAAVoI,QAAgCpI,IAATqI,GACzBC,YAAYvH,EAAQjD,KAAKxC,OAAS;AAGpC,MAAMmK,EAAK2C,EAAQ,GAAK,GACL,MAAjBtK,OAAOiD,GACU,IAAjBjD,OAAOiD,GACPjD,OAAOiD,GAEH2E,EAAK5H,OAAOiD,GAAU,GAAK,GACd,MAAjBjD,OAAOiD,GACU,IAAjBjD,OAAOiD,GACPsH;AAEF,OAAQE,OAAO9C,IAAO8C,OAAO,KAAOA,OAAO7C,EAC7C;AAEA9I,OAAOU,UAAUmL,UAAY,SAASA,UAAW1H,EAAQ3G,EAAYgN,GACnErG,KAAoB;AACpB3G,KAA4B;AACvBgN,GAAUJ,YAAYjG,EAAQ3G,EAAY0D,KAAKxC;AAEpD,IAAIqI,EAAM7F,KAAKiD,GACXsG,EAAM,EACNzM,EAAI;AACR,OAASA,EAAIR,IAAeiN,GAAO,MACjC1D,GAAO7F,KAAKiD,EAASnG,GAAKyM;AAE5BA,GAAO;AAEH1D,GAAO0D,IAAK1D,GAAOzC,KAAKwH,IAAI,EAAG,EAAItO;AAEvC,OAAOuJ,CACT;AAEA/G,OAAOU,UAAUqL,UAAY,SAASA,UAAW5H,EAAQ3G,EAAYgN,GACnErG,KAAoB;AACpB3G,KAA4B;AACvBgN,GAAUJ,YAAYjG,EAAQ3G,EAAY0D,KAAKxC;AAEpD,IAAIV,EAAIR,EACJiN,EAAM,EACN1D,EAAM7F,KAAKiD,IAAWnG;AAC1B,KAAOA,EAAI,IAAMyM,GAAO,MACtB1D,GAAO7F,KAAKiD,IAAWnG,GAAKyM;AAE9BA,GAAO;AAEH1D,GAAO0D,IAAK1D,GAAOzC,KAAKwH,IAAI,EAAG,EAAItO;AAEvC,OAAOuJ,CACT;AAEA/G,OAAOU,UAAUsL,SAAW,SAASA,SAAU7H,EAAQqG,GACrDrG,KAAoB;AACfqG,GAAUJ,YAAYjG,EAAQ,EAAGjD,KAAKxC;AAC3C,OAAqB,IAAfwC,KAAKiD,IAC0B,GAA5B,IAAOjD,KAAKiD,GAAU,GADKjD,KAAKiD,EAE3C;AAEAnE,OAAOU,UAAUuL,YAAc,SAASA,YAAa9H,EAAQqG,GAC3DrG,KAAoB;AACfqG,GAAUJ,YAAYjG,EAAQ,EAAGjD,KAAKxC;AAC3C,MAAMqI,EAAM7F,KAAKiD,GAAWjD,KAAKiD,EAAS,IAAM;AAChD,OAAc,MAAN4C,EAAsB,WAANA,EAAmBA,CAC7C;AAEA/G,OAAOU,UAAUwL,YAAc,SAASA,YAAa/H,EAAQqG,GAC3DrG,KAAoB;AACfqG,GAAUJ,YAAYjG,EAAQ,EAAGjD,KAAKxC;AAC3C,MAAMqI,EAAM7F,KAAKiD,EAAS,GAAMjD,KAAKiD,IAAW;AAChD,OAAc,MAAN4C,EAAsB,WAANA,EAAmBA,CAC7C;AAEA/G,OAAOU,UAAUyL,YAAc,SAASA,YAAahI,EAAQqG,GAC3DrG,KAAoB;AACfqG,GAAUJ,YAAYjG,EAAQ,EAAGjD,KAAKxC;AAE3C,OAAQwC,KAAKiD,GACVjD,KAAKiD,EAAS,IAAM,EACpBjD,KAAKiD,EAAS,IAAM,GACpBjD,KAAKiD,EAAS,IAAM,EACzB;AAEAnE,OAAOU,UAAU0L,YAAc,SAASA,YAAajI,EAAQqG,GAC3DrG,KAAoB;AACfqG,GAAUJ,YAAYjG,EAAQ,EAAGjD,KAAKxC;AAE3C,OAAQwC,KAAKiD,IAAW,GACrBjD,KAAKiD,EAAS,IAAM,GACpBjD,KAAKiD,EAAS,IAAM,EACpBjD,KAAKiD,EAAS,EACnB;AAEAnE,OAAOU,UAAU2L,eAAiBf,oBAAmB,SAASe,eAAgBlI,GAC5EA,KAAoB;AACpBoH,eAAepH,EAAQ;AACvB,MAAMqH,EAAQtK,KAAKiD,GACbsH,EAAOvK,KAAKiD,EAAS;KACbf,IAAVoI,QAAgCpI,IAATqI,GACzBC,YAAYvH,EAAQjD,KAAKxC,OAAS;AAGpC,MAAMqI,EAAM7F,KAAKiD,EAAS,GACL,IAAnBjD,KAAKiD,EAAS,GACK,MAAnBjD,KAAKiD,EAAS,IACbsH,GAAQ;AAEX,OAAQE,OAAO5E,IAAQ4E,OAAO,KAC5BA,OAAOH,EACU,IAAjBtK,OAAOiD,GACU,MAAjBjD,OAAOiD,GACPjD,OAAOiD,GAAU,GAAK,GAC1B;AAEAnE,OAAOU,UAAU4L,eAAiBhB,oBAAmB,SAASgB,eAAgBnI,GAC5EA,KAAoB;AACpBoH,eAAepH,EAAQ;AACvB,MAAMqH,EAAQtK,KAAKiD,GACbsH,EAAOvK,KAAKiD,EAAS;KACbf,IAAVoI,QAAgCpI,IAATqI,GACzBC,YAAYvH,EAAQjD,KAAKxC,OAAS;AAGpC,MAAMqI,GAAOyE,GAAS,IACH,MAAjBtK,OAAOiD,GACU,IAAjBjD,OAAOiD,GACPjD,OAAOiD;AAET,OAAQwH,OAAO5E,IAAQ4E,OAAO,KAC5BA,OAAOzK,OAAOiD,GAAU,GAAK,GACZ,MAAjBjD,OAAOiD,GACU,IAAjBjD,OAAOiD,GACPsH,EACJ;AAEAzL,OAAOU,UAAU6L,YAAc,SAASA,YAAapI,EAAQqG,GAC3DrG,KAAoB;AACfqG,GAAUJ,YAAYjG,EAAQ,EAAGjD,KAAKxC;AAC3C,OAAOmB,EAAQyH,KAAKpG,KAAMiD,GAAQ,EAAM,GAAI,EAC9C;AAEAnE,OAAOU,UAAU8L,YAAc,SAASA,YAAarI,EAAQqG,GAC3DrG,KAAoB;AACfqG,GAAUJ,YAAYjG,EAAQ,EAAGjD,KAAKxC;AAC3C,OAAOmB,EAAQyH,KAAKpG,KAAMiD,GAAQ,EAAO,GAAI,EAC/C;AAEAnE,OAAOU,UAAU+L,aAAe,SAASA,aAActI,EAAQqG,GAC7DrG,KAAoB;AACfqG,GAAUJ,YAAYjG,EAAQ,EAAGjD,KAAKxC;AAC3C,OAAOmB,EAAQyH,KAAKpG,KAAMiD,GAAQ,EAAM,GAAI,EAC9C;AAEAnE,OAAOU,UAAUgM,aAAe,SAASA,aAAcvI,EAAQqG,GAC7DrG,KAAoB;AACfqG,GAAUJ,YAAYjG,EAAQ,EAAGjD,KAAKxC;AAC3C,OAAOmB,EAAQyH,KAAKpG,KAAMiD,GAAQ,EAAO,GAAI,EAC/C;AAEA,SAASwI,SAAUpL,EAAKO,EAAOqC,EAAQkG,EAAK/D,EAAK/B,GAC/C,IAAKvE,OAAOiB,SAASM,GAAM,MAAM,IAAIG,UAAU;AAC/C,GAAII,EAAQwE,GAAOxE,EAAQyC,EAAK,MAAM,IAAIjD,WAAW;AACrD,GAAI6C,EAASkG,EAAM9I,EAAI7C,OAAQ,MAAM,IAAI4C,WAAW,qBACtD,CAEAtB,OAAOU,UAAUkM,YACjB5M,OAAOU,UAAUmM,YAAc,SAASA,YAAa/K,EAAOqC,EAAQ3G,EAAYgN,GAC9E1I,GAASA;AACTqC,KAAoB;AACpB3G,KAA4B;AAC5B,IAAKgN,EAAU,CACb,MAAMsC,EAAWxI,KAAKwH,IAAI,EAAG,EAAItO,GAAc;AAC/CmP,SAASzL,KAAMY,EAAOqC,EAAQ3G,EAAYsP,EAAU,EACtD,CAEA,IAAIrC,EAAM,EACNzM,EAAI;AACRkD,KAAKiD,GAAkB,IAARrC;AACf,OAAS9D,EAAIR,IAAeiN,GAAO,MACjCvJ,KAAKiD,EAASnG,GAAM8D,EAAQ2I,EAAO;AAGrC,OAAOtG,EAAS3G,CAClB;AAEAwC,OAAOU,UAAUqM,YACjB/M,OAAOU,UAAUsM,YAAc,SAASA,YAAalL,EAAOqC,EAAQ3G,EAAYgN,GAC9E1I,GAASA;AACTqC,KAAoB;AACpB3G,KAA4B;AAC5B,IAAKgN,EAAU,CACb,MAAMsC,EAAWxI,KAAKwH,IAAI,EAAG,EAAItO,GAAc;AAC/CmP,SAASzL,KAAMY,EAAOqC,EAAQ3G,EAAYsP,EAAU,EACtD,CAEA,IAAI9O,EAAIR,EAAa,EACjBiN,EAAM;AACVvJ,KAAKiD,EAASnG,GAAa,IAAR8D;AACnB,OAAS9D,GAAK,IAAMyM,GAAO,MACzBvJ,KAAKiD,EAASnG,GAAM8D,EAAQ2I,EAAO;AAGrC,OAAOtG,EAAS3G,CAClB;AAEAwC,OAAOU,UAAUuM,WACjBjN,OAAOU,UAAUwM,WAAa,SAASA,WAAYpL,EAAOqC,EAAQqG,GAChE1I,GAASA;AACTqC,KAAoB;AACfqG,GAAUmC,SAASzL,KAAMY,EAAOqC,EAAQ,EAAG,IAAM;AACtDjD,KAAKiD,GAAmB,IAARrC;AAChB,OAAOqC,EAAS,CAClB;AAEAnE,OAAOU,UAAUyM,cACjBnN,OAAOU,UAAU0M,cAAgB,SAASA,cAAetL,EAAOqC,EAAQqG,GACtE1I,GAASA;AACTqC,KAAoB;AACfqG,GAAUmC,SAASzL,KAAMY,EAAOqC,EAAQ,EAAG,MAAQ;AACxDjD,KAAKiD,GAAmB,IAARrC;AAChBZ,KAAKiD,EAAS,GAAMrC,IAAU;AAC9B,OAAOqC,EAAS,CAClB;AAEAnE,OAAOU,UAAU2M,cACjBrN,OAAOU,UAAU4M,cAAgB,SAASA,cAAexL,EAAOqC,EAAQqG,GACtE1I,GAASA;AACTqC,KAAoB;AACfqG,GAAUmC,SAASzL,KAAMY,EAAOqC,EAAQ,EAAG,MAAQ;AACxDjD,KAAKiD,GAAWrC,IAAU;AAC1BZ,KAAKiD,EAAS,GAAc,IAARrC;AACpB,OAAOqC,EAAS,CAClB;AAEAnE,OAAOU,UAAU6M,cACjBvN,OAAOU,UAAU8M,cAAgB,SAASA,cAAe1L,EAAOqC,EAAQqG,GACtE1I,GAASA;AACTqC,KAAoB;AACfqG,GAAUmC,SAASzL,KAAMY,EAAOqC,EAAQ,EAAG,WAAY;AAC5DjD,KAAKiD,EAAS,GAAMrC,IAAU;AAC9BZ,KAAKiD,EAAS,GAAMrC,IAAU;AAC9BZ,KAAKiD,EAAS,GAAMrC,IAAU;AAC9BZ,KAAKiD,GAAmB,IAARrC;AAChB,OAAOqC,EAAS,CAClB;AAEAnE,OAAOU,UAAU+M,cACjBzN,OAAOU,UAAUgN,cAAgB,SAASA,cAAe5L,EAAOqC,EAAQqG,GACtE1I,GAASA;AACTqC,KAAoB;AACfqG,GAAUmC,SAASzL,KAAMY,EAAOqC,EAAQ,EAAG,WAAY;AAC5DjD,KAAKiD,GAAWrC,IAAU;AAC1BZ,KAAKiD,EAAS,GAAMrC,IAAU;AAC9BZ,KAAKiD,EAAS,GAAMrC,IAAU;AAC9BZ,KAAKiD,EAAS,GAAc,IAARrC;AACpB,OAAOqC,EAAS,CAClB;AAEA,SAASwJ,eAAgBpM,EAAKO,EAAOqC,EAAQI,EAAK+B,GAChDsH,WAAW9L,EAAOyC,EAAK+B,EAAK/E,EAAK4C,EAAQ;AAEzC,IAAI2E,EAAKjB,OAAO/F,EAAQ6J,OAAO;AAC/BpK,EAAI4C,KAAY2E;AAChBA,IAAW;AACXvH,EAAI4C,KAAY2E;AAChBA,IAAW;AACXvH,EAAI4C,KAAY2E;AAChBA,IAAW;AACXvH,EAAI4C,KAAY2E;AAChB,IAAID,EAAKhB,OAAO/F,GAAS6J,OAAO,IAAMA,OAAO;AAC7CpK,EAAI4C,KAAY0E;AAChBA,IAAW;AACXtH,EAAI4C,KAAY0E;AAChBA,IAAW;AACXtH,EAAI4C,KAAY0E;AAChBA,IAAW;AACXtH,EAAI4C,KAAY0E;AAChB,OAAO1E,CACT,CAEA,SAAS0J,eAAgBtM,EAAKO,EAAOqC,EAAQI,EAAK+B,GAChDsH,WAAW9L,EAAOyC,EAAK+B,EAAK/E,EAAK4C,EAAQ;AAEzC,IAAI2E,EAAKjB,OAAO/F,EAAQ6J,OAAO;AAC/BpK,EAAI4C,EAAS,GAAK2E;AAClBA,IAAW;AACXvH,EAAI4C,EAAS,GAAK2E;AAClBA,IAAW;AACXvH,EAAI4C,EAAS,GAAK2E;AAClBA,IAAW;AACXvH,EAAI4C,EAAS,GAAK2E;AAClB,IAAID,EAAKhB,OAAO/F,GAAS6J,OAAO,IAAMA,OAAO;AAC7CpK,EAAI4C,EAAS,GAAK0E;AAClBA,IAAW;AACXtH,EAAI4C,EAAS,GAAK0E;AAClBA,IAAW;AACXtH,EAAI4C,EAAS,GAAK0E;AAClBA,IAAW;AACXtH,EAAI4C,GAAU0E;AACd,OAAO1E,EAAS,CAClB,CAEAnE,OAAOU,UAAUoN,iBAAmBxC,oBAAmB,SAASwC,iBAAkBhM,EAAOqC,EAAS,GAChG,OAAOwJ,eAAezM,KAAMY,EAAOqC,EAAQwH,OAAO,GAAIA,OAAO,sBAC/D;AAEA3L,OAAOU,UAAUqN,iBAAmBzC,oBAAmB,SAASyC,iBAAkBjM,EAAOqC,EAAS,GAChG,OAAO0J,eAAe3M,KAAMY,EAAOqC,EAAQwH,OAAO,GAAIA,OAAO,sBAC/D;AAEA3L,OAAOU,UAAUsN,WAAa,SAASA,WAAYlM,EAAOqC,EAAQ3G,EAAYgN,GAC5E1I,GAASA;AACTqC,KAAoB;AACpB,IAAKqG,EAAU,CACb,MAAMyD,EAAQ3J,KAAKwH,IAAI,EAAI,EAAItO,EAAc;AAE7CmP,SAASzL,KAAMY,EAAOqC,EAAQ3G,EAAYyQ,EAAQ,GAAIA,EACxD,CAEA,IAAIjQ,EAAI,EACJyM,EAAM,EACNyD,EAAM;AACVhN,KAAKiD,GAAkB,IAARrC;AACf,OAAS9D,EAAIR,IAAeiN,GAAO,MAAQ,CACrC3I,EAAQ,GAAa,IAARoM,GAAsC,IAAzBhN,KAAKiD,EAASnG,EAAI,KAC9CkQ,EAAM;AAERhN,KAAKiD,EAASnG,IAAO8D,EAAQ2I,GAAQ,GAAKyD,EAAM,GAClD,CAEA,OAAO/J,EAAS3G,CAClB;AAEAwC,OAAOU,UAAUyN,WAAa,SAASA,WAAYrM,EAAOqC,EAAQ3G,EAAYgN,GAC5E1I,GAASA;AACTqC,KAAoB;AACpB,IAAKqG,EAAU,CACb,MAAMyD,EAAQ3J,KAAKwH,IAAI,EAAI,EAAItO,EAAc;AAE7CmP,SAASzL,KAAMY,EAAOqC,EAAQ3G,EAAYyQ,EAAQ,GAAIA,EACxD,CAEA,IAAIjQ,EAAIR,EAAa,EACjBiN,EAAM,EACNyD,EAAM;AACVhN,KAAKiD,EAASnG,GAAa,IAAR8D;AACnB,OAAS9D,GAAK,IAAMyM,GAAO,MAAQ,CAC7B3I,EAAQ,GAAa,IAARoM,GAAsC,IAAzBhN,KAAKiD,EAASnG,EAAI,KAC9CkQ,EAAM;AAERhN,KAAKiD,EAASnG,IAAO8D,EAAQ2I,GAAQ,GAAKyD,EAAM,GAClD,CAEA,OAAO/J,EAAS3G,CAClB;AAEAwC,OAAOU,UAAU0N,UAAY,SAASA,UAAWtM,EAAOqC,EAAQqG,GAC9D1I,GAASA;AACTqC,KAAoB;AACfqG,GAAUmC,SAASzL,KAAMY,EAAOqC,EAAQ,EAAG,KAAO;AACnDrC,EAAQ,IAAGA,EAAQ,IAAOA,EAAQ;AACtCZ,KAAKiD,GAAmB,IAARrC;AAChB,OAAOqC,EAAS,CAClB;AAEAnE,OAAOU,UAAU2N,aAAe,SAASA,aAAcvM,EAAOqC,EAAQqG,GACpE1I,GAASA;AACTqC,KAAoB;AACfqG,GAAUmC,SAASzL,KAAMY,EAAOqC,EAAQ,EAAG,OAAS;AACzDjD,KAAKiD,GAAmB,IAARrC;AAChBZ,KAAKiD,EAAS,GAAMrC,IAAU;AAC9B,OAAOqC,EAAS,CAClB;AAEAnE,OAAOU,UAAU4N,aAAe,SAASA,aAAcxM,EAAOqC,EAAQqG,GACpE1I,GAASA;AACTqC,KAAoB;AACfqG,GAAUmC,SAASzL,KAAMY,EAAOqC,EAAQ,EAAG,OAAS;AACzDjD,KAAKiD,GAAWrC,IAAU;AAC1BZ,KAAKiD,EAAS,GAAc,IAARrC;AACpB,OAAOqC,EAAS,CAClB;AAEAnE,OAAOU,UAAU6N,aAAe,SAASA,aAAczM,EAAOqC,EAAQqG,GACpE1I,GAASA;AACTqC,KAAoB;AACfqG,GAAUmC,SAASzL,KAAMY,EAAOqC,EAAQ,EAAG,YAAa;AAC7DjD,KAAKiD,GAAmB,IAARrC;AAChBZ,KAAKiD,EAAS,GAAMrC,IAAU;AAC9BZ,KAAKiD,EAAS,GAAMrC,IAAU;AAC9BZ,KAAKiD,EAAS,GAAMrC,IAAU;AAC9B,OAAOqC,EAAS,CAClB;AAEAnE,OAAOU,UAAU8N,aAAe,SAASA,aAAc1M,EAAOqC,EAAQqG,GACpE1I,GAASA;AACTqC,KAAoB;AACfqG,GAAUmC,SAASzL,KAAMY,EAAOqC,EAAQ,EAAG,YAAa;AACzDrC,EAAQ,IAAGA,EAAQ,WAAaA,EAAQ;AAC5CZ,KAAKiD,GAAWrC,IAAU;AAC1BZ,KAAKiD,EAAS,GAAMrC,IAAU;AAC9BZ,KAAKiD,EAAS,GAAMrC,IAAU;AAC9BZ,KAAKiD,EAAS,GAAc,IAARrC;AACpB,OAAOqC,EAAS,CAClB;AAEAnE,OAAOU,UAAU+N,gBAAkBnD,oBAAmB,SAASmD,gBAAiB3M,EAAOqC,EAAS,GAC9F,OAAOwJ,eAAezM,KAAMY,EAAOqC,GAASwH,OAAO,sBAAuBA,OAAO,sBACnF;AAEA3L,OAAOU,UAAUgO,gBAAkBpD,oBAAmB,SAASoD,gBAAiB5M,EAAOqC,EAAS,GAC9F,OAAO0J,eAAe3M,KAAMY,EAAOqC,GAASwH,OAAO,sBAAuBA,OAAO,sBACnF;AAEA,SAASgD,aAAcpN,EAAKO,EAAOqC,EAAQkG,EAAK/D,EAAK/B,GACnD,GAAIJ,EAASkG,EAAM9I,EAAI7C,OAAQ,MAAM,IAAI4C,WAAW;AACpD,GAAI6C,EAAS,EAAG,MAAM,IAAI7C,WAAW,qBACvC,CAEA,SAASsN,WAAYrN,EAAKO,EAAOqC,EAAQ0K,EAAcrE,GACrD1I,GAASA;AACTqC,KAAoB;AACfqG,GACHmE,aAAapN,EAAKO,EAAOqC,EAAQ;AAEnCtE,EAAQuC,MAAMb,EAAKO,EAAOqC,EAAQ0K,EAAc,GAAI;AACpD,OAAO1K,EAAS,CAClB,CAEAnE,OAAOU,UAAUoO,aAAe,SAASA,aAAchN,EAAOqC,EAAQqG,GACpE,OAAOoE,WAAW1N,KAAMY,EAAOqC,GAAQ,EAAMqG,EAC/C;AAEAxK,OAAOU,UAAUqO,aAAe,SAASA,aAAcjN,EAAOqC,EAAQqG,GACpE,OAAOoE,WAAW1N,KAAMY,EAAOqC,GAAQ,EAAOqG,EAChD;AAEA,SAASwE,YAAazN,EAAKO,EAAOqC,EAAQ0K,EAAcrE,GACtD1I,GAASA;AACTqC,KAAoB;AACfqG,GACHmE,aAAapN,EAAKO,EAAOqC,EAAQ;AAEnCtE,EAAQuC,MAAMb,EAAKO,EAAOqC,EAAQ0K,EAAc,GAAI;AACpD,OAAO1K,EAAS,CAClB,CAEAnE,OAAOU,UAAUuO,cAAgB,SAASA,cAAenN,EAAOqC,EAAQqG,GACtE,OAAOwE,YAAY9N,KAAMY,EAAOqC,GAAQ,EAAMqG,EAChD;AAEAxK,OAAOU,UAAUwO,cAAgB,SAASA,cAAepN,EAAOqC,EAAQqG,GACtE,OAAOwE,YAAY9N,KAAMY,EAAOqC,GAAQ,EAAOqG,EACjD;AAGAxK,OAAOU,UAAUiC,KAAO,SAASA,KAAM8D,EAAQ0I,EAAa3P,EAAOC,GACjE,IAAKO,OAAOiB,SAASwF,GAAS,MAAM,IAAI/E,UAAU;AAC7ClC,IAAOA,EAAQ;AACfC,GAAe,IAARA,IAAWA,EAAMyB,KAAKxC;AAC9ByQ,GAAe1I,EAAO/H,SAAQyQ,EAAc1I,EAAO/H;AAClDyQ,IAAaA,EAAc;AAC5B1P,EAAM,GAAKA,EAAMD,IAAOC,EAAMD;AAGlC,GAAIC,IAAQD,EAAO,OAAO;AAC1B,GAAsB,IAAlBiH,EAAO/H,QAAgC,IAAhBwC,KAAKxC,OAAc,OAAO;AAGrD,GAAIyQ,EAAc,EAChB,MAAM,IAAI7N,WAAW;AAEvB,GAAI9B,EAAQ,GAAKA,GAAS0B,KAAKxC,OAAQ,MAAM,IAAI4C,WAAW;AAC5D,GAAI7B,EAAM,EAAG,MAAM,IAAI6B,WAAW;AAG9B7B,EAAMyB,KAAKxC,SAAQe,EAAMyB,KAAKxC;AAC9B+H,EAAO/H,OAASyQ,EAAc1P,EAAMD,IACtCC,EAAMgH,EAAO/H,OAASyQ,EAAc3P;AAGtC,MAAMnB,EAAMoB,EAAMD;AAEd0B,OAASuF,GAAqD,mBAApCtH,WAAWuB,UAAU0O,WAEjDlO,KAAKkO,WAAWD,EAAa3P,EAAOC,GAEpCN,WAAWuB,UAAUmE,IAAIC,KACvB2B,EACAvF,KAAKiJ,SAAS3K,EAAOC,GACrB0P;AAIJ,OAAO9Q,CACT;AAMA2B,OAAOU,UAAUkD,KAAO,SAASA,KAAMmD,EAAKvH,EAAOC,EAAKwC,GAEtD,GAAmB,iBAAR8E,EAAkB,CAC3B,GAAqB,iBAAVvH,EAAoB,CAC7ByC,EAAWzC;AACXA,EAAQ;AACRC,EAAMyB,KAAKxC,MACb,MAAO,GAAmB,iBAARe,EAAkB,CAClCwC,EAAWxC;AACXA,EAAMyB,KAAKxC,MACb,CACA,QAAiB0E,IAAbnB,GAA8C,iBAAbA,EACnC,MAAM,IAAIP,UAAU;AAEtB,GAAwB,iBAAbO,IAA0BjC,OAAOkC,WAAWD,GACrD,MAAM,IAAIP,UAAU,qBAAuBO;AAE7C,GAAmB,IAAf8E,EAAIrI,OAAc,CACpB,MAAMW,EAAO0H,EAAIxI,WAAW,IACV,SAAb0D,GAAuB5C,EAAO,KAClB,WAAb4C,KAEF8E,EAAM1H,EAEV,CACF,KAA0B,iBAAR0H,EAChBA,GAAY,IACY,kBAARA,IAChBA,EAAMc,OAAOd;AAIf,GAAIvH,EAAQ,GAAK0B,KAAKxC,OAASc,GAAS0B,KAAKxC,OAASe,EACpD,MAAM,IAAI6B,WAAW;AAGvB,GAAI7B,GAAOD,EACT,OAAO0B;AAGT1B,KAAkB;AAClBC,OAAc2D,IAAR3D,EAAoByB,KAAKxC,OAASe,IAAQ;AAE3CsH,IAAKA,EAAM;AAEhB,IAAI/I;AACJ,GAAmB,iBAAR+I,EACT,IAAK/I,EAAIwB,EAAOxB,EAAIyB,IAAOzB,EACzBkD,KAAKlD,GAAK+I;IAEP,CACL,MAAMkD,EAAQjK,OAAOiB,SAAS8F,GAC1BA,EACA/G,OAAO4B,KAAKmF,EAAK9E,GACf5D,EAAM4L,EAAMvL;AAClB,GAAY,IAARL,EACF,MAAM,IAAIqD,UAAU,cAAgBqF,EAClC;AAEJ,IAAK/I,EAAI,EAAGA,EAAIyB,EAAMD,IAASxB,EAC7BkD,KAAKlD,EAAIwB,GAASyK,EAAMjM,EAAIK,EAEhC,CAEA,OAAO6C,IACT;AAMA,MAAMmO,EAAS,CAAC;AAChB,SAASC,EAAGC,EAAKC,EAAYC,GAC3BJ,EAAOE,GAAO,MAAMG,kBAAkBD,EACpC,WAAAE,GACEC;AAEApP,OAAOM,eAAeI,KAAM,UAAW,CACrCY,MAAO0N,EAAWvJ,MAAM/E,KAAM8D,WAC9B6K,UAAU,EACVC,cAAc;AAIhB5O,KAAK6O,KAAO,GAAG7O,KAAK6O,SAASR;AAG7BrO,KAAK8O;OAEE9O,KAAK6O,IACd,CAEA,QAAI1Q,GACF,OAAOkQ,CACT,CAEA,QAAIlQ,CAAMyC,GACRtB,OAAOM,eAAeI,KAAM,OAAQ,CAClC4O,cAAc,EACd/O,YAAY,EACZe,QACA+N,UAAU,GAEd,CAEA,QAAA9L,GACE,MAAO,GAAG7C,KAAK6O,SAASR,OAASrO,KAAK+O,SACxC,EAEJ,CAEAX,EAAE,4BACA,SAAUS,GACR,OAAIA,EACK,GAAGA,gCAGL,gDACT,GAAGzO;AACLgO,EAAE,wBACA,SAAUS,EAAM5N,GACd,MAAO,QAAQ4N,4DAA+D5N,GAChF,GAAGT;AACL4N,EAAE,oBACA,SAAUjJ,EAAK6J,EAAOC,GACpB,IAAIC,EAAM,iBAAiB/J,sBACvBgK,EAAWF;AACf,GAAItI,OAAOyI,UAAUH,IAAU7L,KAAKiM,IAAIJ,GAAS,GAAK,GACpDE,EAAWG,sBAAsBhM,OAAO2L;KACnC,GAAqB,iBAAVA,EAAoB,CACpCE,EAAW7L,OAAO2L,IACdA,EAAQxE,OAAO,IAAMA,OAAO,KAAOwE,IAAUxE,OAAO,IAAMA,OAAO,QACnE0E,EAAWG,sBAAsBH;AAEnCA,GAAY,GACd,CACAD,GAAO,eAAeF,eAAmBG;AACzC,OAAOD,CACT,GAAG9O;AAEL,SAASkP,sBAAuBzJ,GAC9B,IAAImC,EAAM,GACNlL,EAAI+I,EAAIrI;AACZ,MAAMc,EAAmB,MAAXuH,EAAI,GAAa,EAAI;AACnC,KAAO/I,GAAKwB,EAAQ,EAAGxB,GAAK,EAC1BkL,EAAM,IAAInC,EAAI1E,MAAMrE,EAAI,EAAGA,KAAKkL;AAElC,MAAO,GAAGnC,EAAI1E,MAAM,EAAGrE,KAAKkL,GAC9B,CAYA,SAAS0E,WAAY9L,EAAOyC,EAAK+B,EAAK/E,EAAK4C,EAAQ3G,GACjD,GAAIsE,EAAQwE,GAAOxE,EAAQyC,EAAK,CAC9B,MAAMqB,EAAmB,iBAARrB,EAAmB,IAAM;AAC1C,IAAI2L;AAGAA,EAFA1S,EAAa,EACH,IAAR+G,GAAaA,IAAQoH,OAAO,GACtB,OAAO/F,YAAYA,QAA2B,GAAlBpI,EAAa,KAASoI,IAElD,SAASA,QAA2B,GAAlBpI,EAAa,GAAS,IAAIoI,iBACtB,GAAlBpI,EAAa,GAAS,IAAIoI,IAGhC,MAAMrB,IAAMqB,YAAYU,IAAMV;AAExC,MAAM,IAAIyJ,EAAOoB,iBAAiB,QAASP,EAAOpO,EACpD,EAtBF,SAAS4O,YAAanP,EAAK4C,EAAQ3G,GACjC+N,eAAepH,EAAQ;KACHf,IAAhB7B,EAAI4C,SAAsDf,IAA7B7B,EAAI4C,EAAS3G,IAC5CkO,YAAYvH,EAAQ5C,EAAI7C,QAAUlB,EAAa,GAEnD,CAkBEkT,CAAYnP,EAAK4C,EAAQ3G,EAC3B,CAEA,SAAS+N,eAAgBzJ,EAAOiO,GAC9B,GAAqB,iBAAVjO,EACT,MAAM,IAAIuN,EAAOsB,qBAAqBZ,EAAM,SAAUjO,EAE1D,CAEA,SAAS4J,YAAa5J,EAAOpD,EAAQ4E,GACnC,GAAIgB,KAAKsM,MAAM9O,KAAWA,EAAO,CAC/ByJ,eAAezJ,EAAOwB;AACtB,MAAM,IAAI+L,EAAOoB,iBAAiBnN,GAAQ,SAAU,aAAcxB,EACpE,CAEA,GAAIpD,EAAS,EACX,MAAM,IAAI2Q,EAAOwB;AAGnB,MAAM,IAAIxB,EAAOoB,iBAAiBnN,GAAQ,SACR,MAAMA,EAAO,EAAI,YAAY5E,IAC7BoD,EACpC,CAKA,MAAMgP,EAAoB;AAgB1B,SAAS5L,YAAalD,EAAQ2G,GAC5BA,EAAQA,GAASoI;AACjB,IAAI3H;AACJ,MAAM1K,EAASsD,EAAOtD;AACtB,IAAIsS,EAAgB;AACpB,MAAM/G,EAAQ;AAEd,IAAK,IAAIjM,EAAI,EAAGA,EAAIU,IAAUV,EAAG,CAC/BoL,EAAYpH,EAAOzD,WAAWP;AAG9B,GAAIoL,EAAY,OAAUA,EAAY,MAAQ,CAE5C,IAAK4H,EAAe,CAElB,GAAI5H,EAAY,MAAQ,EAEjBT,GAAS,IAAM,GAAGsB,EAAMlL,KAAK,IAAM,IAAM;AAC9C,QACF,CAAO,GAAIf,EAAI,IAAMU,EAAQ,EAEtBiK,GAAS,IAAM,GAAGsB,EAAMlL,KAAK,IAAM,IAAM;AAC9C,QACF,CAGAiS,EAAgB5H;AAEhB,QACF,CAGA,GAAIA,EAAY,MAAQ,EACjBT,GAAS,IAAM,GAAGsB,EAAMlL,KAAK,IAAM,IAAM;AAC9CiS,EAAgB5H;AAChB,QACF,CAGAA,EAAkE,OAArD4H,EAAgB,OAAU,GAAK5H,EAAY,MAC1D,MAAW4H,IAEJrI,GAAS,IAAM,GAAGsB,EAAMlL,KAAK,IAAM,IAAM;AAGhDiS,EAAgB;AAGhB,GAAI5H,EAAY,IAAM,CACpB,IAAKT,GAAS,GAAK,EAAG;AACtBsB,EAAMlL,KAAKqK,EACb,MAAO,GAAIA,EAAY,KAAO,CAC5B,IAAKT,GAAS,GAAK,EAAG;AACtBsB,EAAMlL,KACJqK,GAAa,EAAM,IACP,GAAZA,EAAmB,IAEvB,MAAO,GAAIA,EAAY,MAAS,CAC9B,IAAKT,GAAS,GAAK,EAAG;AACtBsB,EAAMlL,KACJqK,GAAa,GAAM,IACnBA,GAAa,EAAM,GAAO,IACd,GAAZA,EAAmB,IAEvB,KAAO,MAAIA,EAAY,SASrB,MAAM,IAAI9J,MAAM;AARhB,IAAKqJ,GAAS,GAAK,EAAG;AACtBsB,EAAMlL,KACJqK,GAAa,GAAO,IACpBA,GAAa,GAAM,GAAO,IAC1BA,GAAa,EAAM,GAAO,IACd,GAAZA,EAAmB,IAIvB,CACF,CAEA,OAAOa,CACT,CA2BA,SAAS9E,cAAekB,GACtB,OAAOzG,EAAO9B,YAxHhB,SAASmT,YAAa5K,GAEpBA,EAAMA,EAAI6K,MAAM,KAAK;AAErB7K,EAAMA,EAAIG,OAAOD,QAAQuK,EAAmB;AAE5C,GAAIzK,EAAI3H,OAAS,EAAG,MAAO;AAE3B,KAAO2H,EAAI3H,OAAS,GAAM,GACxB2H,GAAY;AAEd,OAAOA,CACT,CA4G4B4K,CAAY5K,GACxC,CAEA,SAAS+B,WAAY+I,EAAKC,EAAKjN,EAAQzF,GACrC,IAAIV;AACJ,IAAKA,EAAI,EAAGA,EAAIU,KACTV,EAAImG,GAAUiN,EAAI1S,QAAYV,GAAKmT,EAAIzS,UADpBV,EAExBoT,EAAIpT,EAAImG,GAAUgN,EAAInT;AAExB,OAAOA,CACT,CAKA,SAAS0E,WAAYQ,EAAKI,GACxB,OAAOJ,aAAeI,GACZ,MAAPJ,GAAkC,MAAnBA,EAAIyM,aAA+C,MAAxBzM,EAAIyM,YAAYI,MACzD7M,EAAIyM,YAAYI,OAASzM,EAAKyM,IACpC,CACA,SAAS1M,YAAaH,GAEpB,OAAOA,GAAQA,CACjB,CAIA,MAAM8G,EAAsB,WAC1B,MAAMqH,EAAW,mBACXC,EAAQ,IAAIlS,MAAM;AACxB,IAAK,IAAIpB,EAAI,EAAGA,EAAI,KAAMA,EAAG,CAC3B,MAAMuT,EAAU,GAAJvT;AACZ,IAAK,IAAI0J,EAAI,EAAGA,EAAI,KAAMA,EACxB4J,EAAMC,EAAM7J,GAAK2J,EAASrT,GAAKqT,EAAS3J,EAE5C,CACA,OAAO4J,CACR,CAV2B;AAa5B,SAAShG,mBAAoBkG,GAC3B,MAAyB,oBAAX7F,OAAyB8F,uBAAyBD,CAClE,CAEA,SAASC,yBACP,MAAM,IAAInS,MAAM,uBAClB,eCxjEA/B,EAAQ+J,KAAO,SAAUnG,EAAQgD,EAAQuN,EAAMC,EAAMC,GACnD,IAAIjR,EAAGkF,EACHgM,EAAiB,EAATD,EAAcD,EAAO,EAC7BG,GAAQ,GAAKD,GAAQ,EACrBE,EAAQD,GAAQ,EAChBE,GAAS,EACThU,EAAI0T,EAAQE,EAAS,EAAK,EAC1BK,EAAIP,GAAQ,EAAI,EAChBQ,EAAI/Q,EAAOgD,EAASnG;AAExBA,GAAKiU;AAELtR,EAAIuR,GAAM,IAAOF,GAAU;AAC3BE,KAAQF;AACRA,GAASH;AACT,KAAOG,EAAQ,EAAGrR,EAAS,IAAJA,EAAWQ,EAAOgD,EAASnG,GAAIA,GAAKiU,EAAGD,GAAS,GAEvEnM,EAAIlF,GAAM,IAAOqR,GAAU;AAC3BrR,KAAQqR;AACRA,GAASL;AACT,KAAOK,EAAQ,EAAGnM,EAAS,IAAJA,EAAW1E,EAAOgD,EAASnG,GAAIA,GAAKiU,EAAGD,GAAS,GAEvE,GAAU,IAANrR,EACFA,EAAI,EAAIoR;IACH,IAAIpR,IAAMmR,EACf,OAAOjM,EAAIsM,IAAsBpB,KAAdmB,GAAK,EAAI;AAE5BrM,GAAQvB,KAAKwH,IAAI,EAAG6F;AACpBhR,GAAQoR,CACV,CACA,OAAQG,GAAK,EAAI,GAAKrM,EAAIvB,KAAKwH,IAAI,EAAGnL,EAAIgR,EAC5C;AAEApU,EAAQ6E,MAAQ,SAAUjB,EAAQW,EAAOqC,EAAQuN,EAAMC,EAAMC,GAC3D,IAAIjR,EAAGkF,EAAG+C,EACNiJ,EAAiB,EAATD,EAAcD,EAAO,EAC7BG,GAAQ,GAAKD,GAAQ,EACrBE,EAAQD,GAAQ,EAChBM,EAAe,KAATT,EAAcrN,KAAKwH,IAAI,GAAI,IAAMxH,KAAKwH,IAAI,GAAI,IAAM,EAC1D9N,EAAI0T,EAAO,EAAKE,EAAS,EACzBK,EAAIP,EAAO,GAAK,EAChBQ,EAAIpQ,EAAQ,GAAgB,IAAVA,GAAe,EAAIA,EAAQ,EAAK,EAAI;AAE1DA,EAAQwC,KAAKiM,IAAIzO;AAEjB,GAAIuQ,MAAMvQ,IAAUA,IAAUiP,IAAU,CACtClL,EAAIwM,MAAMvQ,GAAS,EAAI;AACvBnB,EAAImR,CACN,KAAO,CACLnR,EAAI2D,KAAKsM,MAAMtM,KAAKgO,IAAIxQ,GAASwC,KAAKiO;AACtC,GAAIzQ,GAAS8G,EAAItE,KAAKwH,IAAI,GAAInL,IAAM,EAAG,CACrCA;AACAiI,GAAK,CACP,CAEE9G,GADEnB,EAAIoR,GAAS,EACNK,EAAKxJ,EAELwJ,EAAK9N,KAAKwH,IAAI,EAAG,EAAIiG;AAEhC,GAAIjQ,EAAQ8G,GAAK,EAAG,CAClBjI;AACAiI,GAAK,CACP,CAEA,GAAIjI,EAAIoR,GAASD,EAAM,CACrBjM,EAAI;AACJlF,EAAImR,CACN,MAAO,GAAInR,EAAIoR,GAAS,EAAG,CACzBlM,GAAM/D,EAAQ8G,EAAK,GAAKtE,KAAKwH,IAAI,EAAG6F;AACpChR,GAAQoR,CACV,KAAO,CACLlM,EAAI/D,EAAQwC,KAAKwH,IAAI,EAAGiG,EAAQ,GAAKzN,KAAKwH,IAAI,EAAG6F;AACjDhR,EAAI,CACN,CACF,CAEA,KAAOgR,GAAQ,EAAGxQ,EAAOgD,EAASnG,GAAS,IAAJ6H,EAAU7H,GAAKiU,EAAGpM,GAAK,IAAK8L,GAAQ,GAE3EhR,EAAKA,GAAKgR,EAAQ9L;AAClBgM,GAAQF;AACR,KAAOE,EAAO,EAAG1Q,EAAOgD,EAASnG,GAAS,IAAJ2C,EAAU3C,GAAKiU,EAAGtR,GAAK,IAAKkR,GAAQ,GAE1E1Q,EAAOgD,EAASnG,EAAIiU,IAAU,IAAJC,CAC5B,oBC/EiEM,EAAOjV,QAG/D,WAAe;AAEtB,SAASkV,sBAAsBC,EAAUC,GACvC,IAAIC,EAAaC,6BAA6BH,EAAUC,EAAY;AACpE,OAAOG,yBAAyBJ,EAAUE,EAC5C,CACA,SAASG,sBAAsBL,EAAUC,EAAY7Q,GACnD,IAAI8Q,EAAaC,6BAA6BH,EAAUC,EAAY;AACpEK,yBAAyBN,EAAUE,EAAY9Q;AAC/C,OAAOA,CACT,CACA,SAAS+Q,6BAA6BH,EAAUC,EAAYM,GAC1D,IAAKN,EAAWO,IAAIR,GAClB,MAAM,IAAIhR,UAAU,gBAAkBuR,EAAS;AAEjD,OAAON,EAAW3R,IAAI0R,EACxB,CACA,SAASI,yBAAyBJ,EAAUE,GAC1C,OAAIA,EAAW5R,IACN4R,EAAW5R,IAAI8D,KAAK4N,GAEtBE,EAAW9Q,KACpB,CACA,SAASkR,yBAAyBN,EAAUE,EAAY9Q,GACtD,GAAI8Q,EAAW/N,IACb+N,EAAW/N,IAAIC,KAAK4N,EAAU5Q;IACzB,CACL,IAAK8Q,EAAW/C,SACd,MAAM,IAAInO,UAAU;AAEtBkR,EAAW9Q,MAAQA,CACrB,CACF,CACA,SAASqR,2BAA2BjQ,EAAKkQ,GACvC,GAAIA,EAAkBF,IAAIhQ,GACxB,MAAM,IAAIxB,UAAU,iEAExB,CACA,SAAS2R,2BAA2BnQ,EAAKyP,EAAY7Q,GACnDqR,2BAA2BjQ,EAAKyP;AAChCA,EAAW9N,IAAI3B,EAAKpB,EACtB,CAEA,MAAMwR,EAAwB,IAGxBC,EAAc,CAAC,EACfC,2BAA6B,KACjC,GAAID,EAAYE,iCAAiCC,YAAa,CAC5DH,EAAYE,sBAAsBE;AAClCJ,EAAYE,sBAAwB,IACtC,MAAWG,SAASC,MAClBD,SAASC,KAAKF,OAChB,EASIG,qBAAuBC,GACpB,IAAIC,SAAQC,IACjB,IAAKF,EACH,OAAOE;AAET,MAAM7P,EAAI8P,OAAOC,QACX9P,EAAI6P,OAAOE;AACjBb,EAAYc,oBAAsBC,YAAW,KAC3Cd;AACAS,GAAS,GACRX;AAEHY,OAAOK,SAASnQ,EAAGC,EAAE,IAInBmQ,EAAa,SAmFbC,EAAa,CAAC,YAAa,QAAS,cAAe,SAAU,QAAS,QAAS,cAAe,gBAAiB,QAAS,cAAe,OAAQ,OAAQ,QAAS,QAAS,iBAAkB,UAAW,UAAW,OAAQ,SAAU,kBAAmB,SAAU,OAAQ,eAAgB,QAAS,QAAS,OAAQ,QAAS,SAAU,QAAS,WAAY,QAAS,WAAY,aAAc,cAAe,qBAAsB,iBAAkB,uBAAwB,gBAAiB,qBAAsB,SAAU,UAAW,SAAU,MAAO,YAAa,UAAW,WAAY,YAAa,SAAU,eAAgB,aAAc,cAAe,eAAgB,SAAU,eAAgB,aAAc,cAAe,eAAgB,WAAY,cAAe,kBAAmB,MAAO,qBAAsB,+BAAgC,oBAAqB,eAAgB,eAAgB,YAAa,gBAAiB,cACt5BC,EAAcD,EAAWE,QAAO,CAACC,EAAKC,KAC1CD,EAAIC,GAAaL,EAAaK;AAC9B,OAAOD,CAAG,GACiB,CAAC,GAGxBE,EAAQ,CAAC,UAAW,UAAW,OAAQ,WAAY,SACnDC,EAAYD,EAAMH,QAAO,CAACC,EAAKI,KACnCJ,EAAII,GAAQR,EAAaQ;AACzB,OAAOJ,CAAG,GACe,CAAC,GAEtBK,EAAgB,eAQhBC,sBAAwB7O,GAAOA,EAAI8O,OAAO,GAAGC,cAAgB/O,EAAIhE,MAAM,GAOvEgT,KAAOpF,IACXrP,QAAQyU,KAAK,GAAG3Q,OAAOuQ,EAAe,KAAKvQ,OAA0B,iBAAZuL,EAAuBA,EAAQ/Q,KAAK,KAAO+Q,GAAS,EAQzGpP,MAAQoP,IACZrP,QAAQC,MAAM,GAAG6D,OAAOuQ,EAAe,KAAKvQ,OAAOuL,GAAS,EASxDqF,EAA2B,GAO3BC,SAAWtF,IACf,IAAKqF,EAAyB3N,SAASsI,GAAU,CAC/CqF,EAAyBvW,KAAKkR;AAC9BoF,KAAKpF,EACP,GASIuF,qBAAuB,CAACC,EAAiBC,KAC7CH,SAAS,IAAK7Q,OAAO+Q,EAAiB,+EAAiF/Q,OAAOgR,EAAY,cAAe,EAUrJC,eAAiBnU,GAAsB,mBAARA,EAAqBA,IAAQA,EAM5DoU,eAAiBpU,GAAOA,GAAgC,mBAAlBA,EAAIqU,UAM1CC,UAAYtU,GAAOoU,eAAepU,GAAOA,EAAIqU,YAAc7B,QAAQC,QAAQzS,GAM3EuU,UAAYvU,GAAOA,GAAOwS,QAAQC,QAAQzS,KAASA,EAOnDwU,aAAe,IAAMpC,SAASC,KAAKoC,cAAc,IAAIvR,OAAOgQ,EAAYwB,YAMxEC,kBAAoBC,IACxB,MAAMF,EAAYF;AAClB,OAAOE,EAAYA,EAAUD,cAAcG,GAAkB,IAAI,EAO7DC,eAAiBxB,GACdsB,kBAAkB,IAAIzR,OAAOmQ,IAMhCyB,SAAW,IAAMD,eAAe3B,EAAY6B,OAK5CC,QAAU,IAAMH,eAAe3B,EAAYM,MAK3CyB,eAAiB,IAAMJ,eAAe3B,EAAY,iBAKlDgC,SAAW,IAAML,eAAe3B,EAAYiC,OAK5CC,iBAAmB,IAAMP,eAAe3B,EAAY,mBAKpDmC,SAAW,IAAMR,eAAe3B,EAAYoC,OAK5CC,iBAAmB,IAAMV,eAAe3B,EAAY,mBAKpDsC,qBAAuB,IAAMX,eAAe3B,EAAY,uBAKxDuC,iBAAmB,IAAsCd,kBAAkB,IAAIzR,OAAOgQ,EAAYwC,QAAS,MAAMxS,OAAOgQ,EAAYyC,UAKpIC,gBAAkB,IAAsCjB,kBAAkB,IAAIzR,OAAOgQ,EAAYwC,QAAS,MAAMxS,OAAOgQ,EAAY2C,SAKnIC,cAAgB,IAAsCnB,kBAAkB,IAAIzR,OAAOgQ,EAAYwC,QAAS,MAAMxS,OAAOgQ,EAAY6C,OAKjIC,cAAgB,IAAMnB,eAAe3B,EAAY,gBAKjD+C,UAAY,IAAMtB,kBAAkB,IAAIzR,OAAOgQ,EAAYgD,SAK3DC,WAAa,IAAMtB,eAAe3B,EAAYwC,SAK9CU,UAAY,IAAMvB,eAAe3B,EAAYmD,QAK7CC,oBAAsB,IAAMzB,eAAe3B,EAAY,uBAKvDqD,eAAiB,IAAM1B,eAAe3B,EAAYsD,OAGlDC,EAAY,yQAIZC,qBAAuB,KAC3B,MAAM3B,EAAQD;AACd,IAAKC,EACH,MAAO;AAGT,MAAM4B,EAAgC5B,EAAM6B,iBAAiB,uDACvDC,EAAsCjZ,MAAMwC,KAAKuW,GAEtDG,MAAK,CAACpU,EAAGlB,KACR,MAAMuV,EAAYtQ,SAAS/D,EAAEsU,aAAa,aAAe,KACnDC,EAAYxQ,SAASjF,EAAEwV,aAAa,aAAe;AACzD,OAAID,EAAYE,EACP,EACEF,EAAYE,GACb,EAEH,CAAC,IAIJC,EAAyBnC,EAAM6B,iBAAiBH,GAChDU,EAAiCvZ,MAAMwC,KAAK8W,GAAwBE,QAAOC,GAAsC,OAAhCA,EAAGL,aAAa;AACvG,MAAO,IAAI,IAAIM,IAAIT,EAAoC3T,OAAOiU,KAAkCC,QAAOC,GAAME,YAAYF,IAAI,EAMzHG,QAAU,IACPC,SAASrF,SAASC,KAAMa,EAAYwE,SAAWD,SAASrF,SAASC,KAAMa,EAAY,kBAAoBuE,SAASrF,SAASC,KAAMa,EAAY,gBAM9IyE,QAAU,KACd,MAAM5C,EAAQD;AACd,QAAKC,GAGE0C,SAAS1C,EAAO7B,EAAY0E,MAAM,EAMrCC,UAAY,KAChB,MAAM9C,EAAQD;AACd,QAAKC,GAGEA,EAAM+C,aAAa,eAAe,EAUrCC,aAAe,CAACC,EAAMC,KAC1BD,EAAKE,YAAc;AACnB,GAAID,EAAM,CACR,MAAME,EAAS,IAAIC,UACb5R,EAAS2R,EAAOE,gBAAgBJ,EAAM,aACtCK,EAAO9R,EAAOiO,cAAc;AAClC6D,GAAQ1a,MAAMwC,KAAKkY,EAAKC,YAAYC,SAAQC,IAC1CT,EAAKU,YAAYD,EAAM;AAEzB,MAAMpG,EAAO7L,EAAOiO,cAAc;AAClCpC,GAAQzU,MAAMwC,KAAKiS,EAAKkG,YAAYC,SAAQC,IACtCA,aAAiBE,kBAAoBF,aAAiBG,iBACxDZ,EAAKU,YAAYD,EAAMI,WAAU,IAEjCb,EAAKU,YAAYD,EACnB,GAEJ,GAQIhB,SAAW,CAACO,EAAM3E,KACtB,IAAKA,EACH,OAAO;AAET,MAAMyF,EAAYzF,EAAU3D,MAAM;AAClC,IAAK,IAAIlT,EAAI,EAAGA,EAAIsc,EAAU5b,OAAQV,IACpC,IAAKwb,EAAKc,UAAUC,SAASD,EAAUtc,IACrC,OAAO;AAGX,OAAO,CAAI,EAOPwc,oBAAsB,CAAChB,EAAMiB,KACjCrb,MAAMwC,KAAK4X,EAAKc,WAAWN,SAAQnF,IAC5BrU,OAAOka,OAAOhG,GAAa/M,SAASkN,IAAerU,OAAOka,OAAO3F,GAAWpN,SAASkN,IAAerU,OAAOka,OAAOD,EAAOE,WAAa,CAAC,GAAGhT,SAASkN,IACtJ2E,EAAKc,UAAUM,OAAO/F,EACxB,GACA,EAQEgG,iBAAmB,CAACrB,EAAMiB,EAAQ5F,KACtC2F,oBAAoBhB,EAAMiB;AAC1B,GAAIA,EAAOK,aAAeL,EAAOK,YAAYjG,GAAY,CACvD,GAA6C,iBAAlC4F,EAAOK,YAAYjG,KAA4B4F,EAAOK,YAAYjG,GAAWmF,QAAS,CAC/F3E,KAAK,+BAA+B3Q,OAAOmQ,EAAW,+CAAgDnQ,cAAc+V,EAAOK,YAAYjG,GAAY;AACnJ,MACF,CACAkG,SAASvB,EAAMiB,EAAOK,YAAYjG,GACpC,GAQImG,WAAa,CAACzE,EAAO0E,KACzB,IAAKA,EACH,OAAO;AAET,OAAQA,GACN,IAAK,SACL,IAAK,WACL,IAAK,OACH,OAAO1E,EAAMN,cAAc,IAAIvR,OAAOgQ,EAAY6B,MAAO,QAAQ7R,OAAOgQ,EAAYuG;AACtF,IAAK,WACH,OAAO1E,EAAMN,cAAc,IAAIvR,OAAOgQ,EAAY6B,MAAO,QAAQ7R,OAAOgQ,EAAYwG,SAAU;AAChG,IAAK,QACH,OAAO3E,EAAMN,cAAc,IAAIvR,OAAOgQ,EAAY6B,MAAO,QAAQ7R,OAAOgQ,EAAYyG,MAAO,oBAAsB5E,EAAMN,cAAc,IAAIvR,OAAOgQ,EAAY6B,MAAO,QAAQ7R,OAAOgQ,EAAYyG,MAAO;AACvM,IAAK,QACH,OAAO5E,EAAMN,cAAc,IAAIvR,OAAOgQ,EAAY6B,MAAO,QAAQ7R,OAAOgQ,EAAYxE,MAAO;AAC7F,QACE,OAAOqG,EAAMN,cAAc,IAAIvR,OAAOgQ,EAAY6B,MAAO,QAAQ7R,OAAOgQ,EAAYvE,QACxF,EAMIiL,WAAajL,IACjBA,EAAMwD;AAGN,GAAmB,SAAfxD,EAAM7M,KAAiB,CAEzB,MAAMyD,EAAMoJ,EAAMrO;AAClBqO,EAAMrO,MAAQ;AACdqO,EAAMrO,MAAQiF,CAChB,GAQIsU,YAAc,CAAC5U,EAAQ6T,EAAWgB,KACtC,GAAK7U,GAAW6T,EAAhB,CAGyB,iBAAdA,IACTA,EAAYA,EAAUpJ,MAAM,OAAO0H,OAAO2C;AAE5CjB,EAAUN,SAAQnF,IACZzV,MAAMmE,QAAQkD,GAChBA,EAAOuT,SAAQR,IACb8B,EAAY9B,EAAKc,UAAUkB,IAAI3G,GAAa2E,EAAKc,UAAUM,OAAO/F,EAAU,IAG9EyG,EAAY7U,EAAO6T,UAAUkB,IAAI3G,GAAapO,EAAO6T,UAAUM,OAAO/F,EACxE,GAXF,CAYE,EAOEkG,SAAW,CAACtU,EAAQ6T,KACxBe,YAAY5U,EAAQ6T,GAAW,EAAK,EAOhCmB,YAAc,CAAChV,EAAQ6T,KAC3Be,YAAY5U,EAAQ6T,GAAW,EAAM,EAUjCoB,sBAAwB,CAAClC,EAAM3E,KACnC,MAAM8G,EAAWvc,MAAMwC,KAAK4X,EAAKmC;AACjC,IAAK,IAAI3d,EAAI,EAAGA,EAAI2d,EAASjd,OAAQV,IAAK,CACxC,MAAMic,EAAQ0B,EAAS3d;AACvB,GAAIic,aAAiBvG,aAAeuF,SAASgB,EAAOpF,GAClD,OAAOoF,CAEX,GAQI2B,oBAAsB,CAACpC,EAAMqC,EAAU/Z,KACvCA,IAAU,GAAG4C,OAAOuD,SAASnG,MAC/BA,EAAQmG,SAASnG;AAEfA,GAA6B,IAApBmG,SAASnG,GACpB0X,EAAKsC,MAAMD,GAA6B,iBAAV/Z,EAAqB,GAAG4C,OAAO5C,EAAO,MAAQA,EAE5E0X,EAAKsC,MAAMC,eAAeF,EAC5B,EAOIG,KAAO,SAAUxC,GACrB,IAAIyC,EAAUjX,UAAUtG,OAAS,QAAsB0E,IAAjB4B,UAAU,GAAmBA,UAAU,GAAK;AAClFwU,IAASA,EAAKsC,MAAMG,QAAUA,EAChC,EAKMC,KAAO1C,IACXA,IAASA,EAAKsC,MAAMG,QAAU,OAAO,EASjCE,SAAW,CAACC,EAAQC,EAAUR,EAAU/Z,KAE5C,MAAM+W,EAAKuD,EAAOnG,cAAcoG;AAC5BxD,IACFA,EAAGiD,MAAMD,GAAY/Z,EACvB,EAQIwa,OAAS,SAAU9C,EAAM8B,GAC7B,IAAIW,EAAUjX,UAAUtG,OAAS,QAAsB0E,IAAjB4B,UAAU,GAAmBA,UAAU,GAAK;AAClFsW,EAAYU,KAAKxC,EAAMyC,GAAWC,KAAK1C,EACzC,EAQMT,YAAcS,MAAWA,KAASA,EAAK+C,aAAe/C,EAAKgD,cAAgBhD,EAAKiD,iBAAiB/d,SAKjGge,oBAAsB,KAAO3D,YAAY9B,sBAAwB8B,YAAYzB,mBAAqByB,YAAY3B,mBAM9GuF,aAAenD,MAAWA,EAAKoD,aAAepD,EAAKqD,cAQnDC,gBAAkBtD,IACtB,MAAMsC,EAAQ5H,OAAO6I,iBAAiBvD,GAChCwD,EAAeC,WAAWnB,EAAMoB,iBAAiB,uBAAyB,KAC1EC,EAAgBF,WAAWnB,EAAMoB,iBAAiB,wBAA0B;AAClF,OAAOF,EAAe,GAAKG,EAAgB,CAAC,EAOxCC,wBAA0B,SAAUC,GACxC,IAAIC,EAAQtY,UAAUtG,OAAS,QAAsB0E,IAAjB4B,UAAU,IAAmBA,UAAU;AAC3E,MAAMuY,EAAmBzF;AACzB,GAAKyF,GAGDxE,YAAYwE,GAAmB,CACjC,GAAID,EAAO,CACTC,EAAiBzB,MAAM0B,WAAa;AACpCD,EAAiBzB,MAAM2B,MAAQ,MACjC,CACAnJ,YAAW,KACTiJ,EAAiBzB,MAAM0B,WAAa,SAAS9Y,OAAO2Y,EAAQ,IAAM;AAClEE,EAAiBzB,MAAM2B,MAAQ,IAAI,GAClC,GACL,CACF,EACMC,qBAAuB,KAC3B,MAAMH,EAAmBzF;AACzB,IAAKyF,EACH;AAEF,MAAMI,EAAwB1V,SAASiM,OAAO6I,iBAAiBQ,GAAkBE;AACjFF,EAAiBzB,MAAMC,eAAe;AACtCwB,EAAiBzB,MAAM2B,MAAQ;AAC/B,MAAMG,EAA4B3V,SAASiM,OAAO6I,iBAAiBQ,GAAkBE,OAC/EI,EAA0BF,EAAwBC,EAA4B;AACpFL,EAAiBzB,MAAM2B,MAAQ,GAAG/Y,OAAOmZ,EAAyB,IAAI,EAQlEC,UAAY,IAAwB,oBAAX5J,QAA8C,oBAAbN,SAE1DmK,EAAY,4BAA6BrZ,OAAOgQ,EAAYiC,MAAO,wBAA0BjS,OAAOgQ,EAAY,kBAAmB,aAAehQ,OAAOgQ,EAAY6B,MAAO,sDAA4D7R,OAAOgQ,EAAYsD,MAAO,+BAAiCtT,OAAOgQ,EAAY,kBAAmB,4BAA8BhQ,OAAOgQ,EAAYM,KAAM,6BAA+BtQ,OAAOgQ,EAAYoC,MAAO,wBAA0BpS,OAAOgQ,EAAYiC,MAAO,UAAYjS,OAAOgQ,EAAYiC,MAAO,4BAA8BjS,OAAOgQ,EAAY,kBAAmB,UAAYhQ,OAAOgQ,EAAY,kBAAmB,+BAAiChQ,OAAOgQ,EAAYvE,MAAO,UAAYzL,OAAOgQ,EAAYvE,MAAO,uCAA2CzL,OAAOgQ,EAAYsJ,KAAM,yBAA2BtZ,OAAOgQ,EAAYxE,MAAO,0FAA8FxL,OAAOgQ,EAAYuJ,OAAQ,UAAYvZ,OAAOgQ,EAAYuJ,OAAQ,gCAAkCvZ,OAAOgQ,EAAYyG,MAAO,+BAAiCzW,OAAOgQ,EAAYwG,SAAU,wCAA4CxW,OAAOgQ,EAAYwG,SAAU,4BAA8BxW,OAAOgQ,EAAYwJ,MAAO,gDAAkDxZ,OAAOgQ,EAAYyJ,SAAU,UAAYzZ,OAAOgQ,EAAYyJ,SAAU,kCAAoCzZ,OAAOgQ,EAAY,sBAAuB,UAAYhQ,OAAOgQ,EAAY,sBAAuB,6BAA+BhQ,OAAOgQ,EAAYwC,QAAS,yBAA2BxS,OAAOgQ,EAAYgD,OAAQ,gDAAoDhT,OAAOgQ,EAAYyC,QAAS,mDAAuDzS,OAAOgQ,EAAY6C,KAAM,mDAAuD7S,OAAOgQ,EAAY2C,OAAQ,2CAA6C3S,OAAOgQ,EAAYmD,OAAQ,6BAA+BnT,OAAOgQ,EAAY,gCAAiC,yBAA2BhQ,OAAOgQ,EAAY,sBAAuB,kCAAmCnO,QAAQ,aAAc,IAKtnE6X,kBAAoB,KACxB,MAAMC,EAAerI;AACrB,IAAKqI,EACH,OAAO;AAETA,EAAazD;AACba,YAAY,CAAC7H,SAAS0K,gBAAiB1K,SAASC,MAAO,CAACa,EAAY,eAAgBA,EAAY,eAAgBA,EAAY;AAC5H,OAAO,CAAI,EAEP6J,yBAA2B,KAC/BhL,EAAYiL,gBAAgBC,wBAAwB,EAEhDC,wBAA0B,KAC9B,MAAMnI,EAAQD,WACRnG,EAAQuL,sBAAsBnF,EAAO7B,EAAYvE,OACjD6N,EAAOtC,sBAAsBnF,EAAO7B,EAAYsJ,MAEhD9N,EAAQqG,EAAMN,cAAc,IAAIvR,OAAOgQ,EAAYxE,MAAO,WAE1DyO,EAAcpI,EAAMN,cAAc,IAAIvR,OAAOgQ,EAAYxE,MAAO,YAChE+N,EAASvC,sBAAsBnF,EAAO7B,EAAYuJ,QAElD/C,EAAW3E,EAAMN,cAAc,IAAIvR,OAAOgQ,EAAYwG,SAAU,WAChEiD,EAAWzC,sBAAsBnF,EAAO7B,EAAYyJ;AAC1DhO,EAAMyO,QAAUL;AAChBP,EAAKa,SAAWN;AAChBN,EAAOY,SAAWN;AAClBrD,EAAS2D,SAAWN;AACpBJ,EAASS,QAAUL;AACnBrO,EAAM0O,QAAU,KACdL;AACAI,EAAY7c,MAAQoO,EAAMpO,KAAK;AAEjCoO,EAAM2O,SAAW,KACfN;AACAI,EAAY7c,MAAQoO,EAAMpO,KAAK,CAChC,EAOGgd,UAAYrY,GAA4B,iBAAXA,EAAsBmN,SAASqC,cAAcxP,GAAUA,EAKpFsY,mBAAqBtE,IACzB,MAAMlE,EAAQD;AACdC,EAAMyI,aAAa,OAAQvE,EAAOrB,MAAQ,QAAU;AACpD7C,EAAMyI,aAAa,YAAavE,EAAOrB,MAAQ,SAAW;AACrDqB,EAAOrB,OACV7C,EAAMyI,aAAa,aAAc,OACnC,EAMIC,SAAWC,IAC0C,QAArDhL,OAAO6I,iBAAiBmC,GAAeC,WACzCpE,SAAS/E,eAAgBtB,EAAY0K,IACvC,EAQIC,KAAO5E,IAEX,MAAM6E,EAAsBlB;AAC5B,GAAIN,YAAa,CACfjd,MAAM;AACN,MACF,CACA,MAAMqV,EAAYtC,SAAS2L,cAAc;AACzCrJ,EAAUrB,UAAYH,EAAYwB;AAC9BoJ,GACFvE,SAAS7E,EAAWxB,EAAY;AAElC6E,aAAarD,EAAW6H;AACxB,MAAMmB,EAAgBJ,UAAUrE,EAAOhU;AACvCyY,EAAchF,YAAYhE;AAC1B6I,mBAAmBtE;AACnBwE,SAASC;AACTR,yBAAyB,EAOrBc,qBAAuB,CAACC,EAAOhZ,KAE/BgZ,aAAiB/L,YACnBjN,EAAOyT,YAAYuF,GAIK,iBAAVA,EACdC,aAAaD,EAAOhZ,GAIbgZ,GACPlG,aAAa9S,EAAQgZ,EACvB,EAOIC,aAAe,CAACD,EAAOhZ,KAEvBgZ,EAAME,OACRC,iBAAiBnZ,EAAQgZ,GAKzBlG,aAAa9S,EAAQgZ,EAAM1b,WAC7B,EAOI6b,iBAAmB,CAACnZ,EAAQ+S,KAChC/S,EAAOiT,YAAc;AACrB,GAAI,KAAKF,EACP,IAAK,IAAIxb,EAAI,EAAIA,KAAKwb,EAAOxb,IAC3ByI,EAAOyT,YAAYV,EAAKxb,GAAGqc,WAAU;KAGvC5T,EAAOyT,YAAYV,EAAKa,WAAU,GACpC,EAMIwF,EAAoB,MAExB,GAAI/B,YACF,OAAO;AAET,MAAMgC,EAASlM,SAAS2L,cAAc;AAGtC,YAA4C,IAAjCO,EAAOhE,MAAMiE,gBACf,0BAI6B,IAA3BD,EAAOhE,MAAMkE,WACf,cAGV,EAjByB,GAuBpBC,cAAgB,CAACC,EAAUzF,KAC/B,MAAMvD,EAAUS,aACVD,EAASD;AACf,GAAKP,GAAYQ,EAAjB,CAKK+C,EAAO0F,mBAAsB1F,EAAO2F,gBAAmB3F,EAAO4F,iBAGjErE,KAAK9E,GAFLgF,KAAKhF;AAMP2D,iBAAiB3D,EAASuD,EAAQ;AAGlC6F,cAAcpJ,EAASQ,EAAQ+C;AAG/BlB,aAAa7B,EAAQ+C,EAAO8F,YAAc;AAC1C1F,iBAAiBnD,EAAQ+C,EAAQ,SAjBjC,CAiB0C;AAQ5C,SAAS6F,cAAcpJ,EAASQ,EAAQ+C,GACtC,MAAM+F,EAAgBvJ,mBAChBwJ,EAAanJ,gBACboJ,EAAetJ;AACrB,GAAKoJ,GAAkBC,GAAeC,EAAtC,CAKAC,aAAaH,EAAe,UAAW/F;AACvCkG,aAAaF,EAAY,OAAQhG;AACjCkG,aAAaD,EAAc,SAAUjG;AACrCmG,qBAAqBJ,EAAeC,EAAYC,EAAcjG;AAC9D,GAAIA,EAAOoG,eACT,GAAIpG,EAAOrB,MAAO,CAChBlC,EAAQ4J,aAAaJ,EAAcF;AACnCtJ,EAAQ4J,aAAaL,EAAYD,EACnC,KAAO,CACLtJ,EAAQ4J,aAAaJ,EAAchJ;AACnCR,EAAQ4J,aAAaL,EAAY/I;AACjCR,EAAQ4J,aAAaN,EAAe9I,EACtC,CAfF,CAiBF,CAQA,SAASkJ,qBAAqBJ,EAAeC,EAAYC,EAAcjG,GACrE,GAAKA,EAAOsG,eAAZ,CAIAhG,SAAS,CAACyF,EAAeC,EAAYC,GAAehM,EAAYsM;AAGhE,GAAIvG,EAAOwG,mBAAoB,CAC7BT,EAAc1E,MAAMoF,gBAAkBzG,EAAOwG;AAC7ClG,SAASyF,EAAe9L,EAAY,mBACtC,CACA,GAAI+F,EAAO0G,gBAAiB,CAC1BV,EAAW3E,MAAMoF,gBAAkBzG,EAAO0G;AAC1CpG,SAAS0F,EAAY/L,EAAY,mBACnC,CACA,GAAI+F,EAAO2G,kBAAmB,CAC5BV,EAAa5E,MAAMoF,gBAAkBzG,EAAO2G;AAC5CrG,SAAS2F,EAAchM,EAAY,mBACrC,CAfA,MAFE+G,YAAY,CAAC+E,EAAeC,EAAYC,GAAehM,EAAYsM,OAkBvE,CAOA,SAASL,aAAaU,EAAQC,EAAY7G,GACxC,MAAM8G,EAAyDrM,sBAAsBoM;AACrFhF,OAAO+E,EAAQ5G,EAAO,OAAO/V,OAAO6c,EAAY,WAAY;AAC5DhI,aAAa8H,EAAQ5G,EAAO,GAAG/V,OAAO4c,EAAY,gBAAkB;AACpED,EAAOrC,aAAa,aAAcvE,EAAO,GAAG/V,OAAO4c,EAAY,qBAAuB;AAGtFD,EAAOxM,UAAYH,EAAY4M;AAC/BzG,iBAAiBwG,EAAQ5G,EAAQ,GAAG/V,OAAO4c,EAAY,UACzD,CAMA,MAAME,kBAAoB,CAACtB,EAAUzF,KACnC,MAAMgH,EAAc1J;AACpB,GAAK0J,EAAL,CAGAlI,aAAakI,EAAahH,EAAOiH,iBAAmB;AAGpD7G,iBAAiB4G,EAAahH,EAAQ;AACtC6B,OAAOmF,EAAahH,EAAOkH;AAC3BF,EAAYzC,aAAa,aAAcvE,EAAOmH,sBAAwB,GANtE,CAMyE,EAOrEC,gBAAkB,CAAC3B,EAAUzF,KACjC,MAAMvE,EAAYF;AAClB,GAAKE,EAAL,CAGA4L,oBAAoB5L,EAAWuE,EAAOsH;AACtCC,oBAAoB9L,EAAWuE,EAAOwH;AACtCC,gBAAgBhM,EAAWuE,EAAO0H;AAGlCtH,iBAAiB3E,EAAWuE,EAAQ,YANpC,CAMgD;AAOlD,SAASqH,oBAAoB5L,EAAW6L,GACd,iBAAbA,EACT7L,EAAU4F,MAAMsG,WAAaL,EACnBA,GACVhH,SAAS,CAACnH,SAAS0K,gBAAiB1K,SAASC,MAAOa,EAAY,eAEpE,CAMA,SAASsN,oBAAoB9L,EAAW+L,GACtC,GAAKA,EAGL,GAAIA,KAAYvN,EACdqG,SAAS7E,EAAWxB,EAAYuN;IAC3B,CACL5M,KAAK;AACL0F,SAAS7E,EAAWxB,EAAY2N,OAClC,CACF,CAMA,SAASH,gBAAgBhM,EAAWiM,GAC7BA,GAGLpH,SAAS7E,EAAWxB,EAAY,QAAQhQ,OAAOyd,IACjD,CAYA,IAAIG,EAAe,CACjBC,YAAa,IAAIC,QACjBC,SAAU,IAAID;AAOhB,MAAME,EAAe,CAAC,QAAS,OAAQ,QAAS,SAAU,QAAS,WAAY,YAMzEC,YAAc,CAACzC,EAAUzF,KAC7B,MAAMlE,EAAQD;AACd,IAAKC,EACH;AAEF,MAAMgM,EAAcD,EAAaC,YAAYvhB,IAAIkf,GAC3C0C,GAAYL,GAAe9H,EAAOtK,QAAUoS,EAAYpS;AAC9DuS,EAAa1I,SAAQiB,IACnB,MAAM4H,EAAiBnH,sBAAsBnF,EAAO7B,EAAYuG;AAChE,GAAK4H,EAAL,CAKAC,cAAc7H,EAAYR,EAAOsI;AAGjCF,EAAehO,UAAYH,EAAYuG;AACnC2H,GACF1G,KAAK2G,EARP,CASA;AAEF,GAAIpI,EAAOtK,MAAO,CACZyS,GACFI,UAAUvI;AAGZwI,eAAexI,EACjB,GAMIuI,UAAYvI,IAChB,IAAKA,EAAOtK,MACV;AAEF,IAAK+S,EAAgBzI,EAAOtK,OAAQ,CAClCtP,MAAM,qJAA4K6D,OAAO+V,EAAOtK,MAAO;AACvM,MACF,CACA,MAAM0S,EAAiBM,kBAAkB1I,EAAOtK,OAC1CA,EAAQ+S,EAAgBzI,EAAOtK,OAAO0S,EAAgBpI;AAC5DuB,KAAK6G;AAGDpI,EAAO2I,gBACT9O,YAAW,KACT8G,WAAWjL,EAAM,GAErB,EAMIkT,iBAAmBlT,IACvB,IAAK,IAAInS,EAAI,EAAGA,EAAImS,EAAMmT,WAAW5kB,OAAQV,IAAK,CAChD,MAAMulB,EAAWpT,EAAMmT,WAAWtlB,GAAG+R,KAChC,CAAC,KAAM,OAAQ,QAAS,SAASpI,SAAS4b,IAC7CpT,EAAMqT,gBAAgBD,EAE1B,GAOIT,cAAgB,CAAC7H,EAAY8H,KACjC,MAAM5S,EAAQ6K,WAAW1E,WAAY2E;AACrC,GAAK9K,EAAL,CAGAkT,iBAAiBlT;AACjB,IAAK,MAAMsT,KAAQV,EACjB5S,EAAM6O,aAAayE,EAAMV,EAAgBU,GAH3C,CAIA,EAMIR,eAAiBxI,IACrB,MAAMoI,EAAiBM,kBAAkB1I,EAAOtK;AACd,iBAAvBsK,EAAOK,aAChBC,SAAS8H,EAAgBpI,EAAOK,YAAY3K,MAC9C,EAOIuT,oBAAsB,CAACvT,EAAOsK,KAC7BtK,EAAMwT,cAAelJ,EAAOmJ,mBAC/BzT,EAAMwT,YAAclJ,EAAOmJ,iBAC7B,EAQIC,cAAgB,CAAC1T,EAAO2T,EAAWrJ,KACvC,GAAIA,EAAOsJ,WAAY,CACrB,MAAM7F,EAAQtK,SAAS2L,cAAc,SAC/ByE,EAAatP,EAAY;AAC/BwJ,EAAMc,aAAa,MAAO7O,EAAM8T;AAChC/F,EAAMrJ,UAAYmP;AACgB,iBAAvBvJ,EAAOK,aAChBC,SAASmD,EAAOzD,EAAOK,YAAYiJ;AAErC7F,EAAMgG,UAAYzJ,EAAOsJ;AACzBD,EAAUK,sBAAsB,cAAejG,EACjD,GAOIiF,kBAAoBiB,GACjB1I,sBAAsBpF,WAAY5B,EAAY0P,IAAc1P,EAAYvE,OAO3EkU,sBAAwB,CAAClU,EAAOmU,KAChC,CAAC,SAAU,UAAU3c,gBAAgB2c,GACvCnU,EAAMrO,MAAQ,GAAG4C,OAAO4f,GACdvO,UAAUuO,IACpBjP,KAAK,iFAAwF3Q,cAAc4f,EAAY,KACzH,EAIIpB,EAAkB,CAAC;AAOzBA,EAAgBqB,KAAOrB,EAAgBsB,MAAQtB,EAAgBuB,SAAWvB,EAAgBwB,OAASxB,EAAgByB,IAAMzB,EAAgB0B,IAAM,CAACzU,EAAOsK,KACrJ4J,sBAAsBlU,EAAOsK,EAAO6J;AACpCT,cAAc1T,EAAOA,EAAOsK;AAC5BiJ,oBAAoBvT,EAAOsK;AAC3BtK,EAAM7M,KAAOmX,EAAOtK;AACpB,OAAOA,CAAK;AAQd+S,EAAgBlF,KAAO,CAAC7N,EAAOsK,KAC7BoJ,cAAc1T,EAAOA,EAAOsK;AAC5BiJ,oBAAoBvT,EAAOsK;AAC3B,OAAOtK,CAAK;AAQd+S,EAAgBhT,MAAQ,CAACA,EAAOuK,KAC9B,MAAMoK,EAAa3U,EAAM+F,cAAc,SACjC0I,EAAczO,EAAM+F,cAAc;AACxCoO,sBAAsBQ,EAAYpK,EAAO6J;AACzCO,EAAWvhB,KAAOmX,EAAOtK;AACzBkU,sBAAsB1F,EAAalE,EAAO6J;AAC1CT,cAAcgB,EAAY3U,EAAOuK;AACjC,OAAOvK,CAAK;AAQdgT,EAAgBjF,OAAS,CAACA,EAAQxD,KAChCwD,EAAOvE,YAAc;AACrB,GAAIe,EAAOmJ,iBAAkB,CAC3B,MAAMD,EAAc/P,SAAS2L,cAAc;AAC3ChG,aAAaoK,EAAalJ,EAAOmJ;AACjCD,EAAY7hB,MAAQ;AACpB6hB,EAAYmB,UAAW;AACvBnB,EAAYoB,UAAW;AACvB9G,EAAO/D,YAAYyJ,EACrB,CACAE,cAAc5F,EAAQA,EAAQxD;AAC9B,OAAOwD,CAAM;AAOfiF,EAAgB/H,MAAQA,IACtBA,EAAMzB,YAAc;AACpB,OAAOyB,CAAK;AAQd+H,EAAgBhI,SAAW,CAAC8J,EAAmBvK,KAC7C,MAAMS,EAAWF,WAAW1E,WAAY;AACxC4E,EAASpZ,MAAQ;AACjBoZ,EAAS/X,QAAUoY,QAAQd,EAAO6J;AAClC,MAAMpG,EAAQ8G,EAAkB/O,cAAc;AAC9CsD,aAAa2E,EAAOzD,EAAOmJ;AAC3B,OAAO1I,CAAQ;AAQjBgI,EAAgB/E,SAAW,CAACA,EAAU1D,KACpC4J,sBAAsBlG,EAAU1D,EAAO6J;AACvCZ,oBAAoBvF,EAAU1D;AAC9BoJ,cAAc1F,EAAUA,EAAU1D;AAMlC,MAAMwK,UAAYpM,GAAM5Q,SAASiM,OAAO6I,iBAAiBlE,GAAIqM,YAAcjd,SAASiM,OAAO6I,iBAAiBlE,GAAIsM;AAGhH7Q,YAAW,KAET,GAAI,qBAAsBJ,OAAQ,CAChC,MAAMkR,EAAoBnd,SAASiM,OAAO6I,iBAAiBzG,YAAYmH,OACjE4H,sBAAwB,KAE5B,IAAKzR,SAASC,KAAK0G,SAAS4D,GAC1B;AAEF,MAAMmH,EAAgBnH,EAAS5B,YAAc0I,UAAU9G;AACnDmH,EAAgBF,EAClB9O,WAAWwF,MAAM2B,MAAQ,GAAG/Y,OAAO4gB,EAAe,MAElD1J,oBAAoBtF,WAAY,QAASmE,EAAOgD,MAClD;AAEF,IAAI8H,iBAAiBF,uBAAuBG,QAAQrH,EAAU,CAC5DmF,YAAY,EACZmC,gBAAiB,CAAC,UAEtB;AAEF,OAAOtH,CAAQ;AAOjB,MAAMuH,cAAgB,CAACxF,EAAUzF,KAC/B,MAAMkL,EAAgB/O;AACtB,GAAK+O,EAAL,CAGA9K,iBAAiB8K,EAAelL,EAAQ;AAGxC,GAAIA,EAAOhB,KAAM,CACf+F,qBAAqB/E,EAAOhB,KAAMkM;AAClC3J,KAAK2J,EAAe,QACtB,MAGK,GAAIlL,EAAO8J,KAAM,CACpBoB,EAAcjM,YAAce,EAAO8J;AACnCvI,KAAK2J,EAAe,QACtB,MAIEzJ,KAAKyJ;AAEPhD,YAAYzC,EAAUzF,EAnBtB,CAmB6B,EAOzBmL,aAAe,CAAC1F,EAAUzF,KAC9B,MAAM5C,EAASD;AACf,GAAKC,EAAL,CAGAyE,OAAOzE,EAAQ4C,EAAO5C,OAAQ;AAC1B4C,EAAO5C,QACT2H,qBAAqB/E,EAAO5C,OAAQA;AAItCgD,iBAAiBhD,EAAQ4C,EAAQ,SAPjC,CAO0C,EAOtCoL,WAAa,CAAC3F,EAAUzF,KAC5B,MAAM8H,EAAcD,EAAaC,YAAYvhB,IAAIkf,GAC3ClL,EAAOwB;AACb,GAAKxB,EAKL,GAAIuN,GAAe9H,EAAOzF,OAASuN,EAAYvN,KAA/C,CAEE8Q,WAAW9Q,EAAMyF;AACjBsL,YAAY/Q,EAAMyF,EAEpB,MACA,GAAKA,EAAOzF,MAASyF,EAAOuL,SAI5B,GAAIvL,EAAOzF,OAAyD,IAAjDxU,OAAOylB,KAAKlR,GAAWxV,QAAQkb,EAAOzF,MAAzD,CACEnU,MAAM,oFAA+F6D,OAAO+V,EAAOzF,KAAM;AACzHkH,KAAKlH,EAEP,KAJA,CAKAgH,KAAKhH;AAGL8Q,WAAW9Q,EAAMyF;AACjBsL,YAAY/Q,EAAMyF;AAGlBM,SAAS/F,EAAMyF,EAAOE,WAAaF,EAAOE,UAAU3F,KARpD,MAPEkH,KAAKlH,EAekD,EAOrD+Q,YAAc,CAAC/Q,EAAMyF,KACzB,IAAK,MAAOyL,EAAUC,KAAkB3lB,OAAO4lB,QAAQrR,GACjD0F,EAAOzF,OAASkR,GAClBzK,YAAYzG,EAAMmR;AAGtBpL,SAAS/F,EAAMyF,EAAOzF,MAAQD,EAAU0F,EAAOzF;AAG/CqR,SAASrR,EAAMyF;AAGf6L;AAGAzL,iBAAiB7F,EAAMyF,EAAQ,OAAO,EAIlC6L,iCAAmC,KACvC,MAAM/P,EAAQD;AACd,IAAKC,EACH;AAEF,MAAMgQ,EAAuBrS,OAAO6I,iBAAiBxG,GAAO2G,iBAAiB,oBAEvEsJ,EAAmBjQ,EAAM6B,iBAAiB;AAChD,IAAK,IAAIpa,EAAI,EAAGA,EAAIwoB,EAAiB9nB,OAAQV,IAC3CwoB,EAAiBxoB,GAAG8d,MAAMoF,gBAAkBqF,CAC9C,EAEIE,EAAkB,oSAClBC,EAAgB,oJAMhBZ,WAAa,CAAC9Q,EAAMyF,KACxB,IAAKA,EAAOzF,OAASyF,EAAOuL,SAC1B;AAEF,IAAIW,EAAa3R,EAAK4R,UAClBC,EAAa;AACjB,GAAIpM,EAAOuL,SACTa,EAAaC,YAAYrM,EAAOuL;KAC3B,GAAoB,YAAhBvL,EAAOzF,KAAoB,CACpC6R,EAAaJ;AACbE,EAAaA,EAAWpgB,QAAQ,gBAAiB,GACnD,MAAO,GAAoB,UAAhBkU,EAAOzF,KAChB6R,EAAaH;KACR,GAAIjM,EAAOzF,KAAM,CACtB,MAAM+R,EAAkB,CACtBC,SAAU,IACVC,QAAS,IACTC,KAAM;AAERL,EAAaC,YAAYC,EAAgBtM,EAAOzF,MAClD,CACI2R,EAAWngB,SAAWqgB,EAAWrgB,QACnC+S,aAAavE,EAAM6R,EACrB,EAOIR,SAAW,CAACrR,EAAMyF,KACtB,GAAKA,EAAO0M,UAAZ,CAGAnS,EAAK8G,MAAMsL,MAAQ3M,EAAO0M;AAC1BnS,EAAK8G,MAAMuL,YAAc5M,EAAO0M;AAChC,IAAK,MAAMG,IAAO,CAAC,0BAA2B,2BAA4B,0BAA2B,4BACnGnL,SAASnH,EAAMsS,EAAK,kBAAmB7M,EAAO0M;AAEhDhL,SAASnH,EAAM,sBAAuB,cAAeyF,EAAO0M,UAN5D,CAMsE,EAOlEL,YAAcS,GAAW,eAAgB7iB,OAAOgQ,EAAY,gBAAiB,MAAOhQ,OAAO6iB,EAAS,UAMpGC,YAAc,CAACtH,EAAUzF,KAC7B,MAAM3D,EAAQD;AACd,GAAKC,EAGL,GAAK2D,EAAOgN,SAAZ,CAIAzL,KAAKlF,EAAO;AAGZA,EAAMkI,aAAa,MAAOvE,EAAOgN;AACjC3Q,EAAMkI,aAAa,MAAOvE,EAAOiN,UAAY;AAG7C9L,oBAAoB9E,EAAO,QAAS2D,EAAOkN;AAC3C/L,oBAAoB9E,EAAO,SAAU2D,EAAOmN;AAG5C9Q,EAAMjC,UAAYH,EAAYoC;AAC9B+D,iBAAiB/D,EAAO2D,EAAQ,QAbhC,MAFEyB,KAAKpF,EAeiC,EAOpC+Q,YAAc,CAAC3H,EAAUzF,KAC7B,MAAMvE,EAAYF,eACZO,EAAQD;AACd,GAAKJ,GAAcK,EAAnB,CAMA,GAAIkE,EAAOrB,MAAO,CAChBwC,oBAAoB1F,EAAW,QAASuE,EAAOgD;AAC/ClH,EAAMuF,MAAM2B,MAAQ;AACpB,MAAM/F,EAASD;AACfC,GAAUnB,EAAMuK,aAAapJ,EAAQlB,UACvC,MACEoF,oBAAoBrF,EAAO,QAASkE,EAAOgD;AAI7C7B,oBAAoBrF,EAAO,UAAWkE,EAAOqN;AAGzCrN,EAAO2M,QACT7Q,EAAMuF,MAAMsL,MAAQ3M,EAAO2M;AAIzB3M,EAAO2H,aACT7L,EAAMuF,MAAMsG,WAAa3H,EAAO2H;AAElClG,KAAKlF;AAGL+Q,aAAaxR,EAAOkE,EA5BpB,CA4B2B,EAOvBsN,aAAe,CAACxR,EAAOkE,KAC3B,MAAME,EAAYF,EAAOE,WAAa,CAAC;AAEvCpE,EAAM1B,UAAY,GAAGnQ,OAAOgQ,EAAY6B,MAAO,KAAK7R,OAAOqU,YAAYxC,GAASoE,EAAUpE,MAAQ;AAClG,GAAIkE,EAAOrB,MAAO,CAChB2B,SAAS,CAACnH,SAAS0K,gBAAiB1K,SAASC,MAAOa,EAAY;AAChEqG,SAASxE,EAAO7B,EAAY0E,MAC9B,MACE2B,SAASxE,EAAO7B,EAAYsT;AAI9BnN,iBAAiBtE,EAAOkE,EAAQ;AACE,iBAAvBA,EAAOK,aAChBC,SAASxE,EAAOkE,EAAOK;AAIrBL,EAAOzF,MACT+F,SAASxE,EAAO7B,EAAY,QAAQhQ,OAAO+V,EAAOzF,OACpD,EAOIiT,oBAAsB,CAAC/H,EAAUzF,KACrC,MAAMyN,EAAyBnR;AAC/B,IAAKmR,EACH;AAEF,MAAM,cACJC,EAAa,oBACbC,GACE3N;AACJ,GAAK0N,GAA0C,IAAzBA,EAAczpB,aAAwC0E,IAAxBglB,EAApD,CAIApM,KAAKkM;AACLA,EAAuBxO,YAAc;AACjC0O,GAAuBD,EAAczpB,QACvC2W,KAAK;AAEP8S,EAAcnO,SAAQ,CAACqO,EAAMC,KAC3B,MAAMC,EAASC,kBAAkBH;AACjCH,EAAuBhO,YAAYqO;AAC/BD,IAAUF,GACZrN,SAASwN,EAAQ7T,EAAY;AAE/B,GAAI4T,IAAUH,EAAczpB,OAAS,EAAG,CACtC,MAAM+pB,EAASC,kBAAkBjO;AACjCyN,EAAuBhO,YAAYuO,EACrC,IAfF,MAFEvM,KAAKgM,EAkBL,EAOEM,kBAAoBH,IACxB,MAAME,EAAS3U,SAAS2L,cAAc;AACtCxE,SAASwN,EAAQ7T,EAAY;AAC7B6E,aAAagP,EAAQF;AACrB,OAAOE,CAAM,EAOTG,kBAAoBjO,IACxB,MAAMgO,EAAS7U,SAAS2L,cAAc;AACtCxE,SAAS0N,EAAQ/T,EAAY;AACzB+F,EAAOkO,uBACT/M,oBAAoB6M,EAAQ,QAAShO,EAAOkO;AAE9C,OAAOF,CAAM,EAOTG,YAAc,CAAC1I,EAAUzF,KAC7B,MAAM9D,EAAQD;AACd,GAAKC,EAAL,CAGA2F,OAAO3F,EAAO8D,EAAO9D,OAAS8D,EAAOoO,UAAW;AAC5CpO,EAAO9D,OACT6I,qBAAqB/E,EAAO9D,MAAOA;AAEjC8D,EAAOoO,YACTlS,EAAMuN,UAAYzJ,EAAOoO;AAI3BhO,iBAAiBlE,EAAO8D,EAAQ,QAVhC,CAUwC,EAOpCqO,OAAS,CAAC5I,EAAUzF,KACxBoN,YAAY3H,EAAUzF;AACtBoH,gBAAgB3B,EAAUzF;AAC1BwN,oBAAoB/H,EAAUzF;AAC9BoL,WAAW3F,EAAUzF;AACrB+M,YAAYtH,EAAUzF;AACtBmO,YAAY1I,EAAUzF;AACtB+G,kBAAkBtB,EAAUzF;AAC5BiL,cAAcxF,EAAUzF;AACxBwF,cAAcC,EAAUzF;AACxBmL,aAAa1F,EAAUzF;AACvB,MAAMlE,EAAQD;AACkB,mBAArBmE,EAAOsO,WAA4BxS,GAC5CkE,EAAOsO,UAAUxS,EACnB,EAMIyS,UAAY,IACTjQ,YAAYzC,YAMf2S,aAAe,KACnB,IAAIC;AACJ,OAAwD,QAAhDA,EAAwBjS,0BAA0D,IAA1BiS,OAAmC,EAASA,EAAsBC,OAAO,EAMrIC,UAAY,KAChB,IAAIC;AACJ,OAAkD,QAA1CA,EAAqB/R,uBAAoD,IAAvB+R,OAAgC,EAASA,EAAmBF,OAAO,EAMzHG,YAAc,KAClB,IAAIC;AACJ,OAAsD,QAA9CA,EAAuBnS,yBAAwD,IAAzBmS,OAAkC,EAASA,EAAqBJ,OAAO,EAMjIK,EAAgBhpB,OAAOipB,OAAO,CAClCpS,OAAQ,SACR0K,SAAU,WACV/J,MAAO,QACP0R,IAAK,MACLrM,MAAO,UAMHsM,qBAAuBpW,IAC3B,GAAIA,EAAYqW,eAAiBrW,EAAYsW,oBAAqB,CAChEtW,EAAYqW,cAAcE,oBAAoB,UAAWvW,EAAYwW,eAAgB,CACnFC,QAASzW,EAAY0W;AAEvB1W,EAAYsW,qBAAsB,CACpC,GAQIK,kBAAoB,CAAC3W,EAAagP,EAAa4H,KACnDR,qBAAqBpW;AACrB,IAAKgP,EAAYnJ,MAAO,CACtB7F,EAAYwW,eAAiBppB,GAAKopB,eAAexH,EAAa5hB,EAAGwpB;AACjE5W,EAAYqW,cAAgBrH,EAAY0H,uBAAyB/V,OAASoC;AAC1E/C,EAAY0W,uBAAyB1H,EAAY0H;AACjD1W,EAAYqW,cAAcQ,iBAAiB,UAAW7W,EAAYwW,eAAgB,CAChFC,QAASzW,EAAY0W;AAEvB1W,EAAYsW,qBAAsB,CACpC,GAOIQ,SAAW,CAAC/B,EAAOgC,KACvB,IAAIC;AACJ,MAAMC,EAAoBtS;AAE1B,GAAIsS,EAAkB9rB,OAAtB,CACE4pB,GAAgBgC;AAGZhC,IAAUkC,EAAkB9rB,OAC9B4pB,EAAQ,GAGY,IAAXA,IACTA,EAAQkC,EAAkB9rB,OAAS;AAErC8rB,EAAkBlC,GAAO3U,OAE3B,MAEiC,QAAhC4W,EAAgBjU,kBAA0C,IAAlBiU,GAA4BA,EAAc5W,OAAO,EAEtF8W,EAAsB,CAAC,aAAc,aACrCC,EAA0B,CAAC,YAAa,WAOxCX,eAAiB,CAACxH,EAAaoI,EAAOR,KAC1C,GAAK5H,IAQDoI,EAAMC,aAAiC,MAAlBD,EAAME,QAA/B,CAGItI,EAAYuI,wBACdH,EAAMI;AAIU,UAAdJ,EAAMK,IACRC,YAAYN,EAAOpI,GAIE,QAAdoI,EAAMK,IACbE,UAAUP,GAIH,IAAIF,KAAwBC,GAAyB/iB,SAASgjB,EAAMK,KAC3EG,aAAaR,EAAMK,KAIE,WAAdL,EAAMK,KACbI,UAAUT,EAAOpI,EAAa4H,EAtBhC,CAuBA,EAOIc,YAAc,CAACN,EAAOpI,KAE1B,IAAK5M,eAAe4M,EAAY8I,eAC9B;AAEF,MAAMlb,EAAQ6K,WAAW1E,WAAYiM,EAAYpS;AACjD,GAAIwa,EAAMlkB,QAAU0J,GAASwa,EAAMlkB,kBAAkBiN,aAAeiX,EAAMlkB,OAAO6kB,YAAcnb,EAAMmb,UAAW,CAC9G,GAAI,CAAC,WAAY,QAAQ3jB,SAAS4a,EAAYpS,OAC5C;AAGF8Y;AACA0B,EAAMY,gBACR,GAMIL,UAAYP,IAChB,MAAMzL,EAAgByL,EAAMlkB,OACtB+jB,EAAoBtS;AAC1B,IAAIsT,GAAY;AAChB,IAAK,IAAIxtB,EAAI,EAAGA,EAAIwsB,EAAkB9rB,OAAQV,IAC5C,GAAIkhB,IAAkBsL,EAAkBxsB,GAAI,CAC1CwtB,EAAWxtB;AACX,KACF,CAIG2sB,EAAMc,SAMTpB,SAASmB,GAAW,GALpBnB,SAASmB,EAAU;AAOrBb,EAAMI;AACNJ,EAAMY,gBAAgB,EAMlBJ,aAAeH,IACnB,MAAM9T,EAAUS,aACV6I,EAAgBvJ,mBAChBwJ,EAAanJ,gBACboJ,EAAetJ;AACrB,KAAKF,GAAYsJ,GAAkBC,GAAeC,GAChD;AAGF,MAAMgL,EAAU,CAAClL,EAAeC,EAAYC;AAC5C,GAAI9M,SAAS+X,yBAAyBjY,cAAgBgY,EAAQ/jB,SAASiM,SAAS+X,eAC9E;AAEF,MAAMC,EAAUnB,EAAoB9iB,SAASqjB,GAAO,qBAAuB;AAC3E,IAAIa,EAAgBjY,SAAS+X;AAC7B,GAAKE,EAAL,CAGA,IAAK,IAAI7tB,EAAI,EAAGA,EAAIkZ,EAAQyE,SAASjd,OAAQV,IAAK,CAChD6tB,EAAgBA,EAAcD;AAC9B,IAAKC,EACH;AAEF,GAAIA,aAAyBC,mBAAqB/S,YAAY8S,GAC5D,KAEJ,CACIA,aAAyBC,mBAC3BD,EAAclY,OAXhB,CAYA,EAQIyX,UAAY,CAACT,EAAOpI,EAAa4H,KACrC,GAAIxU,eAAe4M,EAAYwJ,gBAAiB,CAC9CpB,EAAMY;AACNpB,EAAYX,EAAcE,IAC5B;AAaF,IAAIsC,EAAiB,CACnBC,mBAAoB,IAAIzJ,QACxB0J,kBAAmB,IAAI1J;AAQzB,MAAM2J,cAAgB,KACpB,MAAMC,EAAehtB,MAAMwC,KAAKgS,SAASC,KAAK8H;AAC9CyQ,EAAapS,SAAQnB,IACnB,GAAIA,IAAO7C,iBAAkB6C,EAAG0B,SAASvE,gBAAzC,CAGI6C,EAAGS,aAAa,gBAClBT,EAAGmG,aAAa,4BAA6BnG,EAAGL,aAAa,gBAAkB;AAEjFK,EAAGmG,aAAa,cAAe,OAJ/B,CAIsC,GACtC,EAEEqN,gBAAkB,KACtB,MAAMD,EAAehtB,MAAMwC,KAAKgS,SAASC,KAAK8H;AAC9CyQ,EAAapS,SAAQnB,IACnB,GAAIA,EAAGS,aAAa,6BAA8B,CAChDT,EAAGmG,aAAa,cAAenG,EAAGL,aAAa,8BAAgC;AAC/EK,EAAG2K,gBAAgB,4BACrB,MACE3K,EAAG2K,gBAAgB,cACrB,GACA,EAIE8I,EAAkC,oBAAXpY,UAA4BA,OAAOqY,aAM1DC,OAAS,KACb,GAAIF,IAAkBrT,SAASrF,SAASC,KAAMa,EAAY+X,QAAS,CACjE,MAAMtoB,EAASyP,SAASC,KAAK6Y;AAC7B9Y,SAASC,KAAKiI,MAAM6Q,IAAM,GAAGjoB,QAAiB,EAAVP,EAAa;AACjD4W,SAASnH,SAASC,KAAMa,EAAY+X;AACpCG,gBACF,GAMIA,eAAiB,KACrB,MAAM1W,EAAYF;AAClB,IAAKE,EACH;AAGF,IAAI2W;AAIJ3W,EAAU4W,aAAenC,IACvBkC,EAAmBE,uBAAuBpC,EAAM;AAKlDzU,EAAU8W,YAAcrC,IACtB,GAAIkC,EAAkB,CACpBlC,EAAMY;AACNZ,EAAMI,iBACR,EACD,EAOGgC,uBAAyBpC,IAC7B,MAAMlkB,EAASkkB,EAAMlkB,OACfyP,EAAYF,eACZ2P,EAAgB/O;AACtB,SAAKV,IAAcyP,GAGfsH,SAAStC,IAAUuC,OAAOvC,IAG1BlkB,IAAWyP,IAGVyG,aAAazG,MAAczP,aAAkBiN,cAAkC,UAAnBjN,EAAO0mB,SAErD,aAAnB1mB,EAAO0mB,SAELxQ,aAAagJ,IAEfA,EAAcpL,SAAS9T,IAGX,EASRwmB,SAAWtC,GACRA,EAAMyC,SAAWzC,EAAMyC,QAAQ1uB,QAAyC,WAA/BisB,EAAMyC,QAAQ,GAAGC,UAS7DH,OAASvC,GACNA,EAAMyC,SAAWzC,EAAMyC,QAAQ1uB,OAAS,EAE3C4uB,WAAa,KACjB,GAAIrU,SAASrF,SAASC,KAAMa,EAAY+X,QAAS,CAC/C,MAAMtoB,EAAS8D,SAAS2L,SAASC,KAAKiI,MAAM6Q,IAAK;AACjDlR,YAAY7H,SAASC,KAAMa,EAAY+X;AACvC7Y,SAASC,KAAKiI,MAAM6Q,IAAM;AAC1B/Y,SAASC,KAAK6Y,WAAsB,EAAVvoB,CAC5B,GASIopB,iBAAmB,KACvB,MAAMC,EAAY5Z,SAAS2L,cAAc;AACzCiO,EAAU3Y,UAAYH,EAAY;AAClCd,SAASC,KAAKqG,YAAYsT;AAC1B,MAAMC,EAAiBD,EAAUE,wBAAwBjQ,MAAQ+P,EAAUG;AAC3E/Z,SAASC,KAAK+Z,YAAYJ;AAC1B,OAAOC,CAAc;AAOvB,IAAII,EAAsB;AAK1B,MAAMC,4BAA8BC,IAElC,GAA4B,OAAxBF,IAIAja,SAASC,KAAK+I,aAAe1I,OAAO8Z,aAAuC,WAAxBD,GACrD,CAEAF,EAAsB5lB,SAASiM,OAAO6I,iBAAiBnJ,SAASC,MAAMqJ,iBAAiB;AACvFtJ,SAASC,KAAKiI,MAAMmS,aAAe,GAAGvpB,OAAOmpB,EAAsBN,mBAAoB,KACzF,GAEIW,gCAAkC,KACtC,GAA4B,OAAxBL,EAA8B,CAChCja,SAASC,KAAKiI,MAAMmS,aAAe,GAAGvpB,OAAOmpB,EAAqB;AAClEA,EAAsB,IACxB;AASF,SAASM,yBAAyBjO,EAAUhK,EAAWnC,EAAaqa,GAClE,GAAIjV,UACFkV,0BAA0BnO,EAAUkO;IAC/B,CACLta,qBAAqBC,GAAaua,MAAK,IAAMD,0BAA0BnO,EAAUkO;AACjFzE,qBAAqBpW,EACvB,CAIA,GAAI+Y,EAAe,CACjBpW,EAAU8I,aAAa,QAAS;AAChC9I,EAAUsN,gBAAgB;AAC1BtN,EAAU0Q,UAAY,EACxB,MACE1Q,EAAU0E;AAEZ,GAAI5B,UAAW,CACbkV;AACAZ;AACAjB,iBACF,CACAkC,mBACF,CAKA,SAASA,oBACP9S,YAAY,CAAC7H,SAAS0K,gBAAiB1K,SAASC,MAAO,CAACa,EAAYwE,MAAOxE,EAAY,eAAgBA,EAAY,eAAgBA,EAAY,gBACjJ,CAOA,SAASsD,MAAMwW,GACbA,EAAeC,oBAAoBD;AACnC,MAAMvC,EAAqBD,EAAeC,mBAAmBjrB,IAAIE,MAC3DktB,EAAWM,kBAAkBxtB;AACnC,GAAIA,KAAKytB,mBAEP,IAAKH,EAAaI,YAAa,CAC7BC,sBAAsB3tB;AACtB+qB,EAAmBuC,EACrB,OACSJ,GAETnC,EAAmBuC,EAEvB,CACA,MAAME,kBAAoBxO,IACxB,MAAM3J,EAAQD;AACd,IAAKC,EACH,OAAO;AAET,MAAMgM,EAAcD,EAAaC,YAAYvhB,IAAIkf;AACjD,IAAKqC,GAAetJ,SAAS1C,EAAOgM,EAAYuM,UAAUvY,OACxD,OAAO;AAETkF,YAAYlF,EAAOgM,EAAY5H,UAAUpE;AACzCwE,SAASxE,EAAOgM,EAAYuM,UAAUvY;AACtC,MAAMwL,EAAW/L;AACjByF,YAAYsG,EAAUQ,EAAY5H,UAAUoH;AAC5ChH,SAASgH,EAAUQ,EAAYuM,UAAU/M;AACzCgN,qBAAqB7O,EAAU3J,EAAOgM;AACtC,OAAO,CAAI;AAMb,SAASyM,cAAcnuB,GACrB,MAAMmuB,EAAgBhD,EAAeE,kBAAkBlrB,IAAIE;AAC3D2tB,sBAAsB3tB;AAClB8tB,GAEFA,EAAcnuB,EAElB,CAKA,MAAMguB,sBAAwB3O,IAC5B,GAAIA,EAASyO,kBAAmB,QACvBzO,EAASyO;AAEXrM,EAAaC,YAAYvhB,IAAIkf,IAChCA,EAAS+O,UAEb,GAOIR,oBAAsBD,QAEE,IAAjBA,EACF,CACLU,aAAa,EACbC,UAAU,EACVP,aAAa,GAGVpuB,OAAO4uB,OAAO,CACnBF,aAAa,EACbC,UAAU,EACVP,aAAa,GACZJ,GAQCO,qBAAuB,CAAC7O,EAAU3J,EAAOgM,KAC7C,MAAMrM,EAAYF,eAEZqZ,EAAuBxP,GAAqB/C,gBAAgBvG;AAC7B,mBAA1BgM,EAAY+M,WACrB/M,EAAY+M,UAAU/Y;AAEpB8Y,EACFE,aAAarP,EAAU3J,EAAOL,EAAWqM,EAAYxO,YAAawO,EAAY6L,UAG9ED,yBAAyBjO,EAAUhK,EAAWqM,EAAYxO,YAAawO,EAAY6L,SACrF,EAUImB,aAAe,CAACrP,EAAU3J,EAAOL,EAAWnC,EAAaqa,KAC7D,GAAKvO,EAAL,CAGAtM,EAAYic,+BAAiCrB,yBAAyBsB,KAAK,KAAMvP,EAAUhK,EAAWnC,EAAaqa;AACnH7X,EAAM6T,iBAAiBvK,GAAmB,SAAUlf,GAClD,GAAIA,EAAE8F,SAAW8P,EAAO,CACtBhD,EAAYic;OACLjc,EAAYic,8BACrB,CACF,GAPA,CAOE,EAOEnB,0BAA4B,CAACnO,EAAUkO,KAC3C9Z,YAAW,KACe,mBAAb8Z,GACTA,EAASqB,KAAKvP,EAASzF,OAAvB2T;AAGElO,EAAS+O,UACX/O,EAAS+O,UACX,GACA,EASES,YAAcC,IAClB,IAAIpZ,EAAQD;AACPC,GACH,IAAIqZ;AAGNrZ,EAAQD;AACR,IAAKC,EACH;AAEF,MAAMmB,EAASD;AACX0B,UACF+C,KAAK1F,WAELqZ,cAActZ,EAAOoZ;AAEvB3T,KAAKtE;AACLnB,EAAMyI,aAAa,eAAgB;AACnCzI,EAAMyI,aAAa,YAAa;AAChCzI,EAAM5C,OAAO,EAOTkc,cAAgB,CAACtZ,EAAOoZ,KAC5B,MAAMzY,EAAUS,aACVD,EAASD;AACf,GAAKP,GAAYQ,EAAjB,EAGKiY,GAAmB5W,YAAY9B,sBAClC0Y,EAAkB1Y;AAEpB+E,KAAK9E;AACL,GAAIyY,EAAiB,CACnBzT,KAAKyT;AACLjY,EAAOsH,aAAa,yBAA0B2Q,EAAgB9a;AAC9DqC,EAAQ4J,aAAapJ,EAAQiY,EAC/B,CACA5U,SAAS,CAACxE,EAAOW,GAAUxC,EAAYob,QAVvC,CAU+C,EAO3CC,2BAA6B,CAAC7P,EAAUzF,KAC5C,GAAqB,WAAjBA,EAAOtK,OAAuC,UAAjBsK,EAAOtK,MACtC6f,mBAAmB9P,EAAUzF;KACxB,GAAI,CAAC,OAAQ,QAAS,SAAU,MAAO,YAAYwV,MAAKjyB,GAAKA,IAAMyc,EAAOtK,UAAWyF,eAAe6E,EAAO6J,aAAevO,UAAU0E,EAAO6J,aAAc,CAC9JoL,YAAYzY;AACZiZ,iBAAiBhQ,EAAUzF,EAC7B,GAQI0V,cAAgB,CAACjQ,EAAUqC,KAC/B,MAAMpS,EAAQ+P,EAASkQ;AACvB,IAAKjgB,EACH,OAAO;AAET,OAAQoS,EAAYpS,OAClB,IAAK,WACH,OAAOkgB,iBAAiBlgB;AAC1B,IAAK,QACH,OAAOmgB,cAAcngB;AACvB,IAAK,OACH,OAAOogB,aAAapgB;AACtB,QACE,OAAOoS,EAAYiO,cAAgBrgB,EAAMrO,MAAM0E,OAAS2J,EAAMrO,MAClE,EAOIuuB,iBAAmBlgB,GAASA,EAAMhN,QAAU,EAAI,EAMhDmtB,cAAgBngB,GAASA,EAAMhN,QAAUgN,EAAMrO,MAAQ,KAMvDyuB,aAAepgB,GAASA,EAAMsgB,OAAStgB,EAAMsgB,MAAM/xB,OAA4C,OAAnCyR,EAAMqI,aAAa,YAAuBrI,EAAMsgB,MAAQtgB,EAAMsgB,MAAM,GAAK,KAMrIT,mBAAqB,CAAC9P,EAAUzF,KACpC,MAAMlE,EAAQD;AACd,IAAKC,EACH;AAKF,MAAMma,oBAAsBC,IACL,WAAjBlW,EAAOtK,MACTygB,sBAAsBra,EAAOsa,mBAAmBF,GAAelW,GACrC,UAAjBA,EAAOtK,OAChB2gB,qBAAqBva,EAAOsa,mBAAmBF,GAAelW,EAChE;AAEF,GAAI7E,eAAe6E,EAAOkW,eAAiB5a,UAAU0E,EAAOkW,cAAe,CACzEjB,YAAYzY;AACZnB,UAAU2E,EAAOkW,cAAcrC,MAAKqC,IAClCzQ,EAAS6Q;AACTL,oBAAoBC,EAAa,GAErC,KAA0C,iBAAxBlW,EAAOkW,aACvBD,oBAAoBjW,EAAOkW,cAE3B9vB,MAAM,yEAAyE6D,cAAc+V,EAAOkW,cACtG,EAOIT,iBAAmB,CAAChQ,EAAUzF,KAClC,MAAMtK,EAAQ+P,EAASkQ;AACvB,GAAKjgB,EAAL,CAGA+L,KAAK/L;AACL2F,UAAU2E,EAAO6J,YAAYgK,MAAKhK,IAChCnU,EAAMrO,MAAyB,WAAjB2Y,EAAOtK,MAAqB,GAAGzL,OAAOuY,WAAWqH,IAAe,GAAK,GAAG5f,OAAO4f;AAC7FtI,KAAK7L;AACLA,EAAMwD;AACNuM,EAAS6Q,aAAa,IACrBC,OAAMC,IACPpwB,MAAM,gCAAgC6D,OAAOusB;AAC7C9gB,EAAMrO,MAAQ;AACdka,KAAK7L;AACLA,EAAMwD;AACNuM,EAAS6Q,aAAa,GAZxB,CAaE;AAQJ,SAASH,sBAAsBra,EAAOoa,EAAclW,GAClD,MAAMwD,EAASvC,sBAAsBnF,EAAO7B,EAAYuJ;AACxD,IAAKA,EACH;AAOF,MAAMiT,aAAe,CAAC9U,EAAQ+U,EAAaC,KACzC,MAAMC,EAASzd,SAAS2L,cAAc;AACtC8R,EAAOvvB,MAAQsvB;AACf7X,aAAa8X,EAAQF;AACrBE,EAAOtM,SAAWuM,WAAWF,EAAa3W,EAAO6J;AACjDlI,EAAOlC,YAAYmX,EAAO;AAE5BV,EAAa3W,SAAQuX,IACnB,MAAMH,EAAcG,EAAY,GAC1BJ,EAAcI,EAAY;AAKhC,GAAInyB,MAAMmE,QAAQ4tB,GAAc,CAE9B,MAAMK,EAAW5d,SAAS2L,cAAc;AACxCiS,EAAStT,MAAQkT;AACjBI,EAAS1M,UAAW;AACpB7G,EAAO/D,YAAYsX;AACnBL,EAAYnX,SAAQyX,GAAKP,aAAaM,EAAUC,EAAE,GAAIA,EAAE,KAC1D,MAEEP,aAAajT,EAAQkT,EAAaC,EACpC;AAEFnT,EAAOtK,OACT,CAOA,SAASmd,qBAAqBva,EAAOoa,EAAclW,GACjD,MAAMU,EAAQO,sBAAsBnF,EAAO7B,EAAYyG;AACvD,IAAKA,EACH;AAEFwV,EAAa3W,SAAQuX,IACnB,MAAMG,EAAaH,EAAY,GACzBI,EAAaJ,EAAY,GACzBK,EAAahe,SAAS2L,cAAc,SACpCsS,EAAoBje,SAAS2L,cAAc;AACjDqS,EAAWtuB,KAAO;AAClBsuB,EAAW7hB,KAAO2E,EAAYyG;AAC9ByW,EAAW9vB,MAAQ4vB;AACfJ,WAAWI,EAAYjX,EAAO6J,cAChCsN,EAAWzuB,SAAU;AAEvB,MAAM+a,EAAQtK,SAAS2L,cAAc;AACrChG,aAAa2E,EAAOyT;AACpBzT,EAAMrJ,UAAYH,EAAYwJ;AAC9B2T,EAAkB3X,YAAY0X;AAC9BC,EAAkB3X,YAAYgE;AAC9B/C,EAAMjB,YAAY2X,EAAkB;AAEtC,MAAMC,EAAS3W,EAAM/C,iBAAiB;AAClC0Z,EAAOpzB,QACTozB,EAAO,GAAGne,OAEd,CASA,MAAMkd,mBAAqBF,IAEzB,MAAMoB,EAAS;AACXpB,aAAwBqB,IAC1BrB,EAAa3W,SAAQ,CAAClY,EAAOkpB,KAC3B,IAAIiH,EAAiBnwB;AACS,iBAAnBmwB,IAETA,EAAiBpB,mBAAmBoB;AAEtCF,EAAOhzB,KAAK,CAACisB,EAAKiH,GAAgB,IAGpCzxB,OAAOylB,KAAK0K,GAAc3W,SAAQgR,IAChC,IAAIiH,EAAiBtB,EAAa3F;AACJ,iBAAnBiH,IAETA,EAAiBpB,mBAAmBoB;AAEtCF,EAAOhzB,KAAK,CAACisB,EAAKiH,GAAgB;AAGtC,OAAOF,CAAM,EAQTT,WAAa,CAACF,EAAa9M,MACtBA,GAAcA,EAAWvgB,aAAeqtB,EAAYrtB,WAMzDmuB,yBAA2BhS,IAC/B,MAAMqC,EAAcD,EAAaC,YAAYvhB,IAAIkf;AACjDA,EAASiS;AACL5P,EAAYpS,MACdiiB,6BAA6BlS,EAAU,WAEvC/I,QAAQ+I,GAAU,EACpB,EAMImS,sBAAwBnS,IAC5B,MAAMqC,EAAcD,EAAaC,YAAYvhB,IAAIkf;AACjDA,EAASiS;AACL5P,EAAY+P,uBACdF,6BAA6BlS,EAAU,QAEvC3I,KAAK2I,GAAU,EACjB,EAOIqS,wBAA0B,CAACrS,EAAUiK,KACzCjK,EAASiS;AACThI,EAAYX,EAAcnS,OAAO,EAO7B+a,6BAA+B,CAAClS,EAAU5c,KAC9C,MAAMif,EAAcD,EAAaC,YAAYvhB,IAAIkf;AACjD,IAAKqC,EAAYpS,MAAO,CACtBtP,MAAM,0EAA4E6D,OAAOwQ,sBAAsB5R;AAC/G,MACF,CACA,MAAM6M,EAAQ+P,EAASkQ,WACjB9L,EAAa6L,cAAcjQ,EAAUqC;AAC3C,GAAIA,EAAYiQ,eACdC,qBAAqBvS,EAAUoE,EAAYhhB;KACtC,GAAI6M,IAAUA,EAAMuiB,gBAAiB,CAC1CxS,EAASyS;AACTzS,EAAS0S,sBAAsBrQ,EAAYsQ,kBAC7C,KAAoB,SAATvvB,EACTiU,KAAK2I,EAAUoE,GAEfnN,QAAQ+I,EAAUoE,EACpB,EAQImO,qBAAuB,CAACvS,EAAUoE,EAAYhhB,KAClD,MAAMif,EAAcD,EAAaC,YAAYvhB,IAAIkf;AACjDA,EAAS4S;AACT,MAAMC,EAAoB/e,QAAQC,UAAUqa,MAAK,IAAMxY,UAAUyM,EAAYiQ,eAAelO,EAAY/B,EAAYsQ;AACpHE,EAAkBzE,MAAKuE,IACrB3S,EAASyS;AACTzS,EAAS8S;AACLH,EACF3S,EAAS0S,sBAAsBC,GACb,SAATvvB,EACTiU,KAAK2I,EAAUoE,GAEfnN,QAAQ+I,EAAUoE,EACpB,GACA,EAOE/M,KAAO,CAAC2I,EAAUpe,KACtB,MAAMygB,EAAcD,EAAaC,YAAYvhB,IAAIkf,QAAY9c;AACzDmf,EAAY0Q,kBACdvD,YAAYpY;AAEd,GAAIiL,EAAY2Q,QAAS,CACvBhT,EAASyO,mBAAoB;AAC7B,MAAMwE,EAAiBnf,QAAQC,UAAUqa,MAAK,IAAMxY,UAAUyM,EAAY2Q,QAAQpxB,EAAOygB,EAAYsQ;AACrGM,EAAe7E,MAAK8E,IAClB,IAAqB,IAAjBA,EAAwB,CAC1BlT,EAAS6Q;AACTlC,sBAAsB3O,EACxB,MACEA,EAASlI,MAAM,CACbmX,UAAU,EACVrtB,WAA+B,IAAjBsxB,EAA+BtxB,EAAQsxB,GAEzD,IACCpC,OAAMnwB,GAASwyB,WAAWnT,QAAY9c,EAAWvC,IACtD,MACEqf,EAASlI,MAAM,CACbmX,UAAU,EACVrtB,SAEJ,EAOIwxB,YAAc,CAACpT,EAAUpe,KAC7Boe,EAASlI,MAAM,CACbkX,aAAa,EACbptB,SACA,EAQEuxB,WAAa,CAACnT,EAAUrf,KAC5Bqf,EAAS8O,cAAcnuB,EAAM,EAQzBsW,QAAU,CAAC+I,EAAUpe,KACzB,MAAMygB,EAAcD,EAAaC,YAAYvhB,IAAIkf,QAAY9c;AACzDmf,EAAYgR,qBACd7D;AAEF,GAAInN,EAAYiR,WAAY,CAC1BtT,EAASzB;AACTyB,EAASyO,mBAAoB;AAC7B,MAAM8E,EAAoBzf,QAAQC,UAAUqa,MAAK,IAAMxY,UAAUyM,EAAYiR,WAAW1xB,EAAOygB,EAAYsQ;AAC3GY,EAAkBnF,MAAKoF,IACrB,GAAI3a,YAAY/B,0BAA+C,IAApB0c,EAA2B,CACpExT,EAAS6Q;AACTlC,sBAAsB3O,EACxB,MACEoT,YAAYpT,OAAqC,IAApBwT,EAAkC5xB,EAAQ4xB,EACzE,IACC1C,OAAMnwB,GAASwyB,WAAWnT,QAAY9c,EAAWvC,IACtD,MACEyyB,YAAYpT,EAAUpe,EACxB;AAMF,SAASivB,cAEP,MAAMxO,EAAcD,EAAaC,YAAYvhB,IAAIE;AACjD,IAAKqhB,EACH;AAEF,MAAME,EAAWH,EAAaG,SAASzhB,IAAIE;AAC3Cgb,KAAKuG,EAAS/K;AACVyB,UACEoJ,EAAYvN,MACdgH,KAAKxF,WAGPmd,kBAAkBlR;AAEpBhH,YAAY,CAACgH,EAASlM,MAAOkM,EAASvL,SAAUxC,EAAYob;AAC5DrN,EAASlM,MAAMiN,gBAAgB;AAC/Bf,EAASlM,MAAMiN,gBAAgB;AAC/Bf,EAASjC,cAAcsE,UAAW;AAClCrC,EAAShC,WAAWqE,UAAW;AAC/BrC,EAAS/B,aAAaoE,UAAW,CACnC,CACA,MAAM6O,kBAAoBlR,IACxB,MAAMkN,EAAkBlN,EAASlM,MAAMqd,uBAAuBnR,EAAS/K,OAAOc,aAAa;AACvFmX,EAAgBjxB,OAClBsd,KAAK2T,EAAgB,GAAI,gBAChBjT,uBACTR,KAAKuG,EAASvL,QAChB;AAQF,SAASkZ,WACP,MAAM7N,EAAcD,EAAaC,YAAYvhB,IAAIE,MAC3CuhB,EAAWH,EAAaG,SAASzhB,IAAIE;AAC3C,OAAKuhB,EAGEzH,WAAWyH,EAASlM,MAAOgM,EAAYpS,OAFrC,IAGX,CAOA,SAAS0jB,mBAAmB3T,EAAUwL,EAAS5G,GAC7C,MAAMrC,EAAWH,EAAaG,SAASzhB,IAAIkf;AAC3CwL,EAAQ1R,SAAQqH,IACdoB,EAASpB,GAAQyD,SAAWA,CAAQ,GAExC,CAMA,SAASgP,iBAAiB3jB,EAAO2U,GAC/B,MAAMvO,EAAQD;AACd,GAAKC,GAAUpG,EAGf,GAAmB,UAAfA,EAAM7M,KAAkB,CAE1B,MAAMwuB,EAASvb,EAAM6B,iBAAiB,UAAW1T,OAAOgQ,EAAYyG,MAAO;AAC3E,IAAK,IAAInd,EAAI,EAAGA,EAAI8zB,EAAOpzB,OAAQV,IACjC8zB,EAAO9zB,GAAG8mB,SAAWA,CAEzB,MACE3U,EAAM2U,SAAWA,CAErB,CAMA,SAAS6N,gBACPkB,mBAAmB3yB,KAAM,CAAC,gBAAiB,aAAc,iBAAiB,EAC5E,CAMA,SAASixB,iBACP0B,mBAAmB3yB,KAAM,CAAC,gBAAiB,aAAc,iBAAiB,EAC5E,CAMA,SAAS8xB,cACPc,iBAAiB5yB,KAAKkvB,YAAY,EACpC,CAMA,SAAS0C,eACPgB,iBAAiB5yB,KAAKkvB,YAAY,EACpC,CAQA,SAASwC,sBAAsB/xB,GAC7B,MAAM4hB,EAAWH,EAAaG,SAASzhB,IAAIE,MACrCuZ,EAAS6H,EAAaC,YAAYvhB,IAAIE;AAC5CqY,aAAakJ,EAASoQ,kBAAmBhyB;AACzC4hB,EAASoQ,kBAAkBhe,UAAYH,EAAY;AAC/C+F,EAAOK,aAAeL,EAAOK,YAAY+X,mBAC3C9X,SAAS0H,EAASoQ,kBAAmBpY,EAAOK,YAAY+X;AAE1D7W,KAAKyG,EAASoQ;AACd,MAAM1iB,EAAQjP,KAAKkvB;AACnB,GAAIjgB,EAAO,CACTA,EAAM6O,aAAa,eAAgB;AACnC7O,EAAM6O,aAAa,mBAAoBtK,EAAY;AACnD0G,WAAWjL;AACX4K,SAAS5K,EAAOuE,EAAYqf,WAC9B,CACF,CAOA,SAAStV,yBACP,MAAMgE,EAAWH,EAAaG,SAASzhB,IAAIE;AACvCuhB,EAASoQ,mBACX3W,KAAKuG,EAASoQ;AAEhB,MAAM1iB,EAAQjP,KAAKkvB;AACnB,GAAIjgB,EAAO,CACTA,EAAMqT,gBAAgB;AACtBrT,EAAMqT,gBAAgB;AACtB/H,YAAYtL,EAAOuE,EAAYqf,WACjC,CACF,CAEA,MAAMC,EAAgB,CACpBrd,MAAO,GACPkS,UAAW,GACXtE,KAAM,GACN9K,KAAM,GACN5B,OAAQ,GACR7C,UAAM5R,EACN+jB,eAAW/jB,EACX4iB,cAAU5iB,EACV6wB,cAAU7wB,EACVgW,OAAO,EACPuB,UAAW,CACTpE,MAAO,aACPwL,SAAU,sBACV/M,KAAM,mBAER8Z,UAAW,CACTvY,MAAO,aACPwL,SAAU,sBACV/M,KAAM,mBAER8F,YAAa,CAAC,EACdrU,OAAQ,OACR2gB,WAAOhkB,EACP2e,UAAU,EACVmS,YAAY,EACZC,mBAAmB,EACnBpI,gBAAgB,EAChBV,eAAe,EACfP,wBAAwB,EACxBb,wBAAwB,EACxB9J,mBAAmB,EACnBC,gBAAgB,EAChBC,kBAAkB,EAClBmT,gBAAYpwB,EACZ8vB,aAAS9vB,EACTgxB,kBAAmB,KACnBC,uBAAwB,GACxBpT,wBAAoB7d,EACpBkxB,eAAgB,KAChBC,oBAAqB,GACrBpT,qBAAiB/d,EACjBoxB,iBAAkB,SAClBC,sBAAuB,GACvBrT,uBAAmBhe,EACnB2d,gBAAgB,EAChBF,gBAAgB,EAChB6T,cAAc,EACdC,WAAW,EACXC,aAAa,EACb7gB,aAAa,EACb4N,iBAAiB,EACjBD,gBAAiB,UACjBE,qBAAsB,oBACtBrB,WAAY,GACZgT,qBAAqB,EACrBN,kBAAkB,EAClBxL,cAAUrkB,EACVukB,gBAAYvkB,EACZwkB,iBAAaxkB,EACbskB,SAAU,GACVrK,WAAOja,EACPma,kBAAkB,EAClBE,WAAOra,EACP0kB,aAAS1kB,EACTgf,gBAAYhf,EACZ+M,WAAO/M,EACPwgB,iBAAkB,GAClBG,WAAY,GACZO,WAAY,GACZqM,aAAc,CAAC,EACfvN,gBAAgB,EAChBoN,eAAe,EACfzN,gBAAiB,CAAC,EAClByP,oBAAgBpvB,EAChBkvB,wBAAwB,EACxBO,uBAAmBzvB,EACnB+e,MAAM,EACNF,SAAU,SACVkG,cAAe,GACfC,yBAAqBhlB,EACrBulB,2BAAuBvlB,EACvByxB,cAAUzxB,EACV0xB,aAAS1xB,EACT2lB,eAAW3lB,EACXksB,eAAWlsB,EACXgrB,cAAUhrB,EACV2xB,gBAAY3xB,EACZ4xB,kBAAkB,GAEdC,EAAkB,CAAC,iBAAkB,oBAAqB,aAAc,iBAAkB,wBAAyB,oBAAqB,mBAAoB,uBAAwB,kBAAmB,QAAS,yBAA0B,qBAAsB,oBAAqB,sBAAuB,cAAe,sBAAuB,kBAAmB,iBAAkB,WAAY,aAAc,SAAU,YAAa,OAAQ,OAAQ,YAAa,WAAY,WAAY,cAAe,WAAY,aAAc,aAAc,UAAW,gBAAiB,cAAe,iBAAkB,mBAAoB,kBAAmB,oBAAqB,iBAAkB,OAAQ,QAAS,YAAa,aAG7rBC,EAAmB,CAAC,EACpBC,EAA0B,CAAC,oBAAqB,gBAAiB,WAAY,eAAgB,YAAa,cAAe,cAAe,aAAc,0BAQtJC,iBAAmBC,GAChB70B,OAAOE,UAAU40B,eAAexwB,KAAKkvB,EAAeqB,GASvDE,qBAAuBF,IACoB,IAAxCJ,EAAgB11B,QAAQ81B,GAS3BG,sBAAwBH,GACrBH,EAAiBG,GAMpBI,oBAAsBhW,IACrB2V,iBAAiB3V,IACpBpK,KAAK,sBAAuB3Q,OAAO+a,EAAO,KAC5C,EAMIiW,yBAA2BjW,IAC3B0V,EAAwBxtB,SAAS8X,IACnCpK,KAAK,kBAAmB3Q,OAAO+a,EAAO,iCACxC,EAMIkW,yBAA2BlW,IAC/B,MAAMmW,EAAeJ,sBAAsB/V;AACvCmW,GACFpgB,qBAAqBiK,EAAOmW,EAC9B,EAQIC,sBAAwBpb,KACJ,IAApBA,EAAOsH,UAAsBtH,EAAO0Z,mBACtC9e,KAAK;AAEP,IAAK,MAAMoK,KAAShF,EAAQ,CAC1Bgb,oBAAoBhW;AAChBhF,EAAOrB,OACTsc,yBAAyBjW;AAE3BkW,yBAAyBlW,EAC3B;AAQF,SAASqW,OAAOrb,GACd,MAAMlE,EAAQD,WACRiM,EAAcD,EAAaC,YAAYvhB,IAAIE;AACjD,IAAKqV,GAAS0C,SAAS1C,EAAOgM,EAAYuM,UAAUvY,OAAQ,CAC1DlB,KAAK;AACL,MACF,CACA,MAAM0gB,EAAuBC,kBAAkBvb,GACzCwb,EAAgBz1B,OAAO4uB,OAAO,CAAC,EAAG7M,EAAawT;AACrDjN,OAAO5nB,KAAM+0B;AACb3T,EAAaC,YAAY1d,IAAI3D,KAAM+0B;AACnCz1B,OAAO01B,iBAAiBh1B,KAAM,CAC5BuZ,OAAQ,CACN3Y,MAAOtB,OAAO4uB,OAAO,CAAC,EAAGluB,KAAKuZ,OAAQA,GACtC5K,UAAU,EACV9O,YAAY,IAGlB,CAMA,MAAMi1B,kBAAoBvb,IACxB,MAAMsb,EAAuB,CAAC;AAC9Bv1B,OAAOylB,KAAKxL,GAAQT,SAAQyF,IACtB8V,qBAAqB9V,GACvBsW,EAAqBtW,GAAShF,EAAOgF,GAErCpK,KAAK,gCAAgC3Q,OAAO+a,GAC9C;AAEF,OAAOsW,CAAoB;AAM7B,SAAS9G,WACP,MAAMxM,EAAWH,EAAaG,SAASzhB,IAAIE,MACrCqhB,EAAcD,EAAaC,YAAYvhB,IAAIE;AACjD,GAAKqhB,EAAL,CAMA,GAAIE,EAASlM,OAAShD,EAAYic,+BAAgC,CAChEjc,EAAYic;OACLjc,EAAYic,8BACrB,CACsC,mBAA3BjN,EAAYwS,YACrBxS,EAAYwS;AAEdoB,YAAYj1B,KAVZ,MAFEk1B,gBAAgBl1B,KAapB,CAKA,MAAMi1B,YAAcjW,IAClBkW,gBAAgBlW;OAETA,EAASzF;OAETlH,EAAYwW;OACZxW,EAAYqW;OAEZrW,EAAYiL,eAAe,EAM9B4X,gBAAkBlW,IAEtB,GAAIA,EAASyO,kBAAmB,CAC9B0H,cAAc/T,EAAcpC;AAC5BA,EAASyO,mBAAoB,CAC/B,KAAO,CACL0H,cAAcrK,EAAgB9L;AAC9BmW,cAAc/T,EAAcpC;OACrBA,EAASyO;OAETzO,EAASiS;OACTjS,EAASyS;OACTzS,EAASkQ;OACTlQ,EAAS4S;OACT5S,EAAS8S;OACT9S,EAAS6Q;OACT7Q,EAASoW;OACTpW,EAAS0S;OACT1S,EAASzB;OACTyB,EAASlI;OACTkI,EAASqW;OACTrW,EAASsW;OACTtW,EAASuW;OACTvW,EAAS8O;OACT9O,EAAS4V;OACT5V,EAAS+O,QAClB,GAOIoH,cAAgB,CAACnzB,EAAKgd,KAC1B,IAAK,MAAMliB,KAAKkF,EACdA,EAAIlF,GAAG04B,OAAOxW,EAChB;AAGF,IAAIyW,EAA+Bn2B,OAAOipB,OAAO,CAC/CmN,UAAW,KACX3H,SACAjX,MACAwe,WAAYxe,MACZue,WAAYve,MACZye,WAAYze,MACZma,eACAW,aACAwD,eAAgBvF,YAChB4B,cACAK,YACA5C,SACAvB,sBACAkC,YACA/B,cACAvQ,uBACAmU,sBACAkD;AAQF,MAAMe,iBAAmB,CAACtU,EAAaE,EAAU0H,KAC/C,GAAI5H,EAAYnJ,MACd0d,iBAAiBvU,EAAaE,EAAU0H;IACnC,CAGL4M,qBAAqBtU;AAGrBuU,yBAAyBvU;AACzBwU,iBAAiB1U,EAAaE,EAAU0H,EAC1C,GAQI2M,iBAAmB,CAACvU,EAAaE,EAAU0H,KAE/C1H,EAASlM,MAAM2gB,QAAU,KACnB3U,IAAgB4U,iBAAiB5U,IAAgBA,EAAYlF,OAASkF,EAAYpS,QAGtFga,EAAYX,EAAcxR,MAAM,CACjC,EAOGmf,iBAAmB5U,MACbA,EAAYpC,mBAAqBoC,EAAYnC,gBAAkBmC,EAAYlC,kBAAoBkC,EAAYZ;AAEvH,IAAIyV,GAAqB;AAKzB,MAAML,qBAAuBtU,IAC3BA,EAASlM,MAAM8gB,YAAc,KAC3B5U,EAASvM,UAAUohB,UAAY,SAAU32B,GACvC8hB,EAASvM,UAAUohB,UAAY;AAG3B32B,EAAE8F,SAAWgc,EAASvM,YACxBkhB,GAAqB,EAEzB,CAAC,CACF,EAMGJ,yBAA2BvU,IAC/BA,EAASvM,UAAUmhB,YAAc,KAC/B5U,EAASlM,MAAM+gB,UAAY,SAAU32B,GACnC8hB,EAASlM,MAAM+gB,UAAY,QAEvB32B,EAAE8F,SAAWgc,EAASlM,OAAS5V,EAAE8F,kBAAkBiN,aAAe+O,EAASlM,MAAMgE,SAAS5Z,EAAE8F,WAC9F2wB,GAAqB,EAEzB,CAAC,CACF,EAQGH,iBAAmB,CAAC1U,EAAaE,EAAU0H,KAC/C1H,EAASvM,UAAUghB,QAAUv2B,IACvBy2B,EACFA,GAAqB,EAGnBz2B,EAAE8F,SAAWgc,EAASvM,WAAaP,eAAe4M,EAAY4R,oBAChEhK,EAAYX,EAAczH,SAC5B,CACD,EAGGwV,gBAAkB/d,GAAwB,iBAATA,GAAqBA,EAAKmG,OAC3D6X,UAAYhe,GAAQA,aAAgBie,SAAWF,gBAAgB/d,GAC/Dke,aAAeC,IACnB,MAAMld,EAAS,CAAC;AACO,iBAAZkd,EAAK,IAAoBH,UAAUG,EAAK,IAGjD,CAAC,QAAS,OAAQ,QAAQ3d,SAAQ,CAACjK,EAAMuY,KACvC,MAAM9mB,EAAMm2B,EAAKrP;AACE,iBAAR9mB,GAAoBg2B,UAAUh2B,GACvCiZ,EAAO1K,GAAQvO,OACE4B,IAAR5B,GACTX,MAAM,sBAAsB6D,OAAOqL,EAAM,0CAA8CrL,cAAclD,GACvG,IARFhB,OAAO4uB,OAAO3U,EAAQkd,EAAK;AAW7B,OAAOld,CAAM;AASf,SAASmd,OACP,MAAMhI,EAAO1uB;AACb,IAAK,IAAI22B,EAAO7yB,UAAUtG,OAAQi5B,EAAO,IAAIv4B,MAAMy4B,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC/EH,EAAKG,GAAQ9yB,UAAU8yB;AAEzB,OAAO,IAAIlI,KAAQ+H,EACrB,CAqBA,SAASI,MAAMC,GACb,MAAMC,kBAAkB/2B,MACtB,KAAAg3B,CAAMzd,EAAQ0d,GACZ,OAAOvoB,MAAMsoB,MAAMzd,EAAQja,OAAO4uB,OAAO,CAAC,EAAG4I,EAAaG,GAC5D,EAGF,OAAOF,SACT,CAQA,MAAMG,aAAe,IACZ7kB,EAAY8kB,SAAW9kB,EAAY8kB,QAAQD,eAS9CE,UAAY,KAChB,GAAI/kB,EAAY8kB,QAAS,CACvB3a;AACA,OAAOnK,EAAY8kB,QAAQE,MAC7B,GASIC,YAAc,KAClB,GAAIjlB,EAAY8kB,QAAS,CACvB,MAAMvwB,EAAYyL,EAAY8kB,QAAQ74B;AACtC4d,wBAAwBtV;AACxB,OAAOA,CACT,GASI2wB,YAAc,KAClB,MAAMpb,EAAQ9J,EAAY8kB;AAC1B,OAAOhb,IAAUA,EAAMqb,QAAUJ,YAAcE,cAAc,EAUzDG,cAAgBC,IACpB,GAAIrlB,EAAY8kB,QAAS,CACvB,MAAMvwB,EAAYyL,EAAY8kB,QAAQQ,SAASD;AAC/Cxb,wBAAwBtV,GAAW;AACnC,OAAOA,CACT,GAUIgxB,eAAiB,OACXvlB,EAAY8kB,UAAW9kB,EAAY8kB,QAAQU;AAGvD,IAAIC,GAAyB;AAC7B,MAAMC,EAAgB,CAAC;AAKvB,SAASC,mBACP,IAAIzV,EAAOze,UAAUtG,OAAS,QAAsB0E,IAAjB4B,UAAU,GAAmBA,UAAU,GAAK;AAC/Ei0B,EAAcxV,GAAQviB;AACtB,IAAK83B,EAAwB,CAC3BplB,SAASC,KAAKuW,iBAAiB,QAAS+O;AACxCH,GAAyB,CAC3B,CACF,CACA,MAAMG,kBAAoBxO,IACxB,IAAK,IAAI9R,EAAK8R,EAAMlkB,OAAQoS,GAAMA,IAAOjF,SAAUiF,EAAKA,EAAGugB,WACzD,IAAK,MAAM3V,KAAQwV,EAAe,CAChC,MAAMhF,EAAWpb,EAAGL,aAAaiL;AACjC,GAAIwQ,EAAU,CACZgF,EAAcxV,GAAMmU,KAAK,CACvB3D;AAEF,MACF,CACF,CACF;AAGF,IAAIoF,EAA6B74B,OAAOipB,OAAO,CAC7CmN,UAAW,KACXc,aACAwB,iBACA5P,YACAL,aACAG,UACAkQ,cAAe5J,YACfkI,KACAjgB,WACAP,gBACAW,eACAd,iBACAjB,aACAsB,cACAY,qBACAN,UACAhB,iBACAJ,QACAC,eACAI,SACAW,cACAC,UACAnB,SACAS,iBACAqhB,aACAtgB,oBACApB,SACAM,qBACA2hB,cACAnD,sBACAnc,UACAyf,eACAvD,qBACAH,iBACApM,UACA+O,MACAS,YACA9I,YACA4I,UACAG;AAGF,MAAMc,MAKJ,WAAA5pB,CAAY6pB,EAAUC,GACpBv4B,KAAKs4B,SAAWA;AAChBt4B,KAAK4G,UAAY2xB;AACjBv4B,KAAKw3B,SAAU;AACfx3B,KAAK1B,OACP,CAKA,KAAAA,GACE,IAAK0B,KAAKw3B,QAAS,CACjBx3B,KAAKw3B,SAAU;AACfx3B,KAAKw4B,QAAU,IAAIC;AACnBz4B,KAAK+iB,GAAK3P,WAAWpT,KAAKs4B,SAAUt4B,KAAK4G,UAC3C,CACA,OAAO5G,KAAK4G,SACd,CAKA,IAAAywB,GACE,GAAIr3B,KAAKw4B,SAAWx4B,KAAKw3B,QAAS,CAChCx3B,KAAKw3B,SAAU;AACfkB,aAAa14B,KAAK+iB;AAClB/iB,KAAK4G,YAAa,IAAI6xB,MAAOE,UAAY34B,KAAKw4B,QAAQG,SACxD,CACA,OAAO34B,KAAK4G,SACd,CAMA,QAAA+wB,CAASjzB,GACP,MAAM8yB,EAAUx3B,KAAKw3B;AACjBA,GACFx3B,KAAKq3B;AAEPr3B,KAAK4G,WAAalC;AACd8yB,GACFx3B,KAAK1B;AAEP,OAAO0B,KAAK4G,SACd,CAKA,YAAAswB,GACE,GAAIl3B,KAAKw3B,QAAS,CAChBx3B,KAAKq3B;AACLr3B,KAAK1B,OACP,CACA,OAAO0B,KAAK4G,SACd,CAKA,SAAAixB,GACE,OAAO73B,KAAKw3B,OACd,EAGF,MAAMoB,EAAmB,CAAC,aAAc,YAAa,eAM/CC,kBAAoBtf,IAExB,MAAMwZ,EAAsC,iBAApBxZ,EAAOwZ,SAAwBrgB,SAASqC,cAAcwE,EAAOwZ,UAAYxZ,EAAOwZ;AACxG,IAAKA,EACH,MAAO,CAAC;AAGV,MAAM+F,EAAkB/F,EAAS1M;AACjC0S,wBAAwBD;AACxB,MAAMjI,EAASvxB,OAAO4uB,OAAO8K,cAAcF,GAAkBG,sBAAsBH,GAAkBI,eAAeJ,GAAkBK,aAAaL,GAAkBM,YAAYN,GAAkBO,aAAaP,GAAkBQ,oBAAoBR,EAAiBF;AACvQ,OAAO/H,CAAM,EAOTmI,cAAgBF,IACpB,MAAMjI,EAAS,CAAC,EAEV0I,EAAar7B,MAAMwC,KAAKo4B,EAAgB5hB,iBAAiB;AAC/DqiB,EAAWzgB,SAAQyF,IACjBib,0BAA0Bjb,EAAO,CAAC,OAAQ;AAC1C,MAAM4V,EAAY5V,EAAMjH,aAAa,QAC/B1W,EAAQ2d,EAAMjH,aAAa;AACO,kBAA7Bwb,EAAcqB,GACvBtD,EAAOsD,GAAuB,UAAVvzB,EACyB,iBAA7BkyB,EAAcqB,GAC9BtD,EAAOsD,GAAasF,KAAKC,MAAM94B,GAE/BiwB,EAAOsD,GAAavzB,CACtB;AAEF,OAAOiwB,CAAM,EAOToI,sBAAwBH,IAC5B,MAAMjI,EAAS,CAAC,EAEV8I,EAAgBz7B,MAAMwC,KAAKo4B,EAAgB5hB,iBAAiB;AAClEyiB,EAAc7gB,SAAQyF,IACpB,MAAM4V,EAAY5V,EAAMjH,aAAa,QAC/B1W,EAAQ2d,EAAMjH,aAAa;AACjCuZ,EAAOsD,GAAa,IAAIyF,SAAS,UAAUp2B,OAAO5C,GAA9B,EAAuC;AAE7D,OAAOiwB,CAAM,EAOTqI,eAAiBJ,IACrB,MAAMjI,EAAS,CAAC,EAEVgJ,EAAc37B,MAAMwC,KAAKo4B,EAAgB5hB,iBAAiB;AAChE2iB,EAAY/gB,SAAQqH,IAClBqZ,0BAA0BrZ,EAAQ,CAAC,OAAQ,QAAS;AACpD,MAAM/d,EAAO+d,EAAO7I,aAAa;AACjCuZ,EAAO,GAAGrtB,OAAOpB,EAAM,eAAiB+d,EAAOuF;AAC/CmL,EAAO,OAAOrtB,OAAOwQ,sBAAsB5R,GAAO,YAAa;AAC3D+d,EAAO/H,aAAa,WACtByY,EAAO,GAAGrtB,OAAOpB,EAAM,gBAAkB+d,EAAO7I,aAAa;AAE3D6I,EAAO/H,aAAa,gBACtByY,EAAO,GAAGrtB,OAAOpB,EAAM,oBAAsB+d,EAAO7I,aAAa,cACnE;AAEF,OAAOuZ,CAAM,EAOTsI,aAAeL,IACnB,MAAMjI,EAAS,CAAC,EAEVjb,EAAQkjB,EAAgB/jB,cAAc;AAC5C,GAAIa,EAAO,CACT4jB,0BAA0B5jB,EAAO,CAAC,MAAO,QAAS,SAAU;AACxDA,EAAMwC,aAAa,SACrByY,EAAOtK,SAAW3Q,EAAM0B,aAAa;AAEnC1B,EAAMwC,aAAa,WACrByY,EAAOpK,WAAa7Q,EAAM0B,aAAa;AAErC1B,EAAMwC,aAAa,YACrByY,EAAOnK,YAAc9Q,EAAM0B,aAAa;AAEtC1B,EAAMwC,aAAa,SACrByY,EAAOrK,SAAW5Q,EAAM0B,aAAa,OAEzC,CACA,OAAOuZ,CAAM,EAOTuI,YAAcN,IAClB,MAAMjI,EAAS,CAAC,EAEV/c,EAAOglB,EAAgB/jB,cAAc;AAC3C,GAAIjB,EAAM,CACR0lB,0BAA0B1lB,EAAM,CAAC,OAAQ;AACrCA,EAAKsE,aAAa,UAGpByY,EAAO/c,KAAOA,EAAKwD,aAAa;AAE9BxD,EAAKsE,aAAa,WACpByY,EAAO5K,UAAYnS,EAAKwD,aAAa;AAEvCuZ,EAAO/L,SAAWhR,EAAK4R,SACzB,CACA,OAAOmL,CAAM,EAOTwI,aAAeP,IACnB,MAAMjI,EAAS,CAAC,EAEV5hB,EAAQ6pB,EAAgB/jB,cAAc;AAC5C,GAAI9F,EAAO,CACTuqB,0BAA0BvqB,EAAO,CAAC,OAAQ,QAAS,cAAe;AAGlE4hB,EAAO5hB,MAAQA,EAAMqI,aAAa,SAAW;AACzCrI,EAAMmJ,aAAa,WACrByY,EAAOhO,WAAa5T,EAAMqI,aAAa;AAErCrI,EAAMmJ,aAAa,iBACrByY,EAAOnO,iBAAmBzT,EAAMqI,aAAa;AAE3CrI,EAAMmJ,aAAa,WACrByY,EAAOzN,WAAanU,EAAMqI,aAAa,SAE3C,CAEA,MAAMmY,EAAevxB,MAAMwC,KAAKo4B,EAAgB5hB,iBAAiB;AACjE,GAAIuY,EAAajyB,OAAQ,CACvBqzB,EAAOpB,aAAe,CAAC;AACvBA,EAAa3W,SAAQqX,IACnBqJ,0BAA0BrJ,EAAQ,CAAC;AACnC,MAAMD,EAAcC,EAAO7Y,aAAa,SAClCwiB,EAAa3J,EAAOzK;AAC1BmL,EAAOpB,aAAaS,GAAe4J,CAAU,GAEjD,CACA,OAAOjJ,CAAM,EAQTyI,oBAAsB,CAACR,EAAiBiB,KAC5C,MAAMlJ,EAAS,CAAC;AAChB,IAAK,MAAM/zB,KAAKi9B,EAAY,CAC1B,MAAM5F,EAAY4F,EAAWj9B,GAEvBk9B,EAAMlB,EAAgB/jB,cAAcof;AAC1C,GAAI6F,EAAK,CACPR,0BAA0BQ,EAAK;AAC/BnJ,EAAOsD,EAAU9uB,QAAQ,SAAU,KAAO20B,EAAItU,UAAUpgB,MAC1D,CACF,CACA,OAAOurB,CAAM,EAMTkI,wBAA0BD,IAC9B,MAAMmB,EAAkBrB,EAAiBp1B,OAAO,CAAC,aAAc,sBAAuB,cAAe,aAAc,YAAa,aAAc;AAC9ItF,MAAMwC,KAAKo4B,EAAgBre,UAAU3B,SAAQnB,IAC3C,MAAMsU,EAAUtU,EAAGsU,QAAQ1oB;AACtB02B,EAAgBxzB,SAASwlB,IAC5B9X,KAAK,yBAAyB3Q,OAAOyoB,EAAS,KAChD,GACA,EAOEuN,0BAA4B,CAAC7hB,EAAIuiB,KACrCh8B,MAAMwC,KAAKiX,EAAGyK,YAAYtJ,SAAQqhB,KACmB,IAA/CD,EAAkB77B,QAAQ87B,EAAUtrB,OACtCsF,KAAK,CAAC,2BAA4B3Q,OAAO22B,EAAUtrB,KAAM,UAAWrL,OAAOmU,EAAGsU,QAAQ1oB,cAAe,MAAO,GAAGC,OAAO02B,EAAkB18B,OAAS,2BAA2BgG,OAAO02B,EAAkBl8B,KAAK,OAAS,mDACrN,GACA,EAGEo8B,EAAqB,GAOrBC,UAAY9gB,IAChB,MAAMvE,EAAYF,eACZO,EAAQD;AACiB,mBAApBmE,EAAOoa,UAChBpa,EAAOoa,SAASte;AAElB,MAAMilB,EAAatnB,OAAO6I,iBAAiBnJ,SAASC,MAC9Cka,EAAsByN,EAAWC;AACvCC,WAAWxlB,EAAWK,EAAOkE;AAG7BnG,YAAW,KACTqnB,uBAAuBzlB,EAAWK,EAAM,GACvC+kB;AACH,GAAItiB,UAAW,CACb4iB,mBAAmB1lB,EAAWuE,EAAOua,iBAAkBjH;AACvD5B,eACF,CACKhT,WAAc5F,EAAYE,wBAC7BF,EAAYE,sBAAwBG,SAAS+X;AAEjB,mBAAnBlR,EAAOqa,SAChBxgB,YAAW,IAAMmG,EAAOqa,QAAQve;AAElCkF,YAAYvF,EAAWxB,EAAY,iBAAiB,EAMhDmnB,0BAA4BlR,IAChC,MAAMpU,EAAQD;AACd,GAAIqU,EAAMlkB,SAAW8P,IAAUsJ,EAC7B;AAEF,MAAM3J,EAAYF;AAClBO,EAAMuT,oBAAoBjK,EAAmBgc;AAC7C3lB,EAAU4F,MAAM2f,UAAY,MAAM,EAO9BE,uBAAyB,CAACzlB,EAAWK,KACzC,GAAIsJ,GAAqB/C,gBAAgBvG,GAAQ,CAC/CL,EAAU4F,MAAM2f,UAAY;AAC5BllB,EAAM6T,iBAAiBvK,EAAmBgc,0BAC5C,MACE3lB,EAAU4F,MAAM2f,UAAY,MAC9B,EAQIG,mBAAqB,CAAC1lB,EAAW8e,EAAkBjH,KACvDvB;AACIwI,GAA4C,WAAxBjH,GACtBD,4BAA4BC;AAI9BzZ,YAAW,KACT4B,EAAUwW,UAAY,CAAC,GACvB,EAQEgP,WAAa,CAACxlB,EAAWK,EAAOkE,KACpCM,SAAS7E,EAAWuE,EAAOE,UAAUoH;AAErCxL,EAAMuF,MAAMggB,YAAY,UAAW,IAAK;AACxC9f,KAAKzF,EAAO;AACZjC,YAAW,KAETyG,SAASxE,EAAOkE,EAAOE,UAAUpE;AAEjCA,EAAMuF,MAAMC,eAAe,UAAU,GACpCuf;AAEHvgB,SAAS,CAACnH,SAAS0K,gBAAiB1K,SAASC,MAAOa,EAAYwE;AAC5DuB,EAAOyZ,YAAczZ,EAAOsH,WAAatH,EAAOrB,OAClD2B,SAAS,CAACnH,SAAS0K,gBAAiB1K,SAASC,MAAOa,EAAY,eAClE;AAGF,IAAIqnB,EAAyB,CAM3BvX,MAAO,CAACxiB,EAAQ6wB,IACP,wDAAwDmJ,KAAKh6B,GAAUgS,QAAQC,UAAYD,QAAQC,QAAQ4e,GAAqB,yBAOzIjO,IAAK,CAAC5iB,EAAQ6wB,IAEL,8FAA8FmJ,KAAKh6B,GAAUgS,QAAQC,UAAYD,QAAQC,QAAQ4e,GAAqB;AAOjL,SAASoJ,0BAA0BxhB,GAEjC,IAAIA,EAAO+X,eAAX,CAGqB,UAAjB/X,EAAOtK,QACTsK,EAAO+X,eAAiBuJ,EAA8B;AAEnC,QAAjBthB,EAAOtK,QACTsK,EAAO+X,eAAiBuJ,EAA4B,IALtD,CAOF,CAKA,SAASG,4BAA4BzhB,GAEnC,IAAKA,EAAOhU,QAAmC,iBAAlBgU,EAAOhU,SAAwBmN,SAASqC,cAAcwE,EAAOhU,SAAoC,iBAAlBgU,EAAOhU,SAAwBgU,EAAOhU,OAAOyT,YAAa,CACpK7E,KAAK;AACLoF,EAAOhU,OAAS,MAClB,CACF,CAOA,SAAS01B,cAAc1hB,GACrBwhB,0BAA0BxhB;AAGtBA,EAAO8Y,sBAAwB9Y,EAAO+Y,YACxCne,KAAK;AAEP6mB,4BAA4BzhB;AAGA,iBAAjBA,EAAO9D,QAChB8D,EAAO9D,MAAQ8D,EAAO9D,MAAMzF,MAAM,MAAMhS,KAAK;AAE/CmgB,KAAK5E,EACP,CAGA,IAAI+D;AACJ,IAAI4d,EAAwB,IAAI5Z;AAChC,MAAM6Z,WAKJ,WAAA1sB,GAIE0D,2BAA2BnS,KAAMk7B,EAAU,CACzCvsB,UAAU,EACV/N,WAAO;AAGT,GAAsB,oBAAXoS,OACT;AAEFsK,EAAkBtd;AAGlB,IAAK,IAAI22B,EAAO7yB,UAAUtG,OAAQi5B,EAAO,IAAIv4B,MAAMy4B,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC/EH,EAAKG,GAAQ9yB,UAAU8yB;AAEzB,MAAMwE,EAAc97B,OAAOipB,OAAOvoB,KAAKyO,YAAY+nB,aAAaC;AAGhEz2B,KAAKuZ,OAAS6hB;AAGdp7B,KAAKytB,mBAAoB;AACzB5b,sBAAsB7R,KAAMk7B,EAAUl7B,KAAKg3B,MAAM1Z,EAAgB/D,QACnE,CACA,KAAAyd,CAAMqE,GACJ,IAAIvE,EAAchzB,UAAUtG,OAAS,QAAsB0E,IAAjB4B,UAAU,GAAmBA,UAAU,GAAK,CAAC;AACvF6wB,sBAAsBr1B,OAAO4uB,OAAO,CAAC,EAAG4I,EAAauE;AACrD,GAAIhpB,EAAYiL,gBAAiB,CAC/BjL,EAAYiL,gBAAgByQ;AACxBjW,WACFqT,iBAEJ,CACA9Y,EAAYiL,gBAAkBA;AAC9B,MAAM+D,EAAcia,cAAcD,EAAYvE;AAC9CmE,cAAc5Z;AACd/hB,OAAOipB,OAAOlH;AAGd,GAAIhP,EAAY8kB,QAAS,CACvB9kB,EAAY8kB,QAAQE;OACbhlB,EAAY8kB,OACrB,CAGAuB,aAAarmB,EAAYc;AACzB,MAAMoO,EAAWga,iBAAiBje;AAClCsK,OAAOtK,EAAiB+D;AACxBD,EAAaC,YAAY1d,IAAI2Z,EAAiB+D;AAC9C,OAAOma,YAAYle,EAAiBiE,EAAUF,EAChD,CAGA,IAAA+L,CAAKqO,GACH,OAAOlqB,sBAAsBvR,KAAMk7B,GAAU9N,KAAKqO,EACpD,CACA,QAAQC,GACN,OAAOnqB,sBAAsBvR,KAAMk7B,GAAUS,QAAQD,EACvD,EASF,MAAMF,YAAc,CAACxc,EAAUuC,EAAUF,IAChC,IAAIvO,SAAQ,CAACC,EAAS6oB,KAK3B,MAAM3S,YAAc4S,IAClB7c,EAASlI,MAAM,CACb4W,aAAa,EACbmO,WACA;AAEJ/Q,EAAeC,mBAAmBpnB,IAAIqb,EAAUjM;AAChD+X,EAAeE,kBAAkBrnB,IAAIqb,EAAU4c;AAC/Cra,EAASjC,cAAc0W,QAAU,KAC/BhF,yBAAyBhS,EAAS;AAEpCuC,EAAShC,WAAWyW,QAAU,KAC5B7E,sBAAsBnS,EAAS;AAEjCuC,EAAS/B,aAAawW,QAAU,KAC9B3E,wBAAwBrS,EAAUiK,YAAY;AAEhD1H,EAAShB,YAAYyV,QAAU,KAC7B/M,YAAYX,EAAcxR,MAAM;AAElC6e,iBAAiBtU,EAAaE,EAAU0H;AACxCD,kBAAkB3W,EAAagP,EAAa4H;AAC5C4F,2BAA2B7P,EAAUqC;AACrCgZ,UAAUhZ;AACVya,WAAWzpB,EAAagP,EAAa4H;AACrC8S,UAAUxa,EAAUF;AAGpBjO,YAAW,KACTmO,EAASvM,UAAUwW,UAAY,CAAC,GAChC,IASA8P,cAAgB,CAACD,EAAYvE,KACjC,MAAMkF,EAAiBnD,kBAAkBwC,GACnC9hB,EAASja,OAAO4uB,OAAO,CAAC,EAAG4E,EAAegE,EAAakF,EAAgBX;AAC7E9hB,EAAOE,UAAYna,OAAO4uB,OAAO,CAAC,EAAG4E,EAAcrZ,UAAWF,EAAOE;AACrEF,EAAOqU,UAAYtuB,OAAO4uB,OAAO,CAAC,EAAG4E,EAAclF,UAAWrU,EAAOqU;AACrE,OAAOrU,CAAM,EAOTgiB,iBAAmBvc,IACvB,MAAMuC,EAAW,CACflM,MAAOD,WACPJ,UAAWF,eACXkB,QAASS,aACT6I,cAAevJ,mBACfwJ,WAAYnJ,gBACZoJ,aAActJ,kBACdM,OAAQD,YACRgK,YAAa1J,iBACb8a,kBAAmB7b,uBACnBmR,cAAepR;AAEjBuL,EAAaG,SAAS5d,IAAIqb,EAAUuC;AACpC,OAAOA,CAAQ,EAQXua,WAAa,CAACzpB,EAAagP,EAAa4H,KAC5C,MAAM5M,EAAmBzF;AACzBoE,KAAKqB;AACL,GAAIgF,EAAYlF,MAAO,CACrB9J,EAAY8kB,QAAU,IAAIkB,OAAM,KAC9BpP,EAAY;OACL5W,EAAY8kB,OAAO,GACzB9V,EAAYlF;AACf,GAAIkF,EAAYhF,iBAAkB,CAChCvB,KAAKuB;AACL1C,iBAAiB0C,EAAkBgF,EAAa;AAChDjO,YAAW,KACLf,EAAY8kB,SAAW9kB,EAAY8kB,QAAQK,SAE7Ctb,wBAAwBmF,EAAYlF,MACtC,GAEJ,CACF,GAOI4f,UAAY,CAACxa,EAAUF,KACvBA,EAAYnJ,QAGXzD,eAAe4M,EAAY8I,eAI3B8R,YAAY1a,EAAUF,IACzB8H,UAAU,EAAG,GAJb+S,oBAKF,EAQID,YAAc,CAAC1a,EAAUF,KAC7B,GAAIA,EAAYoS,WAAa5b,YAAY0J,EAAShC,YAAa,CAC7DgC,EAAShC,WAAW9M;AACpB,OAAO,CACT,CACA,GAAI4O,EAAYqS,aAAe7b,YAAY0J,EAAS/B,cAAe,CACjE+B,EAAS/B,aAAa/M;AACtB,OAAO,CACT,CACA,GAAI4O,EAAYmS,cAAgB3b,YAAY0J,EAASjC,eAAgB,CACnEiC,EAASjC,cAAc7M;AACvB,OAAO,CACT,CACA,OAAO,CAAK,EAERypB,kBAAoB,KACpBxpB,SAAS+X,yBAAyBjY,aAAsD,mBAAhCE,SAAS+X,cAAc0R,MACjFzpB,SAAS+X,cAAc0R,MACzB;AAIF,GAAsB,oBAAXnpB,QAA0B,QAAQ8nB,KAAKsB,UAAUC,WAAaC,SAASC,KAAKC,MAAM,0BAA2B,CACtH,MAAMC,EAAM,IAAIhE,KACViE,EAAiBC,aAAaC,QAAQ;AACvCF,GAEOD,EAAI9D,UAAYF,KAAKiB,MAAMgD,IAAmB,MAAwB,GAChFtpB,YAAW,KACTV,SAASC,KAAKiI,MAAMiiB,cAAgB;AACpC,MAAMC,EAAkBpqB,SAAS2L,cAAc;AAC/Cye,EAAgB7sB,IAAM;AACtB6sB,EAAgBC,MAAO;AACvBrqB,SAASC,KAAKqG,YAAY8jB;AAC1B1pB,YAAW,KACT0pB,EAAgBE,OAAOlN,OAAM,QAE3B,GACD,KAAK,GACP,KAbH6M,aAAaM,QAAQ,kBAAmB,GAAGz5B,OAAOi5B,GAetD,CAGAtB,WAAW37B,UAAUyxB,eAAiBA;AACtCkK,WAAW37B,UAAUiyB,cAAgBA;AACrC0J,WAAW37B,UAAU0vB,SAAWA;AAChCiM,WAAW37B,UAAUoyB,aAAeA;AACpCuJ,WAAW37B,UAAUsyB,YAAcA;AACnCqJ,WAAW37B,UAAUqwB,YAAcA;AACnCsL,WAAW37B,UAAU41B,eAAiBvF;AACtCsL,WAAW37B,UAAUkyB,sBAAwBA;AAC7CyJ,WAAW37B,UAAU+d,uBAAyBA;AAC9C4d,WAAW37B,UAAUsX,MAAQA;AAC7BqkB,WAAW37B,UAAU61B,WAAave;AAClCqkB,WAAW37B,UAAU81B,WAAaxe;AAClCqkB,WAAW37B,UAAU+1B,WAAaze;AAClCqkB,WAAW37B,UAAUsuB,cAAgBA;AACrCqN,WAAW37B,UAAUo1B,OAASA;AAC9BuG,WAAW37B,UAAUuuB,SAAWA;AAGhCzuB,OAAO4uB,OAAOiN,WAAYhD;AAG1B74B,OAAOylB,KAAK0Q,GAAiB3c,SAAQgR,IAKnCqR,WAAWrR,GAAO,WAChB,OAAIxM,GAAmBA,EAAgBwM,GAC9BxM,EAAgBwM,MAAQhmB,WAE1B,IACT,CAAC;AAEHq3B,WAAW7S,cAAgBA;AAC3B6S,WAAW+B,QAAU;AAErB,MAAMxO,EAAOyM;AAEbzM,EAAKyO,QAAUzO;AAEf,OAAOA,CAER,CAnrIiF0O;KAorI9D,IAATp9B,MAAwBA,KAAKq9B,cAAar9B,KAAKs9B,KAAOt9B,KAAKu9B,WAAav9B,KAAK0uB,KAAO1uB,KAAKm7B,WAAan7B,KAAKq9B;AACtH,oBAAoB3qB,UAAU,SAASjT,EAAE+9B,GAAG,IAAI94B,EAAEjF,EAAE4e,cAAc;AAAS,GAAG5e,EAAEg+B,qBAAqB,QAAQ,GAAGzkB,YAAYtU,GAAGA,EAAEg5B,WAAWh5B,EAAEg5B,WAAW9Z,WAAWlf,EAAEg5B,WAAWC,QAAQH;KAAQ,IAAI94B,EAAEghB,UAAU8X,CAAC,CAAC,MAAM/9B,GAAGiF,EAAEse,UAAUwa,CAAC,CAAC,CAA5M,CAA8M9qB,SAAS,2yuBCzrIjPkrB,EAA2B,CAAC;AAGhC,SAASC,oBAAoBC,GAE5B,IAAIC,EAAeH,EAAyBE;AAC5C,QAAqB57B,IAAjB67B,EACH,OAAOA,EAAa1hC;AAGrB,IAAIiV,EAASssB,EAAyBE,GAAY,CAGjDzhC,QAAS,CAAC;AAIX2hC,EAAoBF,GAAUl6B,KAAK0N,EAAOjV,QAASiV,EAAQA,EAAOjV,QAASwhC;AAG3E,OAAOvsB,EAAOjV,OACf,CCrBAwhC,oBAAoBn5B,EAAK4M,IACxB,IAAI2sB,EAAS3sB,GAAUA,EAAO4sB,WAC7B,IAAO5sB,EAAiB,QACxB,IAAM;AACPusB,oBAAoB9sB,EAAEktB,EAAQ,CAAEj7B,EAAGi7B;AACnC,OAAOA,CAAM;ACLdJ,oBAAoB9sB,EAAI,CAAC1U,EAAS8hC,KACjC,IAAI,IAAIrU,KAAOqU,EACXN,oBAAoBtN,EAAE4N,EAAYrU,KAAS+T,oBAAoBtN,EAAEl0B,EAASytB,IAC5ExqB,OAAOM,eAAevD,EAASytB,EAAK,CAAEjqB,YAAY,EAAMC,IAAKq+B,EAAWrU,IAE1E;ACND+T,oBAAoBtN,EAAI,CAACvuB,EAAKo8B,IAAU9+B,OAAOE,UAAU40B,eAAexwB,KAAK5B,EAAKo8B;;;ACEnE,SAAS7P,KAAKje,EAAI+tB,GAC/B,OAAO,SAASC,OACd,OAAOhuB,EAAGvL,MAAMs5B,EAASv6B,UAC3B,CACF,CCAA,MAAOjB,SAAQ,GAAIvD,OAAOE,WACpB,eAAC++B,GAAkBj/B,OAEnBk/B,GAAUC,EAGbn/B,OAAOo/B,OAAO,MAHQC,IACrB,MAAMx5B,EAAM,EAASvB,KAAK+6B;AAC1B,OAAOF,EAAMt5B,KAASs5B,EAAMt5B,GAAOA,EAAIhE,MAAM,GAAI,GAAGoC,cAAc;AAFvD,IAACk7B;AAKhB,MAAMG,WAAcx8B,IAClBA,EAAOA,EAAKmB;AACZ,OAAQo7B,GAAUH,EAAOG,KAAWv8B,GAGhCy8B,WAAaz8B,GAAQu8B,UAAgBA,IAAUv8B,GAS/C,QAACC,GAAWnE,MASZ4gC,EAAcD,WAAW;AAqB/B,MAAME,EAAgBH,WAAW;AA2BjC,MAAMI,EAAWH,WAAW,UAQtBI,EAAaJ,WAAW,YASxBK,EAAWL,WAAW,UAStBM,SAAYR,GAAoB,OAAVA,GAAmC,iBAAVA,EAiB/CS,cAAiBv5B,IACrB,GAAoB,WAAhB24B,EAAO34B,GACT,OAAO;AAGT,MAAMrG,EAAY++B,EAAe14B;AACjC,QAAsB,OAAdrG,GAAsBA,IAAcF,OAAOE,WAAkD,OAArCF,OAAOi/B,eAAe/+B,IAA0BX,OAAOwgC,eAAex5B,GAAUhH,OAAOygC,YAAYz5B,EAAI,EAUnK05B,EAASX,WAAW,QASpBY,EAASZ,WAAW,QASpBa,EAASb,WAAW,QASpBc,EAAad,WAAW,YAsCxBe,EAAoBf,WAAW;AA2BrC,SAAS9lB,QAAQ9W,EAAKsO,GAAI,WAACsvB,GAAa,GAAS,CAAC,GAEhD,GAAI59B,QACF;AAGF,IAAIlF,EACA+iC;AAGe,iBAAR79B,IAETA,EAAM,CAACA;AAGT,GAAIK,EAAQL,GAEV,IAAKlF,EAAI,EAAG+iC,EAAI79B,EAAIxE,OAAQV,EAAI+iC,EAAG/iC,IACjCwT,EAAG1M,KAAK,KAAM5B,EAAIlF,GAAIA,EAAGkF;IAEtB,CAEL,MAAM+iB,EAAO6a,EAAatgC,OAAOwgC,oBAAoB99B,GAAO1C,OAAOylB,KAAK/iB,GAClE7E,EAAM4nB,EAAKvnB;AACjB,IAAIssB;AAEJ,IAAKhtB,EAAI,EAAGA,EAAIK,EAAKL,IAAK,CACxBgtB,EAAM/E,EAAKjoB;AACXwT,EAAG1M,KAAK,KAAM5B,EAAI8nB,GAAMA,EAAK9nB,EAC/B,CACF,CACF,CAEA,SAAS+9B,QAAQ/9B,EAAK8nB,GACpBA,EAAMA,EAAIvmB;AACV,MAAMwhB,EAAOzlB,OAAOylB,KAAK/iB;AACzB,IACI40B,EADA95B,EAAIioB,EAAKvnB;AAEb,KAAOV,KAAM,GAAG,CACd85B,EAAO7R,EAAKjoB;AACZ,GAAIgtB,IAAQ8M,EAAKrzB,cACf,OAAOqzB,CAEX,CACA,OAAO,IACT,CAEA,MAAMoJ,EAEsB,oBAAfC,WAAmCA,WACvB,oBAATC,KAAuBA,KAA0B,oBAAXltB,OAAyBA,OAASmtB,OAGlFC,iBAAoBC,IAAavB,EAAYuB,IAAYA,IAAYL;AAoD3E,MA8HMM,GAAgBC,EAKG,oBAAftiC,YAA8BsgC,EAAetgC,YAH9C0gC,GACE4B,GAAc5B,aAAiB4B;AAHrB,IAACA;AAetB,MAiCMC,EAAa5B,WAAW,mBAWxB,EAAiB,GAAGxK,oBAAoB,CAACpyB,EAAKo8B,IAAShK,EAAexwB,KAAK5B,EAAKo8B,GAA/D,CAAsE9+B,OAAOE,WAS9FihC,EAAW7B,WAAW,UAEtB8B,kBAAoB,CAAC1+B,EAAK2+B,KAC9B,MAAMC,EAActhC,OAAOuhC,0BAA0B7+B,GAC/C8+B,EAAqB,CAAC;AAE5BhoB,QAAQ8nB,GAAa,CAAClvB,EAAY7C,MACO,IAAnC8xB,EAAQjvB,EAAY7C,EAAM7M,KAC5B8+B,EAAmBjyB,GAAQ6C,EAC7B;AAGFpS,OAAO01B,iBAAiBhzB,EAAK8+B,EAAmB,EAuD5CC,EAAQ,6BAERC,EAAQ,aAERC,EAAW,CACfD,QACAD,QACAG,YAAaH,EAAQA,EAAM7sB,cAAgB8sB;AAwB7C,MA+BMG,EAAYvC,WAAW,iBAK7B,GACEv8B,UACA08B,gBACAh/B,SAlnBF,SAASA,SAAS8F,GAChB,OAAe,OAARA,IAAiBi5B,EAAYj5B,IAA4B,OAApBA,EAAI4I,cAAyBqwB,EAAYj5B,EAAI4I,cACpFwwB,EAAWp5B,EAAI4I,YAAY1O,WAAa8F,EAAI4I,YAAY1O,SAAS8F,EACxE,EAgnBEu7B,WApekBzC,IAClB,IAAI0C;AACJ,OAAO1C,IACgB,mBAAb2C,UAA2B3C,aAAiB2C,UAClDrC,EAAWN,EAAM4C,UACY,cAA1BF,EAAO7C,EAAOG,KAEL,WAAT0C,GAAqBpC,EAAWN,EAAM97B,WAAkC,sBAArB87B,EAAM97B,YAGhE,EA2dA2+B,kBA9lBF,SAASA,kBAAkB37B,GACzB,IAAIgrB;AAEFA,EAD0B,oBAAhBzvB,aAAiCA,YAAkB,OACpDA,YAAYC,OAAOwE,GAEnB,GAAUA,EAAU,QAAMk5B,EAAcl5B,EAAI5F;AAEvD,OAAO4wB,CACT,EAulBEmO,WACAE,WACAuC,UA9iBgB9C,IAAmB,IAAVA,IAA4B,IAAVA,EA+iB3CQ,SACAC,cACAN,cACAS,SACAC,SACAC,SACAgB,WACAxB,aACAyC,SA1fgB77B,GAAQs5B,SAASt5B,IAAQo5B,EAAWp5B,EAAI87B,MA2fxDhC,oBACAW,eACAZ,aACA5mB,QACA8oB,MA9XF,SAASA,QACP,MAAM,SAACC,GAAYzB,iBAAiBpgC,OAASA,MAAQ,CAAC,EAChD6wB,EAAS,CAAC,EACViR,YAAc,CAACj8B,EAAKikB,KACxB,MAAMiY,EAAYF,GAAY9B,QAAQlP,EAAQ/G,IAAQA;AAClDsV,cAAcvO,EAAOkR,KAAe3C,cAAcv5B,GACpDgrB,EAAOkR,GAAaH,MAAM/Q,EAAOkR,GAAYl8B,GACpCu5B,cAAcv5B,GACvBgrB,EAAOkR,GAAaH,MAAM,CAAC,EAAG/7B,GACrBxD,EAAQwD,GACjBgrB,EAAOkR,GAAal8B,EAAI1E,QAExB0vB,EAAOkR,GAAal8B,CACtB;AAGF,IAAK,IAAI/I,EAAI,EAAG+iC,EAAI/7B,UAAUtG,OAAQV,EAAI+iC,EAAG/iC,IAC3CgH,UAAUhH,IAAMgc,QAAQhV,UAAUhH,GAAIglC;AAExC,OAAOjR,CACT,EA2WEmR,OA/Va,CAACh/B,EAAGlB,EAAGu8B,GAAUuB,cAAa,CAAC,KAC5C9mB,QAAQhX,GAAG,CAAC+D,EAAKikB,KACXuU,GAAWY,EAAWp5B,GACxB7C,EAAE8mB,GAAOyE,KAAK1oB,EAAKw4B,GAEnBr7B,EAAE8mB,GAAOjkB,CACX,GACC,CAAC+5B;AACJ,OAAO58B,CAAC,EAwVRsC,KA3dYH,GAAQA,EAAIG,KACxBH,EAAIG,OAASH,EAAIE,QAAQ,qCAAsC,IA2d/D48B,SA/UgB5b,IACc,QAA1BA,EAAQhpB,WAAW,KACrBgpB,EAAUA,EAAQllB,MAAM;AAE1B,OAAOklB,CAAO,EA4Ud6b,SAhUe,CAACzzB,EAAa0zB,EAAkBC,EAAOxB,KACtDnyB,EAAYjP,UAAYF,OAAOo/B,OAAOyD,EAAiB3iC,UAAWohC;AAClEnyB,EAAYjP,UAAUiP,YAAcA;AACpCnP,OAAOM,eAAe6O,EAAa,QAAS,CAC1C7N,MAAOuhC,EAAiB3iC;AAE1B4iC,GAAS9iC,OAAO4uB,OAAOzf,EAAYjP,UAAW4iC,EAAM,EA2TpDC,aA/SmB,CAACC,EAAWC,EAAS7qB,EAAQ8qB,KAChD,IAAIJ,EACAtlC,EACAshC;AACJ,MAAMqE,EAAS,CAAC;AAEhBF,EAAUA,GAAW,CAAC;AAEtB,GAAiB,MAAbD,EAAmB,OAAOC;AAE9B,EAAG,CACDH,EAAQ9iC,OAAOwgC,oBAAoBwC;AACnCxlC,EAAIslC,EAAM5kC;AACV,KAAOV,KAAM,GAAG,CACdshC,EAAOgE,EAAMtlC;AACb,KAAM0lC,GAAcA,EAAWpE,EAAMkE,EAAWC,MAAcE,EAAOrE,GAAO,CAC1EmE,EAAQnE,GAAQkE,EAAUlE;AAC1BqE,EAAOrE,IAAQ,CACjB,CACF,CACAkE,GAAuB,IAAX5qB,GAAoB6mB,EAAe+D,EACjD,OAASA,KAAe5qB,GAAUA,EAAO4qB,EAAWC,KAAaD,IAAchjC,OAAOE;AAEtF,OAAO+iC,CAAO,EAyRd/D,SACAI,WACA8D,SA/Qe,CAACv9B,EAAKw9B,EAAc5hB,KACnC5b,EAAM7B,OAAO6B,SACIjD,IAAb6e,GAA0BA,EAAW5b,EAAI3H,UAC3CujB,EAAW5b,EAAI3H;AAEjBujB,GAAY4hB,EAAanlC;AACzB,MAAMolC,EAAYz9B,EAAI9G,QAAQskC,EAAc5hB;AAC5C,OAAsB,IAAf6hB,GAAoBA,IAAc7hB,CAAQ,EAyQjD8hB,QA9PelE,IACf,IAAKA,EAAO,OAAO;AACnB,GAAIt8B,EAAQs8B,GAAQ,OAAOA;AAC3B,IAAI7hC,EAAI6hC,EAAMnhC;AACd,IAAK0hC,EAASpiC,GAAI,OAAO;AACzB,MAAMC,EAAM,IAAImB,MAAMpB;AACtB,KAAOA,KAAM,GACXC,EAAID,GAAK6hC,EAAM7hC;AAEjB,OAAOC,CAAG,EAsPV+lC,aA3NmB,CAAC9gC,EAAKsO,KACzB,MAAMyyB,EAAY/gC,GAAOA,EAAInD,OAAOygC,UAE9BA,EAAWyD,EAAUn/B,KAAK5B;AAEhC,IAAI6uB;AAEJ,MAAQA,EAASyO,EAAS0D,UAAYnS,EAAOoS,MAAM,CACjD,MAAMC,EAAOrS,EAAOjwB;AACpB0P,EAAG1M,KAAK5B,EAAKkhC,EAAK,GAAIA,EAAK,GAC7B,GAkNAC,SAvMe,CAACC,EAAQj+B,KACxB,IAAIk+B;AACJ,MAAMtmC,EAAM;AAEZ,KAAwC,QAAhCsmC,EAAUD,EAAOE,KAAKn+B,KAC5BpI,EAAIc,KAAKwlC;AAGX,OAAOtmC,CAAG,EAgMVyjC,aACApM,eAAc,EACdmP,WAAY,EACZ7C,kBACA8C,cAxJqBxhC,IACrB0+B,kBAAkB1+B,GAAK,CAAC0P,EAAY7C,KAElC,GAAIowB,EAAWj9B,KAA6D,IAArD,CAAC,YAAa,SAAU,UAAU3D,QAAQwQ,GAC/D,OAAO;AAGT,MAAMjO,EAAQoB,EAAI6M;AAElB,GAAKowB,EAAWr+B,GAAhB,CAEA8Q,EAAW7R,YAAa;AAEpB,aAAc6R,EAChBA,EAAW/C,UAAW,EAInB+C,EAAW/N,MACd+N,EAAW/N,IAAM,KACf,MAAMvF,MAAM,qCAAwCyQ,EAAO,IAAK,EAXtC,CAa9B,GACA,EAkIF40B,YA/HkB,CAACC,EAAeC,KAClC,MAAM3hC,EAAM,CAAC,EAEP4hC,OAAU7mC,IACdA,EAAI+b,SAAQlY,IACVoB,EAAIpB,IAAS,CAAI,GACjB;AAGJyB,EAAQqhC,GAAiBE,OAAOF,GAAiBE,OAAOtgC,OAAOogC,GAAe1zB,MAAM2zB;AAEpF,OAAO3hC,CAAG,EAqHV6hC,YAhMkB1+B,GACXA,EAAI5B,cAAc8B,QAAQ,yBAC/B,SAASy+B,SAASn/B,EAAGo/B,EAAIC,GACvB,OAAOD,EAAG7vB,cAAgB8vB,CAC5B,IA6LFC,KAnHW,OAoHXC,eAlHqB,CAACtjC,EAAOujC,KAC7BvjC,GAASA;AACT,OAAO+F,OAAOkB,SAASjH,GAASA,EAAQujC,CAAY,EAiHpDpE,QACAI,OAAQH,EACRI,iBACAa,WACAmD,eAxGqB,CAAC3hC,EAAO,GAAI0N,EAAW8wB,EAASC,eACrD,IAAI/7B,EAAM;AACV,MAAM,OAAC3H,GAAU2S;AACjB,KAAO1N,KACL0C,GAAOgL,EAAS/M,KAAKihC,SAAW7mC,EAAO;AAGzC,OAAO2H,CAAG,EAkGVm/B,oBAxFF,SAASA,oBAAoB3F,GAC3B,SAAUA,GAASM,EAAWN,EAAM4C,SAAyC,aAA9B5C,EAAM9/B,OAAOwgC,cAA+BV,EAAM9/B,OAAOygC,UAC1G,EAuFEiF,aArFoBviC,IACpB,MAAM8M,EAAQ,IAAI5Q,MAAM,IAElBsmC,MAAQ,CAACC,EAAQ3nC,KAErB,GAAIqiC,SAASsF,GAAS,CACpB,GAAI31B,EAAMzQ,QAAQomC,IAAW,EAC3B;AAGF,KAAK,WAAYA,GAAS,CACxB31B,EAAMhS,GAAK2nC;AACX,MAAMl/B,EAASlD,EAAQoiC,GAAU,GAAK,CAAC;AAEvC3rB,QAAQ2rB,GAAQ,CAAC7jC,EAAOkpB,KACtB,MAAM4a,EAAeF,MAAM5jC,EAAO9D,EAAI;CACrCgiC,EAAY4F,KAAkBn/B,EAAOukB,GAAO4a,EAAa;AAG5D51B,EAAMhS,QAAKoF;AAEX,OAAOqD,CACT,CACF,CAEA,OAAOk/B,CAAM;AAGf,OAAOD,MAAMxiC,EAAK,EAAE,EA0DpBm/B,YACAwD,WAtDkBhG,GAClBA,IAAUQ,SAASR,IAAUM,EAAWN,KAAWM,EAAWN,EAAMvR,OAAS6R,EAAWN,EAAM7O;AC5oBhG,SAAS8U,WAAW71B,EAAS5Q,EAAM0mC,EAAQC,EAASC,GAClD3mC,MAAMwF,KAAK5D;AAEP5B,MAAM4mC,kBACR5mC,MAAM4mC,kBAAkBhlC,KAAMA,KAAKyO,aAEnCzO,KAAK8O,OAAQ,IAAK1Q,OAAS0Q;AAG7B9O,KAAK+O,QAAUA;AACf/O,KAAK6O,KAAO;AACZ1Q,IAAS6B,KAAK7B,KAAOA;AACrB0mC,IAAW7kC,KAAK6kC,OAASA;AACzBC,IAAY9kC,KAAK8kC,QAAUA;AAC3BC,IAAa/kC,KAAK+kC,SAAWA,EAC/B,CAEAE,EAAM/C,SAAS0C,WAAYxmC,MAAO,CAChC0J,OAAQ,SAASA,SACf,MAAO,CAELiH,QAAS/O,KAAK+O,QACdF,KAAM7O,KAAK6O,KAEXq2B,YAAallC,KAAKklC,YAClB1hB,OAAQxjB,KAAKwjB,OAEb2hB,SAAUnlC,KAAKmlC,SACfC,WAAYplC,KAAKolC,WACjBC,aAAcrlC,KAAKqlC,aACnBv2B,MAAO9O,KAAK8O,MAEZ+1B,OAAQI,EAAMV,aAAavkC,KAAK6kC,QAChC1mC,KAAM6B,KAAK7B,KACXmnC,OAAQtlC,KAAK+kC,UAAY/kC,KAAK+kC,SAASO,OAAStlC,KAAK+kC,SAASO,OAAS,KAE3E;AAGF,MAAM,EAAYV,WAAWplC,UACvBohC,EAAc,CAAC,EAErB,CACE,uBACA,iBACA,eACA,YACA,cACA,4BACA,iBACA,mBACA,kBACA,eACA,kBACA,mBAEA9nB,SAAQ3a,IACRyiC,EAAYziC,GAAQ,CAACyC,MAAOzC,EAAK;AAGnCmB,OAAO01B,iBAAiB4P,WAAYhE;AACpCthC,OAAOM,eAAe,EAAW,eAAgB,CAACgB,OAAO;AAGzDgkC,WAAWlkC,KAAO,CAACf,EAAOxB,EAAM0mC,EAAQC,EAASC,EAAUQ,KACzD,MAAMC,EAAalmC,OAAOo/B,OAAO;AAEjCuG,EAAM5C,aAAa1iC,EAAO6lC,GAAY,SAAS9tB,OAAO1V,GACpD,OAAOA,IAAQ5D,MAAMoB,SACvB,IAAG4+B,GACe,iBAATA;AAGTwG,WAAWhhC,KAAK4hC,EAAY7lC,EAAMoP,QAAS5Q,EAAM0mC,EAAQC,EAASC;AAElES,EAAWC,MAAQ9lC;AAEnB6lC,EAAW32B,KAAOlP,EAAMkP;AAExB02B,GAAejmC,OAAO4uB,OAAOsX,EAAYD;AAEzC,OAAOC,CAAU;AAGnB;;ACrFA,SAASE,YAAY/G,GACnB,OAAOsG,EAAM7F,cAAcT,IAAUsG,EAAM5iC,QAAQs8B,EACrD,CASA,SAASgH,eAAe7b,GACtB,OAAOmb,EAAMvC,SAAS5Y,EAAK,MAAQA,EAAI3oB,MAAM,GAAI,GAAK2oB,CACxD,CAWA,SAAS8b,UAAUC,EAAM/b,EAAKgc,GAC5B,OAAKD,EACEA,EAAKriC,OAAOsmB,GAAKic,KAAI,SAASC,KAAKC,EAAOnpC,GAE/CmpC,EAAQN,eAAeM;AACvB,OAAQH,GAAQhpC,EAAI,IAAMmpC,EAAQ,IAAMA,CAC1C,IAAGjoC,KAAK8nC,EAAO,IAAM,IALHhc,CAMpB,CAaA,MAAMoc,EAAajB,EAAM5C,aAAa4C,EAAO,CAAC,EAAG,MAAM,SAASvtB,OAAO0mB,GACrE,MAAO,WAAWtD,KAAKsD,EACzB;AA8JA,QArIA,SAAS+H,WAAWnkC,EAAKokC,EAAUC,GACjC,IAAKpB,EAAM9F,SAASn9B,GAClB,MAAM,IAAIxB,UAAU;AAItB4lC,EAAWA,GAAY,IAAyB9E;AAGhD+E,EAAUpB,EAAM5C,aAAagE,EAAS,CACpCC,YAAY,EACZR,MAAM,EACNS,SAAS,IACR,GAAO,SAASC,QAAQrW,EAAQsU,GAEjC,OAAQQ,EAAMnG,YAAY2F,EAAOtU,GACnC;AAEA,MAAMmW,EAAaD,EAAQC,WAErBG,EAAUJ,EAAQI,SAAWC,eAC7BZ,EAAOO,EAAQP,KACfS,EAAUF,EAAQE,QAClBI,EAAQN,EAAQO,MAAwB,oBAATA,MAAwBA,KACvDC,EAAUF,GAAS1B,EAAMX,oBAAoB8B;AAEnD,IAAKnB,EAAMhG,WAAWwH,GACpB,MAAM,IAAIjmC,UAAU;AAGtB,SAASsmC,aAAalmC,GACpB,GAAc,OAAVA,EAAgB,MAAO;AAE3B,GAAIqkC,EAAM1F,OAAO3+B,GACf,OAAOA,EAAMmmC;AAGf,IAAKF,GAAW5B,EAAMxF,OAAO7+B,GAC3B,MAAM,IAAI,EAAW;AAGvB,OAAIqkC,EAAMlG,cAAcn+B,IAAUqkC,EAAM3E,aAAa1/B,GAC5CimC,GAA2B,mBAATD,KAAsB,IAAIA,KAAK,CAAChmC,IAAU9B,EAAO4B,KAAKE,GAG1EA,CACT,CAYA,SAAS8lC,eAAe9lC,EAAOkpB,EAAK+b,GAClC,IAAI9oC,EAAM6D;AAEV,GAAIA,IAAUilC,GAAyB,iBAAVjlC,EAC3B,GAAIqkC,EAAMvC,SAAS5Y,EAAK,MAAO,CAE7BA,EAAMwc,EAAaxc,EAAMA,EAAI3oB,MAAM,GAAI;AAEvCP,EAAQ64B,KAAKuN,UAAUpmC,EACzB,MAAO,GACJqkC,EAAM5iC,QAAQzB,IAnGvB,SAASqmC,YAAYlqC,GACnB,OAAOkoC,EAAM5iC,QAAQtF,KAASA,EAAIgyB,KAAK2W,YACzC,CAiGiCuB,CAAYrmC,KACnCqkC,EAAMvF,WAAW9+B,IAAUqkC,EAAMvC,SAAS5Y,EAAK,SAAW/sB,EAAMkoC,EAAMpC,QAAQjiC,IAC7E,CAEHkpB,EAAM6b,eAAe7b;AAErB/sB,EAAI+b,SAAQ,SAASktB,KAAKruB,EAAIyP,IAC1B6d,EAAMnG,YAAYnnB,IAAc,OAAPA,GAAgByuB,EAAS7E,QAEtC,IAAZgF,EAAmBX,UAAU,CAAC9b,GAAM1C,EAAO0e,GAAqB,OAAZS,EAAmBzc,EAAMA,EAAM,KACnFgd,aAAanvB,GAEjB;AACA,OAAO,CACT,CAGF,GAAI+tB,YAAY9kC,GACd,OAAO;AAGTwlC,EAAS7E,OAAOqE,UAAUC,EAAM/b,EAAKgc,GAAOgB,aAAalmC;AAEzD,OAAO,CACT,CAEA,MAAMkO,EAAQ,GAERo4B,EAAiB5nC,OAAO4uB,OAAOgY,EAAY,CAC/CQ,eACAI,aACApB;AAyBF,IAAKT,EAAM9F,SAASn9B,GAClB,MAAM,IAAIxB,UAAU;CAvBtB,SAAS2mC,MAAMvmC,EAAOilC,GACpB,IAAIZ,EAAMnG,YAAYl+B,GAAtB,CAEA,IAA8B,IAA1BkO,EAAMzQ,QAAQuC,GAChB,MAAMxC,MAAM,kCAAoCynC,EAAK7nC,KAAK;AAG5D8Q,EAAMjR,KAAK+C;AAEXqkC,EAAMnsB,QAAQlY,GAAO,SAASolC,KAAKruB,EAAImS,GACrC,MAAM+G,IAAWoU,EAAMnG,YAAYnnB,IAAc,OAAPA,IAAgB8uB,EAAQ7iC,KAChEwiC,EAAUzuB,EAAIstB,EAAMjG,SAASlV,GAAOA,EAAIxkB,OAASwkB,EAAK+b,EAAMqB;CAG/C,IAAXrW,GACFsW,MAAMxvB,EAAIkuB,EAAOA,EAAKriC,OAAOsmB,GAAO,CAACA,GAEzC;AAEAhb,EAAMs4B,KAlB8B,CAmBtC,CAMAD,CAAMnlC;AAEN,OAAOokC,CACT;AC5MA,SAASiB,OAAOliC,GACd,MAAMmiC,EAAU,CACd,IAAK,MACL,IAAK,MACL,IAAK,MACL,IAAK,MACL,IAAK,MACL,MAAO,IACP,MAAO;AAET,OAAOC,mBAAmBpiC,GAAKE,QAAQ,oBAAoB,SAASy+B,SAAStH,GAC3E,OAAO8K,EAAQ9K,EACjB,GACF,CAUA,SAASgL,qBAAqBjuB,EAAQ8sB,GACpCrmC,KAAKynC,OAAS;AAEdluB,GAAU,EAAWA,EAAQvZ,KAAMqmC,EACrC,CAEA,MAAM,EAAYmB,qBAAqBhoC;AAEvC,EAAU+hC,OAAS,SAASA,OAAO1yB,EAAMjO,GACvCZ,KAAKynC,OAAO5pC,KAAK,CAACgR,EAAMjO,GAC1B;AAEA,EAAUiC,SAAW,SAASA,SAAS6kC,GACrC,MAAMC,EAAUD,EAAU,SAAS9mC,GACjC,OAAO8mC,EAAQ9jC,KAAK5D,KAAMY,EAAOymC,OACnC,EAAIA;AAEJ,OAAOrnC,KAAKynC,OAAO1B,KAAI,SAASC,KAAK9C,GACnC,OAAOyE,EAAQzE,EAAK,IAAM,IAAMyE,EAAQzE,EAAK,GAC/C,GAAG,IAAIllC,KAAK,IACd;AAEA;AC5CA,SAAS,gBAAO6H,GACd,OAAO0hC,mBAAmB1hC,GACxBR,QAAQ,QAAS,KACjBA,QAAQ,OAAQ,KAChBA,QAAQ,QAAS,KACjBA,QAAQ,OAAQ,KAChBA,QAAQ,QAAS,KACjBA,QAAQ,QAAS,IACrB,CAWe,SAASuiC,SAASlkB,EAAKnK,EAAQ8sB,GAE5C,IAAK9sB,EACH,OAAOmK;AAGT,MAAMikB,EAAUtB,GAAWA,EAAQgB,QAAU,gBAEvCQ,EAAcxB,GAAWA,EAAQyB;AAEvC,IAAIC;AAGFA,EADEF,EACiBA,EAAYtuB,EAAQ8sB,GAEpBpB,EAAMtF,kBAAkBpmB,GACzCA,EAAO1W,WACP,IAAI,EAAqB0W,EAAQ8sB,GAASxjC,SAAS8kC;AAGvD,GAAII,EAAkB,CACpB,MAAMC,EAAgBtkB,EAAIrlB,QAAQ,MAEX,IAAnB2pC,IACFtkB,EAAMA,EAAIviB,MAAM,EAAG6mC;AAErBtkB,KAA8B,IAAtBA,EAAIrlB,QAAQ,KAAc,IAAM,KAAO0pC,CACjD,CAEA,OAAOrkB,CACT,CCQA,QAlEA,MAAMukB,mBACJ,WAAAx5B,GACEzO,KAAKkoC,SAAW,EAClB,CAUA,GAAAC,CAAIC,EAAWC,EAAUhC,GACvBrmC,KAAKkoC,SAASrqC,KAAK,CACjBuqC,YACAC,WACAC,cAAajC,GAAUA,EAAQiC,YAC/BC,QAASlC,EAAUA,EAAQkC,QAAU;AAEvC,OAAOvoC,KAAKkoC,SAAS1qC,OAAS,CAChC,CASA,KAAAgrC,CAAMzlB,GACA/iB,KAAKkoC,SAASnlB,KAChB/iB,KAAKkoC,SAASnlB,GAAM,KAExB,CAOA,KAAA0lB,GACMzoC,KAAKkoC,WACPloC,KAAKkoC,SAAW,GAEpB,CAYA,OAAApvB,CAAQxI,GACN20B,EAAMnsB,QAAQ9Y,KAAKkoC,UAAU,SAASQ,eAAeC,GACzC,OAANA,GACFr4B,EAAGq4B,EAEP,GACF,GCjEF,GACEC,mBAAmB,EACnBC,mBAAmB,EACnBC,qBAAqB,GCFvB,EAA0C,oBAApBC,gBAAkCA,gBAAkB,ECD1E,EAAmC,oBAAbzH,SAA2BA,SAAW,KCA5D,EAA+B,oBAATsF,KAAuBA,KAAO,KCmB9CoC,EAAuB,MAC3B,IAAIC;AACJ,OAAyB,oBAAd7M,WACyB,iBAAjC6M,EAAU7M,UAAU6M,UACT,iBAAZA,GACY,OAAZA,KAKuB,oBAAXj2B,QAA8C,oBAAbN,SAChD,EAX4B,GAsBtBw2B,EAE0B,oBAAtBC,mBAEPjJ,gBAAgBiJ,mBACc,mBAAvBjJ,KAAKkJ,cAKhB,GACEC,WAAW,EACXC,QAAS,CACPP,gBAAe,EACfzH,SAAQ,EACRsF,KAAI,GAENoC,uBACAE,gCACAK,UAAW,CAAC,OAAQ,QAAS,OAAQ,OAAQ,MAAO;AC6BtD,QA3CA,SAASC,eAAepD,GACtB,SAASqD,UAAU5D,EAAMjlC,EAAO2E,EAAQ6hB,GACtC,IAAIvY,EAAOg3B,EAAKze;AAChB,MAAMsiB,EAAe/iC,OAAOkB,UAAUgH,GAChC86B,EAASviB,GAASye,EAAKroC;AAC7BqR,GAAQA,GAAQo2B,EAAM5iC,QAAQkD,GAAUA,EAAO/H,OAASqR;AAExD,GAAI86B,EAAQ,CACN1E,EAAM1B,WAAWh+B,EAAQsJ,GAC3BtJ,EAAOsJ,GAAQ,CAACtJ,EAAOsJ,GAAOjO,GAE9B2E,EAAOsJ,GAAQjO;AAGjB,OAAQ8oC,CACV,CAEKnkC,EAAOsJ,IAAUo2B,EAAM9F,SAAS55B,EAAOsJ,MAC1CtJ,EAAOsJ,GAAQ;AAGjB,MAAMgiB,EAAS4Y,UAAU5D,EAAMjlC,EAAO2E,EAAOsJ,GAAOuY;AAEhDyJ,GAAUoU,EAAM5iC,QAAQkD,EAAOsJ,MACjCtJ,EAAOsJ,GA5Cb,SAAS+6B,cAAc7sC,GACrB,MAAMiF,EAAM,CAAC,EACP+iB,EAAOzlB,OAAOylB,KAAKhoB;AACzB,IAAID;AACJ,MAAMK,EAAM4nB,EAAKvnB;AACjB,IAAIssB;AACJ,IAAKhtB,EAAI,EAAGA,EAAIK,EAAKL,IAAK,CACxBgtB,EAAM/E,EAAKjoB;AACXkF,EAAI8nB,GAAO/sB,EAAI+sB,EACjB,CACA,OAAO9nB,CACT,CAiCqB4nC,CAAcrkC,EAAOsJ;AAGtC,OAAQ66B,CACV,CAEA,GAAIzE,EAAM7D,WAAWgF,IAAanB,EAAMhG,WAAWmH,EAASlhB,SAAU,CACpE,MAAMljB,EAAM,CAAC;AAEbijC,EAAMnC,aAAasD,GAAU,CAACv3B,EAAMjO,KAClC6oC,UAvEN,SAASI,cAAch7B,GAKrB,OAAOo2B,EAAM9B,SAAS,gBAAiBt0B,GAAMk3B,KAAIvJ,GAC3B,OAAbA,EAAM,GAAc,GAAKA,EAAM,IAAMA,EAAM,IAEtD,CA+DgBqN,CAAch7B,GAAOjO,EAAOoB,EAAK,EAAE;AAG/C,OAAOA,CACT,CAEA,OAAO,IACT,EC/EM8nC,EAAuB,CAC3B,oBAAgB5nC;AA4BlB,MAAM6nC,EAAW,CAEfC,aAAc,EAEdC,QAAS,CAAC,MAAO,QAEjBC,iBAAkB,CAAC,SAASA,iBAAiB5nC,EAAM6nC,GACjD,MAAMC,EAAcD,EAAQE,kBAAoB,GAC1CC,EAAqBF,EAAY/rC,QAAQ,qBAAuB,EAChEksC,EAAkBtF,EAAM9F,SAAS78B;AAEnCioC,GAAmBtF,EAAMzE,WAAWl+B,KACtCA,EAAO,IAAIg/B,SAASh/B;AAGtB,MAAM8+B,EAAa6D,EAAM7D,WAAW9+B;AAEpC,GAAI8+B,EACF,OAAKkJ,GAGEA,EAAqB7Q,KAAKuN,UAAU,EAAe1kC,IAFjDA;AAKX,GAAI2iC,EAAMlG,cAAcz8B,IACtB2iC,EAAMllC,SAASuC,IACf2iC,EAAMvD,SAASp/B,IACf2iC,EAAMzF,OAAOl9B,IACb2iC,EAAMxF,OAAOn9B,GAEb,OAAOA;AAET,GAAI2iC,EAAMzD,kBAAkBl/B,GAC1B,OAAOA,EAAKrC;AAEd,GAAIglC,EAAMtF,kBAAkBr9B,GAAO,CACjC6nC,EAAQK,eAAe,mDAAmD;AAC1E,OAAOloC,EAAKO,UACd,CAEA,IAAI68B;AAEJ,GAAI6K,EAAiB,CACnB,GAAIH,EAAY/rC,QAAQ,sCAAwC,EAC9D,OC7EO,SAASosC,iBAAiBnoC,EAAM+jC,GAC7C,OAAO,EAAW/jC,EAAM,IAAI,EAASgnC,QAAQP,gBAAmBzpC,OAAO4uB,OAAO,CAC5EuY,QAAS,SAAS7lC,EAAOkpB,EAAK+b,EAAM6E,GAClC,GAAI,EAASC,QAAU1F,EAAMllC,SAASa,GAAQ,CAC5CZ,KAAKuhC,OAAOzX,EAAKlpB,EAAMiC,SAAS;AAChC,OAAO,CACT,CAEA,OAAO6nC,EAAQhE,eAAe3hC,MAAM/E,KAAM8D,UAC5C,GACCuiC,GACL,CDkEeoE,CAAiBnoC,EAAMtC,KAAK4qC,gBAAgB/nC;AAGrD,IAAK68B,EAAauF,EAAMvF,WAAWp9B,KAAU8nC,EAAY/rC,QAAQ,wBAA0B,EAAG,CAC5F,MAAMwsC,EAAY7qC,KAAK8qC,KAAO9qC,KAAK8qC,IAAIxJ;AAEvC,OAAO,EACL5B,EAAa,CAAC,UAAWp9B,GAAQA,EACjCuoC,GAAa,IAAIA,EACjB7qC,KAAK4qC,eAET,CACF,CAEA,GAAIL,GAAmBD,EAAqB,CAC1CH,EAAQK,eAAe,oBAAoB;AAC3C,OA3EN,SAASO,gBAAgBC,EAAUvyB,EAAQivB,GACzC,GAAIzC,EAAMjG,SAASgM,GACjB,KACGvyB,GAAUghB,KAAKC,OAAOsR;AACvB,OAAO/F,EAAM3/B,KAAK0lC,EACpB,CAAE,MAAOvrC,GACP,GAAe,gBAAXA,EAAEoP,KACJ,MAAMpP,CAEV,CAGF,OAAQioC,GAAWjO,KAAKuN,WAAWgE,EACrC,CA8DaD,CAAgBzoC,EACzB,CAEA,OAAOA,CACT,GAEA2oC,kBAAmB,CAAC,SAASA,kBAAkB3oC,GAC7C,MAAM0nC,EAAehqC,KAAKgqC,cAAgBD,EAASC,aAC7CnB,EAAoBmB,GAAgBA,EAAanB,kBACjDqC,EAAsC,SAAtBlrC,KAAKmrC;AAE3B,GAAI7oC,GAAQ2iC,EAAMjG,SAAS18B,KAAWumC,IAAsB7oC,KAAKmrC,cAAiBD,GAAgB,CAChG,MAAMtC,EAAoBoB,GAAgBA,EAAapB,kBACjDwC,GAAqBxC,GAAqBsC;AAEhD,IACE,OAAOzR,KAAKC,MAAMp3B,EACpB,CAAE,MAAO7C,GACP,GAAI2rC,EAAmB,CACrB,GAAe,gBAAX3rC,EAAEoP,KACJ,MAAM,EAAWnO,KAAKjB,EAAG,EAAW4rC,iBAAkBrrC,KAAM,KAAMA,KAAK+kC;AAEzE,MAAMtlC,CACR,CACF,CACF,CAEA,OAAO6C,CACT,GAMA60B,QAAS,EAETmU,eAAgB,aAChBC,eAAgB,eAEhBC,kBAAmB,EACnBC,eAAgB,EAEhBX,IAAK,CACHxJ,SAAU,EAASgI,QAAQhI,SAC3BsF,KAAM,EAAS0C,QAAQ1C,MAGzB8E,eAAgB,SAASA,eAAepG,GACtC,OAAOA,GAAU,KAAOA,EAAS,GACnC,EAEA6E,QAAS,CACPwB,OAAQ,CACN,OAAU;AAKhB1G,EAAMnsB,QAAQ,CAAC,SAAU,MAAO,SAAS,SAAS8yB,oBAAoBC,GACpE9B,EAASI,QAAQ0B,GAAU,CAAC,CAC9B;AAEA5G,EAAMnsB,QAAQ,CAAC,OAAQ,MAAO,UAAU,SAASgzB,sBAAsBD,GACrE9B,EAASI,QAAQ0B,GAAU5G,EAAMrD,MAAMkI,EACzC;AAEA,UE/JMiC,EAAoB9G,EAAMxB,YAAY,CAC1C,MAAO,gBAAiB,iBAAkB,eAAgB,OAC1D,UAAW,OAAQ,OAAQ,oBAAqB,sBAChD,gBAAiB,WAAY,eAAgB,sBAC7C,UAAW,cAAe,eCLtBuI,EAAantC,OAAO;AAE1B,SAASotC,gBAAgBC,GACvB,OAAOA,GAAU5oC,OAAO4oC,GAAQ5mC,OAAO/B,aACzC,CAEA,SAAS4oC,eAAevrC,GACtB,OAAc,IAAVA,GAA4B,MAATA,EACdA,EAGFqkC,EAAM5iC,QAAQzB,GAASA,EAAMmlC,IAAIoG,gBAAkB7oC,OAAO1C,EACnE,CAgBA,SAASwrC,iBAAiB/L,EAASz/B,EAAOsrC,EAAQx0B,EAAQ20B,GACxD,GAAIpH,EAAMhG,WAAWvnB,GACnB,OAAOA,EAAO9T,KAAK5D,KAAMY,EAAOsrC;AAG9BG,IACFzrC,EAAQsrC;AAGV,OAAKjH,EAAMjG,SAASp+B,GAEhBqkC,EAAMjG,SAAStnB,IACiB,IAA3B9W,EAAMvC,QAAQqZ,GAGnButB,EAAMxE,SAAS/oB,GACVA,EAAOojB,KAAKl6B,QADrB,OANA,CASF,CAsBA,MAAM0rC,aACJ,WAAA79B,CAAY07B,GACVA,GAAWnqC,KAAK2D,IAAIwmC,EACtB,CAEA,GAAAxmC,CAAIuoC,EAAQK,EAAgBC,GAC1B,MAAMtM,EAAOlgC;AAEb,SAASysC,UAAUC,EAAQC,EAASC,GAClC,MAAMC,EAAUZ,gBAAgBU;AAEhC,IAAKE,EACH,MAAM,IAAIzuC,MAAM;AAGlB,MAAM0rB,EAAMmb,EAAMlF,QAAQG,EAAM2M,KAE5B/iB,QAAqB5nB,IAAdg+B,EAAKpW,KAAmC,IAAb8iB,QAAmC1qC,IAAb0qC,IAAwC,IAAd1M,EAAKpW,MACzFoW,EAAKpW,GAAO6iB,GAAWR,eAAeO,GAE1C,CAEA,MAAMI,WAAa,CAAC3C,EAASyC,IAC3B3H,EAAMnsB,QAAQqxB,GAAS,CAACuC,EAAQC,IAAYF,UAAUC,EAAQC,EAASC;AAErE3H,EAAM7F,cAAc8M,IAAWA,aAAkBlsC,KAAKyO,YACxDq+B,WAAWZ,EAAQK,GACXtH,EAAMjG,SAASkN,KAAYA,EAASA,EAAO5mC,WArE9BH,EAqE4D+mC,EArEpD,iCAAiCpR,KAAK31B,EAAIG,SAsEvEwnC,WD1EN,CAAeC,IACb,MAAMjmC,EAAS,CAAC;AAChB,IAAIgjB,EACAjkB,EACA/I;AAEJiwC,GAAcA,EAAW/8B,MAAM,MAAM8I,SAAQ,SAASL,OAAOu0B,GAC3DlwC,EAAIkwC,EAAK3uC,QAAQ;AACjByrB,EAAMkjB,EAAKC,UAAU,EAAGnwC,GAAGwI,OAAO/B;AAClCsC,EAAMmnC,EAAKC,UAAUnwC,EAAI,GAAGwI;CAEvBwkB,GAAQhjB,EAAOgjB,IAAQiiB,EAAkBjiB,KAIlC,eAARA,EACEhjB,EAAOgjB,GACThjB,EAAOgjB,GAAKjsB,KAAKgI,GAEjBiB,EAAOgjB,GAAO,CAACjkB,GAGjBiB,EAAOgjB,GAAOhjB,EAAOgjB,GAAOhjB,EAAOgjB,GAAO,KAAOjkB,EAAMA,EAE3D;AAEA,OAAOiB,CACR,EC+CgBomC,CAAahB,GAASK,GAEvB,MAAVL,GAAkBO,UAAUF,EAAgBL,EAAQM;AAxEhC,IAACrnC;AA2EvB,OAAOnF,IACT,CAEA,GAAAF,CAAIosC,EAAQzzB,GACVyzB,EAASD,gBAAgBC;AAEzB,GAAIA,EAAQ,CACV,MAAMpiB,EAAMmb,EAAMlF,QAAQ//B,KAAMksC;AAEhC,GAAIpiB,EAAK,CACP,MAAMlpB,EAAQZ,KAAK8pB;AAEnB,IAAKrR,EACH,OAAO7X;AAGT,IAAe,IAAX6X,EACF,OAxGV,SAAS00B,YAAYhoC,GACnB,MAAMioC,EAAS9tC,OAAOo/B,OAAO,MACvB2O,EAAW;AACjB,IAAI7Q;AAEJ,KAAQA,EAAQ6Q,EAAS/J,KAAKn+B,IAC5BioC,EAAO5Q,EAAM,IAAMA,EAAM;AAG3B,OAAO4Q,CACT,CA8FiBD,CAAYvsC;AAGrB,GAAIqkC,EAAMhG,WAAWxmB,GACnB,OAAOA,EAAO7U,KAAK5D,KAAMY,EAAOkpB;AAGlC,GAAImb,EAAMxE,SAAShoB,GACjB,OAAOA,EAAO6qB,KAAK1iC;AAGrB,MAAM,IAAIJ,UAAU,yCACtB,CACF,CACF,CAEA,GAAAwR,CAAIk6B,EAAQoB,GACVpB,EAASD,gBAAgBC;AAEzB,GAAIA,EAAQ,CACV,MAAMpiB,EAAMmb,EAAMlF,QAAQ//B,KAAMksC;AAEhC,SAAUpiB,QAAqB5nB,IAAdlC,KAAK8pB,IAAwBwjB,IAAWlB,iBAAiBpsC,EAAMA,KAAK8pB,GAAMA,EAAKwjB,GAClG,CAEA,OAAO,CACT,CAEA,OAAOpB,EAAQoB,GACb,MAAMpN,EAAOlgC;AACb,IAAIutC,GAAU;AAEd,SAASC,aAAab,GACpBA,EAAUV,gBAAgBU;AAE1B,GAAIA,EAAS,CACX,MAAM7iB,EAAMmb,EAAMlF,QAAQG,EAAMyM;AAEhC,GAAI7iB,KAASwjB,GAAWlB,iBAAiBlM,EAAMA,EAAKpW,GAAMA,EAAKwjB,IAAW,QACjEpN,EAAKpW;AAEZyjB,GAAU,CACZ,CACF,CACF,CAEItI,EAAM5iC,QAAQ6pC,GAChBA,EAAOpzB,QAAQ00B,cAEfA,aAAatB;AAGf,OAAOqB,CACT,CAEA,KAAA9E,CAAM6E,GACJ,MAAMvoB,EAAOzlB,OAAOylB,KAAK/kB;AACzB,IAAIlD,EAAIioB,EAAKvnB,OACT+vC,GAAU;AAEd,KAAOzwC,KAAK,CACV,MAAMgtB,EAAM/E,EAAKjoB;AACjB,IAAIwwC,GAAWlB,iBAAiBpsC,EAAMA,KAAK8pB,GAAMA,EAAKwjB,GAAS,GAAO,QAC7DttC,KAAK8pB;AACZyjB,GAAU,CACZ,CACF,CAEA,OAAOA,CACT,CAEA,SAAAE,CAAUC,GACR,MAAMxN,EAAOlgC,KACPmqC,EAAU,CAAC;AAEjBlF,EAAMnsB,QAAQ9Y,MAAM,CAACY,EAAOsrC,KAC1B,MAAMpiB,EAAMmb,EAAMlF,QAAQoK,EAAS+B;AAEnC,GAAIpiB,EAAK,CACPoW,EAAKpW,GAAOqiB,eAAevrC;OACpBs/B,EAAKgM;AACZ,MACF,CAEA,MAAMyB,EAAaD,EA1JzB,SAASE,aAAa1B,GACpB,OAAOA,EAAO5mC,OACX/B,cAAc8B,QAAQ,mBAAmB,CAACwoC,EAAGC,EAAM3oC,IAC3C2oC,EAAK55B,cAAgB/O,GAElC,CAqJkCyoC,CAAa1B,GAAU5oC,OAAO4oC,GAAQ5mC;AAE9DqoC,IAAezB,UACVhM,EAAKgM;AAGdhM,EAAKyN,GAAcxB,eAAevrC;AAElCupC,EAAQwD,IAAc,CAAI;AAG5B,OAAO3tC,IACT,CAEA,MAAAwD,IAAUuqC,GACR,OAAO/tC,KAAKyO,YAAYjL,OAAOxD,QAAS+tC,EAC1C,CAEA,MAAAjmC,CAAOkmC,GACL,MAAMhsC,EAAM1C,OAAOo/B,OAAO;AAE1BuG,EAAMnsB,QAAQ9Y,MAAM,CAACY,EAAOsrC,KACjB,MAATtrC,IAA2B,IAAVA,IAAoBoB,EAAIkqC,GAAU8B,GAAa/I,EAAM5iC,QAAQzB,GAASA,EAAM5C,KAAK,MAAQ4C,EAAM;AAGlH,OAAOoB,CACT,CAEA,CAACnD,OAAOygC,YACN,OAAOhgC,OAAO4lB,QAAQllB,KAAK8H,UAAUjJ,OAAOygC,WAC9C,CAEA,QAAAz8B,GACE,OAAOvD,OAAO4lB,QAAQllB,KAAK8H,UAAUi+B,KAAI,EAAEmG,EAAQtrC,KAAWsrC,EAAS,KAAOtrC,IAAO5C,KAAK,KAC5F,CAEA,IAAKa,OAAOwgC,eACV,MAAO,cACT,CAEA,WAAO3+B,CAAKi+B,GACV,OAAOA,aAAiB3+B,KAAO2+B,EAAQ,IAAI3+B,KAAK2+B,EAClD,CAEA,aAAOn7B,CAAO8G,KAAUyjC,GACtB,MAAME,EAAW,IAAIjuC,KAAKsK;AAE1ByjC,EAAQj1B,SAASvT,GAAW0oC,EAAStqC,IAAI4B;AAEzC,OAAO0oC,CACT,CAEA,eAAOC,CAAShC,GACd,MAAMiC,EAAYnuC,KAAKgsC,GAAehsC,KAAKgsC,GAAc,CACvDoC,UAAW,CAAC,GAGRA,EAAYD,EAAUC,UACtB5uC,EAAYQ,KAAKR;AAEvB,SAAS6uC,eAAe1B,GACtB,MAAME,EAAUZ,gBAAgBU;AAEhC,IAAKyB,EAAUvB,GAAU,EAlN/B,SAASyB,eAAetsC,EAAKkqC,GAC3B,MAAMqC,EAAetJ,EAAMpB,YAAY,IAAMqI,GAE7C,CAAC,MAAO,MAAO,OAAOpzB,SAAQ01B,IAC5BlvC,OAAOM,eAAeoC,EAAKwsC,EAAaD,EAAc,CACpD3tC,MAAO,SAAS6tC,EAAMC,EAAMC,GAC1B,OAAO3uC,KAAKwuC,GAAY5qC,KAAK5D,KAAMksC,EAAQuC,EAAMC,EAAMC,EACzD,EACA//B,cAAc,GACd,GAEN,CAwMQ0/B,CAAe9uC,EAAWmtC;AAC1ByB,EAAUvB,IAAW,CACvB,CACF,CAEA5H,EAAM5iC,QAAQ6pC,GAAUA,EAAOpzB,QAAQu1B,gBAAkBA,eAAenC;AAExE,OAAOlsC,IACT,EAGFssC,aAAa4B,SAAS,CAAC,eAAgB,iBAAkB,SAAU,kBAAmB,aAAc;AAEpGjJ,EAAMzB,cAAc8I,aAAa9sC;AACjCylC,EAAMzB,cAAc8I;AAEpB;ACjRe,SAASsC,cAAcC,EAAK9J,GACzC,MAAMF,EAAS7kC,MAAQ,EACjBqgC,EAAU0E,GAAYF,EACtBsF,EAAU,GAAazpC,KAAK2/B,EAAQ8J;AAC1C,IAAI7nC,EAAO+9B,EAAQ/9B;AAEnB2iC,EAAMnsB,QAAQ+1B,GAAK,SAASC,UAAUx+B,GACpChO,EAAOgO,EAAG1M,KAAKihC,EAAQviC,EAAM6nC,EAAQsD,YAAa1I,EAAWA,EAASO,YAASpjC,EACjF;AAEAioC,EAAQsD;AAER,OAAOnrC,CACT,CCzBe,SAASysC,SAASnuC,GAC/B,SAAUA,IAASA,EAAMouC,WAC3B,CCUA,SAASC,cAAclgC,EAAS81B,EAAQC,GAEtC,EAAWlhC,KAAK5D,KAAiB,MAAX+O,EAAkB,WAAaA,EAAS,EAAWmgC,aAAcrK,EAAQC;AAC/F9kC,KAAK6O,KAAO,eACd,CAEAo2B,EAAM/C,SAAS+M,cAAe,EAAY,CACxCD,YAAY;AAGd;ACnBA,SAAe,EAAShG,qBAGtB,SAAUmG,qBACR,MAAO,CACLjuC,MAAO,SAASA,MAAM2N,EAAMjO,EAAOwuC,EAASvJ,EAAMwJ,EAAQC,GACxD,MAAMC,EAAS;AACfA,EAAO1xC,KAAKgR,EAAO,IAAM04B,mBAAmB3mC;AAExCqkC,EAAM/F,SAASkQ,IACjBG,EAAO1xC,KAAK,WAAa,IAAI46B,KAAK2W,GAASI;AAGzCvK,EAAMjG,SAAS6G,IACjB0J,EAAO1xC,KAAK,QAAUgoC;AAGpBZ,EAAMjG,SAASqQ,IACjBE,EAAO1xC,KAAK,UAAYwxC;CAGX,IAAXC,GACFC,EAAO1xC,KAAK;AAGd6U,SAAS68B,OAASA,EAAOvxC,KAAK,KAChC,EAEAoI,KAAM,SAASA,KAAKyI,GAClB,MAAM2tB,EAAQ9pB,SAAS68B,OAAO/S,MAAM,IAAIiT,OAAO,aAAe5gC,EAAO;AACrE,OAAQ2tB,EAAQkT,mBAAmBlT,EAAM,IAAM,IACjD,EAEA9iB,OAAQ,SAASA,OAAO7K,GACtB7O,KAAKkB,MAAM2N,EAAM,GAAI4pB,KAAKgE,MAAQ,MACpC,EAEH,CAlCD,GAsCS,CACLv7B,MAAO,SAASA,QAAS,EACzBkF,KAAM,SAASA,OAAS,OAAO,IAAM,EACrCsT,OAAQ,SAASA,SAAU;AClClB,SAASi2B,cAAcC,EAASC,GAC7C,OAAID,ICPS,SAASE,cAAcpsB,GAIpC,MAAO,8BAA8BoX,KAAKpX,EAC5C,CDEkBosB,CAAcD,GENjB,SAASE,YAAYH,EAASI,GAC3C,OAAOA,EACHJ,EAAQvqC,QAAQ,OAAQ,IAAM,IAAM2qC,EAAY3qC,QAAQ,OAAQ,IAChEuqC,CACN,CFGWG,CAAYH,EAASC,GAEvBA,CACT,CGfA,SAAe,EAAS7G,qBAItB,SAAUmG,qBACR,MAAMc,EAAO,kBAAkBnV,KAAKsB,UAAU8T,WACxCC,EAAiBz9B,SAAS2L,cAAc;AAC9C,IAAI+xB;AAQJ,SAASC,WAAW3sB,GAClB,IAAI4sB,EAAO5sB;AAEX,GAAIusB,EAAM,CAERE,EAAeryB,aAAa,OAAQwyB;AACpCA,EAAOH,EAAeG,IACxB,CAEAH,EAAeryB,aAAa,OAAQwyB;AAGpC,MAAO,CACLA,KAAMH,EAAeG,KACrBC,SAAUJ,EAAeI,SAAWJ,EAAeI,SAASlrC,QAAQ,KAAM,IAAM,GAChFk3B,KAAM4T,EAAe5T,KACrBiU,OAAQL,EAAeK,OAASL,EAAeK,OAAOnrC,QAAQ,MAAO,IAAM,GAC3EorC,KAAMN,EAAeM,KAAON,EAAeM,KAAKprC,QAAQ,KAAM,IAAM,GACpEqrC,SAAUP,EAAeO,SACzBC,KAAMR,EAAeQ,KACrBC,SAAiD,MAAtCT,EAAeS,SAAS38B,OAAO,GACxCk8B,EAAeS,SACf,IAAMT,EAAeS,SAE3B,CAEAR,EAAYC,WAAWr9B,OAAOspB,SAASgU;AAQvC,OAAO,SAASO,gBAAgBC,GAC9B,MAAMhqC,EAAUm+B,EAAMjG,SAAS8R,GAAeT,WAAWS,GAAcA;AACvE,OAAQhqC,EAAOypC,WAAaH,EAAUG,UAClCzpC,EAAOy1B,OAAS6T,EAAU7T,IAChC,CACD,CAlDD,GAsDS,SAASsU,kBACd,OAAO,CACT;ACXJ,SA9CA,SAASE,YAAYC,EAAc3tC,GACjC2tC,EAAeA,GAAgB;AAC/B,MAAMjoC,EAAQ,IAAI7K,MAAM8yC,GAClBC,EAAa,IAAI/yC,MAAM8yC;AAC7B,IAEIE,EAFAt4B,EAAO,EACPu4B,EAAO;AAGX9tC,OAAcnB,IAARmB,EAAoBA,EAAM;AAEhC,OAAO,SAASxF,KAAKuzC,GACnB,MAAM3U,EAAMhE,KAAKgE,MAEX4U,EAAYJ,EAAWE;AAExBD,IACHA,EAAgBzU;AAGlB1zB,EAAM6P,GAAQw4B;AACdH,EAAWr4B,GAAQ6jB;AAEnB,IAAI3/B,EAAIq0C,EACJG,EAAa;AAEjB,KAAOx0C,IAAM8b,GAAM,CACjB04B,GAAcvoC,EAAMjM;AACpBA,GAAQk0C,CACV,CAEAp4B,GAAQA,EAAO,GAAKo4B;AAEhBp4B,IAASu4B,IACXA,GAAQA,EAAO,GAAKH;AAGtB,GAAIvU,EAAMyU,EAAgB7tC,EACxB;AAGF,MAAMkuC,EAASF,GAAa5U,EAAM4U;AAElC,OAAOE,EAASnuC,KAAKouC,MAAmB,IAAbF,EAAoBC,QAAUrvC,CAC3D,CACF;ACpCA,SAASuvC,qBAAqBC,EAAUC,GACtC,IAAIC,EAAgB;AACpB,MAAMC,EAAe,GAAY,GAAI;AAErC,OAAOpyC,IACL,MAAMqyC,EAASryC,EAAEqyC,OACXC,EAAQtyC,EAAEuyC,iBAAmBvyC,EAAEsyC,WAAQ7vC,EACvC+vC,EAAgBH,EAASF,EACzBM,EAAOL,EAAaI,GACpBE,EAAUL,GAAUC;AAE1BH,EAAgBE;AAEhB,MAAMxvC,EAAO,CACXwvC,SACAC,QACAK,SAAUL,EAASD,EAASC,OAAS7vC,EACrC6G,MAAOkpC,EACPC,KAAMA,QAAchwC,EACpBmwC,UAAWH,GAAQH,GAASI,GAAWJ,EAAQD,GAAUI,OAAOhwC,EAChEunB,MAAOhqB;AAGT6C,EAAKqvC,EAAmB,WAAa,WAAY;AAEjDD,EAASpvC,EAAK,CAElB,CAEA,MAAMgwC,GAAkD,oBAAnBC,eAErC,GAAeD,IAAyB,SAAUzN,GAChD,OAAO,IAAI/xB,SAAQ,SAAS0/B,mBAAmBz/B,EAAS6oB,GACtD,IAAI6W,EAAc5N,EAAOviC;AACzB,MAAMowC,EAAiB,GAAahyC,KAAKmkC,EAAOsF,SAASsD,YACnDtC,EAAetG,EAAOsG;AAC5B,IAAIwH;AACJ,SAAS1P,OACH4B,EAAO+N,aACT/N,EAAO+N,YAAYC,YAAYF;AAG7B9N,EAAOiO,QACTjO,EAAOiO,OAAOlqB,oBAAoB,QAAS+pB,EAE/C,CAEI1N,EAAM7D,WAAWqR,KACf,EAASzJ,sBAAwB,EAASE,8BAC5CwJ,EAAelI,gBAAe,GAE9BkI,EAAelI,eAAe,wBAAwB;AAI1D,IAAI1F,EAAU,IAAIyN;AAGlB,GAAI1N,EAAOkO,KAAM,CACf,MAAMC,EAAWnO,EAAOkO,KAAKC,UAAY,GACnCzvB,EAAWshB,EAAOkO,KAAKxvB,SAAW0vB,SAAS1L,mBAAmB1C,EAAOkO,KAAKxvB,WAAa;AAC7FmvB,EAAe/uC,IAAI,gBAAiB,SAAWuvC,KAAKF,EAAW,IAAMzvB,GACvE,CAEA,MAAM4vB,EAAWxD,cAAc9K,EAAO+K,QAAS/K,EAAOnhB;AAEtDohB,EAAQsO,KAAKvO,EAAOgH,OAAO33B,cAAe0zB,SAASuL,EAAUtO,EAAOtrB,OAAQsrB,EAAOwO,mBAAmB;AAGtGvO,EAAQ3N,QAAU0N,EAAO1N;AAEzB,SAASmc,YACP,IAAKxO,EACH;AAGF,MAAMyO,EAAkB,GAAa7yC,KACnC,0BAA2BokC,GAAWA,EAAQ0O,yBAE1CC,EAAgBtI,GAAiC,SAAjBA,GAA4C,SAAjBA,EACxCrG,EAAQC,SAA/BD,EAAQ4O,aACJ3O,EAAW,CACfziC,KAAMmxC,EACNnO,OAAQR,EAAQQ,OAChBqO,WAAY7O,EAAQ6O,WACpBxJ,QAASoJ,EACT1O,SACAC;CC1FO,SAAS8O,OAAO7gC,EAAS6oB,EAAQmJ,GAC9C,MAAM2G,EAAiB3G,EAASF,OAAO6G;AAClC3G,EAASO,QAAWoG,IAAkBA,EAAe3G,EAASO,QAGjE1J,EAAO,IAAI,EACT,mCAAqCmJ,EAASO,OAC9C,CAAC,EAAWuO,gBAAiB,EAAWxI,kBAAkBjoC,KAAKsM,MAAMq1B,EAASO,OAAS,KAAO,GAC9FP,EAASF,OACTE,EAASD,QACTC,IAPFhyB,EAAQgyB,EAUZ,CDgFM6O,EAAO,SAASE,SAASlzC,GACvBmS,EAAQnS;AACRqiC,MACF,IAAG,SAAS8Q,QAAQhkB,GAClB6L,EAAO7L;AACPkT,MACF,GAAG8B;AAGHD,EAAU,IACZ,CAEI,cAAeA,EAEjBA,EAAQwO,UAAYA,UAGpBxO,EAAQkP,mBAAqB,SAASC,aAC/BnP,GAAkC,IAAvBA,EAAQoP,aAQD,IAAnBpP,EAAQQ,QAAkBR,EAAQqP,aAAwD,IAAzCrP,EAAQqP,YAAY91C,QAAQ,WAKjF+U,WAAWkgC,UACb;AAIFxO,EAAQsP,QAAU,SAASC,cACzB,GAAKvP,EAAL,CAIAlJ,EAAO,IAAI,EAAW,kBAAmB,EAAW0Y,aAAczP,EAAQC;AAG1EA,EAAU,IALV,CAMF;AAGAA,EAAQyP,QAAU,SAASC,cAGzB5Y,EAAO,IAAI,EAAW,gBAAiB,EAAW6Y,YAAa5P,EAAQC;AAGvEA,EAAU,IACZ;AAGAA,EAAQ4P,UAAY,SAASC,gBAC3B,IAAIC,EAAsB/P,EAAO1N,QAAU,cAAgB0N,EAAO1N,QAAU,cAAgB;AAC5F,MAAM6S,EAAenF,EAAOmF,cAAgB;AACxCnF,EAAO+P,sBACTA,EAAsB/P,EAAO+P;AAE/BhZ,EAAO,IAAI,EACTgZ,EACA5K,EAAalB,oBAAsB,EAAW+L,UAAY,EAAWP,aACrEzP,EACAC;AAGFA,EAAU,IACZ;AAKA,GAAI,EAASkE,qBAAsB,CAEjC,MAAM8L,GAAajQ,EAAOkQ,iBAAmBlE,GAAgBsC,KACxDtO,EAAOyG,gBAAkB0J,GAAQ5uC,KAAKy+B,EAAOyG;AAE9CwJ,GACFpC,EAAe/uC,IAAIkhC,EAAO0G,eAAgBuJ,EAE9C,MAGgB5yC,IAAhBuwC,GAA6BC,EAAelI,eAAe;AAGvD,qBAAsB1F,GACxBG,EAAMnsB,QAAQ45B,EAAe5qC,UAAU,SAASmtC,iBAAiBpvC,EAAKikB,GACpEgb,EAAQmQ,iBAAiBnrB,EAAKjkB,EAChC;AAIGo/B,EAAMnG,YAAY+F,EAAOkQ,mBAC5BjQ,EAAQiQ,kBAAoBlQ,EAAOkQ;AAIjC5J,GAAiC,SAAjBA,IAClBrG,EAAQqG,aAAetG,EAAOsG;AAIS,mBAA9BtG,EAAOqQ,oBAChBpQ,EAAQ5b,iBAAiB,WAAYuoB,qBAAqB5M,EAAOqQ,oBAAoB;AAIhD,mBAA5BrQ,EAAOsQ,kBAAmCrQ,EAAQsQ,QAC3DtQ,EAAQsQ,OAAOlsB,iBAAiB,WAAYuoB,qBAAqB5M,EAAOsQ;AAG1E,GAAItQ,EAAO+N,aAAe/N,EAAOiO,OAAQ,CAGvCH,EAAax8B,IACX,GAAK2uB,EAAL,CAGAlJ,GAAQzlB,GAAUA,EAAO/T,KAAO,IAAI,GAAc,KAAMyiC,EAAQC,GAAW3uB;AAC3E2uB,EAAQuQ;AACRvQ,EAAU,IAHV,CAGc;AAGhBD,EAAO+N,aAAe/N,EAAO+N,YAAY0C,UAAU3C;AAC/C9N,EAAOiO,SACTjO,EAAOiO,OAAOyC,QAAU5C,IAAe9N,EAAOiO,OAAO5pB,iBAAiB,QAASypB,GAEnF,CAEA,MAAMpC,EE/OK,SAASiF,cAAc9xB,GACpC,MAAM8Y,EAAQ,4BAA4B8G,KAAK5f;AAC/C,OAAO8Y,GAASA,EAAM,IAAM,EAC9B,CF4OqBgZ,CAAcrC;AAE3B5C,IAAsD,IAA1C,EAAShH,UAAUlrC,QAAQkyC,GACzC3U,EAAO,IAAI,EAAW,wBAA0B2U,EAAW,IAAK,EAAWsD,gBAAiBhP,IAM9FC,EAAQ2Q,KAAKhD,GAAe,KAC9B,GACF,EGvPMiD,GAAgB,CACpBC,KCLF,KDMEC,IAAKA;AAGP3Q,EAAMnsB,QAAQ48B,IAAe,CAACplC,EAAI1P,KAChC,GAAG0P,EAAI,CACL,IACEhR,OAAOM,eAAe0Q,EAAI,OAAQ,CAAC1P,SACrC,CAAE,MAAOnB,GAET,CACAH,OAAOM,eAAe0Q,EAAI,cAAe,CAAC1P,SAC5C;AAGF,0BACei1C,IACXA,EAAW5Q,EAAM5iC,QAAQwzC,GAAYA,EAAW,CAACA;AAEjD,MAAM,OAACr4C,GAAUq4C;AACjB,IAAIC,EACA7L;AAEJ,IAAK,IAAIntC,EAAI,EAAGA,EAAIU,EAAQV,IAAK,CAC/Bg5C,EAAgBD,EAAS/4C;AACzB,GAAImtC,EAAUhF,EAAMjG,SAAS8W,GAAiBJ,GAAcI,EAAcvyC,eAAiBuyC,EACzF,KAEJ,CAEA,IAAK7L,EAAS,CACZ,IAAgB,IAAZA,EACF,MAAM,IAAI,EACR,WAAW6L,wCACX;AAIJ,MAAM,IAAI13C,MACR6mC,EAAM1B,WAAWmS,GAAeI,GAC9B,YAAYA,mCACZ,oBAAoBA,KAE1B,CAEA,IAAK7Q,EAAMhG,WAAWgL,GACpB,MAAM,IAAIzpC,UAAU;AAGtB,OAAOypC,CAAO;AEvClB,SAAS8L,6BAA6BlR,GAChCA,EAAO+N,aACT/N,EAAO+N,YAAYoD;AAGrB,GAAInR,EAAOiO,QAAUjO,EAAOiO,OAAOyC,QACjC,MAAM,IAAI,GAAc,KAAM1Q,EAElC,CASe,SAASoR,gBAAgBpR,GACtCkR,6BAA6BlR;AAE7BA,EAAOsF,QAAU,GAAazpC,KAAKmkC,EAAOsF;AAG1CtF,EAAOviC,KAAOssC,cAAchrC,KAC1BihC,EACAA,EAAOqF,mBAGgD,IAArD,CAAC,OAAQ,MAAO,SAAS7rC,QAAQwmC,EAAOgH,SAC1ChH,EAAOsF,QAAQK,eAAe,qCAAqC;AAGrE,MAAMP,EAAU4L,oBAAoBhR,EAAOoF,SAAW,EAASA;AAE/D,OAAOA,EAAQpF,GAAQzX,MAAK,SAAS8oB,oBAAoBnR,GACvDgR,6BAA6BlR;AAG7BE,EAASziC,KAAOssC,cAAchrC,KAC5BihC,EACAA,EAAOoG,kBACPlG;AAGFA,EAASoF,QAAU,GAAazpC,KAAKqkC,EAASoF;AAE9C,OAAOpF,CACT,IAAG,SAASoR,mBAAmBC,GAC7B,IAAKrH,SAASqH,GAAS,CACrBL,6BAA6BlR;AAG7B,GAAIuR,GAAUA,EAAOrR,SAAU,CAC7BqR,EAAOrR,SAASziC,KAAOssC,cAAchrC,KACnCihC,EACAA,EAAOoG,kBACPmL,EAAOrR;AAETqR,EAAOrR,SAASoF,QAAU,GAAazpC,KAAK01C,EAAOrR,SAASoF,QAC9D,CACF,CAEA,OAAOr3B,QAAQ8oB,OAAOwa,EACxB,GACF,CC3EA,MAAMC,gBAAmB1X,GAAUA,aAAiB,GAAeA,EAAM72B,SAAW62B;AAWrE,SAAS2X,YAAYC,EAASC,GAE3CA,EAAUA,GAAW,CAAC;AACtB,MAAM3R,EAAS,CAAC;AAEhB,SAAS4R,eAAelxC,EAAQk/B,EAAQ5C,GACtC,OAAIoD,EAAM7F,cAAc75B,IAAW0/B,EAAM7F,cAAcqF,GAC9CQ,EAAMrD,MAAMh+B,KAAK,CAACi+B,YAAWt8B,EAAQk/B,GACnCQ,EAAM7F,cAAcqF,GACtBQ,EAAMrD,MAAM,CAAC,EAAG6C,GACdQ,EAAM5iC,QAAQoiC,GAChBA,EAAOtjC,QAETsjC,CACT,CAGA,SAASiS,oBAAoB1zC,EAAGlB,EAAG+/B,GACjC,OAAKoD,EAAMnG,YAAYh9B,GAEXmjC,EAAMnG,YAAY97B,QAAvB,EACEyzC,oBAAev0C,EAAWc,EAAG6+B,GAF7B4U,eAAezzC,EAAGlB,EAAG+/B,EAIhC,CAGA,SAAS8U,iBAAiB3zC,EAAGlB,GAC3B,IAAKmjC,EAAMnG,YAAYh9B,GACrB,OAAO20C,oBAAev0C,EAAWJ,EAErC,CAGA,SAAS80C,iBAAiB5zC,EAAGlB,GAC3B,OAAKmjC,EAAMnG,YAAYh9B,GAEXmjC,EAAMnG,YAAY97B,QAAvB,EACEyzC,oBAAev0C,EAAWc,GAF1ByzC,oBAAev0C,EAAWJ,EAIrC,CAGA,SAAS+0C,gBAAgB7zC,EAAGlB,EAAGs8B,GAC7B,OAAIA,KAAQoY,EACHC,eAAezzC,EAAGlB,GAChBs8B,KAAQmY,EACVE,oBAAev0C,EAAWc,QAD5B,CAGT,CAEA,MAAM8zC,EAAW,CACfpzB,IAAKizB,iBACL9K,OAAQ8K,iBACRr0C,KAAMq0C,iBACN/G,QAASgH,iBACT1M,iBAAkB0M,iBAClB3L,kBAAmB2L,iBACnBvD,iBAAkBuD,iBAClBzf,QAASyf,iBACTG,eAAgBH,iBAChB7B,gBAAiB6B,iBACjB3M,QAAS2M,iBACTzL,aAAcyL,iBACdtL,eAAgBsL,iBAChBrL,eAAgBqL,iBAChBzB,iBAAkByB,iBAClB1B,mBAAoB0B,iBACpBI,WAAYJ,iBACZpL,iBAAkBoL,iBAClBnL,cAAemL,iBACfK,eAAgBL,iBAChBM,UAAWN,iBACXO,UAAWP,iBACXQ,WAAYR,iBACZhE,YAAagE,iBACbS,WAAYT,iBACZU,iBAAkBV,iBAClBlL,eAAgBmL,gBAChB1M,QAAS,CAACnnC,EAAGlB,IAAM40C,oBAAoBL,gBAAgBrzC,GAAIqzC,gBAAgBv0C,IAAI;AAGjFmjC,EAAMnsB,QAAQxZ,OAAOylB,KAAKzlB,OAAO4uB,OAAO,CAAC,EAAGqoB,EAASC,KAAW,SAASe,mBAAmBnZ,GAC1F,MAAMwD,EAAQkV,EAAS1Y,IAASsY,oBAC1Bc,EAAc5V,EAAM2U,EAAQnY,GAAOoY,EAAQpY,GAAOA;AACvD6G,EAAMnG,YAAY0Y,IAAgB5V,IAAUiV,kBAAqBhS,EAAOzG,GAAQoZ,EACnF;AAEA,OAAO3S,CACT,CCxGO,MAAM4S,GAAU,QCKjBC,GAAa,CAAC,EAGpB,CAAC,SAAU,UAAW,SAAU,WAAY,SAAU,UAAU5+B,SAAQ,CAAC1W,EAAMtF,KAC7E46C,GAAWt1C,GAAQ,SAASu1C,UAAUhZ,GACpC,cAAcA,IAAUv8B,GAAQ,KAAOtF,EAAI,EAAI,KAAO,KAAOsF,CAC/D,CAAC;AAGH,MAAMw1C,GAAqB,CAAC;AAW5BF,GAAW1N,aAAe,SAASA,aAAa2N,EAAWza,EAASnuB,GAClE,SAAS8oC,cAAcC,EAAKC,GAC1B,MAAO,uCAAoDD,EAAM,IAAOC,GAAQhpC,EAAU,KAAOA,EAAU,GAC7G,CAGA,MAAO,CAACnO,EAAOk3C,EAAKE,KAClB,IAAkB,IAAdL,EACF,MAAM,IAAI,EACRE,cAAcC,EAAK,qBAAuB5a,EAAU,OAASA,EAAU,KACvE,EAAW+a;AAIf,GAAI/a,IAAY0a,GAAmBE,GAAM,CACvCF,GAAmBE,IAAO;AAE1Bp4C,QAAQyU,KACN0jC,cACEC,EACA,+BAAiC5a,EAAU,2CAGjD,CAEA,OAAOya,GAAYA,EAAU/2C,EAAOk3C,EAAKE,EAAY,CAEzD;AAmCA,UACEE,cAxBF,SAASA,cAAc7R,EAAS8R,EAAQC,GACtC,GAAuB,iBAAZ/R,EACT,MAAM,IAAI,EAAW,4BAA6B,EAAWgS;AAE/D,MAAMtzB,EAAOzlB,OAAOylB,KAAKshB;AACzB,IAAIvpC,EAAIioB,EAAKvnB;AACb,KAAOV,KAAM,GAAG,CACd,MAAMg7C,EAAM/yB,EAAKjoB,GACX66C,EAAYQ,EAAOL;AACzB,GAAIH,EAAJ,CACE,MAAM/2C,EAAQylC,EAAQyR,GAChBjnB,OAAmB3uB,IAAVtB,GAAuB+2C,EAAU/2C,EAAOk3C,EAAKzR;AAC5D,IAAe,IAAXxV,EACF,MAAM,IAAI,EAAW,UAAYinB,EAAM,YAAcjnB,EAAQ,EAAWwnB,qBAG5E,MACA,IAAqB,IAAjBD,EACF,MAAM,IAAI,EAAW,kBAAoBN,EAAK,EAAWQ,eAE7D,CACF,EAIEZ,eC9EI,GAAaC,GAAUD;AAS7B,MAAMa,MACJ,WAAA9pC,CAAY+pC,GACVx4C,KAAK+pC,SAAWyO;AAChBx4C,KAAKy4C,aAAe,CAClB3T,QAAS,IAAI,EACbC,SAAU,IAAI,EAElB,CAUA,OAAAD,CAAQ4T,EAAa7T,GAGnB,GAA2B,iBAAhB6T,EAA0B,CACnC7T,EAASA,GAAU,CAAC;AACpBA,EAAOnhB,IAAMg1B,CACf,MACE7T,EAAS6T,GAAe,CAAC;AAG3B7T,EAASyR,YAAYt2C,KAAK+pC,SAAUlF;AAEpC,MAAM,aAACmF,EAAY,iBAAEqJ,EAAgB,QAAElJ,GAAWtF;KAE7B3iC,IAAjB8nC,GACF2N,GAAUO,cAAclO,EAAc,CACpCpB,kBAAmB,GAAWoB,aAAa,GAAW2O,SACtD9P,kBAAmB,GAAWmB,aAAa,GAAW2O,SACtD7P,oBAAqB,GAAWkB,aAAa,GAAW2O,WACvD;AAGmB,MAApBtF,IACEpO,EAAMhG,WAAWoU,GACnBxO,EAAOwO,iBAAmB,CACxBvL,UAAWuL,GAGbsE,GAAUO,cAAc7E,EAAkB,CACxChM,OAAQ,GAAWuR,SACnB9Q,UAAW,GAAW8Q,WACrB;AAKP/T,EAAOgH,QAAUhH,EAAOgH,QAAU7rC,KAAK+pC,SAAS8B,QAAU,OAAOtoC;AAEjE,IAAIs1C;AAGJA,EAAiB1O,GAAWlF,EAAMrD,MAChCuI,EAAQwB,OACRxB,EAAQtF,EAAOgH;AAGjBgN,GAAkB5T,EAAMnsB,QACtB,CAAC,SAAU,MAAO,OAAQ,OAAQ,MAAO,QAAS,WACjD+yB,WACQ1B,EAAQ0B,EAAO;AAI1BhH,EAAOsF,QAAU,GAAa3mC,OAAOq1C,EAAgB1O;AAGrD,MAAM2O,EAA0B;AAChC,IAAIC,GAAiC;AACrC/4C,KAAKy4C,aAAa3T,QAAQhsB,SAAQ,SAASkgC,2BAA2BC,GACpE,GAAmC,mBAAxBA,EAAY1Q,UAA0D,IAAhC0Q,EAAY1Q,QAAQ1D,GAArE,CAIAkU,EAAiCA,GAAkCE,EAAY3Q;AAE/EwQ,EAAwBI,QAAQD,EAAY7Q,UAAW6Q,EAAY5Q,SAJnE,CAKF;AAEA,MAAM8Q,EAA2B;AACjCn5C,KAAKy4C,aAAa1T,SAASjsB,SAAQ,SAASsgC,yBAAyBH,GACnEE,EAAyBt7C,KAAKo7C,EAAY7Q,UAAW6Q,EAAY5Q,SACnE;AAEA,IAAIgR,EAEAl8C,EADAL,EAAI;AAGR,IAAKi8C,EAAgC,CACnC,MAAMO,EAAQ,CAACrD,gBAAgB1nB,KAAKvuB,WAAOkC;AAC3Co3C,EAAMJ,QAAQn0C,MAAMu0C,EAAOR;AAC3BQ,EAAMz7C,KAAKkH,MAAMu0C,EAAOH;AACxBh8C,EAAMm8C,EAAM97C;AAEZ67C,EAAUvmC,QAAQC,QAAQ8xB;AAE1B,KAAO/nC,EAAIK,GACTk8C,EAAUA,EAAQjsB,KAAKksB,EAAMx8C,KAAMw8C,EAAMx8C;AAG3C,OAAOu8C,CACT,CAEAl8C,EAAM27C,EAAwBt7C;AAE9B,IAAI+7C,EAAY1U;AAEhB/nC,EAAI;AAEJ,KAAOA,EAAIK,GAAK,CACd,MAAMs+B,EAAcqd,EAAwBh8C,KACtC08C,EAAaV,EAAwBh8C;AAC3C,IACEy8C,EAAY9d,EAAY8d,EAC1B,CAAE,MAAO55C,GACP65C,EAAW51C,KAAK5D,KAAML;AACtB,KACF,CACF,CAEA,IACE05C,EAAUpD,gBAAgBryC,KAAK5D,KAAMu5C,EACvC,CAAE,MAAO55C,GACP,OAAOmT,QAAQ8oB,OAAOj8B,EACxB,CAEA7C,EAAI;AACJK,EAAMg8C,EAAyB37C;AAE/B,KAAOV,EAAIK,GACTk8C,EAAUA,EAAQjsB,KAAK+rB,EAAyBr8C,KAAMq8C,EAAyBr8C;AAGjF,OAAOu8C,CACT,CAEA,MAAAI,CAAO5U,GACLA,EAASyR,YAAYt2C,KAAK+pC,SAAUlF;AACpC,MAAMsO,EAAWxD,cAAc9K,EAAO+K,QAAS/K,EAAOnhB;AACtD,OAAOkkB,SAASuL,EAAUtO,EAAOtrB,OAAQsrB,EAAOwO,iBAClD,EAIFpO,EAAMnsB,QAAQ,CAAC,SAAU,MAAO,OAAQ,YAAY,SAAS8yB,oBAAoBC,GAE/E0M,MAAM/4C,UAAUqsC,GAAU,SAASnoB,EAAKmhB,GACtC,OAAO7kC,KAAK8kC,QAAQwR,YAAYzR,GAAU,CAAC,EAAG,CAC5CgH,SACAnoB,MACAphB,MAAOuiC,GAAU,CAAC,GAAGviC,OAEzB,CACF;AAEA2iC,EAAMnsB,QAAQ,CAAC,OAAQ,MAAO,UAAU,SAASgzB,sBAAsBD,GAGrE,SAAS6N,mBAAmBC,GAC1B,OAAO,SAASC,WAAWl2B,EAAKphB,EAAMuiC,GACpC,OAAO7kC,KAAK8kC,QAAQwR,YAAYzR,GAAU,CAAC,EAAG,CAC5CgH,SACA1B,QAASwP,EAAS,CAChB,eAAgB,uBACd,CAAC,EACLj2B,MACAphB,SAEJ,CACF,CAEAi2C,MAAM/4C,UAAUqsC,GAAU6N;AAE1BnB,MAAM/4C,UAAUqsC,EAAS,QAAU6N,oBAAmB,EACxD;AAEA;AC/LA,MAAMG,YACJ,WAAAprC,CAAYqrC,GACV,GAAwB,mBAAbA,EACT,MAAM,IAAIt5C,UAAU;AAGtB,IAAIu5C;AAEJ/5C,KAAKq5C,QAAU,IAAIvmC,SAAQ,SAASknC,gBAAgBjnC,GAClDgnC,EAAiBhnC,CACnB;AAEA,MAAMkzB,EAAQjmC;AAGdA,KAAKq5C,QAAQjsB,MAAKjX,IAChB,IAAK8vB,EAAMgU,WAAY;AAEvB,IAAIn9C,EAAImpC,EAAMgU,WAAWz8C;AAEzB,KAAOV,KAAM,GACXmpC,EAAMgU,WAAWn9C,GAAGqZ;AAEtB8vB,EAAMgU,WAAa,IAAI;AAIzBj6C,KAAKq5C,QAAQjsB,KAAO8sB,IAClB,IAAIpG;AAEJ,MAAMuF,EAAU,IAAIvmC,SAAQC,IAC1BkzB,EAAMqP,UAAUviC;AAChB+gC,EAAW/gC,CAAO,IACjBqa,KAAK8sB;AAERb,EAAQljC,OAAS,SAASylB,SACxBqK,EAAM4M,YAAYiB,EACpB;AAEA,OAAOuF,CAAO;AAGhBS,GAAS,SAAS3jC,OAAOpH,EAAS81B,EAAQC,GACxC,IAAImB,EAAMmQ,OAAV,CAKAnQ,EAAMmQ,OAAS,IAAI,GAAcrnC,EAAS81B,EAAQC;AAClDiV,EAAe9T,EAAMmQ,OAHrB,CAIF,GACF,CAKA,gBAAAJ,GACE,GAAIh2C,KAAKo2C,OACP,MAAMp2C,KAAKo2C,MAEf,CAMA,SAAAd,CAAU5D,GACJ1xC,KAAKo2C,OACP1E,EAAS1xC,KAAKo2C,QAIZp2C,KAAKi6C,WACPj6C,KAAKi6C,WAAWp8C,KAAK6zC,GAErB1xC,KAAKi6C,WAAa,CAACvI,EAEvB,CAMA,WAAAmB,CAAYnB,GACV,IAAK1xC,KAAKi6C,WACR;AAEF,MAAM7yB,EAAQpnB,KAAKi6C,WAAW57C,QAAQqzC,IACvB,IAAXtqB,GACFpnB,KAAKi6C,WAAWE,OAAO/yB,EAAO,EAElC,CAMA,aAAOqd,GACL,IAAItuB;AACJ,MAAM8vB,EAAQ,IAAI4T,aAAY,SAASC,SAASpyC,GAC9CyO,EAASzO,CACX;AACA,MAAO,CACLu+B,QACA9vB,SAEJ,EAGF;ACxHA,MAAMikC,GAAiB,CACrBC,SAAU,IACVC,mBAAoB,IACpBC,WAAY,IACZC,WAAY,IACZC,GAAI,IACJC,QAAS,IACTC,SAAU,IACVC,4BAA6B,IAC7BC,UAAW,IACXC,aAAc,IACdC,eAAgB,IAChBC,YAAa,IACbC,gBAAiB,IACjBC,OAAQ,IACRC,gBAAiB,IACjBC,iBAAkB,IAClBC,MAAO,IACPC,SAAU,IACVC,YAAa,IACbC,SAAU,IACVC,OAAQ,IACRC,kBAAmB,IACnBC,kBAAmB,IACnBC,WAAY,IACZC,aAAc,IACdC,gBAAiB,IACjBC,UAAW,IACXC,SAAU,IACVC,iBAAkB,IAClBC,cAAe,IACfC,4BAA6B,IAC7BC,eAAgB,IAChBC,SAAU,IACVC,KAAM,IACNC,eAAgB,IAChBC,mBAAoB,IACpBC,gBAAiB,IACjBC,WAAY,IACZC,qBAAsB,IACtBC,oBAAqB,IACrBC,kBAAmB,IACnBC,UAAW,IACXC,mBAAoB,IACpBC,oBAAqB,IACrBC,OAAQ,IACRC,iBAAkB,IAClBC,SAAU,IACVC,gBAAiB,IACjBC,qBAAsB,IACtBC,gBAAiB,IACjBC,4BAA6B,IAC7BC,2BAA4B,IAC5BC,oBAAqB,IACrBC,eAAgB,IAChBC,WAAY,IACZC,mBAAoB,IACpBC,eAAgB,IAChBC,wBAAyB,IACzBC,sBAAuB,IACvBC,oBAAqB,IACrBC,aAAc,IACdC,YAAa,IACbC,8BAA+B;AAGjC7+C,OAAO4lB,QAAQk1B,IAAgBthC,SAAQ,EAAEgR,EAAKlpB,MAC5Cw5C,GAAex5C,GAASkpB,CAAG;AAG7B;ACzBA,MAAMs0B,GAnBN,SAASC,eAAeC,GACtB,MAAMje,EAAU,IAAI,GAAMie,GACpBt/B,EAAWuP,KAAK,GAAM/uB,UAAUslC,QAASzE;AAG/C4E,EAAMjD,OAAOhjB,EAAU,GAAMxf,UAAW6gC,EAAS,CAACT,YAAY;AAG9DqF,EAAMjD,OAAOhjB,EAAUqhB,EAAS,KAAM,CAACT,YAAY;AAGnD5gB,EAAS0f,OAAS,SAASA,OAAO8Z,GAChC,OAAO6F,eAAe/H,YAAYgI,EAAe9F,GACnD;AAEA,OAAOx5B,CACT,CAGcq/B,CAAe;AAG7BD,GAAM7F,MAAQ;AAGd6F,GAAMnP,cAAgB;AACtBmP,GAAMvE,YAAc;AACpBuE,GAAMrP,SAAWA;AACjBqP,GAAM3G,QAAUA;AAChB2G,GAAMjY,WAAa;AAGnBiY,GAAMxZ,WAAa;AAGnBwZ,GAAMG,OAASH,GAAMnP;AAGrBmP,GAAMI,IAAM,SAASA,IAAIC,GACvB,OAAO3rC,QAAQ0rC,IAAIC,EACrB;AAEAL,GAAMM,OC7CS,SAASA,OAAOpmB,GAC7B,OAAO,SAASgG,KAAKvhC,GACnB,OAAOu7B,EAASvzB,MAAM,KAAMhI,EAC9B,CACF;AD4CAqhD,GAAMO,aE5DS,SAASA,aAAaC,GACnC,OAAO3Z,EAAM9F,SAASyf,KAAsC,IAAzBA,EAAQD,YAC7C;AF6DAP,GAAM9H,YAAcA;AAEpB8H,GAAM9R,aAAe;AAErB8R,GAAMS,WAAalgB,GAAS,EAAesG,EAAMzE,WAAW7B,GAAS,IAAI2C,SAAS3C,GAASA;AAE3Fyf,GAAMhE,eAAiB;AAEvBgE,GAAMjhB,QAAUihB;AAGhB;AGpFA,IAAIU,GAAU;AACd,GAA4B,uBAAxB9rC,OAAOspB,SAASC,KAChBuiB,GAAU;KACP,GAA4B,2BAAxB9rC,OAAOspB,SAASC,MAA6D,mDAAxBvpB,OAAOspB,SAASC,KAG5EuiB,GAAU;KAET,GAA2B,gDAAxB9rC,OAAOspB,SAASC,KACpBuiB,GAAU;KAET,GAA2B,gDAAxB9rC,OAAOspB,SAASC,KACpBuiB,GAAU;KAET,GAA2B,6CAAxB9rC,OAAOspB,SAASC,KAEpBuiB,GAAU;KAET,GAA2B,kDAAxB9rC,OAAOspB,SAASC,KAAyD,CAC7E78B,QAAQ0R,IAAI4B,OAAOspB,SAASC;AAC5BuiB,GAAU,8DAGVA,GAAU;AAGd,UACIlP,QAASkP;AC8pBb,SAzqBA,MAAMC,MACFC;AACAC;AACAC;AAEAC;AACAC;AAEAC;AACAC;AACAC;AAEAC;AACAC;AACAC;AACAC;AAEAC;AACAC;AACAC;AACAC;AACAC;AACAC;AAEAC;AAEAC;AACAC;AAEAC;AAEAC;AACAC;AACAC;AACAC;AAEAC;AAEA,WAAAjyC,GAEIzO,KAAKk/C,YAAc,GAAMxgB,OAAO;AAChC1+B,KAAKme,MACT,CAEA,IAAAA,GAEI,MAAM+hB,EAAOlgC;AACbkgC,EAAK+e,QAAUtiB;AAEfuD,EAAKsf,oBAAsB9sC,SAASqC,cAAc;AAClDmrB,EAAKuf,aAAgB/sC,SAASqC,cAAc;AAC5CmrB,EAAKwf,aAAgBhtC,SAASqC,cAAc;AAC5CmrB,EAAKyf,eAAkBjtC,SAASqC,cAAc;AAE9CmrB,EAAK0f,sBAAwB1f,EAAK+e,QAAQriB,QAAQ;AAClDsD,EAAK2f,0BAA4B3f,EAAK+e,QAAQriB,QAAQ;AACtDsD,EAAK4f,eAAiB5f,EAAK+e,QAAQriB,QAAQ;AAC3CsD,EAAK6f,eAAiB7f,EAAK+e,QAAQriB,QAAQ;AAC3CsD,EAAK8f,iBAAmB9f,EAAK+e,QAAQriB,QAAQ;AAC7CsD,EAAK+f,mBAAqBl5C,SAASm5B,EAAK+e,QAAQriB,QAAQ;AAExDsD,EAAKigB,iBAAmBztC,SAASwE,iBAAiB;AAClDgpB,EAAKkgB,aAAe1tC,SAASqC,cAAc;AAE3CmrB,EAAKmgB,UAAY3tC,SAASwE,iBAAiB;AAE3CgpB,EAAKogB,YAAc5tC,SAASqC,cAAc;AAC1CmrB,EAAKqgB,UAAY7tC,SAASqC,cAAc;AACxCmrB,EAAKsgB,SAAW9tC,SAASqC,cAAc;AACvCmrB,EAAKugB,YAAc/tC,SAASqC,cAAc;AAC1CmrB,EAAKwgB,YAAc;AAEnBxgB,EAAKggB,WAAaxtC,SAASwE,iBAAiB;AAG5CgpB,EAAKsf,oBAAoBt2B,iBAAiB,UAAWzpB,IACjD,MAAM68B,EAAW4D,EAAKsf,oBAAoB5+C;AAC1C,IAAI+/C;AAEJ,GAAgB,MAAZrkB,EAAkB,CAClBqkB,EAAezgB,EAAKsf,oBAAoBzqC,cAAc,kBAAkByD;AAGxEmkB,aAAaM,QAAQ,sBAAuBX;AAC5CK,aAAaM,QAAQ,qBAAsB0jB;AAG3ChkB,aAAaikB,WAAW;AACxB1gB,EAAK2gB;AACL3gB,EAAK4gB;AAGL5gB,EAAK6gB,qBAAqBzkB;AAC1B4D,EAAKogB,YAAYlnC,UAAUkB,IAAI;AAKvC4lB,EAAKuf,aAAav2B,iBAAiB,UAAWzpB,IAC1C,MAAMuhD,EAAU9gB,EAAKuf,aAAa7+C;AAClC,IAAIqgD;AAEJ,GAAe,MAAXD,EAAiB,CACjBC,EAAc/gB,EAAKuf,aAAa1qC,cAAc,kBAAkByD;AAGhEmkB,aAAaM,QAAQ,eAAgB+jB;AACrCrkB,aAAaM,QAAQ,cAAegkB;AAGpCtkB,aAAaikB,WAAW;AACxB1gB,EAAK2gB;AACL3gB,EAAK4gB;AAGL5gB,EAAKwf,aAAa97B,UAAW;AAE7B,GAAwD,MAArDsc,EAAKwf,aAAa3qC,cAAc,mBAAoF,MAAvDmrB,EAAKyf,eAAe5qC,cAAc,kBAA0B,CACxHmrB,EAAKogB,YAAYlnC,UAAUM,OAAO;AAClCwmB,EAAKghB;AAOjBhhB,EAAKwf,aAAax2B,iBAAiB,UAAWzpB,IAC1C,MAAM0hD,EAAUjhB,EAAKwf,aAAa9+C;AAClC,IAAIwgD;AAEJ,GAAe,MAAXD,EAAiB,CACjBC,EAAclhB,EAAKwf,aAAa3qC,cAAc,kBAAkByD;AAGhEmkB,aAAaM,QAAQ,eAAgBkkB;AACrCxkB,aAAaM,QAAQ,cAAemkB;AAGpClhB,EAAKyf,eAAe/7B,UAAW;AAIvCsc,EAAKyf,eAAez2B,iBAAiB,UAAUzpB,IAC3C,MAAM4hD,EAAYnhB,EAAKyf,eAAe/+C;AACtC,IAAI0gD;AAEJ,GAAiB,MAAbD,EAAmB,CACnBC,EAAgBphB,EAAKyf,eAAe5qC,cAAc,kBAAkByD;AAGpEmkB,aAAaM,QAAQ,iBAAkBokB;AACvC1kB,aAAaM,QAAQ,gBAAiBqkB;AAGtCphB,EAAKogB,YAAYlnC,UAAUM,OAAO;AAClCwmB,EAAKghB;AAKbxuC,SAASwW,iBAAiB,UAAWzpB,IACjC,MAAM8hD,EAAa9hD,EAAE8F;AACrB,GAAG,GAAoD,aAApCg8C,EAAWjqC,aAAa,QAAyB,CAC7DiqC,EAAWt/C,QACVi+B,EAAKshB,qBAAqBD,EAAWx+B,IAErCmd,EAAKuhB,0BAA0BF,EAAWx+B;AAE9Cmd,EAAK4gB;AAIb,GAAG5gB,EAAK0f,sBAAsB,CAE1B1f,EAAKwhB,cAAc,iBAAkBxhB,EAAK0f;AAC1C1f,EAAK6gB,qBAAqB7gB,EAAK0f,uBAGnC,GAAG1f,EAAK4f,eAAe,CAEnB5f,EAAKwhB,cAAc,UAAWxhB,EAAK4f;AACnC5f,EAAKwf,aAAa97B,UAAW,EAGjC,GAAGsc,EAAK6f,eAAe,CAEnB7f,EAAKwhB,cAAc,UAAWxhB,EAAK6f;AACnC7f,EAAKyf,eAAe/7B,UAAW,EAGnC,GAAGsc,EAAK8f,iBAAiB,CAErB9f,EAAKwhB,cAAc,YAAaxhB,EAAK8f;AACrC9f,EAAKogB,YAAYlnC,UAAUM,OAAO;AAClCwmB,EAAKghB,iBAIThhB,EAAKigB,iBAAiBrnC,SAAQ6oC,IAC1B,MAAMC,EAAa76C,SAAS46C,EAAQ5+B,GAAG/S,MAAM,KAAKo3B;AAClDua,EAAQz4B,iBAAiB,SAAS,KAC9BgX,EAAKwgB,YAAckB;AACnB1hB,EAAK2hB,kBAAkB,GACzB;AAIN3hB,EAAKogB,YAAYp3B,iBAAiB,SAAS,KACvCgX,EAAKwgB;AACLxgB,EAAK2hB,kBAAkB;AAG3B3hB,EAAKqgB,UAAUr3B,iBAAiB,SAAS,KACrCgX,EAAKwgB;AACLxgB,EAAK2hB,kBAAkB;AAG3B3hB,EAAKsgB,SAASt3B,iBAAiB,SAAS,KACpCgX,EAAKwgB,YAAc;AAGnB/jB,aAAaikB,WAAW;AACxBjkB,aAAaikB,WAAW;AACxBjkB,aAAaikB,WAAW;AACxBjkB,aAAaikB,WAAW;AACxBjkB,aAAaikB,WAAW;AACxBjkB,aAAaikB,WAAW;AACxBjkB,aAAaikB,WAAW;AACxBjkB,aAAaikB,WAAW;AACxBjkB,aAAaikB,WAAW;AAGxB1gB,EAAKsf,oBAAoB5+C,MAAQ;AACjCs/B,EAAKuf,aAAa7+C,MAAQ;AAC1Bs/B,EAAKwf,aAAa9+C,MAAQ;AAC1Bs/B,EAAKyf,eAAe/+C,MAAQ;AAG5Bs/B,EAAKuf,aAAa77B,UAAW;AAC7Bsc,EAAKwf,aAAa97B,UAAW;AAC7Bsc,EAAKyf,eAAe/7B,UAAW;AAG/Bsc,EAAK4hB;AAGL5hB,EAAKogB,YAAYlnC,UAAUkB,IAAI;AAG/BqiB,aAAaikB,WAAW;AACxB1gB,EAAK2gB;AACL3gB,EAAK4gB;AACL5gB,EAAK2hB;AAEL7hD,KAAKu/C,cAAcnmC,UAAUM,OAAO;AACpC1Z,KAAKs/C,iBAAiBlmC,UAAUM,OAAO;AAEvC1Z,KAAK+hD,iBAAiB;AAG1B7hB,EAAKugB,YAAYv3B,iBAAiB,SAAS,KAEvC,IAAI84B,EAAa,CACbf,YAAatkB,aAAaC,QAAQ,eAClCwkB,YAAazkB,aAAaC,QAAQ,eAClCqlB,mBAAoBtlB,aAAaC,QAAQ,sBACzC0kB,cAAe3kB,aAAaC,QAAQ,iBACpCslB,gBAAiBzoB,KAAKC,MAAMiD,aAAaC,QAAQ,oBACjDulB,aAAc1oB,KAAKC,MAAMiD,aAAaC,QAAQ,iBAC9CoiB,SAAUh/C,KAAKg/C;AAGnB,SAAU,CACNvpC,MAAO,mCACP3B,KAAM,OACNyE,KACE,eACFkI,iBAAiB,EACjBtB,kBAAkB,EAClBF,mBAAmB,EACnBuU,cAAc,EACdP,mBAAmB;AAevBiN,EAAKgf,YAAYkD,KAAK,qBAAsBJ,EAAY,CACpD7W,aAAc,cACdhB,QAAS,CACL,eAAgB,sBAGrB/c,MAAK,SAAU2X,GACd;AACA,MAAMsd,EAAO3vC,SAAS2L,cAAc;AACpCgkC,EAAKznC,MAAMG,QAAU;AACrBrI,SAASC,KAAKqG,YAAYqpC;AAC1B,MAAMC,EAAO,IAAI1b,KAAK,CAAE7B,EAASziC,MAAQ,CAACF,KAAM;AAChDigD,EAAK/R,KAAOiS,IAAIC,gBAAgBF;AAChCD,EAAK98C,OAAS;AACd88C,EAAKI,SAAY;AACjBJ,EAAKp6B,OACP,IACC6H,OAAM,SAAUnwB,GACf,WAEJ,GAAE;AAINugC,EAAK2gB;AACL3gB,EAAKwiB;AACLxiB,EAAK4gB,gBAET,CAEA,gBAAAe,GAEI,GAAyB,IAArB7hD,KAAK0gD,YAAkB,CACvB1gD,KAAKugD,UAAUnnC,UAAUkB,IAAI;AAC7Bta,KAAKsgD,YAAYlnC,UAAUM,OAAO;AAClC1Z,KAAKsgD,YAAY56B,UAAY,6DAEjC,GAAI1lB,KAAK0gD,YAAc,EAAE,CACrB1gD,KAAKugD,UAAUnnC,UAAUM,OAAO;AAChC1Z,KAAKsgD,YAAYlnC,UAAUM,OAAO;AAClC1Z,KAAKsgD,YAAY56B,UAAY,yDAET,IAArB1lB,KAAK0gD,aACJ1gD,KAAKsgD,YAAYlnC,UAAUkB,IAAI;AAGnCqiB,aAAaM,QAAQ,cAAej9B,KAAK0gD,YAAY79C;AAErD7C,KAAK2iD,kBAAkB3iD,KAAK0gD;AAC5B1gD,KAAK4iD,eAAe5iD,KAAK0gD;AACzB1gD,KAAK6iD,gBAAgB7iD,KAAK0gD;AAC1B1gD,KAAK0iD;AACL1iD,KAAK8gD,gBACT,CAIA,eAAA+B,CAAgB17B,GACZnnB,KAAKqgD,UAAUvnC,SAAQgqC,IACnB,MAAMC,EAAkBh8C,SAAS+7C,EAAM//B,GAAG/S,MAAM,KAAKo3B;AAClDjgB,IAAS47B,EACRD,EAAM1pC,UAAUkB,IAAI,UAEpBwoC,EAAM1pC,UAAUM,OAAO,YAGnC,CAEA,iBAAAipC,CAAkBx7B,GACd,MAAM67B,EAAgBtwC,SAASqC,cAAc,kBACvCkuC,EAAcvwC,SAASqC,cAAc;AAC3C,OAAOoS,GACH,KAAK,EACDnnB,KAAKm/C,WAAa;AAClBn/C,KAAKo/C,SAAW;AAChB;AACJ,KAAK,EACDp/C,KAAKm/C,WAAa;AAClBn/C,KAAKo/C,SAAW;AAChB;AACJ,KAAK,EACDp/C,KAAKm/C,WAAa;AAClBn/C,KAAKo/C,SAAW;AAChB;AACJ,KAAK,EACDp/C,KAAKm/C,WAAa;AAClBn/C,KAAKo/C,SAAW,gTAIxB4D,EAAcxqC,YAAcxY,KAAKm/C;AACjC8D,EAAYzqC,YAAcxY,KAAKo/C,QACnC,CAEA,cAAAyB,GACI,MAAMqC,EAAgBxwC,SAASwE,iBAAiB,kCAC1CisC,EAAuBp8C,SAAS41B,aAAaC,QAAQ,wBACrDwmB,EAAsBzmB,aAAaC,QAAQ;AACjD,IAAIoiB;AAGJ,OAAOmE,GACH,KAAK,EACDnjD,KAAKg/C,SAAW;AAChBA,EAAW;AACX;AACJ,KAAK,EACDh/C,KAAKg/C,SAAW;AAChBA,EAAW;AACX;AACJ,KAAK,EACDh/C,KAAKg/C,SAAW;AAChBA,EAAW,EAKnBkE,EAAcpqC,SAAQgqC,IACW,eAA1BA,EAAMO,cAActgC,KACnB+/B,EAAMp9B,UAAY;AAIX,MAAZs5B,GACCh/C,KAAKqgD,UAAUvnC,SAAQwlB,IACnB,MAAMglB,EAAWhlB,EAAKvpB,cAAc,sBAC9BwuC,EAASjlB,EAAKvb;AACpB,IAAIsD;AAEJ,MAAMm9B,EAAkBD,EAAOpiD,MAAMoiD,EAAO/lD,OAAS;AAErD,OAAOgmD,GACH,IAAK,IACDn9B,EAAU24B,EAASyE;AACnB;AACJ,IAAK,IACDp9B,EAAU24B,EAAS0E;AACnB;AACJ,IAAK,IACDr9B,EAAU24B,EAAS2E,GAI3B,GAAc,KAAVJ,EACA,IAAK,MAAMT,KAASz8B,EAGH,MAAVy8B,GAAiBA,IAAUM,GAC1B/8B,EAAQ,GAAGy8B,GAAOhqC,SAAQ8qC,IACtB5jD,KAAK6jD,iBAAiBD,EAAW,KAAGA,EAAU,IAAGN,EAAS,MAUtF,CAEA,eAAAQ,GACI9jD,KAAKygD,YAAYrnC,UAAUkB,IAAI,SACnC,CAEA,eAAAynC,GACI/hD,KAAKygD,YAAYrnC,UAAUM,OAAO,SACtC,CAEA,gBAAAmqC,CAAiBh1C,EAAM6U,EAAKqgC,GACxB,IAAI7B,EAAkBzoB,KAAKC,MAAMiD,aAAaC,QAAQ,oBAClDonB,EAAQn1C,EAAKxJ,QAAQ,YAAa;AACtC2+C,EAAQA,EAAM3+C,QAAQ,OAAQ;AAC9B,IAAI4+C,EAAevxC,SAAS2L,cAAc,OACtC6lC,EAAcxxC,SAAS2L,cAAc,SACrC8lC,EAAWzxC,SAAS2L,cAAc,SAClC+lC,EAAU1xC,SAAS2L,cAAc,KACjCgmC,EAAU3xC,SAAS2L,cAAc;AACrC4lC,EAAa7qC,UAAUkB,IAAI;AAC3B+pC,EAAQvmC,aAAa,OAAQ;AAC7BsmC,EAAQtmC,aAAa,OAAQ4F;AAC7B0gC,EAAQtmC,aAAa,QAAS;AAC9BsmC,EAAQprC,YAAYqrC;AACpBH,EAAYpmC,aAAa,OAAQ;AACjComC,EAAY9qC,UAAUkB,IAAI,mBAAoB;AAC9C4pC,EAAYnhC,GAAKihC;AACjBG,EAASrmC,aAAa,MAAOkmC;AAC7BG,EAAS3rC,YAAc3J;AACvBo1C,EAAajrC,YAAYkrC;AACzBD,EAAajrC,YAAYmrC;AACf,KAAPzgC,GACCugC,EAAajrC,YAAYorC;AAE7BL,EAAU/qC,YAAYirC;AAGA,MAAnB/B,IAAyBA,EAAkB;AAC9CA,EAAgBrkD,KAAKmmD;AAErBrnB,aAAaM,QAAQ,kBAAmBxD,KAAKuN,UAAUkb,GAC3D,CAEA,oBAAAV,CAAqB3yC,GACjB,IAAIszC,EAAe1oB,KAAKC,MAAMiD,aAAaC,QAAQ;AAChC,MAAhBulB,IAAsBA,EAAe;AACxCA,EAAatkD,KAAKgR;AAElB8tB,aAAaM,QAAQ,eAAgBxD,KAAKuN,UAAUmb;AACjDA,EAAa3kD,OAAS,GACrBwC,KAAK8jD,iBAEb,CAEA,yBAAArC,CAA0B5yC,GACtB,IAAIszC,EAAe1oB,KAAKC,MAAMiD,aAAaC,QAAQ;AAChC,MAAhBulB,IAAsBA,EAAe;AACxC,MAAMmC,EAAYnC,EAAa9jD,QAAQwQ;AAEpCy1C,GAAa,IACZnC,EAAeA,EAAazqC,QAAO5a,GAAKA,IAAM+R;AAElD8tB,aAAaM,QAAQ,eAAgBxD,KAAKuN,UAAUmb;AACzB,IAAxBA,EAAa3kD,QACZwC,KAAK+hD,iBAEb,CAEA,gBAAAW,GACI,IAAIP,EAAe1oB,KAAKC,MAAMiD,aAAaC,QAAQ;AAChC,MAAhBulB,GACIA,EAAa3kD,QACZ2kD,EAAarpC,SAAQjK,IACjB,MAAM01C,EAAU7xC,SAASqC,cAAc,SAASlG;AAClC,MAAX01C,IACCA,EAAQtiD,SAAU,KAKtC,CAEA,cAAA2gD,CAAez7B,GACXnnB,KAAKmgD,iBAAiBrnC,SAAQ6oC,IAC1BA,EAAQvoC,UAAUM,OAAO;AACzBioC,EAAQvoC,UAAUM,OAAO;AACzB,MAAM8qC,EAAYz9C,SAAS46C,EAAQ5+B,GAAG/S,MAAM,KAAKo3B;AAC9Cod,IAAcr9B,EACbw6B,EAAQvoC,UAAUkB,IAAI,UAChBkqC,EAAYr9B,GAClBw6B,EAAQvoC,UAAUkB,IAAI;AAG9B,OAAO6M,GACH,KAAK,EACDnnB,KAAKogD,aAAahnC,UAAUM,OAAO,QAAS,SAAU;AACtD;AACJ,KAAK,EACD1Z,KAAKogD,aAAahnC,UAAUM,OAAO,SAAU;AAC7C1Z,KAAKogD,aAAahnC,UAAUkB,IAAI;AAChC;AACJ,KAAK,EACDta,KAAKogD,aAAahnC,UAAUM,OAAO,QAAS;AAC5C1Z,KAAKogD,aAAahnC,UAAUkB,IAAI;AAChC;AACJ,KAAK,EACDta,KAAKogD,aAAahnC,UAAUM,OAAO,QAAS;AAC5C1Z,KAAKogD,aAAahnC,UAAUkB,IAAI,SAG5C,CAEA,cAAA4mC,GACIlhD,KAAKmgD,iBAAiBrnC,SAAQ6oC,IAC1BA,EAAQvoC,UAAUM,OAAO,WAAW,GAG5C,CAEA,eAAAooC,GACI9hD,KAAKmgD,iBAAiBrnC,SAAQ6oC,IACT,UAAdA,EAAQ5+B,IACP4+B,EAAQvoC,UAAUkB,IAAI,cAGlC,CAEA,aAAAonC,CAAc3+B,EAAI0hC,GACd,IAAIC,EAA8BhyC,SAASqC,cAAc,IAAIgO;AAC7D2hC,EAAQ9jD,MAAQ6jD,CACpB,CAEA,oBAAA1D,CAAqB4D,GAEjB,IAAIC;AACkB,MAAlBD,GAA2C,MAAlBA,EACzBC,EAAiB,CACb,mBAAoB,KACpB,gCAAiC,IACjC,wCAAyC,IACzC,2CAA4C,IAC5C,oDAAqD,KAEhC,MAAlBD,IACPC,EAAiB,CACb,mBAAoB,KACpB,gCAAiC,IACjC,gDAAiD;AAIzD5kD,KAAKy/C,aAAa/5B,UAAY;AAC9B,IAAK,MAAMoE,KAAO86B,EAAe,CAC7B,MAAMC,EAAgBnyC,SAAS2L,cAAc;AAC7CwmC,EAAc7hC,UAAY8G;AAC1B,GAA2B,OAAxB86B,EAAe96B,GACd9pB,KAAKy/C,aAAale,OAAOsjB;IACtB,CACHA,EAAc/mC,aAAa,QAAS8mC,EAAe96B;AACnD9pB,KAAKy/C,aAAale,OAAOsjB,IAIjC7kD,KAAKy/C,aAAa77B,UAAW,CACjC,CAEA,cAAAk9B,GAEI,MAKMgE,EAAmBpyC,SAASwE,iBAAiB,uCAAuC1Z,OACpFunD,EAAgBryC,SAASwE,iBAAiB,+CAA+C1Z,OACzFwnD,EAAmBtyC,SAASwE,iBAAiB,uCAAuC1Z,OACpFynD,EAAgBvyC,SAASwE,iBAAiB,+CAA+C1Z,OACzF0nD,EAAmBxyC,SAASwE,iBAAiB,uCAAuC1Z,OACpF2nD,EAAgBzyC,SAASwE,iBAAiB,+CAA+C1Z;AAE/F,IAAI4nD,EAAuB,EACvBC,EAAyB,EACzBC,EAAwB;AAE5BtlD,KAAKq/C,iBAAmB3sC,SAASqC,cAAc;AAC/C/U,KAAKs/C,iBAAmB5sC,SAASqC,cAAc;AAC/C/U,KAAKu/C,cAAgB7sC,SAASqC,cAAc;AAGxCqwC,EADgB,GAAjBL,EACwB,EAEAA,EAAgBD;AAIvCO,EADgB,GAAjBJ,EAC0B,EAEAA,EAAgBD;AAIzCM,EADgB,GAAjBH,EACyB,EAEAA,EAAgBD;AAG5C,MAAMK,EAAeniD,KAAKouC,MAtCA,GAsCO,EArCL,GAqCoD,EApCrD,GAoCwG;AAGnI,GAAoB,MAAjB+T,EAAqB,CACpBvlD,KAAKq/C,iBAAiBzkC,MAAM4qC,iBAAmB;AAC/CxlD,KAAKs/C,iBAAiBlmC,UAAUkB,IAAI;AACpCta,KAAKu/C,cAAcnmC,UAAUkB,IAAI,eAC9B,GAAIirC,EAAe,GACtBvlD,KAAKq/C,iBAAiBzkC,MAAM4qC,iBAAmB,MAAMD;IAEpD,CACDvlD,KAAKq/C,iBAAiBzkC,MAAM4qC,iBAAmB,KAAKD;AACpDvlD,KAAKs/C,iBAAiBlmC,UAAUM,OAAO;AACvC1Z,KAAKu/C,cAAcnmC,UAAUM,OAAO,UAExC1Z,KAAKs/C,iBAAiB9mC,YAAc+sC,EAAe,GACvD;AC5qBY,IAAI","sources":["webpack://client-side/./node_modules/base64-js/index.js","webpack://client-side/./node_modules/buffer/index.js","webpack://client-side/./node_modules/ieee754/index.js","webpack://client-side/./node_modules/sweetalert2/dist/sweetalert2.all.js","webpack://client-side/webpack/bootstrap","webpack://client-side/webpack/runtime/compat get default export","webpack://client-side/webpack/runtime/define property getters","webpack://client-side/webpack/runtime/hasOwnProperty shorthand","webpack://client-side/./node_modules/axios/lib/helpers/bind.js","webpack://client-side/./node_modules/axios/lib/utils.js","webpack://client-side/./node_modules/axios/lib/core/AxiosError.js","webpack://client-side/./node_modules/axios/lib/helpers/toFormData.js","webpack://client-side/./node_modules/axios/lib/helpers/AxiosURLSearchParams.js","webpack://client-side/./node_modules/axios/lib/helpers/buildURL.js","webpack://client-side/./node_modules/axios/lib/core/InterceptorManager.js","webpack://client-side/./node_modules/axios/lib/defaults/transitional.js","webpack://client-side/./node_modules/axios/lib/platform/browser/classes/URLSearchParams.js","webpack://client-side/./node_modules/axios/lib/platform/browser/classes/FormData.js","webpack://client-side/./node_modules/axios/lib/platform/browser/classes/Blob.js","webpack://client-side/./node_modules/axios/lib/platform/browser/index.js","webpack://client-side/./node_modules/axios/lib/helpers/formDataToJSON.js","webpack://client-side/./node_modules/axios/lib/defaults/index.js","webpack://client-side/./node_modules/axios/lib/helpers/toURLEncodedForm.js","webpack://client-side/./node_modules/axios/lib/helpers/parseHeaders.js","webpack://client-side/./node_modules/axios/lib/core/AxiosHeaders.js","webpack://client-side/./node_modules/axios/lib/core/transformData.js","webpack://client-side/./node_modules/axios/lib/cancel/isCancel.js","webpack://client-side/./node_modules/axios/lib/cancel/CanceledError.js","webpack://client-side/./node_modules/axios/lib/helpers/cookies.js","webpack://client-side/./node_modules/axios/lib/core/buildFullPath.js","webpack://client-side/./node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack://client-side/./node_modules/axios/lib/helpers/combineURLs.js","webpack://client-side/./node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack://client-side/./node_modules/axios/lib/helpers/speedometer.js","webpack://client-side/./node_modules/axios/lib/adapters/xhr.js","webpack://client-side/./node_modules/axios/lib/core/settle.js","webpack://client-side/./node_modules/axios/lib/helpers/parseProtocol.js","webpack://client-side/./node_modules/axios/lib/adapters/adapters.js","webpack://client-side/./node_modules/axios/lib/helpers/null.js","webpack://client-side/./node_modules/axios/lib/core/dispatchRequest.js","webpack://client-side/./node_modules/axios/lib/core/mergeConfig.js","webpack://client-side/./node_modules/axios/lib/env/data.js","webpack://client-side/./node_modules/axios/lib/helpers/validator.js","webpack://client-side/./node_modules/axios/lib/core/Axios.js","webpack://client-side/./node_modules/axios/lib/cancel/CancelToken.js","webpack://client-side/./node_modules/axios/lib/helpers/HttpStatusCode.js","webpack://client-side/./node_modules/axios/lib/axios.js","webpack://client-side/./node_modules/axios/lib/helpers/spread.js","webpack://client-side/./node_modules/axios/lib/helpers/isAxiosError.js","webpack://client-side/./src/ts/api/axios.config.ts","webpack://client-side/./src/ts/classes/apply.ts","webpack://client-side/./src/ts/checklist.ts"],"sourcesContent":["'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nconst base64 = require('base64-js')\nconst ieee754 = require('ieee754')\nconst customInspectSymbol =\n (typeof Symbol === 'function' && typeof Symbol['for'] === 'function') // eslint-disable-line dot-notation\n ? Symbol['for']('nodejs.util.inspect.custom') // eslint-disable-line dot-notation\n : null\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\nconst K_MAX_LENGTH = 0x7fffffff\nexports.kMaxLength = K_MAX_LENGTH\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Print warning and recommend using `buffer` v4.x which has an Object\n * implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * We report that the browser does not support typed arrays if the are not subclassable\n * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array`\n * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support\n * for __proto__ and has a buggy typed array implementation.\n */\nBuffer.TYPED_ARRAY_SUPPORT = typedArraySupport()\n\nif (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&\n typeof console.error === 'function') {\n console.error(\n 'This browser lacks typed array (Uint8Array) support which is required by ' +\n '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'\n )\n}\n\nfunction typedArraySupport () {\n // Can typed array instances can be augmented?\n try {\n const arr = new Uint8Array(1)\n const proto = { foo: function () { return 42 } }\n Object.setPrototypeOf(proto, Uint8Array.prototype)\n Object.setPrototypeOf(arr, proto)\n return arr.foo() === 42\n } catch (e) {\n return false\n }\n}\n\nObject.defineProperty(Buffer.prototype, 'parent', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.buffer\n }\n})\n\nObject.defineProperty(Buffer.prototype, 'offset', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.byteOffset\n }\n})\n\nfunction createBuffer (length) {\n if (length > K_MAX_LENGTH) {\n throw new RangeError('The value \"' + length + '\" is invalid for option \"size\"')\n }\n // Return an augmented `Uint8Array` instance\n const buf = new Uint8Array(length)\n Object.setPrototypeOf(buf, Buffer.prototype)\n return buf\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new TypeError(\n 'The \"string\" argument must be of type string. Received type number'\n )\n }\n return allocUnsafe(arg)\n }\n return from(arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\nfunction from (value, encodingOrOffset, length) {\n if (typeof value === 'string') {\n return fromString(value, encodingOrOffset)\n }\n\n if (ArrayBuffer.isView(value)) {\n return fromArrayView(value)\n }\n\n if (value == null) {\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n }\n\n if (isInstance(value, ArrayBuffer) ||\n (value && isInstance(value.buffer, ArrayBuffer))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof SharedArrayBuffer !== 'undefined' &&\n (isInstance(value, SharedArrayBuffer) ||\n (value && isInstance(value.buffer, SharedArrayBuffer)))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof value === 'number') {\n throw new TypeError(\n 'The \"value\" argument must not be of type number. Received type number'\n )\n }\n\n const valueOf = value.valueOf && value.valueOf()\n if (valueOf != null && valueOf !== value) {\n return Buffer.from(valueOf, encodingOrOffset, length)\n }\n\n const b = fromObject(value)\n if (b) return b\n\n if (typeof Symbol !== 'undefined' && Symbol.toPrimitive != null &&\n typeof value[Symbol.toPrimitive] === 'function') {\n return Buffer.from(value[Symbol.toPrimitive]('string'), encodingOrOffset, length)\n }\n\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(value, encodingOrOffset, length)\n}\n\n// Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:\n// https://github.com/feross/buffer/pull/148\nObject.setPrototypeOf(Buffer.prototype, Uint8Array.prototype)\nObject.setPrototypeOf(Buffer, Uint8Array)\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be of type number')\n } else if (size < 0) {\n throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"')\n }\n}\n\nfunction alloc (size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpreted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(size).fill(fill, encoding)\n : createBuffer(size).fill(fill)\n }\n return createBuffer(size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(size, fill, encoding)\n}\n\nfunction allocUnsafe (size) {\n assertSize(size)\n return createBuffer(size < 0 ? 0 : checked(size) | 0)\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(size)\n}\n\nfunction fromString (string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n\n const length = byteLength(string, encoding) | 0\n let buf = createBuffer(length)\n\n const actual = buf.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n buf = buf.slice(0, actual)\n }\n\n return buf\n}\n\nfunction fromArrayLike (array) {\n const length = array.length < 0 ? 0 : checked(array.length) | 0\n const buf = createBuffer(length)\n for (let i = 0; i < length; i += 1) {\n buf[i] = array[i] & 255\n }\n return buf\n}\n\nfunction fromArrayView (arrayView) {\n if (isInstance(arrayView, Uint8Array)) {\n const copy = new Uint8Array(arrayView)\n return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength)\n }\n return fromArrayLike(arrayView)\n}\n\nfunction fromArrayBuffer (array, byteOffset, length) {\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\"offset\" is outside of buffer bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\"length\" is outside of buffer bounds')\n }\n\n let buf\n if (byteOffset === undefined && length === undefined) {\n buf = new Uint8Array(array)\n } else if (length === undefined) {\n buf = new Uint8Array(array, byteOffset)\n } else {\n buf = new Uint8Array(array, byteOffset, length)\n }\n\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(buf, Buffer.prototype)\n\n return buf\n}\n\nfunction fromObject (obj) {\n if (Buffer.isBuffer(obj)) {\n const len = checked(obj.length) | 0\n const buf = createBuffer(len)\n\n if (buf.length === 0) {\n return buf\n }\n\n obj.copy(buf, 0, 0, len)\n return buf\n }\n\n if (obj.length !== undefined) {\n if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {\n return createBuffer(0)\n }\n return fromArrayLike(obj)\n }\n\n if (obj.type === 'Buffer' && Array.isArray(obj.data)) {\n return fromArrayLike(obj.data)\n }\n}\n\nfunction checked (length) {\n // Note: cannot use `length < K_MAX_LENGTH` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= K_MAX_LENGTH) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return b != null && b._isBuffer === true &&\n b !== Buffer.prototype // so Buffer.isBuffer(Buffer.prototype) will be false\n}\n\nBuffer.compare = function compare (a, b) {\n if (isInstance(a, Uint8Array)) a = Buffer.from(a, a.offset, a.byteLength)\n if (isInstance(b, Uint8Array)) b = Buffer.from(b, b.offset, b.byteLength)\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError(\n 'The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array'\n )\n }\n\n if (a === b) return 0\n\n let x = a.length\n let y = b.length\n\n for (let i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!Array.isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n let i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n const buffer = Buffer.allocUnsafe(length)\n let pos = 0\n for (i = 0; i < list.length; ++i) {\n let buf = list[i]\n if (isInstance(buf, Uint8Array)) {\n if (pos + buf.length > buffer.length) {\n if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf)\n buf.copy(buffer, pos)\n } else {\n Uint8Array.prototype.set.call(\n buffer,\n buf,\n pos\n )\n }\n } else if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n } else {\n buf.copy(buffer, pos)\n }\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n throw new TypeError(\n 'The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. ' +\n 'Received type ' + typeof string\n )\n }\n\n const len = string.length\n const mustMatch = (arguments.length > 2 && arguments[2] === true)\n if (!mustMatch && len === 0) return 0\n\n // Use a for loop to avoid recursion\n let loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) {\n return mustMatch ? -1 : utf8ToBytes(string).length // assume utf8\n }\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n let loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coercion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)\n// to detect a Buffer instance. It's not possible to use `instanceof Buffer`\n// reliably in a browserify context because there could be multiple different\n// copies of the 'buffer' package in use. This method works even for Buffer\n// instances that were created from another copy of the `buffer` package.\n// See: https://github.com/feross/buffer/issues/154\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n const i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n const len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (let i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n const len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (let i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n const len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (let i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n const length = this.length\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.toLocaleString = Buffer.prototype.toString\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n let str = ''\n const max = exports.INSPECT_MAX_BYTES\n str = this.toString('hex', 0, max).replace(/(.{2})/g, '$1 ').trim()\n if (this.length > max) str += ' ... '\n return ''\n}\nif (customInspectSymbol) {\n Buffer.prototype[customInspectSymbol] = Buffer.prototype.inspect\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (isInstance(target, Uint8Array)) {\n target = Buffer.from(target, target.offset, target.byteLength)\n }\n if (!Buffer.isBuffer(target)) {\n throw new TypeError(\n 'The \"target\" argument must be one of type Buffer or Uint8Array. ' +\n 'Received type ' + (typeof target)\n )\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n let x = thisEnd - thisStart\n let y = end - start\n const len = Math.min(x, y)\n\n const thisCopy = this.slice(thisStart, thisEnd)\n const targetCopy = target.slice(start, end)\n\n for (let i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (numberIsNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [val], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n let indexSize = 1\n let arrLength = arr.length\n let valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n let i\n if (dir) {\n let foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n let found = true\n for (let j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n const remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n const strLen = string.length\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n let i\n for (i = 0; i < length; ++i) {\n const parsed = parseInt(string.substr(i * 2, 2), 16)\n if (numberIsNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset >>> 0\n if (isFinite(length)) {\n length = length >>> 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n const remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n let loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n case 'latin1':\n case 'binary':\n return asciiWrite(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n const res = []\n\n let i = start\n while (i < end) {\n const firstByte = buf[i]\n let codePoint = null\n let bytesPerSequence = (firstByte > 0xEF)\n ? 4\n : (firstByte > 0xDF)\n ? 3\n : (firstByte > 0xBF)\n ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n let secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nconst MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n const len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n let res = ''\n let i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n let ret = ''\n end = Math.min(buf.length, end)\n\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n let ret = ''\n end = Math.min(buf.length, end)\n\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n const len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n let out = ''\n for (let i = start; i < end; ++i) {\n out += hexSliceLookupTable[buf[i]]\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n const bytes = buf.slice(start, end)\n let res = ''\n // If bytes.length is odd, the last 8 bits must be ignored (same as node.js)\n for (let i = 0; i < bytes.length - 1; i += 2) {\n res += String.fromCharCode(bytes[i] + (bytes[i + 1] * 256))\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n const len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n const newBuf = this.subarray(start, end)\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(newBuf, Buffer.prototype)\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUintLE =\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let val = this[offset]\n let mul = 1\n let i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUintBE =\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n let val = this[offset + --byteLength]\n let mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUint8 =\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUint16LE =\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUint16BE =\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUint32LE =\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUint32BE =\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readBigUInt64LE = defineBigIntMethod(function readBigUInt64LE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const lo = first +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 24\n\n const hi = this[++offset] +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n last * 2 ** 24\n\n return BigInt(lo) + (BigInt(hi) << BigInt(32))\n})\n\nBuffer.prototype.readBigUInt64BE = defineBigIntMethod(function readBigUInt64BE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const hi = first * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n this[++offset]\n\n const lo = this[++offset] * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n last\n\n return (BigInt(hi) << BigInt(32)) + BigInt(lo)\n})\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let val = this[offset]\n let mul = 1\n let i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let i = byteLength\n let mul = 1\n let val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n const val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n const val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readBigInt64LE = defineBigIntMethod(function readBigInt64LE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const val = this[offset + 4] +\n this[offset + 5] * 2 ** 8 +\n this[offset + 6] * 2 ** 16 +\n (last << 24) // Overflow\n\n return (BigInt(val) << BigInt(32)) +\n BigInt(first +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 24)\n})\n\nBuffer.prototype.readBigInt64BE = defineBigIntMethod(function readBigInt64BE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const val = (first << 24) + // Overflow\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n this[++offset]\n\n return (BigInt(val) << BigInt(32)) +\n BigInt(this[++offset] * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n last)\n})\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUintLE =\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n let mul = 1\n let i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUintBE =\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n let i = byteLength - 1\n let mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUint8 =\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeUint16LE =\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeUint16BE =\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeUint32LE =\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeUint32BE =\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nfunction wrtBigUInt64LE (buf, value, offset, min, max) {\n checkIntBI(value, min, max, buf, offset, 7)\n\n let lo = Number(value & BigInt(0xffffffff))\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n let hi = Number(value >> BigInt(32) & BigInt(0xffffffff))\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n return offset\n}\n\nfunction wrtBigUInt64BE (buf, value, offset, min, max) {\n checkIntBI(value, min, max, buf, offset, 7)\n\n let lo = Number(value & BigInt(0xffffffff))\n buf[offset + 7] = lo\n lo = lo >> 8\n buf[offset + 6] = lo\n lo = lo >> 8\n buf[offset + 5] = lo\n lo = lo >> 8\n buf[offset + 4] = lo\n let hi = Number(value >> BigInt(32) & BigInt(0xffffffff))\n buf[offset + 3] = hi\n hi = hi >> 8\n buf[offset + 2] = hi\n hi = hi >> 8\n buf[offset + 1] = hi\n hi = hi >> 8\n buf[offset] = hi\n return offset + 8\n}\n\nBuffer.prototype.writeBigUInt64LE = defineBigIntMethod(function writeBigUInt64LE (value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n})\n\nBuffer.prototype.writeBigUInt64BE = defineBigIntMethod(function writeBigUInt64BE (value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n})\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n const limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n let i = 0\n let mul = 1\n let sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n const limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n let i = byteLength - 1\n let mul = 1\n let sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeBigInt64LE = defineBigIntMethod(function writeBigInt64LE (value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n})\n\nBuffer.prototype.writeBigInt64BE = defineBigIntMethod(function writeBigInt64BE (value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n})\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!Buffer.isBuffer(target)) throw new TypeError('argument should be a Buffer')\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('Index out of range')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n const len = end - start\n\n if (this === target && typeof Uint8Array.prototype.copyWithin === 'function') {\n // Use built-in when available, missing from IE11\n this.copyWithin(targetStart, start, end)\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, end),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n if (val.length === 1) {\n const code = val.charCodeAt(0)\n if ((encoding === 'utf8' && code < 128) ||\n encoding === 'latin1') {\n // Fast path: If `val` fits into a single byte, use that numeric value.\n val = code\n }\n }\n } else if (typeof val === 'number') {\n val = val & 255\n } else if (typeof val === 'boolean') {\n val = Number(val)\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n let i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n const bytes = Buffer.isBuffer(val)\n ? val\n : Buffer.from(val, encoding)\n const len = bytes.length\n if (len === 0) {\n throw new TypeError('The value \"' + val +\n '\" is invalid for argument \"value\"')\n }\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// CUSTOM ERRORS\n// =============\n\n// Simplified versions from Node, changed for Buffer-only usage\nconst errors = {}\nfunction E (sym, getMessage, Base) {\n errors[sym] = class NodeError extends Base {\n constructor () {\n super()\n\n Object.defineProperty(this, 'message', {\n value: getMessage.apply(this, arguments),\n writable: true,\n configurable: true\n })\n\n // Add the error code to the name to include it in the stack trace.\n this.name = `${this.name} [${sym}]`\n // Access the stack to generate the error message including the error code\n // from the name.\n this.stack // eslint-disable-line no-unused-expressions\n // Reset the name to the actual name.\n delete this.name\n }\n\n get code () {\n return sym\n }\n\n set code (value) {\n Object.defineProperty(this, 'code', {\n configurable: true,\n enumerable: true,\n value,\n writable: true\n })\n }\n\n toString () {\n return `${this.name} [${sym}]: ${this.message}`\n }\n }\n}\n\nE('ERR_BUFFER_OUT_OF_BOUNDS',\n function (name) {\n if (name) {\n return `${name} is outside of buffer bounds`\n }\n\n return 'Attempt to access memory outside buffer bounds'\n }, RangeError)\nE('ERR_INVALID_ARG_TYPE',\n function (name, actual) {\n return `The \"${name}\" argument must be of type number. Received type ${typeof actual}`\n }, TypeError)\nE('ERR_OUT_OF_RANGE',\n function (str, range, input) {\n let msg = `The value of \"${str}\" is out of range.`\n let received = input\n if (Number.isInteger(input) && Math.abs(input) > 2 ** 32) {\n received = addNumericalSeparator(String(input))\n } else if (typeof input === 'bigint') {\n received = String(input)\n if (input > BigInt(2) ** BigInt(32) || input < -(BigInt(2) ** BigInt(32))) {\n received = addNumericalSeparator(received)\n }\n received += 'n'\n }\n msg += ` It must be ${range}. Received ${received}`\n return msg\n }, RangeError)\n\nfunction addNumericalSeparator (val) {\n let res = ''\n let i = val.length\n const start = val[0] === '-' ? 1 : 0\n for (; i >= start + 4; i -= 3) {\n res = `_${val.slice(i - 3, i)}${res}`\n }\n return `${val.slice(0, i)}${res}`\n}\n\n// CHECK FUNCTIONS\n// ===============\n\nfunction checkBounds (buf, offset, byteLength) {\n validateNumber(offset, 'offset')\n if (buf[offset] === undefined || buf[offset + byteLength] === undefined) {\n boundsError(offset, buf.length - (byteLength + 1))\n }\n}\n\nfunction checkIntBI (value, min, max, buf, offset, byteLength) {\n if (value > max || value < min) {\n const n = typeof min === 'bigint' ? 'n' : ''\n let range\n if (byteLength > 3) {\n if (min === 0 || min === BigInt(0)) {\n range = `>= 0${n} and < 2${n} ** ${(byteLength + 1) * 8}${n}`\n } else {\n range = `>= -(2${n} ** ${(byteLength + 1) * 8 - 1}${n}) and < 2 ** ` +\n `${(byteLength + 1) * 8 - 1}${n}`\n }\n } else {\n range = `>= ${min}${n} and <= ${max}${n}`\n }\n throw new errors.ERR_OUT_OF_RANGE('value', range, value)\n }\n checkBounds(buf, offset, byteLength)\n}\n\nfunction validateNumber (value, name) {\n if (typeof value !== 'number') {\n throw new errors.ERR_INVALID_ARG_TYPE(name, 'number', value)\n }\n}\n\nfunction boundsError (value, length, type) {\n if (Math.floor(value) !== value) {\n validateNumber(value, type)\n throw new errors.ERR_OUT_OF_RANGE(type || 'offset', 'an integer', value)\n }\n\n if (length < 0) {\n throw new errors.ERR_BUFFER_OUT_OF_BOUNDS()\n }\n\n throw new errors.ERR_OUT_OF_RANGE(type || 'offset',\n `>= ${type ? 1 : 0} and <= ${length}`,\n value)\n}\n\n// HELPER FUNCTIONS\n// ================\n\nconst INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node takes equal signs as end of the Base64 encoding\n str = str.split('=')[0]\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = str.trim().replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n let codePoint\n const length = string.length\n let leadSurrogate = null\n const bytes = []\n\n for (let i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n const byteArray = []\n for (let i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n let c, hi, lo\n const byteArray = []\n for (let i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n let i\n for (i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\n// ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass\n// the `instanceof` check but they should be treated as of that type.\n// See: https://github.com/feross/buffer/issues/166\nfunction isInstance (obj, type) {\n return obj instanceof type ||\n (obj != null && obj.constructor != null && obj.constructor.name != null &&\n obj.constructor.name === type.name)\n}\nfunction numberIsNaN (obj) {\n // For IE11 support\n return obj !== obj // eslint-disable-line no-self-compare\n}\n\n// Create lookup table for `toString('hex')`\n// See: https://github.com/feross/buffer/issues/219\nconst hexSliceLookupTable = (function () {\n const alphabet = '0123456789abcdef'\n const table = new Array(256)\n for (let i = 0; i < 16; ++i) {\n const i16 = i * 16\n for (let j = 0; j < 16; ++j) {\n table[i16 + j] = alphabet[i] + alphabet[j]\n }\n }\n return table\n})()\n\n// Return not function with Error if BigInt not supported\nfunction defineBigIntMethod (fn) {\n return typeof BigInt === 'undefined' ? BufferBigIntNotDefined : fn\n}\n\nfunction BufferBigIntNotDefined () {\n throw new Error('BigInt not supported')\n}\n","/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */\nexports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n","/*!\n* sweetalert2 v11.7.32\n* Released under the MIT License.\n*/\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Sweetalert2 = factory());\n})(this, (function () { 'use strict';\n\n function _classPrivateFieldGet(receiver, privateMap) {\n var descriptor = _classExtractFieldDescriptor(receiver, privateMap, \"get\");\n return _classApplyDescriptorGet(receiver, descriptor);\n }\n function _classPrivateFieldSet(receiver, privateMap, value) {\n var descriptor = _classExtractFieldDescriptor(receiver, privateMap, \"set\");\n _classApplyDescriptorSet(receiver, descriptor, value);\n return value;\n }\n function _classExtractFieldDescriptor(receiver, privateMap, action) {\n if (!privateMap.has(receiver)) {\n throw new TypeError(\"attempted to \" + action + \" private field on non-instance\");\n }\n return privateMap.get(receiver);\n }\n function _classApplyDescriptorGet(receiver, descriptor) {\n if (descriptor.get) {\n return descriptor.get.call(receiver);\n }\n return descriptor.value;\n }\n function _classApplyDescriptorSet(receiver, descriptor, value) {\n if (descriptor.set) {\n descriptor.set.call(receiver, value);\n } else {\n if (!descriptor.writable) {\n throw new TypeError(\"attempted to set read only private field\");\n }\n descriptor.value = value;\n }\n }\n function _checkPrivateRedeclaration(obj, privateCollection) {\n if (privateCollection.has(obj)) {\n throw new TypeError(\"Cannot initialize the same private elements twice on an object\");\n }\n }\n function _classPrivateFieldInitSpec(obj, privateMap, value) {\n _checkPrivateRedeclaration(obj, privateMap);\n privateMap.set(obj, value);\n }\n\n const RESTORE_FOCUS_TIMEOUT = 100;\n\n /** @type {GlobalState} */\n const globalState = {};\n const focusPreviousActiveElement = () => {\n if (globalState.previousActiveElement instanceof HTMLElement) {\n globalState.previousActiveElement.focus();\n globalState.previousActiveElement = null;\n } else if (document.body) {\n document.body.focus();\n }\n };\n\n /**\n * Restore previous active (focused) element\n *\n * @param {boolean} returnFocus\n * @returns {Promise}\n */\n const restoreActiveElement = returnFocus => {\n return new Promise(resolve => {\n if (!returnFocus) {\n return resolve();\n }\n const x = window.scrollX;\n const y = window.scrollY;\n globalState.restoreFocusTimeout = setTimeout(() => {\n focusPreviousActiveElement();\n resolve();\n }, RESTORE_FOCUS_TIMEOUT); // issues/900\n\n window.scrollTo(x, y);\n });\n };\n\n const swalPrefix = 'swal2-';\n\n /**\n * @typedef\n * { | 'container'\n * | 'shown'\n * | 'height-auto'\n * | 'iosfix'\n * | 'popup'\n * | 'modal'\n * | 'no-backdrop'\n * | 'no-transition'\n * | 'toast'\n * | 'toast-shown'\n * | 'show'\n * | 'hide'\n * | 'close'\n * | 'title'\n * | 'html-container'\n * | 'actions'\n * | 'confirm'\n * | 'deny'\n * | 'cancel'\n * | 'default-outline'\n * | 'footer'\n * | 'icon'\n * | 'icon-content'\n * | 'image'\n * | 'input'\n * | 'file'\n * | 'range'\n * | 'select'\n * | 'radio'\n * | 'checkbox'\n * | 'label'\n * | 'textarea'\n * | 'inputerror'\n * | 'input-label'\n * | 'validation-message'\n * | 'progress-steps'\n * | 'active-progress-step'\n * | 'progress-step'\n * | 'progress-step-line'\n * | 'loader'\n * | 'loading'\n * | 'styled'\n * | 'top'\n * | 'top-start'\n * | 'top-end'\n * | 'top-left'\n * | 'top-right'\n * | 'center'\n * | 'center-start'\n * | 'center-end'\n * | 'center-left'\n * | 'center-right'\n * | 'bottom'\n * | 'bottom-start'\n * | 'bottom-end'\n * | 'bottom-left'\n * | 'bottom-right'\n * | 'grow-row'\n * | 'grow-column'\n * | 'grow-fullscreen'\n * | 'rtl'\n * | 'timer-progress-bar'\n * | 'timer-progress-bar-container'\n * | 'scrollbar-measure'\n * | 'icon-success'\n * | 'icon-warning'\n * | 'icon-info'\n * | 'icon-question'\n * | 'icon-error'\n * } SwalClass\n * @typedef {Record} SwalClasses\n */\n\n /**\n * @typedef {'success' | 'warning' | 'info' | 'question' | 'error'} SwalIcon\n * @typedef {Record} SwalIcons\n */\n\n /** @type {SwalClass[]} */\n const classNames = ['container', 'shown', 'height-auto', 'iosfix', 'popup', 'modal', 'no-backdrop', 'no-transition', 'toast', 'toast-shown', 'show', 'hide', 'close', 'title', 'html-container', 'actions', 'confirm', 'deny', 'cancel', 'default-outline', 'footer', 'icon', 'icon-content', 'image', 'input', 'file', 'range', 'select', 'radio', 'checkbox', 'label', 'textarea', 'inputerror', 'input-label', 'validation-message', 'progress-steps', 'active-progress-step', 'progress-step', 'progress-step-line', 'loader', 'loading', 'styled', 'top', 'top-start', 'top-end', 'top-left', 'top-right', 'center', 'center-start', 'center-end', 'center-left', 'center-right', 'bottom', 'bottom-start', 'bottom-end', 'bottom-left', 'bottom-right', 'grow-row', 'grow-column', 'grow-fullscreen', 'rtl', 'timer-progress-bar', 'timer-progress-bar-container', 'scrollbar-measure', 'icon-success', 'icon-warning', 'icon-info', 'icon-question', 'icon-error'];\n const swalClasses = classNames.reduce((acc, className) => {\n acc[className] = swalPrefix + className;\n return acc;\n }, /** @type {SwalClasses} */{});\n\n /** @type {SwalIcon[]} */\n const icons = ['success', 'warning', 'info', 'question', 'error'];\n const iconTypes = icons.reduce((acc, icon) => {\n acc[icon] = swalPrefix + icon;\n return acc;\n }, /** @type {SwalIcons} */{});\n\n const consolePrefix = 'SweetAlert2:';\n\n /**\n * Capitalize the first letter of a string\n *\n * @param {string} str\n * @returns {string}\n */\n const capitalizeFirstLetter = str => str.charAt(0).toUpperCase() + str.slice(1);\n\n /**\n * Standardize console warnings\n *\n * @param {string | string[]} message\n */\n const warn = message => {\n console.warn(\"\".concat(consolePrefix, \" \").concat(typeof message === 'object' ? message.join(' ') : message));\n };\n\n /**\n * Standardize console errors\n *\n * @param {string} message\n */\n const error = message => {\n console.error(\"\".concat(consolePrefix, \" \").concat(message));\n };\n\n /**\n * Private global state for `warnOnce`\n *\n * @type {string[]}\n * @private\n */\n const previousWarnOnceMessages = [];\n\n /**\n * Show a console warning, but only if it hasn't already been shown\n *\n * @param {string} message\n */\n const warnOnce = message => {\n if (!previousWarnOnceMessages.includes(message)) {\n previousWarnOnceMessages.push(message);\n warn(message);\n }\n };\n\n /**\n * Show a one-time console warning about deprecated params/methods\n *\n * @param {string} deprecatedParam\n * @param {string} useInstead\n */\n const warnAboutDeprecation = (deprecatedParam, useInstead) => {\n warnOnce(\"\\\"\".concat(deprecatedParam, \"\\\" is deprecated and will be removed in the next major release. Please use \\\"\").concat(useInstead, \"\\\" instead.\"));\n };\n\n /**\n * If `arg` is a function, call it (with no arguments or context) and return the result.\n * Otherwise, just pass the value through\n *\n * @param {Function | any} arg\n * @returns {any}\n */\n const callIfFunction = arg => typeof arg === 'function' ? arg() : arg;\n\n /**\n * @param {any} arg\n * @returns {boolean}\n */\n const hasToPromiseFn = arg => arg && typeof arg.toPromise === 'function';\n\n /**\n * @param {any} arg\n * @returns {Promise}\n */\n const asPromise = arg => hasToPromiseFn(arg) ? arg.toPromise() : Promise.resolve(arg);\n\n /**\n * @param {any} arg\n * @returns {boolean}\n */\n const isPromise = arg => arg && Promise.resolve(arg) === arg;\n\n /**\n * Gets the popup container which contains the backdrop and the popup itself.\n *\n * @returns {HTMLElement | null}\n */\n const getContainer = () => document.body.querySelector(\".\".concat(swalClasses.container));\n\n /**\n * @param {string} selectorString\n * @returns {HTMLElement | null}\n */\n const elementBySelector = selectorString => {\n const container = getContainer();\n return container ? container.querySelector(selectorString) : null;\n };\n\n /**\n * @param {string} className\n * @returns {HTMLElement | null}\n */\n const elementByClass = className => {\n return elementBySelector(\".\".concat(className));\n };\n\n /**\n * @returns {HTMLElement | null}\n */\n const getPopup = () => elementByClass(swalClasses.popup);\n\n /**\n * @returns {HTMLElement | null}\n */\n const getIcon = () => elementByClass(swalClasses.icon);\n\n /**\n * @returns {HTMLElement | null}\n */\n const getIconContent = () => elementByClass(swalClasses['icon-content']);\n\n /**\n * @returns {HTMLElement | null}\n */\n const getTitle = () => elementByClass(swalClasses.title);\n\n /**\n * @returns {HTMLElement | null}\n */\n const getHtmlContainer = () => elementByClass(swalClasses['html-container']);\n\n /**\n * @returns {HTMLElement | null}\n */\n const getImage = () => elementByClass(swalClasses.image);\n\n /**\n * @returns {HTMLElement | null}\n */\n const getProgressSteps = () => elementByClass(swalClasses['progress-steps']);\n\n /**\n * @returns {HTMLElement | null}\n */\n const getValidationMessage = () => elementByClass(swalClasses['validation-message']);\n\n /**\n * @returns {HTMLButtonElement | null}\n */\n const getConfirmButton = () => /** @type {HTMLButtonElement} */elementBySelector(\".\".concat(swalClasses.actions, \" .\").concat(swalClasses.confirm));\n\n /**\n * @returns {HTMLButtonElement | null}\n */\n const getCancelButton = () => /** @type {HTMLButtonElement} */elementBySelector(\".\".concat(swalClasses.actions, \" .\").concat(swalClasses.cancel));\n\n /**\n * @returns {HTMLButtonElement | null}\n */\n const getDenyButton = () => /** @type {HTMLButtonElement} */elementBySelector(\".\".concat(swalClasses.actions, \" .\").concat(swalClasses.deny));\n\n /**\n * @returns {HTMLElement | null}\n */\n const getInputLabel = () => elementByClass(swalClasses['input-label']);\n\n /**\n * @returns {HTMLElement | null}\n */\n const getLoader = () => elementBySelector(\".\".concat(swalClasses.loader));\n\n /**\n * @returns {HTMLElement | null}\n */\n const getActions = () => elementByClass(swalClasses.actions);\n\n /**\n * @returns {HTMLElement | null}\n */\n const getFooter = () => elementByClass(swalClasses.footer);\n\n /**\n * @returns {HTMLElement | null}\n */\n const getTimerProgressBar = () => elementByClass(swalClasses['timer-progress-bar']);\n\n /**\n * @returns {HTMLElement | null}\n */\n const getCloseButton = () => elementByClass(swalClasses.close);\n\n // https://github.com/jkup/focusable/blob/master/index.js\n const focusable = \"\\n a[href],\\n area[href],\\n input:not([disabled]),\\n select:not([disabled]),\\n textarea:not([disabled]),\\n button:not([disabled]),\\n iframe,\\n object,\\n embed,\\n [tabindex=\\\"0\\\"],\\n [contenteditable],\\n audio[controls],\\n video[controls],\\n summary\\n\";\n /**\n * @returns {HTMLElement[]}\n */\n const getFocusableElements = () => {\n const popup = getPopup();\n if (!popup) {\n return [];\n }\n /** @type {NodeListOf} */\n const focusableElementsWithTabindex = popup.querySelectorAll('[tabindex]:not([tabindex=\"-1\"]):not([tabindex=\"0\"])');\n const focusableElementsWithTabindexSorted = Array.from(focusableElementsWithTabindex)\n // sort according to tabindex\n .sort((a, b) => {\n const tabindexA = parseInt(a.getAttribute('tabindex') || '0');\n const tabindexB = parseInt(b.getAttribute('tabindex') || '0');\n if (tabindexA > tabindexB) {\n return 1;\n } else if (tabindexA < tabindexB) {\n return -1;\n }\n return 0;\n });\n\n /** @type {NodeListOf} */\n const otherFocusableElements = popup.querySelectorAll(focusable);\n const otherFocusableElementsFiltered = Array.from(otherFocusableElements).filter(el => el.getAttribute('tabindex') !== '-1');\n return [...new Set(focusableElementsWithTabindexSorted.concat(otherFocusableElementsFiltered))].filter(el => isVisible$1(el));\n };\n\n /**\n * @returns {boolean}\n */\n const isModal = () => {\n return hasClass(document.body, swalClasses.shown) && !hasClass(document.body, swalClasses['toast-shown']) && !hasClass(document.body, swalClasses['no-backdrop']);\n };\n\n /**\n * @returns {boolean}\n */\n const isToast = () => {\n const popup = getPopup();\n if (!popup) {\n return false;\n }\n return hasClass(popup, swalClasses.toast);\n };\n\n /**\n * @returns {boolean}\n */\n const isLoading = () => {\n const popup = getPopup();\n if (!popup) {\n return false;\n }\n return popup.hasAttribute('data-loading');\n };\n\n /**\n * Securely set innerHTML of an element\n * https://github.com/sweetalert2/sweetalert2/issues/1926\n *\n * @param {HTMLElement} elem\n * @param {string} html\n */\n const setInnerHtml = (elem, html) => {\n elem.textContent = '';\n if (html) {\n const parser = new DOMParser();\n const parsed = parser.parseFromString(html, \"text/html\");\n const head = parsed.querySelector('head');\n head && Array.from(head.childNodes).forEach(child => {\n elem.appendChild(child);\n });\n const body = parsed.querySelector('body');\n body && Array.from(body.childNodes).forEach(child => {\n if (child instanceof HTMLVideoElement || child instanceof HTMLAudioElement) {\n elem.appendChild(child.cloneNode(true)); // https://github.com/sweetalert2/sweetalert2/issues/2507\n } else {\n elem.appendChild(child);\n }\n });\n }\n };\n\n /**\n * @param {HTMLElement} elem\n * @param {string} className\n * @returns {boolean}\n */\n const hasClass = (elem, className) => {\n if (!className) {\n return false;\n }\n const classList = className.split(/\\s+/);\n for (let i = 0; i < classList.length; i++) {\n if (!elem.classList.contains(classList[i])) {\n return false;\n }\n }\n return true;\n };\n\n /**\n * @param {HTMLElement} elem\n * @param {SweetAlertOptions} params\n */\n const removeCustomClasses = (elem, params) => {\n Array.from(elem.classList).forEach(className => {\n if (!Object.values(swalClasses).includes(className) && !Object.values(iconTypes).includes(className) && !Object.values(params.showClass || {}).includes(className)) {\n elem.classList.remove(className);\n }\n });\n };\n\n /**\n * @param {HTMLElement} elem\n * @param {SweetAlertOptions} params\n * @param {string} className\n */\n const applyCustomClass = (elem, params, className) => {\n removeCustomClasses(elem, params);\n if (params.customClass && params.customClass[className]) {\n if (typeof params.customClass[className] !== 'string' && !params.customClass[className].forEach) {\n warn(\"Invalid type of customClass.\".concat(className, \"! Expected string or iterable object, got \\\"\").concat(typeof params.customClass[className], \"\\\"\"));\n return;\n }\n addClass(elem, params.customClass[className]);\n }\n };\n\n /**\n * @param {HTMLElement} popup\n * @param {import('./renderers/renderInput').InputClass | SweetAlertInput} inputClass\n * @returns {HTMLInputElement | null}\n */\n const getInput$1 = (popup, inputClass) => {\n if (!inputClass) {\n return null;\n }\n switch (inputClass) {\n case 'select':\n case 'textarea':\n case 'file':\n return popup.querySelector(\".\".concat(swalClasses.popup, \" > .\").concat(swalClasses[inputClass]));\n case 'checkbox':\n return popup.querySelector(\".\".concat(swalClasses.popup, \" > .\").concat(swalClasses.checkbox, \" input\"));\n case 'radio':\n return popup.querySelector(\".\".concat(swalClasses.popup, \" > .\").concat(swalClasses.radio, \" input:checked\")) || popup.querySelector(\".\".concat(swalClasses.popup, \" > .\").concat(swalClasses.radio, \" input:first-child\"));\n case 'range':\n return popup.querySelector(\".\".concat(swalClasses.popup, \" > .\").concat(swalClasses.range, \" input\"));\n default:\n return popup.querySelector(\".\".concat(swalClasses.popup, \" > .\").concat(swalClasses.input));\n }\n };\n\n /**\n * @param {HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement} input\n */\n const focusInput = input => {\n input.focus();\n\n // place cursor at end of text in text input\n if (input.type !== 'file') {\n // http://stackoverflow.com/a/2345915\n const val = input.value;\n input.value = '';\n input.value = val;\n }\n };\n\n /**\n * @param {HTMLElement | HTMLElement[] | null} target\n * @param {string | string[] | readonly string[] | undefined} classList\n * @param {boolean} condition\n */\n const toggleClass = (target, classList, condition) => {\n if (!target || !classList) {\n return;\n }\n if (typeof classList === 'string') {\n classList = classList.split(/\\s+/).filter(Boolean);\n }\n classList.forEach(className => {\n if (Array.isArray(target)) {\n target.forEach(elem => {\n condition ? elem.classList.add(className) : elem.classList.remove(className);\n });\n } else {\n condition ? target.classList.add(className) : target.classList.remove(className);\n }\n });\n };\n\n /**\n * @param {HTMLElement | HTMLElement[] | null} target\n * @param {string | string[] | readonly string[] | undefined} classList\n */\n const addClass = (target, classList) => {\n toggleClass(target, classList, true);\n };\n\n /**\n * @param {HTMLElement | HTMLElement[] | null} target\n * @param {string | string[] | readonly string[] | undefined} classList\n */\n const removeClass = (target, classList) => {\n toggleClass(target, classList, false);\n };\n\n /**\n * Get direct child of an element by class name\n *\n * @param {HTMLElement} elem\n * @param {string} className\n * @returns {HTMLElement | undefined}\n */\n const getDirectChildByClass = (elem, className) => {\n const children = Array.from(elem.children);\n for (let i = 0; i < children.length; i++) {\n const child = children[i];\n if (child instanceof HTMLElement && hasClass(child, className)) {\n return child;\n }\n }\n };\n\n /**\n * @param {HTMLElement} elem\n * @param {string} property\n * @param {*} value\n */\n const applyNumericalStyle = (elem, property, value) => {\n if (value === \"\".concat(parseInt(value))) {\n value = parseInt(value);\n }\n if (value || parseInt(value) === 0) {\n elem.style[property] = typeof value === 'number' ? \"\".concat(value, \"px\") : value;\n } else {\n elem.style.removeProperty(property);\n }\n };\n\n /**\n * @param {HTMLElement | null} elem\n * @param {string} display\n */\n const show = function (elem) {\n let display = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'flex';\n elem && (elem.style.display = display);\n };\n\n /**\n * @param {HTMLElement | null} elem\n */\n const hide = elem => {\n elem && (elem.style.display = 'none');\n };\n\n /**\n * @param {HTMLElement} parent\n * @param {string} selector\n * @param {string} property\n * @param {string} value\n */\n const setStyle = (parent, selector, property, value) => {\n /** @type {HTMLElement} */\n const el = parent.querySelector(selector);\n if (el) {\n el.style[property] = value;\n }\n };\n\n /**\n * @param {HTMLElement} elem\n * @param {any} condition\n * @param {string} display\n */\n const toggle = function (elem, condition) {\n let display = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'flex';\n condition ? show(elem, display) : hide(elem);\n };\n\n /**\n * borrowed from jquery $(elem).is(':visible') implementation\n *\n * @param {HTMLElement | null} elem\n * @returns {boolean}\n */\n const isVisible$1 = elem => !!(elem && (elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length));\n\n /**\n * @returns {boolean}\n */\n const allButtonsAreHidden = () => !isVisible$1(getConfirmButton()) && !isVisible$1(getDenyButton()) && !isVisible$1(getCancelButton());\n\n /**\n * @param {HTMLElement} elem\n * @returns {boolean}\n */\n const isScrollable = elem => !!(elem.scrollHeight > elem.clientHeight);\n\n /**\n * borrowed from https://stackoverflow.com/a/46352119\n *\n * @param {HTMLElement} elem\n * @returns {boolean}\n */\n const hasCssAnimation = elem => {\n const style = window.getComputedStyle(elem);\n const animDuration = parseFloat(style.getPropertyValue('animation-duration') || '0');\n const transDuration = parseFloat(style.getPropertyValue('transition-duration') || '0');\n return animDuration > 0 || transDuration > 0;\n };\n\n /**\n * @param {number} timer\n * @param {boolean} reset\n */\n const animateTimerProgressBar = function (timer) {\n let reset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n const timerProgressBar = getTimerProgressBar();\n if (!timerProgressBar) {\n return;\n }\n if (isVisible$1(timerProgressBar)) {\n if (reset) {\n timerProgressBar.style.transition = 'none';\n timerProgressBar.style.width = '100%';\n }\n setTimeout(() => {\n timerProgressBar.style.transition = \"width \".concat(timer / 1000, \"s linear\");\n timerProgressBar.style.width = '0%';\n }, 10);\n }\n };\n const stopTimerProgressBar = () => {\n const timerProgressBar = getTimerProgressBar();\n if (!timerProgressBar) {\n return;\n }\n const timerProgressBarWidth = parseInt(window.getComputedStyle(timerProgressBar).width);\n timerProgressBar.style.removeProperty('transition');\n timerProgressBar.style.width = '100%';\n const timerProgressBarFullWidth = parseInt(window.getComputedStyle(timerProgressBar).width);\n const timerProgressBarPercent = timerProgressBarWidth / timerProgressBarFullWidth * 100;\n timerProgressBar.style.width = \"\".concat(timerProgressBarPercent, \"%\");\n };\n\n /**\n * Detect Node env\n *\n * @returns {boolean}\n */\n const isNodeEnv = () => typeof window === 'undefined' || typeof document === 'undefined';\n\n const sweetHTML = \"\\n
\\n \\n
    \\n
    \\n \\n

    \\n
    \\n \\n \\n
    \\n \\n \\n
    \\n \\n
    \\n \\n \\n
    \\n
    \\n
    \\n \\n \\n \\n
    \\n
    \\n
    \\n
    \\n
    \\n
    \\n\").replace(/(^|\\n)\\s*/g, '');\n\n /**\n * @returns {boolean}\n */\n const resetOldContainer = () => {\n const oldContainer = getContainer();\n if (!oldContainer) {\n return false;\n }\n oldContainer.remove();\n removeClass([document.documentElement, document.body], [swalClasses['no-backdrop'], swalClasses['toast-shown'], swalClasses['has-column']]);\n return true;\n };\n const resetValidationMessage$1 = () => {\n globalState.currentInstance.resetValidationMessage();\n };\n const addInputChangeListeners = () => {\n const popup = getPopup();\n const input = getDirectChildByClass(popup, swalClasses.input);\n const file = getDirectChildByClass(popup, swalClasses.file);\n /** @type {HTMLInputElement} */\n const range = popup.querySelector(\".\".concat(swalClasses.range, \" input\"));\n /** @type {HTMLOutputElement} */\n const rangeOutput = popup.querySelector(\".\".concat(swalClasses.range, \" output\"));\n const select = getDirectChildByClass(popup, swalClasses.select);\n /** @type {HTMLInputElement} */\n const checkbox = popup.querySelector(\".\".concat(swalClasses.checkbox, \" input\"));\n const textarea = getDirectChildByClass(popup, swalClasses.textarea);\n input.oninput = resetValidationMessage$1;\n file.onchange = resetValidationMessage$1;\n select.onchange = resetValidationMessage$1;\n checkbox.onchange = resetValidationMessage$1;\n textarea.oninput = resetValidationMessage$1;\n range.oninput = () => {\n resetValidationMessage$1();\n rangeOutput.value = range.value;\n };\n range.onchange = () => {\n resetValidationMessage$1();\n rangeOutput.value = range.value;\n };\n };\n\n /**\n * @param {string | HTMLElement} target\n * @returns {HTMLElement}\n */\n const getTarget = target => typeof target === 'string' ? document.querySelector(target) : target;\n\n /**\n * @param {SweetAlertOptions} params\n */\n const setupAccessibility = params => {\n const popup = getPopup();\n popup.setAttribute('role', params.toast ? 'alert' : 'dialog');\n popup.setAttribute('aria-live', params.toast ? 'polite' : 'assertive');\n if (!params.toast) {\n popup.setAttribute('aria-modal', 'true');\n }\n };\n\n /**\n * @param {HTMLElement} targetElement\n */\n const setupRTL = targetElement => {\n if (window.getComputedStyle(targetElement).direction === 'rtl') {\n addClass(getContainer(), swalClasses.rtl);\n }\n };\n\n /**\n * Add modal + backdrop + no-war message for Russians to DOM\n *\n * @param {SweetAlertOptions} params\n */\n const init = params => {\n // Clean up the old popup container if it exists\n const oldContainerExisted = resetOldContainer();\n if (isNodeEnv()) {\n error('SweetAlert2 requires document to initialize');\n return;\n }\n const container = document.createElement('div');\n container.className = swalClasses.container;\n if (oldContainerExisted) {\n addClass(container, swalClasses['no-transition']);\n }\n setInnerHtml(container, sweetHTML);\n const targetElement = getTarget(params.target);\n targetElement.appendChild(container);\n setupAccessibility(params);\n setupRTL(targetElement);\n addInputChangeListeners();\n };\n\n /**\n * @param {HTMLElement | object | string} param\n * @param {HTMLElement} target\n */\n const parseHtmlToContainer = (param, target) => {\n // DOM element\n if (param instanceof HTMLElement) {\n target.appendChild(param);\n }\n\n // Object\n else if (typeof param === 'object') {\n handleObject(param, target);\n }\n\n // Plain string\n else if (param) {\n setInnerHtml(target, param);\n }\n };\n\n /**\n * @param {any} param\n * @param {HTMLElement} target\n */\n const handleObject = (param, target) => {\n // JQuery element(s)\n if (param.jquery) {\n handleJqueryElem(target, param);\n }\n\n // For other objects use their string representation\n else {\n setInnerHtml(target, param.toString());\n }\n };\n\n /**\n * @param {HTMLElement} target\n * @param {any} elem\n */\n const handleJqueryElem = (target, elem) => {\n target.textContent = '';\n if (0 in elem) {\n for (let i = 0; (i in elem); i++) {\n target.appendChild(elem[i].cloneNode(true));\n }\n } else {\n target.appendChild(elem.cloneNode(true));\n }\n };\n\n /**\n * @returns {'webkitAnimationEnd' | 'animationend' | false}\n */\n const animationEndEvent = (() => {\n // Prevent run in Node env\n if (isNodeEnv()) {\n return false;\n }\n const testEl = document.createElement('div');\n\n // Chrome, Safari and Opera\n if (typeof testEl.style.webkitAnimation !== 'undefined') {\n return 'webkitAnimationEnd';\n }\n\n // Standard syntax\n if (typeof testEl.style.animation !== 'undefined') {\n return 'animationend';\n }\n return false;\n })();\n\n /**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\n const renderActions = (instance, params) => {\n const actions = getActions();\n const loader = getLoader();\n if (!actions || !loader) {\n return;\n }\n\n // Actions (buttons) wrapper\n if (!params.showConfirmButton && !params.showDenyButton && !params.showCancelButton) {\n hide(actions);\n } else {\n show(actions);\n }\n\n // Custom class\n applyCustomClass(actions, params, 'actions');\n\n // Render all the buttons\n renderButtons(actions, loader, params);\n\n // Loader\n setInnerHtml(loader, params.loaderHtml || '');\n applyCustomClass(loader, params, 'loader');\n };\n\n /**\n * @param {HTMLElement} actions\n * @param {HTMLElement} loader\n * @param {SweetAlertOptions} params\n */\n function renderButtons(actions, loader, params) {\n const confirmButton = getConfirmButton();\n const denyButton = getDenyButton();\n const cancelButton = getCancelButton();\n if (!confirmButton || !denyButton || !cancelButton) {\n return;\n }\n\n // Render buttons\n renderButton(confirmButton, 'confirm', params);\n renderButton(denyButton, 'deny', params);\n renderButton(cancelButton, 'cancel', params);\n handleButtonsStyling(confirmButton, denyButton, cancelButton, params);\n if (params.reverseButtons) {\n if (params.toast) {\n actions.insertBefore(cancelButton, confirmButton);\n actions.insertBefore(denyButton, confirmButton);\n } else {\n actions.insertBefore(cancelButton, loader);\n actions.insertBefore(denyButton, loader);\n actions.insertBefore(confirmButton, loader);\n }\n }\n }\n\n /**\n * @param {HTMLElement} confirmButton\n * @param {HTMLElement} denyButton\n * @param {HTMLElement} cancelButton\n * @param {SweetAlertOptions} params\n */\n function handleButtonsStyling(confirmButton, denyButton, cancelButton, params) {\n if (!params.buttonsStyling) {\n removeClass([confirmButton, denyButton, cancelButton], swalClasses.styled);\n return;\n }\n addClass([confirmButton, denyButton, cancelButton], swalClasses.styled);\n\n // Buttons background colors\n if (params.confirmButtonColor) {\n confirmButton.style.backgroundColor = params.confirmButtonColor;\n addClass(confirmButton, swalClasses['default-outline']);\n }\n if (params.denyButtonColor) {\n denyButton.style.backgroundColor = params.denyButtonColor;\n addClass(denyButton, swalClasses['default-outline']);\n }\n if (params.cancelButtonColor) {\n cancelButton.style.backgroundColor = params.cancelButtonColor;\n addClass(cancelButton, swalClasses['default-outline']);\n }\n }\n\n /**\n * @param {HTMLElement} button\n * @param {'confirm' | 'deny' | 'cancel'} buttonType\n * @param {SweetAlertOptions} params\n */\n function renderButton(button, buttonType, params) {\n const buttonName = /** @type {'Confirm' | 'Deny' | 'Cancel'} */capitalizeFirstLetter(buttonType);\n toggle(button, params[\"show\".concat(buttonName, \"Button\")], 'inline-block');\n setInnerHtml(button, params[\"\".concat(buttonType, \"ButtonText\")] || ''); // Set caption text\n button.setAttribute('aria-label', params[\"\".concat(buttonType, \"ButtonAriaLabel\")] || ''); // ARIA label\n\n // Add buttons custom classes\n button.className = swalClasses[buttonType];\n applyCustomClass(button, params, \"\".concat(buttonType, \"Button\"));\n }\n\n /**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\n const renderCloseButton = (instance, params) => {\n const closeButton = getCloseButton();\n if (!closeButton) {\n return;\n }\n setInnerHtml(closeButton, params.closeButtonHtml || '');\n\n // Custom class\n applyCustomClass(closeButton, params, 'closeButton');\n toggle(closeButton, params.showCloseButton);\n closeButton.setAttribute('aria-label', params.closeButtonAriaLabel || '');\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\n const renderContainer = (instance, params) => {\n const container = getContainer();\n if (!container) {\n return;\n }\n handleBackdropParam(container, params.backdrop);\n handlePositionParam(container, params.position);\n handleGrowParam(container, params.grow);\n\n // Custom class\n applyCustomClass(container, params, 'container');\n };\n\n /**\n * @param {HTMLElement} container\n * @param {SweetAlertOptions['backdrop']} backdrop\n */\n function handleBackdropParam(container, backdrop) {\n if (typeof backdrop === 'string') {\n container.style.background = backdrop;\n } else if (!backdrop) {\n addClass([document.documentElement, document.body], swalClasses['no-backdrop']);\n }\n }\n\n /**\n * @param {HTMLElement} container\n * @param {SweetAlertOptions['position']} position\n */\n function handlePositionParam(container, position) {\n if (!position) {\n return;\n }\n if (position in swalClasses) {\n addClass(container, swalClasses[position]);\n } else {\n warn('The \"position\" parameter is not valid, defaulting to \"center\"');\n addClass(container, swalClasses.center);\n }\n }\n\n /**\n * @param {HTMLElement} container\n * @param {SweetAlertOptions['grow']} grow\n */\n function handleGrowParam(container, grow) {\n if (!grow) {\n return;\n }\n addClass(container, swalClasses[\"grow-\".concat(grow)]);\n }\n\n /**\n * This module contains `WeakMap`s for each effectively-\"private property\" that a `Swal` has.\n * For example, to set the private property \"foo\" of `this` to \"bar\", you can `privateProps.foo.set(this, 'bar')`\n * This is the approach that Babel will probably take to implement private methods/fields\n * https://github.com/tc39/proposal-private-methods\n * https://github.com/babel/babel/pull/7555\n * Once we have the changes from that PR in Babel, and our core class fits reasonable in *one module*\n * then we can use that language feature.\n */\n\n var privateProps = {\n innerParams: new WeakMap(),\n domCache: new WeakMap()\n };\n\n /// \n\n\n /** @type {InputClass[]} */\n const inputClasses = ['input', 'file', 'range', 'select', 'radio', 'checkbox', 'textarea'];\n\n /**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\n const renderInput = (instance, params) => {\n const popup = getPopup();\n if (!popup) {\n return;\n }\n const innerParams = privateProps.innerParams.get(instance);\n const rerender = !innerParams || params.input !== innerParams.input;\n inputClasses.forEach(inputClass => {\n const inputContainer = getDirectChildByClass(popup, swalClasses[inputClass]);\n if (!inputContainer) {\n return;\n }\n\n // set attributes\n setAttributes(inputClass, params.inputAttributes);\n\n // set class\n inputContainer.className = swalClasses[inputClass];\n if (rerender) {\n hide(inputContainer);\n }\n });\n if (params.input) {\n if (rerender) {\n showInput(params);\n }\n // set custom class\n setCustomClass(params);\n }\n };\n\n /**\n * @param {SweetAlertOptions} params\n */\n const showInput = params => {\n if (!params.input) {\n return;\n }\n if (!renderInputType[params.input]) {\n error(\"Unexpected type of input! Expected \\\"text\\\", \\\"email\\\", \\\"password\\\", \\\"number\\\", \\\"tel\\\", \\\"select\\\", \\\"radio\\\", \\\"checkbox\\\", \\\"textarea\\\", \\\"file\\\" or \\\"url\\\", got \\\"\".concat(params.input, \"\\\"\"));\n return;\n }\n const inputContainer = getInputContainer(params.input);\n const input = renderInputType[params.input](inputContainer, params);\n show(inputContainer);\n\n // input autofocus\n if (params.inputAutoFocus) {\n setTimeout(() => {\n focusInput(input);\n });\n }\n };\n\n /**\n * @param {HTMLInputElement} input\n */\n const removeAttributes = input => {\n for (let i = 0; i < input.attributes.length; i++) {\n const attrName = input.attributes[i].name;\n if (!['id', 'type', 'value', 'style'].includes(attrName)) {\n input.removeAttribute(attrName);\n }\n }\n };\n\n /**\n * @param {InputClass} inputClass\n * @param {SweetAlertOptions['inputAttributes']} inputAttributes\n */\n const setAttributes = (inputClass, inputAttributes) => {\n const input = getInput$1(getPopup(), inputClass);\n if (!input) {\n return;\n }\n removeAttributes(input);\n for (const attr in inputAttributes) {\n input.setAttribute(attr, inputAttributes[attr]);\n }\n };\n\n /**\n * @param {SweetAlertOptions} params\n */\n const setCustomClass = params => {\n const inputContainer = getInputContainer(params.input);\n if (typeof params.customClass === 'object') {\n addClass(inputContainer, params.customClass.input);\n }\n };\n\n /**\n * @param {HTMLInputElement | HTMLTextAreaElement} input\n * @param {SweetAlertOptions} params\n */\n const setInputPlaceholder = (input, params) => {\n if (!input.placeholder || params.inputPlaceholder) {\n input.placeholder = params.inputPlaceholder;\n }\n };\n\n /**\n * @param {Input} input\n * @param {Input} prependTo\n * @param {SweetAlertOptions} params\n */\n const setInputLabel = (input, prependTo, params) => {\n if (params.inputLabel) {\n const label = document.createElement('label');\n const labelClass = swalClasses['input-label'];\n label.setAttribute('for', input.id);\n label.className = labelClass;\n if (typeof params.customClass === 'object') {\n addClass(label, params.customClass.inputLabel);\n }\n label.innerText = params.inputLabel;\n prependTo.insertAdjacentElement('beforebegin', label);\n }\n };\n\n /**\n * @param {SweetAlertOptions['input']} inputType\n * @returns {HTMLElement}\n */\n const getInputContainer = inputType => {\n return getDirectChildByClass(getPopup(), swalClasses[inputType] || swalClasses.input);\n };\n\n /**\n * @param {HTMLInputElement | HTMLOutputElement | HTMLTextAreaElement} input\n * @param {SweetAlertOptions['inputValue']} inputValue\n */\n const checkAndSetInputValue = (input, inputValue) => {\n if (['string', 'number'].includes(typeof inputValue)) {\n input.value = \"\".concat(inputValue);\n } else if (!isPromise(inputValue)) {\n warn(\"Unexpected type of inputValue! Expected \\\"string\\\", \\\"number\\\" or \\\"Promise\\\", got \\\"\".concat(typeof inputValue, \"\\\"\"));\n }\n };\n\n /** @type {Record Input>} */\n const renderInputType = {};\n\n /**\n * @param {HTMLInputElement} input\n * @param {SweetAlertOptions} params\n * @returns {HTMLInputElement}\n */\n renderInputType.text = renderInputType.email = renderInputType.password = renderInputType.number = renderInputType.tel = renderInputType.url = (input, params) => {\n checkAndSetInputValue(input, params.inputValue);\n setInputLabel(input, input, params);\n setInputPlaceholder(input, params);\n input.type = params.input;\n return input;\n };\n\n /**\n * @param {HTMLInputElement} input\n * @param {SweetAlertOptions} params\n * @returns {HTMLInputElement}\n */\n renderInputType.file = (input, params) => {\n setInputLabel(input, input, params);\n setInputPlaceholder(input, params);\n return input;\n };\n\n /**\n * @param {HTMLInputElement} range\n * @param {SweetAlertOptions} params\n * @returns {HTMLInputElement}\n */\n renderInputType.range = (range, params) => {\n const rangeInput = range.querySelector('input');\n const rangeOutput = range.querySelector('output');\n checkAndSetInputValue(rangeInput, params.inputValue);\n rangeInput.type = params.input;\n checkAndSetInputValue(rangeOutput, params.inputValue);\n setInputLabel(rangeInput, range, params);\n return range;\n };\n\n /**\n * @param {HTMLSelectElement} select\n * @param {SweetAlertOptions} params\n * @returns {HTMLSelectElement}\n */\n renderInputType.select = (select, params) => {\n select.textContent = '';\n if (params.inputPlaceholder) {\n const placeholder = document.createElement('option');\n setInnerHtml(placeholder, params.inputPlaceholder);\n placeholder.value = '';\n placeholder.disabled = true;\n placeholder.selected = true;\n select.appendChild(placeholder);\n }\n setInputLabel(select, select, params);\n return select;\n };\n\n /**\n * @param {HTMLInputElement} radio\n * @returns {HTMLInputElement}\n */\n renderInputType.radio = radio => {\n radio.textContent = '';\n return radio;\n };\n\n /**\n * @param {HTMLLabelElement} checkboxContainer\n * @param {SweetAlertOptions} params\n * @returns {HTMLInputElement}\n */\n renderInputType.checkbox = (checkboxContainer, params) => {\n const checkbox = getInput$1(getPopup(), 'checkbox');\n checkbox.value = '1';\n checkbox.checked = Boolean(params.inputValue);\n const label = checkboxContainer.querySelector('span');\n setInnerHtml(label, params.inputPlaceholder);\n return checkbox;\n };\n\n /**\n * @param {HTMLTextAreaElement} textarea\n * @param {SweetAlertOptions} params\n * @returns {HTMLTextAreaElement}\n */\n renderInputType.textarea = (textarea, params) => {\n checkAndSetInputValue(textarea, params.inputValue);\n setInputPlaceholder(textarea, params);\n setInputLabel(textarea, textarea, params);\n\n /**\n * @param {HTMLElement} el\n * @returns {number}\n */\n const getMargin = el => parseInt(window.getComputedStyle(el).marginLeft) + parseInt(window.getComputedStyle(el).marginRight);\n\n // https://github.com/sweetalert2/sweetalert2/issues/2291\n setTimeout(() => {\n // https://github.com/sweetalert2/sweetalert2/issues/1699\n if ('MutationObserver' in window) {\n const initialPopupWidth = parseInt(window.getComputedStyle(getPopup()).width);\n const textareaResizeHandler = () => {\n // check if texarea is still in document (i.e. popup wasn't closed in the meantime)\n if (!document.body.contains(textarea)) {\n return;\n }\n const textareaWidth = textarea.offsetWidth + getMargin(textarea);\n if (textareaWidth > initialPopupWidth) {\n getPopup().style.width = \"\".concat(textareaWidth, \"px\");\n } else {\n applyNumericalStyle(getPopup(), 'width', params.width);\n }\n };\n new MutationObserver(textareaResizeHandler).observe(textarea, {\n attributes: true,\n attributeFilter: ['style']\n });\n }\n });\n return textarea;\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\n const renderContent = (instance, params) => {\n const htmlContainer = getHtmlContainer();\n if (!htmlContainer) {\n return;\n }\n applyCustomClass(htmlContainer, params, 'htmlContainer');\n\n // Content as HTML\n if (params.html) {\n parseHtmlToContainer(params.html, htmlContainer);\n show(htmlContainer, 'block');\n }\n\n // Content as plain text\n else if (params.text) {\n htmlContainer.textContent = params.text;\n show(htmlContainer, 'block');\n }\n\n // No content\n else {\n hide(htmlContainer);\n }\n renderInput(instance, params);\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\n const renderFooter = (instance, params) => {\n const footer = getFooter();\n if (!footer) {\n return;\n }\n toggle(footer, params.footer, 'block');\n if (params.footer) {\n parseHtmlToContainer(params.footer, footer);\n }\n\n // Custom class\n applyCustomClass(footer, params, 'footer');\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\n const renderIcon = (instance, params) => {\n const innerParams = privateProps.innerParams.get(instance);\n const icon = getIcon();\n if (!icon) {\n return;\n }\n\n // if the given icon already rendered, apply the styling without re-rendering the icon\n if (innerParams && params.icon === innerParams.icon) {\n // Custom or default content\n setContent(icon, params);\n applyStyles(icon, params);\n return;\n }\n if (!params.icon && !params.iconHtml) {\n hide(icon);\n return;\n }\n if (params.icon && Object.keys(iconTypes).indexOf(params.icon) === -1) {\n error(\"Unknown icon! Expected \\\"success\\\", \\\"error\\\", \\\"warning\\\", \\\"info\\\" or \\\"question\\\", got \\\"\".concat(params.icon, \"\\\"\"));\n hide(icon);\n return;\n }\n show(icon);\n\n // Custom or default content\n setContent(icon, params);\n applyStyles(icon, params);\n\n // Animate icon\n addClass(icon, params.showClass && params.showClass.icon);\n };\n\n /**\n * @param {HTMLElement} icon\n * @param {SweetAlertOptions} params\n */\n const applyStyles = (icon, params) => {\n for (const [iconType, iconClassName] of Object.entries(iconTypes)) {\n if (params.icon !== iconType) {\n removeClass(icon, iconClassName);\n }\n }\n addClass(icon, params.icon && iconTypes[params.icon]);\n\n // Icon color\n setColor(icon, params);\n\n // Success icon background color\n adjustSuccessIconBackgroundColor();\n\n // Custom class\n applyCustomClass(icon, params, 'icon');\n };\n\n // Adjust success icon background color to match the popup background color\n const adjustSuccessIconBackgroundColor = () => {\n const popup = getPopup();\n if (!popup) {\n return;\n }\n const popupBackgroundColor = window.getComputedStyle(popup).getPropertyValue('background-color');\n /** @type {NodeListOf} */\n const successIconParts = popup.querySelectorAll('[class^=swal2-success-circular-line], .swal2-success-fix');\n for (let i = 0; i < successIconParts.length; i++) {\n successIconParts[i].style.backgroundColor = popupBackgroundColor;\n }\n };\n const successIconHtml = \"\\n
    \\n \\n
    \\n
    \\n\";\n const errorIconHtml = \"\\n \\n \\n \\n \\n\";\n\n /**\n * @param {HTMLElement} icon\n * @param {SweetAlertOptions} params\n */\n const setContent = (icon, params) => {\n if (!params.icon && !params.iconHtml) {\n return;\n }\n let oldContent = icon.innerHTML;\n let newContent = '';\n if (params.iconHtml) {\n newContent = iconContent(params.iconHtml);\n } else if (params.icon === 'success') {\n newContent = successIconHtml;\n oldContent = oldContent.replace(/ style=\".*?\"/g, ''); // undo adjustSuccessIconBackgroundColor()\n } else if (params.icon === 'error') {\n newContent = errorIconHtml;\n } else if (params.icon) {\n const defaultIconHtml = {\n question: '?',\n warning: '!',\n info: 'i'\n };\n newContent = iconContent(defaultIconHtml[params.icon]);\n }\n if (oldContent.trim() !== newContent.trim()) {\n setInnerHtml(icon, newContent);\n }\n };\n\n /**\n * @param {HTMLElement} icon\n * @param {SweetAlertOptions} params\n */\n const setColor = (icon, params) => {\n if (!params.iconColor) {\n return;\n }\n icon.style.color = params.iconColor;\n icon.style.borderColor = params.iconColor;\n for (const sel of ['.swal2-success-line-tip', '.swal2-success-line-long', '.swal2-x-mark-line-left', '.swal2-x-mark-line-right']) {\n setStyle(icon, sel, 'backgroundColor', params.iconColor);\n }\n setStyle(icon, '.swal2-success-ring', 'borderColor', params.iconColor);\n };\n\n /**\n * @param {string} content\n * @returns {string}\n */\n const iconContent = content => \"
    \").concat(content, \"
    \");\n\n /**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\n const renderImage = (instance, params) => {\n const image = getImage();\n if (!image) {\n return;\n }\n if (!params.imageUrl) {\n hide(image);\n return;\n }\n show(image, '');\n\n // Src, alt\n image.setAttribute('src', params.imageUrl);\n image.setAttribute('alt', params.imageAlt || '');\n\n // Width, height\n applyNumericalStyle(image, 'width', params.imageWidth);\n applyNumericalStyle(image, 'height', params.imageHeight);\n\n // Class\n image.className = swalClasses.image;\n applyCustomClass(image, params, 'image');\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\n const renderPopup = (instance, params) => {\n const container = getContainer();\n const popup = getPopup();\n if (!container || !popup) {\n return;\n }\n\n // Width\n // https://github.com/sweetalert2/sweetalert2/issues/2170\n if (params.toast) {\n applyNumericalStyle(container, 'width', params.width);\n popup.style.width = '100%';\n const loader = getLoader();\n loader && popup.insertBefore(loader, getIcon());\n } else {\n applyNumericalStyle(popup, 'width', params.width);\n }\n\n // Padding\n applyNumericalStyle(popup, 'padding', params.padding);\n\n // Color\n if (params.color) {\n popup.style.color = params.color;\n }\n\n // Background\n if (params.background) {\n popup.style.background = params.background;\n }\n hide(getValidationMessage());\n\n // Classes\n addClasses$1(popup, params);\n };\n\n /**\n * @param {HTMLElement} popup\n * @param {SweetAlertOptions} params\n */\n const addClasses$1 = (popup, params) => {\n const showClass = params.showClass || {};\n // Default Class + showClass when updating Swal.update({})\n popup.className = \"\".concat(swalClasses.popup, \" \").concat(isVisible$1(popup) ? showClass.popup : '');\n if (params.toast) {\n addClass([document.documentElement, document.body], swalClasses['toast-shown']);\n addClass(popup, swalClasses.toast);\n } else {\n addClass(popup, swalClasses.modal);\n }\n\n // Custom class\n applyCustomClass(popup, params, 'popup');\n if (typeof params.customClass === 'string') {\n addClass(popup, params.customClass);\n }\n\n // Icon class (#1842)\n if (params.icon) {\n addClass(popup, swalClasses[\"icon-\".concat(params.icon)]);\n }\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\n const renderProgressSteps = (instance, params) => {\n const progressStepsContainer = getProgressSteps();\n if (!progressStepsContainer) {\n return;\n }\n const {\n progressSteps,\n currentProgressStep\n } = params;\n if (!progressSteps || progressSteps.length === 0 || currentProgressStep === undefined) {\n hide(progressStepsContainer);\n return;\n }\n show(progressStepsContainer);\n progressStepsContainer.textContent = '';\n if (currentProgressStep >= progressSteps.length) {\n warn('Invalid currentProgressStep parameter, it should be less than progressSteps.length ' + '(currentProgressStep like JS arrays starts from 0)');\n }\n progressSteps.forEach((step, index) => {\n const stepEl = createStepElement(step);\n progressStepsContainer.appendChild(stepEl);\n if (index === currentProgressStep) {\n addClass(stepEl, swalClasses['active-progress-step']);\n }\n if (index !== progressSteps.length - 1) {\n const lineEl = createLineElement(params);\n progressStepsContainer.appendChild(lineEl);\n }\n });\n };\n\n /**\n * @param {string} step\n * @returns {HTMLLIElement}\n */\n const createStepElement = step => {\n const stepEl = document.createElement('li');\n addClass(stepEl, swalClasses['progress-step']);\n setInnerHtml(stepEl, step);\n return stepEl;\n };\n\n /**\n * @param {SweetAlertOptions} params\n * @returns {HTMLLIElement}\n */\n const createLineElement = params => {\n const lineEl = document.createElement('li');\n addClass(lineEl, swalClasses['progress-step-line']);\n if (params.progressStepsDistance) {\n applyNumericalStyle(lineEl, 'width', params.progressStepsDistance);\n }\n return lineEl;\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\n const renderTitle = (instance, params) => {\n const title = getTitle();\n if (!title) {\n return;\n }\n toggle(title, params.title || params.titleText, 'block');\n if (params.title) {\n parseHtmlToContainer(params.title, title);\n }\n if (params.titleText) {\n title.innerText = params.titleText;\n }\n\n // Custom class\n applyCustomClass(title, params, 'title');\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\n const render = (instance, params) => {\n renderPopup(instance, params);\n renderContainer(instance, params);\n renderProgressSteps(instance, params);\n renderIcon(instance, params);\n renderImage(instance, params);\n renderTitle(instance, params);\n renderCloseButton(instance, params);\n renderContent(instance, params);\n renderActions(instance, params);\n renderFooter(instance, params);\n const popup = getPopup();\n if (typeof params.didRender === 'function' && popup) {\n params.didRender(popup);\n }\n };\n\n /*\n * Global function to determine if SweetAlert2 popup is shown\n */\n const isVisible = () => {\n return isVisible$1(getPopup());\n };\n\n /*\n * Global function to click 'Confirm' button\n */\n const clickConfirm = () => {\n var _dom$getConfirmButton;\n return (_dom$getConfirmButton = getConfirmButton()) === null || _dom$getConfirmButton === void 0 ? void 0 : _dom$getConfirmButton.click();\n };\n\n /*\n * Global function to click 'Deny' button\n */\n const clickDeny = () => {\n var _dom$getDenyButton;\n return (_dom$getDenyButton = getDenyButton()) === null || _dom$getDenyButton === void 0 ? void 0 : _dom$getDenyButton.click();\n };\n\n /*\n * Global function to click 'Cancel' button\n */\n const clickCancel = () => {\n var _dom$getCancelButton;\n return (_dom$getCancelButton = getCancelButton()) === null || _dom$getCancelButton === void 0 ? void 0 : _dom$getCancelButton.click();\n };\n\n /** @typedef {'cancel' | 'backdrop' | 'close' | 'esc' | 'timer'} DismissReason */\n\n /** @type {Record} */\n const DismissReason = Object.freeze({\n cancel: 'cancel',\n backdrop: 'backdrop',\n close: 'close',\n esc: 'esc',\n timer: 'timer'\n });\n\n /**\n * @param {GlobalState} globalState\n */\n const removeKeydownHandler = globalState => {\n if (globalState.keydownTarget && globalState.keydownHandlerAdded) {\n globalState.keydownTarget.removeEventListener('keydown', globalState.keydownHandler, {\n capture: globalState.keydownListenerCapture\n });\n globalState.keydownHandlerAdded = false;\n }\n };\n\n /**\n * @param {GlobalState} globalState\n * @param {SweetAlertOptions} innerParams\n * @param {*} dismissWith\n */\n const addKeydownHandler = (globalState, innerParams, dismissWith) => {\n removeKeydownHandler(globalState);\n if (!innerParams.toast) {\n globalState.keydownHandler = e => keydownHandler(innerParams, e, dismissWith);\n globalState.keydownTarget = innerParams.keydownListenerCapture ? window : getPopup();\n globalState.keydownListenerCapture = innerParams.keydownListenerCapture;\n globalState.keydownTarget.addEventListener('keydown', globalState.keydownHandler, {\n capture: globalState.keydownListenerCapture\n });\n globalState.keydownHandlerAdded = true;\n }\n };\n\n /**\n * @param {number} index\n * @param {number} increment\n */\n const setFocus = (index, increment) => {\n var _dom$getPopup;\n const focusableElements = getFocusableElements();\n // search for visible elements and select the next possible match\n if (focusableElements.length) {\n index = index + increment;\n\n // rollover to first item\n if (index === focusableElements.length) {\n index = 0;\n\n // go to last item\n } else if (index === -1) {\n index = focusableElements.length - 1;\n }\n focusableElements[index].focus();\n return;\n }\n // no visible focusable elements, focus the popup\n (_dom$getPopup = getPopup()) === null || _dom$getPopup === void 0 || _dom$getPopup.focus();\n };\n const arrowKeysNextButton = ['ArrowRight', 'ArrowDown'];\n const arrowKeysPreviousButton = ['ArrowLeft', 'ArrowUp'];\n\n /**\n * @param {SweetAlertOptions} innerParams\n * @param {KeyboardEvent} event\n * @param {Function} dismissWith\n */\n const keydownHandler = (innerParams, event, dismissWith) => {\n if (!innerParams) {\n return; // This instance has already been destroyed\n }\n\n // Ignore keydown during IME composition\n // https://developer.mozilla.org/en-US/docs/Web/API/Document/keydown_event#ignoring_keydown_during_ime_composition\n // https://github.com/sweetalert2/sweetalert2/issues/720\n // https://github.com/sweetalert2/sweetalert2/issues/2406\n if (event.isComposing || event.keyCode === 229) {\n return;\n }\n if (innerParams.stopKeydownPropagation) {\n event.stopPropagation();\n }\n\n // ENTER\n if (event.key === 'Enter') {\n handleEnter(event, innerParams);\n }\n\n // TAB\n else if (event.key === 'Tab') {\n handleTab(event);\n }\n\n // ARROWS - switch focus between buttons\n else if ([...arrowKeysNextButton, ...arrowKeysPreviousButton].includes(event.key)) {\n handleArrows(event.key);\n }\n\n // ESC\n else if (event.key === 'Escape') {\n handleEsc(event, innerParams, dismissWith);\n }\n };\n\n /**\n * @param {KeyboardEvent} event\n * @param {SweetAlertOptions} innerParams\n */\n const handleEnter = (event, innerParams) => {\n // https://github.com/sweetalert2/sweetalert2/issues/2386\n if (!callIfFunction(innerParams.allowEnterKey)) {\n return;\n }\n const input = getInput$1(getPopup(), innerParams.input);\n if (event.target && input && event.target instanceof HTMLElement && event.target.outerHTML === input.outerHTML) {\n if (['textarea', 'file'].includes(innerParams.input)) {\n return; // do not submit\n }\n\n clickConfirm();\n event.preventDefault();\n }\n };\n\n /**\n * @param {KeyboardEvent} event\n */\n const handleTab = event => {\n const targetElement = event.target;\n const focusableElements = getFocusableElements();\n let btnIndex = -1;\n for (let i = 0; i < focusableElements.length; i++) {\n if (targetElement === focusableElements[i]) {\n btnIndex = i;\n break;\n }\n }\n\n // Cycle to the next button\n if (!event.shiftKey) {\n setFocus(btnIndex, 1);\n }\n\n // Cycle to the prev button\n else {\n setFocus(btnIndex, -1);\n }\n event.stopPropagation();\n event.preventDefault();\n };\n\n /**\n * @param {string} key\n */\n const handleArrows = key => {\n const actions = getActions();\n const confirmButton = getConfirmButton();\n const denyButton = getDenyButton();\n const cancelButton = getCancelButton();\n if (!actions || !confirmButton || !denyButton || !cancelButton) {\n return;\n }\n /** @type HTMLElement[] */\n const buttons = [confirmButton, denyButton, cancelButton];\n if (document.activeElement instanceof HTMLElement && !buttons.includes(document.activeElement)) {\n return;\n }\n const sibling = arrowKeysNextButton.includes(key) ? 'nextElementSibling' : 'previousElementSibling';\n let buttonToFocus = document.activeElement;\n if (!buttonToFocus) {\n return;\n }\n for (let i = 0; i < actions.children.length; i++) {\n buttonToFocus = buttonToFocus[sibling];\n if (!buttonToFocus) {\n return;\n }\n if (buttonToFocus instanceof HTMLButtonElement && isVisible$1(buttonToFocus)) {\n break;\n }\n }\n if (buttonToFocus instanceof HTMLButtonElement) {\n buttonToFocus.focus();\n }\n };\n\n /**\n * @param {KeyboardEvent} event\n * @param {SweetAlertOptions} innerParams\n * @param {Function} dismissWith\n */\n const handleEsc = (event, innerParams, dismissWith) => {\n if (callIfFunction(innerParams.allowEscapeKey)) {\n event.preventDefault();\n dismissWith(DismissReason.esc);\n }\n };\n\n /**\n * This module contains `WeakMap`s for each effectively-\"private property\" that a `Swal` has.\n * For example, to set the private property \"foo\" of `this` to \"bar\", you can `privateProps.foo.set(this, 'bar')`\n * This is the approach that Babel will probably take to implement private methods/fields\n * https://github.com/tc39/proposal-private-methods\n * https://github.com/babel/babel/pull/7555\n * Once we have the changes from that PR in Babel, and our core class fits reasonable in *one module*\n * then we can use that language feature.\n */\n\n var privateMethods = {\n swalPromiseResolve: new WeakMap(),\n swalPromiseReject: new WeakMap()\n };\n\n // From https://developer.paciellogroup.com/blog/2018/06/the-current-state-of-modal-dialog-accessibility/\n // Adding aria-hidden=\"true\" to elements outside of the active modal dialog ensures that\n // elements not within the active modal dialog will not be surfaced if a user opens a screen\n // reader’s list of elements (headings, form controls, landmarks, etc.) in the document.\n\n const setAriaHidden = () => {\n const bodyChildren = Array.from(document.body.children);\n bodyChildren.forEach(el => {\n if (el === getContainer() || el.contains(getContainer())) {\n return;\n }\n if (el.hasAttribute('aria-hidden')) {\n el.setAttribute('data-previous-aria-hidden', el.getAttribute('aria-hidden') || '');\n }\n el.setAttribute('aria-hidden', 'true');\n });\n };\n const unsetAriaHidden = () => {\n const bodyChildren = Array.from(document.body.children);\n bodyChildren.forEach(el => {\n if (el.hasAttribute('data-previous-aria-hidden')) {\n el.setAttribute('aria-hidden', el.getAttribute('data-previous-aria-hidden') || '');\n el.removeAttribute('data-previous-aria-hidden');\n } else {\n el.removeAttribute('aria-hidden');\n }\n });\n };\n\n // @ts-ignore\n const isSafariOrIOS = typeof window !== 'undefined' && !!window.GestureEvent; // true for Safari desktop + all iOS browsers https://stackoverflow.com/a/70585394\n\n /**\n * Fix iOS scrolling\n * http://stackoverflow.com/q/39626302\n */\n const iOSfix = () => {\n if (isSafariOrIOS && !hasClass(document.body, swalClasses.iosfix)) {\n const offset = document.body.scrollTop;\n document.body.style.top = \"\".concat(offset * -1, \"px\");\n addClass(document.body, swalClasses.iosfix);\n lockBodyScroll();\n }\n };\n\n /**\n * https://github.com/sweetalert2/sweetalert2/issues/1246\n */\n const lockBodyScroll = () => {\n const container = getContainer();\n if (!container) {\n return;\n }\n /** @type {boolean} */\n let preventTouchMove;\n /**\n * @param {TouchEvent} event\n */\n container.ontouchstart = event => {\n preventTouchMove = shouldPreventTouchMove(event);\n };\n /**\n * @param {TouchEvent} event\n */\n container.ontouchmove = event => {\n if (preventTouchMove) {\n event.preventDefault();\n event.stopPropagation();\n }\n };\n };\n\n /**\n * @param {TouchEvent} event\n * @returns {boolean}\n */\n const shouldPreventTouchMove = event => {\n const target = event.target;\n const container = getContainer();\n const htmlContainer = getHtmlContainer();\n if (!container || !htmlContainer) {\n return false;\n }\n if (isStylus(event) || isZoom(event)) {\n return false;\n }\n if (target === container) {\n return true;\n }\n if (!isScrollable(container) && target instanceof HTMLElement && target.tagName !== 'INPUT' &&\n // #1603\n target.tagName !== 'TEXTAREA' &&\n // #2266\n !(isScrollable(htmlContainer) &&\n // #1944\n htmlContainer.contains(target))) {\n return true;\n }\n return false;\n };\n\n /**\n * https://github.com/sweetalert2/sweetalert2/issues/1786\n *\n * @param {*} event\n * @returns {boolean}\n */\n const isStylus = event => {\n return event.touches && event.touches.length && event.touches[0].touchType === 'stylus';\n };\n\n /**\n * https://github.com/sweetalert2/sweetalert2/issues/1891\n *\n * @param {TouchEvent} event\n * @returns {boolean}\n */\n const isZoom = event => {\n return event.touches && event.touches.length > 1;\n };\n const undoIOSfix = () => {\n if (hasClass(document.body, swalClasses.iosfix)) {\n const offset = parseInt(document.body.style.top, 10);\n removeClass(document.body, swalClasses.iosfix);\n document.body.style.top = '';\n document.body.scrollTop = offset * -1;\n }\n };\n\n /**\n * Measure scrollbar width for padding body during modal show/hide\n * https://github.com/twbs/bootstrap/blob/master/js/src/modal.js\n *\n * @returns {number}\n */\n const measureScrollbar = () => {\n const scrollDiv = document.createElement('div');\n scrollDiv.className = swalClasses['scrollbar-measure'];\n document.body.appendChild(scrollDiv);\n const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth;\n document.body.removeChild(scrollDiv);\n return scrollbarWidth;\n };\n\n /**\n * Remember state in cases where opening and handling a modal will fiddle with it.\n * @type {number | null}\n */\n let previousBodyPadding = null;\n\n /**\n * @param {string} initialBodyOverflow\n */\n const replaceScrollbarWithPadding = initialBodyOverflow => {\n // for queues, do not do this more than once\n if (previousBodyPadding !== null) {\n return;\n }\n // if the body has overflow\n if (document.body.scrollHeight > window.innerHeight || initialBodyOverflow === 'scroll' // https://github.com/sweetalert2/sweetalert2/issues/2663\n ) {\n // add padding so the content doesn't shift after removal of scrollbar\n previousBodyPadding = parseInt(window.getComputedStyle(document.body).getPropertyValue('padding-right'));\n document.body.style.paddingRight = \"\".concat(previousBodyPadding + measureScrollbar(), \"px\");\n }\n };\n const undoReplaceScrollbarWithPadding = () => {\n if (previousBodyPadding !== null) {\n document.body.style.paddingRight = \"\".concat(previousBodyPadding, \"px\");\n previousBodyPadding = null;\n }\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {HTMLElement} container\n * @param {boolean} returnFocus\n * @param {Function} didClose\n */\n function removePopupAndResetState(instance, container, returnFocus, didClose) {\n if (isToast()) {\n triggerDidCloseAndDispose(instance, didClose);\n } else {\n restoreActiveElement(returnFocus).then(() => triggerDidCloseAndDispose(instance, didClose));\n removeKeydownHandler(globalState);\n }\n\n // workaround for https://github.com/sweetalert2/sweetalert2/issues/2088\n // for some reason removing the container in Safari will scroll the document to bottom\n if (isSafariOrIOS) {\n container.setAttribute('style', 'display:none !important');\n container.removeAttribute('class');\n container.innerHTML = '';\n } else {\n container.remove();\n }\n if (isModal()) {\n undoReplaceScrollbarWithPadding();\n undoIOSfix();\n unsetAriaHidden();\n }\n removeBodyClasses();\n }\n\n /**\n * Remove SweetAlert2 classes from body\n */\n function removeBodyClasses() {\n removeClass([document.documentElement, document.body], [swalClasses.shown, swalClasses['height-auto'], swalClasses['no-backdrop'], swalClasses['toast-shown']]);\n }\n\n /**\n * Instance method to close sweetAlert\n *\n * @param {any} resolveValue\n */\n function close(resolveValue) {\n resolveValue = prepareResolveValue(resolveValue);\n const swalPromiseResolve = privateMethods.swalPromiseResolve.get(this);\n const didClose = triggerClosePopup(this);\n if (this.isAwaitingPromise) {\n // A swal awaiting for a promise (after a click on Confirm or Deny) cannot be dismissed anymore #2335\n if (!resolveValue.isDismissed) {\n handleAwaitingPromise(this);\n swalPromiseResolve(resolveValue);\n }\n } else if (didClose) {\n // Resolve Swal promise\n swalPromiseResolve(resolveValue);\n }\n }\n const triggerClosePopup = instance => {\n const popup = getPopup();\n if (!popup) {\n return false;\n }\n const innerParams = privateProps.innerParams.get(instance);\n if (!innerParams || hasClass(popup, innerParams.hideClass.popup)) {\n return false;\n }\n removeClass(popup, innerParams.showClass.popup);\n addClass(popup, innerParams.hideClass.popup);\n const backdrop = getContainer();\n removeClass(backdrop, innerParams.showClass.backdrop);\n addClass(backdrop, innerParams.hideClass.backdrop);\n handlePopupAnimation(instance, popup, innerParams);\n return true;\n };\n\n /**\n * @param {any} error\n */\n function rejectPromise(error) {\n const rejectPromise = privateMethods.swalPromiseReject.get(this);\n handleAwaitingPromise(this);\n if (rejectPromise) {\n // Reject Swal promise\n rejectPromise(error);\n }\n }\n\n /**\n * @param {SweetAlert} instance\n */\n const handleAwaitingPromise = instance => {\n if (instance.isAwaitingPromise) {\n delete instance.isAwaitingPromise;\n // The instance might have been previously partly destroyed, we must resume the destroy process in this case #2335\n if (!privateProps.innerParams.get(instance)) {\n instance._destroy();\n }\n }\n };\n\n /**\n * @param {any} resolveValue\n * @returns {SweetAlertResult}\n */\n const prepareResolveValue = resolveValue => {\n // When user calls Swal.close()\n if (typeof resolveValue === 'undefined') {\n return {\n isConfirmed: false,\n isDenied: false,\n isDismissed: true\n };\n }\n return Object.assign({\n isConfirmed: false,\n isDenied: false,\n isDismissed: false\n }, resolveValue);\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {HTMLElement} popup\n * @param {SweetAlertOptions} innerParams\n */\n const handlePopupAnimation = (instance, popup, innerParams) => {\n const container = getContainer();\n // If animation is supported, animate\n const animationIsSupported = animationEndEvent && hasCssAnimation(popup);\n if (typeof innerParams.willClose === 'function') {\n innerParams.willClose(popup);\n }\n if (animationIsSupported) {\n animatePopup(instance, popup, container, innerParams.returnFocus, innerParams.didClose);\n } else {\n // Otherwise, remove immediately\n removePopupAndResetState(instance, container, innerParams.returnFocus, innerParams.didClose);\n }\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {HTMLElement} popup\n * @param {HTMLElement} container\n * @param {boolean} returnFocus\n * @param {Function} didClose\n */\n const animatePopup = (instance, popup, container, returnFocus, didClose) => {\n if (!animationEndEvent) {\n return;\n }\n globalState.swalCloseEventFinishedCallback = removePopupAndResetState.bind(null, instance, container, returnFocus, didClose);\n popup.addEventListener(animationEndEvent, function (e) {\n if (e.target === popup) {\n globalState.swalCloseEventFinishedCallback();\n delete globalState.swalCloseEventFinishedCallback;\n }\n });\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {Function} didClose\n */\n const triggerDidCloseAndDispose = (instance, didClose) => {\n setTimeout(() => {\n if (typeof didClose === 'function') {\n didClose.bind(instance.params)();\n }\n // instance might have been destroyed already\n if (instance._destroy) {\n instance._destroy();\n }\n });\n };\n\n /**\n * Shows loader (spinner), this is useful with AJAX requests.\n * By default the loader be shown instead of the \"Confirm\" button.\n *\n * @param {HTMLButtonElement | null} [buttonToReplace]\n */\n const showLoading = buttonToReplace => {\n let popup = getPopup();\n if (!popup) {\n new Swal(); // eslint-disable-line no-new\n }\n\n popup = getPopup();\n if (!popup) {\n return;\n }\n const loader = getLoader();\n if (isToast()) {\n hide(getIcon());\n } else {\n replaceButton(popup, buttonToReplace);\n }\n show(loader);\n popup.setAttribute('data-loading', 'true');\n popup.setAttribute('aria-busy', 'true');\n popup.focus();\n };\n\n /**\n * @param {HTMLElement} popup\n * @param {HTMLButtonElement | null} [buttonToReplace]\n */\n const replaceButton = (popup, buttonToReplace) => {\n const actions = getActions();\n const loader = getLoader();\n if (!actions || !loader) {\n return;\n }\n if (!buttonToReplace && isVisible$1(getConfirmButton())) {\n buttonToReplace = getConfirmButton();\n }\n show(actions);\n if (buttonToReplace) {\n hide(buttonToReplace);\n loader.setAttribute('data-button-to-replace', buttonToReplace.className);\n actions.insertBefore(loader, buttonToReplace);\n }\n addClass([popup, actions], swalClasses.loading);\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\n const handleInputOptionsAndValue = (instance, params) => {\n if (params.input === 'select' || params.input === 'radio') {\n handleInputOptions(instance, params);\n } else if (['text', 'email', 'number', 'tel', 'textarea'].some(i => i === params.input) && (hasToPromiseFn(params.inputValue) || isPromise(params.inputValue))) {\n showLoading(getConfirmButton());\n handleInputValue(instance, params);\n }\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} innerParams\n * @returns {SweetAlertInputValue}\n */\n const getInputValue = (instance, innerParams) => {\n const input = instance.getInput();\n if (!input) {\n return null;\n }\n switch (innerParams.input) {\n case 'checkbox':\n return getCheckboxValue(input);\n case 'radio':\n return getRadioValue(input);\n case 'file':\n return getFileValue(input);\n default:\n return innerParams.inputAutoTrim ? input.value.trim() : input.value;\n }\n };\n\n /**\n * @param {HTMLInputElement} input\n * @returns {number}\n */\n const getCheckboxValue = input => input.checked ? 1 : 0;\n\n /**\n * @param {HTMLInputElement} input\n * @returns {string | null}\n */\n const getRadioValue = input => input.checked ? input.value : null;\n\n /**\n * @param {HTMLInputElement} input\n * @returns {FileList | File | null}\n */\n const getFileValue = input => input.files && input.files.length ? input.getAttribute('multiple') !== null ? input.files : input.files[0] : null;\n\n /**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\n const handleInputOptions = (instance, params) => {\n const popup = getPopup();\n if (!popup) {\n return;\n }\n /**\n * @param {Record} inputOptions\n */\n const processInputOptions = inputOptions => {\n if (params.input === 'select') {\n populateSelectOptions(popup, formatInputOptions(inputOptions), params);\n } else if (params.input === 'radio') {\n populateRadioOptions(popup, formatInputOptions(inputOptions), params);\n }\n };\n if (hasToPromiseFn(params.inputOptions) || isPromise(params.inputOptions)) {\n showLoading(getConfirmButton());\n asPromise(params.inputOptions).then(inputOptions => {\n instance.hideLoading();\n processInputOptions(inputOptions);\n });\n } else if (typeof params.inputOptions === 'object') {\n processInputOptions(params.inputOptions);\n } else {\n error(\"Unexpected type of inputOptions! Expected object, Map or Promise, got \".concat(typeof params.inputOptions));\n }\n };\n\n /**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\n const handleInputValue = (instance, params) => {\n const input = instance.getInput();\n if (!input) {\n return;\n }\n hide(input);\n asPromise(params.inputValue).then(inputValue => {\n input.value = params.input === 'number' ? \"\".concat(parseFloat(inputValue) || 0) : \"\".concat(inputValue);\n show(input);\n input.focus();\n instance.hideLoading();\n }).catch(err => {\n error(\"Error in inputValue promise: \".concat(err));\n input.value = '';\n show(input);\n input.focus();\n instance.hideLoading();\n });\n };\n\n /**\n * @param {HTMLElement} popup\n * @param {InputOptionFlattened[]} inputOptions\n * @param {SweetAlertOptions} params\n */\n function populateSelectOptions(popup, inputOptions, params) {\n const select = getDirectChildByClass(popup, swalClasses.select);\n if (!select) {\n return;\n }\n /**\n * @param {HTMLElement} parent\n * @param {string} optionLabel\n * @param {string} optionValue\n */\n const renderOption = (parent, optionLabel, optionValue) => {\n const option = document.createElement('option');\n option.value = optionValue;\n setInnerHtml(option, optionLabel);\n option.selected = isSelected(optionValue, params.inputValue);\n parent.appendChild(option);\n };\n inputOptions.forEach(inputOption => {\n const optionValue = inputOption[0];\n const optionLabel = inputOption[1];\n // spec:\n // https://www.w3.org/TR/html401/interact/forms.html#h-17.6\n // \"...all OPTGROUP elements must be specified directly within a SELECT element (i.e., groups may not be nested)...\"\n // check whether this is a \n if (Array.isArray(optionLabel)) {\n // if it is an array, then it is an \n const optgroup = document.createElement('optgroup');\n optgroup.label = optionValue;\n optgroup.disabled = false; // not configurable for now\n select.appendChild(optgroup);\n optionLabel.forEach(o => renderOption(optgroup, o[1], o[0]));\n } else {\n // case of