1
0

114.js.map 187 KB

1
  1. {"version":3,"file":"114.js","mappings":"+JA+BO,IAAIA,EAAW,WAQlB,OAPAA,EAAWC,OAAOC,QAAU,SAAkBC,GAC1C,IAAK,IAAIC,EAAGC,EAAI,EAAGC,EAAIC,UAAUC,OAAQH,EAAIC,EAAGD,IAE5C,IAAK,IAAII,KADTL,EAAIG,UAAUF,GACOJ,OAAOS,UAAUC,eAAeC,KAAKR,EAAGK,KAAIN,EAAEM,GAAKL,EAAEK,IAE9E,OAAON,GAEJH,EAASa,MAAMC,KAAMP,YAoEHN,OAAOc,OA0GXd,OAAOc,OCzKzB,SAASC,EAAUC,GACtB,OAAOA,EAAIC,cC3Cf,IAAIC,EAAuB,CAAC,qBAAsB,wBAE9CC,EAAuB,eAqB3B,SAASC,EAAQC,EAAOC,EAAIC,GACxB,OAAID,aAAcE,OACPH,EAAMD,QAAQE,EAAIC,GACtBD,EAAGG,QAAO,SAAUJ,EAAOC,GAAM,OAAOD,EAAMD,QAAQE,EAAIC,KAAWF,GC1BzE,SAASK,EAAQL,EAAOM,GAE3B,YADgB,IAAZA,IAAsBA,EAAU,IDKjC,SAAgBN,EAAOM,QACV,IAAZA,IAAsBA,EAAU,IAMpC,IALA,IAAIC,EAAKD,EAAQE,YAAaA,OAAqB,IAAPD,EAAgBV,EAAuBU,EAAIE,EAAKH,EAAQI,YAAaA,OAAqB,IAAPD,EAAgBX,EAAuBW,EAAIE,EAAKL,EAAQM,UAAWA,OAAmB,IAAPD,EAAgBjB,EAAYiB,EAAIE,EAAKP,EAAQQ,UAAWA,OAAmB,IAAPD,EAAgB,IAAMA,EACpSE,EAAShB,EAAQA,EAAQC,EAAOQ,EAAa,UAAWE,EAAa,MACrEM,EAAQ,EACRC,EAAMF,EAAO7B,OAEe,OAAzB6B,EAAOG,OAAOF,IACjBA,IACJ,KAAkC,OAA3BD,EAAOG,OAAOD,EAAM,IACvBA,IAEJ,OAAOF,EAAOI,MAAMH,EAAOC,GAAKG,MAAM,MAAMC,IAAIT,GAAWU,KAAKR,GChBzDS,CAAOvB,EAAOtB,EAAS,CAAEoC,UAAW,KAAOR,ICH/C,SAASkB,EAAgBC,GAC5B,MAAMC,QCCU,IAAZpB,IAAsBA,EAAU,IAC7BD,EDFoBoB,ECEL/C,EAAS,CAAEoC,UAAW,KAAOR,KAFhD,IAA0BA,EDE7B,MAAQ,GADWmB,EAAW,GAAG7B,cAAgB6B,EAAW1B,QAAQ,QAAS,OACrD2B,IAErB,MAAMC,EAAgBZ,GAA4B,aAAjBA,EAAOa,OAAwBb,EAAOb,MAAM2B,QAAUC,QAAQC,MAAM,yBAA0BhB,EAAOiB,QED9HC,eAAeC,IAC1B,MAAM,QAAEC,KAAYC,GAASC,KAAKC,cAClCA,EAAAA,EAAAA,GAAaC,SAASC,cAAc,kBAAmB,CACnDL,QAASA,UAAkBM,QAAQC,WAAWP,EAAQd,KAEtDsB,GAAQ,QAER,KAA0BnB,EAAgBmB,GAAQ,eAC7CtB,IAAIM,MACNS,M,eCZX,IAAIQ,EAAiB,EAAQ,MAI7BC,EAAQ,EAHR,SAAsBC,EAAIxC,GACtB,OAAO,IAAIsC,EAAeG,aAAaD,EAAIxC,K,aCH/C3B,OAAOqE,eAAeH,EAAS,aAAc,CAAE3C,OAAO,IACtD2C,EAAQI,cAAW,EAMnBJ,EAAQI,SAAW,CACfC,iBAAkB,qBAClBC,KAAM,SACNC,SAAU,aACVC,gBAAiB,oBACjBC,aAAc,iBACdC,mBAAoB,uBACpBC,WAAY,eACZC,UAAW,cACXC,cAAe,kBACfC,YAAa,gBACbC,WAAY,eACZC,YAAa,gBACbC,UAAW,cACXC,SAAU,aACVC,QAAS,YACTC,gBAAiB,oBACjBC,gBAAiB,oBACjBC,YAAa,gBACbC,WAAY,eACZC,WAAY,eACZC,YAAa,gBACbC,eAAgB,mBAChBC,aAAc,iBACdC,SAAU,aACVC,cAAe,kBACfC,aAAc,mB,aCjClBhG,OAAOqE,eAAeH,EAAS,aAAc,CAAE3C,OAAO,IACtD2C,EAAQ+B,8BAA2B,EACnC/B,EAAQ+B,yBAA2B,CAC/BC,KAAM,WACNC,OAAQ,OACRC,MAAO,IACPC,WAAY,qBACZC,OAAQ,OACRC,MAAO,OACPC,SAAU,GACVC,WAAY,gBACZC,iBAAkB,IAClBC,UAAW,GACXC,uBAAwB,IACxBC,gBAAgB,EAChBC,cAAe,EACfC,cAAe,IACfC,WAAY,EACZC,sBAAsB,EACtBC,mBAAmB,EACnBC,aAAc,WACdC,mBAAmB,EACnBC,qBAAsB,EACtBC,eAAgB,GAChBC,gBAAiB,GACjBC,qBAAqB,EACrBC,eAAe,EACfC,UAAU,EACVC,cAAc,EACdC,YAAY,EACZC,eAAe,EACfC,kBAAkB,EAClBC,MAAM,EACNC,QAAQ,EACRC,UAAU,EACVC,WAAW,EACXC,UAAU,EACVC,mBAAmB,EACnBC,kBAAkB,EAClBC,YAAY,EACZC,0BAA0B,EAC1BC,gBAAiB,eACjBC,yBAAyB,EACzBC,QAAS,EACTC,wBAAyB,GACzBC,SAAU,GACVC,aAAc,GACdC,SAAU,GACVC,SAAU,GACVC,MAAO,EACPC,YAAa,OACbC,aAAc,OACdC,eAAgB,OAChBC,gBAAiB,OACjBC,UAAU,EACVC,SAAS,EACTC,gBAAiB,cACjBC,eAAgB,GAChBC,aAAa,EACbC,YAAY,EACZC,SAAS,EACTC,UAAW,GACXC,WAAY,GACZC,aAAc,GACdC,cAAUC,EACVC,eAAgB,CACZ9B,UAAU,EACVN,eAAe,EACfwB,UAAU,GAEd7F,QAAS,GACT0G,QAAS,CACLC,aAAc,gBACdC,eAAgB,kBAChBC,cAAe,iBACfC,UAAW,aACXjB,SAAU,WACVkB,UAAW,gB,qBC7EnB,IAAIC,EAAkB3J,MAAQA,KAAK2J,gBAAmB,WAClD,IAAK,IAAIrK,EAAI,EAAGC,EAAI,EAAGqK,EAAKnK,UAAUC,OAAQH,EAAIqK,EAAIrK,IAAKD,GAAKG,UAAUF,GAAGG,OACxE,IAAImK,EAAIC,MAAMxK,GAAIyK,EAAI,EAA3B,IAA8BxK,EAAI,EAAGA,EAAIqK,EAAIrK,IACzC,IAAK,IAAIyK,EAAIvK,UAAUF,GAAI0K,EAAI,EAAGC,EAAKF,EAAEtK,OAAQuK,EAAIC,EAAID,IAAKF,IAC1DF,EAAEE,GAAKC,EAAEC,GACjB,OAAOJ,GAEX1K,OAAOqE,eAAeH,EAAS,aAAc,CAAE3C,OAAO,IACtD2C,EAAQ8G,mBAAgB,EACxB,IAAIC,EAAY,EAAQ,MACpBC,EAAwB,CACxB,MACA,UACA,UACA,aACA,OACA,QACA,SACA,YACA,aACA,SACA,QACA,SACA,cACA,WACA,QACA,mBACA,YACA,cACA,kBACA,oBACA,gBACA,SACA,mBACA,aAGJ,SAASF,EAAcG,GAEnB,MAAa,SAATA,EACO,MAIXA,GADAA,GADAA,EAAOA,EAAK/J,QAAQ,QAAS,KACjBmB,OAAO,GAAGtB,cAAgBkK,EAAK3I,MAAM,IACrCpB,QAAQ,aAAa,SAAUgK,GAAK,OAAOA,EAAE,GAAGC,iBAGhEnH,EAAQ8G,cAAgBA,EACxB,IAAIM,EAAQ,CAIRC,QAAS,SAAUpH,EAAIwC,EAAW6E,EAASC,QACvB,IAAZD,IAAsBA,EAAU,GACpC,IACIE,EADOT,EAAUU,IAAIxH,GACPgH,KAAK,iBAAmBM,EAC1C,GAAKC,EAAL,CAGA,IAAIE,EAAoBF,EAAOjJ,MAAM,KAErC,GAAImJ,EAAkB,GAElB,IADA,IAAIC,EAASC,OAAOC,WACX3L,EAAI,EAAGA,EAAIwL,EAAkBrL,OAAQH,IAAK,CAC/C,IAAI4L,EAASJ,EAAkBxL,GAE/B,GADsB6L,SAASD,EAAOvJ,MAAM,KAAK,GAAI,IAC/BoJ,EAAQ,CAC1BH,EAASM,EACT,MAGA5L,IAAMwL,EAAkBrL,OAAS,IACjCmL,EAASM,GAIrB,IAAIE,EAAOR,EAAOjJ,MAAM,KACpB8D,EAAQ0F,SAASC,EAAK,GAAI,IAC1B5F,EAAS2F,SAASC,EAAK,GAAI,IAC3BC,EAASxF,EAAUJ,QACnB6F,EAAUzF,EAAUL,SAAWkF,EAC/Ba,EAAWC,KAAKC,IAAIJ,EAAQ5F,GAC5BiG,EAAYF,KAAKC,IAAIH,EAAS9F,GAC9BmG,EAAQH,KAAKC,IAAIF,EAAW9F,EAAOiG,EAAYlG,GACnD,MAAO,CAAEC,MAAOA,EAAQkG,EAAOnG,OAAQA,EAASmG,KAOpDC,aAAc,SAAUvI,EAAIwC,EAAWgG,EAAKC,EAAQC,GAChD,GAAKA,EAAL,CAGA,IAAIC,EAAO7B,EAAUU,IAAIxH,GAAI4I,KAAK,OAAOC,QACzC,GAAKF,EAAKG,MAAV,CAGA,IAAIC,EAAgBvG,EAAUsG,MAAME,wBAChCtB,EAASqB,EAAc3G,MAEvB6G,EAAUzG,EAAUL,UAAYqG,EAAMC,GACtCS,EAAUP,EAAKvG,QACf+G,EAAWR,EAAKxG,SAChBiH,EAAUT,EAAKU,QACfC,GAAK5B,EAASwB,GAAW,EACzBP,EAAKY,SAASC,MACbC,WAAWL,EAAQM,cAAgB,IACnCD,WAAWL,EAAQO,aAAe,GACnC7C,EAAUU,IAAIG,QAAQiC,aACtBb,EAAcS,KACdK,GAAKZ,EAAUE,GAAY,EAC3BR,EAAKY,SAASf,KACbiB,WAAWL,EAAQU,aAAe,IAClCL,WAAWL,EAAQW,YAAc,GAClCjD,EAAUU,IAAIG,QAAQqC,YACtBxB,EAYJ,MATgB,gBACXc,IAAM,GACP,QACCO,IAAM,GACP,kBANMX,EAAUR,EAAUtG,MAQ1B,KAPM+G,EAAWT,EAAUvG,OAS3B,UAGR8H,gBAAiB,SAAUnF,EAAaC,EAAcC,EAAgBC,EAAiBiF,EAAKC,GAExF,MAAO,yDAA8DrF,EAAc,eAAiBE,EAAiB,aAAeD,EAAe,gBAAkBE,EAAkB,sEAD3KkF,EAAc,UAAYA,EAAc,IAAM,IACiN,SAAYD,EAAM,+DAEjSE,aAAc,SAAUvF,EAAOqF,EAAKG,EAASC,EAAQC,EAAOC,GACxD,IAEIC,EAAY,QAAUJ,EAAU,KAFnBC,EAAS,WAAcA,EAAS,IAAO,IAED,MADvCC,EAAQ,UAAaA,EAAQ,IAAO,IACsB,2CAAgD1F,EAAQ,UAAcqF,EAAM,OAClJQ,EAAY,GACZF,IAEAE,GADmC,iBAAZF,EAAuBG,KAAKC,MAAMJ,GAAWA,GAC9CjM,KAAI,SAAUsM,GAChC,IAAIC,EAAQ,GAKZ,OAJAjP,OAAOkP,KAAKF,GAAQG,SAAQ,SAAUC,GAElCH,GAAS,IAAMG,EAAM,KAAQJ,EAAOI,GAAO,OAExC,WAAaH,EAAQ,iBAGpC,MAAO,GAAKJ,EAAYD,GAG5BS,iBAAkB,SAAUC,GAIxB,IAHA,IAAIC,EAAU,GACVC,EAAQ,GACRnB,EAAM,GACDjO,EAAI,EAAGA,EAAIkP,EAAQ/O,OAAQH,IAAK,CACrC,IAAIqP,EAAOH,EAAQlP,GAAGqC,MAAM,KAEZ,KAAZgN,EAAK,IACLA,EAAKC,OAAO,EAAG,GAEnBF,EAAMG,KAAKF,EAAK,IAChBF,EAAQI,KAAKF,EAAK,IAGtB,IADA,IAAI5D,EAASC,OAAOC,WACXjB,EAAI,EAAGA,EAAIyE,EAAQhP,OAAQuK,IAChC,GAAImB,SAASsD,EAAQzE,GAAI,IAAMe,EAAQ,CACnCwC,EAAMmB,EAAM1E,GACZ,MAGR,OAAOuD,GAEXuB,cAAe,SAAUC,GACrB,QAAKA,MAKAA,EAAIC,UAMgB,IAArBD,EAAIE,eAMZC,qBAAsB,SAAUC,EAASC,EAAUC,EAAgBC,EAAiBC,GAWhF,MAAO,8BATHA,GAAYA,EAASC,QACR,iBAERD,GAAYA,EAASE,MACb,eAGA,gBAEmC,YAAgBJ,EAAiB,0PAAsQC,EAAkB,oIAA2IA,EAAkB,ggBAA8hBF,GAAY,IAAM,6DAAkED,EAAU,wBAE1oCO,qBAAsB,SAAU7J,GAC5B,IAAI8J,EAAW9J,EAAU+J,iBAAiB,sNAK1C,MAJsB,GAAGC,OAAOhQ,KAAK8P,GAAU,SAAUG,GACrD,IAAIpD,EAAQ1B,OAAO+E,iBAAiBD,GACpC,MAAyB,SAAlBpD,EAAMsD,SAA2C,WAArBtD,EAAMuD,eAWjDC,kBAAmB,SAAUC,EAAOpH,EAAYtB,EAA0BuB,GACtE,IAAIoH,EAAkB,GAClBC,EAA0B3G,EAAeU,EAAuBrB,GA6BpE,MA5BA,GAAGsF,QAAQxO,KAAKsQ,GAAO,SAAUG,GAE7B,IADA,IAAIxH,EAAY,GACPxJ,EAAI,EAAGA,EAAIgR,EAAKC,WAAW9Q,OAAQH,IAAK,CAC7C,IAAI+K,EAAOiG,EAAKC,WAAWjR,GAC3B,GAAI+K,EAAKmG,UAAW,CAChB,IAAIC,EAAcvG,EAAcG,EAAKnH,MACjCwN,EAAQ,GACRL,EAAwBM,QAAQF,IAAgB,IAChDC,EAAQD,GAERC,IACA5H,EAAU4H,GAASrG,EAAK5J,QAIpC,IAAImQ,EAAczG,EAAUU,IAAIyF,GAC5BO,EAAMD,EAAY3E,KAAK,OAAOC,QAAQ7B,KAAK,OAC3CyG,EAAQF,EAAYvG,KAAK,SACzB0G,EAAQ/H,EACN4H,EAAYvG,KAAKrB,GACjB4H,EAAY3E,KAAK,OAAOC,QAAQ7B,KAAK,OAC3CvB,EAAUiI,MAAQA,EACdtJ,IAA6BqB,EAAUkI,UACvClI,EAAUkI,QAAUF,GAASD,GAAO,IAExC/H,EAAU+H,IAAMA,GAAOC,GAAS,GAChCV,EAAgBvB,KAAK/F,MAElBsH,GAEXnH,SAAU,WACN,MAAO,4BAA4BgI,KAAKC,UAAUC,YAUtDC,QAAS,SAAU7D,EAAK8D,EAAcnJ,GAClC,IAAKqF,EACD,OAAI8D,EACO,CACHC,OAAO,QAIXjP,QAAQC,MAAM,2DACT4F,EAAQ,GACT,kIAIZ,IAAIsH,EAAUjC,EAAIgE,MAAM,gHACpB9B,EAAQlC,EAAIgE,MAAM,0EAClBC,EAASjE,EAAIgE,MAAM,4EACvB,OAAI/B,EACO,CACHA,QAASA,GAGRC,EACE,CACHA,MAAOA,GAGN+B,EACE,CACHA,OAAQA,QAFX,IAObpO,EAAA,QAAkBoH,G,aC5SlBtL,OAAOqE,eAAeH,EAAS,aAAc,CAAE3C,OAAO,IACtD2C,EAAQyH,IAAMzH,EAAQqO,aAAU,EAyBhC,IAAIA,EAAyB,WACzB,SAASA,EAAQ3J,GASb,OARA/H,KAAK2R,kBAAoB,CACrB,qBACA,2BACA,YACA,cAEJ3R,KAAK+H,SAAW/H,KAAK4R,aAAa7J,GAClC/H,KAAK6R,aAAe7R,KAAK8R,cAClB9R,KA8UX,OA5UA0R,EAAQK,aAAe,WACnB,MAAO,uCAAuCxR,QAAQ,SAAS,SAAUyR,GACrE,IAAInI,EAAqB,GAAhB4B,KAAKwG,SAAiB,EAC/B,OAD2C,KAALD,EAAWnI,EAAS,EAAJA,EAAW,GACxDqI,SAAS,QAG1BR,EAAQ9R,UAAUgS,aAAe,SAAU7J,EAAUoK,GAEjD,YADgB,IAAZA,IAAsBA,EAAUpP,UACZ,iBAAbgF,EACAA,GAEXoK,EAAUA,GAAWpP,SAEV,MADFgF,EAASqK,UAAU,EAAG,GAEpBD,EAAQnP,cAAc+E,GAGtBoK,EAAQtC,iBAAiB9H,KAGxC2J,EAAQ9R,UAAUyS,MAAQ,SAAUC,GAChC,OAAKtS,KAAK+H,eAGmBoB,IAAzBnJ,KAAK+H,SAASrI,OACd,GAAG4O,QAAQxO,KAAKE,KAAK+H,SAAUuK,GAG/BA,EAAKtS,KAAK+H,SAAU,GAEjB/H,MARIA,MAUf0R,EAAQ9R,UAAU2S,oBAAsB,SAAUjP,EAAIkP,EAAa9R,GAE/D,IAAI+R,EAAWD,EAAYjS,QAAQ,cAAc,SAAUjB,EAAGoT,GAC1D,OAAOA,EAAOlI,kBAEgC,IAA9CxK,KAAK2R,kBAAkBf,QAAQ6B,IAC/BnP,EAAGqJ,MAAM8F,EAAS/Q,OAAO,GAAGtB,cAAgBqS,EAAS9Q,MAAM,IAAMjB,EACjE4C,EAAGqJ,MAAM,SAAW8F,GAAY/R,EAChC4C,EAAGqJ,MAAM,MAAQ8F,GAAY/R,EAC7B4C,EAAGqJ,MAAM,KAAO8F,GAAY/R,EAC5B4C,EAAGqJ,MAAM,IAAM8F,GAAY/R,GAG3B4C,EAAGqJ,MAAM8F,GAAY/R,GAG7BgR,EAAQ9R,UAAUkS,YAAc,WAC5B,OAAI9R,KAAK+H,eAAqCoB,IAAzBnJ,KAAK+H,SAASrI,OACxBM,KAAK+H,SAAS,GAGd/H,KAAK+H,UAGpB2J,EAAQ9R,UAAU+S,eAAiB,SAAUC,EAAOC,GAChD,IAAIC,EAAiBD,EAAUjR,MAAM,KACrC,OAAOgR,EACFhR,MAAM,KACNkO,QAAO,SAAUiD,GAAK,OAAOA,KAC7BC,OAAM,SAAUD,GACjB,OAAsC,IAA/BD,EAAelC,QAAQmC,OAGtCrB,EAAQ9R,UAAU0K,KAAO,SAAUA,EAAM5J,GACrC,YAAcyI,IAAVzI,EACKV,KAAK6R,aAGH7R,KAAK6R,aAAaoB,aAAa3I,GAF3B,IAIftK,KAAKqS,OAAM,SAAU/O,GACjBA,EAAG4P,aAAa5I,EAAM5J,MAEnBV,OAEX0R,EAAQ9R,UAAUsM,KAAO,SAAUnE,GAC/B,OAAO+C,EAAI9K,KAAK4R,aAAa7J,EAAU/H,KAAK+H,YAEhD2J,EAAQ9R,UAAUuM,MAAQ,WACtB,OAAInM,KAAK+H,eAAqCoB,IAAzBnJ,KAAK+H,SAASrI,OACxBoL,EAAI9K,KAAK+H,SAAS,IAGlB+C,EAAI9K,KAAK+H,WAGxB2J,EAAQ9R,UAAUuT,GAAK,SAAUhL,GAC7B,OAAO2C,EAAI9K,KAAK+H,SAASI,KAE7BuJ,EAAQ9R,UAAUwT,OAAS,WACvB,OAAOtI,EAAI9K,KAAK+H,SAASsL,gBAE7B3B,EAAQ9R,UAAUwM,IAAM,WACpB,OAAOpM,KAAK8R,eAEhBJ,EAAQ9R,UAAU0T,WAAa,SAAU9C,GACrC,IAAIpC,EAAQoC,EAAW5O,MAAM,KAI7B,OAHA5B,KAAKqS,OAAM,SAAU/O,GACjB8K,EAAME,SAAQ,SAAUhE,GAAQ,OAAOhH,EAAGiQ,gBAAgBjJ,SAEvDtK,MAEX0R,EAAQ9R,UAAU4T,KAAO,SAAUC,GAC/B,IAAKzT,KAAK6R,aACN,OAAO7R,KAEX,IAAI0T,EAAU3Q,SAAS4Q,cAAc,OAKrC,OAJAD,EAAQD,UAAYA,EACpBzT,KAAK6R,aAAa+B,WAAWC,aAAaH,EAAS1T,KAAK6R,cACxD7R,KAAK6R,aAAa+B,WAAWE,YAAY9T,KAAK6R,cAC9C6B,EAAQK,YAAY/T,KAAK6R,cAClB7R,MAEX0R,EAAQ9R,UAAU+F,SAAW,SAAUqO,GAUnC,YATmB,IAAfA,IAAyBA,EAAa,IAC1ChU,KAAKqS,OAAM,SAAU/O,GAEjB0Q,EAAWpS,MAAM,KAAK0M,SAAQ,SAAUmF,GAChCA,GACAnQ,EAAG2Q,UAAUC,IAAIT,SAItBzT,MAEX0R,EAAQ9R,UAAUuU,YAAc,SAAUH,GAStC,OARAhU,KAAKqS,OAAM,SAAU/O,GAEjB0Q,EAAWpS,MAAM,KAAK0M,SAAQ,SAAUmF,GAChCA,GACAnQ,EAAG2Q,UAAUG,OAAOX,SAIzBzT,MAEX0R,EAAQ9R,UAAUyU,SAAW,SAAUZ,GACnC,QAAKzT,KAAK6R,cAGH7R,KAAK6R,aAAaoC,UAAUK,SAASb,IAEhD/B,EAAQ9R,UAAU2U,aAAe,SAAUC,GACvC,QAAKxU,KAAK6R,cAGH7R,KAAK6R,aAAa0C,aAAaC,IAE1C9C,EAAQ9R,UAAU6U,YAAc,SAAUhB,GACtC,OAAKzT,KAAK6R,cAGN7R,KAAKqU,SAASZ,GACdzT,KAAKmU,YAAYV,GAGjBzT,KAAK2F,SAAS8N,GAEXzT,MARIA,MAUf0R,EAAQ9R,UAAU8U,IAAM,SAAUjC,EAAU/R,GACxC,IAAIiU,EAAQ3U,KAIZ,OAHAA,KAAKqS,OAAM,SAAU/O,GACjBqR,EAAMpC,oBAAoBjP,EAAImP,EAAU/R,MAErCV,MAGX0R,EAAQ9R,UAAUgV,GAAK,SAAUC,EAAQC,GACrC,IAAIH,EAAQ3U,KACZ,OAAKA,KAAK+H,UAGV8M,EAAOjT,MAAM,KAAK0M,SAAQ,SAAUsE,GAC3B9I,MAAMiL,QAAQrD,EAAQsD,eAAepC,MACtClB,EAAQsD,eAAepC,GAAS,IAEpClB,EAAQsD,eAAepC,GAAO9D,KAAKgG,GACnCH,EAAM5M,SAASkN,iBAAiBrC,EAAMhR,MAAM,KAAK,GAAIkT,MAElD9U,MATIA,MAYf0R,EAAQ9R,UAAUsV,KAAO,SAAUtC,EAAOkC,GACtC,IAAIH,EAAQ3U,KAKZ,OAJAA,KAAK4U,GAAGhC,GAAO,WACX+B,EAAMQ,IAAIvC,GACVkC,EAASlC,MAEN5S,MAEX0R,EAAQ9R,UAAUuV,IAAM,SAAUvC,GAC9B,IAAI+B,EAAQ3U,KACZ,OAAKA,KAAK+H,UAGV5I,OAAOkP,KAAKqD,EAAQsD,gBAAgB1G,SAAQ,SAAUuE,GAC9C8B,EAAMhC,eAAeC,EAAOC,KAC5BnB,EAAQsD,eAAenC,GAAWvE,SAAQ,SAAUwG,GAChDH,EAAM5M,SAASqN,oBAAoBvC,EAAUjR,MAAM,KAAK,GAAIkT,MAEhEpD,EAAQsD,eAAenC,GAAa,OAGrC7S,MAVIA,MAYf0R,EAAQ9R,UAAUyV,QAAU,SAAUzC,EAAO0C,GACzC,IAAKtV,KAAK6R,aACN,OAAO7R,KAEX,IAAIuV,EAAc,IAAIC,YAAY5C,EAAMhR,MAAM,KAAK,GAAI,CACnD0T,OAAQA,GAAU,OAGtB,OADAtV,KAAK6R,aAAa4D,cAAcF,GACzBvV,MAGX0R,EAAQ9R,UAAU8V,KAAO,SAAUC,GAC/B,IAAIhB,EAAQ3U,KAMZ,OALA4V,MAAMD,GACDE,MAAK,SAAUC,GAAO,OAAOA,EAAIC,UACjCF,MAAK,SAAUG,GAChBrB,EAAM5M,SAASkO,UAAYD,KAExBhW,MAEX0R,EAAQ9R,UAAUoW,KAAO,SAAUA,GAC/B,YAAa7M,IAAT6M,EACKhW,KAAK6R,aAGH7R,KAAK6R,aAAaoE,UAFd,IAIfjW,KAAKqS,OAAM,SAAU/O,GACjBA,EAAG2S,UAAYD,KAEZhW,OAEX0R,EAAQ9R,UAAUsW,OAAS,SAAUF,GASjC,OARAhW,KAAKqS,OAAM,SAAU/O,GACG,iBAAT0S,EACP1S,EAAG6S,mBAAmB,YAAaH,GAGnC1S,EAAGyQ,YAAYiC,MAGhBhW,MAEX0R,EAAQ9R,UAAUwW,QAAU,SAAUJ,GAIlC,OAHAhW,KAAKqS,OAAM,SAAU/O,GACjBA,EAAG6S,mBAAmB,aAAcH,MAEjChW,MAEX0R,EAAQ9R,UAAUwU,OAAS,WAIvB,OAHApU,KAAKqS,OAAM,SAAU/O,GACjBA,EAAGsQ,WAAWE,YAAYxQ,MAEvBtD,MAEX0R,EAAQ9R,UAAUyW,MAAQ,WAItB,OAHArW,KAAKqS,OAAM,SAAU/O,GACjBA,EAAG2S,UAAY,MAEZjW,MAEX0R,EAAQ9R,UAAU0N,UAAY,SAAUA,GACpC,YAAkBnE,IAAdmE,GACAvK,SAASuT,KAAKhJ,UAAYA,EAC1BvK,SAASwT,gBAAgBjJ,UAAYA,EAC9BtN,MAGCiL,OAAOuL,aACXzT,SAASwT,gBAAgBjJ,WACzBvK,SAASuT,KAAKhJ,WACd,GAGZoE,EAAQ9R,UAAUsN,WAAa,SAAUA,GACrC,YAAmB/D,IAAf+D,GACAnK,SAASuT,KAAKpJ,WAAaA,EAC3BnK,SAASwT,gBAAgBrJ,WAAaA,EAC/BlN,MAGCiL,OAAOwL,aACX1T,SAASwT,gBAAgBrJ,YACzBnK,SAASuT,KAAKpJ,YACd,GAGZwE,EAAQ9R,UAAUiN,OAAS,WACvB,IAAK7M,KAAK6R,aACN,MAAO,CACH/E,KAAM,EACNhB,IAAK,GAGb,IAAI4K,EAAO1W,KAAK6R,aAAavF,wBACzBqK,EAAiB7L,EAAI,QAAQ6B,QAAQiK,WAEzC,MAAO,CACH9J,KAAM4J,EAAK5J,KAAOC,WAAW4J,GAAkB3W,KAAKkN,aACpDpB,IAAK4K,EAAK5K,IAAM9L,KAAKsN,cAG7BoE,EAAQ9R,UAAU+M,MAAQ,WACtB,OAAK3M,KAAK6R,aAGF7R,KAAK6R,aAAagF,cACtB5L,OAAO+E,iBAAiBhQ,KAAK6R,cAHtB,IAMfH,EAAQ9R,UAAU8F,MAAQ,WACtB,IAAIiH,EAAQ3M,KAAK2M,QACjB,OAAQ3M,KAAK6R,aAAaiF,YACtB/J,WAAWJ,EAAMK,aACjBD,WAAWJ,EAAMoK,eAGzBrF,EAAQ9R,UAAU6F,OAAS,WACvB,IAAIkH,EAAQ3M,KAAK2M,QACjB,OAAQ3M,KAAK6R,aAAamF,aACtBjK,WAAWJ,EAAMS,YACjBL,WAAWJ,EAAMsK,gBAEzBvF,EAAQsD,eAAiB,GAClBtD,EAxViB,GA2V5B,SAAS5G,EAAI/C,GAET,OApXA,WACI,GAAkC,mBAAvBkD,OAAOuK,YACd,OAAO,EAWXvK,OAAOuK,YAVP,SAAqB5C,EAAOsE,GACxBA,EAASA,GAAU,CACfC,SAAS,EACTC,YAAY,EACZ9B,OAAQ,MAEZ,IAAI+B,EAAMtU,SAASuU,YAAY,eAE/B,OADAD,EAAIE,gBAAgB3E,EAAOsE,EAAOC,QAASD,EAAOE,WAAYF,EAAO5B,QAC9D+B,GAXf,GAgBSG,QAAQ5X,UAAU6X,UACnBD,QAAQ5X,UAAU6X,QACdD,QAAQ5X,UAAU8X,mBACdF,QAAQ5X,UAAU+X,uBAiW3B,IAAIjG,EAAQ3J,GAHvB1E,EAAQqO,QAAUA,EAKlBrO,EAAQyH,IAAMA,G,qBCzXd,IAAI5L,EAAYc,MAAQA,KAAKd,UAAa,WAStC,OARAA,EAAWC,OAAOC,QAAU,SAASC,GACjC,IAAK,IAAIC,EAAGC,EAAI,EAAGC,EAAIC,UAAUC,OAAQH,EAAIC,EAAGD,IAE5C,IAAK,IAAII,KADTL,EAAIG,UAAUF,GACOJ,OAAOS,UAAUC,eAAeC,KAAKR,EAAGK,KACzDN,EAAEM,GAAKL,EAAEK,IAEjB,OAAON,GAEJH,EAASa,MAAMC,KAAMP,YAEhCN,OAAOqE,eAAeH,EAAS,aAAc,CAAE3C,OAAO,IACtD2C,EAAQE,kBAAe,EACvB,IAAIqU,EAAc,EAAQ,MACtBC,EAAgB,EAAQ,MACxBC,EAAa,EAAQ,MACrB1N,EAAY,EAAQ,MAIpB2N,EAAO,EACPxU,EAA8B,WAC9B,SAASA,EAAawM,EAASjP,GAmB3B,GAlBAd,KAAKgY,UAAW,EAChBhY,KAAKmI,MAAQ,EAEbnI,KAAK2C,QAAU,GAEf3C,KAAKiY,YAAa,EAElBjY,KAAKkY,QAAS,EACdlY,KAAKmY,kBAAoB,GAEzBnY,KAAKoY,cAAgB,EACrBpY,KAAKqY,iBAAmB,EACxBrY,KAAKsY,qBAAsB,EAC3BtY,KAAKuY,oBAAqB,EAC1BvY,KAAKwY,uBAAyB,CAC1B1M,IAAK,EACLC,OAAQ,IAEPgE,EACD,OAAO/P,KASX,GAPA+X,IACA/X,KAAK+X,KAAOA,EACZ/X,KAAKsD,GAAKyM,EACV/P,KAAKiM,KAAO7B,EAAUU,IAAIiF,GAC1B/P,KAAKyY,iBAAiB3X,GACtBd,KAAK0Y,eAED1Y,KAAK2Y,SAAS7P,cACcK,IAA5BnJ,KAAK2Y,SAAS5P,YACbe,MAAMiL,QAAQ/U,KAAK2Y,SAAS5P,WAC7B,KAAM,uEAOV,OALA/I,KAAK4Y,aAAe5Y,KAAK6Y,WACzB7Y,KAAK8Y,oBAEL9Y,KAAK2D,OACL3D,KAAK+Y,kBACE/Y,KA6zDX,OA3zDAuD,EAAa3D,UAAU6Y,iBAAmB,SAAU3X,GAGhD,GADAd,KAAK2Y,SAAWzZ,EAASA,EAAS,GAAI2Y,EAAczS,0BAA2BtE,GAC3Ed,KAAK2Y,SAASzP,UACoB,mBAA3BlJ,KAAK2Y,SAASzP,SACnBlJ,KAAK2Y,SAASzP,WACd4O,EAAWzV,QAAQ6G,WAAY,CACjC,IAAIE,EAAiBlK,EAASA,EAAS,GAAIc,KAAK2Y,SAASvP,gBAAiBpJ,KAAK2Y,SAASvP,gBACxFpJ,KAAK2Y,SAAWzZ,EAASA,EAAS,GAAIc,KAAK2Y,UAAWvP,KAG9D7F,EAAa3D,UAAUkZ,kBAAoB,WACnC9Y,KAAK2Y,SAASpR,oBACdvH,KAAK2Y,SAASnR,kBAAmB,GAEhCxH,KAAK2Y,SAAS9R,WACf7G,KAAK2Y,SAAS7R,cAAe,GAGjC9G,KAAKgG,eAAiBhG,KAAK2Y,SAAS3S,eAGhChG,KAAK2Y,SAAS7P,UACd9I,KAAKgG,gBAAiB,GAErBhG,KAAK2Y,SAAS7S,YACf9F,KAAK2Y,SAAS7S,UAAY/C,SAASuT,MAGvCtW,KAAK2Y,SAAS9Q,QAAU4D,KAAKC,IAAI1L,KAAK2Y,SAAS9Q,QAAS7H,KAAK4Y,aAAalZ,SAE9E6D,EAAa3D,UAAU+D,KAAO,WAC1B,IAAIgR,EAAQ3U,KACZA,KAAKgZ,kBAAkBhZ,KAAK4Y,cAC5B5Y,KAAKiZ,iBACLjZ,KAAKiM,KAAKoJ,QAAQuC,EAAYnU,SAASE,KAAM,CACzCuV,SAAUlZ,OAEVA,KAAK2Y,SAASvR,UACdpH,KAAKoH,WAET+R,YAAW,WACPxE,EAAM9L,aACN8L,EAAM/L,cACN+L,EAAMyE,uBACP,IACHpZ,KAAKqZ,QACDrZ,KAAK2Y,SAASlR,YACdzH,KAAKyH,aAEJzH,KAAK2Y,SAAS7P,SACf9I,KAAKsZ,0BAGb/V,EAAa3D,UAAU0Z,uBAAyB,WAkB5C,IAjBA,IAAI3E,EAAQ3U,KACRuZ,EAAU,SAAUpR,GACpB,IAAI4H,EAAUyJ,EAAOpJ,MAAMjI,GACvBsR,EAAWrP,EAAUU,IAAIiF,GAGzB2J,EAAOtP,EAAUsH,QAAQK,eAC7B0H,EACKnP,KAAK,aAAcoP,GACnB9E,GAAG,uBAAyB8E,GAAM,SAAU3G,GAC7CA,EAAE4G,iBACF,IAAIC,EAAmBjF,EAAMgE,SAASxQ,OAASA,EAC/CwM,EAAMkF,YAAYD,EAAkB7J,OAGxCyJ,EAASxZ,KAEJmI,EAAQ,EAAGA,EAAQnI,KAAKoQ,MAAM1Q,OAAQyI,IAC3CoR,EAAQpR,IAShB5E,EAAa3D,UAAU8Y,aAAe,WAClC,IAAI/D,EAAQ3U,KACZA,KAAK2Y,SAAShW,QAAQ2L,SAAQ,SAAUwL,GACpCnF,EAAMhS,QAAQmM,KAAK,IAAIgL,EAAOnF,EAAOvK,EAAUU,UAGvDvH,EAAa3D,UAAUmZ,gBAAkB,WAChC/Y,KAAK2Y,SAASnT,WAGmB,uBAA7BxF,KAAK2Y,SAASnT,YACnBlD,QAAQyX,KAAK,iBAAmB/Z,KAAK2Y,SAASnT,WAAa,gDAH3DlD,QAAQC,MAAM,uCAMtBgB,EAAa3D,UAAUoa,aAAe,SAAU7R,GAC5C,OAAOiC,EAAUU,IAAI9K,KAAKia,eAAe9R,KAE7C5E,EAAa3D,UAAUqa,eAAiB,SAAU9R,GAC9C,MAAO,YAAcnI,KAAK+X,KAAO,IAAM5P,GAE3C5E,EAAa3D,UAAUsa,UAAY,SAAUC,GACzC,OAAOA,EAAK,IAAMna,KAAK+X,MAE3BxU,EAAa3D,UAAUwa,eAAiB,SAAUD,GAC9C,OAAO/P,EAAUU,IAAI,IAAM9K,KAAKka,UAAUC,KAE9C5W,EAAa3D,UAAUya,2BAA6B,WAC5Cra,KAAK4Y,aAAalZ,OAAS,EAC3BM,KAAKsa,MAAM3U,SAAS,kBAGpB3F,KAAKsa,MAAMnG,YAAY,mBAG/B5Q,EAAa3D,UAAUqZ,eAAiB,WACpC,IAAItE,EAAQ3U,KAEZ,KADgBA,KAAKua,YAAcva,KAAKua,WAAWnO,OACnD,CAGA,IAAI9E,EAAW,GACXkT,EAAc,GAEdxa,KAAK2Y,SAASrR,WACdA,EAAW,6BAAkCtH,KAAKka,UAAU,WAAa,iBAAqBla,KAAK2Y,SAAStP,QAAuB,cAAI,8BAAmCrJ,KAAK2Y,SAASzQ,SAAW,yDAA8DlI,KAAKka,UAAU,WAAa,iBAAqBla,KAAK2Y,SAAStP,QAAmB,UAAI,8BAAmCrJ,KAAK2Y,SAAS1Q,SAAW,cAEjX,aAAlCjI,KAAK2Y,SAAShR,kBACd6S,EACI,oEAER,IAAIC,EAAa,GACbza,KAAK2Y,SAAStS,oBAEdoU,GAAc,qBAElB,IAAIhU,EAAiBzG,KAAK2Y,SAASlS,eAC7B,oBAAsBzG,KAAK2Y,SAASlS,eAAiB,IACrD,GACFC,EAAkB1G,KAAK2Y,SAASjS,gBAC9B,qBAAuB1G,KAAK2Y,SAASjS,gBAAkB,IACvD,GACFgU,EAAqB,gBAAkB1a,KAAK2Y,SAAShT,SAAW,KAAO5C,SAASuT,OAAStW,KAAK2Y,SAAS7S,UAAY,YAAc,IACjI6U,EAAY3a,KAAK2Y,SAAS9R,UAAY7G,KAAK2Y,SAAS3R,cAClD,qCAA0ChH,KAAK2Y,SAAStP,QAAsB,aAAI,SAAarJ,KAAKka,UAAU,YAAc,uCAC5H,GACFU,EAAe5a,KAAK2Y,SAAS1R,iBAC3B,qCAA0CjH,KAAK2Y,SAAStP,QAAwB,eAAI,SAAarJ,KAAKka,UAAU,eAAiB,0CACjI,GACFW,EAAW,yBAA4BH,EAAqB,SAAa1a,KAAKka,UAAU,gBAAkB,qCAA4CzT,EAAiB,IAAMC,EAAkB,mDAAwD1G,KAAKka,UAAU,eAAiB,wDAA8Dla,KAAKka,UAAU,YAAc,uDAA2DO,EAAa,iCAAqCza,KAAKka,UAAU,cAAgB,mDAAyDla,KAAKka,UAAU,YAAc,gEAAqE5S,EAAW,oDAAuDtH,KAAKka,UAAU,cAAgB,uDAA4DU,EAAe,yBAA2BD,EAAY,sDAA0F,cAAlC3a,KAAK2Y,SAAShR,gBACh7B6S,EACA,IAAM,8BAAiCxa,KAAKka,UAAU,iBAAmB,kDAAyF,iBAAlCla,KAAK2Y,SAAShR,gBAC9I6S,EACA,IAAM,yEACZpQ,EAAUU,IAAI9K,KAAK2Y,SAAS7S,WAAWoQ,OAAO2E,GAC1C9X,SAASuT,OAAStW,KAAK2Y,SAAS7S,WAChCsE,EAAUU,IAAI9K,KAAK2Y,SAAS7S,WAAW4O,IAAI,WAAY,YAE3D1U,KAAKsa,MAAQta,KAAKoa,eAAe,YACjCpa,KAAK8a,cAAgB9a,KAAKoa,eAAe,iBACzCpa,KAAK+a,UAAY/a,KAAKoa,eAAe,eACrCpa,KAAKua,WAAava,KAAKoa,eAAe,gBACtCpa,KAAKgb,OAAShb,KAAKoa,eAAe,YAClCpa,KAAKib,SAAWjb,KAAKoa,eAAe,cACpCpa,KAAKkb,SAAWlb,KAAKoa,eAAe,cACpCpa,KAAK+a,UAAUrG,IAAI,sBAAuB1U,KAAK2Y,SAAS9S,iBAAmB,MAC3E,IAAIsV,EAAkBnb,KAAK2Y,SAAStT,KAAO,IAC3CrF,KAAKqa,6BACDra,KAAK2Y,SAAS9P,aACdsS,GAAmB,YAEvBnb,KAAKsa,MAAM3U,SAASwV,GACpBnb,KAAKgb,OAAOtG,IAAI,6BAA8B1U,KAAK2Y,SAASrT,QAC5DtF,KAAKgb,OAAOtG,IAAI,sBAAuB1U,KAAK2Y,SAASpT,MAAQ,MACzDvF,KAAK2Y,SAASnQ,UACdxI,KAAKkb,SAAShF,OAAO,UAAalW,KAAKka,UAAU,eAAiB,gDAAwDla,KAAK2Y,SAAStP,QAAkB,SAAI,+CAElKrJ,KAAKyI,UACL2B,EAAUU,IAAIG,QAAQ2J,GAAG,mBAAqB5U,KAAK+X,KAAO,+BAAiC/X,KAAK+X,MAAM,WAClGpD,EAAMyG,qBAEVpb,KAAKqb,WACLrb,KAAKsb,qBACLtb,KAAKuJ,iBACLvJ,KAAKub,gBAEThY,EAAa3D,UAAUwb,gBAAkB,WACrC,GAAIpb,KAAKgY,SAAU,CACf,IACIwD,EADqBxb,KAAK4Y,aAAa5Y,KAAKmI,OACNqT,iBAC1Cxb,KAAKwY,uBAAyBxY,KAAKyb,4BACnC,IAAI1a,EAAKf,KAAKwY,uBAAwBkD,EAAQ3a,EAAG+K,IAAKC,EAAShL,EAAGgL,OAKlE,GAJA/L,KAAK2b,iBAAmB7D,EAAWzV,QAAQqI,QAAQ1K,KAAKoQ,MAAMpQ,KAAKmI,OAAQnI,KAAKsa,MAAOoB,EAAQ3P,EAAQyP,GAAoBxb,KAAK2Y,SAASrS,cACrIkV,GACAxb,KAAK4b,iBAAiB5b,KAAKmI,MAAOnI,KAAK2b,kBAEvC3b,KAAKgG,iBAAmBhG,KAAKsY,oBAAqB,CAClD,IAAIuD,EAAW7b,KAAK8b,kBAAkB9b,KAAK2b,kBAC3C3b,KAAKsa,MACApO,KAAK,6BACLC,QACA7B,KAAK,QAASuR,GAEvB7b,KAAKiM,KAAKoJ,QAAQuC,EAAYnU,SAASI,mBAG/CN,EAAa3D,UAAUgc,iBAAmB,SAAUzT,EAAO6D,GACvD,IAAI+P,EAAe/b,KAAKgc,kBAAkBhQ,GACvBhM,KAAKga,aAAa7R,GACxB+D,KAAK,kBAAkB5B,KAAK,QAASyR,IA4CtDxY,EAAa3D,UAAUkE,aAAe,SAAUsM,EAAOjI,GAOnD,GANInI,KAAKmI,MAAQiI,EAAM1Q,OAAS,IAC5BM,KAAKmI,MAAQiI,EAAM1Q,OAAS,GAEX,IAAjB0Q,EAAM1Q,SACNM,KAAKmI,MAAQ,GAEZiI,EAAM1Q,OAAX,CAIA,IAAIuc,EAAajc,KAAK4Y,aAAazQ,GAAOqF,IAC1CxN,KAAK4Y,aAAexI,EACpBpQ,KAAKkc,iBACLlc,KAAKgb,OAAO3E,QACZrW,KAAKmY,kBAAoB,GACzB,IAAIgE,EAAS,EAEbnc,KAAK4Y,aAAawD,MAAK,SAAUC,EAAaC,GAC1C,OAAID,EAAY7O,MAAQyO,IACpBE,EAASG,GACF,MAIftc,KAAKmY,kBAAoBnY,KAAKuc,mBAAmBJ,GAAS,GAC1Dnc,KAAKwc,YAAYL,GAAQ,GACzBnc,KAAKga,aAAamC,GAAQxW,SAAS,cACnC3F,KAAKmI,MAAQgU,EACbnc,KAAKyc,qBAAqBN,GAC1Bnc,KAAKiM,KAAKoJ,QAAQuC,EAAYnU,SAASK,mBAtBnC9D,KAAKsJ,gBAyBb/F,EAAa3D,UAAUiZ,SAAW,WAG9B,GADA7Y,KAAKoQ,MAAQ,GACRpQ,KAAK2Y,SAAS7P,QA0Bf,OAAO9I,KAAK2Y,SAAS5P,WAAa,GAzBlC,GAA+B,SAA3B/I,KAAK2Y,SAAS5Q,SACd/H,KAAKoQ,MAAMtB,KAAK9O,KAAKsD,SAEpB,GAAItD,KAAK2Y,SAAS5Q,SACnB,GAAsC,iBAA3B/H,KAAK2Y,SAAS5Q,SACrB,GAAI/H,KAAK2Y,SAAS3Q,aAAc,CAC5B,IAAIA,EAAeoC,EAAUU,IAAI9K,KAAK2Y,SAAS3Q,cAC/ChI,KAAKoQ,MAAQpI,EACRkE,KAAKlM,KAAK2Y,SAAS5Q,UACnBqE,WAGLpM,KAAKoQ,MAAQpQ,KAAKsD,GAAGuM,iBAAiB7P,KAAK2Y,SAAS5Q,eAIxD/H,KAAKoQ,MAAQpQ,KAAK2Y,SAAS5Q,cAI/B/H,KAAKoQ,MAAQpQ,KAAKsD,GAAGoZ,SAEzB,OAAO5E,EAAWzV,QAAQ8N,kBAAkBnQ,KAAKoQ,MAAOpQ,KAAK2Y,SAAS3P,WAAYhJ,KAAK2Y,SAASjR,yBAA0B1H,KAAK2Y,SAAS1P,eAMhJ1F,EAAa3D,UAAU+c,oBAAsB,WACzC,OAAQ3c,KAAK2Y,SAAS/R,eAClB7D,SAASuT,OAAStW,KAAK2Y,SAAS7S,WAExCvC,EAAa3D,UAAUgH,cAAgB,WACnC,GAAK5G,KAAK2c,sBAAV,CAGA3c,KAAKqY,iBAAmBtL,WAAW3C,EAAUU,IAAI,QAAQ6B,QAAQoK,cACjE,IAAI6F,EAAW7Z,SAASwT,gBAAgBjK,wBACpCuQ,EAAiB5R,OAAOC,WAAa0R,EAASlX,MAClD0E,EAAUU,IAAI/H,SAASuT,MAAM5B,IAAI,gBAAiBmI,EAAiB7c,KAAKqY,iBAAmB,MAC3FjO,EAAUU,IAAI/H,SAASuT,MAAM3Q,SAAS,qBAE1CpC,EAAa3D,UAAUkd,eAAiB,WAC/B9c,KAAK2c,wBAGVvS,EAAUU,IAAI/H,SAASuT,MAAM5B,IAAI,gBAAiB1U,KAAKqY,iBAAmB,MAC1EjO,EAAUU,IAAI/H,SAASuT,MAAMnC,YAAY,qBA8B7C5Q,EAAa3D,UAAUia,YAAc,SAAU1R,EAAO4H,GAClD,IAAI4E,EAAQ3U,KAGZ,QAFc,IAAVmI,IAAoBA,EAAQnI,KAAK2Y,SAASxQ,QAE1CnI,KAAKgY,SAAT,CAEAhY,KAAKgY,UAAW,EAChBhY,KAAKsa,MAAMnG,YAAY,iBACvBnU,KAAK4G,gBAEL5G,KAAKua,WAAW5U,SAAS,WACzB,IAAIoX,EAAyB/c,KAAKgd,0BAA0B7U,EAAOA,GACnEnI,KAAKmY,kBAAoB4E,EACzB,IAAI3M,EAAQ,GACZ2M,EAAuBzO,SAAQ,SAAUiC,GACrCH,EAAQA,EAAS,YAAeG,EAAO,8BAE3CvQ,KAAKgb,OAAO9E,OAAO9F,GACnBpQ,KAAKid,QAAQ9U,GACb,IAAI/G,EAAY,GAChBpB,KAAKwY,uBAAyBxY,KAAKyb,4BACnC,IAAI1a,EAAKf,KAAKwY,uBAAwB1M,EAAM/K,EAAG+K,IAAKC,EAAShL,EAAGgL,OAC3D/L,KAAK2Y,SAAStS,mBACfrG,KAAKkd,0BAA0BpR,EAAKC,GAExC,IAAIyP,EAAmBxb,KAAK4Y,aAAazQ,GAAOqT,iBAC5Cxb,KAAKgG,gBAAkB+J,IACvB/P,KAAK2b,iBAAmB7D,EAAWzV,QAAQqI,QAAQqF,EAAS/P,KAAKsa,MAAOxO,EAAMC,EAAQyP,GAAoBxb,KAAK2Y,SAASrS,cACxHlF,EAAY0W,EAAWzV,QAAQwJ,aAAakE,EAAS/P,KAAKsa,MAAOxO,EAAKC,EAAQ/L,KAAK2b,mBAElF3b,KAAKgG,gBAAmB5E,IACzBpB,KAAKsa,MAAM3U,SAAS3F,KAAK2Y,SAAS/S,YAClC5F,KAAKga,aAAa7R,GAAOgM,YAAY,gBAEzC,IAAIgJ,EAAUnd,KAAK2Y,SAAS3S,eACtB,IACAhG,KAAK2Y,SAAS9S,iBACpBsT,YAAW,WACPxE,EAAM2F,MAAM3U,SAAS,wBACtBwX,GACHnd,KAAKmI,MAAQA,EACbnI,KAAKiM,KAAKoJ,QAAQuC,EAAYnU,SAASO,YAEvChE,KAAKga,aAAa7R,GAAOxC,SAAS,cAClC3F,KAAKiY,YAAa,EAElBjY,KAAKoY,cAAgBhO,EAAUU,IAAIG,QAAQqC,YAC3C6L,YAAW,WAGP,GAAIxE,EAAM3O,gBAAkB5E,EAAW,CACnC,IAAIgc,EAAiBzI,EAAMqF,aAAa7R,GACxCiV,EAAe1I,IAAI,YAAatT,GAChC+X,YAAW,WACPiE,EACKzX,SAAS,2CACT+O,IAAI,sBAAuBC,EAAMgE,SAAS5S,uBAAyB,MACxE4O,EAAM2F,MAAM3U,SAAS,yBAEzBwT,YAAW,WACPiE,EAAe1I,IAAI,YAAa,0BACjC,KAEPyE,YAAW,WACPxE,EAAMoG,UAAUpV,SAAS,MACzBgP,EAAM4F,WAAW5U,SAAS,gBAC3B,IACHwT,YAAW,WACHxE,EAAMgE,SAAStR,WACftE,SAASuT,OAAS3B,EAAMgE,SAAS7S,WACjC6O,EAAMtN,cAEXsN,EAAMgE,SAAS9S,iBAAmB,IAEhC8O,EAAM3O,gBAAmB5E,GAC1B+X,YAAW,WACPxE,EAAM2F,MAAM3U,SAAS,gBACtBgP,EAAMgE,SAAS9S,kBAGtB8O,EAAM0I,MAAMlV,GAAO,GAAO,GAAO,GACjCwM,EAAM1I,KAAKoJ,QAAQuC,EAAYnU,SAASQ,cAExClB,SAASuT,OAAStW,KAAK2Y,SAAS7S,WAChCsE,EAAUU,IAAI,QAAQnF,SAAS,WASvCpC,EAAa3D,UAAU6b,0BAA4B,WAC/C,GAAIzb,KAAK2Y,SAAStS,kBACd,MAAO,CACHyF,IAAK,EACLC,OAAQ,GAGhB,IAAID,EAAM9L,KAAKkb,SAAS9O,MAAM4K,cAAgB,EAC1C/F,EAAUjR,KAAKsa,MAAMpO,KAAK,+BAA+BE,MACzDkR,EAAgBtd,KAAK2Y,SAASnS,sBAC7ByK,GAAWA,EAAQ+F,cACpB,EACAuG,EAAiBvd,KAAKsa,MAAMpO,KAAK,mBAAmBE,MAGxD,MAAO,CACHN,IAAKA,EACLC,QAJcwR,EAAiBA,EAAevG,aAAe,GACtCsG,IAM/B/Z,EAAa3D,UAAUsd,0BAA4B,SAAUpR,EAAKC,QAClD,IAARD,IAAkBA,EAAM,QACb,IAAXC,IAAqBA,EAAS,GAClC/L,KAAKib,SAASvG,IAAI,MAAO5I,EAAM,MAAM4I,IAAI,SAAU3I,EAAS,OAEhExI,EAAa3D,UAAUyb,SAAW,WAC9B,IAAI1G,EAAQ3U,KAEZmZ,YAAW,WACPxE,EAAM2F,MAAMnG,YAAY,iBACpBQ,EAAMgE,SAAS1S,cAAgB,IAC/B0O,EAAM2F,MAAM1F,GAAG,uCAAuC,WAClDD,EAAM2F,MAAMnG,YAAY,iBACxBqJ,aAAa7I,EAAM8I,gBAEnB9I,EAAM8I,eAAiBtE,YAAW,WAC9BxE,EAAM2F,MAAM3U,SAAS,mBACtBgP,EAAMgE,SAAS1S,kBAEtB0O,EAAM2F,MAAMjF,QAAQ,mBAEzBrV,KAAK2Y,SAASzS,gBAErB3C,EAAa3D,UAAU8d,gBAAkB,SAAUC,GAC/C,GAAI3d,KAAK2Y,SAASvS,qBACd,IACIwX,YAAY,CACRhO,SAAU,CAAC+N,EAAKvR,SAGxB,MAAO2G,GACHzQ,QAAQyX,KAAK,wJAQzBxW,EAAa3D,UAAU6I,QAAU,WAC7B,GAAIzI,KAAK2Y,SAASlQ,QAAS,CACvB,IAAIoV,EAAc,wFAAiG7d,KAAKka,UAAU,sBAAwB,iCAAsCla,KAAKmI,MAAQ,GAAK,yCAA4CnI,KAAKka,UAAU,kBAAoB,4BAAiCla,KAAK4Y,aAAalZ,OAAS,iBAC7VM,KAAKsa,MAAMpO,KAAKlM,KAAK2Y,SAASjQ,iBAAiBwN,OAAO2H,KAO9Dta,EAAa3D,UAAUqd,QAAU,SAAU9U,GACvC,IAAI8I,EACA6M,EAOJ,GANI9d,KAAK4Y,aAAazQ,GAAO2V,WACzBA,EAAa9d,KAAK4Y,aAAazQ,GAAO2V,WAGtC7M,EAAUjR,KAAK4Y,aAAazQ,GAAO8I,SAElC6M,EACD,GAAI7M,EAAS,CAGT,IAAI8M,EAAK9M,EAAQmB,UAAU,EAAG,GACnB,MAAP2L,GAAqB,MAAPA,IAGV9M,EAFAjR,KAAK2Y,SAAS/Q,0BACb5H,KAAK2Y,SAAS7P,QACLsB,EAAUU,IAAI9K,KAAKoQ,OACxB+C,GAAGhL,GACH+D,KAAK+E,GACL9E,QACA6J,OAGK5L,EAAUU,IAAImG,GAAS9E,QAAQ6J,aAKjD/E,EAAU,GAGlB,GAAsC,aAAlCjR,KAAK2Y,SAAShR,gBACVmW,EACA9d,KAAKsa,MAAMpO,KAAK,gBAAgBwJ,KAAKoI,GAGrC9d,KAAKsa,MAAMpO,KAAK,gBAAgB8J,KAAK/E,OAGxC,CACD,IAAI+M,EAAe5T,EAAUU,IAAI9K,KAAKia,eAAe9R,IACjD2V,EACAE,EAAatI,KAAKoI,GAGlBE,EAAa9H,OAAO,4BAAgCjF,EAAU,UAIlE,MAAOA,IACS,KAAZA,EACAjR,KAAKsa,MACApO,KAAKlM,KAAK2Y,SAAShR,iBACnBhC,SAAS,iBAGd3F,KAAKsa,MACApO,KAAKlM,KAAK2Y,SAAShR,iBACnBwM,YAAY,kBAGzBnU,KAAKiM,KAAKoJ,QAAQuC,EAAYnU,SAASM,mBAAoB,CACvDoE,MAAOA,KAQf5E,EAAa3D,UAAUiI,QAAU,SAAUM,GACvC,IAAK,IAAI5I,EAAI,EAAGA,GAAKS,KAAK2Y,SAAS9Q,WAC3BtI,GAAKS,KAAK4Y,aAAalZ,OAASyI,GADI5I,IAIxCS,KAAKwc,YAAYrU,EAAQ5I,GAAG,GAEhC,IAAK,IAAI0K,EAAI,EAAGA,GAAKjK,KAAK2Y,SAAS9Q,WAC3BM,EAAQ8B,EAAI,GADwBA,IAIxCjK,KAAKwc,YAAYrU,EAAQ8B,GAAG,IAGpC1G,EAAa3D,UAAUkc,kBAAoB,SAAU9P,GACjD,OAAKA,EAEE,SAAWA,EAAUtG,MAAQ,sCAAwCsG,EAAUtG,MAAQ,EAAI,qCAAuCsG,EAAUvG,OAAS,EAAI,+BAAiCuG,EAAUvG,OAAS,KADzM,IAGflC,EAAa3D,UAAUoc,kBAAoB,SAAUhQ,GACjD,OAAKA,EAEE,SAAWA,EAAUtG,MAAQ,+BAAiCsG,EAAUvG,OAAS,KAD7E,IAGflC,EAAa3D,UAAUqe,qBAAuB,SAAUC,EAAe/V,EAAO2I,GAC1E,IAAIqN,EAIJ,GAHKne,KAAK2Y,SAAS7P,UACfqV,EAAe/T,EAAUU,IAAI9K,KAAKoQ,OAAO+C,GAAGhL,IAE5CgW,EAAc,CACd,IAAIC,OAAe,EAOnB,KAFIA,EAJCpe,KAAK2Y,SAAS1P,aAIAkV,EAAa7T,KAAKtK,KAAK2Y,SAAS1P,cAHhCkV,EAAajS,KAAK,OAAOC,QAAQ7B,KAAK,QAMrD,MAAO,GACX,IACI+T,EAAkB,QAAUvN,EAAM,WADvB9Q,KAAK8b,kBAAkB9b,KAAK2b,kBACoB,+BAAqCyC,EAAe,OAGnH,OAFAF,EAAcvY,SAAS,kBACvB3F,KAAKsa,MAAM3U,SAAS,0BACb0Y,EAEX,MAAO,IAEX9a,EAAa3D,UAAU0e,aAAe,SAAU9Q,EAAK0Q,EAAe/V,GAChE,IAAIoW,EAAqBve,KAAK4Y,aAAazQ,GACvC2I,EAAMyN,EAAmBzN,IAAKlD,EAAS2Q,EAAmB3Q,OAAQC,EAAQ0Q,EAAmB1Q,MAAOC,EAAUyQ,EAAmBzQ,QAIjIH,EAAUmD,EAAM,QAAUA,EAAM,IAAM,GAOtC/C,EAAY,kCANZ/N,KAAKwe,gCACQxe,KAAKie,qBAAqBC,EAAe/V,EAAOwF,GAGhDmK,EAAWzV,QAAQqL,aAAavF,EAAOqF,EAAKG,EAASC,EAAQC,EAAOC,IAEnB,aAClEoQ,EAAc9H,QAAQrI,IAE1BxK,EAAa3D,UAAU6e,kBAAoB,SAAUC,EAAQC,EAA2BC,EAAQC,GAC5F,IAAIC,EAAcJ,EAAOxS,KAAK,cAAcC,QACxC2L,EAAWzV,QAAQ0M,cAAc+P,EAAY1S,QAC7CuS,EACAC,KAGAE,EAAYlK,GAAG,oBAAoB,WAC/BgK,GAAUA,OAEdE,EAAYlK,GAAG,YAAY,WACvBiK,GAAWA,SAYvBtb,EAAa3D,UAAUmf,eAAiB,SAAUf,EAAc7V,EAAO6W,EAAOzZ,EAAO0Z,EAAcN,GAC/F,IAAIhK,EAAQ3U,KACZA,KAAKye,kBAAkBT,EAAcW,GAA2B,WAC5DhK,EAAMuK,qBAAqBlB,EAAc7V,EAAO6W,EAAOzZ,EAAO0Z,MAC/D,WACCjB,EAAarY,SAAS,4BACtBqY,EAAahI,KAAK,2EAG1BzS,EAAa3D,UAAUsf,qBAAuB,SAAUhB,EAAe/V,EAAO6W,EAAOzZ,EAAO0Z,GACxF,IAAItK,EAAQ3U,KACRue,EAAqBve,KAAK4Y,aAAazQ,GAGvCgX,EAASF,GACiC,UAA1Cjf,KAAKof,aAAab,KACjBA,EAAmBc,OAClB9Z,EACA,EACN4T,YAAW,WACP+E,EAAcvY,SAAS,4BACvBgP,EAAM1I,KAAKoJ,QAAQuC,EAAYnU,SAASS,cAAe,CACnDiE,MAAOA,EACP6W,MAAOA,GAAS,EAChBC,aAAcA,MAEnBE,IAEP5b,EAAa3D,UAAU4e,8BAAgC,WACnD,QAAWxe,KAAKiY,aACZjY,KAAKgG,iBACLhG,KAAK2b,mBAGbpY,EAAa3D,UAAUoZ,kBAAoB,SAAU5I,GACjD,IAAIuE,EAAQ3U,KACZoQ,EAAM9B,SAAQ,SAAUyB,EAAS5H,GAC7B4H,EAAQyL,iBAAmB1D,EAAWzV,QAAQgP,QAAQtB,EAAQvC,MAAOuC,EAAQuP,MAAOnX,GAChF4H,EAAQyL,kBACR7G,EAAMgE,SAASpS,oBACdwJ,EAAQsP,QACTtP,EAAQyL,iBAAiB/L,UACzBM,EAAQsP,OAAS,wBAA0BtP,EAAQyL,iBAAiB/L,QAAQ,GAAK,0BAU7FlM,EAAa3D,UAAU4c,YAAc,SAAUrU,EAAOoX,GAClD,IAAI5K,EAAQ3U,KACRue,EAAqBve,KAAK4Y,aAAazQ,GACvC+V,EAAgB9T,EAAUU,IAAI9K,KAAKia,eAAe9R,IAClDkX,EAASd,EAAmBc,OAAQzR,EAAS2Q,EAAmB3Q,OAAQC,EAAQ0Q,EAAmB1Q,MAAOC,EAAUyQ,EAAmBzQ,QACvIN,EAAM+Q,EAAmB/Q,IACzB8R,EAAQf,EAAmBe,MAC3BE,EAAcF,GAA0B,iBAAVA,EAAqBrR,KAAKC,MAAMoR,GAASA,EAC3E,GAAIf,EAAmBkB,WAAY,CAC/B,IAAIC,EAAYnB,EAAmBkB,WAAW7d,MAAM,KACpD4L,EAAMsK,EAAWzV,QAAQmM,iBAAiBkR,IAAclS,EAE5D,IAAImS,EAAYpB,EAAmB/C,iBAC/BO,EAAe,GACf6D,IAAWrB,EAAmBqB,OAC9BX,GAAgBjf,KAAKiY,WAErB+G,EAAQ,EASZ,GARIC,IAEID,EADAhf,KAAKgG,gBAAkBhG,KAAK2b,iBACpB3b,KAAK2Y,SAAS5S,uBAAyB,GAGvC/F,KAAK2Y,SAAS9S,iBAAmB,KAG5CqY,EAAc7J,SAAS,aAAc,CACtC,GAAIsL,EAAW,CACX,IAAI5e,EAAKf,KAAKwY,uBAAwBqH,EAAQ9e,EAAG+K,IAAKC,EAAShL,EAAGgL,OAC9D+T,EAAYhI,EAAWzV,QAAQqI,QAAQ1K,KAAKoQ,MAAMjI,GAAQnI,KAAKsa,MAAOuF,EAAQ9T,EAAQ4T,GAAa3f,KAAK2Y,SAASrS,cACrHyV,EAAe/b,KAAKgc,kBAAkB8D,GAE1C,GAAIF,EAAQ,CACR,IAAIG,EAASjI,EAAWzV,QAAQkL,gBAAgBvN,KAAK2Y,SAASvQ,YAAapI,KAAK2Y,SAAStQ,aAAcrI,KAAK2Y,SAASrQ,eAAgBtI,KAAK2Y,SAASpQ,gBAAiBiF,EAAK+Q,EAAmB9Q,aAC5LyQ,EAAc9H,QAAQ2J,QAErB,GAAIV,EAAQ,CACb,IAAIhQ,EAAW,GACS4P,GACpBjf,KAAKgG,gBACLhG,KAAK2b,mBAELtM,EAAWrP,KAAKie,qBAAqBC,EAAe/V,EAAO,KAE3D4X,EAASjI,EAAWzV,QAAQ8M,qBAAqBkQ,EAAQhQ,GAAY,GAAI0M,EAAc/b,KAAK2Y,SAAStP,QAAmB,UAAGsW,GAC/HzB,EAAc9H,QAAQ2J,QAErB,GAAIJ,EAAW,CACZI,EAAS,sCAA2ChE,EAAe,WACvEmC,EAAc9H,QAAQ2J,QAItB,GADA/f,KAAKse,aAAa9Q,EAAK0Q,EAAe/V,GAClCyF,GAAUE,EAAS,CACnB,IAAI6P,EAAOO,EAAchS,KAAK,cAC9BlM,KAAK0d,gBAAgBC,IAGzB0B,GAAUM,IACV3f,KAAKiM,KAAKoJ,QAAQuC,EAAYnU,SAASG,SAAU,CAC7CuE,MAAOA,EACPqF,IAAKA,EACLwS,WAAYR,EACZS,YAAaZ,IAGrBrf,KAAKiM,KAAKoJ,QAAQuC,EAAYnU,SAASC,iBAAkB,CAAEyE,MAAOA,IAC9DnI,KAAKiY,YAC6B,aAAlCjY,KAAK2Y,SAAShR,iBACd3H,KAAKid,QAAQ9U,GAIrB,IAAIgX,EAAS,EAGTH,IAAU5U,EAAUU,IAAI/H,SAASuT,MAAMjC,SAAS,kBAChD8K,EAASH,GAGThf,KAAKwe,kCACLrF,YAAW,WACP+E,EACK/J,YAAY,2CACZb,WAAW,WACjBtT,KAAK2Y,SAAS5S,uBAAyB,KACrCmY,EAAc7J,SAAS,cACxB8E,YAAW,WACP,GAA+C,UAA3CxE,EAAMyK,aAAab,GAAiC,CACpD,IAAIzN,EAAMyN,EAAmBzN,IACzBnD,EAAUmD,EAAM,QAAUA,EAAM,IAAM,GAI1C,GAHAoN,EACKhS,KAAK,gBACLgK,OAAO4B,EAAWzV,QAAQqL,aAAavF,EAAOqF,EAAKG,EAASC,EAAQC,EAAO0Q,EAAmBzQ,UAC/FF,GAAUE,EAAS,CACnB,IAAI6P,EAAOO,EAAchS,KAAK,cAC9ByI,EAAM+I,gBAAgBC,KAGiB,UAA3ChJ,EAAMyK,aAAab,IACyB,UAA3C5J,EAAMyK,aAAab,IAChBc,KACJ1K,EAAMoK,eAAeb,EAAe/V,EAAO6W,EAAOG,GAAQ,GAAM,GAEhExK,EAAM8J,kBAAkBP,KAAkByB,IAAaA,EAAUpO,OAAU8N,IAAS,WAChF1K,EAAMuL,4BAA4B/X,EAAO+V,EAAeiB,MACzD,WACCxK,EAAMuL,4BAA4B/X,EAAO+V,EAAeiB,SAGjEnf,KAAK2Y,SAAS5S,uBAAyB,MAIlDmY,EAAcvY,SAAS,aAClB3F,KAAKwe,kCACqC,UAA1Cxe,KAAKof,aAAab,IAAoCc,IACvDrf,KAAK+e,eAAeb,EAAe/V,EAAO6W,EAAOG,EAAQF,KAAiBU,IAAaA,EAAUpO,OAAU8N,IAGzGrf,KAAKgG,gBAAmBhG,KAAK2b,mBAC/BuC,EAAc7J,SAAS,iBACtBrU,KAAKiY,YACNkB,YAAW,WACP+E,EAAcvY,SAAS,iBACxB3F,KAAK2Y,SAAS9S,kBAIrB7F,KAAKiY,YAAa,GACN,IAARsH,IACKrB,EAAc7J,SAAS,gBASxBrU,KAAK6H,QAAQM,GARb+V,EACKhS,KAAK,cACLC,QACAyI,GAAG,oBAAoB,WACxBD,EAAM9M,QAAQM,QAe9B5E,EAAa3D,UAAUsgB,4BAA8B,SAAU/X,EAAO+V,EAAe3Y,GACjF,IAAIoP,EAAQ3U,KACZmZ,YAAW,WACP+E,EAAchS,KAAK,iBAAiBkI,SACpC8J,EAAc/J,YAAY,kBAC1BQ,EAAM2F,MAAMnG,YAAY,0BACxBQ,EAAM2D,qBAAsB,EAC5B3D,EAAM9M,QAAQM,KACf5C,EAAQ,MAEfhC,EAAa3D,UAAUod,0BAA4B,SAAU7U,EAAOgY,EAAWC,GAC3E,IAAIzL,EAAQ3U,UACU,IAAlBogB,IAA4BA,EAAgB,GAChD,IAAIrD,EAAyB,GAEzBsD,EAAwB5U,KAAK6U,IAAIF,EAAe,GACpDC,EAAwB5U,KAAKC,IAAI2U,EAAuBrgB,KAAK4Y,aAAalZ,QAC1E,IAAI6gB,EAAgB,WAAavgB,KAAK+X,KAAO,IAAMoI,EACnD,GAAIngB,KAAK4Y,aAAalZ,QAAU,EAI5B,OAHAM,KAAK4Y,aAAatK,SAAQ,SAAUkS,EAAUrY,GAC1C4U,EAAuBjO,KAAK,WAAa6F,EAAMoD,KAAO,IAAM5P,MAEzD4U,EAEX,GAAI5U,GAASnI,KAAK4Y,aAAalZ,OAAS,GAAK,EAAG,CAC5C,IAAK,IAAI+gB,EAAMtY,EAAOsY,EAAMtY,EAAQkY,EAAwB,GAAKI,GAAO,EAAGA,IACvE1D,EAAuBjO,KAAK,WAAa9O,KAAK+X,KAAO,IAAM0I,GAE/D,IAAIC,EAAwB3D,EAAuBrd,OACnD,IAAS+gB,EAAM,EAAGA,EAAMJ,EAAwBK,EAAuBD,IACnE1D,EAAuBjO,KAAK,WAAa9O,KAAK+X,KAAO,KAAO5P,EAAQsY,EAAM,QAG7E,CACD,IAASA,EAAMtY,EAAOsY,GAAOzgB,KAAK4Y,aAAalZ,OAAS,GACpD+gB,EAAMtY,EAAQkY,EAAwB,EAAGI,IACzC1D,EAAuBjO,KAAK,WAAa9O,KAAK+X,KAAO,IAAM0I,GAG/D,IADIC,EAAwB3D,EAAuBrd,OAC1C+gB,EAAM,EAAGA,EAAMJ,EAAwBK,EAAuBD,IACnE1D,EAAuBjO,KAAK,WAAa9O,KAAK+X,KAAO,KAAO5P,EAAQsY,EAAM,IAclF,OAXIzgB,KAAK2Y,SAASzR,OACViB,IAAUnI,KAAK4Y,aAAalZ,OAAS,EACrCqd,EAAuBjO,KAAK,WAAa9O,KAAK+X,KAAlB,MAEb,IAAV5P,GACL4U,EAAuBjO,KAAK,WAAa9O,KAAK+X,KAAO,KAAO/X,KAAK4Y,aAAalZ,OAAS,MAGxC,IAAnDqd,EAAuBnM,QAAQ2P,IAC/BxD,EAAuBjO,KAAK,WAAa9O,KAAK+X,KAAO,IAAMoI,GAExDpD,GAEXxZ,EAAa3D,UAAU2c,mBAAqB,SAAUpU,EAAOgY,GACzD,IAAIxL,EAAQ3U,KACR+c,EAAyB/c,KAAKgd,0BAA0B7U,EAAOgY,EAAWngB,KAAK2Y,SAAS7Q,yBAW5F,OAVAiV,EAAuBzO,SAAQ,SAAUiC,IACU,IAA3CoE,EAAMwD,kBAAkBvH,QAAQL,IAChCoE,EAAMqG,OAAO9E,OAAO,YAAe3F,EAAO,+BAGlDvQ,KAAKmY,kBAAkB7J,SAAQ,SAAUiC,IACS,IAA1CwM,EAAuBnM,QAAQL,IAC/BnG,EAAUU,IAAI,IAAMyF,GAAM6D,YAG3B2I,GAKXxZ,EAAa3D,UAAU+gB,sBAAwB,WAC3C,IAAIR,EAAY,EAChB,IACI,IAAIS,EAAgB5gB,KAAKsa,MACpBpO,KAAK,eACLC,QACA7B,KAAK,MACV6V,EAAY/U,SAASwV,EAAchf,MAAM,KAAK,KAAO,EAEzD,MAAOW,GACH4d,EAAY,EAEhB,OAAOA,GAEX5c,EAAa3D,UAAUihB,iBAAmB,SAAU1Y,GAChD,GAAInI,KAAK2Y,SAASnQ,SAAU,CACxB,IAAI+V,EAAqBve,KAAK4Y,aAAazQ,GAG3C,IAFyD,IAAnCoW,EAAmBuC,aACF,UAAnCvC,EAAmBuC,YAEnB9gB,KAAKsa,MAAM3U,SAAS,wBAEnB,CACD,IAAIob,EAAY/gB,KAAKoa,eAAe,eACpCpa,KAAKsa,MAAMnG,YAAY,oBACvB4M,EAAUzW,KAAK,OAAQiU,EAAmBuC,aACtCvC,EAAmB/Q,KACnB+Q,EAAmB/V,UACnBuY,EAAUzW,KAAK,WAAYiU,EAAmB/V,aAK9DjF,EAAa3D,UAAUohB,mBAAqB,SAAUC,EAAWC,EAAkBC,GAC/E,IAAIxM,EAAQ3U,KACRA,KAAKiY,YACLkJ,EAAkBxb,SAAS,qBAE/BwT,YAAW,WAEPxE,EAAM2F,MAAM3U,SAAS,eACrBgP,EAAM2F,MACDpO,KAAK,YACLiI,YAAY,+BACC,SAAd8M,GAEAC,EAAiBvb,SAAS,iBAC1Bwb,EAAkBxb,SAAS,mBAI3Bub,EAAiBvb,SAAS,iBAC1Bwb,EAAkBxb,SAAS,kBAG/BwT,YAAW,WACPxE,EAAM2F,MAAMpO,KAAK,YAAYiI,YAAY,cACzC+M,EAAiBvb,SAAS,cAE1BgP,EAAM2F,MAAMnG,YAAY,iBACzB,MACJnU,KAAKiY,WAAajY,KAAK2Y,SAASxS,WAAa,IAepD5C,EAAa3D,UAAUyd,MAAQ,SAAUlV,EAAOiZ,EAAWC,EAAWJ,GAClE,IAAItM,EAAQ3U,KACRmgB,EAAYngB,KAAK2gB,wBAGrB,GAFA3gB,KAAKmY,kBAAoBnY,KAAKuc,mBAAmBpU,EAAOgY,IAEpDngB,KAAKiY,YAAckI,IAAchY,EAArC,CAGA,IAAImZ,EAAuBthB,KAAK4Y,aAAalZ,OAC7C,IAAKM,KAAKkY,OAAQ,CACVlY,KAAK2Y,SAASlQ,SACdzI,KAAKyc,qBAAqBtU,GAE9B,IAAI+Y,EAAmBlhB,KAAKga,aAAa7R,GACrCoZ,EAAsBvhB,KAAKga,aAAamG,GACxC5B,EAAqBve,KAAK4Y,aAAazQ,GACvCwX,EAAYpB,EAAmB/C,iBAGnC,GAFAxb,KAAKsa,MAAMhQ,KAAK,qBAAsBtK,KAAKof,aAAab,IACxDve,KAAK6gB,iBAAiB1Y,GAClBwX,EAAW,CACX,IAAI5e,EAAKf,KAAKwY,uBAAwBgJ,EAAQzgB,EAAG+K,IAAKC,EAAShL,EAAGgL,OAC9D+T,EAAYhI,EAAWzV,QAAQqI,QAAQ1K,KAAKoQ,MAAMjI,GAAQnI,KAAKsa,MAAOkH,EAAQzV,EAAQ4T,GAAa3f,KAAK2Y,SAASrS,cACrHtG,KAAK4b,iBAAiBzT,EAAO2X,GAmBjC,GAjBA9f,KAAKiM,KAAKoJ,QAAQuC,EAAYnU,SAASU,YAAa,CAChDgc,UAAWA,EACXhY,MAAOA,EACPiZ,YAAaA,EACbC,YAAaA,IAEjBrhB,KAAKkY,QAAS,EACdsF,aAAaxd,KAAKyd,gBAClBzd,KAAKyhB,aAAatZ,GACb8Y,IACG9Y,EAAQgY,EACRc,EAAY,OAEP9Y,EAAQgY,IACbc,EAAY,SAGfG,EAGA,CACDphB,KAAKsa,MACApO,KAAK,YACLiI,YAAY,0CACjB,IAAIuN,OAAY,EACZC,OAAY,EACZL,EAAuB,GACvBI,EAAYvZ,EAAQ,EACpBwZ,EAAYxZ,EAAQ,GACN,IAAVA,GAAegY,IAAcmB,EAAuB,GAK/CnZ,IAAUmZ,EAAuB,GACxB,IAAdnB,KAJAwB,EAAY,EACZD,EAAYJ,EAAuB,KAUvCI,EAAY,EACZC,EAAY,GAEE,SAAdV,EACAjhB,KAAKga,aAAa2H,GAAWhc,SAAS,iBAGtC3F,KAAKga,aAAa0H,GAAW/b,SAAS,iBAE1Cub,EAAiBvb,SAAS,mBAjC1B3F,KAAKghB,mBAAmBC,EAAWC,EAAkBK,GAoCpDvhB,KAAKiY,WAINkB,YAAW,WACPxE,EAAM6H,YAAYrU,GAAO,GAEc,aAAnCwM,EAAMgE,SAAShR,iBACfgN,EAAMsI,QAAQ9U,KAEnBnI,KAAK2Y,SAASpT,MAAQ,IAAM6b,EAAY,EAAIphB,KAAK2Y,SAASxS,aAT7DnG,KAAKwc,YAAYrU,GAAO,GAW5BgR,YAAW,WACPxE,EAAMuD,QAAS,EACfqJ,EAAoBpN,YAAY,qBAChCQ,EAAM1I,KAAKoJ,QAAQuC,EAAYnU,SAASW,WAAY,CAChD+b,UAAWA,EACXhY,MAAOA,EACPiZ,UAAWA,EACXC,UAAWA,OAEfrhB,KAAKiY,WAAajY,KAAK2Y,SAASpT,MAAQ,IAAM,MAAQ6b,EAAY,EAAIphB,KAAK2Y,SAASxS,aAE5FnG,KAAKmI,MAAQA,IAEjB5E,EAAa3D,UAAU6c,qBAAuB,SAAUtU,GACpDnI,KAAKoa,eAAe,sBAAsBpE,KAAK7N,EAAQ,EAAI,KAE/D5E,EAAa3D,UAAUgiB,mBAAqB,WACxC5hB,KAAKoa,eAAe,kBAAkBpE,KAAKhW,KAAK4Y,aAAalZ,OAAS,KAE1E6D,EAAa3D,UAAUwf,aAAe,SAAU7O,GAC5C,OAAIA,EAAKiL,iBACE,QAEFjL,EAAKqP,OACH,SAGA,SAGfrc,EAAa3D,UAAUiiB,UAAY,SAAUC,EAAaC,EAAWhP,GACjE,IAAIiP,EAAYD,EAAUE,MAAQH,EAAYG,MAC1CC,EAAYH,EAAUI,MAAQL,EAAYK,MAC1CC,GAAa,EAcjB,GAbIpiB,KAAKqiB,eACLD,GAAa,EAGT3W,KAAK6W,IAAIN,GAAa,IACtBhiB,KAAKqiB,eAAiB,aACtBD,GAAa,GAER3W,KAAK6W,IAAIJ,GAAa,KAC3BliB,KAAKqiB,eAAiB,WACtBD,GAAa,GAGhBA,EAAL,CAGA,IAAIlE,EAAgBle,KAAKga,aAAaha,KAAKmI,OAC3C,GAA4B,eAAxBnI,KAAKqiB,eAAiC,CACtCtP,SAAsCA,EAAE4G,iBAExC3Z,KAAKsa,MAAM3U,SAAS,eAEpB3F,KAAKuiB,aAAarE,EAAe8D,EAAW,GAE5C,IAAItc,EAAQwY,EAAc9R,MAAMoW,YAE5BC,EAD4B,GAAR/c,EAAc,IACN+F,KAAK6W,IAAiB,GAAZN,EAAkB,KAC5DhiB,KAAKuiB,aAAaviB,KAAKsa,MAAMpO,KAAK,kBAAkBC,SAAUzG,EAAQsc,EAAYS,EAAQ,GAC1FziB,KAAKuiB,aAAaviB,KAAKsa,MAAMpO,KAAK,kBAAkBC,QAASzG,EAAQsc,EAAYS,EAAQ,QAExF,GAA4B,aAAxBziB,KAAKqiB,gBACNriB,KAAK2Y,SAAS7R,aAAc,CAC5BiM,SAAsCA,EAAE4G,iBACxC3Z,KAAKua,WAAW5U,SAAS,wBACzB,IAAI+c,EAAU,EAAIjX,KAAK6W,IAAIJ,GAAajX,OAAO0X,YAC/C3iB,KAAK+a,UAAUrG,IAAI,UAAWgO,GAC9B,IAAIE,EAAQ,EAAInX,KAAK6W,IAAIJ,IAAkC,EAApBjX,OAAOC,YAC9ClL,KAAKuiB,aAAarE,EAAe,EAAGgE,EAAWU,EAAOA,GAClDnX,KAAK6W,IAAIJ,GAAa,KACtBliB,KAAKsa,MACA3U,SAAS,iBACTwO,YAAY,yBAKjC5Q,EAAa3D,UAAUijB,SAAW,SAAUd,EAAWD,EAAalP,GAChE,IACIkQ,EADAnO,EAAQ3U,KAGe,aAAvBA,KAAK2Y,SAAStT,MACdrF,KAAKsa,MAAM3U,SAAS,YAGxBwT,YAAW,WACPxE,EAAM4F,WAAWpG,YAAY,wBAC7BQ,EAAM2F,MACDnG,YAAY,6BACZxO,SAAS,sBACd,IAAIod,GAAe,EACnB,GAA6B,eAAzBpO,EAAM0N,eAAiC,CACvCS,EAAWf,EAAUE,MAAQH,EAAYG,MACzC,IAAIe,EAAcvX,KAAK6W,IAAIP,EAAUE,MAAQH,EAAYG,OACrDa,EAAW,GACXE,EAAcrO,EAAMgE,SAAShQ,gBAC7BgM,EAAMsO,eAAc,GACpBF,GAAe,GAEVD,EAAW,GAChBE,EAAcrO,EAAMgE,SAAShQ,iBAC7BgM,EAAMuO,eAAc,GACpBH,GAAe,QAGlB,GAA6B,aAAzBpO,EAAM0N,eAA+B,CAE1C,GADAS,EAAWrX,KAAK6W,IAAIP,EAAUI,MAAQL,EAAYK,OAC9CxN,EAAMgE,SAAS9R,UACf8N,EAAMgE,SAAS7R,cACfgc,EAAW,IAEX,YADAnO,EAAMrL,eAINqL,EAAMoG,UAAUrG,IAAI,UAAW,GAIvC,GADAC,EAAM2F,MAAMpO,KAAK,YAAYoH,WAAW,SACpCyP,GACAtX,KAAK6W,IAAIP,EAAUE,MAAQH,EAAYG,OAAS,EAAG,CAEnD,IAAIkB,EAAS/Y,EAAUU,IAAI8H,EAAMuQ,QAC7BxO,EAAMyO,gBAAgBD,IACtBxO,EAAM1I,KAAKoJ,QAAQuC,EAAYnU,SAASY,aAGhDsQ,EAAM0N,oBAAiBlZ,KAG3BgQ,YAAW,WACFxE,EAAM2F,MAAMjG,SAAS,gBACE,aAAxBM,EAAMgE,SAAStT,MACfsP,EAAM2F,MAAMnG,YAAY,cAE7BnU,KAAK2Y,SAASpT,MAAQ,MAE7BhC,EAAa3D,UAAUgJ,YAAc,WACjC,IAAI+L,EAAQ3U,KACR8hB,EAAc,GACdC,EAAY,GACZsB,GAAU,EACVC,GAAY,EACZtjB,KAAK2Y,SAAS/P,cACd5I,KAAKgb,OAAOpG,GAAG,iBAAiB,SAAU7B,GACtC4B,EAAM4D,oBAAqB,EAC3B,IAAIgL,EAAQ5O,EAAMqF,aAAarF,EAAMxM,QAChCiC,EAAUU,IAAIiI,EAAEoQ,QAAQ9O,SAAS,aAClCkP,EAAMnX,MAAMkI,SAASvB,EAAEoQ,SACtBxO,EAAM2F,MAAMjG,SAAS,cACrBM,EAAMuD,QACoB,IAA3BnF,EAAEyQ,cAAc9jB,SAChB4jB,GAAY,EACZ3O,EAAM8O,YAAc,QACpB9O,EAAM+O,mBACN5B,EAAc,CACVG,MAAOlP,EAAEyQ,cAAc,GAAGvB,MAC1BE,MAAOpP,EAAEyQ,cAAc,GAAGrB,WAItCniB,KAAKgb,OAAOpG,GAAG,gBAAgB,SAAU7B,GACjCuQ,GACsB,UAAtB3O,EAAM8O,aACqB,IAA3B1Q,EAAEyQ,cAAc9jB,SAChBqiB,EAAY,CACRE,MAAOlP,EAAEyQ,cAAc,GAAGvB,MAC1BE,MAAOpP,EAAEyQ,cAAc,GAAGrB,OAE9BxN,EAAMkN,UAAUC,EAAaC,EAAWhP,GACxCsQ,GAAU,MAGlBrjB,KAAKgb,OAAOpG,GAAG,eAAe,SAAUhC,GACpC,GAA0B,UAAtB+B,EAAM8O,YAAyB,CAC/B,GAAIJ,EACAA,GAAU,EACV1O,EAAMkO,SAASd,EAAWD,EAAalP,QAEtC,GAAI0Q,EAAW,CAChB,IAAIH,EAAS/Y,EAAUU,IAAI8H,EAAMuQ,QAC7BxO,EAAMyO,gBAAgBD,IACtBxO,EAAM1I,KAAKoJ,QAAQuC,EAAYnU,SAASY,aAGhDsQ,EAAM8O,iBAActa,EACpBma,GAAY,QAK5B/f,EAAa3D,UAAUiJ,WAAa,WAChC,IAAI8L,EAAQ3U,KACR8hB,EAAc,GACdC,EAAY,GACZ4B,GAAY,EACZN,GAAU,EACVrjB,KAAK2Y,SAAS9P,aACd7I,KAAKsa,MAAM1F,GAAG,gBAAgB,SAAU7B,GACpC4B,EAAM4D,oBAAqB,EAC3B,IAAIgL,EAAQ5O,EAAMqF,aAAarF,EAAMxM,QACjCiC,EAAUU,IAAIiI,EAAEoQ,QAAQ9O,SAAS,YACjCkP,EAAMnX,MAAMkI,SAASvB,EAAEoQ,WAClBxO,EAAM2F,MAAMjG,SAAS,cAAiBM,EAAMuD,SAC7CnF,EAAE4G,iBACGhF,EAAMuD,SACPvD,EAAM+O,mBACN5B,EAAc,CACVG,MAAOlP,EAAEkP,MACTE,MAAOpP,EAAEoP,OAEbwB,GAAY,EAEZhP,EAAM2F,MAAMlO,MAAMc,YAAc,EAChCyH,EAAM2F,MAAMlO,MAAMc,YAAc,EAEhCyH,EAAM2F,MACDnG,YAAY,WACZxO,SAAS,eACdgP,EAAM1I,KAAKoJ,QAAQuC,EAAYnU,SAASa,iBAKxD8F,EAAUU,IAAIG,QAAQ2J,GAAG,sBAAwB5U,KAAK+X,MAAM,SAAUhF,GAC9D4Q,GAAahP,EAAMqD,WACnBqL,GAAU,EACVtB,EAAY,CACRE,MAAOlP,EAAEkP,MACTE,MAAOpP,EAAEoP,OAEbxN,EAAMkN,UAAUC,EAAaC,GAC7BpN,EAAM1I,KAAKoJ,QAAQuC,EAAYnU,SAASc,cAGhD6F,EAAUU,IAAIG,QAAQ2J,GAAG,oBAAsB5U,KAAK+X,MAAM,SAAUnF,GAChE,GAAK+B,EAAMqD,SAAX,CAGA,IAAImL,EAAS/Y,EAAUU,IAAI8H,EAAMuQ,QAC7BE,GACAA,GAAU,EACV1O,EAAMkO,SAASd,EAAWD,EAAalP,GACvC+B,EAAM1I,KAAKoJ,QAAQuC,EAAYnU,SAASe,UAEnCmQ,EAAMyO,gBAAgBD,IAC3BxO,EAAM1I,KAAKoJ,QAAQuC,EAAYnU,SAASY,aAGxCsf,IACAA,GAAY,EACZhP,EAAM2F,MAAMnG,YAAY,eAAexO,SAAS,kBAKhEpC,EAAa3D,UAAUwZ,mBAAqB,WACxC,IAAIzE,EAAQ3U,KACZA,KAAKgb,OAAOpG,GAAG,YAAY,SAAUhC,IAC5B+B,EAAM4D,oBACP5D,EAAMyO,gBAAgBhZ,EAAUU,IAAI8H,EAAMuQ,UAC1CxO,EAAM1I,KAAKoJ,QAAQuC,EAAYnU,SAASY,iBAIpDd,EAAa3D,UAAU8jB,iBAAmB,WACtC,IAAIE,EAAa5jB,KAAKmI,MAAQ,EAC1B0b,EAAa7jB,KAAKmI,MAAQ,EAC1BnI,KAAK2Y,SAASzR,MAAQlH,KAAK4Y,aAAalZ,OAAS,IAC9B,IAAfM,KAAKmI,MACL0b,EAAa7jB,KAAK4Y,aAAalZ,OAAS,EAEnCM,KAAKmI,QAAUnI,KAAK4Y,aAAalZ,OAAS,IAC/CkkB,EAAa,IAGrB5jB,KAAKsa,MAAMpO,KAAK,YAAYiI,YAAY,+BACpC0P,GAAc,GACd7jB,KAAKga,aAAa6J,GAAYle,SAAS,iBAE3C3F,KAAKga,aAAa4J,GAAYje,SAAS,kBAW3CpC,EAAa3D,UAAUqjB,cAAgB,SAAU7B,GAC7C,IAAIzM,EAAQ3U,KACR8jB,EAAQ9jB,KAAK2Y,SAASzR,KACtBka,GAAaphB,KAAK4Y,aAAalZ,OAAS,IACxCokB,GAAQ,GAEP9jB,KAAKkY,SACFlY,KAAKmI,MAAQ,EAAInI,KAAK4Y,aAAalZ,QACnCM,KAAKmI,QACLnI,KAAKiM,KAAKoJ,QAAQuC,EAAYnU,SAASgB,gBAAiB,CACpD0D,MAAOnI,KAAKmI,QAEhBnI,KAAKqd,MAAMrd,KAAKmI,QAASiZ,GAAW,EAAO,SAGvC0C,GACA9jB,KAAKmI,MAAQ,EACbnI,KAAKiM,KAAKoJ,QAAQuC,EAAYnU,SAASgB,gBAAiB,CACpD0D,MAAOnI,KAAKmI,QAEhBnI,KAAKqd,MAAMrd,KAAKmI,QAASiZ,GAAW,EAAO,SAEtCphB,KAAK2Y,SAASpR,oBAAsB6Z,IACzCphB,KAAKsa,MAAM3U,SAAS,gBACpBwT,YAAW,WACPxE,EAAM2F,MAAMnG,YAAY,kBACzB,QAenB5Q,EAAa3D,UAAUsjB,cAAgB,SAAU9B,GAC7C,IAAIzM,EAAQ3U,KACR8jB,EAAQ9jB,KAAK2Y,SAASzR,KACtBka,GAAaphB,KAAK4Y,aAAalZ,OAAS,IACxCokB,GAAQ,GAEP9jB,KAAKkY,SACFlY,KAAKmI,MAAQ,GACbnI,KAAKmI,QACLnI,KAAKiM,KAAKoJ,QAAQuC,EAAYnU,SAASiB,gBAAiB,CACpDyD,MAAOnI,KAAKmI,MACZiZ,UAAWA,IAEfphB,KAAKqd,MAAMrd,KAAKmI,QAASiZ,GAAW,EAAO,SAGvC0C,GACA9jB,KAAKmI,MAAQnI,KAAK4Y,aAAalZ,OAAS,EACxCM,KAAKiM,KAAKoJ,QAAQuC,EAAYnU,SAASiB,gBAAiB,CACpDyD,MAAOnI,KAAKmI,MACZiZ,UAAWA,IAEfphB,KAAKqd,MAAMrd,KAAKmI,QAASiZ,GAAW,EAAO,SAEtCphB,KAAK2Y,SAASpR,oBAAsB6Z,IACzCphB,KAAKsa,MAAM3U,SAAS,eACpBwT,YAAW,WACPxE,EAAM2F,MAAMnG,YAAY,iBACzB,QAKnB5Q,EAAa3D,UAAUwH,SAAW,WAC9B,IAAIuN,EAAQ3U,KACZoK,EAAUU,IAAIG,QAAQ2J,GAAG,oBAAsB5U,KAAK+X,MAAM,SAAUhF,GAC5D4B,EAAMqD,WACoB,IAA1BrD,EAAMgE,SAASxR,QACD,KAAd4L,EAAEgR,UACFhR,EAAE4G,iBACEhF,EAAMgE,SAAStS,mBACfsO,EAAM2F,MAAMjG,SAAS,kBACrBM,EAAM2F,MAAMjG,SAAS,sBACrBM,EAAM2F,MAAMnG,YAAY,sBAGxBQ,EAAMrL,gBAGVqL,EAAMqD,UAAYrD,EAAMiE,aAAalZ,OAAS,IAC5B,KAAdqT,EAAEgR,UACFhR,EAAE4G,iBACFhF,EAAMuO,iBAEQ,KAAdnQ,EAAEgR,UACFhR,EAAE4G,iBACFhF,EAAMsO,sBAKtB1f,EAAa3D,UAAUyZ,MAAQ,WAC3B,IAAI1E,EAAQ3U,KACZA,KAAKoa,eAAe,WAAWxF,GAAG,YAAY,WAC1CD,EAAMuO,mBAEVljB,KAAKoa,eAAe,WAAWxF,GAAG,YAAY,WAC1CD,EAAMsO,oBAGd1f,EAAa3D,UAAU6hB,aAAe,SAAUtZ,GAE5C,IAAKnI,KAAK2Y,SAASzR,MAAQlH,KAAK2Y,SAASnR,iBAAkB,CACvD,IAAIwc,EAAQhkB,KAAKoa,eAAe,WAC5B6J,EAAQjkB,KAAKoa,eAAe,WAC5BjS,EAAQ,IAAMnI,KAAK4Y,aAAalZ,OAChCukB,EAAM3Z,KAAK,WAAY,YAAY3E,SAAS,YAG5Cse,EAAM3Q,WAAW,YAAYa,YAAY,YAE/B,IAAVhM,EACA6b,EAAM1Z,KAAK,WAAY,YAAY3E,SAAS,YAG5Cqe,EAAM1Q,WAAW,YAAYa,YAAY,cAIrD5Q,EAAa3D,UAAU2iB,aAAe,SAAU2B,EAAKC,EAAQC,EAAQC,EAAQC,QAC1D,IAAXD,IAAqBA,EAAS,QACnB,IAAXC,IAAqBA,EAAS,GAClCJ,EAAIxP,IAAI,YAAa,eACjByP,EACA,OACAC,EACA,oBACAC,EACA,KACAC,EACA,SAER/gB,EAAa3D,UAAU6H,WAAa,WAChC,IAAIkN,EAAQ3U,KACRukB,EAAW,EACfvkB,KAAKsa,MAAM1F,GAAG,YAAY,SAAU7B,GAChC,GAAKA,EAAEyR,UAAU7P,EAAMiE,aAAalZ,OAAS,GAA7C,CAGAqT,EAAE4G,iBACF,IAAI8K,GAAM,IAAIC,MAAOC,UACjBF,EAAMF,EAAW,MAGrBA,EAAWE,EACP1R,EAAEyR,OAAS,EACX7P,EAAMsO,gBAEDlQ,EAAEyR,OAAS,GAChB7P,EAAMuO,sBAIlB3f,EAAa3D,UAAUglB,eAAiB,SAAUzB,GAC9C,OAAQA,EAAO9O,SAAS,aACpB8O,EAAO9O,SAAS,YAChB8O,EAAO9O,SAAS,gBAExB9Q,EAAa3D,UAAUwjB,gBAAkB,SAAUD,GAC/C,IAAI0B,EAAa7kB,KAAKga,aAAaha,KAAKmI,OACnC+D,KAAK,yBACLE,MACL,OAAQ+W,EAAO9O,SAAS,oBACpB8O,EAAO9O,SAAS,yBACfwQ,GAAcA,EAAWvQ,SAAS6O,EAAO/W,QAMlD7I,EAAa3D,UAAU2J,eAAiB,WACpC,IAAIoL,EAAQ3U,KACZA,KAAKoa,eAAe,eAAexF,GAAG,YAAY,WAC9CD,EAAM4F,WAAW9F,YAAY,aAC7BE,EAAMyG,sBAGd7X,EAAa3D,UAAUklB,gBAAkB,WACrC,IAAK,IAAI3c,EAAQ,EAAGA,EAAQnI,KAAKoQ,MAAM1Q,OAAQyI,IAAS,CACpD,IAAI4H,EAAU/P,KAAKoQ,MAAMjI,GACrBsR,EAAWrP,EAAUU,IAAIiF,GAC7B0J,EAAStE,IAAI,uBAAyBsE,EAASnP,KAAK,iBAG5D/G,EAAa3D,UAAUyH,UAAY,WAC/B,IAAIsN,EAAQ3U,KACZA,KAAKua,WAAWnO,MAAM2Y,MAAM,CACxBC,eAAe,IAEnB5a,EAAUU,IAAIG,QAAQ2J,GAAG,oBAAsB5U,KAAK+X,MAAM,SAAUhF,GAChE,GAAK4B,EAAMqD,WAGkB,QAAVjF,EAAExE,KAA+B,IAAdwE,EAAEgR,SACxC,CAGA,IAAIkB,EAAenN,EAAWzV,QAAQsN,qBAAqBgF,EAAM4F,WAAWnO,OACxE8Y,EAAmBD,EAAa,GAChCE,EAAkBF,EAAaA,EAAavlB,OAAS,GACrDqT,EAAEqS,SACEriB,SAASsiB,gBAAkBH,IAC3BC,EAAgBJ,QAChBhS,EAAE4G,kBAIF5W,SAASsiB,gBAAkBF,IAC3BD,EAAiBH,QACjBhS,EAAE4G,uBAKlBpW,EAAa3D,UAAU0b,mBAAqB,WACxC,IAAI3G,EAAQ3U,KACZ,GAAKA,KAAK2Y,SAAS9R,SAAnB,CAEA,IAAIye,GAAY,EAChBtlB,KAAKoa,eAAe,YAAYxF,GAAG,YAAY,WAC3CD,EAAMrL,kBAENtJ,KAAK2Y,SAAS5R,aAGd/G,KAAKsa,MAAM1F,GAAG,gBAAgB,SAAU7B,GACpC,IAAIoQ,EAAS/Y,EAAUU,IAAIiI,EAAEoQ,QAEzBmC,IADA3Q,EAAMiQ,eAAezB,MAO7BnjB,KAAKsa,MAAM1F,GAAG,gBAAgB,WAC1B0Q,GAAY,KAEhBtlB,KAAKsa,MAAM1F,GAAG,cAAc,SAAU7B,GAClC,IAAIoQ,EAAS/Y,EAAUU,IAAIiI,EAAEoQ,QACzBxO,EAAMiQ,eAAezB,IAAWmC,IAC3B3Q,EAAM2F,MAAMjG,SAAS,gBACtBM,EAAMrL,sBAiB1B/F,EAAa3D,UAAU0J,aAAe,SAAUic,GAC5C,IAAI5Q,EAAQ3U,KACZ,IAAKA,KAAKgY,WAAchY,KAAK2Y,SAAS9R,WAAa0e,EAC/C,OAAO,EAEXvlB,KAAKiM,KAAKoJ,QAAQuC,EAAYnU,SAASkB,aACnC3E,KAAK2Y,SAAShS,sBAAwB3G,KAAK2Y,SAAS/R,eACpDwD,EAAUU,IAAIG,QAAQqC,UAAUtN,KAAKoY,eAEzC,IACIhX,EADAyP,EAAc7Q,KAAKoQ,MAAMpQ,KAAKmI,OAElC,GAAInI,KAAKgG,gBAAkB6K,EAAa,CACpC,IAAI9P,EAAKf,KAAKwY,uBAAwBgN,EAAQzkB,EAAG+K,IAAKC,EAAShL,EAAGgL,OAC9D9K,EAAKjB,KAAK4Y,aAAa5Y,KAAKmI,OAAQqT,EAAmBva,EAAGua,iBAAkB6D,EAASpe,EAAGoe,OACxFrT,EAAY8L,EAAWzV,QAAQqI,QAAQmG,EAAa7Q,KAAKsa,MAAOkL,EAAQzZ,EAAQyP,GAAoB6D,GAAUrf,KAAK2Y,SAASrS,cAChIlF,EAAY0W,EAAWzV,QAAQwJ,aAAagF,EAAa7Q,KAAKsa,MAAOkL,EAAOzZ,EAAQC,GAEpFhM,KAAKgG,gBAAkB5E,GACvBpB,KAAKsa,MAAM3U,SAAS,iCACpB3F,KAAKga,aAAaha,KAAKmI,OAClBxC,SAAS,yBACT+O,IAAI,sBAAuB1U,KAAK2Y,SAAS5S,uBAAyB,MAClE2O,IAAI,YAAatT,KAGtBpB,KAAKsa,MAAM3U,SAAS,iBAGpB3F,KAAKsa,MAAMnG,YAAY,uBAK3BnU,KAAKylB,iBACLzlB,KAAKiY,YAAa,EAClBjY,KAAKsY,qBAAsB,EAC3BtY,KAAKgG,eAAiBhG,KAAK2Y,SAAS3S,eACpCwX,aAAaxd,KAAKyd,gBAClBzd,KAAKyd,gBAAiB,EACtBrT,EAAUU,IAAI,QAAQqJ,YAAY,SAClCnU,KAAKsa,MAAMnG,YAAY,iCAEvBnU,KAAK+a,UAAU5G,YAAY,MAAMO,IAAI,UAAW,GAChD,IAAIgR,EAAgB1lB,KAAKgG,gBAAkB5E,EACrCqK,KAAK6U,IAAItgB,KAAK2Y,SAAS5S,uBAAwB/F,KAAK2Y,SAAS9S,kBAC7D7F,KAAK2Y,SAAS9S,iBA2BpB,OA1BA7F,KAAKua,WAAWpG,YAAY,cAE5BgF,YAAW,WACHxE,EAAM3O,gBAAkB5E,GACxBuT,EAAM2F,MAAMnG,YAAY,sBAE5BQ,EAAM4F,WAAWpG,YAAY,WAE7BQ,EAAMmI,iBAENnI,EAAMoG,UACDzH,WAAW,SACXoB,IAAI,sBAAuBC,EAAMgE,SAAS9S,iBAAmB,MAClE8O,EAAM2F,MAAMnG,YAAY,cAAgBQ,EAAMgE,SAAS/S,YACvD+O,EAAMqF,aAAarF,EAAMxM,OAAOgM,YAAY,yBAC5CQ,EAAMqG,OAAO3E,QACT1B,EAAMqD,UACNrD,EAAM1I,KAAKoJ,QAAQuC,EAAYnU,SAASmB,WAAY,CAChDsU,SAAUvE,IAGdA,EAAM4F,WAAWnO,OACjBuI,EAAM4F,WAAWnO,MAAMuZ,OAE3BhR,EAAMqD,UAAW,IAClB0N,EAAgB,KACZA,EAAgB,KAE3BniB,EAAa3D,UAAU2b,YAAc,WACjCvb,KAAK2C,QAAQ2L,SAAQ,SAAUsX,GAC3B,IACIA,EAAOjiB,OAEX,MAAOkiB,GACHvjB,QAAQyX,KAAK,2EAIzBxW,EAAa3D,UAAU6lB,eAAiB,SAAUK,GAC9C9lB,KAAK2C,QAAQ2L,SAAQ,SAAUsX,GAC3B,IACQE,EACAF,EAAOE,UAGPF,EAAOtc,cAAgBsc,EAAOtc,eAGtC,MAAOuc,GACHvjB,QAAQyX,KAAK,2EAkBzBxW,EAAa3D,UAAUmmB,QAAU,SAAUnN,GAClC5Y,KAAK2Y,SAAS7P,SACf9I,KAAK8kB,kBAGL9kB,KAAK4Y,aADLA,GAIoB5Y,KAAK6Y,WAE7B7Y,KAAKkc,iBACLlc,KAAKsZ,yBACLtZ,KAAKiM,KAAKoJ,QAAQuC,EAAYnU,SAASK,eAE3CP,EAAa3D,UAAUsc,eAAiB,WACpClc,KAAKgZ,kBAAkBhZ,KAAK4Y,cAC5B5Y,KAAK4hB,qBACL5hB,KAAKqa,8BAeT9W,EAAa3D,UAAUkmB,QAAU,WAC7B,IAAInR,EAAQ3U,KACRgmB,EAAehmB,KAAKsJ,cAAa,GAUrC,OATA6P,YAAW,WACPxE,EAAM8Q,gBAAe,GAChB9Q,EAAMgE,SAAS7P,SAChB6L,EAAMmQ,kBAEV1a,EAAUU,IAAIG,QAAQkK,IAAI,aAAeR,EAAMoD,MAC/CpD,EAAM1I,KAAKkJ,IAAI,OACfR,EAAM4F,WAAWnG,WAClB4R,GACIA,GAEJziB,EAr2DsB,GAu2DjCF,EAAQE,aAAeA,G,eC73DvB,IAAI1B,EAAM,CACT,gCAAiC,CAChC,KACA,MAED,8BAA+B,CAC9B,KACA,MAED,oCAAqC,CACpC,KACA,MAED,wBAAyB,CACxB,KACA,KAED,qCAAsC,CACrC,KACA,MAED,0BAA2B,CAC1B,KACA,MAED,+CAAgD,CAC/C,KACA,MAED,4BAA6B,CAC5B,KACA,MAED,0BAA2B,CAC1B,KACA,KAED,kCAAmC,CAClC,KACA,MAED,0BAA2B,CAC1B,KACA,MAED,6CAA8C,CAC7C,KACA,MAED,wBAAyB,CACxB,KACA,OAGF,SAASokB,EAAoBC,GAC5B,IAAIC,EAAoBC,EAAEvkB,EAAKqkB,GAC9B,OAAOjjB,QAAQojB,UAAUxQ,MAAK,KAC7B,IAAI9C,EAAI,IAAIuT,MAAM,uBAAyBJ,EAAM,KAEjD,MADAnT,EAAEwT,KAAO,mBACHxT,KAIR,IAAIyT,EAAM3kB,EAAIqkB,GAAM/L,EAAKqM,EAAI,GAC7B,OAAOL,EAAoBpT,EAAEyT,EAAI,IAAI3Q,MAAK,IAClCsQ,EAAoB9mB,EAAE8a,EAAI,MAGnC8L,EAAoB5X,KAAO,IAAOlP,OAAOkP,KAAKxM,GAC9CokB,EAAoB9L,GAAK,KACzByL,EAAOviB,QAAU4iB","sources":["webpack://sakurairo-scripts/./node_modules/tslib/tslib.es6.js","webpack://sakurairo-scripts/./node_modules/lower-case/dist.es2015/index.js","webpack://sakurairo-scripts/./node_modules/no-case/dist.es2015/index.js","webpack://sakurairo-scripts/./node_modules/dot-case/dist.es2015/index.js","webpack://sakurairo-scripts/./src/page/lightGallery/util.ts","webpack://sakurairo-scripts/./node_modules/param-case/dist.es2015/index.js","webpack://sakurairo-scripts/./src/page/lightGallery/import.ts","webpack://sakurairo-scripts/./node_modules/lightgallery/lib/index.js","webpack://sakurairo-scripts/./node_modules/lightgallery/lib/lg-events.js","webpack://sakurairo-scripts/./node_modules/lightgallery/lib/lg-settings.js","webpack://sakurairo-scripts/./node_modules/lightgallery/lib/lg-utils.js","webpack://sakurairo-scripts/./node_modules/lightgallery/lib/lgQuery.js","webpack://sakurairo-scripts/./node_modules/lightgallery/lib/lightgallery.js","webpack://sakurairo-scripts/./node_modules/lightgallery/plugins/ lazy ^\\.\\/.*\\.min\\.js$ chunkName: lg- namespace object"],"sourcesContent":["/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n","/**\n * Source: ftp://ftp.unicode.org/Public/UCD/latest/ucd/SpecialCasing.txt\n */\nvar SUPPORTED_LOCALE = {\n tr: {\n regexp: /\\u0130|\\u0049|\\u0049\\u0307/g,\n map: {\n İ: \"\\u0069\",\n I: \"\\u0131\",\n İ: \"\\u0069\",\n },\n },\n az: {\n regexp: /\\u0130/g,\n map: {\n İ: \"\\u0069\",\n I: \"\\u0131\",\n İ: \"\\u0069\",\n },\n },\n lt: {\n regexp: /\\u0049|\\u004A|\\u012E|\\u00CC|\\u00CD|\\u0128/g,\n map: {\n I: \"\\u0069\\u0307\",\n J: \"\\u006A\\u0307\",\n Į: \"\\u012F\\u0307\",\n Ì: \"\\u0069\\u0307\\u0300\",\n Í: \"\\u0069\\u0307\\u0301\",\n Ĩ: \"\\u0069\\u0307\\u0303\",\n },\n },\n};\n/**\n * Localized lower case.\n */\nexport function localeLowerCase(str, locale) {\n var lang = SUPPORTED_LOCALE[locale.toLowerCase()];\n if (lang)\n return lowerCase(str.replace(lang.regexp, function (m) { return lang.map[m]; }));\n return lowerCase(str);\n}\n/**\n * Lower case as a function.\n */\nexport function lowerCase(str) {\n return str.toLowerCase();\n}\n//# sourceMappingURL=index.js.map","import { lowerCase } from \"lower-case\";\n// Support camel case (\"camelCase\" -> \"camel Case\" and \"CAMELCase\" -> \"CAMEL Case\").\nvar DEFAULT_SPLIT_REGEXP = [/([a-z0-9])([A-Z])/g, /([A-Z])([A-Z][a-z])/g];\n// Remove all non-word characters.\nvar DEFAULT_STRIP_REGEXP = /[^A-Z0-9]+/gi;\n/**\n * Normalize the string into something other libraries can manipulate easier.\n */\nexport function noCase(input, options) {\n if (options === void 0) { options = {}; }\n var _a = options.splitRegexp, splitRegexp = _a === void 0 ? DEFAULT_SPLIT_REGEXP : _a, _b = options.stripRegexp, stripRegexp = _b === void 0 ? DEFAULT_STRIP_REGEXP : _b, _c = options.transform, transform = _c === void 0 ? lowerCase : _c, _d = options.delimiter, delimiter = _d === void 0 ? \" \" : _d;\n var result = replace(replace(input, splitRegexp, \"$1\\0$2\"), stripRegexp, \"\\0\");\n var start = 0;\n var end = result.length;\n // Trim the delimiter from around the output string.\n while (result.charAt(start) === \"\\0\")\n start++;\n while (result.charAt(end - 1) === \"\\0\")\n end--;\n // Transform each token independently.\n return result.slice(start, end).split(\"\\0\").map(transform).join(delimiter);\n}\n/**\n * Replace `re` in the input string with the replacement value.\n */\nfunction replace(input, re, value) {\n if (re instanceof RegExp)\n return input.replace(re, value);\n return re.reduce(function (input, re) { return input.replace(re, value); }, input);\n}\n//# sourceMappingURL=index.js.map","import { __assign } from \"tslib\";\nimport { noCase } from \"no-case\";\nexport function dotCase(input, options) {\n if (options === void 0) { options = {}; }\n return noCase(input, __assign({ delimiter: \".\" }, options));\n}\n//# sourceMappingURL=index.js.map","import { paramCase, } from 'change-case';\nexport function solvePluginName(pluginName) {\n const fileName = paramCase(pluginName);\n const folderName = pluginName[2].toLowerCase() + pluginName.replace(/^lg\\w/, '');\n return `${folderName}/${fileName}`;\n}\nexport const handleResult = (result) => result.status == 'fulfilled' ? result.value.default : console.error('加载lightGallery的插件时出错啦!', result.reason);\n","import { __assign } from \"tslib\";\nimport { dotCase } from \"dot-case\";\nexport function paramCase(input, options) {\n if (options === void 0) { options = {}; }\n return dotCase(input, __assign({ delimiter: \"-\" }, options));\n}\n//# sourceMappingURL=index.js.map","//@ts-ignore\nimport lightGallery from 'lightgallery/lib/index.js';\nimport 'lightgallery/css/lightgallery-bundle.min.css';\nimport { handleResult, solvePluginName } from './util';\n;\nexport default async function initLightGallery() {\n const { plugins, ...opts } = _iro.lightGallery;\n lightGallery(document.querySelector('.entry-content'), {\n plugins: plugins && (await Promise.allSettled(plugins.map(\n //moduleNameFormat: lgHash->lg-hash\n name => import(\n /* webpackChunkName: \"lg-\" */\n 'lightgallery/plugins/' + solvePluginName(name) + '.min.js'))))\n .map(handleResult),\n ...opts\n });\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar lightgallery_1 = require(\"./lightgallery\");\nfunction lightGallery(el, options) {\n return new lightgallery_1.LightGallery(el, options);\n}\nexports.default = lightGallery;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.lGEvents = void 0;\n/**\n * List of lightGallery events\n * All events should be documented here\n * Below interfaces are used to build the website documentations\n * */\nexports.lGEvents = {\n afterAppendSlide: 'lgAfterAppendSlide',\n init: 'lgInit',\n hasVideo: 'lgHasVideo',\n containerResize: 'lgContainerResize',\n updateSlides: 'lgUpdateSlides',\n afterAppendSubHtml: 'lgAfterAppendSubHtml',\n beforeOpen: 'lgBeforeOpen',\n afterOpen: 'lgAfterOpen',\n slideItemLoad: 'lgSlideItemLoad',\n beforeSlide: 'lgBeforeSlide',\n afterSlide: 'lgAfterSlide',\n posterClick: 'lgPosterClick',\n dragStart: 'lgDragStart',\n dragMove: 'lgDragMove',\n dragEnd: 'lgDragEnd',\n beforeNextSlide: 'lgBeforeNextSlide',\n beforePrevSlide: 'lgBeforePrevSlide',\n beforeClose: 'lgBeforeClose',\n afterClose: 'lgAfterClose',\n rotateLeft: 'lgRotateLeft',\n rotateRight: 'lgRotateRight',\n flipHorizontal: 'lgFlipHorizontal',\n flipVertical: 'lgFlipVertical',\n autoplay: 'lgAutoplay',\n autoplayStart: 'lgAutoplayStart',\n autoplayStop: 'lgAutoplayStop',\n};\n//# sourceMappingURL=lg-events.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.lightGalleryCoreSettings = void 0;\nexports.lightGalleryCoreSettings = {\n mode: 'lg-slide',\n easing: 'ease',\n speed: 400,\n licenseKey: '0000-0000-000-0000',\n height: '100%',\n width: '100%',\n addClass: '',\n startClass: 'lg-start-zoom',\n backdropDuration: 300,\n container: '',\n startAnimationDuration: 400,\n zoomFromOrigin: true,\n hideBarsDelay: 0,\n showBarsAfter: 10000,\n slideDelay: 0,\n supportLegacyBrowser: true,\n allowMediaOverlap: false,\n videoMaxSize: '1280-720',\n loadYouTubePoster: true,\n defaultCaptionHeight: 0,\n ariaLabelledby: '',\n ariaDescribedby: '',\n resetScrollPosition: true,\n hideScrollbar: false,\n closable: true,\n swipeToClose: true,\n closeOnTap: true,\n showCloseIcon: true,\n showMaximizeIcon: false,\n loop: true,\n escKey: true,\n keyPress: true,\n trapFocus: true,\n controls: true,\n slideEndAnimation: true,\n hideControlOnEnd: false,\n mousewheel: false,\n getCaptionFromTitleOrAlt: true,\n appendSubHtmlTo: '.lg-sub-html',\n subHtmlSelectorRelative: false,\n preload: 2,\n numberOfSlideItemsInDom: 10,\n selector: '',\n selectWithin: '',\n nextHtml: '',\n prevHtml: '',\n index: 0,\n iframeWidth: '100%',\n iframeHeight: '100%',\n iframeMaxWidth: '100%',\n iframeMaxHeight: '100%',\n download: true,\n counter: true,\n appendCounterTo: '.lg-toolbar',\n swipeThreshold: 50,\n enableSwipe: true,\n enableDrag: true,\n dynamic: false,\n dynamicEl: [],\n extraProps: [],\n exThumbImage: '',\n isMobile: undefined,\n mobileSettings: {\n controls: false,\n showCloseIcon: false,\n download: false,\n },\n plugins: [],\n strings: {\n closeGallery: 'Close gallery',\n toggleMaximize: 'Toggle maximize',\n previousSlide: 'Previous slide',\n nextSlide: 'Next slide',\n download: 'Download',\n playVideo: 'Play video',\n },\n};\n//# sourceMappingURL=lg-settings.js.map","\"use strict\";\nvar __spreadArrays = (this && this.__spreadArrays) || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.convertToData = void 0;\nvar lgQuery_1 = require(\"./lgQuery\");\nvar defaultDynamicOptions = [\n 'src',\n 'sources',\n 'subHtml',\n 'subHtmlUrl',\n 'html',\n 'video',\n 'poster',\n 'slideName',\n 'responsive',\n 'srcset',\n 'sizes',\n 'iframe',\n 'downloadUrl',\n 'download',\n 'width',\n 'facebookShareUrl',\n 'tweetText',\n 'iframeTitle',\n 'twitterShareUrl',\n 'pinterestShareUrl',\n 'pinterestText',\n 'fbHtml',\n 'disqusIdentifier',\n 'disqusUrl',\n];\n// Convert html data-attribute to camalcase\nfunction convertToData(attr) {\n // FInd a way for lgsize\n if (attr === 'href') {\n return 'src';\n }\n attr = attr.replace('data-', '');\n attr = attr.charAt(0).toLowerCase() + attr.slice(1);\n attr = attr.replace(/-([a-z])/g, function (g) { return g[1].toUpperCase(); });\n return attr;\n}\nexports.convertToData = convertToData;\nvar utils = {\n /**\n * get possible width and height from the lgSize attribute. Used for ZoomFromOrigin option\n */\n getSize: function (el, container, spacing, defaultLgSize) {\n if (spacing === void 0) { spacing = 0; }\n var LGel = lgQuery_1.$LG(el);\n var lgSize = LGel.attr('data-lg-size') || defaultLgSize;\n if (!lgSize) {\n return;\n }\n var isResponsiveSizes = lgSize.split(',');\n // if at-least two viewport sizes are available\n if (isResponsiveSizes[1]) {\n var wWidth = window.innerWidth;\n for (var i = 0; i < isResponsiveSizes.length; i++) {\n var size_1 = isResponsiveSizes[i];\n var responsiveWidth = parseInt(size_1.split('-')[2], 10);\n if (responsiveWidth > wWidth) {\n lgSize = size_1;\n break;\n }\n // take last item as last option\n if (i === isResponsiveSizes.length - 1) {\n lgSize = size_1;\n }\n }\n }\n var size = lgSize.split('-');\n var width = parseInt(size[0], 10);\n var height = parseInt(size[1], 10);\n var cWidth = container.width();\n var cHeight = container.height() - spacing;\n var maxWidth = Math.min(cWidth, width);\n var maxHeight = Math.min(cHeight, height);\n var ratio = Math.min(maxWidth / width, maxHeight / height);\n return { width: width * ratio, height: height * ratio };\n },\n /**\n * @desc Get transform value based on the imageSize. Used for ZoomFromOrigin option\n * @param {jQuery Element}\n * @returns {String} Transform CSS string\n */\n getTransform: function (el, container, top, bottom, imageSize) {\n if (!imageSize) {\n return;\n }\n var LGel = lgQuery_1.$LG(el).find('img').first();\n if (!LGel.get()) {\n return;\n }\n var containerRect = container.get().getBoundingClientRect();\n var wWidth = containerRect.width;\n // using innerWidth to include mobile safari bottom bar\n var wHeight = container.height() - (top + bottom);\n var elWidth = LGel.width();\n var elHeight = LGel.height();\n var elStyle = LGel.style();\n var x = (wWidth - elWidth) / 2 -\n LGel.offset().left +\n (parseFloat(elStyle.paddingLeft) || 0) +\n (parseFloat(elStyle.borderLeft) || 0) +\n lgQuery_1.$LG(window).scrollLeft() +\n containerRect.left;\n var y = (wHeight - elHeight) / 2 -\n LGel.offset().top +\n (parseFloat(elStyle.paddingTop) || 0) +\n (parseFloat(elStyle.borderTop) || 0) +\n lgQuery_1.$LG(window).scrollTop() +\n top;\n var scX = elWidth / imageSize.width;\n var scY = elHeight / imageSize.height;\n var transform = 'translate3d(' +\n (x *= -1) +\n 'px, ' +\n (y *= -1) +\n 'px, 0) scale3d(' +\n scX +\n ', ' +\n scY +\n ', 1)';\n return transform;\n },\n getIframeMarkup: function (iframeWidth, iframeHeight, iframeMaxWidth, iframeMaxHeight, src, iframeTitle) {\n var title = iframeTitle ? 'title=\"' + iframeTitle + '\"' : '';\n return \"<div class=\\\"lg-video-cont lg-has-iframe\\\" style=\\\"width:\" + iframeWidth + \"; max-width:\" + iframeMaxWidth + \"; height: \" + iframeHeight + \"; max-height:\" + iframeMaxHeight + \"\\\">\\n <iframe class=\\\"lg-object\\\" frameborder=\\\"0\\\" \" + title + \" src=\\\"\" + src + \"\\\" allowfullscreen=\\\"true\\\"></iframe>\\n </div>\";\n },\n getImgMarkup: function (index, src, altAttr, srcset, sizes, sources) {\n var srcsetAttr = srcset ? \"srcset=\\\"\" + srcset + \"\\\"\" : '';\n var sizesAttr = sizes ? \"sizes=\\\"\" + sizes + \"\\\"\" : '';\n var imgMarkup = \"<img \" + altAttr + \" \" + srcsetAttr + \" \" + sizesAttr + \" class=\\\"lg-object lg-image\\\" data-index=\\\"\" + index + \"\\\" src=\\\"\" + src + \"\\\" />\";\n var sourceTag = '';\n if (sources) {\n var sourceObj = typeof sources === 'string' ? JSON.parse(sources) : sources;\n sourceTag = sourceObj.map(function (source) {\n var attrs = '';\n Object.keys(source).forEach(function (key) {\n // Do not remove the first space as it is required to separate the attributes\n attrs += \" \" + key + \"=\\\"\" + source[key] + \"\\\"\";\n });\n return \"<source \" + attrs + \"></source>\";\n });\n }\n return \"\" + sourceTag + imgMarkup;\n },\n // Get src from responsive src\n getResponsiveSrc: function (srcItms) {\n var rsWidth = [];\n var rsSrc = [];\n var src = '';\n for (var i = 0; i < srcItms.length; i++) {\n var _src = srcItms[i].split(' ');\n // Manage empty space\n if (_src[0] === '') {\n _src.splice(0, 1);\n }\n rsSrc.push(_src[0]);\n rsWidth.push(_src[1]);\n }\n var wWidth = window.innerWidth;\n for (var j = 0; j < rsWidth.length; j++) {\n if (parseInt(rsWidth[j], 10) > wWidth) {\n src = rsSrc[j];\n break;\n }\n }\n return src;\n },\n isImageLoaded: function (img) {\n if (!img)\n return false;\n // During the onload event, IE correctly identifies any images that\n // weren’t downloaded as not complete. Others should too. Gecko-based\n // browsers act like NS4 in that they report this incorrectly.\n if (!img.complete) {\n return false;\n }\n // However, they do have two very useful properties: naturalWidth and\n // naturalHeight. These give the true size of the image. If it failed\n // to load, either of these should be zero.\n if (img.naturalWidth === 0) {\n return false;\n }\n // No other way of checking: assume it’s ok.\n return true;\n },\n getVideoPosterMarkup: function (_poster, dummyImg, videoContStyle, playVideoString, _isVideo) {\n var videoClass = '';\n if (_isVideo && _isVideo.youtube) {\n videoClass = 'lg-has-youtube';\n }\n else if (_isVideo && _isVideo.vimeo) {\n videoClass = 'lg-has-vimeo';\n }\n else {\n videoClass = 'lg-has-html5';\n }\n return \"<div class=\\\"lg-video-cont \" + videoClass + \"\\\" style=\\\"\" + videoContStyle + \"\\\">\\n <div class=\\\"lg-video-play-button\\\">\\n <svg\\n viewBox=\\\"0 0 20 20\\\"\\n preserveAspectRatio=\\\"xMidYMid\\\"\\n focusable=\\\"false\\\"\\n aria-labelledby=\\\"\" + playVideoString + \"\\\"\\n role=\\\"img\\\"\\n class=\\\"lg-video-play-icon\\\"\\n >\\n <title>\" + playVideoString + \"</title>\\n <polygon class=\\\"lg-video-play-icon-inner\\\" points=\\\"1,0 20,10 1,20\\\"></polygon>\\n </svg>\\n <svg class=\\\"lg-video-play-icon-bg\\\" viewBox=\\\"0 0 50 50\\\" focusable=\\\"false\\\">\\n <circle cx=\\\"50%\\\" cy=\\\"50%\\\" r=\\\"20\\\"></circle></svg>\\n <svg class=\\\"lg-video-play-icon-circle\\\" viewBox=\\\"0 0 50 50\\\" focusable=\\\"false\\\">\\n <circle cx=\\\"50%\\\" cy=\\\"50%\\\" r=\\\"20\\\"></circle>\\n </svg>\\n </div>\\n \" + (dummyImg || '') + \"\\n <img class=\\\"lg-object lg-video-poster\\\" src=\\\"\" + _poster + \"\\\" />\\n </div>\";\n },\n getFocusableElements: function (container) {\n var elements = container.querySelectorAll('a[href]:not([disabled]), button:not([disabled]), textarea:not([disabled]), input[type=\"text\"]:not([disabled]), input[type=\"radio\"]:not([disabled]), input[type=\"checkbox\"]:not([disabled]), select:not([disabled])');\n var visibleElements = [].filter.call(elements, function (element) {\n var style = window.getComputedStyle(element);\n return style.display !== 'none' && style.visibility !== 'hidden';\n });\n return visibleElements;\n },\n /**\n * @desc Create dynamic elements array from gallery items when dynamic option is false\n * It helps to avoid frequent DOM interaction\n * and avoid multiple checks for dynamic elments\n *\n * @returns {Array} dynamicEl\n */\n getDynamicOptions: function (items, extraProps, getCaptionFromTitleOrAlt, exThumbImage) {\n var dynamicElements = [];\n var availableDynamicOptions = __spreadArrays(defaultDynamicOptions, extraProps);\n [].forEach.call(items, function (item) {\n var dynamicEl = {};\n for (var i = 0; i < item.attributes.length; i++) {\n var attr = item.attributes[i];\n if (attr.specified) {\n var dynamicAttr = convertToData(attr.name);\n var label = '';\n if (availableDynamicOptions.indexOf(dynamicAttr) > -1) {\n label = dynamicAttr;\n }\n if (label) {\n dynamicEl[label] = attr.value;\n }\n }\n }\n var currentItem = lgQuery_1.$LG(item);\n var alt = currentItem.find('img').first().attr('alt');\n var title = currentItem.attr('title');\n var thumb = exThumbImage\n ? currentItem.attr(exThumbImage)\n : currentItem.find('img').first().attr('src');\n dynamicEl.thumb = thumb;\n if (getCaptionFromTitleOrAlt && !dynamicEl.subHtml) {\n dynamicEl.subHtml = title || alt || '';\n }\n dynamicEl.alt = alt || title || '';\n dynamicElements.push(dynamicEl);\n });\n return dynamicElements;\n },\n isMobile: function () {\n return /iPhone|iPad|iPod|Android/i.test(navigator.userAgent);\n },\n /**\n * @desc Check the given src is video\n * @param {String} src\n * @return {Object} video type\n * Ex:{ youtube : [\"//www.youtube.com/watch?v=c0asJgSyxcY\", \"c0asJgSyxcY\"] }\n *\n * @todo - this information can be moved to dynamicEl to avoid frequent calls\n */\n isVideo: function (src, isHTML5VIdeo, index) {\n if (!src) {\n if (isHTML5VIdeo) {\n return {\n html5: true,\n };\n }\n else {\n console.error('lightGallery :- data-src is not provided on slide item ' +\n (index + 1) +\n '. Please make sure the selector property is properly configured. More info - https://www.lightgalleryjs.com/demos/html-markup/');\n return;\n }\n }\n var youtube = src.match(/\\/\\/(?:www\\.)?youtu(?:\\.be|be\\.com|be-nocookie\\.com)\\/(?:watch\\?v=|embed\\/)?([a-z0-9\\-\\_\\%]+)([\\&|?][\\S]*)*/i);\n var vimeo = src.match(/\\/\\/(?:www\\.)?(?:player\\.)?vimeo.com\\/(?:video\\/)?([0-9a-z\\-_]+)(.*)?/i);\n var wistia = src.match(/https?:\\/\\/(.+)?(wistia\\.com|wi\\.st)\\/(medias|embed)\\/([0-9a-z\\-_]+)(.*)/);\n if (youtube) {\n return {\n youtube: youtube,\n };\n }\n else if (vimeo) {\n return {\n vimeo: vimeo,\n };\n }\n else if (wistia) {\n return {\n wistia: wistia,\n };\n }\n },\n};\nexports.default = utils;\n//# sourceMappingURL=lg-utils.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.$LG = exports.lgQuery = void 0;\nfunction initLgPolyfills() {\n (function () {\n if (typeof window.CustomEvent === 'function')\n return false;\n function CustomEvent(event, params) {\n params = params || {\n bubbles: false,\n cancelable: false,\n detail: null,\n };\n var evt = document.createEvent('CustomEvent');\n evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);\n return evt;\n }\n window.CustomEvent = CustomEvent;\n })();\n (function () {\n if (!Element.prototype.matches) {\n Element.prototype.matches =\n Element.prototype.msMatchesSelector ||\n Element.prototype.webkitMatchesSelector;\n }\n })();\n}\nvar lgQuery = /** @class */ (function () {\n function lgQuery(selector) {\n this.cssVenderPrefixes = [\n 'TransitionDuration',\n 'TransitionTimingFunction',\n 'Transform',\n 'Transition',\n ];\n this.selector = this._getSelector(selector);\n this.firstElement = this._getFirstEl();\n return this;\n }\n lgQuery.generateUUID = function () {\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\n var r = (Math.random() * 16) | 0, v = c == 'x' ? r : (r & 0x3) | 0x8;\n return v.toString(16);\n });\n };\n lgQuery.prototype._getSelector = function (selector, context) {\n if (context === void 0) { context = document; }\n if (typeof selector !== 'string') {\n return selector;\n }\n context = context || document;\n var fl = selector.substring(0, 1);\n if (fl === '#') {\n return context.querySelector(selector);\n }\n else {\n return context.querySelectorAll(selector);\n }\n };\n lgQuery.prototype._each = function (func) {\n if (!this.selector) {\n return this;\n }\n if (this.selector.length !== undefined) {\n [].forEach.call(this.selector, func);\n }\n else {\n func(this.selector, 0);\n }\n return this;\n };\n lgQuery.prototype._setCssVendorPrefix = function (el, cssProperty, value) {\n // prettier-ignore\n var property = cssProperty.replace(/-([a-z])/gi, function (s, group1) {\n return group1.toUpperCase();\n });\n if (this.cssVenderPrefixes.indexOf(property) !== -1) {\n el.style[property.charAt(0).toLowerCase() + property.slice(1)] = value;\n el.style['webkit' + property] = value;\n el.style['moz' + property] = value;\n el.style['ms' + property] = value;\n el.style['o' + property] = value;\n }\n else {\n el.style[property] = value;\n }\n };\n lgQuery.prototype._getFirstEl = function () {\n if (this.selector && this.selector.length !== undefined) {\n return this.selector[0];\n }\n else {\n return this.selector;\n }\n };\n lgQuery.prototype.isEventMatched = function (event, eventName) {\n var eventNamespace = eventName.split('.');\n return event\n .split('.')\n .filter(function (e) { return e; })\n .every(function (e) {\n return eventNamespace.indexOf(e) !== -1;\n });\n };\n lgQuery.prototype.attr = function (attr, value) {\n if (value === undefined) {\n if (!this.firstElement) {\n return '';\n }\n return this.firstElement.getAttribute(attr);\n }\n this._each(function (el) {\n el.setAttribute(attr, value);\n });\n return this;\n };\n lgQuery.prototype.find = function (selector) {\n return $LG(this._getSelector(selector, this.selector));\n };\n lgQuery.prototype.first = function () {\n if (this.selector && this.selector.length !== undefined) {\n return $LG(this.selector[0]);\n }\n else {\n return $LG(this.selector);\n }\n };\n lgQuery.prototype.eq = function (index) {\n return $LG(this.selector[index]);\n };\n lgQuery.prototype.parent = function () {\n return $LG(this.selector.parentElement);\n };\n lgQuery.prototype.get = function () {\n return this._getFirstEl();\n };\n lgQuery.prototype.removeAttr = function (attributes) {\n var attrs = attributes.split(' ');\n this._each(function (el) {\n attrs.forEach(function (attr) { return el.removeAttribute(attr); });\n });\n return this;\n };\n lgQuery.prototype.wrap = function (className) {\n if (!this.firstElement) {\n return this;\n }\n var wrapper = document.createElement('div');\n wrapper.className = className;\n this.firstElement.parentNode.insertBefore(wrapper, this.firstElement);\n this.firstElement.parentNode.removeChild(this.firstElement);\n wrapper.appendChild(this.firstElement);\n return this;\n };\n lgQuery.prototype.addClass = function (classNames) {\n if (classNames === void 0) { classNames = ''; }\n this._each(function (el) {\n // IE doesn't support multiple arguments\n classNames.split(' ').forEach(function (className) {\n if (className) {\n el.classList.add(className);\n }\n });\n });\n return this;\n };\n lgQuery.prototype.removeClass = function (classNames) {\n this._each(function (el) {\n // IE doesn't support multiple arguments\n classNames.split(' ').forEach(function (className) {\n if (className) {\n el.classList.remove(className);\n }\n });\n });\n return this;\n };\n lgQuery.prototype.hasClass = function (className) {\n if (!this.firstElement) {\n return false;\n }\n return this.firstElement.classList.contains(className);\n };\n lgQuery.prototype.hasAttribute = function (attribute) {\n if (!this.firstElement) {\n return false;\n }\n return this.firstElement.hasAttribute(attribute);\n };\n lgQuery.prototype.toggleClass = function (className) {\n if (!this.firstElement) {\n return this;\n }\n if (this.hasClass(className)) {\n this.removeClass(className);\n }\n else {\n this.addClass(className);\n }\n return this;\n };\n lgQuery.prototype.css = function (property, value) {\n var _this = this;\n this._each(function (el) {\n _this._setCssVendorPrefix(el, property, value);\n });\n return this;\n };\n // Need to pass separate namespaces for separate elements\n lgQuery.prototype.on = function (events, listener) {\n var _this = this;\n if (!this.selector) {\n return this;\n }\n events.split(' ').forEach(function (event) {\n if (!Array.isArray(lgQuery.eventListeners[event])) {\n lgQuery.eventListeners[event] = [];\n }\n lgQuery.eventListeners[event].push(listener);\n _this.selector.addEventListener(event.split('.')[0], listener);\n });\n return this;\n };\n // @todo - test this\n lgQuery.prototype.once = function (event, listener) {\n var _this = this;\n this.on(event, function () {\n _this.off(event);\n listener(event);\n });\n return this;\n };\n lgQuery.prototype.off = function (event) {\n var _this = this;\n if (!this.selector) {\n return this;\n }\n Object.keys(lgQuery.eventListeners).forEach(function (eventName) {\n if (_this.isEventMatched(event, eventName)) {\n lgQuery.eventListeners[eventName].forEach(function (listener) {\n _this.selector.removeEventListener(eventName.split('.')[0], listener);\n });\n lgQuery.eventListeners[eventName] = [];\n }\n });\n return this;\n };\n lgQuery.prototype.trigger = function (event, detail) {\n if (!this.firstElement) {\n return this;\n }\n var customEvent = new CustomEvent(event.split('.')[0], {\n detail: detail || null,\n });\n this.firstElement.dispatchEvent(customEvent);\n return this;\n };\n // Does not support IE\n lgQuery.prototype.load = function (url) {\n var _this = this;\n fetch(url)\n .then(function (res) { return res.text(); })\n .then(function (html) {\n _this.selector.innerHTML = html;\n });\n return this;\n };\n lgQuery.prototype.html = function (html) {\n if (html === undefined) {\n if (!this.firstElement) {\n return '';\n }\n return this.firstElement.innerHTML;\n }\n this._each(function (el) {\n el.innerHTML = html;\n });\n return this;\n };\n lgQuery.prototype.append = function (html) {\n this._each(function (el) {\n if (typeof html === 'string') {\n el.insertAdjacentHTML('beforeend', html);\n }\n else {\n el.appendChild(html);\n }\n });\n return this;\n };\n lgQuery.prototype.prepend = function (html) {\n this._each(function (el) {\n el.insertAdjacentHTML('afterbegin', html);\n });\n return this;\n };\n lgQuery.prototype.remove = function () {\n this._each(function (el) {\n el.parentNode.removeChild(el);\n });\n return this;\n };\n lgQuery.prototype.empty = function () {\n this._each(function (el) {\n el.innerHTML = '';\n });\n return this;\n };\n lgQuery.prototype.scrollTop = function (scrollTop) {\n if (scrollTop !== undefined) {\n document.body.scrollTop = scrollTop;\n document.documentElement.scrollTop = scrollTop;\n return this;\n }\n else {\n return (window.pageYOffset ||\n document.documentElement.scrollTop ||\n document.body.scrollTop ||\n 0);\n }\n };\n lgQuery.prototype.scrollLeft = function (scrollLeft) {\n if (scrollLeft !== undefined) {\n document.body.scrollLeft = scrollLeft;\n document.documentElement.scrollLeft = scrollLeft;\n return this;\n }\n else {\n return (window.pageXOffset ||\n document.documentElement.scrollLeft ||\n document.body.scrollLeft ||\n 0);\n }\n };\n lgQuery.prototype.offset = function () {\n if (!this.firstElement) {\n return {\n left: 0,\n top: 0,\n };\n }\n var rect = this.firstElement.getBoundingClientRect();\n var bodyMarginLeft = $LG('body').style().marginLeft;\n // Minus body margin - https://stackoverflow.com/questions/30711548/is-getboundingclientrect-left-returning-a-wrong-value\n return {\n left: rect.left - parseFloat(bodyMarginLeft) + this.scrollLeft(),\n top: rect.top + this.scrollTop(),\n };\n };\n lgQuery.prototype.style = function () {\n if (!this.firstElement) {\n return {};\n }\n return (this.firstElement.currentStyle ||\n window.getComputedStyle(this.firstElement));\n };\n // Width without padding and border even if box-sizing is used.\n lgQuery.prototype.width = function () {\n var style = this.style();\n return (this.firstElement.clientWidth -\n parseFloat(style.paddingLeft) -\n parseFloat(style.paddingRight));\n };\n // Height without padding and border even if box-sizing is used.\n lgQuery.prototype.height = function () {\n var style = this.style();\n return (this.firstElement.clientHeight -\n parseFloat(style.paddingTop) -\n parseFloat(style.paddingBottom));\n };\n lgQuery.eventListeners = {};\n return lgQuery;\n}());\nexports.lgQuery = lgQuery;\nfunction $LG(selector) {\n initLgPolyfills();\n return new lgQuery(selector);\n}\nexports.$LG = $LG;\n//# sourceMappingURL=lgQuery.js.map","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LightGallery = void 0;\nvar lg_events_1 = require(\"./lg-events\");\nvar lg_settings_1 = require(\"./lg-settings\");\nvar lg_utils_1 = require(\"./lg-utils\");\nvar lgQuery_1 = require(\"./lgQuery\");\n// @ref - https://stackoverflow.com/questions/3971841/how-to-resize-images-proportionally-keeping-the-aspect-ratio\n// @ref - https://2ality.com/2017/04/setting-up-multi-platform-packages.html\n// Unique id for each gallery\nvar lgId = 0;\nvar LightGallery = /** @class */ (function () {\n function LightGallery(element, options) {\n this.lgOpened = false;\n this.index = 0;\n // lightGallery modules\n this.plugins = [];\n // false when lightGallery load first slide content;\n this.lGalleryOn = false;\n // True when a slide animation is in progress\n this.lgBusy = false;\n this.currentItemsInDom = [];\n // Scroll top value before lightGallery is opened\n this.prevScrollTop = 0;\n this.bodyPaddingRight = 0;\n this.isDummyImageRemoved = false;\n this.dragOrSwipeEnabled = false;\n this.mediaContainerPosition = {\n top: 0,\n bottom: 0,\n };\n if (!element) {\n return this;\n }\n lgId++;\n this.lgId = lgId;\n this.el = element;\n this.LGel = lgQuery_1.$LG(element);\n this.generateSettings(options);\n this.buildModules();\n // When using dynamic mode, ensure dynamicEl is an array\n if (this.settings.dynamic &&\n this.settings.dynamicEl !== undefined &&\n !Array.isArray(this.settings.dynamicEl)) {\n throw 'When using dynamic mode, you must also define dynamicEl as an Array.';\n }\n this.galleryItems = this.getItems();\n this.normalizeSettings();\n // Gallery items\n this.init();\n this.validateLicense();\n return this;\n }\n LightGallery.prototype.generateSettings = function (options) {\n // lightGallery settings\n this.settings = __assign(__assign({}, lg_settings_1.lightGalleryCoreSettings), options);\n if (this.settings.isMobile &&\n typeof this.settings.isMobile === 'function'\n ? this.settings.isMobile()\n : lg_utils_1.default.isMobile()) {\n var mobileSettings = __assign(__assign({}, this.settings.mobileSettings), this.settings.mobileSettings);\n this.settings = __assign(__assign({}, this.settings), mobileSettings);\n }\n };\n LightGallery.prototype.normalizeSettings = function () {\n if (this.settings.slideEndAnimation) {\n this.settings.hideControlOnEnd = false;\n }\n if (!this.settings.closable) {\n this.settings.swipeToClose = false;\n }\n // And reset it on close to get the correct value next time\n this.zoomFromOrigin = this.settings.zoomFromOrigin;\n // At the moment, Zoom from image doesn't support dynamic options\n // @todo add zoomFromOrigin support for dynamic images\n if (this.settings.dynamic) {\n this.zoomFromOrigin = false;\n }\n if (!this.settings.container) {\n this.settings.container = document.body;\n }\n // settings.preload should not be grater than $item.length\n this.settings.preload = Math.min(this.settings.preload, this.galleryItems.length);\n };\n LightGallery.prototype.init = function () {\n var _this = this;\n this.addSlideVideoInfo(this.galleryItems);\n this.buildStructure();\n this.LGel.trigger(lg_events_1.lGEvents.init, {\n instance: this,\n });\n if (this.settings.keyPress) {\n this.keyPress();\n }\n setTimeout(function () {\n _this.enableDrag();\n _this.enableSwipe();\n _this.triggerPosterClick();\n }, 50);\n this.arrow();\n if (this.settings.mousewheel) {\n this.mousewheel();\n }\n if (!this.settings.dynamic) {\n this.openGalleryOnItemClick();\n }\n };\n LightGallery.prototype.openGalleryOnItemClick = function () {\n var _this = this;\n var _loop_1 = function (index) {\n var element = this_1.items[index];\n var $element = lgQuery_1.$LG(element);\n // Using different namespace for click because click event should not unbind if selector is same object('this')\n // @todo manage all event listners - should have namespace that represent element\n var uuid = lgQuery_1.lgQuery.generateUUID();\n $element\n .attr('data-lg-id', uuid)\n .on(\"click.lgcustom-item-\" + uuid, function (e) {\n e.preventDefault();\n var currentItemIndex = _this.settings.index || index;\n _this.openGallery(currentItemIndex, element);\n });\n };\n var this_1 = this;\n // Using for loop instead of using bubbling as the items can be any html element.\n for (var index = 0; index < this.items.length; index++) {\n _loop_1(index);\n }\n };\n /**\n * Module constructor\n * Modules are build incrementally.\n * Gallery should be opened only once all the modules are initialized.\n * use moduleBuildTimeout to make sure this\n */\n LightGallery.prototype.buildModules = function () {\n var _this = this;\n this.settings.plugins.forEach(function (plugin) {\n _this.plugins.push(new plugin(_this, lgQuery_1.$LG));\n });\n };\n LightGallery.prototype.validateLicense = function () {\n if (!this.settings.licenseKey) {\n console.error('Please provide a valid license key');\n }\n else if (this.settings.licenseKey === '0000-0000-000-0000') {\n console.warn(\"lightGallery: \" + this.settings.licenseKey + \" license key is not valid for production use\");\n }\n };\n LightGallery.prototype.getSlideItem = function (index) {\n return lgQuery_1.$LG(this.getSlideItemId(index));\n };\n LightGallery.prototype.getSlideItemId = function (index) {\n return \"#lg-item-\" + this.lgId + \"-\" + index;\n };\n LightGallery.prototype.getIdName = function (id) {\n return id + \"-\" + this.lgId;\n };\n LightGallery.prototype.getElementById = function (id) {\n return lgQuery_1.$LG(\"#\" + this.getIdName(id));\n };\n LightGallery.prototype.manageSingleSlideClassName = function () {\n if (this.galleryItems.length < 2) {\n this.outer.addClass('lg-single-item');\n }\n else {\n this.outer.removeClass('lg-single-item');\n }\n };\n LightGallery.prototype.buildStructure = function () {\n var _this = this;\n var container = this.$container && this.$container.get();\n if (container) {\n return;\n }\n var controls = '';\n var subHtmlCont = '';\n // Create controls\n if (this.settings.controls) {\n controls = \"<button type=\\\"button\\\" id=\\\"\" + this.getIdName('lg-prev') + \"\\\" aria-label=\\\"\" + this.settings.strings['previousSlide'] + \"\\\" class=\\\"lg-prev lg-icon\\\"> \" + this.settings.prevHtml + \" </button>\\n <button type=\\\"button\\\" id=\\\"\" + this.getIdName('lg-next') + \"\\\" aria-label=\\\"\" + this.settings.strings['nextSlide'] + \"\\\" class=\\\"lg-next lg-icon\\\"> \" + this.settings.nextHtml + \" </button>\";\n }\n if (this.settings.appendSubHtmlTo !== '.lg-item') {\n subHtmlCont =\n '<div class=\"lg-sub-html\" role=\"status\" aria-live=\"polite\"></div>';\n }\n var addClasses = '';\n if (this.settings.allowMediaOverlap) {\n // Do not remove space before last single quote\n addClasses += 'lg-media-overlap ';\n }\n var ariaLabelledby = this.settings.ariaLabelledby\n ? 'aria-labelledby=\"' + this.settings.ariaLabelledby + '\"'\n : '';\n var ariaDescribedby = this.settings.ariaDescribedby\n ? 'aria-describedby=\"' + this.settings.ariaDescribedby + '\"'\n : '';\n var containerClassName = \"lg-container \" + this.settings.addClass + \" \" + (document.body !== this.settings.container ? 'lg-inline' : '');\n var closeIcon = this.settings.closable && this.settings.showCloseIcon\n ? \"<button type=\\\"button\\\" aria-label=\\\"\" + this.settings.strings['closeGallery'] + \"\\\" id=\\\"\" + this.getIdName('lg-close') + \"\\\" class=\\\"lg-close lg-icon\\\"></button>\"\n : '';\n var maximizeIcon = this.settings.showMaximizeIcon\n ? \"<button type=\\\"button\\\" aria-label=\\\"\" + this.settings.strings['toggleMaximize'] + \"\\\" id=\\\"\" + this.getIdName('lg-maximize') + \"\\\" class=\\\"lg-maximize lg-icon\\\"></button>\"\n : '';\n var template = \"\\n <div class=\\\"\" + containerClassName + \"\\\" id=\\\"\" + this.getIdName('lg-container') + \"\\\" tabindex=\\\"-1\\\" aria-modal=\\\"true\\\" \" + ariaLabelledby + \" \" + ariaDescribedby + \" role=\\\"dialog\\\"\\n >\\n <div id=\\\"\" + this.getIdName('lg-backdrop') + \"\\\" class=\\\"lg-backdrop\\\"></div>\\n\\n <div id=\\\"\" + this.getIdName('lg-outer') + \"\\\" class=\\\"lg-outer lg-use-css3 lg-css3 lg-hide-items \" + addClasses + \" \\\">\\n\\n <div id=\\\"\" + this.getIdName('lg-content') + \"\\\" class=\\\"lg-content\\\">\\n <div id=\\\"\" + this.getIdName('lg-inner') + \"\\\" class=\\\"lg-inner\\\">\\n </div>\\n \" + controls + \"\\n </div>\\n <div id=\\\"\" + this.getIdName('lg-toolbar') + \"\\\" class=\\\"lg-toolbar lg-group\\\">\\n \" + maximizeIcon + \"\\n \" + closeIcon + \"\\n </div>\\n \" + (this.settings.appendSubHtmlTo === '.lg-outer'\n ? subHtmlCont\n : '') + \"\\n <div id=\\\"\" + this.getIdName('lg-components') + \"\\\" class=\\\"lg-components\\\">\\n \" + (this.settings.appendSubHtmlTo === '.lg-sub-html'\n ? subHtmlCont\n : '') + \"\\n </div>\\n </div>\\n </div>\\n \";\n lgQuery_1.$LG(this.settings.container).append(template);\n if (document.body !== this.settings.container) {\n lgQuery_1.$LG(this.settings.container).css('position', 'relative');\n }\n this.outer = this.getElementById('lg-outer');\n this.$lgComponents = this.getElementById('lg-components');\n this.$backdrop = this.getElementById('lg-backdrop');\n this.$container = this.getElementById('lg-container');\n this.$inner = this.getElementById('lg-inner');\n this.$content = this.getElementById('lg-content');\n this.$toolbar = this.getElementById('lg-toolbar');\n this.$backdrop.css('transition-duration', this.settings.backdropDuration + 'ms');\n var outerClassNames = this.settings.mode + \" \";\n this.manageSingleSlideClassName();\n if (this.settings.enableDrag) {\n outerClassNames += 'lg-grab ';\n }\n this.outer.addClass(outerClassNames);\n this.$inner.css('transition-timing-function', this.settings.easing);\n this.$inner.css('transition-duration', this.settings.speed + 'ms');\n if (this.settings.download) {\n this.$toolbar.append(\"<a id=\\\"\" + this.getIdName('lg-download') + \"\\\" target=\\\"_blank\\\" rel=\\\"noopener\\\" aria-label=\\\"\" + this.settings.strings['download'] + \"\\\" download class=\\\"lg-download lg-icon\\\"></a>\");\n }\n this.counter();\n lgQuery_1.$LG(window).on(\"resize.lg.global\" + this.lgId + \" orientationchange.lg.global\" + this.lgId, function () {\n _this.refreshOnResize();\n });\n this.hideBars();\n this.manageCloseGallery();\n this.toggleMaximize();\n this.initModules();\n };\n LightGallery.prototype.refreshOnResize = function () {\n if (this.lgOpened) {\n var currentGalleryItem = this.galleryItems[this.index];\n var __slideVideoInfo = currentGalleryItem.__slideVideoInfo;\n this.mediaContainerPosition = this.getMediaContainerPosition();\n var _a = this.mediaContainerPosition, top_1 = _a.top, bottom = _a.bottom;\n this.currentImageSize = lg_utils_1.default.getSize(this.items[this.index], this.outer, top_1 + bottom, __slideVideoInfo && this.settings.videoMaxSize);\n if (__slideVideoInfo) {\n this.resizeVideoSlide(this.index, this.currentImageSize);\n }\n if (this.zoomFromOrigin && !this.isDummyImageRemoved) {\n var imgStyle = this.getDummyImgStyles(this.currentImageSize);\n this.outer\n .find('.lg-current .lg-dummy-img')\n .first()\n .attr('style', imgStyle);\n }\n this.LGel.trigger(lg_events_1.lGEvents.containerResize);\n }\n };\n LightGallery.prototype.resizeVideoSlide = function (index, imageSize) {\n var lgVideoStyle = this.getVideoContStyle(imageSize);\n var currentSlide = this.getSlideItem(index);\n currentSlide.find('.lg-video-cont').attr('style', lgVideoStyle);\n };\n /**\n * Update slides dynamically.\n * Add, edit or delete slides dynamically when lightGallery is opened.\n * Modify the current gallery items and pass it via updateSlides method\n * @note\n * - Do not mutate existing lightGallery items directly.\n * - Always pass new list of gallery items\n * - You need to take care of thumbnails outside the gallery if any\n * - user this method only if you want to update slides when the gallery is opened. Otherwise, use `refresh()` method.\n * @param items Gallery items\n * @param index After the update operation, which slide gallery should navigate to\n * @category lGPublicMethods\n * @example\n * const plugin = lightGallery();\n *\n * // Adding slides dynamically\n * let galleryItems = [\n * // Access existing lightGallery items\n * // galleryItems are automatically generated internally from the gallery HTML markup\n * // or directly from galleryItems when dynamic gallery is used\n * ...plugin.galleryItems,\n * ...[\n * {\n * src: 'img/img-1.png',\n * thumb: 'img/thumb1.png',\n * },\n * ],\n * ];\n * plugin.updateSlides(\n * galleryItems,\n * plugin.index,\n * );\n *\n *\n * // Remove slides dynamically\n * galleryItems = JSON.parse(\n * JSON.stringify(updateSlideInstance.galleryItems),\n * );\n * galleryItems.shift();\n * updateSlideInstance.updateSlides(galleryItems, 1);\n * @see <a href=\"/demos/update-slides/\">Demo</a>\n */\n LightGallery.prototype.updateSlides = function (items, index) {\n if (this.index > items.length - 1) {\n this.index = items.length - 1;\n }\n if (items.length === 1) {\n this.index = 0;\n }\n if (!items.length) {\n this.closeGallery();\n return;\n }\n var currentSrc = this.galleryItems[index].src;\n this.galleryItems = items;\n this.updateControls();\n this.$inner.empty();\n this.currentItemsInDom = [];\n var _index = 0;\n // Find the current index based on source value of the slide\n this.galleryItems.some(function (galleryItem, itemIndex) {\n if (galleryItem.src === currentSrc) {\n _index = itemIndex;\n return true;\n }\n return false;\n });\n this.currentItemsInDom = this.organizeSlideItems(_index, -1);\n this.loadContent(_index, true);\n this.getSlideItem(_index).addClass('lg-current');\n this.index = _index;\n this.updateCurrentCounter(_index);\n this.LGel.trigger(lg_events_1.lGEvents.updateSlides);\n };\n // Get gallery items based on multiple conditions\n LightGallery.prototype.getItems = function () {\n // Gallery items\n this.items = [];\n if (!this.settings.dynamic) {\n if (this.settings.selector === 'this') {\n this.items.push(this.el);\n }\n else if (this.settings.selector) {\n if (typeof this.settings.selector === 'string') {\n if (this.settings.selectWithin) {\n var selectWithin = lgQuery_1.$LG(this.settings.selectWithin);\n this.items = selectWithin\n .find(this.settings.selector)\n .get();\n }\n else {\n this.items = this.el.querySelectorAll(this.settings.selector);\n }\n }\n else {\n this.items = this.settings.selector;\n }\n }\n else {\n this.items = this.el.children;\n }\n return lg_utils_1.default.getDynamicOptions(this.items, this.settings.extraProps, this.settings.getCaptionFromTitleOrAlt, this.settings.exThumbImage);\n }\n else {\n return this.settings.dynamicEl || [];\n }\n };\n LightGallery.prototype.shouldHideScrollbar = function () {\n return (this.settings.hideScrollbar &&\n document.body === this.settings.container);\n };\n LightGallery.prototype.hideScrollbar = function () {\n if (!this.shouldHideScrollbar()) {\n return;\n }\n this.bodyPaddingRight = parseFloat(lgQuery_1.$LG('body').style().paddingRight);\n var bodyRect = document.documentElement.getBoundingClientRect();\n var scrollbarWidth = window.innerWidth - bodyRect.width;\n lgQuery_1.$LG(document.body).css('padding-right', scrollbarWidth + this.bodyPaddingRight + 'px');\n lgQuery_1.$LG(document.body).addClass('lg-overlay-open');\n };\n LightGallery.prototype.resetScrollBar = function () {\n if (!this.shouldHideScrollbar()) {\n return;\n }\n lgQuery_1.$LG(document.body).css('padding-right', this.bodyPaddingRight + 'px');\n lgQuery_1.$LG(document.body).removeClass('lg-overlay-open');\n };\n /**\n * Open lightGallery.\n * Open gallery with specific slide by passing index of the slide as parameter.\n * @category lGPublicMethods\n * @param {Number} index - index of the slide\n * @param {HTMLElement} element - Which image lightGallery should zoom from\n *\n * @example\n * const $dynamicGallery = document.getElementById('dynamic-gallery-demo');\n * const dynamicGallery = lightGallery($dynamicGallery, {\n * dynamic: true,\n * dynamicEl: [\n * {\n * src: 'img/1.jpg',\n * thumb: 'img/thumb-1.jpg',\n * subHtml: '<h4>Image 1 title</h4><p>Image 1 descriptions.</p>',\n * },\n * ...\n * ],\n * });\n * $dynamicGallery.addEventListener('click', function () {\n * // Starts with third item.(Optional).\n * // This is useful if you want use dynamic mode with\n * // custom thumbnails (thumbnails outside gallery),\n * dynamicGallery.openGallery(2);\n * });\n *\n */\n LightGallery.prototype.openGallery = function (index, element) {\n var _this = this;\n if (index === void 0) { index = this.settings.index; }\n // prevent accidental double execution\n if (this.lgOpened)\n return;\n this.lgOpened = true;\n this.outer.removeClass('lg-hide-items');\n this.hideScrollbar();\n // Add display block, but still has opacity 0\n this.$container.addClass('lg-show');\n var itemsToBeInsertedToDom = this.getItemsToBeInsertedToDom(index, index);\n this.currentItemsInDom = itemsToBeInsertedToDom;\n var items = '';\n itemsToBeInsertedToDom.forEach(function (item) {\n items = items + (\"<div id=\\\"\" + item + \"\\\" class=\\\"lg-item\\\"></div>\");\n });\n this.$inner.append(items);\n this.addHtml(index);\n var transform = '';\n this.mediaContainerPosition = this.getMediaContainerPosition();\n var _a = this.mediaContainerPosition, top = _a.top, bottom = _a.bottom;\n if (!this.settings.allowMediaOverlap) {\n this.setMediaContainerPosition(top, bottom);\n }\n var __slideVideoInfo = this.galleryItems[index].__slideVideoInfo;\n if (this.zoomFromOrigin && element) {\n this.currentImageSize = lg_utils_1.default.getSize(element, this.outer, top + bottom, __slideVideoInfo && this.settings.videoMaxSize);\n transform = lg_utils_1.default.getTransform(element, this.outer, top, bottom, this.currentImageSize);\n }\n if (!this.zoomFromOrigin || !transform) {\n this.outer.addClass(this.settings.startClass);\n this.getSlideItem(index).removeClass('lg-complete');\n }\n var timeout = this.settings.zoomFromOrigin\n ? 100\n : this.settings.backdropDuration;\n setTimeout(function () {\n _this.outer.addClass('lg-components-open');\n }, timeout);\n this.index = index;\n this.LGel.trigger(lg_events_1.lGEvents.beforeOpen);\n // add class lg-current to remove initial transition\n this.getSlideItem(index).addClass('lg-current');\n this.lGalleryOn = false;\n // Store the current scroll top value to scroll back after closing the gallery..\n this.prevScrollTop = lgQuery_1.$LG(window).scrollTop();\n setTimeout(function () {\n // Need to check both zoomFromOrigin and transform values as we need to set set the\n // default opening animation if user missed to add the lg-size attribute\n if (_this.zoomFromOrigin && transform) {\n var currentSlide_1 = _this.getSlideItem(index);\n currentSlide_1.css('transform', transform);\n setTimeout(function () {\n currentSlide_1\n .addClass('lg-start-progress lg-start-end-progress')\n .css('transition-duration', _this.settings.startAnimationDuration + 'ms');\n _this.outer.addClass('lg-zoom-from-image');\n });\n setTimeout(function () {\n currentSlide_1.css('transform', 'translate3d(0, 0, 0)');\n }, 100);\n }\n setTimeout(function () {\n _this.$backdrop.addClass('in');\n _this.$container.addClass('lg-show-in');\n }, 10);\n setTimeout(function () {\n if (_this.settings.trapFocus &&\n document.body === _this.settings.container) {\n _this.trapFocus();\n }\n }, _this.settings.backdropDuration + 50);\n // lg-visible class resets gallery opacity to 1\n if (!_this.zoomFromOrigin || !transform) {\n setTimeout(function () {\n _this.outer.addClass('lg-visible');\n }, _this.settings.backdropDuration);\n }\n // initiate slide function\n _this.slide(index, false, false, false);\n _this.LGel.trigger(lg_events_1.lGEvents.afterOpen);\n });\n if (document.body === this.settings.container) {\n lgQuery_1.$LG('html').addClass('lg-on');\n }\n };\n /**\n * Note - Changing the position of the media on every slide transition creates a flickering effect.\n * Therefore, The height of the caption is calculated dynamically, only once based on the first slide caption.\n * if you have dynamic captions for each media,\n * you can provide an appropriate height for the captions via allowMediaOverlap option\n */\n LightGallery.prototype.getMediaContainerPosition = function () {\n if (this.settings.allowMediaOverlap) {\n return {\n top: 0,\n bottom: 0,\n };\n }\n var top = this.$toolbar.get().clientHeight || 0;\n var subHtml = this.outer.find('.lg-components .lg-sub-html').get();\n var captionHeight = this.settings.defaultCaptionHeight ||\n (subHtml && subHtml.clientHeight) ||\n 0;\n var thumbContainer = this.outer.find('.lg-thumb-outer').get();\n var thumbHeight = thumbContainer ? thumbContainer.clientHeight : 0;\n var bottom = thumbHeight + captionHeight;\n return {\n top: top,\n bottom: bottom,\n };\n };\n LightGallery.prototype.setMediaContainerPosition = function (top, bottom) {\n if (top === void 0) { top = 0; }\n if (bottom === void 0) { bottom = 0; }\n this.$content.css('top', top + 'px').css('bottom', bottom + 'px');\n };\n LightGallery.prototype.hideBars = function () {\n var _this = this;\n // Hide controllers if mouse doesn't move for some period\n setTimeout(function () {\n _this.outer.removeClass('lg-hide-items');\n if (_this.settings.hideBarsDelay > 0) {\n _this.outer.on('mousemove.lg click.lg touchstart.lg', function () {\n _this.outer.removeClass('lg-hide-items');\n clearTimeout(_this.hideBarTimeout);\n // Timeout will be cleared on each slide movement also\n _this.hideBarTimeout = setTimeout(function () {\n _this.outer.addClass('lg-hide-items');\n }, _this.settings.hideBarsDelay);\n });\n _this.outer.trigger('mousemove.lg');\n }\n }, this.settings.showBarsAfter);\n };\n LightGallery.prototype.initPictureFill = function ($img) {\n if (this.settings.supportLegacyBrowser) {\n try {\n picturefill({\n elements: [$img.get()],\n });\n }\n catch (e) {\n console.warn('lightGallery :- If you want srcset or picture tag to be supported for older browser please include picturefil javascript library in your document.');\n }\n }\n };\n /**\n * @desc Create image counter\n * Ex: 1/10\n */\n LightGallery.prototype.counter = function () {\n if (this.settings.counter) {\n var counterHtml = \"<div class=\\\"lg-counter\\\" role=\\\"status\\\" aria-live=\\\"polite\\\">\\n <span id=\\\"\" + this.getIdName('lg-counter-current') + \"\\\" class=\\\"lg-counter-current\\\">\" + (this.index + 1) + \" </span> /\\n <span id=\\\"\" + this.getIdName('lg-counter-all') + \"\\\" class=\\\"lg-counter-all\\\">\" + this.galleryItems.length + \" </span></div>\";\n this.outer.find(this.settings.appendCounterTo).append(counterHtml);\n }\n };\n /**\n * @desc add sub-html into the slide\n * @param {Number} index - index of the slide\n */\n LightGallery.prototype.addHtml = function (index) {\n var subHtml;\n var subHtmlUrl;\n if (this.galleryItems[index].subHtmlUrl) {\n subHtmlUrl = this.galleryItems[index].subHtmlUrl;\n }\n else {\n subHtml = this.galleryItems[index].subHtml;\n }\n if (!subHtmlUrl) {\n if (subHtml) {\n // get first letter of sub-html\n // if first letter starts with . or # get the html form the jQuery object\n var fL = subHtml.substring(0, 1);\n if (fL === '.' || fL === '#') {\n if (this.settings.subHtmlSelectorRelative &&\n !this.settings.dynamic) {\n subHtml = lgQuery_1.$LG(this.items)\n .eq(index)\n .find(subHtml)\n .first()\n .html();\n }\n else {\n subHtml = lgQuery_1.$LG(subHtml).first().html();\n }\n }\n }\n else {\n subHtml = '';\n }\n }\n if (this.settings.appendSubHtmlTo !== '.lg-item') {\n if (subHtmlUrl) {\n this.outer.find('.lg-sub-html').load(subHtmlUrl);\n }\n else {\n this.outer.find('.lg-sub-html').html(subHtml);\n }\n }\n else {\n var currentSlide = lgQuery_1.$LG(this.getSlideItemId(index));\n if (subHtmlUrl) {\n currentSlide.load(subHtmlUrl);\n }\n else {\n currentSlide.append(\"<div class=\\\"lg-sub-html\\\">\" + subHtml + \"</div>\");\n }\n }\n // Add lg-empty-html class if title doesn't exist\n if (typeof subHtml !== 'undefined' && subHtml !== null) {\n if (subHtml === '') {\n this.outer\n .find(this.settings.appendSubHtmlTo)\n .addClass('lg-empty-html');\n }\n else {\n this.outer\n .find(this.settings.appendSubHtmlTo)\n .removeClass('lg-empty-html');\n }\n }\n this.LGel.trigger(lg_events_1.lGEvents.afterAppendSubHtml, {\n index: index,\n });\n };\n /**\n * @desc Preload slides\n * @param {Number} index - index of the slide\n * @todo preload not working for the first slide, Also, should work for the first and last slide as well\n */\n LightGallery.prototype.preload = function (index) {\n for (var i = 1; i <= this.settings.preload; i++) {\n if (i >= this.galleryItems.length - index) {\n break;\n }\n this.loadContent(index + i, false);\n }\n for (var j = 1; j <= this.settings.preload; j++) {\n if (index - j < 0) {\n break;\n }\n this.loadContent(index - j, false);\n }\n };\n LightGallery.prototype.getDummyImgStyles = function (imageSize) {\n if (!imageSize)\n return '';\n return \"width:\" + imageSize.width + \"px;\\n margin-left: -\" + imageSize.width / 2 + \"px;\\n margin-top: -\" + imageSize.height / 2 + \"px;\\n height:\" + imageSize.height + \"px\";\n };\n LightGallery.prototype.getVideoContStyle = function (imageSize) {\n if (!imageSize)\n return '';\n return \"width:\" + imageSize.width + \"px;\\n height:\" + imageSize.height + \"px\";\n };\n LightGallery.prototype.getDummyImageContent = function ($currentSlide, index, alt) {\n var $currentItem;\n if (!this.settings.dynamic) {\n $currentItem = lgQuery_1.$LG(this.items).eq(index);\n }\n if ($currentItem) {\n var _dummyImgSrc = void 0;\n if (!this.settings.exThumbImage) {\n _dummyImgSrc = $currentItem.find('img').first().attr('src');\n }\n else {\n _dummyImgSrc = $currentItem.attr(this.settings.exThumbImage);\n }\n if (!_dummyImgSrc)\n return '';\n var imgStyle = this.getDummyImgStyles(this.currentImageSize);\n var dummyImgContent = \"<img \" + alt + \" style=\\\"\" + imgStyle + \"\\\" class=\\\"lg-dummy-img\\\" src=\\\"\" + _dummyImgSrc + \"\\\" />\";\n $currentSlide.addClass('lg-first-slide');\n this.outer.addClass('lg-first-slide-loading');\n return dummyImgContent;\n }\n return '';\n };\n LightGallery.prototype.setImgMarkup = function (src, $currentSlide, index) {\n var currentGalleryItem = this.galleryItems[index];\n var alt = currentGalleryItem.alt, srcset = currentGalleryItem.srcset, sizes = currentGalleryItem.sizes, sources = currentGalleryItem.sources;\n // Use the thumbnail as dummy image which will be resized to actual image size and\n // displayed on top of actual image\n var imgContent = '';\n var altAttr = alt ? 'alt=\"' + alt + '\"' : '';\n if (this.isFirstSlideWithZoomAnimation()) {\n imgContent = this.getDummyImageContent($currentSlide, index, altAttr);\n }\n else {\n imgContent = lg_utils_1.default.getImgMarkup(index, src, altAttr, srcset, sizes, sources);\n }\n var imgMarkup = \"<picture class=\\\"lg-img-wrap\\\"> \" + imgContent + \"</picture>\";\n $currentSlide.prepend(imgMarkup);\n };\n LightGallery.prototype.onSlideObjectLoad = function ($slide, isHTML5VideoWithoutPoster, onLoad, onError) {\n var mediaObject = $slide.find('.lg-object').first();\n if (lg_utils_1.default.isImageLoaded(mediaObject.get()) ||\n isHTML5VideoWithoutPoster) {\n onLoad();\n }\n else {\n mediaObject.on('load.lg error.lg', function () {\n onLoad && onLoad();\n });\n mediaObject.on('error.lg', function () {\n onError && onError();\n });\n }\n };\n /**\n *\n * @param $el Current slide item\n * @param index\n * @param delay Delay is 0 except first time\n * @param speed Speed is same as delay, except it is 0 if gallery is opened via hash plugin\n * @param isFirstSlide\n */\n LightGallery.prototype.onLgObjectLoad = function (currentSlide, index, delay, speed, isFirstSlide, isHTML5VideoWithoutPoster) {\n var _this = this;\n this.onSlideObjectLoad(currentSlide, isHTML5VideoWithoutPoster, function () {\n _this.triggerSlideItemLoad(currentSlide, index, delay, speed, isFirstSlide);\n }, function () {\n currentSlide.addClass('lg-complete lg-complete_');\n currentSlide.html('<span class=\"lg-error-msg\">Oops... Failed to load content...</span>');\n });\n };\n LightGallery.prototype.triggerSlideItemLoad = function ($currentSlide, index, delay, speed, isFirstSlide) {\n var _this = this;\n var currentGalleryItem = this.galleryItems[index];\n // Adding delay for video slides without poster for better performance and user experience\n // Videos should start playing once once the gallery is completely loaded\n var _speed = isFirstSlide &&\n this.getSlideType(currentGalleryItem) === 'video' &&\n !currentGalleryItem.poster\n ? speed\n : 0;\n setTimeout(function () {\n $currentSlide.addClass('lg-complete lg-complete_');\n _this.LGel.trigger(lg_events_1.lGEvents.slideItemLoad, {\n index: index,\n delay: delay || 0,\n isFirstSlide: isFirstSlide,\n });\n }, _speed);\n };\n LightGallery.prototype.isFirstSlideWithZoomAnimation = function () {\n return !!(!this.lGalleryOn &&\n this.zoomFromOrigin &&\n this.currentImageSize);\n };\n // Add video slideInfo\n LightGallery.prototype.addSlideVideoInfo = function (items) {\n var _this = this;\n items.forEach(function (element, index) {\n element.__slideVideoInfo = lg_utils_1.default.isVideo(element.src, !!element.video, index);\n if (element.__slideVideoInfo &&\n _this.settings.loadYouTubePoster &&\n !element.poster &&\n element.__slideVideoInfo.youtube) {\n element.poster = \"//img.youtube.com/vi/\" + element.__slideVideoInfo.youtube[1] + \"/maxresdefault.jpg\";\n }\n });\n };\n /**\n * Load slide content into slide.\n * This is used to load content into slides that is not visible too\n * @param {Number} index - index of the slide.\n * @param {Boolean} rec - if true call loadcontent() function again.\n */\n LightGallery.prototype.loadContent = function (index, rec) {\n var _this = this;\n var currentGalleryItem = this.galleryItems[index];\n var $currentSlide = lgQuery_1.$LG(this.getSlideItemId(index));\n var poster = currentGalleryItem.poster, srcset = currentGalleryItem.srcset, sizes = currentGalleryItem.sizes, sources = currentGalleryItem.sources;\n var src = currentGalleryItem.src;\n var video = currentGalleryItem.video;\n var _html5Video = video && typeof video === 'string' ? JSON.parse(video) : video;\n if (currentGalleryItem.responsive) {\n var srcDyItms = currentGalleryItem.responsive.split(',');\n src = lg_utils_1.default.getResponsiveSrc(srcDyItms) || src;\n }\n var videoInfo = currentGalleryItem.__slideVideoInfo;\n var lgVideoStyle = '';\n var iframe = !!currentGalleryItem.iframe;\n var isFirstSlide = !this.lGalleryOn;\n // delay for adding complete class. it is 0 except first time.\n var delay = 0;\n if (isFirstSlide) {\n if (this.zoomFromOrigin && this.currentImageSize) {\n delay = this.settings.startAnimationDuration + 10;\n }\n else {\n delay = this.settings.backdropDuration + 10;\n }\n }\n if (!$currentSlide.hasClass('lg-loaded')) {\n if (videoInfo) {\n var _a = this.mediaContainerPosition, top_2 = _a.top, bottom = _a.bottom;\n var videoSize = lg_utils_1.default.getSize(this.items[index], this.outer, top_2 + bottom, videoInfo && this.settings.videoMaxSize);\n lgVideoStyle = this.getVideoContStyle(videoSize);\n }\n if (iframe) {\n var markup = lg_utils_1.default.getIframeMarkup(this.settings.iframeWidth, this.settings.iframeHeight, this.settings.iframeMaxWidth, this.settings.iframeMaxHeight, src, currentGalleryItem.iframeTitle);\n $currentSlide.prepend(markup);\n }\n else if (poster) {\n var dummyImg = '';\n var hasStartAnimation = isFirstSlide &&\n this.zoomFromOrigin &&\n this.currentImageSize;\n if (hasStartAnimation) {\n dummyImg = this.getDummyImageContent($currentSlide, index, '');\n }\n var markup = lg_utils_1.default.getVideoPosterMarkup(poster, dummyImg || '', lgVideoStyle, this.settings.strings['playVideo'], videoInfo);\n $currentSlide.prepend(markup);\n }\n else if (videoInfo) {\n var markup = \"<div class=\\\"lg-video-cont \\\" style=\\\"\" + lgVideoStyle + \"\\\"></div>\";\n $currentSlide.prepend(markup);\n }\n else {\n this.setImgMarkup(src, $currentSlide, index);\n if (srcset || sources) {\n var $img = $currentSlide.find('.lg-object');\n this.initPictureFill($img);\n }\n }\n if (poster || videoInfo) {\n this.LGel.trigger(lg_events_1.lGEvents.hasVideo, {\n index: index,\n src: src,\n html5Video: _html5Video,\n hasPoster: !!poster,\n });\n }\n this.LGel.trigger(lg_events_1.lGEvents.afterAppendSlide, { index: index });\n if (this.lGalleryOn &&\n this.settings.appendSubHtmlTo === '.lg-item') {\n this.addHtml(index);\n }\n }\n // For first time add some delay for displaying the start animation.\n var _speed = 0;\n // Do not change the delay value because it is required for zoom plugin.\n // If gallery opened from direct url (hash) speed value should be 0\n if (delay && !lgQuery_1.$LG(document.body).hasClass('lg-from-hash')) {\n _speed = delay;\n }\n // Only for first slide and zoomFromOrigin is enabled\n if (this.isFirstSlideWithZoomAnimation()) {\n setTimeout(function () {\n $currentSlide\n .removeClass('lg-start-end-progress lg-start-progress')\n .removeAttr('style');\n }, this.settings.startAnimationDuration + 100);\n if (!$currentSlide.hasClass('lg-loaded')) {\n setTimeout(function () {\n if (_this.getSlideType(currentGalleryItem) === 'image') {\n var alt = currentGalleryItem.alt;\n var altAttr = alt ? 'alt=\"' + alt + '\"' : '';\n $currentSlide\n .find('.lg-img-wrap')\n .append(lg_utils_1.default.getImgMarkup(index, src, altAttr, srcset, sizes, currentGalleryItem.sources));\n if (srcset || sources) {\n var $img = $currentSlide.find('.lg-object');\n _this.initPictureFill($img);\n }\n }\n if (_this.getSlideType(currentGalleryItem) === 'image' ||\n (_this.getSlideType(currentGalleryItem) === 'video' &&\n poster)) {\n _this.onLgObjectLoad($currentSlide, index, delay, _speed, true, false);\n // load remaining slides once the slide is completely loaded\n _this.onSlideObjectLoad($currentSlide, !!(videoInfo && videoInfo.html5 && !poster), function () {\n _this.loadContentOnFirstSlideLoad(index, $currentSlide, _speed);\n }, function () {\n _this.loadContentOnFirstSlideLoad(index, $currentSlide, _speed);\n });\n }\n }, this.settings.startAnimationDuration + 100);\n }\n }\n // SLide content has been added to dom\n $currentSlide.addClass('lg-loaded');\n if (!this.isFirstSlideWithZoomAnimation() ||\n (this.getSlideType(currentGalleryItem) === 'video' && !poster)) {\n this.onLgObjectLoad($currentSlide, index, delay, _speed, isFirstSlide, !!(videoInfo && videoInfo.html5 && !poster));\n }\n // When gallery is opened once content is loaded (second time) need to add lg-complete class for css styling\n if ((!this.zoomFromOrigin || !this.currentImageSize) &&\n $currentSlide.hasClass('lg-complete_') &&\n !this.lGalleryOn) {\n setTimeout(function () {\n $currentSlide.addClass('lg-complete');\n }, this.settings.backdropDuration);\n }\n // Content loaded\n // Need to set lGalleryOn before calling preload function\n this.lGalleryOn = true;\n if (rec === true) {\n if (!$currentSlide.hasClass('lg-complete_')) {\n $currentSlide\n .find('.lg-object')\n .first()\n .on('load.lg error.lg', function () {\n _this.preload(index);\n });\n }\n else {\n this.preload(index);\n }\n }\n };\n /**\n * @desc Remove dummy image content and load next slides\n * Called only for the first time if zoomFromOrigin animation is enabled\n * @param index\n * @param $currentSlide\n * @param speed\n */\n LightGallery.prototype.loadContentOnFirstSlideLoad = function (index, $currentSlide, speed) {\n var _this = this;\n setTimeout(function () {\n $currentSlide.find('.lg-dummy-img').remove();\n $currentSlide.removeClass('lg-first-slide');\n _this.outer.removeClass('lg-first-slide-loading');\n _this.isDummyImageRemoved = true;\n _this.preload(index);\n }, speed + 300);\n };\n LightGallery.prototype.getItemsToBeInsertedToDom = function (index, prevIndex, numberOfItems) {\n var _this = this;\n if (numberOfItems === void 0) { numberOfItems = 0; }\n var itemsToBeInsertedToDom = [];\n // Minimum 2 items should be there\n var possibleNumberOfItems = Math.max(numberOfItems, 3);\n possibleNumberOfItems = Math.min(possibleNumberOfItems, this.galleryItems.length);\n var prevIndexItem = \"lg-item-\" + this.lgId + \"-\" + prevIndex;\n if (this.galleryItems.length <= 3) {\n this.galleryItems.forEach(function (_element, index) {\n itemsToBeInsertedToDom.push(\"lg-item-\" + _this.lgId + \"-\" + index);\n });\n return itemsToBeInsertedToDom;\n }\n if (index < (this.galleryItems.length - 1) / 2) {\n for (var idx = index; idx > index - possibleNumberOfItems / 2 && idx >= 0; idx--) {\n itemsToBeInsertedToDom.push(\"lg-item-\" + this.lgId + \"-\" + idx);\n }\n var numberOfExistingItems = itemsToBeInsertedToDom.length;\n for (var idx = 0; idx < possibleNumberOfItems - numberOfExistingItems; idx++) {\n itemsToBeInsertedToDom.push(\"lg-item-\" + this.lgId + \"-\" + (index + idx + 1));\n }\n }\n else {\n for (var idx = index; idx <= this.galleryItems.length - 1 &&\n idx < index + possibleNumberOfItems / 2; idx++) {\n itemsToBeInsertedToDom.push(\"lg-item-\" + this.lgId + \"-\" + idx);\n }\n var numberOfExistingItems = itemsToBeInsertedToDom.length;\n for (var idx = 0; idx < possibleNumberOfItems - numberOfExistingItems; idx++) {\n itemsToBeInsertedToDom.push(\"lg-item-\" + this.lgId + \"-\" + (index - idx - 1));\n }\n }\n if (this.settings.loop) {\n if (index === this.galleryItems.length - 1) {\n itemsToBeInsertedToDom.push(\"lg-item-\" + this.lgId + \"-\" + 0);\n }\n else if (index === 0) {\n itemsToBeInsertedToDom.push(\"lg-item-\" + this.lgId + \"-\" + (this.galleryItems.length - 1));\n }\n }\n if (itemsToBeInsertedToDom.indexOf(prevIndexItem) === -1) {\n itemsToBeInsertedToDom.push(\"lg-item-\" + this.lgId + \"-\" + prevIndex);\n }\n return itemsToBeInsertedToDom;\n };\n LightGallery.prototype.organizeSlideItems = function (index, prevIndex) {\n var _this = this;\n var itemsToBeInsertedToDom = this.getItemsToBeInsertedToDom(index, prevIndex, this.settings.numberOfSlideItemsInDom);\n itemsToBeInsertedToDom.forEach(function (item) {\n if (_this.currentItemsInDom.indexOf(item) === -1) {\n _this.$inner.append(\"<div id=\\\"\" + item + \"\\\" class=\\\"lg-item\\\"></div>\");\n }\n });\n this.currentItemsInDom.forEach(function (item) {\n if (itemsToBeInsertedToDom.indexOf(item) === -1) {\n lgQuery_1.$LG(\"#\" + item).remove();\n }\n });\n return itemsToBeInsertedToDom;\n };\n /**\n * Get previous index of the slide\n */\n LightGallery.prototype.getPreviousSlideIndex = function () {\n var prevIndex = 0;\n try {\n var currentItemId = this.outer\n .find('.lg-current')\n .first()\n .attr('id');\n prevIndex = parseInt(currentItemId.split('-')[3]) || 0;\n }\n catch (error) {\n prevIndex = 0;\n }\n return prevIndex;\n };\n LightGallery.prototype.setDownloadValue = function (index) {\n if (this.settings.download) {\n var currentGalleryItem = this.galleryItems[index];\n var hideDownloadBtn = currentGalleryItem.downloadUrl === false ||\n currentGalleryItem.downloadUrl === 'false';\n if (hideDownloadBtn) {\n this.outer.addClass('lg-hide-download');\n }\n else {\n var $download = this.getElementById('lg-download');\n this.outer.removeClass('lg-hide-download');\n $download.attr('href', currentGalleryItem.downloadUrl ||\n currentGalleryItem.src);\n if (currentGalleryItem.download) {\n $download.attr('download', currentGalleryItem.download);\n }\n }\n }\n };\n LightGallery.prototype.makeSlideAnimation = function (direction, currentSlideItem, previousSlideItem) {\n var _this = this;\n if (this.lGalleryOn) {\n previousSlideItem.addClass('lg-slide-progress');\n }\n setTimeout(function () {\n // remove all transitions\n _this.outer.addClass('lg-no-trans');\n _this.outer\n .find('.lg-item')\n .removeClass('lg-prev-slide lg-next-slide');\n if (direction === 'prev') {\n //prevslide\n currentSlideItem.addClass('lg-prev-slide');\n previousSlideItem.addClass('lg-next-slide');\n }\n else {\n // next slide\n currentSlideItem.addClass('lg-next-slide');\n previousSlideItem.addClass('lg-prev-slide');\n }\n // give 50 ms for browser to add/remove class\n setTimeout(function () {\n _this.outer.find('.lg-item').removeClass('lg-current');\n currentSlideItem.addClass('lg-current');\n // reset all transitions\n _this.outer.removeClass('lg-no-trans');\n }, 50);\n }, this.lGalleryOn ? this.settings.slideDelay : 0);\n };\n /**\n * Goto a specific slide.\n * @param {Number} index - index of the slide\n * @param {Boolean} fromTouch - true if slide function called via touch event or mouse drag\n * @param {Boolean} fromThumb - true if slide function called via thumbnail click\n * @param {String} direction - Direction of the slide(next/prev)\n * @category lGPublicMethods\n * @example\n * const plugin = lightGallery();\n * // to go to 3rd slide\n * plugin.slide(2);\n *\n */\n LightGallery.prototype.slide = function (index, fromTouch, fromThumb, direction) {\n var _this = this;\n var prevIndex = this.getPreviousSlideIndex();\n this.currentItemsInDom = this.organizeSlideItems(index, prevIndex);\n // Prevent multiple call, Required for hsh plugin\n if (this.lGalleryOn && prevIndex === index) {\n return;\n }\n var numberOfGalleryItems = this.galleryItems.length;\n if (!this.lgBusy) {\n if (this.settings.counter) {\n this.updateCurrentCounter(index);\n }\n var currentSlideItem = this.getSlideItem(index);\n var previousSlideItem_1 = this.getSlideItem(prevIndex);\n var currentGalleryItem = this.galleryItems[index];\n var videoInfo = currentGalleryItem.__slideVideoInfo;\n this.outer.attr('data-lg-slide-type', this.getSlideType(currentGalleryItem));\n this.setDownloadValue(index);\n if (videoInfo) {\n var _a = this.mediaContainerPosition, top_3 = _a.top, bottom = _a.bottom;\n var videoSize = lg_utils_1.default.getSize(this.items[index], this.outer, top_3 + bottom, videoInfo && this.settings.videoMaxSize);\n this.resizeVideoSlide(index, videoSize);\n }\n this.LGel.trigger(lg_events_1.lGEvents.beforeSlide, {\n prevIndex: prevIndex,\n index: index,\n fromTouch: !!fromTouch,\n fromThumb: !!fromThumb,\n });\n this.lgBusy = true;\n clearTimeout(this.hideBarTimeout);\n this.arrowDisable(index);\n if (!direction) {\n if (index < prevIndex) {\n direction = 'prev';\n }\n else if (index > prevIndex) {\n direction = 'next';\n }\n }\n if (!fromTouch) {\n this.makeSlideAnimation(direction, currentSlideItem, previousSlideItem_1);\n }\n else {\n this.outer\n .find('.lg-item')\n .removeClass('lg-prev-slide lg-current lg-next-slide');\n var touchPrev = void 0;\n var touchNext = void 0;\n if (numberOfGalleryItems > 2) {\n touchPrev = index - 1;\n touchNext = index + 1;\n if (index === 0 && prevIndex === numberOfGalleryItems - 1) {\n // next slide\n touchNext = 0;\n touchPrev = numberOfGalleryItems - 1;\n }\n else if (index === numberOfGalleryItems - 1 &&\n prevIndex === 0) {\n // prev slide\n touchNext = 0;\n touchPrev = numberOfGalleryItems - 1;\n }\n }\n else {\n touchPrev = 0;\n touchNext = 1;\n }\n if (direction === 'prev') {\n this.getSlideItem(touchNext).addClass('lg-next-slide');\n }\n else {\n this.getSlideItem(touchPrev).addClass('lg-prev-slide');\n }\n currentSlideItem.addClass('lg-current');\n }\n // Do not put load content in set timeout as it needs to load immediately when the gallery is opened\n if (!this.lGalleryOn) {\n this.loadContent(index, true);\n }\n else {\n setTimeout(function () {\n _this.loadContent(index, true);\n // Add title if this.settings.appendSubHtmlTo === lg-sub-html\n if (_this.settings.appendSubHtmlTo !== '.lg-item') {\n _this.addHtml(index);\n }\n }, this.settings.speed + 50 + (fromTouch ? 0 : this.settings.slideDelay));\n }\n setTimeout(function () {\n _this.lgBusy = false;\n previousSlideItem_1.removeClass('lg-slide-progress');\n _this.LGel.trigger(lg_events_1.lGEvents.afterSlide, {\n prevIndex: prevIndex,\n index: index,\n fromTouch: fromTouch,\n fromThumb: fromThumb,\n });\n }, (this.lGalleryOn ? this.settings.speed + 100 : 100) + (fromTouch ? 0 : this.settings.slideDelay));\n }\n this.index = index;\n };\n LightGallery.prototype.updateCurrentCounter = function (index) {\n this.getElementById('lg-counter-current').html(index + 1 + '');\n };\n LightGallery.prototype.updateCounterTotal = function () {\n this.getElementById('lg-counter-all').html(this.galleryItems.length + '');\n };\n LightGallery.prototype.getSlideType = function (item) {\n if (item.__slideVideoInfo) {\n return 'video';\n }\n else if (item.iframe) {\n return 'iframe';\n }\n else {\n return 'image';\n }\n };\n LightGallery.prototype.touchMove = function (startCoords, endCoords, e) {\n var distanceX = endCoords.pageX - startCoords.pageX;\n var distanceY = endCoords.pageY - startCoords.pageY;\n var allowSwipe = false;\n if (this.swipeDirection) {\n allowSwipe = true;\n }\n else {\n if (Math.abs(distanceX) > 15) {\n this.swipeDirection = 'horizontal';\n allowSwipe = true;\n }\n else if (Math.abs(distanceY) > 15) {\n this.swipeDirection = 'vertical';\n allowSwipe = true;\n }\n }\n if (!allowSwipe) {\n return;\n }\n var $currentSlide = this.getSlideItem(this.index);\n if (this.swipeDirection === 'horizontal') {\n e === null || e === void 0 ? void 0 : e.preventDefault();\n // reset opacity and transition duration\n this.outer.addClass('lg-dragging');\n // move current slide\n this.setTranslate($currentSlide, distanceX, 0);\n // move next and prev slide with current slide\n var width = $currentSlide.get().offsetWidth;\n var slideWidthAmount = (width * 15) / 100;\n var gutter = slideWidthAmount - Math.abs((distanceX * 10) / 100);\n this.setTranslate(this.outer.find('.lg-prev-slide').first(), -width + distanceX - gutter, 0);\n this.setTranslate(this.outer.find('.lg-next-slide').first(), width + distanceX + gutter, 0);\n }\n else if (this.swipeDirection === 'vertical') {\n if (this.settings.swipeToClose) {\n e === null || e === void 0 ? void 0 : e.preventDefault();\n this.$container.addClass('lg-dragging-vertical');\n var opacity = 1 - Math.abs(distanceY) / window.innerHeight;\n this.$backdrop.css('opacity', opacity);\n var scale = 1 - Math.abs(distanceY) / (window.innerWidth * 2);\n this.setTranslate($currentSlide, 0, distanceY, scale, scale);\n if (Math.abs(distanceY) > 100) {\n this.outer\n .addClass('lg-hide-items')\n .removeClass('lg-components-open');\n }\n }\n }\n };\n LightGallery.prototype.touchEnd = function (endCoords, startCoords, event) {\n var _this = this;\n var distance;\n // keep slide animation for any mode while dragg/swipe\n if (this.settings.mode !== 'lg-slide') {\n this.outer.addClass('lg-slide');\n }\n // set transition duration\n setTimeout(function () {\n _this.$container.removeClass('lg-dragging-vertical');\n _this.outer\n .removeClass('lg-dragging lg-hide-items')\n .addClass('lg-components-open');\n var triggerClick = true;\n if (_this.swipeDirection === 'horizontal') {\n distance = endCoords.pageX - startCoords.pageX;\n var distanceAbs = Math.abs(endCoords.pageX - startCoords.pageX);\n if (distance < 0 &&\n distanceAbs > _this.settings.swipeThreshold) {\n _this.goToNextSlide(true);\n triggerClick = false;\n }\n else if (distance > 0 &&\n distanceAbs > _this.settings.swipeThreshold) {\n _this.goToPrevSlide(true);\n triggerClick = false;\n }\n }\n else if (_this.swipeDirection === 'vertical') {\n distance = Math.abs(endCoords.pageY - startCoords.pageY);\n if (_this.settings.closable &&\n _this.settings.swipeToClose &&\n distance > 100) {\n _this.closeGallery();\n return;\n }\n else {\n _this.$backdrop.css('opacity', 1);\n }\n }\n _this.outer.find('.lg-item').removeAttr('style');\n if (triggerClick &&\n Math.abs(endCoords.pageX - startCoords.pageX) < 5) {\n // Trigger click if distance is less than 5 pix\n var target = lgQuery_1.$LG(event.target);\n if (_this.isPosterElement(target)) {\n _this.LGel.trigger(lg_events_1.lGEvents.posterClick);\n }\n }\n _this.swipeDirection = undefined;\n });\n // remove slide class once drag/swipe is completed if mode is not slide\n setTimeout(function () {\n if (!_this.outer.hasClass('lg-dragging') &&\n _this.settings.mode !== 'lg-slide') {\n _this.outer.removeClass('lg-slide');\n }\n }, this.settings.speed + 100);\n };\n LightGallery.prototype.enableSwipe = function () {\n var _this = this;\n var startCoords = {};\n var endCoords = {};\n var isMoved = false;\n var isSwiping = false;\n if (this.settings.enableSwipe) {\n this.$inner.on('touchstart.lg', function (e) {\n _this.dragOrSwipeEnabled = true;\n var $item = _this.getSlideItem(_this.index);\n if ((lgQuery_1.$LG(e.target).hasClass('lg-item') ||\n $item.get().contains(e.target)) &&\n !_this.outer.hasClass('lg-zoomed') &&\n !_this.lgBusy &&\n e.targetTouches.length === 1) {\n isSwiping = true;\n _this.touchAction = 'swipe';\n _this.manageSwipeClass();\n startCoords = {\n pageX: e.targetTouches[0].pageX,\n pageY: e.targetTouches[0].pageY,\n };\n }\n });\n this.$inner.on('touchmove.lg', function (e) {\n if (isSwiping &&\n _this.touchAction === 'swipe' &&\n e.targetTouches.length === 1) {\n endCoords = {\n pageX: e.targetTouches[0].pageX,\n pageY: e.targetTouches[0].pageY,\n };\n _this.touchMove(startCoords, endCoords, e);\n isMoved = true;\n }\n });\n this.$inner.on('touchend.lg', function (event) {\n if (_this.touchAction === 'swipe') {\n if (isMoved) {\n isMoved = false;\n _this.touchEnd(endCoords, startCoords, event);\n }\n else if (isSwiping) {\n var target = lgQuery_1.$LG(event.target);\n if (_this.isPosterElement(target)) {\n _this.LGel.trigger(lg_events_1.lGEvents.posterClick);\n }\n }\n _this.touchAction = undefined;\n isSwiping = false;\n }\n });\n }\n };\n LightGallery.prototype.enableDrag = function () {\n var _this = this;\n var startCoords = {};\n var endCoords = {};\n var isDraging = false;\n var isMoved = false;\n if (this.settings.enableDrag) {\n this.outer.on('mousedown.lg', function (e) {\n _this.dragOrSwipeEnabled = true;\n var $item = _this.getSlideItem(_this.index);\n if (lgQuery_1.$LG(e.target).hasClass('lg-item') ||\n $item.get().contains(e.target)) {\n if (!_this.outer.hasClass('lg-zoomed') && !_this.lgBusy) {\n e.preventDefault();\n if (!_this.lgBusy) {\n _this.manageSwipeClass();\n startCoords = {\n pageX: e.pageX,\n pageY: e.pageY,\n };\n isDraging = true;\n // ** Fix for webkit cursor issue https://code.google.com/p/chromium/issues/detail?id=26723\n _this.outer.get().scrollLeft += 1;\n _this.outer.get().scrollLeft -= 1;\n // *\n _this.outer\n .removeClass('lg-grab')\n .addClass('lg-grabbing');\n _this.LGel.trigger(lg_events_1.lGEvents.dragStart);\n }\n }\n }\n });\n lgQuery_1.$LG(window).on(\"mousemove.lg.global\" + this.lgId, function (e) {\n if (isDraging && _this.lgOpened) {\n isMoved = true;\n endCoords = {\n pageX: e.pageX,\n pageY: e.pageY,\n };\n _this.touchMove(startCoords, endCoords);\n _this.LGel.trigger(lg_events_1.lGEvents.dragMove);\n }\n });\n lgQuery_1.$LG(window).on(\"mouseup.lg.global\" + this.lgId, function (event) {\n if (!_this.lgOpened) {\n return;\n }\n var target = lgQuery_1.$LG(event.target);\n if (isMoved) {\n isMoved = false;\n _this.touchEnd(endCoords, startCoords, event);\n _this.LGel.trigger(lg_events_1.lGEvents.dragEnd);\n }\n else if (_this.isPosterElement(target)) {\n _this.LGel.trigger(lg_events_1.lGEvents.posterClick);\n }\n // Prevent execution on click\n if (isDraging) {\n isDraging = false;\n _this.outer.removeClass('lg-grabbing').addClass('lg-grab');\n }\n });\n }\n };\n LightGallery.prototype.triggerPosterClick = function () {\n var _this = this;\n this.$inner.on('click.lg', function (event) {\n if (!_this.dragOrSwipeEnabled &&\n _this.isPosterElement(lgQuery_1.$LG(event.target))) {\n _this.LGel.trigger(lg_events_1.lGEvents.posterClick);\n }\n });\n };\n LightGallery.prototype.manageSwipeClass = function () {\n var _touchNext = this.index + 1;\n var _touchPrev = this.index - 1;\n if (this.settings.loop && this.galleryItems.length > 2) {\n if (this.index === 0) {\n _touchPrev = this.galleryItems.length - 1;\n }\n else if (this.index === this.galleryItems.length - 1) {\n _touchNext = 0;\n }\n }\n this.outer.find('.lg-item').removeClass('lg-next-slide lg-prev-slide');\n if (_touchPrev > -1) {\n this.getSlideItem(_touchPrev).addClass('lg-prev-slide');\n }\n this.getSlideItem(_touchNext).addClass('lg-next-slide');\n };\n /**\n * Go to next slide\n * @param {Boolean} fromTouch - true if slide function called via touch event\n * @category lGPublicMethods\n * @example\n * const plugin = lightGallery();\n * plugin.goToNextSlide();\n * @see <a href=\"/demos/methods/\">Demo</a>\n */\n LightGallery.prototype.goToNextSlide = function (fromTouch) {\n var _this = this;\n var _loop = this.settings.loop;\n if (fromTouch && this.galleryItems.length < 3) {\n _loop = false;\n }\n if (!this.lgBusy) {\n if (this.index + 1 < this.galleryItems.length) {\n this.index++;\n this.LGel.trigger(lg_events_1.lGEvents.beforeNextSlide, {\n index: this.index,\n });\n this.slide(this.index, !!fromTouch, false, 'next');\n }\n else {\n if (_loop) {\n this.index = 0;\n this.LGel.trigger(lg_events_1.lGEvents.beforeNextSlide, {\n index: this.index,\n });\n this.slide(this.index, !!fromTouch, false, 'next');\n }\n else if (this.settings.slideEndAnimation && !fromTouch) {\n this.outer.addClass('lg-right-end');\n setTimeout(function () {\n _this.outer.removeClass('lg-right-end');\n }, 400);\n }\n }\n }\n };\n /**\n * Go to previous slides\n * @param {Boolean} fromTouch - true if slide function called via touch event\n * @category lGPublicMethods\n * @example\n * const plugin = lightGallery({});\n * plugin.goToPrevSlide();\n * @see <a href=\"/demos/methods/\">Demo</a>\n *\n */\n LightGallery.prototype.goToPrevSlide = function (fromTouch) {\n var _this = this;\n var _loop = this.settings.loop;\n if (fromTouch && this.galleryItems.length < 3) {\n _loop = false;\n }\n if (!this.lgBusy) {\n if (this.index > 0) {\n this.index--;\n this.LGel.trigger(lg_events_1.lGEvents.beforePrevSlide, {\n index: this.index,\n fromTouch: fromTouch,\n });\n this.slide(this.index, !!fromTouch, false, 'prev');\n }\n else {\n if (_loop) {\n this.index = this.galleryItems.length - 1;\n this.LGel.trigger(lg_events_1.lGEvents.beforePrevSlide, {\n index: this.index,\n fromTouch: fromTouch,\n });\n this.slide(this.index, !!fromTouch, false, 'prev');\n }\n else if (this.settings.slideEndAnimation && !fromTouch) {\n this.outer.addClass('lg-left-end');\n setTimeout(function () {\n _this.outer.removeClass('lg-left-end');\n }, 400);\n }\n }\n }\n };\n LightGallery.prototype.keyPress = function () {\n var _this = this;\n lgQuery_1.$LG(window).on(\"keydown.lg.global\" + this.lgId, function (e) {\n if (_this.lgOpened &&\n _this.settings.escKey === true &&\n e.keyCode === 27) {\n e.preventDefault();\n if (_this.settings.allowMediaOverlap &&\n _this.outer.hasClass('lg-can-toggle') &&\n _this.outer.hasClass('lg-components-open')) {\n _this.outer.removeClass('lg-components-open');\n }\n else {\n _this.closeGallery();\n }\n }\n if (_this.lgOpened && _this.galleryItems.length > 1) {\n if (e.keyCode === 37) {\n e.preventDefault();\n _this.goToPrevSlide();\n }\n if (e.keyCode === 39) {\n e.preventDefault();\n _this.goToNextSlide();\n }\n }\n });\n };\n LightGallery.prototype.arrow = function () {\n var _this = this;\n this.getElementById('lg-prev').on('click.lg', function () {\n _this.goToPrevSlide();\n });\n this.getElementById('lg-next').on('click.lg', function () {\n _this.goToNextSlide();\n });\n };\n LightGallery.prototype.arrowDisable = function (index) {\n // Disable arrows if settings.hideControlOnEnd is true\n if (!this.settings.loop && this.settings.hideControlOnEnd) {\n var $prev = this.getElementById('lg-prev');\n var $next = this.getElementById('lg-next');\n if (index + 1 === this.galleryItems.length) {\n $next.attr('disabled', 'disabled').addClass('disabled');\n }\n else {\n $next.removeAttr('disabled').removeClass('disabled');\n }\n if (index === 0) {\n $prev.attr('disabled', 'disabled').addClass('disabled');\n }\n else {\n $prev.removeAttr('disabled').removeClass('disabled');\n }\n }\n };\n LightGallery.prototype.setTranslate = function ($el, xValue, yValue, scaleX, scaleY) {\n if (scaleX === void 0) { scaleX = 1; }\n if (scaleY === void 0) { scaleY = 1; }\n $el.css('transform', 'translate3d(' +\n xValue +\n 'px, ' +\n yValue +\n 'px, 0px) scale3d(' +\n scaleX +\n ', ' +\n scaleY +\n ', 1)');\n };\n LightGallery.prototype.mousewheel = function () {\n var _this = this;\n var lastCall = 0;\n this.outer.on('wheel.lg', function (e) {\n if (!e.deltaY || _this.galleryItems.length < 2) {\n return;\n }\n e.preventDefault();\n var now = new Date().getTime();\n if (now - lastCall < 1000) {\n return;\n }\n lastCall = now;\n if (e.deltaY > 0) {\n _this.goToNextSlide();\n }\n else if (e.deltaY < 0) {\n _this.goToPrevSlide();\n }\n });\n };\n LightGallery.prototype.isSlideElement = function (target) {\n return (target.hasClass('lg-outer') ||\n target.hasClass('lg-item') ||\n target.hasClass('lg-img-wrap'));\n };\n LightGallery.prototype.isPosterElement = function (target) {\n var playButton = this.getSlideItem(this.index)\n .find('.lg-video-play-button')\n .get();\n return (target.hasClass('lg-video-poster') ||\n target.hasClass('lg-video-play-button') ||\n (playButton && playButton.contains(target.get())));\n };\n /**\n * Maximize minimize inline gallery.\n * @category lGPublicMethods\n */\n LightGallery.prototype.toggleMaximize = function () {\n var _this = this;\n this.getElementById('lg-maximize').on('click.lg', function () {\n _this.$container.toggleClass('lg-inline');\n _this.refreshOnResize();\n });\n };\n LightGallery.prototype.invalidateItems = function () {\n for (var index = 0; index < this.items.length; index++) {\n var element = this.items[index];\n var $element = lgQuery_1.$LG(element);\n $element.off(\"click.lgcustom-item-\" + $element.attr('data-lg-id'));\n }\n };\n LightGallery.prototype.trapFocus = function () {\n var _this = this;\n this.$container.get().focus({\n preventScroll: true,\n });\n lgQuery_1.$LG(window).on(\"keydown.lg.global\" + this.lgId, function (e) {\n if (!_this.lgOpened) {\n return;\n }\n var isTabPressed = e.key === 'Tab' || e.keyCode === 9;\n if (!isTabPressed) {\n return;\n }\n var focusableEls = lg_utils_1.default.getFocusableElements(_this.$container.get());\n var firstFocusableEl = focusableEls[0];\n var lastFocusableEl = focusableEls[focusableEls.length - 1];\n if (e.shiftKey) {\n if (document.activeElement === firstFocusableEl) {\n lastFocusableEl.focus();\n e.preventDefault();\n }\n }\n else {\n if (document.activeElement === lastFocusableEl) {\n firstFocusableEl.focus();\n e.preventDefault();\n }\n }\n });\n };\n LightGallery.prototype.manageCloseGallery = function () {\n var _this = this;\n if (!this.settings.closable)\n return;\n var mousedown = false;\n this.getElementById('lg-close').on('click.lg', function () {\n _this.closeGallery();\n });\n if (this.settings.closeOnTap) {\n // If you drag the slide and release outside gallery gets close on chrome\n // for preventing this check mousedown and mouseup happened on .lg-item or lg-outer\n this.outer.on('mousedown.lg', function (e) {\n var target = lgQuery_1.$LG(e.target);\n if (_this.isSlideElement(target)) {\n mousedown = true;\n }\n else {\n mousedown = false;\n }\n });\n this.outer.on('mousemove.lg', function () {\n mousedown = false;\n });\n this.outer.on('mouseup.lg', function (e) {\n var target = lgQuery_1.$LG(e.target);\n if (_this.isSlideElement(target) && mousedown) {\n if (!_this.outer.hasClass('lg-dragging')) {\n _this.closeGallery();\n }\n }\n });\n }\n };\n /**\n * Close lightGallery if it is opened.\n *\n * @description If closable is false in the settings, you need to pass true via closeGallery method to force close gallery\n * @return returns the estimated time to close gallery completely including the close animation duration\n * @category lGPublicMethods\n * @example\n * const plugin = lightGallery();\n * plugin.closeGallery();\n *\n */\n LightGallery.prototype.closeGallery = function (force) {\n var _this = this;\n if (!this.lgOpened || (!this.settings.closable && !force)) {\n return 0;\n }\n this.LGel.trigger(lg_events_1.lGEvents.beforeClose);\n if (this.settings.resetScrollPosition && !this.settings.hideScrollbar) {\n lgQuery_1.$LG(window).scrollTop(this.prevScrollTop);\n }\n var currentItem = this.items[this.index];\n var transform;\n if (this.zoomFromOrigin && currentItem) {\n var _a = this.mediaContainerPosition, top_4 = _a.top, bottom = _a.bottom;\n var _b = this.galleryItems[this.index], __slideVideoInfo = _b.__slideVideoInfo, poster = _b.poster;\n var imageSize = lg_utils_1.default.getSize(currentItem, this.outer, top_4 + bottom, __slideVideoInfo && poster && this.settings.videoMaxSize);\n transform = lg_utils_1.default.getTransform(currentItem, this.outer, top_4, bottom, imageSize);\n }\n if (this.zoomFromOrigin && transform) {\n this.outer.addClass('lg-closing lg-zoom-from-image');\n this.getSlideItem(this.index)\n .addClass('lg-start-end-progress')\n .css('transition-duration', this.settings.startAnimationDuration + 'ms')\n .css('transform', transform);\n }\n else {\n this.outer.addClass('lg-hide-items');\n // lg-zoom-from-image is used for setting the opacity to 1 if zoomFromOrigin is true\n // If the closing item doesn't have the lg-size attribute, remove this class to avoid the closing css conflicts\n this.outer.removeClass('lg-zoom-from-image');\n }\n // Unbind all events added by lightGallery\n // @todo\n //this.$el.off('.lg.tm');\n this.destroyModules();\n this.lGalleryOn = false;\n this.isDummyImageRemoved = false;\n this.zoomFromOrigin = this.settings.zoomFromOrigin;\n clearTimeout(this.hideBarTimeout);\n this.hideBarTimeout = false;\n lgQuery_1.$LG('html').removeClass('lg-on');\n this.outer.removeClass('lg-visible lg-components-open');\n // Resetting opacity to 0 isd required as vertical swipe to close function adds inline opacity.\n this.$backdrop.removeClass('in').css('opacity', 0);\n var removeTimeout = this.zoomFromOrigin && transform\n ? Math.max(this.settings.startAnimationDuration, this.settings.backdropDuration)\n : this.settings.backdropDuration;\n this.$container.removeClass('lg-show-in');\n // Once the closign animation is completed and gallery is invisible\n setTimeout(function () {\n if (_this.zoomFromOrigin && transform) {\n _this.outer.removeClass('lg-zoom-from-image');\n }\n _this.$container.removeClass('lg-show');\n // Reset scrollbar\n _this.resetScrollBar();\n // Need to remove inline opacity as it is used in the stylesheet as well\n _this.$backdrop\n .removeAttr('style')\n .css('transition-duration', _this.settings.backdropDuration + 'ms');\n _this.outer.removeClass(\"lg-closing \" + _this.settings.startClass);\n _this.getSlideItem(_this.index).removeClass('lg-start-end-progress');\n _this.$inner.empty();\n if (_this.lgOpened) {\n _this.LGel.trigger(lg_events_1.lGEvents.afterClose, {\n instance: _this,\n });\n }\n if (_this.$container.get()) {\n _this.$container.get().blur();\n }\n _this.lgOpened = false;\n }, removeTimeout + 100);\n return removeTimeout + 100;\n };\n LightGallery.prototype.initModules = function () {\n this.plugins.forEach(function (module) {\n try {\n module.init();\n }\n catch (err) {\n console.warn(\"lightGallery:- make sure lightGallery module is properly initiated\");\n }\n });\n };\n LightGallery.prototype.destroyModules = function (destroy) {\n this.plugins.forEach(function (module) {\n try {\n if (destroy) {\n module.destroy();\n }\n else {\n module.closeGallery && module.closeGallery();\n }\n }\n catch (err) {\n console.warn(\"lightGallery:- make sure lightGallery module is properly destroyed\");\n }\n });\n };\n /**\n * Refresh lightGallery with new set of children.\n *\n * @description This is useful to update the gallery when the child elements are changed without calling destroy method.\n *\n * If you are using dynamic mode, you can pass the modified array of dynamicEl as the first parameter to refresh the dynamic gallery\n * @see <a href=\"/demos/dynamic-mode/\">Demo</a>\n * @category lGPublicMethods\n * @example\n * const plugin = lightGallery();\n * // Delete or add children, then call\n * plugin.refresh();\n *\n */\n LightGallery.prototype.refresh = function (galleryItems) {\n if (!this.settings.dynamic) {\n this.invalidateItems();\n }\n if (galleryItems) {\n this.galleryItems = galleryItems;\n }\n else {\n this.galleryItems = this.getItems();\n }\n this.updateControls();\n this.openGalleryOnItemClick();\n this.LGel.trigger(lg_events_1.lGEvents.updateSlides);\n };\n LightGallery.prototype.updateControls = function () {\n this.addSlideVideoInfo(this.galleryItems);\n this.updateCounterTotal();\n this.manageSingleSlideClassName();\n };\n /**\n * Destroy lightGallery.\n * Destroy lightGallery and its plugin instances completely\n *\n * @description This method also calls CloseGallery function internally. Returns the time takes to completely close and destroy the instance.\n * In case if you want to re-initialize lightGallery right after destroying it, initialize it only once the destroy process is completed.\n * You can use refresh method most of the times.\n * @category lGPublicMethods\n * @example\n * const plugin = lightGallery();\n * plugin.destroy();\n *\n */\n LightGallery.prototype.destroy = function () {\n var _this = this;\n var closeTimeout = this.closeGallery(true);\n setTimeout(function () {\n _this.destroyModules(true);\n if (!_this.settings.dynamic) {\n _this.invalidateItems();\n }\n lgQuery_1.$LG(window).off(\".lg.global\" + _this.lgId);\n _this.LGel.off('.lg');\n _this.$container.remove();\n }, closeTimeout);\n return closeTimeout;\n };\n return LightGallery;\n}());\nexports.LightGallery = LightGallery;\n//# sourceMappingURL=lightgallery.js.map","var map = {\n\t\"./autoplay/lg-autoplay.min.js\": [\n\t\t1312,\n\t\t3963\n\t],\n\t\"./comment/lg-comment.min.js\": [\n\t\t9770,\n\t\t3388\n\t],\n\t\"./fullscreen/lg-fullscreen.min.js\": [\n\t\t5801,\n\t\t2018\n\t],\n\t\"./hash/lg-hash.min.js\": [\n\t\t5123,\n\t\t173\n\t],\n\t\"./mediumZoom/lg-medium-zoom.min.js\": [\n\t\t2187,\n\t\t6440\n\t],\n\t\"./pager/lg-pager.min.js\": [\n\t\t2941,\n\t\t3637\n\t],\n\t\"./relativeCaption/lg-relative-caption.min.js\": [\n\t\t1997,\n\t\t2478\n\t],\n\t\"./rotate/lg-rotate.min.js\": [\n\t\t5114,\n\t\t9868\n\t],\n\t\"./share/lg-share.min.js\": [\n\t\t5102,\n\t\t558\n\t],\n\t\"./thumbnail/lg-thumbnail.min.js\": [\n\t\t5097,\n\t\t3730\n\t],\n\t\"./video/lg-video.min.js\": [\n\t\t1363,\n\t\t4441\n\t],\n\t\"./vimeoThumbnail/lg-vimeo-thumbnail.min.js\": [\n\t\t7852,\n\t\t2453\n\t],\n\t\"./zoom/lg-zoom.min.js\": [\n\t\t5086,\n\t\t3321\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(() => {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn __webpack_require__.e(ids[1]).then(() => {\n\t\treturn __webpack_require__.t(id, 7 | 16);\n\t});\n}\nwebpackAsyncContext.keys = () => (Object.keys(map));\nwebpackAsyncContext.id = 8497;\nmodule.exports = webpackAsyncContext;"],"names":["__assign","Object","assign","t","s","i","n","arguments","length","p","prototype","hasOwnProperty","call","apply","this","create","lowerCase","str","toLowerCase","DEFAULT_SPLIT_REGEXP","DEFAULT_STRIP_REGEXP","replace","input","re","value","RegExp","reduce","dotCase","options","_a","splitRegexp","_b","stripRegexp","_c","transform","_d","delimiter","result","start","end","charAt","slice","split","map","join","noCase","solvePluginName","pluginName","fileName","handleResult","status","default","console","error","reason","async","initLightGallery","plugins","opts","_iro","lightGallery","document","querySelector","Promise","allSettled","name","lightgallery_1","exports","el","LightGallery","defineProperty","lGEvents","afterAppendSlide","init","hasVideo","containerResize","updateSlides","afterAppendSubHtml","beforeOpen","afterOpen","slideItemLoad","beforeSlide","afterSlide","posterClick","dragStart","dragMove","dragEnd","beforeNextSlide","beforePrevSlide","beforeClose","afterClose","rotateLeft","rotateRight","flipHorizontal","flipVertical","autoplay","autoplayStart","autoplayStop","lightGalleryCoreSettings","mode","easing","speed","licenseKey","height","width","addClass","startClass","backdropDuration","container","startAnimationDuration","zoomFromOrigin","hideBarsDelay","showBarsAfter","slideDelay","supportLegacyBrowser","allowMediaOverlap","videoMaxSize","loadYouTubePoster","defaultCaptionHeight","ariaLabelledby","ariaDescribedby","resetScrollPosition","hideScrollbar","closable","swipeToClose","closeOnTap","showCloseIcon","showMaximizeIcon","loop","escKey","keyPress","trapFocus","controls","slideEndAnimation","hideControlOnEnd","mousewheel","getCaptionFromTitleOrAlt","appendSubHtmlTo","subHtmlSelectorRelative","preload","numberOfSlideItemsInDom","selector","selectWithin","nextHtml","prevHtml","index","iframeWidth","iframeHeight","iframeMaxWidth","iframeMaxHeight","download","counter","appendCounterTo","swipeThreshold","enableSwipe","enableDrag","dynamic","dynamicEl","extraProps","exThumbImage","isMobile","undefined","mobileSettings","strings","closeGallery","toggleMaximize","previousSlide","nextSlide","playVideo","__spreadArrays","il","r","Array","k","a","j","jl","convertToData","lgQuery_1","defaultDynamicOptions","attr","g","toUpperCase","utils","getSize","spacing","defaultLgSize","lgSize","$LG","isResponsiveSizes","wWidth","window","innerWidth","size_1","parseInt","size","cWidth","cHeight","maxWidth","Math","min","maxHeight","ratio","getTransform","top","bottom","imageSize","LGel","find","first","get","containerRect","getBoundingClientRect","wHeight","elWidth","elHeight","elStyle","style","x","offset","left","parseFloat","paddingLeft","borderLeft","scrollLeft","y","paddingTop","borderTop","scrollTop","getIframeMarkup","src","iframeTitle","getImgMarkup","altAttr","srcset","sizes","sources","imgMarkup","sourceTag","JSON","parse","source","attrs","keys","forEach","key","getResponsiveSrc","srcItms","rsWidth","rsSrc","_src","splice","push","isImageLoaded","img","complete","naturalWidth","getVideoPosterMarkup","_poster","dummyImg","videoContStyle","playVideoString","_isVideo","youtube","vimeo","getFocusableElements","elements","querySelectorAll","filter","element","getComputedStyle","display","visibility","getDynamicOptions","items","dynamicElements","availableDynamicOptions","item","attributes","specified","dynamicAttr","label","indexOf","currentItem","alt","title","thumb","subHtml","test","navigator","userAgent","isVideo","isHTML5VIdeo","html5","match","wistia","lgQuery","cssVenderPrefixes","_getSelector","firstElement","_getFirstEl","generateUUID","c","random","toString","context","substring","_each","func","_setCssVendorPrefix","cssProperty","property","group1","isEventMatched","event","eventName","eventNamespace","e","every","getAttribute","setAttribute","eq","parent","parentElement","removeAttr","removeAttribute","wrap","className","wrapper","createElement","parentNode","insertBefore","removeChild","appendChild","classNames","classList","add","removeClass","remove","hasClass","contains","hasAttribute","attribute","toggleClass","css","_this","on","events","listener","isArray","eventListeners","addEventListener","once","off","removeEventListener","trigger","detail","customEvent","CustomEvent","dispatchEvent","load","url","fetch","then","res","text","html","innerHTML","append","insertAdjacentHTML","prepend","empty","body","documentElement","pageYOffset","pageXOffset","rect","bodyMarginLeft","marginLeft","currentStyle","clientWidth","paddingRight","clientHeight","paddingBottom","params","bubbles","cancelable","evt","createEvent","initCustomEvent","Element","matches","msMatchesSelector","webkitMatchesSelector","lg_events_1","lg_settings_1","lg_utils_1","lgId","lgOpened","lGalleryOn","lgBusy","currentItemsInDom","prevScrollTop","bodyPaddingRight","isDummyImageRemoved","dragOrSwipeEnabled","mediaContainerPosition","generateSettings","buildModules","settings","galleryItems","getItems","normalizeSettings","validateLicense","addSlideVideoInfo","buildStructure","instance","setTimeout","triggerPosterClick","arrow","openGalleryOnItemClick","_loop_1","this_1","$element","uuid","preventDefault","currentItemIndex","openGallery","plugin","warn","getSlideItem","getSlideItemId","getIdName","id","getElementById","manageSingleSlideClassName","outer","$container","subHtmlCont","addClasses","containerClassName","closeIcon","maximizeIcon","template","$lgComponents","$backdrop","$inner","$content","$toolbar","outerClassNames","refreshOnResize","hideBars","manageCloseGallery","initModules","__slideVideoInfo","getMediaContainerPosition","top_1","currentImageSize","resizeVideoSlide","imgStyle","getDummyImgStyles","lgVideoStyle","getVideoContStyle","currentSrc","updateControls","_index","some","galleryItem","itemIndex","organizeSlideItems","loadContent","updateCurrentCounter","children","shouldHideScrollbar","bodyRect","scrollbarWidth","resetScrollBar","itemsToBeInsertedToDom","getItemsToBeInsertedToDom","addHtml","setMediaContainerPosition","timeout","currentSlide_1","slide","captionHeight","thumbContainer","clearTimeout","hideBarTimeout","initPictureFill","$img","picturefill","counterHtml","subHtmlUrl","fL","currentSlide","getDummyImageContent","$currentSlide","$currentItem","_dummyImgSrc","dummyImgContent","setImgMarkup","currentGalleryItem","isFirstSlideWithZoomAnimation","onSlideObjectLoad","$slide","isHTML5VideoWithoutPoster","onLoad","onError","mediaObject","onLgObjectLoad","delay","isFirstSlide","triggerSlideItemLoad","_speed","getSlideType","poster","video","rec","_html5Video","responsive","srcDyItms","videoInfo","iframe","top_2","videoSize","markup","html5Video","hasPoster","loadContentOnFirstSlideLoad","prevIndex","numberOfItems","possibleNumberOfItems","max","prevIndexItem","_element","idx","numberOfExistingItems","getPreviousSlideIndex","currentItemId","setDownloadValue","downloadUrl","$download","makeSlideAnimation","direction","currentSlideItem","previousSlideItem","fromTouch","fromThumb","numberOfGalleryItems","previousSlideItem_1","top_3","arrowDisable","touchPrev","touchNext","updateCounterTotal","touchMove","startCoords","endCoords","distanceX","pageX","distanceY","pageY","allowSwipe","swipeDirection","abs","setTranslate","offsetWidth","gutter","opacity","innerHeight","scale","touchEnd","distance","triggerClick","distanceAbs","goToNextSlide","goToPrevSlide","target","isPosterElement","isMoved","isSwiping","$item","targetTouches","touchAction","manageSwipeClass","isDraging","_touchNext","_touchPrev","_loop","keyCode","$prev","$next","$el","xValue","yValue","scaleX","scaleY","lastCall","deltaY","now","Date","getTime","isSlideElement","playButton","invalidateItems","focus","preventScroll","focusableEls","firstFocusableEl","lastFocusableEl","shiftKey","activeElement","mousedown","force","top_4","destroyModules","removeTimeout","blur","module","err","destroy","refresh","closeTimeout","webpackAsyncContext","req","__webpack_require__","o","resolve","Error","code","ids"],"sourceRoot":""}