{"version":3,"file":"8635c55bbce62a6475b50357bc75df8abf590d01-631f972cf3f56d17e73c.js","mappings":"0OAuBIA,EAAyB,cAAiB,SAAmBC,EAAOC,GACtE,IAAIC,EAAUF,EAAME,QAClBC,EAAYH,EAAMG,UAClBC,EAAaJ,EAAMK,IACnBA,OAAqB,IAAfD,GAAgCA,EACtCE,GAAQ,OAAyBN,EAAO,CAAC,UAAW,YAAa,QACnE,OAAoB,gBAAoB,OAAO,OAAS,CACtDG,WAAW,OAAKD,EAAQK,KAAMJ,EAAWE,GAAOH,EAAQG,KACxDJ,IAAKA,GACJK,GACL,IAEA,GAAe,EAAAE,EAAA,GA9BK,CAElBD,KAAM,CACJE,QAAS,OACTC,cAAe,SACfC,SAAU,QAGZN,IAAK,CACHK,cAAe,QAqBe,CAChCE,KAAM,gBADR,CAEGb,G,4CCqBH,EAjD8B,cAAiB,SAAoBC,EAAOC,GACxE,IAAIY,EAAUb,EAAMa,QAClBC,EAAWd,EAAMc,SACjBC,EAAWf,EAAMY,KACjBI,EAAYhB,EAAMiB,MAClBC,EAAWlB,EAAMkB,SACjBZ,GAAQ,OAAyBN,EAAO,CAAC,UAAW,WAAY,OAAQ,QAAS,aAC/EmB,EAAU,SAAa,MACvBC,GAAiB,EAAAC,EAAA,GAAc,CAC/BC,WAAYN,EACZO,QAASvB,EAAMwB,aACfZ,KAAM,eAERa,GAAkB,OAAeL,EAAgB,GACjDH,EAAQQ,EAAgB,GACxBC,EAAWD,EAAgB,GAC7B,sBAA0BZ,GAAS,WACjC,MAAO,CACLc,MAAO,WACL,IAAIC,EAAQT,EAAQU,QAAQC,cAAc,gCACrCF,IACHA,EAAQT,EAAQU,QAAQC,cAAc,yBAEpCF,GACFA,EAAMD,OAEV,EAEJ,GAAG,IACH,IAAII,GAAY,EAAAC,EAAA,GAAW/B,EAAKkB,GAO5BP,GAAO,OAAMG,GACjB,OAAoB,gBAAoBkB,EAAA,EAAkBC,SAAU,CAClEjB,MAAO,CACLL,KAAMA,EACNM,SAVe,SAAsBiB,GACvCT,EAASS,EAAMC,OAAOnB,OAClBC,GACFA,EAASiB,EAAOA,EAAMC,OAAOnB,MAEjC,EAMIA,MAAOA,IAEK,gBAAoB,GAAW,OAAS,CACtDoB,KAAM,aACNpC,IAAK8B,GACJzB,GAAQQ,GACb,G,yCCnDImB,E,SAAoB,gBAIxB,K,6FCwCA,IAxBA,SAAuBjC,GACrB,IAAIc,EAAWd,EAAMc,SACnBwB,EAAatC,EAAMuC,MACjBC,GAAa,SAMbD,EAAQ,WAAc,WACxB,IAAIE,EAAwB,OAAfD,EAAsBF,EA5BvC,SAA8BE,EAAYF,GACxC,MAA0B,mBAAfA,EACSA,EAAWE,IAQxB,OAAS,CAAC,EAAGA,EAAYF,EAClC,CAiBoDI,CAAqBF,EAAYF,GAIjF,OAHc,MAAVG,IACFA,EAAO,KAAyB,OAAfD,GAEZC,CACT,GAAG,CAACH,EAAYE,IAChB,OAAoB,gBAAoB,IAAaN,SAAU,CAC7DjB,MAAOsB,GACNzB,EACL,C,qECsDO,SAAS,EAAQ6B,EAAMC,EAAYC,QACxB,IAAZA,IACFA,EAAU,CAAC,GAEb,IAAIC,EAAO,CACTC,KAAM,WAUR,OARmB,IAAfF,EAAQG,IAAYH,EAAQG,MAC9BF,EAAKE,GAAKH,EAAQG,IAEhBH,EAAQI,OACVH,EAAKG,KAAOJ,EAAQI,MAEtBH,EAAKF,WAAaA,GAAc,CAAC,EACjCE,EAAKI,SAAWP,EACTG,CACT,CAoPO,SAASK,EAAkBC,EAAUP,QAC1B,IAAZA,IACFA,EAAU,CAAC,GAEb,IAAIQ,EAAK,CACPN,KAAM,qBASR,OAPIF,EAAQG,KACVK,EAAGL,GAAKH,EAAQG,IAEdH,EAAQI,OACVI,EAAGJ,KAAOJ,EAAQI,MAEpBI,EAAGD,SAAWA,EACPC,CACT,CA6CO,SAASC,EAAWC,EAAaX,EAAYC,GAQlD,YAPgB,IAAZA,IACFA,EAAU,CAAC,GAMN,EAJI,CACTE,KAAM,aACNQ,YAAaA,GAEMX,EAAYC,EACnC,CC/Ye,SAASW,EAAsBC,EAAOC,EAASb,GAK5D,QAJgB,IAAZA,IACFA,EAAU,CAAC,IAGRY,EACH,MAAM,IAAIE,MAAM,qBAElB,IAAKD,EACH,MAAM,IAAIC,MAAM,uBAElB,IC6HsBC,ED7HlBC,EC1BC,SAAkBC,GACvB,IAAKA,EACH,MAAM,IAAIH,MAAM,qBAElB,IAAKI,MAAMC,QAAQF,GAAQ,CACzB,GAAmB,YAAfA,EAAMf,MAAyC,OAAnBe,EAAMZ,UAA6C,UAAxBY,EAAMZ,SAASH,KACxE,OAAOe,EAAMZ,SAASK,YAExB,GAAmB,UAAfO,EAAMf,KACR,OAAOe,EAAMP,WAEjB,CACA,GAAIQ,MAAMC,QAAQF,IAAUA,EAAMG,QAAU,IAAMF,MAAMC,QAAQF,EAAM,MAAQC,MAAMC,QAAQF,EAAM,IAChG,OAAOA,EAET,MAAM,IAAIH,MAAM,qDAClB,CDUWO,CAAST,GACdd,EC6HiB,aADCiB,ED5HHF,GC6HPX,KACHa,EAAQV,SAEVU,ED/HHb,EAAOJ,EAAKI,KACZE,EAAOS,EAAQT,KACfkB,EAAQxB,EAAKY,YAEjB,GAAIN,IAA6B,IAiEnC,SAAgBY,EAAIZ,GAClB,OAAOA,EAAK,IAAMY,EAAG,IAAMZ,EAAK,IAAMY,EAAG,IAAMZ,EAAK,IAAMY,EAAG,IAAMZ,EAAK,IAAMY,EAAG,EACnF,CAnEcO,CAAOP,EAAIZ,GACrB,OAAO,EAGI,YAATF,IACFoB,EAAQ,CAACA,IAGX,IADA,IAAIE,GAAa,EACRC,EAAI,EAAGA,EAAIH,EAAMF,SAAWI,EAAYC,IAE/C,GAAIC,EAAOV,EAAIM,EAAMG,GAAG,GAAIzB,EAAQ2B,gBAAiB,CAInD,IAHA,IAAIC,GAAS,EACTC,EAAI,EAEDA,EAAIP,EAAMG,GAAGL,SAAWQ,GACzBF,EAAOV,EAAIM,EAAMG,GAAGI,IAAK7B,EAAQ2B,kBACnCC,GAAS,GAEXC,IAEGD,IACHJ,GAAa,EAEjB,CAEF,OAAOA,CACT,CAUA,SAASE,EAAOV,EAAIc,EAAMH,GACxB,IAAII,GAAW,EACXD,EAAK,GAAG,KAAOA,EAAKA,EAAKV,OAAS,GAAG,IAAMU,EAAK,GAAG,KAAOA,EAAKA,EAAKV,OAAS,GAAG,KAClFU,EAAOA,EAAKE,MAAM,EAAGF,EAAKV,OAAS,IAErC,IAAK,IAAIK,EAAI,EAAGQ,EAAIH,EAAKV,OAAS,EAAGK,EAAIK,EAAKV,OAAQa,EAAIR,IAAK,CAC7D,IAAIS,EAAKJ,EAAKL,GAAG,GACbU,EAAKL,EAAKL,GAAG,GACbW,EAAKN,EAAKG,GAAG,GACbI,EAAKP,EAAKG,GAAG,GAEjB,GADiBjB,EAAG,IAAMkB,EAAKE,GAAMD,GAAMC,EAAKpB,EAAG,IAAMqB,GAAMrB,EAAG,GAAKkB,IAAQ,IAAMA,EAAKlB,EAAG,KAAOoB,EAAKpB,EAAG,KAAO,IAAMmB,EAAKnB,EAAG,KAAOqB,EAAKrB,EAAG,KAAO,EAErJ,OAAQW,EAEMQ,EAAKnB,EAAG,IAAOqB,EAAKrB,EAAG,IAAMA,EAAG,IAAMoB,EAAKF,IAAOlB,EAAG,GAAKmB,IAAOE,EAAKF,GAAMD,IAE1FH,GAAYA,EAEhB,CACA,OAAOA,CACT,CElEA,SAASO,EAAUvB,EAASwB,EAAUC,GAEpC,GAAgB,OAAZzB,EA4BJ,IA3BA,IAAIkB,EACFJ,EACAY,EACApC,EACAqC,EACAC,EACAC,EAGAC,EAFAC,EAAa,EACbC,EAAa,EAEb7C,EAAOa,EAAQb,KACf8C,EAA+B,sBAAT9C,EACtB+C,EAAqB,YAAT/C,EACZgD,EAAOF,EAAsBjC,EAAQR,SAASa,OAAS,EAchD+B,EAAe,EAAGA,EAAeD,EAAMC,IAAgB,CAG9DT,GADAG,KADAD,EAA0BI,EAAsBjC,EAAQR,SAAS4C,GAAc9C,SAAW4C,EAAYlC,EAAQV,SAAWU,IACvC,uBAAjC6B,EAAwB1C,MAC1C0C,EAAwBQ,WAAWhC,OAAS,EAC3E,IAAK,IAAIiC,EAAY,EAAGA,EAAYX,EAAOW,IAAa,CACtD,IAAIC,EAAoB,EACpBC,EAAgB,EAIpB,GAAiB,QAHjBlD,EAAWwC,EAAuBD,EAAwBQ,WAAWC,GAAaT,GAGlF,CACAD,EAAStC,EAASK,YAClB,IAAI8C,EAAWnD,EAASH,KAExB,OADA4C,GAAaN,GAAkC,YAAbgB,GAAuC,iBAAbA,EAAmC,EAAJ,EACnFA,GACN,KAAK,KACH,MACF,IAAK,QACH,IAAqF,IAAjFjB,EAASI,EAAQI,EAAYI,EAAcG,EAAmBC,GAA0B,OAAO,EACnGR,IACAO,IACA,MACF,IAAK,aACL,IAAK,aACH,IAAKrB,EAAI,EAAGA,EAAIU,EAAOvB,OAAQa,IAAK,CAClC,IAAwF,IAApFM,EAASI,EAAOV,GAAIc,EAAYI,EAAcG,EAAmBC,GAA0B,OAAO,EACtGR,IACiB,eAAbS,GAA2BF,GACjC,CACiB,eAAbE,GAA2BF,IAC/B,MACF,IAAK,UACL,IAAK,kBACH,IAAKrB,EAAI,EAAGA,EAAIU,EAAOvB,OAAQa,IAAK,CAClC,IAAKJ,EAAI,EAAGA,EAAIc,EAAOV,GAAGb,OAAS0B,EAAYjB,IAAK,CAClD,IAA2F,IAAvFU,EAASI,EAAOV,GAAGJ,GAAIkB,EAAYI,EAAcG,EAAmBC,GAA0B,OAAO,EACzGR,GACF,CACiB,oBAAbS,GAAgCF,IACnB,YAAbE,GAAwBD,GAC9B,CACiB,YAAbC,GAAwBF,IAC5B,MACF,IAAK,eACH,IAAKrB,EAAI,EAAGA,EAAIU,EAAOvB,OAAQa,IAAK,CAElC,IADAsB,EAAgB,EACX1B,EAAI,EAAGA,EAAIc,EAAOV,GAAGb,OAAQS,IAAK,CACrC,IAAKY,EAAI,EAAGA,EAAIE,EAAOV,GAAGJ,GAAGT,OAAS0B,EAAYL,IAAK,CACrD,IAA8F,IAA1FF,EAASI,EAAOV,GAAGJ,GAAGY,GAAIM,EAAYI,EAAcG,EAAmBC,GAA0B,OAAO,EAC5GR,GACF,CACAQ,GACF,CACAD,GACF,CACA,MACF,IAAK,qBACH,IAAKrB,EAAI,EAAGA,EAAI5B,EAAS+C,WAAWhC,OAAQa,IAAK,IAAsE,IAAlEK,EAAUjC,EAAS+C,WAAWnB,GAAIM,EAAUC,GAA6B,OAAO,EACrI,MACF,QACE,MAAM,IAAI1B,MAAM,yBAlDW,CAoDjC,CACF,CACF,CAmLA,SAAS2C,EAAY1C,EAASwB,GAC5B,GAAqB,YAAjBxB,EAAQb,KACVqC,EAASxB,EAAS,QACb,GAAqB,sBAAjBA,EAAQb,KACjB,IAAK,IAAIuB,EAAI,EAAGA,EAAIV,EAAQR,SAASa,SACM,IAArCmB,EAASxB,EAAQR,SAASkB,GAAIA,GADSA,KAIjD,CA2GA,SAASiC,EAAS3C,EAASwB,GACzB,IAAId,EACFQ,EACA0B,EACAtD,EACAqC,EACAE,EACAC,EACAe,EACAC,EACAC,EACAX,EAAe,EACfH,EAAuC,sBAAjBjC,EAAQb,KAC9B+C,EAA6B,YAAjBlC,EAAQb,KACpBgD,EAAOF,EAAsBjC,EAAQR,SAASa,OAAS,EAczD,IAAKK,EAAI,EAAGA,EAAIyB,EAAMzB,IAAK,CAOzB,IANAmB,EAA0BI,EAAsBjC,EAAQR,SAASkB,GAAGpB,SAAW4C,EAAYlC,EAAQV,SAAWU,EAC9G6C,EAAoBZ,EAAsBjC,EAAQR,SAASkB,GAAG1B,WAAakD,EAAYlC,EAAQhB,WAAa,CAAC,EAC7G8D,EAAcb,EAAsBjC,EAAQR,SAASkB,GAAGrB,KAAO6C,EAAYlC,EAAQX,UAAO2D,EAC1FD,EAAYd,EAAsBjC,EAAQR,SAASkB,GAAGtB,GAAK8C,EAAYlC,EAAQZ,QAAK4D,EAEpFrB,GADAG,IAAuBD,GAA2D,uBAAjCA,EAAwB1C,MAC1C0C,EAAwBQ,WAAWhC,OAAS,EACtEuC,EAAI,EAAGA,EAAIjB,EAAOiB,IAIrB,GAAiB,QAHjBtD,EAAWwC,EAAuBD,EAAwBQ,WAAWO,GAAKf,GAO1E,OAAQvC,EAASH,MACf,IAAK,QACL,IAAK,aACL,IAAK,aACL,IAAK,UACL,IAAK,kBACL,IAAK,eAED,IAAoF,IAAhFqC,EAASlC,EAAU8C,EAAcS,EAAmBC,EAAaC,GAAsB,OAAO,EAClG,MAEJ,IAAK,qBAED,IAAK7B,EAAI,EAAGA,EAAI5B,EAAS+C,WAAWhC,OAAQa,IAC1C,IAAkG,IAA9FM,EAASlC,EAAS+C,WAAWnB,GAAIkB,EAAcS,EAAmBC,EAAaC,GAAsB,OAAO,EAElH,MAEJ,QACE,MAAM,IAAIhD,MAAM,8BAtBlB,IAAgF,IAA5EyB,EAAS,KAAMY,EAAcS,EAAmBC,EAAaC,GAAsB,OAAO,EA0BlGX,GACF,CACF,CCtaA,MA9BA,SAA6Ba,EAAQC,GACnC,IAAIC,EAAU,GA2Bd,OA1BAT,EAAYO,GAAQ,SAAUpD,GAC5B,IAAIuD,GAAY,EAChB,GAA4B,UAAxBvD,EAAMP,SAASH,KACjBwD,EAASO,GAAU,SAAUpD,GACvB,EAAeD,EAAOC,KAAUsD,GAAY,EAClD,IACIA,GACFD,EAAQE,KAAKxD,OAEV,IAA4B,eAAxBA,EAAMP,SAASH,KAcxB,MAAM,IAAIY,MAAM,gDAbhB,IAAIuD,EAAe,GACnBX,EAASO,GAAU,SAAUpD,GAC3ByB,EAAU1B,GAAO,SAAU0D,GACrB,EAAeA,EAAYzD,KAC7BsD,GAAY,EACZE,EAAaD,KAAKE,GAEtB,GACF,IACIH,GACFD,EAAQE,KAAK3D,EAAW4D,GAI5B,CACF,IACO/D,EAAkB4D,EAC3B,C,mBC7DC,IAAUK,EAAGC,EAAHD,EA4sDTE,OA5sDYD,EA4sDJE,SAvsDRC,EAAEC,YAAc,QAASD,EAAEE,KAAO,CAAC,EAAGF,EAAEG,UAAY,CAClDC,KAAM,CACJC,QAAS,CACPhH,QAAS,CACPiH,MAAO,iBACPC,KAAM,UAERC,OAAQ,CACNF,MAAO,iBACPC,KAAM,UAERE,KAAM,CACJH,MAAO,0BACPC,KAAM,qBAERG,QAAS,CACPC,SAAU,kBACVzE,QAAS,iBACT0E,UAAW,mBACXC,OAAQ,gBACRC,OAAQ,gBACRC,aAAc,wBAGlBC,SAAU,CACRH,OAAQ,CACNI,QAAS,CACPC,MAAO,kCAETC,OAAQ,UAEVJ,aAAc,CACZE,QAAS,CACPC,MAAO,sCAGXJ,OAAQ,CACNG,QAAS,CACPC,MAAO,+BAGXhF,QAAS,CACP+E,QAAS,CACPC,MAAO,gCACPE,KAAM,mCACNC,IAAK,2CAGTV,SAAU,CACRW,MAAO,oDACPL,QAAS,CACPC,MAAO,+BACPE,KAAM,kCACNC,IAAK,qCAGTT,UAAW,CACTK,QAAS,CACPC,MAAO,sCAGXK,YAAa,CACXN,QAAS,CACPI,IAAK,uCAKbG,KAAM,CACJnB,QAAS,CACPhH,QAAS,CACPoI,KAAM,CACJnB,MAAO,eACPC,KAAM,QAERmB,OAAQ,CACNpB,MAAO,uCACPC,KAAM,UAERoB,SAAU,CACRrB,MAAO,mBACPC,KAAM,cAGVG,QAAS,CACPc,KAAM,cACNI,aAAc,oBACdC,OAAQ,gBACRC,eAAgB,wBAGpBd,SAAU,CACRQ,KAAM,CACJP,QAAS,CACPV,KAAM,4CACNwB,QAAS,kCAGbF,OAAQ,CACNZ,QAAS,CACPV,KAAM,qCAKbP,EAAEE,KAAK8B,MAAQ,CAAC,EAAGhC,EAAEE,KAAK8B,MAAMC,QAAU,eAAgBjC,EAAEE,KAAK8B,MAAME,OAAS,cAAelC,EAAEE,KAAK8B,MAAMG,QAAU,eAAgBnC,EAAEE,KAAK8B,MAAMI,UAAY,iBAAkBpC,EAAEE,KAAK8B,MAAMK,SAAW,gBAAiBrC,EAAEE,KAAK8B,MAAMM,WAAa,kBAAmBtC,EAAEE,KAAK8B,MAAMO,UAAY,iBAAkBvC,EAAEE,KAAK8B,MAAMQ,SAAW,gBAAiBxC,EAAEE,KAAK8B,MAAMS,WAAa,kBAAmBzC,EAAEE,KAAK8B,MAAMU,WAAa,kBAAmB1C,EAAEE,KAAK8B,MAAMW,SAAW,gBAAiB3C,EAAEE,KAAK8B,MAAMY,YAAc,mBAAoB5C,EAAEE,KAAK8B,MAAMa,WAAa,kBAAmB7C,EAAEE,KAAK8B,MAAMc,cAAgB,qBAAsB9C,EAAEE,KAAK8B,MAAMe,cAAgB,qBAAsB/C,EAAEE,KAAK8B,MAAMgB,cAAgB,qBAAsBhD,EAAEE,KAAOF,EAAEE,MAAQ,CAAC,EAAGF,EAAEE,KAAK+C,QAAUjD,EAAEkD,QAAQC,OAAO,CAC7wBC,WAAY,SAAUxD,EAAGC,GACvBwD,KAAKC,KAAO1D,EAAGyD,KAAKE,WAAa3D,EAAE2D,WAAYF,KAAKG,aAAe5D,EAAE6D,OAAOC,YAAaL,KAAKM,WAAa/D,EAAE6D,OAAOG,UAAW/D,GAAKA,EAAEgE,eAAiBhE,EAAEgE,aAAe7D,EAAE8D,KAAKX,OAAO,CAAC,EAAGE,KAAKhI,QAAQwI,aAAchE,EAAEgE,eAAgB7D,EAAE+D,WAAWV,KAAMxD,GAC1P,IAAI/C,EAAIkD,EAAEgE,QAAQC,MAAM,KACxB,IAAMC,SAASpH,EAAE,GAAI,KAAOoH,SAASpH,EAAE,GAAI,KAAO,EAAIkD,EAAEE,KAAK+C,QAAQkB,QAAQnE,EAAEoE,QAAQC,WAAarE,EAAEE,KAAK+C,QAAQkB,QAAQnE,EAAEsE,MAAMC,OACrI,EACAC,OAAQ,WACNnB,KAAKoB,WAAazE,EAAEkD,QAAQmB,UAAUG,OAAOE,KAAKrB,MAAOA,KAAKsB,KAAK,UAAW,CAC5EC,QAASvB,KAAK9H,OACZ8H,KAAKC,KAAKqB,KAAK3E,EAAEE,KAAK8B,MAAMI,UAAW,CACzCyC,UAAWxB,KAAK9H,OAEpB,EACAuJ,QAAS,WACPzB,KAAKoB,WAAazE,EAAEkD,QAAQmB,UAAUS,QAAQJ,KAAKrB,MAAOA,KAAKC,KAAKqB,KAAK3E,EAAEE,KAAK8B,MAAMK,SAAU,CAC9FwC,UAAWxB,KAAK9H,OACd8H,KAAKsB,KAAK,WAAY,CACxBC,QAASvB,KAAK9H,OAElB,EACAwJ,SAAU,WACR,IAAInF,EAAIyD,KAAKC,KACb1D,IAAMI,EAAEgF,QAAQC,uBAAwBrF,EAAEsF,eAAe/K,QAASkJ,KAAK8B,SAAW,IAAInF,EAAEE,KAAKkF,QAAQ/B,KAAKC,MAAOtD,EAAEqF,SAASC,GAAGjC,KAAKE,WAAY,QAASF,KAAKkC,eAAgBlC,MAChL,EACAmC,YAAa,WACXnC,KAAKC,OAAStD,EAAEgF,QAAQS,sBAAuBpC,KAAK8B,SAASO,UAAWrC,KAAK8B,SAAW,KAAMnF,EAAEqF,SAASM,IAAItC,KAAKE,WAAY,QAASF,KAAKkC,eAAgBlC,MAC9J,EACAU,WAAY,SAAUnE,GACpBI,EAAE+D,WAAWV,KAAMzD,EACrB,EACAgG,kBAAmB,SAAUhG,GAC3ByD,KAAKC,KAAKqB,KAAK3E,EAAEE,KAAK8B,MAAMC,QAAS,CACnC4D,MAAOjG,EACPiF,UAAWxB,KAAK9H,MAEpB,EACAgK,eAAgB,SAAU3F,GACxB,KAAOA,EAAEkG,UAAYzC,KAAKC,KAAKqB,KAAK,gBAAiB,CACnDE,UAAWxB,KAAK9H,OACd8H,KAAKyB,UACX,IACE9E,EAAEE,KAAK6F,SAAW/F,EAAEE,KAAK+C,QAAQE,OAAO,CAC1C6C,QAAS,CACPC,KAAM,YAERC,KAAMlG,EAAE+F,SACR1K,QAAS,CACP8K,mBAAmB,EACnBC,YAAY,EACZC,UAAW,CACTC,MAAO,UACPC,QAAS,MAEXC,KAAM,IAAIxG,EAAEyG,QAAQ,CAClBC,SAAU,IAAI1G,EAAE2G,MAAM,EAAG,GACzBhO,UAAW,0CAEbiO,UAAW,IAAI5G,EAAEyG,QAAQ,CACvBC,SAAU,IAAI1G,EAAE2G,MAAM,GAAI,IAC1BhO,UAAW,6DAEbkO,kBAAmB,GACnBC,mBAAoB,IACpBjD,aAAc,CACZkD,QAAQ,EACRT,MAAO,UACPU,OAAQ,EACRC,QAAS,GACTC,MAAM,EACNC,WAAW,GAEbC,QAAQ,EACRC,MAAM,EACNC,QAAQ,EACRC,YAAY,EACZC,aAAc,IACdC,OAAQ,EACRC,UAAW,GAEbtE,WAAY,SAAUxD,EAAGC,GACvBG,EAAE2H,QAAQC,QAAUvE,KAAKhI,QAAQmL,KAAOnD,KAAKhI,QAAQuL,WAAYvD,KAAKhI,QAAQgL,UAAUwB,QAAU7H,EAAEG,UAAUC,KAAKY,SAASL,SAASW,MAAOzB,GAAKA,EAAEwG,YAAcxG,EAAEwG,UAAYrG,EAAE8D,KAAKX,OAAO,CAAC,EAAGE,KAAKhI,QAAQgL,UAAWxG,EAAEwG,YAAahD,KAAK9H,KAAOyE,EAAEE,KAAK6F,SAASE,KAAMjG,EAAEE,KAAK+C,QAAQoB,UAAUjB,WAAWsB,KAAKrB,KAAMzD,EAAGC,EAC9T,EACAkF,SAAU,WACR/E,EAAEE,KAAK+C,QAAQoB,UAAUU,SAASL,KAAKrB,MAAOA,KAAKC,OAASD,KAAKyE,SAAW,GAAIzE,KAAK0E,aAAe,IAAI/H,EAAEgI,WAAc3E,KAAKC,KAAK2E,SAAS5E,KAAK0E,cAAe1E,KAAK6E,MAAQ,IAAIlI,EAAE+F,SAAS,GAAI1C,KAAKhI,QAAQwI,cAAeR,KAAK8B,SAASgD,cAAc9E,KAAK+E,mBAAoB/E,KAAKgF,eAAiBhF,KAAKgF,aAAerI,EAAEc,OAAOuC,KAAKC,KAAKgF,YAAa,CACxV9B,KAAMxG,EAAEuI,QAAQ,CACd5P,UAAW,uBACX6P,WAAY,CAAC,GAAI,IACjB9B,SAAU,CAAC,GAAI,MAEjBO,QAAS,EACTO,aAAcnE,KAAKhI,QAAQmM,gBACxBnE,KAAKgF,aAAa/C,GAAG,WAAYjC,KAAKoF,YAAapF,MAAMiC,GAAG,YAAajC,KAAKqF,aAAcrF,MAAMiC,GAAG,YAAajC,KAAKsF,aAActF,MAAMiC,GAAG,UAAWjC,KAAKuF,WAAYvF,MAAMwF,MAAMxF,KAAKC,MAAOD,KAAKC,KAAKgC,GAAG,UAAWjC,KAAKuF,WAAYvF,MAAMiC,GAAG,YAAajC,KAAKqF,aAAcrF,MAAMiC,GAAG,mBAAoBjC,KAAKyF,WAAYzF,MAAMiC,GAAG,aAAcjC,KAAK0F,SAAU1F,MAAMiC,GAAG,UAAWjC,KAAKyF,WAAYzF,MACpZ,EACAmC,YAAa,WACXxF,EAAEE,KAAK+C,QAAQoB,UAAUmB,YAAYd,KAAKrB,MAAOA,KAAK2F,yBAA0B3F,KAAK4F,gBAAiB5F,KAAKC,KAAK4F,YAAY7F,KAAK0E,qBAAsB1E,KAAK0E,oBAAqB1E,KAAKyE,SAAUzE,KAAKC,KAAK4F,YAAY7F,KAAK6E,cAAe7E,KAAK6E,MAAO7E,KAAKgF,aAAa1C,IAAI,YAAatC,KAAKsF,aAActF,MAAMsC,IAAI,WAAYtC,KAAKoF,YAAapF,MAAMsC,IAAI,UAAWtC,KAAKuF,WAAYvF,MAAMsC,IAAI,YAAatC,KAAKqF,aAAcrF,MAAOA,KAAKC,KAAK4F,YAAY7F,KAAKgF,qBAAsBhF,KAAKgF,aAAchF,KAAK8F,eAAgB9F,KAAKC,KAAKqC,IAAI,UAAWtC,KAAKuF,WAAYvF,MAAMsC,IAAI,YAAatC,KAAKqF,aAAcrF,MAAMsC,IAAI,mBAAoBtC,KAAKyF,WAAYzF,MAAMsC,IAAI,UAAWtC,KAAKyF,WAAYzF,MAAMsC,IAAI,aAActC,KAAK0F,SAAU1F,MAAMsC,IAAI,QAAStC,KAAK0F,SAAU1F,KACxvB,EACA+F,iBAAkB,WAChB,KAAM/F,KAAKyE,SAASrL,QAAU,GAAI,CAChC,IAAImD,EAAIyD,KAAKyE,SAASuB,MACpBxJ,EAAIwD,KAAK6E,MACTpL,EAAI+C,EAAEyJ,aACNC,EAAIzM,EAAE0M,QAAQ,EAAG,GAAG,GACtBnG,KAAK6E,MAAMuB,WAAW3M,GAAIuG,KAAK0E,aAAamB,YAAYtJ,GAAIC,EAAEyJ,aAAa7M,OAAS,GAAK4G,KAAKC,KAAK4F,YAAYrJ,GAAIwD,KAAKqG,eAAeH,GAAG,EAC5I,CACF,EACAI,UAAW,SAAU/J,GACfyD,KAAKyE,SAASrL,QAAU,IAAM4G,KAAKhI,QAAQ8K,mBAAqB9C,KAAK6E,MAAM0B,oBAAoBhK,GAAgByD,KAAKwG,qBACxHxG,KAAKyG,aAAezG,KAAK0G,oBAAqB1G,KAAKyE,SAASrI,KAAK4D,KAAK2G,cAAcpK,IAAKyD,KAAK6E,MAAM+B,UAAUrK,GAAI,IAAMyD,KAAK6E,MAAMoB,aAAa7M,QAAU4G,KAAKC,KAAK2E,SAAS5E,KAAK6E,OAAQ7E,KAAKqG,eAAe9J,GAAG,GACnN,EACAsK,cAAe,WACb7G,KAAKyE,SAASrL,QAAU,IAAM4G,KAAK8G,kBAAoB9G,KAAKuC,oBAAqBvC,KAAKyB,UAAWzB,KAAKhI,QAAQ+K,YAAc/C,KAAKmB,SACnI,EACA4F,aAAc,WACZ,IAAIxK,EAAIyD,KAAK6E,MAAMmC,cAAgBhH,KAAK6E,MAAMmC,gBAAkBhH,KAAK6E,MAAMoB,aACzEzJ,EAAIwD,KAAK6E,MAAM0B,oBAAoBhK,EAAEA,EAAEnD,OAAS,KAC7C4G,KAAKhI,QAAQ8K,mBAAqBtG,IAAMwD,KAAK8G,gBAA6B9G,KAAKwG,qBACpFxG,KAAKuC,oBAAqBvC,KAAKyB,UAAWzB,KAAKhI,QAAQ+K,YAAc/C,KAAKmB,SAC5E,EACA2F,cAAe,WACb,OAAO,CACT,EACArB,WAAY,WACV,OAASzF,KAAKyE,UAAYzE,KAAKiH,cACjC,EACA5B,aAAc,SAAU9I,GACtB,IAAIC,EAAIwD,KAAKC,KAAKiH,uBAAuB3K,EAAE4K,eACzC1N,EAAIuG,KAAKC,KAAKmH,mBAAmB5K,GACnCwD,KAAKqH,eAAiB5N,EAAGuG,KAAKsH,eAAe7N,GAAIuG,KAAKiH,aAAazK,GAAIwD,KAAKgF,aAAauC,UAAU9N,GAAIkD,EAAEqF,SAASwF,eAAejL,EAAE4K,cACrI,EACAd,eAAgB,SAAU9J,EAAGC,GAC3BwD,KAAKC,KAAKqB,KAAK3E,EAAEE,KAAK8B,MAAMM,WAAY,CACtCwI,OAAQzH,KAAK0E,eACX1E,KAAK0H,uBAAwB1H,KAAK2H,sBAAsBpL,EAAGC,GAAIwD,KAAK8F,eAAgB9F,KAAKsH,gBAC/F,EACAhC,aAAc,SAAU/I,GACtB,IAAKyD,KAAK4H,gBAAkB5H,KAAK6H,gBAAkB7H,KAAK8H,gBAAiB,CACvE9H,KAAKqF,aAAa9I,GAAIyD,KAAK4H,eAAgB,EAAI5H,KAAK+H,qBACpD,IAAIvL,EAAID,EAAE4K,cACR1N,EAAI+C,EAAEwL,QACN9B,EAAI1J,EAAEyL,QACRjI,KAAKkI,YAAY7G,KAAKrB,KAAMvG,EAAGyM,EACjC,CACF,EACAgC,YAAa,SAAU3L,EAAGC,GACxBwD,KAAKmI,iBAAmBxL,EAAE/D,MAAM2D,EAAGC,EACrC,EACA+I,WAAY,SAAUhJ,GACpB,IAAIC,EAAID,EAAE4K,cACR1N,EAAI+C,EAAEwL,QACN9B,EAAI1J,EAAEyL,QACRjI,KAAKoI,UAAU/G,KAAKrB,KAAMvG,EAAGyM,EAAG3J,GAAIyD,KAAK4H,cAAgB,IAC3D,EACAQ,UAAW,SAAU5L,EAAG/C,EAAGyM,GACzB,GAAIlG,KAAKmI,iBAAkB,CACzB,IAAIE,EAAI1L,EAAE/D,MAAM4D,EAAG/C,GAAG6O,WAAWtI,KAAKmI,kBACpCI,EAAIvI,KAAKwI,yBAAyBtC,EAAEuC,QACtCzI,KAAKhI,QAAQqM,UAAY,GAAKrE,KAAKhI,QAAQqM,WAAarE,KAAKyE,SAASrL,OAAS,GAAK4G,KAAKsG,UAAUJ,EAAEuC,QAASzI,KAAK+G,gBAAkBwB,EAAI,IAAM5L,EAAE2H,QAAQC,MAAQvE,KAAK+G,eAAiB2B,KAAKC,IAAIN,GAAK,GAAK9L,EAAEqM,kBAAoB,IAAM5I,KAAKsG,UAAUJ,EAAEuC,QAASzI,KAAK6I,mBACvQ,CACA7I,KAAKmI,iBAAmB,IAC1B,EACAzC,SAAU,SAAUnJ,GAClB,IAAIC,EACF/C,EACAyM,EAAI3J,EAAE4K,eACPjB,EAAE4C,UAAY5C,EAAE4C,QAAQ,IAAM9I,KAAK4H,eAAiB5H,KAAK6H,eAAiB7H,KAAK8H,kBAAoBtL,EAAI0J,EAAE4C,QAAQ,GAAGd,QAASvO,EAAIyM,EAAE4C,QAAQ,GAAGb,QAASjI,KAAK+H,qBAAsB/H,KAAK6H,eAAgB,EAAI7H,KAAKkI,YAAY7G,KAAKrB,KAAMxD,EAAG/C,GAAIuG,KAAKoI,UAAU/G,KAAKrB,KAAMxD,EAAG/C,EAAG8C,GAAIyD,KAAK6H,cAAgB,MAAO7H,KAAK4H,cAAgB,IACtU,EACAxC,YAAa,WACXpF,KAAK8B,UAAY9B,KAAK8B,SAASsD,YAAY/D,KAAKrB,KAAK8B,SACvD,EACA0G,yBAA0B,SAAUjM,GAClC,IAAIC,EACJ,GAAIwD,KAAKyE,SAASrL,OAAS,EAAG,CAC5B,IAAIK,EACJ,GAAIuG,KAAK9H,OAASyE,EAAEE,KAAK6F,SAASE,KAAMnJ,EAAIuG,KAAKyE,SAASzE,KAAKyE,SAASrL,OAAS,OAAQ,CACvF,GAAI4G,KAAK9H,OAASyE,EAAEE,KAAKkM,QAAQnG,KAAM,OAAO,IAC9CnJ,EAAIuG,KAAKyE,SAAS,EACpB,CACA,IAAIyB,EAAIlG,KAAKC,KAAK+I,uBAAuBvP,EAAEwP,aACzCZ,EAAI,IAAI1L,EAAEuM,OAAO3M,EAAG,CAClB4G,KAAMnD,KAAKhI,QAAQmL,KACnBgB,aAAc,EAAInE,KAAKhI,QAAQmM,eAEjCoE,EAAIvI,KAAKC,KAAK+I,uBAAuBX,EAAEY,aACzCzM,EAAI0J,EAAEoC,WAAWC,EACnB,MAAO/L,EAAI,IACX,OAAOA,CACT,EACAkL,qBAAsB,WACpB,IAAInL,EAAIyD,KAAKyE,SAASrL,OACtBmD,EAAI,GAAKyD,KAAKyE,SAASlI,EAAI,GAAG0F,GAAG,QAASjC,KAAK+G,aAAc/G,MAAOzD,EAAI,GAAKyD,KAAKyE,SAASlI,EAAI,GAAG+F,IAAI,QAAStC,KAAK+G,aAAc/G,KACpI,EACA2G,cAAe,SAAUpK,GACvB,IAAIC,EAAI,IAAIG,EAAEuM,OAAO3M,EAAG,CACtB4G,KAAMnD,KAAKhI,QAAQmL,KACnBgB,aAAc,EAAInE,KAAKhI,QAAQmM,eAEjC,OAAOnE,KAAK0E,aAAaE,SAASpI,GAAIA,CACxC,EACAyK,aAAc,SAAU1K,GACtB,IAAIC,EAAIwD,KAAKyE,SAAWzE,KAAKyE,SAASrL,OAAS,EAC/CoD,EAAI,IAAMD,EAAIA,GAAKyD,KAAKC,KAAKkJ,mBAAmBnJ,KAAKqH,gBAAiBrH,KAAK8F,eAAgB9F,KAAKoJ,WAAWpJ,KAAKC,KAAKkJ,mBAAmBnJ,KAAKyE,SAASjI,EAAI,GAAGyM,aAAc1M,GAC7K,EACA+K,eAAgB,SAAU/K,GACxB,IAAIC,EAAIwD,KAAK+E,kBACbxI,GAAKyD,KAAK8B,SAASuH,eAAe9M,GAAIyD,KAAKyG,aAAezG,KAAK8B,SAASgD,cAActI,EACxF,EACA4M,WAAY,SAAU7M,EAAGC,GACvB,IAAI/C,EACFyM,EACAmC,EACAE,EAAIG,KAAKY,MAAMZ,KAAKa,KAAKb,KAAKc,IAAIhN,EAAEiN,EAAIlN,EAAEkN,EAAG,GAAKf,KAAKc,IAAIhN,EAAEkN,EAAInN,EAAEmN,EAAG,KACtEC,EAAI3J,KAAKhI,QAAQwL,kBACjBoG,EAAI5J,KAAKhI,QAAQyL,mBACjBhJ,EAAI8N,EAAIqB,EAAIrB,EAAIqB,EAAID,EACtB,IAAK3J,KAAK6J,mBAAqB7J,KAAK6J,iBAAmBlN,EAAEgF,QAAQmI,OAAO,MAAO,sBAAuB9J,KAAKG,eAAgB1F,EAAI8N,EAAG9N,GAAKuF,KAAKhI,QAAQwL,kBAAmB/J,EAAIgB,EAAI8N,EAAGrC,EAAI,CACpLuD,EAAGf,KAAKY,MAAM/M,EAAEkN,GAAK,EAAIhQ,GAAKA,EAAI+C,EAAEiN,GACpCC,EAAGhB,KAAKY,MAAM/M,EAAEmN,GAAK,EAAIjQ,GAAKA,EAAI+C,EAAEkN,KACnCrB,EAAI1L,EAAEgF,QAAQmI,OAAO,MAAO,0BAA2B9J,KAAK6J,mBAAqBE,MAAMC,gBAAkBhK,KAAKyG,YAAczG,KAAKhI,QAAQgL,UAAUC,MAAQjD,KAAKhI,QAAQwI,aAAayC,MAAOtG,EAAEgF,QAAQsI,YAAY5B,EAAGnC,EAC1N,EACAgE,kBAAmB,SAAU3N,GAC3B,GAAIyD,KAAK6J,iBAAkB,IAAK,IAAIrN,EAAI,EAAG/C,EAAIuG,KAAK6J,iBAAiBM,WAAW/Q,OAAQoD,EAAI/C,EAAG+C,IAAKwD,KAAK6J,iBAAiBM,WAAW3N,GAAGuN,MAAMC,gBAAkBzN,CAClK,EACAuJ,aAAc,WACZ,GAAI9F,KAAK6J,iBAAkB,KAAO7J,KAAK6J,iBAAiBO,YAAapK,KAAK6J,iBAAiBQ,YAAYrK,KAAK6J,iBAAiBO,WAC/H,EACArF,gBAAiB,WACf,IAAIxI,EACFC,EACA/C,EAAIuG,KAAKhI,QAAQkM,WACnB,OAAO,IAAMlE,KAAKyE,SAASrL,OAASmD,EAAI,CACtCW,KAAMP,EAAEG,UAAUC,KAAKY,SAASL,SAASM,QAAQC,QAC9CrB,EAAI/C,EAAIuG,KAAKsK,wBAA0B,GAAI/N,EAAI,IAAMyD,KAAKyE,SAASrL,OAAS,CAC/E8D,KAAMP,EAAEG,UAAUC,KAAKY,SAASL,SAASM,QAAQG,KACjDW,QAASlC,GACP,CACFU,KAAMP,EAAEG,UAAUC,KAAKY,SAASL,SAASM,QAAQI,IACjDU,QAASlC,IACPD,CACN,EACAoL,sBAAuB,SAAUpL,EAAGC,GAClC,IAAI/C,EACFyM,EACAmC,EAAIrI,KAAKyE,SAASrL,OACpB,IAAM4G,KAAKyE,SAASrL,OAAS4G,KAAKuK,yBAA2B,GAAK9Q,EAAI4O,GAAK7L,EAAI,EAAI,GAAI0J,EAAIvJ,EAAE6N,aAAaC,eAAiBlO,EAAE+L,WAAWtI,KAAKyE,SAAShL,GAAGwP,cAAgBjJ,KAAKhI,QAAQoM,QAAU,GAAKpE,KAAKC,KAAKyK,SAASnO,EAAGyD,KAAKyE,SAAShL,GAAGwP,cAAgBjJ,KAAKhI,QAAQoM,QAAU,GAAIpE,KAAKuK,0BAA4BrE,GAAK1J,EAAI,GAAK,GACxU,EACA8N,sBAAuB,WACrB,IAAI/N,EACFC,EAAIwD,KAAKqH,eACT5N,EAAIuG,KAAKyE,SAASzE,KAAKyE,SAASrL,OAAS,GAAG6P,YAC9C,OAAO1M,EAAII,EAAE6N,aAAaC,eAAiBhR,GAAK+C,GAAKA,EAAE8L,WAAatI,KAAKuK,yBAA2B/N,EAAE8L,WAAW7O,IAAMuG,KAAKhI,QAAQoM,QAAU,GAAKpE,KAAKuK,0BAA4B,EAAI9Q,GAAK+C,EAAIwD,KAAKuK,yBAA2BvK,KAAKC,KAAKyK,SAASlO,EAAG/C,IAAMuG,KAAKhI,QAAQoM,QAAU,GAAKpE,KAAKuK,0BAA4B,EAAG5N,EAAE6N,aAAaG,iBAAiBpO,EAAGyD,KAAKhI,QAAQ+L,OAAQ/D,KAAKhI,QAAQgM,KAAMhE,KAAKhI,QAAQiM,OAAQjE,KAAKhI,QAAQ4S,UAC5a,EACApE,kBAAmB,WACjBxG,KAAKyG,aAAc,EAAIzG,KAAK8B,SAAS+I,cAAc/F,cAAc,CAC/D5H,KAAM8C,KAAKhI,QAAQgL,UAAUwB,UAC3BxE,KAAKkK,kBAAkBlK,KAAKhI,QAAQgL,UAAUC,OAAQjD,KAAK6E,MAAMiG,SAAS,CAC5E7H,MAAOjD,KAAKhI,QAAQgL,UAAUC,QAC5BjD,KAAK2F,yBAA0B3F,KAAK+K,kBAAoBC,WAAWrO,EAAE8D,KAAKwK,KAAKjL,KAAK0G,kBAAmB1G,MAAOA,KAAKhI,QAAQgL,UAAUE,QAC3I,EACAwD,kBAAmB,WACjB1G,KAAKyG,aAAc,EAAIzG,KAAK2F,yBAA0B3F,KAAK8B,SAASoJ,cAAcpG,cAAc9E,KAAK+E,mBAAoB/E,KAAKkK,kBAAkBlK,KAAKhI,QAAQwI,aAAayC,OAAQjD,KAAK6E,MAAMiG,SAAS,CACpM7H,MAAOjD,KAAKhI,QAAQwI,aAAayC,OAErC,EACA0C,uBAAwB,WACtB3F,KAAK+K,oBAAsBI,aAAanL,KAAK+K,mBAAoB/K,KAAK+K,kBAAoB,KAC5F,EACAhD,mBAAoB,WAClB/H,KAAK8H,iBAAkB,CACzB,EACAe,kBAAmB,WACjBmC,WAAW,WACThL,KAAK8H,iBAAkB,CACzB,EAAEmD,KAAKjL,MAAO,GAChB,EACA4F,cAAe,WACb5F,KAAKyE,SAASrL,OAAS,GAAK4G,KAAKyE,SAASzE,KAAKyE,SAASrL,OAAS,GAAGkJ,IAAI,QAAStC,KAAK+G,aAAc/G,KACtG,EACAuC,kBAAmB,WACjB,IAAIhG,EAAI,IAAIyD,KAAK6C,KAAK7C,KAAK6E,MAAMoB,aAAcjG,KAAKhI,QAAQwI,cAC5D7D,EAAEE,KAAK+C,QAAQoB,UAAUuB,kBAAkBlB,KAAKrB,KAAMzD,EACxD,IACEI,EAAEE,KAAKkM,QAAUpM,EAAEE,KAAK6F,SAAS5C,OAAO,CAC1C6C,QAAS,CACPC,KAAM,WAERC,KAAMlG,EAAEoM,QACR/Q,QAAS,CACPoT,UAAU,EACVlH,YAAY,EACZ1D,aAAc,CACZkD,QAAQ,EACRT,MAAO,UACPU,OAAQ,EACRC,QAAS,GACTC,MAAM,EACNwH,UAAW,KACXC,YAAa,GACbxH,WAAW,GAEbC,QAAQ,EACRC,MAAM,EACNC,QAAQ,EACR2G,UAAW,CAAC,GAEd7K,WAAY,SAAUxD,EAAGC,GACvBG,EAAEE,KAAK6F,SAAS1B,UAAUjB,WAAWsB,KAAKrB,KAAMzD,EAAGC,GAAIwD,KAAK9H,KAAOyE,EAAEE,KAAKkM,QAAQnG,IACpF,EACA8E,qBAAsB,WACpB,IAAInL,EAAIyD,KAAKyE,SAASrL,OACtB,IAAMmD,GAAKyD,KAAKyE,SAAS,GAAGxC,GAAG,QAASjC,KAAK+G,aAAc/G,MAAOzD,EAAI,IAAMyD,KAAKyE,SAASlI,EAAI,GAAG0F,GAAG,WAAYjC,KAAK+G,aAAc/G,MAAOzD,EAAI,GAAKyD,KAAKyE,SAASlI,EAAI,GAAG+F,IAAI,WAAYtC,KAAK+G,aAAc/G,MAC7M,EACA+E,gBAAiB,WACf,IAAIxI,EAAGC,EACP,OAAO,IAAMwD,KAAKyE,SAASrL,OAASmD,EAAII,EAAEG,UAAUC,KAAKY,SAAS9E,QAAQ+E,QAAQC,MAAQmC,KAAKyE,SAASrL,OAAS,GAAKmD,EAAII,EAAEG,UAAUC,KAAKY,SAAS9E,QAAQ+E,QAAQG,KAAMvB,EAAIwD,KAAKsK,0BAA4B/N,EAAII,EAAEG,UAAUC,KAAKY,SAAS9E,QAAQ+E,QAAQI,IAAKxB,EAAIwD,KAAKsK,yBAA0B,CACnSpN,KAAMX,EACNmC,QAASlC,EAEb,EACA8N,sBAAuB,WACrB,IAAI/N,EAAIyD,KAAKuL,MACX/O,EAAI,GACN,OAAOD,GAAKyD,KAAKhI,QAAQkM,YAAclE,KAAKhI,QAAQkM,aAAe1H,EAAIG,EAAEE,KAAK6F,SAAS1B,UAAUsJ,sBAAsBjJ,KAAKrB,OAAQzD,IAAMC,GAAK,OAASG,EAAE6N,aAAagB,aAAajP,EAAGyD,KAAKhI,QAAQ+L,OAAQ/D,KAAKhI,QAAQ4S,YAAapO,GAAK,IAC7O,EACAsK,cAAe,WACb,OAAO9G,KAAKyE,SAASrL,QAAU,CACjC,EACAiN,eAAgB,SAAU9J,EAAGC,GAC3B,IAAI/C,GACHuG,KAAKhI,QAAQ8K,mBAAqB9C,KAAKhI,QAAQoT,WAAa3R,EAAIuG,KAAK6E,MAAMoB,aAAcjG,KAAKuL,MAAQ5O,EAAE6N,aAAaiB,aAAahS,IAAKkD,EAAEE,KAAK6F,SAAS1B,UAAUqF,eAAehF,KAAKrB,KAAMzD,EAAGC,EACjM,EACAoJ,cAAe,WACb,IAAIrJ,EAAIyD,KAAKyE,SAASrL,OACtBmD,EAAI,IAAMyD,KAAKyE,SAAS,GAAGnC,IAAI,QAAStC,KAAK+G,aAAc/G,MAAOzD,EAAI,GAAKyD,KAAKyE,SAASlI,EAAI,GAAG+F,IAAI,WAAYtC,KAAK+G,aAAc/G,MACrI,IACErD,EAAE+O,YAAc,CAAC,EAAG/O,EAAEE,KAAK6O,YAAc/O,EAAEE,KAAK+C,QAAQE,OAAO,CACjE9H,QAAS,CACP+K,YAAY,GAEdhD,WAAY,SAAUxD,EAAGC,GACvBwD,KAAK2L,cAAgBhP,EAAEG,UAAUC,KAAKY,SAASO,YAAYN,QAAQI,IAAKrB,EAAEE,KAAK+C,QAAQoB,UAAUjB,WAAWsB,KAAKrB,KAAMzD,EAAGC,EAC5H,EACAkF,SAAU,WACR/E,EAAEE,KAAK+C,QAAQoB,UAAUU,SAASL,KAAKrB,MAAOA,KAAKC,OAASD,KAAK4L,cAAgB5L,KAAKC,KAAK4L,SAASC,UAAW9L,KAAK4L,eAAiB5L,KAAKC,KAAK4L,SAASpK,UAAWzB,KAAKE,WAAW6J,MAAMgC,OAAS,YAAa/L,KAAK8B,SAASgD,cAAc,CACzO5H,KAAM8C,KAAKgM,oBACThM,KAAKC,KAAKgC,GAAG,YAAajC,KAAKsF,aAActF,MAAMiC,GAAG,YAAajC,KAAKqF,aAAcrF,MAAMiC,GAAG,aAAcjC,KAAKsF,aAActF,MAAMiC,GAAG,YAAajC,KAAKqF,aAAcrF,MAAOxD,EAAEyP,iBAAiB,aAActP,EAAEqF,SAASwF,eAAgB,CAC9O0E,SAAS,IAEb,EACA/J,YAAa,WACXxF,EAAEE,KAAK+C,QAAQoB,UAAUmB,YAAYd,KAAKrB,MAAOA,KAAKC,OAASD,KAAK4L,eAAiB5L,KAAKC,KAAK4L,SAAS1K,SAAUnB,KAAKE,WAAW6J,MAAMgC,OAAS,GAAI/L,KAAKC,KAAKqC,IAAI,YAAatC,KAAKsF,aAActF,MAAMsC,IAAI,YAAatC,KAAKqF,aAAcrF,MAAMsC,IAAI,aAActC,KAAKsF,aAActF,MAAMsC,IAAI,YAAatC,KAAKqF,aAAcrF,MAAOrD,EAAEqF,SAASM,IAAI9F,EAAG,UAAWwD,KAAKuF,WAAYvF,MAAOrD,EAAEqF,SAASM,IAAI9F,EAAG,WAAYwD,KAAKuF,WAAYvF,MAAOxD,EAAE2P,oBAAoB,aAAcxP,EAAEqF,SAASwF,gBAAiBxH,KAAKoM,SAAWpM,KAAKC,KAAK4F,YAAY7F,KAAKoM,eAAgBpM,KAAKoM,SAAUpM,KAAKqM,YAAa,CACllB,EACAtH,gBAAiB,WACf,MAAO,CACL7H,KAAM8C,KAAK2L,cAEf,EACArG,aAAc,SAAU/I,GACtByD,KAAKqM,YAAa,EAAIrM,KAAKsM,aAAe/P,EAAEkM,OAAQ9L,EAAEqF,SAASC,GAAGzF,EAAG,UAAWwD,KAAKuF,WAAYvF,MAAMiC,GAAGzF,EAAG,WAAYwD,KAAKuF,WAAYvF,MAAMwH,eAAejL,EAAE4K,cACnK,EACA9B,aAAc,SAAU9I,GACtB,IAAIC,EAAID,EAAEkM,OACVzI,KAAK8B,SAASuH,eAAe7M,GAAIwD,KAAKqM,aAAerM,KAAK8B,SAASgD,cAAc9E,KAAK+E,mBAAoB/E,KAAKuM,WAAW/P,GAC5H,EACA+I,WAAY,WACVvF,KAAKoM,QAAUpM,KAAKuC,oBAAqBvC,KAAKyB,UAAWzB,KAAKhI,QAAQ+K,YAAc/C,KAAKmB,QAC3F,IACExE,EAAEE,KAAK2P,UAAY7P,EAAEE,KAAK6O,YAAY5L,OAAO,CAC/C6C,QAAS,CACPC,KAAM,aAER5K,QAAS,CACPwI,aAAc,CACZkD,QAAQ,EACRT,MAAO,UACPU,OAAQ,EACRC,QAAS,GACTC,MAAM,EACNwH,UAAW,KACXC,YAAa,GACbxH,WAAW,GAEbsH,UAAU,EACVrH,QAAQ,GAEVhE,WAAY,SAAUxD,EAAGC,GACvBwD,KAAK9H,KAAOyE,EAAEE,KAAK2P,UAAU5J,KAAM5C,KAAKgM,kBAAoBrP,EAAEG,UAAUC,KAAKY,SAASJ,UAAUK,QAAQC,MAAOlB,EAAEE,KAAK6O,YAAY1K,UAAUjB,WAAWsB,KAAKrB,KAAMzD,EAAGC,EACvK,EACAiF,QAAS,WACPzB,KAAKoB,WAAapB,KAAKyM,6BAA8B,EAAI9P,EAAEE,KAAK6O,YAAY1K,UAAUS,QAAQJ,KAAKrB,MACrG,EACAuF,WAAY,SAAUhJ,GACfyD,KAAKoM,QAAWpM,KAAKyM,4BAC1BzM,KAAKyM,8BArfT,SAAWlQ,EAAGC,GACZ,MAAQD,EAAIA,EAAEmQ,iBAAmBnQ,EAAEoQ,UAAUC,SAASpQ,KACtD,OAAOD,CACT,CAkfyC2J,CAAE3J,EAAEhF,OAAQ,iBAAmBoF,EAAEE,KAAK6O,YAAY1K,UAAUuE,WAAWlE,KAAKrB,MAD7CA,KAAKyM,6BAA8B,CAEzG,EACAF,WAAY,SAAUhQ,GACpByD,KAAKoM,OAASpM,KAAKoM,OAAOS,UAAU,IAAIlQ,EAAEmQ,aAAa9M,KAAKsM,aAAc/P,KAAOyD,KAAKoM,OAAS,IAAIzP,EAAE6P,UAAU,IAAI7P,EAAEmQ,aAAa9M,KAAKsM,aAAc/P,GAAIyD,KAAKhI,QAAQwI,cAAeR,KAAKC,KAAK2E,SAAS5E,KAAKoM,QAC/M,EACA7J,kBAAmB,WACjB,IAAIhG,EAAI,IAAII,EAAE6P,UAAUxM,KAAKoM,OAAOW,YAAa/M,KAAKhI,QAAQwI,cAC9D7D,EAAEE,KAAK6O,YAAY1K,UAAUuB,kBAAkBlB,KAAKrB,KAAMzD,EAC5D,EACAwI,gBAAiB,WACf,IAAIxI,EACFC,EACA/C,EACAyM,EAAIvJ,EAAEE,KAAK6O,YAAY1K,UAAU+D,gBAAgB1D,KAAKrB,MACtDqI,EAAIrI,KAAKoM,OACT7D,EAAIvI,KAAKhI,QAAQoT,SACnB,OAAO/C,IAAM9L,EAAIyD,KAAKoM,OAAOpF,cAAgBhH,KAAKoM,OAAOpF,gBAAkBhH,KAAKoM,OAAOnG,aAAczJ,EAAIG,EAAE6N,aAAaiB,aAAalP,GAAI9C,EAAI8O,EAAI5L,EAAE6N,aAAagB,aAAahP,EAAGwD,KAAKhI,QAAQ+L,QAAU,IAAK,CAC1M7G,KAAMgJ,EAAEhJ,KACRwB,QAASjF,EAEb,IACEkD,EAAEE,KAAKqM,OAASvM,EAAEE,KAAK+C,QAAQE,OAAO,CACxC6C,QAAS,CACPC,KAAM,UAER5K,QAAS,CACPmL,KAAM,IAAIxG,EAAEqQ,KAAKC,QACjBlK,YAAY,EACZoB,aAAc,KAEhBpE,WAAY,SAAUxD,EAAGC,GACvBwD,KAAK9H,KAAOyE,EAAEE,KAAKqM,OAAOtG,KAAM5C,KAAKgM,kBAAoBrP,EAAEG,UAAUC,KAAKY,SAASF,OAAOG,QAAQC,MAAOlB,EAAEE,KAAK+C,QAAQoB,UAAUjB,WAAWsB,KAAKrB,KAAMzD,EAAGC,EAC7J,EACAkF,SAAU,WACR/E,EAAEE,KAAK+C,QAAQoB,UAAUU,SAASL,KAAKrB,MAAOA,KAAKC,OAASD,KAAK8B,SAASgD,cAAc,CACtF5H,KAAM8C,KAAKgM,oBACThM,KAAKgF,eAAiBhF,KAAKgF,aAAerI,EAAEc,OAAOuC,KAAKC,KAAKgF,YAAa,CAC5E9B,KAAMxG,EAAEuI,QAAQ,CACd5P,UAAW,uBACX6P,WAAY,CAAC,GAAI,IACjB9B,SAAU,CAAC,GAAI,MAEjBO,QAAS,EACTO,aAAcnE,KAAKhI,QAAQmM,gBACxBnE,KAAKgF,aAAa/C,GAAG,QAASjC,KAAKkN,SAAUlN,MAAMwF,MAAMxF,KAAKC,MAAOD,KAAKC,KAAKgC,GAAG,YAAajC,KAAKqF,aAAcrF,MAAOA,KAAKC,KAAKgC,GAAG,QAASjC,KAAK0F,SAAU1F,MACrK,EACAmC,YAAa,WACXxF,EAAEE,KAAK+C,QAAQoB,UAAUmB,YAAYd,KAAKrB,MAAOA,KAAKC,OAASD,KAAKC,KAAKqC,IAAI,QAAStC,KAAKkN,SAAUlN,MAAMsC,IAAI,QAAStC,KAAK0F,SAAU1F,MAAOA,KAAKmN,UAAYnN,KAAKmN,QAAQ7K,IAAI,QAAStC,KAAKkN,SAAUlN,MAAOA,KAAKC,KAAK4F,YAAY7F,KAAKmN,gBAAiBnN,KAAKmN,SAAUnN,KAAKgF,aAAa1C,IAAI,QAAStC,KAAKkN,SAAUlN,MAAOA,KAAKC,KAAK4F,YAAY7F,KAAKgF,qBAAsBhF,KAAKgF,aAAchF,KAAKC,KAAKqC,IAAI,YAAatC,KAAKqF,aAAcrF,MACnb,EACAqF,aAAc,SAAU9I,GACtB,IAAIC,EAAID,EAAEkM,OACVzI,KAAK8B,SAASuH,eAAe7M,GAAIwD,KAAKgF,aAAauC,UAAU/K,GAAIwD,KAAKmN,SAAW3Q,EAAIwD,KAAKgF,aAAaiE,YAAajJ,KAAKmN,QAAQ5F,UAAU/K,KAAOwD,KAAKmN,QAAUnN,KAAK2G,cAAcnK,GAAIwD,KAAKmN,QAAQlL,GAAG,QAASjC,KAAKkN,SAAUlN,MAAOA,KAAKC,KAAKgC,GAAG,QAASjC,KAAKkN,SAAUlN,MAAM4E,SAAS5E,KAAKmN,SAClS,EACAxG,cAAe,SAAUpK,GACvB,OAAO,IAAII,EAAEuM,OAAO3M,EAAG,CACrB4G,KAAMnD,KAAKhI,QAAQmL,KACnBgB,aAAcnE,KAAKhI,QAAQmM,cAE/B,EACA+I,SAAU,WACRlN,KAAKuC,oBAAqBvC,KAAKyB,UAAWzB,KAAKhI,QAAQ+K,YAAc/C,KAAKmB,QAC5E,EACAuE,SAAU,SAAUnJ,GAClByD,KAAKqF,aAAa9I,GAAIyD,KAAKkN,UAC7B,EACA3K,kBAAmB,WACjB,IAAIhG,EAAI,IAAII,EAAEuM,OAAOkE,MAAMpN,KAAKmN,QAAQlE,YAAa,CACnD9F,KAAMnD,KAAKhI,QAAQmL,OAErBxG,EAAEE,KAAK+C,QAAQoB,UAAUuB,kBAAkBlB,KAAKrB,KAAMzD,EACxD,IACEI,EAAEE,KAAKwQ,aAAe1Q,EAAEE,KAAKqM,OAAOpJ,OAAO,CAC7C6C,QAAS,CACPC,KAAM,gBAER5K,QAAS,CACP0L,QAAQ,EACRT,MAAO,UACPU,OAAQ,EACRC,QAAS,GACTC,MAAM,EACNwH,UAAW,KACXC,YAAa,GACbxH,WAAW,EACXK,aAAc,KAEhBpE,WAAY,SAAUxD,EAAGC,GACvBwD,KAAK9H,KAAOyE,EAAEE,KAAKwQ,aAAazK,KAAM5C,KAAKgM,kBAAoBrP,EAAEG,UAAUC,KAAKY,SAASD,aAAaE,QAAQC,MAAOlB,EAAEE,KAAK+C,QAAQoB,UAAUjB,WAAWsB,KAAKrB,KAAMzD,EAAGC,EACzK,EACA+F,kBAAmB,WACjB,IAAIhG,EAAI,IAAII,EAAE0Q,aAAarN,KAAKmN,QAAQlE,YAAajJ,KAAKhI,SAC1D2E,EAAEE,KAAK+C,QAAQoB,UAAUuB,kBAAkBlB,KAAKrB,KAAMzD,EACxD,EACAoK,cAAe,SAAUpK,GACvB,OAAO,IAAII,EAAE0Q,aAAa9Q,EAAGyD,KAAKhI,QACpC,IACE2E,EAAEE,KAAKyQ,OAAS3Q,EAAEE,KAAK6O,YAAY5L,OAAO,CAC5C6C,QAAS,CACPC,KAAM,UAER5K,QAAS,CACPwI,aAAc,CACZkD,QAAQ,EACRT,MAAO,UACPU,OAAQ,EACRC,QAAS,GACTC,MAAM,EACNwH,UAAW,KACXC,YAAa,GACbxH,WAAW,GAEbyJ,YAAY,EACZxJ,QAAQ,EACRC,MAAM,EACNC,QAAQ,GAEVlE,WAAY,SAAUxD,EAAGC,GACvBwD,KAAK9H,KAAOyE,EAAEE,KAAKyQ,OAAO1K,KAAM5C,KAAKgM,kBAAoBrP,EAAEG,UAAUC,KAAKY,SAASH,OAAOI,QAAQC,MAAOlB,EAAEE,KAAK6O,YAAY1K,UAAUjB,WAAWsB,KAAKrB,KAAMzD,EAAGC,EACjK,EACA+P,WAAY,SAAUhQ,GACpB,GAAII,EAAE6N,aAAaC,eAAgB,IAAIjO,EAAIwD,KAAKsM,aAAahE,WAAW/L,QAAYC,EAAIwD,KAAKC,KAAKyK,SAAS1K,KAAKsM,aAAc/P,GAC9HyD,KAAKoM,OAASpM,KAAKoM,OAAOoB,UAAUhR,IAAMwD,KAAKoM,OAAS,IAAIzP,EAAE2Q,OAAOtN,KAAKsM,aAAc9P,EAAGwD,KAAKhI,QAAQwI,cAAeR,KAAKC,KAAK2E,SAAS5E,KAAKoM,QACjJ,EACA7J,kBAAmB,WACjB,IAAIhG,EAAI,IAAII,EAAE2Q,OAAOtN,KAAKsM,aAActM,KAAKoM,OAAOqB,YAAazN,KAAKhI,QAAQwI,cAC9E7D,EAAEE,KAAK6O,YAAY1K,UAAUuB,kBAAkBlB,KAAKrB,KAAMzD,EAC5D,EACA8I,aAAc,SAAU9I,GACtB,IAAIC,EACF/C,EAAI8C,EAAEkM,OACNvC,EAAIlG,KAAKhI,QAAQuV,WACjBlF,EAAIrI,KAAKhI,QAAQ+L,OACnB,GAAI/D,KAAK8B,SAASuH,eAAe5P,GAAIuG,KAAKqM,WAAY,CACpDrM,KAAKuM,WAAW9S,GAAI+C,EAAIwD,KAAKoM,OAAOqB,YAAYC,QAAQ,GACxD,IAAInF,EAAI,GACRrC,IAAMqC,EAAI5L,EAAEG,UAAUC,KAAKY,SAASH,OAAOM,OAAS,KAAOnB,EAAE6N,aAAaG,iBAAiBnO,EAAG6L,EAAGrI,KAAKhI,QAAQgM,KAAMhE,KAAKhI,QAAQiM,SAAUjE,KAAK8B,SAASgD,cAAc,CACrK5H,KAAM8C,KAAK2L,cACXjN,QAAS6J,GAEb,CACF,IACE5L,EAAEgR,KAAOhR,EAAEgR,MAAQ,CAAC,EAAGhR,EAAEgR,KAAKzE,OAASvM,EAAEkD,QAAQC,OAAO,CAC1DC,WAAY,SAAUxD,EAAGC,GACvBwD,KAAKmN,QAAU5Q,EAAGI,EAAE+D,WAAWV,KAAMxD,EACvC,EACAkF,SAAU,WACR,IAAInF,EAAIyD,KAAKmN,QACb5Q,EAAEsP,SAAS1K,SAAU5E,EAAE0F,GAAG,UAAWjC,KAAK4N,WAAYrR,GAAIyD,KAAK6N,wBACjE,EACA1L,YAAa,WACX,IAAI5F,EAAIyD,KAAKmN,QACb5Q,EAAEsP,SAASpK,UAAWlF,EAAE+F,IAAI,UAAWtC,KAAK4N,WAAYrR,GAAIyD,KAAK6N,wBACnE,EACAD,WAAY,SAAUrR,GACpB,IAAIC,EAAID,EAAEhF,OACViF,EAAEsR,QAAS,EAAI9N,KAAKC,KAAKqB,KAAK3E,EAAEE,KAAK8B,MAAMQ,SAAU,CACnDqD,MAAOhG,GAEX,EACAqR,uBAAwB,WACtB,IAAItR,EAAIyD,KAAKmN,QAAQY,MACrBxR,IAAMA,EAAEwN,MAAMnU,QAAU,OAAQ+G,EAAEgF,QAAQqM,SAASzR,EAAG,iCAAmCI,EAAEgF,QAAQsM,YAAY1R,EAAG,gCAAiCyD,KAAKkO,cAAc3R,GAAI,KAAOI,EAAEgF,QAAQwM,SAAS5R,EAAG,gCAAiCyD,KAAKkO,cAAc3R,EAAG,IAAKA,EAAEwN,MAAMnU,QAAU,GACvR,EACAsY,cAAe,SAAU3R,EAAGC,GAC1B,IAAI/C,EAAIoH,SAAStE,EAAEwN,MAAMqE,UAAW,IAAM5R,EACxC0J,EAAIrF,SAAStE,EAAEwN,MAAMsE,WAAY,IAAM7R,EACzCD,EAAEwN,MAAMqE,UAAY3U,EAAI,KAAM8C,EAAEwN,MAAMsE,WAAanI,EAAI,IACzD,IACEvJ,EAAEuM,OAAOoF,aAAY,WACvB3R,EAAEgR,KAAKzE,SAAWlJ,KAAKuO,QAAU,IAAI5R,EAAEgR,KAAKzE,OAAOlJ,MAAOA,KAAKhI,QAAQwW,UAAYxO,KAAKuO,QAAQpN,SAClG,IAAIxE,EAAEgR,KAAOhR,EAAEgR,MAAQ,CAAC,EAAGhR,EAAEgR,KAAK9K,KAAOlG,EAAEkD,QAAQC,OAAO,CACxDC,WAAY,SAAUxD,GACpByD,KAAKyO,QAAU,CAAClS,EAAEmS,UAAWnS,EAAEoS,SAAW3O,KAAKyO,QAAUzO,KAAKyO,QAAQG,OAAOrS,EAAEoS,SAAU3O,KAAK6E,MAAQtI,EAAGyD,KAAK6E,MAAM5C,GAAG,gBAAiBjC,KAAK6O,eAAgB7O,KAC/J,EACAgH,cAAe,WACb,OAAOrK,EAAE+F,SAASoM,MAAQnS,EAAE+F,SAASoM,MAAM9O,KAAK6E,MAAM6J,UAAY1O,KAAK6E,MAAM6J,SAAW1O,KAAK6E,MAAM6J,SAAS,GAAK1O,KAAK6E,MAAM6J,QAC9H,EACAK,mBAAoB,SAAUxS,GAC5B,IAAK,IAAIC,EAAI,EAAGA,EAAIwD,KAAKgP,kBAAkB5V,OAAQoD,IAAKD,EAAEyD,KAAKgP,kBAAkBxS,GACnF,EACAkF,SAAU,WACR1B,KAAKiP,gBAAiBjP,KAAK+O,oBAAmB,SAAUxS,GACtDA,EAAEmF,UACJ,GACF,EACAS,YAAa,WACXnC,KAAK+O,oBAAmB,SAAUxS,GAChCA,EAAE4F,aACJ,GACF,EACA+M,cAAe,WACblP,KAAK+O,oBAAmB,SAAUxS,GAChCA,EAAE2S,eACJ,GACF,EACAD,cAAe,WACbjP,KAAKgP,kBAAoB,GACzB,IAAK,IAAIzS,EAAI,EAAGA,EAAIyD,KAAKyO,QAAQrV,OAAQmD,IAAKyD,KAAKgP,kBAAkB5S,KAAK,IAAIO,EAAEgR,KAAKwB,iBAAiBnP,KAAK6E,MAAO7E,KAAKyO,QAAQlS,GAAIyD,KAAK6E,MAAM7M,QAAQoX,MACxJ,EACAP,eAAgB,SAAUtS,GACxByD,KAAKyO,QAAU,CAAClS,EAAEiG,MAAMkM,UAAWnS,EAAEiG,MAAMmM,SAAW3O,KAAKyO,QAAUzO,KAAKyO,QAAQG,OAAOrS,EAAEiG,MAAMmM,QACnG,IACEhS,EAAEgR,KAAKwB,iBAAmBxS,EAAEkD,QAAQC,OAAO,CAC7C9H,QAAS,CACPmL,KAAM,IAAIxG,EAAEyG,QAAQ,CAClBC,SAAU,IAAI1G,EAAE2G,MAAM,EAAG,GACzBhO,UAAW,0CAEbiO,UAAW,IAAI5G,EAAEyG,QAAQ,CACvBC,SAAU,IAAI1G,EAAE2G,MAAM,GAAI,IAC1BhO,UAAW,6DAEb0N,UAAW,CACTC,MAAO,UACPC,QAAS,MAGbnD,WAAY,SAAUxD,EAAGC,EAAG/C,GAC1BkD,EAAE2H,QAAQC,QAAUvE,KAAKhI,QAAQmL,KAAOnD,KAAKhI,QAAQuL,WAAYvD,KAAK6E,MAAQtI,EAAG9C,GAAKA,EAAEuJ,YAAcvJ,EAAEuJ,UAAYrG,EAAE8D,KAAKX,OAAO,CAAC,EAAGE,KAAKhI,QAAQgL,UAAWvJ,EAAEuJ,YAAahD,KAAK0O,SAAWlS,EAAGG,EAAE+D,WAAWV,KAAMvG,EACrN,EACAuN,cAAe,WACb,OAAOrK,EAAE+F,SAASoM,MAAQnS,EAAE+F,SAASoM,MAAM9O,KAAK0O,UAAY1O,KAAK0O,SAAW1O,KAAK0O,SAAS,GAAK1O,KAAK0O,QACtG,EACAhN,SAAU,WACR,IAAInF,EAAIyD,KAAK6E,MACXrI,EAAID,EAAE8S,MACR9S,aAAaI,EAAEoM,UAAYxM,EAAEvE,QAAQ6L,MAAO,EAAItH,EAAEvE,QAAQuW,UAAYhS,EAAEvE,QAAQuW,QAAQ1K,MAAO,IAAMrH,GAAKD,EAAEvE,QAAQuW,SAAWhS,EAAEvE,QAAQuW,QAAQjZ,YAAciH,EAAEvE,QAAQsX,SAASha,WAAaiH,EAAEvE,QAAQsX,SAASha,UAAUsL,MAAM,KAAK2O,SAAQ,SAAUhT,GACvPI,EAAEgF,QAAQsM,YAAYzR,EAAGD,EAC3B,IAAIA,EAAEvE,QAAQuW,QAAQjZ,UAAUsL,MAAM,KAAK2O,SAAQ,SAAUhT,GAC3DI,EAAEgF,QAAQwM,SAAS3R,EAAGD,EACxB,KAAKA,EAAEuO,SAASvO,EAAEvE,QAAQuW,SAAUvO,KAAK6E,MAAM5E,OAASD,KAAKC,KAAOD,KAAK6E,MAAM5E,KAAMD,KAAK0E,cAAgB1E,KAAKwP,eAAgBxP,KAAK6E,MAAM5E,KAAK2E,SAAS5E,KAAK0E,cAC/J,EACAvC,YAAa,WACX,IAAI5F,EAAIyD,KAAK6E,MACXrI,EAAID,EAAE8S,MACR7S,GAAKD,EAAEvE,QAAQuW,SAAWhS,EAAEvE,QAAQuW,QAAQjZ,YAAciH,EAAEvE,QAAQuW,QAAQjZ,UAAUsL,MAAM,KAAK2O,SAAQ,SAAUhT,GACjHI,EAAEgF,QAAQsM,YAAYzR,EAAGD,EAC3B,IAAIA,EAAEvE,QAAQsX,SAASha,WAAaiH,EAAEvE,QAAQsX,SAASha,UAAUsL,MAAM,KAAK2O,SAAQ,SAAUhT,GAC5FI,EAAEgF,QAAQwM,SAAS3R,EAAGD,EACxB,KAAKA,EAAEuO,SAASvO,EAAEvE,QAAQsX,UAAW/S,EAAE0D,OAAS1D,EAAE0D,KAAK4F,YAAY7F,KAAK0E,qBAAsB1E,KAAK0E,oBAAqB1E,KAAKyE,SAC/H,EACAyK,cAAe,WACblP,KAAK0E,aAAa+K,cAAezP,KAAKwP,cACxC,EACAA,aAAc,WACZxP,KAAK0E,eAAiB1E,KAAK0E,aAAe,IAAI/H,EAAEgI,YAAe3E,KAAKyE,SAAW,GAC/E,IAAIlI,EACFC,EACA/C,EACAyM,EAGEqC,EAAGoB,EAFLtB,EAAIrI,KAAKgH,gBACX,IAAKzK,EAAI,EAAG9C,EAAI4O,EAAEjP,OAAQmD,EAAI9C,EAAG8C,KAAK2J,EAAIlG,KAAK2G,cAAc0B,EAAE9L,GAAIA,IAAM0F,GAAG,QAASjC,KAAK0P,eAAgB1P,MAAOkG,EAAEjE,GAAG,cAAejC,KAAK2P,eAAgB3P,MAAOA,KAAKyE,SAASrI,KAAK8J,GAEpL,IAAK3J,EAAI,EAAGC,EAAI/C,EAAI,EAAG8C,EAAI9C,EAAG+C,EAAID,KAAM,IAAMA,GAAKI,EAAEoM,SAAW/I,KAAK6E,iBAAiBlI,EAAEoM,WAAaR,EAAIvI,KAAKyE,SAASjI,GAAImN,EAAI3J,KAAKyE,SAASlI,GAAIyD,KAAK4P,oBAAoBrH,EAAGoB,GAAI3J,KAAK6P,gBAAgBtH,EAAGoB,GAC3M,EACAhD,cAAe,SAAUpK,EAAGC,GAC1B,IAAI/C,EAAI,IAAIkD,EAAEuM,OAAOkE,MAAM7Q,EAAG,CAC5BuT,WAAW,EACX3M,KAAMnD,KAAKhI,QAAQmL,OAErB,OAAO1J,EAAEsW,YAAcxT,EAAG9C,EAAEuW,OAASxT,EAAG/C,EAAEwI,GAAG,YAAajC,KAAKiQ,mBAAoBjQ,MAAMiC,GAAG,OAAQjC,KAAKkQ,cAAelQ,MAAMiC,GAAG,UAAWjC,KAAKmQ,UAAWnQ,MAAMiC,GAAG,YAAajC,KAAKoQ,aAAcpQ,MAAMiC,GAAG,WAAYjC,KAAKmQ,UAAWnQ,MAAMiC,GAAG,gBAAiBjC,KAAKoQ,aAAcpQ,MAAMiC,GAAG,cAAejC,KAAKmQ,UAAWnQ,MAAOA,KAAK0E,aAAaE,SAASnL,GAAIA,CACvW,EACAwW,mBAAoB,WAClBjQ,KAAK6E,MAAMvD,KAAK,YAClB,EACA+O,eAAgB,WACd,IAAI9T,EAAIyD,KAAKgH,gBACXxK,EAAI,GAAG2J,OAAOmK,MAAM/T,EAAGgU,WACzB,OAAOvQ,KAAK6E,MAAM2L,gBAAgBjU,GAAG,GAAKyD,KAAK6E,MAAM4L,SAAUjU,CACjE,EACAkU,cAAe,SAAUnU,GACvB,IAAIC,EAAID,EAAEyT,OACVhQ,KAAK0E,aAAamB,YAAYtJ,GAAIyD,KAAKyE,SAAS0B,OAAO3J,EAAG,GAAIwD,KAAKqQ,eAAe7T,EAAG,GAAIwD,KAAK2Q,eAAenU,GAAI,GAAID,EAAE+F,IAAI,YAAatC,KAAKiQ,mBAAoBjQ,MAAMsC,IAAI,OAAQtC,KAAKkQ,cAAelQ,MAAMsC,IAAI,UAAWtC,KAAKmQ,UAAWnQ,MAAMsC,IAAI,YAAatC,KAAKkQ,cAAelQ,MAAMsC,IAAI,WAAYtC,KAAKmQ,UAAWnQ,MAAMsC,IAAI,QAAStC,KAAK0P,eAAgB1P,MAAMsC,IAAI,gBAAiBtC,KAAKoQ,aAAcpQ,MAAMsC,IAAI,cAAetC,KAAKmQ,UAAWnQ,KAC9b,EACAmQ,UAAW,WACTnQ,KAAK6E,MAAMiJ,QAAS,EAAI9N,KAAK6E,MAAMvD,KAAK,QAAStB,KAAK6E,MAAM5E,KAAKqB,KAAK3E,EAAEE,KAAK8B,MAAMU,WAAY,CAC7FoI,OAAQzH,KAAK0E,aACb0K,KAAMpP,KAAK6E,OAEf,EACAqL,cAAe,SAAU3T,GACvB,IAAIC,EAAID,EAAEhF,OACRkC,EAAIuG,KAAK6E,MACTqB,EAAIvJ,EAAEiU,WAAWC,YAAYrU,EAAEuT,aACjC,GAAIpT,EAAEmD,OAAOtD,EAAEuT,YAAavT,EAAEsU,SAAUrX,EAAEzB,QAAQoX,KAAM,CACtD,IAAI/G,EAAI5O,EAAEwG,KAAK8Q,aACf,IAAKtX,EAAEzB,QAAQoX,KAAKtM,mBAAqBrJ,EAAEuX,aAAc,CACvDrU,EAAEmD,OAAOtD,EAAEuT,YAAa7J,GAAI1J,EAAE+K,UAAUrB,GACxC,IAAIqC,EAAI9O,EAAEzB,QAAQiL,MAClBxJ,EAAEqR,SAAS,CACT7H,MAAOjD,KAAKhI,QAAQgL,UAAUC,QAC5BoF,GAAKA,EAAEvD,cAAc,CACvB5H,KAAMP,EAAEG,UAAUC,KAAKY,SAASL,SAASW,QACvC+M,YAAW,WACbvR,EAAEqR,SAAS,CACT7H,MAAOsF,IACLF,GAAKA,EAAEvD,cAAc,CACvB5H,KAAMP,EAAEG,UAAUqB,KAAKR,SAASQ,KAAKP,QAAQV,KAC7CwB,QAAS/B,EAAEG,UAAUqB,KAAKR,SAASQ,KAAKP,QAAQc,SAEpD,GAAG,IACL,CACF,CACAlC,EAAEyU,aAAezU,EAAEyU,YAAY1J,UAAUvH,KAAKkR,iBAAiB1U,EAAE2U,MAAO3U,IAAKA,EAAE4U,cAAgB5U,EAAE4U,aAAa7J,UAAUvH,KAAKkR,iBAAiB1U,EAAGA,EAAE6U,QAASrR,KAAK6E,MAAMyM,QAAQC,WAAa5U,EAAE6U,OAAO,IAAO,KAAQxR,KAAK6E,MAAMyM,QAAQG,WAAa9U,EAAE6U,QAAO,KAAQ,KACrQ,IAAI7H,EAAI3J,KAAK6E,MAAMoB,aACnBjG,KAAK6E,MAAM2L,gBAAgB7G,GAAG,GAAK3J,KAAK6E,MAAM4L,SAAUzQ,KAAK6E,MAAMvD,KAAK,WAC1E,EACAoO,eAAgB,SAAUnT,GACxB,IAAIC,EAAIG,EAAEoM,SAAW/I,KAAK6E,iBAAiBlI,EAAEoM,QAAU,EAAI,EACzDtP,EAAI8C,EAAEhF,OACRyI,KAAKgH,gBAAgB5N,OAASoD,IAAMwD,KAAK0Q,cAAcjX,GAAIuG,KAAK6P,gBAAgBpW,EAAE0X,MAAO1X,EAAE4X,OAAQ5X,EAAEwX,aAAejR,KAAK0E,aAAamB,YAAYpM,EAAEwX,aAAcxX,EAAE2X,cAAgBpR,KAAK0E,aAAamB,YAAYpM,EAAE2X,cAAe3X,EAAE0X,OAAS1X,EAAE4X,MAAQrR,KAAK4P,oBAAoBnW,EAAE0X,MAAO1X,EAAE4X,OAAS5X,EAAE0X,MAAQ1X,EAAE4X,QAAU5X,EAAE0X,MAAMC,aAAe,MAAQ3X,EAAE4X,MAAMJ,YAAc,KAAMjR,KAAKmQ,YAC7X,EACAR,eAAgB,SAAUpT,GACxB,IAAIC,EAAID,EAAEhF,OACVyI,KAAK6E,MACL7E,KAAK6E,MAAM5E,KAAKqB,KAAK3E,EAAEE,KAAK8B,MAAMgB,cAAe,CAC/ClC,OAAQjB,EACRiL,OAAQzH,KAAK0E,aACb0K,KAAMpP,KAAK6E,QACTlI,EAAEqF,SAAS0P,eACjB,EACAtB,aAAc,SAAU7T,GACtB,IAAIC,EAAIwD,KAAKC,KAAKiH,uBAAuB3K,EAAE4K,cAAc2B,QAAQ,IAC/DrP,EAAIuG,KAAKC,KAAKmH,mBAAmB5K,GACjC0J,EAAI3J,EAAEhF,OACRoF,EAAEmD,OAAOoG,EAAE6J,YAAatW,GAAIyM,EAAE+K,aAAe/K,EAAE+K,YAAY1J,UAAUvH,KAAKkR,iBAAiBhL,EAAEiL,MAAOjL,IAAKA,EAAEkL,cAAgBlL,EAAEkL,aAAa7J,UAAUvH,KAAKkR,iBAAiBhL,EAAGA,EAAEmL,QAASrR,KAAK6E,MAAM4L,SAAUzQ,KAAKkP,eACpN,EACAyB,eAAgB,SAAUpU,EAAGC,GAC3BwD,KAAK0E,aAAaiN,WAAU,SAAUlY,GACpCA,EAAEuW,OAASzT,IAAM9C,EAAEuW,QAAUxT,EAC/B,GACF,EACAoT,oBAAqB,SAAUrT,EAAGC,GAChC,IAAI/C,EACFyM,EACAmC,EACAE,EAAIvI,KAAKkR,iBAAiB3U,EAAGC,GAC7BmN,EAAI3J,KAAK2G,cAAc4B,GACzBoB,EAAEiI,WAAW,IAAKrV,EAAE6U,aAAe5U,EAAEyU,YAActH,EAAGzD,EAAI,WACxDyD,EAAErH,IAAI,YAAa4D,EAAGlG,MACtB,IAAIqI,EAAI7L,EAAEwT,OACVrG,EAAEqG,OAAS3H,EAAGsB,EAAErH,IAAI,QAAS7I,EAAGuG,MAAMiC,GAAG,QAASjC,KAAK0P,eAAgB1P,MAAOuI,EAAEsJ,IAAMlI,EAAEV,YAAY4I,IAAKtJ,EAAEuJ,IAAMnI,EAAEV,YAAY6I,IAAK9R,KAAKqQ,eAAehI,EAAG,EAAGE,GAAIvI,KAAKyE,SAAS0B,OAAOkC,EAAG,EAAGsB,GAAIA,EAAEiI,WAAW,GAAI5R,KAAK2Q,eAAetI,EAAG,GAAI7L,EAAEwT,SAAUhQ,KAAK6P,gBAAgBtT,EAAGoN,GAAI3J,KAAK6P,gBAAgBlG,EAAGnN,GAAIwD,KAAK6E,MAAMvD,KAAK,YACnU,EAAG+G,EAAI,WACLsB,EAAErH,IAAI,YAAa4D,EAAGlG,MAAO2J,EAAErH,IAAI,UAAW+F,EAAGrI,MAAO2J,EAAErH,IAAI,YAAa4D,EAAGlG,MAAOA,KAAK4P,oBAAoBrT,EAAGoN,GAAI3J,KAAK4P,oBAAoBjG,EAAGnN,EACnJ,EAAG/C,EAAI,WACLyM,EAAE7E,KAAKrB,MAAOqI,EAAEhH,KAAKrB,MAAOA,KAAKmQ,WACnC,EAAGxG,EAAE1H,GAAG,QAASxI,EAAGuG,MAAMiC,GAAG,YAAaiE,EAAGlG,MAAMiC,GAAG,UAAWoG,EAAGrI,MAAMiC,GAAG,YAAaiE,EAAGlG,MAAOA,KAAK0E,aAAaE,SAAS+E,EACjI,EACAkG,gBAAiB,SAAUtT,EAAGC,GAC5BD,IAAMA,EAAE8U,MAAQ7U,GAAIA,IAAMA,EAAE2U,MAAQ5U,EACtC,EACA2U,iBAAkB,SAAU3U,EAAGC,GAC7B,IAAI/C,EAAIuG,KAAK6E,MAAM5E,KACjBiG,EAAIzM,EAAEsY,QAAQxV,EAAE0M,aAChBZ,EAAI5O,EAAEsY,QAAQvV,EAAEyM,aAClB,OAAOxP,EAAEuY,UAAU9L,EAAE+L,KAAK5J,GAAG6J,UAAU,GACzC,IACEvV,EAAE+F,SAAS4L,aAAY,WACzBtO,KAAKuO,UAAY5R,EAAEgR,KAAK9K,OAAS7C,KAAKuO,QAAU,IAAI5R,EAAEgR,KAAK9K,KAAK7C,MAAOA,KAAKhI,QAAQwW,UAAYxO,KAAKuO,QAAQpN,UAAWnB,KAAKiC,GAAG,OAAO,WACrIjC,KAAKuO,SAAWvO,KAAKuO,QAAQzC,WAAa9L,KAAKuO,QAAQ7M,UACzD,IAAI1B,KAAKiC,GAAG,UAAU,WACpBjC,KAAKuO,SAAWvO,KAAKuO,QAAQzC,WAAa9L,KAAKuO,QAAQpM,aACzD,IACF,IAAIxF,EAAEgR,KAAOhR,EAAEgR,MAAQ,CAAC,EAAGhR,EAAEgR,KAAKjC,YAAc/O,EAAEkD,QAAQC,OAAO,CAC/D9H,QAAS,CACPma,SAAU,IAAIxV,EAAEyG,QAAQ,CACtBC,SAAU,IAAI1G,EAAE2G,MAAM,EAAG,GACzBhO,UAAW,4DAEb8c,WAAY,IAAIzV,EAAEyG,QAAQ,CACxBC,SAAU,IAAI1G,EAAE2G,MAAM,EAAG,GACzBhO,UAAW,8DAEb+c,cAAe,IAAI1V,EAAEyG,QAAQ,CAC3BC,SAAU,IAAI1G,EAAE2G,MAAM,GAAI,IAC1BhO,UAAW,+EAEbgd,gBAAiB,IAAI3V,EAAEyG,QAAQ,CAC7BC,SAAU,IAAI1G,EAAE2G,MAAM,GAAI,IAC1BhO,UAAW,kFAGfyK,WAAY,SAAUxD,EAAGC,GACvBG,EAAE2H,QAAQC,QAAUvE,KAAKhI,QAAQma,SAAWnS,KAAKhI,QAAQqa,cAAerS,KAAKhI,QAAQoa,WAAapS,KAAKhI,QAAQsa,iBAAkBtS,KAAKoM,OAAS7P,EAAGI,EAAE8D,KAAKC,WAAWV,KAAMxD,EAC5K,EACAkF,SAAU,WACR,IAAInF,EAAIyD,KAAKoM,OACbpM,KAAKoM,OAAOnM,OAASD,KAAKC,KAAOD,KAAKoM,OAAOnM,KAAM1D,EAAEuO,SAASvO,EAAEvE,QAAQuW,SAAUhS,EAAE0D,OAASD,KAAKC,KAAO1D,EAAE0D,KAAMD,KAAK0E,cAAgB1E,KAAKwP,eAAgBxP,KAAKC,KAAK2E,SAAS5E,KAAK0E,eACrL,EACAvC,YAAa,WACX,IAAI5F,EAAIyD,KAAKoM,OACb,GAAI7P,EAAEuO,SAASvO,EAAEvE,QAAQsX,UAAW/S,EAAE0D,KAAM,CAC1CD,KAAKuS,cAAcvS,KAAKwS,aACxB,IAAK,IAAIhW,EAAI,EAAG/C,EAAIuG,KAAKyS,eAAerZ,OAAQoD,EAAI/C,EAAG+C,IAAKwD,KAAKuS,cAAcvS,KAAKyS,eAAejW,IACnGwD,KAAKyS,eAAiB,KAAMzS,KAAKC,KAAK4F,YAAY7F,KAAK0E,qBAAsB1E,KAAK0E,YACpF,CACA1E,KAAKC,KAAO,IACd,EACAiP,cAAe,WACblP,KAAK0E,aAAa+K,cAAezP,KAAKwP,cACxC,EACAA,aAAc,WACZxP,KAAK0E,eAAiB1E,KAAK0E,aAAe,IAAI/H,EAAEgI,YAAe3E,KAAK0S,oBAAqB1S,KAAK2S,qBAChG,EACAD,kBAAmB,WAAa,EAChCC,oBAAqB,WAAa,EAClChM,cAAe,SAAUpK,EAAGC,GAC1B,IAAI/C,EAAI,IAAIkD,EAAEuM,OAAOkE,MAAM7Q,EAAG,CAC5BuT,WAAW,EACX3M,KAAM3G,EACN2H,aAAc,KAEhB,OAAOnE,KAAK4S,YAAYnZ,GAAIuG,KAAK0E,aAAaE,SAASnL,GAAIA,CAC7D,EACAmZ,YAAa,SAAUrW,GACrBA,EAAE0F,GAAG,YAAajC,KAAKiQ,mBAAoBjQ,MAAMiC,GAAG,OAAQjC,KAAKkQ,cAAelQ,MAAMiC,GAAG,UAAWjC,KAAK6S,iBAAkB7S,MAAMiC,GAAG,aAAcjC,KAAK8S,cAAe9S,MAAMiC,GAAG,YAAajC,KAAKoQ,aAAcpQ,MAAMiC,GAAG,gBAAiBjC,KAAKoQ,aAAcpQ,MAAMiC,GAAG,WAAYjC,KAAK+S,YAAa/S,MAAMiC,GAAG,cAAejC,KAAK+S,YAAa/S,KAC/U,EACAuS,cAAe,SAAUhW,GACvBA,EAAE+F,IAAI,YAAatC,KAAKiQ,mBAAoBjQ,MAAMsC,IAAI,OAAQtC,KAAKkQ,cAAelQ,MAAMsC,IAAI,UAAWtC,KAAK6S,iBAAkB7S,MAAMsC,IAAI,aAActC,KAAK8S,cAAe9S,MAAMsC,IAAI,YAAatC,KAAKoQ,aAAcpQ,MAAMsC,IAAI,gBAAiBtC,KAAKoQ,aAAcpQ,MAAMsC,IAAI,WAAYtC,KAAK+S,YAAa/S,MAAMsC,IAAI,cAAetC,KAAK+S,YAAa/S,KACvV,EACAiQ,mBAAoB,SAAU1T,GAC5BA,EAAEhF,OAAOqa,WAAW,GAAI5R,KAAKoM,OAAO9K,KAAK,YAC3C,EACA6O,UAAW,WACTnQ,KAAKoM,OAAO0B,QAAS,EAAI9N,KAAKoM,OAAO9K,KAAK,OAC5C,EACA4O,cAAe,SAAU3T,GACvB,IAAIC,EAAID,EAAEhF,OACRkC,EAAI+C,EAAEyM,YACRzM,IAAMwD,KAAKwS,YAAcxS,KAAKgT,MAAMvZ,GAAKuG,KAAKiT,QAAQxZ,GAAIuG,KAAKoM,OAAOqE,SAAUzQ,KAAKoM,OAAO9K,KAAK,WACnG,EACAuR,iBAAkB,SAAUtW,GAC1BA,EAAEhF,OAAOqa,WAAW,GAAI5R,KAAKmQ,WAC/B,EACA2C,cAAe,SAAUvW,GACvB,GAAII,EAAEgR,KAAKjC,YAAY1K,UAAUiP,mBAAmB5O,KAAKrB,KAAMzD,GAAI,mBAAqByD,KAAKkT,YAAa,CACxG,IAAI1W,EAAIwD,KAAKkT,cACXzZ,EAAI8C,EAAEhF,OACN2O,EAAIzM,EAAE0Z,aACR1Z,EAAEmY,WAAW,GAAI5R,KAAKoT,gBAAkB5W,GAAG0J,EAAI,GAAK,GAAIlG,KAAKqT,qBAAqB,EAAGnN,EACvF,CACAlG,KAAKoM,OAAO9K,KAAK,YACnB,EACA8O,aAAc,SAAU7T,GACtB,IAAIC,EAAIwD,KAAKC,KAAKiH,uBAAuB3K,EAAE4K,cAAc2B,QAAQ,IAC/DrP,EAAIuG,KAAKC,KAAKmH,mBAAmB5K,GACnC,OAAOD,EAAEhF,SAAWyI,KAAKwS,YAAcxS,KAAKgT,MAAMvZ,GAAKuG,KAAKiT,QAAQxZ,GAAIuG,KAAKoM,OAAOqE,UAAU,CAChG,EACAsC,YAAa,SAAUxW,GACrBA,EAAEhF,OAAOqa,WAAW,GAAI5R,KAAKkP,gBAAiBlP,KAAKmQ,WACrD,EACA6C,MAAO,WAAa,EACpBC,QAAS,WAAa,IACpBtW,EAAEgR,KAAOhR,EAAEgR,MAAQ,CAAC,EAAGhR,EAAEgR,KAAKnB,UAAY7P,EAAEgR,KAAKjC,YAAY5L,OAAO,CACtE4S,kBAAmB,WACjB,IACElW,EADMwD,KAAKoM,OAAOW,YACZ9H,YACRjF,KAAKwS,YAAcxS,KAAK2G,cAAcnK,EAAGwD,KAAKhI,QAAQma,SACxD,EACAQ,oBAAqB,WACnB,IAAIpW,EAAIyD,KAAKkT,cACblT,KAAKyS,eAAiB,GACtB,IAAK,IAAIjW,EAAI,EAAG/C,EAAI8C,EAAEnD,OAAQoD,EAAI/C,EAAG+C,IAAKwD,KAAKyS,eAAerW,KAAK4D,KAAK2G,cAAcpK,EAAEC,GAAIwD,KAAKhI,QAAQoa,aAAcpS,KAAKyS,eAAejW,GAAG2W,aAAe3W,CAC/J,EACAyT,mBAAoB,SAAU1T,GAC5BI,EAAEgR,KAAKjC,YAAY1K,UAAUiP,mBAAmB5O,KAAKrB,KAAMzD,GAC3D,IAAIC,EAAIwD,KAAKkT,cAEXhN,EADI3J,EAAEhF,OACA4b,aACRnT,KAAKoT,gBAAkB5W,GAAG0J,EAAI,GAAK,GAAIlG,KAAKqT,qBAAqB,EAAGnN,EACtE,EACA2M,iBAAkB,SAAUtW,GAC1B,IACE9C,EACAyM,EAAI3J,EAAEhF,OACR2O,IAAMlG,KAAKwS,cAA6C/Y,EAAzBuG,KAAKoM,OAAOW,YAAmB9H,YAAaiB,EAAEqB,UAAU9N,IAAKuG,KAAKqT,qBAAqB,GAAIrT,KAAKsT,2BAA4B3W,EAAEgR,KAAKjC,YAAY1K,UAAU6R,iBAAiBxR,KAAKrB,KAAMzD,EACtN,EACAyW,MAAO,SAAUzW,GACf,IAAK,IAAIC,EAAG/C,EAAIuG,KAAKoM,OAAOpF,cAAgBhH,KAAKoM,OAAOpF,gBAAkBhH,KAAKoM,OAAOnG,aAA2CoC,EAAzBrI,KAAKoM,OAAOW,YAAmB9H,YAAasD,EAAI,GAAIoB,EAAI,EAAGC,EAAInQ,EAAEL,OAAQuQ,EAAIC,EAAGD,IAAKnN,EAAI,CAAC/C,EAAEkQ,GAAGkI,IAAMxJ,EAAEwJ,IAAKpY,EAAEkQ,GAAGmI,IAAMzJ,EAAEyJ,KAAMvJ,EAAEnM,KAAK,CAACG,EAAEsV,IAAMrV,EAAE,GAAID,EAAEuV,IAAMtV,EAAE,KACvQwD,KAAKoM,OAAOhG,WAAWmC,GAAIvI,KAAKsT,2BAA4BtT,KAAKC,KAAKqB,KAAK3E,EAAEE,KAAK8B,MAAMQ,SAAU,CAChGqD,MAAOxC,KAAKoM,QAEhB,EACA6G,QAAS,SAAU1W,GACjB,IAAIC,EACJwD,KAAKoM,OAAOS,UAAUlQ,EAAE4W,aAAahX,EAAGyD,KAAKoT,kBAAmB5W,EAAIwD,KAAKoM,OAAOW,YAAa/M,KAAKwS,YAAYjL,UAAU/K,EAAEyI,aAAcjF,KAAKC,KAAKqB,KAAK3E,EAAEE,KAAK8B,MAAMS,WAAY,CAC9KoD,MAAOxC,KAAKoM,QAEhB,EACA8G,YAAa,WACX,IAAI3W,EAAIyD,KAAKoM,OAAOW,YACpB,MAAO,CAACxQ,EAAEiX,eAAgBjX,EAAEkX,eAAgBlX,EAAEmX,eAAgBnX,EAAEoX,eAClE,EACAN,qBAAsB,SAAU9W,GAC9B,IAAK,IAAIC,EAAI,EAAG/C,EAAIuG,KAAKyS,eAAerZ,OAAQoD,EAAI/C,EAAG+C,IAAKwD,KAAKyS,eAAejW,GAAGoV,WAAWrV,EAChG,EACA+W,yBAA0B,WACxB,IAAK,IAAI/W,EAAIyD,KAAKkT,cAAe1W,EAAI,EAAG/C,EAAIuG,KAAKyS,eAAerZ,OAAQoD,EAAI/C,EAAG+C,IAAKwD,KAAKyS,eAAejW,GAAG+K,UAAUhL,EAAEC,GACzH,IACEG,EAAE6P,UAAU8B,aAAY,WAC1B3R,EAAEgR,KAAKnB,YAAcxM,KAAKuO,QAAU,IAAI5R,EAAEgR,KAAKnB,UAAUxM,MAAOA,KAAKhI,QAAQwW,UAAYxO,KAAKuO,QAAQpN,SACxG,IAAIxE,EAAEgR,KAAOhR,EAAEgR,MAAQ,CAAC,EAAGhR,EAAEgR,KAAKN,aAAe1Q,EAAEgR,KAAKjC,YAAY5L,OAAO,CACzE4S,kBAAmB,WACjB,IAAInW,EAAIyD,KAAKoM,OAAOnD,YACpBjJ,KAAKwS,YAAcxS,KAAK2G,cAAcpK,EAAGyD,KAAKhI,QAAQma,SACxD,EACAQ,oBAAqB,WACnB3S,KAAKyS,eAAiB,EACxB,EACAO,MAAO,SAAUzW,GACf,GAAIyD,KAAKyS,eAAerZ,OAAQ,CAC9B,IAAIoD,EAAIwD,KAAK4T,sBAAsBrX,GACnCyD,KAAKyS,eAAe,GAAGlL,UAAU/K,EACnC,CACAwD,KAAKoM,OAAO7E,UAAUhL,GAAIyD,KAAKC,KAAKqB,KAAK3E,EAAEE,KAAK8B,MAAMQ,SAAU,CAC9DqD,MAAOxC,KAAKoM,QAEhB,IACEzP,EAAE0Q,aAAaiB,aAAY,WAC7B3R,EAAEgR,KAAKN,eAAiBrN,KAAKuO,QAAU,IAAI5R,EAAEgR,KAAKN,aAAarN,MAAOA,KAAKhI,QAAQwW,UAAYxO,KAAKuO,QAAQpN,UAAWnB,KAAKiC,GAAG,OAAO,WACpIjC,KAAKuO,SAAWvO,KAAKuO,QAAQzC,WAAa9L,KAAKuO,QAAQ7M,UACzD,IAAI1B,KAAKiC,GAAG,UAAU,WACpBjC,KAAKuO,SAAWvO,KAAKuO,QAAQzC,WAAa9L,KAAKuO,QAAQpM,aACzD,GACF,IAAIxF,EAAEgR,KAAOhR,EAAEgR,MAAQ,CAAC,EAAGhR,EAAEgR,KAAKL,OAAS3Q,EAAEgR,KAAKN,aAAavN,OAAO,CACpE6S,oBAAqB,WACnB,IAAIpW,EAAIyD,KAAKoM,OAAOnD,YAClBzM,EAAIwD,KAAK4T,sBAAsBrX,GACjCyD,KAAKyS,eAAiB,GAAIzS,KAAKyS,eAAerW,KAAK4D,KAAK2G,cAAcnK,EAAGwD,KAAKhI,QAAQoa,YACxF,EACAwB,sBAAuB,SAAUrX,GAC/B,IAAIC,EAAIwD,KAAKoM,OAAOyH,QAAUnL,KAAKoL,IAAIpL,KAAKqL,GAAK,GAC/Cta,EAAIuG,KAAKC,KAAK8R,QAAQxV,GACxB,OAAOyD,KAAKC,KAAK+R,UAAU,CAACvY,EAAEgQ,EAAIjN,EAAG/C,EAAEiQ,EAAIlN,GAC7C,EACAyW,QAAS,SAAU1W,GACjB,IAAIC,EAAIwD,KAAKwS,YAAYvJ,YACzBtM,EAAE6N,aAAaC,eAAiB3M,OAAStB,EAAE8L,WAAW/L,GAAKuB,OAASkC,KAAKC,KAAKyK,SAASlO,EAAGD,GAAIyD,KAAKoM,OAAOoB,UAAU1P,QAASkC,KAAKC,KAAK+T,aAAehU,KAAKC,KAAK8Q,aAAajM,cAAc,CACzL5H,KAAMP,EAAEG,UAAUqB,KAAKR,SAASQ,KAAKP,QAAQc,QAAU,SAAW/B,EAAEG,UAAUqB,KAAKR,SAASQ,KAAKP,QAAQV,KACzGwB,QAAS/B,EAAEG,UAAUC,KAAKY,SAASH,OAAOM,OAAS,KAAOnB,EAAE6N,aAAaG,iBAAiB7M,QAAQ,EAAIkC,KAAKhI,QAAQgM,KAAMhE,KAAKhI,QAAQiM,UACpIjE,KAAKoM,OAAOoB,UAAU1P,QAASkC,KAAKC,KAAKqB,KAAK3E,EAAEE,KAAK8B,MAAMS,WAAY,CACzEoD,MAAOxC,KAAKoM,QAEhB,IACEzP,EAAE2Q,OAAOgB,aAAY,WACvB3R,EAAEgR,KAAKL,SAAWtN,KAAKuO,QAAU,IAAI5R,EAAEgR,KAAKL,OAAOtN,MAAOA,KAAKhI,QAAQwW,UAAYxO,KAAKuO,QAAQpN,SAClG,IAAIxE,EAAEsX,IAAIC,aAAa,CACrBC,aAAa,IACXxX,EAAEsX,IAAIG,YAAczX,EAAEkD,QAAQC,OAAO,CACvCC,WAAY,SAAUxD,GACpByD,KAAKC,KAAO1D,EAAGyD,KAAKE,WAAa3D,EAAE2D,WAAYF,KAAKqU,MAAQ9X,EAAE6D,OAAOC,WACvE,EACAqB,SAAU,WACR/E,EAAEqF,SAASC,GAAGjC,KAAKE,WAAY,aAAcF,KAAK8S,cAAe9S,MAAOrD,EAAEqF,SAASC,GAAGjC,KAAKE,WAAY,WAAYF,KAAK+S,YAAa/S,MAAOrD,EAAEqF,SAASC,GAAGjC,KAAKE,WAAY,YAAaF,KAAKoQ,aAAcpQ,MAAOA,KAAKsU,aAAe3X,EAAEqF,SAASC,GAAGjC,KAAKE,WAAY,gBAAiBF,KAAK8S,cAAe9S,MAAOrD,EAAEqF,SAASC,GAAGjC,KAAKE,WAAY,cAAeF,KAAK+S,YAAa/S,MAAOrD,EAAEqF,SAASC,GAAGjC,KAAKE,WAAY,gBAAiBF,KAAKoQ,aAAcpQ,MAAOrD,EAAEqF,SAASC,GAAGjC,KAAKE,WAAY,kBAAmBF,KAAKuU,eAAgBvU,QAAUrD,EAAEqF,SAASC,GAAGjC,KAAKE,WAAY,cAAeF,KAAKuU,eAAgBvU,MAAOrD,EAAEqF,SAASC,GAAGjC,KAAKE,WAAY,aAAcF,KAAKwU,cAAexU,MAChqB,EACAmC,YAAa,WACXxF,EAAEqF,SAASM,IAAItC,KAAKE,WAAY,aAAcF,KAAK8S,cAAe9S,MAAOrD,EAAEqF,SAASM,IAAItC,KAAKE,WAAY,WAAYF,KAAK+S,YAAa/S,MAAOrD,EAAEqF,SAASM,IAAItC,KAAKE,WAAY,YAAaF,KAAKoQ,aAAcpQ,MAAOA,KAAKsU,aAAe3X,EAAEqF,SAASM,IAAItC,KAAKE,WAAY,gBAAiBF,KAAK8S,cAAe9S,MAAOrD,EAAEqF,SAASM,IAAItC,KAAKE,WAAY,cAAeF,KAAK+S,YAAa/S,MAAOrD,EAAEqF,SAASM,IAAItC,KAAKE,WAAY,gBAAiBF,KAAKoQ,aAAcpQ,MAAOrD,EAAEqF,SAASM,IAAItC,KAAKE,WAAY,kBAAmBF,KAAKuU,eAAgBvU,QAAUrD,EAAEqF,SAASM,IAAItC,KAAKE,WAAY,cAAeF,KAAKuU,eAAgBvU,MAAOrD,EAAEqF,SAASM,IAAItC,KAAKE,WAAY,aAAcF,KAAKwU,cAAexU,MACzqB,EACAyU,YAAa,SAAUlY,EAAGC,GACxB,IAAI/C,EAAI,CAAC,EACT,QAAI,IAAW8C,EAAEuM,QAAS,CACxB,IAAKvM,EAAEuM,QAAQ1P,OAAQ,OACvBK,EAAI8C,EAAEuM,QAAQ,EAChB,KAAO,CACL,GAAI,UAAYvM,EAAEmY,YAAa,OAC/B,GAAIjb,EAAI8C,GAAIyD,KAAK2U,aAAapY,GAAI,MACpC,CACA,IAAI2J,EAAIlG,KAAKC,KAAK2U,2BAA2Bnb,GAC3C4O,EAAIrI,KAAKC,KAAKiH,uBAAuBzN,GACrC8O,EAAIvI,KAAKC,KAAKmH,mBAAmBiB,GACnCrI,KAAKC,KAAKqB,KAAK9E,EAAG,CAChBiM,OAAQF,EACRsM,WAAYxM,EACZyM,eAAgB5O,EAChB6O,MAAOtb,EAAEsb,MACTC,MAAOvb,EAAEub,MACT7N,cAAe5K,GAEnB,EACAoY,aAAc,SAAUpY,GACtB,IAAIC,EAAID,EAAE0Y,WAAa1Y,EAAE4K,cAAc8N,UACrCxb,EAAIkD,EAAEqF,SAASkT,YAAc1Y,EAAIG,EAAEqF,SAASkT,WAC9C,OAAOzb,GAAKA,EAAI,KAAOA,EAAI,KAAO8C,EAAEhF,OAAO4d,kBAAoB5Y,EAAE6Y,YAAczY,EAAEqF,SAAS9G,KAAKqB,IAAI,IAAOI,EAAEqF,SAASkT,WAAa1Y,GAAG,EACvI,EACAsW,cAAe,SAAUvW,GACnByD,KAAKC,KAAKoV,SACZrV,KAAKyU,YAAYlY,EAAG,aAExB,EACAwW,YAAa,SAAUxW,GACjByD,KAAKC,KAAKoV,SACZrV,KAAKyU,YAAYlY,EAAG,WAExB,EACAgY,eAAgB,SAAUhY,GACxB,GAAIyD,KAAKC,KAAKoV,QAAS,CACrB,IAAI7Y,EAAI,cACRwD,KAAKsU,cAAgB9X,EAAI,iBAAkBwD,KAAKyU,YAAYlY,EAAGC,EACjE,CACF,EACAgY,cAAe,SAAUjY,GACnByD,KAAKC,KAAKoV,SACZrV,KAAKyU,YAAYlY,EAAG,aAExB,EACA6T,aAAc,SAAU7T,GAClByD,KAAKC,KAAKoV,SACZrV,KAAKyU,YAAYlY,EAAG,YAExB,EACA+X,UAAW,WACT,IAAI9X,EAAID,EAAE+Y,UAAUC,UAClB9b,EAAI+C,EAAEgZ,QAAQ,SAChB,GAAI/b,EAAI,EAAG,OAAOoH,SAASrE,EAAEiZ,UAAUhc,EAAI,EAAG+C,EAAEgZ,QAAQ,IAAK/b,IAAK,IAClE,GAAI+C,EAAEgZ,QAAQ,YAAc,EAAG,CAC7B,IAAItP,EAAI1J,EAAEgZ,QAAQ,OAClB,OAAO3U,SAASrE,EAAEiZ,UAAUvP,EAAI,EAAG1J,EAAEgZ,QAAQ,IAAKtP,IAAK,GACzD,CACA,IAAImC,EAAI7L,EAAEgZ,QAAQ,SAClB,OAAOnN,EAAI,GAAKxH,SAASrE,EAAEiZ,UAAUpN,EAAI,EAAG7L,EAAEgZ,QAAQ,IAAKnN,IAAK,GAClE,IACE1L,EAAEsX,IAAI3F,YAAY,aAAc,cAAe3R,EAAEsX,IAAIG,aAAczX,EAAEuM,OAAOkE,MAAQzQ,EAAEuM,OAAOpJ,OAAO,CACtG4V,iBAAkB,WAChB,OAAO1V,KAAK2V,qBAAuBhZ,EAAEuM,OAAOlI,UAAU0U,iBAAiBpF,MAAMtQ,MAAQA,KAAK4V,wBAC5F,EACAA,uBAAwB,WACtB,GAAI5V,KAAKhI,QAAQ8L,UAAW,CAC1B,IAAIvH,EAAIyD,KAAK+N,MACXvR,EAAI,CAAC,WAAY,YAAa,YAAa,WAAY,cAAe,aAAc,WAAY,aAClGwD,KAAKsU,UAAY9X,EAAEoS,OAAO,CAAC,gBAAiB,cAAe,gBAAiB,oBAAsBpS,EAAEoS,OAAO,CAAC,gBAAiBjS,EAAEgF,QAAQwM,SAAS5R,EAAG,qBAAsBI,EAAEqF,SAASC,GAAG1F,EAAG,QAASyD,KAAK6V,cAAe7V,MAAOrD,EAAEqF,SAASC,GAAG1F,EAAG,WAAYyD,KAAK8V,YAAa9V,MAC7Q,IAAK,IAAIvG,EAAI,EAAGA,EAAI+C,EAAEpD,OAAQK,IAAKkD,EAAEqF,SAASC,GAAG1F,EAAGC,EAAE/C,GAAIuG,KAAK+V,gBAAiB/V,MAChFrD,EAAEkD,QAAQmW,aAAehW,KAAK6L,SAAW,IAAIlP,EAAEkD,QAAQmW,WAAWhW,MAAOA,KAAKhI,QAAQ8X,WAAa9P,KAAK6L,SAAS1K,SACnH,CACF,EACAmT,UAAW,WACT,IAAI9X,EAAID,EAAE+Y,UAAUC,UAClB9b,EAAI+C,EAAEgZ,QAAQ,SAChB,GAAI/b,EAAI,EAAG,OAAOoH,SAASrE,EAAEiZ,UAAUhc,EAAI,EAAG+C,EAAEgZ,QAAQ,IAAK/b,IAAK,IAClE,GAAI+C,EAAEgZ,QAAQ,YAAc,EAAG,CAC7B,IAAItP,EAAI1J,EAAEgZ,QAAQ,OAClB,OAAO3U,SAASrE,EAAEiZ,UAAUvP,EAAI,EAAG1J,EAAEgZ,QAAQ,IAAKtP,IAAK,GACzD,CACA,IAAImC,EAAI7L,EAAEgZ,QAAQ,SAClB,OAAOnN,EAAI,GAAKxH,SAASrE,EAAEiZ,UAAUpN,EAAI,EAAG7L,EAAEgZ,QAAQ,IAAKnN,IAAK,GAClE,IACE1L,EAAEiU,WAAa,CACjBqF,aAAc,SAAU1Z,GACtB,IAAK,IAAIC,EAAI,GAAI/C,EAAI,EAAGyM,EAAI3J,EAAEnD,OAAQK,EAAIyM,EAAGzM,IAAKP,MAAMC,QAAQoD,EAAE9C,IAAM+C,EAAEJ,KAAKO,EAAEiU,WAAWqF,aAAa1Z,EAAE9C,KAAO+C,EAAEJ,KAAK4D,KAAK6Q,YAAYtU,EAAE9C,KAC5I,OAAO+C,CACT,EACAqU,YAAa,SAAUtU,GACrB,OAAOI,EAAE6U,OAAOjV,EAAEsV,IAAKtV,EAAEuV,IAC3B,GACC,WACD,IAAIvV,EAAI,CACN2Z,GAAI,EACJC,GAAI,EACJC,EAAG,EACHC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,GAEN9Z,EAAE6N,aAAe7N,EAAEmD,OAAOnD,EAAE6N,cAAgB,CAAC,EAAG,CAC9CiB,aAAc,SAAUlP,GACtB,IAAIC,EACF/C,EACAyM,EAAI3J,EAAEnD,OACNiP,EAAI,EACJE,EAAIG,KAAKqL,GAAK,IAChB,GAAI7N,EAAI,EAAG,CACT,IAAK,IAAIyD,EAAI,EAAGA,EAAIzD,EAAGyD,IAAKnN,EAAID,EAAEoN,GAAwBtB,KAApB5O,EAAI8C,GAAGoN,EAAI,GAAKzD,IAAY4L,IAAMtV,EAAEsV,KAAOvJ,GAAK,EAAIG,KAAKgO,IAAIla,EAAEqV,IAAMtJ,GAAKG,KAAKgO,IAAIjd,EAAEoY,IAAMtJ,IACjIF,EAAI,QAAUA,EAAI,QAAU,CAC9B,CACA,OAAOK,KAAKC,IAAIN,EAClB,EACAsO,gBAAiB,SAAUpa,EAAGC,GAC5B,IAAI/C,EAAImd,WAAWra,GAAGmR,QAAQlR,GAC5B0J,EAAIvJ,EAAEG,UAAU+Z,QAAUla,EAAEG,UAAU+Z,OAAOC,QAC7CzO,EAAInC,GAAKA,EAAE6Q,WACXxO,EAAIF,GAAKA,EAAE2O,UACXrN,EAAItB,GAAKA,EAAE4O,QACb,GAAI1O,GAAKoB,EAAG,CACV,IAAIC,EAAInQ,EAAEmH,MAAM,KAChBnH,EAAI8O,EAAIqB,EAAE,GAAGsN,QAAQ,0BAA2B,KAAO3O,GAAKqB,EAAE,GAAID,EAAIA,GAAK,IAAKC,EAAExQ,OAAS,IAAMK,EAAIA,EAAIkQ,EAAIC,EAAE,GACjH,CACA,OAAOnQ,CACT,EACA+R,aAAc,SAAUhP,EAAG/C,EAAGyM,GAC5B,IAAImC,EACFE,EAEF,OADErC,EAAIvJ,EAAE8D,KAAKX,OAAO,CAAC,EAAGvD,EAAG2J,GACpBzM,GAAK8O,EAAI,CAAC,KAAM,KAAMrQ,YAAcuB,EAAG,WAAavB,KAAOqQ,EAAI,CAAC9O,GAAK,YAAcvB,OAASqQ,EAAI9O,GAAI4O,EAAI7L,GAAK,MAAQ,IAAM+L,EAAEiN,QAAQ,MAAQ7Y,EAAE6N,aAAamM,gBAAgB,KAAOna,EAAG0J,EAAEgQ,IAAM,OAAS1Z,GAAK,MAAQ,IAAM+L,EAAEiN,QAAQ,MAAQ7Y,EAAE6N,aAAamM,gBAAgB,KAAOna,EAAG0J,EAAEiQ,IAAM,MAAQxZ,EAAE6N,aAAamM,gBAAgBna,EAAG0J,EAAEkQ,GAAK,OAAwB/N,GAAd7L,GAAK,UAAkB,QAAUG,EAAE6N,aAAamM,gBAAgBna,EAAI,QAAS0J,EAAEmQ,IAAM,OAAS7Z,GAAK,KAAOG,EAAE6N,aAAamM,gBAAgBna,EAAI,KAAM0J,EAAEoQ,IAAM,SAAW3Z,EAAE6N,aAAamM,gBAAgBna,EAAG0J,EAAEqQ,IAAM,OAASlO,CAC1jB,EACAsC,iBAAkB,SAAUnO,EAAG/C,EAAGyM,EAAGmC,EAAGE,GACtC,IAAIoB,EAEJ,OADEpB,EAAI5L,EAAE8D,KAAKX,OAAO,CAAC,EAAGvD,EAAGgM,GACnB9O,EAAI,iBAAmBA,EAAIA,EAAI,SAAWyM,EAAI,OAASmC,EAAI,eAAiB,SAClF,IAAK,SACHsB,EAAInN,EAAI,IAAMG,EAAE6N,aAAamM,gBAAgBna,EAAI,IAAK+L,EAAE2N,IAAM,MAAQvZ,EAAE6N,aAAamM,gBAAgBna,EAAG+L,EAAE6N,GAAK,KAC/G,MACF,IAAK,OACH5Z,GAAK,QAASmN,EAAIhN,EAAE6N,aAAamM,gBAAgBna,EAAG+L,EAAEiO,IAAM,MAC5D,MACF,IAAK,eACHha,GAAK,OAAQmN,EAAIhN,EAAE6N,aAAamM,gBAAgBna,EAAI,IAAK+L,EAAEkO,IAAM,MACjE,MAEF,QACgB9M,GAAdnN,GAAK,SAAiB,KAAOG,EAAE6N,aAAamM,gBAAgBna,EAAI,KAAM+L,EAAE8N,IAAM,SAAW1Z,EAAE6N,aAAamM,gBAAgBna,EAAG+L,EAAEgO,IAAM,MAEvI,OAAO5M,CACT,EACAc,aAAc,WACZ,IAAIlO,EAAII,EAAEgE,QAAQC,MAAM,KACxB,OAAO,IAAMC,SAAStE,EAAE,GAAI,KAAO,IAAMsE,SAAStE,EAAE,GAAI,GAC1D,GAEJ,CAlEG,GAkEEI,EAAE8D,KAAKX,OAAOnD,EAAEwa,SAAU,CAC7BC,kBAAmB,SAAU7a,EAAGC,EAAG/C,EAAGyM,GACpC,OAAOlG,KAAKqX,uBAAuB9a,EAAG9C,EAAGyM,KAAOlG,KAAKqX,uBAAuB7a,EAAG/C,EAAGyM,IAAMlG,KAAKqX,uBAAuB9a,EAAGC,EAAG/C,KAAOuG,KAAKqX,uBAAuB9a,EAAGC,EAAG0J,EACrK,EACAmR,uBAAwB,SAAU9a,EAAGC,EAAG/C,GACtC,OAAQA,EAAEiQ,EAAInN,EAAEmN,IAAMlN,EAAEiN,EAAIlN,EAAEkN,IAAMjN,EAAEkN,EAAInN,EAAEmN,IAAMjQ,EAAEgQ,EAAIlN,EAAEkN,EAC5D,IACE9M,EAAE+F,SAAS5B,QAAQ,CACrBkQ,WAAY,WACV,IAAIzU,EACFC,EACA/C,EACAyM,EAAIlG,KAAKsX,sBACTjP,EAAInC,EAAIA,EAAE9M,OAAS,EACrB,GAAI4G,KAAKuX,+BAAgC,OAAO,EAChD,IAAKhb,EAAI8L,EAAI,EAAG9L,GAAK,EAAGA,IAAK,GAAIC,EAAI0J,EAAE3J,EAAI,GAAI9C,EAAIyM,EAAE3J,GAAIyD,KAAKwX,6BAA6Bhb,EAAG/C,EAAG8C,EAAI,GAAI,OAAO,EAChH,OAAO,CACT,EACAgK,oBAAqB,SAAUhK,EAAGC,GAChC,QAASwD,KAAKC,MAAQD,KAAKyX,mBAAmBzX,KAAKC,KAAKkJ,mBAAmB5M,GAAIC,EACjF,EACAib,mBAAoB,SAAUlb,EAAGC,GAC/B,IAAI/C,EAAIuG,KAAKsX,sBACXpR,EAAIzM,EAAIA,EAAEL,OAAS,EACnBiP,EAAI5O,EAAIA,EAAEyM,EAAI,GAAK,KACnBqC,EAAIrC,EAAI,EACV,OAAQlG,KAAKuX,6BAA6B,IAAMvX,KAAKwX,6BAA6BnP,EAAG9L,EAAGgM,EAAG/L,EAAI,EAAI,EACrG,EACA+a,6BAA8B,SAAUhb,GACtC,IAAIC,EAAIwD,KAAKsX,sBACX7d,EAAI+C,EAAIA,EAAEpD,OAAS,EACrB,OAAqBoD,IAAd/C,GAAK8C,GAAK,IAAc,CACjC,EACAib,6BAA8B,SAAUjb,EAAGC,EAAG/C,EAAGyM,GAC/C,IAAImC,EACFE,EACAoB,EAAI3J,KAAKsX,sBACXpR,EAAIA,GAAK,EACT,IAAK,IAAI0D,EAAInQ,EAAGmQ,EAAI1D,EAAG0D,IAAK,GAAIvB,EAAIsB,EAAEC,EAAI,GAAIrB,EAAIoB,EAAEC,GAAIjN,EAAEwa,SAASC,kBAAkB7a,EAAGC,EAAG6L,EAAGE,GAAI,OAAO,EACzG,OAAO,CACT,EACA+O,oBAAqB,WACnB,IAAKtX,KAAKgH,cAAe,OAAOhH,KAAK0X,gBACrC,IAAK,IAAInb,EAAI,GAAIC,EAAIwD,KAAKgH,gBAAiBvN,EAAI,EAAGA,EAAI+C,EAAEpD,OAAQK,IAAK8C,EAAEH,KAAK4D,KAAKC,KAAKkJ,mBAAmB3M,EAAE/C,KAC3G,OAAO8C,CACT,IACEI,EAAEoM,QAAQjI,QAAQ,CACpBkQ,WAAY,WACV,IAAIzU,EACFC,EACA/C,EACAyM,EACAmC,EAAIrI,KAAKsX,sBACX,OAAQtX,KAAKuX,mCAAqC5a,EAAE+F,SAAS1B,UAAUgQ,WAAW3P,KAAKrB,QAAUzD,EAAI8L,EAAEjP,OAAQoD,EAAI6L,EAAE,GAAI5O,EAAI4O,EAAE9L,EAAI,GAAI2J,EAAI3J,EAAI,EAAGyD,KAAKwX,6BAA6B/d,EAAG+C,EAAG0J,EAAG,IAC/L,IACEvJ,EAAEgb,QAAQ9a,KAAOF,EAAEgb,QAAQ7X,OAAO,CACpC9H,QAAS,CACP4f,SAAU,UACV7a,KAAM,CAAC,EACPoB,MAAM,GAER4B,WAAY,SAAUxD,GACpB,GAAII,EAAEgE,QAAU,MAAO,MAAM,IAAI7H,MAAM,yGAEvC,IAAI0D,EADJG,EAAEgb,QAAQ3W,UAAUjB,WAAWsB,KAAKrB,KAAMzD,GAE1CyD,KAAK6X,UAAY,CAAC,EAAGlb,EAAEmb,aAAe9X,KAAKhI,QAAQ+E,OAASP,EAAI,IAAIG,EAAEmb,YAAY9X,KAAKhI,QAAQ+E,MAAOiD,KAAK6X,UAAUlb,EAAEmb,YAAYlV,MAAQpG,EAAGwD,KAAK6X,UAAUlb,EAAEmb,YAAYlV,MAAMX,GAAG,SAAUjC,KAAK+X,gBAAiB/X,OAAQrD,EAAEqb,aAAehY,KAAKhI,QAAQmG,OAAS3B,EAAI,IAAIG,EAAEqb,YAAYhY,KAAKhI,QAAQmG,MAAO6B,KAAK6X,UAAUlb,EAAEqb,YAAYpV,MAAQpG,EAAGwD,KAAK6X,UAAUlb,EAAEqb,YAAYpV,MAAMX,GAAG,SAAUjC,KAAK+X,gBAAiB/X,OAAQrD,EAAEK,QAAUgD,IACjb,EACAiY,MAAO,SAAU1b,GACf,IAAIC,EACF/C,EAAIkD,EAAEgF,QAAQmI,OAAO,MAAO,gBAC5B5D,GAAI,EACN,IAAK,IAAImC,KAAKrI,KAAK6X,UAAW7X,KAAK6X,UAAUK,eAAe7P,KAAO7L,EAAIwD,KAAK6X,UAAUxP,GAAG8P,WAAW5b,MAAQ2J,IAAMvJ,EAAEgF,QAAQqM,SAASxR,EAAG,6BAA+BG,EAAEgF,QAAQwM,SAAS3R,EAAE2N,WAAW,GAAI,4BAA6BjE,GAAI,GAAKzM,EAAE2e,YAAY5b,IAC/P,OAAO/C,CACT,EACA4e,SAAU,WACR,IAAK,IAAI9b,KAAKyD,KAAK6X,UAAW7X,KAAK6X,UAAUK,eAAe3b,IAAMyD,KAAK6X,UAAUtb,GAAG+b,eACtF,EACAC,kBAAmB,SAAUhc,GAC3B,IAAK,IAAIC,KAAKwD,KAAK6X,UAAW7X,KAAK6X,UAAUrb,aAAcG,EAAEmb,aAAe9X,KAAK6X,UAAUrb,GAAGkE,WAAWnE,EAC3G,EACAwb,gBAAiB,SAAUxb,GACzB,IAAIC,EAAID,EAAEhF,OACV,IAAK,IAAIkC,KAAKuG,KAAK6X,UAAW7X,KAAK6X,UAAUpe,KAAO+C,GAAKwD,KAAK6X,UAAUpe,GAAGgI,SAC7E,IACE9E,EAAEsX,IAAIC,aAAa,CACrBsE,qBAAqB,EACrBC,aAAa,IACX9b,EAAEsX,IAAI3F,aAAY,WACpBtO,KAAKhI,QAAQygB,cAAgBzY,KAAKyY,YAAc,IAAI9b,EAAEgb,QAAQ9a,KAAQmD,KAAK0Y,WAAW1Y,KAAKyY,aAC7F,IAAI9b,EAAEgc,QAAUhc,EAAEic,MAAM9Y,OAAO,CAC7BC,WAAY,SAAUxD,GACpBI,EAAE+D,WAAWV,KAAMzD,GAAIyD,KAAK6Y,OAAS,CAAC,EAAG7Y,KAAK8Y,eAAiB,GAAI9Y,KAAK+Y,YAAc,KACtF,IAAIvc,EAAIG,EAAEgE,QAAQC,MAAM,KACxB,IAAMC,SAASrE,EAAE,GAAI,KAAOqE,SAASrE,EAAE,GAAI,KAAO,EAAIG,EAAEgc,QAAQ7X,QAAQnE,EAAEoE,QAAQC,WAAarE,EAAEgc,QAAQ7X,QAAQnE,EAAEsE,MAAMC,OAC3H,EACA4K,QAAS,WACP,OAAO,OAAS9L,KAAK+Y,WACvB,EACAtX,QAAS,WACPzB,KAAK8L,WAAa9L,KAAK+Y,YAAYxX,QAAQE,SAC7C,EACA0W,WAAY,SAAU5b,GACpB,IAAIC,EACF/C,EAAIkD,EAAEgF,QAAQmI,OAAO,MAAO,wBAC5B5D,EAAI,EACJmC,EAAIrI,KAAKgZ,eAAiB,GAC1BzQ,EAAIvI,KAAKiZ,gBAAgB1c,GAC3B,IAAKyD,KAAKkZ,kBAAoBvc,EAAEgF,QAAQmI,OAAO,MAAO,oCAAqC9J,KAAKC,KAAO1D,EAAGC,EAAI,EAAGA,EAAI+L,EAAEnP,OAAQoD,IAAK+L,EAAE/L,GAAGsP,SAAW9L,KAAKmZ,iBAAiB5Q,EAAE/L,GAAG+E,QAASvB,KAAKkZ,kBAAmBhT,IAAKmC,EAAGE,EAAE/L,GAAGS,OAC7N,GAAIiJ,EAAG,OAAOlG,KAAKoZ,mBAAqBlT,EAAGlG,KAAKqZ,kBAAoB1c,EAAEgF,QAAQmI,OAAO,KAAM,wBAAyBrQ,EAAE2e,YAAYpY,KAAKkZ,mBAAoBzf,EAAE2e,YAAYpY,KAAKqZ,mBAAoB5f,CACpM,EACA6e,cAAe,WACb,IAAK,IAAI/b,KAAKyD,KAAK6Y,OAAQ7Y,KAAK6Y,OAAOX,eAAe3b,KAAOyD,KAAKsZ,eAAetZ,KAAK6Y,OAAOtc,GAAGgd,OAAQvZ,KAAK6Y,OAAOtc,GAAGgF,QAAQJ,OAAQnB,KAAK6Y,OAAOtc,GAAGgF,SAAUvB,KAAK6Y,OAAOtc,GAAGgF,QAAQE,UAAWzB,KAAK6Y,OAAOtc,GAAGgF,QAAQe,IAAI,UAAWtC,KAAKwZ,kBAAmBxZ,MAAMsC,IAAI,WAAYtC,KAAKyZ,oBAAqBzZ,OAChTA,KAAK6Y,OAAS,CAAC,EACf,IAAK,IAAIrc,EAAI,EAAG/C,EAAIuG,KAAK8Y,eAAe1f,OAAQoD,EAAI/C,EAAG+C,IAAKwD,KAAKsZ,eAAetZ,KAAK8Y,eAAetc,GAAG+c,OAAQvZ,KAAK8Y,eAAetc,GAAGjC,SAAUyF,MAChJA,KAAK8Y,eAAiB,GAAI9Y,KAAKqZ,kBAAoB,IACrD,EACAF,iBAAkB,SAAU5c,EAAGC,EAAG/C,EAAGyM,EAAGmC,GACtC,IAAIE,EAAIhM,EAAErE,KACV8H,KAAK6Y,OAAOtQ,GAAK,CAAC,EAAGvI,KAAK6Y,OAAOtQ,GAAGhH,QAAUhF,EAAGyD,KAAK6Y,OAAOtQ,GAAGgR,OAASvZ,KAAK0Z,cAAc,CAC1FxhB,KAAMqQ,EACNtL,MAAOoL,EACP/S,UAAW4Q,EAAI,IAAMqC,EACrBoR,UAAWnd,EACXjC,SAAUyF,KAAK6Y,OAAOtQ,GAAGhH,QAAQJ,OACjCyY,QAAS5Z,KAAK6Y,OAAOtQ,GAAGhH,UACtBvB,KAAK6Y,OAAOtQ,GAAGsR,YAAcpgB,EAAGuG,KAAK6Y,OAAOtQ,GAAGhH,QAAQU,GAAG,UAAWjC,KAAKwZ,kBAAmBxZ,MAAMiC,GAAG,WAAYjC,KAAKyZ,oBAAqBzZ,KAClJ,EACA8Z,WAAY,WACV,MAAO,mBAAmBC,KAAKzE,UAAUC,aAAehZ,EAAEyd,QAC5D,EACAN,cAAe,SAAUnd,GACvB,IAAIC,EAAIG,EAAEgF,QAAQmI,OAAO,IAAKvN,EAAEjH,WAAa,GAAIiH,EAAEod,WACjDlgB,EAAIkD,EAAEgF,QAAQmI,OAAO,OAAQ,UAAWvN,EAAEod,WAC5Cnd,EAAEyd,KAAO,IAAKzd,EAAE4b,YAAY3e,GAAI8C,EAAEU,QAAUT,EAAES,MAAQV,EAAEU,MAAOxD,EAAEygB,UAAY3d,EAAEU,OAAQV,EAAEW,OAASV,EAAE0d,UAAY3d,EAAEW,KAAMzD,EAAEygB,UAAY3d,EAAEW,MACxI,IAAIgJ,EAAIlG,KAAK8Z,aAAe,aAAe,QAC3C,OAAOnd,EAAEqF,SAASC,GAAGzF,EAAG,QAASG,EAAEqF,SAAS0P,iBAAiBzP,GAAGzF,EAAG,YAAaG,EAAEqF,SAAS0P,iBAAiBzP,GAAGzF,EAAG,WAAYG,EAAEqF,SAAS0P,iBAAiBzP,GAAGzF,EAAG,aAAcG,EAAEqF,SAAS0P,iBAAiBzP,GAAGzF,EAAG,QAASG,EAAEqF,SAASwF,gBAAgBvF,GAAGzF,EAAG0J,EAAG3J,EAAEhC,SAAUgC,EAAEqd,SAAUpd,CACvR,EACA8c,eAAgB,SAAU/c,EAAGC,GAC3B,IAAI/C,EAAIuG,KAAK8Z,aAAe,aAAe,QAC3Cnd,EAAEqF,SAASM,IAAI/F,EAAG,QAASI,EAAEqF,SAAS0P,iBAAiBpP,IAAI/F,EAAG,YAAaI,EAAEqF,SAAS0P,iBAAiBpP,IAAI/F,EAAG,WAAYI,EAAEqF,SAAS0P,iBAAiBpP,IAAI/F,EAAG,aAAcI,EAAEqF,SAAS0P,iBAAiBpP,IAAI/F,EAAG,QAASI,EAAEqF,SAASwF,gBAAgBlF,IAAI/F,EAAG9C,EAAG+C,EAC9P,EACAgd,kBAAmB,SAAUjd,GAC3ByD,KAAKyB,UAAWzB,KAAK+Y,YAAc/Y,KAAK6Y,OAAOtc,EAAEgF,SAAU5E,EAAEgF,QAAQwM,SAASnO,KAAK+Y,YAAYQ,OAAQ,uCAAwCvZ,KAAKma,sBAAuBna,KAAKsB,KAAK,SACvL,EACAmY,oBAAqB,WACnBzZ,KAAKoa,sBAAuBzd,EAAEgF,QAAQsM,YAAYjO,KAAK+Y,YAAYQ,OAAQ,uCAAwCvZ,KAAK+Y,YAAc,KAAM/Y,KAAKsB,KAAK,UACxJ,EACA+Y,eAAgB,SAAU9d,GACxB,IAAIC,EACF/C,EACAyM,EACAmC,EACAE,EAAIvI,KAAKqZ,kBACT1P,EAAI3J,KAAKsa,WAAW/d,GACpBqN,EAAID,EAAEvQ,OACR,IAAKK,EAAI,EAAGyM,EAAIlG,KAAK8Y,eAAe1f,OAAQK,EAAIyM,EAAGzM,IAAKuG,KAAKsZ,eAAetZ,KAAK8Y,eAAerf,GAAG8f,OAAQvZ,KAAK8Y,eAAerf,GAAGc,UAClI,IAAKyF,KAAK8Y,eAAiB,GAAIvQ,EAAE6B,YAAa7B,EAAE8B,YAAY9B,EAAE6B,YAC9D,IAAK,IAAI3P,EAAI,EAAGA,EAAImP,EAAGnP,IAAK,YAAakP,EAAElP,KAAOkP,EAAElP,GAAGqR,UAAYtP,EAAIG,EAAEgF,QAAQmI,OAAO,KAAM,GAAIvB,GAAIF,EAAIrI,KAAK0Z,cAAc,CAC3Hzc,MAAO0M,EAAElP,GAAGwC,MACZC,KAAMyM,EAAElP,GAAGyC,KACXyc,UAAWnd,EACXjC,SAAUoP,EAAElP,GAAGF,SACfqf,QAASjQ,EAAElP,GAAGmf,UACZ5Z,KAAK8Y,eAAe1c,KAAK,CAC3Bmd,OAAQlR,EACR9N,SAAUoP,EAAElP,GAAGF,WAEnB,EACA4f,oBAAqB,WACnB,IAAI5d,EAAIyD,KAAK+Y,YAAYc,YACvBrd,EAAIwD,KAAKoZ,iBACT3f,EAAIuG,KAAK+Y,YAAYQ,OAAOgB,UAAY,EAC1Cva,KAAKqa,eAAera,KAAK+Y,YAAYxX,SAAUvB,KAAKqZ,kBAAkBtP,MAAMyQ,IAAM/gB,EAAI,KAAM,IAAM8C,IAAMI,EAAEgF,QAAQwM,SAASnO,KAAKkZ,kBAAmB,8BAA+Bvc,EAAEgF,QAAQwM,SAASnO,KAAKqZ,kBAAmB,6BAA8B9c,IAAMC,IAAMG,EAAEgF,QAAQwM,SAASnO,KAAKkZ,kBAAmB,iCAAkCvc,EAAEgF,QAAQwM,SAASnO,KAAKqZ,kBAAmB,gCAAiCrZ,KAAKqZ,kBAAkBtP,MAAMnU,QAAU,QAASoK,KAAKC,KAAKqB,KAAK3E,EAAEE,KAAK8B,MAAMc,cAC9e,EACA2a,oBAAqB,WACnBpa,KAAKqZ,kBAAkBtP,MAAMnU,QAAU,OAAQ+G,EAAEgF,QAAQsM,YAAYjO,KAAKkZ,kBAAmB,8BAA+Bvc,EAAEgF,QAAQsM,YAAYjO,KAAKkZ,kBAAmB,iCAAkCvc,EAAEgF,QAAQsM,YAAYjO,KAAKqZ,kBAAmB,4BAA6B1c,EAAEgF,QAAQsM,YAAYjO,KAAKqZ,kBAAmB,+BAAgCrZ,KAAKC,KAAKqB,KAAK3E,EAAEE,KAAK8B,MAAMe,cACnY,IACE/C,EAAEE,KAAOF,EAAEE,MAAQ,CAAC,EAAGF,EAAEE,KAAKkF,QAAUpF,EAAEic,MAAM9Y,OAAO,CACzDC,WAAY,SAAUxD,GACpByD,KAAKC,KAAO1D,EAAGyD,KAAKM,WAAa/D,EAAE6D,OAAOG,UAAWP,KAAKya,UAAW,EAAIza,KAAKE,WAAa3D,EAAEvE,QAAQwgB,oBAAsB7b,EAAEgF,QAAQmI,OAAO,MAAO,uBAAwB9J,KAAKM,YAAc,KAAMN,KAAK0a,kBAAmB,EAAI1a,KAAKC,KAAKgC,GAAG,WAAYjC,KAAKoF,YAAapF,KAC7Q,EACAqC,QAAS,WACPrC,KAAKC,KAAKqC,IAAI,WAAYtC,KAAKoF,YAAapF,MAAOA,KAAKE,aAAeF,KAAKM,WAAW+J,YAAYrK,KAAKE,YAAaF,KAAKE,WAAa,KACzI,EACA4E,cAAe,SAAUvI,GACvB,OAAOyD,KAAKE,YAAc3D,EAAEmC,QAAUnC,EAAEmC,SAAW,GAAI,IAAMnC,EAAEmC,QAAQtF,QAAU4G,KAAK0a,iBAAmBne,EAAEmC,QAAQtF,OAAS,GAAK4G,KAAK0a,mBAAqB/d,EAAEgF,QAAQsM,YAAYjO,KAAKE,WAAY,+BAAgCF,KAAK0a,kBAAmB,IAAO/d,EAAEgF,QAAQwM,SAASnO,KAAKE,WAAY,+BAAgCF,KAAK0a,kBAAmB,GAAK1a,KAAKE,WAAWga,WAAa3d,EAAEmC,QAAQtF,OAAS,EAAI,8CAAgDmD,EAAEmC,QAAU,gBAAkB,IAAM,SAAWnC,EAAEW,KAAO,UAAWX,EAAEW,MAAQX,EAAEmC,SAAWsB,KAAKya,UAAW,EAAIza,KAAKE,WAAW6J,MAAM4Q,WAAa,YAAc3a,KAAKya,UAAW,EAAIza,KAAKE,WAAW6J,MAAM4Q,WAAa,UAAW3a,MAAQA,IACjrB,EACAqJ,eAAgB,SAAU9M,GACxB,IAAIC,EAAIwD,KAAKC,KAAKkJ,mBAAmB5M,GACnC9C,EAAIuG,KAAKE,WACX,OAAOF,KAAKE,aAAeF,KAAKya,WAAahhB,EAAEsQ,MAAM4Q,WAAa,WAAYhe,EAAEgF,QAAQsI,YAAYxQ,EAAG+C,IAAKwD,IAC9G,EACA6K,YAAa,WACX,OAAO7K,KAAKE,YAAcvD,EAAEgF,QAAQwM,SAASnO,KAAKE,WAAY,8BAA+BF,IAC/F,EACAkL,YAAa,WACX,OAAOlL,KAAKE,YAAcvD,EAAEgF,QAAQsM,YAAYjO,KAAKE,WAAY,8BAA+BF,IAClG,EACAoF,YAAa,WACXpF,KAAKE,aAAeF,KAAKE,WAAW6J,MAAM4Q,WAAa,SACzD,IACEhe,EAAEmb,YAAcnb,EAAEgc,QAAQ7Y,OAAO,CACnC6C,QAAS,CACPC,KAAM,QAER5K,QAAS,CACPsF,SAAU,CAAC,EACXzE,QAAS,CAAC,EACV0E,UAAW,CAAC,EACZC,OAAQ,CAAC,EACTC,OAAQ,CAAC,EACTC,aAAc,CAAC,GAEjBqC,WAAY,SAAUxD,GACpB,IAAK,IAAIC,KAAKwD,KAAKhI,QAASgI,KAAKhI,QAAQkgB,eAAe1b,IAAMD,EAAEC,KAAOD,EAAEC,GAAKG,EAAEmD,OAAO,CAAC,EAAGE,KAAKhI,QAAQwE,GAAID,EAAEC,KAC9GwD,KAAKgZ,cAAgB,oBAAqBrc,EAAEgc,QAAQ3X,UAAUjB,WAAWsB,KAAKrB,KAAMzD,EACtF,EACA0c,gBAAiB,SAAU1c,GACzB,MAAO,CAAC,CACNuP,QAAS9L,KAAKhI,QAAQsF,SACtBiE,QAAS,IAAI5E,EAAEE,KAAK6F,SAASnG,EAAGyD,KAAKhI,QAAQsF,UAC7CL,MAAON,EAAEG,UAAUC,KAAKC,QAAQK,QAAQC,UACvC,CACDwO,QAAS9L,KAAKhI,QAAQa,QACtB0I,QAAS,IAAI5E,EAAEE,KAAKkM,QAAQxM,EAAGyD,KAAKhI,QAAQa,SAC5CoE,MAAON,EAAEG,UAAUC,KAAKC,QAAQK,QAAQxE,SACvC,CACDiT,QAAS9L,KAAKhI,QAAQuF,UACtBgE,QAAS,IAAI5E,EAAEE,KAAK2P,UAAUjQ,EAAGyD,KAAKhI,QAAQuF,WAC9CN,MAAON,EAAEG,UAAUC,KAAKC,QAAQK,QAAQE,WACvC,CACDuO,QAAS9L,KAAKhI,QAAQwF,OACtB+D,QAAS,IAAI5E,EAAEE,KAAKyQ,OAAO/Q,EAAGyD,KAAKhI,QAAQwF,QAC3CP,MAAON,EAAEG,UAAUC,KAAKC,QAAQK,QAAQG,QACvC,CACDsO,QAAS9L,KAAKhI,QAAQyF,OACtB8D,QAAS,IAAI5E,EAAEE,KAAKqM,OAAO3M,EAAGyD,KAAKhI,QAAQyF,QAC3CR,MAAON,EAAEG,UAAUC,KAAKC,QAAQK,QAAQI,QACvC,CACDqO,QAAS9L,KAAKhI,QAAQ0F,aACtB6D,QAAS,IAAI5E,EAAEE,KAAKwQ,aAAa9Q,EAAGyD,KAAKhI,QAAQ0F,cACjDT,MAAON,EAAEG,UAAUC,KAAKC,QAAQK,QAAQK,cAE5C,EACA4c,WAAY,SAAU/d,GACpB,MAAO,CAAC,CACNuP,QAASvP,EAAEsK,cACX5J,MAAON,EAAEG,UAAUC,KAAKC,QAAQG,OAAOF,MACvCC,KAAMP,EAAEG,UAAUC,KAAKC,QAAQG,OAAOD,KACtC3C,SAAUgC,EAAEsK,cACZ+S,QAASrd,GACR,CACDuP,QAASvP,EAAEwJ,iBACX9I,MAAON,EAAEG,UAAUC,KAAKC,QAAQI,KAAKH,MACrCC,KAAMP,EAAEG,UAAUC,KAAKC,QAAQI,KAAKF,KACpC3C,SAAUgC,EAAEwJ,iBACZ6T,QAASrd,GACR,CACDU,MAAON,EAAEG,UAAUC,KAAKC,QAAQhH,QAAQiH,MACxCC,KAAMP,EAAEG,UAAUC,KAAKC,QAAQhH,QAAQkH,KACvC3C,SAAUyF,KAAKyB,QACfmY,QAAS5Z,MAEb,EACAU,WAAY,SAAUnE,GAEpB,IAAK,IAAIC,KADTG,EAAE+D,WAAWV,KAAMzD,GACLyD,KAAK6Y,OAAQ7Y,KAAK6Y,OAAOX,eAAe1b,IAAMD,EAAE2b,eAAe1b,IAAMwD,KAAK6Y,OAAOrc,GAAG+E,QAAQb,WAAWnE,EAAEC,GACzH,IACEG,EAAEqb,YAAcrb,EAAEgc,QAAQ7Y,OAAO,CACnC6C,QAAS,CACPC,KAAM,QAER5K,QAAS,CACPmG,KAAM,CACJyc,oBAAqB,CACnBC,UAAW,SACXhX,MAAM,EACNwH,UAAW,UACXC,YAAa,GACbwP,eAAe,IAGnBtc,OAAQ,CAAC,EACT4Q,KAAM,KACN2L,aAAc,MAEhBhb,WAAY,SAAUxD,GACpBA,EAAE4B,YAAS,IAAW5B,EAAE4B,KAAKyc,sBAAwBre,EAAE4B,KAAKyc,oBAAsB5a,KAAKhI,QAAQmG,KAAKyc,qBAAsBre,EAAE4B,KAAKyc,oBAAsBje,EAAEmD,OAAO,CAAC,EAAGE,KAAKhI,QAAQmG,KAAKyc,oBAAqBre,EAAE4B,KAAKyc,sBAAuBre,EAAEiC,SAAWjC,EAAEiC,OAAS7B,EAAEmD,OAAO,CAAC,EAAGE,KAAKhI,QAAQwG,OAAQjC,EAAEiC,SAAUjC,EAAE6S,OAAS7S,EAAE6S,KAAOzS,EAAEmD,OAAO,CAAC,EAAGE,KAAKhI,QAAQoX,KAAM7S,EAAE6S,OAAQpP,KAAKgZ,cAAgB,oBAAqBrc,EAAEgc,QAAQ3X,UAAUjB,WAAWsB,KAAKrB,KAAMzD,GAAIyD,KAAKgb,sBAAwB,CACpe,EACA/B,gBAAiB,SAAU1c,GACzB,IAAIC,EAAIwD,KAAKhI,QAAQ+iB,aACrB,MAAO,CAAC,CACNjP,QAAS9L,KAAKhI,QAAQmG,KACtBoD,QAAS,IAAI5E,EAAEqb,YAAYrK,KAAKpR,EAAG,CACjCwe,aAAcve,EACdoe,oBAAqB5a,KAAKhI,QAAQmG,KAAKyc,oBACvCxL,KAAMpP,KAAKhI,QAAQoX,OAErBnS,MAAON,EAAEG,UAAUqB,KAAKnB,QAAQK,QAAQc,MACvC,CACD2N,QAAS9L,KAAKhI,QAAQwG,OACtB+C,QAAS,IAAI5E,EAAEqb,YAAYiD,OAAO1e,EAAG,CACnCwe,aAAcve,IAEhBS,MAAON,EAAEG,UAAUqB,KAAKnB,QAAQK,QAAQmB,QAE5C,EACA8b,WAAY,SAAU/d,GACpB,IAAIC,EAAI,CAAC,CACPS,MAAON,EAAEG,UAAUqB,KAAKnB,QAAQhH,QAAQoI,KAAKnB,MAC7CC,KAAMP,EAAEG,UAAUqB,KAAKnB,QAAQhH,QAAQoI,KAAKlB,KAC5C3C,SAAUyF,KAAKkb,MACftB,QAAS5Z,MACR,CACD/C,MAAON,EAAEG,UAAUqB,KAAKnB,QAAQhH,QAAQqI,OAAOpB,MAC/CC,KAAMP,EAAEG,UAAUqB,KAAKnB,QAAQhH,QAAQqI,OAAOnB,KAC9C3C,SAAUyF,KAAKyB,QACfmY,QAAS5Z,OAEX,OAAOzD,EAAE4e,iBAAmB3e,EAAEJ,KAAK,CACjCa,MAAON,EAAEG,UAAUqB,KAAKnB,QAAQhH,QAAQsI,SAASrB,MACjDC,KAAMP,EAAEG,UAAUqB,KAAKnB,QAAQhH,QAAQsI,SAASpB,KAChD3C,SAAUyF,KAAKob,gBACfxB,QAAS5Z,OACPxD,CACN,EACA2b,WAAY,SAAU5b,GACpB,IAAIC,EAAIG,EAAEgc,QAAQ3X,UAAUmX,WAAW9W,KAAKrB,KAAMzD,GAClD,OAAOyD,KAAKqb,iBAAkBrb,KAAKhI,QAAQ+iB,aAAa9Y,GAAG,uBAAwBjC,KAAKqb,eAAgBrb,MAAOxD,CACjH,EACA8b,cAAe,WACbtY,KAAKhI,QAAQ+iB,aAAazY,IAAI,uBAAwBtC,KAAKqb,eAAgBrb,MAAOrD,EAAEgc,QAAQ3X,UAAUsX,cAAcjX,KAAKrB,KAC3H,EACAyB,QAAS,WACPzB,KAAK8L,YAAc9L,KAAK+Y,YAAYxX,QAAQ+Z,eAAgB3e,EAAEgc,QAAQ3X,UAAUS,QAAQJ,KAAKrB,MAC/F,EACAkb,MAAO,WACLlb,KAAK+Y,YAAYxX,QAAQnD,OAAQ4B,KAAK+Y,aAAe/Y,KAAK+Y,YAAYxX,QAAQE,SAChF,EACA2Z,gBAAiB,WACfpb,KAAK+Y,YAAYxX,QAAQ4Z,kBAAmBnb,KAAK+Y,aAAe/Y,KAAK+Y,YAAYxX,QAAQE,SAC3F,EACA4Z,eAAgB,WACd,IAAI9e,EAEF9C,EAAI,IADAuG,KAAKhI,QAAQ+iB,aACLQ,YAAYniB,OAC1B4G,KAAKhI,QAAQmG,OAAS5B,EAAIyD,KAAK6Y,OAAOlc,EAAEqb,YAAYrK,KAAK/K,MAAM2W,OAAQ9f,EAAIkD,EAAEgF,QAAQsM,YAAY1R,EAAG,oBAAsBI,EAAEgF,QAAQwM,SAAS5R,EAAG,oBAAqBA,EAAEif,aAAa,QAAS/hB,EAAIkD,EAAEG,UAAUqB,KAAKnB,QAAQK,QAAQc,KAAOxB,EAAEG,UAAUqB,KAAKnB,QAAQK,QAAQkB,eAAgByB,KAAKhI,QAAQwG,SAAWjC,EAAIyD,KAAK6Y,OAAOlc,EAAEqb,YAAYiD,OAAOrY,MAAM2W,OAAQ9f,EAAIkD,EAAEgF,QAAQsM,YAAY1R,EAAG,oBAAsBI,EAAEgF,QAAQwM,SAAS5R,EAAG,oBAAqBA,EAAEif,aAAa,QAAS/hB,EAAIkD,EAAEG,UAAUqB,KAAKnB,QAAQK,QAAQmB,OAAS7B,EAAEG,UAAUqB,KAAKnB,QAAQK,QAAQoB,gBAC5iB,IACE9B,EAAEqb,YAAYrK,KAAOhR,EAAEkD,QAAQC,OAAO,CACxC6C,QAAS,CACPC,KAAM,QAER7C,WAAY,SAAUxD,EAAGC,GACvB,GAAIG,EAAEkD,QAAQmB,UAAUjB,WAAWsB,KAAKrB,KAAMzD,GAAII,EAAE+D,WAAWV,KAAMxD,GAAIwD,KAAKyb,cAAgBjf,EAAEue,eAAgB/a,KAAKyb,yBAAyB9e,EAAE+e,cAAe,MAAM,IAAI5iB,MAAM,iDAC/KkH,KAAK2b,oBAAsB,CAAC,EAAG3b,KAAK9H,KAAOyE,EAAEqb,YAAYrK,KAAK/K,KAC9D,IAAInJ,EAAIkD,EAAEgE,QAAQC,MAAM,KACxB,IAAMC,SAASpH,EAAE,GAAI,KAAOoH,SAASpH,EAAE,GAAI,KAAO,EAAIkD,EAAEqb,YAAYrK,KAAK7M,QAAQnE,EAAEoE,QAAQC,WAAarE,EAAEqb,YAAYrK,KAAK7M,QAAQnE,EAAEsE,MAAMC,OAC7I,EACAC,OAAQ,YACLnB,KAAKoB,UAAYpB,KAAK4b,wBAA0B5b,KAAKsB,KAAK,UAAW,CACpEC,QAASvB,KAAK9H,OACZ8H,KAAKC,KAAKqB,KAAK3E,EAAEE,KAAK8B,MAAMO,UAAW,CACzCqC,QAASvB,KAAK9H,OACZyE,EAAEkD,QAAQmB,UAAUG,OAAOE,KAAKrB,MAAOA,KAAKyb,cAAcxZ,GAAG,WAAYjC,KAAK6b,iBAAkB7b,MAAMiC,GAAG,cAAejC,KAAK8b,kBAAmB9b,MACtJ,EACAyB,QAAS,WACPzB,KAAKoB,WAAapB,KAAKyb,cAAcnZ,IAAI,WAAYtC,KAAK6b,iBAAkB7b,MAAMsC,IAAI,cAAetC,KAAK8b,kBAAmB9b,MAAOrD,EAAEkD,QAAQmB,UAAUS,QAAQJ,KAAKrB,MAAOA,KAAKC,KAAKqB,KAAK3E,EAAEE,KAAK8B,MAAMW,SAAU,CAChNiC,QAASvB,KAAK9H,OACZ8H,KAAKsB,KAAK,WAAY,CACxBC,QAASvB,KAAK9H,OAElB,EACAwJ,SAAU,WACR,IAAInF,EAAIyD,KAAKC,KACb1D,IAAMA,EAAEsF,eAAe/K,QAASkJ,KAAKyb,cAAc9J,UAAU3R,KAAK6b,iBAAkB7b,MAAOA,KAAK8B,SAAW,IAAInF,EAAEE,KAAKkF,QAAQ/B,KAAKC,MAAOD,KAAK8B,SAASgD,cAAc,CACpK5H,KAAMP,EAAEG,UAAUqB,KAAKR,SAASQ,KAAKP,QAAQV,KAC7CwB,QAAS/B,EAAEG,UAAUqB,KAAKR,SAASQ,KAAKP,QAAQc,UAC9CnC,EAAEwU,aAAe/Q,KAAK8B,SAAU9B,KAAKsH,iBAAkBtH,KAAKC,KAAKgC,GAAG,YAAajC,KAAKqF,aAAcrF,MAAMiC,GAAG,YAAajC,KAAKqF,aAAcrF,MAAMiC,GAAG,gBAAiBjC,KAAKqF,aAAcrF,MAAMiC,GAAGtF,EAAEE,KAAK8B,MAAMU,WAAYW,KAAKsH,eAAgBtH,MACvP,EACAmC,YAAa,WACXnC,KAAKC,OAASD,KAAKyb,cAAc9J,UAAU3R,KAAK8b,kBAAmB9b,MAAOA,KAAK2b,oBAAsB,CAAC,EAAG3b,KAAK8B,SAASO,UAAWrC,KAAK8B,SAAW,KAAM9B,KAAKC,KAAKqC,IAAI,YAAatC,KAAKqF,aAAcrF,MAAMsC,IAAI,YAAatC,KAAKqF,aAAcrF,MAAMsC,IAAI,gBAAiBtC,KAAKqF,aAAcrF,MAAMsC,IAAI3F,EAAEE,KAAK8B,MAAMU,WAAYW,KAAKsH,eAAgBtH,MACxV,EACAsb,aAAc,WACZtb,KAAKyb,cAAc9J,WAAU,SAAUpV,GACrCyD,KAAK+b,aAAaxf,EACpB,GAAGyD,KACL,EACA5B,KAAM,WACJ,IAAI7B,EAAI,IAAII,EAAEgI,WACd3E,KAAKyb,cAAc9J,WAAU,SAAUnV,GACrCA,EAAEsR,SAAWvR,EAAEqI,SAASpI,GAAIA,EAAEsR,QAAS,EACzC,IAAI9N,KAAKC,KAAKqB,KAAK3E,EAAEE,KAAK8B,MAAME,OAAQ,CACtC4I,OAAQlL,GAEZ,EACAyf,aAAc,SAAUzf,GACtB,IAAIC,EAAIG,EAAE8D,KAAKwb,MAAM1f,GACrByD,KAAK2b,oBAAoBnf,KAAOD,aAAaI,EAAE+F,UAAYnG,aAAaI,EAAEoM,SAAWxM,aAAaI,EAAE6P,UAAYxM,KAAK2b,oBAAoBnf,GAAK,CAC5IiS,QAAS9R,EAAEiU,WAAWqF,aAAa1Z,EAAE0J,eACnC1J,aAAaI,EAAE2Q,OAAStN,KAAK2b,oBAAoBnf,GAAK,CACxDiM,OAAQ9L,EAAEiU,WAAWC,YAAYtU,EAAE0M,aACnCnL,OAAQvB,EAAEkR,cACPlR,aAAaI,EAAEuM,QAAU3M,aAAaI,EAAE0Q,gBAAkBrN,KAAK2b,oBAAoBnf,GAAK,CAC3FiM,OAAQ9L,EAAEiU,WAAWC,YAAYtU,EAAE0M,eAEvC,EACAlE,gBAAiB,WACf,MAAO,CACL7H,KAAMP,EAAEG,UAAUqB,KAAKR,SAASQ,KAAKP,QAAQV,KAC7CwB,QAAS/B,EAAEG,UAAUqB,KAAKR,SAASQ,KAAKP,QAAQc,QAEpD,EACA4I,eAAgB,WACdtH,KAAK8B,SAASgD,cAAc9E,KAAK+E,kBACnC,EACAgX,aAAc,SAAUxf,GACtB,IAAIC,EAAIG,EAAE8D,KAAKwb,MAAM1f,GACrBA,EAAEuR,QAAS,EAAI9N,KAAK2b,oBAAoBzD,eAAe1b,KAAOD,aAAaI,EAAE+F,UAAYnG,aAAaI,EAAEoM,SAAWxM,aAAaI,EAAE6P,UAAYjQ,EAAE6J,WAAWpG,KAAK2b,oBAAoBnf,GAAGiS,SAAWlS,aAAaI,EAAE2Q,QAAU/Q,EAAEgL,UAAUvH,KAAK2b,oBAAoBnf,GAAGiM,QAASlM,EAAEiR,UAAUxN,KAAK2b,oBAAoBnf,GAAGsB,UAAYvB,aAAaI,EAAEuM,QAAU3M,aAAaI,EAAE0Q,eAAiB9Q,EAAEgL,UAAUvH,KAAK2b,oBAAoBnf,GAAGiM,QAASlM,EAAE+E,KAAK,gBAAiB,CAChckB,MAAOjG,IAEX,EACAsf,iBAAkB,SAAUtf,GAC1B,IAAIC,EACF/C,EACAyM,EAAI3J,EAAEiG,OAASjG,EAAEhF,QAAUgF,EAC7ByD,KAAKgc,aAAa9V,GAAIlG,KAAKhI,QAAQoX,OAAS3V,EAAIkD,EAAE8D,KAAKX,OAAO,CAAC,EAAGE,KAAKhI,QAAQoX,MAAOlJ,EAAElO,QAAQoX,KAAO3V,GAAIuG,KAAKhI,QAAQ4iB,uBAAwBpe,EAAIG,EAAE8D,KAAKX,OAAO,CAAC,EAAGE,KAAKhI,QAAQ4iB,sBAAwBE,gBAAkBte,EAAEyG,MAAQiD,EAAElO,QAAQiL,MAAOzG,EAAE6O,UAAYnF,EAAElO,QAAQqT,WAAYnF,EAAElO,QAAQsX,SAAW3S,EAAEmD,OAAO,CAAC,EAAGoG,EAAElO,SAAUkO,EAAElO,QAAQuW,QAAU/R,GAAI0J,aAAavJ,EAAEuM,QAAUhD,EAAEqI,SAAWrI,EAAEqI,QAAQpN,SAAU+E,EAAE2F,SAAS1K,SAAU+E,EAAEjE,GAAG,UAAWjC,KAAK6S,kBAAkB5Q,GAAG,YAAajC,KAAKoQ,aAAcpQ,MAAMiC,GAAG,gBAAiBjC,KAAKoQ,aAAcpQ,MAAMiC,GAAG,WAAYjC,KAAK6S,iBAAkB7S,MAAMiC,GAAG,cAAejC,KAAK6S,iBAAkB7S,OAASkG,EAAEqI,QAAQpN,QACxpB,EACA2a,kBAAmB,SAAUvf,GAC3B,IAAIC,EAAID,EAAEiG,OAASjG,EAAEhF,QAAUgF,EAC/BC,EAAEsR,QAAS,EAAItR,EAAE+R,SAAW/R,EAAE+R,QAAQ9M,iBAAkBjF,EAAExE,QAAQuW,eAAgB/R,EAAExE,QAAQsX,SAAUtP,KAAKkc,uBAAyB1f,aAAaG,EAAEuM,OAASlJ,KAAK6N,uBAAuBrR,IAAMA,EAAEsO,SAAStO,EAAExE,QAAQmkB,wBAAyB3f,EAAExE,QAAQmkB,kBAAmB3f,aAAaG,EAAEuM,QAAU1M,EAAEqP,SAASpK,UAAWjF,EAAE8F,IAAI,UAAWtC,KAAK6S,iBAAkB7S,MAAMsC,IAAI,YAAatC,KAAKoQ,aAAcpQ,MAAMsC,IAAI,gBAAiBtC,KAAKoQ,aAAcpQ,MAAMsC,IAAI,WAAYtC,KAAK6S,iBAAkB7S,MAAMsC,IAAI,cAAetC,KAAK6S,iBAAkB7S,OAASxD,EAAE+R,QAAQ9M,SAC1iB,EACA4D,aAAc,SAAU9I,GACtByD,KAAK8B,SAASuH,eAAe9M,EAAEkM,OACjC,EACAoK,iBAAkB,SAAUtW,GAC1B,IAAIC,EAAID,EAAEhF,OACViF,EAAEsR,QAAS,EAAI9N,KAAKC,KAAKqB,KAAK3E,EAAEE,KAAK8B,MAAMQ,SAAU,CACnDqD,MAAOhG,GAEX,EACA4T,aAAc,SAAU7T,GACtB,IAAIC,EAAID,EAAE4K,cAAciV,eAAe,GACrC3iB,EAAIuG,KAAKC,KAAKiH,uBAAuB1K,GACrC0J,EAAIlG,KAAKC,KAAKmH,mBAAmB3N,GACnC8C,EAAEhF,OAAOgQ,UAAUrB,EACrB,EACA0V,oBAAqB,WACnB,OAAO,IAAM5b,KAAKyb,cAAcF,YAAYniB,MAC9C,IACEuD,EAAEqb,YAAYiD,OAASte,EAAEkD,QAAQC,OAAO,CAC1C6C,QAAS,CACPC,KAAM,UAER7C,WAAY,SAAUxD,EAAGC,GACvB,GAAIG,EAAEkD,QAAQmB,UAAUjB,WAAWsB,KAAKrB,KAAMzD,GAAII,EAAE8D,KAAKC,WAAWV,KAAMxD,GAAIwD,KAAKqc,iBAAmBrc,KAAKhI,QAAQ+iB,eAAgB/a,KAAKqc,4BAA4B1f,EAAE+e,cAAe,MAAM,IAAI5iB,MAAM,iDACrMkH,KAAK9H,KAAOyE,EAAEqb,YAAYiD,OAAOrY,KACjC,IAAInJ,EAAIkD,EAAEgE,QAAQC,MAAM,KACxB,IAAMC,SAASpH,EAAE,GAAI,KAAOoH,SAASpH,EAAE,GAAI,KAAO,EAAIkD,EAAEqb,YAAYiD,OAAOna,QAAQnE,EAAEoE,QAAQC,WAAarE,EAAEqb,YAAYiD,OAAOna,QAAQnE,EAAEsE,MAAMC,OACjJ,EACAC,OAAQ,YACLnB,KAAKoB,UAAYpB,KAAK4b,wBAA0B5b,KAAKsB,KAAK,UAAW,CACpEC,QAASvB,KAAK9H,OACZ8H,KAAKC,KAAKqB,KAAK3E,EAAEE,KAAK8B,MAAMY,YAAa,CAC3CgC,QAASvB,KAAK9H,OACZyE,EAAEkD,QAAQmB,UAAUG,OAAOE,KAAKrB,MAAOA,KAAKqc,iBAAiBpa,GAAG,WAAYjC,KAAKsc,mBAAoBtc,MAAMiC,GAAG,cAAejC,KAAKuc,oBAAqBvc,MAC7J,EACAyB,QAAS,WACPzB,KAAKoB,WAAapB,KAAKqc,iBAAiB/Z,IAAI,WAAYtC,KAAKsc,mBAAoBtc,MAAMsC,IAAI,cAAetC,KAAKuc,oBAAqBvc,MAAOrD,EAAEkD,QAAQmB,UAAUS,QAAQJ,KAAKrB,MAAOA,KAAKC,KAAKqB,KAAK3E,EAAEE,KAAK8B,MAAMa,WAAY,CACzN+B,QAASvB,KAAK9H,OACZ8H,KAAKsB,KAAK,WAAY,CACxBC,QAASvB,KAAK9H,OAElB,EACAwJ,SAAU,WACR,IAAInF,EAAIyD,KAAKC,KACb1D,IAAMA,EAAEsF,eAAe/K,QAASkJ,KAAKqc,iBAAiB1K,UAAU3R,KAAKsc,mBAAoBtc,MAAOA,KAAKwc,eAAiB,IAAI7f,EAAEgI,WAAc3E,KAAK8B,SAAW,IAAInF,EAAEE,KAAKkF,QAAQ/B,KAAKC,MAAOD,KAAK8B,SAASgD,cAAc,CACnN5H,KAAMP,EAAEG,UAAUqB,KAAKR,SAASa,OAAOZ,QAAQV,OAC7C8C,KAAKC,KAAKgC,GAAG,YAAajC,KAAKqF,aAAcrF,MACnD,EACAmC,YAAa,WACXnC,KAAKC,OAASD,KAAKqc,iBAAiB1K,UAAU3R,KAAKuc,oBAAqBvc,MAAOA,KAAKwc,eAAiB,KAAMxc,KAAK8B,SAASO,UAAWrC,KAAK8B,SAAW,KAAM9B,KAAKC,KAAKqC,IAAI,YAAatC,KAAKqF,aAAcrF,MAC1M,EACAsb,aAAc,WACZtb,KAAKwc,eAAe7K,WAAU,SAAUpV,GACtCyD,KAAKqc,iBAAiBzX,SAASrI,GAAIA,EAAE+E,KAAK,iBAAkB,CAC1DkB,MAAOjG,GAEX,GAAGyD,KACL,EACA5B,KAAM,WACJ4B,KAAKC,KAAKqB,KAAK3E,EAAEE,KAAK8B,MAAMG,QAAS,CACnC2I,OAAQzH,KAAKwc,gBAEjB,EACArB,gBAAiB,WACfnb,KAAKqc,iBAAiB1K,WAAU,SAAUpV,GACxCyD,KAAKyc,aAAa,CAChBja,MAAOjG,GAEX,GAAGyD,MAAOA,KAAK5B,MACjB,EACAke,mBAAoB,SAAU/f,IAC3BA,EAAEiG,OAASjG,EAAEhF,QAAUgF,GAAG0F,GAAG,QAASjC,KAAKyc,aAAczc,KAC5D,EACAuc,oBAAqB,SAAUhgB,GAC7B,IAAIC,EAAID,EAAEiG,OAASjG,EAAEhF,QAAUgF,EAC/BC,EAAE8F,IAAI,QAAStC,KAAKyc,aAAczc,MAAOA,KAAKwc,eAAe3W,YAAYrJ,EAC3E,EACAigB,aAAc,SAAUlgB,GACtB,IAAIC,EAAID,EAAEiG,OAASjG,EAAEhF,QAAUgF,EAC/ByD,KAAKqc,iBAAiBxW,YAAYrJ,GAAIwD,KAAKwc,eAAe5X,SAASpI,GAAIA,EAAE8E,KAAK,UAChF,EACA+D,aAAc,SAAU9I,GACtByD,KAAK8B,SAASuH,eAAe9M,EAAEkM,OACjC,EACAmT,oBAAqB,WACnB,OAAO,IAAM5b,KAAKqc,iBAAiBd,YAAYniB,MACjD,G,qCC/sDJ,SAASsjB,EAAQC,GAYf,OARED,EADoB,mBAAXE,QAAoD,iBAApBA,OAAOC,SACtC,SAAiBF,GACzB,cAAcA,CAChB,EAEU,SAAiBA,GACzB,OAAOA,GAAyB,mBAAXC,QAAyBD,EAAIG,cAAgBF,QAAUD,IAAQC,OAAO5b,UAAY,gBAAkB2b,CAC3H,EAEKD,EAAQC,EACjB,CAIAI,EAAA,EAAqBC,EACrB,IAGgCL,EAH5BM,EAgBJ,SAAiCN,GAC/B,GAAIA,GAAOA,EAAIO,WACb,OAAOP,EAET,GAAY,OAARA,GAAiC,WAAjBD,EAAQC,IAAoC,mBAARA,EACtD,MAAO,CACL,QAAWA,GAGf,IAAIQ,EAAQC,IACZ,GAAID,GAASA,EAAME,IAAIV,GACrB,OAAOQ,EAAMG,IAAIX,GAEnB,IAAIY,EAAS,CAAC,EACVC,EAAwBC,OAAOC,gBAAkBD,OAAOE,yBAC5D,IAAK,IAAIC,KAAOjB,EACd,GAAIc,OAAOzc,UAAUkX,eAAe7W,KAAKsb,EAAKiB,GAAM,CAClD,IAAIC,EAAOL,EAAwBC,OAAOE,yBAAyBhB,EAAKiB,GAAO,KAC3EC,IAASA,EAAKP,KAAOO,EAAKC,KAC5BL,OAAOC,eAAeH,EAAQK,EAAKC,GAEnCN,EAAOK,GAAOjB,EAAIiB,EAEtB,CAEFL,EAAgB,QAAIZ,EAChBQ,GACFA,EAAMW,IAAInB,EAAKY,GAEjB,OAAOA,CACT,CA9CaQ,CAAwB,EAAQ,QACzCC,GAE4BrB,EAFQ,EAAQ,SAGhCA,EAAIO,WAAaP,EAAM,CACnC,QAAWA,GAHXsB,EAAU,EAAQ,MAMtB,SAASb,IACP,GAAuB,mBAAZc,QAAwB,OAAO,KAC1C,IAAIf,EAAQ,IAAIe,QAIhB,OAHAd,EAA2B,WACzB,OAAOD,CACT,EACOA,CACT,CAgCA,SAASgB,EAAQC,EAAQC,GACvB,IAAIC,EAAOb,OAAOa,KAAKF,GACvB,GAAIX,OAAOc,sBAAuB,CAChC,IAAIC,EAAUf,OAAOc,sBAAsBH,GACvCC,IAAgBG,EAAUA,EAAQC,QAAO,SAAUC,GACrD,OAAOjB,OAAOE,yBAAyBS,EAAQM,GAAKC,UACtD,KACAL,EAAKliB,KAAKkU,MAAMgO,EAAME,EACxB,CACA,OAAOF,CACT,CAkBA,SAASM,EAAgBjC,EAAKiB,EAAKxnB,GAWjC,OAVIwnB,KAAOjB,EACTc,OAAOC,eAAef,EAAKiB,EAAK,CAC9BxnB,MAAOA,EACPuoB,YAAY,EACZE,cAAc,EACdC,UAAU,IAGZnC,EAAIiB,GAAOxnB,EAENumB,CACT,CACA,SAASoC,EAAeC,EAAKvlB,GAC3B,OA2CF,SAAyBulB,GACvB,GAAI9lB,MAAMC,QAAQ6lB,GAAM,OAAOA,CACjC,CA7CSC,CAAgBD,IAoBzB,SAA+BA,EAAKvlB,GAClC,GAAsB,oBAAXmjB,UAA4BA,OAAOC,YAAYY,OAAOuB,IAAO,OACxE,IAAIE,EAAO,GACPC,GAAK,EACLC,GAAK,EACLC,OAAKtjB,EACT,IACE,IAAK,IAAiCujB,EAA7BC,EAAKP,EAAIpC,OAAOC,cAAmBsC,GAAMG,EAAKC,EAAGC,QAAQC,QAChEP,EAAK9iB,KAAKkjB,EAAGlpB,QACTqD,GAAKylB,EAAK9lB,SAAWK,GAF8C0lB,GAAK,GAIhF,CAAE,MAAOO,GACPN,GAAK,EACLC,EAAKK,CACP,CAAE,QACA,IACOP,GAAsB,MAAhBI,EAAW,QAAWA,EAAW,QAC9C,CAAE,QACA,GAAIH,EAAI,MAAMC,CAChB,CACF,CACA,OAAOH,CACT,CA1CiCS,CAAsBX,EAAKvlB,IAK5D,SAAqCyM,EAAG0Z,GACtC,IAAK1Z,EAAG,OACR,GAAiB,iBAANA,EAAgB,OAAO2Z,EAAkB3Z,EAAG0Z,GACvD,IAAIrX,EAAIkV,OAAOzc,UAAU8e,SAASze,KAAK6E,GAAGlM,MAAM,GAAI,GAC1C,WAANuO,GAAkBrC,EAAE4W,cAAavU,EAAIrC,EAAE4W,YAAY/mB,MACvD,GAAU,QAANwS,GAAqB,QAANA,EAAa,OAAOrP,MAAM6mB,KAAK7Z,GAClD,GAAU,cAANqC,GAAqB,2CAA2CwR,KAAKxR,GAAI,OAAOsX,EAAkB3Z,EAAG0Z,EAC3G,CAZkEI,CAA4BhB,EAAKvlB,IAEnG,WACE,MAAM,IAAIwmB,UAAU,4IACtB,CAJyGC,EACzG,CAYA,SAASL,EAAkBb,EAAKmB,IACnB,MAAPA,GAAeA,EAAMnB,EAAI5lB,UAAQ+mB,EAAMnB,EAAI5lB,QAC/C,IAAK,IAAIK,EAAI,EAAG2mB,EAAO,IAAIlnB,MAAMinB,GAAM1mB,EAAI0mB,EAAK1mB,IAC9C2mB,EAAK3mB,GAAKulB,EAAIvlB,GAEhB,OAAO2mB,CACT,CA2BA,IAAIC,EAAiB,CAAC,QAAS,eAAgB,OAAQ,UAAW,OAAQ,SAAU,OAAQ,OAAQ,QAAS,WAAY,YAAa,QAAS,eAAgB,WAAY,QAAS,eAAgB,gBAWpM,SAASrD,EAAO7nB,GACd,IACEmrB,EAAavB,GADC,EAAI9B,EAAOsD,WAAU,GACI,GACvC3qB,EAAU0qB,EAAW,GACrBE,EAAaF,EAAW,GAY1B,OAXA,EAAIrD,EAAOwD,YAAW,WACpB,IAAIC,EAMJ,OALIvrB,EAAM+N,SAAW/N,EAAM+N,QAAU,IACnCwd,EAAQ1V,YAAW,WACjBwV,GAAW,EACb,GAAGrrB,EAAM+N,UAEJ,WACDwd,GAAOvV,aAAauV,EAC1B,CACF,IACKvrB,EAAMwrB,SAA6B,UAAlBxrB,EAAMwrB,SAGrB/qB,EAAuBqnB,EAAgB,QAAE2D,cAAc,MAAO,CACnE,YAAa,OACbtrB,UAAWH,EAAMG,UACjByU,MAAO5U,EAAM4U,OACCkT,EAAgB,QAAE2D,cAjCpC,SAAuB1oB,GACrB,OAAImoB,EAAeQ,SAAS3oB,GACnB+lB,EAAQ6C,QAAQ5oB,GAElB+lB,EAAQ6C,QAAQC,KACzB,CA4BkDC,CAAc7rB,EAAM+C,MA/GtE,SAAuBX,GACrB,IAAK,IAAIkC,EAAI,EAAGA,EAAI8W,UAAUnX,OAAQK,IAAK,CACzC,IAAIwnB,EAAyB,MAAhB1Q,UAAU9W,GAAa8W,UAAU9W,GAAK,CAAC,EAChDA,EAAI,EACN0kB,EAAQV,OAAOwD,IAAS,GAAM1R,SAAQ,SAAUqO,GAC9CgB,EAAgBrnB,EAAQqmB,EAAKqD,EAAOrD,GACtC,IACSH,OAAOyD,0BAChBzD,OAAO0D,iBAAiB5pB,EAAQkmB,OAAOyD,0BAA0BD,IAEjE9C,EAAQV,OAAOwD,IAAS1R,SAAQ,SAAUqO,GACxCH,OAAOC,eAAenmB,EAAQqmB,EAAKH,OAAOE,yBAAyBsD,EAAQrD,GAC7E,GAEJ,CACA,OAAOrmB,CACT,CA+F6E6pB,CAAc,CAAC,EAAGjsB,KANpF,IAOX,CACA6nB,EAAOqE,UAAY,CACjBnpB,KAAM8lB,EAAoB,QAAEsD,MAAM,GAAG1S,OAAOyR,IAC5CtW,MAAOiU,EAAoB,QAAEuD,SAASvD,EAAoB,QAAEwD,QAC5DlsB,UAAW0oB,EAAoB,QAAEwD,OACjCb,QAAS3C,EAAoB,QAAEyD,UAAU,CAACzD,EAAoB,QAAE0D,KAAM1D,EAAoB,QAAEwD,SAC5Fte,QAAS8a,EAAoB,QAAE2D,QAEjC3E,EAAO4E,aAAe,CACpB1pB,KAAM,QACN6R,MAAO,CAAC,EACRzU,UAAW,GACXqrB,SAAS,EACTzd,QAAS,E,qCCzMXua,OAAOC,eAAeX,EAAS,aAAc,CAC3C3mB,OAAO,IAET2mB,EAAQgE,WAAQ,EAChB,IAAI9D,EAAS4E,EAAuB,EAAQ,QACxC7D,EAAa6D,EAAuB,EAAQ,QAChD,SAASA,EAAuBlF,GAC9B,OAAOA,GAAOA,EAAIO,WAAaP,EAAM,CACnC,QAAWA,EAEf,CACA,IAAIoE,EAAQ,SAAe5rB,GACzB,OAAoB8nB,EAAgB,QAAE2D,cAAc,MAAO,CACzDkB,OAAQ3sB,EAAM2sB,OACdC,MAAO5sB,EAAM4sB,MACble,KAAM1O,EAAM8N,MACZ+e,QAAS,YACTC,MAAO,6BACP,aAAc9sB,EAAM+sB,OACNjF,EAAgB,QAAE2D,cAAc,IAAK,CACnDuB,UAAW,yBACGlF,EAAgB,QAAE2D,cAAc,OAAQ,CACtDmB,MAAO,KACPD,OAAQ,KACRM,GAAI,KACUnF,EAAgB,QAAE2D,cAAc,UAAW,CACzDyB,cAAe,SACfC,MAAO,KACPC,IAAK,OACLC,OAAQ,gEACRC,SAAU,SACVC,YAAa,gBACGzF,EAAgB,QAAE2D,cAAc,OAAQ,CACxDnX,EAAG,KACHsY,MAAO,KACPD,OAAQ,KACRM,GAAI,KACUnF,EAAgB,QAAE2D,cAAc,UAAW,CACzDyB,cAAe,SACfC,MAAO,KACPC,IAAK,KACLC,OAAQ,qCACRC,SAAU,SACVC,YAAa,gBACGzF,EAAgB,QAAE2D,cAAc,OAAQ,CACxDnX,EAAG,KACHsY,MAAO,KACPD,OAAQ,KACRM,GAAI,KACUnF,EAAgB,QAAE2D,cAAc,UAAW,CACzDyB,cAAe,SACfC,MAAO,KACPC,IAAK,OACLC,OAAQ,sCACRC,SAAU,SACVC,YAAa,gBACGzF,EAAgB,QAAE2D,cAAc,OAAQ,CACxDnX,EAAG,KACHsY,MAAO,KACPD,OAAQ,KACRM,GAAI,KACUnF,EAAgB,QAAE2D,cAAc,UAAW,CACzDyB,cAAe,SACfC,MAAO,KACPC,IAAK,KACLC,OAAQ,sCACRC,SAAU,SACVC,YAAa,iBAEjB,EACA3F,EAAQgE,MAAQA,EAChBA,EAAMM,UAAY,CAChBS,OAAQ9D,EAAoB,QAAEyD,UAAU,CAACzD,EAAoB,QAAEwD,OAAQxD,EAAoB,QAAE2D,SAC7FI,MAAO/D,EAAoB,QAAEyD,UAAU,CAACzD,EAAoB,QAAEwD,OAAQxD,EAAoB,QAAE2D,SAC5F1e,MAAO+a,EAAoB,QAAEwD,OAC7BU,MAAOlE,EAAoB,QAAEwD,QAE/BT,EAAMa,aAAe,CACnBE,OAAQ,GACRC,MAAO,GACP9e,MAAO,QACPif,MAAO,gB,qCCjFTzE,OAAOC,eAAeX,EAAS,aAAc,CAC3C3mB,OAAO,IAET2mB,EAAQ4F,kBAAe,EACvB,IAAI1F,EAAS4E,EAAuB,EAAQ,QACxC7D,EAAa6D,EAAuB,EAAQ,QAChD,SAASA,EAAuBlF,GAC9B,OAAOA,GAAOA,EAAIO,WAAaP,EAAM,CACnC,QAAWA,EAEf,CACA,IAAIgG,EAAe,SAAsBxtB,GACvC,OAAoB8nB,EAAgB,QAAE2D,cAAc,MAAO,CACzDkB,OAAQ3sB,EAAM2sB,OACdC,MAAO5sB,EAAM4sB,MACbre,OAAQvO,EAAM8N,MACd+e,QAAS,YACTC,MAAO,6BACP,aAAc9sB,EAAM+sB,OACNjF,EAAgB,QAAE2D,cAAc,IAAK,CACnD/c,KAAM,OACN+e,SAAU,WACI3F,EAAgB,QAAE2D,cAAc,IAAK,CACnDuB,UAAW,iBACXU,YAAa,KACC5F,EAAgB,QAAE2D,cAAc,SAAU,CACxDkC,GAAI,IACJC,GAAI,KACJnZ,EAAGzU,EAAM2I,QACKmf,EAAgB,QAAE2D,cAAc,UAAW,CACzDyB,cAAe,KACfC,MAAO,KACPC,IAAK,OACLC,OAAQ,aACRC,SAAU,SACVC,YAAa,eACEzF,EAAgB,QAAE2D,cAAc,UAAW,CAC1DyB,cAAe,KACfC,MAAO,KACPC,IAAK,OACLC,OAAQ,YACRC,SAAU,SACVC,YAAa,gBACGzF,EAAgB,QAAE2D,cAAc,SAAU,CAC1DkC,GAAI,KACJC,GAAI,IACJnZ,EAAGzU,EAAM2I,QACKmf,EAAgB,QAAE2D,cAAc,UAAW,CACzDyB,cAAe,KACfC,MAAO,KACPC,IAAK,OACLxC,KAAM,IACNiD,GAAI,IACJR,OAAQ,YACRC,SAAU,SACVC,YAAa,eACEzF,EAAgB,QAAE2D,cAAc,UAAW,CAC1DyB,cAAe,KACfC,MAAO,KACPC,IAAK,OACLxC,KAAM,KACNiD,GAAI,KACJR,OAAQ,aACRC,SAAU,SACVC,YAAa,gBACGzF,EAAgB,QAAE2D,cAAc,SAAU,CAC1DkC,GAAI,KACJC,GAAI,KACJnZ,EAAGzU,EAAM2I,QACKmf,EAAgB,QAAE2D,cAAc,UAAW,CACzDyB,cAAe,KACfC,MAAO,KACPC,IAAK,OACLC,OAAQ,aACRC,SAAU,SACVC,YAAa,eACEzF,EAAgB,QAAE2D,cAAc,UAAW,CAC1DyB,cAAe,KACftC,KAAM,KACNiD,GAAI,KACJV,MAAO,KACPC,IAAK,OACLC,OAAQ,aACRC,SAAU,SACVC,YAAa,kBAEjB,EACA3F,EAAQ4F,aAAeA,EACvBA,EAAatB,UAAY,CACvBS,OAAQ9D,EAAoB,QAAEyD,UAAU,CAACzD,EAAoB,QAAEwD,OAAQxD,EAAoB,QAAE2D,SAC7FI,MAAO/D,EAAoB,QAAEyD,UAAU,CAACzD,EAAoB,QAAEwD,OAAQxD,EAAoB,QAAE2D,SAC5F1e,MAAO+a,EAAoB,QAAEwD,OAC7BU,MAAOlE,EAAoB,QAAEwD,OAC7B1jB,OAAQkgB,EAAoB,QAAE2D,QAEhCgB,EAAaf,aAAe,CAC1BE,OAAQ,GACRC,MAAO,GACP9e,MAAO,QACPnF,OAAQ,EACRokB,MAAO,gB,qCCpGTzE,OAAOC,eAAeX,EAAS,aAAc,CAC3C3mB,OAAO,IAET2mB,EAAQkG,UAAO,EACf,IAAIhG,EAAS4E,EAAuB,EAAQ,QACxC7D,EAAa6D,EAAuB,EAAQ,QAChD,SAASA,EAAuBlF,GAC9B,OAAOA,GAAOA,EAAIO,WAAaP,EAAM,CACnC,QAAWA,EAEf,CACA,IAAIsG,EAAO,SAAc9tB,GACvB,OAAoB8nB,EAAgB,QAAE2D,cAAc,MAAO,CACzDmB,MAAO5sB,EAAM4sB,MACbD,OAAQ3sB,EAAM2sB,OACdje,KAAM1O,EAAM8N,MACZ+e,QAAS,cACTC,MAAO,6BACP,aAAc9sB,EAAM+sB,OACNjF,EAAgB,QAAE2D,cAAc,OAAQ,CACtDlX,EAAG,KACHqY,MAAO,KACPD,OAAQ,MACRM,GAAI,KACUnF,EAAgB,QAAE2D,cAAc,UAAW,CACzDyB,cAAe,SACfC,MAAO,OACPC,IAAK,KACLC,OAAQ,wCACRC,SAAU,SACVC,YAAa,eACEzF,EAAgB,QAAE2D,cAAc,UAAW,CAC1DyB,cAAe,IACfC,MAAO,OACPC,IAAK,KACLC,OAAQ,kCACRC,SAAU,SACVC,YAAa,gBACGzF,EAAgB,QAAE2D,cAAc,OAAQ,CACxDnX,EAAG,KACHC,EAAG,KACHqY,MAAO,KACPD,OAAQ,MACRM,GAAI,KACUnF,EAAgB,QAAE2D,cAAc,UAAW,CACzDyB,cAAe,SACfC,MAAO,QACPC,IAAK,KACLC,OAAQ,wCACRC,SAAU,SACVC,YAAa,eACEzF,EAAgB,QAAE2D,cAAc,UAAW,CAC1DyB,cAAe,IACfC,MAAO,QACPC,IAAK,KACLC,OAAQ,kCACRC,SAAU,SACVC,YAAa,gBACGzF,EAAgB,QAAE2D,cAAc,OAAQ,CACxDnX,EAAG,KACHsY,MAAO,KACPD,OAAQ,MACRM,GAAI,KACUnF,EAAgB,QAAE2D,cAAc,UAAW,CACzDyB,cAAe,SACfC,MAAO,KACPC,IAAK,KACLC,OAAQ,wCACRC,SAAU,SACVC,YAAa,eACEzF,EAAgB,QAAE2D,cAAc,UAAW,CAC1DyB,cAAe,IACfC,MAAO,KACPC,IAAK,KACLC,OAAQ,kCACRC,SAAU,SACVC,YAAa,gBACGzF,EAAgB,QAAE2D,cAAc,OAAQ,CACxDnX,EAAG,KACHC,EAAG,KACHqY,MAAO,KACPD,OAAQ,MACRM,GAAI,KACUnF,EAAgB,QAAE2D,cAAc,UAAW,CACzDyB,cAAe,SACfC,MAAO,QACPC,IAAK,KACLC,OAAQ,wCACRC,SAAU,SACVC,YAAa,eACEzF,EAAgB,QAAE2D,cAAc,UAAW,CAC1DyB,cAAe,IACfC,MAAO,QACPC,IAAK,KACLC,OAAQ,kCACRC,SAAU,SACVC,YAAa,gBACGzF,EAAgB,QAAE2D,cAAc,OAAQ,CACxDnX,EAAG,MACHC,EAAG,KACHqY,MAAO,KACPD,OAAQ,MACRM,GAAI,KACUnF,EAAgB,QAAE2D,cAAc,UAAW,CACzDyB,cAAe,SACfC,MAAO,OACPC,IAAK,KACLC,OAAQ,wCACRC,SAAU,SACVC,YAAa,eACEzF,EAAgB,QAAE2D,cAAc,UAAW,CAC1DyB,cAAe,IACfC,MAAO,OACPC,IAAK,KACLC,OAAQ,kCACRC,SAAU,SACVC,YAAa,gBAEjB,EACA3F,EAAQkG,KAAOA,EACfA,EAAK5B,UAAY,CACfS,OAAQ9D,EAAoB,QAAEyD,UAAU,CAACzD,EAAoB,QAAEwD,OAAQxD,EAAoB,QAAE2D,SAC7FI,MAAO/D,EAAoB,QAAEyD,UAAU,CAACzD,EAAoB,QAAEwD,OAAQxD,EAAoB,QAAE2D,SAC5F1e,MAAO+a,EAAoB,QAAEwD,OAC7BU,MAAOlE,EAAoB,QAAEwD,QAE/ByB,EAAKrB,aAAe,CAClBE,OAAQ,GACRC,MAAO,GACP9e,MAAO,QACPif,MAAO,gB,qCClITzE,OAAOC,eAAeX,EAAS,aAAc,CAC3C3mB,OAAO,IAET2mB,EAAQmG,aAAU,EAClB,IAAIjG,EAAS4E,EAAuB,EAAQ,QACxC7D,EAAa6D,EAAuB,EAAQ,QAChD,SAASA,EAAuBlF,GAC9B,OAAOA,GAAOA,EAAIO,WAAaP,EAAM,CACnC,QAAWA,EAEf,CACA,IAAIuG,EAAU,SAAiB/tB,GAC7B,OAAoB8nB,EAAgB,QAAE2D,cAAc,MAAO,CACzDmB,MAAO5sB,EAAM4sB,MACbD,OAAQ3sB,EAAM2sB,OACdE,QAAS,cACTC,MAAO,6BACPpe,KAAM1O,EAAM8N,MACZ,aAAc9N,EAAM+sB,OACNjF,EAAgB,QAAE2D,cAAc,OAAQ,CACtDuC,EAAG,0WACWlG,EAAgB,QAAE2D,cAAc,mBAAoB,CAClEyB,cAAe,YACfnqB,KAAM,SACN6nB,KAAM,UACNiD,GAAI,aACJT,IAAK,OACLG,YAAa,gBACGzF,EAAgB,QAAE2D,cAAc,OAAQ,CACxDuC,EAAG,m+BACWlG,EAAgB,QAAE2D,cAAc,mBAAoB,CAClEyB,cAAe,YACfnqB,KAAM,SACN6nB,KAAM,UACNiD,GAAI,YACJT,IAAK,KACLG,YAAa,gBAEjB,EACA3F,EAAQmG,QAAUA,EAClBA,EAAQ7B,UAAY,CAClBS,OAAQ9D,EAAoB,QAAEyD,UAAU,CAACzD,EAAoB,QAAEwD,OAAQxD,EAAoB,QAAE2D,SAC7FI,MAAO/D,EAAoB,QAAEyD,UAAU,CAACzD,EAAoB,QAAEwD,OAAQxD,EAAoB,QAAE2D,SAC5F1e,MAAO+a,EAAoB,QAAEwD,OAC7BU,MAAOlE,EAAoB,QAAEwD,QAE/B0B,EAAQtB,aAAe,CACrBE,OAAQ,GACRC,MAAO,GACP9e,MAAO,QACPif,MAAO,gB,qCClDTzE,OAAOC,eAAeX,EAAS,aAAc,CAC3C3mB,OAAO,IAET2mB,EAAQqG,kBAAe,EACvB,IAAInG,EAAS4E,EAAuB,EAAQ,QACxC7D,EAAa6D,EAAuB,EAAQ,QAChD,SAASA,EAAuBlF,GAC9B,OAAOA,GAAOA,EAAIO,WAAaP,EAAM,CACnC,QAAWA,EAEf,CACA,IAAIyG,EAAe,SAAsBjuB,GACvC,OAAoB8nB,EAAgB,QAAE2D,cAAc,MAAO,CACzD,aAAczrB,EAAM+sB,MACpB1qB,KAAM,eACNlC,UAAW,aACG2nB,EAAgB,QAAE2D,cAAc,MAAO,CACrDtrB,UAAW,8BACG2nB,EAAgB,QAAE2D,cAAc,MAAO,CACrDtrB,UAAW,iCACI2nB,EAAgB,QAAE2D,cAAc,MAAO,MAAoB3D,EAAgB,QAAE2D,cAAc,MAAO,MAAoB3D,EAAgB,QAAE2D,cAAc,MAAO,MAAoB3D,EAAgB,QAAE2D,cAAc,MAAO,MAAoB3D,EAAgB,QAAE2D,cAAc,MAAO,MAAoB3D,EAAgB,QAAE2D,cAAc,MAAO,CAC7VtrB,UAAW,kCACK2nB,EAAgB,QAAE2D,cAAc,MAAO,CACvDtrB,UAAW,+BACG2nB,EAAgB,QAAE2D,cAAc,MAAO,CACrDtrB,UAAW,kCACI2nB,EAAgB,QAAE2D,cAAc,MAAO,MAAoB3D,EAAgB,QAAE2D,cAAc,MAAO,MAAoB3D,EAAgB,QAAE2D,cAAc,MAAO,MAAoB3D,EAAgB,QAAE2D,cAAc,MAAO,MAAoB3D,EAAgB,QAAE2D,cAAc,MAAO,MAAoB3D,EAAgB,QAAE2D,cAAc,MAAO,CAC7VtrB,UAAW,mCAEf,EACAynB,EAAQqG,aAAeA,EACvBA,EAAa/B,UAAY,CACvBa,MAAOlE,EAAoB,QAAEwD,QAE/B4B,EAAaxB,aAAe,CAC1BM,MAAO,gB,qCCnCTzE,OAAOC,eAAeX,EAAS,aAAc,CAC3C3mB,OAAO,IAET2mB,EAAQsG,UAAO,EACf,IAAIpG,EAAS4E,EAAuB,EAAQ,QACxC7D,EAAa6D,EAAuB,EAAQ,QAChD,SAASA,EAAuBlF,GAC9B,OAAOA,GAAOA,EAAIO,WAAaP,EAAM,CACnC,QAAWA,EAEf,CACA,IAAI0G,EAAO,SAAcluB,GACvB,OAAoB8nB,EAAgB,QAAE2D,cAAc,MAAO,CACzDmB,MAAO5sB,EAAM4sB,MACbD,OAAQ3sB,EAAM2sB,OACdE,QAAS,cACTne,KAAM1O,EAAM8N,MACZ,aAAc9N,EAAM+sB,OACNjF,EAAgB,QAAE2D,cAAc,SAAU,CACxDkC,GAAI,OACJC,GAAI,OACJnZ,EAAGzU,EAAM2I,QACKmf,EAAgB,QAAE2D,cAAc,UAAW,CACzDyB,cAAe,eACfC,MAAO,KACPC,IAAK,KACLC,OAAQ,SACRC,SAAU,SACVC,YAAa,gBACGzF,EAAgB,QAAE2D,cAAc,SAAU,CAC1DkC,GAAI,OACJC,GAAI,OACJnZ,EAAGzU,EAAM2I,QACKmf,EAAgB,QAAE2D,cAAc,UAAW,CACzDyB,cAAe,eACfC,MAAO,QACPC,IAAK,KACLC,OAAQ,SACRC,SAAU,SACVC,YAAa,gBACGzF,EAAgB,QAAE2D,cAAc,SAAU,CAC1DkC,GAAI,OACJC,GAAI,OACJnZ,EAAGzU,EAAM2I,QACKmf,EAAgB,QAAE2D,cAAc,UAAW,CACzDyB,cAAe,eACfC,MAAO,QACPC,IAAK,KACLC,OAAQ,SACRC,SAAU,SACVC,YAAa,gBACGzF,EAAgB,QAAE2D,cAAc,SAAU,CAC1DkC,GAAI,OACJC,GAAI,OACJnZ,EAAGzU,EAAM2I,QACKmf,EAAgB,QAAE2D,cAAc,UAAW,CACzDyB,cAAe,eACfC,MAAO,QACPC,IAAK,KACLC,OAAQ,SACRC,SAAU,SACVC,YAAa,gBACGzF,EAAgB,QAAE2D,cAAc,SAAU,CAC1DkC,GAAI,OACJC,GAAI,OACJnZ,EAAGzU,EAAM2I,QACKmf,EAAgB,QAAE2D,cAAc,UAAW,CACzDyB,cAAe,eACfC,MAAO,QACPC,IAAK,KACLC,OAAQ,SACRC,SAAU,SACVC,YAAa,gBACGzF,EAAgB,QAAE2D,cAAc,SAAU,CAC1DkC,GAAI,OACJC,GAAI,OACJnZ,EAAGzU,EAAM2I,QACKmf,EAAgB,QAAE2D,cAAc,UAAW,CACzDyB,cAAe,eACfC,MAAO,QACPC,IAAK,KACLC,OAAQ,SACRC,SAAU,SACVC,YAAa,gBACGzF,EAAgB,QAAE2D,cAAc,SAAU,CAC1DkC,GAAI,OACJC,GAAI,OACJnZ,EAAGzU,EAAM2I,QACKmf,EAAgB,QAAE2D,cAAc,UAAW,CACzDyB,cAAe,eACfC,MAAO,QACPC,IAAK,KACLC,OAAQ,SACRC,SAAU,SACVC,YAAa,gBACGzF,EAAgB,QAAE2D,cAAc,SAAU,CAC1DkC,GAAI,OACJC,GAAI,OACJnZ,EAAGzU,EAAM2I,QACKmf,EAAgB,QAAE2D,cAAc,UAAW,CACzDyB,cAAe,eACfC,MAAO,QACPC,IAAK,KACLC,OAAQ,SACRC,SAAU,SACVC,YAAa,gBACGzF,EAAgB,QAAE2D,cAAc,SAAU,CAC1DkC,GAAI,OACJC,GAAI,OACJnZ,EAAGzU,EAAM2I,QACKmf,EAAgB,QAAE2D,cAAc,UAAW,CACzDyB,cAAe,eACfC,MAAO,QACPC,IAAK,KACLC,OAAQ,SACRC,SAAU,SACVC,YAAa,gBAEjB,EACA3F,EAAQsG,KAAOA,EACfA,EAAKhC,UAAY,CACfS,OAAQ9D,EAAoB,QAAEyD,UAAU,CAACzD,EAAoB,QAAEwD,OAAQxD,EAAoB,QAAE2D,SAC7FI,MAAO/D,EAAoB,QAAEyD,UAAU,CAACzD,EAAoB,QAAEwD,OAAQxD,EAAoB,QAAE2D,SAC5F1e,MAAO+a,EAAoB,QAAEwD,OAC7BU,MAAOlE,EAAoB,QAAEwD,OAC7B1jB,OAAQkgB,EAAoB,QAAE2D,QAEhC0B,EAAKzB,aAAe,CAClBE,OAAQ,GACRC,MAAO,GACP9e,MAAO,QACPnF,OAAQ,KACRokB,MAAO,gB,qCCpITzE,OAAOC,eAAeX,EAAS,aAAc,CAC3C3mB,OAAO,IAET2mB,EAAQuG,YAAS,EACjB,IAAIrG,EAAS4E,EAAuB,EAAQ,QACxC7D,EAAa6D,EAAuB,EAAQ,QAChD,SAASA,EAAuBlF,GAC9B,OAAOA,GAAOA,EAAIO,WAAaP,EAAM,CACnC,QAAWA,EAEf,CACA,IAAI2G,EAAS,SAAgBnuB,GAC3B,OAAoB8nB,EAAgB,QAAE2D,cAAc,MAAO,CACzDmB,MAAO5sB,EAAM4sB,MACbD,OAAQ3sB,EAAM2sB,OACdE,QAAS,aACTC,MAAO,6BACPpe,KAAM1O,EAAM8N,MACZ,aAAc9N,EAAM+sB,OACNjF,EAAgB,QAAE2D,cAAc,OAAQ,CACtDuC,EAAG,yOACHd,cAAe,eACftC,KAAM,IACNiD,GAAI,MACU/F,EAAgB,QAAE2D,cAAc,UAAW,CACzDyB,cAAe,eACfC,MAAO,KACPC,IAAK,OACLC,OAAQ,YACRC,SAAU,SACVC,YAAa,gBACGzF,EAAgB,QAAE2D,cAAc,OAAQ,CACxDuC,EAAG,kPACHd,cAAe,eACftC,KAAM,IACNiD,GAAI,MACU/F,EAAgB,QAAE2D,cAAc,UAAW,CACzDyB,cAAe,eACfC,MAAO,OACPC,IAAK,OACLC,OAAQ,YACRC,SAAU,SACVC,YAAa,gBACGzF,EAAgB,QAAE2D,cAAc,OAAQ,CACxDuC,EAAG,sOAEP,EACApG,EAAQuG,OAASA,EACjBA,EAAOjC,UAAY,CACjBS,OAAQ9D,EAAoB,QAAEyD,UAAU,CAACzD,EAAoB,QAAEwD,OAAQxD,EAAoB,QAAE2D,SAC7FI,MAAO/D,EAAoB,QAAEyD,UAAU,CAACzD,EAAoB,QAAEwD,OAAQxD,EAAoB,QAAE2D,SAC5F1e,MAAO+a,EAAoB,QAAEwD,OAC7BU,MAAOlE,EAAoB,QAAEwD,QAE/B8B,EAAO1B,aAAe,CACpBE,OAAQ,GACRC,MAAO,GACP9e,MAAO,QACPif,MAAO,gB,qCC1DTzE,OAAOC,eAAeX,EAAS,aAAc,CAC3C3mB,OAAO,IAET2mB,EAAQwG,kBAAe,EACvB,IAAItG,EAAS4E,EAAuB,EAAQ,QACxC7D,EAAa6D,EAAuB,EAAQ,QAChD,SAASA,EAAuBlF,GAC9B,OAAOA,GAAOA,EAAIO,WAAaP,EAAM,CACnC,QAAWA,EAEf,CACA,IAAI4G,EAAe,SAAsBpuB,GACvC,OAAoB8nB,EAAgB,QAAE2D,cAAc,MAAO,CACzDzoB,GAAI,aACJ4pB,MAAO5sB,EAAM4sB,MACbD,OAAQ3sB,EAAM2sB,OACd,aAAc3sB,EAAM+sB,OACNjF,EAAgB,QAAE2D,cAAc,SAAU,CACxDzoB,GAAI,aACU8kB,EAAgB,QAAE2D,cAAc,iBAAkB,CAChE,GAAM,gBACN4C,aAAc,IACdC,OAAQ,SACOxG,EAAgB,QAAE2D,cAAc,gBAAiB,CAChE,GAAM,OACN8C,KAAM,SACNlB,OAAQ,+CACRiB,OAAQ,QACOxG,EAAgB,QAAE2D,cAAc,cAAe,CAC9D,GAAM,gBACN+C,IAAK,MACLC,SAAU,UACM3G,EAAgB,QAAE2D,cAAc,IAAK,CACrDnC,OAAQ,mBACMxB,EAAgB,QAAE2D,cAAc,mBAAoB,CAClEzoB,GAAI,WACJkqB,cAAe,YACfwB,cAAe,MACf3rB,KAAM,SACN6nB,KAAM,UACNiD,GAAI,YACJT,IAAK,OACLG,YAAa,eACEzF,EAAgB,QAAE2D,cAAc,SAAU,CACzDkC,GAAI,MACJC,GAAI,KACJnZ,EAAGzU,EAAM2I,OACT+F,KAAM1O,EAAM8N,OACEga,EAAgB,QAAE2D,cAAc,UAAW,CACzDzoB,GAAI,SACJ0rB,cAAe,MACfxB,cAAe,KACfE,IAAK,OACLD,MAAO,oBACPG,SAAU,SACVD,OAAQ,WACRsB,SAAU,UACVC,WAAY,6CACI9G,EAAgB,QAAE2D,cAAc,SAAU,CAC1DkC,GAAI,MACJC,GAAI,KACJnZ,EAAGzU,EAAM2I,OACT+F,KAAM1O,EAAM6uB,gBACE/G,EAAgB,QAAE2D,cAAc,UAAW,CACzDzoB,GAAI,SACJ0rB,cAAe,MACfxB,cAAe,KACfE,IAAK,OACLD,MAAO,uBACPG,SAAU,SACVD,OAAQ,WACRsB,SAAU,UACVC,WAAY,8CAEhB,EACAhH,EAAQwG,aAAeA,EACvBA,EAAalC,UAAY,CACvBU,MAAO/D,EAAoB,QAAE2D,OAC7BqC,eAAgBhG,EAAoB,QAAEwD,OACtCM,OAAQ9D,EAAoB,QAAE2D,OAC9B1e,MAAO+a,EAAoB,QAAEwD,OAC7B1jB,OAAQkgB,EAAoB,QAAE2D,OAC9BO,MAAOlE,EAAoB,QAAEwD,QAE/B+B,EAAa3B,aAAe,CAC1BG,MAAO,GACPD,OAAQ,GACR7e,MAAO,QACPnF,OAAQ,GACRkmB,eAAgB,QAChB9B,MAAO,gB,qCC1FTzE,OAAOC,eAAeX,EAAS,aAAc,CAC3C3mB,OAAO,IAET2mB,EAAQkH,UAAO,EACf,IAAIhH,EAAS4E,EAAuB,EAAQ,QACxC7D,EAAa6D,EAAuB,EAAQ,QAChD,SAASA,EAAuBlF,GAC9B,OAAOA,GAAOA,EAAIO,WAAaP,EAAM,CACnC,QAAWA,EAEf,CACA,IAAIsH,EAAO,SAAc9uB,GACvB,OAAoB8nB,EAAgB,QAAE2D,cAAc,MAAO,CACzDmB,MAAO5sB,EAAM4sB,MACbD,OAAQ3sB,EAAM2sB,OACdE,QAAS,YACTC,MAAO,6BACPve,OAAQvO,EAAM8N,MACd,aAAc9N,EAAM+sB,OACNjF,EAAgB,QAAE2D,cAAc,IAAK,CACnD/c,KAAM,OACN+e,SAAU,WACI3F,EAAgB,QAAE2D,cAAc,IAAK,CACnDuB,UAAW,iBACXU,YAAa,KACC5F,EAAgB,QAAE2D,cAAc,SAAU,CACxDsD,cAAe,KACfpB,GAAI,KACJC,GAAI,KACJnZ,EAAGzU,EAAM2I,SACMmf,EAAgB,QAAE2D,cAAc,OAAQ,CACvDuC,EAAG,+BACWlG,EAAgB,QAAE2D,cAAc,mBAAoB,CAClEyB,cAAe,YACfnqB,KAAM,SACN6nB,KAAM,UACNiD,GAAI,YACJT,IAAK,KACLG,YAAa,kBAEjB,EACA3F,EAAQkH,KAAOA,EACfA,EAAK5C,UAAY,CACfS,OAAQ9D,EAAoB,QAAEyD,UAAU,CAACzD,EAAoB,QAAEwD,OAAQxD,EAAoB,QAAE2D,SAC7FI,MAAO/D,EAAoB,QAAEyD,UAAU,CAACzD,EAAoB,QAAEwD,OAAQxD,EAAoB,QAAE2D,SAC5F1e,MAAO+a,EAAoB,QAAEwD,OAC7BU,MAAOlE,EAAoB,QAAEwD,OAC7B1jB,OAAQkgB,EAAoB,QAAE2D,QAEhCsC,EAAKrC,aAAe,CAClBE,OAAQ,GACRC,MAAO,GACP9e,MAAO,QACPif,MAAO,gBACPpkB,OAAQ,G,qCCtDV2f,OAAOC,eAAeX,EAAS,aAAc,CAC3C3mB,OAAO,IAET2mB,EAAQoH,WAAQ,EAChB,IAAIlH,EAAS4E,EAAuB,EAAQ,QACxC7D,EAAa6D,EAAuB,EAAQ,QAChD,SAASA,EAAuBlF,GAC9B,OAAOA,GAAOA,EAAIO,WAAaP,EAAM,CACnC,QAAWA,EAEf,CACA,IAAIwH,EAAQ,SAAehvB,GACzB,OAAoB8nB,EAAgB,QAAE2D,cAAc,MAAO,CACzDtrB,UAAW,qCACX2sB,MAAO,6BACPF,MAAO,MACPD,OAAQ,MACR,aAAc3sB,EAAM+sB,OACNjF,EAAgB,QAAE2D,cAAc,OAAQ,KAAM,6BAA2C3D,EAAgB,QAAE2D,cAAc,OAAQ,CAC/ItrB,UAAW,wCACXyU,MAAO,CACLrG,OAAQvO,EAAM6uB,gBAEhBb,EAAG,4KACHtf,KAAM,OACNH,OAAQ,UACRmf,YAAa,IACbuB,cAAe,QACfC,eAAgB,QAChBC,gBAAiB,2BACjBC,iBAAkB,OACHtH,EAAgB,QAAE2D,cAAc,OAAQ,CACvDtrB,UAAW,oBACXyU,MAAO,CACLlG,KAAM1O,EAAM8N,OAEdkgB,EAAG,y1CACHtf,KAAM,YAEV,EACAkZ,EAAQoH,MAAQA,EAChBA,EAAM9C,UAAY,CAChB2C,eAAgBhG,EAAoB,QAAEwD,OACtCve,MAAO+a,EAAoB,QAAEwD,OAC7BU,MAAOlE,EAAoB,QAAEwD,QAE/B2C,EAAMvC,aAAe,CACnBoC,eAAgB,OAChB/gB,MAAO,UACPif,MAAO,gB,qCCjDTzE,OAAOC,eAAeX,EAAS,aAAc,CAC3C3mB,OAAO,IAET2mB,EAAQyH,UAAO,EACf,IAAIvH,EAAS4E,EAAuB,EAAQ,QACxC7D,EAAa6D,EAAuB,EAAQ,QAChD,SAASA,EAAuBlF,GAC9B,OAAOA,GAAOA,EAAIO,WAAaP,EAAM,CACnC,QAAWA,EAEf,CACA,IAAI6H,EAAO,SAAcrvB,GACvB,OAAoB8nB,EAAgB,QAAE2D,cAAc,MAAO,CACzDmB,MAAO5sB,EAAM4sB,MACbD,OAAQ3sB,EAAM2sB,OACdE,QAAS,YACTC,MAAO,6BACPve,OAAQvO,EAAM8N,MACd,aAAc9N,EAAM+sB,OACNjF,EAAgB,QAAE2D,cAAc,IAAK,CACnD/c,KAAM,OACN+e,SAAU,UACVC,YAAa,KACC5F,EAAgB,QAAE2D,cAAc,SAAU,CACxDkC,GAAI,KACJC,GAAI,KACJnZ,EAAGzU,EAAM2I,QACKmf,EAAgB,QAAE2D,cAAc,UAAW,CACzDyB,cAAe,IACfC,MAAO,KACPC,IAAK,OACLC,OAAQ,QACRC,SAAU,SACVqB,SAAU,OACVC,WAAY,uBACZrB,YAAa,eACEzF,EAAgB,QAAE2D,cAAc,UAAW,CAC1DyB,cAAe,gBACfC,MAAO,KACPC,IAAK,OACLC,OAAQ,OACRC,SAAU,SACVqB,SAAU,OACVC,WAAY,sBACZrB,YAAa,gBACGzF,EAAgB,QAAE2D,cAAc,SAAU,CAC1DkC,GAAI,KACJC,GAAI,KACJnZ,EAAGzU,EAAM2I,QACKmf,EAAgB,QAAE2D,cAAc,UAAW,CACzDyB,cAAe,IACfC,MAAO,QACPC,IAAK,OACLC,OAAQ,QACRC,SAAU,SACVqB,SAAU,OACVC,WAAY,uBACZrB,YAAa,eACEzF,EAAgB,QAAE2D,cAAc,UAAW,CAC1DyB,cAAe,gBACfC,MAAO,QACPC,IAAK,OACLC,OAAQ,OACRC,SAAU,SACVqB,SAAU,OACVC,WAAY,sBACZrB,YAAa,iBAEjB,EACA3F,EAAQyH,KAAOA,EACfA,EAAKnD,UAAY,CACfS,OAAQ9D,EAAoB,QAAEyD,UAAU,CAACzD,EAAoB,QAAEwD,OAAQxD,EAAoB,QAAE2D,SAC7FI,MAAO/D,EAAoB,QAAEyD,UAAU,CAACzD,EAAoB,QAAEwD,OAAQxD,EAAoB,QAAE2D,SAC5F1e,MAAO+a,EAAoB,QAAEwD,OAC7BU,MAAOlE,EAAoB,QAAEwD,OAC7B1jB,OAAQkgB,EAAoB,QAAE2D,QAEhC6C,EAAK5C,aAAe,CAClBE,OAAQ,GACRC,MAAO,GACP9e,MAAO,QACPif,MAAO,gBACPpkB,OAAQ,E,qCClFV2f,OAAOC,eAAeX,EAAS,aAAc,CAC3C3mB,OAAO,IAET2mB,EAAQ0H,kBAAe,EACvB,IAAIxH,EAAS4E,EAAuB,EAAQ,QACxC7D,EAAa6D,EAAuB,EAAQ,QAChD,SAASA,EAAuBlF,GAC9B,OAAOA,GAAOA,EAAIO,WAAaP,EAAM,CACnC,QAAWA,EAEf,CACA,IAAI8H,EAAe,SAAsBtvB,GACvC,OAAoB8nB,EAAgB,QAAE2D,cAAc,MAAO,CACzDjgB,QAAS,MACTohB,MAAO5sB,EAAM4sB,MACbD,OAAQ3sB,EAAM2sB,OACdG,MAAO,6BACPxY,EAAG,MACHC,EAAG,MACH,aAAcvU,EAAM+sB,OACNjF,EAAgB,QAAE2D,cAAc,SAAU,CACxD/c,KAAM,OACNH,OAAQvO,EAAM8N,MACd4f,YAAa,IACbC,GAAI,KACJC,GAAI,KACJnZ,EAAGzU,EAAM2I,OAAS,GAClBiM,MAAO,CACLnG,QAAS,MAEIqZ,EAAgB,QAAE2D,cAAc,SAAU,CACzD/c,KAAM1O,EAAM8N,MACZS,OAAQvO,EAAM8N,MACd4f,YAAa,IACbC,GAAI,IACJC,GAAI,KACJnZ,EAAGzU,EAAM2I,QACKmf,EAAgB,QAAE2D,cAAc,mBAAoB,CAClEyB,cAAe,YACfE,IAAK,KACLrqB,KAAM,SACN6nB,KAAM,UACNiD,GAAI,YACJN,YAAa,gBAEjB,EACA3F,EAAQ0H,aAAeA,EACvBA,EAAapD,UAAY,CACvBS,OAAQ9D,EAAoB,QAAEyD,UAAU,CAACzD,EAAoB,QAAEwD,OAAQxD,EAAoB,QAAE2D,SAC7FI,MAAO/D,EAAoB,QAAEyD,UAAU,CAACzD,EAAoB,QAAEwD,OAAQxD,EAAoB,QAAE2D,SAC5F1e,MAAO+a,EAAoB,QAAEwD,OAC7BU,MAAOlE,EAAoB,QAAEwD,OAC7B1jB,OAAQkgB,EAAoB,QAAE2D,QAEhC8C,EAAa7C,aAAe,CAC1BE,OAAQ,GACRC,MAAO,GACP9e,MAAO,QACPif,MAAO,gBACPpkB,OAAQ,E,qCC3DV2f,OAAOC,eAAeX,EAAS,aAAc,CAC3C3mB,OAAO,IAET2mB,EAAQ2H,WAAQ,EAChB,IAAIzH,EAAS4E,EAAuB,EAAQ,QACxC7D,EAAa6D,EAAuB,EAAQ,QAChD,SAASA,EAAuBlF,GAC9B,OAAOA,GAAOA,EAAIO,WAAaP,EAAM,CACnC,QAAWA,EAEf,CACA,IAAI+H,EAAQ,SAAevvB,GACzB,OAAoB8nB,EAAgB,QAAE2D,cAAc,MAAO,CACzDmB,MAAO5sB,EAAM4sB,MACbD,OAAQ3sB,EAAM2sB,OACdE,QAAS,YACTC,MAAO,6BACPve,OAAQvO,EAAM8N,MACd,aAAc9N,EAAM+sB,OACNjF,EAAgB,QAAE2D,cAAc,IAAK,CACnD/c,KAAM,OACN+e,SAAU,UACVT,UAAW,iBACXU,YAAa,KACC5F,EAAgB,QAAE2D,cAAc,SAAU,CACxDkC,GAAI,KACJC,GAAI,KACJnZ,EAAGzU,EAAM2I,OACTomB,cAAe,KACDjH,EAAgB,QAAE2D,cAAc,UAAW,CACzDyB,cAAe,IACfC,MAAO,OACPC,IAAK,KACLC,OAAQ,OACRC,SAAU,SACVC,YAAa,eACEzF,EAAgB,QAAE2D,cAAc,UAAW,CAC1DyB,cAAe,iBACfC,MAAO,OACPC,IAAK,KACLC,OAAQ,MACRC,SAAU,SACVC,YAAa,eACEzF,EAAgB,QAAE2D,cAAc,UAAW,CAC1DyB,cAAe,eACfC,MAAO,OACPC,IAAK,KACLC,OAAQ,MACRC,SAAU,SACVC,YAAa,gBACGzF,EAAgB,QAAE2D,cAAc,SAAU,CAC1DkC,GAAI,KACJC,GAAI,KACJnZ,EAAGzU,EAAM2I,OACTomB,cAAe,KACDjH,EAAgB,QAAE2D,cAAc,UAAW,CACzDyB,cAAe,IACfC,MAAO,KACPC,IAAK,KACLC,OAAQ,OACRC,SAAU,SACVC,YAAa,eACEzF,EAAgB,QAAE2D,cAAc,UAAW,CAC1DyB,cAAe,gBACfC,MAAO,KACPC,IAAK,KACLC,OAAQ,MACRC,SAAU,SACVC,YAAa,eACEzF,EAAgB,QAAE2D,cAAc,UAAW,CAC1DyB,cAAe,cACfC,MAAO,KACPC,IAAK,KACLC,OAAQ,MACRC,SAAU,SACVC,YAAa,gBACGzF,EAAgB,QAAE2D,cAAc,SAAU,CAC1DkC,GAAI,KACJC,GAAI,KACJnZ,EAAGzU,EAAM2I,OAAS,GACJmf,EAAgB,QAAE2D,cAAc,UAAW,CACzDyB,cAAe,IACfC,MAAO,KACPC,IAAK,OACLC,OAAQ,gBACRC,SAAU,SACVC,YAAa,iBAEjB,EACA3F,EAAQ2H,MAAQA,EAChBA,EAAMrD,UAAY,CAChBS,OAAQ9D,EAAoB,QAAEyD,UAAU,CAACzD,EAAoB,QAAEwD,OAAQxD,EAAoB,QAAE2D,SAC7FI,MAAO/D,EAAoB,QAAEyD,UAAU,CAACzD,EAAoB,QAAEwD,OAAQxD,EAAoB,QAAE2D,SAC5F1e,MAAO+a,EAAoB,QAAEwD,OAC7BU,MAAOlE,EAAoB,QAAEwD,OAC7B1jB,OAAQkgB,EAAoB,QAAE2D,QAEhC+C,EAAM9C,aAAe,CACnBE,OAAQ,GACRC,MAAO,GACP9e,MAAO,QACPnF,OAAQ,EACRokB,MAAO,gB,qCCtGTzE,OAAOC,eAAeX,EAAS,aAAc,CAC3C3mB,OAAO,IAET2mB,EAAQ4H,cAAW,EACnB,IAAI1H,EAAS4E,EAAuB,EAAQ,QACxC7D,EAAa6D,EAAuB,EAAQ,QAChD,SAASA,EAAuBlF,GAC9B,OAAOA,GAAOA,EAAIO,WAAaP,EAAM,CACnC,QAAWA,EAEf,CACA,IAAIgI,EAAW,SAAkBxvB,GAC/B,OAAoB8nB,EAAgB,QAAE2D,cAAc,MAAO,CACzDmB,MAAO5sB,EAAM4sB,MACbD,OAAQ3sB,EAAM2sB,OACdE,QAAS,YACTC,MAAO,6BACP,aAAc9sB,EAAM+sB,OACNjF,EAAgB,QAAE2D,cAAc,OAAQ,KAAmB3D,EAAgB,QAAE2D,cAAc,iBAAkB,CAC3HgE,GAAI,SACJC,GAAI,KACJC,GAAI,UACJC,GAAI,UACJ5sB,GAAI,KACU8kB,EAAgB,QAAE2D,cAAc,OAAQ,CACtDoE,UAAW7vB,EAAM8N,MACjBgiB,YAAa,IACbC,OAAQ,OACOjI,EAAgB,QAAE2D,cAAc,OAAQ,CACvDoE,UAAW7vB,EAAM8N,MACjBgiB,YAAa,OACbC,OAAQ,YACOjI,EAAgB,QAAE2D,cAAc,OAAQ,CACvDoE,UAAW7vB,EAAM8N,MACjBiiB,OAAQ,WACSjI,EAAgB,QAAE2D,cAAc,IAAK,CACtD/c,KAAM,OACN+e,SAAU,WACI3F,EAAgB,QAAE2D,cAAc,IAAK,CACnDuB,UAAW,kBACGlF,EAAgB,QAAE2D,cAAc,OAAQ,CACtDuC,EAAG,8BACHhrB,GAAI,SACJuL,OAAQvO,EAAM8N,MACd4f,YAAa,KACC5F,EAAgB,QAAE2D,cAAc,mBAAoB,CAClEyB,cAAe,YACfnqB,KAAM,SACN6nB,KAAM,UACNiD,GAAI,YACJT,IAAK,OACLG,YAAa,gBACGzF,EAAgB,QAAE2D,cAAc,SAAU,CAC1D/c,KAAM,OACNif,GAAI,KACJC,GAAI,KACJnZ,EAAGzU,EAAM2I,QACKmf,EAAgB,QAAE2D,cAAc,mBAAoB,CAClEyB,cAAe,YACfnqB,KAAM,SACN6nB,KAAM,UACNiD,GAAI,YACJT,IAAK,OACLG,YAAa,kBAEjB,EACA3F,EAAQ4H,SAAWA,EACnBA,EAAStD,UAAY,CACnBS,OAAQ9D,EAAoB,QAAEyD,UAAU,CAACzD,EAAoB,QAAEwD,OAAQxD,EAAoB,QAAE2D,SAC7FI,MAAO/D,EAAoB,QAAEyD,UAAU,CAACzD,EAAoB,QAAEwD,OAAQxD,EAAoB,QAAE2D,SAC5F1e,MAAO+a,EAAoB,QAAEwD,OAC7BU,MAAOlE,EAAoB,QAAEwD,OAC7B1jB,OAAQkgB,EAAoB,QAAE2D,QAEhCgD,EAAS/C,aAAe,CACtBE,OAAQ,GACRC,MAAO,GACP9e,MAAO,QACPnF,OAAQ,EACRokB,MAAO,gB,qCC/ETzE,OAAOC,eAAeX,EAAS,aAAc,CAC3C3mB,OAAO,IAET2mB,EAAQoI,eAAY,EACpB,IAAIlI,EAAS4E,EAAuB,EAAQ,QACxC7D,EAAa6D,EAAuB,EAAQ,QAChD,SAASA,EAAuBlF,GAC9B,OAAOA,GAAOA,EAAIO,WAAaP,EAAM,CACnC,QAAWA,EAEf,CACA,IAAIwI,EAAY,SAAmBhwB,GACjC,OAAoB8nB,EAAgB,QAAE2D,cAAc,MAAO,CACzDmB,MAAO5sB,EAAM4sB,MACbD,OAAQ3sB,EAAM2sB,OACdE,QAAS,aACTC,MAAO,6BACPpe,KAAM1O,EAAM8N,MACZ,aAAc9N,EAAM+sB,OACNjF,EAAgB,QAAE2D,cAAc,SAAU,CACxDkC,GAAI,KACJC,GAAI,KACJnZ,EAAGzU,EAAM2I,OAAS,GACJmf,EAAgB,QAAE2D,cAAc,UAAW,CACzDyB,cAAe,IACftC,KAAM,KACNiD,GAAI,KACJV,MAAO,KACPC,IAAK,OACLC,OAAQ,UACRC,SAAU,SACVC,YAAa,eACEzF,EAAgB,QAAE2D,cAAc,UAAW,CAC1DyB,cAAe,cACftC,KAAM,IACNiD,GAAI,IACJV,MAAO,KACPC,IAAK,OACLC,OAAQ,SACRC,SAAU,SACVC,YAAa,gBACGzF,EAAgB,QAAE2D,cAAc,SAAU,CAC1DkC,GAAI,KACJC,GAAI,KACJnZ,EAAGzU,EAAM2I,OACTukB,cAAe,cACftC,KAAM,IACNiD,GAAI,OACU/F,EAAgB,QAAE2D,cAAc,UAAW,CACzDyB,cAAe,IACftC,KAAM,IACNiD,GAAI,IACJV,MAAO,KACPC,IAAK,OACLC,OAAQ,SACRC,SAAU,SACVC,YAAa,eACEzF,EAAgB,QAAE2D,cAAc,UAAW,CAC1DyB,cAAe,cACftC,KAAM,MACNiD,GAAI,MACJV,MAAO,KACPC,IAAK,OACLC,OAAQ,UACRC,SAAU,SACVC,YAAa,gBACGzF,EAAgB,QAAE2D,cAAc,SAAU,CAC1DkC,GAAI,MACJC,GAAI,KACJnZ,EAAGzU,EAAM2I,OAAS,GACJmf,EAAgB,QAAE2D,cAAc,UAAW,CACzDyB,cAAe,IACftC,KAAM,KACNiD,GAAI,KACJV,MAAO,KACPC,IAAK,OACLC,OAAQ,UACRC,SAAU,SACVC,YAAa,eACEzF,EAAgB,QAAE2D,cAAc,UAAW,CAC1DyB,cAAe,cACftC,KAAM,IACNiD,GAAI,IACJV,MAAO,KACPC,IAAK,OACLC,OAAQ,SACRC,SAAU,SACVC,YAAa,gBAEjB,EACA3F,EAAQoI,UAAYA,EACpBA,EAAU9D,UAAY,CACpBS,OAAQ9D,EAAoB,QAAEyD,UAAU,CAACzD,EAAoB,QAAEwD,OAAQxD,EAAoB,QAAE2D,SAC7FI,MAAO/D,EAAoB,QAAEyD,UAAU,CAACzD,EAAoB,QAAEwD,OAAQxD,EAAoB,QAAE2D,SAC5F1e,MAAO+a,EAAoB,QAAEwD,OAC7BU,MAAOlE,EAAoB,QAAEwD,OAC7B1jB,OAAQkgB,EAAoB,QAAE2D,QAEhCwD,EAAUvD,aAAe,CACvBE,OAAQ,GACRC,MAAO,GACP9e,MAAO,QACPif,MAAO,gBACPpkB,OAAQ,E,qCCvGV2f,OAAOC,eAAeX,EAAS,aAAc,CAC3C3mB,OAAO,IAET2mB,EAAQqI,cAAW,EACnB,IAAInI,EAAS4E,EAAuB,EAAQ,QACxC7D,EAAa6D,EAAuB,EAAQ,QAChD,SAASA,EAAuBlF,GAC9B,OAAOA,GAAOA,EAAIO,WAAaP,EAAM,CACnC,QAAWA,EAEf,CACA,IAAIyI,EAAW,SAAkBjwB,GAC/B,OAAoB8nB,EAAgB,QAAE2D,cAAc,MAAO,CACzDtrB,UAAW,4BACG2nB,EAAgB,QAAE2D,cAAc,MAAO,CACrDzoB,GAAI,WACJ4pB,MAAO5sB,EAAM4sB,MACbD,OAAQ3sB,EAAM2sB,OACdE,QAAS,cACT,aAAc7sB,EAAM+sB,OACNjF,EAAgB,QAAE2D,cAAc,UAAW,CACzD/c,KAAM,cACNH,OAAQvO,EAAM8N,MACd4f,YAAa,IACb7mB,OAAQ,qBAEZ,EACA+gB,EAAQqI,SAAWA,EACnBA,EAAS/D,UAAY,CACnBS,OAAQ9D,EAAoB,QAAEyD,UAAU,CAACzD,EAAoB,QAAEwD,OAAQxD,EAAoB,QAAE2D,SAC7FI,MAAO/D,EAAoB,QAAEyD,UAAU,CAACzD,EAAoB,QAAEwD,OAAQxD,EAAoB,QAAE2D,SAC5F1e,MAAO+a,EAAoB,QAAEwD,OAC7BU,MAAOlE,EAAoB,QAAEwD,QAE/B4D,EAASxD,aAAe,CACtBE,OAAQ,GACRC,MAAO,GACP9e,MAAO,QACPif,MAAO,gB,qCCtCTzE,OAAOC,eAAeX,EAAS,aAAc,CAC3C3mB,OAAO,IAET2mB,EAAQsI,WAAQ,EAChB,IAAIpI,EAAS4E,EAAuB,EAAQ,QACxC7D,EAAa6D,EAAuB,EAAQ,QAChD,SAASA,EAAuBlF,GAC9B,OAAOA,GAAOA,EAAIO,WAAaP,EAAM,CACnC,QAAWA,EAEf,CACA,IAAI0I,EAAQ,SAAelwB,GACzB,OAAoB8nB,EAAgB,QAAE2D,cAAc,MAAO,CACzDmB,MAAO5sB,EAAM4sB,MACbD,OAAQ3sB,EAAM2sB,OACdnhB,QAAS,MACTxI,GAAI,KACJ8pB,MAAO,6BACPxY,EAAG,MACHC,EAAG,MACHsY,QAAS,cACTsD,iBAAkB,kBAClBC,SAAU,WACV,aAAcpwB,EAAM+sB,OACNjF,EAAgB,QAAE2D,cAAc,SAAU,CACxD/c,KAAM,OACNH,OAAQvO,EAAM8N,MACd4f,YAAa,IACb2C,iBAAkB,KAClB1C,GAAI,KACJC,GAAI,KACJnZ,EAAGzU,EAAM2I,SACMmf,EAAgB,QAAE2D,cAAc,OAAQ,CACvD/c,KAAM,OACNugB,cAAe,QACf1gB,OAAQvO,EAAM8N,MACd4f,YAAa,IACb2C,iBAAkB,KAClBZ,GAAI,KACJC,GAAI,KACJC,GAAI,KACJC,GAAI,QACU9H,EAAgB,QAAE2D,cAAc,mBAAoB,CAClEyB,cAAe,YACfE,IAAK,KACLrqB,KAAM,SACN6nB,KAAM,UACNiD,GAAI,YACJN,YAAa,gBACGzF,EAAgB,QAAE2D,cAAc,OAAQ,CACxD/c,KAAM,OACNugB,cAAe,QACf1gB,OAAQvO,EAAM8N,MACd4f,YAAa,IACb2C,iBAAkB,KAClBZ,GAAI,KACJC,GAAI,KACJC,GAAI,OACJC,GAAI,MACU9H,EAAgB,QAAE2D,cAAc,mBAAoB,CAClEyB,cAAe,YACfE,IAAK,MACLrqB,KAAM,SACN6nB,KAAM,UACNiD,GAAI,YACJN,YAAa,gBAEjB,EACA3F,EAAQsI,MAAQA,EAChBA,EAAMhE,UAAY,CAChBS,OAAQ9D,EAAoB,QAAEyD,UAAU,CAACzD,EAAoB,QAAEwD,OAAQxD,EAAoB,QAAE2D,SAC7FI,MAAO/D,EAAoB,QAAEyD,UAAU,CAACzD,EAAoB,QAAEwD,OAAQxD,EAAoB,QAAE2D,SAC5F1e,MAAO+a,EAAoB,QAAEwD,OAC7BU,MAAOlE,EAAoB,QAAEwD,OAC7B1jB,OAAQkgB,EAAoB,QAAE2D,QAEhC0D,EAAMzD,aAAe,CACnBE,OAAQ,GACRC,MAAO,GACP9e,MAAO,QACPif,MAAO,gBACPpkB,OAAQ,G,oCCjFV2f,OAAOC,eAAeX,EAAS,aAAc,CAC3C3mB,OAAO,IAET2mB,EAAQ+D,aAAU,EAClB,IAAI2E,EAAW,EAAQ,OACnBC,EAAS,EAAQ,OACjBC,EAAS,EAAQ,OACjBC,EAAgB,EAAQ,OACxBC,EAAQ,EAAQ,OAChBC,EAAgB,EAAQ,OACxBC,EAAQ,EAAQ,OAChBC,EAAU,EAAQ,OAClBC,EAAgB,EAAQ,OACxBC,EAAQ,EAAQ,OAChBC,EAAS,EAAQ,OACjBC,EAAQ,EAAQ,OAChBC,EAAgB,EAAQ,OACxBC,EAAS,EAAQ,OACjBC,EAAY,EAAQ,OACpBC,EAAa,EAAQ,OACrBC,EAAY,EAAQ,OACpB3F,EAAU,CACZoC,QAASuC,EAASvC,QAClBnC,MAAO4E,EAAO5E,MACd4B,aAAciD,EAAcjD,aAC5BM,KAAM4C,EAAM5C,KACZG,aAAc0C,EAAc1C,aAC5BC,KAAM0C,EAAM1C,KACZC,OAAQ0C,EAAQ1C,OAChBC,aAAc0C,EAAc1C,aAC5BU,KAAMiC,EAAMjC,KACZE,MAAOgC,EAAOhC,MACdK,KAAM4B,EAAM5B,KACZC,aAAc4B,EAAc5B,aAC5BC,MAAO4B,EAAO5B,MACdC,SAAU4B,EAAU5B,SACpBQ,UAAWqB,EAAWrB,UACtBC,SAAUqB,EAAUrB,SACpBC,MAAOK,EAAOL,OAEhBtI,EAAQ+D,QAAUA,C,uGCkBlB,IAtDiB4F,IAA2C,IAA1C,KAAEC,GAAkCD,EACpD,MAAME,EAAkC,CACtCC,MAAO,CACLC,oBAAqB,KACrBC,gBAAiB,KACjBC,YAAY,EACZC,WAAW,GAEbhqB,MAAO,CACLC,KAAM,MAERU,QAAS,CACPspB,YAAa,iDAEfC,cAAe,CACbvuB,MAAO,CACLwuB,YAAa,MAGjBC,QAAS,CACPvb,SAAS,GAEXwb,YAAa,CACXC,IAAK,CACHC,kBAAkB,EAClBzb,OAAQ,UACR0b,WAAY,CACV3b,SAAS,GAEX4b,cAAc,IAGlBC,OAAQ,CACN,CACE5xB,KAAM,iBACNkxB,WAAW,EACXW,cAAc,EACd1vB,KAAM,MACNyuB,KAAMA,EAAKkB,KAAKC,IACP,CACL/xB,KAAM+xB,EAAQ/xB,KACd2T,EAAGoe,EAAQpe,SAMrB,OACEqe,EAAAA,cAACC,EAAAA,EAAe,KACdD,EAAAA,cAACE,IAAe,CAACC,WAAYC,IAAYnwB,QAAS4uB,IAClC,C,kLCpDf,MAAMwB,EAAmBC,EAAAA,QAAOC,IAAGC,WAAA,CAAAC,YAAA,sCAAAC,YAAA,gBAAVJ,CAAU,+RAoB7BK,EAAuBL,EAAAA,QAAOC,IAAGC,WAAA,CAAAC,YAAA,0CAAAC,YAAA,gBAAVJ,CAAU,+RAoBjCM,EAAiBN,EAAAA,QAAOC,IAAGC,WAAA,CAAAC,YAAA,oCAAAC,YAAA,gBAAVJ,CAAU,wFAO3BO,GAAeP,EAAAA,EAAAA,SAAOQ,EAAAA,IAAYN,WAAA,CAAAC,YAAA,kCAAAC,YAAA,gBAAnBJ,CAAmB,kFACpCS,EAAAA,EAAOC,M,+FCpDH,SAASC,EAAOC,EAAKtuB,EAAQuuB,EAAUC,EAAMC,EAAOC,GACjE,GAAID,EAAQD,GAAQD,EAAU,OAC9B,MAAM9S,EAAI+S,EAAOC,GAAS,EAC1B,EAAOH,EAAKtuB,EAAQyb,EAAG+S,EAAMC,EAAOC,EAAQ,GAC5CL,EAAOC,EAAKtuB,EAAQuuB,EAAUC,EAAM/S,EAAI,EAAGiT,EAAQ,GACnDL,EAAOC,EAAKtuB,EAAQuuB,EAAU9S,EAAI,EAAGgT,EAAOC,EAAQ,EACtD,CACA,SAAS,EAAOJ,EAAKtuB,EAAQd,EAAGsvB,EAAMC,EAAOE,GAC3C,KAAOF,EAAQD,GAAM,CACnB,GAAIC,EAAQD,EAAO,IAAK,CACtB,MAAM5gB,EAAI6gB,EAAQD,EAAO,EACnB/S,EAAIvc,EAAIsvB,EAAO,EACfI,EAAI7gB,KAAK8gB,IAAIjhB,GACboB,EAAI,GAAMjB,KAAK+gB,IAAI,EAAIF,EAAI,GAC3BG,EAAK,GAAMhhB,KAAKa,KAAKggB,EAAI5f,GAAKpB,EAAIoB,GAAKpB,IAAM6N,EAAI7N,EAAI,EAAI,GAAK,EAAI,GAGxE,EAAO0gB,EAAKtuB,EAAQd,EAFJ6O,KAAKihB,IAAIR,EAAMzgB,KAAKY,MAAMzP,EAAIuc,EAAIzM,EAAIpB,EAAImhB,IACzChhB,KAAKkhB,IAAIR,EAAO1gB,KAAKY,MAAMzP,GAAK0O,EAAI6N,GAAKzM,EAAIpB,EAAImhB,IACxBJ,EAC5C,CACA,MAAM/sB,EAAI5B,EAAO,EAAId,EAAIyvB,GACzB,IAAI7vB,EAAI0vB,EACJlvB,EAAImvB,EAGR,IAFAS,EAASZ,EAAKtuB,EAAQwuB,EAAMtvB,GACxBc,EAAO,EAAIyuB,EAAQE,GAAO/sB,GAAGstB,EAASZ,EAAKtuB,EAAQwuB,EAAMC,GACtD3vB,EAAIQ,GAAG,CAIZ,IAHA4vB,EAASZ,EAAKtuB,EAAQlB,EAAGQ,GACzBR,IACAQ,IACOU,EAAO,EAAIlB,EAAI6vB,GAAO/sB,GAAG9C,IAChC,KAAOkB,EAAO,EAAIV,EAAIqvB,GAAO/sB,GAAGtC,GAClC,CACIU,EAAO,EAAIwuB,EAAOG,KAAS/sB,EAAGstB,EAASZ,EAAKtuB,EAAQwuB,EAAMlvB,IAC5DA,IACA4vB,EAASZ,EAAKtuB,EAAQV,EAAGmvB,IAEvBnvB,GAAKJ,IAAGsvB,EAAOlvB,EAAI,GACnBJ,GAAKI,IAAGmvB,EAAQnvB,EAAI,EAC1B,CACF,CACA,SAAS4vB,EAASZ,EAAKtuB,EAAQlB,EAAGQ,GAChC6vB,EAAKb,EAAKxvB,EAAGQ,GACb6vB,EAAKnvB,EAAQ,EAAIlB,EAAG,EAAIQ,GACxB6vB,EAAKnvB,EAAQ,EAAIlB,EAAI,EAAG,EAAIQ,EAAI,EAClC,CACA,SAAS6vB,EAAK9K,EAAKvlB,EAAGQ,GACpB,MAAM8vB,EAAM/K,EAAIvlB,GAChBulB,EAAIvlB,GAAKulB,EAAI/kB,GACb+kB,EAAI/kB,GAAK8vB,CACX,CChBA,SAASC,EAAOC,EAAIC,EAAIC,EAAIC,GAC1B,MAAMC,EAAKJ,EAAKE,EACVG,EAAKJ,EAAKE,EAChB,OAAOC,EAAKA,EAAKC,EAAKA,CACxB,CCjCA,MAAMC,EAAcC,GAAKA,EAAE,GACrBC,EAAcD,GAAKA,EAAE,GACZ,MAAME,EACnB,WAAA5N,CAAY9gB,GACV,IAAI2uB,EAAOpa,UAAUnX,OAAS,QAAsB2C,IAAjBwU,UAAU,GAAmBA,UAAU,GAAKga,EAC3EK,EAAOra,UAAUnX,OAAS,QAAsB2C,IAAjBwU,UAAU,GAAmBA,UAAU,GAAKka,EAC3EvB,EAAW3Y,UAAUnX,OAAS,QAAsB2C,IAAjBwU,UAAU,GAAmBA,UAAU,GAAK,GAC/Esa,EAAYta,UAAUnX,OAAS,QAAsB2C,IAAjBwU,UAAU,GAAmBA,UAAU,GAAKua,aACpF9qB,KAAKkpB,SAAWA,EAChBlpB,KAAKhE,OAASA,EACd,MAAM+uB,EAAiB/uB,EAAO5C,OAAS,MAAQ4xB,YAAcC,YACvDhC,EAAMjpB,KAAKipB,IAAM,IAAI8B,EAAe/uB,EAAO5C,QAC3CuB,EAASqF,KAAKrF,OAAS,IAAIkwB,EAA0B,EAAhB7uB,EAAO5C,QAClD,IAAK,IAAIK,EAAI,EAAGA,EAAIuC,EAAO5C,OAAQK,IACjCwvB,EAAIxvB,GAAKA,EACTkB,EAAO,EAAIlB,GAAKkxB,EAAK3uB,EAAOvC,IAC5BkB,EAAO,EAAIlB,EAAI,GAAKmxB,EAAK5uB,EAAOvC,IAElC,EAAKwvB,EAAKtuB,EAAQuuB,EAAU,EAAGD,EAAI7vB,OAAS,EAAG,EACjD,CACA,KAAA8xB,CAAMC,EAAMC,EAAMC,EAAMC,GACtB,OCxBW,SAAerC,EAAKtuB,EAAQwwB,EAAMC,EAAMC,EAAMC,EAAMpC,GACjE,MAAMqC,EAAQ,CAAC,EAAGtC,EAAI7vB,OAAS,EAAG,GAC5BqqB,EAAS,GACf,IAAIha,EAAGC,EACP,KAAO6hB,EAAMnyB,QAAQ,CACnB,MAAMoyB,EAAOD,EAAMvlB,MACbojB,EAAQmC,EAAMvlB,MACdmjB,EAAOoC,EAAMvlB,MACnB,GAAIojB,EAAQD,GAAQD,EAAU,CAC5B,IAAK,IAAIzvB,EAAI0vB,EAAM1vB,GAAK2vB,EAAO3vB,IAC7BgQ,EAAI9O,EAAO,EAAIlB,GACfiQ,EAAI/O,EAAO,EAAIlB,EAAI,GACfgQ,GAAK0hB,GAAQ1hB,GAAK4hB,GAAQ3hB,GAAK0hB,GAAQ1hB,GAAK4hB,GAAM7H,EAAOrnB,KAAK6sB,EAAIxvB,IAExE,QACF,CACA,MAAM2c,EAAI1N,KAAKY,OAAO6f,EAAOC,GAAS,GACtC3f,EAAI9O,EAAO,EAAIyb,GACf1M,EAAI/O,EAAO,EAAIyb,EAAI,GACf3M,GAAK0hB,GAAQ1hB,GAAK4hB,GAAQ3hB,GAAK0hB,GAAQ1hB,GAAK4hB,GAAM7H,EAAOrnB,KAAK6sB,EAAI7S,IACtE,MAAMqV,GAAYD,EAAO,GAAK,GACjB,IAATA,EAAaL,GAAQ1hB,EAAI2hB,GAAQ1hB,KACnC6hB,EAAMnvB,KAAK+sB,GACXoC,EAAMnvB,KAAKga,EAAI,GACfmV,EAAMnvB,KAAKqvB,KAEA,IAATD,EAAaH,GAAQ5hB,EAAI6hB,GAAQ5hB,KACnC6hB,EAAMnvB,KAAKga,EAAI,GACfmV,EAAMnvB,KAAKgtB,GACXmC,EAAMnvB,KAAKqvB,GAEf,CACA,OAAOhI,CACT,CDTWyH,CAAMlrB,KAAKipB,IAAKjpB,KAAKrF,OAAQwwB,EAAMC,EAAMC,EAAMC,EAAMtrB,KAAKkpB,SACnE,CACA,MAAAwC,CAAOjiB,EAAGC,EAAGE,GACX,OD3BW,SAAgBqf,EAAKtuB,EAAQgxB,EAAIC,EAAIhiB,EAAGsf,GACrD,MAAMqC,EAAQ,CAAC,EAAGtC,EAAI7vB,OAAS,EAAG,GAC5BqqB,EAAS,GACToI,EAAKjiB,EAAIA,EACf,KAAO2hB,EAAMnyB,QAAQ,CACnB,MAAMoyB,EAAOD,EAAMvlB,MACbojB,EAAQmC,EAAMvlB,MACdmjB,EAAOoC,EAAMvlB,MACnB,GAAIojB,EAAQD,GAAQD,EAAU,CAC5B,IAAK,IAAIzvB,EAAI0vB,EAAM1vB,GAAK2vB,EAAO3vB,IACzBuwB,EAAOrvB,EAAO,EAAIlB,GAAIkB,EAAO,EAAIlB,EAAI,GAAIkyB,EAAIC,IAAOC,GAAIpI,EAAOrnB,KAAK6sB,EAAIxvB,IAE9E,QACF,CACA,MAAM2c,EAAI1N,KAAKY,OAAO6f,EAAOC,GAAS,GAChC3f,EAAI9O,EAAO,EAAIyb,GACf1M,EAAI/O,EAAO,EAAIyb,EAAI,GACrB4T,EAAOvgB,EAAGC,EAAGiiB,EAAIC,IAAOC,GAAIpI,EAAOrnB,KAAK6sB,EAAI7S,IAChD,MAAMqV,GAAYD,EAAO,GAAK,GACjB,IAATA,EAAaG,EAAK/hB,GAAKH,EAAImiB,EAAKhiB,GAAKF,KACvC6hB,EAAMnvB,KAAK+sB,GACXoC,EAAMnvB,KAAKga,EAAI,GACfmV,EAAMnvB,KAAKqvB,KAEA,IAATD,EAAaG,EAAK/hB,GAAKH,EAAImiB,EAAKhiB,GAAKF,KACvC6hB,EAAMnvB,KAAKga,EAAI,GACfmV,EAAMnvB,KAAKgtB,GACXmC,EAAMnvB,KAAKqvB,GAEf,CACA,OAAOhI,CACT,CCJWiI,CAAO1rB,KAAKipB,IAAKjpB,KAAKrF,OAAQ8O,EAAGC,EAAGE,EAAG5J,KAAKkpB,SACrD,EE3BF,MAAM4C,EAAiB,CACrBC,QAAS,EAETC,QAAS,GAETC,UAAW,EAEXnuB,OAAQ,GAERouB,OAAQ,IAERhD,SAAU,GAEVM,KAAK,EAIL2C,YAAY,EAEZC,OAAQ,KAIRvE,IAAK1yB,GAASA,GAEVk3B,EAAS3jB,KAAK2jB,SAAWtC,EAG5B,IAAIuC,aAAa,GAHkB7iB,IACpCsgB,EAAI,IAAMtgB,EACHsgB,EAAI,KAFiB,IAACA,EAIhB,MAAMwC,EACnB,WAAAzP,CAAY9kB,GACVgI,KAAKhI,QAAU8H,EAAO2d,OAAO3T,OAAOgiB,GAAiB9zB,GACrDgI,KAAKwsB,MAAQ,IAAItzB,MAAM8G,KAAKhI,QAAQg0B,QAAU,EAChD,CACA,IAAAS,CAAKzwB,GACH,MAAM,IACJwtB,EAAG,QACHuC,EAAO,QACPC,EAAO,SACP9C,GACElpB,KAAKhI,QACLwxB,GAAKkD,QAAQC,KAAK,cACtB,MAAMC,EAAU,WAAWhe,OAAO5S,EAAO5C,OAAQ,WAC7CowB,GAAKkD,QAAQC,KAAKC,GACtB5sB,KAAKhE,OAASA,EAGd,IAAI6wB,EAAW,GACf,IAAK,IAAIpzB,EAAI,EAAGA,EAAIuC,EAAO5C,OAAQK,IAC5BuC,EAAOvC,GAAGpB,UACfw0B,EAASzwB,KAAK0wB,EAAmB9wB,EAAOvC,GAAIA,IAE9CuG,KAAKwsB,MAAMR,EAAU,GAAK,IAAItB,EAAOmC,EAAUlC,EAAMC,EAAM1B,EAAUoD,cACjE9C,GAAKkD,QAAQK,QAAQH,GAIzB,IAAK,IAAIrD,EAAIyC,EAASzC,GAAKwC,EAASxC,IAAK,CACvC,MAAMyD,GAAOC,KAAKD,MAGlBH,EAAW7sB,KAAKktB,SAASL,EAAUtD,GACnCvpB,KAAKwsB,MAAMjD,GAAK,IAAImB,EAAOmC,EAAUlC,EAAMC,EAAM1B,EAAUoD,cACvD9C,GAAKkD,QAAQlD,IAAI,2BAA4BD,EAAGsD,EAASzzB,QAAS6zB,KAAKD,MAAQA,EACrF,CAEA,OADIxD,GAAKkD,QAAQK,QAAQ,cAClB/sB,IACT,CACA,WAAAmtB,CAAY/0B,EAAMg1B,GAChB,IAAIC,IAAWj1B,EAAK,GAAK,KAAO,IAAM,KAAO,IAAM,IACnD,MAAMk1B,EAAS5kB,KAAKihB,KAAK,GAAIjhB,KAAKkhB,IAAI,GAAIxxB,EAAK,KAC/C,IAAIm1B,EAAqB,MAAZn1B,EAAK,GAAa,MAAQA,EAAK,GAAK,KAAO,IAAM,KAAO,IAAM,IAC3E,MAAMo1B,EAAS9kB,KAAKihB,KAAK,GAAIjhB,KAAKkhB,IAAI,GAAIxxB,EAAK,KAC/C,GAAIA,EAAK,GAAKA,EAAK,IAAM,IACvBi1B,GAAU,IACVE,EAAS,SACJ,GAAIF,EAASE,EAAQ,CAC1B,MAAME,EAAaztB,KAAKmtB,YAAY,CAACE,EAAQC,EAAQ,IAAKE,GAASJ,GAC7DM,EAAa1tB,KAAKmtB,YAAY,EAAE,IAAKG,EAAQC,EAAQC,GAASJ,GACpE,OAAOK,EAAW7e,OAAO8e,EAC3B,CACA,MAAMC,EAAO3tB,KAAKwsB,MAAMxsB,KAAK4tB,WAAWR,IAClCnE,EAAM0E,EAAKzC,MAAM2C,EAAKR,GAASS,EAAKN,GAASK,EAAKN,GAASO,EAAKR,IAChET,EAAW,GACjB,IAAK,MAAM10B,KAAM8wB,EAAK,CACpB,MAAM8E,EAAIJ,EAAK3xB,OAAO7D,GACtB00B,EAASzwB,KAAK2xB,EAAEC,UAAYC,EAAeF,GAAK/tB,KAAKhE,OAAO+xB,EAAEG,OAChE,CACA,OAAOrB,CACT,CACA,WAAAsB,CAAYC,GACV,MAAMC,EAAWruB,KAAKsuB,aAAaF,GAC7BG,EAAavuB,KAAKwuB,eAAeJ,GACjCK,EAAW,oCACXP,EAAQluB,KAAKwsB,MAAM+B,GACzB,IAAKL,EAAO,MAAM,IAAIp1B,MAAM21B,GAC5B,MAAMC,EAASR,EAAMlyB,OAAOqyB,GAC5B,IAAKK,EAAQ,MAAM,IAAI51B,MAAM21B,GAC7B,MAAM7kB,EAAI5J,KAAKhI,QAAQ8F,QAAUkC,KAAKhI,QAAQk0B,OAASxjB,KAAKc,IAAI,EAAG+kB,EAAa,IAC1EtF,EAAMiF,EAAMxC,OAAOgD,EAAOjlB,EAAGilB,EAAOhlB,EAAGE,GACvC3T,EAAW,GACjB,IAAK,MAAMkC,KAAM8wB,EAAK,CACpB,MAAM8E,EAAIG,EAAMlyB,OAAO7D,GACnB41B,EAAEY,WAAaP,GACjBn4B,EAASmG,KAAK2xB,EAAEC,UAAYC,EAAeF,GAAK/tB,KAAKhE,OAAO+xB,EAAEG,OAElE,CACA,GAAwB,IAApBj4B,EAASmD,OAAc,MAAM,IAAIN,MAAM21B,GAC3C,OAAOx4B,CACT,CACA,SAAA24B,CAAUR,EAAWS,EAAO3J,GAC1B2J,EAAQA,GAAS,GACjB3J,EAASA,GAAU,EACnB,MAAM4J,EAAS,GAEf,OADA9uB,KAAK+uB,cAAcD,EAAQV,EAAWS,EAAO3J,EAAQ,GAC9C4J,CACT,CACA,OAAAE,CAAQzF,EAAG9f,EAAGC,GACZ,MAAMikB,EAAO3tB,KAAKwsB,MAAMxsB,KAAK4tB,WAAWrE,IAClC0F,EAAKvmB,KAAKc,IAAI,EAAG+f,IACjB,OACJ2C,EAAM,OACNpuB,GACEkC,KAAKhI,QACHwyB,EAAI1sB,EAASouB,EACb1R,GAAO9Q,EAAI8gB,GAAKyE,EAChBC,GAAUxlB,EAAI,EAAI8gB,GAAKyE,EACvBE,EAAO,CACX52B,SAAU,IASZ,OAPAyH,KAAKovB,iBAAiBzB,EAAKzC,OAAOzhB,EAAI+gB,GAAKyE,EAAIzU,GAAM/Q,EAAI,EAAI+gB,GAAKyE,EAAIC,GAASvB,EAAK3xB,OAAQyN,EAAGC,EAAGulB,EAAIE,GAC5F,IAAN1lB,GACFzJ,KAAKovB,iBAAiBzB,EAAKzC,MAAM,EAAIV,EAAIyE,EAAIzU,EAAK,EAAG0U,GAASvB,EAAK3xB,OAAQizB,EAAIvlB,EAAGulB,EAAIE,GAEpF1lB,IAAMwlB,EAAK,GACbjvB,KAAKovB,iBAAiBzB,EAAKzC,MAAM,EAAG1Q,EAAKgQ,EAAIyE,EAAIC,GAASvB,EAAK3xB,QAAS,EAAG0N,EAAGulB,EAAIE,GAE7EA,EAAK52B,SAASa,OAAS+1B,EAAO,IACvC,CACA,uBAAAE,CAAwBjB,GACtB,IAAIkB,EAAgBtvB,KAAKwuB,eAAeJ,GAAa,EACrD,KAAOkB,GAAiBtvB,KAAKhI,QAAQg0B,SAAS,CAC5C,MAAM/1B,EAAW+J,KAAKmuB,YAAYC,GAElC,GADAkB,IACwB,IAApBr5B,EAASmD,OAAc,MAC3Bg1B,EAAYn4B,EAAS,GAAG8B,WAAWw3B,UACrC,CACA,OAAOD,CACT,CACA,aAAAP,CAActL,EAAQ2K,EAAWS,EAAO3J,EAAQsK,GAC9C,MAAMv5B,EAAW+J,KAAKmuB,YAAYC,GAClC,IAAK,MAAMqB,KAASx5B,EAAU,CAC5B,MAAMd,EAAQs6B,EAAM13B,WAiBpB,GAhBI5C,GAASA,EAAMu6B,QACbF,EAAUr6B,EAAMw6B,aAAezK,EAEjCsK,GAAWr6B,EAAMw6B,YAGjBH,EAAUxvB,KAAK+uB,cAActL,EAAQtuB,EAAMo6B,WAAYV,EAAO3J,EAAQsK,GAG/DA,EAAUtK,EAEnBsK,IAGA/L,EAAOrnB,KAAKqzB,GAEVhM,EAAOrqB,SAAWy1B,EAAO,KAC/B,CACA,OAAOW,CACT,CACA,gBAAAJ,CAAiBnG,EAAKjtB,EAAQyN,EAAGC,EAAGulB,EAAIE,GACtC,IAAK,MAAM11B,KAAKwvB,EAAK,CACnB,MAAM8E,EAAI/xB,EAAOvC,GACXm2B,EAAY7B,EAAEC,UACpB,IAAI6B,EAAMC,EAAIC,EACd,GAAIH,EACFC,EAAOG,EAAqBjC,GAC5B+B,EAAK/B,EAAEtkB,EACPsmB,EAAKhC,EAAErkB,MACF,CACL,MAAM8gB,EAAIxqB,KAAKhE,OAAO+xB,EAAEG,OACxB2B,EAAOrF,EAAEzyB,WACT+3B,EAAKjC,EAAKrD,EAAEnyB,SAASK,YAAY,IACjCq3B,EAAKjC,EAAKtD,EAAEnyB,SAASK,YAAY,GACnC,CACA,MAAMu3B,EAAI,CACR/3B,KAAM,EACNG,SAAU,CAAC,CAACqQ,KAAKwnB,MAAMlwB,KAAKhI,QAAQk0B,QAAU4D,EAAKb,EAAKxlB,IAAKf,KAAKwnB,MAAMlwB,KAAKhI,QAAQk0B,QAAU6D,EAAKd,EAAKvlB,MACzGmmB,QAIF,IAAI13B,EACAy3B,EACFz3B,EAAK41B,EAAE51B,GACE6H,KAAKhI,QAAQm0B,WAEtBh0B,EAAK41B,EAAEG,MACEluB,KAAKhE,OAAO+xB,EAAEG,OAAO/1B,KAE9BA,EAAK6H,KAAKhE,OAAO+xB,EAAEG,OAAO/1B,SAEjB4D,IAAP5D,IAAkB83B,EAAE93B,GAAKA,GAC7Bg3B,EAAK52B,SAAS6D,KAAK6zB,EACrB,CACF,CACA,UAAArC,CAAWrE,GACT,OAAO7gB,KAAKihB,IAAI3pB,KAAKhI,QAAQ+zB,QAASrjB,KAAKkhB,KAAKL,EAAGvpB,KAAKhI,QAAQg0B,QAAU,GAC5E,CACA,QAAAkB,CAASlxB,EAAQoxB,GACf,MAAMP,EAAW,IACX,OACJ/uB,EAAM,OACNouB,EAAM,OACNE,EAAM,UACNH,GACEjsB,KAAKhI,QACH4R,EAAI9L,GAAUouB,EAASxjB,KAAKc,IAAI,EAAG4jB,IAGzC,IAAK,IAAI3zB,EAAI,EAAGA,EAAIuC,EAAO5C,OAAQK,IAAK,CACtC,MAAM+wB,EAAIxuB,EAAOvC,GAEjB,GAAI+wB,EAAE4C,MAAQA,EAAM,SACpB5C,EAAE4C,KAAOA,EAGT,MAAMO,EAAO3tB,KAAKwsB,MAAMY,EAAO,GACzB+C,EAAcxC,EAAKjC,OAAOlB,EAAE/gB,EAAG+gB,EAAE9gB,EAAGE,GACpCwmB,EAAkB5F,EAAEwD,WAAa,EACvC,IAAIA,EAAYoC,EAGhB,IAAK,MAAMC,KAAcF,EAAa,CACpC,MAAMG,EAAI3C,EAAK3xB,OAAOq0B,GAElBC,EAAElD,KAAOA,IAAMY,GAAasC,EAAEtC,WAAa,EACjD,CACA,GAAIA,GAAa/B,EAAW,CAE1B,IAAIsE,EAAK/F,EAAE/gB,EAAI2mB,EACXI,EAAKhG,EAAE9gB,EAAI0mB,EACXK,EAAoBrE,GAAUgE,EAAkB,EAAIpwB,KAAKC,KAAKuqB,GAAG,GAAQ,KAG7E,MAAMryB,GAAMsB,GAAK,IAAM2zB,EAAO,GAAKptB,KAAKhE,OAAO5C,OAC/C,IAAK,MAAMi3B,KAAcF,EAAa,CACpC,MAAMG,EAAI3C,EAAK3xB,OAAOq0B,GACtB,GAAIC,EAAElD,MAAQA,EAAM,SACpBkD,EAAElD,KAAOA,EAET,MAAMsD,EAAaJ,EAAEtC,WAAa,EAClCuC,GAAMD,EAAE7mB,EAAIinB,EACZF,GAAMF,EAAE5mB,EAAIgnB,EACZJ,EAAE3B,SAAWx2B,EACTi0B,IACGqE,IAAmBA,EAAoBzwB,KAAKC,KAAKuqB,GAAG,IACzD4B,EAAOqE,EAAmBzwB,KAAKC,KAAKqwB,IAExC,CACA9F,EAAEmE,SAAWx2B,EACb00B,EAASzwB,KAAKu0B,EAAcJ,EAAKvC,EAAWwC,EAAKxC,EAAW71B,EAAI61B,EAAWyC,GAC7E,MAGE,GADA5D,EAASzwB,KAAKouB,GACVwD,EAAY,EACd,IAAK,MAAMqC,KAAcF,EAAa,CACpC,MAAMG,EAAI3C,EAAK3xB,OAAOq0B,GAClBC,EAAElD,MAAQA,IACdkD,EAAElD,KAAOA,EACTP,EAASzwB,KAAKk0B,GAChB,CAGN,CACA,OAAOzD,CACT,CAGA,YAAAyB,CAAaF,GACX,OAAOA,EAAYpuB,KAAKhE,OAAO5C,QAAU,CAC3C,CAGA,cAAAo1B,CAAeJ,GACb,OAAQA,EAAYpuB,KAAKhE,OAAO5C,QAAU,EAC5C,CACA,IAAA6G,CAAKrH,EAAOg4B,GACV,GAAIh4B,EAAMo1B,UACR,OAAO4C,EAAQ9wB,EAAO,CAAC,EAAGlH,EAAMb,YAAca,EAAMb,WAEtD,MAAMuX,EAAWtP,KAAKhE,OAAOpD,EAAMs1B,OAAOn2B,WACpC0rB,EAASzjB,KAAKhI,QAAQ6vB,IAAIvY,GAChC,OAAOshB,GAASnN,IAAWnU,EAAWxP,EAAO,CAAC,EAAG2jB,GAAUA,CAC7D,EAEF,SAASkN,EAAclnB,EAAGC,EAAGvR,EAAI61B,EAAWj2B,GAC1C,MAAO,CACL0R,EAAG4iB,EAAO5iB,GAEVC,EAAG2iB,EAAO3iB,GACV0jB,KAAMyD,IAEN14B,KAEAw2B,UAAW,EAEXX,YACAj2B,aAEJ,CACA,SAAS+0B,EAAmBtC,EAAGryB,GAC7B,MAAOsR,EAAGC,GAAK8gB,EAAEnyB,SAASK,YAC1B,MAAO,CACL+Q,EAAG4iB,EAAOwB,EAAKpkB,IAEfC,EAAG2iB,EAAOyB,EAAKpkB,IACf0jB,KAAMyD,IAEN3C,MAAO/1B,EAEPw2B,UAAW,EAEf,CACA,SAASV,EAAeyB,GACtB,MAAO,CACLx3B,KAAM,UACNC,GAAIu3B,EAAQv3B,GACZJ,WAAYi4B,EAAqBN,GACjCr3B,SAAU,CACRH,KAAM,QACNQ,YAAa,EA0BL+Q,EA1BWimB,EAAQjmB,EA2BZ,KAAXA,EAAI,KA3BuBqnB,EAAKpB,EAAQhmB,MA0BlD,IAAcD,CAvBd,CACA,SAASumB,EAAqBN,GAC5B,MAAMqB,EAAQrB,EAAQ1B,UAChBgD,EAASD,GAAS,IAAQ,GAAGniB,OAAOlG,KAAKwnB,MAAMa,EAAQ,KAAO,KAAOA,GAAS,IAAO,GAAGniB,OAAOlG,KAAKwnB,MAAMa,EAAQ,KAAO,GAAI,KAAOA,EAC1I,OAAOjxB,EAAOA,EAAO,CAAC,EAAG4vB,EAAQ33B,YAAa,CAC5C23B,SAAS,EACTH,WAAYG,EAAQv3B,GACpBw3B,YAAaoB,EACbE,wBAAyBD,GAE7B,CAGA,SAASnD,EAAK/b,GACZ,OAAOA,EAAM,IAAM,EACrB,CACA,SAASgc,EAAKjc,GACZ,MAAM6E,EAAMhO,KAAKgO,IAAI7E,EAAMnJ,KAAKqL,GAAK,KAC/BrK,EAAI,GAAM,IAAOhB,KAAK8gB,KAAK,EAAI9S,IAAQ,EAAIA,IAAQhO,KAAKqL,GAC9D,OAAOrK,EAAI,EAAI,EAAIA,EAAI,EAAI,EAAIA,CACjC,CAMA,SAASonB,EAAKpnB,GACZ,MAAMqb,GAAM,IAAU,IAAJrb,GAAWhB,KAAKqL,GAAK,IACvC,OAAO,IAAMrL,KAAKwoB,KAAKxoB,KAAK+gB,IAAI1E,IAAOrc,KAAKqL,GAAK,EACnD,CACA,SAASjU,EAAOqxB,EAAMC,GACpB,IAAK,MAAMj5B,KAAMi5B,EAAKD,EAAKh5B,GAAMi5B,EAAIj5B,GACrC,OAAOg5B,CACT,CACA,SAASxG,EAAKH,GACZ,OAAOA,EAAE/gB,CACX,CACA,SAASmhB,EAAKJ,GACZ,OAAOA,EAAE9gB,CACX,C,qCCpXO,MAAM2nB,EAAehJ,EAAAA,QAAOC,IAAGC,WAAA,CAAAC,YAAA,8BAAAC,YAAA,gBAAVJ,CAAU,oCAKzBiJ,EAASjJ,EAAAA,QAAOC,IAAGC,WAAA,CAAAC,YAAA,wBAAAC,YAAA,gBAAVJ,CAAU,iCAK1BkJ,GAAmBlJ,EAAAA,EAAAA,SAAOrL,EAAAA,GAAOuL,WAAA,CAAAC,YAAA,kCAAAC,YAAA,gBAAdJ,CAAc,+IAYjCmJ,EAAkBnJ,EAAAA,QAAOoJ,GAAElJ,WAAA,CAAAC,YAAA,iCAAAC,YAAA,gBAATJ,CAAS,iKAKtBS,EAAAA,EAAO4I,QAULC,EAAaA,IAEtB5J,EAAAA,cAAAA,EAAAA,SAAA,KACEA,EAAAA,cAACwJ,EAAgB,CAACtuB,MAAO6lB,EAAAA,EAAO4I,OAAQx5B,KAAK,aAC7C6vB,EAAAA,cAACyJ,EAAe,KAAC,4C,8CC9BvB,MAd0BI,IAEtB7J,EAAAA,cAAA,WACEA,EAAAA,cAAA,QAAMhe,MAAO,CAAE9G,MAAO,WAAa3N,UAAU,kBAC3CyyB,EAAAA,cAAA,KAAGzyB,UAAU,kCACbyyB,EAAAA,cAAA,QAAMhe,MAAO,CAAE9G,MAAO,YACpB8kB,EAAAA,cAAA,KAAGzyB,UAAU,iCAEV,K,WCcb,MArByBoxB,IAAoC,IAAnC,QAAEmL,GAA2BnL,EACrD,MACMoL,EAAa,gCADHC,EAAAA,EAAAA,GAAUF,EAAQ95B,WAAWi6B,OAG7C,OACEjK,EAAAA,cAAA,WACG8J,EAAQ95B,WAAWk6B,WAAW,IAAClK,EAAAA,cAAA,WAC/B8J,EAAQ95B,WAAWi6B,MAAM5F,QAExB,CAAC5B,EAAGuD,EAAGt0B,IAAO+wB,EAAK3pB,SAASktB,EAAEmE,WAC9B,GAED,sCACDnK,EAAAA,cAAA,WACAA,EAAAA,cAAA,KAAG9N,KAAMkY,UAAUL,GAAaM,SAAUP,EAAQ95B,WAAWk6B,YAAY,iBAGrE,EC0UV,MA7UiBvL,IAgBV,IAhBW,YAChB2L,EAAW,QACXC,EAAO,QACPv5B,EAAO,QACP22B,EAAO,QACP6C,EAAO,iBACPC,EAAgB,KAChBz1B,GASD2pB,EACC,MAAM/pB,EAAI81B,EAAQ,OAClBA,EAAQ,OAER,MAAM,EAACC,EAAU,EAACC,IAAgBpS,EAAAA,EAAAA,WAAkB,GAE9CqS,EAAU,qDAGV/K,GAAMgL,EAAAA,EAAAA,aAAc92B,GACpB+2B,GAAYD,EAAAA,EAAAA,aAAY92B,GACxBg3B,GAAaF,EAAAA,EAAAA,aAAuB92B,IAE1C0kB,EAAAA,EAAAA,YAAU,KACRkS,GAAa,EAAK,GACjB,KAEHlS,EAAAA,EAAAA,YAAU,KACRuS,GAAW,GACV,CAACN,EAAW35B,IAEf,MAAMi6B,EAAYC,UAChB,MAAMC,EAA0BA,CAACrB,EAASppB,KACxC,IAAKopB,EAAQ95B,WAAW23B,QAAS,CAC/B,IAAIjyB,EAASd,EAAEw2B,aAAa1qB,EAAQ,CAAExF,MAAO,YAqB7C,OApBAxF,EAAO21B,UAAU,cACjB31B,EAAOwE,GAAG,SAASgxB,UACjB,IAAII,EAAQ72B,EAAEjF,OAAO+7B,WACjBC,QAAiBC,EAAAA,EAAAA,IAAQ3B,EAAQ95B,WAAWI,IAEhD,IACE,IAAIs7B,EAAOF,EACXF,EAAMK,YACDD,EAAKvB,SAAW,EAAIuB,EAAKvB,SAAW,IAAE,KACvCuB,EAAKvB,UAAY,GACkC,MAAnDuB,EAAKE,SAASC,OAAOH,EAAKE,SAASv6B,OAAS,GACxCq6B,EAAKE,SAAS35B,MAAM,EAAGy5B,EAAKE,SAASv6B,OAAS,GAC9Cq6B,EAAKE,UAAQ,uBACIE,IAAMJ,EAAKK,UAAW,YAAYjd,OACvD,eAGJwc,EAAMU,QACR,CAAE,MAAO,KAEJt2B,CACT,CACA,IAAIu2B,EAAe,CACjBC,WACE,keACFC,aAAc,UACdC,cAAe,YACfC,wBAAyB,UACzBC,QAAQ,qEAAsExC,EAAQ95B,WAAWk5B,wBAAuB,UACxHqD,qBAAsB,IAYpBnxB,GAJ4E0uB,EAAQ95B,WAAWk5B,wBAIxFt0B,EAAEuI,QAAQ,CACnB5P,UAAW,sBACXi/B,KAAM53B,EAAE8D,KAAK+zB,SAASR,EAAaC,WAAYD,GAC/C7uB,WAAY,CAAC,GAAI,IACjB9B,SAAU,CAAC,GAAI,IACfoxB,YAAa,CAAC,GAAI,OAGpB,OADa93B,EAAEc,OAAOgL,EAAQ,CAAEtF,KAAMA,GACzB,EAeT4wB,EAAUW,IACd,MAAMC,EAAS9M,EAAI7wB,QAAQ+V,YAE3B,IAAI8f,EACJ,IACEA,EAAWqB,EAAMf,YACf,CACEwH,EAAOC,UACPD,EAAOE,WACPF,EAAOG,UACPH,EAAOI,YAETlN,EAAI7wB,QAAQg+B,UAEhB,CAAE,MAEA,OADAtI,QAAQzuB,MAAM,UACP,IACT,CAKA,OAHAy2B,EAAQjlB,cACRilB,EAAQO,QAAQpI,GAChBhF,EAAI7wB,QAAQ6U,SAAS1K,SACd0rB,CAAQ,EAIjB,GAAKhF,EAAI7wB,QA0DP6wB,EAAI7wB,QAAQ2a,WAAWnP,IAEhBA,EAAM0yB,MAAQ1yB,EAAM0yB,OAAStC,GAChC/K,EAAI7wB,QAAQ6O,YAAYrD,EAC1B,IAEE6vB,GAAaxK,EAAI7wB,QAAQm+B,YAAYlrB,YAAY,mBAhErC,CAChB,IAAK6oB,EAAU97B,QACb,OAEF,IAAIo+B,EAAQz4B,EAAEkrB,IAAI,MAAO,CACvBmE,QAASqG,EAAc,GAAK,GAC5BxmB,UAAU,EACVspB,YAAa9C,IACZgD,QAAQ,CAAC,GAAI,GAAI,GAQpB,GAPA14B,EAAE24B,UAAU1C,EAAS,CACnB2C,cAAe,GACfvJ,QAAS,GACTwJ,YAvHJ,0FAwHIC,QAAQ,IACPjwB,MAAM4vB,GAELr4B,EAAM,CACR,IAAKg2B,EAAW/7B,QAAS,CACvB,IAAI0+B,EAAkB,IAAI/4B,EAAE+e,aAC5BqX,EAAW/7B,QAAU0+B,CACvB,CACAN,EAAMxwB,SAASmuB,EAAW/7B,SAE1B2F,EAAEqb,YAAYiD,OAAOna,QAAQ,CAC3Bqa,iBAAiB,IAGnB,MAAMwa,EAAgD,CACpD/d,SAAU,WACV7a,KAAM,CACJO,UAAU,EACVC,WAAW,EACXC,QAAQ,EACRC,QAAQ,EACRC,cAAc,EACd7E,QAAS,CACPiK,mBAAmB,EACnBE,UAAW,CACTC,MAAO6lB,EAAAA,EAAO4I,OACdltB,QACE,0DAEJhE,aAAc,CACZyC,MAAO6lB,EAAAA,EAAO4I,UAIpBvzB,KAAM,CACJ4c,aAAcgY,EAAW/7B,QACzBmH,MAAM,IAGV,IAAIsa,EAAc,IAAI9b,EAAEgb,QAAQ9a,KAAK84B,GAErCP,EAAM1c,WAAWD,EACnB,CACAoP,EAAI7wB,QAAUo+B,CAChB,CASA,GAAI1F,EAAS,CACX,IAAK32B,EACH,OAGF,IAAI68B,EAAkB78B,EACtB,GAAIw5B,GAA4B,QAAjBA,EAAQsD,MAAwC,QAAtBtD,EAAQuD,YAC/CF,GAAkBG,EAAAA,EAAAA,IAAUh9B,IACvB68B,GACH,OAIJ,IAAI1H,OAjHyB+E,UACtB,IAAI1G,EAAa,CACtBzuB,OAAQ,GACRouB,OAAQ,IACRF,QAAS,KACRS,KAAKuJ,EAAcz9B,UA4GJ09B,CAAuBL,GAEzC,MAAMlB,EAAU/3B,EAAEu5B,QAAQ,KAAM,CAC9BC,aAAcjD,IACb1tB,MAAMqiB,EAAI7wB,SAEb+8B,EAAOW,GAEP7M,EAAI7wB,QAAQiL,GAAG,WAAW,KACxB8xB,EAAOW,EAAQ,IAIb33B,GACF8qB,EAAI7wB,QAAQ4N,SAASmuB,EAAW/7B,SAG9B+F,IAEF8qB,EAAI7wB,QAAQiL,GAAG,gBAAiBzF,IAC9B,MAAMgG,EAAQhG,EAAEgG,MAChB,IAAIuuB,EAAQ,EACZgC,EAAW/7B,QAAQ2a,WAAU,IAAMof,MAC/BA,EAAQ,EACVgC,EAAW/7B,QAAQ2a,WAAWlX,GAC5Bs4B,EAAW/7B,QAAQ6O,YAAYpL,KAGjCs4B,EAAW/7B,QAAQ4N,SAASpC,GAIV,YAAhBhG,EAAEgF,WACJgxB,EAAiBh2B,EAAEgG,MACrB,IAGFqlB,EAAI7wB,QAAQiL,GAAG,gBAAgB,KAC7BuwB,OAAiBz2B,EAAU,KAI/B24B,EAAQzyB,GAAG,SAAUzF,IACfA,EAAEgG,MAAMqvB,QAAQ95B,WAAWw3B,aAC7B1H,EAAI7wB,QAAQ6U,SAASpK,UAjKA20B,EAAC1G,EAAS2G,KACnCxO,EAAI7wB,QAAQs/B,MAAMD,EAAQnI,EAAMmB,wBAAwBK,GAAS,EAkK7D0G,CAAmB55B,EAAEgG,MAAMqvB,QAAQ95B,WAAWw3B,WAAY/yB,EAAEiM,QAC9D,GAEJ,KAAO,CACL,MAAMisB,EAAU/3B,EAAEu5B,QAAQn9B,GAE1B27B,EAAQlvB,MAAMqiB,EAAI7wB,SACd+B,EAAQR,SAASa,OAAS,GAC5ByuB,EAAI7wB,QAAQu/B,UAAU7B,EAAQ3nB,YAElC,CACKslB,IACHxK,EAAI7wB,QAAQ6U,SAASpK,UACrBomB,EAAI7wB,QAAQw/B,UAAU/0B,UACtBomB,EAAI7wB,QAAQy/B,gBAAgBh1B,UAC5BomB,EAAI7wB,QAAQ0/B,gBAAgBj1B,UAC5BomB,EAAI7wB,QAAQ2/B,QAAQl1B,UACpBomB,EAAI7wB,QAAQ4/B,SAASn1B,UACjBomB,EAAI7wB,QAAQ6/B,KAAKhP,EAAI7wB,QAAQ6/B,IAAIp1B,UACrC/E,SAASo6B,eAAe,OAAO/sB,MAAMgC,OAAS,UAChD,EA6CF,OAzCA0U,EAAAA,EAAAA,YAAU,KACR,MAAMsW,EAA0BA,CAAClF,EAASppB,KAExC,MAAMuuB,EAAkBr6B,EAAEuI,QAAQ,CAChCqvB,KAAM0C,EAAAA,eAA8BlP,EAAAA,cAAC6J,EAAiB,OACtDzsB,WAAY,CAAC,GAAI,IACjBsvB,YAAa,CAAC,IAAK,IACnBn/B,UAAW,cAEb,IAAImI,EAASd,EAAEc,OAAOgL,EAAQ,CAAEtF,KAAM6zB,IAItC,OAHAv5B,EAAO21B,UACL6D,EAAAA,eAA8BlP,EAAAA,cAACmP,EAAgB,CAACrF,QAASA,MAEpDp0B,CAAM,EAWf,GARAoqB,EAAI7wB,SACF6wB,EAAI7wB,QAAQ2a,WAAWnP,IAEjBA,EAAM20B,OAAyB,gBAAhB30B,EAAM20B,OACvBtP,EAAI7wB,QAAQ6O,YAAYrD,EAC1B,IAIFzJ,GACAA,EAAQR,SAASa,OAAS,GAC1Bm5B,EAAQ6E,YACRvP,EAAI7wB,QACJ,CACA,IAAIqgC,GAAaC,EAAAA,EAAAA,IAAgBv+B,GACjCs+B,EAAW9+B,UAAWg/B,EAAAA,EAAAA,IAAsBF,EAAW9+B,UACvDg6B,EAAQ6E,YACNz6B,EAAEu5B,QAAQmB,EAAY,CACpBlB,aAAcY,EAEdS,cAAeA,CAACvH,EAAGx1B,IAAOA,EAAE08B,MAAQ,gBACnC3xB,MAAMqiB,EAAI7wB,QACjB,IACC,CAAC+B,EAASw5B,EAAQ6E,aAEhB1E,EAKH3K,EAAAA,cAACsJ,EAAY,KACViB,EAAUvK,EAAAA,cAAC4J,EAAU,MAAM,KAC5B5J,EAAAA,cAACuJ,EAAM,CAACl8B,IAAK09B,EAAW36B,GAAG,SANtB,IAOQ,C,0ICpVnB,GAAe,EAAAs/B,EAAA,GAA4B,gBAAoB,OAAQ,CACrEtU,EAAG,iIACD,wBCFJ,GAAe,EAAAsU,EAAA,GAA4B,gBAAoB,OAAQ,CACrEtU,EAAG,gLACD,sB,WCwCJ,OAAe,EAAAxtB,EAAA,IA3CK,SAAgB+B,GAClC,MAAO,CACLhC,KAAM,CACJkiB,SAAU,WACVhiB,QAAS,OACT,mBAAoB,CAClBusB,UAAW,WACXuV,WAAYhgC,EAAMigC,YAAY7tB,OAAO,YAAa,CAChD8tB,OAAQlgC,EAAMigC,YAAYC,OAAOC,QACjCC,SAAUpgC,EAAMigC,YAAYG,SAASC,aAI3Cv1B,MAAO,CACL2mB,KAAM,EACNvR,SAAU,WACVuK,UAAW,WACXuV,WAAYhgC,EAAMigC,YAAY7tB,OAAO,YAAa,CAChD8tB,OAAQlgC,EAAMigC,YAAYC,OAAOI,OACjCF,SAAUpgC,EAAMigC,YAAYG,SAASC,YAGzCE,QAAS,CAAC,EAEd,GAmBkC,CAChCliC,KAAM,0BADR,EAdA,SAAyBZ,GACvB,IAAI8iC,EAAU9iC,EAAM8iC,QAClB5iC,EAAUF,EAAME,QAChB6iC,EAAW/iC,EAAM+iC,SACnB,OAAoB,gBAAoB,MAAO,CAC7C5iC,WAAW,OAAKD,EAAQK,KAAMuiC,GAAW5iC,EAAQ4iC,UACnC,gBAAoBE,EAA0B,CAC5DD,SAAUA,IACK,gBAAoBE,EAAwB,CAC3DF,SAAUA,EACV5iC,UAAWD,EAAQmN,QAEvB,I,4CClCO,IA4CH61B,EAAkC,gBAAoB,EAAiB,CACzEJ,SAAS,IAEPK,EAA2B,gBAAoB,EAAiB,MAChEC,EAAqB,cAAiB,SAAepjC,EAAOC,GAC9D,IAAIojC,EAAcrjC,EAAM8iC,QACtB5iC,EAAUF,EAAME,QAChBojC,EAAetjC,EAAM8N,MACrBA,OAAyB,IAAjBw1B,EAA0B,YAAcA,EAChDviC,EAAWf,EAAMY,KACjB2iC,EAAevjC,EAAMkB,SACrBsiC,EAAcxjC,EAAMyjC,KACpBA,OAAuB,IAAhBD,EAAyB,SAAWA,EAC3CljC,GAAQ,OAAyBN,EAAO,CAAC,UAAW,UAAW,QAAS,OAAQ,WAAY,SAC1F0jC,ECnEG,aAAiBzhC,EAAA,GDoEpB6gC,EAAUO,EACVniC,GAAW,EAAAyiC,EAAA,GAAsBJ,EAAcG,GAAcA,EAAWxiC,UACxEN,EAAOG,EASX,OARI2iC,SACqB,IAAZZ,IACTA,EAAUY,EAAWziC,QAAUjB,EAAMiB,YAEnB,IAATL,IACTA,EAAO8iC,EAAW9iC,OAGF,gBAAoBgjC,EAAA,GAAY,OAAS,CAC3D91B,MAAOA,EACP/K,KAAM,QACNiL,KAAmB,eAAmBm1B,EAAa,CACjDJ,SAAmB,UAATU,EAAmB,QAAU,YAEzCI,YAA0B,eAAmBX,EAAoB,CAC/DH,SAAmB,UAATU,EAAmB,QAAU,YAEzCvjC,QAAS,CACPK,MAAM,OAAKL,EAAQK,KAAML,EAAQ,QAAQuZ,QAAO,EAAAqqB,EAAA,GAAWh2B,MAC3Dg1B,QAAS5iC,EAAQ4iC,QACjBiB,SAAU7jC,EAAQ6jC,UAEpBnjC,KAAMA,EACNkiC,QAASA,EACT5hC,SAAUA,EACVjB,IAAKA,GACJK,GACL,IAEA,GAAe,EAAAE,EAAA,IA3FK,SAAgB+B,GAClC,MAAO,CAELhC,KAAM,CACJuN,MAAOvL,EAAMyhC,QAAQj8B,KAAKk8B,WAG5BnB,QAAS,CAAC,EAEViB,SAAU,CAAC,EAEXG,aAAc,CACZ,YAAa,CACXp2B,MAAOvL,EAAMyhC,QAAQG,QAAQC,KAC7B,UAAW,CACTvvB,iBAAiB,QAAKtS,EAAMyhC,QAAQG,QAAQC,KAAM7hC,EAAMyhC,QAAQK,OAAOC,cAEvE,uBAAwB,CACtBzvB,gBAAiB,iBAIvB,aAAc,CACZ/G,MAAOvL,EAAMyhC,QAAQK,OAAON,WAIhCQ,eAAgB,CACd,YAAa,CACXz2B,MAAOvL,EAAMyhC,QAAQC,UAAUG,KAC/B,UAAW,CACTvvB,iBAAiB,QAAKtS,EAAMyhC,QAAQC,UAAUG,KAAM7hC,EAAMyhC,QAAQK,OAAOC,cAEzE,uBAAwB,CACtBzvB,gBAAiB,iBAIvB,aAAc,CACZ/G,MAAOvL,EAAMyhC,QAAQK,OAAON,WAIpC,GAgDkC,CAChCnjC,KAAM,YADR,CAEGwiC,G,iCEpGH,MAAMoB,GAAqBhkC,EAAAA,EAAAA,GAAW,CACpCD,KAAM,CACJuN,MAAO6lB,EAAAA,EAAOC,QAFSpzB,CAIxB4iC,GAEGqB,GAAcC,EAAAA,EAAAA,GAAe,CACjCV,QAAS,CACPG,QAAS,CAAEC,KAAMzQ,EAAAA,EAAOC,UAgC5B,MA5BoBrC,IAUb,IAVc,SACnBrwB,EAAQ,QACR4hC,EAAO,KACPliC,EAAI,SACJE,GAMDywB,EACC,OACEqB,EAAAA,cAAC+R,EAAAA,EAAa,CAACpiC,MAAOkiC,GACpB7R,EAAAA,cAAA,WACEA,EAAAA,cAAC4R,EAAkB,CACjB12B,MAAM,UACN5M,SAAUA,EACV4hC,QAASA,EACT9/B,GAAE,SAAWpC,EACbA,KAAK,YACLK,MAAOL,IAETgyB,EAAAA,cAAA,YAAO9xB,IAEK,C,sHCjCpB,MAAM8jC,EAAiB1R,EAAAA,QAAOC,IAAGC,WAAA,CAAAC,YAAA,yBAAAC,YAAA,YAAVJ,CAAU,gJAKJS,EAAAA,EAAO4I,QACxBhL,IAAA,IAAC,QAAE5a,GAAS4a,EAAA,OAAM5a,EAAU,UAAY,SAAS,IAErCkuB,IAAA,IAAC,QAAEluB,GAASkuB,EAAA,OAC9BluB,EAAU,YAAc,aAAa,IAIrCmuB,EAAgB5R,EAAAA,QAAOC,IAAGC,WAAA,CAAAC,YAAA,wBAAAC,YAAA,YAAVJ,CAAU,6BACpB6R,IAAA,IAAC,QAAEpuB,GAASouB,EAAA,OAAMpuB,EAAU,UAAY,SAAS,IAChDquB,IAAA,IAAC,QAAEruB,GAASquB,EAAA,OAAMruB,EAAU,EAAI,EAAG,IA4EhD,IAzEesuB,IAeR,IAfS,MACdn9B,EAAK,KACL0pB,EAAI,SACJ1wB,EAAQ,SACRI,EAAQ,QACRyV,GAAU,GAUXsuB,EACC,MAAM,EAACC,EAAS,EAACC,IAAe/Z,EAAAA,EAAAA,UAAc,MAC9C,OACEwH,EAAAA,cAAAA,EAAAA,SAAA,KACEA,EAAAA,cAACgS,EAAc,CACbjuB,QAASA,EACTyuB,QAAU/9B,IACRsP,GAAWwuB,EAAY99B,EAAEg+B,cAAc,GAGzCzS,EAAAA,cAACkS,EAAa,CAACnuB,QAASA,GAAU7O,GAClC8qB,EAAAA,cAAC0S,EAAAA,EAAe,CAACx3B,MAAO6lB,EAAAA,EAAOC,MAAO5lB,KAAMu3B,EAAAA,OAE9C3S,EAAAA,cAAC4S,EAAAA,EAAI,CACHC,KAAMC,QAAQR,GACdS,QAASA,KACPR,EAAY,KAAK,EAEnBD,SAAUA,EACVU,WAAY,CACVhxB,MAAO,CACLixB,UAAW,MAGfC,aAAc,CACZC,SAAU,SACVC,WAAY,UAEdC,gBAAiB,CACfD,WAAY,SACZD,SAAU,UAEZG,wBAAoBt/B,GAEnB9F,EACA0wB,GACCA,EAAKkB,KAAI,CAACyT,EAAO7hC,IAEbsuB,EAAAA,cAACwT,EAAAA,EAAQ,CACPhB,QAAU/9B,IACR,MAAMg/B,EAAMh/B,EAAEg+B,cAAciB,QAAQD,IAChCA,IACFnlC,EAASmlC,GACTlB,EAAY,MACd,EAEF1c,IAAKnkB,EACL,WAAU6hC,EAAMllC,OAEfklC,EAAMpZ,UAKhB,C,gTCvFP,MAAMwZ,EAAczI,MAAO0I,EAASC,EAAW7b,EAAMiD,EAAI6Y,KACvD,IACE,IAAIC,QAAYC,IACXC,EAAAA,GAAM,kCAAkCL,EAAO,cAAcC,EAAS,SAAS7b,EAAI,OAAOiD,GAC3F6Y,EAAI,SAAYA,EAAS,IAE3B,CACEI,QAAS,CAAE,eAAgB,sBAI/B,OADAH,QAAYA,EAAII,OACTJ,CACT,CAAE,MAAOpc,GACP,OAAOA,CACT,GAqIWyc,EAA6BlJ,eACxClT,EACAiD,EACA6Y,EACAD,QAHY,IAAZ7b,IAAAA,EAAe,UACL,IAAViD,IAAAA,EAAa6Q,MAAQhd,OAAO,oBAChB,IAAZglB,IAAAA,EAAe,SACE,IAAjBD,IAAAA,EAAoB,KAKpB,IACE,IAAIQ,EAAW,GACf,UAAW,MAAMC,KArEQpJ,kBAE3B,IAAIqJ,EAAO,EACPC,GAAa,EAEjB,KAAgB,IAATD,GAAcA,GAAQC,GAC3B,IACE,IAAIC,EAAS,CACX3N,MAPQ,IAOK/O,WACbwc,KAAMA,EAAKxc,WACX2c,OAAQ,KAENC,EAAe,IAAIC,gBAAgBH,GAAQ1c,WAC3C8c,EAASC,EAAAA,GAAM,2BAA2BH,EAC9C,MAAMI,cAAwBf,IAAMa,IAAMV,OAC1CK,EAAYO,EAAoB,UAChCR,UACMQ,CACR,CAAE,MAAO7+B,GAEP,MADAyuB,QAAQzuB,MAAMA,GACR,CACJwhB,MAAM,EACNrpB,MAAO2mC,KAAKC,UAAU/+B,GAE1B,CAEJ,CA2CgCg/B,GAC1Bb,EAAWA,EAASxtB,OAAOytB,EAAQrK,OAErC,OAAOoK,CACT,CAAE,MAAO1c,GACP,OAAOA,CACT,CACF,EAEawd,EAAyBjK,UACpC,IACE,IAAImJ,EAAW,GACf,UAAW,MAAMC,KA9GIpJ,kBAEvB,IAAIqJ,EAAO,EACPC,GAAa,EAEjB,KAAgB,IAATD,GAAcA,GAAQC,GAC3B,IACE,IAAIC,EAAS,CACX3N,MAPQ,IAOK/O,WACbwc,KAAMA,EAAKxc,WACX2c,OAAQ,KAENC,EAAe,IAAIC,gBAAgBH,GAAQ1c,WAC3C8c,EAASC,EAAAA,GAAM,UAAUH,EAC7B,MAAMI,cAAwBf,IAAMa,IAAMV,OAC1CK,EAAYO,EAAoB,UAChCR,UACMQ,CACR,CAAE,MAAO7+B,GAEP,MADAyuB,QAAQzuB,MAAMA,GACR,CACJwhB,MAAM,EACNrpB,MAAO2mC,KAAKC,UAAU/+B,GAE1B,CAEJ,CAoFgCk/B,GAC1Bf,EAAWA,EAASxtB,OAAOytB,EAAQrK,OAErC,OAAOoK,CACT,CAAE,MAAO1c,GACP,OAAOA,CACT,GAeW0d,EAAsBnK,eACjClT,EACAiD,EACA6Y,EACAD,QAHY,IAAZ7b,IAAAA,EAAe,UACL,IAAViD,IAAAA,EAAa6Q,MAAQhd,OAAO,oBAChB,IAAZglB,IAAAA,EAAe,SACE,IAAjBD,IAAAA,EAAoB,KAEpB,MACMjV,EAAO,GACb,IACE,MAAM0W,EAAqB,GAC3B,IAAIvB,QAAYJ,EAJG,EAIuBE,EAAW7b,EAAMiD,EAAI6Y,GAC/DwB,EAAmBjhC,KAAK0/B,EAAInV,MAC5B,MAAM2W,EAAY50B,KAAK60B,KAAKzB,EAAI0B,cAAgB5B,GAC1C6B,EAAW,GACjB,IAAK,IAAIhkC,EAAI,EAAGA,GAAK6jC,EAAW7jC,IAC9BgkC,EAASrhC,KAAKs/B,EAAYjiC,EAAGmiC,EAAW7b,EAAMiD,EAAI6Y,IAcpD,aAXsB6B,QAAQC,IAAIF,IAE1BluB,SAASusB,IACfuB,EAAmBjhC,KAAK0/B,EAAInV,KAAK,IAGnC0W,EAAmB9tB,SAASusB,IAC1B,IAAKA,EAAK,MAAM,2BAChBnV,EAAKvqB,KAAIkU,MAATqW,GAAIiX,EAAAA,EAAAA,GAAS9B,GAAI,IAGZnV,CACT,CAAE,MAAOjH,GACP,OAAOA,CACT,CACF,EAEame,EAA0B5K,eACrClT,EACAiD,EACA6Y,EACAD,QAHY,IAAZ7b,IAAAA,EAAe,UACL,IAAViD,IAAAA,EAAa6Q,MAAQhd,OAAO,oBAChB,IAAZglB,IAAAA,EAAe,SACE,IAAjBD,IAAAA,EAAoB,KAIpB,IACE,MAAMyB,EAAqB,GAC3B,IAAIvB,OA3NgB7I,OAAO0I,EAASC,EAAW7b,EAAMiD,KAEvD,IAAIsZ,EAAOV,EAEX,IACE,IAAIY,EAAS,CACX3N,MALU,IAKG/O,WACbwc,KAAMA,EAAKxc,WACX2c,OAAQ,IACR5+B,MAAOkiB,EACP/hB,IAAKglB,GAEH0Z,EAAe,IAAIC,gBAAgBH,GAAQ1c,WAC3C8c,EAASC,EAAAA,GAAM,2BAA2BH,EAE9C,mBAD8BX,IAAMa,IAAMV,MAE5C,CAAE,MAAOj+B,GAEP,MADAyuB,QAAQzuB,MAAMA,GACR,CACJwhB,MAAM,EACNrpB,MAAO2mC,KAAKC,UAAU/+B,GAE1B,GAqMkB6/B,CAJG,EAI2BlC,EAAW7b,EAAMiD,GAE/Dqa,EAAmBjhC,KAAK0/B,GACxB,MAAMwB,EAAY50B,KAAK60B,KAAKzB,EAAIiC,aAAenC,GACzC6B,EAAW,GAEjB,IAAK,IAAIhkC,EAAI,EAAGA,GAAK6jC,EAAW7jC,IAC9BgkC,EAASrhC,KAAKs/B,EAAYjiC,EAAGmiC,EAAW7b,EAAMiD,EAAI6Y,IASpD,aANsB6B,QAAQC,IAAIF,IAE1BluB,SAASusB,IACfuB,EAAmBjhC,KAAK0/B,EAAInV,KAAK,IAG5B0W,EAAmB,GAAGrL,KAC/B,CAAE,MAAOtS,GACP,OAAOA,CACT,CACF,EAcase,EAAiB/K,eAC5BgL,EACApC,EACAqC,EACAne,EACAiD,EACAmb,EACAC,QAN2B,IAA3BH,IAAAA,OAA8BliC,QAClB,IAAZ8/B,IAAAA,EAAe,SACC,IAAhBqC,IAAAA,EAAmB,SACP,IAAZne,IAAAA,EAAe,UACL,IAAViD,IAAAA,EAAa6Q,MAAQhd,OAAO,oBACH,IAAzBsnB,IAAAA,EAA4B,UACb,IAAfC,IAAAA,EAAkB,IAElB,IACE,IAAItC,QAAYC,IACXC,EAAAA,GAAM,mCAAmCH,EAAI,aAAaqC,EAAQ,UAAUD,EAAO,SAASle,EAAI,OAAOiD,EAAE,qBAAqBmb,EAAiB,YAAYC,EAC9J,CAAEnC,QAAS,CAAE,eAAgB,sBAE3BoC,QAAmBvC,EAAII,OAE3B,MAAMoB,EAAY50B,KAAK60B,KAAKc,EAAWb,cAAgBW,GACvDE,EAAaA,EAAW1X,KACxB,IAAI8W,EAAW,GACf,IAAK,IAAIhkC,EAAI,EAAGA,GAAK6jC,EAAW7jC,IAC9BgkC,EAASrhC,KACP2/B,IACKC,EAAAA,GAAM,mCAAmCH,EAAI,aAAaqC,EAAQ,UAAUD,EAAO,SAASle,EAAI,OAAOiD,EAAE,SAASvpB,EAAC,cAAc0kC,EAAiB,YAAYC,EACjK,CAAEnC,QAAS,CAAE,eAAgB,uBASnC,aALoByB,QAAQC,IAAIF,IACxBluB,SAASusB,IAAS,IAADwC,EACvB,IAAI3X,EAAOmV,EAAInV,MACf2X,EAAAD,GAAWjiC,KAAIkU,MAAAguB,GAAAV,EAAAA,EAAAA,GAAIjX,GAAK,IAEnB0X,CACT,CAAE,MACA,OAAO,IACT,CACF,EAEaE,EAAoBtL,eAC/BuL,EACAze,EACAiD,EACAmb,QAH8B,IAA9BK,IAAAA,OAAiCziC,QACrB,IAAZgkB,IAAAA,EAAe,UACL,IAAViD,IAAAA,EAAa6Q,MAAQhd,OAAO,oBACH,IAAzBsnB,IAAAA,EAA4B,KAE5B,IACE,MAAMd,EAAqB,GAC3B,IAMIX,EAAe,IAAIC,gBANV,CACX6B,WAAYA,EACZ3gC,MAAOkiB,EACP/hB,IAAKglB,EACLyZ,OAAQ,MAEqC3c,WAC3C8c,EAASC,EAAAA,GAAM,2BAA2B2B,EAAU,IAAI9B,EAE5D,MAAMZ,cAAmBC,IAAMa,IAAMV,OAErCmB,EAAmBjhC,KAAK0/B,GACxB,MAAMwB,EAAY50B,KAAK60B,KAAKzB,EAAIiC,aAAeI,GAC/C,IAAIV,EAAW,GAEf,IAAK,IAAIhkC,EAAI,EAAGA,GAAK6jC,EAAW7jC,IAC9BgkC,EAASrhC,KAAK2/B,IAAMa,IAStB,aANoBc,QAAQC,IAAIF,IAExBluB,SAASusB,IACfuB,EAAmBjhC,KAAK0/B,EAAInV,KAAK,IAG5B0W,EAAmB,GAAGrL,KAC/B,CAAE,MACA,OAAO,IACT,CACF,EAEawB,EAAUP,UACrB,IACE,MAAM6I,QAAYC,IAASC,EAAAA,GAAM,mBAAmB7jC,EAAM,CACxD,GAIF,aAFmB2jC,EAAII,QAEXvV,IACd,CAAE,MACA,OAAO,IACT,GAqBW8X,EAAexL,UAC1B,IACE,MAAM6I,QAAYC,IAASC,EAAAA,GAAM,wBAAwBiC,GAEzD,aADmBnC,EAAII,QACXvV,IACd,CAAE,MAAOjH,GACP,OAAOA,CACT,E,kCCzYF,IAAgBiH,IACd,IAAI+X,EAAW,GACf/X,EAAOA,EAAKpuB,SACZ,IAAK,IAAI+iC,KAAS3U,EAChB+X,EAAStiC,KAAKk/B,EAAMvjC,YAEtB,OAAO2mC,CACR,C,qQCCM,MAAMC,EAAgB5lC,IAC3B,MAAM4tB,EAAyB,GACzBiY,EAAW7lC,EAAQR,SAASsvB,KAAKgK,GAAYA,EAAQ95B,aACrD8mC,EAAsBC,IAAUF,GAAWzpC,GAC1CA,EAAM4pC,gBAWJ5pC,EAAM4pC,gBARN5pC,EAAM6pC,cAMJ7pC,EAAM6pC,cALN7pC,EAAM8pC,SAGJ9pC,EAAM8pC,SAFJ,gBAef,OANAxhB,OAAOa,KAAKugB,GAAqBhX,KAAKjK,IAEpC+I,EAAKvqB,KAAK,CAAErG,KAAM6nB,EAAKlU,EAAGm1B,EAAoBjhB,GAAKxkB,QAAS,IAIvDutB,CAAI,EAGAuY,EAAgBnmC,IAC3B,MAAM4tB,EAAqB,GAErBiY,EAAW7lC,EAAQR,SAASsvB,KAAKgK,GAAYA,EAAQ95B,aAErDonC,EAAsBL,IAAUF,GAAWzpC,GACxCA,EAAMw+B,WAiBf,OAdAlW,OAAOa,KAAK6gB,GAAqBtX,KAAKjK,IACpC+I,EAAKvqB,KAAK,CACRrG,KAAM6nB,EACN+I,KAAMwY,EAAoBvhB,GAAKwO,QAC7B,CAACgT,EAAMC,IAASD,EAAOv+B,SAASw+B,EAAKnN,SAAU,KAC/C,IAEF,IAGJvL,EAAK2Y,MAAK,CAACj3B,EAAGioB,IACLA,EAAE3J,KAAOte,EAAEse,OAGbA,EAAK3sB,MAAM,EAAG,EAAE,EAGZulC,EAA+BA,CAC1CxmC,EACAkmC,KAEiBlmC,EAAQR,SAASsvB,KAAKgK,GAAYA,EAAQ95B,aAC3D20B,QAAQlD,IAAI,CAAEyV,aACd,MAAMJ,EAA6B,GACnC9lC,EAAQR,SAASgX,SAASoX,IACxB,IAAIqY,EAEJ,GAAKrY,EAAoB,cAQvBqY,EAAgBrY,EAAoB,kBARV,CAG1B,IAAKA,EAAe,SAClB,MAAO,cAETqY,EAAgBrY,EAAe,QACjC,CAIA+F,QAAQlD,IAAI,CAAEwV,kBAGVA,IAAkBC,IACpBvS,QAAQlD,IAAI,CAAEwV,kBACdH,EAAoBziC,KAAKuqB,GAC3B,IAGF+F,QAAQlD,IAAI,OAAQqV,GAEpB,MAAMW,EAAS,CACbC,SAAUZ,EAAoBpgB,QAAQgV,GAA2B,IAAlBA,EAAKgM,WAAgBrmC,OACpE3D,MAAOopC,EAAoBpgB,QAAQgV,GAA2B,IAAlBA,EAAKgM,WAAgBrmC,QAInE,OAFAszB,QAAQlD,IAAI,QAASgW,EAAO/pC,OAErB,CAAEiqC,MAAOb,EAAoBzlC,OAAQqmC,SAAUD,EAAOC,SAAU,EAG5DE,EAAwB5mC,IACnC,MAAM6lC,EAAW7lC,EAAQR,SAASsvB,KAAKgK,GAAYA,EAAQ95B,aAErD6nC,EAAgBhB,EAASngB,QAAQgV,GAA2B,IAAlBA,EAAKgM,WAAgBrmC,OAIrE,OAFAszB,QAAQlD,IAAI,KAAMoV,EAASxlC,QAEpB,CAAEsmC,MAAOd,EAASxlC,OAAQqmC,SAAUG,EAAe,EAG/CC,EAAoB9mC,IAC/B,MAAM4tB,EAAqB,GAErBiY,EAAW7lC,EAAQR,SAASsvB,KAAKgK,GAAYA,EAAQ95B,aAErDonC,EAAsBL,IAAUF,GAAWzpC,GACxCA,EAAM2qC,cAiBf,OAdAriB,OAAOa,KAAK6gB,GAAqBtX,KAAKjK,IACpC+I,EAAKvqB,KAAK,CACRrG,KAAM6nB,EACN+I,KAAMwY,EAAoBvhB,GAAKwO,QAC7B,CAACgT,EAAMC,IAASD,EAAOv+B,SAASw+B,EAAKnN,SAAU,KAC/C,IAEF,IAGJvL,EAAK2Y,MAAK,CAACj3B,EAAGioB,IACLA,EAAE3J,KAAOte,EAAEse,OAGbA,EAAK3sB,MAAM,EAAG,EAAE,EAqCZ+lC,EAA2BA,CACtChnC,EACAkmC,KAEA,MAAMtY,EAAqB,GACrBiY,EAAW7lC,EAAQR,SAASsvB,KAAKgK,GAAYA,EAAQ95B,aACrD8mC,EAAsBC,IAAUF,GAAWzpC,IAC/C,IAAI6pC,EAEJ,GAAK7pC,EAAM6pC,cAQTA,EAAgB7pC,EAAM6pC,kBARE,CAGxB,IAAK7pC,EAAM8pC,SACT,MAAO,cAETD,EAAgB7pC,EAAM8pC,QACxB,CAIA,GAAID,IAAkBC,EACpB,OAAO9pC,EAAM2qC,WACf,IAsBF,OAnBAriB,OAAOa,KAAKugB,GAAqBhX,KAAKjK,IACxB,cAARA,GACF+I,EAAKvqB,KAAK,CACRrG,KAAM6nB,EACN+I,KAAMkY,EAAoBjhB,GAAKwO,QAC7B,CAACgT,EAAMC,IAASD,EAAOv+B,SAASw+B,EAAKnN,SAAU,KAC/C,GAEF8N,aAAcnB,EAAoBjhB,GAAK,GAAGqiB,aACtCpB,EAAoBjhB,GAAK,GAAGqiB,aAC5BpB,EAAoBjhB,GAAK,GAAGsiB,gBAEpC,IAGFvZ,EAAK2Y,MAAK,CAACj3B,EAAGioB,IACLA,EAAE3J,KAAOte,EAAEse,OAGbA,EAAK3sB,MAAM,EAAG,GAAG,EAGbmmC,EAAmBpnC,IAC9B,MAAM4tB,EAAuB,GACvBiY,EAAW7lC,EAAQR,SAASsvB,KAAKgK,GAAYA,EAAQ95B,aAErD8mC,EAAsBC,IAAUF,GAAWzpC,GAC1CA,EAAM6pC,cAQF7pC,EAAM6pC,cALR7pC,EAAM8pC,SAGJ9pC,EAAM8pC,SAFJ,gBAcb,OANAxhB,OAAOa,KAAKugB,GAAqBhX,KAAKjK,IAEpC+I,EAAKvqB,KAAK,CAAE8lB,MAAOtE,EAAKxnB,MAAOwnB,GAAM,IAIhC+I,CAAI,EA2GPyZ,EAAsBA,CAACxB,EAAUK,KACrC,IACIoB,EAAQ,GACRC,EAAc,CAAC,EACfC,EAAc,CAAC,EACfC,EAAa,CAAC,EAEdC,EAAc,GAElB7B,EAASrvB,SAASkkB,IACZA,EAAKwL,WAAaA,GACpBwB,EAAYrkC,KAAKq3B,EACnB,IAGFgN,EAAYlxB,SAASkkB,IACnB,IAAIuM,EACAU,EACAjN,EAAKwM,cACPD,EAAevM,EAAKwM,aACpBS,EAAcjN,EAAKkN,cAEnBX,EAAevM,EAAKyM,eACpBQ,EAAcjN,EAAKwL,UAGrBqB,EAAYN,IAAiBM,EAAYN,IAAiB,GAAK,EAC/DQ,EAAWR,GAAgBU,EAE3BL,EAAMjkC,KAAK,CAAEwkC,QAASnN,EAAKqM,YAAae,QAASb,IACjDO,EAAY9M,EAAKqM,cAAgBS,EAAY9M,EAAKqM,cAAgB,GAAK,CAAC,IAG1E,MAAMgB,EAzIqBC,EAC3BC,EACAV,EACAD,EACAE,EACAC,KAQAH,EAAMf,MAAK,CAACj3B,EAAGioB,IAAMjoB,EAAEu4B,QAAQK,cAAc3Q,EAAEsQ,WAC/CP,EAAMf,MAAK,CAACj3B,EAAGioB,IAAMjoB,EAAEw4B,QAAUvQ,EAAEuQ,UAGnC,IAAIK,EAAS,EACTjrC,EAAW,GACXkrC,EAAe,GACfL,EAAwC,GACxCM,EAAgB,GAChBC,EAAoB,GAEpB1a,EAA8B,CAChCjd,OAAG3N,EACHkH,WAAOlH,EACPulC,UAAW,CACTvrC,UAAMgG,EACNwlC,WAAY,GACZ5a,KAAM,GACN1jB,WAAOlH,IAIX,IAAK,IAAItC,EAAI,EAAGA,EAAI4mC,EAAMjnC,OAAQK,IAC5BynC,EAASb,EAAM5mC,GAAGonC,UACpBK,EAASb,EAAM5mC,GAAGonC,SAIfO,EAAcvgB,SAASwf,EAAM5mC,GAAGmnC,WACnC3qC,EAASmG,KAAKikC,EAAM5mC,GAAGmnC,SACvBQ,EAAchlC,KAAKikC,EAAM5mC,GAAGmnC,UAI1BnnC,GAAK4mC,EAAMjnC,OAAS,GAGpBinC,EAAM5mC,GAAGmnC,SAAWP,EAAM5mC,EAAI,GAAGmnC,SAChCS,EAAkBxgB,SAASwf,EAAM5mC,GAAGmnC,WAErCO,EAAa/kC,KAAKmkC,EAAYF,EAAM5mC,GAAGmnC,UACvCS,EAAkBjlC,KAAKikC,EAAM5mC,GAAGmnC,UAG9BM,GAAUb,EAAM5mC,EAAI,GAAGonC,UAEzBla,EAAKjd,EAAI42B,EAAYY,GACrBva,EAAK2a,UAAUvrC,KAAOyqC,EAAWH,EAAM5mC,GAAGonC,SAC1Cla,EAAK2a,UAAUC,WAAatrC,EAExBkrC,EAAa/nC,QAAUnD,EAASmD,QAClC+nC,EAAa/kC,KAAKmkC,EAAYF,EAAM5mC,GAAGmnC,UAGzCja,EAAK2a,UAAU3a,KAAOwa,EACtBL,EAAa1kC,KAAKuqB,GAGlB1wB,EAAW,GACXkrC,EAAe,GACfC,EAAgB,GAChBC,EAAoB,GACpB1a,EAAO,CACLjd,OAAG3N,EACHkH,WAAOlH,EACPulC,UAAW,CACTvrC,UAAMgG,EACNwlC,WAAY,GACZ5a,KAAM,GACN1jB,WAAOlH,OAKb4qB,EAAKjd,EAAI42B,EAAYY,GACrBva,EAAK2a,UAAUvrC,KAAOyqC,EAAWH,EAAM5mC,GAAGonC,SAC1Cla,EAAK2a,UAAUC,WAAatrC,EAExBkrC,EAAa/nC,QAAUnD,EAASmD,QAClC+nC,EAAa/kC,KAAKmkC,EAAYF,EAAM5mC,GAAGmnC,UAGzCja,EAAK2a,UAAU3a,KAAOwa,EACtBL,EAAa1kC,KAAKuqB,IAKtB,OADA+F,QAAQlD,IAAI,eAAgBsX,GACrBA,CAAY,EAoCEC,CAhCT,EAkCVT,EACAD,EACAE,EACAC,GAGF,OAAOM,CAAY,EAGRU,EAAoBA,CAC/BzoC,EACAkmC,KAEA,MAAML,EAAW7lC,EAAQR,SAASsvB,KAAKgK,GAAYA,EAAQ95B,aAI3D,OAFqBqoC,EAAoBxB,EAAUK,EAEhC,C,oECjZd,MAAMwC,EACX9a,IAEA,IAAKA,EACH,OAAO,KAET,IAAI+X,EAAW,GACXjlC,EAAI,EACR,IAAK,IAAI6hC,KAAS3U,EAAM,CACtB,IAAI+a,EAAiB,CACnBxpC,KAAM,UACNG,SAAU,CACRH,KAAM,QACNQ,YAAa,CAACke,WAAW0kB,EAAMqG,WAAY/qB,WAAW0kB,EAAMsG,YAE9D7pC,WAAY,IAAKujC,EAAOpN,MAAOz0B,IAEjCilC,EAAStiC,KAAKslC,GACdjoC,GACF,CAKA,MAJ+B,CAC7BvB,KAAM,oBACNK,SAAUmmC,EAEE,C,oKCrBT,MAAM3I,EAAapP,IACxB,MAAMkb,EAAgB,IAAKlb,GAC3B,OAAKkb,GAGLA,EAActpC,SAAWspC,EAActpC,SAASkmB,QAAQ6c,GACF,IAA7Cz6B,SAASy6B,EAAMvjC,WAAW+pC,iBAG5BD,GANEA,CAMW,EAGTvK,EAAmB3Q,IAC9B,MAAMkb,EAAgB,IAAKlb,GAC3B,OAAKkb,GAGLA,EAActpC,SAAWspC,EAActpC,SAASkmB,QAAQ6c,GACF,IAA7Cz6B,SAASy6B,EAAMvjC,WAAW+pC,iBAG5BD,GANEA,CAMW,EAITE,EAAeA,CAC1BxP,EACA5L,KAEA,IAAKA,GAAQA,EAAKpuB,SAASa,QAAU,EACnC,OAAOutB,EAET,IAAIkb,EAAgB,IAAKlb,GAErBqb,GAAkB,EAqCtB,OAlCAzP,EAAQ0P,WAAW1yB,SAAS2yB,IACrBA,EAAI9rC,QACP4rC,GAAkB,EACpB,IAGEA,IAEFH,EAActpC,SAAWspC,EAActpC,SAASkmB,QAAQ6c,IACtD,MAAMnmC,EAAQmmC,EAAMvjC,WACpB,IAAI0mB,GAAS,EACb,IAAK,MAAMwgB,KAAY1M,EAAQ0P,WACzBhD,EAAS9mC,KAAOhD,EAAM+qC,iBACxBzhB,EAASwgB,EAAS7oC,OAGtB,OAAOqoB,CAAM,MAKU,IAAvB8T,EAAQ4P,YACVN,EAActpC,SAAWspC,EAActpC,SAASkmB,QAC7C6c,GAAUA,EAAMvjC,WAAWqqC,aAAU,GAAQ7P,EAAQ4P,aAKrD5P,EAAQ6E,aACXyK,EAActpC,SAAWspC,EAActpC,SAASkmB,QAC7C6c,GAA6C,MAAnCA,EAAMvjC,WAAW+pC,iBAIzBD,CAAa,EAGTtK,EAAyB5Q,IACpC,IAAI0b,EAAsBvD,IAAUnY,GAAO2U,GAClCA,EAAMvjC,WAAWuqC,YAEtBC,EAAS,GAYb,OAXA9kB,OAAO+E,OAAO6f,GAAqB9yB,SAASyiB,IAC1C,IAAIwQ,EAAc,IAAKxQ,EAAM,IAC7B,MAAMyQ,EAAezQ,EAAMnK,KAAK6a,GACvBA,EAAE3qC,aAEXyqC,EAAYzqC,WAAa,CACvBi6B,MAAOyQ,EACPxQ,WAAYD,EAAM,GAAGj6B,WAAWk6B,YAElCsQ,EAAOnmC,KAAKomC,EAAY,IAEnBD,CAAM,C,kHC1Ff,WACE,MAAM,EAACI,EAAe,EAACC,IAAqBriB,EAAAA,EAAAA,aAGtC,EAAC+R,EAAQ,EAACuQ,IAActiB,EAAAA,EAAAA,WAAkB,GAmBhD,OAhBAE,EAAAA,EAAAA,YAAU,KACR,WACE,IACEoiB,GAAW,GAEX,MAAMlc,OCboBsM,WAChC,IACE,MAAM6I,QAAYC,IAASc,EAAAA,GAAM,qBAGjC,aAFqBf,EAAII,QAEX4G,eAChB,CAAE,MAAOtmC,GAEP,OADAkwB,QAAQzuB,MAAMzB,GACP,IACT,GDIyBumC,GAEnBH,EAAkBjc,GAClBkc,GAAW,EACb,CAAE,MAAOrmC,GACPkwB,QAAQzuB,MAAMzB,GACdqmC,GAAW,EACb,CACD,EAZD,EAYI,GACH,IAEI,CAAEF,iBAAgBrQ,UAC1B,C,sHEhBM,MAAM0Q,EAAcA,KACzB,MAAM,EAAC1Q,EAAQ,EAACuQ,IAActiB,EAAAA,EAAAA,WAAkB,GAsDhD,MAAO,CAAE0iB,SApDQhQ,UAGf,IAAIiQ,EACJ,GAHAL,GAAW,GAGU,QAAjBtQ,EAAQsD,KACV,OAAQtD,EAAQuD,WACd,IAAK,MACHoN,QAAgBhG,EAAAA,EAAAA,MAChB,MACF,IAAK,QACHgG,QAAgB9F,EAAAA,EAAAA,IACd7K,EAAQ4Q,WACR5Q,EAAQ4Q,YAEV,MACF,IAAK,QACHD,QAAgB9F,EAAAA,EAAAA,IACd7K,EAAQ6Q,WACR7Q,EAAQ8Q,eAKd,OAAQ9Q,EAAQuD,WACd,IAAK,MACHoN,QAAgBlF,EAAAA,EAAAA,IAAezL,EAAQsD,KAAK19B,IAC5C,MACF,IAAK,QACH+qC,QAAgBlF,EAAAA,EAAAA,IACdzL,EAAQsD,KAAK19B,GACb,GACA,GACAo6B,EAAQ4Q,WACR5Q,EAAQ4Q,YAEV,MACF,IAAK,QACHD,QAAgBlF,EAAAA,EAAAA,IACdzL,EAAQsD,KAAK19B,GACb,GACA,GACAo6B,EAAQ6Q,WACR7Q,EAAQ8Q,UAOhB,OADAR,GAAW,GACJK,CAAO,EAGG5Q,UAAS,EAGjBgR,EAAkBA,KAC7B,MAAM,EAAChR,EAAQ,EAACuQ,IAActiB,EAAAA,EAAAA,WAAkB,GAuDhD,MAAO,CAAE0iB,SArDQhQ,UAGf,IAAIiQ,EACJ,GAHAL,GAAW,GAGa,QAApBtQ,EAAQxgB,QACV,OAAQwgB,EAAQuD,WACd,IAAK,MAEHoN,QAAgB/G,EAAAA,EAAAA,MAEhB,MACF,IAAK,QACH+G,QAAgBrF,EAAAA,EAAAA,IACdtL,EAAQ4Q,WACR5Q,EAAQ4Q,YAGV,MACF,IAAK,QACHD,QAAgBrF,EAAAA,EAAAA,IACdtL,EAAQ6Q,WACR7Q,EAAQ8Q,eAOd,OAAQ9Q,EAAQuD,WACd,IAAK,MACHoN,QAAgB3E,EAAAA,EAAAA,IAAkBhM,EAAQxgB,QAAQ5Z,IAClD,MACF,IAAK,QACH+qC,QAAgB3E,EAAAA,EAAAA,IACdhM,EAAQxgB,QAAQ5Z,GAChBo6B,EAAQ4Q,WACR5Q,EAAQ4Q,YAEV,MACF,IAAK,QACHD,QAAgB3E,EAAAA,EAAAA,IACdhM,EAAQxgB,QAAQ5Z,GAChBo6B,EAAQ6Q,WACR7Q,EAAQ8Q,UAOhB,OADAR,GAAW,GACJK,CAAO,EAGG5Q,UAAS,C,oBCxG9BiR,EAAOxmB,QAZP,SAAmBymB,EAAOC,GAIxB,IAHA,IAAIvV,GAAS,EACT90B,EAAkB,MAAToqC,EAAgB,EAAIA,EAAMpqC,SAE9B80B,EAAQ90B,IAC8B,IAAzCqqC,EAASD,EAAMtV,GAAQA,EAAOsV,KAIpC,OAAOA,CACT,C,wBCnBA,IAAIE,EAAkB,EAAQ,OAC1BC,EAAK,EAAQ,OAMbzrB,EAHcuF,OAAOzc,UAGQkX,eAoBjCqrB,EAAOxmB,QARP,SAAqBqB,EAAQR,EAAKxnB,GAChC,IAAIwtC,EAAWxlB,EAAOR,GAChB1F,EAAe7W,KAAK+c,EAAQR,IAAQ+lB,EAAGC,EAAUxtC,UACxC2F,IAAV3F,GAAyBwnB,KAAOQ,IACnCslB,EAAgBtlB,EAAQR,EAAKxnB,EAEjC,C,wBCzBA,IAAIytC,EAAa,EAAQ,OACrBvlB,EAAO,EAAQ,MAenBilB,EAAOxmB,QAJP,SAAoBqB,EAAQ6C,GAC1B,OAAO7C,GAAUylB,EAAW5iB,EAAQ3C,EAAK2C,GAAS7C,EACpD,C,wBCdA,IAAIylB,EAAa,EAAQ,OACrBC,EAAS,EAAQ,OAerBP,EAAOxmB,QAJP,SAAsBqB,EAAQ6C,GAC5B,OAAO7C,GAAUylB,EAAW5iB,EAAQ6iB,EAAO7iB,GAAS7C,EACtD,C,wBCdA,IAAI2lB,EAAQ,EAAQ,OAChBC,EAAY,EAAQ,OACpBC,EAAc,EAAQ,OACtBC,EAAa,EAAQ,OACrBC,EAAe,EAAQ,OACvBC,EAAc,EAAQ,OACtBC,EAAY,EAAQ,KACpBC,EAAc,EAAQ,OACtBC,EAAgB,EAAQ,MACxBC,EAAa,EAAQ,OACrBC,EAAe,EAAQ,OACvBC,EAAS,EAAQ,OACjBC,EAAiB,EAAQ,OACzBC,EAAiB,EAAQ,OACzBC,EAAkB,EAAQ,OAC1B1rC,EAAU,EAAQ,MAClB2rC,EAAW,EAAQ,OACnBC,EAAQ,EAAQ,OAChBC,EAAW,EAAQ,OACnBC,EAAQ,EAAQ,OAChB3mB,EAAO,EAAQ,MACfwlB,EAAS,EAAQ,OAQjBoB,EAAU,qBAKVC,EAAU,oBAIVC,EAAY,kBAoBZC,EAAgB,CAAC,EACrBA,EAAcH,GAAWG,EA7BV,kBA8BfA,EAfqB,wBAeWA,EAdd,qBAelBA,EA9Bc,oBA8BWA,EA7BX,iBA8BdA,EAfiB,yBAeWA,EAdX,yBAejBA,EAdc,sBAcWA,EAbV,uBAcfA,EAbe,uBAaWA,EA5Bb,gBA6BbA,EA5BgB,mBA4BWA,EAAcD,GACzCC,EA3BgB,mBA2BWA,EA1Bd,gBA2BbA,EA1BgB,mBA0BWA,EAzBX,mBA0BhBA,EAhBe,uBAgBWA,EAfJ,8BAgBtBA,EAfgB,wBAeWA,EAdX,yBAcsC,EACtDA,EArCe,kBAqCWA,EAAcF,GACxCE,EA5BiB,qBA4BW,EA8F5B9B,EAAOxmB,QA5EP,SAASuoB,EAAUlvC,EAAOmvC,EAASC,EAAY5nB,EAAKQ,EAAQmN,GAC1D,IAAI9H,EACAgiB,EAnEgB,EAmEPF,EACTG,EAnEgB,EAmEPH,EACTI,EAnEmB,EAmEVJ,EAKb,GAHIC,IACF/hB,EAASrF,EAASonB,EAAWpvC,EAAOwnB,EAAKQ,EAAQmN,GAASia,EAAWpvC,SAExD2F,IAAX0nB,EACF,OAAOA,EAET,IAAKuhB,EAAS5uC,GACZ,OAAOA,EAET,IAAIwvC,EAAQzsC,EAAQ/C,GACpB,GAAIwvC,GAEF,GADAniB,EAASkhB,EAAevuC,IACnBqvC,EACH,OAAOpB,EAAUjuC,EAAOqtB,OAErB,CACL,IAAIoiB,EAAMnB,EAAOtuC,GACb0vC,EAASD,GAAOV,GA7EX,8BA6EsBU,EAE/B,GAAIf,EAAS1uC,GACX,OAAOguC,EAAYhuC,EAAOqvC,GAE5B,GAAII,GAAOT,GAAaS,GAAOX,GAAYY,IAAW1nB,GAEpD,GADAqF,EAAUiiB,GAAUI,EAAU,CAAC,EAAIjB,EAAgBzuC,IAC9CqvC,EACH,OAAOC,EACHnB,EAAcnuC,EAAO+tC,EAAa1gB,EAAQrtB,IAC1CkuC,EAAYluC,EAAO8tC,EAAWzgB,EAAQrtB,QAEvC,CACL,IAAKivC,EAAcQ,GACjB,OAAOznB,EAAShoB,EAAQ,CAAC,EAE3BqtB,EAASmhB,EAAexuC,EAAOyvC,EAAKJ,EACtC,CACF,CAEAla,IAAUA,EAAQ,IAAIwY,GACtB,IAAIgC,EAAUxa,EAAMjO,IAAIlnB,GACxB,GAAI2vC,EACF,OAAOA,EAETxa,EAAMzN,IAAI1nB,EAAOqtB,GAEbwhB,EAAM7uC,GACRA,EAAMmZ,SAAQ,SAASy2B,GACrBviB,EAAOwiB,IAAIX,EAAUU,EAAUT,EAASC,EAAYQ,EAAU5vC,EAAOm1B,GACvE,IACSwZ,EAAM3uC,IACfA,EAAMmZ,SAAQ,SAASy2B,EAAUpoB,GAC/B6F,EAAO3F,IAAIF,EAAK0nB,EAAUU,EAAUT,EAASC,EAAY5nB,EAAKxnB,EAAOm1B,GACvE,IAGF,IAIIp2B,EAAQywC,OAAQ7pC,GAJL4pC,EACVD,EAASjB,EAAeD,EACxBkB,EAAS5B,EAASxlB,GAEkBloB,GASzC,OARA4tC,EAAU7uC,GAASiB,GAAO,SAAS4vC,EAAUpoB,GACvCzoB,IAEF6wC,EAAW5vC,EADXwnB,EAAMooB,IAIR/B,EAAYxgB,EAAQ7F,EAAK0nB,EAAUU,EAAUT,EAASC,EAAY5nB,EAAKxnB,EAAOm1B,GAChF,IACO9H,CACT,C,uBCnKA,IAAIuhB,EAAW,EAAQ,OAGnBkB,EAAezoB,OAAO3T,OAUtBq8B,EAAc,WAChB,SAAS/nB,IAAU,CACnB,OAAO,SAASgoB,GACd,IAAKpB,EAASoB,GACZ,MAAO,CAAC,EAEV,GAAIF,EACF,OAAOA,EAAaE,GAEtBhoB,EAAOpd,UAAYolC,EACnB,IAAI3iB,EAAS,IAAIrF,EAEjB,OADAA,EAAOpd,eAAYjF,EACZ0nB,CACT,CACF,CAdiB,GAgBjB8f,EAAOxmB,QAAUopB,C,wBC7BjB,IAAIzB,EAAS,EAAQ,OACjB2B,EAAe,EAAQ,OAgB3B9C,EAAOxmB,QAJP,SAAmB3mB,GACjB,OAAOiwC,EAAajwC,IAVT,gBAUmBsuC,EAAOtuC,EACvC,C,wBCfA,IAAIsuC,EAAS,EAAQ,OACjB2B,EAAe,EAAQ,OAgB3B9C,EAAOxmB,QAJP,SAAmB3mB,GACjB,OAAOiwC,EAAajwC,IAVT,gBAUmBsuC,EAAOtuC,EACvC,C,wBCfA,IAAI4uC,EAAW,EAAQ,OACnBsB,EAAc,EAAQ,OACtBC,EAAe,EAAQ,OAMvBruB,EAHcuF,OAAOzc,UAGQkX,eAwBjCqrB,EAAOxmB,QAfP,SAAoBqB,GAClB,IAAK4mB,EAAS5mB,GACZ,OAAOmoB,EAAanoB,GAEtB,IAAIooB,EAAUF,EAAYloB,GACtBqF,EAAS,GAEb,IAAK,IAAI7F,KAAOQ,GACD,eAAPR,IAAyB4oB,GAAYtuB,EAAe7W,KAAK+c,EAAQR,KACrE6F,EAAOrnB,KAAKwhB,GAGhB,OAAO6F,CACT,C,wBC9BA,IAAIgjB,EAAa,EAAQ,OAezBlD,EAAOxmB,QANP,SAA0B2pB,GACxB,IAAIjjB,EAAS,IAAIijB,EAAY5pB,YAAY4pB,EAAYC,YAErD,OADA,IAAIF,EAAWhjB,GAAQ3F,IAAI,IAAI2oB,EAAWC,IACnCjjB,CACT,C,mCCbA,IAAI/tB,EAAO,EAAQ,OAGfkxC,EAA4C7pB,IAAYA,EAAQ8pB,UAAY9pB,EAG5E+pB,EAAaF,GAA4CrD,IAAWA,EAAOsD,UAAYtD,EAMvFwD,EAHgBD,GAAcA,EAAW/pB,UAAY6pB,EAG5BlxC,EAAKqxC,YAAShrC,EACvCirC,EAAcD,EAASA,EAAOC,iBAAcjrC,EAqBhDwnC,EAAOxmB,QAXP,SAAqBkqB,EAAQxB,GAC3B,GAAIA,EACF,OAAOwB,EAAOjtC,QAEhB,IAAIZ,EAAS6tC,EAAO7tC,OAChBqqB,EAASujB,EAAcA,EAAY5tC,GAAU,IAAI6tC,EAAOnqB,YAAY1jB,GAGxE,OADA6tC,EAAOC,KAAKzjB,GACLA,CACT,C,wBChCA,IAAI0jB,EAAmB,EAAQ,OAe/B5D,EAAOxmB,QALP,SAAuBqqB,EAAU3B,GAC/B,IAAIwB,EAASxB,EAAS0B,EAAiBC,EAASH,QAAUG,EAASH,OACnE,OAAO,IAAIG,EAAStqB,YAAYmqB,EAAQG,EAASC,WAAYD,EAAST,WACxE,C,oBCZA,IAAIW,EAAU,OAed/D,EAAOxmB,QANP,SAAqBwqB,GACnB,IAAI9jB,EAAS,IAAI8jB,EAAOzqB,YAAYyqB,EAAOtmB,OAAQqmB,EAAQE,KAAKD,IAEhE,OADA9jB,EAAOgkB,UAAYF,EAAOE,UACnBhkB,CACT,C,wBCdA,IAAI7G,EAAS,EAAQ,OAGjB8qB,EAAc9qB,EAASA,EAAO5b,eAAYjF,EAC1C4rC,EAAgBD,EAAcA,EAAYE,aAAU7rC,EAaxDwnC,EAAOxmB,QAJP,SAAqB8qB,GACnB,OAAOF,EAAgBlqB,OAAOkqB,EAActmC,KAAKwmC,IAAW,CAAC,CAC/D,C,wBCfA,IAAIV,EAAmB,EAAQ,OAe/B5D,EAAOxmB,QALP,SAAyB+qB,EAAYrC,GACnC,IAAIwB,EAASxB,EAAS0B,EAAiBW,EAAWb,QAAUa,EAAWb,OACvE,OAAO,IAAIa,EAAWhrB,YAAYmqB,EAAQa,EAAWT,WAAYS,EAAW1uC,OAC9E,C,kBCMAmqC,EAAOxmB,QAXP,SAAmBkE,EAAQuiB,GACzB,IAAItV,GAAS,EACT90B,EAAS6nB,EAAO7nB,OAGpB,IADAoqC,IAAUA,EAAQtqC,MAAME,MACf80B,EAAQ90B,GACfoqC,EAAMtV,GAASjN,EAAOiN,GAExB,OAAOsV,CACT,C,wBCjBA,IAAIS,EAAc,EAAQ,OACtBP,EAAkB,EAAQ,OAsC9BH,EAAOxmB,QA1BP,SAAoBkE,EAAQ9rB,EAAOipB,EAAQonB,GACzC,IAAIuC,GAAS3pB,EACbA,IAAWA,EAAS,CAAC,GAKrB,IAHA,IAAI8P,GAAS,EACT90B,EAASjE,EAAMiE,SAEV80B,EAAQ90B,GAAQ,CACvB,IAAIwkB,EAAMzoB,EAAM+4B,GAEZ8Z,EAAWxC,EACXA,EAAWpnB,EAAOR,GAAMqD,EAAOrD,GAAMA,EAAKQ,EAAQ6C,QAClDllB,OAEaA,IAAbisC,IACFA,EAAW/mB,EAAOrD,IAEhBmqB,EACFrE,EAAgBtlB,EAAQR,EAAKoqB,GAE7B/D,EAAY7lB,EAAQR,EAAKoqB,EAE7B,CACA,OAAO5pB,CACT,C,wBCrCA,IAAIylB,EAAa,EAAQ,OACrBoE,EAAa,EAAQ,OAczB1E,EAAOxmB,QAJP,SAAqBkE,EAAQ7C,GAC3B,OAAOylB,EAAW5iB,EAAQgnB,EAAWhnB,GAAS7C,EAChD,C,uBCbA,IAAIylB,EAAa,EAAQ,OACrBqE,EAAe,EAAQ,OAc3B3E,EAAOxmB,QAJP,SAAuBkE,EAAQ7C,GAC7B,OAAOylB,EAAW5iB,EAAQinB,EAAajnB,GAAS7C,EAClD,C,wBCbA,IAAI+pB,EAAiB,EAAQ,OACzBD,EAAe,EAAQ,OACvBpE,EAAS,EAAQ,OAcrBP,EAAOxmB,QAJP,SAAsBqB,GACpB,OAAO+pB,EAAe/pB,EAAQ0lB,EAAQoE,EACxC,C,wBCdA,IAGIE,EAHU,EAAQ,KAGHC,CAAQ5qB,OAAO6qB,eAAgB7qB,QAElD8lB,EAAOxmB,QAAUqrB,C,wBCLjB,IAAIG,EAAY,EAAQ,OACpBH,EAAe,EAAQ,OACvBH,EAAa,EAAQ,OACrBO,EAAY,EAAQ,OAYpBN,EATmBzqB,OAAOc,sBASqB,SAASH,GAE1D,IADA,IAAIqF,EAAS,GACNrF,GACLmqB,EAAU9kB,EAAQwkB,EAAW7pB,IAC7BA,EAASgqB,EAAahqB,GAExB,OAAOqF,CACT,EAPuC+kB,EASvCjF,EAAOxmB,QAAUmrB,C,oBCvBjB,IAGIhwB,EAHcuF,OAAOzc,UAGQkX,eAqBjCqrB,EAAOxmB,QAZP,SAAwBymB,GACtB,IAAIpqC,EAASoqC,EAAMpqC,OACfqqB,EAAS,IAAI+f,EAAM1mB,YAAY1jB,GAOnC,OAJIA,GAA6B,iBAAZoqC,EAAM,IAAkBtrB,EAAe7W,KAAKmiC,EAAO,WACtE/f,EAAOyK,MAAQsV,EAAMtV,MACrBzK,EAAO1sB,MAAQysC,EAAMzsC,OAEhB0sB,CACT,C,wBCvBA,IAAI0jB,EAAmB,EAAQ,OAC3BsB,EAAgB,EAAQ,OACxBC,EAAc,EAAQ,OACtBC,EAAc,EAAQ,OACtBC,EAAkB,EAAQ,OAwE9BrF,EAAOxmB,QApCP,SAAwBqB,EAAQynB,EAAKJ,GACnC,IAAIoD,EAAOzqB,EAAOtB,YAClB,OAAQ+oB,GACN,IA3BiB,uBA4Bf,OAAOsB,EAAiB/oB,GAE1B,IAvCU,mBAwCV,IAvCU,gBAwCR,OAAO,IAAIyqB,GAAMzqB,GAEnB,IAjCc,oBAkCZ,OAAOqqB,EAAcrqB,EAAQqnB,GAE/B,IAnCa,wBAmCI,IAlCJ,wBAmCb,IAlCU,qBAkCI,IAjCH,sBAiCkB,IAhClB,sBAiCX,IAhCW,sBAgCI,IA/BG,6BA+BmB,IA9BzB,uBA8ByC,IA7BzC,uBA8BV,OAAOmD,EAAgBxqB,EAAQqnB,GAEjC,IAjDS,eA2DT,IAxDS,eAyDP,OAAO,IAAIoD,EARb,IAnDY,kBAoDZ,IAjDY,kBAkDV,OAAO,IAAIA,EAAKzqB,GAElB,IAtDY,kBAuDV,OAAOsqB,EAAYtqB,GAKrB,IAzDY,kBA0DV,OAAOuqB,EAAYvqB,GAEzB,C,wBC1EA,IAAI+nB,EAAa,EAAQ,MACrBiC,EAAe,EAAQ,OACvB9B,EAAc,EAAQ,OAe1B/C,EAAOxmB,QANP,SAAyBqB,GACvB,MAAqC,mBAAtBA,EAAOtB,aAA8BwpB,EAAYloB,GAE5D,CAAC,EADD+nB,EAAWiC,EAAahqB,GAE9B,C,oBCIAmlB,EAAOxmB,QAVP,SAAsBqB,GACpB,IAAIqF,EAAS,GACb,GAAc,MAAVrF,EACF,IAAK,IAAIR,KAAOH,OAAOW,GACrBqF,EAAOrnB,KAAKwhB,GAGhB,OAAO6F,CACT,C,wBCjBA,IAAI6hB,EAAY,EAAQ,OA4BxB/B,EAAOxmB,QAJP,SAAmB3mB,GACjB,OAAOkvC,EAAUlvC,EAAO0yC,EAC1B,C,wBC1BA,IAAIC,EAAY,EAAQ,OACpBC,EAAY,EAAQ,OACpBC,EAAW,EAAQ,OAGnBC,EAAYD,GAAYA,EAASlE,MAmBjCA,EAAQmE,EAAYF,EAAUE,GAAaH,EAE/CxF,EAAOxmB,QAAUgoB,C,wBC1BjB,IAAIoE,EAAY,EAAQ,OACpBH,EAAY,EAAQ,OACpBC,EAAW,EAAQ,OAGnBG,EAAYH,GAAYA,EAAShE,MAmBjCA,EAAQmE,EAAYJ,EAAUI,GAAaD,EAE/C5F,EAAOxmB,QAAUkoB,C,wBC1BjB,IAAIoE,EAAgB,EAAQ,OACxBC,EAAa,EAAQ,OACrBC,EAAc,EAAQ,OA6B1BhG,EAAOxmB,QAJP,SAAgBqB,GACd,OAAOmrB,EAAYnrB,GAAUirB,EAAcjrB,GAAQ,GAAQkrB,EAAWlrB,EACxE,C","sources":["webpack://marine-debris-tracker/./node_modules/@material-ui/core/esm/FormGroup/FormGroup.js","webpack://marine-debris-tracker/./node_modules/@material-ui/core/esm/RadioGroup/RadioGroup.js","webpack://marine-debris-tracker/./node_modules/@material-ui/core/esm/RadioGroup/RadioGroupContext.js","webpack://marine-debris-tracker/./node_modules/@material-ui/styles/esm/ThemeProvider/ThemeProvider.js","webpack://marine-debris-tracker/./node_modules/@turf/helpers/dist/es/index.js","webpack://marine-debris-tracker/./node_modules/@turf/boolean-point-in-polygon/dist/es/index.js","webpack://marine-debris-tracker/./node_modules/@turf/invariant/dist/es/index.js","webpack://marine-debris-tracker/./node_modules/@turf/meta/dist/es/index.js","webpack://marine-debris-tracker/./node_modules/@turf/points-within-polygon/dist/es/index.js","webpack://marine-debris-tracker/./node_modules/leaflet-draw/dist/leaflet.draw.js","webpack://marine-debris-tracker/./node_modules/react-loader-spinner/dist/index.js","webpack://marine-debris-tracker/./node_modules/react-loader-spinner/dist/loader/Audio.js","webpack://marine-debris-tracker/./node_modules/react-loader-spinner/dist/loader/BallTriangle.js","webpack://marine-debris-tracker/./node_modules/react-loader-spinner/dist/loader/Bars.js","webpack://marine-debris-tracker/./node_modules/react-loader-spinner/dist/loader/Circles.js","webpack://marine-debris-tracker/./node_modules/react-loader-spinner/dist/loader/CradleLoader.js","webpack://marine-debris-tracker/./node_modules/react-loader-spinner/dist/loader/Grid.js","webpack://marine-debris-tracker/./node_modules/react-loader-spinner/dist/loader/Hearts.js","webpack://marine-debris-tracker/./node_modules/react-loader-spinner/dist/loader/MutatingDots.js","webpack://marine-debris-tracker/./node_modules/react-loader-spinner/dist/loader/Oval.js","webpack://marine-debris-tracker/./node_modules/react-loader-spinner/dist/loader/Plane.js","webpack://marine-debris-tracker/./node_modules/react-loader-spinner/dist/loader/Puff.js","webpack://marine-debris-tracker/./node_modules/react-loader-spinner/dist/loader/RevolvingDot.js","webpack://marine-debris-tracker/./node_modules/react-loader-spinner/dist/loader/Rings.js","webpack://marine-debris-tracker/./node_modules/react-loader-spinner/dist/loader/TailSpin.js","webpack://marine-debris-tracker/./node_modules/react-loader-spinner/dist/loader/ThreeDots.js","webpack://marine-debris-tracker/./node_modules/react-loader-spinner/dist/loader/Triangle.js","webpack://marine-debris-tracker/./node_modules/react-loader-spinner/dist/loader/Watch.js","webpack://marine-debris-tracker/./node_modules/react-loader-spinner/dist/loader/index.js","webpack://marine-debris-tracker/./src/components/DataPlatform/Charts/PieChart.tsx","webpack://marine-debris-tracker/./src/components/DataPlatform/Filters/FiltersComponents.tsx","webpack://marine-debris-tracker/./node_modules/kdbush/src/sort.js","webpack://marine-debris-tracker/./node_modules/kdbush/src/within.js","webpack://marine-debris-tracker/./node_modules/kdbush/src/index.js","webpack://marine-debris-tracker/./node_modules/kdbush/src/range.js","webpack://marine-debris-tracker/./node_modules/supercluster/index.js","webpack://marine-debris-tracker/./src/components/DataPlatform/Map/MapComponents.tsx","webpack://marine-debris-tracker/./src/components/DataPlatform/Map/ManualEventMarker.tsx","webpack://marine-debris-tracker/./src/components/DataPlatform/Map/ManualEventPopup.tsx","webpack://marine-debris-tracker/./src/components/DataPlatform/ItemsMap.tsx","webpack://marine-debris-tracker/./node_modules/@material-ui/core/esm/internal/svg-icons/RadioButtonUnchecked.js","webpack://marine-debris-tracker/./node_modules/@material-ui/core/esm/internal/svg-icons/RadioButtonChecked.js","webpack://marine-debris-tracker/./node_modules/@material-ui/core/esm/Radio/RadioButtonIcon.js","webpack://marine-debris-tracker/./node_modules/@material-ui/core/esm/Radio/Radio.js","webpack://marine-debris-tracker/./node_modules/@material-ui/core/esm/RadioGroup/useRadioGroup.js","webpack://marine-debris-tracker/./src/components/Forms/RadioButton.tsx","webpack://marine-debris-tracker/./src/components/Forms/Select.tsx","webpack://marine-debris-tracker/./src/mdtApi/getData.ts","webpack://marine-debris-tracker/./src/util/data/GeoJSONtoCSV.ts","webpack://marine-debris-tracker/./src/util/data/chartFunctions.ts","webpack://marine-debris-tracker/./src/util/data/convertToGeoJSON.ts","webpack://marine-debris-tracker/./src/util/data/itemsDataFunctions.ts","webpack://marine-debris-tracker/./src/util/hooks/useGlobalMaterials.tsx","webpack://marine-debris-tracker/./src/dataApi/getGlobalMaterials.ts","webpack://marine-debris-tracker/./src/util/useItemData.tsx","webpack://marine-debris-tracker/./node_modules/lodash/_arrayEach.js","webpack://marine-debris-tracker/./node_modules/lodash/_assignValue.js","webpack://marine-debris-tracker/./node_modules/lodash/_baseAssign.js","webpack://marine-debris-tracker/./node_modules/lodash/_baseAssignIn.js","webpack://marine-debris-tracker/./node_modules/lodash/_baseClone.js","webpack://marine-debris-tracker/./node_modules/lodash/_baseCreate.js","webpack://marine-debris-tracker/./node_modules/lodash/_baseIsMap.js","webpack://marine-debris-tracker/./node_modules/lodash/_baseIsSet.js","webpack://marine-debris-tracker/./node_modules/lodash/_baseKeysIn.js","webpack://marine-debris-tracker/./node_modules/lodash/_cloneArrayBuffer.js","webpack://marine-debris-tracker/./node_modules/lodash/_cloneBuffer.js","webpack://marine-debris-tracker/./node_modules/lodash/_cloneDataView.js","webpack://marine-debris-tracker/./node_modules/lodash/_cloneRegExp.js","webpack://marine-debris-tracker/./node_modules/lodash/_cloneSymbol.js","webpack://marine-debris-tracker/./node_modules/lodash/_cloneTypedArray.js","webpack://marine-debris-tracker/./node_modules/lodash/_copyArray.js","webpack://marine-debris-tracker/./node_modules/lodash/_copyObject.js","webpack://marine-debris-tracker/./node_modules/lodash/_copySymbols.js","webpack://marine-debris-tracker/./node_modules/lodash/_copySymbolsIn.js","webpack://marine-debris-tracker/./node_modules/lodash/_getAllKeysIn.js","webpack://marine-debris-tracker/./node_modules/lodash/_getPrototype.js","webpack://marine-debris-tracker/./node_modules/lodash/_getSymbolsIn.js","webpack://marine-debris-tracker/./node_modules/lodash/_initCloneArray.js","webpack://marine-debris-tracker/./node_modules/lodash/_initCloneByTag.js","webpack://marine-debris-tracker/./node_modules/lodash/_initCloneObject.js","webpack://marine-debris-tracker/./node_modules/lodash/_nativeKeysIn.js","webpack://marine-debris-tracker/./node_modules/lodash/cloneDeep.js","webpack://marine-debris-tracker/./node_modules/lodash/isMap.js","webpack://marine-debris-tracker/./node_modules/lodash/isSet.js","webpack://marine-debris-tracker/./node_modules/lodash/keysIn.js"],"sourcesContent":["import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport clsx from 'clsx';\nimport withStyles from '../styles/withStyles';\nexport var styles = {\n /* Styles applied to the root element. */\n root: {\n display: 'flex',\n flexDirection: 'column',\n flexWrap: 'wrap'\n },\n /* Styles applied to the root element if `row={true}`. */\n row: {\n flexDirection: 'row'\n }\n};\n/**\n * `FormGroup` wraps controls such as `Checkbox` and `Switch`.\n * It provides compact row layout.\n * For the `Radio`, you should be using the `RadioGroup` component instead of this one.\n */\n\nvar FormGroup = /*#__PURE__*/React.forwardRef(function FormGroup(props, ref) {\n var classes = props.classes,\n className = props.className,\n _props$row = props.row,\n row = _props$row === void 0 ? false : _props$row,\n other = _objectWithoutProperties(props, [\"classes\", \"className\", \"row\"]);\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n className: clsx(classes.root, className, row && classes.row),\n ref: ref\n }, other));\n});\nprocess.env.NODE_ENV !== \"production\" ? void 0 : void 0;\nexport default withStyles(styles, {\n name: 'MuiFormGroup'\n})(FormGroup);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport FormGroup from '../FormGroup';\nimport useForkRef from '../utils/useForkRef';\nimport useControlled from '../utils/useControlled';\nimport RadioGroupContext from './RadioGroupContext';\nimport useId from '../utils/unstable_useId';\nvar RadioGroup = /*#__PURE__*/React.forwardRef(function RadioGroup(props, ref) {\n var actions = props.actions,\n children = props.children,\n nameProp = props.name,\n valueProp = props.value,\n onChange = props.onChange,\n other = _objectWithoutProperties(props, [\"actions\", \"children\", \"name\", \"value\", \"onChange\"]);\n var rootRef = React.useRef(null);\n var _useControlled = useControlled({\n controlled: valueProp,\n default: props.defaultValue,\n name: 'RadioGroup'\n }),\n _useControlled2 = _slicedToArray(_useControlled, 2),\n value = _useControlled2[0],\n setValue = _useControlled2[1];\n React.useImperativeHandle(actions, function () {\n return {\n focus: function focus() {\n var input = rootRef.current.querySelector('input:not(:disabled):checked');\n if (!input) {\n input = rootRef.current.querySelector('input:not(:disabled)');\n }\n if (input) {\n input.focus();\n }\n }\n };\n }, []);\n var handleRef = useForkRef(ref, rootRef);\n var handleChange = function handleChange(event) {\n setValue(event.target.value);\n if (onChange) {\n onChange(event, event.target.value);\n }\n };\n var name = useId(nameProp);\n return /*#__PURE__*/React.createElement(RadioGroupContext.Provider, {\n value: {\n name: name,\n onChange: handleChange,\n value: value\n }\n }, /*#__PURE__*/React.createElement(FormGroup, _extends({\n role: \"radiogroup\",\n ref: handleRef\n }, other), children));\n});\nprocess.env.NODE_ENV !== \"production\" ? void 0 : void 0;\nexport default RadioGroup;","import * as React from 'react';\n/**\n * @ignore - internal component.\n */\n\nvar RadioGroupContext = React.createContext();\nif (process.env.NODE_ENV !== 'production') {\n RadioGroupContext.displayName = 'RadioGroupContext';\n}\nexport default RadioGroupContext;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport React from 'react';\nimport { exactProp } from '@material-ui/utils';\nimport ThemeContext from '../useTheme/ThemeContext';\nimport useTheme from '../useTheme';\nimport nested from './nested'; // To support composition of theme.\n\nfunction mergeOuterLocalTheme(outerTheme, localTheme) {\n if (typeof localTheme === 'function') {\n var mergedTheme = localTheme(outerTheme);\n if (process.env.NODE_ENV !== 'production') {\n if (!mergedTheme) {\n console.error(['Material-UI: You should return an object from your theme function, i.e.', ' ({})} />'].join('\\n'));\n }\n }\n return mergedTheme;\n }\n return _extends({}, outerTheme, localTheme);\n}\n/**\n * This component takes a `theme` prop.\n * It makes the `theme` available down the React tree thanks to React context.\n * This component should preferably be used at **the root of your component tree**.\n */\n\nfunction ThemeProvider(props) {\n var children = props.children,\n localTheme = props.theme;\n var outerTheme = useTheme();\n if (process.env.NODE_ENV !== 'production') {\n if (outerTheme === null && typeof localTheme === 'function') {\n console.error(['Material-UI: You are providing a theme function prop to the ThemeProvider component:', ' outerTheme} />', '', 'However, no outer theme is present.', 'Make sure a theme is already injected higher in the React tree ' + 'or provide a theme object.'].join('\\n'));\n }\n }\n var theme = React.useMemo(function () {\n var output = outerTheme === null ? localTheme : mergeOuterLocalTheme(outerTheme, localTheme);\n if (output != null) {\n output[nested] = outerTheme !== null;\n }\n return output;\n }, [localTheme, outerTheme]);\n return /*#__PURE__*/React.createElement(ThemeContext.Provider, {\n value: theme\n }, children);\n}\nprocess.env.NODE_ENV !== \"production\" ? void 0 : void 0;\nif (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== \"production\" ? void 0 : void 0;\n}\nexport default ThemeProvider;","/**\n * @module helpers\n */\n/**\n * Earth Radius used with the Harvesine formula and approximates using a spherical (non-ellipsoid) Earth.\n *\n * @memberof helpers\n * @type {number}\n */\nexport var earthRadius = 6371008.8;\n/**\n * Unit of measurement factors using a spherical (non-ellipsoid) earth radius.\n *\n * @memberof helpers\n * @type {Object}\n */\nexport var factors = {\n centimeters: earthRadius * 100,\n centimetres: earthRadius * 100,\n degrees: earthRadius / 111325,\n feet: earthRadius * 3.28084,\n inches: earthRadius * 39.37,\n kilometers: earthRadius / 1000,\n kilometres: earthRadius / 1000,\n meters: earthRadius,\n metres: earthRadius,\n miles: earthRadius / 1609.344,\n millimeters: earthRadius * 1000,\n millimetres: earthRadius * 1000,\n nauticalmiles: earthRadius / 1852,\n radians: 1,\n yards: earthRadius * 1.0936\n};\n/**\n * Units of measurement factors based on 1 meter.\n *\n * @memberof helpers\n * @type {Object}\n */\nexport var unitsFactors = {\n centimeters: 100,\n centimetres: 100,\n degrees: 1 / 111325,\n feet: 3.28084,\n inches: 39.37,\n kilometers: 1 / 1000,\n kilometres: 1 / 1000,\n meters: 1,\n metres: 1,\n miles: 1 / 1609.344,\n millimeters: 1000,\n millimetres: 1000,\n nauticalmiles: 1 / 1852,\n radians: 1 / earthRadius,\n yards: 1.0936133\n};\n/**\n * Area of measurement factors based on 1 square meter.\n *\n * @memberof helpers\n * @type {Object}\n */\nexport var areaFactors = {\n acres: 0.000247105,\n centimeters: 10000,\n centimetres: 10000,\n feet: 10.763910417,\n hectares: 0.0001,\n inches: 1550.003100006,\n kilometers: 0.000001,\n kilometres: 0.000001,\n meters: 1,\n metres: 1,\n miles: 3.86e-7,\n millimeters: 1000000,\n millimetres: 1000000,\n yards: 1.195990046\n};\n/**\n * Wraps a GeoJSON {@link Geometry} in a GeoJSON {@link Feature}.\n *\n * @name feature\n * @param {Geometry} geometry input geometry\n * @param {Object} [properties={}] an Object of key-value pairs to add as properties\n * @param {Object} [options={}] Optional Parameters\n * @param {Array} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature\n * @param {string|number} [options.id] Identifier associated with the Feature\n * @returns {Feature} a GeoJSON Feature\n * @example\n * var geometry = {\n * \"type\": \"Point\",\n * \"coordinates\": [110, 50]\n * };\n *\n * var feature = turf.feature(geometry);\n *\n * //=feature\n */\nexport function feature(geom, properties, options) {\n if (options === void 0) {\n options = {};\n }\n var feat = {\n type: \"Feature\"\n };\n if (options.id === 0 || options.id) {\n feat.id = options.id;\n }\n if (options.bbox) {\n feat.bbox = options.bbox;\n }\n feat.properties = properties || {};\n feat.geometry = geom;\n return feat;\n}\n/**\n * Creates a GeoJSON {@link Geometry} from a Geometry string type & coordinates.\n * For GeometryCollection type use `helpers.geometryCollection`\n *\n * @name geometry\n * @param {string} type Geometry Type\n * @param {Array} coordinates Coordinates\n * @param {Object} [options={}] Optional Parameters\n * @returns {Geometry} a GeoJSON Geometry\n * @example\n * var type = \"Point\";\n * var coordinates = [110, 50];\n * var geometry = turf.geometry(type, coordinates);\n * // => geometry\n */\nexport function geometry(type, coordinates, _options) {\n if (_options === void 0) {\n _options = {};\n }\n switch (type) {\n case \"Point\":\n return point(coordinates).geometry;\n case \"LineString\":\n return lineString(coordinates).geometry;\n case \"Polygon\":\n return polygon(coordinates).geometry;\n case \"MultiPoint\":\n return multiPoint(coordinates).geometry;\n case \"MultiLineString\":\n return multiLineString(coordinates).geometry;\n case \"MultiPolygon\":\n return multiPolygon(coordinates).geometry;\n default:\n throw new Error(type + \" is invalid\");\n }\n}\n/**\n * Creates a {@link Point} {@link Feature} from a Position.\n *\n * @name point\n * @param {Array} coordinates longitude, latitude position (each in decimal degrees)\n * @param {Object} [properties={}] an Object of key-value pairs to add as properties\n * @param {Object} [options={}] Optional Parameters\n * @param {Array} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature\n * @param {string|number} [options.id] Identifier associated with the Feature\n * @returns {Feature} a Point feature\n * @example\n * var point = turf.point([-75.343, 39.984]);\n *\n * //=point\n */\nexport function point(coordinates, properties, options) {\n if (options === void 0) {\n options = {};\n }\n if (!coordinates) {\n throw new Error(\"coordinates is required\");\n }\n if (!Array.isArray(coordinates)) {\n throw new Error(\"coordinates must be an Array\");\n }\n if (coordinates.length < 2) {\n throw new Error(\"coordinates must be at least 2 numbers long\");\n }\n if (!isNumber(coordinates[0]) || !isNumber(coordinates[1])) {\n throw new Error(\"coordinates must contain numbers\");\n }\n var geom = {\n type: \"Point\",\n coordinates: coordinates\n };\n return feature(geom, properties, options);\n}\n/**\n * Creates a {@link Point} {@link FeatureCollection} from an Array of Point coordinates.\n *\n * @name points\n * @param {Array>} coordinates an array of Points\n * @param {Object} [properties={}] Translate these properties to each Feature\n * @param {Object} [options={}] Optional Parameters\n * @param {Array} [options.bbox] Bounding Box Array [west, south, east, north]\n * associated with the FeatureCollection\n * @param {string|number} [options.id] Identifier associated with the FeatureCollection\n * @returns {FeatureCollection} Point Feature\n * @example\n * var points = turf.points([\n * [-75, 39],\n * [-80, 45],\n * [-78, 50]\n * ]);\n *\n * //=points\n */\nexport function points(coordinates, properties, options) {\n if (options === void 0) {\n options = {};\n }\n return featureCollection(coordinates.map(function (coords) {\n return point(coords, properties);\n }), options);\n}\n/**\n * Creates a {@link Polygon} {@link Feature} from an Array of LinearRings.\n *\n * @name polygon\n * @param {Array>>} coordinates an array of LinearRings\n * @param {Object} [properties={}] an Object of key-value pairs to add as properties\n * @param {Object} [options={}] Optional Parameters\n * @param {Array} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature\n * @param {string|number} [options.id] Identifier associated with the Feature\n * @returns {Feature} Polygon Feature\n * @example\n * var polygon = turf.polygon([[[-5, 52], [-4, 56], [-2, 51], [-7, 54], [-5, 52]]], { name: 'poly1' });\n *\n * //=polygon\n */\nexport function polygon(coordinates, properties, options) {\n if (options === void 0) {\n options = {};\n }\n for (var _i = 0, coordinates_1 = coordinates; _i < coordinates_1.length; _i++) {\n var ring = coordinates_1[_i];\n if (ring.length < 4) {\n throw new Error(\"Each LinearRing of a Polygon must have 4 or more Positions.\");\n }\n for (var j = 0; j < ring[ring.length - 1].length; j++) {\n // Check if first point of Polygon contains two numbers\n if (ring[ring.length - 1][j] !== ring[0][j]) {\n throw new Error(\"First and last Position are not equivalent.\");\n }\n }\n }\n var geom = {\n type: \"Polygon\",\n coordinates: coordinates\n };\n return feature(geom, properties, options);\n}\n/**\n * Creates a {@link Polygon} {@link FeatureCollection} from an Array of Polygon coordinates.\n *\n * @name polygons\n * @param {Array>>>} coordinates an array of Polygon coordinates\n * @param {Object} [properties={}] an Object of key-value pairs to add as properties\n * @param {Object} [options={}] Optional Parameters\n * @param {Array} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature\n * @param {string|number} [options.id] Identifier associated with the FeatureCollection\n * @returns {FeatureCollection} Polygon FeatureCollection\n * @example\n * var polygons = turf.polygons([\n * [[[-5, 52], [-4, 56], [-2, 51], [-7, 54], [-5, 52]]],\n * [[[-15, 42], [-14, 46], [-12, 41], [-17, 44], [-15, 42]]],\n * ]);\n *\n * //=polygons\n */\nexport function polygons(coordinates, properties, options) {\n if (options === void 0) {\n options = {};\n }\n return featureCollection(coordinates.map(function (coords) {\n return polygon(coords, properties);\n }), options);\n}\n/**\n * Creates a {@link LineString} {@link Feature} from an Array of Positions.\n *\n * @name lineString\n * @param {Array>} coordinates an array of Positions\n * @param {Object} [properties={}] an Object of key-value pairs to add as properties\n * @param {Object} [options={}] Optional Parameters\n * @param {Array} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature\n * @param {string|number} [options.id] Identifier associated with the Feature\n * @returns {Feature} LineString Feature\n * @example\n * var linestring1 = turf.lineString([[-24, 63], [-23, 60], [-25, 65], [-20, 69]], {name: 'line 1'});\n * var linestring2 = turf.lineString([[-14, 43], [-13, 40], [-15, 45], [-10, 49]], {name: 'line 2'});\n *\n * //=linestring1\n * //=linestring2\n */\nexport function lineString(coordinates, properties, options) {\n if (options === void 0) {\n options = {};\n }\n if (coordinates.length < 2) {\n throw new Error(\"coordinates must be an array of two or more positions\");\n }\n var geom = {\n type: \"LineString\",\n coordinates: coordinates\n };\n return feature(geom, properties, options);\n}\n/**\n * Creates a {@link LineString} {@link FeatureCollection} from an Array of LineString coordinates.\n *\n * @name lineStrings\n * @param {Array>>} coordinates an array of LinearRings\n * @param {Object} [properties={}] an Object of key-value pairs to add as properties\n * @param {Object} [options={}] Optional Parameters\n * @param {Array} [options.bbox] Bounding Box Array [west, south, east, north]\n * associated with the FeatureCollection\n * @param {string|number} [options.id] Identifier associated with the FeatureCollection\n * @returns {FeatureCollection} LineString FeatureCollection\n * @example\n * var linestrings = turf.lineStrings([\n * [[-24, 63], [-23, 60], [-25, 65], [-20, 69]],\n * [[-14, 43], [-13, 40], [-15, 45], [-10, 49]]\n * ]);\n *\n * //=linestrings\n */\nexport function lineStrings(coordinates, properties, options) {\n if (options === void 0) {\n options = {};\n }\n return featureCollection(coordinates.map(function (coords) {\n return lineString(coords, properties);\n }), options);\n}\n/**\n * Takes one or more {@link Feature|Features} and creates a {@link FeatureCollection}.\n *\n * @name featureCollection\n * @param {Feature[]} features input features\n * @param {Object} [options={}] Optional Parameters\n * @param {Array} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature\n * @param {string|number} [options.id] Identifier associated with the Feature\n * @returns {FeatureCollection} FeatureCollection of Features\n * @example\n * var locationA = turf.point([-75.343, 39.984], {name: 'Location A'});\n * var locationB = turf.point([-75.833, 39.284], {name: 'Location B'});\n * var locationC = turf.point([-75.534, 39.123], {name: 'Location C'});\n *\n * var collection = turf.featureCollection([\n * locationA,\n * locationB,\n * locationC\n * ]);\n *\n * //=collection\n */\nexport function featureCollection(features, options) {\n if (options === void 0) {\n options = {};\n }\n var fc = {\n type: \"FeatureCollection\"\n };\n if (options.id) {\n fc.id = options.id;\n }\n if (options.bbox) {\n fc.bbox = options.bbox;\n }\n fc.features = features;\n return fc;\n}\n/**\n * Creates a {@link Feature} based on a\n * coordinate array. Properties can be added optionally.\n *\n * @name multiLineString\n * @param {Array>>} coordinates an array of LineStrings\n * @param {Object} [properties={}] an Object of key-value pairs to add as properties\n * @param {Object} [options={}] Optional Parameters\n * @param {Array} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature\n * @param {string|number} [options.id] Identifier associated with the Feature\n * @returns {Feature} a MultiLineString feature\n * @throws {Error} if no coordinates are passed\n * @example\n * var multiLine = turf.multiLineString([[[0,0],[10,10]]]);\n *\n * //=multiLine\n */\nexport function multiLineString(coordinates, properties, options) {\n if (options === void 0) {\n options = {};\n }\n var geom = {\n type: \"MultiLineString\",\n coordinates: coordinates\n };\n return feature(geom, properties, options);\n}\n/**\n * Creates a {@link Feature} based on a\n * coordinate array. Properties can be added optionally.\n *\n * @name multiPoint\n * @param {Array>} coordinates an array of Positions\n * @param {Object} [properties={}] an Object of key-value pairs to add as properties\n * @param {Object} [options={}] Optional Parameters\n * @param {Array} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature\n * @param {string|number} [options.id] Identifier associated with the Feature\n * @returns {Feature} a MultiPoint feature\n * @throws {Error} if no coordinates are passed\n * @example\n * var multiPt = turf.multiPoint([[0,0],[10,10]]);\n *\n * //=multiPt\n */\nexport function multiPoint(coordinates, properties, options) {\n if (options === void 0) {\n options = {};\n }\n var geom = {\n type: \"MultiPoint\",\n coordinates: coordinates\n };\n return feature(geom, properties, options);\n}\n/**\n * Creates a {@link Feature} based on a\n * coordinate array. Properties can be added optionally.\n *\n * @name multiPolygon\n * @param {Array>>>} coordinates an array of Polygons\n * @param {Object} [properties={}] an Object of key-value pairs to add as properties\n * @param {Object} [options={}] Optional Parameters\n * @param {Array} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature\n * @param {string|number} [options.id] Identifier associated with the Feature\n * @returns {Feature} a multipolygon feature\n * @throws {Error} if no coordinates are passed\n * @example\n * var multiPoly = turf.multiPolygon([[[[0,0],[0,10],[10,10],[10,0],[0,0]]]]);\n *\n * //=multiPoly\n *\n */\nexport function multiPolygon(coordinates, properties, options) {\n if (options === void 0) {\n options = {};\n }\n var geom = {\n type: \"MultiPolygon\",\n coordinates: coordinates\n };\n return feature(geom, properties, options);\n}\n/**\n * Creates a {@link Feature} based on a\n * coordinate array. Properties can be added optionally.\n *\n * @name geometryCollection\n * @param {Array} geometries an array of GeoJSON Geometries\n * @param {Object} [properties={}] an Object of key-value pairs to add as properties\n * @param {Object} [options={}] Optional Parameters\n * @param {Array} [options.bbox] Bounding Box Array [west, south, east, north] associated with the Feature\n * @param {string|number} [options.id] Identifier associated with the Feature\n * @returns {Feature} a GeoJSON GeometryCollection Feature\n * @example\n * var pt = turf.geometry(\"Point\", [100, 0]);\n * var line = turf.geometry(\"LineString\", [[101, 0], [102, 1]]);\n * var collection = turf.geometryCollection([pt, line]);\n *\n * // => collection\n */\nexport function geometryCollection(geometries, properties, options) {\n if (options === void 0) {\n options = {};\n }\n var geom = {\n type: \"GeometryCollection\",\n geometries: geometries\n };\n return feature(geom, properties, options);\n}\n/**\n * Round number to precision\n *\n * @param {number} num Number\n * @param {number} [precision=0] Precision\n * @returns {number} rounded number\n * @example\n * turf.round(120.4321)\n * //=120\n *\n * turf.round(120.4321, 2)\n * //=120.43\n */\nexport function round(num, precision) {\n if (precision === void 0) {\n precision = 0;\n }\n if (precision && !(precision >= 0)) {\n throw new Error(\"precision must be a positive number\");\n }\n var multiplier = Math.pow(10, precision || 0);\n return Math.round(num * multiplier) / multiplier;\n}\n/**\n * Convert a distance measurement (assuming a spherical Earth) from radians to a more friendly unit.\n * Valid units: miles, nauticalmiles, inches, yards, meters, metres, kilometers, centimeters, feet\n *\n * @name radiansToLength\n * @param {number} radians in radians across the sphere\n * @param {string} [units=\"kilometers\"] can be degrees, radians, miles, inches, yards, metres,\n * meters, kilometres, kilometers.\n * @returns {number} distance\n */\nexport function radiansToLength(radians, units) {\n if (units === void 0) {\n units = \"kilometers\";\n }\n var factor = factors[units];\n if (!factor) {\n throw new Error(units + \" units is invalid\");\n }\n return radians * factor;\n}\n/**\n * Convert a distance measurement (assuming a spherical Earth) from a real-world unit into radians\n * Valid units: miles, nauticalmiles, inches, yards, meters, metres, kilometers, centimeters, feet\n *\n * @name lengthToRadians\n * @param {number} distance in real units\n * @param {string} [units=\"kilometers\"] can be degrees, radians, miles, inches, yards, metres,\n * meters, kilometres, kilometers.\n * @returns {number} radians\n */\nexport function lengthToRadians(distance, units) {\n if (units === void 0) {\n units = \"kilometers\";\n }\n var factor = factors[units];\n if (!factor) {\n throw new Error(units + \" units is invalid\");\n }\n return distance / factor;\n}\n/**\n * Convert a distance measurement (assuming a spherical Earth) from a real-world unit into degrees\n * Valid units: miles, nauticalmiles, inches, yards, meters, metres, centimeters, kilometres, feet\n *\n * @name lengthToDegrees\n * @param {number} distance in real units\n * @param {string} [units=\"kilometers\"] can be degrees, radians, miles, inches, yards, metres,\n * meters, kilometres, kilometers.\n * @returns {number} degrees\n */\nexport function lengthToDegrees(distance, units) {\n return radiansToDegrees(lengthToRadians(distance, units));\n}\n/**\n * Converts any bearing angle from the north line direction (positive clockwise)\n * and returns an angle between 0-360 degrees (positive clockwise), 0 being the north line\n *\n * @name bearingToAzimuth\n * @param {number} bearing angle, between -180 and +180 degrees\n * @returns {number} angle between 0 and 360 degrees\n */\nexport function bearingToAzimuth(bearing) {\n var angle = bearing % 360;\n if (angle < 0) {\n angle += 360;\n }\n return angle;\n}\n/**\n * Converts an angle in radians to degrees\n *\n * @name radiansToDegrees\n * @param {number} radians angle in radians\n * @returns {number} degrees between 0 and 360 degrees\n */\nexport function radiansToDegrees(radians) {\n var degrees = radians % (2 * Math.PI);\n return degrees * 180 / Math.PI;\n}\n/**\n * Converts an angle in degrees to radians\n *\n * @name degreesToRadians\n * @param {number} degrees angle between 0 and 360 degrees\n * @returns {number} angle in radians\n */\nexport function degreesToRadians(degrees) {\n var radians = degrees % 360;\n return radians * Math.PI / 180;\n}\n/**\n * Converts a length to the requested unit.\n * Valid units: miles, nauticalmiles, inches, yards, meters, metres, kilometers, centimeters, feet\n *\n * @param {number} length to be converted\n * @param {Units} [originalUnit=\"kilometers\"] of the length\n * @param {Units} [finalUnit=\"kilometers\"] returned unit\n * @returns {number} the converted length\n */\nexport function convertLength(length, originalUnit, finalUnit) {\n if (originalUnit === void 0) {\n originalUnit = \"kilometers\";\n }\n if (finalUnit === void 0) {\n finalUnit = \"kilometers\";\n }\n if (!(length >= 0)) {\n throw new Error(\"length must be a positive number\");\n }\n return radiansToLength(lengthToRadians(length, originalUnit), finalUnit);\n}\n/**\n * Converts a area to the requested unit.\n * Valid units: kilometers, kilometres, meters, metres, centimetres, millimeters, acres, miles, yards, feet, inches, hectares\n * @param {number} area to be converted\n * @param {Units} [originalUnit=\"meters\"] of the distance\n * @param {Units} [finalUnit=\"kilometers\"] returned unit\n * @returns {number} the converted area\n */\nexport function convertArea(area, originalUnit, finalUnit) {\n if (originalUnit === void 0) {\n originalUnit = \"meters\";\n }\n if (finalUnit === void 0) {\n finalUnit = \"kilometers\";\n }\n if (!(area >= 0)) {\n throw new Error(\"area must be a positive number\");\n }\n var startFactor = areaFactors[originalUnit];\n if (!startFactor) {\n throw new Error(\"invalid original units\");\n }\n var finalFactor = areaFactors[finalUnit];\n if (!finalFactor) {\n throw new Error(\"invalid final units\");\n }\n return area / startFactor * finalFactor;\n}\n/**\n * isNumber\n *\n * @param {*} num Number to validate\n * @returns {boolean} true/false\n * @example\n * turf.isNumber(123)\n * //=true\n * turf.isNumber('foo')\n * //=false\n */\nexport function isNumber(num) {\n return !isNaN(num) && num !== null && !Array.isArray(num);\n}\n/**\n * isObject\n *\n * @param {*} input variable to validate\n * @returns {boolean} true/false\n * @example\n * turf.isObject({elevation: 10})\n * //=true\n * turf.isObject('foo')\n * //=false\n */\nexport function isObject(input) {\n return !!input && input.constructor === Object;\n}\n/**\n * Validate BBox\n *\n * @private\n * @param {Array} bbox BBox to validate\n * @returns {void}\n * @throws Error if BBox is not valid\n * @example\n * validateBBox([-180, -40, 110, 50])\n * //=OK\n * validateBBox([-180, -40])\n * //=Error\n * validateBBox('Foo')\n * //=Error\n * validateBBox(5)\n * //=Error\n * validateBBox(null)\n * //=Error\n * validateBBox(undefined)\n * //=Error\n */\nexport function validateBBox(bbox) {\n if (!bbox) {\n throw new Error(\"bbox is required\");\n }\n if (!Array.isArray(bbox)) {\n throw new Error(\"bbox must be an Array\");\n }\n if (bbox.length !== 4 && bbox.length !== 6) {\n throw new Error(\"bbox must be an Array of 4 or 6 numbers\");\n }\n bbox.forEach(function (num) {\n if (!isNumber(num)) {\n throw new Error(\"bbox must only contain numbers\");\n }\n });\n}\n/**\n * Validate Id\n *\n * @private\n * @param {string|number} id Id to validate\n * @returns {void}\n * @throws Error if Id is not valid\n * @example\n * validateId([-180, -40, 110, 50])\n * //=Error\n * validateId([-180, -40])\n * //=Error\n * validateId('Foo')\n * //=OK\n * validateId(5)\n * //=OK\n * validateId(null)\n * //=Error\n * validateId(undefined)\n * //=Error\n */\nexport function validateId(id) {\n if (!id) {\n throw new Error(\"id is required\");\n }\n if ([\"string\", \"number\"].indexOf(typeof id) === -1) {\n throw new Error(\"id must be a number or a string\");\n }\n}","import { getCoord, getGeom } from \"@turf/invariant\";\n// http://en.wikipedia.org/wiki/Even%E2%80%93odd_rule\n// modified from: https://github.com/substack/point-in-polygon/blob/master/index.js\n// which was modified from http://www.ecse.rpi.edu/Homepages/wrf/Research/Short_Notes/pnpoly.html\n/**\n * Takes a {@link Point} and a {@link Polygon} or {@link MultiPolygon} and determines if the point\n * resides inside the polygon. The polygon can be convex or concave. The function accounts for holes.\n *\n * @name booleanPointInPolygon\n * @param {Coord} point input point\n * @param {Feature} polygon input polygon or multipolygon\n * @param {Object} [options={}] Optional parameters\n * @param {boolean} [options.ignoreBoundary=false] True if polygon boundary should be ignored when determining if\n * the point is inside the polygon otherwise false.\n * @returns {boolean} `true` if the Point is inside the Polygon; `false` if the Point is not inside the Polygon\n * @example\n * var pt = turf.point([-77, 44]);\n * var poly = turf.polygon([[\n * [-81, 41],\n * [-81, 47],\n * [-72, 47],\n * [-72, 41],\n * [-81, 41]\n * ]]);\n *\n * turf.booleanPointInPolygon(pt, poly);\n * //= true\n */\nexport default function booleanPointInPolygon(point, polygon, options) {\n if (options === void 0) {\n options = {};\n }\n // validation\n if (!point) {\n throw new Error(\"point is required\");\n }\n if (!polygon) {\n throw new Error(\"polygon is required\");\n }\n var pt = getCoord(point);\n var geom = getGeom(polygon);\n var type = geom.type;\n var bbox = polygon.bbox;\n var polys = geom.coordinates;\n // Quick elimination if point is not inside bbox\n if (bbox && inBBox(pt, bbox) === false) {\n return false;\n }\n // normalize to multipolygon\n if (type === \"Polygon\") {\n polys = [polys];\n }\n var insidePoly = false;\n for (var i = 0; i < polys.length && !insidePoly; i++) {\n // check if it is in the outer ring first\n if (inRing(pt, polys[i][0], options.ignoreBoundary)) {\n var inHole = false;\n var k = 1;\n // check for the point in any of the holes\n while (k < polys[i].length && !inHole) {\n if (inRing(pt, polys[i][k], !options.ignoreBoundary)) {\n inHole = true;\n }\n k++;\n }\n if (!inHole) {\n insidePoly = true;\n }\n }\n }\n return insidePoly;\n}\n/**\n * inRing\n *\n * @private\n * @param {Array} pt [x,y]\n * @param {Array>} ring [[x,y], [x,y],..]\n * @param {boolean} ignoreBoundary ignoreBoundary\n * @returns {boolean} inRing\n */\nfunction inRing(pt, ring, ignoreBoundary) {\n var isInside = false;\n if (ring[0][0] === ring[ring.length - 1][0] && ring[0][1] === ring[ring.length - 1][1]) {\n ring = ring.slice(0, ring.length - 1);\n }\n for (var i = 0, j = ring.length - 1; i < ring.length; j = i++) {\n var xi = ring[i][0];\n var yi = ring[i][1];\n var xj = ring[j][0];\n var yj = ring[j][1];\n var onBoundary = pt[1] * (xi - xj) + yi * (xj - pt[0]) + yj * (pt[0] - xi) === 0 && (xi - pt[0]) * (xj - pt[0]) <= 0 && (yi - pt[1]) * (yj - pt[1]) <= 0;\n if (onBoundary) {\n return !ignoreBoundary;\n }\n var intersect = yi > pt[1] !== yj > pt[1] && pt[0] < (xj - xi) * (pt[1] - yi) / (yj - yi) + xi;\n if (intersect) {\n isInside = !isInside;\n }\n }\n return isInside;\n}\n/**\n * inBBox\n *\n * @private\n * @param {Position} pt point [x,y]\n * @param {BBox} bbox BBox [west, south, east, north]\n * @returns {boolean} true/false if point is inside BBox\n */\nfunction inBBox(pt, bbox) {\n return bbox[0] <= pt[0] && bbox[1] <= pt[1] && bbox[2] >= pt[0] && bbox[3] >= pt[1];\n}","import { isNumber } from \"@turf/helpers\";\n/**\n * Unwrap a coordinate from a Point Feature, Geometry or a single coordinate.\n *\n * @name getCoord\n * @param {Array|Geometry|Feature} coord GeoJSON Point or an Array of numbers\n * @returns {Array} coordinates\n * @example\n * var pt = turf.point([10, 10]);\n *\n * var coord = turf.getCoord(pt);\n * //= [10, 10]\n */\nexport function getCoord(coord) {\n if (!coord) {\n throw new Error(\"coord is required\");\n }\n if (!Array.isArray(coord)) {\n if (coord.type === \"Feature\" && coord.geometry !== null && coord.geometry.type === \"Point\") {\n return coord.geometry.coordinates;\n }\n if (coord.type === \"Point\") {\n return coord.coordinates;\n }\n }\n if (Array.isArray(coord) && coord.length >= 2 && !Array.isArray(coord[0]) && !Array.isArray(coord[1])) {\n return coord;\n }\n throw new Error(\"coord must be GeoJSON Point or an Array of numbers\");\n}\n/**\n * Unwrap coordinates from a Feature, Geometry Object or an Array\n *\n * @name getCoords\n * @param {Array|Geometry|Feature} coords Feature, Geometry Object or an Array\n * @returns {Array} coordinates\n * @example\n * var poly = turf.polygon([[[119.32, -8.7], [119.55, -8.69], [119.51, -8.54], [119.32, -8.7]]]);\n *\n * var coords = turf.getCoords(poly);\n * //= [[[119.32, -8.7], [119.55, -8.69], [119.51, -8.54], [119.32, -8.7]]]\n */\nexport function getCoords(coords) {\n if (Array.isArray(coords)) {\n return coords;\n }\n // Feature\n if (coords.type === \"Feature\") {\n if (coords.geometry !== null) {\n return coords.geometry.coordinates;\n }\n } else {\n // Geometry\n if (coords.coordinates) {\n return coords.coordinates;\n }\n }\n throw new Error(\"coords must be GeoJSON Feature, Geometry Object or an Array\");\n}\n/**\n * Checks if coordinates contains a number\n *\n * @name containsNumber\n * @param {Array} coordinates GeoJSON Coordinates\n * @returns {boolean} true if Array contains a number\n */\nexport function containsNumber(coordinates) {\n if (coordinates.length > 1 && isNumber(coordinates[0]) && isNumber(coordinates[1])) {\n return true;\n }\n if (Array.isArray(coordinates[0]) && coordinates[0].length) {\n return containsNumber(coordinates[0]);\n }\n throw new Error(\"coordinates must only contain numbers\");\n}\n/**\n * Enforce expectations about types of GeoJSON objects for Turf.\n *\n * @name geojsonType\n * @param {GeoJSON} value any GeoJSON object\n * @param {string} type expected GeoJSON type\n * @param {string} name name of calling function\n * @throws {Error} if value is not the expected type.\n */\nexport function geojsonType(value, type, name) {\n if (!type || !name) {\n throw new Error(\"type and name required\");\n }\n if (!value || value.type !== type) {\n throw new Error(\"Invalid input to \" + name + \": must be a \" + type + \", given \" + value.type);\n }\n}\n/**\n * Enforce expectations about types of {@link Feature} inputs for Turf.\n * Internally this uses {@link geojsonType} to judge geometry types.\n *\n * @name featureOf\n * @param {Feature} feature a feature with an expected geometry type\n * @param {string} type expected GeoJSON type\n * @param {string} name name of calling function\n * @throws {Error} error if value is not the expected type.\n */\nexport function featureOf(feature, type, name) {\n if (!feature) {\n throw new Error(\"No feature passed\");\n }\n if (!name) {\n throw new Error(\".featureOf() requires a name\");\n }\n if (!feature || feature.type !== \"Feature\" || !feature.geometry) {\n throw new Error(\"Invalid input to \" + name + \", Feature with geometry required\");\n }\n if (!feature.geometry || feature.geometry.type !== type) {\n throw new Error(\"Invalid input to \" + name + \": must be a \" + type + \", given \" + feature.geometry.type);\n }\n}\n/**\n * Enforce expectations about types of {@link FeatureCollection} inputs for Turf.\n * Internally this uses {@link geojsonType} to judge geometry types.\n *\n * @name collectionOf\n * @param {FeatureCollection} featureCollection a FeatureCollection for which features will be judged\n * @param {string} type expected GeoJSON type\n * @param {string} name name of calling function\n * @throws {Error} if value is not the expected type.\n */\nexport function collectionOf(featureCollection, type, name) {\n if (!featureCollection) {\n throw new Error(\"No featureCollection passed\");\n }\n if (!name) {\n throw new Error(\".collectionOf() requires a name\");\n }\n if (!featureCollection || featureCollection.type !== \"FeatureCollection\") {\n throw new Error(\"Invalid input to \" + name + \", FeatureCollection required\");\n }\n for (var _i = 0, _a = featureCollection.features; _i < _a.length; _i++) {\n var feature = _a[_i];\n if (!feature || feature.type !== \"Feature\" || !feature.geometry) {\n throw new Error(\"Invalid input to \" + name + \", Feature with geometry required\");\n }\n if (!feature.geometry || feature.geometry.type !== type) {\n throw new Error(\"Invalid input to \" + name + \": must be a \" + type + \", given \" + feature.geometry.type);\n }\n }\n}\n/**\n * Get Geometry from Feature or Geometry Object\n *\n * @param {Feature|Geometry} geojson GeoJSON Feature or Geometry Object\n * @returns {Geometry|null} GeoJSON Geometry Object\n * @throws {Error} if geojson is not a Feature or Geometry Object\n * @example\n * var point = {\n * \"type\": \"Feature\",\n * \"properties\": {},\n * \"geometry\": {\n * \"type\": \"Point\",\n * \"coordinates\": [110, 40]\n * }\n * }\n * var geom = turf.getGeom(point)\n * //={\"type\": \"Point\", \"coordinates\": [110, 40]}\n */\nexport function getGeom(geojson) {\n if (geojson.type === \"Feature\") {\n return geojson.geometry;\n }\n return geojson;\n}\n/**\n * Get GeoJSON object's type, Geometry type is prioritize.\n *\n * @param {GeoJSON} geojson GeoJSON object\n * @param {string} [name=\"geojson\"] name of the variable to display in error message (unused)\n * @returns {string} GeoJSON type\n * @example\n * var point = {\n * \"type\": \"Feature\",\n * \"properties\": {},\n * \"geometry\": {\n * \"type\": \"Point\",\n * \"coordinates\": [110, 40]\n * }\n * }\n * var geom = turf.getType(point)\n * //=\"Point\"\n */\nexport function getType(geojson, _name) {\n if (geojson.type === \"FeatureCollection\") {\n return \"FeatureCollection\";\n }\n if (geojson.type === \"GeometryCollection\") {\n return \"GeometryCollection\";\n }\n if (geojson.type === \"Feature\" && geojson.geometry !== null) {\n return geojson.geometry.type;\n }\n return geojson.type;\n}","import { feature, lineString, isObject, point } from '@turf/helpers';\n\n/**\n * Callback for coordEach\n *\n * @callback coordEachCallback\n * @param {Array} currentCoord The current coordinate being processed.\n * @param {number} coordIndex The current index of the coordinate being processed.\n * @param {number} featureIndex The current index of the Feature being processed.\n * @param {number} multiFeatureIndex The current index of the Multi-Feature being processed.\n * @param {number} geometryIndex The current index of the Geometry being processed.\n */\n\n/**\n * Iterate over coordinates in any GeoJSON object, similar to Array.forEach()\n *\n * @name coordEach\n * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON object\n * @param {Function} callback a method that takes (currentCoord, coordIndex, featureIndex, multiFeatureIndex)\n * @param {boolean} [excludeWrapCoord=false] whether or not to include the final coordinate of LinearRings that wraps the ring in its iteration.\n * @returns {void}\n * @example\n * var features = turf.featureCollection([\n * turf.point([26, 37], {\"foo\": \"bar\"}),\n * turf.point([36, 53], {\"hello\": \"world\"})\n * ]);\n *\n * turf.coordEach(features, function (currentCoord, coordIndex, featureIndex, multiFeatureIndex, geometryIndex) {\n * //=currentCoord\n * //=coordIndex\n * //=featureIndex\n * //=multiFeatureIndex\n * //=geometryIndex\n * });\n */\nfunction coordEach(geojson, callback, excludeWrapCoord) {\n // Handles null Geometry -- Skips this GeoJSON\n if (geojson === null) return;\n var j,\n k,\n l,\n geometry,\n stopG,\n coords,\n geometryMaybeCollection,\n wrapShrink = 0,\n coordIndex = 0,\n isGeometryCollection,\n type = geojson.type,\n isFeatureCollection = type === \"FeatureCollection\",\n isFeature = type === \"Feature\",\n stop = isFeatureCollection ? geojson.features.length : 1;\n\n // This logic may look a little weird. The reason why it is that way\n // is because it's trying to be fast. GeoJSON supports multiple kinds\n // of objects at its root: FeatureCollection, Features, Geometries.\n // This function has the responsibility of handling all of them, and that\n // means that some of the `for` loops you see below actually just don't apply\n // to certain inputs. For instance, if you give this just a\n // Point geometry, then both loops are short-circuited and all we do\n // is gradually rename the input until it's called 'geometry'.\n //\n // This also aims to allocate as few resources as possible: just a\n // few numbers and booleans, rather than any temporary arrays as would\n // be required with the normalization approach.\n for (var featureIndex = 0; featureIndex < stop; featureIndex++) {\n geometryMaybeCollection = isFeatureCollection ? geojson.features[featureIndex].geometry : isFeature ? geojson.geometry : geojson;\n isGeometryCollection = geometryMaybeCollection ? geometryMaybeCollection.type === \"GeometryCollection\" : false;\n stopG = isGeometryCollection ? geometryMaybeCollection.geometries.length : 1;\n for (var geomIndex = 0; geomIndex < stopG; geomIndex++) {\n var multiFeatureIndex = 0;\n var geometryIndex = 0;\n geometry = isGeometryCollection ? geometryMaybeCollection.geometries[geomIndex] : geometryMaybeCollection;\n\n // Handles null Geometry -- Skips this geometry\n if (geometry === null) continue;\n coords = geometry.coordinates;\n var geomType = geometry.type;\n wrapShrink = excludeWrapCoord && (geomType === \"Polygon\" || geomType === \"MultiPolygon\") ? 1 : 0;\n switch (geomType) {\n case null:\n break;\n case \"Point\":\n if (callback(coords, coordIndex, featureIndex, multiFeatureIndex, geometryIndex) === false) return false;\n coordIndex++;\n multiFeatureIndex++;\n break;\n case \"LineString\":\n case \"MultiPoint\":\n for (j = 0; j < coords.length; j++) {\n if (callback(coords[j], coordIndex, featureIndex, multiFeatureIndex, geometryIndex) === false) return false;\n coordIndex++;\n if (geomType === \"MultiPoint\") multiFeatureIndex++;\n }\n if (geomType === \"LineString\") multiFeatureIndex++;\n break;\n case \"Polygon\":\n case \"MultiLineString\":\n for (j = 0; j < coords.length; j++) {\n for (k = 0; k < coords[j].length - wrapShrink; k++) {\n if (callback(coords[j][k], coordIndex, featureIndex, multiFeatureIndex, geometryIndex) === false) return false;\n coordIndex++;\n }\n if (geomType === \"MultiLineString\") multiFeatureIndex++;\n if (geomType === \"Polygon\") geometryIndex++;\n }\n if (geomType === \"Polygon\") multiFeatureIndex++;\n break;\n case \"MultiPolygon\":\n for (j = 0; j < coords.length; j++) {\n geometryIndex = 0;\n for (k = 0; k < coords[j].length; k++) {\n for (l = 0; l < coords[j][k].length - wrapShrink; l++) {\n if (callback(coords[j][k][l], coordIndex, featureIndex, multiFeatureIndex, geometryIndex) === false) return false;\n coordIndex++;\n }\n geometryIndex++;\n }\n multiFeatureIndex++;\n }\n break;\n case \"GeometryCollection\":\n for (j = 0; j < geometry.geometries.length; j++) if (coordEach(geometry.geometries[j], callback, excludeWrapCoord) === false) return false;\n break;\n default:\n throw new Error(\"Unknown Geometry Type\");\n }\n }\n }\n}\n\n/**\n * Callback for coordReduce\n *\n * The first time the callback function is called, the values provided as arguments depend\n * on whether the reduce method has an initialValue argument.\n *\n * If an initialValue is provided to the reduce method:\n * - The previousValue argument is initialValue.\n * - The currentValue argument is the value of the first element present in the array.\n *\n * If an initialValue is not provided:\n * - The previousValue argument is the value of the first element present in the array.\n * - The currentValue argument is the value of the second element present in the array.\n *\n * @callback coordReduceCallback\n * @param {*} previousValue The accumulated value previously returned in the last invocation\n * of the callback, or initialValue, if supplied.\n * @param {Array} currentCoord The current coordinate being processed.\n * @param {number} coordIndex The current index of the coordinate being processed.\n * Starts at index 0, if an initialValue is provided, and at index 1 otherwise.\n * @param {number} featureIndex The current index of the Feature being processed.\n * @param {number} multiFeatureIndex The current index of the Multi-Feature being processed.\n * @param {number} geometryIndex The current index of the Geometry being processed.\n */\n\n/**\n * Reduce coordinates in any GeoJSON object, similar to Array.reduce()\n *\n * @name coordReduce\n * @param {FeatureCollection|Geometry|Feature} geojson any GeoJSON object\n * @param {Function} callback a method that takes (previousValue, currentCoord, coordIndex)\n * @param {*} [initialValue] Value to use as the first argument to the first call of the callback.\n * @param {boolean} [excludeWrapCoord=false] whether or not to include the final coordinate of LinearRings that wraps the ring in its iteration.\n * @returns {*} The value that results from the reduction.\n * @example\n * var features = turf.featureCollection([\n * turf.point([26, 37], {\"foo\": \"bar\"}),\n * turf.point([36, 53], {\"hello\": \"world\"})\n * ]);\n *\n * turf.coordReduce(features, function (previousValue, currentCoord, coordIndex, featureIndex, multiFeatureIndex, geometryIndex) {\n * //=previousValue\n * //=currentCoord\n * //=coordIndex\n * //=featureIndex\n * //=multiFeatureIndex\n * //=geometryIndex\n * return currentCoord;\n * });\n */\nfunction coordReduce(geojson, callback, initialValue, excludeWrapCoord) {\n var previousValue = initialValue;\n coordEach(geojson, function (currentCoord, coordIndex, featureIndex, multiFeatureIndex, geometryIndex) {\n if (coordIndex === 0 && initialValue === undefined) previousValue = currentCoord;else previousValue = callback(previousValue, currentCoord, coordIndex, featureIndex, multiFeatureIndex, geometryIndex);\n }, excludeWrapCoord);\n return previousValue;\n}\n\n/**\n * Callback for propEach\n *\n * @callback propEachCallback\n * @param {Object} currentProperties The current Properties being processed.\n * @param {number} featureIndex The current index of the Feature being processed.\n */\n\n/**\n * Iterate over properties in any GeoJSON object, similar to Array.forEach()\n *\n * @name propEach\n * @param {FeatureCollection|Feature} geojson any GeoJSON object\n * @param {Function} callback a method that takes (currentProperties, featureIndex)\n * @returns {void}\n * @example\n * var features = turf.featureCollection([\n * turf.point([26, 37], {foo: 'bar'}),\n * turf.point([36, 53], {hello: 'world'})\n * ]);\n *\n * turf.propEach(features, function (currentProperties, featureIndex) {\n * //=currentProperties\n * //=featureIndex\n * });\n */\nfunction propEach(geojson, callback) {\n var i;\n switch (geojson.type) {\n case \"FeatureCollection\":\n for (i = 0; i < geojson.features.length; i++) {\n if (callback(geojson.features[i].properties, i) === false) break;\n }\n break;\n case \"Feature\":\n callback(geojson.properties, 0);\n break;\n }\n}\n\n/**\n * Callback for propReduce\n *\n * The first time the callback function is called, the values provided as arguments depend\n * on whether the reduce method has an initialValue argument.\n *\n * If an initialValue is provided to the reduce method:\n * - The previousValue argument is initialValue.\n * - The currentValue argument is the value of the first element present in the array.\n *\n * If an initialValue is not provided:\n * - The previousValue argument is the value of the first element present in the array.\n * - The currentValue argument is the value of the second element present in the array.\n *\n * @callback propReduceCallback\n * @param {*} previousValue The accumulated value previously returned in the last invocation\n * of the callback, or initialValue, if supplied.\n * @param {*} currentProperties The current Properties being processed.\n * @param {number} featureIndex The current index of the Feature being processed.\n */\n\n/**\n * Reduce properties in any GeoJSON object into a single value,\n * similar to how Array.reduce works. However, in this case we lazily run\n * the reduction, so an array of all properties is unnecessary.\n *\n * @name propReduce\n * @param {FeatureCollection|Feature} geojson any GeoJSON object\n * @param {Function} callback a method that takes (previousValue, currentProperties, featureIndex)\n * @param {*} [initialValue] Value to use as the first argument to the first call of the callback.\n * @returns {*} The value that results from the reduction.\n * @example\n * var features = turf.featureCollection([\n * turf.point([26, 37], {foo: 'bar'}),\n * turf.point([36, 53], {hello: 'world'})\n * ]);\n *\n * turf.propReduce(features, function (previousValue, currentProperties, featureIndex) {\n * //=previousValue\n * //=currentProperties\n * //=featureIndex\n * return currentProperties\n * });\n */\nfunction propReduce(geojson, callback, initialValue) {\n var previousValue = initialValue;\n propEach(geojson, function (currentProperties, featureIndex) {\n if (featureIndex === 0 && initialValue === undefined) previousValue = currentProperties;else previousValue = callback(previousValue, currentProperties, featureIndex);\n });\n return previousValue;\n}\n\n/**\n * Callback for featureEach\n *\n * @callback featureEachCallback\n * @param {Feature} currentFeature The current Feature being processed.\n * @param {number} featureIndex The current index of the Feature being processed.\n */\n\n/**\n * Iterate over features in any GeoJSON object, similar to\n * Array.forEach.\n *\n * @name featureEach\n * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON object\n * @param {Function} callback a method that takes (currentFeature, featureIndex)\n * @returns {void}\n * @example\n * var features = turf.featureCollection([\n * turf.point([26, 37], {foo: 'bar'}),\n * turf.point([36, 53], {hello: 'world'})\n * ]);\n *\n * turf.featureEach(features, function (currentFeature, featureIndex) {\n * //=currentFeature\n * //=featureIndex\n * });\n */\nfunction featureEach(geojson, callback) {\n if (geojson.type === \"Feature\") {\n callback(geojson, 0);\n } else if (geojson.type === \"FeatureCollection\") {\n for (var i = 0; i < geojson.features.length; i++) {\n if (callback(geojson.features[i], i) === false) break;\n }\n }\n}\n\n/**\n * Callback for featureReduce\n *\n * The first time the callback function is called, the values provided as arguments depend\n * on whether the reduce method has an initialValue argument.\n *\n * If an initialValue is provided to the reduce method:\n * - The previousValue argument is initialValue.\n * - The currentValue argument is the value of the first element present in the array.\n *\n * If an initialValue is not provided:\n * - The previousValue argument is the value of the first element present in the array.\n * - The currentValue argument is the value of the second element present in the array.\n *\n * @callback featureReduceCallback\n * @param {*} previousValue The accumulated value previously returned in the last invocation\n * of the callback, or initialValue, if supplied.\n * @param {Feature} currentFeature The current Feature being processed.\n * @param {number} featureIndex The current index of the Feature being processed.\n */\n\n/**\n * Reduce features in any GeoJSON object, similar to Array.reduce().\n *\n * @name featureReduce\n * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON object\n * @param {Function} callback a method that takes (previousValue, currentFeature, featureIndex)\n * @param {*} [initialValue] Value to use as the first argument to the first call of the callback.\n * @returns {*} The value that results from the reduction.\n * @example\n * var features = turf.featureCollection([\n * turf.point([26, 37], {\"foo\": \"bar\"}),\n * turf.point([36, 53], {\"hello\": \"world\"})\n * ]);\n *\n * turf.featureReduce(features, function (previousValue, currentFeature, featureIndex) {\n * //=previousValue\n * //=currentFeature\n * //=featureIndex\n * return currentFeature\n * });\n */\nfunction featureReduce(geojson, callback, initialValue) {\n var previousValue = initialValue;\n featureEach(geojson, function (currentFeature, featureIndex) {\n if (featureIndex === 0 && initialValue === undefined) previousValue = currentFeature;else previousValue = callback(previousValue, currentFeature, featureIndex);\n });\n return previousValue;\n}\n\n/**\n * Get all coordinates from any GeoJSON object.\n *\n * @name coordAll\n * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON object\n * @returns {Array>} coordinate position array\n * @example\n * var features = turf.featureCollection([\n * turf.point([26, 37], {foo: 'bar'}),\n * turf.point([36, 53], {hello: 'world'})\n * ]);\n *\n * var coords = turf.coordAll(features);\n * //= [[26, 37], [36, 53]]\n */\nfunction coordAll(geojson) {\n var coords = [];\n coordEach(geojson, function (coord) {\n coords.push(coord);\n });\n return coords;\n}\n\n/**\n * Callback for geomEach\n *\n * @callback geomEachCallback\n * @param {Geometry} currentGeometry The current Geometry being processed.\n * @param {number} featureIndex The current index of the Feature being processed.\n * @param {Object} featureProperties The current Feature Properties being processed.\n * @param {Array} featureBBox The current Feature BBox being processed.\n * @param {number|string} featureId The current Feature Id being processed.\n */\n\n/**\n * Iterate over each geometry in any GeoJSON object, similar to Array.forEach()\n *\n * @name geomEach\n * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON object\n * @param {Function} callback a method that takes (currentGeometry, featureIndex, featureProperties, featureBBox, featureId)\n * @returns {void}\n * @example\n * var features = turf.featureCollection([\n * turf.point([26, 37], {foo: 'bar'}),\n * turf.point([36, 53], {hello: 'world'})\n * ]);\n *\n * turf.geomEach(features, function (currentGeometry, featureIndex, featureProperties, featureBBox, featureId) {\n * //=currentGeometry\n * //=featureIndex\n * //=featureProperties\n * //=featureBBox\n * //=featureId\n * });\n */\nfunction geomEach(geojson, callback) {\n var i,\n j,\n g,\n geometry,\n stopG,\n geometryMaybeCollection,\n isGeometryCollection,\n featureProperties,\n featureBBox,\n featureId,\n featureIndex = 0,\n isFeatureCollection = geojson.type === \"FeatureCollection\",\n isFeature = geojson.type === \"Feature\",\n stop = isFeatureCollection ? geojson.features.length : 1;\n\n // This logic may look a little weird. The reason why it is that way\n // is because it's trying to be fast. GeoJSON supports multiple kinds\n // of objects at its root: FeatureCollection, Features, Geometries.\n // This function has the responsibility of handling all of them, and that\n // means that some of the `for` loops you see below actually just don't apply\n // to certain inputs. For instance, if you give this just a\n // Point geometry, then both loops are short-circuited and all we do\n // is gradually rename the input until it's called 'geometry'.\n //\n // This also aims to allocate as few resources as possible: just a\n // few numbers and booleans, rather than any temporary arrays as would\n // be required with the normalization approach.\n for (i = 0; i < stop; i++) {\n geometryMaybeCollection = isFeatureCollection ? geojson.features[i].geometry : isFeature ? geojson.geometry : geojson;\n featureProperties = isFeatureCollection ? geojson.features[i].properties : isFeature ? geojson.properties : {};\n featureBBox = isFeatureCollection ? geojson.features[i].bbox : isFeature ? geojson.bbox : undefined;\n featureId = isFeatureCollection ? geojson.features[i].id : isFeature ? geojson.id : undefined;\n isGeometryCollection = geometryMaybeCollection ? geometryMaybeCollection.type === \"GeometryCollection\" : false;\n stopG = isGeometryCollection ? geometryMaybeCollection.geometries.length : 1;\n for (g = 0; g < stopG; g++) {\n geometry = isGeometryCollection ? geometryMaybeCollection.geometries[g] : geometryMaybeCollection;\n\n // Handle null Geometry\n if (geometry === null) {\n if (callback(null, featureIndex, featureProperties, featureBBox, featureId) === false) return false;\n continue;\n }\n switch (geometry.type) {\n case \"Point\":\n case \"LineString\":\n case \"MultiPoint\":\n case \"Polygon\":\n case \"MultiLineString\":\n case \"MultiPolygon\":\n {\n if (callback(geometry, featureIndex, featureProperties, featureBBox, featureId) === false) return false;\n break;\n }\n case \"GeometryCollection\":\n {\n for (j = 0; j < geometry.geometries.length; j++) {\n if (callback(geometry.geometries[j], featureIndex, featureProperties, featureBBox, featureId) === false) return false;\n }\n break;\n }\n default:\n throw new Error(\"Unknown Geometry Type\");\n }\n }\n // Only increase `featureIndex` per each feature\n featureIndex++;\n }\n}\n\n/**\n * Callback for geomReduce\n *\n * The first time the callback function is called, the values provided as arguments depend\n * on whether the reduce method has an initialValue argument.\n *\n * If an initialValue is provided to the reduce method:\n * - The previousValue argument is initialValue.\n * - The currentValue argument is the value of the first element present in the array.\n *\n * If an initialValue is not provided:\n * - The previousValue argument is the value of the first element present in the array.\n * - The currentValue argument is the value of the second element present in the array.\n *\n * @callback geomReduceCallback\n * @param {*} previousValue The accumulated value previously returned in the last invocation\n * of the callback, or initialValue, if supplied.\n * @param {Geometry} currentGeometry The current Geometry being processed.\n * @param {number} featureIndex The current index of the Feature being processed.\n * @param {Object} featureProperties The current Feature Properties being processed.\n * @param {Array} featureBBox The current Feature BBox being processed.\n * @param {number|string} featureId The current Feature Id being processed.\n */\n\n/**\n * Reduce geometry in any GeoJSON object, similar to Array.reduce().\n *\n * @name geomReduce\n * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON object\n * @param {Function} callback a method that takes (previousValue, currentGeometry, featureIndex, featureProperties, featureBBox, featureId)\n * @param {*} [initialValue] Value to use as the first argument to the first call of the callback.\n * @returns {*} The value that results from the reduction.\n * @example\n * var features = turf.featureCollection([\n * turf.point([26, 37], {foo: 'bar'}),\n * turf.point([36, 53], {hello: 'world'})\n * ]);\n *\n * turf.geomReduce(features, function (previousValue, currentGeometry, featureIndex, featureProperties, featureBBox, featureId) {\n * //=previousValue\n * //=currentGeometry\n * //=featureIndex\n * //=featureProperties\n * //=featureBBox\n * //=featureId\n * return currentGeometry\n * });\n */\nfunction geomReduce(geojson, callback, initialValue) {\n var previousValue = initialValue;\n geomEach(geojson, function (currentGeometry, featureIndex, featureProperties, featureBBox, featureId) {\n if (featureIndex === 0 && initialValue === undefined) previousValue = currentGeometry;else previousValue = callback(previousValue, currentGeometry, featureIndex, featureProperties, featureBBox, featureId);\n });\n return previousValue;\n}\n\n/**\n * Callback for flattenEach\n *\n * @callback flattenEachCallback\n * @param {Feature} currentFeature The current flattened feature being processed.\n * @param {number} featureIndex The current index of the Feature being processed.\n * @param {number} multiFeatureIndex The current index of the Multi-Feature being processed.\n */\n\n/**\n * Iterate over flattened features in any GeoJSON object, similar to\n * Array.forEach.\n *\n * @name flattenEach\n * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON object\n * @param {Function} callback a method that takes (currentFeature, featureIndex, multiFeatureIndex)\n * @example\n * var features = turf.featureCollection([\n * turf.point([26, 37], {foo: 'bar'}),\n * turf.multiPoint([[40, 30], [36, 53]], {hello: 'world'})\n * ]);\n *\n * turf.flattenEach(features, function (currentFeature, featureIndex, multiFeatureIndex) {\n * //=currentFeature\n * //=featureIndex\n * //=multiFeatureIndex\n * });\n */\nfunction flattenEach(geojson, callback) {\n geomEach(geojson, function (geometry, featureIndex, properties, bbox, id) {\n // Callback for single geometry\n var type = geometry === null ? null : geometry.type;\n switch (type) {\n case null:\n case \"Point\":\n case \"LineString\":\n case \"Polygon\":\n if (callback(feature(geometry, properties, {\n bbox: bbox,\n id: id\n }), featureIndex, 0) === false) return false;\n return;\n }\n var geomType;\n\n // Callback for multi-geometry\n switch (type) {\n case \"MultiPoint\":\n geomType = \"Point\";\n break;\n case \"MultiLineString\":\n geomType = \"LineString\";\n break;\n case \"MultiPolygon\":\n geomType = \"Polygon\";\n break;\n }\n for (var multiFeatureIndex = 0; multiFeatureIndex < geometry.coordinates.length; multiFeatureIndex++) {\n var coordinate = geometry.coordinates[multiFeatureIndex];\n var geom = {\n type: geomType,\n coordinates: coordinate\n };\n if (callback(feature(geom, properties), featureIndex, multiFeatureIndex) === false) return false;\n }\n });\n}\n\n/**\n * Callback for flattenReduce\n *\n * The first time the callback function is called, the values provided as arguments depend\n * on whether the reduce method has an initialValue argument.\n *\n * If an initialValue is provided to the reduce method:\n * - The previousValue argument is initialValue.\n * - The currentValue argument is the value of the first element present in the array.\n *\n * If an initialValue is not provided:\n * - The previousValue argument is the value of the first element present in the array.\n * - The currentValue argument is the value of the second element present in the array.\n *\n * @callback flattenReduceCallback\n * @param {*} previousValue The accumulated value previously returned in the last invocation\n * of the callback, or initialValue, if supplied.\n * @param {Feature} currentFeature The current Feature being processed.\n * @param {number} featureIndex The current index of the Feature being processed.\n * @param {number} multiFeatureIndex The current index of the Multi-Feature being processed.\n */\n\n/**\n * Reduce flattened features in any GeoJSON object, similar to Array.reduce().\n *\n * @name flattenReduce\n * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON object\n * @param {Function} callback a method that takes (previousValue, currentFeature, featureIndex, multiFeatureIndex)\n * @param {*} [initialValue] Value to use as the first argument to the first call of the callback.\n * @returns {*} The value that results from the reduction.\n * @example\n * var features = turf.featureCollection([\n * turf.point([26, 37], {foo: 'bar'}),\n * turf.multiPoint([[40, 30], [36, 53]], {hello: 'world'})\n * ]);\n *\n * turf.flattenReduce(features, function (previousValue, currentFeature, featureIndex, multiFeatureIndex) {\n * //=previousValue\n * //=currentFeature\n * //=featureIndex\n * //=multiFeatureIndex\n * return currentFeature\n * });\n */\nfunction flattenReduce(geojson, callback, initialValue) {\n var previousValue = initialValue;\n flattenEach(geojson, function (currentFeature, featureIndex, multiFeatureIndex) {\n if (featureIndex === 0 && multiFeatureIndex === 0 && initialValue === undefined) previousValue = currentFeature;else previousValue = callback(previousValue, currentFeature, featureIndex, multiFeatureIndex);\n });\n return previousValue;\n}\n\n/**\n * Callback for segmentEach\n *\n * @callback segmentEachCallback\n * @param {Feature} currentSegment The current Segment being processed.\n * @param {number} featureIndex The current index of the Feature being processed.\n * @param {number} multiFeatureIndex The current index of the Multi-Feature being processed.\n * @param {number} geometryIndex The current index of the Geometry being processed.\n * @param {number} segmentIndex The current index of the Segment being processed.\n * @returns {void}\n */\n\n/**\n * Iterate over 2-vertex line segment in any GeoJSON object, similar to Array.forEach()\n * (Multi)Point geometries do not contain segments therefore they are ignored during this operation.\n *\n * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON\n * @param {Function} callback a method that takes (currentSegment, featureIndex, multiFeatureIndex, geometryIndex, segmentIndex)\n * @returns {void}\n * @example\n * var polygon = turf.polygon([[[-50, 5], [-40, -10], [-50, -10], [-40, 5], [-50, 5]]]);\n *\n * // Iterate over GeoJSON by 2-vertex segments\n * turf.segmentEach(polygon, function (currentSegment, featureIndex, multiFeatureIndex, geometryIndex, segmentIndex) {\n * //=currentSegment\n * //=featureIndex\n * //=multiFeatureIndex\n * //=geometryIndex\n * //=segmentIndex\n * });\n *\n * // Calculate the total number of segments\n * var total = 0;\n * turf.segmentEach(polygon, function () {\n * total++;\n * });\n */\nfunction segmentEach(geojson, callback) {\n flattenEach(geojson, function (feature, featureIndex, multiFeatureIndex) {\n var segmentIndex = 0;\n\n // Exclude null Geometries\n if (!feature.geometry) return;\n // (Multi)Point geometries do not contain segments therefore they are ignored during this operation.\n var type = feature.geometry.type;\n if (type === \"Point\" || type === \"MultiPoint\") return;\n\n // Generate 2-vertex line segments\n var previousCoords;\n var previousFeatureIndex = 0;\n var previousMultiIndex = 0;\n var prevGeomIndex = 0;\n if (coordEach(feature, function (currentCoord, coordIndex, featureIndexCoord, multiPartIndexCoord, geometryIndex) {\n // Simulating a meta.coordReduce() since `reduce` operations cannot be stopped by returning `false`\n if (previousCoords === undefined || featureIndex > previousFeatureIndex || multiPartIndexCoord > previousMultiIndex || geometryIndex > prevGeomIndex) {\n previousCoords = currentCoord;\n previousFeatureIndex = featureIndex;\n previousMultiIndex = multiPartIndexCoord;\n prevGeomIndex = geometryIndex;\n segmentIndex = 0;\n return;\n }\n var currentSegment = lineString([previousCoords, currentCoord], feature.properties);\n if (callback(currentSegment, featureIndex, multiFeatureIndex, geometryIndex, segmentIndex) === false) return false;\n segmentIndex++;\n previousCoords = currentCoord;\n }) === false) return false;\n });\n}\n\n/**\n * Callback for segmentReduce\n *\n * The first time the callback function is called, the values provided as arguments depend\n * on whether the reduce method has an initialValue argument.\n *\n * If an initialValue is provided to the reduce method:\n * - The previousValue argument is initialValue.\n * - The currentValue argument is the value of the first element present in the array.\n *\n * If an initialValue is not provided:\n * - The previousValue argument is the value of the first element present in the array.\n * - The currentValue argument is the value of the second element present in the array.\n *\n * @callback segmentReduceCallback\n * @param {*} previousValue The accumulated value previously returned in the last invocation\n * of the callback, or initialValue, if supplied.\n * @param {Feature} currentSegment The current Segment being processed.\n * @param {number} featureIndex The current index of the Feature being processed.\n * @param {number} multiFeatureIndex The current index of the Multi-Feature being processed.\n * @param {number} geometryIndex The current index of the Geometry being processed.\n * @param {number} segmentIndex The current index of the Segment being processed.\n */\n\n/**\n * Reduce 2-vertex line segment in any GeoJSON object, similar to Array.reduce()\n * (Multi)Point geometries do not contain segments therefore they are ignored during this operation.\n *\n * @param {FeatureCollection|Feature|Geometry} geojson any GeoJSON\n * @param {Function} callback a method that takes (previousValue, currentSegment, currentIndex)\n * @param {*} [initialValue] Value to use as the first argument to the first call of the callback.\n * @returns {void}\n * @example\n * var polygon = turf.polygon([[[-50, 5], [-40, -10], [-50, -10], [-40, 5], [-50, 5]]]);\n *\n * // Iterate over GeoJSON by 2-vertex segments\n * turf.segmentReduce(polygon, function (previousSegment, currentSegment, featureIndex, multiFeatureIndex, geometryIndex, segmentIndex) {\n * //= previousSegment\n * //= currentSegment\n * //= featureIndex\n * //= multiFeatureIndex\n * //= geometryIndex\n * //= segmentIndex\n * return currentSegment\n * });\n *\n * // Calculate the total number of segments\n * var initialValue = 0\n * var total = turf.segmentReduce(polygon, function (previousValue) {\n * previousValue++;\n * return previousValue;\n * }, initialValue);\n */\nfunction segmentReduce(geojson, callback, initialValue) {\n var previousValue = initialValue;\n var started = false;\n segmentEach(geojson, function (currentSegment, featureIndex, multiFeatureIndex, geometryIndex, segmentIndex) {\n if (started === false && initialValue === undefined) previousValue = currentSegment;else previousValue = callback(previousValue, currentSegment, featureIndex, multiFeatureIndex, geometryIndex, segmentIndex);\n started = true;\n });\n return previousValue;\n}\n\n/**\n * Callback for lineEach\n *\n * @callback lineEachCallback\n * @param {Feature} currentLine The current LineString|LinearRing being processed\n * @param {number} featureIndex The current index of the Feature being processed\n * @param {number} multiFeatureIndex The current index of the Multi-Feature being processed\n * @param {number} geometryIndex The current index of the Geometry being processed\n */\n\n/**\n * Iterate over line or ring coordinates in LineString, Polygon, MultiLineString, MultiPolygon Features or Geometries,\n * similar to Array.forEach.\n *\n * @name lineEach\n * @param {Geometry|Feature} geojson object\n * @param {Function} callback a method that takes (currentLine, featureIndex, multiFeatureIndex, geometryIndex)\n * @example\n * var multiLine = turf.multiLineString([\n * [[26, 37], [35, 45]],\n * [[36, 53], [38, 50], [41, 55]]\n * ]);\n *\n * turf.lineEach(multiLine, function (currentLine, featureIndex, multiFeatureIndex, geometryIndex) {\n * //=currentLine\n * //=featureIndex\n * //=multiFeatureIndex\n * //=geometryIndex\n * });\n */\nfunction lineEach(geojson, callback) {\n // validation\n if (!geojson) throw new Error(\"geojson is required\");\n flattenEach(geojson, function (feature, featureIndex, multiFeatureIndex) {\n if (feature.geometry === null) return;\n var type = feature.geometry.type;\n var coords = feature.geometry.coordinates;\n switch (type) {\n case \"LineString\":\n if (callback(feature, featureIndex, multiFeatureIndex, 0, 0) === false) return false;\n break;\n case \"Polygon\":\n for (var geometryIndex = 0; geometryIndex < coords.length; geometryIndex++) {\n if (callback(lineString(coords[geometryIndex], feature.properties), featureIndex, multiFeatureIndex, geometryIndex) === false) return false;\n }\n break;\n }\n });\n}\n\n/**\n * Callback for lineReduce\n *\n * The first time the callback function is called, the values provided as arguments depend\n * on whether the reduce method has an initialValue argument.\n *\n * If an initialValue is provided to the reduce method:\n * - The previousValue argument is initialValue.\n * - The currentValue argument is the value of the first element present in the array.\n *\n * If an initialValue is not provided:\n * - The previousValue argument is the value of the first element present in the array.\n * - The currentValue argument is the value of the second element present in the array.\n *\n * @callback lineReduceCallback\n * @param {*} previousValue The accumulated value previously returned in the last invocation\n * of the callback, or initialValue, if supplied.\n * @param {Feature} currentLine The current LineString|LinearRing being processed.\n * @param {number} featureIndex The current index of the Feature being processed\n * @param {number} multiFeatureIndex The current index of the Multi-Feature being processed\n * @param {number} geometryIndex The current index of the Geometry being processed\n */\n\n/**\n * Reduce features in any GeoJSON object, similar to Array.reduce().\n *\n * @name lineReduce\n * @param {Geometry|Feature} geojson object\n * @param {Function} callback a method that takes (previousValue, currentLine, featureIndex, multiFeatureIndex, geometryIndex)\n * @param {*} [initialValue] Value to use as the first argument to the first call of the callback.\n * @returns {*} The value that results from the reduction.\n * @example\n * var multiPoly = turf.multiPolygon([\n * turf.polygon([[[12,48],[2,41],[24,38],[12,48]], [[9,44],[13,41],[13,45],[9,44]]]),\n * turf.polygon([[[5, 5], [0, 0], [2, 2], [4, 4], [5, 5]]])\n * ]);\n *\n * turf.lineReduce(multiPoly, function (previousValue, currentLine, featureIndex, multiFeatureIndex, geometryIndex) {\n * //=previousValue\n * //=currentLine\n * //=featureIndex\n * //=multiFeatureIndex\n * //=geometryIndex\n * return currentLine\n * });\n */\nfunction lineReduce(geojson, callback, initialValue) {\n var previousValue = initialValue;\n lineEach(geojson, function (currentLine, featureIndex, multiFeatureIndex, geometryIndex) {\n if (featureIndex === 0 && initialValue === undefined) previousValue = currentLine;else previousValue = callback(previousValue, currentLine, featureIndex, multiFeatureIndex, geometryIndex);\n });\n return previousValue;\n}\n\n/**\n * Finds a particular 2-vertex LineString Segment from a GeoJSON using `@turf/meta` indexes.\n *\n * Negative indexes are permitted.\n * Point & MultiPoint will always return null.\n *\n * @param {FeatureCollection|Feature|Geometry} geojson Any GeoJSON Feature or Geometry\n * @param {Object} [options={}] Optional parameters\n * @param {number} [options.featureIndex=0] Feature Index\n * @param {number} [options.multiFeatureIndex=0] Multi-Feature Index\n * @param {number} [options.geometryIndex=0] Geometry Index\n * @param {number} [options.segmentIndex=0] Segment Index\n * @param {Object} [options.properties={}] Translate Properties to output LineString\n * @param {BBox} [options.bbox={}] Translate BBox to output LineString\n * @param {number|string} [options.id={}] Translate Id to output LineString\n * @returns {Feature} 2-vertex GeoJSON Feature LineString\n * @example\n * var multiLine = turf.multiLineString([\n * [[10, 10], [50, 30], [30, 40]],\n * [[-10, -10], [-50, -30], [-30, -40]]\n * ]);\n *\n * // First Segment (defaults are 0)\n * turf.findSegment(multiLine);\n * // => Feature>\n *\n * // First Segment of 2nd Multi Feature\n * turf.findSegment(multiLine, {multiFeatureIndex: 1});\n * // => Feature>\n *\n * // Last Segment of Last Multi Feature\n * turf.findSegment(multiLine, {multiFeatureIndex: -1, segmentIndex: -1});\n * // => Feature>\n */\nfunction findSegment(geojson, options) {\n // Optional Parameters\n options = options || {};\n if (!isObject(options)) throw new Error(\"options is invalid\");\n var featureIndex = options.featureIndex || 0;\n var multiFeatureIndex = options.multiFeatureIndex || 0;\n var geometryIndex = options.geometryIndex || 0;\n var segmentIndex = options.segmentIndex || 0;\n\n // Find FeatureIndex\n var properties = options.properties;\n var geometry;\n switch (geojson.type) {\n case \"FeatureCollection\":\n if (featureIndex < 0) featureIndex = geojson.features.length + featureIndex;\n properties = properties || geojson.features[featureIndex].properties;\n geometry = geojson.features[featureIndex].geometry;\n break;\n case \"Feature\":\n properties = properties || geojson.properties;\n geometry = geojson.geometry;\n break;\n case \"Point\":\n case \"MultiPoint\":\n return null;\n case \"LineString\":\n case \"Polygon\":\n case \"MultiLineString\":\n case \"MultiPolygon\":\n geometry = geojson;\n break;\n default:\n throw new Error(\"geojson is invalid\");\n }\n\n // Find SegmentIndex\n if (geometry === null) return null;\n var coords = geometry.coordinates;\n switch (geometry.type) {\n case \"Point\":\n case \"MultiPoint\":\n return null;\n case \"LineString\":\n if (segmentIndex < 0) segmentIndex = coords.length + segmentIndex - 1;\n return lineString([coords[segmentIndex], coords[segmentIndex + 1]], properties, options);\n case \"Polygon\":\n if (geometryIndex < 0) geometryIndex = coords.length + geometryIndex;\n if (segmentIndex < 0) segmentIndex = coords[geometryIndex].length + segmentIndex - 1;\n return lineString([coords[geometryIndex][segmentIndex], coords[geometryIndex][segmentIndex + 1]], properties, options);\n case \"MultiLineString\":\n if (multiFeatureIndex < 0) multiFeatureIndex = coords.length + multiFeatureIndex;\n if (segmentIndex < 0) segmentIndex = coords[multiFeatureIndex].length + segmentIndex - 1;\n return lineString([coords[multiFeatureIndex][segmentIndex], coords[multiFeatureIndex][segmentIndex + 1]], properties, options);\n case \"MultiPolygon\":\n if (multiFeatureIndex < 0) multiFeatureIndex = coords.length + multiFeatureIndex;\n if (geometryIndex < 0) geometryIndex = coords[multiFeatureIndex].length + geometryIndex;\n if (segmentIndex < 0) segmentIndex = coords[multiFeatureIndex][geometryIndex].length - segmentIndex - 1;\n return lineString([coords[multiFeatureIndex][geometryIndex][segmentIndex], coords[multiFeatureIndex][geometryIndex][segmentIndex + 1]], properties, options);\n }\n throw new Error(\"geojson is invalid\");\n}\n\n/**\n * Finds a particular Point from a GeoJSON using `@turf/meta` indexes.\n *\n * Negative indexes are permitted.\n *\n * @param {FeatureCollection|Feature|Geometry} geojson Any GeoJSON Feature or Geometry\n * @param {Object} [options={}] Optional parameters\n * @param {number} [options.featureIndex=0] Feature Index\n * @param {number} [options.multiFeatureIndex=0] Multi-Feature Index\n * @param {number} [options.geometryIndex=0] Geometry Index\n * @param {number} [options.coordIndex=0] Coord Index\n * @param {Object} [options.properties={}] Translate Properties to output Point\n * @param {BBox} [options.bbox={}] Translate BBox to output Point\n * @param {number|string} [options.id={}] Translate Id to output Point\n * @returns {Feature} 2-vertex GeoJSON Feature Point\n * @example\n * var multiLine = turf.multiLineString([\n * [[10, 10], [50, 30], [30, 40]],\n * [[-10, -10], [-50, -30], [-30, -40]]\n * ]);\n *\n * // First Segment (defaults are 0)\n * turf.findPoint(multiLine);\n * // => Feature>\n *\n * // First Segment of the 2nd Multi-Feature\n * turf.findPoint(multiLine, {multiFeatureIndex: 1});\n * // => Feature>\n *\n * // Last Segment of last Multi-Feature\n * turf.findPoint(multiLine, {multiFeatureIndex: -1, coordIndex: -1});\n * // => Feature>\n */\nfunction findPoint(geojson, options) {\n // Optional Parameters\n options = options || {};\n if (!isObject(options)) throw new Error(\"options is invalid\");\n var featureIndex = options.featureIndex || 0;\n var multiFeatureIndex = options.multiFeatureIndex || 0;\n var geometryIndex = options.geometryIndex || 0;\n var coordIndex = options.coordIndex || 0;\n\n // Find FeatureIndex\n var properties = options.properties;\n var geometry;\n switch (geojson.type) {\n case \"FeatureCollection\":\n if (featureIndex < 0) featureIndex = geojson.features.length + featureIndex;\n properties = properties || geojson.features[featureIndex].properties;\n geometry = geojson.features[featureIndex].geometry;\n break;\n case \"Feature\":\n properties = properties || geojson.properties;\n geometry = geojson.geometry;\n break;\n case \"Point\":\n case \"MultiPoint\":\n return null;\n case \"LineString\":\n case \"Polygon\":\n case \"MultiLineString\":\n case \"MultiPolygon\":\n geometry = geojson;\n break;\n default:\n throw new Error(\"geojson is invalid\");\n }\n\n // Find Coord Index\n if (geometry === null) return null;\n var coords = geometry.coordinates;\n switch (geometry.type) {\n case \"Point\":\n return point(coords, properties, options);\n case \"MultiPoint\":\n if (multiFeatureIndex < 0) multiFeatureIndex = coords.length + multiFeatureIndex;\n return point(coords[multiFeatureIndex], properties, options);\n case \"LineString\":\n if (coordIndex < 0) coordIndex = coords.length + coordIndex;\n return point(coords[coordIndex], properties, options);\n case \"Polygon\":\n if (geometryIndex < 0) geometryIndex = coords.length + geometryIndex;\n if (coordIndex < 0) coordIndex = coords[geometryIndex].length + coordIndex;\n return point(coords[geometryIndex][coordIndex], properties, options);\n case \"MultiLineString\":\n if (multiFeatureIndex < 0) multiFeatureIndex = coords.length + multiFeatureIndex;\n if (coordIndex < 0) coordIndex = coords[multiFeatureIndex].length + coordIndex;\n return point(coords[multiFeatureIndex][coordIndex], properties, options);\n case \"MultiPolygon\":\n if (multiFeatureIndex < 0) multiFeatureIndex = coords.length + multiFeatureIndex;\n if (geometryIndex < 0) geometryIndex = coords[multiFeatureIndex].length + geometryIndex;\n if (coordIndex < 0) coordIndex = coords[multiFeatureIndex][geometryIndex].length - coordIndex;\n return point(coords[multiFeatureIndex][geometryIndex][coordIndex], properties, options);\n }\n throw new Error(\"geojson is invalid\");\n}\nexport { coordAll, coordEach, coordReduce, featureEach, featureReduce, findPoint, findSegment, flattenEach, flattenReduce, geomEach, geomReduce, lineEach, lineReduce, propEach, propReduce, segmentEach, segmentReduce };","import pointInPolygon from '@turf/boolean-point-in-polygon';\nimport { multiPoint, featureCollection } from '@turf/helpers';\nimport { featureEach, geomEach, coordEach } from '@turf/meta';\n\n/**\n * Finds {@link Points} or {@link MultiPoint} coordinate positions that fall within {@link (Multi)Polygon(s)}.\n *\n * @name pointsWithinPolygon\n * @param {Feature|FeatureCollection} points Point(s) or MultiPoint(s) as input search\n * @param {FeatureCollection|Geometry|Feature} polygons (Multi)Polygon(s) to check if points are within\n * @returns {FeatureCollection} Point(s) or MultiPoint(s) with positions that land within at least one polygon. The geometry type will match what was passsed in\n * @example\n * var points = turf.points([\n * [-46.6318, -23.5523],\n * [-46.6246, -23.5325],\n * [-46.6062, -23.5513],\n * [-46.663, -23.554],\n * [-46.643, -23.557]\n * ]);\n *\n * var searchWithin = turf.polygon([[\n * [-46.653,-23.543],\n * [-46.634,-23.5346],\n * [-46.613,-23.543],\n * [-46.614,-23.559],\n * [-46.631,-23.567],\n * [-46.653,-23.560],\n * [-46.653,-23.543]\n * ]]);\n *\n * var ptsWithin = turf.pointsWithinPolygon(points, searchWithin);\n *\n * //addToMap\n * var addToMap = [points, searchWithin, ptsWithin]\n * turf.featureEach(ptsWithin, function (currentFeature) {\n * currentFeature.properties['marker-size'] = 'large';\n * currentFeature.properties['marker-color'] = '#000';\n * });\n */\nfunction pointsWithinPolygon(points, polygons) {\n var results = [];\n featureEach(points, function (point) {\n var contained = false;\n if (point.geometry.type === \"Point\") {\n geomEach(polygons, function (polygon) {\n if (pointInPolygon(point, polygon)) contained = true;\n });\n if (contained) {\n results.push(point);\n }\n } else if (point.geometry.type === \"MultiPoint\") {\n var pointsWithin = [];\n geomEach(polygons, function (polygon) {\n coordEach(point, function (pointCoord) {\n if (pointInPolygon(pointCoord, polygon)) {\n contained = true;\n pointsWithin.push(pointCoord);\n }\n });\n });\n if (contained) {\n results.push(multiPoint(pointsWithin));\n }\n } else {\n throw new Error(\"Input geometry must be a Point or MultiPoint\");\n }\n });\n return featureCollection(results);\n}\nexport default pointsWithinPolygon;","/*\n Leaflet.draw 1.0.4, a plugin that adds drawing and editing tools to Leaflet powered maps.\n (c) 2012-2017, Jacob Toye, Jon West, Smartrak, Leaflet\n\n https://github.com/Leaflet/Leaflet.draw\n http://leafletjs.com\n */\n!function (t, e, i) {\n function o(t, e) {\n for (; (t = t.parentElement) && !t.classList.contains(e););\n return t;\n }\n L.drawVersion = \"1.0.4\", L.Draw = {}, L.drawLocal = {\n draw: {\n toolbar: {\n actions: {\n title: \"Cancel drawing\",\n text: \"Cancel\"\n },\n finish: {\n title: \"Finish drawing\",\n text: \"Finish\"\n },\n undo: {\n title: \"Delete last point drawn\",\n text: \"Delete last point\"\n },\n buttons: {\n polyline: \"Draw a polyline\",\n polygon: \"Draw a polygon\",\n rectangle: \"Draw a rectangle\",\n circle: \"Draw a circle\",\n marker: \"Draw a marker\",\n circlemarker: \"Draw a circlemarker\"\n }\n },\n handlers: {\n circle: {\n tooltip: {\n start: \"Click and drag to draw circle.\"\n },\n radius: \"Radius\"\n },\n circlemarker: {\n tooltip: {\n start: \"Click map to place circle marker.\"\n }\n },\n marker: {\n tooltip: {\n start: \"Click map to place marker.\"\n }\n },\n polygon: {\n tooltip: {\n start: \"Click to start drawing shape.\",\n cont: \"Click to continue drawing shape.\",\n end: \"Click first point to close this shape.\"\n }\n },\n polyline: {\n error: \"Error: shape edges cannot cross!\",\n tooltip: {\n start: \"Click to start drawing line.\",\n cont: \"Click to continue drawing line.\",\n end: \"Click last point to finish line.\"\n }\n },\n rectangle: {\n tooltip: {\n start: \"Click and drag to draw rectangle.\"\n }\n },\n simpleshape: {\n tooltip: {\n end: \"Release mouse to finish drawing.\"\n }\n }\n }\n },\n edit: {\n toolbar: {\n actions: {\n save: {\n title: \"Save changes\",\n text: \"Save\"\n },\n cancel: {\n title: \"Cancel editing, discards all changes\",\n text: \"Cancel\"\n },\n clearAll: {\n title: \"Clear all layers\",\n text: \"Clear All\"\n }\n },\n buttons: {\n edit: \"Edit layers\",\n editDisabled: \"No layers to edit\",\n remove: \"Delete layers\",\n removeDisabled: \"No layers to delete\"\n }\n },\n handlers: {\n edit: {\n tooltip: {\n text: \"Drag handles or markers to edit features.\",\n subtext: \"Click cancel to undo changes.\"\n }\n },\n remove: {\n tooltip: {\n text: \"Click on a feature to remove.\"\n }\n }\n }\n }\n }, L.Draw.Event = {}, L.Draw.Event.CREATED = \"draw:created\", L.Draw.Event.EDITED = \"draw:edited\", L.Draw.Event.DELETED = \"draw:deleted\", L.Draw.Event.DRAWSTART = \"draw:drawstart\", L.Draw.Event.DRAWSTOP = \"draw:drawstop\", L.Draw.Event.DRAWVERTEX = \"draw:drawvertex\", L.Draw.Event.EDITSTART = \"draw:editstart\", L.Draw.Event.EDITMOVE = \"draw:editmove\", L.Draw.Event.EDITRESIZE = \"draw:editresize\", L.Draw.Event.EDITVERTEX = \"draw:editvertex\", L.Draw.Event.EDITSTOP = \"draw:editstop\", L.Draw.Event.DELETESTART = \"draw:deletestart\", L.Draw.Event.DELETESTOP = \"draw:deletestop\", L.Draw.Event.TOOLBAROPENED = \"draw:toolbaropened\", L.Draw.Event.TOOLBARCLOSED = \"draw:toolbarclosed\", L.Draw.Event.MARKERCONTEXT = \"draw:markercontext\", L.Draw = L.Draw || {}, L.Draw.Feature = L.Handler.extend({\n initialize: function (t, e) {\n this._map = t, this._container = t._container, this._overlayPane = t._panes.overlayPane, this._popupPane = t._panes.popupPane, e && e.shapeOptions && (e.shapeOptions = L.Util.extend({}, this.options.shapeOptions, e.shapeOptions)), L.setOptions(this, e);\n var i = L.version.split(\".\");\n 1 === parseInt(i[0], 10) && parseInt(i[1], 10) >= 2 ? L.Draw.Feature.include(L.Evented.prototype) : L.Draw.Feature.include(L.Mixin.Events);\n },\n enable: function () {\n this._enabled || (L.Handler.prototype.enable.call(this), this.fire(\"enabled\", {\n handler: this.type\n }), this._map.fire(L.Draw.Event.DRAWSTART, {\n layerType: this.type\n }));\n },\n disable: function () {\n this._enabled && (L.Handler.prototype.disable.call(this), this._map.fire(L.Draw.Event.DRAWSTOP, {\n layerType: this.type\n }), this.fire(\"disabled\", {\n handler: this.type\n }));\n },\n addHooks: function () {\n var t = this._map;\n t && (L.DomUtil.disableTextSelection(), t.getContainer().focus(), this._tooltip = new L.Draw.Tooltip(this._map), L.DomEvent.on(this._container, \"keyup\", this._cancelDrawing, this));\n },\n removeHooks: function () {\n this._map && (L.DomUtil.enableTextSelection(), this._tooltip.dispose(), this._tooltip = null, L.DomEvent.off(this._container, \"keyup\", this._cancelDrawing, this));\n },\n setOptions: function (t) {\n L.setOptions(this, t);\n },\n _fireCreatedEvent: function (t) {\n this._map.fire(L.Draw.Event.CREATED, {\n layer: t,\n layerType: this.type\n });\n },\n _cancelDrawing: function (t) {\n 27 === t.keyCode && (this._map.fire(\"draw:canceled\", {\n layerType: this.type\n }), this.disable());\n }\n }), L.Draw.Polyline = L.Draw.Feature.extend({\n statics: {\n TYPE: \"polyline\"\n },\n Poly: L.Polyline,\n options: {\n allowIntersection: !0,\n repeatMode: !1,\n drawError: {\n color: \"#b00b00\",\n timeout: 2500\n },\n icon: new L.DivIcon({\n iconSize: new L.Point(8, 8),\n className: \"leaflet-div-icon leaflet-editing-icon\"\n }),\n touchIcon: new L.DivIcon({\n iconSize: new L.Point(20, 20),\n className: \"leaflet-div-icon leaflet-editing-icon leaflet-touch-icon\"\n }),\n guidelineDistance: 20,\n maxGuideLineLength: 4e3,\n shapeOptions: {\n stroke: !0,\n color: \"#3388ff\",\n weight: 4,\n opacity: .5,\n fill: !1,\n clickable: !0\n },\n metric: !0,\n feet: !0,\n nautic: !1,\n showLength: !0,\n zIndexOffset: 2e3,\n factor: 1,\n maxPoints: 0\n },\n initialize: function (t, e) {\n L.Browser.touch && (this.options.icon = this.options.touchIcon), this.options.drawError.message = L.drawLocal.draw.handlers.polyline.error, e && e.drawError && (e.drawError = L.Util.extend({}, this.options.drawError, e.drawError)), this.type = L.Draw.Polyline.TYPE, L.Draw.Feature.prototype.initialize.call(this, t, e);\n },\n addHooks: function () {\n L.Draw.Feature.prototype.addHooks.call(this), this._map && (this._markers = [], this._markerGroup = new L.LayerGroup(), this._map.addLayer(this._markerGroup), this._poly = new L.Polyline([], this.options.shapeOptions), this._tooltip.updateContent(this._getTooltipText()), this._mouseMarker || (this._mouseMarker = L.marker(this._map.getCenter(), {\n icon: L.divIcon({\n className: \"leaflet-mouse-marker\",\n iconAnchor: [20, 20],\n iconSize: [40, 40]\n }),\n opacity: 0,\n zIndexOffset: this.options.zIndexOffset\n })), this._mouseMarker.on(\"mouseout\", this._onMouseOut, this).on(\"mousemove\", this._onMouseMove, this).on(\"mousedown\", this._onMouseDown, this).on(\"mouseup\", this._onMouseUp, this).addTo(this._map), this._map.on(\"mouseup\", this._onMouseUp, this).on(\"mousemove\", this._onMouseMove, this).on(\"zoomlevelschange\", this._onZoomEnd, this).on(\"touchstart\", this._onTouch, this).on(\"zoomend\", this._onZoomEnd, this));\n },\n removeHooks: function () {\n L.Draw.Feature.prototype.removeHooks.call(this), this._clearHideErrorTimeout(), this._cleanUpShape(), this._map.removeLayer(this._markerGroup), delete this._markerGroup, delete this._markers, this._map.removeLayer(this._poly), delete this._poly, this._mouseMarker.off(\"mousedown\", this._onMouseDown, this).off(\"mouseout\", this._onMouseOut, this).off(\"mouseup\", this._onMouseUp, this).off(\"mousemove\", this._onMouseMove, this), this._map.removeLayer(this._mouseMarker), delete this._mouseMarker, this._clearGuides(), this._map.off(\"mouseup\", this._onMouseUp, this).off(\"mousemove\", this._onMouseMove, this).off(\"zoomlevelschange\", this._onZoomEnd, this).off(\"zoomend\", this._onZoomEnd, this).off(\"touchstart\", this._onTouch, this).off(\"click\", this._onTouch, this);\n },\n deleteLastVertex: function () {\n if (!(this._markers.length <= 1)) {\n var t = this._markers.pop(),\n e = this._poly,\n i = e.getLatLngs(),\n o = i.splice(-1, 1)[0];\n this._poly.setLatLngs(i), this._markerGroup.removeLayer(t), e.getLatLngs().length < 2 && this._map.removeLayer(e), this._vertexChanged(o, !1);\n }\n },\n addVertex: function (t) {\n if (this._markers.length >= 2 && !this.options.allowIntersection && this._poly.newLatLngIntersects(t)) return void this._showErrorTooltip();\n this._errorShown && this._hideErrorTooltip(), this._markers.push(this._createMarker(t)), this._poly.addLatLng(t), 2 === this._poly.getLatLngs().length && this._map.addLayer(this._poly), this._vertexChanged(t, !0);\n },\n completeShape: function () {\n this._markers.length <= 1 || !this._shapeIsValid() || (this._fireCreatedEvent(), this.disable(), this.options.repeatMode && this.enable());\n },\n _finishShape: function () {\n var t = this._poly._defaultShape ? this._poly._defaultShape() : this._poly.getLatLngs(),\n e = this._poly.newLatLngIntersects(t[t.length - 1]);\n if (!this.options.allowIntersection && e || !this._shapeIsValid()) return void this._showErrorTooltip();\n this._fireCreatedEvent(), this.disable(), this.options.repeatMode && this.enable();\n },\n _shapeIsValid: function () {\n return !0;\n },\n _onZoomEnd: function () {\n null !== this._markers && this._updateGuide();\n },\n _onMouseMove: function (t) {\n var e = this._map.mouseEventToLayerPoint(t.originalEvent),\n i = this._map.layerPointToLatLng(e);\n this._currentLatLng = i, this._updateTooltip(i), this._updateGuide(e), this._mouseMarker.setLatLng(i), L.DomEvent.preventDefault(t.originalEvent);\n },\n _vertexChanged: function (t, e) {\n this._map.fire(L.Draw.Event.DRAWVERTEX, {\n layers: this._markerGroup\n }), this._updateFinishHandler(), this._updateRunningMeasure(t, e), this._clearGuides(), this._updateTooltip();\n },\n _onMouseDown: function (t) {\n if (!this._clickHandled && !this._touchHandled && !this._disableMarkers) {\n this._onMouseMove(t), this._clickHandled = !0, this._disableNewMarkers();\n var e = t.originalEvent,\n i = e.clientX,\n o = e.clientY;\n this._startPoint.call(this, i, o);\n }\n },\n _startPoint: function (t, e) {\n this._mouseDownOrigin = L.point(t, e);\n },\n _onMouseUp: function (t) {\n var e = t.originalEvent,\n i = e.clientX,\n o = e.clientY;\n this._endPoint.call(this, i, o, t), this._clickHandled = null;\n },\n _endPoint: function (e, i, o) {\n if (this._mouseDownOrigin) {\n var a = L.point(e, i).distanceTo(this._mouseDownOrigin),\n n = this._calculateFinishDistance(o.latlng);\n this.options.maxPoints > 1 && this.options.maxPoints == this._markers.length + 1 ? (this.addVertex(o.latlng), this._finishShape()) : n < 10 && L.Browser.touch ? this._finishShape() : Math.abs(a) < 9 * (t.devicePixelRatio || 1) && this.addVertex(o.latlng), this._enableNewMarkers();\n }\n this._mouseDownOrigin = null;\n },\n _onTouch: function (t) {\n var e,\n i,\n o = t.originalEvent;\n !o.touches || !o.touches[0] || this._clickHandled || this._touchHandled || this._disableMarkers || (e = o.touches[0].clientX, i = o.touches[0].clientY, this._disableNewMarkers(), this._touchHandled = !0, this._startPoint.call(this, e, i), this._endPoint.call(this, e, i, t), this._touchHandled = null), this._clickHandled = null;\n },\n _onMouseOut: function () {\n this._tooltip && this._tooltip._onMouseOut.call(this._tooltip);\n },\n _calculateFinishDistance: function (t) {\n var e;\n if (this._markers.length > 0) {\n var i;\n if (this.type === L.Draw.Polyline.TYPE) i = this._markers[this._markers.length - 1];else {\n if (this.type !== L.Draw.Polygon.TYPE) return 1 / 0;\n i = this._markers[0];\n }\n var o = this._map.latLngToContainerPoint(i.getLatLng()),\n a = new L.Marker(t, {\n icon: this.options.icon,\n zIndexOffset: 2 * this.options.zIndexOffset\n }),\n n = this._map.latLngToContainerPoint(a.getLatLng());\n e = o.distanceTo(n);\n } else e = 1 / 0;\n return e;\n },\n _updateFinishHandler: function () {\n var t = this._markers.length;\n t > 1 && this._markers[t - 1].on(\"click\", this._finishShape, this), t > 2 && this._markers[t - 2].off(\"click\", this._finishShape, this);\n },\n _createMarker: function (t) {\n var e = new L.Marker(t, {\n icon: this.options.icon,\n zIndexOffset: 2 * this.options.zIndexOffset\n });\n return this._markerGroup.addLayer(e), e;\n },\n _updateGuide: function (t) {\n var e = this._markers ? this._markers.length : 0;\n e > 0 && (t = t || this._map.latLngToLayerPoint(this._currentLatLng), this._clearGuides(), this._drawGuide(this._map.latLngToLayerPoint(this._markers[e - 1].getLatLng()), t));\n },\n _updateTooltip: function (t) {\n var e = this._getTooltipText();\n t && this._tooltip.updatePosition(t), this._errorShown || this._tooltip.updateContent(e);\n },\n _drawGuide: function (t, e) {\n var i,\n o,\n a,\n n = Math.floor(Math.sqrt(Math.pow(e.x - t.x, 2) + Math.pow(e.y - t.y, 2))),\n s = this.options.guidelineDistance,\n r = this.options.maxGuideLineLength,\n l = n > r ? n - r : s;\n for (this._guidesContainer || (this._guidesContainer = L.DomUtil.create(\"div\", \"leaflet-draw-guides\", this._overlayPane)); l < n; l += this.options.guidelineDistance) i = l / n, o = {\n x: Math.floor(t.x * (1 - i) + i * e.x),\n y: Math.floor(t.y * (1 - i) + i * e.y)\n }, a = L.DomUtil.create(\"div\", \"leaflet-draw-guide-dash\", this._guidesContainer), a.style.backgroundColor = this._errorShown ? this.options.drawError.color : this.options.shapeOptions.color, L.DomUtil.setPosition(a, o);\n },\n _updateGuideColor: function (t) {\n if (this._guidesContainer) for (var e = 0, i = this._guidesContainer.childNodes.length; e < i; e++) this._guidesContainer.childNodes[e].style.backgroundColor = t;\n },\n _clearGuides: function () {\n if (this._guidesContainer) for (; this._guidesContainer.firstChild;) this._guidesContainer.removeChild(this._guidesContainer.firstChild);\n },\n _getTooltipText: function () {\n var t,\n e,\n i = this.options.showLength;\n return 0 === this._markers.length ? t = {\n text: L.drawLocal.draw.handlers.polyline.tooltip.start\n } : (e = i ? this._getMeasurementString() : \"\", t = 1 === this._markers.length ? {\n text: L.drawLocal.draw.handlers.polyline.tooltip.cont,\n subtext: e\n } : {\n text: L.drawLocal.draw.handlers.polyline.tooltip.end,\n subtext: e\n }), t;\n },\n _updateRunningMeasure: function (t, e) {\n var i,\n o,\n a = this._markers.length;\n 1 === this._markers.length ? this._measurementRunningTotal = 0 : (i = a - (e ? 2 : 1), o = L.GeometryUtil.isVersion07x() ? t.distanceTo(this._markers[i].getLatLng()) * (this.options.factor || 1) : this._map.distance(t, this._markers[i].getLatLng()) * (this.options.factor || 1), this._measurementRunningTotal += o * (e ? 1 : -1));\n },\n _getMeasurementString: function () {\n var t,\n e = this._currentLatLng,\n i = this._markers[this._markers.length - 1].getLatLng();\n return t = L.GeometryUtil.isVersion07x() ? i && e && e.distanceTo ? this._measurementRunningTotal + e.distanceTo(i) * (this.options.factor || 1) : this._measurementRunningTotal || 0 : i && e ? this._measurementRunningTotal + this._map.distance(e, i) * (this.options.factor || 1) : this._measurementRunningTotal || 0, L.GeometryUtil.readableDistance(t, this.options.metric, this.options.feet, this.options.nautic, this.options.precision);\n },\n _showErrorTooltip: function () {\n this._errorShown = !0, this._tooltip.showAsError().updateContent({\n text: this.options.drawError.message\n }), this._updateGuideColor(this.options.drawError.color), this._poly.setStyle({\n color: this.options.drawError.color\n }), this._clearHideErrorTimeout(), this._hideErrorTimeout = setTimeout(L.Util.bind(this._hideErrorTooltip, this), this.options.drawError.timeout);\n },\n _hideErrorTooltip: function () {\n this._errorShown = !1, this._clearHideErrorTimeout(), this._tooltip.removeError().updateContent(this._getTooltipText()), this._updateGuideColor(this.options.shapeOptions.color), this._poly.setStyle({\n color: this.options.shapeOptions.color\n });\n },\n _clearHideErrorTimeout: function () {\n this._hideErrorTimeout && (clearTimeout(this._hideErrorTimeout), this._hideErrorTimeout = null);\n },\n _disableNewMarkers: function () {\n this._disableMarkers = !0;\n },\n _enableNewMarkers: function () {\n setTimeout(function () {\n this._disableMarkers = !1;\n }.bind(this), 50);\n },\n _cleanUpShape: function () {\n this._markers.length > 1 && this._markers[this._markers.length - 1].off(\"click\", this._finishShape, this);\n },\n _fireCreatedEvent: function () {\n var t = new this.Poly(this._poly.getLatLngs(), this.options.shapeOptions);\n L.Draw.Feature.prototype._fireCreatedEvent.call(this, t);\n }\n }), L.Draw.Polygon = L.Draw.Polyline.extend({\n statics: {\n TYPE: \"polygon\"\n },\n Poly: L.Polygon,\n options: {\n showArea: !1,\n showLength: !1,\n shapeOptions: {\n stroke: !0,\n color: \"#3388ff\",\n weight: 4,\n opacity: .5,\n fill: !0,\n fillColor: null,\n fillOpacity: .2,\n clickable: !0\n },\n metric: !0,\n feet: !0,\n nautic: !1,\n precision: {}\n },\n initialize: function (t, e) {\n L.Draw.Polyline.prototype.initialize.call(this, t, e), this.type = L.Draw.Polygon.TYPE;\n },\n _updateFinishHandler: function () {\n var t = this._markers.length;\n 1 === t && this._markers[0].on(\"click\", this._finishShape, this), t > 2 && (this._markers[t - 1].on(\"dblclick\", this._finishShape, this), t > 3 && this._markers[t - 2].off(\"dblclick\", this._finishShape, this));\n },\n _getTooltipText: function () {\n var t, e;\n return 0 === this._markers.length ? t = L.drawLocal.draw.handlers.polygon.tooltip.start : this._markers.length < 3 ? (t = L.drawLocal.draw.handlers.polygon.tooltip.cont, e = this._getMeasurementString()) : (t = L.drawLocal.draw.handlers.polygon.tooltip.end, e = this._getMeasurementString()), {\n text: t,\n subtext: e\n };\n },\n _getMeasurementString: function () {\n var t = this._area,\n e = \"\";\n return t || this.options.showLength ? (this.options.showLength && (e = L.Draw.Polyline.prototype._getMeasurementString.call(this)), t && (e += \"
\" + L.GeometryUtil.readableArea(t, this.options.metric, this.options.precision)), e) : null;\n },\n _shapeIsValid: function () {\n return this._markers.length >= 3;\n },\n _vertexChanged: function (t, e) {\n var i;\n !this.options.allowIntersection && this.options.showArea && (i = this._poly.getLatLngs(), this._area = L.GeometryUtil.geodesicArea(i)), L.Draw.Polyline.prototype._vertexChanged.call(this, t, e);\n },\n _cleanUpShape: function () {\n var t = this._markers.length;\n t > 0 && (this._markers[0].off(\"click\", this._finishShape, this), t > 2 && this._markers[t - 1].off(\"dblclick\", this._finishShape, this));\n }\n }), L.SimpleShape = {}, L.Draw.SimpleShape = L.Draw.Feature.extend({\n options: {\n repeatMode: !1\n },\n initialize: function (t, e) {\n this._endLabelText = L.drawLocal.draw.handlers.simpleshape.tooltip.end, L.Draw.Feature.prototype.initialize.call(this, t, e);\n },\n addHooks: function () {\n L.Draw.Feature.prototype.addHooks.call(this), this._map && (this._mapDraggable = this._map.dragging.enabled(), this._mapDraggable && this._map.dragging.disable(), this._container.style.cursor = \"crosshair\", this._tooltip.updateContent({\n text: this._initialLabelText\n }), this._map.on(\"mousedown\", this._onMouseDown, this).on(\"mousemove\", this._onMouseMove, this).on(\"touchstart\", this._onMouseDown, this).on(\"touchmove\", this._onMouseMove, this), e.addEventListener(\"touchstart\", L.DomEvent.preventDefault, {\n passive: !1\n }));\n },\n removeHooks: function () {\n L.Draw.Feature.prototype.removeHooks.call(this), this._map && (this._mapDraggable && this._map.dragging.enable(), this._container.style.cursor = \"\", this._map.off(\"mousedown\", this._onMouseDown, this).off(\"mousemove\", this._onMouseMove, this).off(\"touchstart\", this._onMouseDown, this).off(\"touchmove\", this._onMouseMove, this), L.DomEvent.off(e, \"mouseup\", this._onMouseUp, this), L.DomEvent.off(e, \"touchend\", this._onMouseUp, this), e.removeEventListener(\"touchstart\", L.DomEvent.preventDefault), this._shape && (this._map.removeLayer(this._shape), delete this._shape)), this._isDrawing = !1;\n },\n _getTooltipText: function () {\n return {\n text: this._endLabelText\n };\n },\n _onMouseDown: function (t) {\n this._isDrawing = !0, this._startLatLng = t.latlng, L.DomEvent.on(e, \"mouseup\", this._onMouseUp, this).on(e, \"touchend\", this._onMouseUp, this).preventDefault(t.originalEvent);\n },\n _onMouseMove: function (t) {\n var e = t.latlng;\n this._tooltip.updatePosition(e), this._isDrawing && (this._tooltip.updateContent(this._getTooltipText()), this._drawShape(e));\n },\n _onMouseUp: function () {\n this._shape && this._fireCreatedEvent(), this.disable(), this.options.repeatMode && this.enable();\n }\n }), L.Draw.Rectangle = L.Draw.SimpleShape.extend({\n statics: {\n TYPE: \"rectangle\"\n },\n options: {\n shapeOptions: {\n stroke: !0,\n color: \"#3388ff\",\n weight: 4,\n opacity: .5,\n fill: !0,\n fillColor: null,\n fillOpacity: .2,\n clickable: !0\n },\n showArea: !0,\n metric: !0\n },\n initialize: function (t, e) {\n this.type = L.Draw.Rectangle.TYPE, this._initialLabelText = L.drawLocal.draw.handlers.rectangle.tooltip.start, L.Draw.SimpleShape.prototype.initialize.call(this, t, e);\n },\n disable: function () {\n this._enabled && (this._isCurrentlyTwoClickDrawing = !1, L.Draw.SimpleShape.prototype.disable.call(this));\n },\n _onMouseUp: function (t) {\n if (!this._shape && !this._isCurrentlyTwoClickDrawing) return void (this._isCurrentlyTwoClickDrawing = !0);\n this._isCurrentlyTwoClickDrawing && !o(t.target, \"leaflet-pane\") || L.Draw.SimpleShape.prototype._onMouseUp.call(this);\n },\n _drawShape: function (t) {\n this._shape ? this._shape.setBounds(new L.LatLngBounds(this._startLatLng, t)) : (this._shape = new L.Rectangle(new L.LatLngBounds(this._startLatLng, t), this.options.shapeOptions), this._map.addLayer(this._shape));\n },\n _fireCreatedEvent: function () {\n var t = new L.Rectangle(this._shape.getBounds(), this.options.shapeOptions);\n L.Draw.SimpleShape.prototype._fireCreatedEvent.call(this, t);\n },\n _getTooltipText: function () {\n var t,\n e,\n i,\n o = L.Draw.SimpleShape.prototype._getTooltipText.call(this),\n a = this._shape,\n n = this.options.showArea;\n return a && (t = this._shape._defaultShape ? this._shape._defaultShape() : this._shape.getLatLngs(), e = L.GeometryUtil.geodesicArea(t), i = n ? L.GeometryUtil.readableArea(e, this.options.metric) : \"\"), {\n text: o.text,\n subtext: i\n };\n }\n }), L.Draw.Marker = L.Draw.Feature.extend({\n statics: {\n TYPE: \"marker\"\n },\n options: {\n icon: new L.Icon.Default(),\n repeatMode: !1,\n zIndexOffset: 2e3\n },\n initialize: function (t, e) {\n this.type = L.Draw.Marker.TYPE, this._initialLabelText = L.drawLocal.draw.handlers.marker.tooltip.start, L.Draw.Feature.prototype.initialize.call(this, t, e);\n },\n addHooks: function () {\n L.Draw.Feature.prototype.addHooks.call(this), this._map && (this._tooltip.updateContent({\n text: this._initialLabelText\n }), this._mouseMarker || (this._mouseMarker = L.marker(this._map.getCenter(), {\n icon: L.divIcon({\n className: \"leaflet-mouse-marker\",\n iconAnchor: [20, 20],\n iconSize: [40, 40]\n }),\n opacity: 0,\n zIndexOffset: this.options.zIndexOffset\n })), this._mouseMarker.on(\"click\", this._onClick, this).addTo(this._map), this._map.on(\"mousemove\", this._onMouseMove, this), this._map.on(\"click\", this._onTouch, this));\n },\n removeHooks: function () {\n L.Draw.Feature.prototype.removeHooks.call(this), this._map && (this._map.off(\"click\", this._onClick, this).off(\"click\", this._onTouch, this), this._marker && (this._marker.off(\"click\", this._onClick, this), this._map.removeLayer(this._marker), delete this._marker), this._mouseMarker.off(\"click\", this._onClick, this), this._map.removeLayer(this._mouseMarker), delete this._mouseMarker, this._map.off(\"mousemove\", this._onMouseMove, this));\n },\n _onMouseMove: function (t) {\n var e = t.latlng;\n this._tooltip.updatePosition(e), this._mouseMarker.setLatLng(e), this._marker ? (e = this._mouseMarker.getLatLng(), this._marker.setLatLng(e)) : (this._marker = this._createMarker(e), this._marker.on(\"click\", this._onClick, this), this._map.on(\"click\", this._onClick, this).addLayer(this._marker));\n },\n _createMarker: function (t) {\n return new L.Marker(t, {\n icon: this.options.icon,\n zIndexOffset: this.options.zIndexOffset\n });\n },\n _onClick: function () {\n this._fireCreatedEvent(), this.disable(), this.options.repeatMode && this.enable();\n },\n _onTouch: function (t) {\n this._onMouseMove(t), this._onClick();\n },\n _fireCreatedEvent: function () {\n var t = new L.Marker.Touch(this._marker.getLatLng(), {\n icon: this.options.icon\n });\n L.Draw.Feature.prototype._fireCreatedEvent.call(this, t);\n }\n }), L.Draw.CircleMarker = L.Draw.Marker.extend({\n statics: {\n TYPE: \"circlemarker\"\n },\n options: {\n stroke: !0,\n color: \"#3388ff\",\n weight: 4,\n opacity: .5,\n fill: !0,\n fillColor: null,\n fillOpacity: .2,\n clickable: !0,\n zIndexOffset: 2e3\n },\n initialize: function (t, e) {\n this.type = L.Draw.CircleMarker.TYPE, this._initialLabelText = L.drawLocal.draw.handlers.circlemarker.tooltip.start, L.Draw.Feature.prototype.initialize.call(this, t, e);\n },\n _fireCreatedEvent: function () {\n var t = new L.CircleMarker(this._marker.getLatLng(), this.options);\n L.Draw.Feature.prototype._fireCreatedEvent.call(this, t);\n },\n _createMarker: function (t) {\n return new L.CircleMarker(t, this.options);\n }\n }), L.Draw.Circle = L.Draw.SimpleShape.extend({\n statics: {\n TYPE: \"circle\"\n },\n options: {\n shapeOptions: {\n stroke: !0,\n color: \"#3388ff\",\n weight: 4,\n opacity: .5,\n fill: !0,\n fillColor: null,\n fillOpacity: .2,\n clickable: !0\n },\n showRadius: !0,\n metric: !0,\n feet: !0,\n nautic: !1\n },\n initialize: function (t, e) {\n this.type = L.Draw.Circle.TYPE, this._initialLabelText = L.drawLocal.draw.handlers.circle.tooltip.start, L.Draw.SimpleShape.prototype.initialize.call(this, t, e);\n },\n _drawShape: function (t) {\n if (L.GeometryUtil.isVersion07x()) var e = this._startLatLng.distanceTo(t);else var e = this._map.distance(this._startLatLng, t);\n this._shape ? this._shape.setRadius(e) : (this._shape = new L.Circle(this._startLatLng, e, this.options.shapeOptions), this._map.addLayer(this._shape));\n },\n _fireCreatedEvent: function () {\n var t = new L.Circle(this._startLatLng, this._shape.getRadius(), this.options.shapeOptions);\n L.Draw.SimpleShape.prototype._fireCreatedEvent.call(this, t);\n },\n _onMouseMove: function (t) {\n var e,\n i = t.latlng,\n o = this.options.showRadius,\n a = this.options.metric;\n if (this._tooltip.updatePosition(i), this._isDrawing) {\n this._drawShape(i), e = this._shape.getRadius().toFixed(1);\n var n = \"\";\n o && (n = L.drawLocal.draw.handlers.circle.radius + \": \" + L.GeometryUtil.readableDistance(e, a, this.options.feet, this.options.nautic)), this._tooltip.updateContent({\n text: this._endLabelText,\n subtext: n\n });\n }\n }\n }), L.Edit = L.Edit || {}, L.Edit.Marker = L.Handler.extend({\n initialize: function (t, e) {\n this._marker = t, L.setOptions(this, e);\n },\n addHooks: function () {\n var t = this._marker;\n t.dragging.enable(), t.on(\"dragend\", this._onDragEnd, t), this._toggleMarkerHighlight();\n },\n removeHooks: function () {\n var t = this._marker;\n t.dragging.disable(), t.off(\"dragend\", this._onDragEnd, t), this._toggleMarkerHighlight();\n },\n _onDragEnd: function (t) {\n var e = t.target;\n e.edited = !0, this._map.fire(L.Draw.Event.EDITMOVE, {\n layer: e\n });\n },\n _toggleMarkerHighlight: function () {\n var t = this._marker._icon;\n t && (t.style.display = \"none\", L.DomUtil.hasClass(t, \"leaflet-edit-marker-selected\") ? (L.DomUtil.removeClass(t, \"leaflet-edit-marker-selected\"), this._offsetMarker(t, -4)) : (L.DomUtil.addClass(t, \"leaflet-edit-marker-selected\"), this._offsetMarker(t, 4)), t.style.display = \"\");\n },\n _offsetMarker: function (t, e) {\n var i = parseInt(t.style.marginTop, 10) - e,\n o = parseInt(t.style.marginLeft, 10) - e;\n t.style.marginTop = i + \"px\", t.style.marginLeft = o + \"px\";\n }\n }), L.Marker.addInitHook(function () {\n L.Edit.Marker && (this.editing = new L.Edit.Marker(this), this.options.editable && this.editing.enable());\n }), L.Edit = L.Edit || {}, L.Edit.Poly = L.Handler.extend({\n initialize: function (t) {\n this.latlngs = [t._latlngs], t._holes && (this.latlngs = this.latlngs.concat(t._holes)), this._poly = t, this._poly.on(\"revert-edited\", this._updateLatLngs, this);\n },\n _defaultShape: function () {\n return L.Polyline._flat ? L.Polyline._flat(this._poly._latlngs) ? this._poly._latlngs : this._poly._latlngs[0] : this._poly._latlngs;\n },\n _eachVertexHandler: function (t) {\n for (var e = 0; e < this._verticesHandlers.length; e++) t(this._verticesHandlers[e]);\n },\n addHooks: function () {\n this._initHandlers(), this._eachVertexHandler(function (t) {\n t.addHooks();\n });\n },\n removeHooks: function () {\n this._eachVertexHandler(function (t) {\n t.removeHooks();\n });\n },\n updateMarkers: function () {\n this._eachVertexHandler(function (t) {\n t.updateMarkers();\n });\n },\n _initHandlers: function () {\n this._verticesHandlers = [];\n for (var t = 0; t < this.latlngs.length; t++) this._verticesHandlers.push(new L.Edit.PolyVerticesEdit(this._poly, this.latlngs[t], this._poly.options.poly));\n },\n _updateLatLngs: function (t) {\n this.latlngs = [t.layer._latlngs], t.layer._holes && (this.latlngs = this.latlngs.concat(t.layer._holes));\n }\n }), L.Edit.PolyVerticesEdit = L.Handler.extend({\n options: {\n icon: new L.DivIcon({\n iconSize: new L.Point(8, 8),\n className: \"leaflet-div-icon leaflet-editing-icon\"\n }),\n touchIcon: new L.DivIcon({\n iconSize: new L.Point(20, 20),\n className: \"leaflet-div-icon leaflet-editing-icon leaflet-touch-icon\"\n }),\n drawError: {\n color: \"#b00b00\",\n timeout: 1e3\n }\n },\n initialize: function (t, e, i) {\n L.Browser.touch && (this.options.icon = this.options.touchIcon), this._poly = t, i && i.drawError && (i.drawError = L.Util.extend({}, this.options.drawError, i.drawError)), this._latlngs = e, L.setOptions(this, i);\n },\n _defaultShape: function () {\n return L.Polyline._flat ? L.Polyline._flat(this._latlngs) ? this._latlngs : this._latlngs[0] : this._latlngs;\n },\n addHooks: function () {\n var t = this._poly,\n e = t._path;\n t instanceof L.Polygon || (t.options.fill = !1, t.options.editing && (t.options.editing.fill = !1)), e && t.options.editing && t.options.editing.className && (t.options.original.className && t.options.original.className.split(\" \").forEach(function (t) {\n L.DomUtil.removeClass(e, t);\n }), t.options.editing.className.split(\" \").forEach(function (t) {\n L.DomUtil.addClass(e, t);\n })), t.setStyle(t.options.editing), this._poly._map && (this._map = this._poly._map, this._markerGroup || this._initMarkers(), this._poly._map.addLayer(this._markerGroup));\n },\n removeHooks: function () {\n var t = this._poly,\n e = t._path;\n e && t.options.editing && t.options.editing.className && (t.options.editing.className.split(\" \").forEach(function (t) {\n L.DomUtil.removeClass(e, t);\n }), t.options.original.className && t.options.original.className.split(\" \").forEach(function (t) {\n L.DomUtil.addClass(e, t);\n })), t.setStyle(t.options.original), t._map && (t._map.removeLayer(this._markerGroup), delete this._markerGroup, delete this._markers);\n },\n updateMarkers: function () {\n this._markerGroup.clearLayers(), this._initMarkers();\n },\n _initMarkers: function () {\n this._markerGroup || (this._markerGroup = new L.LayerGroup()), this._markers = [];\n var t,\n e,\n i,\n o,\n a = this._defaultShape();\n for (t = 0, i = a.length; t < i; t++) o = this._createMarker(a[t], t), o.on(\"click\", this._onMarkerClick, this), o.on(\"contextmenu\", this._onContextMenu, this), this._markers.push(o);\n var n, s;\n for (t = 0, e = i - 1; t < i; e = t++) (0 !== t || L.Polygon && this._poly instanceof L.Polygon) && (n = this._markers[e], s = this._markers[t], this._createMiddleMarker(n, s), this._updatePrevNext(n, s));\n },\n _createMarker: function (t, e) {\n var i = new L.Marker.Touch(t, {\n draggable: !0,\n icon: this.options.icon\n });\n return i._origLatLng = t, i._index = e, i.on(\"dragstart\", this._onMarkerDragStart, this).on(\"drag\", this._onMarkerDrag, this).on(\"dragend\", this._fireEdit, this).on(\"touchmove\", this._onTouchMove, this).on(\"touchend\", this._fireEdit, this).on(\"MSPointerMove\", this._onTouchMove, this).on(\"MSPointerUp\", this._fireEdit, this), this._markerGroup.addLayer(i), i;\n },\n _onMarkerDragStart: function () {\n this._poly.fire(\"editstart\");\n },\n _spliceLatLngs: function () {\n var t = this._defaultShape(),\n e = [].splice.apply(t, arguments);\n return this._poly._convertLatLngs(t, !0), this._poly.redraw(), e;\n },\n _removeMarker: function (t) {\n var e = t._index;\n this._markerGroup.removeLayer(t), this._markers.splice(e, 1), this._spliceLatLngs(e, 1), this._updateIndexes(e, -1), t.off(\"dragstart\", this._onMarkerDragStart, this).off(\"drag\", this._onMarkerDrag, this).off(\"dragend\", this._fireEdit, this).off(\"touchmove\", this._onMarkerDrag, this).off(\"touchend\", this._fireEdit, this).off(\"click\", this._onMarkerClick, this).off(\"MSPointerMove\", this._onTouchMove, this).off(\"MSPointerUp\", this._fireEdit, this);\n },\n _fireEdit: function () {\n this._poly.edited = !0, this._poly.fire(\"edit\"), this._poly._map.fire(L.Draw.Event.EDITVERTEX, {\n layers: this._markerGroup,\n poly: this._poly\n });\n },\n _onMarkerDrag: function (t) {\n var e = t.target,\n i = this._poly,\n o = L.LatLngUtil.cloneLatLng(e._origLatLng);\n if (L.extend(e._origLatLng, e._latlng), i.options.poly) {\n var a = i._map._editTooltip;\n if (!i.options.poly.allowIntersection && i.intersects()) {\n L.extend(e._origLatLng, o), e.setLatLng(o);\n var n = i.options.color;\n i.setStyle({\n color: this.options.drawError.color\n }), a && a.updateContent({\n text: L.drawLocal.draw.handlers.polyline.error\n }), setTimeout(function () {\n i.setStyle({\n color: n\n }), a && a.updateContent({\n text: L.drawLocal.edit.handlers.edit.tooltip.text,\n subtext: L.drawLocal.edit.handlers.edit.tooltip.subtext\n });\n }, 1e3);\n }\n }\n e._middleLeft && e._middleLeft.setLatLng(this._getMiddleLatLng(e._prev, e)), e._middleRight && e._middleRight.setLatLng(this._getMiddleLatLng(e, e._next)), this._poly._bounds._southWest = L.latLng(1 / 0, 1 / 0), this._poly._bounds._northEast = L.latLng(-1 / 0, -1 / 0);\n var s = this._poly.getLatLngs();\n this._poly._convertLatLngs(s, !0), this._poly.redraw(), this._poly.fire(\"editdrag\");\n },\n _onMarkerClick: function (t) {\n var e = L.Polygon && this._poly instanceof L.Polygon ? 4 : 3,\n i = t.target;\n this._defaultShape().length < e || (this._removeMarker(i), this._updatePrevNext(i._prev, i._next), i._middleLeft && this._markerGroup.removeLayer(i._middleLeft), i._middleRight && this._markerGroup.removeLayer(i._middleRight), i._prev && i._next ? this._createMiddleMarker(i._prev, i._next) : i._prev ? i._next || (i._prev._middleRight = null) : i._next._middleLeft = null, this._fireEdit());\n },\n _onContextMenu: function (t) {\n var e = t.target;\n this._poly;\n this._poly._map.fire(L.Draw.Event.MARKERCONTEXT, {\n marker: e,\n layers: this._markerGroup,\n poly: this._poly\n }), L.DomEvent.stopPropagation;\n },\n _onTouchMove: function (t) {\n var e = this._map.mouseEventToLayerPoint(t.originalEvent.touches[0]),\n i = this._map.layerPointToLatLng(e),\n o = t.target;\n L.extend(o._origLatLng, i), o._middleLeft && o._middleLeft.setLatLng(this._getMiddleLatLng(o._prev, o)), o._middleRight && o._middleRight.setLatLng(this._getMiddleLatLng(o, o._next)), this._poly.redraw(), this.updateMarkers();\n },\n _updateIndexes: function (t, e) {\n this._markerGroup.eachLayer(function (i) {\n i._index > t && (i._index += e);\n });\n },\n _createMiddleMarker: function (t, e) {\n var i,\n o,\n a,\n n = this._getMiddleLatLng(t, e),\n s = this._createMarker(n);\n s.setOpacity(.6), t._middleRight = e._middleLeft = s, o = function () {\n s.off(\"touchmove\", o, this);\n var a = e._index;\n s._index = a, s.off(\"click\", i, this).on(\"click\", this._onMarkerClick, this), n.lat = s.getLatLng().lat, n.lng = s.getLatLng().lng, this._spliceLatLngs(a, 0, n), this._markers.splice(a, 0, s), s.setOpacity(1), this._updateIndexes(a, 1), e._index++, this._updatePrevNext(t, s), this._updatePrevNext(s, e), this._poly.fire(\"editstart\");\n }, a = function () {\n s.off(\"dragstart\", o, this), s.off(\"dragend\", a, this), s.off(\"touchmove\", o, this), this._createMiddleMarker(t, s), this._createMiddleMarker(s, e);\n }, i = function () {\n o.call(this), a.call(this), this._fireEdit();\n }, s.on(\"click\", i, this).on(\"dragstart\", o, this).on(\"dragend\", a, this).on(\"touchmove\", o, this), this._markerGroup.addLayer(s);\n },\n _updatePrevNext: function (t, e) {\n t && (t._next = e), e && (e._prev = t);\n },\n _getMiddleLatLng: function (t, e) {\n var i = this._poly._map,\n o = i.project(t.getLatLng()),\n a = i.project(e.getLatLng());\n return i.unproject(o._add(a)._divideBy(2));\n }\n }), L.Polyline.addInitHook(function () {\n this.editing || (L.Edit.Poly && (this.editing = new L.Edit.Poly(this), this.options.editable && this.editing.enable()), this.on(\"add\", function () {\n this.editing && this.editing.enabled() && this.editing.addHooks();\n }), this.on(\"remove\", function () {\n this.editing && this.editing.enabled() && this.editing.removeHooks();\n }));\n }), L.Edit = L.Edit || {}, L.Edit.SimpleShape = L.Handler.extend({\n options: {\n moveIcon: new L.DivIcon({\n iconSize: new L.Point(8, 8),\n className: \"leaflet-div-icon leaflet-editing-icon leaflet-edit-move\"\n }),\n resizeIcon: new L.DivIcon({\n iconSize: new L.Point(8, 8),\n className: \"leaflet-div-icon leaflet-editing-icon leaflet-edit-resize\"\n }),\n touchMoveIcon: new L.DivIcon({\n iconSize: new L.Point(20, 20),\n className: \"leaflet-div-icon leaflet-editing-icon leaflet-edit-move leaflet-touch-icon\"\n }),\n touchResizeIcon: new L.DivIcon({\n iconSize: new L.Point(20, 20),\n className: \"leaflet-div-icon leaflet-editing-icon leaflet-edit-resize leaflet-touch-icon\"\n })\n },\n initialize: function (t, e) {\n L.Browser.touch && (this.options.moveIcon = this.options.touchMoveIcon, this.options.resizeIcon = this.options.touchResizeIcon), this._shape = t, L.Util.setOptions(this, e);\n },\n addHooks: function () {\n var t = this._shape;\n this._shape._map && (this._map = this._shape._map, t.setStyle(t.options.editing), t._map && (this._map = t._map, this._markerGroup || this._initMarkers(), this._map.addLayer(this._markerGroup)));\n },\n removeHooks: function () {\n var t = this._shape;\n if (t.setStyle(t.options.original), t._map) {\n this._unbindMarker(this._moveMarker);\n for (var e = 0, i = this._resizeMarkers.length; e < i; e++) this._unbindMarker(this._resizeMarkers[e]);\n this._resizeMarkers = null, this._map.removeLayer(this._markerGroup), delete this._markerGroup;\n }\n this._map = null;\n },\n updateMarkers: function () {\n this._markerGroup.clearLayers(), this._initMarkers();\n },\n _initMarkers: function () {\n this._markerGroup || (this._markerGroup = new L.LayerGroup()), this._createMoveMarker(), this._createResizeMarker();\n },\n _createMoveMarker: function () {},\n _createResizeMarker: function () {},\n _createMarker: function (t, e) {\n var i = new L.Marker.Touch(t, {\n draggable: !0,\n icon: e,\n zIndexOffset: 10\n });\n return this._bindMarker(i), this._markerGroup.addLayer(i), i;\n },\n _bindMarker: function (t) {\n t.on(\"dragstart\", this._onMarkerDragStart, this).on(\"drag\", this._onMarkerDrag, this).on(\"dragend\", this._onMarkerDragEnd, this).on(\"touchstart\", this._onTouchStart, this).on(\"touchmove\", this._onTouchMove, this).on(\"MSPointerMove\", this._onTouchMove, this).on(\"touchend\", this._onTouchEnd, this).on(\"MSPointerUp\", this._onTouchEnd, this);\n },\n _unbindMarker: function (t) {\n t.off(\"dragstart\", this._onMarkerDragStart, this).off(\"drag\", this._onMarkerDrag, this).off(\"dragend\", this._onMarkerDragEnd, this).off(\"touchstart\", this._onTouchStart, this).off(\"touchmove\", this._onTouchMove, this).off(\"MSPointerMove\", this._onTouchMove, this).off(\"touchend\", this._onTouchEnd, this).off(\"MSPointerUp\", this._onTouchEnd, this);\n },\n _onMarkerDragStart: function (t) {\n t.target.setOpacity(0), this._shape.fire(\"editstart\");\n },\n _fireEdit: function () {\n this._shape.edited = !0, this._shape.fire(\"edit\");\n },\n _onMarkerDrag: function (t) {\n var e = t.target,\n i = e.getLatLng();\n e === this._moveMarker ? this._move(i) : this._resize(i), this._shape.redraw(), this._shape.fire(\"editdrag\");\n },\n _onMarkerDragEnd: function (t) {\n t.target.setOpacity(1), this._fireEdit();\n },\n _onTouchStart: function (t) {\n if (L.Edit.SimpleShape.prototype._onMarkerDragStart.call(this, t), \"function\" == typeof this._getCorners) {\n var e = this._getCorners(),\n i = t.target,\n o = i._cornerIndex;\n i.setOpacity(0), this._oppositeCorner = e[(o + 2) % 4], this._toggleCornerMarkers(0, o);\n }\n this._shape.fire(\"editstart\");\n },\n _onTouchMove: function (t) {\n var e = this._map.mouseEventToLayerPoint(t.originalEvent.touches[0]),\n i = this._map.layerPointToLatLng(e);\n return t.target === this._moveMarker ? this._move(i) : this._resize(i), this._shape.redraw(), !1;\n },\n _onTouchEnd: function (t) {\n t.target.setOpacity(1), this.updateMarkers(), this._fireEdit();\n },\n _move: function () {},\n _resize: function () {}\n }), L.Edit = L.Edit || {}, L.Edit.Rectangle = L.Edit.SimpleShape.extend({\n _createMoveMarker: function () {\n var t = this._shape.getBounds(),\n e = t.getCenter();\n this._moveMarker = this._createMarker(e, this.options.moveIcon);\n },\n _createResizeMarker: function () {\n var t = this._getCorners();\n this._resizeMarkers = [];\n for (var e = 0, i = t.length; e < i; e++) this._resizeMarkers.push(this._createMarker(t[e], this.options.resizeIcon)), this._resizeMarkers[e]._cornerIndex = e;\n },\n _onMarkerDragStart: function (t) {\n L.Edit.SimpleShape.prototype._onMarkerDragStart.call(this, t);\n var e = this._getCorners(),\n i = t.target,\n o = i._cornerIndex;\n this._oppositeCorner = e[(o + 2) % 4], this._toggleCornerMarkers(0, o);\n },\n _onMarkerDragEnd: function (t) {\n var e,\n i,\n o = t.target;\n o === this._moveMarker && (e = this._shape.getBounds(), i = e.getCenter(), o.setLatLng(i)), this._toggleCornerMarkers(1), this._repositionCornerMarkers(), L.Edit.SimpleShape.prototype._onMarkerDragEnd.call(this, t);\n },\n _move: function (t) {\n for (var e, i = this._shape._defaultShape ? this._shape._defaultShape() : this._shape.getLatLngs(), o = this._shape.getBounds(), a = o.getCenter(), n = [], s = 0, r = i.length; s < r; s++) e = [i[s].lat - a.lat, i[s].lng - a.lng], n.push([t.lat + e[0], t.lng + e[1]]);\n this._shape.setLatLngs(n), this._repositionCornerMarkers(), this._map.fire(L.Draw.Event.EDITMOVE, {\n layer: this._shape\n });\n },\n _resize: function (t) {\n var e;\n this._shape.setBounds(L.latLngBounds(t, this._oppositeCorner)), e = this._shape.getBounds(), this._moveMarker.setLatLng(e.getCenter()), this._map.fire(L.Draw.Event.EDITRESIZE, {\n layer: this._shape\n });\n },\n _getCorners: function () {\n var t = this._shape.getBounds();\n return [t.getNorthWest(), t.getNorthEast(), t.getSouthEast(), t.getSouthWest()];\n },\n _toggleCornerMarkers: function (t) {\n for (var e = 0, i = this._resizeMarkers.length; e < i; e++) this._resizeMarkers[e].setOpacity(t);\n },\n _repositionCornerMarkers: function () {\n for (var t = this._getCorners(), e = 0, i = this._resizeMarkers.length; e < i; e++) this._resizeMarkers[e].setLatLng(t[e]);\n }\n }), L.Rectangle.addInitHook(function () {\n L.Edit.Rectangle && (this.editing = new L.Edit.Rectangle(this), this.options.editable && this.editing.enable());\n }), L.Edit = L.Edit || {}, L.Edit.CircleMarker = L.Edit.SimpleShape.extend({\n _createMoveMarker: function () {\n var t = this._shape.getLatLng();\n this._moveMarker = this._createMarker(t, this.options.moveIcon);\n },\n _createResizeMarker: function () {\n this._resizeMarkers = [];\n },\n _move: function (t) {\n if (this._resizeMarkers.length) {\n var e = this._getResizeMarkerPoint(t);\n this._resizeMarkers[0].setLatLng(e);\n }\n this._shape.setLatLng(t), this._map.fire(L.Draw.Event.EDITMOVE, {\n layer: this._shape\n });\n }\n }), L.CircleMarker.addInitHook(function () {\n L.Edit.CircleMarker && (this.editing = new L.Edit.CircleMarker(this), this.options.editable && this.editing.enable()), this.on(\"add\", function () {\n this.editing && this.editing.enabled() && this.editing.addHooks();\n }), this.on(\"remove\", function () {\n this.editing && this.editing.enabled() && this.editing.removeHooks();\n });\n }), L.Edit = L.Edit || {}, L.Edit.Circle = L.Edit.CircleMarker.extend({\n _createResizeMarker: function () {\n var t = this._shape.getLatLng(),\n e = this._getResizeMarkerPoint(t);\n this._resizeMarkers = [], this._resizeMarkers.push(this._createMarker(e, this.options.resizeIcon));\n },\n _getResizeMarkerPoint: function (t) {\n var e = this._shape._radius * Math.cos(Math.PI / 4),\n i = this._map.project(t);\n return this._map.unproject([i.x + e, i.y - e]);\n },\n _resize: function (t) {\n var e = this._moveMarker.getLatLng();\n L.GeometryUtil.isVersion07x() ? radius = e.distanceTo(t) : radius = this._map.distance(e, t), this._shape.setRadius(radius), this._map.editTooltip && this._map._editTooltip.updateContent({\n text: L.drawLocal.edit.handlers.edit.tooltip.subtext + \"
\" + L.drawLocal.edit.handlers.edit.tooltip.text,\n subtext: L.drawLocal.draw.handlers.circle.radius + \": \" + L.GeometryUtil.readableDistance(radius, !0, this.options.feet, this.options.nautic)\n }), this._shape.setRadius(radius), this._map.fire(L.Draw.Event.EDITRESIZE, {\n layer: this._shape\n });\n }\n }), L.Circle.addInitHook(function () {\n L.Edit.Circle && (this.editing = new L.Edit.Circle(this), this.options.editable && this.editing.enable());\n }), L.Map.mergeOptions({\n touchExtend: !0\n }), L.Map.TouchExtend = L.Handler.extend({\n initialize: function (t) {\n this._map = t, this._container = t._container, this._pane = t._panes.overlayPane;\n },\n addHooks: function () {\n L.DomEvent.on(this._container, \"touchstart\", this._onTouchStart, this), L.DomEvent.on(this._container, \"touchend\", this._onTouchEnd, this), L.DomEvent.on(this._container, \"touchmove\", this._onTouchMove, this), this._detectIE() ? (L.DomEvent.on(this._container, \"MSPointerDown\", this._onTouchStart, this), L.DomEvent.on(this._container, \"MSPointerUp\", this._onTouchEnd, this), L.DomEvent.on(this._container, \"MSPointerMove\", this._onTouchMove, this), L.DomEvent.on(this._container, \"MSPointerCancel\", this._onTouchCancel, this)) : (L.DomEvent.on(this._container, \"touchcancel\", this._onTouchCancel, this), L.DomEvent.on(this._container, \"touchleave\", this._onTouchLeave, this));\n },\n removeHooks: function () {\n L.DomEvent.off(this._container, \"touchstart\", this._onTouchStart, this), L.DomEvent.off(this._container, \"touchend\", this._onTouchEnd, this), L.DomEvent.off(this._container, \"touchmove\", this._onTouchMove, this), this._detectIE() ? (L.DomEvent.off(this._container, \"MSPointerDown\", this._onTouchStart, this), L.DomEvent.off(this._container, \"MSPointerUp\", this._onTouchEnd, this), L.DomEvent.off(this._container, \"MSPointerMove\", this._onTouchMove, this), L.DomEvent.off(this._container, \"MSPointerCancel\", this._onTouchCancel, this)) : (L.DomEvent.off(this._container, \"touchcancel\", this._onTouchCancel, this), L.DomEvent.off(this._container, \"touchleave\", this._onTouchLeave, this));\n },\n _touchEvent: function (t, e) {\n var i = {};\n if (void 0 !== t.touches) {\n if (!t.touches.length) return;\n i = t.touches[0];\n } else {\n if (\"touch\" !== t.pointerType) return;\n if (i = t, !this._filterClick(t)) return;\n }\n var o = this._map.mouseEventToContainerPoint(i),\n a = this._map.mouseEventToLayerPoint(i),\n n = this._map.layerPointToLatLng(a);\n this._map.fire(e, {\n latlng: n,\n layerPoint: a,\n containerPoint: o,\n pageX: i.pageX,\n pageY: i.pageY,\n originalEvent: t\n });\n },\n _filterClick: function (t) {\n var e = t.timeStamp || t.originalEvent.timeStamp,\n i = L.DomEvent._lastClick && e - L.DomEvent._lastClick;\n return i && i > 100 && i < 500 || t.target._simulatedClick && !t._simulated ? (L.DomEvent.stop(t), !1) : (L.DomEvent._lastClick = e, !0);\n },\n _onTouchStart: function (t) {\n if (this._map._loaded) {\n this._touchEvent(t, \"touchstart\");\n }\n },\n _onTouchEnd: function (t) {\n if (this._map._loaded) {\n this._touchEvent(t, \"touchend\");\n }\n },\n _onTouchCancel: function (t) {\n if (this._map._loaded) {\n var e = \"touchcancel\";\n this._detectIE() && (e = \"pointercancel\"), this._touchEvent(t, e);\n }\n },\n _onTouchLeave: function (t) {\n if (this._map._loaded) {\n this._touchEvent(t, \"touchleave\");\n }\n },\n _onTouchMove: function (t) {\n if (this._map._loaded) {\n this._touchEvent(t, \"touchmove\");\n }\n },\n _detectIE: function () {\n var e = t.navigator.userAgent,\n i = e.indexOf(\"MSIE \");\n if (i > 0) return parseInt(e.substring(i + 5, e.indexOf(\".\", i)), 10);\n if (e.indexOf(\"Trident/\") > 0) {\n var o = e.indexOf(\"rv:\");\n return parseInt(e.substring(o + 3, e.indexOf(\".\", o)), 10);\n }\n var a = e.indexOf(\"Edge/\");\n return a > 0 && parseInt(e.substring(a + 5, e.indexOf(\".\", a)), 10);\n }\n }), L.Map.addInitHook(\"addHandler\", \"touchExtend\", L.Map.TouchExtend), L.Marker.Touch = L.Marker.extend({\n _initInteraction: function () {\n return this.addInteractiveTarget ? L.Marker.prototype._initInteraction.apply(this) : this._initInteractionLegacy();\n },\n _initInteractionLegacy: function () {\n if (this.options.clickable) {\n var t = this._icon,\n e = [\"dblclick\", \"mousedown\", \"mouseover\", \"mouseout\", \"contextmenu\", \"touchstart\", \"touchend\", \"touchmove\"];\n this._detectIE ? e.concat([\"MSPointerDown\", \"MSPointerUp\", \"MSPointerMove\", \"MSPointerCancel\"]) : e.concat([\"touchcancel\"]), L.DomUtil.addClass(t, \"leaflet-clickable\"), L.DomEvent.on(t, \"click\", this._onMouseClick, this), L.DomEvent.on(t, \"keypress\", this._onKeyPress, this);\n for (var i = 0; i < e.length; i++) L.DomEvent.on(t, e[i], this._fireMouseEvent, this);\n L.Handler.MarkerDrag && (this.dragging = new L.Handler.MarkerDrag(this), this.options.draggable && this.dragging.enable());\n }\n },\n _detectIE: function () {\n var e = t.navigator.userAgent,\n i = e.indexOf(\"MSIE \");\n if (i > 0) return parseInt(e.substring(i + 5, e.indexOf(\".\", i)), 10);\n if (e.indexOf(\"Trident/\") > 0) {\n var o = e.indexOf(\"rv:\");\n return parseInt(e.substring(o + 3, e.indexOf(\".\", o)), 10);\n }\n var a = e.indexOf(\"Edge/\");\n return a > 0 && parseInt(e.substring(a + 5, e.indexOf(\".\", a)), 10);\n }\n }), L.LatLngUtil = {\n cloneLatLngs: function (t) {\n for (var e = [], i = 0, o = t.length; i < o; i++) Array.isArray(t[i]) ? e.push(L.LatLngUtil.cloneLatLngs(t[i])) : e.push(this.cloneLatLng(t[i]));\n return e;\n },\n cloneLatLng: function (t) {\n return L.latLng(t.lat, t.lng);\n }\n }, function () {\n var t = {\n km: 2,\n ha: 2,\n m: 0,\n mi: 2,\n ac: 2,\n yd: 0,\n ft: 0,\n nm: 2\n };\n L.GeometryUtil = L.extend(L.GeometryUtil || {}, {\n geodesicArea: function (t) {\n var e,\n i,\n o = t.length,\n a = 0,\n n = Math.PI / 180;\n if (o > 2) {\n for (var s = 0; s < o; s++) e = t[s], i = t[(s + 1) % o], a += (i.lng - e.lng) * n * (2 + Math.sin(e.lat * n) + Math.sin(i.lat * n));\n a = 6378137 * a * 6378137 / 2;\n }\n return Math.abs(a);\n },\n formattedNumber: function (t, e) {\n var i = parseFloat(t).toFixed(e),\n o = L.drawLocal.format && L.drawLocal.format.numeric,\n a = o && o.delimiters,\n n = a && a.thousands,\n s = a && a.decimal;\n if (n || s) {\n var r = i.split(\".\");\n i = n ? r[0].replace(/(\\d)(?=(\\d{3})+(?!\\d))/g, \"$1\" + n) : r[0], s = s || \".\", r.length > 1 && (i = i + s + r[1]);\n }\n return i;\n },\n readableArea: function (e, i, o) {\n var a,\n n,\n o = L.Util.extend({}, t, o);\n return i ? (n = [\"ha\", \"m\"], type = typeof i, \"string\" === type ? n = [i] : \"boolean\" !== type && (n = i), a = e >= 1e6 && -1 !== n.indexOf(\"km\") ? L.GeometryUtil.formattedNumber(1e-6 * e, o.km) + \" km²\" : e >= 1e4 && -1 !== n.indexOf(\"ha\") ? L.GeometryUtil.formattedNumber(1e-4 * e, o.ha) + \" ha\" : L.GeometryUtil.formattedNumber(e, o.m) + \" m²\") : (e /= .836127, a = e >= 3097600 ? L.GeometryUtil.formattedNumber(e / 3097600, o.mi) + \" mi²\" : e >= 4840 ? L.GeometryUtil.formattedNumber(e / 4840, o.ac) + \" acres\" : L.GeometryUtil.formattedNumber(e, o.yd) + \" yd²\"), a;\n },\n readableDistance: function (e, i, o, a, n) {\n var s,\n n = L.Util.extend({}, t, n);\n switch (i ? \"string\" == typeof i ? i : \"metric\" : o ? \"feet\" : a ? \"nauticalMile\" : \"yards\") {\n case \"metric\":\n s = e > 1e3 ? L.GeometryUtil.formattedNumber(e / 1e3, n.km) + \" km\" : L.GeometryUtil.formattedNumber(e, n.m) + \" m\";\n break;\n case \"feet\":\n e *= 3.28083, s = L.GeometryUtil.formattedNumber(e, n.ft) + \" ft\";\n break;\n case \"nauticalMile\":\n e *= .53996, s = L.GeometryUtil.formattedNumber(e / 1e3, n.nm) + \" nm\";\n break;\n case \"yards\":\n default:\n e *= 1.09361, s = e > 1760 ? L.GeometryUtil.formattedNumber(e / 1760, n.mi) + \" miles\" : L.GeometryUtil.formattedNumber(e, n.yd) + \" yd\";\n }\n return s;\n },\n isVersion07x: function () {\n var t = L.version.split(\".\");\n return 0 === parseInt(t[0], 10) && 7 === parseInt(t[1], 10);\n }\n });\n }(), L.Util.extend(L.LineUtil, {\n segmentsIntersect: function (t, e, i, o) {\n return this._checkCounterclockwise(t, i, o) !== this._checkCounterclockwise(e, i, o) && this._checkCounterclockwise(t, e, i) !== this._checkCounterclockwise(t, e, o);\n },\n _checkCounterclockwise: function (t, e, i) {\n return (i.y - t.y) * (e.x - t.x) > (e.y - t.y) * (i.x - t.x);\n }\n }), L.Polyline.include({\n intersects: function () {\n var t,\n e,\n i,\n o = this._getProjectedPoints(),\n a = o ? o.length : 0;\n if (this._tooFewPointsForIntersection()) return !1;\n for (t = a - 1; t >= 3; t--) if (e = o[t - 1], i = o[t], this._lineSegmentsIntersectsRange(e, i, t - 2)) return !0;\n return !1;\n },\n newLatLngIntersects: function (t, e) {\n return !!this._map && this.newPointIntersects(this._map.latLngToLayerPoint(t), e);\n },\n newPointIntersects: function (t, e) {\n var i = this._getProjectedPoints(),\n o = i ? i.length : 0,\n a = i ? i[o - 1] : null,\n n = o - 2;\n return !this._tooFewPointsForIntersection(1) && this._lineSegmentsIntersectsRange(a, t, n, e ? 1 : 0);\n },\n _tooFewPointsForIntersection: function (t) {\n var e = this._getProjectedPoints(),\n i = e ? e.length : 0;\n return i += t || 0, !e || i <= 3;\n },\n _lineSegmentsIntersectsRange: function (t, e, i, o) {\n var a,\n n,\n s = this._getProjectedPoints();\n o = o || 0;\n for (var r = i; r > o; r--) if (a = s[r - 1], n = s[r], L.LineUtil.segmentsIntersect(t, e, a, n)) return !0;\n return !1;\n },\n _getProjectedPoints: function () {\n if (!this._defaultShape) return this._originalPoints;\n for (var t = [], e = this._defaultShape(), i = 0; i < e.length; i++) t.push(this._map.latLngToLayerPoint(e[i]));\n return t;\n }\n }), L.Polygon.include({\n intersects: function () {\n var t,\n e,\n i,\n o,\n a = this._getProjectedPoints();\n return !this._tooFewPointsForIntersection() && (!!L.Polyline.prototype.intersects.call(this) || (t = a.length, e = a[0], i = a[t - 1], o = t - 2, this._lineSegmentsIntersectsRange(i, e, o, 1)));\n }\n }), L.Control.Draw = L.Control.extend({\n options: {\n position: \"topleft\",\n draw: {},\n edit: !1\n },\n initialize: function (t) {\n if (L.version < \"0.7\") throw new Error(\"Leaflet.draw 0.2.3+ requires Leaflet 0.7.0+. Download latest from https://github.com/Leaflet/Leaflet/\");\n L.Control.prototype.initialize.call(this, t);\n var e;\n this._toolbars = {}, L.DrawToolbar && this.options.draw && (e = new L.DrawToolbar(this.options.draw), this._toolbars[L.DrawToolbar.TYPE] = e, this._toolbars[L.DrawToolbar.TYPE].on(\"enable\", this._toolbarEnabled, this)), L.EditToolbar && this.options.edit && (e = new L.EditToolbar(this.options.edit), this._toolbars[L.EditToolbar.TYPE] = e, this._toolbars[L.EditToolbar.TYPE].on(\"enable\", this._toolbarEnabled, this)), L.toolbar = this;\n },\n onAdd: function (t) {\n var e,\n i = L.DomUtil.create(\"div\", \"leaflet-draw\"),\n o = !1;\n for (var a in this._toolbars) this._toolbars.hasOwnProperty(a) && (e = this._toolbars[a].addToolbar(t)) && (o || (L.DomUtil.hasClass(e, \"leaflet-draw-toolbar-top\") || L.DomUtil.addClass(e.childNodes[0], \"leaflet-draw-toolbar-top\"), o = !0), i.appendChild(e));\n return i;\n },\n onRemove: function () {\n for (var t in this._toolbars) this._toolbars.hasOwnProperty(t) && this._toolbars[t].removeToolbar();\n },\n setDrawingOptions: function (t) {\n for (var e in this._toolbars) this._toolbars[e] instanceof L.DrawToolbar && this._toolbars[e].setOptions(t);\n },\n _toolbarEnabled: function (t) {\n var e = t.target;\n for (var i in this._toolbars) this._toolbars[i] !== e && this._toolbars[i].disable();\n }\n }), L.Map.mergeOptions({\n drawControlTooltips: !0,\n drawControl: !1\n }), L.Map.addInitHook(function () {\n this.options.drawControl && (this.drawControl = new L.Control.Draw(), this.addControl(this.drawControl));\n }), L.Toolbar = L.Class.extend({\n initialize: function (t) {\n L.setOptions(this, t), this._modes = {}, this._actionButtons = [], this._activeMode = null;\n var e = L.version.split(\".\");\n 1 === parseInt(e[0], 10) && parseInt(e[1], 10) >= 2 ? L.Toolbar.include(L.Evented.prototype) : L.Toolbar.include(L.Mixin.Events);\n },\n enabled: function () {\n return null !== this._activeMode;\n },\n disable: function () {\n this.enabled() && this._activeMode.handler.disable();\n },\n addToolbar: function (t) {\n var e,\n i = L.DomUtil.create(\"div\", \"leaflet-draw-section\"),\n o = 0,\n a = this._toolbarClass || \"\",\n n = this.getModeHandlers(t);\n for (this._toolbarContainer = L.DomUtil.create(\"div\", \"leaflet-draw-toolbar leaflet-bar\"), this._map = t, e = 0; e < n.length; e++) n[e].enabled && this._initModeHandler(n[e].handler, this._toolbarContainer, o++, a, n[e].title);\n if (o) return this._lastButtonIndex = --o, this._actionsContainer = L.DomUtil.create(\"ul\", \"leaflet-draw-actions\"), i.appendChild(this._toolbarContainer), i.appendChild(this._actionsContainer), i;\n },\n removeToolbar: function () {\n for (var t in this._modes) this._modes.hasOwnProperty(t) && (this._disposeButton(this._modes[t].button, this._modes[t].handler.enable, this._modes[t].handler), this._modes[t].handler.disable(), this._modes[t].handler.off(\"enabled\", this._handlerActivated, this).off(\"disabled\", this._handlerDeactivated, this));\n this._modes = {};\n for (var e = 0, i = this._actionButtons.length; e < i; e++) this._disposeButton(this._actionButtons[e].button, this._actionButtons[e].callback, this);\n this._actionButtons = [], this._actionsContainer = null;\n },\n _initModeHandler: function (t, e, i, o, a) {\n var n = t.type;\n this._modes[n] = {}, this._modes[n].handler = t, this._modes[n].button = this._createButton({\n type: n,\n title: a,\n className: o + \"-\" + n,\n container: e,\n callback: this._modes[n].handler.enable,\n context: this._modes[n].handler\n }), this._modes[n].buttonIndex = i, this._modes[n].handler.on(\"enabled\", this._handlerActivated, this).on(\"disabled\", this._handlerDeactivated, this);\n },\n _detectIOS: function () {\n return /iPad|iPhone|iPod/.test(navigator.userAgent) && !t.MSStream;\n },\n _createButton: function (t) {\n var e = L.DomUtil.create(\"a\", t.className || \"\", t.container),\n i = L.DomUtil.create(\"span\", \"sr-only\", t.container);\n e.href = \"#\", e.appendChild(i), t.title && (e.title = t.title, i.innerHTML = t.title), t.text && (e.innerHTML = t.text, i.innerHTML = t.text);\n var o = this._detectIOS() ? \"touchstart\" : \"click\";\n return L.DomEvent.on(e, \"click\", L.DomEvent.stopPropagation).on(e, \"mousedown\", L.DomEvent.stopPropagation).on(e, \"dblclick\", L.DomEvent.stopPropagation).on(e, \"touchstart\", L.DomEvent.stopPropagation).on(e, \"click\", L.DomEvent.preventDefault).on(e, o, t.callback, t.context), e;\n },\n _disposeButton: function (t, e) {\n var i = this._detectIOS() ? \"touchstart\" : \"click\";\n L.DomEvent.off(t, \"click\", L.DomEvent.stopPropagation).off(t, \"mousedown\", L.DomEvent.stopPropagation).off(t, \"dblclick\", L.DomEvent.stopPropagation).off(t, \"touchstart\", L.DomEvent.stopPropagation).off(t, \"click\", L.DomEvent.preventDefault).off(t, i, e);\n },\n _handlerActivated: function (t) {\n this.disable(), this._activeMode = this._modes[t.handler], L.DomUtil.addClass(this._activeMode.button, \"leaflet-draw-toolbar-button-enabled\"), this._showActionsToolbar(), this.fire(\"enable\");\n },\n _handlerDeactivated: function () {\n this._hideActionsToolbar(), L.DomUtil.removeClass(this._activeMode.button, \"leaflet-draw-toolbar-button-enabled\"), this._activeMode = null, this.fire(\"disable\");\n },\n _createActions: function (t) {\n var e,\n i,\n o,\n a,\n n = this._actionsContainer,\n s = this.getActions(t),\n r = s.length;\n for (i = 0, o = this._actionButtons.length; i < o; i++) this._disposeButton(this._actionButtons[i].button, this._actionButtons[i].callback);\n for (this._actionButtons = []; n.firstChild;) n.removeChild(n.firstChild);\n for (var l = 0; l < r; l++) \"enabled\" in s[l] && !s[l].enabled || (e = L.DomUtil.create(\"li\", \"\", n), a = this._createButton({\n title: s[l].title,\n text: s[l].text,\n container: e,\n callback: s[l].callback,\n context: s[l].context\n }), this._actionButtons.push({\n button: a,\n callback: s[l].callback\n }));\n },\n _showActionsToolbar: function () {\n var t = this._activeMode.buttonIndex,\n e = this._lastButtonIndex,\n i = this._activeMode.button.offsetTop - 1;\n this._createActions(this._activeMode.handler), this._actionsContainer.style.top = i + \"px\", 0 === t && (L.DomUtil.addClass(this._toolbarContainer, \"leaflet-draw-toolbar-notop\"), L.DomUtil.addClass(this._actionsContainer, \"leaflet-draw-actions-top\")), t === e && (L.DomUtil.addClass(this._toolbarContainer, \"leaflet-draw-toolbar-nobottom\"), L.DomUtil.addClass(this._actionsContainer, \"leaflet-draw-actions-bottom\")), this._actionsContainer.style.display = \"block\", this._map.fire(L.Draw.Event.TOOLBAROPENED);\n },\n _hideActionsToolbar: function () {\n this._actionsContainer.style.display = \"none\", L.DomUtil.removeClass(this._toolbarContainer, \"leaflet-draw-toolbar-notop\"), L.DomUtil.removeClass(this._toolbarContainer, \"leaflet-draw-toolbar-nobottom\"), L.DomUtil.removeClass(this._actionsContainer, \"leaflet-draw-actions-top\"), L.DomUtil.removeClass(this._actionsContainer, \"leaflet-draw-actions-bottom\"), this._map.fire(L.Draw.Event.TOOLBARCLOSED);\n }\n }), L.Draw = L.Draw || {}, L.Draw.Tooltip = L.Class.extend({\n initialize: function (t) {\n this._map = t, this._popupPane = t._panes.popupPane, this._visible = !1, this._container = t.options.drawControlTooltips ? L.DomUtil.create(\"div\", \"leaflet-draw-tooltip\", this._popupPane) : null, this._singleLineLabel = !1, this._map.on(\"mouseout\", this._onMouseOut, this);\n },\n dispose: function () {\n this._map.off(\"mouseout\", this._onMouseOut, this), this._container && (this._popupPane.removeChild(this._container), this._container = null);\n },\n updateContent: function (t) {\n return this._container ? (t.subtext = t.subtext || \"\", 0 !== t.subtext.length || this._singleLineLabel ? t.subtext.length > 0 && this._singleLineLabel && (L.DomUtil.removeClass(this._container, \"leaflet-draw-tooltip-single\"), this._singleLineLabel = !1) : (L.DomUtil.addClass(this._container, \"leaflet-draw-tooltip-single\"), this._singleLineLabel = !0), this._container.innerHTML = (t.subtext.length > 0 ? '' + t.subtext + \"
\" : \"\") + \"\" + t.text + \"\", t.text || t.subtext ? (this._visible = !0, this._container.style.visibility = \"inherit\") : (this._visible = !1, this._container.style.visibility = \"hidden\"), this) : this;\n },\n updatePosition: function (t) {\n var e = this._map.latLngToLayerPoint(t),\n i = this._container;\n return this._container && (this._visible && (i.style.visibility = \"inherit\"), L.DomUtil.setPosition(i, e)), this;\n },\n showAsError: function () {\n return this._container && L.DomUtil.addClass(this._container, \"leaflet-error-draw-tooltip\"), this;\n },\n removeError: function () {\n return this._container && L.DomUtil.removeClass(this._container, \"leaflet-error-draw-tooltip\"), this;\n },\n _onMouseOut: function () {\n this._container && (this._container.style.visibility = \"hidden\");\n }\n }), L.DrawToolbar = L.Toolbar.extend({\n statics: {\n TYPE: \"draw\"\n },\n options: {\n polyline: {},\n polygon: {},\n rectangle: {},\n circle: {},\n marker: {},\n circlemarker: {}\n },\n initialize: function (t) {\n for (var e in this.options) this.options.hasOwnProperty(e) && t[e] && (t[e] = L.extend({}, this.options[e], t[e]));\n this._toolbarClass = \"leaflet-draw-draw\", L.Toolbar.prototype.initialize.call(this, t);\n },\n getModeHandlers: function (t) {\n return [{\n enabled: this.options.polyline,\n handler: new L.Draw.Polyline(t, this.options.polyline),\n title: L.drawLocal.draw.toolbar.buttons.polyline\n }, {\n enabled: this.options.polygon,\n handler: new L.Draw.Polygon(t, this.options.polygon),\n title: L.drawLocal.draw.toolbar.buttons.polygon\n }, {\n enabled: this.options.rectangle,\n handler: new L.Draw.Rectangle(t, this.options.rectangle),\n title: L.drawLocal.draw.toolbar.buttons.rectangle\n }, {\n enabled: this.options.circle,\n handler: new L.Draw.Circle(t, this.options.circle),\n title: L.drawLocal.draw.toolbar.buttons.circle\n }, {\n enabled: this.options.marker,\n handler: new L.Draw.Marker(t, this.options.marker),\n title: L.drawLocal.draw.toolbar.buttons.marker\n }, {\n enabled: this.options.circlemarker,\n handler: new L.Draw.CircleMarker(t, this.options.circlemarker),\n title: L.drawLocal.draw.toolbar.buttons.circlemarker\n }];\n },\n getActions: function (t) {\n return [{\n enabled: t.completeShape,\n title: L.drawLocal.draw.toolbar.finish.title,\n text: L.drawLocal.draw.toolbar.finish.text,\n callback: t.completeShape,\n context: t\n }, {\n enabled: t.deleteLastVertex,\n title: L.drawLocal.draw.toolbar.undo.title,\n text: L.drawLocal.draw.toolbar.undo.text,\n callback: t.deleteLastVertex,\n context: t\n }, {\n title: L.drawLocal.draw.toolbar.actions.title,\n text: L.drawLocal.draw.toolbar.actions.text,\n callback: this.disable,\n context: this\n }];\n },\n setOptions: function (t) {\n L.setOptions(this, t);\n for (var e in this._modes) this._modes.hasOwnProperty(e) && t.hasOwnProperty(e) && this._modes[e].handler.setOptions(t[e]);\n }\n }), L.EditToolbar = L.Toolbar.extend({\n statics: {\n TYPE: \"edit\"\n },\n options: {\n edit: {\n selectedPathOptions: {\n dashArray: \"10, 10\",\n fill: !0,\n fillColor: \"#fe57a1\",\n fillOpacity: .1,\n maintainColor: !1\n }\n },\n remove: {},\n poly: null,\n featureGroup: null\n },\n initialize: function (t) {\n t.edit && (void 0 === t.edit.selectedPathOptions && (t.edit.selectedPathOptions = this.options.edit.selectedPathOptions), t.edit.selectedPathOptions = L.extend({}, this.options.edit.selectedPathOptions, t.edit.selectedPathOptions)), t.remove && (t.remove = L.extend({}, this.options.remove, t.remove)), t.poly && (t.poly = L.extend({}, this.options.poly, t.poly)), this._toolbarClass = \"leaflet-draw-edit\", L.Toolbar.prototype.initialize.call(this, t), this._selectedFeatureCount = 0;\n },\n getModeHandlers: function (t) {\n var e = this.options.featureGroup;\n return [{\n enabled: this.options.edit,\n handler: new L.EditToolbar.Edit(t, {\n featureGroup: e,\n selectedPathOptions: this.options.edit.selectedPathOptions,\n poly: this.options.poly\n }),\n title: L.drawLocal.edit.toolbar.buttons.edit\n }, {\n enabled: this.options.remove,\n handler: new L.EditToolbar.Delete(t, {\n featureGroup: e\n }),\n title: L.drawLocal.edit.toolbar.buttons.remove\n }];\n },\n getActions: function (t) {\n var e = [{\n title: L.drawLocal.edit.toolbar.actions.save.title,\n text: L.drawLocal.edit.toolbar.actions.save.text,\n callback: this._save,\n context: this\n }, {\n title: L.drawLocal.edit.toolbar.actions.cancel.title,\n text: L.drawLocal.edit.toolbar.actions.cancel.text,\n callback: this.disable,\n context: this\n }];\n return t.removeAllLayers && e.push({\n title: L.drawLocal.edit.toolbar.actions.clearAll.title,\n text: L.drawLocal.edit.toolbar.actions.clearAll.text,\n callback: this._clearAllLayers,\n context: this\n }), e;\n },\n addToolbar: function (t) {\n var e = L.Toolbar.prototype.addToolbar.call(this, t);\n return this._checkDisabled(), this.options.featureGroup.on(\"layeradd layerremove\", this._checkDisabled, this), e;\n },\n removeToolbar: function () {\n this.options.featureGroup.off(\"layeradd layerremove\", this._checkDisabled, this), L.Toolbar.prototype.removeToolbar.call(this);\n },\n disable: function () {\n this.enabled() && (this._activeMode.handler.revertLayers(), L.Toolbar.prototype.disable.call(this));\n },\n _save: function () {\n this._activeMode.handler.save(), this._activeMode && this._activeMode.handler.disable();\n },\n _clearAllLayers: function () {\n this._activeMode.handler.removeAllLayers(), this._activeMode && this._activeMode.handler.disable();\n },\n _checkDisabled: function () {\n var t,\n e = this.options.featureGroup,\n i = 0 !== e.getLayers().length;\n this.options.edit && (t = this._modes[L.EditToolbar.Edit.TYPE].button, i ? L.DomUtil.removeClass(t, \"leaflet-disabled\") : L.DomUtil.addClass(t, \"leaflet-disabled\"), t.setAttribute(\"title\", i ? L.drawLocal.edit.toolbar.buttons.edit : L.drawLocal.edit.toolbar.buttons.editDisabled)), this.options.remove && (t = this._modes[L.EditToolbar.Delete.TYPE].button, i ? L.DomUtil.removeClass(t, \"leaflet-disabled\") : L.DomUtil.addClass(t, \"leaflet-disabled\"), t.setAttribute(\"title\", i ? L.drawLocal.edit.toolbar.buttons.remove : L.drawLocal.edit.toolbar.buttons.removeDisabled));\n }\n }), L.EditToolbar.Edit = L.Handler.extend({\n statics: {\n TYPE: \"edit\"\n },\n initialize: function (t, e) {\n if (L.Handler.prototype.initialize.call(this, t), L.setOptions(this, e), this._featureGroup = e.featureGroup, !(this._featureGroup instanceof L.FeatureGroup)) throw new Error(\"options.featureGroup must be a L.FeatureGroup\");\n this._uneditedLayerProps = {}, this.type = L.EditToolbar.Edit.TYPE;\n var i = L.version.split(\".\");\n 1 === parseInt(i[0], 10) && parseInt(i[1], 10) >= 2 ? L.EditToolbar.Edit.include(L.Evented.prototype) : L.EditToolbar.Edit.include(L.Mixin.Events);\n },\n enable: function () {\n !this._enabled && this._hasAvailableLayers() && (this.fire(\"enabled\", {\n handler: this.type\n }), this._map.fire(L.Draw.Event.EDITSTART, {\n handler: this.type\n }), L.Handler.prototype.enable.call(this), this._featureGroup.on(\"layeradd\", this._enableLayerEdit, this).on(\"layerremove\", this._disableLayerEdit, this));\n },\n disable: function () {\n this._enabled && (this._featureGroup.off(\"layeradd\", this._enableLayerEdit, this).off(\"layerremove\", this._disableLayerEdit, this), L.Handler.prototype.disable.call(this), this._map.fire(L.Draw.Event.EDITSTOP, {\n handler: this.type\n }), this.fire(\"disabled\", {\n handler: this.type\n }));\n },\n addHooks: function () {\n var t = this._map;\n t && (t.getContainer().focus(), this._featureGroup.eachLayer(this._enableLayerEdit, this), this._tooltip = new L.Draw.Tooltip(this._map), this._tooltip.updateContent({\n text: L.drawLocal.edit.handlers.edit.tooltip.text,\n subtext: L.drawLocal.edit.handlers.edit.tooltip.subtext\n }), t._editTooltip = this._tooltip, this._updateTooltip(), this._map.on(\"mousemove\", this._onMouseMove, this).on(\"touchmove\", this._onMouseMove, this).on(\"MSPointerMove\", this._onMouseMove, this).on(L.Draw.Event.EDITVERTEX, this._updateTooltip, this));\n },\n removeHooks: function () {\n this._map && (this._featureGroup.eachLayer(this._disableLayerEdit, this), this._uneditedLayerProps = {}, this._tooltip.dispose(), this._tooltip = null, this._map.off(\"mousemove\", this._onMouseMove, this).off(\"touchmove\", this._onMouseMove, this).off(\"MSPointerMove\", this._onMouseMove, this).off(L.Draw.Event.EDITVERTEX, this._updateTooltip, this));\n },\n revertLayers: function () {\n this._featureGroup.eachLayer(function (t) {\n this._revertLayer(t);\n }, this);\n },\n save: function () {\n var t = new L.LayerGroup();\n this._featureGroup.eachLayer(function (e) {\n e.edited && (t.addLayer(e), e.edited = !1);\n }), this._map.fire(L.Draw.Event.EDITED, {\n layers: t\n });\n },\n _backupLayer: function (t) {\n var e = L.Util.stamp(t);\n this._uneditedLayerProps[e] || (t instanceof L.Polyline || t instanceof L.Polygon || t instanceof L.Rectangle ? this._uneditedLayerProps[e] = {\n latlngs: L.LatLngUtil.cloneLatLngs(t.getLatLngs())\n } : t instanceof L.Circle ? this._uneditedLayerProps[e] = {\n latlng: L.LatLngUtil.cloneLatLng(t.getLatLng()),\n radius: t.getRadius()\n } : (t instanceof L.Marker || t instanceof L.CircleMarker) && (this._uneditedLayerProps[e] = {\n latlng: L.LatLngUtil.cloneLatLng(t.getLatLng())\n }));\n },\n _getTooltipText: function () {\n return {\n text: L.drawLocal.edit.handlers.edit.tooltip.text,\n subtext: L.drawLocal.edit.handlers.edit.tooltip.subtext\n };\n },\n _updateTooltip: function () {\n this._tooltip.updateContent(this._getTooltipText());\n },\n _revertLayer: function (t) {\n var e = L.Util.stamp(t);\n t.edited = !1, this._uneditedLayerProps.hasOwnProperty(e) && (t instanceof L.Polyline || t instanceof L.Polygon || t instanceof L.Rectangle ? t.setLatLngs(this._uneditedLayerProps[e].latlngs) : t instanceof L.Circle ? (t.setLatLng(this._uneditedLayerProps[e].latlng), t.setRadius(this._uneditedLayerProps[e].radius)) : (t instanceof L.Marker || t instanceof L.CircleMarker) && t.setLatLng(this._uneditedLayerProps[e].latlng), t.fire(\"revert-edited\", {\n layer: t\n }));\n },\n _enableLayerEdit: function (t) {\n var e,\n i,\n o = t.layer || t.target || t;\n this._backupLayer(o), this.options.poly && (i = L.Util.extend({}, this.options.poly), o.options.poly = i), this.options.selectedPathOptions && (e = L.Util.extend({}, this.options.selectedPathOptions), e.maintainColor && (e.color = o.options.color, e.fillColor = o.options.fillColor), o.options.original = L.extend({}, o.options), o.options.editing = e), o instanceof L.Marker ? (o.editing && o.editing.enable(), o.dragging.enable(), o.on(\"dragend\", this._onMarkerDragEnd).on(\"touchmove\", this._onTouchMove, this).on(\"MSPointerMove\", this._onTouchMove, this).on(\"touchend\", this._onMarkerDragEnd, this).on(\"MSPointerUp\", this._onMarkerDragEnd, this)) : o.editing.enable();\n },\n _disableLayerEdit: function (t) {\n var e = t.layer || t.target || t;\n e.edited = !1, e.editing && e.editing.disable(), delete e.options.editing, delete e.options.original, this._selectedPathOptions && (e instanceof L.Marker ? this._toggleMarkerHighlight(e) : (e.setStyle(e.options.previousOptions), delete e.options.previousOptions)), e instanceof L.Marker ? (e.dragging.disable(), e.off(\"dragend\", this._onMarkerDragEnd, this).off(\"touchmove\", this._onTouchMove, this).off(\"MSPointerMove\", this._onTouchMove, this).off(\"touchend\", this._onMarkerDragEnd, this).off(\"MSPointerUp\", this._onMarkerDragEnd, this)) : e.editing.disable();\n },\n _onMouseMove: function (t) {\n this._tooltip.updatePosition(t.latlng);\n },\n _onMarkerDragEnd: function (t) {\n var e = t.target;\n e.edited = !0, this._map.fire(L.Draw.Event.EDITMOVE, {\n layer: e\n });\n },\n _onTouchMove: function (t) {\n var e = t.originalEvent.changedTouches[0],\n i = this._map.mouseEventToLayerPoint(e),\n o = this._map.layerPointToLatLng(i);\n t.target.setLatLng(o);\n },\n _hasAvailableLayers: function () {\n return 0 !== this._featureGroup.getLayers().length;\n }\n }), L.EditToolbar.Delete = L.Handler.extend({\n statics: {\n TYPE: \"remove\"\n },\n initialize: function (t, e) {\n if (L.Handler.prototype.initialize.call(this, t), L.Util.setOptions(this, e), this._deletableLayers = this.options.featureGroup, !(this._deletableLayers instanceof L.FeatureGroup)) throw new Error(\"options.featureGroup must be a L.FeatureGroup\");\n this.type = L.EditToolbar.Delete.TYPE;\n var i = L.version.split(\".\");\n 1 === parseInt(i[0], 10) && parseInt(i[1], 10) >= 2 ? L.EditToolbar.Delete.include(L.Evented.prototype) : L.EditToolbar.Delete.include(L.Mixin.Events);\n },\n enable: function () {\n !this._enabled && this._hasAvailableLayers() && (this.fire(\"enabled\", {\n handler: this.type\n }), this._map.fire(L.Draw.Event.DELETESTART, {\n handler: this.type\n }), L.Handler.prototype.enable.call(this), this._deletableLayers.on(\"layeradd\", this._enableLayerDelete, this).on(\"layerremove\", this._disableLayerDelete, this));\n },\n disable: function () {\n this._enabled && (this._deletableLayers.off(\"layeradd\", this._enableLayerDelete, this).off(\"layerremove\", this._disableLayerDelete, this), L.Handler.prototype.disable.call(this), this._map.fire(L.Draw.Event.DELETESTOP, {\n handler: this.type\n }), this.fire(\"disabled\", {\n handler: this.type\n }));\n },\n addHooks: function () {\n var t = this._map;\n t && (t.getContainer().focus(), this._deletableLayers.eachLayer(this._enableLayerDelete, this), this._deletedLayers = new L.LayerGroup(), this._tooltip = new L.Draw.Tooltip(this._map), this._tooltip.updateContent({\n text: L.drawLocal.edit.handlers.remove.tooltip.text\n }), this._map.on(\"mousemove\", this._onMouseMove, this));\n },\n removeHooks: function () {\n this._map && (this._deletableLayers.eachLayer(this._disableLayerDelete, this), this._deletedLayers = null, this._tooltip.dispose(), this._tooltip = null, this._map.off(\"mousemove\", this._onMouseMove, this));\n },\n revertLayers: function () {\n this._deletedLayers.eachLayer(function (t) {\n this._deletableLayers.addLayer(t), t.fire(\"revert-deleted\", {\n layer: t\n });\n }, this);\n },\n save: function () {\n this._map.fire(L.Draw.Event.DELETED, {\n layers: this._deletedLayers\n });\n },\n removeAllLayers: function () {\n this._deletableLayers.eachLayer(function (t) {\n this._removeLayer({\n layer: t\n });\n }, this), this.save();\n },\n _enableLayerDelete: function (t) {\n (t.layer || t.target || t).on(\"click\", this._removeLayer, this);\n },\n _disableLayerDelete: function (t) {\n var e = t.layer || t.target || t;\n e.off(\"click\", this._removeLayer, this), this._deletedLayers.removeLayer(e);\n },\n _removeLayer: function (t) {\n var e = t.layer || t.target || t;\n this._deletableLayers.removeLayer(e), this._deletedLayers.addLayer(e), e.fire(\"deleted\");\n },\n _onMouseMove: function (t) {\n this._tooltip.updatePosition(t.latlng);\n },\n _hasAvailableLayers: function () {\n return 0 !== this._deletableLayers.getLayers().length;\n }\n });\n}(window, document);","\"use strict\";\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n return _typeof(obj);\n}\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = Loader;\nvar _react = _interopRequireWildcard(require(\"react\"));\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\nvar _loader = require(\"./loader\");\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\nfunction _getRequireWildcardCache() {\n if (typeof WeakMap !== \"function\") return null;\n var cache = new WeakMap();\n _getRequireWildcardCache = function _getRequireWildcardCache() {\n return cache;\n };\n return cache;\n}\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n }\n if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") {\n return {\n \"default\": obj\n };\n }\n var cache = _getRequireWildcardCache();\n if (cache && cache.has(obj)) {\n return cache.get(obj);\n }\n var newObj = {};\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n if (desc && (desc.get || desc.set)) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n newObj[\"default\"] = obj;\n if (cache) {\n cache.set(obj, newObj);\n }\n return newObj;\n}\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n return keys;\n}\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n return target;\n}\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n return arr2;\n}\nfunction _iterableToArrayLimit(arr, i) {\n if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n return _arr;\n}\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\nvar componentNames = [\"Audio\", \"BallTriangle\", \"Bars\", \"Circles\", \"Grid\", \"Hearts\", \"Oval\", \"Puff\", \"Rings\", \"TailSpin\", \"ThreeDots\", \"Watch\", \"RevolvingDot\", \"Triangle\", \"Plane\", \"MutatingDots\", \"CradleLoader\"];\nfunction componentName(type) {\n if (componentNames.includes(type)) {\n return _loader.Spinner[type];\n }\n return _loader.Spinner.Audio;\n}\n/**\n * @return {null}\n */\n\nfunction Loader(props) {\n var _useState = (0, _react.useState)(true),\n _useState2 = _slicedToArray(_useState, 2),\n display = _useState2[0],\n setDisplay = _useState2[1];\n (0, _react.useEffect)(function () {\n var timer;\n if (props.timeout && props.timeout > 0) {\n timer = setTimeout(function () {\n setDisplay(false);\n }, props.timeout);\n }\n return function () {\n if (timer) clearTimeout(timer);\n };\n });\n if (!props.visible || props.visible === \"false\") {\n return null;\n }\n return display ? /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n \"aria-busy\": \"true\",\n className: props.className,\n style: props.style\n }, /*#__PURE__*/_react[\"default\"].createElement(componentName(props.type), _objectSpread({}, props))) : null;\n}\nLoader.propTypes = {\n type: _propTypes[\"default\"].oneOf([].concat(componentNames)),\n style: _propTypes[\"default\"].objectOf(_propTypes[\"default\"].string),\n className: _propTypes[\"default\"].string,\n visible: _propTypes[\"default\"].oneOfType([_propTypes[\"default\"].bool, _propTypes[\"default\"].string]),\n timeout: _propTypes[\"default\"].number\n};\nLoader.defaultProps = {\n type: \"Audio\",\n style: {},\n className: \"\",\n visible: true,\n timeout: 0\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Audio = void 0;\nvar _react = _interopRequireDefault(require(\"react\"));\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\nvar Audio = function Audio(props) {\n return /*#__PURE__*/_react[\"default\"].createElement(\"svg\", {\n height: props.height,\n width: props.width,\n fill: props.color,\n viewBox: \"0 0 55 80\",\n xmlns: \"http://www.w3.org/2000/svg\",\n \"aria-label\": props.label\n }, /*#__PURE__*/_react[\"default\"].createElement(\"g\", {\n transform: \"matrix(1 0 0 -1 0 80)\"\n }, /*#__PURE__*/_react[\"default\"].createElement(\"rect\", {\n width: \"10\",\n height: \"20\",\n rx: \"3\"\n }, /*#__PURE__*/_react[\"default\"].createElement(\"animate\", {\n attributeName: \"height\",\n begin: \"0s\",\n dur: \"4.3s\",\n values: \"20;45;57;80;64;32;66;45;64;23;66;13;64;56;34;34;2;23;76;79;20\",\n calcMode: \"linear\",\n repeatCount: \"indefinite\"\n })), /*#__PURE__*/_react[\"default\"].createElement(\"rect\", {\n x: \"15\",\n width: \"10\",\n height: \"80\",\n rx: \"3\"\n }, /*#__PURE__*/_react[\"default\"].createElement(\"animate\", {\n attributeName: \"height\",\n begin: \"0s\",\n dur: \"2s\",\n values: \"80;55;33;5;75;23;73;33;12;14;60;80\",\n calcMode: \"linear\",\n repeatCount: \"indefinite\"\n })), /*#__PURE__*/_react[\"default\"].createElement(\"rect\", {\n x: \"30\",\n width: \"10\",\n height: \"50\",\n rx: \"3\"\n }, /*#__PURE__*/_react[\"default\"].createElement(\"animate\", {\n attributeName: \"height\",\n begin: \"0s\",\n dur: \"1.4s\",\n values: \"50;34;78;23;56;23;34;76;80;54;21;50\",\n calcMode: \"linear\",\n repeatCount: \"indefinite\"\n })), /*#__PURE__*/_react[\"default\"].createElement(\"rect\", {\n x: \"45\",\n width: \"10\",\n height: \"30\",\n rx: \"3\"\n }, /*#__PURE__*/_react[\"default\"].createElement(\"animate\", {\n attributeName: \"height\",\n begin: \"0s\",\n dur: \"2s\",\n values: \"30;45;13;80;56;72;45;76;34;23;67;30\",\n calcMode: \"linear\",\n repeatCount: \"indefinite\"\n }))));\n};\nexports.Audio = Audio;\nAudio.propTypes = {\n height: _propTypes[\"default\"].oneOfType([_propTypes[\"default\"].string, _propTypes[\"default\"].number]),\n width: _propTypes[\"default\"].oneOfType([_propTypes[\"default\"].string, _propTypes[\"default\"].number]),\n color: _propTypes[\"default\"].string,\n label: _propTypes[\"default\"].string\n};\nAudio.defaultProps = {\n height: 80,\n width: 80,\n color: \"green\",\n label: \"audio-loading\"\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.BallTriangle = void 0;\nvar _react = _interopRequireDefault(require(\"react\"));\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\nvar BallTriangle = function BallTriangle(props) {\n return /*#__PURE__*/_react[\"default\"].createElement(\"svg\", {\n height: props.height,\n width: props.width,\n stroke: props.color,\n viewBox: \"0 0 57 57\",\n xmlns: \"http://www.w3.org/2000/svg\",\n \"aria-label\": props.label\n }, /*#__PURE__*/_react[\"default\"].createElement(\"g\", {\n fill: \"none\",\n fillRule: \"evenodd\"\n }, /*#__PURE__*/_react[\"default\"].createElement(\"g\", {\n transform: \"translate(1 1)\",\n strokeWidth: \"2\"\n }, /*#__PURE__*/_react[\"default\"].createElement(\"circle\", {\n cx: \"5\",\n cy: \"50\",\n r: props.radius\n }, /*#__PURE__*/_react[\"default\"].createElement(\"animate\", {\n attributeName: \"cy\",\n begin: \"0s\",\n dur: \"2.2s\",\n values: \"50;5;50;50\",\n calcMode: \"linear\",\n repeatCount: \"indefinite\"\n }), /*#__PURE__*/_react[\"default\"].createElement(\"animate\", {\n attributeName: \"cx\",\n begin: \"0s\",\n dur: \"2.2s\",\n values: \"5;27;49;5\",\n calcMode: \"linear\",\n repeatCount: \"indefinite\"\n })), /*#__PURE__*/_react[\"default\"].createElement(\"circle\", {\n cx: \"27\",\n cy: \"5\",\n r: props.radius\n }, /*#__PURE__*/_react[\"default\"].createElement(\"animate\", {\n attributeName: \"cy\",\n begin: \"0s\",\n dur: \"2.2s\",\n from: \"5\",\n to: \"5\",\n values: \"5;50;50;5\",\n calcMode: \"linear\",\n repeatCount: \"indefinite\"\n }), /*#__PURE__*/_react[\"default\"].createElement(\"animate\", {\n attributeName: \"cx\",\n begin: \"0s\",\n dur: \"2.2s\",\n from: \"27\",\n to: \"27\",\n values: \"27;49;5;27\",\n calcMode: \"linear\",\n repeatCount: \"indefinite\"\n })), /*#__PURE__*/_react[\"default\"].createElement(\"circle\", {\n cx: \"49\",\n cy: \"50\",\n r: props.radius\n }, /*#__PURE__*/_react[\"default\"].createElement(\"animate\", {\n attributeName: \"cy\",\n begin: \"0s\",\n dur: \"2.2s\",\n values: \"50;50;5;50\",\n calcMode: \"linear\",\n repeatCount: \"indefinite\"\n }), /*#__PURE__*/_react[\"default\"].createElement(\"animate\", {\n attributeName: \"cx\",\n from: \"49\",\n to: \"49\",\n begin: \"0s\",\n dur: \"2.2s\",\n values: \"49;5;27;49\",\n calcMode: \"linear\",\n repeatCount: \"indefinite\"\n })))));\n};\nexports.BallTriangle = BallTriangle;\nBallTriangle.propTypes = {\n height: _propTypes[\"default\"].oneOfType([_propTypes[\"default\"].string, _propTypes[\"default\"].number]),\n width: _propTypes[\"default\"].oneOfType([_propTypes[\"default\"].string, _propTypes[\"default\"].number]),\n color: _propTypes[\"default\"].string,\n label: _propTypes[\"default\"].string,\n radius: _propTypes[\"default\"].number\n};\nBallTriangle.defaultProps = {\n height: 80,\n width: 80,\n color: \"green\",\n radius: 5,\n label: \"audio-loading\"\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Bars = void 0;\nvar _react = _interopRequireDefault(require(\"react\"));\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\nvar Bars = function Bars(props) {\n return /*#__PURE__*/_react[\"default\"].createElement(\"svg\", {\n width: props.width,\n height: props.height,\n fill: props.color,\n viewBox: \"0 0 135 140\",\n xmlns: \"http://www.w3.org/2000/svg\",\n \"aria-label\": props.label\n }, /*#__PURE__*/_react[\"default\"].createElement(\"rect\", {\n y: \"10\",\n width: \"15\",\n height: \"120\",\n rx: \"6\"\n }, /*#__PURE__*/_react[\"default\"].createElement(\"animate\", {\n attributeName: \"height\",\n begin: \"0.5s\",\n dur: \"1s\",\n values: \"120;110;100;90;80;70;60;50;40;140;120\",\n calcMode: \"linear\",\n repeatCount: \"indefinite\"\n }), /*#__PURE__*/_react[\"default\"].createElement(\"animate\", {\n attributeName: \"y\",\n begin: \"0.5s\",\n dur: \"1s\",\n values: \"10;15;20;25;30;35;40;45;50;0;10\",\n calcMode: \"linear\",\n repeatCount: \"indefinite\"\n })), /*#__PURE__*/_react[\"default\"].createElement(\"rect\", {\n x: \"30\",\n y: \"10\",\n width: \"15\",\n height: \"120\",\n rx: \"6\"\n }, /*#__PURE__*/_react[\"default\"].createElement(\"animate\", {\n attributeName: \"height\",\n begin: \"0.25s\",\n dur: \"1s\",\n values: \"120;110;100;90;80;70;60;50;40;140;120\",\n calcMode: \"linear\",\n repeatCount: \"indefinite\"\n }), /*#__PURE__*/_react[\"default\"].createElement(\"animate\", {\n attributeName: \"y\",\n begin: \"0.25s\",\n dur: \"1s\",\n values: \"10;15;20;25;30;35;40;45;50;0;10\",\n calcMode: \"linear\",\n repeatCount: \"indefinite\"\n })), /*#__PURE__*/_react[\"default\"].createElement(\"rect\", {\n x: \"60\",\n width: \"15\",\n height: \"140\",\n rx: \"6\"\n }, /*#__PURE__*/_react[\"default\"].createElement(\"animate\", {\n attributeName: \"height\",\n begin: \"0s\",\n dur: \"1s\",\n values: \"120;110;100;90;80;70;60;50;40;140;120\",\n calcMode: \"linear\",\n repeatCount: \"indefinite\"\n }), /*#__PURE__*/_react[\"default\"].createElement(\"animate\", {\n attributeName: \"y\",\n begin: \"0s\",\n dur: \"1s\",\n values: \"10;15;20;25;30;35;40;45;50;0;10\",\n calcMode: \"linear\",\n repeatCount: \"indefinite\"\n })), /*#__PURE__*/_react[\"default\"].createElement(\"rect\", {\n x: \"90\",\n y: \"10\",\n width: \"15\",\n height: \"120\",\n rx: \"6\"\n }, /*#__PURE__*/_react[\"default\"].createElement(\"animate\", {\n attributeName: \"height\",\n begin: \"0.25s\",\n dur: \"1s\",\n values: \"120;110;100;90;80;70;60;50;40;140;120\",\n calcMode: \"linear\",\n repeatCount: \"indefinite\"\n }), /*#__PURE__*/_react[\"default\"].createElement(\"animate\", {\n attributeName: \"y\",\n begin: \"0.25s\",\n dur: \"1s\",\n values: \"10;15;20;25;30;35;40;45;50;0;10\",\n calcMode: \"linear\",\n repeatCount: \"indefinite\"\n })), /*#__PURE__*/_react[\"default\"].createElement(\"rect\", {\n x: \"120\",\n y: \"10\",\n width: \"15\",\n height: \"120\",\n rx: \"6\"\n }, /*#__PURE__*/_react[\"default\"].createElement(\"animate\", {\n attributeName: \"height\",\n begin: \"0.5s\",\n dur: \"1s\",\n values: \"120;110;100;90;80;70;60;50;40;140;120\",\n calcMode: \"linear\",\n repeatCount: \"indefinite\"\n }), /*#__PURE__*/_react[\"default\"].createElement(\"animate\", {\n attributeName: \"y\",\n begin: \"0.5s\",\n dur: \"1s\",\n values: \"10;15;20;25;30;35;40;45;50;0;10\",\n calcMode: \"linear\",\n repeatCount: \"indefinite\"\n })));\n};\nexports.Bars = Bars;\nBars.propTypes = {\n height: _propTypes[\"default\"].oneOfType([_propTypes[\"default\"].string, _propTypes[\"default\"].number]),\n width: _propTypes[\"default\"].oneOfType([_propTypes[\"default\"].string, _propTypes[\"default\"].number]),\n color: _propTypes[\"default\"].string,\n label: _propTypes[\"default\"].string\n};\nBars.defaultProps = {\n height: 80,\n width: 80,\n color: \"green\",\n label: \"audio-loading\"\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Circles = void 0;\nvar _react = _interopRequireDefault(require(\"react\"));\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\nvar Circles = function Circles(props) {\n return /*#__PURE__*/_react[\"default\"].createElement(\"svg\", {\n width: props.width,\n height: props.height,\n viewBox: \"0 0 135 135\",\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: props.color,\n \"aria-label\": props.label\n }, /*#__PURE__*/_react[\"default\"].createElement(\"path\", {\n d: \"M67.447 58c5.523 0 10-4.477 10-10s-4.477-10-10-10-10 4.477-10 10 4.477 10 10 10zm9.448 9.447c0 5.523 4.477 10 10 10 5.522 0 10-4.477 10-10s-4.478-10-10-10c-5.523 0-10 4.477-10 10zm-9.448 9.448c-5.523 0-10 4.477-10 10 0 5.522 4.477 10 10 10s10-4.478 10-10c0-5.523-4.477-10-10-10zM58 67.447c0-5.523-4.477-10-10-10s-10 4.477-10 10 4.477 10 10 10 10-4.477 10-10z\"\n }, /*#__PURE__*/_react[\"default\"].createElement(\"animateTransform\", {\n attributeName: \"transform\",\n type: \"rotate\",\n from: \"0 67 67\",\n to: \"-360 67 67\",\n dur: \"2.5s\",\n repeatCount: \"indefinite\"\n })), /*#__PURE__*/_react[\"default\"].createElement(\"path\", {\n d: \"M28.19 40.31c6.627 0 12-5.374 12-12 0-6.628-5.373-12-12-12-6.628 0-12 5.372-12 12 0 6.626 5.372 12 12 12zm30.72-19.825c4.686 4.687 12.284 4.687 16.97 0 4.686-4.686 4.686-12.284 0-16.97-4.686-4.687-12.284-4.687-16.97 0-4.687 4.686-4.687 12.284 0 16.97zm35.74 7.705c0 6.627 5.37 12 12 12 6.626 0 12-5.373 12-12 0-6.628-5.374-12-12-12-6.63 0-12 5.372-12 12zm19.822 30.72c-4.686 4.686-4.686 12.284 0 16.97 4.687 4.686 12.285 4.686 16.97 0 4.687-4.686 4.687-12.284 0-16.97-4.685-4.687-12.283-4.687-16.97 0zm-7.704 35.74c-6.627 0-12 5.37-12 12 0 6.626 5.373 12 12 12s12-5.374 12-12c0-6.63-5.373-12-12-12zm-30.72 19.822c-4.686-4.686-12.284-4.686-16.97 0-4.686 4.687-4.686 12.285 0 16.97 4.686 4.687 12.284 4.687 16.97 0 4.687-4.685 4.687-12.283 0-16.97zm-35.74-7.704c0-6.627-5.372-12-12-12-6.626 0-12 5.373-12 12s5.374 12 12 12c6.628 0 12-5.373 12-12zm-19.823-30.72c4.687-4.686 4.687-12.284 0-16.97-4.686-4.686-12.284-4.686-16.97 0-4.687 4.686-4.687 12.284 0 16.97 4.686 4.687 12.284 4.687 16.97 0z\"\n }, /*#__PURE__*/_react[\"default\"].createElement(\"animateTransform\", {\n attributeName: \"transform\",\n type: \"rotate\",\n from: \"0 67 67\",\n to: \"360 67 67\",\n dur: \"8s\",\n repeatCount: \"indefinite\"\n })));\n};\nexports.Circles = Circles;\nCircles.propTypes = {\n height: _propTypes[\"default\"].oneOfType([_propTypes[\"default\"].string, _propTypes[\"default\"].number]),\n width: _propTypes[\"default\"].oneOfType([_propTypes[\"default\"].string, _propTypes[\"default\"].number]),\n color: _propTypes[\"default\"].string,\n label: _propTypes[\"default\"].string\n};\nCircles.defaultProps = {\n height: 80,\n width: 80,\n color: \"green\",\n label: \"audio-loading\"\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.CradleLoader = void 0;\nvar _react = _interopRequireDefault(require(\"react\"));\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\nvar CradleLoader = function CradleLoader(props) {\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n \"aria-label\": props.label,\n role: \"presentation\",\n className: \"container\"\n }, /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: \"react-spinner-loader-swing\"\n }, /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: \"react-spinner-loader-swing-l\"\n }), /*#__PURE__*/_react[\"default\"].createElement(\"div\", null), /*#__PURE__*/_react[\"default\"].createElement(\"div\", null), /*#__PURE__*/_react[\"default\"].createElement(\"div\", null), /*#__PURE__*/_react[\"default\"].createElement(\"div\", null), /*#__PURE__*/_react[\"default\"].createElement(\"div\", null), /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: \"react-spinner-loader-swing-r\"\n })), /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: \"react-spinner-loader-shadow\"\n }, /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: \"react-spinner-loader-shadow-l\"\n }), /*#__PURE__*/_react[\"default\"].createElement(\"div\", null), /*#__PURE__*/_react[\"default\"].createElement(\"div\", null), /*#__PURE__*/_react[\"default\"].createElement(\"div\", null), /*#__PURE__*/_react[\"default\"].createElement(\"div\", null), /*#__PURE__*/_react[\"default\"].createElement(\"div\", null), /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: \"react-spinner-loader-shadow-r\"\n })));\n};\nexports.CradleLoader = CradleLoader;\nCradleLoader.propTypes = {\n label: _propTypes[\"default\"].string\n};\nCradleLoader.defaultProps = {\n label: \"audio-loading\"\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Grid = void 0;\nvar _react = _interopRequireDefault(require(\"react\"));\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\nvar Grid = function Grid(props) {\n return /*#__PURE__*/_react[\"default\"].createElement(\"svg\", {\n width: props.width,\n height: props.height,\n viewBox: \"0 0 105 105\",\n fill: props.color,\n \"aria-label\": props.label\n }, /*#__PURE__*/_react[\"default\"].createElement(\"circle\", {\n cx: \"12.5\",\n cy: \"12.5\",\n r: props.radius\n }, /*#__PURE__*/_react[\"default\"].createElement(\"animate\", {\n attributeName: \"fill-opacity\",\n begin: \"0s\",\n dur: \"1s\",\n values: \"1;.2;1\",\n calcMode: \"linear\",\n repeatCount: \"indefinite\"\n })), /*#__PURE__*/_react[\"default\"].createElement(\"circle\", {\n cx: \"12.5\",\n cy: \"52.5\",\n r: props.radius\n }, /*#__PURE__*/_react[\"default\"].createElement(\"animate\", {\n attributeName: \"fill-opacity\",\n begin: \"100ms\",\n dur: \"1s\",\n values: \"1;.2;1\",\n calcMode: \"linear\",\n repeatCount: \"indefinite\"\n })), /*#__PURE__*/_react[\"default\"].createElement(\"circle\", {\n cx: \"52.5\",\n cy: \"12.5\",\n r: props.radius\n }, /*#__PURE__*/_react[\"default\"].createElement(\"animate\", {\n attributeName: \"fill-opacity\",\n begin: \"300ms\",\n dur: \"1s\",\n values: \"1;.2;1\",\n calcMode: \"linear\",\n repeatCount: \"indefinite\"\n })), /*#__PURE__*/_react[\"default\"].createElement(\"circle\", {\n cx: \"52.5\",\n cy: \"52.5\",\n r: props.radius\n }, /*#__PURE__*/_react[\"default\"].createElement(\"animate\", {\n attributeName: \"fill-opacity\",\n begin: \"600ms\",\n dur: \"1s\",\n values: \"1;.2;1\",\n calcMode: \"linear\",\n repeatCount: \"indefinite\"\n })), /*#__PURE__*/_react[\"default\"].createElement(\"circle\", {\n cx: \"92.5\",\n cy: \"12.5\",\n r: props.radius\n }, /*#__PURE__*/_react[\"default\"].createElement(\"animate\", {\n attributeName: \"fill-opacity\",\n begin: \"800ms\",\n dur: \"1s\",\n values: \"1;.2;1\",\n calcMode: \"linear\",\n repeatCount: \"indefinite\"\n })), /*#__PURE__*/_react[\"default\"].createElement(\"circle\", {\n cx: \"92.5\",\n cy: \"52.5\",\n r: props.radius\n }, /*#__PURE__*/_react[\"default\"].createElement(\"animate\", {\n attributeName: \"fill-opacity\",\n begin: \"400ms\",\n dur: \"1s\",\n values: \"1;.2;1\",\n calcMode: \"linear\",\n repeatCount: \"indefinite\"\n })), /*#__PURE__*/_react[\"default\"].createElement(\"circle\", {\n cx: \"12.5\",\n cy: \"92.5\",\n r: props.radius\n }, /*#__PURE__*/_react[\"default\"].createElement(\"animate\", {\n attributeName: \"fill-opacity\",\n begin: \"700ms\",\n dur: \"1s\",\n values: \"1;.2;1\",\n calcMode: \"linear\",\n repeatCount: \"indefinite\"\n })), /*#__PURE__*/_react[\"default\"].createElement(\"circle\", {\n cx: \"52.5\",\n cy: \"92.5\",\n r: props.radius\n }, /*#__PURE__*/_react[\"default\"].createElement(\"animate\", {\n attributeName: \"fill-opacity\",\n begin: \"500ms\",\n dur: \"1s\",\n values: \"1;.2;1\",\n calcMode: \"linear\",\n repeatCount: \"indefinite\"\n })), /*#__PURE__*/_react[\"default\"].createElement(\"circle\", {\n cx: \"92.5\",\n cy: \"92.5\",\n r: props.radius\n }, /*#__PURE__*/_react[\"default\"].createElement(\"animate\", {\n attributeName: \"fill-opacity\",\n begin: \"200ms\",\n dur: \"1s\",\n values: \"1;.2;1\",\n calcMode: \"linear\",\n repeatCount: \"indefinite\"\n })));\n};\nexports.Grid = Grid;\nGrid.propTypes = {\n height: _propTypes[\"default\"].oneOfType([_propTypes[\"default\"].string, _propTypes[\"default\"].number]),\n width: _propTypes[\"default\"].oneOfType([_propTypes[\"default\"].string, _propTypes[\"default\"].number]),\n color: _propTypes[\"default\"].string,\n label: _propTypes[\"default\"].string,\n radius: _propTypes[\"default\"].number\n};\nGrid.defaultProps = {\n height: 80,\n width: 80,\n color: \"green\",\n radius: 12.5,\n label: \"audio-loading\"\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Hearts = void 0;\nvar _react = _interopRequireDefault(require(\"react\"));\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\nvar Hearts = function Hearts(props) {\n return /*#__PURE__*/_react[\"default\"].createElement(\"svg\", {\n width: props.width,\n height: props.height,\n viewBox: \"0 0 140 64\",\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: props.color,\n \"aria-label\": props.label\n }, /*#__PURE__*/_react[\"default\"].createElement(\"path\", {\n d: \"M30.262 57.02L7.195 40.723c-5.84-3.976-7.56-12.06-3.842-18.063 3.715-6 11.467-7.65 17.306-3.68l4.52 3.76 2.6-5.274c3.717-6.002 11.47-7.65 17.305-3.68 5.84 3.97 7.56 12.054 3.842 18.062L34.49 56.118c-.897 1.512-2.793 1.915-4.228.9z\",\n attributeName: \"fill-opacity\",\n from: \"0\",\n to: \".5\"\n }, /*#__PURE__*/_react[\"default\"].createElement(\"animate\", {\n attributeName: \"fill-opacity\",\n begin: \"0s\",\n dur: \"1.4s\",\n values: \"0.5;1;0.5\",\n calcMode: \"linear\",\n repeatCount: \"indefinite\"\n })), /*#__PURE__*/_react[\"default\"].createElement(\"path\", {\n d: \"M105.512 56.12l-14.44-24.272c-3.716-6.008-1.996-14.093 3.843-18.062 5.835-3.97 13.588-2.322 17.306 3.68l2.6 5.274 4.52-3.76c5.84-3.97 13.592-2.32 17.307 3.68 3.718 6.003 1.998 14.088-3.842 18.064L109.74 57.02c-1.434 1.014-3.33.61-4.228-.9z\",\n attributeName: \"fill-opacity\",\n from: \"0\",\n to: \".5\"\n }, /*#__PURE__*/_react[\"default\"].createElement(\"animate\", {\n attributeName: \"fill-opacity\",\n begin: \"0.7s\",\n dur: \"1.4s\",\n values: \"0.5;1;0.5\",\n calcMode: \"linear\",\n repeatCount: \"indefinite\"\n })), /*#__PURE__*/_react[\"default\"].createElement(\"path\", {\n d: \"M67.408 57.834l-23.01-24.98c-5.864-6.15-5.864-16.108 0-22.248 5.86-6.14 15.37-6.14 21.234 0L70 16.168l4.368-5.562c5.863-6.14 15.375-6.14 21.235 0 5.863 6.14 5.863 16.098 0 22.247l-23.007 24.98c-1.43 1.556-3.757 1.556-5.188 0z\"\n }));\n};\nexports.Hearts = Hearts;\nHearts.propTypes = {\n height: _propTypes[\"default\"].oneOfType([_propTypes[\"default\"].string, _propTypes[\"default\"].number]),\n width: _propTypes[\"default\"].oneOfType([_propTypes[\"default\"].string, _propTypes[\"default\"].number]),\n color: _propTypes[\"default\"].string,\n label: _propTypes[\"default\"].string\n};\nHearts.defaultProps = {\n height: 80,\n width: 80,\n color: \"green\",\n label: \"audio-loading\"\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.MutatingDots = void 0;\nvar _react = _interopRequireDefault(require(\"react\"));\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\nvar MutatingDots = function MutatingDots(props) {\n return /*#__PURE__*/_react[\"default\"].createElement(\"svg\", {\n id: \"goo-loader\",\n width: props.width,\n height: props.height,\n \"aria-label\": props.label\n }, /*#__PURE__*/_react[\"default\"].createElement(\"filter\", {\n id: \"fancy-goo\"\n }, /*#__PURE__*/_react[\"default\"].createElement(\"feGaussianBlur\", {\n \"in\": \"SourceGraphic\",\n stdDeviation: \"6\",\n result: \"blur\"\n }), /*#__PURE__*/_react[\"default\"].createElement(\"feColorMatrix\", {\n \"in\": \"blur\",\n mode: \"matrix\",\n values: \"1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 19 -9\",\n result: \"goo\"\n }), /*#__PURE__*/_react[\"default\"].createElement(\"feComposite\", {\n \"in\": \"SourceGraphic\",\n in2: \"goo\",\n operator: \"atop\"\n })), /*#__PURE__*/_react[\"default\"].createElement(\"g\", {\n filter: \"url(#fancy-goo)\"\n }, /*#__PURE__*/_react[\"default\"].createElement(\"animateTransform\", {\n id: \"mainAnim\",\n attributeName: \"transform\",\n attributeType: \"XML\",\n type: \"rotate\",\n from: \"0 50 50\",\n to: \"359 50 50\",\n dur: \"1.2s\",\n repeatCount: \"indefinite\"\n }), /*#__PURE__*/_react[\"default\"].createElement(\"circle\", {\n cx: \"50%\",\n cy: \"40\",\n r: props.radius,\n fill: props.color\n }, /*#__PURE__*/_react[\"default\"].createElement(\"animate\", {\n id: \"cAnim1\",\n attributeType: \"XML\",\n attributeName: \"cy\",\n dur: \"0.6s\",\n begin: \"0;cAnim1.end+0.2s\",\n calcMode: \"spline\",\n values: \"40;20;40\",\n keyTimes: \"0;0.3;1\",\n keySplines: \"0.09, 0.45, 0.16, 1;0.09, 0.45, 0.16, 1\"\n })), /*#__PURE__*/_react[\"default\"].createElement(\"circle\", {\n cx: \"50%\",\n cy: \"60\",\n r: props.radius,\n fill: props.secondaryColor\n }, /*#__PURE__*/_react[\"default\"].createElement(\"animate\", {\n id: \"cAnim2\",\n attributeType: \"XML\",\n attributeName: \"cy\",\n dur: \"0.6s\",\n begin: \"0.4s;cAnim2.end+0.2s\",\n calcMode: \"spline\",\n values: \"60;80;60\",\n keyTimes: \"0;0.3;1\",\n keySplines: \"0.09, 0.45, 0.16, 1;0.09, 0.45, 0.16, 1\"\n }))));\n};\nexports.MutatingDots = MutatingDots;\nMutatingDots.propTypes = {\n width: _propTypes[\"default\"].number,\n secondaryColor: _propTypes[\"default\"].string,\n height: _propTypes[\"default\"].number,\n color: _propTypes[\"default\"].string,\n radius: _propTypes[\"default\"].number,\n label: _propTypes[\"default\"].string\n};\nMutatingDots.defaultProps = {\n width: 80,\n height: 90,\n color: \"green\",\n radius: 11,\n secondaryColor: \"green\",\n label: \"audio-loading\"\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Oval = void 0;\nvar _react = _interopRequireDefault(require(\"react\"));\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\nvar Oval = function Oval(props) {\n return /*#__PURE__*/_react[\"default\"].createElement(\"svg\", {\n width: props.width,\n height: props.height,\n viewBox: \"0 0 38 38\",\n xmlns: \"http://www.w3.org/2000/svg\",\n stroke: props.color,\n \"aria-label\": props.label\n }, /*#__PURE__*/_react[\"default\"].createElement(\"g\", {\n fill: \"none\",\n fillRule: \"evenodd\"\n }, /*#__PURE__*/_react[\"default\"].createElement(\"g\", {\n transform: \"translate(1 1)\",\n strokeWidth: \"2\"\n }, /*#__PURE__*/_react[\"default\"].createElement(\"circle\", {\n strokeOpacity: \".5\",\n cx: \"18\",\n cy: \"18\",\n r: props.radius\n }), /*#__PURE__*/_react[\"default\"].createElement(\"path\", {\n d: \"M36 18c0-9.94-8.06-18-18-18\"\n }, /*#__PURE__*/_react[\"default\"].createElement(\"animateTransform\", {\n attributeName: \"transform\",\n type: \"rotate\",\n from: \"0 18 18\",\n to: \"360 18 18\",\n dur: \"1s\",\n repeatCount: \"indefinite\"\n })))));\n};\nexports.Oval = Oval;\nOval.propTypes = {\n height: _propTypes[\"default\"].oneOfType([_propTypes[\"default\"].string, _propTypes[\"default\"].number]),\n width: _propTypes[\"default\"].oneOfType([_propTypes[\"default\"].string, _propTypes[\"default\"].number]),\n color: _propTypes[\"default\"].string,\n label: _propTypes[\"default\"].string,\n radius: _propTypes[\"default\"].number\n};\nOval.defaultProps = {\n height: 80,\n width: 80,\n color: \"green\",\n label: \"audio-loading\",\n radius: 18\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Plane = void 0;\nvar _react = _interopRequireDefault(require(\"react\"));\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\nvar Plane = function Plane(props) {\n return /*#__PURE__*/_react[\"default\"].createElement(\"svg\", {\n className: \"react-spinner-loader-svg-calLoader\",\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"230\",\n height: \"230\",\n \"aria-label\": props.label\n }, /*#__PURE__*/_react[\"default\"].createElement(\"desc\", null, \"Plane animation. Loading \"), /*#__PURE__*/_react[\"default\"].createElement(\"path\", {\n className: \"react-spinner-loader-cal-loader__path\",\n style: {\n stroke: props.secondaryColor\n },\n d: \"M86.429 40c63.616-20.04 101.511 25.08 107.265 61.93 6.487 41.54-18.593 76.99-50.6 87.643-59.46 19.791-101.262-23.577-107.142-62.616C29.398 83.441 59.945 48.343 86.43 40z\",\n fill: \"none\",\n stroke: \"#0099cc\",\n strokeWidth: \"4\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeDasharray: \"10 10 10 10 10 10 10 432\",\n strokeDashoffset: \"77\"\n }), /*#__PURE__*/_react[\"default\"].createElement(\"path\", {\n className: \"cal-loader__plane\",\n style: {\n fill: props.color\n },\n d: \"M141.493 37.93c-1.087-.927-2.942-2.002-4.32-2.501-2.259-.824-3.252-.955-9.293-1.172-4.017-.146-5.197-.23-5.47-.37-.766-.407-1.526-1.448-7.114-9.773-4.8-7.145-5.344-7.914-6.327-8.976-1.214-1.306-1.396-1.378-3.79-1.473-1.036-.04-2-.043-2.153-.002-.353.1-.87.586-1 .952-.139.399-.076.71.431 2.22.241.72 1.029 3.386 1.742 5.918 1.644 5.844 2.378 8.343 2.863 9.705.206.601.33 1.1.275 1.125-.24.097-10.56 1.066-11.014 1.032a3.532 3.532 0 0 1-1.002-.276l-.487-.246-2.044-2.613c-2.234-2.87-2.228-2.864-3.35-3.309-.717-.287-2.82-.386-3.276-.163-.457.237-.727.644-.737 1.152-.018.39.167.805 1.916 4.373 1.06 2.166 1.964 4.083 1.998 4.27.04.179.004.521-.076.75-.093.228-1.109 2.064-2.269 4.088-1.921 3.34-2.11 3.711-2.123 4.107-.008.25.061.557.168.725.328.512.72.644 1.966.676 1.32.029 2.352-.236 3.05-.762.222-.171 1.275-1.313 2.412-2.611 1.918-2.185 2.048-2.32 2.45-2.505.241-.111.601-.232.82-.271.267-.058 2.213.201 5.912.8 3.036.48 5.525.894 5.518.914 0 .026-.121.306-.27.638-.54 1.198-1.515 3.842-3.35 9.021-1.029 2.913-2.107 5.897-2.4 6.62-.703 1.748-.725 1.833-.594 2.286.137.46.45.833.872 1.012.41.177 3.823.24 4.37.085.852-.25 1.44-.688 2.312-1.724 1.166-1.39 3.169-3.948 6.771-8.661 5.8-7.583 6.561-8.49 7.387-8.702.233-.065 2.828-.056 5.784.011 5.827.138 6.64.09 8.62-.5 2.24-.67 4.035-1.65 5.517-3.016 1.136-1.054 1.135-1.014.207-1.962-.357-.38-.767-.777-.902-.893z\",\n fill: \"#000033\"\n }));\n};\nexports.Plane = Plane;\nPlane.propTypes = {\n secondaryColor: _propTypes[\"default\"].string,\n color: _propTypes[\"default\"].string,\n label: _propTypes[\"default\"].string\n};\nPlane.defaultProps = {\n secondaryColor: \"grey\",\n color: \"#FFA500\",\n label: \"async-loading\"\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Puff = void 0;\nvar _react = _interopRequireDefault(require(\"react\"));\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\nvar Puff = function Puff(props) {\n return /*#__PURE__*/_react[\"default\"].createElement(\"svg\", {\n width: props.width,\n height: props.height,\n viewBox: \"0 0 44 44\",\n xmlns: \"http://www.w3.org/2000/svg\",\n stroke: props.color,\n \"aria-label\": props.label\n }, /*#__PURE__*/_react[\"default\"].createElement(\"g\", {\n fill: \"none\",\n fillRule: \"evenodd\",\n strokeWidth: \"2\"\n }, /*#__PURE__*/_react[\"default\"].createElement(\"circle\", {\n cx: \"22\",\n cy: \"22\",\n r: props.radius\n }, /*#__PURE__*/_react[\"default\"].createElement(\"animate\", {\n attributeName: \"r\",\n begin: \"0s\",\n dur: \"1.8s\",\n values: \"1; 20\",\n calcMode: \"spline\",\n keyTimes: \"0; 1\",\n keySplines: \"0.165, 0.84, 0.44, 1\",\n repeatCount: \"indefinite\"\n }), /*#__PURE__*/_react[\"default\"].createElement(\"animate\", {\n attributeName: \"strokeOpacity\",\n begin: \"0s\",\n dur: \"1.8s\",\n values: \"1; 0\",\n calcMode: \"spline\",\n keyTimes: \"0; 1\",\n keySplines: \"0.3, 0.61, 0.355, 1\",\n repeatCount: \"indefinite\"\n })), /*#__PURE__*/_react[\"default\"].createElement(\"circle\", {\n cx: \"22\",\n cy: \"22\",\n r: props.radius\n }, /*#__PURE__*/_react[\"default\"].createElement(\"animate\", {\n attributeName: \"r\",\n begin: \"-0.9s\",\n dur: \"1.8s\",\n values: \"1; 20\",\n calcMode: \"spline\",\n keyTimes: \"0; 1\",\n keySplines: \"0.165, 0.84, 0.44, 1\",\n repeatCount: \"indefinite\"\n }), /*#__PURE__*/_react[\"default\"].createElement(\"animate\", {\n attributeName: \"strokeOpacity\",\n begin: \"-0.9s\",\n dur: \"1.8s\",\n values: \"1; 0\",\n calcMode: \"spline\",\n keyTimes: \"0; 1\",\n keySplines: \"0.3, 0.61, 0.355, 1\",\n repeatCount: \"indefinite\"\n }))));\n};\nexports.Puff = Puff;\nPuff.propTypes = {\n height: _propTypes[\"default\"].oneOfType([_propTypes[\"default\"].string, _propTypes[\"default\"].number]),\n width: _propTypes[\"default\"].oneOfType([_propTypes[\"default\"].string, _propTypes[\"default\"].number]),\n color: _propTypes[\"default\"].string,\n label: _propTypes[\"default\"].string,\n radius: _propTypes[\"default\"].number\n};\nPuff.defaultProps = {\n height: 80,\n width: 80,\n color: \"green\",\n label: \"audio-loading\",\n radius: 1\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.RevolvingDot = void 0;\nvar _react = _interopRequireDefault(require(\"react\"));\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\nvar RevolvingDot = function RevolvingDot(props) {\n return /*#__PURE__*/_react[\"default\"].createElement(\"svg\", {\n version: \"1.1\",\n width: props.width,\n height: props.height,\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n \"aria-label\": props.label\n }, /*#__PURE__*/_react[\"default\"].createElement(\"circle\", {\n fill: \"none\",\n stroke: props.color,\n strokeWidth: \"4\",\n cx: \"50\",\n cy: \"50\",\n r: props.radius + 38,\n style: {\n opacity: 0.5\n }\n }), /*#__PURE__*/_react[\"default\"].createElement(\"circle\", {\n fill: props.color,\n stroke: props.color,\n strokeWidth: \"3\",\n cx: \"8\",\n cy: \"54\",\n r: props.radius\n }, /*#__PURE__*/_react[\"default\"].createElement(\"animateTransform\", {\n attributeName: \"transform\",\n dur: \"2s\",\n type: \"rotate\",\n from: \"0 50 48\",\n to: \"360 50 52\",\n repeatCount: \"indefinite\"\n })));\n};\nexports.RevolvingDot = RevolvingDot;\nRevolvingDot.propTypes = {\n height: _propTypes[\"default\"].oneOfType([_propTypes[\"default\"].string, _propTypes[\"default\"].number]),\n width: _propTypes[\"default\"].oneOfType([_propTypes[\"default\"].string, _propTypes[\"default\"].number]),\n color: _propTypes[\"default\"].string,\n label: _propTypes[\"default\"].string,\n radius: _propTypes[\"default\"].number\n};\nRevolvingDot.defaultProps = {\n height: 80,\n width: 80,\n color: \"green\",\n label: \"audio-loading\",\n radius: 6\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Rings = void 0;\nvar _react = _interopRequireDefault(require(\"react\"));\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\nvar Rings = function Rings(props) {\n return /*#__PURE__*/_react[\"default\"].createElement(\"svg\", {\n width: props.width,\n height: props.height,\n viewBox: \"0 0 45 45\",\n xmlns: \"http://www.w3.org/2000/svg\",\n stroke: props.color,\n \"aria-label\": props.label\n }, /*#__PURE__*/_react[\"default\"].createElement(\"g\", {\n fill: \"none\",\n fillRule: \"evenodd\",\n transform: \"translate(1 1)\",\n strokeWidth: \"2\"\n }, /*#__PURE__*/_react[\"default\"].createElement(\"circle\", {\n cx: \"22\",\n cy: \"22\",\n r: props.radius,\n strokeOpacity: \"0\"\n }, /*#__PURE__*/_react[\"default\"].createElement(\"animate\", {\n attributeName: \"r\",\n begin: \"1.5s\",\n dur: \"3s\",\n values: \"6;22\",\n calcMode: \"linear\",\n repeatCount: \"indefinite\"\n }), /*#__PURE__*/_react[\"default\"].createElement(\"animate\", {\n attributeName: \"stroke-opacity\",\n begin: \"1.5s\",\n dur: \"3s\",\n values: \"1;0\",\n calcMode: \"linear\",\n repeatCount: \"indefinite\"\n }), /*#__PURE__*/_react[\"default\"].createElement(\"animate\", {\n attributeName: \"stroke-width\",\n begin: \"1.5s\",\n dur: \"3s\",\n values: \"2;0\",\n calcMode: \"linear\",\n repeatCount: \"indefinite\"\n })), /*#__PURE__*/_react[\"default\"].createElement(\"circle\", {\n cx: \"22\",\n cy: \"22\",\n r: props.radius,\n strokeOpacity: \"0\"\n }, /*#__PURE__*/_react[\"default\"].createElement(\"animate\", {\n attributeName: \"r\",\n begin: \"3s\",\n dur: \"3s\",\n values: \"6;22\",\n calcMode: \"linear\",\n repeatCount: \"indefinite\"\n }), /*#__PURE__*/_react[\"default\"].createElement(\"animate\", {\n attributeName: \"strokeOpacity\",\n begin: \"3s\",\n dur: \"3s\",\n values: \"1;0\",\n calcMode: \"linear\",\n repeatCount: \"indefinite\"\n }), /*#__PURE__*/_react[\"default\"].createElement(\"animate\", {\n attributeName: \"strokeWidth\",\n begin: \"3s\",\n dur: \"3s\",\n values: \"2;0\",\n calcMode: \"linear\",\n repeatCount: \"indefinite\"\n })), /*#__PURE__*/_react[\"default\"].createElement(\"circle\", {\n cx: \"22\",\n cy: \"22\",\n r: props.radius + 2\n }, /*#__PURE__*/_react[\"default\"].createElement(\"animate\", {\n attributeName: \"r\",\n begin: \"0s\",\n dur: \"1.5s\",\n values: \"6;1;2;3;4;5;6\",\n calcMode: \"linear\",\n repeatCount: \"indefinite\"\n }))));\n};\nexports.Rings = Rings;\nRings.propTypes = {\n height: _propTypes[\"default\"].oneOfType([_propTypes[\"default\"].string, _propTypes[\"default\"].number]),\n width: _propTypes[\"default\"].oneOfType([_propTypes[\"default\"].string, _propTypes[\"default\"].number]),\n color: _propTypes[\"default\"].string,\n label: _propTypes[\"default\"].string,\n radius: _propTypes[\"default\"].number\n};\nRings.defaultProps = {\n height: 80,\n width: 80,\n color: \"green\",\n radius: 6,\n label: \"audio-loading\"\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.TailSpin = void 0;\nvar _react = _interopRequireDefault(require(\"react\"));\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\nvar TailSpin = function TailSpin(props) {\n return /*#__PURE__*/_react[\"default\"].createElement(\"svg\", {\n width: props.width,\n height: props.height,\n viewBox: \"0 0 38 38\",\n xmlns: \"http://www.w3.org/2000/svg\",\n \"aria-label\": props.label\n }, /*#__PURE__*/_react[\"default\"].createElement(\"defs\", null, /*#__PURE__*/_react[\"default\"].createElement(\"linearGradient\", {\n x1: \"8.042%\",\n y1: \"0%\",\n x2: \"65.682%\",\n y2: \"23.865%\",\n id: \"a\"\n }, /*#__PURE__*/_react[\"default\"].createElement(\"stop\", {\n stopColor: props.color,\n stopOpacity: \"0\",\n offset: \"0%\"\n }), /*#__PURE__*/_react[\"default\"].createElement(\"stop\", {\n stopColor: props.color,\n stopOpacity: \".631\",\n offset: \"63.146%\"\n }), /*#__PURE__*/_react[\"default\"].createElement(\"stop\", {\n stopColor: props.color,\n offset: \"100%\"\n }))), /*#__PURE__*/_react[\"default\"].createElement(\"g\", {\n fill: \"none\",\n fillRule: \"evenodd\"\n }, /*#__PURE__*/_react[\"default\"].createElement(\"g\", {\n transform: \"translate(1 1)\"\n }, /*#__PURE__*/_react[\"default\"].createElement(\"path\", {\n d: \"M36 18c0-9.94-8.06-18-18-18\",\n id: \"Oval-2\",\n stroke: props.color,\n strokeWidth: \"2\"\n }, /*#__PURE__*/_react[\"default\"].createElement(\"animateTransform\", {\n attributeName: \"transform\",\n type: \"rotate\",\n from: \"0 18 18\",\n to: \"360 18 18\",\n dur: \"0.9s\",\n repeatCount: \"indefinite\"\n })), /*#__PURE__*/_react[\"default\"].createElement(\"circle\", {\n fill: \"#fff\",\n cx: \"36\",\n cy: \"18\",\n r: props.radius\n }, /*#__PURE__*/_react[\"default\"].createElement(\"animateTransform\", {\n attributeName: \"transform\",\n type: \"rotate\",\n from: \"0 18 18\",\n to: \"360 18 18\",\n dur: \"0.9s\",\n repeatCount: \"indefinite\"\n })))));\n};\nexports.TailSpin = TailSpin;\nTailSpin.propTypes = {\n height: _propTypes[\"default\"].oneOfType([_propTypes[\"default\"].string, _propTypes[\"default\"].number]),\n width: _propTypes[\"default\"].oneOfType([_propTypes[\"default\"].string, _propTypes[\"default\"].number]),\n color: _propTypes[\"default\"].string,\n label: _propTypes[\"default\"].string,\n radius: _propTypes[\"default\"].number\n};\nTailSpin.defaultProps = {\n height: 80,\n width: 80,\n color: \"green\",\n radius: 1,\n label: \"audio-loading\"\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ThreeDots = void 0;\nvar _react = _interopRequireDefault(require(\"react\"));\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\nvar ThreeDots = function ThreeDots(props) {\n return /*#__PURE__*/_react[\"default\"].createElement(\"svg\", {\n width: props.width,\n height: props.height,\n viewBox: \"0 0 120 30\",\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: props.color,\n \"aria-label\": props.label\n }, /*#__PURE__*/_react[\"default\"].createElement(\"circle\", {\n cx: \"15\",\n cy: \"15\",\n r: props.radius + 6\n }, /*#__PURE__*/_react[\"default\"].createElement(\"animate\", {\n attributeName: \"r\",\n from: \"15\",\n to: \"15\",\n begin: \"0s\",\n dur: \"0.8s\",\n values: \"15;9;15\",\n calcMode: \"linear\",\n repeatCount: \"indefinite\"\n }), /*#__PURE__*/_react[\"default\"].createElement(\"animate\", {\n attributeName: \"fillOpacity\",\n from: \"1\",\n to: \"1\",\n begin: \"0s\",\n dur: \"0.8s\",\n values: \"1;.5;1\",\n calcMode: \"linear\",\n repeatCount: \"indefinite\"\n })), /*#__PURE__*/_react[\"default\"].createElement(\"circle\", {\n cx: \"60\",\n cy: \"15\",\n r: props.radius,\n attributeName: \"fillOpacity\",\n from: \"1\",\n to: \"0.3\"\n }, /*#__PURE__*/_react[\"default\"].createElement(\"animate\", {\n attributeName: \"r\",\n from: \"9\",\n to: \"9\",\n begin: \"0s\",\n dur: \"0.8s\",\n values: \"9;15;9\",\n calcMode: \"linear\",\n repeatCount: \"indefinite\"\n }), /*#__PURE__*/_react[\"default\"].createElement(\"animate\", {\n attributeName: \"fillOpacity\",\n from: \"0.5\",\n to: \"0.5\",\n begin: \"0s\",\n dur: \"0.8s\",\n values: \".5;1;.5\",\n calcMode: \"linear\",\n repeatCount: \"indefinite\"\n })), /*#__PURE__*/_react[\"default\"].createElement(\"circle\", {\n cx: \"105\",\n cy: \"15\",\n r: props.radius + 6\n }, /*#__PURE__*/_react[\"default\"].createElement(\"animate\", {\n attributeName: \"r\",\n from: \"15\",\n to: \"15\",\n begin: \"0s\",\n dur: \"0.8s\",\n values: \"15;9;15\",\n calcMode: \"linear\",\n repeatCount: \"indefinite\"\n }), /*#__PURE__*/_react[\"default\"].createElement(\"animate\", {\n attributeName: \"fillOpacity\",\n from: \"1\",\n to: \"1\",\n begin: \"0s\",\n dur: \"0.8s\",\n values: \"1;.5;1\",\n calcMode: \"linear\",\n repeatCount: \"indefinite\"\n })));\n};\nexports.ThreeDots = ThreeDots;\nThreeDots.propTypes = {\n height: _propTypes[\"default\"].oneOfType([_propTypes[\"default\"].string, _propTypes[\"default\"].number]),\n width: _propTypes[\"default\"].oneOfType([_propTypes[\"default\"].string, _propTypes[\"default\"].number]),\n color: _propTypes[\"default\"].string,\n label: _propTypes[\"default\"].string,\n radius: _propTypes[\"default\"].number\n};\nThreeDots.defaultProps = {\n height: 80,\n width: 80,\n color: \"green\",\n label: \"audio-loading\",\n radius: 9\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Triangle = void 0;\nvar _react = _interopRequireDefault(require(\"react\"));\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\nvar Triangle = function Triangle(props) {\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: \"react-spinner-loader-svg\"\n }, /*#__PURE__*/_react[\"default\"].createElement(\"svg\", {\n id: \"triangle\",\n width: props.width,\n height: props.height,\n viewBox: \"-3 -4 39 39\",\n \"aria-label\": props.label\n }, /*#__PURE__*/_react[\"default\"].createElement(\"polygon\", {\n fill: \"transparent\",\n stroke: props.color,\n strokeWidth: \"1\",\n points: \"16,0 32,32 0,32\"\n })));\n};\nexports.Triangle = Triangle;\nTriangle.propTypes = {\n height: _propTypes[\"default\"].oneOfType([_propTypes[\"default\"].string, _propTypes[\"default\"].number]),\n width: _propTypes[\"default\"].oneOfType([_propTypes[\"default\"].string, _propTypes[\"default\"].number]),\n color: _propTypes[\"default\"].string,\n label: _propTypes[\"default\"].string\n};\nTriangle.defaultProps = {\n height: 80,\n width: 80,\n color: \"green\",\n label: \"audio-loading\"\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Watch = void 0;\nvar _react = _interopRequireDefault(require(\"react\"));\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\nvar Watch = function Watch(props) {\n return /*#__PURE__*/_react[\"default\"].createElement(\"svg\", {\n width: props.width,\n height: props.height,\n version: \"1.1\",\n id: \"L2\",\n xmlns: \"http://www.w3.org/2000/svg\",\n x: \"0px\",\n y: \"0px\",\n viewBox: \"0 0 100 100\",\n enableBackground: \"new 0 0 100 100\",\n xmlSpace: \"preserve\",\n \"aria-label\": props.label\n }, /*#__PURE__*/_react[\"default\"].createElement(\"circle\", {\n fill: \"none\",\n stroke: props.color,\n strokeWidth: \"4\",\n strokeMiterlimit: \"10\",\n cx: \"50\",\n cy: \"50\",\n r: props.radius\n }), /*#__PURE__*/_react[\"default\"].createElement(\"line\", {\n fill: \"none\",\n strokeLinecap: \"round\",\n stroke: props.color,\n strokeWidth: \"4\",\n strokeMiterlimit: \"10\",\n x1: \"50\",\n y1: \"50\",\n x2: \"85\",\n y2: \"50.5\"\n }, /*#__PURE__*/_react[\"default\"].createElement(\"animateTransform\", {\n attributeName: \"transform\",\n dur: \"2s\",\n type: \"rotate\",\n from: \"0 50 50\",\n to: \"360 50 50\",\n repeatCount: \"indefinite\"\n })), /*#__PURE__*/_react[\"default\"].createElement(\"line\", {\n fill: \"none\",\n strokeLinecap: \"round\",\n stroke: props.color,\n strokeWidth: \"4\",\n strokeMiterlimit: \"10\",\n x1: \"50\",\n y1: \"50\",\n x2: \"49.5\",\n y2: \"74\"\n }, /*#__PURE__*/_react[\"default\"].createElement(\"animateTransform\", {\n attributeName: \"transform\",\n dur: \"15s\",\n type: \"rotate\",\n from: \"0 50 50\",\n to: \"360 50 50\",\n repeatCount: \"indefinite\"\n })));\n};\nexports.Watch = Watch;\nWatch.propTypes = {\n height: _propTypes[\"default\"].oneOfType([_propTypes[\"default\"].string, _propTypes[\"default\"].number]),\n width: _propTypes[\"default\"].oneOfType([_propTypes[\"default\"].string, _propTypes[\"default\"].number]),\n color: _propTypes[\"default\"].string,\n label: _propTypes[\"default\"].string,\n radius: _propTypes[\"default\"].number\n};\nWatch.defaultProps = {\n height: 80,\n width: 80,\n color: \"green\",\n label: \"audio-loading\",\n radius: 48\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Spinner = void 0;\nvar _Circles = require(\"./Circles\");\nvar _Watch = require(\"./Watch\");\nvar _Audio = require(\"./Audio\");\nvar _BallTriangle = require(\"./BallTriangle\");\nvar _Bars = require(\"./Bars\");\nvar _CradleLoader = require(\"./CradleLoader\");\nvar _Grid = require(\"./Grid\");\nvar _Hearts = require(\"./Hearts\");\nvar _MutatingDots = require(\"./MutatingDots\");\nvar _Oval = require(\"./Oval\");\nvar _Plane = require(\"./Plane\");\nvar _Puff = require(\"./Puff\");\nvar _RevolvingDot = require(\"./RevolvingDot\");\nvar _Rings = require(\"./Rings\");\nvar _TailSpin = require(\"./TailSpin\");\nvar _ThreeDots = require(\"./ThreeDots\");\nvar _Triangle = require(\"./Triangle\");\nvar Spinner = {\n Circles: _Circles.Circles,\n Audio: _Audio.Audio,\n BallTriangle: _BallTriangle.BallTriangle,\n Bars: _Bars.Bars,\n CradleLoader: _CradleLoader.CradleLoader,\n Grid: _Grid.Grid,\n Hearts: _Hearts.Hearts,\n MutatingDots: _MutatingDots.MutatingDots,\n Oval: _Oval.Oval,\n Plane: _Plane.Plane,\n Puff: _Puff.Puff,\n RevolvingDot: _RevolvingDot.RevolvingDot,\n Rings: _Rings.Rings,\n TailSpin: _TailSpin.TailSpin,\n ThreeDots: _ThreeDots.ThreeDots,\n Triangle: _Triangle.Triangle,\n Watch: _Watch.Watch\n};\nexports.Spinner = Spinner;","import HighchartsReact from \"highcharts-react-official\";\nimport Highcharts from \"highcharts\";\nimport React from \"react\";\nimport { PieChartDataType } from \"../../../types/charts\";\nimport { PieChartWrapper } from \"./ChartComponents\";\n\nconst PieChart = ({ data }: { data: PieChartDataType }) => {\n const chartConfig: Highcharts.Options = {\n chart: {\n plotBackgroundColor: null,\n plotBorderWidth: null,\n plotShadow: false,\n animation: false,\n },\n title: {\n text: null,\n },\n tooltip: {\n pointFormat: \"{series.name}: {point.percentage:.1f}%\",\n },\n accessibility: {\n point: {\n valueSuffix: \"%\",\n },\n },\n credits: {\n enabled: false,\n },\n plotOptions: {\n pie: {\n allowPointSelect: true,\n cursor: \"pointer\",\n dataLabels: {\n enabled: false,\n },\n showInLegend: true,\n },\n },\n series: [\n {\n name: \"Material Types\",\n animation: false,\n colorByPoint: true,\n type: \"pie\",\n data: data.map((pieData) => {\n return {\n name: pieData.name,\n y: pieData.y,\n };\n }),\n },\n ],\n };\n return (\n \n \n \n );\n};\n\nexport default PieChart;\n","import styled from \"styled-components\";\nimport { colors } from \"../../../styles/colors\";\nimport { StyledTitle } from \"../../../styles/StyledComponents\";\n\nexport const FiltersContainer = styled.div`\n display: flex;\n flex-direction: column;\n background-color: #536275;\n color: white;\n margin-top: -50px;\n height: 100%;\n padding-bottom: 50px;\n width: 300px;\n position: relative;\n z-index: 405;\n @media only screen and (max-width: 900px) {\n margin: 0px;\n width: 100%;\n height: 100%;\n }\n @media only screen and (max-width: 478px) {\n }\n`;\n\nexport const ETAPFiltersContainer = styled.div`\n display: flex;\n flex-direction: column;\n background-color: #536275;\n color: white;\n margin-top: -50px;\n height: auto;\n padding-bottom: 50px;\n width: 300px;\n position: relative;\n z-index: 405;\n @media only screen and (max-width: 900px) {\n margin: 0px;\n width: 100%;\n height: 100%;\n }\n @media only screen and (max-width: 478px) {\n }\n`;\n\nexport const FiltersWrapper = styled.div`\n margin: 20px 20px;\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n`;\n\nexport const FiltersTitle = styled(StyledTitle)`\n color: ${colors.white};\n font-family: \"Lato\";\n font-size: 22px;\n margin-top: 20px;\n margin-left: 20px;\n`;\n","export default function sortKD(ids, coords, nodeSize, left, right, depth) {\n if (right - left <= nodeSize) return;\n const m = left + right >> 1;\n select(ids, coords, m, left, right, depth % 2);\n sortKD(ids, coords, nodeSize, left, m - 1, depth + 1);\n sortKD(ids, coords, nodeSize, m + 1, right, depth + 1);\n}\nfunction select(ids, coords, k, left, right, inc) {\n while (right > left) {\n if (right - left > 600) {\n const n = right - left + 1;\n const m = k - left + 1;\n const z = Math.log(n);\n const s = 0.5 * Math.exp(2 * z / 3);\n const sd = 0.5 * Math.sqrt(z * s * (n - s) / n) * (m - n / 2 < 0 ? -1 : 1);\n const newLeft = Math.max(left, Math.floor(k - m * s / n + sd));\n const newRight = Math.min(right, Math.floor(k + (n - m) * s / n + sd));\n select(ids, coords, k, newLeft, newRight, inc);\n }\n const t = coords[2 * k + inc];\n let i = left;\n let j = right;\n swapItem(ids, coords, left, k);\n if (coords[2 * right + inc] > t) swapItem(ids, coords, left, right);\n while (i < j) {\n swapItem(ids, coords, i, j);\n i++;\n j--;\n while (coords[2 * i + inc] < t) i++;\n while (coords[2 * j + inc] > t) j--;\n }\n if (coords[2 * left + inc] === t) swapItem(ids, coords, left, j);else {\n j++;\n swapItem(ids, coords, j, right);\n }\n if (j <= k) left = j + 1;\n if (k <= j) right = j - 1;\n }\n}\nfunction swapItem(ids, coords, i, j) {\n swap(ids, i, j);\n swap(coords, 2 * i, 2 * j);\n swap(coords, 2 * i + 1, 2 * j + 1);\n}\nfunction swap(arr, i, j) {\n const tmp = arr[i];\n arr[i] = arr[j];\n arr[j] = tmp;\n}","export default function within(ids, coords, qx, qy, r, nodeSize) {\n const stack = [0, ids.length - 1, 0];\n const result = [];\n const r2 = r * r;\n while (stack.length) {\n const axis = stack.pop();\n const right = stack.pop();\n const left = stack.pop();\n if (right - left <= nodeSize) {\n for (let i = left; i <= right; i++) {\n if (sqDist(coords[2 * i], coords[2 * i + 1], qx, qy) <= r2) result.push(ids[i]);\n }\n continue;\n }\n const m = Math.floor((left + right) / 2);\n const x = coords[2 * m];\n const y = coords[2 * m + 1];\n if (sqDist(x, y, qx, qy) <= r2) result.push(ids[m]);\n const nextAxis = (axis + 1) % 2;\n if (axis === 0 ? qx - r <= x : qy - r <= y) {\n stack.push(left);\n stack.push(m - 1);\n stack.push(nextAxis);\n }\n if (axis === 0 ? qx + r >= x : qy + r >= y) {\n stack.push(m + 1);\n stack.push(right);\n stack.push(nextAxis);\n }\n }\n return result;\n}\nfunction sqDist(ax, ay, bx, by) {\n const dx = ax - bx;\n const dy = ay - by;\n return dx * dx + dy * dy;\n}","import sort from './sort';\nimport range from './range';\nimport within from './within';\nconst defaultGetX = p => p[0];\nconst defaultGetY = p => p[1];\nexport default class KDBush {\n constructor(points) {\n let getX = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : defaultGetX;\n let getY = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : defaultGetY;\n let nodeSize = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 64;\n let ArrayType = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : Float64Array;\n this.nodeSize = nodeSize;\n this.points = points;\n const IndexArrayType = points.length < 65536 ? Uint16Array : Uint32Array;\n const ids = this.ids = new IndexArrayType(points.length);\n const coords = this.coords = new ArrayType(points.length * 2);\n for (let i = 0; i < points.length; i++) {\n ids[i] = i;\n coords[2 * i] = getX(points[i]);\n coords[2 * i + 1] = getY(points[i]);\n }\n sort(ids, coords, nodeSize, 0, ids.length - 1, 0);\n }\n range(minX, minY, maxX, maxY) {\n return range(this.ids, this.coords, minX, minY, maxX, maxY, this.nodeSize);\n }\n within(x, y, r) {\n return within(this.ids, this.coords, x, y, r, this.nodeSize);\n }\n}","export default function range(ids, coords, minX, minY, maxX, maxY, nodeSize) {\n const stack = [0, ids.length - 1, 0];\n const result = [];\n let x, y;\n while (stack.length) {\n const axis = stack.pop();\n const right = stack.pop();\n const left = stack.pop();\n if (right - left <= nodeSize) {\n for (let i = left; i <= right; i++) {\n x = coords[2 * i];\n y = coords[2 * i + 1];\n if (x >= minX && x <= maxX && y >= minY && y <= maxY) result.push(ids[i]);\n }\n continue;\n }\n const m = Math.floor((left + right) / 2);\n x = coords[2 * m];\n y = coords[2 * m + 1];\n if (x >= minX && x <= maxX && y >= minY && y <= maxY) result.push(ids[m]);\n const nextAxis = (axis + 1) % 2;\n if (axis === 0 ? minX <= x : minY <= y) {\n stack.push(left);\n stack.push(m - 1);\n stack.push(nextAxis);\n }\n if (axis === 0 ? maxX >= x : maxY >= y) {\n stack.push(m + 1);\n stack.push(right);\n stack.push(nextAxis);\n }\n }\n return result;\n}","import KDBush from 'kdbush';\nconst defaultOptions = {\n minZoom: 0,\n // min zoom to generate clusters on\n maxZoom: 16,\n // max zoom level to cluster the points on\n minPoints: 2,\n // minimum points to form a cluster\n radius: 40,\n // cluster radius in pixels\n extent: 512,\n // tile extent (radius is calculated relative to it)\n nodeSize: 64,\n // size of the KD-tree leaf node, affects performance\n log: false,\n // whether to log timing info\n\n // whether to generate numeric ids for input features (in vector tiles)\n generateId: false,\n // a reduce function for calculating custom cluster properties\n reduce: null,\n // (accumulated, props) => { accumulated.sum += props.sum; }\n\n // properties to use for individual points when running the reducer\n map: props => props // props => ({sum: props.my_value})\n};\nconst fround = Math.fround || (tmp => x => {\n tmp[0] = +x;\n return tmp[0];\n})(new Float32Array(1));\nexport default class Supercluster {\n constructor(options) {\n this.options = extend(Object.create(defaultOptions), options);\n this.trees = new Array(this.options.maxZoom + 1);\n }\n load(points) {\n const {\n log,\n minZoom,\n maxZoom,\n nodeSize\n } = this.options;\n if (log) console.time('total time');\n const timerId = \"prepare \".concat(points.length, \" points\");\n if (log) console.time(timerId);\n this.points = points;\n\n // generate a cluster object for each point and index input points into a KD-tree\n let clusters = [];\n for (let i = 0; i < points.length; i++) {\n if (!points[i].geometry) continue;\n clusters.push(createPointCluster(points[i], i));\n }\n this.trees[maxZoom + 1] = new KDBush(clusters, getX, getY, nodeSize, Float32Array);\n if (log) console.timeEnd(timerId);\n\n // cluster points on max zoom, then cluster the results on previous zoom, etc.;\n // results in a cluster hierarchy across zoom levels\n for (let z = maxZoom; z >= minZoom; z--) {\n const now = +Date.now();\n\n // create a new set of clusters for the zoom and index them with a KD-tree\n clusters = this._cluster(clusters, z);\n this.trees[z] = new KDBush(clusters, getX, getY, nodeSize, Float32Array);\n if (log) console.log('z%d: %d clusters in %dms', z, clusters.length, +Date.now() - now);\n }\n if (log) console.timeEnd('total time');\n return this;\n }\n getClusters(bbox, zoom) {\n let minLng = ((bbox[0] + 180) % 360 + 360) % 360 - 180;\n const minLat = Math.max(-90, Math.min(90, bbox[1]));\n let maxLng = bbox[2] === 180 ? 180 : ((bbox[2] + 180) % 360 + 360) % 360 - 180;\n const maxLat = Math.max(-90, Math.min(90, bbox[3]));\n if (bbox[2] - bbox[0] >= 360) {\n minLng = -180;\n maxLng = 180;\n } else if (minLng > maxLng) {\n const easternHem = this.getClusters([minLng, minLat, 180, maxLat], zoom);\n const westernHem = this.getClusters([-180, minLat, maxLng, maxLat], zoom);\n return easternHem.concat(westernHem);\n }\n const tree = this.trees[this._limitZoom(zoom)];\n const ids = tree.range(lngX(minLng), latY(maxLat), lngX(maxLng), latY(minLat));\n const clusters = [];\n for (const id of ids) {\n const c = tree.points[id];\n clusters.push(c.numPoints ? getClusterJSON(c) : this.points[c.index]);\n }\n return clusters;\n }\n getChildren(clusterId) {\n const originId = this._getOriginId(clusterId);\n const originZoom = this._getOriginZoom(clusterId);\n const errorMsg = 'No cluster with the specified id.';\n const index = this.trees[originZoom];\n if (!index) throw new Error(errorMsg);\n const origin = index.points[originId];\n if (!origin) throw new Error(errorMsg);\n const r = this.options.radius / (this.options.extent * Math.pow(2, originZoom - 1));\n const ids = index.within(origin.x, origin.y, r);\n const children = [];\n for (const id of ids) {\n const c = index.points[id];\n if (c.parentId === clusterId) {\n children.push(c.numPoints ? getClusterJSON(c) : this.points[c.index]);\n }\n }\n if (children.length === 0) throw new Error(errorMsg);\n return children;\n }\n getLeaves(clusterId, limit, offset) {\n limit = limit || 10;\n offset = offset || 0;\n const leaves = [];\n this._appendLeaves(leaves, clusterId, limit, offset, 0);\n return leaves;\n }\n getTile(z, x, y) {\n const tree = this.trees[this._limitZoom(z)];\n const z2 = Math.pow(2, z);\n const {\n extent,\n radius\n } = this.options;\n const p = radius / extent;\n const top = (y - p) / z2;\n const bottom = (y + 1 + p) / z2;\n const tile = {\n features: []\n };\n this._addTileFeatures(tree.range((x - p) / z2, top, (x + 1 + p) / z2, bottom), tree.points, x, y, z2, tile);\n if (x === 0) {\n this._addTileFeatures(tree.range(1 - p / z2, top, 1, bottom), tree.points, z2, y, z2, tile);\n }\n if (x === z2 - 1) {\n this._addTileFeatures(tree.range(0, top, p / z2, bottom), tree.points, -1, y, z2, tile);\n }\n return tile.features.length ? tile : null;\n }\n getClusterExpansionZoom(clusterId) {\n let expansionZoom = this._getOriginZoom(clusterId) - 1;\n while (expansionZoom <= this.options.maxZoom) {\n const children = this.getChildren(clusterId);\n expansionZoom++;\n if (children.length !== 1) break;\n clusterId = children[0].properties.cluster_id;\n }\n return expansionZoom;\n }\n _appendLeaves(result, clusterId, limit, offset, skipped) {\n const children = this.getChildren(clusterId);\n for (const child of children) {\n const props = child.properties;\n if (props && props.cluster) {\n if (skipped + props.point_count <= offset) {\n // skip the whole cluster\n skipped += props.point_count;\n } else {\n // enter the cluster\n skipped = this._appendLeaves(result, props.cluster_id, limit, offset, skipped);\n // exit the cluster\n }\n } else if (skipped < offset) {\n // skip a single point\n skipped++;\n } else {\n // add a single point\n result.push(child);\n }\n if (result.length === limit) break;\n }\n return skipped;\n }\n _addTileFeatures(ids, points, x, y, z2, tile) {\n for (const i of ids) {\n const c = points[i];\n const isCluster = c.numPoints;\n let tags, px, py;\n if (isCluster) {\n tags = getClusterProperties(c);\n px = c.x;\n py = c.y;\n } else {\n const p = this.points[c.index];\n tags = p.properties;\n px = lngX(p.geometry.coordinates[0]);\n py = latY(p.geometry.coordinates[1]);\n }\n const f = {\n type: 1,\n geometry: [[Math.round(this.options.extent * (px * z2 - x)), Math.round(this.options.extent * (py * z2 - y))]],\n tags\n };\n\n // assign id\n let id;\n if (isCluster) {\n id = c.id;\n } else if (this.options.generateId) {\n // optionally generate id\n id = c.index;\n } else if (this.points[c.index].id) {\n // keep id if already assigned\n id = this.points[c.index].id;\n }\n if (id !== undefined) f.id = id;\n tile.features.push(f);\n }\n }\n _limitZoom(z) {\n return Math.max(this.options.minZoom, Math.min(+z, this.options.maxZoom + 1));\n }\n _cluster(points, zoom) {\n const clusters = [];\n const {\n radius,\n extent,\n reduce,\n minPoints\n } = this.options;\n const r = radius / (extent * Math.pow(2, zoom));\n\n // loop through each point\n for (let i = 0; i < points.length; i++) {\n const p = points[i];\n // if we've already visited the point at this zoom level, skip it\n if (p.zoom <= zoom) continue;\n p.zoom = zoom;\n\n // find all nearby points\n const tree = this.trees[zoom + 1];\n const neighborIds = tree.within(p.x, p.y, r);\n const numPointsOrigin = p.numPoints || 1;\n let numPoints = numPointsOrigin;\n\n // count the number of points in a potential cluster\n for (const neighborId of neighborIds) {\n const b = tree.points[neighborId];\n // filter out neighbors that are already processed\n if (b.zoom > zoom) numPoints += b.numPoints || 1;\n }\n if (numPoints >= minPoints) {\n // enough points to form a cluster\n let wx = p.x * numPointsOrigin;\n let wy = p.y * numPointsOrigin;\n let clusterProperties = reduce && numPointsOrigin > 1 ? this._map(p, true) : null;\n\n // encode both zoom and point index on which the cluster originated -- offset by total length of features\n const id = (i << 5) + (zoom + 1) + this.points.length;\n for (const neighborId of neighborIds) {\n const b = tree.points[neighborId];\n if (b.zoom <= zoom) continue;\n b.zoom = zoom; // save the zoom (so it doesn't get processed twice)\n\n const numPoints2 = b.numPoints || 1;\n wx += b.x * numPoints2; // accumulate coordinates for calculating weighted center\n wy += b.y * numPoints2;\n b.parentId = id;\n if (reduce) {\n if (!clusterProperties) clusterProperties = this._map(p, true);\n reduce(clusterProperties, this._map(b));\n }\n }\n p.parentId = id;\n clusters.push(createCluster(wx / numPoints, wy / numPoints, id, numPoints, clusterProperties));\n } else {\n // left points as unclustered\n clusters.push(p);\n if (numPoints > 1) {\n for (const neighborId of neighborIds) {\n const b = tree.points[neighborId];\n if (b.zoom <= zoom) continue;\n b.zoom = zoom;\n clusters.push(b);\n }\n }\n }\n }\n return clusters;\n }\n\n // get index of the point from which the cluster originated\n _getOriginId(clusterId) {\n return clusterId - this.points.length >> 5;\n }\n\n // get zoom of the point from which the cluster originated\n _getOriginZoom(clusterId) {\n return (clusterId - this.points.length) % 32;\n }\n _map(point, clone) {\n if (point.numPoints) {\n return clone ? extend({}, point.properties) : point.properties;\n }\n const original = this.points[point.index].properties;\n const result = this.options.map(original);\n return clone && result === original ? extend({}, result) : result;\n }\n}\nfunction createCluster(x, y, id, numPoints, properties) {\n return {\n x: fround(x),\n // weighted cluster center; round for consistency with Float32Array index\n y: fround(y),\n zoom: Infinity,\n // the last zoom the cluster was processed at\n id,\n // encodes index of the first child of the cluster and its zoom level\n parentId: -1,\n // parent cluster id\n numPoints,\n properties\n };\n}\nfunction createPointCluster(p, id) {\n const [x, y] = p.geometry.coordinates;\n return {\n x: fround(lngX(x)),\n // projected point coordinates\n y: fround(latY(y)),\n zoom: Infinity,\n // the last zoom the point was processed at\n index: id,\n // index of the source feature in the original input array,\n parentId: -1 // parent cluster id\n };\n}\nfunction getClusterJSON(cluster) {\n return {\n type: 'Feature',\n id: cluster.id,\n properties: getClusterProperties(cluster),\n geometry: {\n type: 'Point',\n coordinates: [xLng(cluster.x), yLat(cluster.y)]\n }\n };\n}\nfunction getClusterProperties(cluster) {\n const count = cluster.numPoints;\n const abbrev = count >= 10000 ? \"\".concat(Math.round(count / 1000), \"k\") : count >= 1000 ? \"\".concat(Math.round(count / 100) / 10, \"k\") : count;\n return extend(extend({}, cluster.properties), {\n cluster: true,\n cluster_id: cluster.id,\n point_count: count,\n point_count_abbreviated: abbrev\n });\n}\n\n// longitude/latitude to spherical mercator in [0..1] range\nfunction lngX(lng) {\n return lng / 360 + 0.5;\n}\nfunction latY(lat) {\n const sin = Math.sin(lat * Math.PI / 180);\n const y = 0.5 - 0.25 * Math.log((1 + sin) / (1 - sin)) / Math.PI;\n return y < 0 ? 0 : y > 1 ? 1 : y;\n}\n\n// spherical mercator to longitude/latitude\nfunction xLng(x) {\n return (x - 0.5) * 360;\n}\nfunction yLat(y) {\n const y2 = (180 - y * 360) * Math.PI / 180;\n return 360 * Math.atan(Math.exp(y2)) / Math.PI - 90;\n}\nfunction extend(dest, src) {\n for (const id in src) dest[id] = src[id];\n return dest;\n}\nfunction getX(p) {\n return p.x;\n}\nfunction getY(p) {\n return p.y;\n}","import styled from \"styled-components\";\nimport Loader from \"react-loader-spinner\";\nimport React from \"react\";\nimport { colors } from \"../../../styles/colors\";\n\nexport const MapContainer = styled.div`\n position: relative;\n height: 100%;\n`;\n\nexport const MapDiv = styled.div`\n width: 100%;\n min-height: 50vh;\n`;\n\nconst MapSpinnerLoader = styled(Loader)`\n z-index: 401;\n display: flex;\n background: gray;\n justify-content: center;\n align-items: center;\n opacity: 0.87;\n position: absolute;\n width: 100%;\n height: 100%;\n`;\n\nconst MapSpinnerTitle = styled.h1`\n position: absolute;\n width: 100%;\n top: 350px;\n z-index: 401;\n color: ${colors.orange};\n font-size: 16pt;\n margin: auto;\n text-align: center;\n\n @media only screen and (max-width: 478px) { \n top: 0px;\n }\n`;\n\nexport const MapSpinner = () => {\n return (\n <>\n \n Please wait. This could take a while...\n \n );\n};\n","import React from \"react\";\n\nconst ManualEventMarker = () => {\n return (\n
\n \n \n \n \n \n \n `\n
\n );\n};\n\nexport default ManualEventMarker;\n","import React from \"react\";\nimport { JSONtoCSV } from \"../../../util/data/JSONtoCSV\";\n\nconst ManualEventPopup = ({ feature }: { feature: any }) => {\n const csvData = JSONtoCSV(feature.properties.items);\n const csvContent = \"data:text/csv;charset=utf-8,\" + csvData;\n\n return (\n
\n {feature.properties.event_name}
\n {feature.properties.items.reduce(\n //@ts-ignore\n (p, c, i) => (p += parseInt(c.quantity)),\n 0\n )}\n {\" items cleaned up during this event\"}\n
\n \n Download data\n \n
\n );\n};\n\nexport default ManualEventPopup;\n","import React, { useRef, useEffect } from \"react\";\nimport ReactDOMServer from \"react-dom/server\";\nimport Supercluster from \"supercluster\";\nimport { MapContainer, MapSpinner, MapDiv } from \"./Map/MapComponents\";\nimport dayjs from \"dayjs\";\nimport { getItem } from \"../../mdtApi/getData\";\nimport { FilterType } from \"../../types/filters\";\nimport {\n aggregateManualEvents,\n getEvents,\n getManualEvents,\n} from \"../../util/data/itemsDataFunctions\";\nimport { colors } from \"../../styles/colors\";\nimport { useState } from \"react\";\nimport ManualEventMarker from \"./Map/ManualEventMarker\";\nimport ManualEventPopup from \"./Map/ManualEventPopup\";\n\nconst ItemsMap = ({\n interactive,\n loading,\n geojson,\n cluster,\n filters,\n setFilterPolygon,\n draw,\n}: {\n interactive: boolean;\n cluster: boolean;\n loading: boolean;\n draw: boolean;\n geojson: GeoJSON.FeatureCollection;\n setFilterPolygon?: (b: L.Polygon) => void;\n filters: FilterType;\n}) => {\n const L = require(\"leaflet\");\n require(\"leaflet-draw\");\n\n const [isBrowser, setIsBrowser] = useState(false);\n\n const BASEMAP = \"https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png\";\n const ATTRIBUTION =\n '© OpenStreetMap contributors';\n const map = useRef(undefined);\n const mapDivRef = useRef(undefined);\n const drawnItems = useRef(undefined);\n\n useEffect(() => {\n setIsBrowser(true);\n }, []);\n\n useEffect(() => {\n createMap();\n }, [isBrowser, geojson]);\n\n const createMap = async () => {\n const createClusterCustomIcon = (feature, latlng) => {\n if (!feature.properties.cluster) {\n let marker = L.circleMarker(latlng, { color: \"#64748a\" });\n marker.bindPopup(\"Loading...\");\n marker.on(\"click\", async (e) => {\n let popup = e.target.getPopup();\n let itemData = await getItem(feature.properties.id);\n\n try {\n let item = itemData;\n popup.setContent(\n `${item.quantity > 1 ? item.quantity : \"\"} ${\n item.quantity <= 1 &&\n item.itemname.charAt(item.itemname.length - 1) === \"s\"\n ? item.itemname.slice(0, item.itemname.length - 1)\n : item.itemname\n }
Collected on ${dayjs(item.timestamp, \"YYYYMMDD\").format(\n \"YYYY-MM-DD\"\n )}`\n );\n popup.update();\n } catch {}\n });\n return marker;\n }\n let iconSettings = {\n mapIconUrl:\n '{mapText}',\n mapIconColor: \"#64748a\",\n mapIconStroke: \"#64748aB3\",\n mapIconColorInnerCircle: \"#edbd7f\",\n mapText: `${feature.properties.point_count_abbreviated}`,\n pinInnerCircleRadius: 48,\n };\n let degradedIconSettings = {\n mapIconUrl:\n '{mapText}',\n mapIconColor: \"#64748a\",\n mapIconStroke: \"#64748aB3\",\n mapIconColorInnerCircle: \"#edbd7f\",\n mapText: `${feature.properties.point_count_abbreviated}`,\n pinInnerCircleRadius: 48,\n };\n\n let icon = L.divIcon({\n className: \"leaflet-data-marker\",\n html: L.Util.template(iconSettings.mapIconUrl, iconSettings),\n iconAnchor: [18, 42],\n iconSize: [36, 42],\n popupAnchor: [0, -30],\n });\n let marker = L.marker(latlng, { icon: icon });\n return marker;\n };\n\n const centerMapOnCluster = (cluster, center) => {\n map.current.flyTo(center, index.getClusterExpansionZoom(cluster));\n };\n\n const loadDataAndCreateIndex = async (geojsonToLoad) => {\n return new Supercluster({\n radius: 40,\n extent: 256,\n maxZoom: 17,\n }).load(geojsonToLoad.features);\n };\n\n const update = (markers) => {\n const bounds = map.current.getBounds();\n\n let clusters;\n try {\n clusters = index.getClusters(\n [\n bounds.getWest(),\n bounds.getSouth(),\n bounds.getEast(),\n bounds.getNorth(),\n ],\n map.current.getZoom()\n );\n } catch {\n console.error(`FAILED`);\n return null;\n }\n\n markers.clearLayers();\n markers.addData(clusters);\n map.current.dragging.enable();\n return clusters;\n };\n\n // init map and grab data\n if (!map.current) {\n if (!mapDivRef.current) {\n return;\n }\n let l_map = L.map(\"map\", {\n maxZoom: interactive ? 22 : 15,\n dragging: true,\n zoomControl: interactive,\n }).setView([30, 0], 3);\n L.tileLayer(BASEMAP, {\n maxNativeZoom: 19,\n maxZoom: 22,\n attribution: ATTRIBUTION,\n noWrap: true,\n }).addTo(l_map);\n // enable draw polygon\n if (draw) {\n if (!drawnItems.current) {\n let drawnItemsLayer = new L.FeatureGroup();\n drawnItems.current = drawnItemsLayer;\n }\n l_map.addLayer(drawnItems.current);\n\n L.EditToolbar.Delete.include({\n removeAllLayers: false,\n });\n\n const drawOptions: L.Control.DrawConstructorOptions = {\n position: \"topright\",\n draw: {\n polyline: false,\n rectangle: false,\n circle: false,\n marker: false,\n circlemarker: false,\n polygon: {\n allowIntersection: false, // Restricts shapes to simple polygons\n drawError: {\n color: colors.orange, // Color the shape will turn when intersects\n message:\n \"Error you can't draw complex polygons!\", // Message that will show when intersect\n },\n shapeOptions: {\n color: colors.orange,\n },\n },\n },\n edit: {\n featureGroup: drawnItems.current,\n edit: false,\n },\n };\n let drawControl = new L.Control.Draw(drawOptions);\n\n l_map.addControl(drawControl);\n }\n map.current = l_map;\n } else {\n map.current.eachLayer((layer) => {\n //@ts-ignore\n if (!layer._url || layer._url !== BASEMAP) {\n map.current.removeLayer(layer);\n }\n });\n if (interactive) map.current.zoomControl.setPosition(\"bottomright\");\n }\n if (cluster) {\n if (!geojson) {\n return;\n }\n\n let filteredGeojson = geojson;\n if (filters && filters.list !== \"all\" && filters.date_type !== \"all\") {\n filteredGeojson = getEvents(geojson);\n if (!filteredGeojson) {\n return;\n }\n }\n\n var index = await loadDataAndCreateIndex(filteredGeojson);\n\n const markers = L.geoJSON(null, {\n pointToLayer: createClusterCustomIcon,\n }).addTo(map.current);\n\n update(markers);\n\n map.current.on(\"moveend\", () => {\n update(markers);\n });\n\n // add drawn polygons back to map\n if (draw) {\n map.current.addLayer(drawnItems.current);\n }\n\n if (draw) {\n //@ts-ignore\n map.current.on(\"draw:created\", (e: L.DrawEvents.Created) => {\n const layer = e.layer;\n let count = 0;\n drawnItems.current.eachLayer(() => count++);\n if (count > 1) {\n drawnItems.current.eachLayer((l) =>\n drawnItems.current.removeLayer(l)\n );\n } else {\n drawnItems.current.addLayer(layer);\n }\n\n // Filter data inside bounds\n if (e.layerType === \"polygon\") {\n setFilterPolygon(e.layer as L.Polygon);\n }\n });\n\n map.current.on(\"draw:deleted\", () => {\n setFilterPolygon(undefined);\n });\n }\n\n markers.on(\"click\", (e) => {\n if (e.layer.feature.properties.cluster_id) {\n map.current.dragging.disable();\n //@ts-ignore\n centerMapOnCluster(e.layer.feature.properties.cluster_id, e.latlng);\n }\n });\n } else {\n const markers = L.geoJSON(geojson);\n\n markers.addTo(map.current);\n if (geojson.features.length > 0) {\n map.current.fitBounds(markers.getBounds());\n }\n }\n if (!interactive) {\n map.current.dragging.disable();\n map.current.touchZoom.disable();\n map.current.doubleClickZoom.disable();\n map.current.scrollWheelZoom.disable();\n map.current.boxZoom.disable();\n map.current.keyboard.disable();\n if (map.current.tap) map.current.tap.disable();\n document.getElementById(\"map\").style.cursor = \"default\";\n }\n };\n\n // Handle manual events\n useEffect(() => {\n const createManualEventMarker = (feature, latlng) => {\n //working here\n const fontAwesomeIcon = L.divIcon({\n html: ReactDOMServer.renderToString(),\n iconAnchor: [10, 40],\n popupAnchor: [20, -40],\n className: \"markerDiv\",\n });\n let marker = L.marker(latlng, { icon: fontAwesomeIcon });\n marker.bindPopup(\n ReactDOMServer.renderToString()\n );\n return marker;\n };\n\n map.current &&\n map.current.eachLayer((layer) => {\n //@ts-ignore\n if (layer.myTag && layer.myTag === \"manualLayer\") {\n map.current.removeLayer(layer);\n }\n });\n\n if (\n geojson &&\n geojson.features.length > 0 &&\n filters.showManual &&\n map.current\n ) {\n let manualData = getManualEvents(geojson);\n manualData.features = aggregateManualEvents(manualData.features);\n filters.showManual &&\n L.geoJSON(manualData, {\n pointToLayer: createManualEventMarker,\n //@ts-ignore\n onEachFeature: (f, l) => (l.myTag = \"manualLayer\"),\n }).addTo(map.current);\n }\n }, [geojson, filters.showManual]);\n\n if (!isBrowser) {\n return null;\n }\n\n return (\n \n {loading ? : null}\n \n \n );\n};\n\nexport default ItemsMap;\n","import * as React from 'react';\nimport createSvgIcon from '../../utils/createSvgIcon';\n/**\n * @ignore - internal component.\n */\n\nexport default createSvgIcon( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z\"\n}), 'RadioButtonUnchecked');","import * as React from 'react';\nimport createSvgIcon from '../../utils/createSvgIcon';\n/**\n * @ignore - internal component.\n */\n\nexport default createSvgIcon( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8.465 8.465C9.37 7.56 10.62 7 12 7C14.76 7 17 9.24 17 12C17 13.38 16.44 14.63 15.535 15.535C14.63 16.44 13.38 17 12 17C9.24 17 7 14.76 7 12C7 10.62 7.56 9.37 8.465 8.465Z\"\n}), 'RadioButtonChecked');","import * as React from 'react';\nimport clsx from 'clsx';\nimport RadioButtonUncheckedIcon from '../internal/svg-icons/RadioButtonUnchecked';\nimport RadioButtonCheckedIcon from '../internal/svg-icons/RadioButtonChecked';\nimport withStyles from '../styles/withStyles';\nexport var styles = function styles(theme) {\n return {\n root: {\n position: 'relative',\n display: 'flex',\n '&$checked $layer': {\n transform: 'scale(1)',\n transition: theme.transitions.create('transform', {\n easing: theme.transitions.easing.easeOut,\n duration: theme.transitions.duration.shortest\n })\n }\n },\n layer: {\n left: 0,\n position: 'absolute',\n transform: 'scale(0)',\n transition: theme.transitions.create('transform', {\n easing: theme.transitions.easing.easeIn,\n duration: theme.transitions.duration.shortest\n })\n },\n checked: {}\n };\n};\n/**\n * @ignore - internal component.\n */\n\nfunction RadioButtonIcon(props) {\n var checked = props.checked,\n classes = props.classes,\n fontSize = props.fontSize;\n return /*#__PURE__*/React.createElement(\"div\", {\n className: clsx(classes.root, checked && classes.checked)\n }, /*#__PURE__*/React.createElement(RadioButtonUncheckedIcon, {\n fontSize: fontSize\n }), /*#__PURE__*/React.createElement(RadioButtonCheckedIcon, {\n fontSize: fontSize,\n className: classes.layer\n }));\n}\nprocess.env.NODE_ENV !== \"production\" ? void 0 : void 0;\nexport default withStyles(styles, {\n name: 'PrivateRadioButtonIcon'\n})(RadioButtonIcon);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport clsx from 'clsx';\nimport { refType } from '@material-ui/utils';\nimport SwitchBase from '../internal/SwitchBase';\nimport RadioButtonIcon from './RadioButtonIcon';\nimport { fade } from '../styles/colorManipulator';\nimport capitalize from '../utils/capitalize';\nimport createChainedFunction from '../utils/createChainedFunction';\nimport withStyles from '../styles/withStyles';\nimport useRadioGroup from '../RadioGroup/useRadioGroup';\nexport var styles = function styles(theme) {\n return {\n /* Styles applied to the root element. */\n root: {\n color: theme.palette.text.secondary\n },\n /* Pseudo-class applied to the root element if `checked={true}`. */\n checked: {},\n /* Pseudo-class applied to the root element if `disabled={true}`. */\n disabled: {},\n /* Styles applied to the root element if `color=\"primary\"`. */\n colorPrimary: {\n '&$checked': {\n color: theme.palette.primary.main,\n '&:hover': {\n backgroundColor: fade(theme.palette.primary.main, theme.palette.action.hoverOpacity),\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n backgroundColor: 'transparent'\n }\n }\n },\n '&$disabled': {\n color: theme.palette.action.disabled\n }\n },\n /* Styles applied to the root element if `color=\"secondary\"`. */\n colorSecondary: {\n '&$checked': {\n color: theme.palette.secondary.main,\n '&:hover': {\n backgroundColor: fade(theme.palette.secondary.main, theme.palette.action.hoverOpacity),\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n backgroundColor: 'transparent'\n }\n }\n },\n '&$disabled': {\n color: theme.palette.action.disabled\n }\n }\n };\n};\nvar defaultCheckedIcon = /*#__PURE__*/React.createElement(RadioButtonIcon, {\n checked: true\n});\nvar defaultIcon = /*#__PURE__*/React.createElement(RadioButtonIcon, null);\nvar Radio = /*#__PURE__*/React.forwardRef(function Radio(props, ref) {\n var checkedProp = props.checked,\n classes = props.classes,\n _props$color = props.color,\n color = _props$color === void 0 ? 'secondary' : _props$color,\n nameProp = props.name,\n onChangeProp = props.onChange,\n _props$size = props.size,\n size = _props$size === void 0 ? 'medium' : _props$size,\n other = _objectWithoutProperties(props, [\"checked\", \"classes\", \"color\", \"name\", \"onChange\", \"size\"]);\n var radioGroup = useRadioGroup();\n var checked = checkedProp;\n var onChange = createChainedFunction(onChangeProp, radioGroup && radioGroup.onChange);\n var name = nameProp;\n if (radioGroup) {\n if (typeof checked === 'undefined') {\n checked = radioGroup.value === props.value;\n }\n if (typeof name === 'undefined') {\n name = radioGroup.name;\n }\n }\n return /*#__PURE__*/React.createElement(SwitchBase, _extends({\n color: color,\n type: \"radio\",\n icon: /*#__PURE__*/React.cloneElement(defaultIcon, {\n fontSize: size === 'small' ? 'small' : 'default'\n }),\n checkedIcon: /*#__PURE__*/React.cloneElement(defaultCheckedIcon, {\n fontSize: size === 'small' ? 'small' : 'default'\n }),\n classes: {\n root: clsx(classes.root, classes[\"color\".concat(capitalize(color))]),\n checked: classes.checked,\n disabled: classes.disabled\n },\n name: name,\n checked: checked,\n onChange: onChange,\n ref: ref\n }, other));\n});\nprocess.env.NODE_ENV !== \"production\" ? void 0 : void 0;\nexport default withStyles(styles, {\n name: 'MuiRadio'\n})(Radio);","import * as React from 'react';\nimport RadioGroupContext from './RadioGroupContext';\nexport default function useRadioGroup() {\n return React.useContext(RadioGroupContext);\n}","import React from \"react\";\nimport Radio from \"@material-ui/core/Radio\";\nimport { colors } from \"../../styles/colors\";\nimport { createMuiTheme, ThemeProvider, withStyles } from \"@material-ui/core\";\n\nconst DebrisTrackerRadio = withStyles({\n root: {\n color: colors.white,\n },\n})(Radio);\n\nconst customTheme = createMuiTheme({\n palette: {\n primary: { main: colors.white },\n },\n});\n\nconst RadioButton = ({\n onChange,\n checked,\n name,\n children,\n}: {\n onChange?: (e: any) => void;\n checked?: boolean;\n name?: string;\n children?: any;\n}) => {\n return (\n \n
\n \n {children}\n
\n
\n );\n};\n\nexport default RadioButton;\n","import React, { useState } from \"react\";\nimport Menu from \"@material-ui/core/Menu\";\nimport styled from \"styled-components\";\nimport { colors } from \"../../styles/colors\";\nimport { MenuItem } from \"@material-ui/core\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { faSortDown } from \"@fortawesome/free-solid-svg-icons\";\n\nconst DropdownToggle = styled.div`\n display: flex;\n justify-content: space-between;\n margin: 5px 0px;\n height: 25px;\n border-bottom: 1px solid ${colors.orange};\n cursor: ${({ enabled }) => (enabled ? \"pointer\" : \"default\")};\n &:hover {\n background-color: ${({ enabled }) =>\n enabled ? \"#00000010\" : \"transparent\"};\n }\n`;\n\nconst DropdownLabel = styled.div`\n cursor: ${({ enabled }) => (enabled ? \"pointer\" : \"default\")};\n opacity: ${({ enabled }) => (enabled ? 1 : 0.5)};\n`;\n\nconst Select = ({\n title,\n data,\n children,\n onChange,\n enabled = true,\n}: {\n title?: string;\n data?: {\n label: string;\n value: any;\n }[];\n children?: any;\n onChange?: (v: any) => void;\n enabled?: boolean;\n}) => {\n const [anchorEl, setAnchorEl] = useState(null);\n return (\n <>\n {\n enabled && setAnchorEl(e.currentTarget);\n }}\n >\n {title}\n \n \n {\n setAnchorEl(null);\n }}\n anchorEl={anchorEl}\n PaperProps={{\n style: {\n maxHeight: 450,\n },\n }}\n anchorOrigin={{\n vertical: \"center\",\n horizontal: \"center\",\n }}\n transformOrigin={{\n horizontal: \"center\",\n vertical: \"center\",\n }}\n getContentAnchorEl={undefined}\n >\n {children}\n {data &&\n data.map((datum, i) => {\n return (\n {\n const val = e.currentTarget.dataset.val;\n if (val) {\n onChange(val);\n setAnchorEl(null);\n }\n }}\n key={i}\n data-val={datum.value}\n >\n {datum.label}\n \n );\n })}\n \n \n );\n};\n\nexport default Select;\n","import fetch from \"isomorphic-fetch\";\nimport { apiUrl, devAPI } from \"../util/urls\";\nimport dayjs from \"dayjs\";\nimport { convertToGeoJSON } from \"../util/data/convertToGeoJSON\";\n/**\n * Helper function for getItemInstanceData\n * grabs one page of item instance data from the api\n */\nconst getItemData = async (page_no, page_size, from, to, user) => {\n try {\n let res = await fetch(\n `${apiUrl}/sendAllItemInstances.php?page=${page_no}&page_size=${page_size}&from=${from}&to=${to}${\n user ? `&user=${user}` : \"\"\n }`,\n {\n headers: { \"Content-Type\": \"application/json\" },\n }\n );\n res = await res.json();\n return res;\n } catch (err) {\n return err;\n }\n};\n\nconst getETAPItemData = async (page_no, page_size, from, to) => {\n const limit = 200000;\n let page = page_size;\n // alert(\"test\");\n try {\n let params = {\n limit: limit.toString(),\n page: page.toString(),\n detail: \"4\",\n start: from,\n end: to,\n };\n let paramsString = new URLSearchParams(params).toString();\n let url = `${devAPI}/mdtEtaps/itemInstances?${paramsString}`;\n const response = await (await fetch(url)).json();\n return response;\n } catch (error) {\n console.error(error);\n throw {\n done: true,\n value: JSON.stringify(error),\n };\n }\n};\n\n/**\n * Convert data with shape [lat,long] to geojson.\n * This isn't being used currently but is just a nifty helper\n */\nexport const getItemInstanceGeoJSON = async (\n from: string,\n to: string,\n user = undefined\n) => {\n try {\n let data = await getItemInstanceData(from, to, user);\n return convertToGeoJSON(data);\n } catch (err) {\n return err;\n }\n};\n\n// fetch all item instance data from mdt 2.0 api with detail 1\nconst asyncGetAllItems = async function* () {\n const limit = 200000;\n let page = 1;\n let pageCount = -1;\n\n while (page === 1 || page <= pageCount) {\n try {\n let params = {\n limit: limit.toString(),\n page: page.toString(),\n detail: \"1\",\n };\n let paramsString = new URLSearchParams(params).toString();\n let url = `${devAPI}/items?${paramsString}`;\n const response = await (await fetch(url)).json();\n pageCount = response[\"pageCount\"];\n page++;\n yield response;\n } catch (error) {\n console.error(error);\n throw {\n done: true,\n value: JSON.stringify(error),\n };\n }\n }\n};\n\n// fetch all item instance data from mdt 2.0 api with detail 1\nconst asyncGetAllETAPItems = async function* () {\n const limit = 200000;\n let page = 1;\n let pageCount = -1;\n\n while (page === 1 || page <= pageCount) {\n try {\n let params = {\n limit: limit.toString(),\n page: page.toString(),\n detail: \"4\",\n };\n let paramsString = new URLSearchParams(params).toString();\n let url = `${devAPI}/mdtEtaps/itemInstances?${paramsString}`;\n const response = await (await fetch(url)).json();\n pageCount = response[\"pageCount\"];\n page++;\n yield response;\n } catch (error) {\n console.error(error);\n throw {\n done: true,\n value: JSON.stringify(error),\n };\n }\n }\n};\n\n// fetch all item instance data from mdt 2.0 api with detail 1 and specified list id\nconst asyncGetItemsFromList = async function* (id) {\n const limit = 200000;\n let page = 1;\n let pageCount = -1;\n\n while (page === 1 || page <= pageCount) {\n try {\n let params = {\n limit: limit.toString(),\n page: page.toString(),\n detail: \"1\",\n list: id,\n };\n let paramsString = new URLSearchParams(params).toString();\n let url = `${devAPI}/items?${paramsString}`;\n const response = await (await fetch(url)).json();\n pageCount = response[\"pageCount\"];\n page++;\n yield response;\n } catch (error) {\n console.error(error);\n throw {\n done: true,\n value: JSON.stringify(error),\n };\n }\n }\n};\n\nexport const getAllETAPItemInstanceData = async (\n from: string = \"0\",\n to: string = dayjs().format(\"YYYY-MM-DD\"),\n user: string = \"\",\n page_size: number = 50000\n) => {\n const initial_page = 1;\n const data = [];\n\n try {\n let allItems = [];\n for await (const content of asyncGetAllETAPItems()) {\n allItems = allItems.concat(content.items);\n }\n return allItems;\n } catch (err) {\n return err;\n }\n};\n\nexport const getAllItemInstanceData = async () => {\n try {\n let allItems = [];\n for await (const content of asyncGetAllItems()) {\n allItems = allItems.concat(content.items);\n }\n return allItems;\n } catch (err) {\n return err;\n }\n};\n\nexport const getItemListInstanceData = async (id) => {\n try {\n let allItems = [];\n for await (const content of asyncGetItemsFromList(id)) {\n allItems = allItems.concat(content.items);\n }\n return allItems;\n } catch (err) {\n return err;\n }\n};\n\nexport const getItemInstanceData = async (\n from: string = \"0\",\n to: string = dayjs().format(\"YYYY-MM-DD\"),\n user: string = \"\",\n page_size: number = 50000\n) => {\n const initial_page = 1;\n const data = [];\n try {\n const processedResponses = [];\n let res = await getItemData(initial_page, page_size, from, to, user);\n processedResponses.push(res.data);\n const num_pages = Math.ceil(res.total_records / page_size);\n const promises = [];\n for (let i = 2; i <= num_pages; i++) {\n promises.push(getItemData(i, page_size, from, to, user));\n }\n\n const results = await Promise.all(promises);\n\n results.forEach((res) => {\n processedResponses.push(res.data);\n });\n\n processedResponses.forEach((res) => {\n if (!res) return `Failed to pull list data`;\n data.push(...res);\n });\n\n return data;\n } catch (err) {\n return err;\n }\n};\n\nexport const getETAPItemInstanceData = async (\n from: string = \"0\",\n to: string = dayjs().format(\"YYYY-MM-DD\"),\n user: string = \"\",\n page_size: number = 50000\n) => {\n const initial_page = 1;\n const data = [];\n try {\n const processedResponses = [];\n let res = await getETAPItemData(initial_page, page_size, from, to);\n\n processedResponses.push(res);\n const num_pages = Math.ceil(res.totalRecords / page_size);\n const promises = [];\n\n for (let i = 2; i <= num_pages; i++) {\n promises.push(getItemData(i, page_size, from, to, user));\n }\n\n const results = await Promise.all(promises);\n\n results.forEach((res) => {\n processedResponses.push(res.data);\n });\n\n return processedResponses[0].items;\n } catch (err) {\n return err;\n }\n};\n\nexport const getSurveyDataByList = async (list_id, username, password) => {\n try {\n const res = await fetch(\n `${apiUrl}/getSurveyResults.php?username=${username}&password=${password}&list_id=${list_id}`\n );\n const parsedRes = await res.json();\n return parsedRes.data;\n } catch {\n return null;\n }\n};\n\nexport const getItemsByList = async (\n list_id: string | undefined = undefined,\n user: string = \"\",\n password: string = \"\",\n from: string = \"0\",\n to: string = dayjs().format(\"YYYY-MM-DD\"),\n default_page_size: number = 50000,\n user_id: string = \"\"\n) => {\n try {\n let res = await fetch(\n `${apiUrl}/getLoggedDataJSON.php?username=${user}&password=${password}&lists=${list_id}&from=${from}&to=${to}&page=1&page_size=${default_page_size}&user_id=${user_id}`,\n { headers: { \"Content-Type\": \"application/json\" } }\n );\n let list_items = await res.json();\n\n const num_pages = Math.ceil(list_items.total_records / default_page_size);\n list_items = list_items.data;\n let promises = [];\n for (let i = 2; i <= num_pages; i++) {\n promises.push(\n fetch(\n `${apiUrl}/getLoggedDataJSON.php?username=${user}&password=${password}&lists=${list_id}&from=${from}&to=${to}&page=${i}&page_size=${default_page_size}&user_id=${user_id}`,\n { headers: { \"Content-Type\": \"application/json\" } }\n )\n );\n }\n let results = await Promise.all(promises);\n results.forEach((res) => {\n let data = res.data;\n list_items.push(...data);\n });\n return list_items;\n } catch {\n return null;\n }\n};\n\nexport const getItemsByMdtETAP = async (\n project_id: string | undefined = undefined,\n from: string = \"0\",\n to: string = dayjs().format(\"YYYY-MM-DD\"),\n default_page_size: number = 50000\n) => {\n try {\n const processedResponses = [];\n let params = {\n project_id: project_id,\n start: from,\n end: to,\n detail: \"4\",\n };\n let paramsString = new URLSearchParams(params).toString();\n let url = `${devAPI}/mdtEtaps/itemInstances/${project_id}?${paramsString}`;\n\n const res = await (await fetch(url)).json();\n\n processedResponses.push(res);\n const num_pages = Math.ceil(res.totalRecords / default_page_size);\n let promises = [];\n\n for (let i = 2; i <= num_pages; i++) {\n promises.push(fetch(url));\n }\n\n let results = await Promise.all(promises);\n\n results.forEach((res) => {\n processedResponses.push(res.data);\n });\n\n return processedResponses[0].items;\n } catch {\n return null;\n }\n};\n\nexport const getItem = async (id: string) => {\n try {\n const res = await fetch(`${apiUrl}/getItem.php?id=${id}`, {\n // headers: { \"Content-Type\": \"application/json\" },\n });\n const item = await res.json();\n\n return item.data;\n } catch {\n return null;\n }\n};\n\nexport const getItemsByListGeoJSON = async (\n list_id,\n user = undefined,\n password = undefined,\n from,\n to\n) => {\n try {\n const item = await (\n await getItemsByList(list_id, user, password, from, to)\n ).json();\n let geojson = convertToGeoJSON(item);\n return geojson;\n } catch {\n return null;\n }\n};\n\nexport const getItemTypes = async (list_id) => {\n try {\n const res = await fetch(`${apiUrl}/getItemTypes.php?id=${list_id}`);\n const data = await res.json();\n return data.data;\n } catch (err) {\n return err;\n }\n};\n\nexport const getMaterial = async (id: string) => {\n try {\n let res = await fetch(`${devAPI}/material/${id}`);\n const item = await res.json();\n // console.log(\"itemID\", JSON.stringify(item[0].description));\n return JSON.stringify(item[0].description).replace(/\\\"/g, \"\");\n } catch {\n return null;\n }\n};\n","export default (data) => {\n let new_data = [];\n data = data.features;\n for (let datum of data) {\n new_data.push(datum.properties);\n }\n return new_data;\n};\n","import _ from \"lodash\";\nimport {\n BarChartType,\n PieChartDataType,\n PieDonutChartDataType,\n SelectDataType,\n} from \"../../types/charts\";\n\nexport const geojsonToPie = (geojson: GeoJSON.FeatureCollection) => {\n const data: PieChartDataType = [];\n const flatData = geojson.features.map((feature) => feature.properties);\n const aggregatedMaterials = _.groupBy(flatData, (props) => {\n if (!props.master_material) {\n //some items aren't linked to a master material.\n // just set them to other\n if (!props.material_name) {\n if (!props.material) {\n return \"OTHER ITEMS\";\n }\n return props.material;\n }\n return props.material_name;\n }\n return props.master_material;\n });\n\n Object.keys(aggregatedMaterials).map((key) => {\n // if (key === \"PLASTIC\") {\n data.push({ name: key, y: aggregatedMaterials[key].length });\n // }\n });\n\n return data;\n};\n\nexport const geojsonToBar = (geojson: GeoJSON.FeatureCollection) => {\n const data: BarChartType = [];\n\n const flatData = geojson.features.map((feature) => feature.properties);\n\n const aggregatedItemNames = _.groupBy(flatData, (props) => {\n return props.itemname;\n });\n\n Object.keys(aggregatedItemNames).map((key) => {\n data.push({\n name: key,\n data: aggregatedItemNames[key].reduce(\n (prev, curr) => prev + parseInt(curr.quantity, 10),\n 0\n ),\n });\n });\n\n data.sort((a, b) => {\n return b.data - a.data;\n });\n\n return data.slice(0, 5);\n};\n\nexport const geojsonToDegradedMaterialBar = (\n geojson: GeoJSON.FeatureCollection,\n material: String\n) => {\n const flatData = geojson.features.map((feature) => feature.properties);\n console.log({ material });\n const aggregatedMaterials: any[] = [];\n geojson.features.forEach((data) => {\n let material_name;\n\n if (!data[\"material_name\"]) {\n //some items aren't linked to a master material.\n // just set them to other\n if (!data[\"material\"]) {\n return \"OTHER ITEMS\";\n }\n material_name = data[\"material\"];\n } else {\n material_name = data[\"material_name\"];\n }\n\n console.log({ material_name });\n\n // console.log({ material_name });\n if (material_name === material) {\n console.log({ material_name });\n aggregatedMaterials.push(data);\n }\n });\n\n console.log(\"aggr\", aggregatedMaterials);\n\n const counts = {\n degraded: aggregatedMaterials.filter((item) => item.degraded === 1).length,\n other: aggregatedMaterials.filter((item) => item.degraded !== 1).length,\n };\n console.log(\"other\", counts.other);\n\n return { total: aggregatedMaterials.length, degraded: counts.degraded };\n};\n\nexport const geojsonToDegradedBar = (geojson: GeoJSON.FeatureCollection) => {\n const flatData = geojson.features.map((feature) => feature.properties);\n\n const degradedCount = flatData.filter((item) => item.degraded === 1).length;\n\n console.log(\"de\", flatData.length);\n\n return { total: flatData.length, degraded: degradedCount };\n};\n\nexport const geojsonToBarETAP = (geojson: GeoJSON.FeatureCollection) => {\n const data: BarChartType = [];\n\n const flatData = geojson.features.map((feature) => feature.properties);\n\n const aggregatedItemNames = _.groupBy(flatData, (props) => {\n return props.etap_2_name;\n });\n\n Object.keys(aggregatedItemNames).map((key) => {\n data.push({\n name: key,\n data: aggregatedItemNames[key].reduce(\n (prev, curr) => prev + parseInt(curr.quantity, 10),\n 0\n ),\n });\n });\n\n data.sort((a, b) => {\n return b.data - a.data;\n });\n\n return data.slice(0, 5);\n};\n\nexport const geojsonToMaterialPie = (\n geojson: GeoJSON.FeatureCollection,\n material: String\n) => {\n const data: PieChartDataType = [];\n const flatData = geojson.features.map((feature) => feature.properties);\n const aggregatedMaterials = _.groupBy(flatData, (props) => {\n let material_name;\n\n if (!props.material_name) {\n //some items aren't linked to a master material.\n // just set them to other\n if (!props.material) {\n return \"OTHER ITEMS\";\n }\n material_name = props.material;\n } else {\n material_name = props.material_name;\n }\n\n if (material_name === material) {\n return props.etap_2_name;\n }\n });\n\n Object.keys(aggregatedMaterials).map((key) => {\n if (key !== \"undefined\") {\n data.push({ name: key, y: aggregatedMaterials[key].length });\n }\n });\n\n return data;\n};\n\nexport const geojsonToMaterialBarETAP = (\n geojson: GeoJSON.FeatureCollection,\n material: String\n) => {\n const data: BarChartType = [];\n const flatData = geojson.features.map((feature) => feature.properties);\n const aggregatedMaterials = _.groupBy(flatData, (props) => {\n let material_name;\n\n if (!props.material_name) {\n //some items aren't linked to a master material.\n // just set them to other\n if (!props.material) {\n return \"OTHER ITEMS\";\n }\n material_name = props.material;\n } else {\n material_name = props.material_name;\n }\n\n if (material_name === material) {\n return props.etap_2_name;\n }\n });\n\n Object.keys(aggregatedMaterials).map((key) => {\n if (key !== \"undefined\") {\n data.push({\n name: key,\n data: aggregatedMaterials[key].reduce(\n (prev, curr) => prev + parseInt(curr.quantity, 10),\n 0\n ),\n parent_index: aggregatedMaterials[key][0].etap_1_index\n ? aggregatedMaterials[key][0].etap_1_index\n : aggregatedMaterials[key][0].material_index,\n });\n }\n });\n\n data.sort((a, b) => {\n return b.data - a.data;\n });\n\n return data.slice(0, 10);\n};\n\nexport const geojsonToSelect = (geojson: GeoJSON.FeatureCollection) => {\n const data: SelectDataType = [];\n const flatData = geojson.features.map((feature) => feature.properties);\n\n const aggregatedMaterials = _.groupBy(flatData, (props) => {\n if (!props.material_name) {\n //some items aren't linked to a master material.\n // just set them to other\n if (!props.material) {\n return \"OTHER ITEMS\";\n }\n return props.material;\n } else {\n return props.material_name;\n }\n });\n\n Object.keys(aggregatedMaterials).map((key) => {\n // if (key === \"PLASTIC\") {\n data.push({ label: key, value: key });\n // }\n });\n\n return data;\n};\n\nconst computePieDonutData2 = (\n etap1,\n etap1Counts,\n etap2,\n etap2Counts,\n etap1Names\n) => {\n // console.log(\"etap1\", etap1);\n // console.log(\"etap1Counts\", etap1Counts);\n // console.log(\"etap2\", etap2);\n // console.log(\"etap2Counts\", etap2Counts);\n // console.log(\"etap1Names\", etap1Names);\n\n etap2.sort((a, b) => a.etapTwo.localeCompare(b.etapTwo));\n etap2.sort((a, b) => a.etapOne - b.etapOne);\n // console.log(\"etap2sorted\", etap2);\n\n let parent = 0;\n let children = [];\n let childrenData = [];\n let finishedData: PieDonutChartDataType[] = [];\n let checkChildren = [];\n let checkChildrenData = []; // tracks which items have been placed in childrenData\n\n let data: PieDonutChartDataType = {\n y: undefined,\n color: undefined,\n drilldown: {\n name: undefined,\n categories: [],\n data: [],\n color: undefined,\n },\n };\n\n for (let i = 0; i < etap2.length; i++) {\n if (parent < etap2[i].etapOne) {\n parent = etap2[i].etapOne;\n }\n // console.log(\"try,\", etap1Names[etap2[i].etapOne]);\n // check to ensure no duplicates\n if (!checkChildren.includes(etap2[i].etapTwo)) {\n children.push(etap2[i].etapTwo);\n checkChildren.push(etap2[i].etapTwo);\n }\n\n // if index not last index\n if (i != etap2.length - 1) {\n // if next index is not the same item, check already includes etapTwo\n if (\n etap2[i].etapTwo != etap2[i + 1].etapTwo &&\n !checkChildrenData.includes(etap2[i].etapTwo)\n ) {\n childrenData.push(etap2Counts[etap2[i].etapTwo]);\n checkChildrenData.push(etap2[i].etapTwo);\n }\n\n if (parent != etap2[i + 1].etapOne) {\n // if next item isn't apart of parent group\n data.y = etap1Counts[parent];\n data.drilldown.name = etap1Names[etap2[i].etapOne];\n data.drilldown.categories = children;\n\n if (childrenData.length != children.length) {\n childrenData.push(etap2Counts[etap2[i].etapTwo]);\n }\n\n data.drilldown.data = childrenData;\n finishedData.push(data);\n\n // reset for the next parent group\n children = [];\n childrenData = [];\n checkChildren = [];\n checkChildrenData = [];\n data = {\n y: undefined,\n color: undefined,\n drilldown: {\n name: undefined,\n categories: [],\n data: [],\n color: undefined,\n },\n };\n }\n } else {\n data.y = etap1Counts[parent];\n data.drilldown.name = etap1Names[etap2[i].etapOne];\n data.drilldown.categories = children;\n\n if (childrenData.length != children.length) {\n childrenData.push(etap2Counts[etap2[i].etapTwo]);\n }\n\n data.drilldown.data = childrenData;\n finishedData.push(data);\n }\n }\n\n console.log(\"finishedData\", finishedData);\n return finishedData;\n};\n\nconst computePieDonutData = (flatData, material) => {\n let etap1 = [];\n let etap2 = [];\n let etap1Counts = {};\n let etap2Counts = {};\n let etap1Names = {};\n\n let trimmedData = [];\n\n flatData.forEach((item) => {\n if (item.material === material) {\n trimmedData.push(item);\n }\n });\n\n trimmedData.forEach((item) => {\n let parent_index;\n let parent_name;\n if (item.etap_1_index) {\n parent_index = item.etap_1_index;\n parent_name = item.etap_1_name;\n } else {\n parent_index = item.material_index;\n parent_name = item.material;\n }\n\n etap1Counts[parent_index] = (etap1Counts[parent_index] || 0) + 1;\n etap1Names[parent_index] = parent_name;\n\n etap2.push({ etapTwo: item.etap_2_name, etapOne: parent_index });\n etap2Counts[item.etap_2_name] = (etap2Counts[item.etap_2_name] || 0) + 1;\n });\n\n const finishedData = computePieDonutData2(\n etap1,\n etap1Counts,\n etap2,\n etap2Counts,\n etap1Names\n );\n\n return finishedData;\n};\n\nexport const geojsonToPieDonut = (\n geojson: GeoJSON.FeatureCollection,\n material: String\n) => {\n const flatData = geojson.features.map((feature) => feature.properties);\n\n const finishedData = computePieDonutData(flatData, material);\n\n return finishedData;\n};\n","export const convertToGeoJSON = (\n data: { latitude: string; longitude: string; [k: string]: any }[]\n) => {\n if (!data) {\n return null;\n }\n let new_data = [];\n let i = 0;\n for (let datum of data) {\n let geoJSON_object = {\n type: \"Feature\",\n geometry: {\n type: \"Point\",\n coordinates: [parseFloat(datum.longitude), parseFloat(datum.latitude)],\n },\n properties: { ...datum, index: i },\n };\n new_data.push(geoJSON_object);\n i++;\n }\n let geoJSON: GeoJSON.GeoJSON = {\n type: \"FeatureCollection\",\n features: new_data,\n };\n return geoJSON;\n};\n","import { FilterType } from \"../../types/filters\";\nimport _ from \"lodash\";\n\nexport const getEvents = (data: GeoJSON.FeatureCollection) => {\n const filtered_data = { ...data };\n if (!filtered_data) {\n return filtered_data;\n }\n filtered_data.features = filtered_data.features.filter((datum) => {\n return parseInt(datum.properties.manual_upload) === 0;\n });\n\n return filtered_data;\n};\n\nexport const getManualEvents = (data: GeoJSON.FeatureCollection) => {\n const filtered_data = { ...data };\n if (!filtered_data) {\n return filtered_data;\n }\n filtered_data.features = filtered_data.features.filter((datum) => {\n return parseInt(datum.properties.manual_upload) === 1;\n });\n\n return filtered_data;\n};\n\n// Apply filters to geojson data\nexport const applyFilters = (\n filters: FilterType,\n data: GeoJSON.FeatureCollection\n) => {\n if (!data || data.features.length <= 0) {\n return data;\n }\n let filtered_data = { ...data };\n\n let filterMaterials = false;\n\n // if any checkbox is deselected, iterate through and filter\n filters.checkboxes.forEach((box) => {\n if (!box.value) {\n filterMaterials = true;\n }\n });\n\n if (filterMaterials) {\n // iterate through each item and compare to each material index.\n filtered_data.features = filtered_data.features.filter((datum) => {\n const props = datum.properties;\n let filter = false;\n for (const material of filters.checkboxes) {\n if (material.id === props.material_index) {\n filter = material.value;\n }\n }\n return filter;\n });\n }\n\n // filter by user data\n if (filters.user_data !== -1) {\n filtered_data.features = filtered_data.features.filter(\n (datum) => datum.properties.user_index === `${filters.user_data}`\n );\n }\n\n // filter manual data\n if (!filters.showManual) {\n filtered_data.features = filtered_data.features.filter(\n (datum) => datum.properties.manual_upload === \"0\"\n );\n }\n\n return filtered_data;\n};\n\nexport const aggregateManualEvents = (data) => {\n let aggregated_features = _.groupBy(data, (datum) => {\n return datum.properties.log_index;\n });\n let events = [];\n Object.values(aggregated_features).forEach((items) => {\n let master_item = { ...items[0] };\n const spread_items = items.map((v) => {\n return v.properties;\n });\n master_item.properties = {\n items: spread_items,\n event_name: items[0].properties.event_name,\n };\n events.push(master_item);\n });\n return events;\n};\n","import { useState, useEffect } from \"react\";\nimport { getGlobalMaterials } from \"../../dataApi/getGlobalMaterials\";\n\nexport default () => {\n const [allOrgSections, setAllOrgSections] = useState<\n { material_id: string; name: string }[]\n >();\n const [loading, setLoading] = useState(false);\n\n // fetch master list data\n useEffect(() => {\n (async () => {\n try {\n setLoading(true);\n\n const data = await getGlobalMaterials();\n\n setAllOrgSections(data);\n setLoading(false);\n } catch (e) {\n console.error(e);\n setLoading(false);\n }\n })();\n }, []);\n\n return { allOrgSections, loading };\n};\n","import fetch from \"isomorphic-fetch\";\nimport { devAPI } from \"../util/urls\";\nexport const getGlobalMaterials = async () => {\n try {\n const res = await fetch(`${devAPI}/organizations/-1`);\n const parsed = await res.json();\n\n return parsed.globalMaterials;\n } catch (e) {\n console.error(e);\n return null;\n }\n};\n","import { useState } from \"react\";\nimport {\n getAllETAPItemInstanceData,\n getAllItemInstanceData,\n getETAPItemInstanceData,\n getItemInstanceData,\n getItemsByList,\n getItemsByMdtETAP,\n} from \"../mdtApi/getData\";\nimport { FilterType } from \"../types/filters\";\n\nexport const useItemData = () => {\n const [loading, setLoading] = useState(false);\n\n const loadData = async (filters: FilterType) => {\n setLoading(true);\n\n let reqData;\n if (filters.list === \"all\") {\n switch (filters.date_type) {\n case \"all\":\n reqData = await getAllItemInstanceData();\n break;\n case \"exact\":\n reqData = await getItemInstanceData(\n filters.exact_date,\n filters.exact_date\n );\n break;\n case \"range\":\n reqData = await getItemInstanceData(\n filters.start_date,\n filters.end_date\n );\n break;\n }\n } else {\n switch (filters.date_type) {\n case \"all\":\n reqData = await getItemsByList(filters.list.id);\n break;\n case \"exact\":\n reqData = await getItemsByList(\n filters.list.id,\n \"\",\n \"\",\n filters.exact_date,\n filters.exact_date\n );\n break;\n case \"range\":\n reqData = await getItemsByList(\n filters.list.id,\n \"\",\n \"\",\n filters.start_date,\n filters.end_date\n );\n break;\n }\n }\n\n setLoading(false);\n return reqData;\n };\n\n return { loadData, loading };\n};\n\nexport const useETAPItemData = () => {\n const [loading, setLoading] = useState(false);\n\n const loadData = async (filters: FilterType) => {\n setLoading(true);\n\n let reqData;\n if (filters.project === \"all\") {\n switch (filters.date_type) {\n case \"all\":\n // ETAP TO DO: Check this? get all itmes from only ETAP\n reqData = await getAllETAPItemInstanceData();\n // alert(reqData);\n break;\n case \"exact\":\n reqData = await getETAPItemInstanceData(\n filters.exact_date,\n filters.exact_date\n );\n // alert(reqData);\n break;\n case \"range\":\n reqData = await getETAPItemInstanceData(\n filters.start_date,\n filters.end_date\n );\n // alert(reqData);\n break;\n }\n } else {\n // ETAP TO DO: change gettiemsbylist to getitemsbyproject\n switch (filters.date_type) {\n case \"all\":\n reqData = await getItemsByMdtETAP(filters.project.id);\n break;\n case \"exact\":\n reqData = await getItemsByMdtETAP(\n filters.project.id,\n filters.exact_date,\n filters.exact_date\n );\n break;\n case \"range\":\n reqData = await getItemsByMdtETAP(\n filters.project.id,\n filters.start_date,\n filters.end_date\n );\n break;\n }\n }\n\n setLoading(false);\n return reqData;\n };\n\n return { loadData, loading };\n};\n","/**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\nfunction arrayEach(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n}\n\nmodule.exports = arrayEach;\n","var baseAssignValue = require('./_baseAssignValue'),\n eq = require('./eq');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nmodule.exports = assignValue;\n","var copyObject = require('./_copyObject'),\n keys = require('./keys');\n\n/**\n * The base implementation of `_.assign` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssign(object, source) {\n return object && copyObject(source, keys(source), object);\n}\n\nmodule.exports = baseAssign;\n","var copyObject = require('./_copyObject'),\n keysIn = require('./keysIn');\n\n/**\n * The base implementation of `_.assignIn` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssignIn(object, source) {\n return object && copyObject(source, keysIn(source), object);\n}\n\nmodule.exports = baseAssignIn;\n","var Stack = require('./_Stack'),\n arrayEach = require('./_arrayEach'),\n assignValue = require('./_assignValue'),\n baseAssign = require('./_baseAssign'),\n baseAssignIn = require('./_baseAssignIn'),\n cloneBuffer = require('./_cloneBuffer'),\n copyArray = require('./_copyArray'),\n copySymbols = require('./_copySymbols'),\n copySymbolsIn = require('./_copySymbolsIn'),\n getAllKeys = require('./_getAllKeys'),\n getAllKeysIn = require('./_getAllKeysIn'),\n getTag = require('./_getTag'),\n initCloneArray = require('./_initCloneArray'),\n initCloneByTag = require('./_initCloneByTag'),\n initCloneObject = require('./_initCloneObject'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isMap = require('./isMap'),\n isObject = require('./isObject'),\n isSet = require('./isSet'),\n keys = require('./keys'),\n keysIn = require('./keysIn');\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_FLAT_FLAG = 2,\n CLONE_SYMBOLS_FLAG = 4;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values supported by `_.clone`. */\nvar cloneableTags = {};\ncloneableTags[argsTag] = cloneableTags[arrayTag] =\ncloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =\ncloneableTags[boolTag] = cloneableTags[dateTag] =\ncloneableTags[float32Tag] = cloneableTags[float64Tag] =\ncloneableTags[int8Tag] = cloneableTags[int16Tag] =\ncloneableTags[int32Tag] = cloneableTags[mapTag] =\ncloneableTags[numberTag] = cloneableTags[objectTag] =\ncloneableTags[regexpTag] = cloneableTags[setTag] =\ncloneableTags[stringTag] = cloneableTags[symbolTag] =\ncloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\ncloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\ncloneableTags[errorTag] = cloneableTags[funcTag] =\ncloneableTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n * traversed objects.\n *\n * @private\n * @param {*} value The value to clone.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Deep clone\n * 2 - Flatten inherited properties\n * 4 - Clone symbols\n * @param {Function} [customizer] The function to customize cloning.\n * @param {string} [key] The key of `value`.\n * @param {Object} [object] The parent object of `value`.\n * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n * @returns {*} Returns the cloned value.\n */\nfunction baseClone(value, bitmask, customizer, key, object, stack) {\n var result,\n isDeep = bitmask & CLONE_DEEP_FLAG,\n isFlat = bitmask & CLONE_FLAT_FLAG,\n isFull = bitmask & CLONE_SYMBOLS_FLAG;\n\n if (customizer) {\n result = object ? customizer(value, key, object, stack) : customizer(value);\n }\n if (result !== undefined) {\n return result;\n }\n if (!isObject(value)) {\n return value;\n }\n var isArr = isArray(value);\n if (isArr) {\n result = initCloneArray(value);\n if (!isDeep) {\n return copyArray(value, result);\n }\n } else {\n var tag = getTag(value),\n isFunc = tag == funcTag || tag == genTag;\n\n if (isBuffer(value)) {\n return cloneBuffer(value, isDeep);\n }\n if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\n result = (isFlat || isFunc) ? {} : initCloneObject(value);\n if (!isDeep) {\n return isFlat\n ? copySymbolsIn(value, baseAssignIn(result, value))\n : copySymbols(value, baseAssign(result, value));\n }\n } else {\n if (!cloneableTags[tag]) {\n return object ? value : {};\n }\n result = initCloneByTag(value, tag, isDeep);\n }\n }\n // Check for circular references and return its corresponding clone.\n stack || (stack = new Stack);\n var stacked = stack.get(value);\n if (stacked) {\n return stacked;\n }\n stack.set(value, result);\n\n if (isSet(value)) {\n value.forEach(function(subValue) {\n result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack));\n });\n } else if (isMap(value)) {\n value.forEach(function(subValue, key) {\n result.set(key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n }\n\n var keysFunc = isFull\n ? (isFlat ? getAllKeysIn : getAllKeys)\n : (isFlat ? keysIn : keys);\n\n var props = isArr ? undefined : keysFunc(value);\n arrayEach(props || value, function(subValue, key) {\n if (props) {\n key = subValue;\n subValue = value[key];\n }\n // Recursively populate clone (susceptible to call stack limits).\n assignValue(result, key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n return result;\n}\n\nmodule.exports = baseClone;\n","var isObject = require('./isObject');\n\n/** Built-in value references. */\nvar objectCreate = Object.create;\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nvar baseCreate = (function() {\n function object() {}\n return function(proto) {\n if (!isObject(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object;\n object.prototype = undefined;\n return result;\n };\n}());\n\nmodule.exports = baseCreate;\n","var getTag = require('./_getTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]';\n\n/**\n * The base implementation of `_.isMap` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n */\nfunction baseIsMap(value) {\n return isObjectLike(value) && getTag(value) == mapTag;\n}\n\nmodule.exports = baseIsMap;\n","var getTag = require('./_getTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar setTag = '[object Set]';\n\n/**\n * The base implementation of `_.isSet` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n */\nfunction baseIsSet(value) {\n return isObjectLike(value) && getTag(value) == setTag;\n}\n\nmodule.exports = baseIsSet;\n","var isObject = require('./isObject'),\n isPrototype = require('./_isPrototype'),\n nativeKeysIn = require('./_nativeKeysIn');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeysIn;\n","var Uint8Array = require('./_Uint8Array');\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n}\n\nmodule.exports = cloneArrayBuffer;\n","var root = require('./_root');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined;\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n buffer.copy(result);\n return result;\n}\n\nmodule.exports = cloneBuffer;\n","var cloneArrayBuffer = require('./_cloneArrayBuffer');\n\n/**\n * Creates a clone of `dataView`.\n *\n * @private\n * @param {Object} dataView The data view to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned data view.\n */\nfunction cloneDataView(dataView, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n}\n\nmodule.exports = cloneDataView;\n","/** Used to match `RegExp` flags from their coerced string values. */\nvar reFlags = /\\w*$/;\n\n/**\n * Creates a clone of `regexp`.\n *\n * @private\n * @param {Object} regexp The regexp to clone.\n * @returns {Object} Returns the cloned regexp.\n */\nfunction cloneRegExp(regexp) {\n var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n result.lastIndex = regexp.lastIndex;\n return result;\n}\n\nmodule.exports = cloneRegExp;\n","var Symbol = require('./_Symbol');\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * Creates a clone of the `symbol` object.\n *\n * @private\n * @param {Object} symbol The symbol object to clone.\n * @returns {Object} Returns the cloned symbol object.\n */\nfunction cloneSymbol(symbol) {\n return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n}\n\nmodule.exports = cloneSymbol;\n","var cloneArrayBuffer = require('./_cloneArrayBuffer');\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\nmodule.exports = cloneTypedArray;\n","/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\nmodule.exports = copyArray;\n","var assignValue = require('./_assignValue'),\n baseAssignValue = require('./_baseAssignValue');\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n}\n\nmodule.exports = copyObject;\n","var copyObject = require('./_copyObject'),\n getSymbols = require('./_getSymbols');\n\n/**\n * Copies own symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbols(source, object) {\n return copyObject(source, getSymbols(source), object);\n}\n\nmodule.exports = copySymbols;\n","var copyObject = require('./_copyObject'),\n getSymbolsIn = require('./_getSymbolsIn');\n\n/**\n * Copies own and inherited symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbolsIn(source, object) {\n return copyObject(source, getSymbolsIn(source), object);\n}\n\nmodule.exports = copySymbolsIn;\n","var baseGetAllKeys = require('./_baseGetAllKeys'),\n getSymbolsIn = require('./_getSymbolsIn'),\n keysIn = require('./keysIn');\n\n/**\n * Creates an array of own and inherited enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeysIn(object) {\n return baseGetAllKeys(object, keysIn, getSymbolsIn);\n}\n\nmodule.exports = getAllKeysIn;\n","var overArg = require('./_overArg');\n\n/** Built-in value references. */\nvar getPrototype = overArg(Object.getPrototypeOf, Object);\n\nmodule.exports = getPrototype;\n","var arrayPush = require('./_arrayPush'),\n getPrototype = require('./_getPrototype'),\n getSymbols = require('./_getSymbols'),\n stubArray = require('./stubArray');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own and inherited enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) {\n var result = [];\n while (object) {\n arrayPush(result, getSymbols(object));\n object = getPrototype(object);\n }\n return result;\n};\n\nmodule.exports = getSymbolsIn;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Initializes an array clone.\n *\n * @private\n * @param {Array} array The array to clone.\n * @returns {Array} Returns the initialized clone.\n */\nfunction initCloneArray(array) {\n var length = array.length,\n result = new array.constructor(length);\n\n // Add properties assigned by `RegExp#exec`.\n if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n result.index = array.index;\n result.input = array.input;\n }\n return result;\n}\n\nmodule.exports = initCloneArray;\n","var cloneArrayBuffer = require('./_cloneArrayBuffer'),\n cloneDataView = require('./_cloneDataView'),\n cloneRegExp = require('./_cloneRegExp'),\n cloneSymbol = require('./_cloneSymbol'),\n cloneTypedArray = require('./_cloneTypedArray');\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Initializes an object clone based on its `toStringTag`.\n *\n * **Note:** This function only supports cloning values with tags of\n * `Boolean`, `Date`, `Error`, `Map`, `Number`, `RegExp`, `Set`, or `String`.\n *\n * @private\n * @param {Object} object The object to clone.\n * @param {string} tag The `toStringTag` of the object to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneByTag(object, tag, isDeep) {\n var Ctor = object.constructor;\n switch (tag) {\n case arrayBufferTag:\n return cloneArrayBuffer(object);\n\n case boolTag:\n case dateTag:\n return new Ctor(+object);\n\n case dataViewTag:\n return cloneDataView(object, isDeep);\n\n case float32Tag: case float64Tag:\n case int8Tag: case int16Tag: case int32Tag:\n case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:\n return cloneTypedArray(object, isDeep);\n\n case mapTag:\n return new Ctor;\n\n case numberTag:\n case stringTag:\n return new Ctor(object);\n\n case regexpTag:\n return cloneRegExp(object);\n\n case setTag:\n return new Ctor;\n\n case symbolTag:\n return cloneSymbol(object);\n }\n}\n\nmodule.exports = initCloneByTag;\n","var baseCreate = require('./_baseCreate'),\n getPrototype = require('./_getPrototype'),\n isPrototype = require('./_isPrototype');\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n}\n\nmodule.exports = initCloneObject;\n","/**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = nativeKeysIn;\n","var baseClone = require('./_baseClone');\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_SYMBOLS_FLAG = 4;\n\n/**\n * This method is like `_.clone` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @returns {*} Returns the deep cloned value.\n * @see _.clone\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var deep = _.cloneDeep(objects);\n * console.log(deep[0] === objects[0]);\n * // => false\n */\nfunction cloneDeep(value) {\n return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG);\n}\n\nmodule.exports = cloneDeep;\n","var baseIsMap = require('./_baseIsMap'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsMap = nodeUtil && nodeUtil.isMap;\n\n/**\n * Checks if `value` is classified as a `Map` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n * @example\n *\n * _.isMap(new Map);\n * // => true\n *\n * _.isMap(new WeakMap);\n * // => false\n */\nvar isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap;\n\nmodule.exports = isMap;\n","var baseIsSet = require('./_baseIsSet'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsSet = nodeUtil && nodeUtil.isSet;\n\n/**\n * Checks if `value` is classified as a `Set` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n * @example\n *\n * _.isSet(new Set);\n * // => true\n *\n * _.isSet(new WeakSet);\n * // => false\n */\nvar isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet;\n\nmodule.exports = isSet;\n","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeysIn = require('./_baseKeysIn'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n}\n\nmodule.exports = keysIn;\n"],"names":["FormGroup","props","ref","classes","className","_props$row","row","other","root","withStyles","display","flexDirection","flexWrap","name","actions","children","nameProp","valueProp","value","onChange","rootRef","_useControlled","useControlled","controlled","default","defaultValue","_useControlled2","setValue","focus","input","current","querySelector","handleRef","useForkRef","RadioGroupContext","Provider","event","target","role","localTheme","theme","outerTheme","output","mergeOuterLocalTheme","geom","properties","options","feat","type","id","bbox","geometry","featureCollection","features","fc","multiPoint","coordinates","booleanPointInPolygon","point","polygon","Error","geojson","pt","coord","Array","isArray","length","getCoord","polys","inBBox","insidePoly","i","inRing","ignoreBoundary","inHole","k","ring","isInside","slice","j","xi","yi","xj","yj","coordEach","callback","excludeWrapCoord","l","stopG","coords","geometryMaybeCollection","isGeometryCollection","wrapShrink","coordIndex","isFeatureCollection","isFeature","stop","featureIndex","geometries","geomIndex","multiFeatureIndex","geometryIndex","geomType","featureEach","geomEach","g","featureProperties","featureBBox","featureId","undefined","points","polygons","results","contained","push","pointsWithin","pointCoord","t","e","window","document","L","drawVersion","Draw","drawLocal","draw","toolbar","title","text","finish","undo","buttons","polyline","rectangle","circle","marker","circlemarker","handlers","tooltip","start","radius","cont","end","error","simpleshape","edit","save","cancel","clearAll","editDisabled","remove","removeDisabled","subtext","Event","CREATED","EDITED","DELETED","DRAWSTART","DRAWSTOP","DRAWVERTEX","EDITSTART","EDITMOVE","EDITRESIZE","EDITVERTEX","EDITSTOP","DELETESTART","DELETESTOP","TOOLBAROPENED","TOOLBARCLOSED","MARKERCONTEXT","Feature","Handler","extend","initialize","this","_map","_container","_overlayPane","_panes","overlayPane","_popupPane","popupPane","shapeOptions","Util","setOptions","version","split","parseInt","include","Evented","prototype","Mixin","Events","enable","_enabled","call","fire","handler","layerType","disable","addHooks","DomUtil","disableTextSelection","getContainer","_tooltip","Tooltip","DomEvent","on","_cancelDrawing","removeHooks","enableTextSelection","dispose","off","_fireCreatedEvent","layer","keyCode","Polyline","statics","TYPE","Poly","allowIntersection","repeatMode","drawError","color","timeout","icon","DivIcon","iconSize","Point","touchIcon","guidelineDistance","maxGuideLineLength","stroke","weight","opacity","fill","clickable","metric","feet","nautic","showLength","zIndexOffset","factor","maxPoints","Browser","touch","message","_markers","_markerGroup","LayerGroup","addLayer","_poly","updateContent","_getTooltipText","_mouseMarker","getCenter","divIcon","iconAnchor","_onMouseOut","_onMouseMove","_onMouseDown","_onMouseUp","addTo","_onZoomEnd","_onTouch","_clearHideErrorTimeout","_cleanUpShape","removeLayer","_clearGuides","deleteLastVertex","pop","getLatLngs","o","splice","setLatLngs","_vertexChanged","addVertex","newLatLngIntersects","_showErrorTooltip","_errorShown","_hideErrorTooltip","_createMarker","addLatLng","completeShape","_shapeIsValid","_finishShape","_defaultShape","_updateGuide","mouseEventToLayerPoint","originalEvent","layerPointToLatLng","_currentLatLng","_updateTooltip","setLatLng","preventDefault","layers","_updateFinishHandler","_updateRunningMeasure","_clickHandled","_touchHandled","_disableMarkers","_disableNewMarkers","clientX","clientY","_startPoint","_mouseDownOrigin","_endPoint","a","distanceTo","n","_calculateFinishDistance","latlng","Math","abs","devicePixelRatio","_enableNewMarkers","touches","Polygon","latLngToContainerPoint","getLatLng","Marker","latLngToLayerPoint","_drawGuide","updatePosition","floor","sqrt","pow","x","y","s","r","_guidesContainer","create","style","backgroundColor","setPosition","_updateGuideColor","childNodes","firstChild","removeChild","_getMeasurementString","_measurementRunningTotal","GeometryUtil","isVersion07x","distance","readableDistance","precision","showAsError","setStyle","_hideErrorTimeout","setTimeout","bind","removeError","clearTimeout","showArea","fillColor","fillOpacity","_area","readableArea","geodesicArea","SimpleShape","_endLabelText","_mapDraggable","dragging","enabled","cursor","_initialLabelText","addEventListener","passive","removeEventListener","_shape","_isDrawing","_startLatLng","_drawShape","Rectangle","_isCurrentlyTwoClickDrawing","parentElement","classList","contains","setBounds","LatLngBounds","getBounds","Icon","Default","_onClick","_marker","Touch","CircleMarker","Circle","showRadius","setRadius","getRadius","toFixed","Edit","_onDragEnd","_toggleMarkerHighlight","edited","_icon","hasClass","removeClass","_offsetMarker","addClass","marginTop","marginLeft","addInitHook","editing","editable","latlngs","_latlngs","_holes","concat","_updateLatLngs","_flat","_eachVertexHandler","_verticesHandlers","_initHandlers","updateMarkers","PolyVerticesEdit","poly","_path","original","forEach","_initMarkers","clearLayers","_onMarkerClick","_onContextMenu","_createMiddleMarker","_updatePrevNext","draggable","_origLatLng","_index","_onMarkerDragStart","_onMarkerDrag","_fireEdit","_onTouchMove","_spliceLatLngs","apply","arguments","_convertLatLngs","redraw","_removeMarker","_updateIndexes","LatLngUtil","cloneLatLng","_latlng","_editTooltip","intersects","_middleLeft","_getMiddleLatLng","_prev","_middleRight","_next","_bounds","_southWest","latLng","_northEast","stopPropagation","eachLayer","setOpacity","lat","lng","project","unproject","_add","_divideBy","moveIcon","resizeIcon","touchMoveIcon","touchResizeIcon","_unbindMarker","_moveMarker","_resizeMarkers","_createMoveMarker","_createResizeMarker","_bindMarker","_onMarkerDragEnd","_onTouchStart","_onTouchEnd","_move","_resize","_getCorners","_cornerIndex","_oppositeCorner","_toggleCornerMarkers","_repositionCornerMarkers","latLngBounds","getNorthWest","getNorthEast","getSouthEast","getSouthWest","_getResizeMarkerPoint","_radius","cos","PI","editTooltip","Map","mergeOptions","touchExtend","TouchExtend","_pane","_detectIE","_onTouchCancel","_onTouchLeave","_touchEvent","pointerType","_filterClick","mouseEventToContainerPoint","layerPoint","containerPoint","pageX","pageY","timeStamp","_lastClick","_simulatedClick","_simulated","_loaded","navigator","userAgent","indexOf","substring","_initInteraction","addInteractiveTarget","_initInteractionLegacy","_onMouseClick","_onKeyPress","_fireMouseEvent","MarkerDrag","cloneLatLngs","km","ha","m","mi","ac","yd","ft","nm","sin","formattedNumber","parseFloat","format","numeric","delimiters","thousands","decimal","replace","LineUtil","segmentsIntersect","_checkCounterclockwise","_getProjectedPoints","_tooFewPointsForIntersection","_lineSegmentsIntersectsRange","newPointIntersects","_originalPoints","Control","position","_toolbars","DrawToolbar","_toolbarEnabled","EditToolbar","onAdd","hasOwnProperty","addToolbar","appendChild","onRemove","removeToolbar","setDrawingOptions","drawControlTooltips","drawControl","addControl","Toolbar","Class","_modes","_actionButtons","_activeMode","_toolbarClass","getModeHandlers","_toolbarContainer","_initModeHandler","_lastButtonIndex","_actionsContainer","_disposeButton","button","_handlerActivated","_handlerDeactivated","_createButton","container","context","buttonIndex","_detectIOS","test","MSStream","href","innerHTML","_showActionsToolbar","_hideActionsToolbar","_createActions","getActions","offsetTop","top","_visible","_singleLineLabel","visibility","selectedPathOptions","dashArray","maintainColor","featureGroup","_selectedFeatureCount","Delete","_save","removeAllLayers","_clearAllLayers","_checkDisabled","revertLayers","getLayers","setAttribute","_featureGroup","FeatureGroup","_uneditedLayerProps","_hasAvailableLayers","_enableLayerEdit","_disableLayerEdit","_revertLayer","_backupLayer","stamp","_selectedPathOptions","previousOptions","changedTouches","_deletableLayers","_enableLayerDelete","_disableLayerDelete","_deletedLayers","_removeLayer","_typeof","obj","Symbol","iterator","constructor","exports","Loader","_react","__esModule","cache","_getRequireWildcardCache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","desc","set","_interopRequireWildcard","_propTypes","_loader","WeakMap","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","enumerable","_defineProperty","configurable","writable","_slicedToArray","arr","_arrayWithHoles","_arr","_n","_d","_e","_s","_i","next","done","err","_iterableToArrayLimit","minLen","_arrayLikeToArray","toString","from","_unsupportedIterableToArray","TypeError","_nonIterableRest","len","arr2","componentNames","_useState2","useState","setDisplay","useEffect","timer","visible","createElement","includes","Spinner","Audio","componentName","source","getOwnPropertyDescriptors","defineProperties","_objectSpread","propTypes","oneOf","objectOf","string","oneOfType","bool","number","defaultProps","_interopRequireDefault","height","width","viewBox","xmlns","label","transform","rx","attributeName","begin","dur","values","calcMode","repeatCount","BallTriangle","fillRule","strokeWidth","cx","cy","to","Bars","Circles","d","CradleLoader","Grid","Hearts","MutatingDots","stdDeviation","result","mode","in2","operator","attributeType","keyTimes","keySplines","secondaryColor","Oval","strokeOpacity","Plane","strokeLinecap","strokeLinejoin","strokeDasharray","strokeDashoffset","Puff","RevolvingDot","Rings","TailSpin","x1","y1","x2","y2","stopColor","stopOpacity","offset","ThreeDots","Triangle","Watch","enableBackground","xmlSpace","strokeMiterlimit","_Circles","_Watch","_Audio","_BallTriangle","_Bars","_CradleLoader","_Grid","_Hearts","_MutatingDots","_Oval","_Plane","_Puff","_RevolvingDot","_Rings","_TailSpin","_ThreeDots","_Triangle","_ref","data","chartConfig","chart","plotBackgroundColor","plotBorderWidth","plotShadow","animation","pointFormat","accessibility","valueSuffix","credits","plotOptions","pie","allowPointSelect","dataLabels","showInLegend","series","colorByPoint","map","pieData","React","PieChartWrapper","HighchartsReact","highcharts","Highcharts","FiltersContainer","styled","div","withConfig","displayName","componentId","ETAPFiltersContainer","FiltersWrapper","FiltersTitle","StyledTitle","colors","white","sortKD","ids","nodeSize","left","right","depth","inc","z","log","exp","sd","max","min","swapItem","swap","tmp","sqDist","ax","ay","bx","by","dx","dy","defaultGetX","p","defaultGetY","KDBush","getX","getY","ArrayType","Float64Array","IndexArrayType","Uint16Array","Uint32Array","range","minX","minY","maxX","maxY","stack","axis","nextAxis","within","qx","qy","r2","defaultOptions","minZoom","maxZoom","minPoints","extent","generateId","reduce","fround","Float32Array","Supercluster","trees","load","console","time","timerId","clusters","createPointCluster","timeEnd","now","Date","_cluster","getClusters","zoom","minLng","minLat","maxLng","maxLat","easternHem","westernHem","tree","_limitZoom","lngX","latY","c","numPoints","getClusterJSON","index","getChildren","clusterId","originId","_getOriginId","originZoom","_getOriginZoom","errorMsg","origin","parentId","getLeaves","limit","leaves","_appendLeaves","getTile","z2","bottom","tile","_addTileFeatures","getClusterExpansionZoom","expansionZoom","cluster_id","skipped","child","cluster","point_count","isCluster","tags","px","py","getClusterProperties","f","round","neighborIds","numPointsOrigin","neighborId","b","wx","wy","clusterProperties","numPoints2","createCluster","clone","Infinity","yLat","count","abbrev","point_count_abbreviated","atan","dest","src","MapContainer","MapDiv","MapSpinnerLoader","MapSpinnerTitle","h1","orange","MapSpinner","ManualEventMarker","feature","csvContent","JSONtoCSV","items","event_name","quantity","encodeURI","download","interactive","loading","filters","setFilterPolygon","require","isBrowser","setIsBrowser","BASEMAP","useRef","mapDivRef","drawnItems","createMap","async","createClusterCustomIcon","circleMarker","bindPopup","popup","getPopup","itemData","getItem","item","setContent","itemname","charAt","dayjs","timestamp","update","iconSettings","mapIconUrl","mapIconColor","mapIconStroke","mapIconColorInnerCircle","mapText","pinInnerCircleRadius","html","template","popupAnchor","markers","bounds","getWest","getSouth","getEast","getNorth","getZoom","addData","_url","zoomControl","l_map","setView","tileLayer","maxNativeZoom","attribution","noWrap","drawnItemsLayer","drawOptions","filteredGeojson","list","date_type","getEvents","geojsonToLoad","loadDataAndCreateIndex","geoJSON","pointToLayer","centerMapOnCluster","center","flyTo","fitBounds","touchZoom","doubleClickZoom","scrollWheelZoom","boxZoom","keyboard","tap","getElementById","createManualEventMarker","fontAwesomeIcon","ReactDOMServer","ManualEventPopup","myTag","showManual","manualData","getManualEvents","aggregateManualEvents","onEachFeature","createSvgIcon","transition","transitions","easing","easeOut","duration","shortest","easeIn","checked","fontSize","RadioButtonUnchecked","RadioButtonChecked","defaultCheckedIcon","defaultIcon","Radio","checkedProp","_props$color","onChangeProp","_props$size","size","radioGroup","createChainedFunction","SwitchBase","checkedIcon","capitalize","disabled","palette","secondary","colorPrimary","primary","main","action","hoverOpacity","colorSecondary","DebrisTrackerRadio","customTheme","createMuiTheme","ThemeProvider","DropdownToggle","_ref2","DropdownLabel","_ref3","_ref4","_ref5","anchorEl","setAnchorEl","onClick","currentTarget","FontAwesomeIcon","faSortDown","Menu","open","Boolean","onClose","PaperProps","maxHeight","anchorOrigin","vertical","horizontal","transformOrigin","getContentAnchorEl","datum","MenuItem","val","dataset","getItemData","page_no","page_size","user","res","fetch","apiUrl","headers","json","getAllETAPItemInstanceData","allItems","content","page","pageCount","params","detail","paramsString","URLSearchParams","url","devAPI","response","JSON","stringify","asyncGetAllETAPItems","getAllItemInstanceData","asyncGetAllItems","getItemInstanceData","processedResponses","num_pages","ceil","total_records","promises","Promise","all","_toConsumableArray","getETAPItemInstanceData","getETAPItemData","totalRecords","getItemsByList","list_id","password","default_page_size","user_id","list_items","_list_items","getItemsByMdtETAP","project_id","getItemTypes","new_data","geojsonToPie","flatData","aggregatedMaterials","_groupBy","master_material","material_name","material","geojsonToBar","aggregatedItemNames","prev","curr","sort","geojsonToDegradedMaterialBar","counts","degraded","total","geojsonToDegradedBar","degradedCount","geojsonToBarETAP","etap_2_name","geojsonToMaterialBarETAP","parent_index","etap_1_index","material_index","geojsonToSelect","computePieDonutData","etap2","etap1Counts","etap2Counts","etap1Names","trimmedData","parent_name","etap_1_name","etapTwo","etapOne","finishedData","computePieDonutData2","etap1","localeCompare","parent","childrenData","checkChildren","checkChildrenData","drilldown","categories","geojsonToPieDonut","convertToGeoJSON","geoJSON_object","longitude","latitude","filtered_data","manual_upload","applyFilters","filterMaterials","checkboxes","box","user_data","user_index","aggregated_features","log_index","events","master_item","spread_items","v","allOrgSections","setAllOrgSections","setLoading","globalMaterials","getGlobalMaterials","useItemData","loadData","reqData","exact_date","start_date","end_date","useETAPItemData","module","array","iteratee","baseAssignValue","eq","objValue","copyObject","keysIn","Stack","arrayEach","assignValue","baseAssign","baseAssignIn","cloneBuffer","copyArray","copySymbols","copySymbolsIn","getAllKeys","getAllKeysIn","getTag","initCloneArray","initCloneByTag","initCloneObject","isBuffer","isMap","isObject","isSet","argsTag","funcTag","objectTag","cloneableTags","baseClone","bitmask","customizer","isDeep","isFlat","isFull","isArr","tag","isFunc","stacked","subValue","add","objectCreate","baseCreate","proto","isObjectLike","isPrototype","nativeKeysIn","isProto","Uint8Array","arrayBuffer","byteLength","freeExports","nodeType","freeModule","Buffer","allocUnsafe","buffer","copy","cloneArrayBuffer","dataView","byteOffset","reFlags","regexp","exec","lastIndex","symbolProto","symbolValueOf","valueOf","symbol","typedArray","isNew","newValue","getSymbols","getSymbolsIn","baseGetAllKeys","getPrototype","overArg","getPrototypeOf","arrayPush","stubArray","cloneDataView","cloneRegExp","cloneSymbol","cloneTypedArray","Ctor","CLONE_DEEP_FLAG","baseIsMap","baseUnary","nodeUtil","nodeIsMap","baseIsSet","nodeIsSet","arrayLikeKeys","baseKeysIn","isArrayLike"],"sourceRoot":""}