{"version":3,"file":"components/chunks/legacy.2e18421635ddd6a9ab96.js","mappings":"qFAGA,SAAWA,EAAGC,GACZA,EAAIC,OAAOC,cAAcC,UAAS,WAChC,IAKEC,EAAwB,SAA+BC,GACrD,IANiDC,EAM7CC,GALID,GAAOE,SAASC,SAASC,QAAQC,QAAQ,QAAS,IAAIC,MAAM,KAAKC,IAAI,SAAUC,GACrF,OAAyBC,MAAlBD,EAAIA,EAAEF,MAAM,MAAa,IAAME,EAAE,GAAIC,IAC9C,EAAEC,KAAK,CAAC,IAAI,GAIZ,IAAK,IAAIC,KAAMZ,EAAQ,CACrB,IAAIa,EAA4B,iBAAfb,EAAOY,GAAmBE,KAAKC,MAAMf,EAAOY,IAAOZ,EAAOY,GAC3E,IAAK,IAAII,KAAOH,EAAK,CACnB,IAAII,EAAQJ,EAAIG,GAChB,GAAqB,iBAAVC,EACT,IAAK,IAAIC,KAAShB,EAChBW,EAAIG,GAAOC,EAAMX,QAAQ,IAAMY,EAAQ,IAAKhB,EAAYgB,GAG9D,CACAlB,EAAOY,GAAME,KAAKK,UAAUN,EAC9B,CACA,OAAOb,CACT,EAsEFL,EAAIyB,WAAWC,kBAAkBxB,cAAcC,SAAS,sBAxCjC,SAA4BwB,EAAMC,GAErD,IAAIvB,EAZO,SAAoBwB,GAG/B,IAFA,IAAIC,EAASC,mBAAmBF,GAAQ,IACpCG,EAAKxB,SAASH,OAAOO,MAAM,KACtBqB,EAAI,EAAGA,EAAID,EAAGE,OAAQD,IAAK,CAElC,IADA,IAAIE,EAAIH,EAAGC,GACY,MAAhBE,EAAEC,OAAO,IAAYD,EAAIA,EAAEE,UAAU,EAAGF,EAAED,QACjD,GAA0B,IAAtBC,EAAEG,QAAQR,GAAe,OAAOS,mBAAmBJ,EAAEE,UAAUP,EAAOI,OAAQC,EAAED,QACtF,CACA,OAAO,IACT,CAGeM,CAAW,sBACtBC,EAAepC,EAASc,KAAKC,MAAMf,GAAU,CAAC,EAChDoC,EAAad,EAAKe,mBAAqBf,EAAKgB,gBAAkB,GAC9DF,EAAerC,EAAsBqC,GA1BxB,SAAsBZ,EAAMP,EAAOsB,GAChD,IAAIC,EACJ,GAAID,EAAM,CACR,IAAIE,EAAO,IAAIC,KACfD,EAAKE,QAAQF,EAAKG,UAAmB,GAAPL,EAAY,GAAK,GAAK,KACpDC,EAAU,aAAeC,EAAKI,aAChC,MACEL,EAAU,GAEZrC,SAASH,OAAS0B,mBAAmBF,GAAQ,IAAME,mBAAmBT,GAASuB,EAAU,UAC3F,CAiBEM,CAAa,qBAAsBhC,KAAKK,UAAUiB,IAnC9B,SAA6Bb,EAAOwB,GACxD,IAAK,IAAInC,KAAMmC,EAAQ,CACrB,IAAIlC,EAA4B,iBAAfkC,EAAOnC,GAAmBE,KAAKC,MAAMgC,EAAOnC,IAAOmC,EAAOnC,GAC3E,IAAK,IAAII,KAAOH,EACdU,EAAMyB,KAAK,QAAUhC,EAAKH,EAAIG,GAElC,CACF,CA6BEiC,CAAoB1B,EAAOa,GAG3B,IAAIc,EAAY,GAehB,OAdI3B,EAAM4B,SAAS,UACjBD,EAAUE,KAAK1D,EAAE,8FAEb4B,EAAK+B,eAAe,QACtB/B,EAAKgC,IAAIC,SAAQ,SAAUC,GACzBN,EAAUE,KAAK1D,EAAE,gDAAkD8D,EAAMC,IAAIA,IAAM,QACrF,IAEEnC,EAAK+B,eAAe,OACtB/B,EAAKoC,GAAGH,SAAQ,SAAUC,GACxBN,EAAUE,KAAK1D,EAAE,gBAAkB8D,EAAMC,IAAIA,IAAM,uCACrD,KAGG,CACLE,cAAejE,EAAE,qBAAsB6B,GACvCqC,SAAU,CACRC,QAAS,CACPC,WAAY,CAAC,CACXlD,GAA8C,GAA1CU,EAAKyC,qBAAqB9B,QAAQ,KAAYX,EAAKyC,qBAAqBC,OAAO,GAAK,KACxFC,UAAqD,GAA1C3C,EAAKyC,qBAAqB9B,QAAQ,KAAYX,EAAKyC,qBAAqBC,OAAO,GAAK,MAC9F,CACDC,UAAW,YACXC,WAAYhB,MAKtB,IACgG,SAAU3B,EAAOD,GACjH3B,EAAIwE,QAAQtE,cAAcC,UAAS,WAEjCJ,EAAE,+DAA+D0E,MAAK,WACpE,IACEC,EAD0B3E,EAAE,qBAAsBA,EAAEgB,OAAO4D,aACrB,KACxC5E,EAAE,uCAAuC4D,IAAI,YAAa,SAAWe,EAAc,KACnF3E,EAAE,uCAAuC6E,YAAY,IAAMF,EAC7D,GAEF,GACF,GACF,GACD,CAzGD,CAyGGG,OAAQC,OAAO9E,I,oBC5GlB,SAAWD,GACT,aAEA+E,OAAO9E,IAAIC,OAAOC,cAAcC,UAAS,WACvC,IAAI4E,EAAehF,EAAE,oIAGrBA,EAAE,yCAAyC,WACzC,IAAIiF,EAAQjF,EAAEgB,WAEK,IADXhB,EAAE,KAAMiF,IAEdjF,EAAEgB,MAAMkE,OAAO,kBAEnB,IAGAF,EAAaN,MAAK,WAChB,IAEES,EAFEC,EAAWpF,EAAEgB,MACfqE,EAAqB,EAEvBrF,EAAE,KAAMoF,GAAUV,MAAK,WACrB,IAAIY,EAAMtF,EAAEgB,MAEVuE,EADKvF,EAAE,IAAKsF,GACFhC,KAAK,QAC6B,GAA1CyB,OAAOrE,SAAS8E,SAASjD,QAAQgD,IAC/BA,EAAKpD,OAASkD,IAChBA,EAAqBE,EAAKpD,OAC1BgD,EAAkBG,EAGxB,IAAGG,UAAUC,MAAK,gBAEe,IAApBP,GACTA,EAAgBQ,SAAS,SAE7B,GACF,IAGA3F,EAAE,4CAA4C0E,MAAK,WACjD,IAAIkB,EAAM5F,EAAEgB,MACV6E,GAAa,EACf7F,EAAE,mGAAwG0E,MAAK,WAC7G,IAAIa,EAAOvF,EAAEgB,MAAMsC,KAAK,QACsB,GAA1CyB,OAAOrE,SAAS8E,SAASjD,QAAQgD,KACnCK,EAAIE,KAAK9F,EAAEgB,MAAM8E,QACjBD,GAAa,EAEjB,IACID,EAAIG,QAAQ,gCAAgCtC,SAAS,gBACvDoC,GAAa,GAEVA,GACHD,EAAIE,KAAKrF,SAASuF,MAEtB,IAGAhG,EAAE,mDAAmD0E,MAAK,WACxD,IAAIkB,EAAM5F,EAAEgB,MACViF,EAAUjG,EAAE,iBAAkBA,EAAEgB,MAAMkF,UACxCN,EAAIE,KAAKG,EAAQH,OACnB,IAGAd,EAAaN,MAAK,WAChB,IAAIO,EAAQjF,EAAEgB,MACZmF,EAAMnG,EAAE,KAAMiF,GACdK,EAAMtF,EAAE,KAAMmG,GACTnG,EAAE,IAAKsF,GACXc,GAAG,SAAS,SAAUC,GACvBA,EAAEC,iBACJ,IACAhB,EAAIc,GAAG,SAAS,SAAUC,GACxB,IAAIE,EAAKvG,EAAE,IAAKA,EAAEgB,OACdwF,EAAeC,OAAOxB,IACa,MAAjCsB,EAAGjD,KAAK,QAAQgB,OAAO,EAAG,IAC5BkC,EAAeE,QAAQzB,GAG3BF,OAAOrE,SAAS6E,KAAOgB,EAAGjD,KAAK,OACjC,GACF,IAGA,IACMqD,EAcAC,EAKAC,EAGAC,EAGAL,EA1BFD,GACEG,EAAc,mBAcdC,EAA4B,SAAmCG,EAAUZ,EAAKP,GAChF,GAAIkB,EAASC,GACX,OAV+DC,EAU9BD,EAV8CE,EAUpCd,EATzCe,EAS8CtB,EATLf,eAAiB,EACvD,WACLmC,EAAepD,IAAI,SAAUuD,SAASF,EAAerD,IAAI,UAAW,IAAMsD,EAC5E,EAJ8B,IAAmCF,EAAgBC,EAC7EC,CAWN,EAUS,CACPL,WAVEA,EAAa,SAAoBE,GACnC,OAAOA,EAAStD,SAASkD,EAC3B,EASEG,SAREA,EAAW,SAAkBC,GAC/B,OAAOA,EAAStD,SAAS,SAC3B,EAOEgD,OANEA,EAAS,SAAgBM,GAC3B,OAAOA,EAAStD,SAAS,OAC3B,EAKE2D,aAAc,SAAsBL,GAClCA,EAASnD,IAAI,SAAU,IACvB5D,EAAE,qBAAsB+G,GAAUnD,IAAI,MAAO,IAC7CmD,EAASM,YAAY,SACvB,EACAC,UAAW,SAAmBP,EAAUQ,GACtCR,EAASpB,SAAS,UAElB3F,EAAE,qBAAsB+G,GAAUnD,IAAI,MAAO2D,EAC/C,EAEAC,qBAAsB,SAA8BT,GAalD,OAXKN,EAAOM,IAGNF,EAAWE,GAEIA,EAASlC,cAJXkC,EAASU,KAAK,sBAAsB5C,aAWzD,EAEA6C,wBAAyB,SAAiCX,GAQxD,OANKN,EAAOM,GAIOA,EAASU,KAAK,2BAA2B5C,cAHzCkC,EAASU,KAAK,sBAAsB5C,aAMzD,EAEA8C,oBAAqB,SAA6BZ,GAChD,IAAIa,EAAiB,EAChBnB,EAAOM,IAKRa,EAFEf,EAAWE,GAEIA,EAASU,KAAK,sBAAsB5C,cAGpCkC,EAASU,KAAK,2BAA2B5C,cAE5DkC,EAASnD,IAAI,SAAUgE,IATvBb,EAASnD,IAAI,SAAU,GAW3B,EACA8C,QAAS,SAAiBK,GACxB,IAAIZ,EAAMnG,EAAE,KAAM+G,GAChBnB,EAAM5F,EAAE,0BAA2B+G,GAOjCc,EAAiB,CACnB,SA9FU,IA+FV,SAAYjB,EAA0BG,EAAUZ,EAAKP,GACrD,SATqB,WAGrBO,EAAIvC,IAAI,UAAW,IACnBmD,EAASM,YAAYV,EACvB,GAMAR,EAAIO,QAAQmB,EACd,EACAC,UAAW,SAAmBf,GAC5B,IAAIZ,EAAMnG,EAAE,KAAM+G,GAChBnB,EAAM5F,EAAE,0BAA2B+G,GAKjCgB,EAAmB,CACrB,SA5GU,IA6GV,SAAYnB,EAA0BG,EAAUZ,EAAKP,GACrD,SAPqB,WACrBmB,EAASpB,SAASgB,GAClBI,EAASM,YAAY,uBACvB,GAMAN,EAASpB,SAAS,wBAClBQ,EAAI2B,UAAUC,EAChB,KAQJ,SAAWvB,GACT,IAsCIwB,EAtCAC,EAAyB,SAAgCC,GAE3DlI,EAAE,4FAAiG0E,MAAK,WACtG,IAAIO,EAAQjF,EAAEgB,MACZmH,EAASlD,EAAMkD,SACfC,OAA8B,IAAXD,EAAyBA,EAAOE,IAAM,EACzDC,EAAYrD,EAAMrD,KAAK,cACvB2G,EAAoBtD,EAAMrD,KAAK,uBAC/B2F,EAAuBtC,EAAMrD,KAAK,0BAChCwG,GAAa,QAA0B,IAAdE,SAGJ,IAAdA,IACTrD,EAAMrD,KAAK,aAAcwG,GACzBE,EAAYF,GAaVE,EAAYJ,EAAkBK,GAC3B/B,EAAeM,SAAS7B,IAE3BuB,EAAemB,oBAAoB1C,GAErCuB,EAAec,UAAUrC,EAAOsC,IAEhCf,EAAeY,aAAanC,GAEhC,GACF,EA4CAF,OAAO9E,IAAIuI,SAASrI,cAAcC,UAAS,SAAU8H,GAEnDD,EAAuBC,EACzB,IACAnD,OAAO9E,IAAIwE,QAAQtE,cAAcC,UAAS,gBAzCS,IAAtC4H,GAETS,aAAaT,GAEfA,EAAoCU,YAAW,WAC7CV,OAAoCW,EAGpC3I,EAAE,yCAAyC0E,MAAK,WAC9C8B,EAAemB,oBAAoB3H,EAAEgB,OACrChB,EAAEgB,MAAMY,KAAK,aAAc5B,EAAEgB,MAAMmH,SAASE,KAC5C,IAAIE,EAAoBvI,EAAE,yBAAyB6E,eAAiB7E,EAAE,uBAAuB6E,eAAiB7E,EAAE,sBAAsB6E,cACtI7E,EAAEgB,MAAMY,KAAK,sBAAuB2G,GAAqB,GACzDvI,EAAEgB,MAAMY,KAAK,yBAA0B2G,GAAqB,EAI9D,IAGAvI,EAAE,gDAAgD0E,MAAK,WACrD8B,EAAemB,oBAAoB3H,EAAEgB,OACrChB,EAAEgB,MAAMY,KAAK,aAAc5B,EAAEgB,MAAMmH,SAASE,KAC5C,IAAIjD,EAAWpF,EAAE,yCACbuI,GAAqBvI,EAAE,yBAAyBmC,OAASnC,EAAE,yBAAyB6E,cAAgB,GAAK2B,EAAegB,qBAAqBpC,GACjJpF,EAAEgB,MAAMY,KAAK,sBAAuB2G,GAAqB,GACzD,IAAIhB,GAAwBvH,EAAE,yBAAyBmC,OAASnC,EAAE,yBAAyB6E,cAAgB,GAAK2B,EAAekB,wBAAwBtC,GACvJpF,EAAEgB,MAAMY,KAAK,yBAA0B2F,GAAwB,EAIjE,IAGAU,EAAuBlD,OAAO6D,YAChC,GArC0B,IA8C5B,GACD,CA1FD,CA0FGpC,GAKH,SAAWA,GACT,IAAIqC,EAAY7I,EAAE,uFAClB6I,EAAUnE,MAAK,WACb,IAAIU,EAAWpF,EAAEgB,MACThB,EAAE,KAAMoF,GACZgB,GAAG,SAAS,WACVI,EAAeK,WAAWzB,GAC5BoB,EAAeE,QAAQtB,IAEvBoB,EAAesB,UAAU1C,GAGzByD,EAAUnE,MAAK,WACTU,EAAS,KAAOpF,EAAEgB,MAAM,IACxBwF,EAAeK,WAAW7G,EAAEgB,QAC9BwF,EAAeE,QAAQ1G,EAAEgB,MAE7B,IAEJ,GACF,GACD,CArBD,CAqBGwF,GAKH,SAAWA,EAAgBxB,GACzB,IAAI8D,EAA8B,WAChC9D,EAAaN,MAAK,WAChB,IAEEqE,EACAC,EAHE5D,EAAWpF,EAAEgB,MACfiI,EAAajJ,EAAE,KAAMoF,GAGnBA,EAAS3B,SAAS,aAOtB2B,EAASiC,YAAY,QACjB4B,EAAW9G,SACb4G,EAAmBE,EAAW,GAAGC,wBACjCF,EAAkBC,EAAWA,EAAW9G,OAAS,GAAG+G,wBAChDH,EAAiBV,IAAMW,EAAgBX,IACzCjD,EAASO,SAAS,QAElBa,EAAeY,aAAahC,IAGlC,GACF,EAGI+D,EAAgC,WAClC,IAAIC,EAAQrE,OAAOsE,WAAW,sBAAsBC,QACpDtE,EAAaN,MAAK,WACZ0E,GACFpJ,EAAEgB,MAAM2E,SAAS,QACjB3F,EAAEgB,MAAM2E,SAAS,aAEjB3F,EAAEgB,MAAMqG,YAAY,QACpBrH,EAAEgB,MAAMqG,YAAY,WAExB,GACF,EACArH,GAAE,WACAmJ,IACAL,GACF,IACA/D,OAAO9E,IAAIwE,QAAQtE,cAAcC,UAAS,WACxC+I,IACAL,GACF,GACD,CAhDD,CAgDGtC,EAAgBxB,EACrB,GACD,CA5XD,CA4XGF,O,oBC5XH,SAAW9E,GACT,aAEA+E,OAAO9E,IAAIC,OAAOC,cAAcC,UAAS,WACnCJ,EAAE,oDAAoDmC,OAAS,GAAGnC,EAAE,oDAAoD2F,SAAS,eACrI,IACE4D,EAAKvJ,EAAE,2BAA2BmC,OAAS,EAC3CqH,EAAYxJ,EAAE,yBACdyJ,EAAgBzJ,EAAE,wBAClB0J,EAAe1J,EAAE,iBACjB2J,EAAKF,EAAcG,SAAWJ,EAAUI,SAC1C5J,EAAE,2BAA2B2F,SANb,CAAC,OAAQ,OAAQ,QAAS,UAMM4D,GAAM,SAASM,UAAU,mCACzE7J,EAAE,0CAA0C0E,MAAK,gBACRiE,IAAnC3I,EAAEgB,MAAMyG,KAAK,KAAKnE,KAAK,SACzBtD,EAAEgB,MAAM8I,KAAK,YAAc9J,EAAEgB,MAAMyG,KAAK,KAAKnE,KAAK,QAAU,SAEhE,IACAtD,EAAE,wDAAwDoG,GAAG,SAAS,WACpE,IACE2D,EADa/J,EAAEgB,MAAMyG,KAAK,KACFnE,KAAK,QAC/ByB,OAAOrE,SAAS6E,KAAOwE,CACzB,IACAhF,OAAO9E,IAAI+J,YAAY7J,cAAcC,SAASJ,EAAE,0CAA0C,GAC1F+E,OAAO9E,IAAIwE,QAAQtE,cAAcC,UAAS,WACxCuJ,EAAKF,EAAcG,SAAWJ,EAAUI,SACxCF,EAAa9F,IAAI,MAAO+F,EAC1B,IACA3J,EAAE,gBAAgB0E,MAAK,WACrB,IAAIO,EAAQjF,EAAEgB,MACZiJ,EAASjK,EAAE,eAAgBiF,GAC3BiF,EAAQlK,EAAE,gBAAiBiF,GAC7BF,OAAO9E,IAAIkK,SAAShK,cAAcC,SAAS6E,EAAOjF,EAAE,eAAgBiF,IAAQ,WAC1E,IAAImF,EAAQH,EAAO,GAAGf,wBACpBmB,EAAQH,EAAM,GAAGhB,wBACnB,QAAMkB,EAAME,MAAQD,EAAME,MAAQH,EAAMG,KAAOF,EAAMC,OAASF,EAAMI,OAASH,EAAMhC,KAAO+B,EAAM/B,IAAMgC,EAAMG,OAI9G,GACF,GACF,GACD,CAzCD,CAyCG1F,O,wBCvCH,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,MACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OAGR,EAAQ,OAGR,EAAQ,OACR,EAAQ,OACR,EAAQ,OAIR,EAAQ,OACR,EAAQ,OAGR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,OACR,EAAQ,M,oBCzCR,SAAW9E,EAAGC,GACZ,IAAIwK,EAAc,SAClBxK,EAAIC,OAAOC,cAAcC,UAAS,WAChCJ,EAAE,8BAA8B0E,MAAK,WAEnC1E,EAAE,mBAAoBA,EAAEgB,OAAO0D,MAAK,WAClC,IAAIa,EAAOvF,EAAEgB,MAAMsC,KAAK,QACpBoH,EAAU3F,OAAOrE,SAAS8E,SAAWT,OAAOrE,SAASC,OASzD,IARgC,IAA5BK,KAAKuE,KAAKhD,QAAQ,KAChBC,mBAAmBkI,KAAanF,IAClCvF,EAAE,oBAAoBqH,YAAYoD,GAClCzK,EAAEgB,MAAM2E,SAAS,WAGnB3F,EAAE,oBAAoB2K,QAAQhF,SAAS8E,GAErCzK,EAAE,mBAAmB4B,KAAK,YAAa,CACzC,IACIgJ,EADAC,EAAe7K,EAAE,mBAAmB4B,KAAK,YAEzCkJ,EAAgBvF,EAAK1E,MAAM,aAAa,GACxCiK,IACFF,EAAcE,EAAcxI,UAAUiD,EAAKhD,QAAQ,OAEjDwI,OAAOH,IAAgBG,OAAOH,KAAiBG,OAAOF,KACxD7K,EAAEgB,MAAM2E,SAAS,UACjB3F,EAAE,oBAAoB2K,QAAQtD,YAAYoD,GAE9C,CACF,GACF,GACF,GACD,CA/BD,CA+BG3F,OAAQC,OAAO9E,I,mBChClB,IAAWD,IASR8E,OARDC,OAAO9E,IAAIC,OAAOC,cAAcC,UAAS,WACvC2E,OAAO9E,IAAI+K,YAAY7K,cAAcC,SAASJ,EAAE,mBAChDA,EAAE,kBAAkB0E,MAAK,WACvB,IAAIO,EAAQjF,EAAEgB,MACdhB,EAAE,oBAAqBiF,GAAOgG,OAC9BlG,OAAO9E,IAAIiL,aAAa/K,cAAcC,SAAS6E,EACjD,GACF,G,mBCRF,IAAWjF,IAmBR8E,OAlBDC,OAAO9E,IAAIkL,mBAAqB,CAC9BC,mBAAmB,EACnBC,qBAAqB,EACrBC,iBAAiB,EACjBC,iBAAiB,GAEnBxG,OAAO9E,IAAIC,OAAOC,cAAcC,UAAS,WACvC,IAAIgC,EAAI,EACRpC,EAAE,mBAAmB0E,MAAK,WACxB,IAAIO,EAAQjF,EAAEgB,MACV+D,OAAO9E,IAAIkL,mBAAmBC,mBAAmBrG,OAAO9E,IAAI+J,YAAY7J,cAAcC,SAASJ,EAAE,eAAgBiF,IAAQ,GACzHF,OAAO9E,IAAIkL,mBAAmBE,qBAAqBtG,OAAO9E,IAAI+J,YAAY7J,cAAcC,SAASJ,EAAE,iBAAkBiF,IAAQ,GAC7HF,OAAO9E,IAAIkL,mBAAmBG,iBAAiBvG,OAAO9E,IAAI+J,YAAY7J,cAAcC,SAASJ,EAAE,aAAciF,IAAQ,GACrHF,OAAO9E,IAAIkL,mBAAmBI,iBAAiBxG,OAAO9E,IAAI+J,YAAY7J,cAAcC,SAASJ,EAAE,aAAciF,IAAQ,GACzHF,OAAO9E,IAAI+J,YAAY7J,cAAcC,SAASJ,EAAE,aAAciF,IAAQ,GACtEF,OAAO9E,IAAIuL,eAAerL,cAAcC,SAASJ,EAAE,2BAA4BiF,GAAQ,uBAAyB7C,IAClH,GACF,IAOC0C,OAJDC,OAAO9E,IAAIkL,mBAAmBC,mBAAoB,EAClDrG,OAAO9E,IAAIkL,mBAAmBE,qBAAsB,EACpDtG,OAAO9E,IAAIkL,mBAAmBG,iBAAkB,EAChDvG,OAAO9E,IAAIkL,mBAAmBI,iBAAkB,C,mBCxBlD,SAASE,EAAQC,GAAgC,OAAOD,EAAU,mBAAqBE,QAAU,iBAAmBA,OAAOC,SAAW,SAAUF,GAAK,cAAcA,CAAG,EAAI,SAAUA,GAAK,OAAOA,GAAK,mBAAqBC,QAAUD,EAAEG,cAAgBF,QAAUD,IAAMC,OAAOG,UAAY,gBAAkBJ,CAAG,EAAGD,EAAQC,EAAI,CAC7T,IAAW1L,IAgFR8E,OA/EDC,OAAO9E,IAAI8L,iBAAmB,CAC5BC,iBAAiB,GAEnBjH,OAAO9E,IAAIC,OAAOC,cAAcC,UAAS,WACvC,IAAI6L,EAAYjM,EAAE,gBAClB,GAAIiM,EAAU9J,OAAQ,CACpB,IAAI+J,EAAclM,EAAE,eACpB,GAAIkM,EAAY/J,OAAQ,CACtB,IAAIgK,EAAanM,EAAE,gBAAgB8F,OAC/BsG,EAAmBpM,EAAE,qBAAqB8F,OAC5CuG,EAAerM,EAAE,gBAAgB8F,OAC/BwG,EAAQJ,EAAYzE,KAAK,gBAE7BzH,EAAEsM,EAAM,IAAIxG,KAAKuG,GACjBrM,EAAEsM,EAAM,IAAIC,KAAK,QAASF,GAC1B,IAAIG,EAAmBxM,EAAEsM,EAAM,IAAIC,KAAK,aACR,IAArBC,IACTA,EAAmBA,EAAiB5L,QAAQ,QAASwL,GACrDpM,EAAEsM,EAAM,IAAIC,KAAK,OAAQC,EAAiB5L,QAAQ,MAAO,MAG3DZ,EAAEsM,EAAM,IAAIxG,KAAKqG,GACjBnM,EAAEsM,EAAM,IAAIC,KAAK,QAASJ,GAC1B,IAAIM,EAAiBzM,EAAEsM,EAAM,IAAIC,KAAK,aACR,IAAnBE,IACTA,EAAiBA,EAAe7L,QAAQ,QAASuL,GACjDnM,EAAEsM,EAAM,IAAIC,KAAK,OAAQE,EAAe7L,QAAQ,MAAO,KAE3D,CACAqL,EAAUvH,MAAK,WACFK,OAAOrE,SAASgM,KAqC3B1M,EAAE,qBAAsBiM,GAAW7F,GAAG,SAAS,SAAUC,GACvDA,EAAEsG,iBACF5H,OAAO6H,KAAK,iCAAiCC,OAAO7M,EAAEgB,MAAMsC,KAAK,OAAQ,SAAU,gFACrF,IACAyB,OAAO9E,IAAIwE,QAAQtE,cAAcC,UAAS,WACgC,YAAjD,oBAAX0M,OAAyB,YAAcrB,EAAQqB,UAAkD,WAAzBrB,EAAQqB,OAAOC,OAvCrG,WAEE,IAAIC,EACAC,EAFAlI,OAAO9E,IAAI8L,iBAAiBC,iBAAiBhM,EAAE,eAAekN,MAAMlN,EAAE,QAAQkN,SAGlF,IAAIC,EAAUnN,EAAE,qBAAsBiM,GAAW3I,KAAK,MAClD6J,EAAQhL,OAAS,GACnB6K,EAAeG,EAAQtM,MAAM,KAC7BoM,EAAW,CACTG,IAAKC,WAAWL,EAAa,IAC7BM,IAAKD,WAAWL,EAAa,MAG/BC,EAAW,CACTG,IAAK,EACLE,IAAK,GAGT,IAAIxM,EAAM,IAAIgM,OAAOC,KAAKQ,IAAI9M,SAAS+M,eAAe,cAAe,CACnEC,KAAMtG,SAAS1G,SAAS+M,eAAe,cAAcE,aAAa,cAClEC,OAAQV,EACRW,kBAAkB,EAClBC,aAAa,EACbC,cAAc,EACdC,WAAW,EACXC,aAAa,EACbC,wBAAwB,IAE1BhC,EAAUrK,KAAK,iBACF,IAAIkL,OAAOC,KAAKmB,OAAO,CAClCC,SAAUlB,EACVnM,IAAKA,EACLsN,KAAM3N,SAAS+M,eAAe,cAAcE,aAAa,cAE7D,CAOIW,EAEJ,GACF,GACF,CACF,G,mBChFF,IAAWrO,IA6CR8E,OA5CDC,OAAO9E,IAAI8L,iBAAmB,CAC5BC,iBAAiB,GAEnBjH,OAAO9E,IAAIC,OAAOC,cAAcC,UAAS,WAEvC,GADgBJ,EAAE,qBACJmC,OAAQ,CACpB,IAAI+J,EAAclM,EAAE,eACpB,GAAIkM,EAAY/J,OAAQ,CACtB,IAAIkK,EAAerM,EAAE,uBAAuBsO,WAAW,GAAG1M,KAAK2M,OAC7DnC,EAAmBpM,EAAE,qBAAqB8F,OACxCwG,EAAQJ,EAAYzE,KAAK,gBAE7BzH,EAAEsM,EAAM,IAAIxG,KAAKuG,GACjBrM,EAAEsM,EAAM,IAAIC,KAAK,QAASF,GAC1B,IAAIG,EAAmBxM,EAAEsM,EAAM,IAAIC,KAAK,aACR,IAArBC,IACTA,EAAmBA,EAAiB5L,QAAQ,QAASwL,GACrDpM,EAAEsM,EAAM,IAAIC,KAAK,OAAQC,EAAiB5L,QAAQ,MAAO,KAE7D,CAGAZ,EAAE,oBAAoBwO,OAAM,SAAUnI,GACpCA,EAAEsG,iBACE3M,EAAE,aAAa6M,OAAO7M,EAAEgB,MAAMsC,KAAK,YACrCtD,EAAE,cAAcyO,QAAQ,CACtBnG,UAAWtI,EAAE,aAAa6M,OAAO7M,EAAEgB,MAAMsC,KAAK,WAAW6E,SAASE,IAAMrI,EAAE,WAAW6E,eACpF,IAEP,IACA7E,EAAE,gBAAgBwO,OAAM,SAAUnI,GAChCA,EAAEsG,iBACF,IAAI+B,EAAS,WACT1O,EAAE,aAAamC,OACjBuM,EAAS,YACA1O,EAAE,YAAYmC,SACvBuM,EAAS,YAEX1O,EAAE,cAAcyO,QAAQ,CACtBnG,UAAWtI,EAAE0O,GAAQvG,SAASE,IAAMrI,EAAE,WAAW6E,eAChD,IACL,GACF,CACF,IAEF,SAAW7E,GACT+E,OAAO9E,IAAIC,OAAOC,cAAcC,UAAS,WACvBJ,EAAE,qBACRyH,KAAK,gBAAgBkH,WAAW,QAAQhJ,SAAS,UAC7D,GACD,CALD,CAKGb,O,oBC/CH,SAAW9E,EAAGC,GACZA,EAAIC,OAAOC,cAAcC,UAAS,WAChCH,EAAIyB,WAAWC,kBAAkBxB,cAAcC,SAAS,WAAW,SAAUwB,EAAMC,GACjF,IAAI+M,EAAU5O,EAAE,eAAiB4B,EAAKiN,OAAS,MAE/C,OADAD,EAAQE,KAAK,uOACN,CACL7K,cAAejE,EAAE,qBAAsB6B,GACvCqC,SAAU,CACRC,QAAS,CACPC,WAAY,CAAC,CACXG,UAAW,mBACXC,WAAY,CAACoK,OAKvB,IAAG,SAAU/M,EAAOD,GAClB,IAAImN,EAAkBC,aAAY,WAChC,IACEC,MAAMC,MAAMC,OAAO,CACjBC,SAAUxN,EAAKyN,SACfC,OAAQ1N,EAAKiN,OACbU,OAAQ,0CAA4C3N,EAAKiN,SAE3DW,cAAcT,EAChB,CAAE,MAAO1I,GACPoJ,QAAQC,IAAIrJ,EACd,CACF,GAAG,IACL,GACF,GACD,CA/BD,CA+BGvB,OAAQC,OAAO9E,I,oBC7BlB,SAAWD,EAAGC,GACZ,IAAI0P,EAAa,CACbC,IAAK,CACHC,kBAAmB,SAGvBC,EAAM7P,EAAIyB,WAAWC,kBAAkBxB,cACvC4P,EAA+B,SAAsCC,EAAUnO,GAC7E,IAAIoO,EAAc,GAChBC,EAASlQ,EAAE,iDACXmQ,EAAWnQ,EAAE,YAAcgQ,EAASI,UAAUrM,IAAM,uDACpDsM,EAAa,EACbzO,EAAOkO,EAAIQ,UAAUN,EAASpO,MAC9B2O,EAAcP,EAASQ,aAAe,CAAC,EAgCzC,OA/BA5O,EAAKqO,YAAYpM,SAAQ,SAAU4M,GACjC,IAO+CC,EAP3CC,EAAgB3Q,EAAE,kBAAmB6B,GAAOiN,OAC9C8B,EAAgB5Q,EAAE,kBAAmB6B,GAAOiN,OAC5C+B,EAAiB7Q,EAAE,mBAAoB6B,GAAOiN,OAC9CgC,EAA0B9Q,EAAE,+BAAgC6B,GAAOiN,OACnEiC,EAAqB/Q,EAAE,uBAAwB6B,GAAOiN,OACtDkC,EAAoB,GACpBC,EAAU,GAKZR,EAAWS,WAAWrN,SAAQ,SAAUsN,GACtCH,GAAqBF,EAAwBM,OAAOD,EAAkBE,WAAWC,KAAMH,EAAkBE,WAAWE,eAAgBJ,EAAkBE,WAAWvP,KACnK,IACA2O,EAAWe,gBAAgB3N,SAAQ,SAAU4N,EAAUC,GACrD,IAAIC,EAAW,GACXpB,EAAY,YAAcF,GACxBE,EAAY,YAAcF,IAAeoB,EAASJ,WAAWC,OAC/DK,EAAW,wBAGA,GAATD,IACFC,EAAW,wBAGfV,GAAWJ,EAAeO,OAAOK,EAASJ,WAAWC,KAAMG,EAASJ,WAAWvP,KAAM2P,EAASJ,WAAWO,MAAOD,EAClH,IACA1B,EAAYvM,KAAK1D,EAAE+Q,EAAmBK,OAAOX,EAAWY,WAAWX,OAAQC,EAAcS,OAAO,eAAgBX,EAAWY,WAAWQ,aAAelB,EAAcS,OAAO,SAAUX,EAAWY,WAAWS,QAAUnB,EAAcS,OAAO,gBAAiBX,EAAWY,WAAWX,QAAS,oBAAqBM,EAAmBJ,EAAcQ,OAAO,wBAAyB,MAAQf,EAAYE,EAAY,MAAQF,IAAe,IAAMO,EAAcQ,OAAO,wBAAyB,QAAUf,EAAYE,EAAY,QAAUF,IAAe,IAAK,kBAAmB,YAAcA,EAAYY,EAAS,IAAK,6BApBtiBP,EAoBolBD,EAAWY,WAAWX,OAnB1oB3L,OAAOrE,SAAS6E,KACf3E,QAAQ8P,EAAS,IAAK,IAAI9P,QAAQ8P,EAAQ,QAmB1DL,GACF,IACO,CACLpM,cAAejE,EAAE,qBAAsB6B,GACvCqC,SAAU,CACRC,QAAS,CACPC,WAAY,CAAC,CACXG,UAAW,uBACXC,WAAYyL,GACX,CACD1L,UAAW,gBACXH,WAAY,CAAC,CACXG,UAAW,kBACXC,WAAY,CAAC0L,IACZ,CACD3L,UAAW,gBACXC,WAAY,CAAC2L,MAEd,CACD5L,UAAW,eACXH,WAAY,CAAC,CACXG,UAAW,kBACXC,WAAY,CAAC0L,IACZ,CACD3L,UAAW,gBACXC,WAAY,CAAC2L,SAMzB,EACA4B,EAA+B,SAAsC/B,EAAUnO,GAC7E,IAAIoO,EAAc,GAChBC,EAASlQ,EAAE,iDACXgS,EAAOhS,EAAE,yDACTiS,EAAUjS,EAAE,qDACZqQ,EAAa,EACbzO,EAAOkO,EAAIQ,UAAUN,EAASpO,MAC9B2O,EAAcP,EAASQ,YAczB,OAbA5O,EAAKqO,YAAYpM,SAAQ,SAAU4M,GACjC,IAAIE,EAAgB3Q,EAAE,kBAAmB6B,GAAOiN,OAE9CgC,GADiB9Q,EAAE,mBAAoB6B,GAAOiN,OACpB9O,EAAE,+BAAgC6B,GAAOiN,QACnEiC,EAAqB/Q,EAAE,+BAAgC6B,GAAOiN,OAC9DkC,EAAoB,GAEtBP,EAAWS,WAAWrN,SAAQ,SAAUsN,GACtCH,GAAqBF,EAAwBM,OAAOD,EAAkBE,WAAWC,KAAMH,EAAkBE,WAAWE,eAAgBJ,EAAkBE,WAAWvP,KACnK,IACAmO,EAAYvM,KAAK1D,EAAE+Q,EAAmBK,OAAOX,EAAWY,WAAWX,OAAQC,EAAcS,OAAO,eAAgBX,EAAWY,WAAWQ,aAAelB,EAAcS,OAAO,SAAUX,EAAWY,WAAWS,QAAUnB,EAAcS,OAAO,gBAAiBX,EAAWY,WAAWX,QAAS,oBAAqBM,EAAmBL,EAAcS,OAAO,wBAAyBb,EAAY,MAAQF,IAAeM,EAAcS,OAAO,wBAAyBb,EAAY,QAAUF,IAAcM,EAAcS,OAAO,oBAAqBb,EAAY,YAAcF,OACxiBA,GACF,IACO,CACLpM,cAAejE,EAAE,qBAAsB6B,GACvCqC,SAAU,CACRC,QAAS,CACPC,WAAY,CAAC,CACXG,UAAW,sBACXC,WAAYyL,GACX,CACD1L,UAAW,gBACXH,WAAY,CAAC,CACXG,UAAW,kBACXC,WAAY,CAAC0L,IACZ,CACD3L,UAAW,gBACXC,WAAY,CAACyN,EAASD,MAEvB,CACDzN,UAAW,eACXH,WAAY,CAAC,CACXG,UAAW,kBACXC,WAAY,CAAC0L,IACZ,CACD3L,UAAW,gBACXC,WAAY,CAACyN,EAASD,SAMlC,EACF/R,EAAIC,OAAOC,cAAcC,UAAS,WAChC,IAAI8R,EAASlS,EAAE,oDACVkS,EAAO/P,QACZlC,EAAIkS,WAAWhS,cAAciS,SAASzC,GAAY,WAChDuC,EAAOxN,MAAK,WACV,IAAI7C,EAAQ7B,EAAEgB,MACZqR,EAAKpS,EAAIyB,WAAWC,kBAAkB2Q,UAAUnS,cAClD0B,EAAMqD,OAAO,u3CACblF,EAAE,qBAAsB6B,GAAOqD,OAAOlF,EAAE,UAAW6B,GAAOiN,QAC1DuD,EAAGE,UAAU1Q,GAAO2Q,iBAAgB,SAAUC,EAAQC,GACpD,GAAID,EAAOE,IACT,MAAO,CACLC,EAAG,eAAiBH,EAAOE,IAGjC,IAAGE,QAAQ9C,GAA8B8C,QAAQd,GAA8Be,KAAI,SAAUC,EAAM/C,GACjG,IAAIgD,EAAgBhT,EAAE,iBAAkB6B,GACtCoR,EAAejT,EAAE,gBAAiB6B,GAClCqR,EAAiBF,EAAc7E,WAuBjC,OAtBAlO,EAAIuI,SAASrI,cAAcC,UAAS,SAAUkI,GAExCA,EADkB4K,EAAe7K,IAAM2K,EAAcnO,aAAY,GAAQ7E,EAAE+E,QAAQF,aAAY,GACjE,KAChCmO,EAAc3L,YAAY,SACrB4L,EAAaxP,SAAS,WACzBwP,EAAatN,SAAS,SACtB+C,YAAW,WACTuK,EAAatN,SAAS,UACxB,GAAG,QAGLqN,EAAcrN,SAAS,SACnBsN,EAAaxP,SAAS,WACxBwP,EAAatN,SAAS,YACtBsN,EAAa5L,YAAY,WACzB4L,EAAaE,IAAI,iBAAiB,WAChCF,EAAa5L,YAAY,SACzB4L,EAAa5L,YAAY,WAC3B,KAGN,IACQF,SAAS4L,IACf,KAAK,EACH,IAAIK,EAAc,WAChB,IAAIC,EAAQ,EACZrT,EAAE,iDAAkD6B,GAAO6C,MAAK,WAC9D,IACEkN,EADU5R,EAAEgB,MACEsC,KAAK,cACrB+P,GAAShG,WAAWuE,EACtB,IACA5R,EAAE,2BAA2B8O,KAAKa,EAAWC,IAAIC,kBAAkBuB,OAAOiC,GAC5E,EACArT,EAAE,WAAY6B,GAAO2M,OAAM,SAAU8E,GACnCA,EAAM3G,iBACN,IAAI/K,EAAO,CAAC,EACZ5B,EAAE,QAAS6B,GAAO6C,MAAK,WACrB,IAAIO,EAAQjF,EAAEgB,MACdY,EAAKqD,EAAM3B,KAAK,SAAW2B,EAAMsO,KACnC,IACA3R,EAAK4R,cAAgBzO,OAAOrE,SAC5B2R,EAAGoB,kBAAkB7R,GAAM,WACzByQ,EAAGqB,UACL,IAAG,WACDC,MAAM,mBACR,GACF,IACA1T,EAAI2T,MAAMzT,cAAc0T,QAAQ9O,OAAO9E,IAAI6T,OAAOC,cAClD/T,EAAE,2BAA4B6B,GAAOmS,mBAAmBZ,GACxDA,IACA,MACF,KAAK,EACHpT,EAAE,OAAQ6B,GAAO2M,OAAM,SAAU8E,GAC/BA,EAAM3G,iBACN0F,EAAG4B,cAAcjE,GAAU,WACzBqC,EAAGqB,UACL,IAAG,WACDC,MAAM,mBACR,GACF,IACItB,EAAG6B,uBACLlU,EAAE,UAAW6B,GAAOyB,KAAK,OAAQ+O,EAAG6B,uBAI5C,GACF,GACF,GACF,GACD,CAtND,CAsNGpP,OAAQC,OAAO9E,I,mBC5NlB,IAAWD,IAOR8E,OANDC,OAAO9E,IAAIC,OAAOC,cAAcC,UAAS,WACvCJ,EAAE,iBAAiB0E,MAAK,WACtB,IAAI7C,EAAQ7B,EAAEgB,MACd+D,OAAO9E,IAAI+J,YAAY7J,cAAcC,SAASJ,EAAE,qBAAsB6B,IAAQ,EAChF,GACF,G,qCCNF,SAAS4J,EAAQC,GAAgC,OAAOD,EAAU,mBAAqBE,QAAU,iBAAmBA,OAAOC,SAAW,SAAUF,GAAK,cAAcA,CAAG,EAAI,SAAUA,GAAK,OAAOA,GAAK,mBAAqBC,QAAUD,EAAEG,cAAgBF,QAAUD,IAAMC,OAAOG,UAAY,gBAAkBJ,CAAG,EAAGD,EAAQC,EAAI,CAE7T,SAASyI,EAAkB9N,EAAG+N,GAAK,IAAK,IAAIC,EAAI,EAAGA,EAAID,EAAEjS,OAAQkS,IAAK,CAAE,IAAI3I,EAAI0I,EAAEC,GAAI3I,EAAE4I,WAAa5I,EAAE4I,aAAc,EAAI5I,EAAE6I,cAAe,EAAI,UAAW7I,IAAMA,EAAE8I,UAAW,GAAKC,OAAOC,eAAerO,EAAGsO,EAAejJ,EAAEpK,KAAMoK,EAAI,CAAE,CAEvO,SAASiJ,EAAeN,GAAK,IAAInS,EACjC,SAAsBmS,EAAGD,GAAK,GAAI,UAAY3I,EAAQ4I,KAAOA,EAAG,OAAOA,EAAG,IAAIhO,EAAIgO,EAAE1I,OAAOiJ,aAAc,QAAI,IAAWvO,EAAG,CAAE,IAAInE,EAAImE,EAAEwO,KAAKR,EAAGD,GAAK,WAAY,GAAI,UAAY3I,EAAQvJ,GAAI,OAAOA,EAAG,MAAM,IAAI4S,UAAU,+CAAiD,CAAE,OAAQ,WAAaV,EAAIrJ,OAASgK,QAAQV,EAAI,CADtRW,CAAaX,EAAG,UAAW,MAAO,UAAY5I,EAAQvJ,GAAKA,EAAIA,EAAI,EAAI,CAE5G,SAAS+S,EAAWZ,EAAG3I,EAAGrF,GAAK,OAAOqF,EAAIwJ,EAAgBxJ,GAC1D,SAAoC2I,EAAGhO,GAAK,GAAIA,IAAM,UAAYoF,EAAQpF,IAAM,mBAAqBA,GAAI,OAAOA,EAAG,QAAI,IAAWA,EAAG,MAAM,IAAIyO,UAAU,4DAA6D,OACtN,SAAgCzO,GAAK,QAAI,IAAWA,EAAG,MAAM,IAAI8O,eAAe,6DAA8D,OAAO9O,CAAG,CADqE+O,CAAuBf,EAAI,CAD1LgB,CAA2BhB,EAAGiB,IAA8BC,QAAQC,UAAU9J,EAAGrF,GAAK,GAAI6O,EAAgBb,GAAGxI,aAAeH,EAAE+J,MAAMpB,EAAGhO,GAAK,CAG1M,SAASiP,IAA8B,IAAM,IAAIjB,GAAKqB,QAAQ5J,UAAU6J,QAAQd,KAAKU,QAAQC,UAAUE,QAAS,IAAI,WAAa,IAAK,CAAE,MAAOrB,GAAI,CAAE,OAAQiB,EAA4B,WAAuC,QAASjB,CAAG,IAAM,CAClP,SAASa,EAAgBb,GAAK,OAAOa,EAAkBT,OAAOmB,eAAiBnB,OAAOoB,eAAe5U,OAAS,SAAUoT,GAAK,OAAOA,EAAEyB,WAAarB,OAAOoB,eAAexB,EAAI,EAAGa,EAAgBb,EAAI,CAEpM,SAAS0B,EAAgB1B,EAAGhO,GAAK,OAAO0P,EAAkBtB,OAAOmB,eAAiBnB,OAAOmB,eAAe3U,OAAS,SAAUoT,EAAGhO,GAAK,OAAOgO,EAAEyB,UAAYzP,EAAGgO,CAAG,EAAG0B,EAAgB1B,EAAGhO,EAAI,CAMxL,IAAI2P,EAAkC,SAAUC,GAQ9C,SAASD,IACP,IAAIE,EACA3R,EAAY4R,UAAUhU,OAAS,QAAsBwG,IAAjBwN,UAAU,GAAmBA,UAAU,GAAK,wBAKpF,OAhCJ,SAAyBC,EAAGrV,GAAK,KAAMqV,aAAarV,GAAI,MAAM,IAAI+T,UAAU,oCAAsC,CA4B9GuB,CAAgBrV,KAAMgV,IACtBE,EAAQjB,EAAWjU,KAAMgV,EAAoB,CAACzR,KACxC+R,kBAAoB,wBAC1BJ,EAAMK,gBAAkB,sBACjBL,CACT,CAEA,OAzBF,SAAmB7B,EAAGhO,GAAK,GAAI,mBAAqBA,GAAK,OAASA,EAAG,MAAM,IAAIyO,UAAU,sDAAuDT,EAAEvI,UAAY2I,OAAOtF,OAAO9I,GAAKA,EAAEyF,UAAW,CAAED,YAAa,CAAEtK,MAAO8S,EAAGG,UAAU,EAAID,cAAc,KAASE,OAAOC,eAAeL,EAAG,YAAa,CAAEG,UAAU,IAAOnO,GAAK0P,EAAgB1B,EAAGhO,EAAI,CAwBjVmQ,CAAUR,EAAoBC,GAhCV5P,EAiCA2P,GAjCG5B,EAiCiB,CAAC,CACvC9S,IAAK,OACLC,MAAO,SAAckV,GAGnB,IADA,IAAIC,EAAaD,EAAUE,cAAc,IAAI9J,OAAO7L,KAAKuV,kBAClDG,GACLA,EAAWE,UAAUC,IAAI7V,KAAKsV,mBAC9BI,EAAaA,EAAWI,sBAE5B,MA1CyC3C,EAAkB9N,EAAEyF,UAAWsI,GAAIC,GAAKF,EAAkB9N,EAAGgO,GAAII,OAAOC,eAAerO,EAAG,YAAa,CAAEmO,UAAU,IAAOnO,EAAvK,IAAsBA,EAAG+N,EAAGC,CA4C5B,CA7BsC,C,SA6BpC,KC7CoB,ID8CtB,GC7CgBvB,K,mBCHhB,IAAW9S,IAOR8E,OANDC,OAAO9E,IAAIC,OAAOC,cAAcC,UAAS,WACvCJ,EAAE,+CAA+C0E,MAAK,WACxC1E,EAAEgB,KAChB,IACA+D,OAAO9E,IAAI+J,YAAY7J,cAAcC,SAASJ,EAAE,yDAClD,G,mBCNF,IAAWA,IAgBR8E,OAfDC,OAAO9E,IAAIC,OAAOC,cAAcC,UAAS,WACvCJ,EAAE,qCAAqC0E,MAAK,WAC1C,IAAIO,EAAQjF,EAAEgB,MACFhB,EAAE,SAAUiF,GAChBP,MAAK,WACX,IAAIO,EAAQjF,EAAEgB,MACFhB,EAAE,SAAUiF,GACX9C,OAGX8C,EAAMsH,KAAK,YAAY,GAFvBtH,EAAMsH,KAAK,WAAY,WAI3B,GACF,GACF,G,oBCfF,SAAWvM,GACT,aAEA+E,OAAO9E,IAAIC,OAAOC,cAAcC,UAAS,WA6CvC,GA5CAJ,EAAE,4CAA4C0E,MAAK,WACjD,IAAIO,EAAQjF,EAAEgB,MACZ+V,EAAW/W,EAAE,gBAAiBiF,EAAMiB,UACpC8Q,EAAWhX,EAAE,wBAAyBiF,EAAMiB,UAC5C+Q,EAAiBjX,EAAE,uBAAwB+W,GAC7C/W,EAAEkX,MAAMjS,EAAOgS,GAAgBzI,OAAM,WAC9BwI,EAAS7U,SACZ6U,EAAWhX,EAAE,4CACb+W,EAASI,OAAOH,IAEbD,EAASK,GAAG,YAUfC,SAASC,OAAOP,EAAU,GAAK,CAC7BQ,MAAO,GACN,CACDA,MAAO,EACPC,KAAMC,OAAOC,OACbC,WAAY,WACVZ,EAAS9L,OACT+L,EAAS/L,MACX,KAjBF+L,EAASY,OACTb,EAASa,OACTP,SAASC,OAAOP,EAAU,GAAK,CAC7BQ,MAAO,GACN,CACDA,MAAO,EACPC,KAAMC,OAAOC,SAcnB,IACA,IAAIG,GAAU,EACd7X,EAAE,yBAAyB0E,MAAK,WACzBmT,GAAS7X,EAAEgB,MAAMqG,YAAY,cAC9BwQ,IACFA,GAAU,EAEd,GACF,IAKI7X,EAAE,kBAAkBmC,OAAQ,CAC9B,IAAI2V,EAAc9X,EAAE,gCAAgC2K,QAChDoN,EAAWD,EAAYE,OACvBC,EAAUH,EAAYI,OACtBC,EAAaF,EAAQnS,OACrBsS,EAAepY,EAAE,KAAM+X,GAC3BK,EAAatO,KAAK,uCAClB,IAAIuO,EAAkBrY,EAAE,mBAAoB+X,GAC5CE,EAAQK,SACRR,EAAYnS,SAAS,gBACrB0S,EAAgBnT,OAAO,MAAM2H,OAAOsL,EAAY,SAChDC,EAAaxU,IAAI,QAAS,OAC5B,CACF,GACD,CA9DD,CA8DGkB,O,oBC9DH,SAAW9E,EAAGC,GACZ,IAAIsY,EACJtY,EAAIyB,WAAaqD,OAAO9E,IAAIyB,YAAc,CAAC,EAC3CzB,EAAIyB,WAAWC,kBAAoBoD,OAAO9E,IAAIyB,WAAWC,mBA8EhD,CAKLxB,YAAa,WAlFJ,IA2CPmQ,EAGAkI,EAeAC,EAyBA,OAHKF,IAxCLjI,EAAY,SAAmB1O,GAC7B,OAAO4W,EAAW5W,EACpB,EACA4W,EAAa,SAAoBE,GAC/B,IAAIC,EAAS,CAAC,EACd,IAAK,IAAIC,KAAKF,EACH,YAALE,GAAwB,YAALA,IACrBD,EAAOC,GAAKF,EAAME,IAStB,OANKD,EAAOhV,eAAe,QACzBgV,EAAOzX,GAAKwX,EAAMG,SAAS/W,MAEzB4W,EAAM/U,eAAe,aACvB8U,EAAcC,EAAOC,GAEhBA,CACT,EACAF,EAAgB,SAAuB7W,EAAM+W,GAC3C/W,EAAKkX,SAASjV,SAAQ,SAAU6U,GAC9B,IAAI5W,EAAO4W,EAAM/U,eAAe,aAAe+U,EAAMK,UAAYL,EAAMG,SAASG,SAC3EL,EAAOhV,eAAe7B,KACzB6W,EAAO7W,GAAQ,IAEjB6W,EAAO7W,GAAM4B,KAAK8U,EAAWE,GAC/B,GACF,EAeEH,EAdG,CACLnY,SAtEsB,SAA2BmE,EAAW0U,EAAeC,GACzElZ,EAAE,kCAAoCuE,GAAWG,MAAK,WACpD,IAAIyU,EAAQnZ,EAAEgB,MACdf,EAAIyB,WAAWC,kBAAkBxB,cAAciZ,SAASD,GAAO,SAAUvX,GACvE,IACE,IAAIyX,EACFC,EAAahJ,EAAU1O,GACrBqX,IACFI,EAAgBJ,EAAcxD,MAAM,KAAM,CAAC6D,EAAYH,OAEhDE,EAAcpV,gBACjBoV,EAAcpV,cAAgBjE,EAAE,qBAAsBmZ,IAExDpU,OAAO9E,IAAIsZ,QAAQpZ,cAAcqZ,MAAMH,GACnCH,GAAgBA,EAAezD,MAAM,KAAM,CAAC0D,EAAOG,IAG7D,CAAE,MAAOG,GACPhK,QAAQgK,MAAMA,EAChB,CACF,GACF,GACF,EAiDAC,aAxCe,SAAsB3S,EAAU4S,EAAMC,GACnD5Z,EAAE6Z,KAAK,CACL9V,IAAK4V,EACLG,SAAU,SACTC,MAAK,SAAUnY,GAChBmF,EAASU,KAAK,sBAAsBqH,KAAKlN,GACzCgY,EAASnE,OACX,IAAG,SAAUuE,EAAOC,EAAYC,GAC9BN,EAASnE,OACX,GACF,EA+BA2D,SAjDW,SAAkBrS,EAAU6S,GACrC,IAAIhY,EAAO5B,EAAE,kCAAmC+G,GAChD,IACE6S,EAASxY,KAAKC,MAAMO,EAAKkN,QAC3B,CAAE,MAAOzI,GACPoJ,QAAQgK,MAAMpT,EAChB,CACF,EA2CAiK,UAAWA,IAYJiI,CACT,GAGJtY,EAAIC,OAAOC,cAAcC,UAAS,WAChCH,EAAI+K,YAAY7K,cAAcC,SAASJ,EAAE,sBAAsB,GAC/D0I,YAAW,WACT1I,EAAE,qBAAqB2F,SAAS,UAChC1F,EAAIiL,aAAa/K,cAAcC,SAASJ,EAAE,qBAC5C,GAAG,IACL,GACD,CArGD,CAqGG8E,OAAQC,OAAO9E,I,oBCpGlB,SAAWD,GAELA,EAAE,2DAA2DmC,SAC/DnC,EAAE,6MAA6M2F,SAAS,aACxN3F,EAAE,6MAA6M2F,SAAS,aAE1N,IAAIwU,EAAUna,EAAE,iEACZoa,EAAUpa,EAAE,iEAChBma,EAAQzV,MAAK,SAAUgN,GACrB,IAAIzM,EAAQjF,EAAEgB,MACVqZ,EAASra,EAAEoa,EAAQ1I,IACvBzM,EAAM3B,KAAK,cAAe+W,EAAOvU,QACjCuU,EAAOpP,OAGPhG,EAAMsO,IAAI,IAAI+G,MAChB,IACAta,EAAES,UAAU8Z,OAAM,WACZva,EAAE,+CAA+CmC,QAC9BnC,EAAE,0CACRkF,OAAO,iCAE1B,IACAlF,EAAE,gDAAgDkF,OAAO,aACzDlF,EAAE,6CAA6Cwa,SAAS,6CACzD,CAzBD,CAyBG1V,O,yBC1BH,SAAW9E,GACT,aAEA,4DAG0B+Z,MAAK,SAAUU,GACvC1V,OAAO9E,IAAIC,OAAOC,cAAcC,UAAS,WACvC,GAAKJ,EAAE,4BAA4BmC,OAAnC,CAIAnC,EAAE,4BAA4B0a,aAAa,WAC3C,IAAIC,EAAgB3a,EAAE,8CACpB4a,EAAUD,EAAclT,KAAK,sBAAsBqR,WAAW3W,OAC5D0Y,EAAQ,KACRD,EACFD,EAAchV,SAAS,+BAEvBgV,EAAcrC,SAEhBtY,EAAE,oCAAoCwO,OAAM,SAAUnI,GACpDA,EAAEsG,iBACF5H,OAAO9E,IAAI6a,QAAQ3a,cAAciD,aAAa,iBAAkB,EAAG,KACnEyX,EAAME,OACNF,EAAQxD,SAAS2D,GAAGhb,EAAE,YAAa,GAAI,CACrC4D,IAAK,CACHqX,UAAW,EACXC,aAAc,GAEhBC,MAAO,IAETR,EAAcrC,SACdvT,OAAO9E,IAAI2T,MAAMzT,cAAc0T,QAAQ,wBACzC,IACA9O,OAAO9E,IAAIwE,QAAQtE,cAAcC,UAAS,WACxC,IAAIwa,EAAUD,EAAclT,KAAK,sBAAsBqR,WAAW3W,OAChEiZ,EAAYT,EAAc9V,eAAiB,EAGzCgW,EAFA9V,OAAOsE,WAAW,uBAAuBC,QACvCsR,EACMvD,SAAS2D,GAAGhb,EAAE,YAAa,GAAI,CACrC4D,IAAK,CACHsX,aAAcE,EACdH,UAAW,GAEbE,MAAO,MAGD9D,SAAS2D,GAAGhb,EAAE,YAAa,GAAI,CACrC4D,IAAK,CACHqX,UAAW,EACXC,aAAc,GAEhBC,MAAO,IAGFP,EACDvD,SAAS2D,GAAGhb,EAAE,YAAa,GAAI,CACrC4D,IAAK,CACHqX,UAAWG,EACXF,aAAc,GAEhBC,MAAO,MAGD9D,SAAS2D,GAAGhb,EAAE,YAAa,GAAI,CACrC4D,IAAK,CACHqX,UAAW,EACXC,aAAc,GAEhBC,MAAO,GAGb,GA9DA,CA+DF,GACF,IAAGE,OAAM,SAAU5B,GACjBhK,QAAQC,IAAI,+DACZD,QAAQC,IAAI+J,EACd,GACD,CA/ED,CA+EG3U,O,4DC9EH,SAAW9E,GACT,SAASsb,EAAiBC,GAExB,IAAIC,EAAoB,WACpBC,EAAmB,UACnBC,EAA4B,oBAC5BC,EAAe,kBACfC,EAAmB,kBACnBC,EAAc,SACdC,EAAmB,UAKnBC,EAAkB,kBAElBC,EAAqBhc,EAAE,mLAG3B,SAASic,EAAaC,EAAOnV,GAC3B,IAAIjF,EAAO9B,EAAEuO,KAAKxH,EAASwM,OACvB4I,EAAapV,EAASb,SAASA,SAASuB,KAAK,gBAAgBtF,OAAS,EACtE2B,EAAQiD,EAAShB,QAAQ,kBACzBgB,EAAStD,SAAS,eACpB3B,EAAOiF,EAAShB,QAAQ,4BAA4B0B,KAAK,UAAU8L,MACzDxM,EAASqQ,GAAG,UAAarQ,EAASqQ,GAAG,cAC/CtV,EAAO9B,EAAEuO,KAAKxH,EAAS+H,QACvB/H,EAAWA,EAASmR,KAAK,WAE3B,SAAuB3W,EAAOuC,EAAOqY,GAEnC,GAAc,MADd5a,EAAQvB,EAAEuO,KAAKhN,IAEb,OAAQ4a,EAEV,GAAIrY,EAAML,SAAS,aAAeK,EAAML,SAAS,gBAC/C,MAAO,0JAA0J2Y,KAAKrR,OAAOxJ,GAAO8a,eAEtL,GAAIvY,EAAML,SAAS,WAAaK,EAAML,SAAS,cAC7C,MAAO,4BAA4B2Y,KAAK7a,GAE1C,GAAIuC,EAAML,SAAS,kBAAoBK,EAAML,SAAS,sBAAwBK,EAAML,SAAS,sBAAwBK,EAAML,SAAS,yBAA0B,CAG5J,OADQ6Y,OAAO,KADD,sFACgB1b,QAAQ,YAAa,QAAQA,QAAQ,MAAO,OAAOA,QAAQ,KAAM,OAAS,MAC/Fwb,KAAK7a,EAChB,CACA,OAAO,CACT,CACKgb,CAAcza,EAAMgC,EAAOqY,GAC9BpV,EAASpB,SAAS6V,GAElBzU,EAASM,YAAYmU,GAEvB,IAAIgB,EAAwBN,EAAMzU,KAAK,IAAMmU,EAAmB,UAC5Da,EAAmBP,EAAMzU,KAAK,IAAMoU,EAAc,UAGlB,YAAhCW,EAAsBjJ,OAAkD,KAA3BkJ,EAAiBlJ,MAChEkJ,EAAiB9W,SAAS6V,IACc,WAA/BgB,EAAsBjJ,OAAsD,YAAhCiJ,EAAsBjJ,OAAiD,IAA1BkJ,EAAiBlJ,QACnHkJ,EAAiBpV,YAAYmU,EAEjC,CAwBA,SAASkB,EAA+BC,GACtCA,EAAalV,KAAK,yCAAyC/C,MAAK,WAC9DuX,EAAaU,EAAc3c,EAAEgB,MAC/B,IA1BF,SAAuB2b,GACrB,IAAIH,EAAwBG,EAAalV,KAAK,IAAMmU,EAAmB,UACnEa,EAAmBE,EAAalV,KAAK,IAAMoU,EAAc,UAC1B,WAA/BW,EAAsBjJ,OACxBkJ,EAAiBlJ,IAAI,GAEzB,CAqBEqJ,CAAcD,EAChB,CAgEA,SAASE,EAAyBF,EAAc/E,GAC1CA,EACF+E,EAAalV,KAAK,IAAMsU,GAAiBtU,KAAK,yBAAyBmQ,OAEvE+E,EAAalV,KAAK,IAAMsU,GAAiBtU,KAAK,yBAAyBwD,MAE3E,EAGA,SAAuB6R,GACrB,IArBsB/V,EAxEa4V,EA6F/BT,EAAQlc,EAAE,IAAM8c,GACpB,GAAqB,IAAjBZ,EAAM/Z,OACR,OAAO,GAvBa4E,EAyBPmV,GAvBNzU,KAAK,IAAMmU,EAAmB,KAAOH,GAAkBrV,GAAG,sBAAsB,WACnEpG,EAAEgB,MACyC,uBAA3D+F,EAASU,KAAK,IAAMmU,EAAmB,UAAUrI,MACnDxM,EAASU,KAAK,IAAMoU,GAAajE,OAEjC7Q,EAASU,KAAK,IAAMoU,GAAa5Q,MAErC,IAmBAiR,EAAMzU,KAAK,IAAMsU,GAAiB7W,OAAO8W,GACzCE,EAAMzU,KAAK,IAAMoU,GAAa3W,OAAO,qCArGFyX,EAsGPT,GArGfzU,KAAK,yCAAyC/C,MAAK,WAC9D,IAAIqY,EAAS/c,EAAEgB,MACf+b,EAAO/E,KAAK,IAAMyD,GAAkBrV,GAAG,sBAAsB,WAC3D,IAAI4W,EAAgBhd,EAAEgB,MACtBib,EAAaU,EAAcK,EAC7B,IACAD,EAAO3W,GAAG,QAAQ,SAAUC,GAC1B4V,EAAaU,EAAcI,EAC7B,GACF,IA6FA,IAAIE,EAAwBjd,EAAE,IAAM0b,GAA2B9Z,KAAK,iBAAkB5B,EAAE,IAAM0b,EAAN,uBAA2D5M,QACnJoN,EAAMzU,KAAK,IAAMkU,GAAcvV,GAAG,eAAe,WAE/C,OADAsW,EAA+BR,GAC3BA,EAAMzU,KAAK,IAAM+T,GAAmBrZ,OAAS,GAC/C0a,EAAyBX,EAAO,CAC9BtE,MAAM,KAED,IAEPsE,EAAMzU,KAAK,IAAMqU,GAAkB7Q,OACnC4R,EAAyBX,GA3F/B,SAA0BA,EAAOgB,EAAsBD,GACrDjd,EAAE,IAAMkd,GAAsBtF,OAC9B,IAAIuF,EAAmBnd,EAAE,IAAMkd,EAAN,sBAGzBld,EAAE,cAAcyO,QAAQ,CACtBnG,UAAW6U,EAAiBhV,SAASE,IAAM,IAC1C,GAGH,IAAI+U,EAAcH,EAAsBrb,KAAK,kBAG7Csa,EAAMzU,KAAK,gBAAgB/C,MAAK,WAC9B,IAAI2Y,EAAYrd,EAAEgB,MACduD,EAAYvE,EAAEsd,KAAKtc,KAAKuD,UAAU1D,MAAM,MAAM,SAAU0c,EAAGrb,GAC7D,OAA4B,IAArBqb,EAAEhb,QAAQ,MACnB,IAAGib,OACoD,aAAnDH,EAAU5V,KAAK,2BAA2B8L,QAC5C6J,EAAcA,EAAYxc,QAAQ,IAAM2D,EAAY,IAAK8Y,EAAU5V,KAAK,2BAA2B8L,MAAM3S,QAAQ,kBAAmB,WAExI,IACAZ,EAAE,qBAAsBmd,GAAkBrO,KAAKsO,GAG/C,IAAIK,EAAavB,EAAMzU,KAAK,oBACxBiW,EAAmBP,EAAiB1V,KAAK,0BAA2BkW,MAAM,SAC1EF,EAAWG,QAAO,WACpB,OAAO5d,EAAEgB,MAAMuS,KACjB,IAAGpR,OAAS,EACVsb,EAAW/Y,MAAK,WACdgZ,EAAiB1F,KAAK,KAAK9S,OAAOlF,EAAEgB,MAAMuS,MAAM3S,QAAQ,YAAa,IAAM,SAC7E,IAEA8c,EAAiBzS,OAInBkS,EAAiB1V,KAAK,aAAkBrB,GAAG,SAAS,WAClD8V,EAAMzU,KAAK,IAAMkU,GAAckC,IAAI,eACnC3B,EAAMzU,KAAK,IAAMkU,GAAc9H,QAAQ,cACzC,IAGAsJ,EAAiB1V,KAAK,aAAerB,GAAG,SAAS,WAG/C,OAFApG,EAAE,IAAMkd,GAAsBjS,OAC9BiR,EAAMzU,KAAK,IAAMqU,GAAkBlE,QAC5B,CACT,GACF,CA4CM0D,CAAiBY,EAAOR,EAA2BuB,IACnD,IAAAa,oBAEK,EACT,GACF,CACAC,CAAcxC,EAChB,CACAxW,OAAO9E,IAAIC,OAAOC,cAAcC,UAAS,WAKnCJ,EAAE,mBAAmBmC,QAAQ4C,OAAO9E,IAAI2T,MAAMzT,cAAc0T,QAAQ9O,OAAO9E,IAAI6T,OAAOC,aAAc/T,EAAE,2BAC1GA,EAAE,iDAAiDsD,KAAK,YAAY,GACpEoF,YAAW,WACT1I,EAAE,iDAAiD2O,WAAW,WAChE,GAAG,KACH3O,EAAE,mDAAmD0E,MAAK,WACxD,IAAIO,EAAQjF,EAAEgB,MACZgd,EAAQhe,EAAE,wBAAyBiF,GACrCgZ,OAASje,EAAE,wBAAyBiF,GAChCgZ,OAAO9b,QACT6b,EAAMrY,SAAS,QAEnB,IACA2V,EAAiB,0BACjBA,EAAiB,mBACjBtb,EAAE,mBAAmB0E,MAAK,WACxB,IAAIO,EAAQjF,EAAEgB,MACViE,EAAMxB,SAAS,cACjBiF,YAAW,WACTzD,EAAMU,SAAS,0BACjB,GAAG,IAEP,GACF,GACD,CA/ND,CA+NGb,O,oBChOH,SAAW9E,GA0DT,SAASke,EAAcC,EAAIP,EAAQQ,GAGjC,IAAIC,EAeAC,EAdFC,EAAa,GACbC,EAAmB,GAcrB,IAbAL,EAAG1W,KAAK,gBAAgBqR,SAAS,gBAAgBpU,MAAK,WACpD2Z,EAAOre,EAAEgB,MACTud,EAAW7a,KAAK2a,GACVA,EAAK/a,KAAK,aAAaf,QAAQqb,IAAW,GAAgB,KAAXA,IAEnDY,EAAiB9a,KAAK2a,GACtBE,EAAWE,MAEf,IAKKvc,EAAI,EAAGA,EAAIqc,EAAWpc,OAAS,EAAGD,IACrC,IAAKwc,EAAIxc,EAAI,EAAGwc,EAAIH,EAAWpc,OAAQuc,IACrC,OAAQN,GACN,IAAK,QACaG,EAAWrc,GAAGoB,KAAK,cACnBib,EAAWG,GAAGpb,KAAK,gBAEjCgb,EAAMC,EAAWrc,GACjBqc,EAAWrc,GAAKqc,EAAWG,GAC3BH,EAAWG,GAAKJ,GAElB,MACF,IAAK,OACaC,EAAWrc,GAAGoB,KAAK,aACnBib,EAAWG,GAAGpb,KAAK,eAEjCgb,EAAMC,EAAWrc,GACjBqc,EAAWrc,GAAKqc,EAAWG,GAC3BH,EAAWG,GAAKJ,GAS1BH,EAAG1W,KAAK,gBAAgBqR,SAAS,gBAAgBR,SACjD6F,EAAG1W,KAAK,gBAAgBvC,OAAOqZ,GAC/BJ,EAAG1W,KAAK,+BAA+BvB,SAAShB,OAAOsZ,GACvD,IAAK,IAAIE,EAAI,EAAGA,EAAIH,EAAWpc,OAAQuc,IACD,QAAhCH,EAAWG,GAAG9a,IAAI,YACpB2a,EAAWG,GAAG5W,YAGlB,IAAK,IAAI6W,EAAI,EAAGA,EAAIH,EAAiBrc,OAAQwc,IAC3CH,EAAiBG,GAAGjY,SAExB,CAlHA3B,OAAO9E,IAAIC,OAAOC,cAAcC,UAAS,WACvCJ,EAAE,+BAA+B0E,MAAK,WACpC,IAAIO,EAAQjF,EAAEgB,MAGZ4d,GAFa3Z,EAAMwC,KAAK,gBAAgBqR,SAAS,gBAAgB3W,OAC7C8C,EAAMwC,KAAK,gBAAgBqR,SAAS,gBAAgB3W,OACvD8C,EAAMwC,KAAK,2BAA2B8L,OACvDsL,EAAe5Z,EAAMwC,KAAK,8BAA8B8L,MAI1DtO,EAAMwC,KAAK,yCAAyC3B,KAAKb,EAAMwC,KAAK,4CAA8CoX,EAAe,MAAM/Y,QACvIb,EAAMwC,KAAK,sCAAsC3B,KAAKb,EAAMwC,KAAK,yCAA2CmX,EAAiB,MAAM9Y,QACnIb,EAAMwC,KAAK,uCAAuCqX,SAClD7Z,EAAMwC,KAAK,oCAAoCqX,SAC/CZ,EAAcjZ,EAAO2Z,EAAgBC,GACrC7e,EAAE,QAAQwO,OAAM,WACdvJ,EAAMwC,KAAK,uCAAuCwD,OAClDhG,EAAMwC,KAAK,oCAAoCwD,MACjD,IACAhG,EAAMwC,KAAK,yCAAyC+G,OAAM,SAAUnI,GAClEA,EAAEC,kBACFrB,EAAMwC,KAAK,uCAAuCqX,SAClD7Z,EAAMwC,KAAK,yCAAyCsX,YAAY,cAChE9Z,EAAMwC,KAAK,oCAAoCwD,OAC/ChG,EAAMwC,KAAK,sCAAsCJ,YAAY,aAC/D,IACApC,EAAMwC,KAAK,sCAAsC+G,OAAM,SAAUnI,GAC/DA,EAAEC,kBACFrB,EAAMwC,KAAK,oCAAoCqX,SAC/C7Z,EAAMwC,KAAK,sCAAsCsX,YAAY,cAC7D9Z,EAAMwC,KAAK,uCAAuCwD,OAClDhG,EAAMwC,KAAK,yCAAyCJ,YAAY,aAClE,IACApC,EAAMwC,KAAK,uCAAuC+G,OAAM,WACtD,IAAIwQ,EAAYhf,EAAEgB,MACdge,EAAU1b,KAAK,eAAiB2B,EAAMwC,KAAK,8BAA8B8L,QAC3EtO,EAAMwC,KAAK,uCAAuCwD,OAClDhG,EAAMwC,KAAK,yCAAyCJ,YAAY,cAChEpC,EAAMwC,KAAK,yCAAyC3B,KAAKkZ,EAAUlZ,QACnE+Y,EAAeG,EAAU1b,KAAK,cAC9B2B,EAAMwC,KAAK,8BAA8B8L,IAAIyL,EAAU1b,KAAK,eAC5D4a,EAAcjZ,EAAO2Z,EAAgBC,GAEzC,IACA5Z,EAAMwC,KAAK,oCAAoC+G,OAAM,WACnD,IAAIwQ,EAAYhf,EAAEgB,MACdge,EAAU1b,KAAK,eAAiB2B,EAAMwC,KAAK,2BAA2B8L,QACxEtO,EAAMwC,KAAK,oCAAoCwD,OAC/ChG,EAAMwC,KAAK,sCAAsCJ,YAAY,cAC7DpC,EAAMwC,KAAK,sCAAsC3B,KAAKkZ,EAAUlZ,QAChE8Y,EAAiBI,EAAU1b,KAAK,cAChC2B,EAAMwC,KAAK,2BAA2B8L,IAAIyL,EAAU1b,KAAK,eACzD4a,EAAcjZ,EAAO2Z,EAAgBC,GAEzC,GACF,GACF,GA2DD,CApHD,CAoHG/Z,O,wBCyqBH,IAAW9E,EACLif,EACFC,GA5xBJ,SAAWlf,EAAGC,GACZ,IAAIkf,EACmB,eADnBA,EAEiB,aAFjBA,EAGiB,aAEnBC,EAAqB,CACnBC,oBAAqB,SAA6BC,EAAOC,GACvD,MAAO,EACT,EACAC,mBAAoB,SAA4B5d,EAAM8P,EAAO+N,GAC3DA,EAAK9Z,SAAS+L,EAAQ,GAAK,EAAI,2BAA6B,0BAC9D,EACAgO,UAAW,CAAC,EACZ9L,MAAO,CACL+L,kBAAmB,kBACnBC,kBAAmB,kBACnBC,qBAAsB,oBACtBC,wBAAyB,uBACzBC,yBAA0B,wBAC1BC,6BAA8B,2BAC9BC,iCAAkC,+BAClCC,qCAAsC,kCACtCC,8BAA+B,6BAC/BC,8BAA+B,4BAC/BC,gBAAiB,iBAEnBC,gBAAiB,CAAC,GAEpBC,EAAoB,CAAC,EACrBC,EAAqB,SAA4BC,GAC/C,OAAOA,EAAU7e,KAAK,gBACxB,EACA8e,EAAuB,SAA8BD,GACpCD,EAAmBC,GAAlC,IACEE,EAAS3gB,EAAE,kCAAmCygB,GAEhD,OADWrf,KAAKC,MAAMsf,EAAO7R,OAE/B,EAIA8R,EAAc,SAAqBC,GACjC,4DAG0B9G,MAAK,SAAUU,GACvCpD,SAASC,OAAOuJ,EAAY,GAAK,CAC/BtJ,MAAO,GACN,CACDA,MAAO,EACPC,KAAMC,OAAOC,QAEjB,IAAG2D,OAAM,SAAU5B,GACjBhK,QAAQC,IAAI,+DACZD,QAAQC,IAAI+J,EACd,GACF,EAiBAqH,EAAmB,WACjB9gB,EAAE,6BAA6B0E,MAAK,WAClC,IAIEqc,EACAC,EALEP,EAAYzgB,EAAEgB,MAChBigB,EAAkBT,EAAmBC,GACrCS,EAASR,EAAqBD,GAC9BU,EAAoBnhB,EAAE,qBAAsBygB,GAK9C,GAAIW,EAAYX,GAAY,CAC1B,IAAIY,EAAkB,WACpBZ,EAAU1B,YAAY,QACtB/e,EAAE,yBAA0BmhB,GAAmB5N,IAAI,IACnDvT,EAAE,wBAAwB4X,OACtBuJ,EAAkB1d,SAAS,QAC7BiF,YAAW,WACTzI,EAAIqhB,UAAUnhB,cAAcC,SAASihB,EACvC,GAAG,GAEHphB,EAAIqhB,UAAUnhB,cAAcmY,OAAO+I,EAEvC,EACAF,EAAkBjc,OAAO,oJACzB,IAAIqc,EAAiBvhB,EAAE,mBAAoBygB,GACvCc,EAAepf,SACjBof,EAAejJ,SACftY,EAAE,4BAA6BmhB,GAAmBhK,OAAOoK,IAE3DJ,EAAkB3S,OAAM,SAAUnI,GAChCA,EAAEC,kBACF+a,GACF,GACF,CAEIG,EAAaf,KACfU,EAAkBjc,OAAO,mLACzBlF,EAAE,yBAA0BmhB,GAAmBM,OAAM,SAAUnO,GAC7D,IAAIlK,EAAQpJ,EAAEgB,MAAMuS,MAAM8I,cAC1Brc,EAAE,uBAAwBygB,GAAW/b,MAAK,WACxC,IAAIO,EAAQjF,EAAEgB,MACZ0gB,EAAU1hB,EAAE,oCAAqCiF,GACjD2S,GAAO,EACT8J,EAAQhd,MAAK,YACyC,GAAhD1E,EAAEgB,MAAM8E,OAAOuW,cAAc9Z,QAAQ6G,KACvCwO,GAAO,EAEX,IACIA,EAAM3S,EAAM2S,OAAY3S,EAAMgG,MACpC,GACF,IACAjL,EAAE,QAASmhB,GAAmB3S,OAAM,SAAUnI,GAC5CA,EAAEC,iBACJ,KAIF6a,EAAkBjc,OAAO,wGACzB6b,EAAmB/gB,EAAE,iCAAkCygB,GACvDkB,EAAalB,EAAWM,GAGxBI,EAAkBjc,OAAO,sGACzB8b,EAAkBhhB,EAAE,+BAAgCygB,GAGpDxgB,EAAI2T,MAAMzT,cAAciG,GAAGgZ,EAAmBxL,MAAM+L,mBAAmB,SAAUiC,EAAYhgB,EAAMigB,GACjG,GAAIX,EAAOY,UAAYF,GAAcV,EAAOY,UAAYF,GAAcX,EAAiB,CACrF,GAAIY,GAAapB,EAAU7e,KAAK,gBAAkBigB,EAChD,OAEFE,EAAatB,GACRuB,EAAUvB,EAAW7e,EAAMof,IAC9BiB,EAAoBxB,EAAWU,GAEjCe,EAAczB,GACd0B,EAAqBjB,EAAOY,SAAUrB,EAAW7e,EAAMuf,GACvDlhB,EAAI2T,MAAMzT,cAAc0T,QAAQuL,EAAmBxL,MAAMyM,gBAAiBY,EAAiBC,EAAOtf,KACpG,CACF,IACA3B,EAAI2T,MAAMzT,cAAciG,GAAGgZ,EAAmBxL,MAAMgM,mBAAmB,SAAUkC,EAAUD,GACzF,GAAIC,GAAYZ,EAAOY,SAAU,CAC/B,GAAID,GAAapB,EAAU7e,KAAK,gBAAkBigB,EAChD,OAEFE,EAAatB,GACRzgB,EAAE,uBAAwBygB,GAAWte,QACxCigB,EAAwB3B,EAAWU,EAEvC,CACF,IACAlhB,EAAI2T,MAAMzT,cAAciG,GAAGgZ,EAAmBxL,MAAMiM,sBAAsB,SAAUiC,GAC9EA,GAAYZ,EAAOY,WACrBO,EAAU5B,GACV6B,EAAU7B,GACV8B,EAAY9B,GAEhB,IACAxgB,EAAI2T,MAAMzT,cAAciG,GAAGgZ,EAAmBxL,MAAMkM,yBAAyB,SAAUgC,EAAUU,EAAUC,EAAQC,EAAcC,EAAeC,GAC1Id,GAAYZ,EAAOY,WACrBO,EAAU5B,GACV6B,EAAU7B,GACV8B,EAAY9B,GACZoC,EAAiBpC,EAAWS,EAAOY,SAAUU,EAAUC,EAAQC,EAAcC,GAAe,SAAUG,GAChGF,KACgC,IAA9BE,EAAYvgB,QAAQ,KACtBugB,GAAe,IAAMF,EAErBE,GAAe,IAAMF,GAGzBG,EAAwBtC,EAAWqC,GAC/B5B,EAAO8B,aACyB,IAA9BF,EAAYvgB,QAAQ,KACtBugB,GAAe,YAAc5B,EAAO8B,UAEpCF,GAAe,YAAc5B,EAAO8B,WAGxCC,EAAmBxC,EAAWS,EAAOY,SAAUgB,EAAa,GAAG,EACjE,IAEJ,IACA7iB,EAAI2T,MAAMzT,cAAciG,GAAGgZ,EAAmBxL,MAAMwM,+BAA+B,SAAUd,EAAO/d,GAClGgf,EAAkBjB,GAASA,EAAQ,IAAM/d,EAEzC2hB,EAAkBzC,EACpB,IAIAyC,EAAkBzC,GAGdW,EAAYX,IACd0C,EAAgB1C,EAAWS,EAAOtf,KAEtC,GACF,EACAshB,EAAoB,SAA2BzC,GAC7C,IAEE2C,EAFEnC,EAAkBT,EAAmBC,GACvCS,EAASR,EAAqBD,GAE5BS,EAAOY,SACL1C,EAAmBkB,gBAAgB3c,eAAeud,EAAOY,WAC3DsB,EAAqBhE,EAAmBkB,gBAAgBY,EAAOY,UAC/D7hB,EAAI2T,MAAMzT,cAAc0T,QAAQuP,EAAmBC,UAAWD,EAAmBE,YAAapC,EAAOY,WAErGyB,EAA8B9C,EAAWS,EAAOY,UAEzCZ,EAAOtf,OAChB0gB,EAAU7B,GACVxgB,EAAI2T,MAAMzT,cAAc0T,QAAQuL,EAAmBxL,MAAM+L,kBAAmBsB,EAAiBC,EAAOtf,MAExG,EACAihB,EAAmB,SAA0BpC,EAAW+C,EAAYC,EAAMzI,EAAI0H,EAAcC,EAAe/I,GACzG,GAAY,MAAR6J,GAAsB,MAANzI,EAAY,CAC9B,IAAI0I,EAAQC,EAAuBlD,GACnCgD,EAAOC,EAAMD,KACbzI,EAAK0I,EAAM1I,EACb,CACA,IAAI4I,EAA4C,KAAjC,IAAI5gB,MAAO6gB,oBACxBjiB,EAAO,CACL6hB,KAAM,IAAIzgB,KAAKygB,EAAOG,GAAUE,cAAcxhB,UAAU,EAAG,IAAI1B,QAAQ,KAAM,IAC7Eoa,GAAI,IAAIhY,KAAKgY,EAAK4I,GAAUE,cAAcxhB,UAAU,EAAG,IAAI1B,QAAQ,KAAM,KAE3EsgB,EAASR,EAAqBD,GAC9BsD,EAAgBtD,EAAU7e,KAAK,iBAC/BoiB,EAAcvD,EAAU7e,KAAK,QAC7BqiB,EAAO,uCAAuCrjB,QAAQ,SAAS,SAAUwB,GACvE,IAAIgS,EAAoB,GAAhB8P,KAAKC,SAAgB,EAE7B,OADW,KAAL/hB,EAAWgS,EAAQ,EAAJA,EAAU,GACtBgQ,SAAS,GACpB,IACEC,EAAWjjB,KAAKK,UAAUG,GAC9B,GAAImiB,GAAiBA,EAAcO,WAAaN,EAC9C,IACED,EAAcQ,wBAAyB,EACvCR,EAAcS,OAChB,CAAE,MAAO/K,GACPhK,QAAQC,IAAI+J,EACd,CAEFgH,EAAU7e,KAAK,OAAQqiB,GACvBF,EAAgB/jB,EAAE6Z,KAAK,CACrB9V,IAAKyf,EACLiB,KAAM,MACN7iB,KAAM,CACJmB,KAAMshB,GAERK,WAAY,SAAoB1K,EAAO2K,GACrC3K,EAAMsK,UAAYL,CACpB,IACClK,MAAK,SAAUnY,EAAMgjB,EAAW5K,GACjC,GAAIyG,EAAU7e,KAAK,SAAWoY,EAAMsK,UAApC,CACA,IAAIO,EAAYjjB,EACdgc,EAASnJ,OAAOqQ,KAAKpC,GAAc5hB,KAAI,SAAUikB,GAC/C,OAAOrC,EAAaqC,EACtB,IAAGvH,KAAK,IAAMmF,EAAgB,KAC9BqC,EAAcvQ,OAAOqQ,KAAKvE,GAAmBzf,KAAI,SAAUikB,GACzD,OAAOxE,EAAkBwE,EAC3B,IAAGvH,KAAK,SACNI,GAAUA,EAAOzb,OAAS,EACxB+e,EAAOtD,SAAQA,GAAU,QAAUsD,EAAOtD,QAE9CA,EAASsD,EAAOtD,OAEdoH,GAAeA,EAAY7iB,OAAS,IAClCyb,GAAUA,EAAOzb,OAAS,EAC5Byb,GAAU,QAAUoH,EAEpBpH,EAASoH,GAGTpH,GAAUA,EAAOzb,OAAS,IAG5B0iB,GAAa,YADbjH,GADAA,EAASA,EAAOhd,QAAQ,IAAK,QACbA,QAAQ,IAAK,SAG/BgZ,EAASnE,MAAM,KAAM,CAACoP,GAzB+B,CA0BvD,IAAG,SAAU7K,EAAOC,EAAYC,GAC9B,IAAIF,EAAMuK,wBACN9D,EAAU7e,KAAK,SAAWoY,EAAMsK,UACpC,GACO,MADCtK,EAAMiL,OAEVlgB,OAAOrE,SAAWwgB,EAAOgE,mBAGzBjlB,EAAI2T,MAAMzT,cAAc0T,QAAQuL,EAAmBxL,MAAMgM,kBAAmB4D,EAGlF,IACAO,EAAcO,UAAYL,CAC5B,EACAhB,EAAqB,SAA2BxC,EAAW+C,EAAYqB,EAAWM,EAAgBC,GAChG3E,EAAU7e,KAAK,aAAcijB,GAC7B,IAAI3D,EAASR,EAAqBD,GAChB,OAAdoE,GAAsBM,EAAiB,GAEzCllB,EAAI2T,MAAMzT,cAAc0T,QAAQuL,EAAmBxL,MAAMgM,kBAAmB4D,GAG9ExjB,EAAE6Z,KAAK,CACL9V,IAAK8gB,EACLJ,KAAM,QACL1K,MAAK,SAAUnY,EAAMgjB,EAAW5K,GACjC,OAAQA,EAAMiL,QACZ,KAAK,IACHvc,YAAW,WACTua,EAAmBxC,EAAW+C,EAAYqB,IAAaM,EAAgBC,EACzE,GAAG,KACH,MACF,KAAK,IACCA,GAAkB9C,EAAU7B,GAC3B7e,EAAK+B,eAAe,UAAiC,GAArB/B,EAAKyjB,MAAMljB,OAG9ClC,EAAI2T,MAAMzT,cAAc0T,QAAQuL,EAAmBxL,MAAM+L,kBAAmB6D,EAAY5hB,EAAMijB,GAF9F5kB,EAAI2T,MAAMzT,cAAc0T,QAAQuL,EAAmBxL,MAAMgM,kBAAmB4D,EAAYqB,GAMhG,IAAG,SAAU7K,EAAO4K,EAAW1K,GAE7B,GADIkL,GAAkB9C,EAAU7B,GAEzB,MADCzG,EAAMiL,OAEVlgB,OAAOrE,SAAWwgB,EAAOgE,mBAGzBjlB,EAAI2T,MAAMzT,cAAc0T,QAAQuL,EAAmBxL,MAAMgM,kBAAmB4D,EAGlF,GACF,EACA7B,EAAe,SAAsBlB,EAAWI,GAC9C,IAAIK,EAASR,EAAqBD,GAChC6E,EAAUpE,EAASA,EAAOqE,OAAS,GACnCC,EAAmBxlB,EAAE,+CACvBslB,EAAQzhB,SAAQ,SAAU4hB,GACxB,IAzT2DC,EAyTvDC,EAAU,CAAC,kCAAmCF,EAAOC,WACvDE,EAAQH,EAAOG,MACbH,EAAOlhB,WACTohB,EAAQjiB,KAAK+hB,EAAOlhB,WAElBkhB,EAAOI,cACTF,EAAQjiB,KAAK,kBAEX+hB,EAAOK,cACTH,EAAQjiB,KAAK,kBAlU4CgiB,EAoU7BD,EAAOC,UAnUhCtG,EAAmBM,UAAU/b,eAAe+hB,IAAatG,EAAmBM,UAAUgG,GAAWK,aAmUd,IAArCJ,EAAQpjB,QAAQ,iBACjEojB,EAAQjiB,KAAK,YAEf,IAAIsiB,EAAUhmB,EAAE,eAAiB2lB,EAAQnI,KAAK,KAAO,WAAaoI,EAAQ,iBAC1EI,EAAQpkB,KAAKud,EAAwBsG,EAAOC,WAC5CF,EAAiBtgB,OAAO8gB,EAC1B,IACAnF,EAAW3b,OAAOsgB,GAClBxlB,EAAE,4CAA6C6gB,GAAYrS,OAAM,SAAUnI,GACzEA,EAAEC,kBACF,IAAIrB,EAAQjF,EAAEgB,MACZilB,EAAcjmB,EAAE,oCAChBuf,EAAWta,EAAMxB,SAAS,eAAiB,eAAiB,cAC5DiiB,EAAYzgB,EAAMrD,KAAKud,GAIzB,GAHA8G,EAAY5e,YAAY,eACxB4e,EAAY5e,YAAY,gBACxBpC,EAAMU,SAAS4Z,GACX2B,EAAOY,SACTQ,EAAU7B,GACVwC,EAAmBxC,EAAWS,EAAOY,SAAUoE,EAAiCzF,EAAWiF,EAAWnG,GAAW,OAC5G,CACL,IAAI3d,EAAO,GACX5B,EAAE,uBAAwBygB,GAAW/b,MAAK,WACxC,IAAIO,EAAQjF,EAAEgB,MACZmlB,EAAW,gCAAkCT,EAAY,QAC3D9jB,EAAK8B,KAAK,CACR,IAAOuB,EACP,KAAQjF,EAAEmmB,EAAUlhB,GAAOa,QAE/B,IACAlE,EAAKwc,MAAK,SAAUhI,EAAGgQ,GACrB,MAAgB,eAAZ7G,EACKnJ,EAAEtQ,KAAKuW,cAAgB+J,EAAEtgB,KAAKuW,eAAiB,EAAI,EAErD+J,EAAEtgB,KAAKuW,cAAgBjG,EAAEtQ,KAAKuW,eAAiB,EAAI,CAC5D,IACAiG,EAAU7B,GACV7e,EAAKiC,SAAQ,SAAUwa,EAAM3M,EAAO2U,GAClCrmB,EAAE,+BAAgCygB,GAAWvb,OAAOmZ,EAAKiI,IAC3D,GACF,CACF,GACF,EA6EAnD,EAAkB,SAAyB1C,EAAW7e,GACxC2kB,EAAS3kB,GACfiC,SAAQ,SAAUyiB,GAClBA,EAAI3iB,eAAe,cAAgB2iB,EAAIE,WACzCC,EAA6BhG,EAAW6F,EAE5C,GACF,EACAI,EAAiB,SAAwBC,GACvC,IAAIC,EAAcD,EAAQra,MAAM,GAAG/G,KACjCshB,EAASF,EAAQra,MAAM,GAAGua,OAC5B,GAAID,EAAa,CACf,GAAyC,MAArCC,EAAOxK,cAAc/X,OAAO,EAAG,GAAY,CAC7C,IAAIwiB,EAAqB9mB,EAAE,mCAM3B,GALA8mB,EAAmBpiB,MAAK,WAEtB,IAAIwc,EAASR,EAAqB1gB,EAAEgB,OACpCf,EAAI2T,MAAMzT,cAAc0T,QAAQ5T,EAAImf,mBAAmBxL,MAAMiM,qBAAsBqB,EAAOY,SAC5F,KACgD,IAA5C8E,EAAYrkB,QAAQ,mBAA2B,CAEjD,IAAIwkB,EAAgB/mB,EAAE,kBACpBgnB,EAAqBD,EAAc5kB,OAASue,EAAqBqG,GAAiB,KACzD,OAAvBC,GACFA,EAAmBplB,KAAKyjB,MAAMxhB,SAAQ,SAAUwa,GAC1CA,EAAKmI,YACPI,EAAcA,EAAYhmB,QAAQ,kBAAmBmmB,EAAcnlB,KAAK,aAAahB,QAAQ,aAAcyd,EAAK4I,WAEpH,GAEJ,CAeA,OAbAjnB,EAAE6Z,KAAK+M,EAAa,CAClBM,SAAU,WACqB,eAAzBL,EAAOxK,cACTtX,OAAOrE,SAASymB,QAAO,GAEvBL,EAAmBpiB,MAAK,WAEtB,IAAIwc,EAASR,EAAqB1gB,EAAEgB,OACpCf,EAAI2T,MAAMzT,cAAc0T,QAAQ5T,EAAImf,mBAAmBxL,MAAMkM,wBAAyBoB,EAAOY,SAAU,KAAM,KAAM,CAAC,EAAG,KAAM,GAC/H,GAEJ,KAEK,CACT,CAEA,OADA/c,OAAOrE,SAAWkmB,GACX,CACT,CACA,OAAO,CACT,EACAH,EAA+B,SAAsChG,EAAWkG,GAC9E,IACE/N,EADEwO,EAAc3G,EAAUnd,KAAK,qBAEjC,IAAKsV,KAAK+N,GAC6B,GAAjCS,EAAY7kB,QAAQ,IAAMqW,KAC5BwO,EAAcA,EAAYxmB,QAAQ,IAAMgY,EAAG+N,EAAQ/N,KAGvD5Y,EAAE,4BAA6BygB,GAAW3a,KAAKshB,GAC/CpnB,EAAE,qBAAsBygB,GAAWpZ,YAAY,OACjD,EACAggB,EAAiB,SAAwB5G,EAAWkG,GAClD,IAAIW,EAAoBC,EACxB,SAAIZ,EAAQra,OAASqa,EAAQra,MAAMnK,OAAS,IAC1CmlB,EAAqBX,EAAQra,MAAM,GAAGkb,YACtCD,EAAqBZ,EAAQra,MAAM,GAAGmb,YAClCH,GAAsBC,MACxBtnB,EAAI2T,MAAMzT,cAAc0T,QAAQuL,EAAmBxL,MAAMwM,8BAA+BkH,EAAoBC,IACrG,EAIb,EACAvF,EAAY,SAAmBvB,EAAW7e,EAAMif,GAC9C,IApf2B6G,EAofvBC,EAAa3nB,EAAE,uBAAwBygB,GAAWte,OACpDylB,EAAoBD,EAEpBE,EADSnH,EAAqBD,GACVqH,WAAa,EACjCC,GAAc,EAUhB,OATUxB,EAAS3kB,GACbiC,SAAQ,SAAUyiB,IACH,GAAfuB,GAAoBF,EAAaE,EACnChH,EAAW3b,OAhKN,SAAkBub,EAAWkG,EAASjV,GAC/C,IAEEnQ,EACAD,EACA0mB,EACAnC,EACAC,EACAH,EACAK,EARE9E,EAASR,EAAqBD,GAChC6E,EAAUpE,EAASA,EAAOqE,OAAS,GAQnC9F,EAAOzf,EAAE,sFAgEX,OA/DAC,EAAImf,mBAAmBI,mBAAmBmH,EAASjV,EAAO+N,GAAO6F,EAAQzhB,SAAQ,SAAU4hB,GASzF,GARAE,EAAU,CAAC,+BACXrkB,EAAMmkB,EAAOC,UACbC,EAAQjiB,KAAKpC,GACb0mB,EAAQvC,EAAOlhB,UAAY,IAAMkhB,EAAOlhB,UAAY,GAAIohB,EAAQjiB,KAAKskB,GACrEhC,EAAUhmB,EAAE,oCAAsCsB,EAAKmf,GACvDoF,EAAeG,EAAQviB,SAAS,kBAChCqiB,EAAeE,EAAQviB,SAAS,mBAChClC,EAAQolB,EAAQhjB,eAAerC,IAAQqlB,EAAQrlB,GAAOqlB,EAAQrlB,GAAO,cAChD2mB,MACnB,GAAI1mB,EAAMY,OAAS,KAAOZ,EAAM,aAAcwJ,QAAS,CACrD,IAAImd,EAAW,GACf3mB,EAAMsC,SAAQ,SAAUskB,GACtB,IAAK,IAAIC,KAAUD,EACjBD,EAASxkB,KAAK,aAAcmJ,OAAOub,EAAQ,MAAOvb,OAAOsb,EAASC,GAAS,QAE/E,IACA7mB,EAAQ2mB,EAAS1K,KAAK,GACxB,MACEjc,EAAQ,MAAQA,EAAMic,KAAK,WAAa,OAGxCqI,GACFF,EAAQjiB,KAAK,kBAEXoiB,GACFH,EAAQjiB,KAAK,kBAEf,IACE+b,EAAKva,OAAOlF,EAAE,eAAiB2lB,EAAQnI,KAAK,KAAO,iBAAmBjc,EAAMX,QAAQ,KAAM,IAAM,WAAaW,EAAQ,iBACvH,CAAE,MAAO8E,GACPoZ,EAAKva,OAAOlF,EAAE,eAAiB2lB,EAAQnI,KAAK,KAAO,WAAajc,EAAQ,iBAC1E,CACF,IACIkf,EAAUhd,SAAS,mBAErBkjB,EAAQra,MAAQ,CAAC,CACf/G,KAAMkb,EAAU7e,KAAK,YAAYhB,QAAQ,aAAc+lB,EAAQM,WAC/DJ,OAAQ,aACRwB,IAAK,UAGL5H,EAAUhd,SAAS,mBAErBkjB,EAAQra,MAAQ,CAAC,CACf/G,KAAM,mBAAqBohB,EAAQM,UACnCJ,OAAQ,KACRwB,IAAK,UAGL1B,EAAQra,OAASqa,EAAQra,MAAMnK,OAAS,IAC1Csd,EAAK9Z,SAAS,aACd3F,EAAE,+BAAgCyf,GAAM9Z,SAAS,aACjD3F,EAAE,+BAAgCyf,GAAMjR,MAAM,CAC5C8X,IAAKK,IACJ,SAAU2B,IACNtoB,EAAEgB,MAAMyC,SAAS,cAAgBzD,EAAEgB,MAAMyC,SAAS,aAAezD,EAAEgB,MAAMyC,SAAS,eACnF2d,EAAYX,IAAYgG,EAA6BhG,EAAW6H,EAAG1mB,KAAK0kB,KACvEI,EAAe4B,EAAG1mB,KAAK0kB,MAC1Be,EAAe5G,EAAW6H,EAAG1mB,KAAK0kB,KAEtC,KAEK7G,CACT,CAqFwB8I,CAAS9H,EAAW6F,EAAKqB,MAE3CI,GAAc,CAElB,IAhgB2BL,EAigBlB1nB,EAAE,oCAAsC4nB,EAAoB,IAAKnH,GAhgB1E,4DAG0B1G,MAAK,SAAUU,GACvCpD,SAASmR,cAAcd,EAAO,GAAI,CAChCnQ,MAAO,GACN,CACDA,MAAO,EACPC,KAAMC,OAAOC,QACZ,IACL,IAAG2D,OAAM,SAAU5B,GACjBhK,QAAQC,IAAI,+DACZD,QAAQC,IAAI+J,EACd,KAofQsO,CACV,EACAxB,EAAW,SAAkB3kB,GAI3B,OAHIA,EAAK+B,eAAe,WACtB/B,EAAKyjB,MAAQzjB,EAAK6mB,OAEhB7mB,EAAK+B,eAAe,SACf/B,EAAKyjB,MAEP,EACT,EACAjE,EAAc,SAAqBX,GACjC,OAAOA,EAAUhd,SAAS,YAC5B,EACA+d,EAAe,SAAsBf,GACnC,OAAOA,EAAUhd,SAAS,aAC5B,EACA6e,EAAY,SAAmB7B,GAC7BzgB,EAAE,oBAAqBygB,GAAWnI,QACpC,EACA4J,EAAgB,SAAuBzB,GAEhCW,EAAYX,KACfzgB,EAAE,+BAAgCygB,GAAW5C,IAAI,aACjD7d,EAAE,+BAAgCygB,GAAWra,GAAG,aAAa,WAC3D,IAAInB,EAAQjF,EAAEgB,MACV+F,EAAW/G,EAAE,OAAQiF,GACrByjB,EAAK3hB,EAAS4hB,QAAQ/kB,IAAI,CAC5BglB,QAAS,SACT1b,MAAO,OACP2b,WAAY,WACXrO,SAAS,QACRkO,EAAGxb,QAAUnG,EAASmG,SACxBjI,EAAMU,SAAS,aAEjB+iB,EAAGpQ,QACL,IACAtY,EAAE,+BAAgCygB,GAAW5C,IAAI,YACjD7d,EAAE,+BAAgCygB,GAAWra,GAAG,YAAY,WAC9CpG,EAAEgB,MACRqG,YAAY,YACpB,KAEFrH,EAAE,iEAAkEygB,GAAWqI,OAAM,WACnF9oB,EAAEgB,MAAM2E,SAAS,YACnB,IAAG,WACD3F,EAAEgB,MAAMqG,YAAY,YACtB,IAGArH,EAAE,mEAAoEygB,GAAW/b,MAAK,WACpF,IAAIO,EAAQjF,EAAEgB,MACZ8E,EAAOb,EAAMa,OACiB,QAA5BA,EAAKyI,OAAOjK,OAAO,EAAG,KACxBW,EAAMU,SAAS,iBACfV,EAAMoC,YAAY,aAClBpC,EAAM6J,KAAK,YAAchJ,EAAO,gCAChCb,EAAMuJ,OAAM,SAAUnI,GACpB,IAAId,EAAOvF,EAAE,IAAKA,EAAEgB,OAAOsC,KAAK,QAElB,UADHtD,EAAE,IAAKA,EAAEgB,OAAOsC,KAAK,UAE9ByB,OAAO6H,KAAKrH,GAEZR,OAAOrE,SAAW6E,CAEtB,IAEJ,IAIAvF,EAAE,wEAAyEygB,GAAW/b,MAAK,WACzF,IAAIO,EAAQjF,EAAEgB,MACZ+nB,EAAkB/oB,EAAE,iBAAkBiF,GACtC+jB,EAAgBhpB,EAAE,eAAgBiF,GACpCA,EAAMU,SAAS,iBACfV,EAAMoC,YAAY,aAClB,IAAI4hB,EAAiB,GACrBF,EAAgBrkB,MAAK,WACnBukB,EAAevlB,KAAK1D,EAAEgB,MAAM8E,OAC9B,IACAkjB,EAActkB,MAAK,WACjB,IAAIO,EAAQjF,EAAEgB,MACZ8E,EAAOb,EAAMa,OACfb,EAAM6J,KAAK,YAAchJ,EAAO,qBAAuBmjB,EAAeC,QAAU,OAClF,GACF,GAEF,EACAjH,EAAsB,SAA6BxB,EAAWI,GAC5D,IAAIK,EAASR,EAAqBD,GAChCmF,EAAQ1E,EAAOiI,cAAgB,WAC/B5jB,EAAO2b,EAAOkI,cAAgB,IAChCppB,EAAE,sCAAuCygB,GAAWnI,SACpDuI,EAAW3b,OAAO,kFAAoFK,EAAO,2CAA6CqgB,EAAQ,oBAClKld,YAAW,WACTkY,EAAY5gB,EAAE,0CAA2C6gB,GAC3D,GAAG,IACL,EACAsB,EAAuB,SAA8BL,EAAUrB,EAAW7e,EAAMif,GAC9E,IAGEwI,EACAC,EACApnB,EAGAqnB,EACAC,EACAC,EAVEvI,EAASR,EAAqBD,GAChCiJ,EAAa9nB,EAAK8nB,WAClBC,EAAgC,MAAdD,EAAqBA,EAAWpd,MAAQ,GAI1Dsd,EAAuBD,EAAgBxnB,OACvC0nB,EAAgB3I,EAAO4I,cAAgB,YAKzC,IADA9pB,EAAE,uCAAwCygB,GAAWnI,SAChDpW,EAAI,EAAGA,EAAI0nB,EAAsB1nB,IAEpB,SADhBonB,EAAOK,EAAgBznB,IACdmmB,MACPgB,EAAWC,GAGC,MAAZD,GAA0C,IAAtBnI,EAAiB,WACvCqI,EAAeF,EAAS9jB,MACxBikB,EAAUO,EAAoBtJ,IAClBiF,WAAa8D,EAAQjK,WAC/BkK,EAAUrK,EAAmBC,oBAAoBmK,EAAQ9D,UAAW8D,EAAQjK,YAEzEkK,GAAWvI,EAAkB,YAChCuI,EAAU,WAAavI,EAAkB,WAEvCuI,IAASF,IAA+C,IAA/BA,EAAahnB,QAAQ,KAAc,IAAMknB,EAAU,IAAMA,GACtF5I,EAAW3b,OAAO,kIAAoIqkB,EAAe,KAAOM,EAAgB,oBAC5LjJ,EAAY5gB,EAAE,uCAAwC6gB,IACtD7gB,EAAE,yCAA0C6gB,GAAYrS,OAAM,SAAU8E,GACtEA,EAAM3G,iBACN4V,EAAY9B,GACZwC,EAAmBxC,EAAWqB,EAAU9hB,EAAEgB,MAAMsC,KAAK,SAAS,EAAO,EACvE,IAEJ,EACAif,EAAc,SAAqB9B,GACjCzgB,EAAE,uCAAwCygB,GAAWnI,SACrDtY,EAAE,kCAAmCygB,GAAWnI,SAChDtY,EAAE,qBAAsBygB,GAAWvb,OAAO,sDAC1ClF,EAAE,kCAAmCygB,GAAWvb,OAAO,+HACvD0b,EAAY5gB,EAAE,kCAAmCygB,GACnD,EACAsB,EAAe,SAAsBtB,GACnCzgB,EAAE,kCAAmCygB,GAAWnI,QAClD,EACA8J,EAA0B,SAAiC3B,EAAWI,GACpE,IACE+E,EADWlF,EAAqBD,GACA,iBAAK,gCACvCzgB,EAAE,0CAA2CygB,GAAWnI,SACxDuI,EAAW3b,OAAO,kHAAoH0gB,EAAQ,gBAC9IhF,EAAY5gB,EAAE,0CAA2C6gB,GAC3D,EACA8C,EAAyB,SAAgClD,GACvD,IAAIgC,EAAS,IAAIzf,KACfwf,EAAW,IAAIxf,KACfke,EAASR,EAAqBD,GAC9BuJ,EAAY9I,EAAkB,UAAIA,EAAkB,UAAI,MAQ1D,OAPI8I,EAAUznB,QAAQ,MAAQ,EAC5BigB,EAASyH,SAASzH,EAAS0H,WAAa/iB,SAAS6iB,IACxCA,EAAUznB,QAAQ,MAAQ,EACnCigB,EAAS2H,QAAQ3H,EAAS4H,UAAYjjB,SAAS6iB,IAE/CxH,EAAS6H,QAAQ7H,EAAS8H,UAAYnjB,SAAS6iB,IAE1C,CACLvG,KAAMjB,EACNxH,GAAIyH,EAER,EACAc,EAAgC,SAAuC9C,EAAWqB,GAChF7hB,EAAI2T,MAAMzT,cAAc0T,QAAQuL,EAAmBxL,MAAMkM,wBAAyBgC,EAAU,KAAM,KAAM,CAAC,EAAG,MAAO,KACrH,EACAiB,EAA0B,SAAiCtC,EAAWqC,GACpErC,EAAU7e,KAAKud,EAA0B2D,EAC3C,EACAoD,EAAmC,SAA0CzF,EAAWiF,EAAWnG,GACjGgL,EAAmB9J,EAAWiF,EAAWnG,GACzC,IACEkK,EADE3G,EAAcrC,EAAU7e,KAAKud,GAEjC,GAAoB,OAAhB2D,EAEF,OADA2G,EAAUrK,EAAmBC,oBAAoBqG,EAAWnG,IACvB,IAA9BuD,EAAYvgB,QAAQ,KAAcugB,EAAc,IAAM2G,EAAU3G,EAAc,IAAM2G,CAE/F,EACAM,EAAsB,SAA6BtJ,GACjD,MAAO,CACLiF,UAAWjF,EAAU7e,KAAKud,GAC1BI,SAAUkB,EAAU7e,KAAKud,GAE7B,EACAoL,EAAqB,SAA4B9J,EAAWiF,EAAWnG,GACrEkB,EAAU7e,KAAKud,EAAwBuG,GACvCjF,EAAU7e,KAAKud,EAAwBI,EACzC,EACA8C,EAAY,SAAmB5B,GAC7B,IAAI+I,EAAUO,EAAoBtJ,GAC9B+I,EAAQ9D,WAAa8D,EAAQjK,UAC/Bvf,EAAE,oCAAsCwpB,EAAQ9D,UAAWjF,GAAWpZ,YAAYmiB,EAAQjK,UAE5FkB,EAAU+J,WAAWrL,GACrBsB,EAAU+J,WAAWrL,EACvB,EACFlf,EAAIC,OAAOC,cAAcC,SAAS0gB,GAClC7gB,EAAI2T,MAAMzT,cAAciG,GAAG,yBAA0B0a,GACrD7gB,EAAI2T,MAAMzT,cAAciG,GAAGgZ,EAAmBxL,MAAMqM,kCAAkC,SAAUwK,EAAqB3I,GACnH1C,EAAmBkB,gBAAgBwB,GAAY,CAC7CuB,UAAWjE,EAAmBxL,MAAMmM,yBACpCuD,YAAamH,GAEfxqB,EAAI2T,MAAMzT,cAAc0T,QAAQuL,EAAmBxL,MAAMuM,8BAA+B2B,EAC1F,IACA7hB,EAAI2T,MAAMzT,cAAciG,GAAGgZ,EAAmBxL,MAAMsM,sCAAsC,SAAUuK,EAAqB3I,GACvH1C,EAAmBkB,gBAAgBwB,GAAY,CAC7CuB,UAAWjE,EAAmBxL,MAAMoM,6BACpCsD,YAAamH,GAEfxqB,EAAI2T,MAAMzT,cAAc0T,QAAQuL,EAAmBxL,MAAMuM,8BAA+B2B,EAC1F,IACA7hB,EAAImf,mBAAqBA,CAC1B,CAzxBD,CAyxBGta,OAAQC,OAAO9E,KACPD,EAiOR8E,OAhOGma,GAAkB,EACpBC,EAAW,KACbna,OAAO9E,IAAImf,mBAAmBC,oBAAsB,SAAUqG,EAAWnG,GAEvE,MAAO,WAAamG,GADQ,eAAZnG,EAA4B,OAAS,QAEvD,EACAxa,OAAO9E,IAAImf,mBAAmBI,mBAAqB,SAAU5d,EAAM8P,EAAO+N,GACxE,IAAIiL,EACFjG,EACAkG,EAAW,0BACXC,EAAY,2BACThpB,EAAKipB,kBAGK,GAATnZ,IACFuN,GAAkB,EAClBC,EAAW,MAEgB,GAAzBtd,EAAKipB,kBACP5L,IACAwF,EAAO,aACHvF,GAAUA,EAASvZ,SAAS,6BAEhC8e,EAAO,iBAETiG,EAAUzL,EAAiB,GAAK,EAAI2L,EAAYD,GAbhDD,EAAUhZ,EAAQ,GAAK,EAAIkZ,EAAYD,EAezClL,EAAK9Z,SAAS+kB,GACdjL,EAAK9Z,SAAS8e,GACdvF,EAAWO,CACb,EACA1a,OAAO9E,IAAImf,mBAAmBM,UAAc,GAAI,CAC9CoL,OAAO,GAET/lB,OAAO9E,IAAImf,mBAAmBM,UAAoB,SAAI,CACpDqL,cAAc,EACdC,cAAc,EACdjF,YAAY,GAEdhhB,OAAO9E,IAAImf,mBAAmBM,UAAqB,UAAI,CACrDqL,cAAc,EACdC,cAAc,EACdjF,YAAY,GAEdhhB,OAAO9E,IAAImf,mBAAmBM,UAAqB,UAAI,CACrDqL,cAAc,EACdC,cAAc,EACdjF,YAAY,GAEdhhB,OAAO9E,IAAImf,mBAAmBM,UAAuB,YAAI,CACvDqL,cAAc,EACdC,cAAc,EACdjF,YAAY,GAEdhhB,OAAO9E,IAAImf,mBAAmBM,UAAmC,wBAAI,CACnEqL,cAAc,EACdC,cAAc,EACdjF,YAAY,GAEdhhB,OAAO9E,IAAImf,mBAAmBM,UAAwB,aAAI,CACxDqL,cAAc,EACdhF,YAAY,GAEdhhB,OAAO9E,IAAImf,mBAAmBM,UAA8B,mBAAI,CAC9DqL,cAAc,EACdhF,YAAY,GAEdhhB,OAAO9E,IAAImf,mBAAmBM,UAAkB,OAAI,CAClDqL,cAAc,EACdC,cAAc,GAEhBjmB,OAAO9E,IAAImf,mBAAmBM,UAAoB,SAAI,CACpDqL,cAAc,EACdC,cAAc,EACdC,cAAc,GAEhBlmB,OAAO9E,IAAImf,mBAAmBM,UAAwB,aAAI,CACxDqL,cAAc,EACdC,cAAc,EACdC,cAAc,GAEhBlmB,OAAO9E,IAAImf,mBAAmBM,UAAmB,QAAI,CACnDqL,cAAc,EACdC,cAAc,EACdC,cAAc,GAEhBlmB,OAAO9E,IAAImf,mBAAmBM,UAAoB,SAAI,CACpDqL,cAAc,EACdC,cAAc,EACdjF,YAAY,GAEdhhB,OAAO9E,IAAImf,mBAAmBM,UAAoB,SAAI,CACpDqL,cAAc,EACdC,cAAc,EACdjF,YAAY,GAEdhhB,OAAO9E,IAAImf,mBAAmBM,UAAgB,KAAI,CAChDqL,cAAc,EACdC,cAAc,GAEhBjmB,OAAO9E,IAAImf,mBAAmBM,UAAmB,QAAI,CACnDqL,cAAc,EACdhF,YAAY,GAEdhhB,OAAO9E,IAAImf,mBAAmBM,UAAmB,QAAI,CACnDqL,cAAc,EACdhF,YAAY,GAEdhhB,OAAO9E,IAAImf,mBAAmBM,UAAgB,KAAI,CAAC,EACnD3a,OAAO9E,IAAImf,mBAAmBM,UAA4B,iBAAI,CAC5DqL,cAAc,EACdhF,YAAY,GAEdhhB,OAAO9E,IAAImf,mBAAmBM,UAA0B,eAAI,CAC1DqL,cAAc,EACdhF,YAAY,GAEdhhB,OAAO9E,IAAImf,mBAAmBM,UAA0B,eAAI,CAC1DqL,cAAc,EACdhF,YAAY,GAEdhhB,OAAO9E,IAAImf,mBAAmBM,UAAwB,aAAI,CACxDqL,cAAc,EACdhF,YAAY,GAEdhhB,OAAO9E,IAAImf,mBAAmBM,UAA0B,eAAI,CAC1DqL,cAAc,EACdhF,YAAY,GAEdhhB,OAAO9E,IAAImf,mBAAmBM,UAAyB,cAAI,CACzDqL,cAAc,EACdE,cAAc,GAEhBlmB,OAAO9E,IAAImf,mBAAmBM,UAAuB,YAAI,CACvDqG,YAAY,GAEdhhB,OAAO9E,IAAImf,mBAAmBM,UAAqB,UAAI,CACrDqG,YAAY,GAEd9lB,IAAI2T,MAAMzT,cAAciG,GAAGrB,OAAO9E,IAAImf,mBAAmBxL,MAAMyM,iBAAiB,WAgF9E,SAAS6K,EAAOC,GACd,IAAItG,EAAY,qDAAsEsG,EACtFpmB,OAAOrE,SAAWmkB,CACpB,CAhFA7kB,EAAE,yCAAyC0E,MAAK,WAC9C,IAAI0mB,GAAa,EACbC,EAAYrrB,EAAEgB,MAAM8X,SAAS,QAAQhT,KAAK,IACjB,QAAzB9F,EAAEgB,MAAMY,KAAK,WACfypB,EAAUnmB,OAAO,gDACjBkmB,GAAa,GAEXA,GACFprB,EAAEgB,MAAM+E,QAAQ,mBAAmBnE,KAAK,eAAgBwpB,EAE5D,IACAprB,EAAE,wBAAwB0E,MAAK,WAC7B,IAAI4mB,EAAatrB,EAAEgB,MAAM8X,SAAS,gBAAgBlX,KAAK,SAGnD2pB,EAAM,IAAIvoB,KACH,IAAIA,KAAKsoB,GAAYpoB,UAAYqoB,EAAIroB,WACpC,UACVlD,EAAEgB,MAAM2E,SAAS,YACjB3F,EAAEgB,MAAM8X,SAAS,gCAAgCpU,MAAK,WACpD1E,EAAEgB,MAAM2E,SAAS,WACnB,IAEJ,IAEA3F,EAAE,0CAA0C0E,MAAK,WAC/C,IAAI2mB,EAAYrrB,EAAEgB,MAAM8X,SAAS,QAAQhT,KAAK,IACjB,GAAzB9F,EAAEgB,MAAMY,KAAK,UACfypB,EAAUnmB,OAAO,4FAErB,IACAlF,EAAE,4CAA4C0E,MAAK,WACjD,IAAI2mB,EAAYrrB,EAAEgB,MAAM8X,SAAS,QACJ,MAAzB9Y,EAAEgB,MAAMY,KAAK,UAAoD,IAAhCypB,EAAUvS,WAAW3W,OACxDkpB,EAAUnmB,OAAO,6FACiB,OAAzBlF,EAAEgB,MAAMY,KAAK,UAAqD,IAAhCypB,EAAUvS,WAAW3W,QAChEkpB,EAAUnmB,OAAO,6FAErB,IACAlF,EAAE,mBAAmBoG,GAAG,SAAS,SAAUC,GAIzC,GAHIrG,EAAEqG,EAAEkJ,QAAQ6H,GAAG,qBACjB/Q,EAAEmlB,2BAEAxrB,EAAEqG,EAAEkJ,QAAQ6H,GAAG,QAAUpX,EAAEqG,EAAEkJ,QAAQ9L,SAAS,aAAc,CAC9D4C,EAAEsG,iBACFtG,EAAEmlB,2BACF,IAAIL,EAAcnrB,EAAEqG,EAAEkJ,QAAQxJ,QAAQ,wBAAwB+S,SAAS,wBAAwBlX,KAAK,SAMpG,OALIupB,GAQR,SAAoBM,EAAS1nB,EAAKonB,GAChC,GAAIM,EAAU,EAAG,OAAO,EACR,IAAZA,GAAeP,EAAOC,GAC1BnrB,EAAE6Z,KAAK,CACL9V,IAAKA,EACL0gB,KAAM,QACL1K,MAAK,SAAUnY,EAAMgjB,EAAW5K,GACjC,OAAQA,EAAMiL,QACZ,KAAK,IACHiG,EAAOC,GACP,MACF,KAAK,IACHziB,WAAWwiB,EAAOC,GAAc,KAChC,MACF,QACE,OAAO,EAEb,IAAGpR,MAAK,SAAUnY,EAAMgjB,EAAW5K,GACjC,OAAO,CACT,GAEF,CA1BM0R,CADc,GADEC,0CAA4CR,EAE7BA,IAE1B,CACT,CACF,GA2BF,G,oBCn/BF,SAAWnrB,EAAG2I,GACZ,aAGA,SAASijB,EAAMhT,GACT5Y,EAAE6rB,GAAGC,MAAMF,OAAOlc,EAAIkJ,EAC5B,CACA,SAASlJ,IAEH3K,OAAO0K,SAAWA,QAAQC,KAAKD,QAAQC,IAAI,WAAauY,MAAMnc,UAAU0R,KAAK3I,KAAKsB,UAAW,KACnG,CAoEA,SAAS4V,EAAaC,EAAMC,EAASC,GACnC,IAAIC,EAAOnsB,EAAEgsB,GAAMpqB,KAAK,cACxB,GAAKuqB,EAAL,CACA,IAAIC,IAAWJ,EAAKK,WAChBD,GAAUD,EAAKC,OAAQD,EAAKC,OAAOJ,EAAMG,EAAMF,EAASC,IAAmBE,GAAUD,EAAKG,SAASH,EAAKG,QAAQN,EAAMG,EAAMF,EAASC,EAFxH,CAGnB,CAuFA,SAASK,EAAaC,EAAIL,GACxB,IAAKnsB,EAAEysB,QAAQC,SAAWP,EAAKQ,WAAaH,EAAGxE,MAAMpK,OACnD,IACE4O,EAAGxE,MAAM4E,gBAAgB,SAC3B,CAAE,MAAOC,GAAU,CAEvB,CA+WA,SAASC,EAAGC,EAAKZ,EAAMa,EAAQC,GAC7B,IAAIC,EAAIf,EAAKgB,MAAM,GACjBC,EAAOL,EAAIZ,EAAKkB,WAChBrV,EAAO+U,EAAIZ,EAAKmB,WAYlB,GATIN,GAAUb,EAAKoB,MAAQpB,EAAKqB,cAE9B5B,EAAM,mDACN5rB,EAAE+sB,GAAKU,MAAK,GAAM,GAClBtB,EAAKoB,KAAO,EACZ9kB,aAAaykB,EAAEQ,eAIbvB,EAAKoB,KACP3B,EAAM,mDAKR,GAAIsB,EAAES,WAAaxB,EAAKyB,YAAgC,IAAnBV,EAAEQ,cAAuBV,GAG9D,GAAKA,GAAWE,EAAEb,YAAeF,EAAK0B,UAAW1B,EAAK2B,YAAc3B,EAAK4B,WAAa,GAAK5B,EAAK6B,SAAW7B,EAAKhI,QAAUgI,EAAKmB,UAAYnB,EAAKkB,WAAhJ,CAMA,IAuDMY,EAvDFC,GAAU,EACd,IAAKlB,GAAWE,EAAEb,YAAeF,EAAKmB,WAAanB,EAAKkB,UAkDtDc,QAlDiE,CACjED,GAAU,EACV,IAAIE,EAAKjC,EAAKiC,GAEdhB,EAAKiB,OAASjB,EAAKiB,QAAUruB,EAAEotB,GAAMxjB,SACrCwjB,EAAKkB,OAASlB,EAAKkB,QAAUtuB,EAAEotB,GAAMlgB,QACrC8K,EAAKqW,OAASrW,EAAKqW,QAAUruB,EAAEgY,GAAMpO,SACrCoO,EAAKsW,OAAStW,EAAKsW,QAAUtuB,EAAEgY,GAAM9K,QAGjCif,EAAKoC,UACHtB,IAAQd,EAAKqC,SAAW7lB,KAAewjB,EAAKqC,QAAUrC,EAAKsC,IAAItsB,QAASgqB,EAAKqC,OAAS,GAAYvB,IAAQd,EAAKqC,SAAW7lB,KAAewjB,EAAKqC,OAAS,KAAIrC,EAAKqC,OAASrC,EAAKsC,IAAItsB,OAAS,GAC/LisB,EAAKjC,EAAKsC,IAAItC,EAAKqC,SAIjBrC,EAAKuC,YACPN,EAAKjC,EAAKuC,UACVvC,EAAKuC,UAAY,MAEnB1uB,EAAE6rB,GAAGC,MAAM6C,WAAWxC,EAAMiC,GAGxBjC,EAAKhV,OAAOhV,QAAQnC,EAAE0E,KAAKynB,EAAKhV,QAAQ,SAAUjV,EAAGwJ,GACnDwhB,EAAES,WAAaxB,EAAKyB,WACxBliB,EAAE+J,MAAMuC,EAAM,CAACoV,EAAMpV,EAAMmU,EAAMc,GACnC,IAGA,IAAItP,EAAQ,WACVwO,EAAKoB,KAAO,EACZvtB,EAAE0E,KAAKynB,EAAKxO,OAAO,SAAUzb,EAAGwJ,GAC1BwhB,EAAES,WAAaxB,EAAKyB,WACxBliB,EAAE+J,MAAMuC,EAAM,CAACoV,EAAMpV,EAAMmU,EAAMc,GACnC,IACKC,EAAES,WAELQ,GAEJ,EACAvC,EAAM,aAAewC,EAAK,iBAAmBjC,EAAKkB,UAAY,gBAAkBlB,EAAKmB,WAGrFnB,EAAKoB,KAAO,EACRpB,EAAKyC,KAEPzC,EAAKyC,KAAKxB,EAAMpV,EAAMmU,EAAMxO,EAAOsP,EAAKD,GAAUb,EAAK0C,aAAsB7uB,EAAE8uB,WAAW9uB,EAAE6rB,GAAGC,MAAMK,EAAKiC,KAE1GpuB,EAAE6rB,GAAGC,MAAMK,EAAKiC,IAAIhB,EAAMpV,EAAMmU,EAAMxO,EAAOsP,EAAKD,GAAUb,EAAK0C,aAAkB7uB,EAAE6rB,GAAGC,MAAMiD,OAAO3B,EAAMpV,EAAMmU,EAAMxO,EAAOsP,EAAKD,GAAUb,EAAK0C,YACtJ,CAGA,GAAIX,GAAW/B,EAAKmB,WAAanB,EAAKkB,UAGpClB,EAAK6C,UAAY7C,EAAKkB,UAClBlB,EAAKhI,QACPgI,EAAKkB,UAAYlB,EAAKmB,YAChBnB,EAAK8C,aAAelC,EAAI5qB,SAC5BgqB,EAAK8C,YAAc,EACnB9C,EAAK+C,UAAU9Q,MAAK,SAAUhI,EAAGgQ,GAC/B,OAAOlC,KAAKC,SAAW,EACzB,KAEFgI,EAAKmB,UAAYnB,EAAK+C,UAAU/C,EAAK8C,aACjC9C,EAAKmB,WAAanB,EAAKkB,YAAWlB,EAAKmB,UAAYnB,EAAKkB,WAAalB,EAAKgD,WAAa,EAAI,EAAIhD,EAAKkB,UAAY,IAC3GlB,EAAKiD,WACdnB,EAAO9B,EAAKmB,UAAY,EAAI,IAChBnB,EAAK0B,QACf1B,EAAKiD,WAAajD,EAAKiD,UACvBjD,EAAKmB,UAAY,EACjBnB,EAAKkB,UAAY,IAEjBlB,EAAKmB,UAAYW,EAAOlB,EAAI5qB,OAAS,EAAIgqB,EAAKmB,UAAY,EAC1DnB,EAAKkB,UAAYY,EAAO,EAAI9B,EAAKmB,UAAY,IAI/CW,EAAO9B,EAAKmB,UAAY,GAAKP,EAAI5qB,SACrBgqB,EAAK0B,QACf1B,EAAKiD,WAAajD,EAAKiD,UACvBjD,EAAKmB,UAAYP,EAAI5qB,OAAS,EAC9BgqB,EAAKkB,UAAYN,EAAI5qB,OAAS,IAE9BgqB,EAAKmB,UAAYW,EAAO,EAAI9B,EAAKmB,UAAY,EAC7CnB,EAAKkB,UAAYY,EAAOlB,EAAI5qB,OAAS,EAAIgqB,EAAKmB,UAAY,GAI5DY,GAAW/B,EAAKkD,OAAOlD,EAAKmD,sBAAsBnD,EAAKkD,MAAOlD,EAAKkB,UAAWlB,EAAKoD,iBA7FvF,MAFMpD,EAAKqD,KAAKrD,EAAKqD,IAAIrD,GAgGzB,SAASgC,IAEP,IAAIsB,EAAK,EACGtD,EAAKuD,QACbvD,EAAKuD,UAAYvD,EAAKwD,YACxBF,EAAKG,EAAW7C,EAAIZ,EAAKkB,WAAYN,EAAIZ,EAAKmB,WAAYnB,EAAMc,GACjD,WAAXd,EAAKiC,KAAiBqB,GAAMtD,EAAK0D,WAC5B1D,EAAKwD,YAAczC,EAAEb,aAE9BoD,EAAK,IACHA,EAAK,IAAGvC,EAAEQ,aAAehlB,YAAW,WACtCokB,EAAGC,EAAKZ,EAAM,GAAIA,EAAKiD,UACzB,GAAGK,GACL,CACF,CAUA,SAASG,EAAWxC,EAAMpV,EAAMmU,EAAMc,GACpC,GAAId,EAAK2D,UAAW,CAGlB,IADA,IAAIzb,EAAI8X,EAAK2D,UAAUjb,KAAKuY,EAAMA,EAAMpV,EAAMmU,EAAMc,GAClC,QAAXd,EAAKiC,IAAgB/Z,EAAI8X,EAAK4D,MAAQ,KAE7C1b,GAAK8X,EAAK4D,MAEV,GADAnE,EAAM,uBAAyBvX,EAAI,YAAc8X,EAAK4D,QAC5C,IAAN1b,EAAa,OAAOA,CAC1B,CACA,OAAO8X,EAAKuD,OACd,CAWA,SAASM,EAAQ7D,EAAM8D,GACrB,IAAI1c,EAAM0c,EAAc,GAAK,EACzBlD,EAAMZ,EAAK+D,SACXhD,EAAIf,EAAKgB,MAAM,GACjBuC,EAAUxC,EAAEQ,aAKd,GAJIgC,IACFjnB,aAAainB,GACbxC,EAAEQ,aAAe,GAEfvB,EAAKhI,QAAU5Q,EAAM,EAEvB4Y,EAAK8C,eACsB,KAArB9C,EAAK8C,YAAmB9C,EAAK8C,YAAclC,EAAI5qB,OAAS,GAAgC,GAArBgqB,EAAK8C,cAAmB9C,EAAK8C,YAAclC,EAAI5qB,OAAS,GACjIgqB,EAAKmB,UAAYnB,EAAK+C,UAAU/C,EAAK8C,kBAChC,GAAI9C,EAAKhI,OACdgI,EAAKmB,UAAYnB,EAAK+C,UAAU/C,EAAK8C,kBAGrC,GADA9C,EAAKmB,UAAYnB,EAAKkB,UAAY9Z,EAC9B4Y,EAAKmB,UAAY,EAAG,CACtB,GAAInB,EAAK6B,OAAQ,OAAO,EACxB7B,EAAKmB,UAAYP,EAAI5qB,OAAS,CAChC,MAAO,GAAIgqB,EAAKmB,WAAaP,EAAI5qB,OAAQ,CACvC,GAAIgqB,EAAK6B,OAAQ,OAAO,EACxB7B,EAAKmB,UAAY,CACnB,CAEF,IAAI6C,EAAKhE,EAAKiE,iBAAmBjE,EAAKkE,cAGtC,OAFIrwB,EAAE8uB,WAAWqB,IAAKA,EAAG5c,EAAM,EAAG4Y,EAAKmB,UAAWP,EAAIZ,EAAKmB,YAC3DR,EAAGC,EAAKZ,EAAM,EAAG8D,IACV,CACT,CAgFA,SAASK,EAAaC,GAEpB,SAASC,EAAI5X,GAEX,OADAA,EAAIzR,SAASyR,EAAG,IAAIwL,SAAS,KACpBjiB,OAAS,EAAI,IAAMyW,EAAIA,CAClC,CAJAgT,EAAM,4CAgBN2E,EAAQ7rB,MAAK,WACX1E,EAAEgB,MAAM4C,IAAI,mBAZd,SAAeyC,GACb,KAAOA,GAAiC,QAA5BA,EAAEoqB,SAASpU,cAAyBhW,EAAIA,EAAEqqB,WAAY,CAChE,IAAInT,EAAIvd,EAAE4D,IAAIyC,EAAG,oBACjB,GAAIkX,GAAKA,EAAEhb,QAAQ,QAAU,EAAG,CAC9B,IAAIouB,EAAMpT,EAAEqT,MAAM,QAClB,MAAO,IAAMJ,EAAIG,EAAI,IAAMH,EAAIG,EAAI,IAAMH,EAAIG,EAAI,GACnD,CACA,GAAIpT,GAAU,eAALA,EAAoB,OAAOA,CACtC,CACA,MAAO,SACT,CAEkCsT,CAAM7vB,MACxC,GACF,CA7zBAhB,EAAE8wB,KAAK,KAAK1E,OAAS,SAAUI,GAC7B,OAAOA,EAAGH,UACZ,EAYArsB,EAAE6rB,GAAGC,MAAQ,SAAU7a,EAAS8f,GAC9B,IAAIrlB,EAAI,CACNkN,EAAG5X,KAAKmlB,SACR/jB,EAAGpB,KAAKgwB,SAIV,OAAoB,IAAhBhwB,KAAKmB,QAA2B,QAAX8O,GAClBjR,EAAEixB,SAAWvlB,EAAEkN,GAClBlJ,EAAI,oCACJ1P,GAAE,WACAA,EAAE0L,EAAEkN,EAAGlN,EAAEtJ,GAAG0pB,MAAM7a,EAAS8f,EAC7B,IACO/vB,OAGT0O,EAAI,gDAAkD1P,EAAEixB,QAAU,GAAK,qBAChEjwB,MAIFA,KAAK0D,MAAK,WACf,IAAIynB,EAuCR,SAAyBH,EAAM/a,EAAS8f,GAClC/E,EAAK2B,YAAchlB,IAAWqjB,EAAK2B,UAAY,GAC/C1c,IAAYtI,GAAyB,OAAZsI,IAAkBA,EAAU,CAAC,GAC1D,GAAIA,EAAQpF,aAAed,OAAQ,CACjC,OAAQkG,GACN,IAAK,UACL,IAAK,OACH,IAAIkb,EAAOnsB,EAAEgsB,GAAMpqB,KAAK,cACxB,QAAKuqB,IACLH,EAAK2B,YACD3B,EAAK0B,cAAcjlB,aAAaujB,EAAK0B,cACzC1B,EAAK0B,aAAe,EAChBvB,EAAK+D,UAAUlwB,EAAEmsB,EAAK+D,UAAUzC,OACpCztB,EAAEgsB,GAAMxB,WAAW,cACJ,WAAXvZ,GA+EZ,SAAiB+a,EAAMG,GACjBA,EAAKnU,MAAMhY,EAAEmsB,EAAKnU,MAAMkZ,OAAO/E,EAAKgF,eACpChF,EAAKjU,MAAMlY,EAAEmsB,EAAKjU,MAAMgZ,OAAO/E,EAAKgF,gBACpChF,EAAKkD,OAASlD,EAAKiF,qBAAoBpxB,EAAE0E,KAAKynB,EAAKkF,cAAgB,IAAI,WACzErwB,KAAKkwB,SAAS5Y,QAChB,IACA6T,EAAKkF,aAAe,KACpBrxB,EAAEgsB,GAAMkF,OAAO,qCACX/E,EAAKmF,SAEPnF,EAAKmF,QAAQnF,EACjB,CA1FkCmF,CAAQtF,EAAMG,IACjC,GACT,IAAK,SAIH,OAHAH,EAAKK,WAAiC,IAApBL,EAAKK,WAAmB,EAAI,EAC9CkF,EAAmBvF,EAAKK,WAAY0E,EAAM/E,GAC1CD,EAAaC,IACN,EACT,IAAK,QAGH,OAFAA,EAAKK,WAAa,EAClBN,EAAaC,IACN,EACT,IAAK,SAIH,OAHAA,EAAKK,WAAa,EAClBkF,GAAmB,EAAOR,EAAM/E,GAChCD,EAAaC,IACN,EACT,IAAK,OACL,IAAK,OAEH,OADAG,EAAOnsB,EAAEgsB,GAAMpqB,KAAK,gBAKD,iBAARmvB,IAAkB5E,EAAKuC,UAAYqC,GAC9C/wB,EAAE6rB,GAAGC,MAAM7a,GAASkb,IACb,IALLzc,EAAI,2CACG,GAKX,QACEuB,EAAU,CACRmd,GAAInd,GAGV,OAAOA,CACT,CAAO,GAAIA,EAAQpF,aAAekJ,OAAQ,CAExC,IAAIyc,EAAMvgB,EAEV,OADAA,EAAUjR,EAAEgsB,GAAMpqB,KAAK,eAKnB4vB,EAAM,GAAKA,GAAOvgB,EAAQif,SAAS/tB,QACrCuN,EAAI,wBAA0B8hB,IACvB,IAETvgB,EAAQqc,UAAYkE,EAChBxF,EAAK0B,eACPjlB,aAAaujB,EAAK0B,cAClB1B,EAAK0B,aAAe,GAEH,iBAARqD,IAAkB9f,EAAQyd,UAAYqC,GACjDjE,EAAG7b,EAAQif,SAAUjf,EAAS,EAAGugB,GAAOvgB,EAAQoc,YACzC,IAdL3d,EAAI,6CACG,EAcX,CACA,OAAOuB,EACP,SAASsgB,EAAmBE,EAAUV,EAAM/E,GAC1C,IAAKyF,IAAqB,IAATV,EAAe,CAE9B,IAAI9f,EAAUjR,EAAEgsB,GAAMpqB,KAAK,cAC3B,IAAKqP,EAEH,OADAvB,EAAI,sCACG,EAELsc,EAAK0B,eACPjlB,aAAaujB,EAAK0B,cAClB1B,EAAK0B,aAAe,GAEtBZ,EAAG7b,EAAQif,SAAUjf,EAAS,GAAIA,EAAQme,UAC5C,CACF,CACF,CA1HesC,CAAgB1wB,KAAMiQ,EAAS8f,GAC1C,IAAa,IAAT5E,EAAJ,CACAA,EAAKmD,sBAAwBnD,EAAKmD,uBAAyBtvB,EAAE6rB,GAAGC,MAAMwD,sBAGlEtuB,KAAK0sB,cAAcjlB,aAAazH,KAAK0sB,cACzC1sB,KAAK0sB,aAAe1sB,KAAKqrB,WAAa,EACtCrrB,KAAK2sB,UAAY,EAEjB,IAAIR,EAAQntB,EAAEgB,MACVuvB,EAAUpE,EAAKwF,UAAY3xB,EAAEmsB,EAAKwF,UAAW3wB,MAAQmsB,EAAMrU,WAC3DiU,EAAMwD,EAAQqB,MAClB,GAAI7E,EAAI5qB,OAAS,EACfuN,EAAI,gCAAkCqd,EAAI5qB,YAD5C,CAIA,IAAI0vB,EAkIR,SAAsB1E,EAAOoD,EAASxD,EAAK9b,EAASvF,GAClD,IAAIomB,EAEA3F,EAAOnsB,EAAE+xB,OAAO,CAAC,EAAG/xB,EAAE6rB,GAAGC,MAAMkG,SAAU/gB,GAAW,CAAC,EAAGjR,EAAEiyB,SAAW9E,EAAM8E,WAAajyB,EAAEkyB,KAAO/E,EAAMvrB,OAAS,CAAC,GACjHswB,EAAOlyB,EAAE8uB,WAAW3B,EAAMvrB,MAAQurB,EAAMvrB,KAAKuqB,EAAKgG,UAAY,KAC9DD,IAAM/F,EAAOnsB,EAAE+xB,OAAO5F,EAAM+F,IAC5B/F,EAAK2B,WAAU3B,EAAK4B,UAAY5B,EAAKiG,eAAiBrF,EAAI5qB,QAC9D,IAAI6pB,EAAOmB,EAAM,GACjBA,EAAMvrB,KAAK,aAAcuqB,GACzBA,EAAKgB,MAAQA,EACbhB,EAAKyB,UAAY5B,EAAK2B,UACtBxB,EAAK+D,SAAWnD,EAChBZ,EAAKhV,OAASgV,EAAKhV,OAAS,CAACgV,EAAKhV,QAAU,GAC5CgV,EAAKxO,MAAQwO,EAAKxO,MAAQ,CAACwO,EAAKxO,OAAS,IAGpC3d,EAAEysB,QAAQC,SAAWP,EAAKQ,WAAWR,EAAKxO,MAAMja,MAAK,WACxD6oB,EAAavrB,KAAMmrB,EACrB,IACIA,EAAKwD,YAAYxD,EAAKxO,MAAMja,MAAK,WACnCopB,EAAGC,EAAKZ,EAAM,GAAIA,EAAKiD,UACzB,KAkNF,SAA0BjD,GACxBA,EAAKkG,SAAW,CACdlb,OAAQ,GACRwG,MAAO,IAETwO,EAAKkG,SAASC,UAAYtyB,EAAE+xB,OAAO,CAAC,EAAG5F,EAAKmG,WAC5CnG,EAAKkG,SAASE,SAAWvyB,EAAE+xB,OAAO,CAAC,EAAG5F,EAAKoG,UAC3CpG,EAAKkG,SAASG,OAASxyB,EAAE+xB,OAAO,CAAC,EAAG5F,EAAKqG,QACzCrG,EAAKkG,SAASI,QAAUzyB,EAAE+xB,OAAO,CAAC,EAAG5F,EAAKsG,SAC1CzyB,EAAE0E,KAAKynB,EAAKhV,QAAQ,WAClBgV,EAAKkG,SAASlb,OAAOzT,KAAK1C,KAC5B,IACAhB,EAAE0E,KAAKynB,EAAKxO,OAAO,WACjBwO,EAAKkG,SAAS1U,MAAMja,KAAK1C,KAC3B,GACF,EAhOE0xB,CAAiBvG,GAGZnsB,EAAEysB,QAAQC,UAAWP,EAAKQ,WAAcR,EAAKwG,eAAerC,EAAaC,GAGjD,UAAzBpD,EAAMvpB,IAAI,aAAyBupB,EAAMvpB,IAAI,WAAY,YACzDuoB,EAAKjf,OAAOigB,EAAMjgB,MAAMif,EAAKjf,OAC7Bif,EAAKviB,QAAyB,QAAfuiB,EAAKviB,QAAkBujB,EAAMvjB,OAAOuiB,EAAKviB,QACxDuiB,EAAKyG,gBAAkBjqB,GACzBwjB,EAAKyG,cAAgBzrB,SAASglB,EAAKyG,cAAe,IAC9CzG,EAAKyG,eAAiB7F,EAAI5qB,QAAUgqB,EAAK0G,WAAa,EAAG1G,EAAKyG,cAAgB,EAC7Ed,GAAyB,GACrB3F,EAAKiD,UAAWjD,EAAKyG,cAAgB7F,EAAI5qB,OAAS,EAAOgqB,EAAKyG,cAAgB,EAGzF,GAAIzG,EAAKhI,OAAQ,CACfgI,EAAK+C,UAAY,GACjB,IAAK,IAAIhtB,EAAI,EAAGA,EAAI6qB,EAAI5qB,OAAQD,IAAKiqB,EAAK+C,UAAUxrB,KAAKxB,GAIzD,GAHAiqB,EAAK+C,UAAU9Q,MAAK,SAAUhI,EAAGgQ,GAC/B,OAAOlC,KAAKC,SAAW,EACzB,IACI2N,EAEF,IAAK,IAAIgB,EAAM,EAAGA,EAAM/F,EAAI5qB,OAAQ2wB,IAC9B3G,EAAKyG,eAAiBzG,EAAK+C,UAAU4D,KACvC3G,EAAK8C,YAAc6D,QAIvB3G,EAAK8C,YAAc,EACnB9C,EAAKyG,cAAgBzG,EAAK+C,UAAU,EAExC,MAAW/C,EAAKyG,eAAiB7F,EAAI5qB,SAAQgqB,EAAKyG,cAAgB,GAClEzG,EAAKkB,UAAYlB,EAAKyG,eAAiB,EACvC,IAAIjoB,EAAQwhB,EAAKyG,cAGjBrC,EAAQ3sB,IAAI,CACVuK,SAAU,WACV9F,IAAK,EACLkC,KAAM,IACLU,OAAOvG,MAAK,SAAUxC,GACvB,IAAI6wB,EACgBA,EAAhB5G,EAAKiD,UAAezkB,EAAQzI,GAAKyI,EAAQoiB,EAAI5qB,QAAUD,EAAIyI,GAASA,EAAQzI,EAAI6qB,EAAI5qB,OAASD,EAAWyI,EAAQzI,GAAKyI,EAAQoiB,EAAI5qB,QAAUD,EAAIyI,GAASA,EAAQzI,EAAI6qB,EAAI5qB,OAASD,EACrLlC,EAAEgB,MAAM4C,IAAI,UAAWmvB,EACzB,IAGA/yB,EAAE+sB,EAAIpiB,IAAQ/G,IAAI,UAAW,GAAGgU,OAChC2U,EAAaQ,EAAIpiB,GAAQwhB,GAGrBA,EAAK6G,MACF7G,EAAK8G,OAIR1C,EAAQ7rB,MAAK,WACX,IAAIwuB,EAASlzB,EAAEgB,MACXmyB,GAAwB,IAAhBhH,EAAK8G,OAAkBC,EAAOhmB,QAAUgmB,EAAOtpB,SAAWuiB,EAAK8G,OACvE9G,EAAKjf,OAASgmB,EAAOhmB,SAAWif,EAAKjf,QACvCgmB,EAAOhmB,MAAMif,EAAKjf,OAClBgmB,EAAOtpB,OAAOuiB,EAAKjf,MAAQimB,IAEzBhH,EAAKviB,QAAUspB,EAAOtpB,SAAWuiB,EAAKviB,SACxCspB,EAAOtpB,OAAOuiB,EAAKviB,QACnBspB,EAAOhmB,MAAMif,EAAKviB,OAASupB,GAE/B,KAdIhH,EAAKjf,OAAOqjB,EAAQrjB,MAAMif,EAAKjf,OAC/Bif,EAAKviB,QAAyB,QAAfuiB,EAAKviB,QAAkB2mB,EAAQ3mB,OAAOuiB,EAAKviB,WAgB9DuiB,EAAKxe,QAAYwe,EAAK6G,MAAO7G,EAAK8G,QACpC1C,EAAQ7rB,MAAK,WACX,IAAIwuB,EAASlzB,EAAEgB,MACfkyB,EAAOtvB,IAAI,CACT,cAAeuoB,EAAKjf,OAASif,EAAKjf,MAAQgmB,EAAOhmB,SAAW,EAAI,KAAO,EACvE,aAAcif,EAAKviB,QAAUuiB,EAAKviB,OAASspB,EAAOtpB,UAAY,EAAI,KAAO,GAE7E,KAEEuiB,EAAKxe,QAAWwe,EAAK6G,KAAQ7G,EAAKiH,aACpC7C,EAAQ7rB,MAAK,WACX,IAAIwuB,EAASlzB,EAAEgB,MACfkyB,EAAOtvB,IAAI,CACT,cAAeuoB,EAAKjf,OAASif,EAAKjf,MAAQgmB,EAAOhmB,SAAW,EAAI,KAAO,EACvE,aAAcif,EAAKviB,QAAUuiB,EAAKviB,OAASspB,EAAOtpB,UAAY,EAAI,KAAO,GAE7E,IAIF,IAAIypB,GAAWlH,EAAKmH,iBAAmBnH,EAAKoH,wBAA0BpG,EAAMqG,cAAgB,EAC5F,GAAIH,EAAS,CAIX,IAFA,IAAII,EAAO,EACTC,EAAO,EACAhV,EAAI,EAAGA,EAAIqO,EAAI5qB,OAAQuc,IAAK,CACnC,IAAIiV,EAAK3zB,EAAE+sB,EAAIrO,IACbrY,EAAIstB,EAAG,GACPC,EAAID,EAAGE,aACPC,EAAIH,EAAG9uB,cACJ+uB,IAAGA,EAAIvtB,EAAE0tB,aAAe1tB,EAAE6G,OAASymB,EAAGrwB,KAAK,UAC3CwwB,IAAGA,EAAIztB,EAAE2tB,cAAgB3tB,EAAEuD,QAAU+pB,EAAGrwB,KAAK,WAClDmwB,EAAOG,EAAIH,EAAOG,EAAIH,EACtBC,EAAOI,EAAIJ,EAAOI,EAAIJ,CACxB,CACIvH,EAAKmH,iBAAmBG,EAAO,GAAKC,EAAO,GAAGvG,EAAMvpB,IAAI,CAC1DsJ,MAAOumB,EAAO,KACd7pB,OAAQ8pB,EAAO,OAEbvH,EAAKoH,uBAAyBG,EAAO,GAAGvG,EAAMvpB,IAAI,CACpDgG,OAAQ8pB,EAAO,MAEnB,CACA,IAAIO,GAAY,EACZ9H,EAAK+H,OAAO/G,EAAMlsB,KAAK,oBAAoB,WAC7CgzB,GAAY,EACZjzB,KAAKqrB,aACLN,EAAaC,GAAM,EACrB,IAAG/qB,KAAK,oBAAoB,WACtBgzB,GAAWjzB,KAAKqrB,aACpBN,EAAaC,GAAM,EACrB,IACA,IAAsC,IAqGxC,SAAiCG,GAC/B,IAAIjqB,EACFiyB,EACAC,EAAMp0B,EAAE6rB,GAAGC,MAAMuI,YAEnB,GAAIlI,EAAKiC,GAAG7rB,QAAQ,KAAO,EAAG,CAI5B,IAHA4pB,EAAKoC,SAAU,EACfpC,EAAKsC,IAAMtC,EAAKiC,GAAGxtB,QAAQ,OAAQ,IAAIC,MAAM,KAExCqB,EAAI,EAAGA,EAAIiqB,EAAKsC,IAAItsB,OAAQD,IAAK,CACpC,IAAIksB,EAAKjC,EAAKsC,IAAIvsB,IAClBiyB,EAAKC,EAAIhG,KACGgG,EAAIzwB,eAAeyqB,IAAQpuB,EAAE8uB,WAAWqF,KAClDzkB,EAAI,kCAAmC0e,GACvCjC,EAAKsC,IAAI6F,OAAOpyB,EAAG,GACnBA,IAEJ,CAEA,IAAKiqB,EAAKsC,IAAItsB,OAEZ,OADAuN,EAAI,uDACG,CAEX,MAAO,GAAe,OAAXyc,EAAKiC,GAId,IAAK,IAAIlB,KAFTf,EAAKoC,SAAU,EACfpC,EAAKsC,IAAM,GACG2F,EACRA,EAAIzwB,eAAeupB,KACrBiH,EAAKC,EAAIlH,GACLkH,EAAIzwB,eAAeupB,IAAMltB,EAAE8uB,WAAWqF,IAAKhI,EAAKsC,IAAI/qB,KAAKwpB,IAInE,GAAIf,EAAKoC,SAAWpC,EAAKoI,iBAAkB,CAEzC,IAAIC,EAAKtQ,KAAKuQ,MAAsB,GAAhBvQ,KAAKC,UAAiB,GAC1C,IAAKjiB,EAAI,EAAGA,EAAIsyB,EAAItyB,IAAK,CACvB,IAAIwyB,EAAKxQ,KAAKuQ,MAAMvQ,KAAKC,SAAWgI,EAAKsC,IAAItsB,QAC7CgqB,EAAKsC,IAAI/qB,KAAKyoB,EAAKsC,IAAI6F,OAAOI,EAAI,GAAG,GACvC,CACA9I,EAAM,2BAA4BO,EAAKsC,IACzC,CACA,OAAO,CACT,CAjJMkG,CAAwBxI,GAAiB,OAAO,EAIpD,IAAIyI,GAAU,EA0Bd,GAzBA3jB,EAAQ4jB,gBAAkB5jB,EAAQ4jB,iBAAmB,EACrDtE,EAAQ7rB,MAAK,WAEX,IAAIowB,EAAM90B,EAAEgB,MAGZ,IAFAA,KAAKqtB,OAASlC,EAAK6G,KAAO7G,EAAKviB,OAASuiB,EAAKviB,OAASkrB,EAAIlrB,UAAY5I,KAAKgzB,cAAgBhzB,KAAK4I,QAAUkrB,EAAIxxB,KAAK,WAAa,EAChItC,KAAKstB,OAASnC,EAAK6G,KAAO7G,EAAKjf,MAAQif,EAAKjf,MAAQ4nB,EAAI5nB,SAAWlM,KAAK+yB,aAAe/yB,KAAKkM,OAAS4nB,EAAIxxB,KAAK,UAAY,EACtHwxB,EAAI1d,GAAG,UACqB,IAAhBpW,KAAKqtB,QAAgC,IAAhBrtB,KAAKstB,SAAiBttB,KAAKkmB,UAEjD,CACX,GAAIxb,EAAEkN,GAAKuT,EAAK4I,2BAA6B9jB,EAAQ4jB,gBAAkB,IAOrE,OALAnlB,EAAIuB,EAAQ4jB,gBAAiB,iDAAkD7zB,KAAKg0B,IAAKh0B,KAAKstB,OAAQttB,KAAKqtB,QAC3G3lB,YAAW,WACT1I,EAAE0L,EAAEkN,EAAGlN,EAAEtJ,GAAG0pB,MAAM7a,EACpB,GAAGkb,EAAK8I,gBACRL,GAAU,GACH,EAEPllB,EAAI,sCAAwC1O,KAAKg0B,IAAKh0B,KAAKstB,OAAQttB,KAAKqtB,OAE5E,CAEF,OAAO,CACT,IACIuG,EAAS,OAAO,EAQpB,GAPAzI,EAAKmG,UAAYnG,EAAKmG,WAAa,CAAC,EACpCnG,EAAKoG,SAAWpG,EAAKoG,UAAY,CAAC,EAClCpG,EAAK+I,SAAW/I,EAAK+I,UAAY,CAAC,EAClC/I,EAAKqG,OAASrG,EAAKqG,QAAU,CAAC,EAC9BrG,EAAKsG,QAAUtG,EAAKsG,SAAW,CAAC,EAChClC,EAAQ4E,IAAI,OAASxqB,EAAQ,KAAK/G,IAAIuoB,EAAKmG,WAC3CtyB,EAAEuwB,EAAQ5lB,IAAQ/G,IAAIuoB,EAAK+I,UACvB/I,EAAKuD,QAAS,CAChBvD,EAAKuD,QAAUvoB,SAASglB,EAAKuD,QAAS,IAElCvD,EAAK4D,MAAMlkB,aAAed,SAAQohB,EAAK4D,MAAQ/vB,EAAEouB,GAAGgH,OAAOjJ,EAAK4D,QAAU5oB,SAASglB,EAAK4D,MAAO,KAC9F5D,EAAKkJ,OAAMlJ,EAAK4D,MAAQ5D,EAAK4D,MAAQ,GAE1C,IADA,IAAIuF,EAAoB,QAAXnJ,EAAKiC,GAAe,EAAe,WAAXjC,EAAKiC,GAAkB,IAAM,IAC3DjC,EAAKuD,QAAUvD,EAAK4D,MAAQuF,GAEnCnJ,EAAKuD,SAAWvD,EAAK4D,KACvB,CACI5D,EAAKoJ,SAAQpJ,EAAKzU,OAASyU,EAAKqJ,QAAUrJ,EAAKoJ,QAC9CpJ,EAAKsJ,UAAStJ,EAAKsJ,QAAUtJ,EAAK4D,OAClC5D,EAAK0D,WAAU1D,EAAK0D,SAAW1D,EAAK4D,OACzC5D,EAAKgD,WAAapC,EAAI5qB,OACtBgqB,EAAKkB,UAAYlB,EAAK6C,UAAYrkB,EAC9BwhB,EAAKhI,UACDgI,EAAK8C,aAAelC,EAAI5qB,SAAQgqB,EAAK8C,YAAc,GACzD9C,EAAKmB,UAAYnB,EAAK+C,UAAU/C,EAAK8C,cAC5B9C,EAAKiD,UAAWjD,EAAKmB,UAAmC,IAAvBnB,EAAKyG,cAAsB7F,EAAI5qB,OAAS,EAAIgqB,EAAKyG,cAAgB,EAAOzG,EAAKmB,UAAYnB,EAAKyG,eAAiB7F,EAAI5qB,OAAS,EAAI,EAAIgqB,EAAKyG,cAAgB,EAGrM,IAAKzG,EAAKoC,QAAS,CACjB,IAAImH,EAAO11B,EAAE6rB,GAAGC,MAAMuI,YAAYlI,EAAKiC,IACvC,GAAIpuB,EAAE8uB,WAAW4G,GAAOA,EAAKvI,EAAOoD,EAASpE,QAAW,GAAe,UAAXA,EAAKiC,KAAmBjC,EAAKoC,QAEvF,OADA7e,EAAI,uBAAyByc,EAAKiC,GAAI,4BAC/B,CAEX,CAGA,IAAIuH,EAAKpF,EAAQ5lB,GACZwhB,EAAKyJ,8BACJzJ,EAAKhV,OAAOhV,QAAQgqB,EAAKhV,OAAO,GAAG1B,MAAMkgB,EAAI,CAACA,EAAIA,EAAIxJ,GAAM,IAC5DA,EAAKxO,MAAMxb,QAAQgqB,EAAKxO,MAAM,GAAGlI,MAAMkgB,EAAI,CAACA,EAAIA,EAAIxJ,GAAM,KAE5DA,EAAKnU,MAAMhY,EAAEmsB,EAAKnU,MAAM/W,KAAKkrB,EAAKgF,eAAe,WACnD,OAAOnB,EAAQ7D,EAAM,EACvB,IACIA,EAAKjU,MAAMlY,EAAEmsB,EAAKjU,MAAMjX,KAAKkrB,EAAKgF,eAAe,WACnD,OAAOnB,EAAQ7D,EAAM,EACvB,KACIA,EAAKkD,OAASlD,EAAKiF,qBAmUzB,SAAoBrE,EAAKZ,GACvB,IAAI0J,EAAK71B,EAAEmsB,EAAKkD,OAChBrvB,EAAE0E,KAAKqoB,GAAK,SAAU7qB,EAAGwJ,GACvB1L,EAAE6rB,GAAGC,MAAMgK,kBAAkB5zB,EAAGwJ,EAAGmqB,EAAI9I,EAAKZ,EAC9C,IACAA,EAAKmD,sBAAsBnD,EAAKkD,MAAOlD,EAAKyG,cAAezG,EAAKoD,iBAClE,CAzU6CwG,CAAWhJ,EAAKZ,GAE3D,OAmEF,SAAwBA,EAAMY,GAC5BZ,EAAK6J,SAAW,SAAUC,EAAUC,GAClC,IAAIC,EAAKn2B,EAAEi2B,GACTrd,EAAIud,EAAG,GACJhK,EAAKiG,eAAejG,EAAK4B,YAC9BhB,EAAImJ,EAAU,UAAY,QAAQtd,GAC9BuT,EAAKY,KAAKZ,EAAKY,IAAImJ,EAAU,UAAY,QAAQtd,GACrDuT,EAAKgD,WAAapC,EAAI5qB,OAGlBgqB,EAAKhI,SACPgI,EAAK+C,UAAUxrB,KAAKyoB,EAAKgD,WAAa,GACtChD,EAAK+C,UAAU9Q,MAAK,SAAUhI,EAAGgQ,GAC/B,OAAOlC,KAAKC,SAAW,EACzB,KAEFgS,EAAGvyB,IAAI,WAAY,YACnBuyB,EAAGD,EAAU,YAAc,YAAY/J,EAAKgB,OACxC+I,IACF/J,EAAKkB,YACLlB,EAAKmB,aAEFttB,EAAEysB,QAAQC,UAAWP,EAAKQ,WAAcR,EAAKwG,eAAerC,EAAa6F,GAC1EhK,EAAK6G,KAAO7G,EAAKjf,OAAOipB,EAAGjpB,MAAMif,EAAKjf,OACtCif,EAAK6G,KAAO7G,EAAKviB,QAAyB,QAAfuiB,EAAKviB,QAAkBusB,EAAGvsB,OAAOuiB,EAAKviB,QACrEgP,EAAEyV,OAASlC,EAAK6G,KAAO7G,EAAKviB,OAASuiB,EAAKviB,OAASusB,EAAGvsB,SACtDgP,EAAE0V,OAASnC,EAAK6G,KAAO7G,EAAKjf,MAAQif,EAAKjf,MAAQipB,EAAGjpB,QACpDipB,EAAGvyB,IAAIuoB,EAAKmG,YACRnG,EAAKkD,OAASlD,EAAKiF,qBAAoBpxB,EAAE6rB,GAAGC,MAAMgK,kBAAkB/I,EAAI5qB,OAAS,EAAGyW,EAAG5Y,EAAEmsB,EAAKkD,OAAQtC,EAAKZ,GAC3GnsB,EAAE8uB,WAAW3C,EAAKiK,YAAajK,EAAKiK,WAAWD,GAASA,EAAGlrB,MACjE,CACF,CAnGEorB,CAAelK,EAAMY,GACdZ,CACT,CAtWgBmK,CAAanJ,EAAOoD,EAASxD,EAAKZ,EAAMzgB,GACpD,IAAc,IAAVmmB,EAAJ,CACA,IAAI0E,EAAY1E,EAAMlC,WAAa,GAAKC,EAAW7C,EAAI8E,EAAMxE,WAAYN,EAAI8E,EAAMvE,WAAYuE,GAAQA,EAAMzC,WAGzGmH,KACFA,GAAa1E,EAAM1W,OAAS,GACZ,KAAIob,EAAY,IAChC3K,EAAM,kBAAoB2K,GAC1Bv1B,KAAK0sB,aAAehlB,YAAW,WAC7BokB,EAAGC,EAAK8E,EAAO,GAAI1F,EAAKiD,UAC1B,GAAGmH,GAVsB,CAF3B,CAd0B,CA4B5B,GACF,EA4bAv2B,EAAE6rB,GAAGC,MAAM6C,WAAa,SAAUxC,EAAMiC,GACtCA,EAAKA,GAAMjC,EAAKiC,GAChBjC,EAAKhV,OAAS,GACdgV,EAAKxO,MAAQ,GACbwO,EAAKmG,UAAYtyB,EAAE+xB,OAAO,CAAC,EAAG5F,EAAKkG,SAASC,WAC5CnG,EAAKoG,SAAWvyB,EAAE+xB,OAAO,CAAC,EAAG5F,EAAKkG,SAASE,UAC3CpG,EAAKqG,OAASxyB,EAAE+xB,OAAO,CAAC,EAAG5F,EAAKkG,SAASG,QACzCrG,EAAKsG,QAAUzyB,EAAE+xB,OAAO,CAAC,EAAG5F,EAAKkG,SAASI,SAC1CtG,EAAKyC,KAAO,KACZ5uB,EAAE0E,KAAKynB,EAAKkG,SAASlb,QAAQ,WAC3BgV,EAAKhV,OAAOzT,KAAK1C,KACnB,IACAhB,EAAE0E,KAAKynB,EAAKkG,SAAS1U,OAAO,WAC1BwO,EAAKxO,MAAMja,KAAK1C,KAClB,IAGA,IAAI00B,EAAO11B,EAAE6rB,GAAGC,MAAMuI,YAAYjG,GAC9BpuB,EAAE8uB,WAAW4G,IAAOA,EAAKvJ,EAAKgB,MAAOntB,EAAEmsB,EAAK+D,UAAW/D,EAC7D,EA6IAnsB,EAAE6rB,GAAGC,MAAMwD,sBAAwB,SAAUD,EAAOhC,EAAWmJ,GAC7Dx2B,EAAEqvB,GAAO3qB,MAAK,WACZ1E,EAAEgB,MAAM8X,WAAWzR,YAAYmvB,GAASC,GAAGpJ,GAAW1nB,SAAS6wB,EACjE,GACF,EAiBAx2B,EAAE6rB,GAAGC,MAAM9T,KAAO,SAAUmU,GAC1B6D,EAAQ7D,EAAM,EAChB,EACAnsB,EAAE6rB,GAAGC,MAAM5T,KAAO,SAAUiU,GAC1B6D,EAAQ7D,EAAM,EAChB,EAyCAnsB,EAAE6rB,GAAGC,MAAMgK,kBAAoB,SAAU5zB,EAAGsqB,EAAIqJ,EAAI9I,EAAKZ,GACvD,IAAI/V,EAKJ,GAJIpW,EAAE8uB,WAAW3C,EAAKiF,qBACpBhb,EAAI+V,EAAKiF,mBAAmBlvB,EAAGsqB,GAC/BZ,EAAM,sBAAwB1pB,EAAI,mBAAqBkU,IAClDA,EAAI,gBAAkBlU,EAAI,GAAK,OACjCkU,EAAL,CACA,IAAI7P,EAAKvG,EAAEoW,GAEX,GAAkC,IAA9B7P,EAAGmwB,QAAQ,QAAQv0B,OAAc,CACnC,IAAIw0B,EAAM,GACNd,EAAG1zB,OAAS,GACd0zB,EAAGnxB,MAAK,WACN,IAAIkyB,EAASrwB,EAAGoiB,OAAM,GACtB3oB,EAAEgB,MAAMkE,OAAO0xB,GACfD,EAAIjzB,KAAKkzB,EAAO,GAClB,IACArwB,EAAKvG,EAAE22B,IAEPpwB,EAAGiU,SAASqb,EAEhB,CACA1J,EAAKkF,aAAelF,EAAKkF,cAAgB,GACzClF,EAAKkF,aAAa3tB,KAAK6C,GACvB,IAAIswB,EAAU,SAAiBxwB,GAC7BA,EAAEsG,iBACFwf,EAAKmB,UAAYprB,EACjB,IAAIgrB,EAAIf,EAAKgB,MAAM,GACjBuC,EAAUxC,EAAEQ,aACVgC,IACFjnB,aAAainB,GACbxC,EAAEQ,aAAe,GAEnB,IAAIyC,EAAKhE,EAAK2K,cAAgB3K,EAAK4K,WAC/B/2B,EAAE8uB,WAAWqB,IAAKA,EAAGhE,EAAKmB,UAAWP,EAAIZ,EAAKmB,YAClDR,EAAGC,EAAKZ,EAAM,EAAGA,EAAKkB,UAAYnrB,EAEpC,EACI,wBAAwBka,KAAK+P,EAAK6K,YACpCzwB,EAAGuiB,MAAM+N,GAAS,WAAwB,IAE1CtwB,EAAGtF,KAAKkrB,EAAK6K,WAAYH,GAEtB,SAASza,KAAK+P,EAAK6K,aAAgB7K,EAAK8K,uBAAuB1wB,EAAGtF,KAAK,eAAe,WACzF,OAAO,CACT,IAEA,IAAI+qB,EAAOG,EAAKgB,MAAM,GAClB8G,GAAY,EACZ9H,EAAK+K,mBACP3wB,EAAGuiB,OAAM,WACPmL,GAAY,EACZjI,EAAKK,aACLN,EAAaC,GAAM,GAAM,EAC3B,IAAG,WACGiI,GAAWjI,EAAKK,aACpBN,EAAaC,GAAM,GAAM,EAC3B,GAnDY,CAqDhB,EAGAhsB,EAAE6rB,GAAGC,MAAMqL,aAAe,SAAUhL,EAAMc,GACxC,IACEmK,EAAIjL,EAAK6C,UACT5sB,EAAI+pB,EAAKkB,UAEX,OADIJ,EAAY7qB,EAAIg1B,EAAIh1B,EAAIg1B,EAAIjL,EAAKgD,WAAaiI,EAAch1B,EAAIg1B,EAAIA,EAAIh1B,EAAIg1B,EAAIjL,EAAKgD,WAAa/sB,CAExG,EA2BApC,EAAE6rB,GAAGC,MAAMuL,YAAc,SAAUjK,EAAMpV,EAAMmU,EAAMyH,EAAGE,EAAGwD,GACzDt3B,EAAEmsB,EAAK+D,UAAUiF,IAAI/H,GAAMniB,YACU,IAA1BkhB,EAAKmG,UAAU5F,UAAwBP,EAAKmG,UAAU5F,QAAU,GAC3EP,EAAKmG,UAAU1J,QAAU,QACrBuD,EAAKiH,cAAqB,IAANQ,GAAe5b,EAAKsW,OAAS,IAAGnC,EAAKmG,UAAUplB,MAAQ8K,EAAKsW,QAChFnC,EAAKiH,cAAqB,IAANU,GAAe9b,EAAKqW,OAAS,IAAGlC,EAAKmG,UAAU1oB,OAASoO,EAAKqW,QACrFlC,EAAKoG,SAAWpG,EAAKoG,UAAY,CAAC,EAClCpG,EAAKoG,SAAS3J,QAAU,OACxB5oB,EAAEotB,GAAMxpB,IAAI,SAAUuoB,EAAKgD,aAAsB,IAARmI,EAAe,EAAI,IAC5Dt3B,EAAEgY,GAAMpU,IAAI,SAAUuoB,EAAKgD,aAAsB,IAARmI,EAAe,EAAI,GAC9D,EAGAt3B,EAAE6rB,GAAGC,MAAMiD,OAAS,SAAU3B,EAAMpV,EAAMmU,EAAMgE,EAAIlD,EAAKsK,GACvD,IAAIC,EAAKx3B,EAAEotB,GACTqK,EAAKz3B,EAAEgY,GACLyd,EAAUtJ,EAAKsJ,QACjB5F,EAAW1D,EAAK0D,SAChBnY,EAASyU,EAAKzU,OACd8d,EAAUrJ,EAAKqJ,QACfkC,EAAcvL,EAAKuL,YACnBC,EAAexL,EAAKwL,aACtBF,EAAG7zB,IAAIuoB,EAAKmG,WACRiF,IACoC9B,EAAU5F,EAApB,iBAAjB0H,EAAgDA,EAAwC,EACnG7f,EAAS8d,EAAU,MAErB,IAAI3J,EAAK,WACP4L,EAAGtc,MAAMuc,GAAajpB,QAAQ0d,EAAKqG,OAAQiD,EAAS/d,GAAQ,WAC1DyY,GACF,GACF,EACAqH,EAAGrc,MAAMwc,GAAclpB,QAAQ0d,EAAKsG,QAAS5C,EAAU2F,GAAS,WAC9DgC,EAAG5zB,IAAIuoB,EAAKoG,UACPpG,EAAKkJ,MAAMxJ,GAClB,IACIM,EAAKkJ,MAAMxJ,GACjB,EAGA7rB,EAAE6rB,GAAGC,MAAMuI,YAAc,CACvBuD,KAAM,SAAczK,EAAOoD,EAASpE,GAClCoE,EAAQ4E,IAAI,OAAShJ,EAAKkB,UAAY,KAAKzpB,IAAI,UAAW,GAC1DuoB,EAAKhV,OAAOzT,MAAK,SAAU0pB,EAAMpV,EAAMmU,GACrCnsB,EAAE6rB,GAAGC,MAAMuL,YAAYjK,EAAMpV,EAAMmU,GACnCA,EAAKmG,UAAU5F,QAAU,CAC3B,IACAP,EAAKqG,OAAS,CACZ9F,QAAS,GAEXP,EAAKsG,QAAU,CACb/F,QAAS,GAEXP,EAAKmG,UAAY,CACfjqB,IAAK,EACLkC,KAAM,EAEV,GAEFvK,EAAE6rB,GAAGC,MAAM+L,IAAM,WACf,MAp4BQ,OAq4BV,EAGA73B,EAAE6rB,GAAGC,MAAMkG,SAAW,CACpBzC,iBAAkB,cAElB5R,MAAO,KAEPsZ,uBAAuB,EAEvBzE,OAAQ,KAERkF,YAAa,EAEbjF,QAAS,KAETkF,aAAc,EAEd1E,QAAQ,EAERnF,SAAU,EAEVsE,cAAe,EAEfhD,WAAW,EAEXjY,OAAQ,KAERxJ,OAAQ,KAERgf,WAAY3sB,EAAEysB,QAAQC,QAEtBiG,eAAe,EAEfW,gBAAiB,EAEjBC,sBAAuB,EAEvB5D,WAAY,EAEZ4C,SAAU,KAEVD,UAAW,KAEXnX,MAAO,EAEPzD,OAAQ,KAER8d,QAAS,KAETD,OAAQ,KAER/F,IAAK,KAELX,YAAa,EAEbmE,IAAK,EAEL5E,GAAI,OAEJQ,KAAM,KAENhlB,OAAQ,OAER4jB,aAAa,EAEb2E,SAAU,QAEVna,KAAM,KAENgW,OAAQ,EAER8I,aAAc,KAEd1G,gBAAiB,KAEjBf,MAAO,KAEP+B,mBAAoB,KAEpB4F,WAAY,cAEZ9C,MAAO,EAEPgD,kBAAmB,EAEnBhf,KAAM,KAENiZ,cAAe,cAEfhN,OAAQ,EAERoQ,iBAAkB,EAElBQ,yBAAyB,EAEzBE,eAAgB,IAEhBqC,IAAK,EAELQ,QAAS,KAETlC,6BAA6B,EAE7BjE,UAAW,KAEXyB,YAAa,EAEbrD,MAAO,IAEP0F,QAAS,KAET5F,SAAU,KAEV+C,cAAejqB,EAEf0sB,KAAM,EAEN3F,QAAS,IAETI,UAAW,KAEXR,sBAAuB,KAEvBpiB,MAAO,KAEV,CAtgCD,CAsgCGpI;;;;;;;;;;;AAYH,SAAW9E,GACT,aAOAA,EAAE6rB,GAAGC,MAAMuI,YAAY0D,KAAO,SAAU5K,EAAOoD,EAASpE,GACtDA,EAAKyC,KAAO,SAAUxB,EAAMpV,EAAMmU,EAAMxO,GACtC3d,EAAEgY,GAAMJ,OACR5X,EAAEotB,GAAMniB,OACR0S,GACF,CACF,EAGA3d,EAAE6rB,GAAGC,MAAMuI,YAAY2D,QAAU,SAAU7K,EAAOoD,EAASpE,GACzDoE,EAAQ4E,IAAI,OAAShJ,EAAKkB,UAAY,KAAKzpB,IAAI,CAC7CglB,QAAS,QACT,QAAW,IAEbuD,EAAKhV,OAAOzT,MAAK,SAAU0pB,EAAMpV,EAAMmU,EAAMyH,EAAGE,EAAGwD,GACjDt3B,EAAEotB,GAAMxpB,IAAI,SAAUuoB,EAAKgD,aAAsB,IAARmI,EAAe,EAAI,IAC5Dt3B,EAAEgY,GAAMpU,IAAI,SAAUuoB,EAAKgD,aAAsB,IAARmI,EAAe,EAAI,GAC9D,IACAnL,EAAKqG,OAAO9F,QAAU,EACtBP,EAAKsG,QAAQ/F,QAAU,EACvBP,EAAKmG,UAAU5F,QAAU,EACzBP,EAAKmG,UAAU1J,QAAU,QACzBuD,EAAKoG,SAAS0F,OAAS,CACzB,EAGAj4B,EAAE6rB,GAAGC,MAAMuI,YAAY6D,SAAW,SAAU/K,EAAOoD,EAASpE,GAC1DgB,EAAMvpB,IAAI,WAAY,UACtBuoB,EAAKhV,OAAOzT,KAAK1D,EAAE6rB,GAAGC,MAAMuL,aAC5B,IAAIvD,EAAI3G,EAAMvjB,SACduiB,EAAKmG,UAAUjqB,IAAMyrB,EACrB3H,EAAKmG,UAAU/nB,KAAO,EACtB4hB,EAAK+I,SAAS7sB,IAAM,EACpB8jB,EAAKqG,OAAOnqB,IAAM,EAClB8jB,EAAKsG,QAAQpqB,KAAOyrB,CACtB,EACA9zB,EAAE6rB,GAAGC,MAAMuI,YAAY8D,WAAa,SAAUhL,EAAOoD,EAASpE,GAC5DgB,EAAMvpB,IAAI,WAAY,UACtBuoB,EAAKhV,OAAOzT,KAAK1D,EAAE6rB,GAAGC,MAAMuL,aAC5B,IAAIvD,EAAI3G,EAAMvjB,SACduiB,EAAK+I,SAAS7sB,IAAM,EACpB8jB,EAAKmG,UAAUjqB,KAAOyrB,EACtB3H,EAAKmG,UAAU/nB,KAAO,EACtB4hB,EAAKqG,OAAOnqB,IAAM,EAClB8jB,EAAKsG,QAAQpqB,IAAMyrB,CACrB,EACA9zB,EAAE6rB,GAAGC,MAAMuI,YAAY+D,WAAa,SAAUjL,EAAOoD,EAASpE,GAC5DgB,EAAMvpB,IAAI,WAAY,UACtBuoB,EAAKhV,OAAOzT,KAAK1D,EAAE6rB,GAAGC,MAAMuL,aAC5B,IAAIzD,EAAIzG,EAAMjgB,QACdif,EAAK+I,SAAS3qB,KAAO,EACrB4hB,EAAKmG,UAAU/nB,KAAOqpB,EACtBzH,EAAKmG,UAAUjqB,IAAM,EACrB8jB,EAAKqG,OAAOjoB,KAAO,EACnB4hB,EAAKsG,QAAQloB,KAAO,EAAIqpB,CAC1B,EACA5zB,EAAE6rB,GAAGC,MAAMuI,YAAYgE,YAAc,SAAUlL,EAAOoD,EAASpE,GAC7DgB,EAAMvpB,IAAI,WAAY,UACtBuoB,EAAKhV,OAAOzT,KAAK1D,EAAE6rB,GAAGC,MAAMuL,aAC5B,IAAIzD,EAAIzG,EAAMjgB,QACdif,EAAK+I,SAAS3qB,KAAO,EACrB4hB,EAAKmG,UAAU/nB,MAAQqpB,EACvBzH,EAAKmG,UAAUjqB,IAAM,EACrB8jB,EAAKqG,OAAOjoB,KAAO,EACnB4hB,EAAKsG,QAAQloB,KAAOqpB,CACtB,EACA5zB,EAAE6rB,GAAGC,MAAMuI,YAAYiE,WAAa,SAAUnL,EAAOoD,EAASpE,GAC5DgB,EAAMvpB,IAAI,WAAY,UAAUsJ,QAChCif,EAAKhV,OAAOzT,MAAK,SAAU0pB,EAAMpV,EAAMmU,EAAMc,GACvCd,EAAKmL,MAAKrK,GAAOA,GACrBjtB,EAAE6rB,GAAGC,MAAMuL,YAAYjK,EAAMpV,EAAMmU,GACnCA,EAAKmG,UAAU/nB,KAAO0iB,EAAMjV,EAAKsW,OAAS,EAAI,EAAItW,EAAKsW,OACvDnC,EAAKsG,QAAQloB,KAAO0iB,GAAOG,EAAKkB,OAASlB,EAAKkB,MAChD,IACAnC,EAAK+I,SAAS3qB,KAAO,EACrB4hB,EAAKmG,UAAUjqB,IAAM,EACrB8jB,EAAKqG,OAAOjoB,KAAO,EACnB4hB,EAAKsG,QAAQpqB,IAAM,CACrB,EACArI,EAAE6rB,GAAGC,MAAMuI,YAAYkE,WAAa,SAAUpL,EAAOoD,EAASpE,GAC5DgB,EAAMvpB,IAAI,WAAY,UACtBuoB,EAAKhV,OAAOzT,MAAK,SAAU0pB,EAAMpV,EAAMmU,EAAMc,GACvCd,EAAKmL,MAAKrK,GAAOA,GACrBjtB,EAAE6rB,GAAGC,MAAMuL,YAAYjK,EAAMpV,EAAMmU,GACnCA,EAAKmG,UAAUjqB,IAAM4kB,EAAM,EAAIjV,EAAKqW,OAASrW,EAAKqW,OAAS,EAC3DlC,EAAKsG,QAAQpqB,IAAM4kB,EAAMG,EAAKiB,QAAUjB,EAAKiB,MAC/C,IACAlC,EAAK+I,SAAS7sB,IAAM,EACpB8jB,EAAKmG,UAAU/nB,KAAO,EACtB4hB,EAAKqG,OAAOnqB,IAAM,EAClB8jB,EAAKsG,QAAQloB,KAAO,CACtB,EAGAvK,EAAE6rB,GAAGC,MAAMuI,YAAYmE,OAAS,SAAUrL,EAAOoD,EAASpE,GACxDA,EAAKhV,OAAOzT,MAAK,SAAU0pB,EAAMpV,EAAMmU,GACrCnsB,EAAEmsB,EAAK+D,UAAUiF,IAAI/H,GAAMniB,OAC3BjL,EAAE6rB,GAAGC,MAAMuL,YAAYjK,EAAMpV,EAAMmU,GAAM,GAAO,GAChDA,EAAKqG,OAAOtlB,MAAQ8K,EAAKsW,MAC3B,IACAnC,EAAKmG,UAAU/nB,KAAO,EACtB4hB,EAAKmG,UAAUjqB,IAAM,EACrB8jB,EAAKmG,UAAUplB,MAAQ,EACvBif,EAAKqG,OAAOtlB,MAAQ,OACpBif,EAAKsG,QAAQvlB,MAAQ,CACvB,EACAlN,EAAE6rB,GAAGC,MAAMuI,YAAYoE,OAAS,SAAUtL,EAAOoD,EAASpE,GACxDA,EAAKhV,OAAOzT,MAAK,SAAU0pB,EAAMpV,EAAMmU,GACrCnsB,EAAEmsB,EAAK+D,UAAUiF,IAAI/H,GAAMniB,OAC3BjL,EAAE6rB,GAAGC,MAAMuL,YAAYjK,EAAMpV,EAAMmU,GAAM,GAAM,GAC/CA,EAAKqG,OAAO5oB,OAASoO,EAAKqW,MAC5B,IACAlC,EAAKmG,UAAU/nB,KAAO,EACtB4hB,EAAKmG,UAAUjqB,IAAM,EACrB8jB,EAAKmG,UAAU1oB,OAAS,EACxBuiB,EAAKqG,OAAO5oB,OAAS,OACrBuiB,EAAKsG,QAAQ7oB,OAAS,CACxB,EAGA5J,EAAE6rB,GAAGC,MAAMuI,YAAYyD,QAAU,SAAU3K,EAAOoD,EAASpE,GACzD,IAAIjqB,EACF0xB,EAAIzG,EAAMvpB,IAAI,WAAY,WAAWsJ,QAmBvC,IAlBAqjB,EAAQ3sB,IAAI,CACV2G,KAAM,EACNlC,IAAK,IAEP8jB,EAAKhV,OAAOzT,MAAK,SAAU0pB,EAAMpV,EAAMmU,GACrCnsB,EAAE6rB,GAAGC,MAAMuL,YAAYjK,EAAMpV,EAAMmU,GAAM,GAAM,GAAM,EACvD,IAEKA,EAAKuM,gBACRvM,EAAK4D,MAAQ5D,EAAK4D,MAAQ,EAC1B5D,EAAKuM,eAAgB,GAEvBvM,EAAKhI,OAAS,EACdgI,EAAK2L,QAAU3L,EAAK2L,SAAW,CAC7BvtB,MAAOqpB,EACPvrB,IAAK,IAEP8jB,EAAKY,IAAM,GACN7qB,EAAI,EAAGA,EAAIquB,EAAQpuB,OAAQD,IAAKiqB,EAAKY,IAAIrpB,KAAK6sB,EAAQruB,IAC3D,IAAKA,EAAI,EAAGA,EAAIiqB,EAAKkB,UAAWnrB,IAAKiqB,EAAKY,IAAIrpB,KAAKyoB,EAAKY,IAAI7D,SAG5DiD,EAAKyC,KAAO,SAAUxB,EAAMpV,EAAMmU,EAAMgE,EAAIlD,GACtCd,EAAKmL,MAAKrK,GAAOA,GACrB,IAAI6H,EAAY90B,EAANitB,EAAQG,EAAUpV,GAC5BhY,EAAEgY,GAAMpU,IAAIuoB,EAAKmG,WACjB,IAAIqG,EAAQxM,EAAKgD,WACjB2F,EAAIrmB,QAAQ0d,EAAK2L,QAAS3L,EAAKsJ,QAAStJ,EAAKzU,QAAQ,WAEnD,IADA,IAAIkhB,EAAO54B,EAAE6rB,GAAGC,MAAMqL,aAAahL,EAAMc,GAChCtO,EAAI,EAAGA,EAAIia,EAAMja,IACpBsO,EAAKd,EAAKY,IAAIrpB,KAAKyoB,EAAKY,IAAI7D,SAAciD,EAAKY,IAAI8L,QAAQ1M,EAAKY,IAAItO,OAE1E,GAAIwO,EACF,IAAK,IAAI/qB,EAAI,EAAG42B,EAAM3M,EAAKY,IAAI5qB,OAAQD,EAAI42B,EAAK52B,IAAKlC,EAAEmsB,EAAKY,IAAI7qB,IAAI0B,IAAI,UAAWk1B,EAAM52B,EAAIy2B,OACxF,CACL,IAAI5F,EAAI/yB,EAAEotB,GAAMxpB,IAAI,WACpBkxB,EAAIlxB,IAAI,UAAWuD,SAAS4rB,EAAG,IAAM,EAAI4F,EAC3C,CACA7D,EAAIrmB,QAAQ,CACVlE,KAAM,EACNlC,IAAK,GACJ8jB,EAAK0D,SAAU1D,EAAKqJ,SAAS,WAC9Bx1B,EAAEitB,EAAMjsB,KAAOosB,GAAMniB,OACjBklB,GAAIA,GACV,GACF,GACF,EACAnwB,EAAE+xB,OAAO5F,EAAKmG,UAAW,CACvB1J,QAAS,QACT8D,QAAS,EACTrkB,IAAK,EACLkC,KAAM,GAEV,EAGAvK,EAAE6rB,GAAGC,MAAMuI,YAAY0E,OAAS,SAAU5L,EAAOoD,EAASpE,GACxDA,EAAKhV,OAAOzT,MAAK,SAAU0pB,EAAMpV,EAAMmU,GACrCnsB,EAAE6rB,GAAGC,MAAMuL,YAAYjK,EAAMpV,EAAMmU,GAAM,GAAM,GAC/CA,EAAKmG,UAAUjqB,IAAM2P,EAAKqW,OAC1BlC,EAAKqG,OAAO5oB,OAASoO,EAAKqW,OAC1BlC,EAAKsG,QAAQvlB,MAAQ8K,EAAKsW,MAC5B,IACAnC,EAAK+I,SAAS7sB,IAAM,EACpB8jB,EAAKmG,UAAU/nB,KAAO,EACtB4hB,EAAKmG,UAAU1oB,OAAS,EACxBuiB,EAAKqG,OAAOnqB,IAAM,EAClB8jB,EAAKsG,QAAQ7oB,OAAS,CACxB,EACA5J,EAAE6rB,GAAGC,MAAMuI,YAAY2E,SAAW,SAAU7L,EAAOoD,EAASpE,GAC1DA,EAAKhV,OAAOzT,MAAK,SAAU0pB,EAAMpV,EAAMmU,GACrCnsB,EAAE6rB,GAAGC,MAAMuL,YAAYjK,EAAMpV,EAAMmU,GAAM,GAAM,GAC/CA,EAAKqG,OAAO5oB,OAASoO,EAAKqW,OAC1BlC,EAAKsG,QAAQpqB,IAAM+kB,EAAKiB,MAC1B,IACAlC,EAAK+I,SAAS7sB,IAAM,EACpB8jB,EAAKmG,UAAU/nB,KAAO,EACtB4hB,EAAKmG,UAAUjqB,IAAM,EACrB8jB,EAAKmG,UAAU1oB,OAAS,EACxBuiB,EAAKsG,QAAQ7oB,OAAS,CACxB,EACA5J,EAAE6rB,GAAGC,MAAMuI,YAAY4E,SAAW,SAAU9L,EAAOoD,EAASpE,GAC1DA,EAAKhV,OAAOzT,MAAK,SAAU0pB,EAAMpV,EAAMmU,GACrCnsB,EAAE6rB,GAAGC,MAAMuL,YAAYjK,EAAMpV,EAAMmU,GAAM,GAAO,GAChDA,EAAKmG,UAAU/nB,KAAOyN,EAAKsW,OAC3BnC,EAAKqG,OAAOtlB,MAAQ8K,EAAKsW,MAC3B,IACAnC,EAAKmG,UAAUjqB,IAAM,EACrB8jB,EAAKmG,UAAUplB,MAAQ,EACvBif,EAAKqG,OAAOjoB,KAAO,EACnB4hB,EAAKsG,QAAQvlB,MAAQ,CACvB,EACAlN,EAAE6rB,GAAGC,MAAMuI,YAAY6E,UAAY,SAAU/L,EAAOoD,EAASpE,GAC3DA,EAAKhV,OAAOzT,MAAK,SAAU0pB,EAAMpV,EAAMmU,GACrCnsB,EAAE6rB,GAAGC,MAAMuL,YAAYjK,EAAMpV,EAAMmU,GAAM,GAAO,GAChDA,EAAKqG,OAAOtlB,MAAQ8K,EAAKsW,OACzBnC,EAAKsG,QAAQloB,KAAO6iB,EAAKkB,MAC3B,IACAtuB,EAAE+xB,OAAO5F,EAAKmG,UAAW,CACvBjqB,IAAK,EACLkC,KAAM,EACN2C,MAAO,IAETif,EAAKqG,OAAOjoB,KAAO,EACnB4hB,EAAKsG,QAAQvlB,MAAQ,CACvB,EAGAlN,EAAE6rB,GAAGC,MAAMuI,YAAY5mB,KAAO,SAAU0f,EAAOoD,EAASpE,GACtDA,EAAKhV,OAAOzT,MAAK,SAAU0pB,EAAMpV,EAAMmU,GACrCnsB,EAAE6rB,GAAGC,MAAMuL,YAAYjK,EAAMpV,EAAMmU,GAAM,GAAO,GAAO,GACvDA,EAAKmG,UAAUjqB,IAAM2P,EAAKqW,OAAS,EACnClC,EAAKmG,UAAU/nB,KAAOyN,EAAKsW,OAAS,EACpCtuB,EAAE+xB,OAAO5F,EAAKqG,OAAQ,CACpBnqB,IAAK,EACLkC,KAAM,EACN2C,MAAO8K,EAAKsW,OACZ1kB,OAAQoO,EAAKqW,SAEfruB,EAAE+xB,OAAO5F,EAAKsG,QAAS,CACrBvlB,MAAO,EACPtD,OAAQ,EACRvB,IAAK+kB,EAAKiB,OAAS,EACnB9jB,KAAM6iB,EAAKkB,OAAS,GAExB,IACAnC,EAAK+I,SAAS7sB,IAAM,EACpB8jB,EAAK+I,SAAS3qB,KAAO,EACrB4hB,EAAKmG,UAAUplB,MAAQ,EACvBif,EAAKmG,UAAU1oB,OAAS,CAC1B,EAGA5J,EAAE6rB,GAAGC,MAAMuI,YAAY8E,SAAW,SAAUhM,EAAOoD,EAASpE,GAC1DA,EAAKhV,OAAOzT,MAAK,SAAU0pB,EAAMpV,EAAMmU,GACrCnsB,EAAE6rB,GAAGC,MAAMuL,YAAYjK,EAAMpV,EAAMmU,GAAM,GAAO,GAChDA,EAAKmG,UAAU/nB,KAAOyN,EAAKsW,OAAS,EACpCnC,EAAKmG,UAAUjqB,IAAM2P,EAAKqW,OAAS,EACnCruB,EAAE+xB,OAAO5F,EAAKqG,OAAQ,CACpBnqB,IAAK,EACLkC,KAAM,EACN2C,MAAO8K,EAAKsW,OACZ1kB,OAAQoO,EAAKqW,QAEjB,IACAlC,EAAKmG,UAAUplB,MAAQ,EACvBif,EAAKmG,UAAU1oB,OAAS,EACxBuiB,EAAKsG,QAAQ/F,QAAU,CACzB,EAGA1sB,EAAE6rB,GAAGC,MAAMuI,YAAY+E,OAAS,SAAUjM,EAAOoD,EAASpE,GACxD,IAAIyH,EAAIzG,EAAMvpB,IAAI,WAAY,UAAUsJ,QACxCif,EAAKhV,OAAOzT,MAAK,SAAU0pB,EAAMpV,EAAMmU,GACrCnsB,EAAE6rB,GAAGC,MAAMuL,YAAYjK,EAAMpV,EAAMmU,GACnCA,EAAKqG,OAAOtlB,MAAQ8K,EAAKsW,OACzBnC,EAAKsG,QAAQloB,KAAO6iB,EAAKkB,MAC3B,IACAnC,EAAKmG,UAAU/nB,KAAOqpB,EACtBzH,EAAKmG,UAAUjqB,IAAM,EACrB8jB,EAAKqG,OAAOjoB,KAAO,EACnB4hB,EAAKsG,QAAQloB,KAAOqpB,CACtB,EAEA5zB,EAAE6rB,GAAGC,MAAMuI,YAAYgF,OAAS,SAAUlM,EAAOoD,EAASpE,GACxD,IAAI2H,EAAI3G,EAAMvpB,IAAI,WAAY,UAAUgG,SACxCuiB,EAAKhV,OAAOzT,MAAK,SAAU0pB,EAAMpV,EAAMmU,GACrCnsB,EAAE6rB,GAAGC,MAAMuL,YAAYjK,EAAMpV,EAAMmU,GACnCA,EAAKqG,OAAO5oB,OAASoO,EAAKqW,OAC1BlC,EAAKsG,QAAQpqB,IAAM+kB,EAAKiB,MAC1B,IACAlC,EAAKmG,UAAUjqB,IAAMyrB,EACrB3H,EAAKmG,UAAU/nB,KAAO,EACtB4hB,EAAKqG,OAAOnqB,IAAM,EAClB8jB,EAAKsG,QAAQpqB,IAAMyrB,CACrB,EAEA9zB,EAAE6rB,GAAGC,MAAMuI,YAAYiF,OAAS,SAAUnM,EAAOoD,EAASpE,GACxD,IAAI2H,EAAI3G,EAAMvpB,IAAI,WAAY,UAAUgG,SACpCgqB,EAAIzG,EAAMjgB,QACdif,EAAKhV,OAAOzT,MAAK,SAAU0pB,EAAMpV,EAAMmU,GACrCnsB,EAAE6rB,GAAGC,MAAMuL,YAAYjK,EAAMpV,EAAMmU,GACnCA,EAAKqG,OAAO5oB,OAASoO,EAAKqW,OAC1BlC,EAAKsG,QAAQpqB,IAAM+kB,EAAKiB,MAC1B,IACAlC,EAAKmG,UAAUjqB,IAAMyrB,EACrB3H,EAAKmG,UAAU/nB,KAAOqpB,EACtBzH,EAAKqG,OAAOnqB,IAAM,EAClB8jB,EAAKqG,OAAOjoB,KAAO,EACnB4hB,EAAKsG,QAAQpqB,IAAMyrB,EACnB3H,EAAKsG,QAAQloB,KAAOqpB,CACtB,EAGA5zB,EAAE6rB,GAAGC,MAAMuI,YAAYkF,MAAQ,SAAUpM,EAAOoD,EAASpE,GACvDA,EAAKhV,OAAOzT,MAAK,SAAU0pB,EAAMpV,EAAMmU,GACrCnsB,EAAE6rB,GAAGC,MAAMuL,YAAYjK,EAAMpV,EAAMmU,GAAM,GAAO,GAChDA,EAAKmG,UAAU/nB,KAAOvJ,KAAKstB,OAAS,EACpCnC,EAAKqG,OAAOjoB,KAAO,EACnB4hB,EAAKqG,OAAOtlB,MAAQlM,KAAKstB,OACzBnC,EAAKsG,QAAQloB,KAAO,CACtB,IACA4hB,EAAKmG,UAAUjqB,IAAM,EACrB8jB,EAAKmG,UAAUplB,MAAQ,CACzB,EAEAlN,EAAE6rB,GAAGC,MAAMuI,YAAYmF,MAAQ,SAAUrM,EAAOoD,EAASpE,GACvDA,EAAKhV,OAAOzT,MAAK,SAAU0pB,EAAMpV,EAAMmU,GACrCnsB,EAAE6rB,GAAGC,MAAMuL,YAAYjK,EAAMpV,EAAMmU,GAAM,GAAM,GAC/CA,EAAKmG,UAAUjqB,IAAMrH,KAAKqtB,OAAS,EACnClC,EAAKqG,OAAOnqB,IAAM,EAClB8jB,EAAKqG,OAAO5oB,OAAS5I,KAAKqtB,OAC1BlC,EAAKsG,QAAQpqB,IAAM,CACrB,IACA8jB,EAAKmG,UAAU1oB,OAAS,EACxBuiB,EAAKmG,UAAU/nB,KAAO,CACxB,EAGAvK,EAAE6rB,GAAGC,MAAMuI,YAAYoF,SAAW,SAAUtM,EAAOoD,EAASpE,GAC1DA,EAAKhV,OAAOzT,MAAK,SAAU0pB,EAAMpV,EAAMmU,GACrCnsB,EAAE6rB,GAAGC,MAAMuL,YAAYjK,EAAMpV,EAAMmU,GAAM,GAAO,GAAM,GACtDA,EAAKmG,UAAU/nB,KAAOyN,EAAKsW,OAAS,EACpCnC,EAAKqG,OAAOjoB,KAAO,EACnB4hB,EAAKqG,OAAOtlB,MAAQlM,KAAKstB,OACzBnC,EAAKsG,QAAQloB,KAAO6iB,EAAKkB,OAAS,EAClCnC,EAAKsG,QAAQvlB,MAAQ,CACvB,IACAif,EAAKmG,UAAUjqB,IAAM,EACrB8jB,EAAKmG,UAAUplB,MAAQ,CACzB,EAEAlN,EAAE6rB,GAAGC,MAAMuI,YAAYqF,SAAW,SAAUvM,EAAOoD,EAASpE,GAC1DA,EAAKhV,OAAOzT,MAAK,SAAU0pB,EAAMpV,EAAMmU,GACrCnsB,EAAE6rB,GAAGC,MAAMuL,YAAYjK,EAAMpV,EAAMmU,GAAM,GAAM,GAAO,GACtDA,EAAKmG,UAAUjqB,IAAM2P,EAAKqW,OAAS,EACnClC,EAAKqG,OAAOnqB,IAAM,EAClB8jB,EAAKqG,OAAO5oB,OAASoO,EAAKqW,OAC1BlC,EAAKsG,QAAQpqB,IAAM+kB,EAAKiB,OAAS,EACjClC,EAAKsG,QAAQ7oB,OAAS,CACxB,IACAuiB,EAAKmG,UAAU1oB,OAAS,EACxBuiB,EAAKmG,UAAU/nB,KAAO,CACxB,EAGAvK,EAAE6rB,GAAGC,MAAMuI,YAAYsF,MAAQ,SAAUxM,EAAOoD,EAASpE,GACvD,IAAIyN,EAAIzN,EAAK0N,WAAa,OACtBjG,EAAIzG,EAAMvpB,IAAI,WAAY,UAAUsJ,QACpC4mB,EAAI3G,EAAMvjB,SACduiB,EAAKhV,OAAOzT,MAAK,SAAU0pB,EAAMpV,EAAMmU,GACrCnsB,EAAE6rB,GAAGC,MAAMuL,YAAYjK,EAAMpV,EAAMmU,GACnCA,EAAKoG,SAAS3J,QAAU,GACf,SAALgR,EAAczN,EAAKmG,UAAU/nB,MAAQqpB,EAAgB,MAALgG,EAAWzN,EAAKmG,UAAUjqB,IAAMyrB,EAAgB,QAAL8F,EAAazN,EAAKmG,UAAUjqB,KAAOyrB,EAAO3H,EAAKmG,UAAU/nB,KAAOqpB,CACjK,IACAzH,EAAKqG,OAAOjoB,KAAO,EACnB4hB,EAAKqG,OAAOnqB,IAAM,EAClB8jB,EAAKmG,UAAUjqB,IAAM,EACrB8jB,EAAKmG,UAAU/nB,KAAO,CACxB,EAGAvK,EAAE6rB,GAAGC,MAAMuI,YAAYyF,QAAU,SAAU3M,EAAOoD,EAASpE,GACzD,IAAIyN,EAAIzN,EAAK0N,WAAa,OACtBjG,EAAIzG,EAAMvpB,IAAI,WAAY,UAAUsJ,QACpC4mB,EAAI3G,EAAMvjB,SACduiB,EAAKhV,OAAOzT,MAAK,SAAU0pB,EAAMpV,EAAMmU,GACrCnsB,EAAE6rB,GAAGC,MAAMuL,YAAYjK,EAAMpV,EAAMmU,GAAM,GAAM,GAAM,GAC5C,SAALyN,EAAczN,EAAKsG,QAAQloB,KAAOqpB,EAAgB,MAALgG,EAAWzN,EAAKsG,QAAQpqB,KAAOyrB,EAAgB,QAAL8F,EAAazN,EAAKsG,QAAQpqB,IAAMyrB,EAAO3H,EAAKsG,QAAQloB,MAAQqpB,CACzJ,IACAzH,EAAKqG,OAAOjoB,KAAO,EACnB4hB,EAAKqG,OAAOnqB,IAAM,EAClB8jB,EAAKmG,UAAUjqB,IAAM,EACrB8jB,EAAKmG,UAAU/nB,KAAO,CACxB,EAGAvK,EAAE6rB,GAAGC,MAAMuI,YAAY0F,KAAO,SAAU5M,EAAOoD,EAASpE,GACtD,IAAIyH,EAAIzG,EAAMvpB,IAAI,WAAY,WAAWsJ,QACrC4mB,EAAI3G,EAAMvjB,SACduiB,EAAKhV,OAAOzT,MAAK,SAAU0pB,EAAMpV,EAAMmU,GACrCnsB,EAAE6rB,GAAGC,MAAMuL,YAAYjK,EAAMpV,EAAMmU,GAAM,GAAM,GAAM,GAEhDA,EAAKsG,QAAQloB,MAAS4hB,EAAKsG,QAAQpqB,IAIhC8jB,EAAKsG,QAAQ/F,QAAU,EAJc1sB,EAAE+xB,OAAO5F,EAAKsG,QAAS,CAClEloB,KAAU,EAAJqpB,EACNvrB,KAAMyrB,EAAI,EACVpH,QAAS,GAEb,IACAP,EAAKmG,UAAU/nB,KAAO,EACtB4hB,EAAKmG,UAAUjqB,IAAM,EACrB8jB,EAAKqG,OAAOjoB,KAAO,CACrB,EAGAvK,EAAE6rB,GAAGC,MAAMuI,YAAY2F,KAAO,SAAU7M,EAAOoD,EAASpE,GACtD,IAGI8N,EAHArG,EAAIzG,EAAMvpB,IAAI,WAAY,UAAUsJ,QACpC4mB,EAAI3G,EAAMvjB,SAGd,GAFAuiB,EAAKmG,UAAYnG,EAAKmG,WAAa,CAAC,EAEhCnG,EAAK8N,KACP,GAAI,MAAM7d,KAAK+P,EAAK8N,MAAOA,EAAO,gBAAkBnG,EAAI,eAAe,GAAI,MAAM1X,KAAK+P,EAAK8N,MAAOA,EAAO,YAAcrG,EAAI,MAAQE,EAAI,MAAQF,EAAI,WAAW,GAAI,MAAMxX,KAAK+P,EAAK8N,MAAOA,EAAO,YAAcrG,EAAI,mBAAmB,GAAI,MAAMxX,KAAK+P,EAAK8N,MAAOA,EAAO,QAAUnG,EAAI,MAAQF,EAAI,MAAQE,EAAI,eAAe,GAAI,OAAO1X,KAAK+P,EAAK8N,MAAO,CACtV,IAAI5xB,EAAMlB,SAAS2sB,EAAI,EAAG,IACtBvpB,EAAOpD,SAASysB,EAAI,EAAG,IAC3BqG,EAAO,QAAU5xB,EAAM,MAAQkC,EAAO,MAAQlC,EAAM,MAAQkC,EAAO,KACrE,CAEF4hB,EAAKmG,UAAU2H,KAAO9N,EAAKmG,UAAU2H,MAAQA,GAAQ,wBACrD,IAAIL,EAAIzN,EAAKmG,UAAU2H,KAAKrJ,MAAM,UAC9Bvc,EAAIlN,SAASyyB,EAAE,GAAI,IACrBxlB,EAAIjN,SAASyyB,EAAE,GAAI,IACnBxT,EAAIjf,SAASyyB,EAAE,GAAI,IACnBxC,EAAIjwB,SAASyyB,EAAE,GAAI,IACrBzN,EAAKhV,OAAOzT,MAAK,SAAU0pB,EAAMpV,EAAMmU,GACrC,GAAIiB,GAAQpV,EAAZ,CACA,IAAIkiB,EAAQl6B,EAAEotB,GACZ+M,EAAQn6B,EAAEgY,GACZhY,EAAE6rB,GAAGC,MAAMuL,YAAYjK,EAAMpV,EAAMmU,GAAM,GAAM,GAAM,GACrDA,EAAKoG,SAAS3J,QAAU,QACxB,IAAI7V,EAAO,EACT4lB,EAAQxxB,SAASglB,EAAKsJ,QAAU,GAAI,IAAM,GAC5C,SAAU1Q,IACR,IAAIqV,EAAK/lB,EAAIA,EAAIlN,SAAS4L,GAAQsB,EAAIskB,GAAQ,IAAM,EAChD0B,EAAKjD,EAAIA,EAAIjwB,SAAS4L,GAAQqkB,EAAIuB,GAAQ,IAAM,EAChD2B,EAAKlU,EAAI0N,EAAI1N,EAAIjf,SAAS4L,IAAS+gB,EAAI1N,GAAKuS,GAAS,GAAI,IAAM7E,EAC/DyG,EAAKnmB,EAAIwf,EAAIxf,EAAIjN,SAAS4L,IAAS6gB,EAAIxf,GAAKukB,GAAS,GAAI,IAAM/E,EACnEuG,EAAMv2B,IAAI,CACRq2B,KAAM,QAAUG,EAAK,MAAQG,EAAK,MAAQD,EAAK,MAAQD,EAAK,QAE9DtnB,KAAU4lB,EAAQjwB,WAAWqc,EAAG,IAAMmV,EAAMt2B,IAAI,UAAW,OAC5D,CATD,EAPwB,CAiB1B,IACA5D,EAAE+xB,OAAO5F,EAAKmG,UAAW,CACvB1J,QAAS,QACT8D,QAAS,EACTrkB,IAAK,EACLkC,KAAM,IAER4hB,EAAKqG,OAAS,CACZjoB,KAAM,GAER4hB,EAAKsG,QAAU,CACbloB,KAAM,EAEV,CACD,CA5dD,CA4dGzF,O,oBCr/CH,SAAW9E,EAAGC,GAC+E,IACrF6P,EADN7P,EAAIyB,WAAWC,kBAAkB2Q,UAAYrS,EAAIyB,WAAWC,kBAAkB2Q,YACxExC,EAAM7P,EAAIyB,WAAWC,kBAAkBxB,cAKpC,CACLA,YAAa,WACX,IAAIq6B,EAAU,CACZC,OAAQ,GACRC,SAAU,KACVC,UAAW,KACXC,mBAAoB,KACpBC,OAAQ,GACRC,OAAQ,EACRC,MAAO,KACPC,UAAW,KACXC,kBAAmB,KACnBC,aAAc,KACdC,YAAa,WACX,IASEC,EATEr3B,EAAMgB,OAAOrE,SAAS6E,KACxBoT,EAAS,CACPlG,OAAQ,CAAC,EACTC,KAAM,IAER2oB,EAAYt3B,EAAIxB,QAAQ,KACxB+4B,EAAav3B,EAAIxB,QAAQ,KAe3B,OAXI84B,GAAa,IACf1iB,EAAOjG,KAAO3O,EAAIw3B,MAAMF,EAAY,IAElCC,GAAc,GACLv3B,EAAIO,OAAOg3B,EAAa,EAAGD,GAAa,EAAIA,EAAYt3B,EAAI5B,QACrDtB,MAAM,KACjBgD,SAAQ,SAAUrC,GACvB45B,EAAY55B,EAAMX,MAAM,KACxB8X,EAAOlG,OAAO2oB,EAAU,IAAMA,EAAU,EAC1C,IAEKziB,CACT,EACA6iB,aAAc,WACRx6B,KAAKy5B,OAAOt4B,OAAS,GACZnB,KAAKy5B,OAAOvR,QAClBzT,OAET,EACAgmB,YAAa,SAAqB75B,EAAM85B,EAAaC,EAAWC,GAC1DF,EACF17B,EAAE6Z,KAAK,CACL9V,IAAK23B,EACLjX,KAAM,OACN7iB,KAAMR,KAAKK,UAAUG,KACpBmY,MAAK,SAAUnY,EAAMgjB,EAAWiX,GACjCF,EAAUlmB,MAAM,KAAM,CAAC7T,GACzB,IAAG,SAAUoY,EAAO4K,EAAW1K,GAC7B0hB,EAAQnmB,MAAM,KAAM,CAACmP,EAAW1K,GAClC,IAEAyhB,EAAUlmB,OAEd,EACAlD,UAAW,SAAmB1Q,GAE5B,OADAb,KAAK05B,SAAW74B,EACT24B,CACT,EACAsB,YAAa,SAAqBniB,GAEhC,OADA3Y,KAAK25B,UAAYhhB,EACV6gB,CACT,EACA3nB,QAAS,SAAiBkpB,GAExB,OADA/6B,KAAK65B,OAAOn3B,KAAKq4B,GACVvB,CACT,EACAhoB,gBAAiB,SAAyBoH,GAExC,OADA5Y,KAAK45B,mBAAqBhhB,EACnB4gB,CACT,EACA1nB,IAAK,SAAakpB,GAChB,IAAIC,EAAOj7B,KAEPi7B,EAAKtB,WACPsB,EAAKxB,OAAO/2B,MAAK,WACfoM,EAAI4J,aAAauiB,EAAKvB,SAAUuB,EAAKtB,WAAW,WAC9CsB,EAAKT,cACP,GACF,IAGFx6B,KAAKy5B,OAAO/2B,MAAK,WACfoM,EAAIsJ,SAAS6iB,EAAKvB,UAAU,SAAU94B,GAEpCq6B,EAAKlB,MAAQjrB,EAAIQ,UAAU1O,GAE3Bq6B,EAAKnB,MA7FF76B,EAAIi8B,kBAAkB,IAAKn3B,OAAOrE,SAAS6E,OACjC,EA6FT02B,EAAKpB,OAAO14B,OAAS85B,EAAKnB,QAC5BmB,EAAKjB,UAAYiB,EAAKlB,MAAMhoB,KAAKkpB,EAAKnB,OAClCmB,EAAKjB,UAAUmB,iBAGjBF,EAAKxB,OAAO/2B,MAAK,WACf,IAAI04B,EAAUH,EAAKd,cACjBv5B,EAAOq6B,EAAKrB,mBAAqBqB,EAAKrB,mBAAmBnlB,MAAM,KAAM,CAAC2mB,EAAQ3pB,OAAQ2pB,EAAQ1pB,OAAS,CAAC,EACxG2pB,EAAe,GACf1iB,EAAOsiB,EAAKjB,UAAUmB,gBACxB,IAAK,IAAI76B,KAAOM,EACM,IAAhBy6B,IACFA,GAAgB,KAElBA,GAAgB/6B,EAAM,IAAMU,mBAAmBJ,EAAKN,IAEtDqY,GAA6B,GAAtBA,EAAKpX,QAAQ,KAAaoX,EAAO,IAAM0iB,EAAe1iB,EAAO,IAAM0iB,EAC1Er8B,EAAE6Z,KAAK,CACL9V,IAAK4V,EACL8K,KAAM,QACL1K,MAAK,SAAUnY,GAChBq6B,EAAKjB,UAAUp5B,KAAOA,EACtBq6B,EAAKT,cACP,IAAG,SAAUxhB,EAAOC,EAAYC,GAC9B+hB,EAAKjB,UAAUp5B,KAAO,KACtBq6B,EAAKT,cACP,GACF,IAGES,EAAKjB,UAAUsB,oBACjBL,EAAKxB,OAAO/2B,MAAK,WACf1D,EAAE6Z,KAAK,CACL9V,IAAKk4B,EAAKjB,UAAUsB,mBACpB7X,KAAM,QACL1K,MAAK,SAAUnY,GAChBq6B,EAAKjB,UAAUxqB,YAAc5O,EAC7Bq6B,EAAKT,cACP,IAAG,SAAUxhB,EAAOC,EAAYC,GAC9B+hB,EAAKjB,UAAUxqB,YAAc,KAC7ByrB,EAAKT,cACP,GACF,IAIFS,EAAKxB,OAAO/2B,MAAK,WACf,IAAIw3B,EAAee,EAAKpB,OAAOoB,EAAKnB,OAAOrlB,MAAM,KAAM,CAACwmB,EAAKjB,UAAWiB,EAAKvB,WACzEQ,GAAcn2B,OAAO9E,IAAIsZ,QAAQpZ,cAAcqZ,MAAM0hB,GACzDe,EAAKT,cACP,IACIQ,GACFC,EAAKxB,OAAO/2B,MAAK,WACfs4B,EAAevmB,MAAM,KAAM,CAACwmB,EAAKnB,MAAOmB,EAAKjB,WAC/C,KAGJiB,EAAKT,cACP,GACF,IACAx6B,KAAKw6B,cACP,EACAe,iBAAkB,SAA0Bx4B,GAO1C,OANIA,EAAIxB,QAAQ,MAAQ,EACtBwB,GAAO,IAEPA,GAAO,IAETA,GAAO,QAAS/C,KAAK85B,KAEvB,EACArnB,kBAAmB,SAA2B7R,EAAM+5B,EAAWC,GAC7Dh6B,EAAK,OAASZ,KAAK85B,MAAQ,YAAc/1B,OAAOrE,SAAS6E,KACzDvE,KAAKy6B,YAAY75B,EAAMZ,KAAKg6B,UAAUwB,mBAAoBb,EAAWC,EACvE,EACA3nB,cAAe,SAAuBrS,EAAM+5B,EAAWC,GACrD56B,KAAKy6B,YAAY75B,EAAMZ,KAAKg6B,UAAUyB,gBAAiBd,EAAWC,EACpE,EACA1nB,oBAAqB,WACnB,GAAIlT,KAAKg6B,UAAUxqB,YAAa,CAC9B,IAAIlP,EAAM,QAAUN,KAAK85B,MAAQ,GAAK,WACpC4B,EAAe17B,KAAKg6B,UAAUxqB,YAAYlP,GAC5C,GAAIo7B,EACF,OAAOA,CAEX,CACA,OAAO,IACT,EACAC,oBAAqB,WACnB,IAAIvsB,EAAYpP,KAAKg6B,UAAU5qB,UAAUrM,IAEzC,OAAIqM,EACKpP,KAAKu7B,iBAAiBnsB,GAExB,IACT,EACAsD,SAAU,WACR,IAAItD,EAAYpP,KAAKg6B,UAAU5qB,UAAUrM,IAErCqM,IACFrL,OAAOrE,SAAWM,KAAKu7B,iBAAiBnsB,GAE5C,GAEF,OAAOoqB,CACT,GAGL,CA9MD,CA8MG11B,OAAQC,OAAO9E,I,mBCjNlB,SAASwL,EAAQC,GAAgC,OAAOD,EAAU,mBAAqBE,QAAU,iBAAmBA,OAAOC,SAAW,SAAUF,GAAK,cAAcA,CAAG,EAAI,SAAUA,GAAK,OAAOA,GAAK,mBAAqBC,QAAUD,EAAEG,cAAgBF,QAAUD,IAAMC,OAAOG,UAAY,gBAAkBJ,CAAG,EAAGD,EAAQC,EAAI,CAC7T,IAAW1L,IAghBR8E,OA/gBDC,OAAO9E,IAAIC,OAAOC,cAAcC,UAAS,WACvC,IAAIw8B,EAAyB58B,EAAE,wBAG/B,GAA8B,aAA1B48B,GAAyCA,EAAuBz6B,OAAS,EAAG,CAC9E,IAGI06B,EAAa,WACfD,EAAuBn1B,KAAK,iBAAiB8L,IAAI,IACjDxP,EAAM+4B,EAAU,qBAChBC,EAAOr5B,KAAK,0BAA+BK,GAC3Ci5B,GACF,EAwEIC,EAAoB,SAA2BC,EAAWC,EAAcC,EAAWC,EAAcC,GACnG,IAAIC,EAAav9B,EAAEk9B,GACfM,EAAWD,EAAW91B,KAAK,iBAC3Bg2B,EAASF,EAAW91B,KAAK,eACzBi2B,EAAWH,EAAW91B,KAAK,iBAC3Bk2B,EAAYJ,EAAW91B,KAAK,uBAKhC,MAJoB,IAAhB01B,GAAoBS,GAAc,EAAMJ,GAC3B,IAAbJ,GAAiBQ,GAAc,EAAMH,GACrB,IAAhBJ,GAAoBO,GAAc,EAAMD,GACzB,IAAfL,GAAmBM,GAAc,EAAMF,GACpCH,EAAW,EACpB,EA6GIM,EAAkB,WACpB79B,EAAE,kBAAkB+F,QAAQ,gBAAgBG,SAAS+E,MACvD,EACI2yB,EAAgB,SAAuB3Y,EAAQ6Y,IACjD7Y,EAASA,IAAU,GAEjB6Y,EAAI7yB,OAEJ6yB,EAAIlmB,MAER,EACImmB,EAAkB,SAAyBC,GAG7C,GAFAA,EAAYA,IAAa,EACzBjB,EAAOr5B,KAAK,qCAAyCs6B,EAAW,uBAAwBC,GACzE,MAAXC,EAAiB,CAEK,IADxBD,EAAmBC,EAAQ/7B,UACA87B,EAAmBE,EAAQC,WACtDrB,EAAOr5B,KAAK,0BAA+Bu6B,GAC3C,IAAK,IAAI/7B,EAAI,EAAGA,EAAI+7B,EAAkB/7B,IAAK,CACzC,IAAIyL,EAASuwB,EAAQh8B,GACrB,GAAIi8B,EAAQE,SAAWC,EAAU,CAC/B,IACIpB,EADuBl9B,EAAE,2BAA2B8O,OACnBsC,OAAOzD,EAAO4wB,KAAM5wB,EAAO6wB,QAAS7wB,EAAO8wB,aAAc9wB,EAAO+wB,UAAW/wB,EAAOgxB,YAAahxB,EAAOixB,aAAcjxB,EAAOkxB,IAChK3B,EAAYD,EAAkBC,EAAWvvB,EAAO8wB,aAAc9wB,EAAO+wB,UAAW/wB,EAAOixB,aAAcjxB,EAAOgxB,aAC5GG,EAAWnxB,EAAOoxB,WAAWC,SAAUrxB,EAAOoxB,WAAWE,UAAWtxB,EAAO4wB,KAAM5wB,EAAOkxB,GAAI3B,EAC9F,MACE4B,EAAWnxB,EAAOoxB,WAAWC,SAAUrxB,EAAOoxB,WAAWE,UAAWtxB,EAAO4wB,KAAM5wB,EAAOkxB,GAE5F,CAIA,GAHUl2B,MAANu2B,GAAyB,MAANA,GAAYA,EAAGC,eACtCD,EAAK,IAAIE,gBAAgBt+B,EAAKu+B,EAAcC,GAC5CvC,EAAOr5B,KAAK,kBAAsB47B,GAC9BhB,EAAU,CACZt+B,EAAE,gBAAiBiM,GAAWsH,MAC9BvT,EAAE,iBAAkBiM,GAAW7F,GAAG,SAAS,SAAUC,GACnDA,EAAEsG,iBACF4yB,GACF,IACAv/B,EAAE,UAAWiM,GAAW7F,GAAG,YAAY,SAAUC,GAC9B,IAAbA,EAAEm5B,UACJn5B,EAAEsG,iBACF4yB,IAEJ,IACA,IAAIE,EAAgB16B,OAAO9E,IAAI6a,QAAQ3a,cAAcsC,WAAW,eAC1C,OAAlBg9B,IACFz/B,EAAE,gBAAiBiM,GAAWsH,IAAIksB,GAClCF,KAEFv/B,EAAE,UAAWiM,GAAWyzB,QAAO,SAAUr5B,GACvCA,EAAEsG,iBACF4yB,GACF,IACAv/B,EAAE,sDAAuDiM,GAAW7F,GAAG,SAAS,WAC9E,IAAIu5B,EAAM,GACV,GAAI3/B,EAAEgB,MAAMyC,SAAS,WACnBk8B,EAAMzb,KAAK0b,MAAM9+B,EAAI++B,UAAY,OAC5B,CAEL,IADAF,EAAMzb,KAAK0b,MAAM9+B,EAAI++B,UAAY,IACvB,EACR,OAEEF,EAAM,GACR3/B,EAAE,kBAAkB+F,QAAQ,gBAAgBG,SAAS+E,MAEzD,CACAnK,EAAIg/B,QAAQH,GACZ,IAAIhyB,EAASoyB,EAAgB,GAAGC,cAChCl/B,EAAIm/B,UAAUtyB,GACd7M,EAAIo/B,MAAM,GAAI,IAChB,IACA5B,GAAW,EACXxxB,OAAOC,KAAKuG,MAAM6sB,YAAYr/B,EAAK,QAAQ,WACzC,IAAKw9B,EAAU,CACb,IAAI8B,EAAYt/B,EAAIu/B,YAClBC,EAASF,EAAUhzB,MACnBmzB,EAASH,EAAU9yB,MAErB,IADAyvB,EAAOr5B,KAAK,kDAAuD08B,EAAY,qBACxEE,EAAS,KAAKA,GAAU,IAC/B,KAAOA,GAAU,KAAKA,GAAU,IAChC,KAAOC,EAAS,KAAKA,GAAU,IAC/B,KAAOA,GAAU,KAAKA,GAAU,IAChCx8B,EAAM+4B,EAAU,2BAA6B0D,IAAc,IAAMF,EAAS,IAAMC,EAC5ED,GAAUG,GAAUF,GAAUG,IAChCD,EAASH,EACTI,EAASH,EACTxD,EAAOr5B,KAAK,gBAAqBK,GAErC,CACAg5B,EAAOr5B,KAAK,mCAAwC08B,GACpDr7B,OAAO9E,IAAI2T,MAAMzT,cAAc0T,QAAQ9O,OAAO9E,IAAI6T,OAAO6sB,qCAC3D,GACF,CAEA3gC,EAAE,qBAAsBiM,GAAW7F,GAAG,SAAS,SAAUC,GACvDA,EAAEsG,iBACF5H,OAAO6H,KAAK,iCAAmC5M,EAAEgB,MAAMsC,KAAK,MAAO,SAAU,sEAC/E,IACIs9B,EAAYz+B,OAAS,GAAGnC,EAAE,mBAA0B6gC,GAAcl7B,SAAS,QAC/E3F,EAAE,qBAAsBiM,GAAW7F,GAAG,SAAS,SAAUC,GACvDA,EAAEsG,iBACF5H,OAAO6H,KAAK,iCAAmC5M,EAAEgB,MAAMsC,KAAK,MAAO,SAAU,sEAC/E,GACF,CACF,EACIi8B,EAAY,WACd,IAAIn2B,EAAQpJ,EAAE,gBAAiBiM,GAAWsH,MACtC8rB,EAAal9B,OAAS,GACxBk9B,EAAa,GAAGyB,OAAO,MAGZ,IAAT13B,GAAeA,EAAyBT,MAATS,IACjCy0B,IA9SF95B,EAAM+4B,EAAU,6BA+SS1zB,EA3SzBpJ,EAAE6Z,KAAK,CACL9V,IAAKA,EACL0gB,KAAM,MACN3K,SAAU,OACVinB,QAAS,SAAiBn/B,EAAMqY,EAAY+mB,GAC1CC,EAAa,GACbpD,IACA,IAAIqD,EAAetE,EAAuBn1B,KAAK,uBAK/C,GAAuC,MAAnC7F,EAAKu/B,aAAa,GAAGpC,WACvBnB,GAAc,EAAOsD,GACD,MAAhBA,GAAsBA,EAAapyB,KAAK8tB,EAAuBn1B,KAAK,WAAW7F,KAAK,wBACnF,CACLg8B,GAAc,EAAMsD,GACpB,IAAIE,EAAS,IAAIt0B,OAAOC,KAAKs0B,OAAOz/B,EAAKu/B,aAAa,GAAGpC,WAAWC,SAAUp9B,EAAKu/B,aAAa,GAAGpC,WAAWE,WAC9Gn+B,EAAIwgC,MAAMF,GACVtgC,EAAIg/B,QAAQ,IAGZ,IAAInyB,EAAS/L,EAAKu/B,aAAa,GAE3BjE,EADuBl9B,EAAE,2BAA2B8O,OACnBsC,OAAOzD,EAAO4wB,KAAM5wB,EAAO6wB,QAAS7wB,EAAO8wB,aAAc9wB,EAAO+wB,UAAW/wB,EAAOgxB,YAAahxB,EAAOixB,aAAcjxB,EAAOkxB,IAChK3B,EAAYD,EAAkBC,EAAWvvB,EAAO8wB,aAAc9wB,EAAO+wB,UAAW/wB,EAAOixB,aAAcjxB,EAAOgxB,aAC5G,IAAI4C,EAAa,IAAIz0B,OAAOC,KAAKy0B,WAAW,CAC1CC,QAASvE,EACTh8B,GAAIyM,EAAOkxB,KAETkB,EAAgB59B,OAAS,GAC3BnC,EAAE0E,KAAKq7B,GAAiB,SAAUruB,EAAOgwB,GACvC,GAAIH,EAAWE,UAAYC,EAAeD,QACxCC,EAAeC,aACV,GAAIJ,EAAWv7B,QAAU07B,EAAe17B,MAC7C,MAEJ,IAEF,IAAI47B,EAAY,GAChB98B,OAAOwY,KAAK+hB,GAAc,SAAUt+B,EAAGmB,GACjCnB,EAAEG,IAAMyM,EAAOkxB,KACjB+C,EAAYvC,EAAan9B,GAG7B,IACAq/B,EAAW30B,KAAK9L,EAAK8gC,GACrB78B,OAAO9E,IAAI2T,MAAMzT,cAAc0T,QAAQ9O,OAAO9E,IAAI6T,OAAO6sB,sCACzDZ,EAAgBr8B,KAAK69B,GACjBM,GACFA,EAAeC,QAAQC,EAAgBC,QAAQC,eAEjDL,EAAUE,QAAQC,EAAgBC,QAAQH,gBAC1CA,EAAiBD,EACjB90B,OAAOC,KAAKuG,MAAM6sB,YAAYoB,EAAY,cAAc,SAAUl7B,GAChE46B,EAAa,GACbpD,GACF,IACAoD,EAAar/B,EAAKu/B,aAAa,GAAGtC,IAC9B7+B,EAAES,UAAUyM,QAAU,KAAOlN,EAAES,UAAUyM,QAAU,MACrDpM,EAAIo/B,OAAO,KAAM,IAErB,CACF,IA8OJ,EACIpB,EAAa,SAAoBoD,EAAUC,EAAWrgC,EAAMsgC,EAAMlF,GACpE,IAAImF,EAAM,IAAIv1B,OAAOC,KAAKs0B,OAAOa,EAAUC,GACvCZ,EAAa,IAAIz0B,OAAOC,KAAKy0B,WAAW,CAC1CC,QAASvE,EACTh8B,GAAIkhC,IAEFE,EAAS,IAAIx1B,OAAOC,KAAKmB,OAAO,CAClCC,SAAUk0B,EACVvhC,IAAKA,EACLkF,MAAOlE,EACPsM,KAAM2zB,EAAgBC,QAAQC,cAC9B/gC,GAAIkhC,IAEN/C,EAAa37B,KAAK4+B,GAClBx1B,OAAOC,KAAKuG,MAAM6sB,YAAYmC,EAAQ,SAAS,WACzCvC,EAAgB59B,OAAS,GAC3BnC,EAAE0E,KAAKq7B,GAAiB,SAAUruB,EAAOgwB,GACvC,GAAIH,EAAWE,UAAYC,EAAeD,QACxCC,EAAeC,aACV,GAAIJ,EAAWv7B,QAAU07B,EAAe17B,MAC7C,MAEJ,IAEFu7B,EAAW30B,KAAK9L,EAAKE,MACrB++B,EAAgBr8B,KAAK69B,GACjBM,GACFA,EAAeC,QAAQC,EAAgBC,QAAQC,eAEjDK,EAAOR,QAAQC,EAAgBC,QAAQH,gBACvCA,EAAiBS,EACjBC,EAAYviC,EAAEgB,OACdhB,EAAE,kBAAkB+F,QAAQ,gBAAgBG,SAAS+E,OACrDnK,EAAIwgC,MAAMtgC,KAAKg/B,eACfl/B,EAAIg/B,QAAQ,IACZ9/B,EAAE,IAAMoiC,GAAMr8B,QAAQ,gBAAgBG,SAAS0R,OAC/C7S,OAAO9E,IAAI2T,MAAMzT,cAAc0T,QAAQ9O,OAAO9E,IAAI6T,OAAO6sB,sCAErD3gC,EAAES,UAAUyM,QAAU,KAAOlN,EAAES,UAAUyM,QAAU,MACrDpM,EAAIo/B,OAAO,KAAM,IAErB,IACApzB,OAAOC,KAAKuG,MAAM6sB,YAAYoB,EAAY,cAAc,SAAUl7B,GAChE46B,EAAa,GACbpD,GACF,GACF,EACI0E,EAAc,SAAqBtG,GACrC,GAAIA,EAAKx4B,SAAS,kBAChB,GAAIw4B,EAAKx4B,SAAS,QAChBw4B,EAAK50B,YAAY,QAKjB45B,EAAa,GACbpD,QACK,CACL,IAAI2E,EAAMvG,EAAK34B,KAAK,MACpB29B,EAAauB,EACf,MAEIA,EAAMvG,EAAK34B,KAAK,MACpB29B,EAAauB,EAEjB,EACIvB,EAAe,SAAsB//B,GACvC,IAAK,IAAIkV,EAAI,EAAGA,EAAIipB,EAAal9B,OAAQiU,IACvCipB,EAAajpB,GAAG0rB,QAAQC,EAAgBC,QAAQC,eAC5C5C,EAAajpB,GAAGlV,IAAMA,GAAIm+B,EAAajpB,GAAG0rB,QAAQC,EAAgBC,QAAQH,eAGlF,EACI7E,EAAoB,WACtB,IAAK,IAAI96B,EAAI,EAAGA,EAAIm9B,EAAal9B,OAAQD,IACvCm9B,EAAan9B,GAAG4+B,OAAO,MAEzBzB,EAAe,GACftC,EAAOr5B,KAAK,2DAA+D27B,GAC3EA,EAAe,IAAIpX,MACnBqW,GAAW,EAhTO,SAAuBv6B,EAAK0+B,EAAWzE,GACzDyE,EAAYA,IAAa,EACzBzE,EAAYA,IAAa,EACzBj6B,EAAMA,IAAO,EACbg5B,EAAOr5B,KAAK,0BAA+BK,EAAM,gBAAkB0+B,EAAY,gBAAkBzE,GACjGE,EAAU,KACVC,EAAU,KAEV,IAAI+C,EAAetE,EAAuBn1B,KAAK,uBAC/CzH,EAAE6Z,KAAK,CACL9V,IAAKA,EACL0gB,KAAM,MACN3K,SAAU,OACVinB,QAAS,SAAiBn/B,EAAMqY,EAAY+mB,GAE1C,IAAK0B,GAAmD,IAAlC9gC,EAAK+gC,SAASC,iBAAwB,CAC1DC,EAAaC,KAAOlhC,EAAK+gC,SAASI,KAClC,IAAIC,EAAS5hC,KAAKC,MAAMO,EAAK+gC,SAASC,kBACtCb,EAAkB/hC,EAAE+xB,OAAO,CAAC,EAAGgQ,EAAiBiB,GAChDN,GAAgB,EAChBpD,EAAW,CACT2D,SAAUrhC,EAAK+gC,SAASO,gBACxBC,QAASvhC,EAAK+gC,SAASS,eACvBC,OAAQ,CAAC,CACPC,UAAW,QACX15B,OAAQ,GACR7F,IAAKg+B,EAAgBwB,SAASC,aAC9Bt2B,MAAO,IACN,CACDtD,OAAQ,GACR05B,UAAW,QACXv/B,IAAKg+B,EAAgBwB,SAASE,aAC9Bv2B,MAAO,IACN,CACDtD,OAAQ,GACR05B,UAAW,QACXv/B,IAAKg+B,EAAgBwB,SAASG,aAC9Bx2B,MAAO,IACN,CACDtD,OAAQ,GACR05B,UAAW,QACXv/B,IAAKg+B,EAAgBwB,SAASI,aAC9Bz2B,MAAO,IACN,CACDtD,OAAQ,GACR05B,UAAW,QACXv/B,IAAKg+B,EAAgBwB,SAASK,aAC9B12B,MAAO,KAGb,CAEA,IAAKu1B,EAAW,CAUd,GATAvE,EAAUt8B,EAAKu/B,aACfhD,EAAUv8B,EAAK+gC,SACA,MAAXzE,GACFN,GAAc,EAAOsD,GACD,MAAhBA,GAAsBA,EAAapyB,KAAK8tB,EAAuBn1B,KAAK,WAAW7F,KAAK,qBAExFg8B,GAAc,EAAMsD,GAEtBnE,EAAOr5B,KAAK,wCAA4Cy6B,GACpDH,IACFjB,EAAOr5B,KAAK,mBACRy6B,EAAQ0F,OAAOxF,SAAWF,EAAQE,SAAS,CAE3C,IAQIyF,EAAc73B,EAAUrK,KAAK,WAC7BmiC,EAAe93B,EAAUrK,KAAK,YAOlC,GANIkiC,EAAY3hC,OAAS,IACvB2hC,EAAc,GAEZC,EAAa5hC,OAAS,IACxB4hC,EAAe,GAEE,GAAfD,GAAoC,GAAhBC,EAAmB,CACzC,IAAI1B,EAAM,IAAIv1B,OAAOC,KAAKs0B,OAAOyC,EAAaC,GAC9CC,EAAQ7F,EAAQ8F,UAAW5B,EAC7B,KAAO,CACDA,EAAM,IAAIv1B,OAAOC,KAAKs0B,OAAOlD,EAAQ0F,OAAOK,UAAUlF,SAAUb,EAAQ0F,OAAOM,UAAUlF,WAA7F,IACEmF,EAAOjG,EAAQ0F,OAAOK,UAAUlF,SAChCqF,EAAOlG,EAAQ0F,OAAOK,UAAUjF,UAChCqF,EAAOnG,EAAQ0F,OAAOM,UAAUnF,SAChCuF,EAAOpG,EAAQ0F,OAAOM,UAAUlF,UAChCuF,EAAY,IAAI13B,OAAOC,KAAKs0B,OAAO+C,EAAMC,GACzCI,EAAY,IAAI33B,OAAOC,KAAKs0B,OAAOiD,EAAMC,GACzCG,EAAS,IAAI53B,OAAOC,KAAK43B,aAAaH,EAAWC,GACnD1H,EAAOr5B,KAAK,gBACZsgC,EAAQ7F,EAAQ8F,UAAW5B,GAC3BvhC,EAAI8jC,UAAUF,EAChB,CAEF1G,GAAY,CACd,CAEFD,EAAgBC,EAClB,CACF,EACAvkB,MAAO,SAAeunB,EAAK/mB,EAAY4qB,GAAc,GAEzD,CAsMEC,CAAc/gC,GAAK,GAAO,GAChB4E,MAANu2B,GAAiBA,EAAGC,cAC1B,EACI6E,EAAU,SAAiBv2B,EAAM40B,GACnC50B,EAAOA,GAAQ,GACf,IAAIs3B,EAAc/kC,EAAES,UAAUyM,QAAU,IAExC,GADA6vB,EAAOr5B,KAAK,sBAA2B+J,EAAO,SAAW40B,EAAM,SAAWvhC,GAC/D6H,MAAP7H,EAAkB,CACpB,IAAIkkC,EAAa,CACfj3B,UAAWg3B,EACXE,YAAY,EACZj3B,aAAa,EACbP,KAAM,GACNI,aAAa,EACbF,OAAQ00B,EACRz0B,kBAAkB,EAClBtM,IAAK,0CACL4jC,mBAAoB,CAClB/2B,SAAUrB,OAAOC,KAAKo4B,gBAAgBC,UACtCpd,MAAOlb,OAAOC,KAAKs4B,iBAAiBC,SAGxCxkC,EAAM,IAAIgM,OAAOC,KAAKQ,IAAI9M,SAAS+M,eAAe,cAAew3B,IAC7DO,IAAI,SAAUxD,EAAgByD,UACpC,CACF,EACIhF,EAAY,WACd,OAAOv0B,EAAUrK,KAAK,gBACxB,EAKAmJ,OAAOe,UAAUsF,OAAS,WACxB,IAAIq0B,EAAOtvB,UACX,OAAOnV,KAAKJ,QAAQ,YAAY,SAAUgwB,EAAO8U,GAC/C,YAA8B,IAAhBD,EAAKC,GAAyBD,EAAKC,GAAU9U,CAC7D,GACF,EACA,IA+CI9vB,EAmBFo+B,EAjEAZ,GAAW,EAGXJ,EAAU,KACVC,EAAU,KACVuC,EAAS,GACTD,EAASC,EACT38B,EAAM08B,EASJ1D,EAAS,IAPO,WAClB,IAAIA,EAAS,GAIb,OAHAA,EAAOr5B,KAAO,WAEd,EACOq5B,CACT,EAEIgF,EAAkB,CACpBC,QAAS,CACPC,cAAe,+CACfJ,eAAgB,qDAChB8D,UAAW,qDAEbpC,SAAU,CACRC,aAAc,oCACdC,aAAc,oCACdC,aAAc,oCACdC,aAAc,oCACdC,aAAc,qCAEhB4B,UAAW,CAAC,CACVI,YAAa,eACbC,YAAa,WACbC,QAAS,CAAC,CACRC,MAAO,WACN,CACDC,OAAQ,KAET,CACDJ,YAAa,eACbC,YAAa,SACbC,QAAS,CAAC,CACRjd,WAAY,WAMhB+X,EAAc,GACdb,EAAkB,GAClBc,EAAe,EACf/D,EAAU,+BACVmB,EAAmB,EACnBoB,EAAe,GACfwC,GAAiB,EACjBoE,GAAgB,EAChBvD,GAAgB,EAChBG,EAAe,CACbqD,IAAI,EACJ94B,IAAK,EACLE,IAAK,EACLw1B,KAAM,MAER72B,EAAYjM,EAAE,wBAGZs/B,EAAW,CAAC,EAGZ,4DAA4DljB,KAAK+pB,UAAUC,aAAYH,GAAgB,IACvGA,GAAiBlhC,OAAOsE,WAAW,sBAAsBC,UAE3D2C,EAAUtG,SAAS,eAEmD,YAAjD,oBAAXmH,OAAyB,YAAcrB,EAAQqB,UAAkD,WAAzBrB,EAAQqB,OAAOC,OA9fjG8vB,GAigBJ,CACF,IAGA93B,OAAO9E,IAAI6T,OAAS/O,OAAO9E,IAAI6T,QAAU,CAAC,EAC1C9T,EAAE+xB,OAAOhtB,OAAO9E,IAAI6T,OAAQ,CAC1B6sB,qCAAsC,oC,oBC9gB1C,SAAW3gC,GACT,IAAIqmC,EACO,WADPA,EAEc,kBAFdA,EAGc,kBAHdA,EAIoB,wBAJpBA,EAKgB,oBALhBA,EAMgB,yCANhBA,EAOgB,oBAPhBA,EAQiB,qBARjBA,EASQ,mBATRA,EAUQ,iCAVRA,EAWe,wCAXfA,EAYa,sCAZbA,EAaY,gBAbZA,EAcW,oCAdXA,EAee,mBAffA,EAgBqB,yBAhBrBA,EAiBoB,wBAEpBC,EAAU,CACZ5Q,KAAM,SAAczkB,GAClB,IAgK+BiL,EAhK3ByI,EAAW3kB,EAAE+xB,OAAO,CAAC,EAAG/xB,EAAE6rB,GAAG0a,KAAKvU,SAAU/gB,GAC5C0T,EAAS6hB,wBAEXC,EAAWzlC,MAAM0D,MAAK,WAChBgiC,EAAU1mC,EAAEgB,QACdhB,EAAEqmC,EAAwBrmC,EAAEgB,OAAO4W,MAEvC,IAEE+M,EAASgiB,qBAEXF,EAAWzlC,MAAM0D,MAAK,WACpB,IAAIO,EAAQjF,EAAEgB,MACZqZ,EAASusB,EAAS3hC,GAClB4hC,EAAYC,EAAY7hC,GAEtB4hC,EAAU1kC,OACRkY,EAAOvU,OAAOvD,QAAQ,KAAO,GAE/B8X,EAAOnV,OAAO2hC,GAGhBxsB,EAAOnV,OAAO,6CAElB,KAwI6BgX,EAtIDlb,KAuIzBhB,EAAEqmC,EAAgCnqB,GAAOzU,KAAK,OAvIftF,OAASwiB,EAASoiB,+BAEpD/mC,EAAEqmC,EAAgCrlC,MAAMyG,KAAK,qBAAqBoF,OAAO8X,EAASoiB,6BAA+B,EAAG,MAAM97B,OAC1HjL,EAAEqmC,EAAgCrlC,MAAMyG,KAAK,qBAAqBoF,OAAO8X,EAASoiB,6BAA8B,MAAMjhC,KAAK,QAE7F,MAA5B6e,EAASqiB,kBAEPriB,EAASqiB,gBAAgBn7B,cAAgBoc,MAC3CtD,EAASqiB,gBAAgBnjC,SAAQ,SAAUojC,GACzCjnC,EAAE,eAAgBgB,MAAM2E,SAASshC,EACnC,IAEAjnC,EAAE,eAAgBgB,MAAM2E,SAASgf,EAASqiB,kBAG1CriB,EAASuiB,mBACXlnC,EAAE,uBAAwBgB,MAAM0D,MAAK,WACnC1E,EAAEgB,MAAMsC,KAAK,OAAQ,MACvB,IAKFtD,EAAEqmC,EAAyBrlC,MAAM0D,MAAK,WACN,KAA1B1E,EAAEgB,MAAM8E,OAAOyI,QACjBvO,EAAEgB,MAAMiK,MAEZ,GAEF,EACAk8B,QAAS,WACP,OAAOV,EAAWzlC,KACpB,EACA4kB,MAAO,WACL,OAAOghB,EAAS5lC,KAClB,EACAomC,SAAU,WACR,OAAON,EAAY9lC,KACrB,EACAqmC,WAAY,WACV,OAAOrnC,EAAEqmC,EAAyBrlC,KACpC,EACAsmC,SAAU,WACR,OAAOZ,EAAU1lC,KACnB,EACAumC,qBAAsB,SAA8Bn+B,EAAO4nB,GACzD,OAAOhxB,EAAEoJ,EAAO4nB,EAClB,GAuEF,SAASyV,EAAWvqB,GAClB,IAAIsrB,EAAYxnC,EAAE,IAIlB,OAHAA,EAAEqmC,EAA2BnqB,GAAOxX,MAAK,WACvC8iC,EAAYA,EAAU3wB,IAAI7W,EAAEgB,MAAMkF,SACpC,IACOshC,CACT,CACA,SAASd,EAAUe,GACjB,OAAOA,EAAahgC,KAAK4+B,GAAgClkC,OAAS,CACpE,CACA,SAASykC,EAASa,GAChB,OAAOznC,EAAEqmC,EAAoBoB,EAC/B,CACA,SAASX,EAAYW,GACnB,OAAOznC,EAAEqmC,EAAuBoB,EAClC,CApFAznC,EAAE6rB,GAAG0a,KAAO,SAAUt1B,GACpBq1B,EAAQ5Q,KAAKjgB,MAAMzU,KAAM,CAACiQ,IAC1B,IAAI6L,EAAO9b,KACX,MAAO,CACL0mC,QAAS,WACP,OAAOpB,EAAQiB,qBAAqBlB,EAAmBvpB,EACzD,EACA6qB,eAAgB,WACd,OAAOrB,EAAQiB,qBAAqBlB,EAA0BvpB,EAChE,EACA8qB,eAAgB,WACd,OAAOtB,EAAQiB,qBAAqBlB,EAA0BvpB,EAChE,EACA+qB,qBAAsB,WACpB,OAAOvB,EAAQiB,qBAAqBlB,EAAgCvpB,EACtE,EACAgrB,iBAAkB,WAChB,OAAOxB,EAAQiB,qBAAqBlB,EAA4BvpB,EAClE,EACAirB,iBAAkB,WAChB,OAAOzB,EAAQiB,qBAAqBlB,EAA4BvpB,EAClE,EACAkrB,iBAAkB,WAChB,OAAO1B,EAAQiB,qBAAqBlB,EAA4BvpB,EAClE,EACAmrB,kBAAmB,WACjB,OAAO3B,EAAQiB,qBAAqBlB,EAA6BvpB,EACnE,EACAorB,SAAU,WACR,OAAO5B,EAAQiB,qBAAqBlB,EAAoBvpB,EAC1D,EACAqrB,SAAU,WACR,OAAO7B,EAAQiB,qBAAqBlB,EAAoBvpB,EAC1D,EACAsrB,gBAAiB,WACf,OAAO9B,EAAQiB,qBAAqBlB,EAA2BvpB,EACjE,EACAurB,cAAe,WACb,OAAO/B,EAAQiB,qBAAqBlB,EAAyBvpB,EAC/D,EACAwrB,aAAc,WACZ,OAAOhC,EAAQiB,qBAAqBlB,EAAwBvpB,EAC9D,EACAyrB,qBAAsB,WACpB,OAAOjC,EAAQiB,qBAAqBlB,EAAgCvpB,EACtE,EACA0rB,YAAa,WACX,OAAOlC,EAAQiB,qBAAqBlB,EAAuBvpB,EAC7D,EACAf,gBAAiB,WACf,OAAOuqB,EAAQiB,qBAAqBlB,EAA2BvpB,EACjE,EACA2rB,sBAAuB,WACrB,OAAOnC,EAAQiB,qBAAqBlB,EAAiCvpB,EACvE,EAEJ,EAGA9c,EAAE6rB,GAAG0a,KAAKvU,SAAW,CACnBwU,wBAAwB,EACxBG,qBAAqB,EACrBI,6BAA8BhyB,OAAO2zB,iBACrC1B,gBAAiB,KACjBE,mBAAmB,EAwBtB,CAzLD,CAyLGpiC,O,oBC1LH,SAAW9E,GACT,aAEA+E,OAAO9E,IAAIC,OAAOC,cAAcC,UAAS,WACvCJ,EAAE,yCAAyC0E,MAAK,WAC9C,IAAIikC,EAAO3oC,EAAEgB,MACThB,EAAE,uBAAwB2oC,GAAMxmC,OAAS,IAC3CwmC,EAAK/kC,IAAI,UAAW,SACpB5D,EAAE,qBAAsB2oC,GAAMhrB,QAAQnP,OAAM,WAC1Cm6B,EAAK19B,MACP,IAEJ,GACF,GACD,CAdD,CAcGnG,O,mBCdH,IAAW9E,IAmBR8E,OAlBDC,OAAO9E,IAAIC,OAAOC,cAAcC,UAAS,WAgBvC2E,OAAO9E,IAAIwE,QAAQtE,cAAcC,UAfhB,WACf,IAGEwoC,EAHe5oC,EAAE,kCAIR0E,MAAK,SAAU4O,GACxB,IAAIu1B,EAAS7oC,EAAE,eAAgBA,EAAEgB,OACjC6nC,EAAO37B,MAAM,QACb07B,GAAY,EACZC,EAAOnkC,MAAK,SAAU4O,GACpBs1B,EAAW1kB,KAAK4kB,IAAI5kB,KAAK6kB,KAAK/nC,KAAKkI,wBAAwBgE,OAAQ07B,EACrE,IACAC,EAAO37B,MAAM07B,EACf,GACF,GAEF,G,mBClBF,IAAW5oC,IAgGR8E,OA/FDC,OAAO9E,IAAIC,OAAOC,cAAcC,UAAS,WACvC,IAAI4oC,EAAa,SAAoBC,EAASrvB,GAC3B5Z,EAAE+E,QAAQmI,QAAU+7B,EAAQ/7B,QAA3C,IACEmH,EAAI,IAAI60B,YACV70B,EAAE2G,GAAGiuB,EAAS,GAAK,CACjBE,GAAI,IACJ3xB,KAAMC,OAAO+d,UAEfnhB,EAAE2G,GAAGiuB,EAAS,GAAK,CACjB1xB,MAAO,EACPC,KAAMC,OAAO+d,SACZ,QACHnhB,EAAEkxB,IAAI0D,EAAS,CACbrgB,QAAS,SAEXvU,EAAEQ,KAAK+E,EACT,EACAwvB,EAAY,SAAmBH,GACdjpC,EAAE+E,QAAQmI,QAAU+7B,EAAQ/7B,QAA3C,IACEmH,EAAI,IAAI60B,YACV70B,EAAEkxB,IAAI0D,EAAS,CACbE,EAAG,IACH5xB,MAAO,IAETlD,EAAEkxB,IAAI0D,EAAS,CACbrgB,QAAS,UAEXvU,EAAE2G,GAAGiuB,EAAS,GAAK,CACjBE,EAAG,EACH3xB,KAAMC,OAAO+d,UAEfnhB,EAAE2G,GAAGiuB,EAAS,GAAK,CACjB1xB,MAAO,EACPC,KAAMC,OAAO+d,SACZ,OACL,EAiBA6T,EAAQ,SAAeC,GACE,oBAAZ75B,SAAyBA,QAAQmc,MAAM0d,EACpD,EACFtpC,EAAE,iCAAiC0E,MAAK,WACtC,IAAI7C,EAAQ7B,EAAEgB,MACZuoC,EAAavpC,EAAE,cAAe6B,GAC9B2nC,EAAgBxpC,EAAE,gCAAiC6B,GACnD4nC,EAAWzpC,EAAE,2HAA4H6B,GACzI6nC,EAAe,EACjB3kC,OAAO9E,IAAI+J,YAAY7J,cAAcC,SAASqpC,GAAU,GACxDF,EAAW/6B,OAAM,SAAUnI,GACzBA,EAAEsG,iBACF,IAAIg9B,EAAiB3pC,EAAE,6BACrBspC,EAAcK,EAAe/nC,KAAK,gBACpConC,EAAWhpC,EAAE,mBAAoB6B,IAAQ,WACvCwnC,EAAMC,GACNF,EAAUO,EACZ,GACF,IACAH,EAAch7B,OAAM,SAAUnI,GAC5BA,EAAEsG,iBACF,IAAIwtB,EAAQn6B,EAAEgB,MAAMkF,SAAS8R,OAC7B0xB,GAAgBviC,SAASnH,EAAEqG,EAAEkJ,QAAQ3N,KAAK,UAC1ConC,EAAWhpC,EAAEgB,MAAMkF,UAAU,WACvBi0B,EAAM12B,SAAS,mCACjBzD,EAAE,yBAA0Bm6B,GAAOz1B,MAAK,WACtC,IA1C+BukC,EACjCW,EACFv1B,EAwCQw1B,EAAW7pC,EAAEgB,MAAMY,KAAK,aAC1BkoC,EAAW9pC,EAAEgB,MAAMY,KAAK,aACtBuF,SAAS0iC,IAAaH,GAAgBA,GAAgBviC,SAAS2iC,KACjET,EAAMrpC,EAAEgB,MAAMY,KAAK,iBA7CUqnC,EA8CfjpC,EAAEgB,MA7CpB4oC,EAAgBX,EAAQrlC,IAAI,WAC9ByQ,EAAI,IAAI60B,aACR3D,IAAI0D,EAAS,CACbr/B,OAAQ,SAEVyK,EAAEoP,KAAKwlB,EAAS,EAAG,CACjBr/B,OAAQggC,IAEVv1B,EAAEkxB,IAAI0D,EAAS,CACbc,UAAW,IAEb11B,EAAEoP,KAAKwlB,EAAS,IAAK,CACnBc,UAAW,IAkCL/pC,EAAEgB,MAAM4C,IAAI,UAAW,SAASA,IAAI,WAAY,WAChDu2B,EAAMviB,OAEV,KAEAyxB,EAAMlP,EAAMv4B,KAAK,iBACjBwnC,EAAUjP,GAEd,GACF,GACF,GACF,G,oBC/FF,SAAWn6B,EAAGC,GACZ,aAKA,SAAS+pC,EAAsBpoC,EAAMC,GACnC,IAAIooC,EAAS,GAyCb,OAxCIroC,EAAK+B,eAAe,UACtB/B,EAAY,MAAEiC,SAAQ,SAAUqmC,GAC9B,IACEC,EACAC,EACAC,EAHElD,EAAU,QAKMx+B,IAAhBuhC,EAAMlkC,OAAuC,KAAhBkkC,EAAMlkC,QACrCokC,EAAcpqC,EAAE,OAASkqC,EAAMlkC,MAAQ,eAElB2C,IAAnBuhC,EAAMI,UAA6C,KAAnBJ,EAAMI,WACxCD,EAAiBrqC,EAAE,SAAWkqC,EAAMI,SAAW,YAE7CJ,EAAMvmC,eAAe,eACvBumC,EAAkB,WAAErmC,SAAQ,SAAU0mC,GACpC,IAAIC,EAAcxqC,EAAE,0BAA4ByqC,EAAWF,GAAc,YACrEG,EAAa,GACbH,EAAW5mC,eAAe,UAC5B4mC,EAAkB,MAAE1mC,SAAQ,SAAU8mC,IAsClD,SAAuB7mC,EAAOqjC,GAC5B,QAAmBx+B,IAAf7E,EAAMgC,KAAoB,CAC5B,IAAI8kC,EAAS5qC,EAAE,oBAAsByqC,EAAW3mC,GAAS,KAAOA,EAAMgC,KAAO,UAC7EqhC,EAAQzjC,KAAKknC,EACf,CACF,CA1CcC,CAAcF,EAAUD,EAC1B,IAEFF,EAAY17B,KAAK47B,GACjBvD,EAAQzjC,KAAK8mC,EACf,IAEEN,EAAMvmC,eAAe,kBACvBumC,EAAqB,cAAErmC,SAAQ,SAAUC,IAyCjD,SAA4BA,EAAOqjC,GACjC,QAAmBx+B,IAAf7E,EAAMgC,KAAoB,CAC5B,IAAI8kC,EAAS5qC,EAAE,8BAAgCyqC,EAAW3mC,GAAS,KAAOA,EAAMgC,KAAO,UACvFqhC,EAAQzjC,KAAKknC,EACf,CACF,CA7CUE,CAAmBhnC,EAAOqjC,EAC5B,IAEE+C,EAAMvmC,eAAe,UACvBumC,EAAa,MAAErmC,SAAQ,SAAUC,IA8BzC,SAAoBA,EAAOqjC,GACzB,QAAmBx+B,IAAf7E,EAAMgC,KAAoB,CAC5B,IAAI8kC,EAAS5qC,EAAE,oBAAsByqC,EAAW3mC,GAAS,KAAOA,EAAMgC,KAAO,UAC7EqhC,EAAQzjC,KAAKknC,EACf,CACF,CAlCUG,CAAWjnC,EAAOqjC,EACpB,IAEFgD,EAsCN,SAAwBC,EAAaC,EAAgBlD,EAAS5iC,GAC5D,IAAI4lC,EAEFA,OADkBxhC,IAAhByhC,QAAgDzhC,IAAnB0hC,EACd,CACf9lC,UAAWA,EACXH,WAAY,CAAC,CACXG,UAAWA,EAAY,UACvBC,WAAY,CAAC4lC,EAAaC,IACzB,CACD9lC,UAAW,UACXC,WAAY2iC,KAIC,CACf5iC,UAAW,QACXH,WAAY,CAAC,CACXG,UAAW,UACXC,WAAY2iC,KAIlB,OAAOgD,CACT,CA7DuBa,CAAeZ,EAAaC,EAAgBlD,EAAS,SACtE8C,EAAOvmC,KAAKymC,EACd,IAEK,CACLlmC,cAAejE,EAAE,qBAAsB6B,GACvCqC,SAAU,CACRC,QAAS,CACPC,WAAY6lC,IAIpB,CACA,SAASQ,EAAW3mC,GAClB,IAAI6hB,EAAU,GAId,YAHoBhd,IAAhB7E,EAAMkkB,QACRrC,EAAU,IAAM7hB,EAAMkkB,OAEjBrC,CACT,CA2CA,SAASslB,EAAiBppC,GACF7B,EAAE,sCAAuC6B,GAC/C8D,SAAS,YACzB3F,EAAE,eAAgB6B,GAAO8D,SAAS,YAClC1F,EAAIwE,QAAQtE,cAAcC,UAAS,WACjC,IAAI8qC,EAAgBlrC,EAAE,sGACpBmrC,EAAenrC,EAAE,4GACjBorC,EAAkBprC,EAAE,4EACpBqrC,EAAqBrrC,EAAE,2EACpB+E,OAAOsE,WAAW,sBAAsBC,SAM3C8hC,EAAgBxnC,IAAI,SAAU,QAC9BynC,EAAmBznC,IAAI,SAAU,QACjCsnC,EAActnC,IAAI,SAAU,UAP5B3D,EAAI+J,YAAY7J,cAAc0T,QAAQq3B,GAAe,GACrDjrC,EAAI+J,YAAY7J,cAAc0T,QAAQs3B,GAAc,GACpDlrC,EAAI+J,YAAY7J,cAAc0T,QAAQu3B,GAAiB,GACvDnrC,EAAI+J,YAAY7J,cAAc0T,QAAQw3B,GAAoB,GAM9D,GACF,CA3HAprC,EAAIC,OAAOC,cAAcC,UAAS,WAChCH,EAAIyB,WAAWC,kBAAkBxB,cAAcC,SAAS,UAAW4pC,EAAuBiB,EAC5F,GA0HD,CA/HD,CA+HGnmC,OAAQC,OAAO9E,I,mBC7HlB,IAAWD,IA0MR8E,OAzMDC,OAAO9E,IAAIC,OAAOC,cAAcC,UAAS,WACvC,GAAIJ,EAAE,+BAA+BmC,OAAQ,CA0D3CnC,EAAE,gCAAgCsrC,YAAY,mCAC9CtrC,EAAE,sBAAsB2F,SAAS,YACT3F,EAAE,mCACR2F,SAAS,SAC3B,IAAI4lC,EAAyBvrC,EAAE,0CA5D7BurC,EAAuBnlC,GAAG,SAAS,WACjCmlC,EAAuBlkC,YAAY,WACnCkkC,EAAuB7mC,MAAK,WAC1B1E,EAAEgB,MAAMkF,SAAS,GAAG4S,SAAS,GAAG8T,gBAAgB,UAAW,UAC7D,GACF,IACA2e,EAAuB7mC,MAAK,WAC1B1E,EAAEgB,MAAMoF,GAAG,SAAS,WAClBpG,EAAEgB,MAAM2E,SAAS,WACjB4lC,EAAuBlkC,YAAY,aACnCrH,EAAEgB,MAAMkF,SAAS,GAAG4S,SAAS,GAAG0yB,aAAa,UAAW,UAC1D,GACF,IAkDExrC,EAAE,iBAAiBmC,QACrBnC,EAAE,4CAA4C2F,SAAS,gBAEzD,IAAIyU,EAAUpa,EAAE,4JACZma,EAAUna,EAAE,uOAnDdma,EAAQsxB,SAAQ,WACdzrC,EAAE,IAAI6M,OAAO7M,EAAEgB,MAAMsC,KAAK,MAAO,iBAAiBqC,SAAS,UAC7D,IACAwU,EAAQuxB,UAAS,WACV1rC,EAAE,IAAI6M,OAAO7M,EAAEgB,MAAMsC,KAAK,MAAO,iBAAiBiQ,OACrDvT,EAAE,IAAI6M,OAAO7M,EAAEgB,MAAMsC,KAAK,MAAO,iBAAiB+D,YAAY,WAEhEskC,EAAmBC,cAAc5qC,KACnC,IA6CF,IAAI6qC,EAAe7rC,EAAE,uDACrB6rC,EAAanoC,KAAKjD,SAASkW,cAAc,wBAAyBlW,SAASkW,cAAc,qBA5CzD,WAC9B,IAAK,IAAIzU,EAAI,EAAGA,EAAI2pC,EAAa1pC,OAAQD,IAAK,CACxClC,EAAE,yBAAyBmC,OAAS,GAA+B,KAA1B0pC,EAAa3pC,GAAGX,QAC3DsqC,EAAa3pC,GAAG0U,UAAUC,IAAI,cAC9Bg1B,EAAa3pC,GAAGoY,QAElB,IAAK,IAAIoE,EAAI,EAAGA,EAAItE,EAAQjY,OAAQuc,IAC9BtE,EAAQsE,GAAGhR,aAAa,SAAWm+B,EAAa3pC,GAAGwL,aAAa,OAAmC,KAA1Bm+B,EAAa3pC,GAAGX,OAC3F6Y,EAAQsE,GAAG9H,UAAUC,IAAI,UAG/B,CACF,CAiCAi1B,GACA,IAAIC,EAAuB,SAA8BC,GACvD,IAAIjlC,EAAWilC,EAAKC,iBAAiB,uBACjCC,GAAY,EAMhB,OALAnlC,EAASlD,SAAQ,SAAUsoC,GACrBA,EAAQC,UACVF,EAAYC,EAAQC,QAExB,IACOF,CACT,EAzC4BzrC,SAASwrC,iBAAiB,uBAChCpoC,SAAQ,SAAUmoC,GAGpC,IAFA,IAAIK,EAAQL,EAAKC,iBAAiB,gBAC9BK,EAAgBP,EAAqBC,GAChC9pC,EAAI,EAAGA,EAAImqC,EAAMlqC,OAAQD,IAC5BlC,EAAE,yBAAyBmC,OAAS,IAAMmqC,EAC5CD,EAAMnqC,GAAG0U,UAAUC,IAAI,cAEnBw1B,EAAMnqC,GAAGwuB,WAAW5X,SAAS,GAAGszB,SAClCC,EAAMnqC,GAAG0U,UAAUC,IAAI,WAEzBw1B,EAAMnqC,GAAG0U,UAAU0B,OAAO,aAGhC,IA6BF,IAAIi0B,EAAW9rC,SAASkW,cAAc,aAClC3W,EAAE,yBAAyBmC,OAAS,IAAMoqC,EAASH,SACrDG,EAAS31B,UAAUC,IAAI,aAEzB,IAAI80B,EAAqB,CACvBa,SAAS,EACTC,mBAAoB,gCACpB/W,KAAM,WACJ,IAAIxf,EAAQlV,KACZ2qC,EAAmBe,aACnBjsC,SAASwrC,iBAAiB,6CAA6CpoC,SAAQ,SAAUsoC,GACvFA,EAAQQ,iBAAiB,QAASz2B,EAAM02B,cAAc,EACxD,IACAnsC,SAASwrC,iBAAiB,+BAA+BpoC,SAAQ,SAAUsoC,GACzEA,EAAQQ,iBAAiB,QAASz2B,EAAM22B,cAAc,EACxD,GACF,EACAA,aAAc,SAAsBv5B,GAClCq4B,EAAmBC,cAAct4B,EAAM/D,OACzC,EACAu9B,iBAAkB,SAA0B/vB,EAAQmT,EAAU6c,GAC5D,IAAIC,EAAQC,EAASC,EACjBhd,EAAS,KAEX8c,GADAA,EAAS,IAAI1wB,OAAOvR,OAAOmlB,EAAS,GAAGxiB,aAAa1M,KAAKyrC,uBACzCrwB,KAAK2wB,GACrBG,EAAe,GAEbhd,EAAS,KAEX+c,GADAA,EAAU,IAAI3wB,OAAOvR,OAAOmlB,EAAS,GAAGxiB,aAAa1M,KAAKyrC,uBACxCrwB,KAAK2wB,GACvBG,EAAeF,IAAWC,EAAU,EAAI,GAE1C,IAAIE,GAAeH,GAAUC,IAAYF,EAAW5qC,OAAS,EAU7D,OATIgrC,GACFjd,EAASxrB,MAAK,SAAUgN,EAAOy6B,GAC7B,OAAOA,GAAWA,EAAQnkB,MAAQmkB,EAAQnkB,MAAMY,QAAU,OAAS,IACrE,IACA7L,EAAOnG,UAAU0B,OAAO,gBAExB4X,EAASgd,GAAcllB,MAAMY,QAAU,QACvC7L,EAAOnG,UAAUC,IAAI,gBAEfs2B,CACV,EACAvB,cAAe,SAAuB7uB,GACpC,IAAIqwB,EAAkBptC,EAAE+c,GAAQ7W,OAAO,8BACvC,IAAIknC,EAAgBjrC,QAAWirC,EAAgBC,SAAS,gBAAgBlrC,OAAxE,CAGA,IAAI4qC,EAAahwB,EAAOxb,MACpB+rC,EAAiBttC,EAAE+c,GAAQ7W,SAASuB,KAAK,IAAIoF,OAAO7L,KAAKyrC,mBAAoB,MACjF,OAAOzrC,KAAK8rC,iBAAiB/vB,EAAQuwB,EAAgBP,EAHrD,CAIF,EACAQ,gBAAiB,SAAyBpB,GACxC,OAAOA,EAAQqB,SAASrB,EAAQx1B,cAAc,kBAAoBw1B,EAAQqB,SAASrB,EAAQx1B,cAAc,yBAC3G,EACA82B,SAAU,SAAkBn6B,GAC1B,IACIo6B,EADAC,EAAS3sC,KAEbA,KAAKwrC,SAAU,EACfxsC,EAAEsT,EAAM/D,QAAQxJ,QAAQ,YAAY0B,KAAK,4BAA4B/C,MAAK,SAAUgN,EAAOy6B,GACzF,IAaQD,EAbJnvB,EAASovB,EAAQx1B,cAAc,sBAC/Bi3B,EAASzB,EAAQF,iBAAiB,uBAClC4B,EAAY1B,EAAQx1B,cAAc,0BAClCoG,GACe4wB,EAAOJ,gBAAgBpB,KAEtCuB,EAAYC,EAAO/B,cAAc7uB,GACjC4wB,EAAOnB,UAAUmB,EAAOnB,SAAiBkB,GAGzCE,EAAOzrC,QACSwrC,EAAOJ,gBAAgBpB,KAGvCyB,EAAO/pC,SAAQ,SAAU2oB,EAAItqB,GAC3B,OAAOgqC,IAAYA,GAAmB1f,EAAG4f,OAC3C,IACAuB,EAAOnB,UAAUmB,EAAOnB,UAAkBN,EAC1CC,EAAQF,iBAAiB,qBAAqBpoC,SAAQ,SAAU2oB,EAAItqB,GAClE,OAAOgqC,EAAY1f,EAAG5V,UAAU0B,OAAO,aAAekU,EAAG5V,UAAUC,IAAI,YACzE,KAGAg3B,GACiBF,EAAOJ,gBAAgBpB,KAExC0B,EAAUzB,QAAUyB,EAAUj3B,UAAU0B,OAAO,aAAeu1B,EAAUj3B,UAAUC,IAAI,aACtF82B,EAAOnB,UAAUmB,EAAOnB,UAAkBqB,EAAUzB,QAG1D,GACF,EACAM,WAAY,WACVjsC,SAASwrC,iBAAiB,iCAAiCpoC,SAAQ,SAAUsoC,GAC3E,IAAI2B,EAAa3B,EAAQ4B,WAAU,GACnCD,EAAWtC,aAAa,UAAW,MACnCsC,EAAWl3B,UAAUC,IAAI,eACzBs1B,EAAQ6B,cAAcC,YAAYH,GAClC3B,EAAQnkB,MAAMY,QAAU,MAC1B,GACF,EACAgkB,aAAc,SAAsBvmC,GAClCA,EAAEsG,iBACFg/B,EAAmB8B,SAASpnC,GACvBslC,EAAmBa,QAItB/rC,SAASkW,cAAc,2BAA2Bu3B,iBAHrC7nC,EAAEkJ,OAAOmhB,WACf/Z,cAAc,mDAAmDnI,OAI5E,GAEFm9B,EAAmBjW,MACrB,CACF,G,mBC3MF,SAASjqB,EAAQC,GAAgC,OAAOD,EAAU,mBAAqBE,QAAU,iBAAmBA,OAAOC,SAAW,SAAUF,GAAK,cAAcA,CAAG,EAAI,SAAUA,GAAK,OAAOA,GAAK,mBAAqBC,QAAUD,EAAEG,cAAgBF,QAAUD,IAAMC,OAAOG,UAAY,gBAAkBJ,CAAG,EAAGD,EAAQC,EAAI,EAC7T,SAAW1L,GACT,aAEA+E,OAAO9E,IAAIkuC,gBAAgBhuC,cAAcC,UAAS,WAChDJ,EAAE,mCAAmC0E,MAAK,WACxC,IAAIyZ,EAAKne,EAAEgB,MACXhB,EAAE,KAAKwO,OAAM,SAAUnI,GACTrG,EAAEgB,MAAd,IACIotC,EAAWpuC,EAAEgB,MAAMsC,KAAK,QACkC,cAA1DmI,EAAQ2iC,KAAoG,IAAbA,IACjG/nC,EAAEsG,iBACFwR,EAAGxY,SAAS,SACZ+C,YAAW,WACThI,SAAS6E,KAAO6oC,CAClB,GAAG,KAEP,GACF,GACF,GACD,CAnBD,CAmBGtpC,O,oBCjBF,SAAU9E,EAAGC,GACZA,EAAIC,OAAOC,cAAcC,UAAS,WAChCJ,EAAE,qCAAqC0E,MAAK,WAC1C,IAAI7C,EAAQ7B,EAAEgB,MACdf,EAAI2T,MAAMzT,cAAc0T,QAAQ5T,EAAI6T,OAAOC,aAAc/T,EAAE,SAAU6B,IAMrE7B,EAAE,2BAA4B6B,GAAOwsC,qBAAqB,EAC5D,GACF,GACF,CAbC,CAaCvpC,OAAQC,OAAO9E,KACjB,SAAWD,GACT,aAEA+E,OAAO9E,IAAIC,OAAOC,cAAcC,UAAS,WA2EvC,SAASkuC,EAAWC,GAClBvuC,EAAEuuC,GAAkB32B,OACpB5X,EAAE,sCAAsCiL,MAC1C,CA7EAjL,EAAE,qCAAqC0E,MAAK,WAC1C1E,EAAEgB,MAAMwN,OAER,SAA4B8E,GAC1BA,EAAM3G,iBACN,IAAIkY,EAAY2pB,EACZv+B,EAAc,GACdq3B,GAAW,EAmBf,GAlBAtnC,EAAE,eAAe0E,MAAK,WACpB,IAAI+pC,EAAQ,CAAC,EAIb,GAHAA,EAAMC,SAAW1uC,EAAE,aAAa4B,KAAK,SACrC6sC,EAAME,cAAgB3uC,EAAE,aAAa4B,KAAK,iBAC1C6sC,EAAMG,GAAK5uC,EAAE,OAAO,GAAGuB,MACW,SAA9BvB,EAAE,OAAO4B,KAAK,aAAuC,KAAb6sC,EAAMG,GAGhD,OAFA5uC,EAAE,OAAO2F,SAAS,sBAClB2hC,GAAW,GACJ,EAETmH,EAAMI,SAAW7uC,EAAE,aAAa,GAAGuB,MACnC,IAAI4kB,EAAWnmB,EAAE,gBAAgByH,KAAK,aACtCgnC,EAAMK,aAAe3oB,EAASvkB,KAAK,SACnC6sC,EAAMM,eAAiB5oB,EAASvkB,KAAK,UACrC6sC,EAAMO,oBAAsB7oB,EAASvkB,KAAK,eAC1C6sC,EAAM78B,MAAQuU,EAASvkB,KAAK,SAC5BqO,EAAYvM,KAAK+qC,EACnB,IACIx+B,EAAY9N,SAAWmlC,EAAU,CACnC,IAAI1lC,EAAOR,KAAKK,UAAUwO,GAC1BjQ,EAAE6Z,KAAK,CACL9V,IAAK8gB,EACLJ,KAAM,OACN7iB,KAAMA,EACNqtC,YAAa,kCACblO,QAAS,SAAiBn/B,EAAMqY,EAAY+mB,GAC1C,GAAY,MAARp/B,GAAwB,IAARA,GAAmC,KAArBA,EAAKstC,aAA0C,MAApBttC,EAAKstC,YAAqB,CACrF,IAAInrC,EAAMgB,OAAOrE,SAAS6E,KAAK1E,MAAM,KAAK,GAC1CkE,OAAOrE,SAAS6E,KAAOxB,EAAM,kCAAoCnC,EAAKstC,WACxE,MACElvC,EAAE,kBAAkB8F,KAAK,uEAE7B,GAEJ,CACF,IAzCA,IAAI0oC,EAAuB,2CA0C7B,IACAxuC,EAAE,wCAAwC0E,MAAK,SAAU2B,GACvD,IAAI8oC,EAAyBnvC,EAAEgB,MAC/BstC,EAAWa,GACXnvC,EAAEA,EAAEgB,OAAOoF,GAAG,SAAS,SAAUC,GAC/BA,EAAEsG,iBAsBJ3M,EArBamvC,GAqBOlkC,OACpBjL,EAAE,sCAAsC4X,OArBtC,IAAI82B,EAAW1uC,EAAEgB,MAAMY,KAAK,OAAS,QACjC8jC,EAAS,EACb1lC,EAAE,0BAA0B0E,MAAK,SAAU2B,GAC3B,GAAVq/B,EACFgJ,GAAsB1uC,EAAEgB,MAAMouC,aAAa,2BAA2B/B,SAAS,aAAazrC,KAAK,SAEjG8sC,EAAWA,EAAW,IAAM1uC,EAAEgB,MAAMouC,aAAa,2BAA2B/B,SAAS,aAAazrC,KAAK,SAEzG8jC,GACF,IACc,GAAVA,GACF1lC,EAAE,oCAAoC8O,KAAK,KAC3C/J,OAAOrE,SAAS6E,KAAOmpC,IAEvBJ,EAAWa,GACXnvC,EAAE,oCAAoC8O,KAAK,4BAE/C,GACF,GASF,GACD,CAnFD,CAmFGhK,OAAQC,OAAO9E,I","sources":["webpack://oticon/./js/feature/component-b-data-hierarchy-appframe-component.js","webpack://oticon/./js/feature/component-link-list.js","webpack://oticon/./js/feature/component-banner-spot.js","webpack://oticon/./js/lazy-loading/legacy.js","webpack://oticon/../../wdh-feature/wdh-blog/src/js/wdh-categories.js","webpack://oticon/./js/feature/component-job-list-spot.js","webpack://oticon/./js/feature/component-news-list-spot.js","webpack://oticon/./js/feature/component-center-spot.js","webpack://oticon/./js/feature/component-center-list-spot.js","webpack://oticon/./js/feature/component-b-data-hierarchy-hubspot.js","webpack://oticon/./js/feature/component-data-hierarchy-warranty-ordering.js","webpack://oticon/./js/feature/component-lattice-spot.js","webpack://oticon/../../wdh-feature/wdh-payment-progress/src/js/wdh-payment-progress.js","webpack://oticon/./js/feature/wdh-payment-progress.js","webpack://oticon/./js/feature/component-profile-spot.js","webpack://oticon/./js/feature/component-pairing-guide.js","webpack://oticon/./js/project/custom-order-details.js","webpack://oticon/./js/feature/component-a-data-hierarchy.js","webpack://oticon/./js/feature/component-hearing-test/hearing-test.js","webpack://oticon/./js/feature/component-cookies.js","webpack://oticon/./js/feature/component-form.js","webpack://oticon/./js/feature/component-tagged-list-spot.js","webpack://oticon/./js/feature/component-data-list-spot.js","webpack://oticon/./js/feature/jquery-cycle.js","webpack://oticon/./js/feature/component-b-data-hierarchy-multi-step.js","webpack://oticon/./js/feature/component-distributor-locator.js","webpack://oticon/../../wdh-feature/wdh-wffm/src/js/webforms-for-marketers-api.js","webpack://oticon/./js/feature/redirect-notification-spot.js","webpack://oticon/./js/feature/component-country-selector.js","webpack://oticon/./js/feature/component-screening-test.js","webpack://oticon/./js/feature/component-data-hierarchy-dataset.js","webpack://oticon/./js/feature/forms/custom-form-sales-rep.js","webpack://oticon/./js/feature/component-leaving-notification.js","webpack://oticon/./js/feature/component-warranty-ordering-spot.js"],"sourcesContent":["/**\r\n * Created by mady on 18-04-2017.\r\n */\n(function ($, DGS) {\n DGS.OnLoad.getInstance().register(function () {\n var getQueryParameters = function getQueryParameters(str) {\n return (str || document.location.search).replace(/(^\\?)/, '').split(\"&\").map(function (n) {\n return n = n.split(\"=\"), this[n[0]] = n[1], this;\n }.bind({}))[0];\n },\n decorateCookieFromURL = function decorateCookieFromURL(cookie) {\n var queryParams = getQueryParameters();\n for (var id in cookie) {\n var obj = typeof cookie[id] === \"string\" ? JSON.parse(cookie[id]) : cookie[id];\n for (var key in obj) {\n var value = obj[key];\n if (typeof value === \"string\") {\n for (var param in queryParams) {\n obj[key] = value.replace(\"{\" + param + \"}\", queryParams[param]);\n }\n }\n }\n cookie[id] = JSON.stringify(obj);\n }\n return cookie;\n },\n writeDataAttributes = function writeDataAttributes($spot, object) {\n for (var id in object) {\n var obj = typeof object[id] === \"string\" ? JSON.parse(object[id]) : object[id];\n for (var key in obj) {\n $spot.attr('data-' + key, obj[key]);\n }\n }\n },\n createCookie = function createCookie(name, value, days) {\n var expires;\n if (days) {\n var date = new Date();\n date.setTime(date.getTime() + days * 24 * 60 * 60 * 1000);\n expires = \"; expires=\" + date.toGMTString();\n } else {\n expires = \"\";\n }\n document.cookie = encodeURIComponent(name) + \"=\" + encodeURIComponent(value) + expires + \"; path=/\";\n },\n readCookie = function readCookie(name) {\n var nameEQ = encodeURIComponent(name) + \"=\";\n var ca = document.cookie.split(';');\n for (var i = 0; i < ca.length; i++) {\n var c = ca[i];\n while (c.charAt(0) === ' ') c = c.substring(1, c.length);\n if (c.indexOf(nameEQ) === 0) return decodeURIComponent(c.substring(nameEQ.length, c.length));\n }\n return null;\n },\n buildConfigHandler = function buildConfigHandler(data, $spot) {\n /* SET BASE PATH COOKIE VAR */\n var cookie = readCookie(\"appframe-component\"),\n cookieObject = cookie ? JSON.parse(cookie) : {};\n cookieObject[data.cookieProjectName] = data.cookieBasePath || \"\";\n cookieObject = decorateCookieFromURL(cookieObject);\n createCookie(\"appframe-component\", JSON.stringify(cookieObject));\n writeDataAttributes($spot, cookieObject);\n /* SET BASE PATH COOKIE VAR */\n\n var resources = [];\n if ($spot.hasClass('iframe')) {\n resources.push($(''));\n } else {\n if (data.hasOwnProperty('css')) {\n data.css.forEach(function (entry) {\n resources.push($(''));\n });\n }\n if (data.hasOwnProperty('js')) {\n data.js.forEach(function (entry) {\n resources.push($(''));\n });\n }\n }\n return {\n mainContainer: $('.component-content', $spot),\n sections: {\n desktop: {\n containers: [{\n id: data.containerCSSSelector.indexOf('#') == 0 ? data.containerCSSSelector.substr(1) : null,\n className: data.containerCSSSelector.indexOf('.') == 0 ? data.containerCSSSelector.substr(1) : null\n }, {\n className: \"resources\",\n components: resources\n }]\n }\n }\n };\n };\n DGS.Components.DataHierarchySpot.getInstance().register('appframe-component', buildConfigHandler, function ($spot, data) {\n DGS.Resizer.getInstance().register(function () {\n // PRODUCT TOOL SPECIFIC AUTO SCALING FIX, BECAUSE PRODUCT TOOL IS NOT RESPONSIVE ITSELF\n $('.component.data-hierarchy-spot.appframe-component.autoscale').each(function () {\n var componentContentWidth = $('.component-content', $(this)).innerWidth(),\n scaleFactor = componentContentWidth / 1024;\n $('.desktop-section > .inner-container').css('transform', 'scale(' + scaleFactor + ')');\n $('.desktop-section > .inner-container').outerHeight(710 * scaleFactor);\n });\n // PRODUCT TOOL SPECIFIC AUTO SCALING FIX, BECAUSE PRODUCT TOOL IS NOT RESPONSIVE ITSELF - end\n });\n });\n });\n})(jQuery, window.DGS);","(function ($) {\n 'use strict';\n\n window.DGS.OnLoad.getInstance().register(function () {\n var $allSubmenus = $('#wrapper .component.link-list.submenu, ' + '#wrapper .component.link-list.second-submenu, ' + '#wrapper .component.link-list.third-submenu');\n\n /// Add missing h3 to first-level submenu\n $('#wrapper .component.link-list.submenu', function () {\n var $this = $(this),\n $h3 = $('h3', $this);\n if (typeof $h3 === 'undefined') {\n $(this).append('

 

');\n }\n });\n\n /// Highlight current active location in submenus\n $allSubmenus.each(function () {\n var $submenu = $(this),\n longestMatchLength = 0,\n $longestMatchLi;\n $('li', $submenu).each(function () {\n var $li = $(this),\n $a = $('a', $li),\n href = $a.attr('href');\n if (window.location.pathname.indexOf(href) == 0) {\n if (href.length > longestMatchLength) {\n longestMatchLength = href.length;\n $longestMatchLi = $li;\n }\n }\n }).promise().done(function () {\n // Highlight only the longest matching link in each submenu\n if (typeof $longestMatchLi !== 'undefined') {\n $longestMatchLi.addClass('active');\n }\n });\n });\n\n // Set text of submenu title to be the current main area\n $('#wrapper .component.link-list.submenu h3').each(function () {\n var $h3 = $(this),\n titleFound = false;\n $('#wrapper #header .component.link-list.nav li a, ' + '#wrapper #header .component.rich-text.top.nav a').each(function () {\n var href = $(this).attr('href');\n if (window.location.pathname.indexOf(href) == 0) {\n $h3.text($(this).text());\n titleFound = true;\n }\n });\n if ($h3.closest(\".component.link-list.submenu\").hasClass('keep-title')) {\n titleFound = true;\n }\n if (!titleFound) {\n $h3.text(document.title);\n }\n });\n\n // Set text of second-submenu title to be the current active page name\n $('#wrapper .component.link-list.second-submenu h3').each(function () {\n var $h3 = $(this),\n $active = $('ul li.active a', $(this).parent());\n $h3.text($active.text());\n });\n\n /// Click handler for li elements in submenus\n $allSubmenus.each(function () {\n var $this = $(this),\n $ul = $('ul', $this),\n $li = $('li', $ul),\n $a = $('a', $li);\n $a.on('click', function (e) {\n e.stopPropagation();\n });\n $li.on('click', function (e) {\n var $a = $('a', $(this));\n if (submenuHelpers.isThin($this)) {\n if ($a.attr('href').substr(0, 1) === \"#\") {\n submenuHelpers.slideUp($this);\n }\n }\n window.location.href = $a.attr('href');\n });\n });\n\n /// Shared helper methods for the more complicated scroll/resizing features\n var submenuHelpers = function () {\n var expandClass = 'submenu-expanded',\n slideTimeMs = 400,\n helper;\n\n // Give this method a target element and a source, it will return a\n // function to synchronize the heights (optionally with a third element as offset).\n var synchronizeHeightsFactory = function synchronizeHeightsFactory($targetElement, $sourceElement, $measureOffsetElement) {\n var additionalHeight = $measureOffsetElement.outerHeight() || 0;\n return function () {\n $targetElement.css('height', parseInt($sourceElement.css('height'), 10) + additionalHeight);\n };\n };\n\n // Helper to synchronize heights if the element is sticky\n var synchronizedStickySpacing = function synchronizedStickySpacing($element, $ul, $h3) {\n if (isSticky($element)) {\n return synchronizeHeightsFactory($element, $ul, $h3);\n }\n };\n var isExpanded = function isExpanded($element) {\n return $element.hasClass(expandClass);\n };\n var isSticky = function isSticky($element) {\n return $element.hasClass('sticky');\n };\n var isThin = function isThin($element) {\n return $element.hasClass('thin');\n };\n helper = {\n isExpanded: isExpanded,\n isSticky: isSticky,\n isThin: isThin,\n removeSticky: function removeSticky($element) {\n $element.css('height', '');\n $('.component-content', $element).css('top', '');\n $element.removeClass('sticky');\n },\n addSticky: function addSticky($element, stickyPositionOffset) {\n $element.addClass('sticky');\n // console.log(stickyPositionOffset);\n $('.component-content', $element).css('top', stickyPositionOffset);\n },\n // Get the amount of space that should be added to the page offset of elements located below this one\n getPageSpacingHeight: function getPageSpacingHeight($element) {\n var measuredHeight = 0;\n if (!isThin($element)) {\n measuredHeight = $element.find('.component-content').outerHeight();\n } else {\n if (isExpanded($element)) {\n // When expanded, the element itself will have a css 'height' equal to it's expanded height\n measuredHeight = $element.outerHeight();\n // We could use parseInt and $element.css('height'), but it is slightly inaccurate\n } else {\n measuredHeight = $element.find('.component-content').outerHeight();\n }\n }\n return measuredHeight;\n },\n // Get the amount of space that should be added to the sticky position of elements below this one\n getStickyPositionHeight: function getStickyPositionHeight($element) {\n var measuredHeight = 0;\n if (!isThin($element)) {\n measuredHeight = $element.find('.component-content').outerHeight();\n } else {\n // The position should be below the h3, hidden when expanded\n measuredHeight = $element.find('.component-content > h3').outerHeight();\n }\n return measuredHeight;\n },\n // Set the elements css \"height\" to its actual size by measurement\n updateElementHeight: function updateElementHeight($element) {\n var measuredHeight = 0;\n if (!isThin($element)) {\n $element.css('height', '');\n } else {\n if (isExpanded($element)) {\n // This causes the element to take all the needed space when expanded\n measuredHeight = $element.find('.component-content').outerHeight();\n } else {\n // This causes the element to take only space for showing the h3\n measuredHeight = $element.find('.component-content > h3').outerHeight();\n }\n $element.css('height', measuredHeight);\n }\n },\n slideUp: function slideUp($element) {\n var $ul = $('ul', $element),\n $h3 = $('.component-content > h3', $element);\n var completeFunction = function completeFunction() {\n // Remove \"display: none\" as that is our default state and should not be\n // in the element style.\n $ul.css('display', '');\n $element.removeClass(expandClass);\n };\n var slideUpOptions = {\n \"duration\": slideTimeMs,\n \"progress\": synchronizedStickySpacing($element, $ul, $h3),\n \"complete\": completeFunction\n };\n $ul.slideUp(slideUpOptions);\n },\n slideDown: function slideDown($element) {\n var $ul = $('ul', $element),\n $h3 = $('.component-content > h3', $element);\n var completeFunction = function completeFunction() {\n $element.addClass(expandClass);\n $element.removeClass('submenu-is-expanding');\n };\n var slideDownOptions = {\n \"duration\": slideTimeMs,\n \"progress\": synchronizedStickySpacing($element, $ul, $h3),\n \"complete\": completeFunction\n };\n $element.addClass('submenu-is-expanding');\n $ul.slideDown(slideDownOptions);\n }\n };\n return helper;\n }();\n\n ///\n /// Sticky submenus when scrolling past\n ///\n (function (submenuHelpers) {\n var stickyWhenScrolledPast = function stickyWhenScrolledPast(windowScrollTop) {\n // Note here that submenu does not need to be thin (mobile) in order to stick to top\n $('#wrapper .component.link-list.submenu, ' + '#wrapper .component.link-list.second-submenu.thin').each(function () {\n var $this = $(this),\n offset = $this.offset(),\n offsetTop = typeof offset !== 'undefined' ? offset.top : 0,\n scrollTop = $this.data('scroll-top'),\n pageSpacingOffset = $this.data('page-spacing-offset'),\n stickyPositionOffset = $this.data('sticky-position-offset');\n if (offsetTop <= 0 && typeof scrollTop === 'undefined') {\n return;\n }\n if (typeof scrollTop === 'undefined') {\n $this.data('scroll-top', offsetTop);\n scrollTop = offsetTop;\n }\n\n // debug info:\n /* console.log(\n \"windowScrollTop\", windowScrollTop,\n \"page-spacing-offset\", pageSpacingOffset,\n \"scroll-top\", scrollTop,\n \"name\", $this.attr('class').split(' ').filter(function(x) {\n return x.indexOf(\"submenu\") != -1;\n })[0]\n ); //*/\n\n if (scrollTop < windowScrollTop + pageSpacingOffset) {\n if (!submenuHelpers.isSticky($this)) {\n // Avoid doing this too often (performance) by only doing it when not already sticky\n submenuHelpers.updateElementHeight($this);\n }\n submenuHelpers.addSticky($this, stickyPositionOffset);\n } else {\n submenuHelpers.removeSticky($this);\n }\n });\n };\n var queuedCalculateWithDelayOperation;\n\n /// Function to recalculate scroll values with a delay\n var calculateStoredScrollValuesWithDelay = function calculateStoredScrollValuesWithDelay() {\n var delayForCalculation = 100; // small delay to allow for DOM modifications before we calculate heights.\n\n if (typeof queuedCalculateWithDelayOperation !== 'undefined') {\n // Cancel previous operation of the same kind if execution has not started\n clearTimeout(queuedCalculateWithDelayOperation);\n }\n queuedCalculateWithDelayOperation = setTimeout(function () {\n queuedCalculateWithDelayOperation = undefined;\n\n // Calculate values for first submenu\n $('#wrapper .component.link-list.submenu').each(function () {\n submenuHelpers.updateElementHeight($(this));\n $(this).data('scroll-top', $(this).offset().top);\n var pageSpacingOffset = $('#wrapper #header.thin').outerHeight() || $(\".header-desktop-top\").outerHeight() || $(\".header-mobile-top\").outerHeight();\n $(this).data('page-spacing-offset', pageSpacingOffset || 0);\n $(this).data('sticky-position-offset', pageSpacingOffset || 0);\n\n // debug info:\n // console.log('\"submenu\": page-spacing-offset set to', pageSpacingOffset || 0);\n });\n\n // Calculate values for second-submenu\n $('#wrapper .component.link-list.second-submenu').each(function () {\n submenuHelpers.updateElementHeight($(this));\n $(this).data('scroll-top', $(this).offset().top);\n var $submenu = $('#wrapper .component.link-list.submenu');\n var pageSpacingOffset = ($('#wrapper #header.thin').length ? $('#wrapper #header.thin').outerHeight() : 0) + submenuHelpers.getPageSpacingHeight($submenu);\n $(this).data('page-spacing-offset', pageSpacingOffset || 0);\n var stickyPositionOffset = ($('#wrapper #header.thin').length ? $('#wrapper #header.thin').outerHeight() : 0) + submenuHelpers.getStickyPositionHeight($submenu);\n $(this).data('sticky-position-offset', stickyPositionOffset || 0);\n\n // debug info:\n // console.log('\"second-submenu\": page-spacing-offset set to', pageSpacingOffset || 0);\n });\n\n // Use current values to update the display now\n stickyWhenScrolledPast(window.pageYOffset);\n }, delayForCalculation);\n };\n window.DGS.Scroller.getInstance().register(function (windowScrollTop) {\n // Running update when scrolling\n stickyWhenScrolledPast(windowScrollTop);\n });\n window.DGS.Resizer.getInstance().register(function () {\n // Update with correct values when browser resizes or mobile rotates\n calculateStoredScrollValuesWithDelay();\n });\n })(submenuHelpers);\n\n ///\n /// Slide-down submenus on click\n ///\n (function (submenuHelpers) {\n var $submenus = $('#wrapper .component.link-list.submenu, ' + '#wrapper .component.link-list.second-submenu');\n $submenus.each(function () {\n var $submenu = $(this),\n $h3 = $('h3', $submenu);\n $h3.on('click', function () {\n if (submenuHelpers.isExpanded($submenu)) {\n submenuHelpers.slideUp($submenu);\n } else {\n submenuHelpers.slideDown($submenu);\n\n // Hide all other slide-downs if the menu to open is sticky\n $submenus.each(function () {\n if ($submenu[0] === $(this)[0]) return;\n if (submenuHelpers.isExpanded($(this))) {\n submenuHelpers.slideUp($(this));\n }\n });\n }\n });\n });\n })(submenuHelpers);\n\n ///\n /// Content overflow responsive js\n ///\n (function (submenuHelpers, $allSubmenus) {\n var submenuContentOverflowCheck = function submenuContentOverflowCheck() {\n $allSubmenus.each(function () {\n var $submenu = $(this),\n $submenuLi = $('li', $submenu),\n submenuLiFirstCr,\n submenuLiLastCr;\n if ($submenu.hasClass('thin-mq')) {\n // Media query override, while this is active\n // we should not measure anything.\n return;\n }\n\n // Remove mobile style from measurement element\n $submenu.removeClass('thin');\n if ($submenuLi.length) {\n submenuLiFirstCr = $submenuLi[0].getBoundingClientRect();\n submenuLiLastCr = $submenuLi[$submenuLi.length - 1].getBoundingClientRect();\n if (submenuLiFirstCr.top < submenuLiLastCr.top) {\n $submenu.addClass('thin');\n } else {\n submenuHelpers.removeSticky($submenu);\n }\n }\n });\n };\n\n /// Media-query breaks to content regardless of overflow\n var submenuContentMediaQueryCheck = function submenuContentMediaQueryCheck() {\n var query = window.matchMedia('(max-width: 400px)').matches;\n $allSubmenus.each(function () {\n if (query) {\n $(this).addClass('thin');\n $(this).addClass('thin-mq');\n } else {\n $(this).removeClass('thin');\n $(this).removeClass('thin-mq');\n }\n });\n };\n $(function () {\n submenuContentMediaQueryCheck();\n submenuContentOverflowCheck();\n });\n window.DGS.Resizer.getInstance().register(function () {\n submenuContentMediaQueryCheck();\n submenuContentOverflowCheck();\n });\n })(submenuHelpers, $allSubmenus);\n });\n})(jQuery);","(function ($) {\n \"use strict\";\n\n window.DGS.OnLoad.getInstance().register(function () {\n if ($('.add-parallax > .component-content .banner-image').length > 0) $('.add-parallax > .component-content .banner-image').addClass('is-parallax');\n var class2add = ['full', 'half', 'third', 'fourth'],\n cl = $('.banner-boxes > ul > li').length - 1,\n $ctaBoxes = $('.banner-spot-elements'),\n $ctaContainer = $('.banner-spot-content'),\n $bannerBoxes = $('.banner-boxes'),\n bh = $ctaContainer.height() - $ctaBoxes.height();\n $('.banner-boxes > ul > li').addClass(class2add[cl] + ' left').wrapInner('
');\n $('.banner-boxes > ul > li > .usp-content').each(function () {\n if ($(this).find('a').attr('href') !== undefined) {\n $(this).wrap(\"\");\n }\n });\n $('.add-usps-class > .component-content > ul > li > div').on('click', function () {\n var thisLink = $(this).find('a'),\n thisLinkHref = thisLink.attr('href');\n window.location.href = thisLinkHref;\n });\n window.DGS.EqualHeight.getInstance().register($('.usp-content .image-spot-element-text'), true);\n window.DGS.Resizer.getInstance().register(function () {\n bh = $ctaContainer.height() - $ctaBoxes.height();\n $bannerBoxes.css('top', bh);\n });\n $('.banner-spot').each(function () {\n var $this = $(this),\n $bText = $('.banner-text', $this),\n $ctas = $('.banner-boxes', $this);\n window.DGS.Overflow.getInstance().register($this, $('.banner-text', $this), function () {\n var rect1 = $bText[0].getBoundingClientRect(),\n rect2 = $ctas[0].getBoundingClientRect();\n if (!(rect1.right < rect2.left || rect1.left > rect2.right || rect1.bottom < rect2.top || rect1.top > rect2.bottom)) {\n return true;\n }\n return false;\n });\n });\n });\n})(jQuery);","// require('jquery-bridget');\n// require('masonry-layout');\nrequire('./../project/custom-order-details.js');\nrequire('../../../../wdh-feature/wdh-wffm/src/js/webforms-for-marketers-api.js');\nrequire('../../../../wdh-feature/wdh-blog/src/js/wdh-categories.js');\nrequire('./../feature/component-cookies.js');\nrequire('./../feature/component-banner-spot.js');\nrequire('./../feature/component-center-spot.js');\nrequire('./../feature/component-country-selector.js');\nrequire('./../feature/component-a-data-hierarchy.js');\nrequire('./../feature/component-b-data-hierarchy-appframe-component.js');\nrequire('./../feature/component-b-data-hierarchy-hubspot.js');\nrequire('./../feature/component-b-data-hierarchy-multi-step.js');\nrequire('./../feature/component-data-hierarchy-dataset.js');\nrequire('./../feature/component-distributor-locator.js');\n// require('./../feature/component-download-center.js');\n\nrequire('./../feature/jquery-cycle.js');\n\n// require('./../feature/component-iframe.js');\nrequire('./../feature/component-job-list-spot.js');\nrequire('./../feature/component-lattice-spot.js');\nrequire('./../feature/component-leaving-notification.js');\n\n// require('./../feature/component-search.js');\n\nrequire('./../feature/component-link-list.js');\nrequire('./../feature/forms/custom-form-sales-rep');\n// require('./../feature/forms/click-dimension-form');\n// require('../feature/list-search-components/component-data-hierarchy-data-list-search.js');\nrequire('./../feature/component-data-hierarchy-warranty-ordering.js');\nrequire('./../feature/component-data-list-spot.js');\nrequire('./../feature/component-form.js');\nrequire('./../feature/component-news-list-spot.js');\nrequire('./../feature/component-pairing-guide.js');\nrequire('./../feature/component-profile-spot.js');\nrequire('./../feature/component-screening-test.js');\nrequire('./../feature/component-tagged-list-spot.js');\nrequire('./../feature/component-warranty-ordering-spot.js');\nrequire('./../feature/redirect-notification-spot.js');\nrequire('./../feature/component-center-list-spot.js');\nrequire('./../feature/component-hearing-test/hearing-test');\nrequire('./../feature/wdh-payment-progress');","/* eslint-disable func-names */\n(function ($, DGS) {\n var activeClass = 'active';\n DGS.OnLoad.getInstance().register(function () {\n $('.component.blog-categories').each(function () {\n // Refactor to add page locator on the corresponding blog-categories elements.\n $('.blog-category a', $(this)).each(function () {\n var href = $(this).attr('href');\n var pageUrl = window.location.pathname + window.location.search;\n if (this.href.indexOf('?') !== -1) {\n if (decodeURIComponent(pageUrl) === href) {\n $('.blog-category a').removeClass(activeClass);\n $(this).addClass('active');\n }\n } else {\n $('.blog-category a').first().addClass(activeClass);\n }\n if ($('.component.blog').data('category')) {\n var categoryName = $('.component.blog').data('category');\n var theCategory;\n var catParamValue = href.split('category=')[1];\n if (catParamValue) {\n theCategory = catParamValue.substring(href.indexOf('&'));\n }\n if (String(theCategory) && String(theCategory) === String(categoryName)) {\n $(this).addClass('active');\n $('.blog-category a').first().removeClass(activeClass);\n }\n }\n });\n });\n });\n})(jQuery, window.DGS);","(function ($) {\n window.DGS.OnLoad.getInstance().register(function () {\n window.DGS.WaitForLoad.getInstance().register($('.job-list-spot'));\n $('.job-list-spot').each(function () {\n var $this = $(this);\n $('ul li img[src=\"\"]', $this).hide();\n window.DGS.LoadComplete.getInstance().register($this);\n });\n });\n})(jQuery);","(function ($) {\n window.DGS.NewsListSpotConfig = {\n equalHeaderHeight: false,\n equalLocationHeight: false,\n equalDateHeight: false,\n equalTextHeight: false\n };\n window.DGS.OnLoad.getInstance().register(function () {\n var c = 0;\n $('.news-list-spot').each(function () {\n var $this = $(this);\n if (window.DGS.NewsListSpotConfig.equalHeaderHeight) window.DGS.EqualHeight.getInstance().register($('.news-header', $this), true);\n if (window.DGS.NewsListSpotConfig.equalLocationHeight) window.DGS.EqualHeight.getInstance().register($('.news-location', $this), true);\n if (window.DGS.NewsListSpotConfig.equalDateHeight) window.DGS.EqualHeight.getInstance().register($('.news-date', $this), true);\n if (window.DGS.NewsListSpotConfig.equalTextHeight) window.DGS.EqualHeight.getInstance().register($('.news-text', $this), false);\n window.DGS.EqualHeight.getInstance().register($('.news-link', $this), false);\n window.DGS.DrawSeparators.getInstance().register($('.component-content ul li', $this), 'news-list-spot-style' + c++);\n });\n });\n})(jQuery);\n(function ($) {\n window.DGS.NewsListSpotConfig.equalHeaderHeight = false;\n window.DGS.NewsListSpotConfig.equalLocationHeight = true;\n window.DGS.NewsListSpotConfig.equalDateHeight = true;\n window.DGS.NewsListSpotConfig.equalTextHeight = false;\n})(jQuery);","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\n(function ($) {\n window.DGS.CenterSpotConfig = {\n mapBrowserWidth: false\n };\n window.DGS.OnLoad.getInstance().register(function () {\n var $thisSpot = $('.centre-spot');\n if ($thisSpot.length) {\n var $breadcrumb = $('.breadcrumb');\n if ($breadcrumb.length) {\n var centerName = $('#center-name').text();\n var centerRegionName = $('#region-item-name').text(),\n centerRegion = $('#region-name').text();\n var links = $breadcrumb.find('a[title=\"*\"]');\n // Changing region wildcards to actual region name\n $(links[0]).text(centerRegion);\n $(links[0]).prop('title', centerRegion);\n var centerRegionLink = $(links[0]).prop('href');\n if (typeof centerRegionLink !== 'undefined') {\n centerRegionLink = centerRegionLink.replace(',-w-,', centerRegionName);\n $(links[0]).prop('href', centerRegionLink.replace(/\\/$/, ''));\n }\n // Changing name wildcards to actual center name\n $(links[1]).text(centerName);\n $(links[1]).prop('title', centerName);\n var centerNameLink = $(links[1]).prop('href');\n if (typeof centerNameLink !== 'undefined') {\n centerNameLink = centerNameLink.replace(',-w-,', centerName);\n $(links[1]).prop('href', centerNameLink.replace(/\\/$/, ''));\n }\n }\n $thisSpot.each(function () {\n var host = window.location.host;\n // document.title = document.getElementById('centre-map').getAttribute('data-name');\n\n function initMap() {\n if (window.DGS.CenterSpotConfig.mapBrowserWidth) $('#centre-map').width($('body').width());\n var latLangArray;\n var myLatLng;\n var latLang = $('.centre-cta.button', $thisSpot).attr('id');\n if (latLang.length > 0) {\n latLangArray = latLang.split(',');\n myLatLng = {\n lat: parseFloat(latLangArray[0]),\n lng: parseFloat(latLangArray[1])\n };\n } else {\n myLatLng = {\n lat: 0,\n lng: 0\n };\n }\n var map = new google.maps.Map(document.getElementById('centre-map'), {\n zoom: parseInt(document.getElementById('centre-map').getAttribute('data-zoom')),\n center: myLatLng,\n disableDefaultUI: true,\n zoomControl: false,\n scaleControl: false,\n draggable: false,\n scrollwheel: false,\n disableDoubleClickZoom: true\n });\n $thisSpot.data('configuration');\n var marker = new google.maps.Marker({\n position: myLatLng,\n map: map,\n icon: document.getElementById('centre-map').getAttribute('data-icon')\n });\n }\n $('.centre-cta.button', $thisSpot).on('click', function (e) {\n e.preventDefault();\n window.open(\"https://maps.google.com?daddr=\".concat($(this).attr('id')), '_blank', 'toolbar=no, scrollbars=no, resizable=yes, top=0, left=0, width=900,height=650');\n });\n window.DGS.Resizer.getInstance().register(function () {\n if ((typeof google === \"undefined\" ? \"undefined\" : _typeof(google)) === 'object' && _typeof(google.maps) === 'object') {\n initMap();\n }\n });\n });\n }\n });\n})(jQuery);","(function ($) {\n window.DGS.CenterSpotConfig = {\n mapBrowserWidth: false\n };\n window.DGS.OnLoad.getInstance().register(function () {\n var $thisSpot = $('.center-list-spot');\n if ($thisSpot.length) {\n var $breadcrumb = $('.breadcrumb');\n if ($breadcrumb.length) {\n var centerRegion = $('.center-list-region').contents()[0].data.trim(),\n centerRegionName = $('#region-item-name').text();\n var links = $breadcrumb.find('a[title=\"*\"]');\n // Changing region wildcards to actual region name\n $(links[0]).text(centerRegion);\n $(links[0]).prop('title', centerRegion);\n var centerRegionLink = $(links[0]).prop('href');\n if (typeof centerRegionLink !== 'undefined') {\n centerRegionLink = centerRegionLink.replace(',-w-,', centerRegionName);\n $(links[0]).prop('href', centerRegionLink.replace(/\\/$/, ''));\n }\n }\n\n // letter scrolling\n $('.alphabet-letter').click(function (e) {\n e.preventDefault();\n if ($(\"#alphabet-\".concat($(this).attr('value')))) {\n $('html, body').animate({\n scrollTop: $(\"#alphabet-\".concat($(this).attr('value'))).offset().top - $('#header').outerHeight()\n }, 500);\n }\n });\n $('.back-to-top').click(function (e) {\n e.preventDefault();\n var anchor = '#content';\n if ($('#alphabet').length) {\n anchor = '#alphabet';\n } else if ($('.regions').length) {\n anchor = '.regions';\n }\n $('html, body').animate({\n scrollTop: $(anchor).offset().top - $('#header').outerHeight()\n }, 500);\n });\n }\n });\n})(jQuery);\n(function ($) {\n window.DGS.OnLoad.getInstance().register(function () {\n var $thisSpot = $('.center-list-spot');\n $thisSpot.find(\".center-name\").removeAttr(\"href\").addClass(\"no-link\"); //replaceWith(\"

center name

\");\n });\n})(jQuery);","/**\r\n * Created by mady on 08-05-2017.\r\n */\n\n(function ($, DGS) {\n DGS.OnLoad.getInstance().register(function () {\n DGS.Components.DataHierarchySpot.getInstance().register('hubspot', function (data, $spot) {\n var $script = $('
');\n $script.html('');\n return {\n mainContainer: $('.component-content', $spot),\n sections: {\n desktop: {\n containers: [{\n className: \"script-container\",\n components: [$script]\n }]\n }\n }\n };\n }, function ($spot, data) {\n var executeInterval = setInterval(function () {\n try {\n hbspt.forms.create({\n portalId: data.portalID,\n formId: data.formID,\n target: \".component.hubspot .component-content .\" + data.formID\n });\n clearInterval(executeInterval);\n } catch (e) {\n console.log(e);\n }\n }, 100);\n });\n });\n})(jQuery, window.DGS);","/**\r\n * Created by mady on 27-03-2017.\r\n * Component: Data Hierarchy Spot\r\n * Variationa: warranty-ordering\r\n */\n\n(function ($, DGS) {\n var dictionary = {\n B2B: {\n webCurrencyFormat: \"${0}\"\n }\n },\n DHS = DGS.Components.DataHierarchySpot.getInstance(),\n builderConfigurationForStep1 = function builderConfigurationForStep1(stepData, $spot) {\n var instruments = [],\n $total = $('
Total:
'),\n $proceed = $('Proceed'),\n entryIndex = 0,\n data = DHS.parseData(stepData.data),\n sessionData = stepData.storageData || {};\n data.instruments.forEach(function (instrument) {\n var labelTemplate = $('.label-template', $spot).html(),\n inputTemplate = $('.input-template', $spot).html(),\n optionTemplate = $('.option-template', $spot).html(),\n currentWarrantyTemplate = $('.current-warranties-template', $spot).html(),\n instrumentTemplate = $('.instrument-template', $spot).html(),\n currentWarranties = '',\n options = '',\n urlWithoutSerial = function urlWithoutSerial(serial) {\n var href = window.location.href;\n return href.replace(serial + '/', '').replace(serial, '');\n };\n instrument.warranties.forEach(function (warrantyDataEntry) {\n currentWarranties += currentWarrantyTemplate.format(warrantyDataEntry.properties.code, warrantyDataEntry.properties.expirationDate, warrantyDataEntry.properties.name);\n });\n instrument.availWarranties.forEach(function (warranty, index) {\n var selected = \"\";\n if (sessionData['warranty_' + entryIndex]) {\n if (sessionData['warranty_' + entryIndex] == warranty.properties.code) {\n selected = ' selected=\"selected\"';\n }\n } else {\n if (index == 0) {\n selected = ' selected=\"selected\"';\n }\n }\n options += optionTemplate.format(warranty.properties.code, warranty.properties.name, warranty.properties.price, selected);\n });\n instruments.push($(instrumentTemplate.format(instrument.properties.serial, labelTemplate.format(\"Patient name\", instrument.properties.patientName) + labelTemplate.format(\"Device\", instrument.properties.device) + labelTemplate.format(\"Serial Number\", instrument.properties.serial), \"Currenty Warranty\", currentWarranties, inputTemplate.format('P.O # / Authorization', \"po_\" + entryIndex, sessionData['po_' + entryIndex] || \"\") + inputTemplate.format('Medicaid / ClientID #', \"medi_\" + entryIndex, sessionData['medi_' + entryIndex] || \"\"), \"Select Warranty\", \"warranty_\" + entryIndex, options, \"#\", \"See warranty descriptions\", urlWithoutSerial(instrument.properties.serial))));\n entryIndex++;\n });\n return {\n mainContainer: $('.component-content', $spot),\n sections: {\n desktop: {\n containers: [{\n className: \"instruments editable\",\n components: instruments\n }, {\n className: \"bottom static\",\n containers: [{\n className: \"total-container\",\n components: [$total]\n }, {\n className: \"cta-container\",\n components: [$proceed]\n }]\n }, {\n className: \"bottom fixed\",\n containers: [{\n className: \"total-container\",\n components: [$total]\n }, {\n className: \"cta-container\",\n components: [$proceed]\n }]\n }]\n }\n }\n };\n },\n builderConfigurationForStep2 = function builderConfigurationForStep2(stepData, $spot) {\n var instruments = [],\n $total = $('
Total:
'),\n $buy = $('Buy'),\n $change = $('Change'),\n entryIndex = 0,\n data = DHS.parseData(stepData.data),\n sessionData = stepData.storageData;\n data.instruments.forEach(function (instrument) {\n var labelTemplate = $('.label-template', $spot).html(),\n optionTemplate = $('.option-template', $spot).html(),\n currentWarrantyTemplate = $('.current-warranties-template', $spot).html(),\n instrumentTemplate = $('.instrument-template-summary', $spot).html(),\n currentWarranties = '',\n options = '';\n instrument.warranties.forEach(function (warrantyDataEntry) {\n currentWarranties += currentWarrantyTemplate.format(warrantyDataEntry.properties.code, warrantyDataEntry.properties.expirationDate, warrantyDataEntry.properties.name);\n });\n instruments.push($(instrumentTemplate.format(instrument.properties.serial, labelTemplate.format(\"Patient name\", instrument.properties.patientName) + labelTemplate.format(\"Device\", instrument.properties.device) + labelTemplate.format(\"Serial Number\", instrument.properties.serial), \"Currenty Warranty\", currentWarranties, labelTemplate.format('P.O # / Authorization', sessionData['po_' + entryIndex]) + labelTemplate.format('Medicaid / ClientID #', sessionData['medi_' + entryIndex]), labelTemplate.format(\"Selected Warranty\", sessionData[\"warranty_\" + entryIndex]))));\n entryIndex++;\n });\n return {\n mainContainer: $('.component-content', $spot),\n sections: {\n desktop: {\n containers: [{\n className: \"instruments summary\",\n components: instruments\n }, {\n className: \"bottom static\",\n containers: [{\n className: \"total-container\",\n components: [$total]\n }, {\n className: \"cta-container\",\n components: [$change, $buy]\n }]\n }, {\n className: \"bottom fixed\",\n containers: [{\n className: \"total-container\",\n components: [$total]\n }, {\n className: \"cta-container\",\n components: [$change, $buy]\n }]\n }]\n }\n }\n };\n };\n DGS.OnLoad.getInstance().register(function () {\n var $spots = $('.component.data-hierarchy-spot.warranty-ordering');\n if (!$spots.length) return;\n DGS.Dictionary.getInstance().getTexts(dictionary, function () {\n $spots.each(function () {\n var $spot = $(this),\n MS = DGS.Components.DataHierarchySpot.MultiStep.getInstance();\n $spot.append('');\n $('.component-content', $spot).append($('.loader', $spot).html());\n MS.setTarget($spot).onBeforeRequest(function (params, hash) {\n if (params.ins) {\n return {\n q: 'instruments:' + params.ins\n };\n }\n }).addStep(builderConfigurationForStep1).addStep(builderConfigurationForStep2).run(function (step, stepData) {\n var $staticBottom = $('.bottom.static', $spot),\n $fixedBottom = $('.bottom.fixed', $spot),\n bottomPosition = $staticBottom.position();\n DGS.Scroller.getInstance().register(function (scrollTop) {\n var targetScrollTop = bottomPosition.top + $staticBottom.outerHeight(true) - $(window).outerHeight(true);\n if (scrollTop < targetScrollTop - 100) {\n $staticBottom.removeClass('shown');\n if (!$fixedBottom.hasClass('shown')) {\n $fixedBottom.addClass('shown');\n setTimeout(function () {\n $fixedBottom.addClass('fade-in');\n }, 200);\n }\n } else {\n $staticBottom.addClass('shown');\n if ($fixedBottom.hasClass('shown')) {\n $fixedBottom.addClass('fade-out');\n $fixedBottom.removeClass('fade-in');\n $fixedBottom.one(\"transitionend\", function () {\n $fixedBottom.removeClass('shown');\n $fixedBottom.removeClass('fade-out');\n });\n }\n }\n });\n switch (parseInt(step)) {\n case 0:\n var updateTotal = function updateTotal() {\n var total = 0;\n $('.custom-select-container .select-item.selected', $spot).each(function () {\n var $this = $(this),\n price = $this.attr('data-price');\n total += parseFloat(price);\n });\n $('.total-container .total').html(dictionary.B2B.webCurrencyFormat.format(total));\n };\n $('.proceed', $spot).click(function (event) {\n event.preventDefault();\n var data = {};\n $('input', $spot).each(function () {\n var $this = $(this);\n data[$this.attr('name')] = $this.val();\n });\n data.step1Location = window.location;\n MS.submitStorageData(data, function () {\n MS.nextStep();\n }, function () {\n alert('an error occured');\n });\n });\n DGS.Event.getInstance().trigger(window.DGS.Events.SELECT_ADDED);\n $('.custom-select-container', $spot).customSelectChange(updateTotal);\n updateTotal();\n break;\n case 1:\n $('.buy', $spot).click(function (event) {\n event.preventDefault();\n MS.submitApiData(stepData, function () {\n MS.nextStep();\n }, function () {\n alert('an error occured');\n });\n });\n if (MS.getPrevStepLocation()) {\n $('.change', $spot).attr('href', MS.getPrevStepLocation());\n }\n break;\n }\n });\n });\n });\n });\n})(jQuery, window.DGS);","(function ($) {\n window.DGS.OnLoad.getInstance().register(function () {\n $('.lattice-spot').each(function () {\n var $spot = $(this);\n window.DGS.EqualHeight.getInstance().register($('.lattice-spot-item', $spot), true);\n });\n });\n})(jQuery);","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\"); }\nfunction _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }\nfunction _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", { writable: !1 }), e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }\nfunction _possibleConstructorReturn(t, e) { if (e && (\"object\" == _typeof(e) || \"function\" == typeof e)) return e; if (void 0 !== e) throw new TypeError(\"Derived constructors may only return object or undefined\"); return _assertThisInitialized(t); }\nfunction _assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); return e; }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(t) { return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, _getPrototypeOf(t); }\nfunction _inherits(t, e) { if (\"function\" != typeof e && null !== e) throw new TypeError(\"Super expression must either be null or a function\"); t.prototype = Object.create(e && e.prototype, { constructor: { value: t, writable: !0, configurable: !0 } }), Object.defineProperty(t, \"prototype\", { writable: !1 }), e && _setPrototypeOf(t, e); }\nfunction _setPrototypeOf(t, e) { return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, _setPrototypeOf(t, e); }\nimport { WDHComponent } from '../../../../wdh-foundation/wdh';\n\n/**\n * @module wdh-payment-progress\n */\nvar WDHPaymentProgress = /*#__PURE__*/function (_WDHComponent) {\n /**\n * @param {String} className\n *\n * @constructor\n * @augments WDHComponent\n * @inheritDoc\n */\n function WDHPaymentProgress() {\n var _this;\n var className = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'payment-progress-spot';\n _classCallCheck(this, WDHPaymentProgress);\n _this = _callSuper(this, WDHPaymentProgress, [className]);\n _this.completeStepClass = 'payment-step-complete';\n _this.activeStepClass = 'payment-step-active';\n return _this;\n }\n _inherits(WDHPaymentProgress, _WDHComponent);\n return _createClass(WDHPaymentProgress, [{\n key: \"init\",\n value: function init(component) {\n // Adds the completeStep class to the previous elements\n var activeStep = component.querySelector(\".\".concat(this.activeStepClass));\n while (activeStep) {\n activeStep.classList.add(this.completeStepClass);\n activeStep = activeStep.previousElementSibling;\n }\n }\n }]);\n}(WDHComponent);\nexport default WDHPaymentProgress;","// PAYMENT PROGRESS\nimport WDHPaymentProgress from \"../../../../wdh-feature/wdh-payment-progress/src/js/wdh-payment-progress\";\nvar paymentProgress = new WDHPaymentProgress();\npaymentProgress.run();","(function ($) {\n window.DGS.OnLoad.getInstance().register(function () {\n $('#wrapper > #content .component.profile-spot').each(function () {\n var $this = $(this);\n });\n window.DGS.EqualHeight.getInstance().register($('#wrapper > #content .component.profile-spot .info-box'));\n });\n})(jQuery);","(function ($) {\n window.DGS.OnLoad.getInstance().register(function () {\n $('#wrapper .component.pairing-guide').each(function () {\n var $this = $(this),\n $select = $('select', $this);\n $select.each(function () {\n var $this = $(this),\n $option = $('option', $this);\n if (!$option.length) {\n $this.prop('disabled', 'disabled');\n } else {\n $this.prop('disabled', false);\n }\n });\n });\n });\n})(jQuery);","(function ($) {\n 'use strict';\n\n window.DGS.OnLoad.getInstance().register(function () {\n $('.component.rich-text.order-details .help').each(function () {\n var $this = $(this),\n $content = $('.help-content', $this.parent()),\n $overlay = $('.help-content-overlay', $this.parent()),\n $contentButton = $('.help-content-button', $content);\n $.merge($this, $contentButton).click(function () {\n if (!$overlay.length) {\n $overlay = $('
');\n $content.before($overlay);\n }\n if (!$content.is(':visible')) {\n $overlay.show();\n $content.show();\n TweenMax.fromTo($content, 0.3, {\n alpha: 0\n }, {\n alpha: 1,\n ease: Power2.easeIn\n });\n } else {\n TweenMax.fromTo($content, 0.3, {\n alpha: 1\n }, {\n alpha: 0,\n ease: Power2.easeIn,\n onComplete: function onComplete() {\n $content.hide();\n $overlay.hide();\n }\n });\n }\n });\n var isFirst = true;\n $('.component.top-margin').each(function () {\n if (!isFirst) $(this).removeClass('top-margin');\n if (isFirst) {\n isFirst = false;\n }\n });\n });\n\n // OD-4817\n // The re-structure of the markup is done very hardcoded and\n // here instead of in the markup, because Oticon US use the markup as it is.\n if ($('.order-details').length) {\n var $backToList = $('.rich-text.b2b-entry-details').first();\n var $heading = $backToList.next();\n var $notice = $backToList.prev();\n var noticeText = $notice.text();\n var $orderNumber = $('h2', $heading);\n $orderNumber.wrap('
');\n var $headingWrapper = $('.heading-wrapper', $heading);\n $notice.remove();\n $backToList.addClass('back-to-list');\n $headingWrapper.append(\"

\".concat(noticeText, \"

\"));\n $orderNumber.css('float', 'none');\n }\n });\n})(jQuery);","(function ($, DGS) {\n var instance;\n DGS.Components = window.DGS.Components || {};\n DGS.Components.DataHierarchySpot = window.DGS.Components.DataHierarchySpot || function () {\n var init = function init() {\n var registerVariation = function registerVariation(className, configHandler, onBuildHandler) {\n $(\".component.data-hierarchy-spot.\" + className).each(function () {\n var $that = $(this);\n DGS.Components.DataHierarchySpot.getInstance().loadData($that, function (data) {\n try {\n var builderConfig,\n parsedData = parseData(data);\n if (configHandler) {\n builderConfig = configHandler.apply(null, [parsedData, $that]);\n if (builderConfig) {\n if (!builderConfig.mainContainer) {\n builderConfig.mainContainer = $('.component-content', $that);\n }\n window.DGS.Builder.getInstance().build(builderConfig);\n if (onBuildHandler) onBuildHandler.apply(null, [$that, parsedData]);\n }\n }\n } catch (error) {\n console.error(error);\n }\n });\n });\n },\n loadData = function loadData($element, callback) {\n var data = $('script[type=\"application/json\"]', $element);\n try {\n callback(JSON.parse(data.html()));\n } catch (e) {\n console.error(e);\n }\n },\n loadTemplate = function loadTemplate($element, path, callback) {\n $.ajax({\n url: path,\n dataType: \"html\"\n }).then(function (data) {\n $element.find('.component-content').html(data);\n callback.apply();\n }, function (jqXHR, textStatus, msg) {\n callback.apply();\n });\n },\n parseData = function parseData(data) {\n return parseChild(data);\n },\n parseChild = function parseChild(child) {\n var output = {};\n for (var s in child) {\n if (s != 'children' && s != 'itemInfo') {\n output[s] = child[s];\n }\n }\n if (!output.hasOwnProperty('id')) {\n output.id = child.itemInfo.name;\n }\n if (child.hasOwnProperty('children')) {\n parseChildren(child, output);\n }\n return output;\n },\n parseChildren = function parseChildren(data, output) {\n data.children.forEach(function (child) {\n var name = child.hasOwnProperty('_property') ? child._property : child.itemInfo.template;\n if (!output.hasOwnProperty(name)) {\n output[name] = [];\n }\n output[name].push(parseChild(child));\n });\n };\n return {\n register: registerVariation,\n loadTemplate: loadTemplate,\n loadData: loadData,\n parseData: parseData\n };\n };\n return {\n /**\r\n * Returns the current instance\r\n * @memberof DGS.Components.DateHierarchySpot\r\n */\n getInstance: function getInstance() {\n if (!instance) {\n instance = init();\n }\n return instance;\n }\n };\n }();\n DGS.OnLoad.getInstance().register(function () {\n DGS.WaitForLoad.getInstance().register($('.component.loader'), false);\n setTimeout(function () {\n $('.component.loader').addClass('remove');\n DGS.LoadComplete.getInstance().register($('.component.loader'));\n }, 1000);\n });\n})(jQuery, window.DGS);","/* eslint-disable func-names */\n(function ($) {\n /* sets identifier classes, needed when both firstname and lastname input is available */\n if ($('.form.hearing-test .scfSectionBorder .scfSectionContent').length) {\n $('.form.hearing-test .scfSectionBorder .scfSectionContent > div:first-child .scfSingleLineGeneralPanel, .form.hearing-test .scfSectionBorder .scfSectionContent > div:first-child() .scfSingleLineTextLabel').addClass('firstName');\n $('.form.hearing-test .scfSectionBorder .scfSectionContent > div:nth-child(2) .scfSingleLineGeneralPanel, .form.hearing-test .scfSectionBorder .scfSectionContent > div:nth-child(2) .scfSingleLineTextLabel').addClass('lastName');\n }\n var $inputs = $('.form.hearing-test .scfSectionBorder .scfSectionContent input');\n var $labels = $('.form.hearing-test .scfSectionBorder .scfSectionContent label');\n $inputs.each(function (index) {\n var $this = $(this);\n var $label = $($labels[index]);\n $this.attr('placeholder', $label.text());\n $label.hide();\n\n /* Removes previously entered text in input fields on load (Needed if user is going backwards from another step) */\n $this.val('').blur();\n });\n $(document).ready(function () {\n if ($('.scfForm .scfValidationSummary > ul li span').length) {\n var $ErrorStarSpan = $('.scfForm .scfValidationSummary > ul li');\n $ErrorStarSpan.append('
*
');\n }\n });\n $(' .form.hearing-test .scfValidationSummary ul').append('
  • ');\n $(' .form.hearing-test .scfValidatorRequired').appendTo('.scfValidationSummary ul li:last-of-type()');\n})(jQuery);","(function ($) {\n \"use strict\";\n\n import(/* webpackChunkName: \"gsap\" */\n /* webpackPreload: true */\n /* webpackMode: 'lazy-once' */\n './../feature/gsap/gsap').then(function (foo) {\n window.DGS.OnLoad.getInstance().register(function () {\n if (!$(\"#wrapper .cookie-warning\").length) {\n // There are no sitecore cookie components on page. Break out\n return;\n }\n $(\"#wrapper .cookie-warning\").insertBefore('#header');\n var cookieWarning = $(\"#wrapper .cookie-warning:not(.initialized)\"),\n isEmpty = cookieWarning.find(\".component-content\").children().length;\n var tween = null;\n if (isEmpty) {\n cookieWarning.addClass(\"initialized component-ready\");\n } else {\n cookieWarning.remove();\n }\n $('#wrapper .cookie-warning .submit').click(function (e) {\n e.preventDefault();\n window.DGS.Cookies.getInstance().createCookie(\"cookie-warning\", 1, 365);\n tween.kill();\n tween = TweenMax.to($('#wrapper'), .3, {\n css: {\n marginTop: 0,\n marginBottom: 0\n },\n delay: 0\n });\n cookieWarning.remove();\n window.DGS.Event.getInstance().trigger('cookie-warning-submit');\n });\n window.DGS.Resizer.getInstance().register(function () {\n var isEmpty = cookieWarning.find(\".component-content\").children().length,\n newMargin = cookieWarning.outerHeight() || 0;\n if (window.matchMedia(\"(max-width: 1024px)\").matches) {\n if (isEmpty) {\n tween = TweenMax.to($('#wrapper'), .3, {\n css: {\n marginBottom: newMargin,\n marginTop: 0\n },\n delay: 1.5\n });\n } else {\n tween = TweenMax.to($('#wrapper'), .3, {\n css: {\n marginTop: 0,\n marginBottom: 0\n },\n delay: 0\n });\n }\n } else if (isEmpty) {\n tween = TweenMax.to($('#wrapper'), .3, {\n css: {\n marginTop: newMargin,\n marginBottom: 0\n },\n delay: 1.5\n });\n } else {\n tween = TweenMax.to($('#wrapper'), .3, {\n css: {\n marginTop: 0,\n marginBottom: 0\n },\n delay: 0\n });\n }\n });\n });\n }).catch(function (error) {\n console.log('An error occurred while loading the component for selector}');\n console.log(error);\n });\n})(jQuery);","import { trackFormSubmit } from './../project/tracking-gtm-ga4';\n(function ($) {\n function formConfirmation(formClass) {\n /* People award form */\n var requiredClassName = \"required\";\n var triggerClassName = \"trigger\";\n var formConfirmationClassName = \"form-confirmation\";\n var submitButton = \"scfSubmitButton\";\n var categoryDropDown = \"fa-nom-category\";\n var ageDropDown = \"fa-age\";\n var defaultFormClass = \"scfForm\";\n var editBtn = \"edit-btn\";\n var confirmBtn = \"tall-btn\";\n var componentContent = \"component-content\";\n var confirmationText = \"confirmation-text\";\n var scfFooterBorder = \"scfFooterBorder\";\n var faAttachmentsHeader = \"fa-attachments-header\";\n var commonErrorMessage = $('

    The form is not complete and has not been submitted yet.
    Please review your application and fill out the missing fields marked in red.

    ');\n\n /* Toggle the input validation class */\n function classToggler($form, $element) {\n var name = $.trim($element.val());\n var isRequired = $element.parent().parent().find(\".scfRequired\").length > 0;\n var entry = $element.closest('[class*=\"fa-\"]');\n if ($element.hasClass('nice-select')) {\n name = $element.closest(\".scfDropListGeneralPanel\").find(\"select\").val();\n } else if (!$element.is(\"input\") && !$element.is(\"textarea\")) {\n name = $.trim($element.html());\n $element = $element.prev(\"input\");\n }\n function validateValue(value, entry, isRequired) {\n value = $.trim(value);\n if (value === '') {\n return !isRequired;\n }\n if (entry.hasClass(\"fa-email\") || entry.hasClass('fa-nom-email')) {\n return /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/.test(String(value).toLowerCase());\n }\n if (entry.hasClass(\"fa-zip\") || entry.hasClass(\"fa-nom-zip\")) {\n return /(^\\d{5}$)|(^\\d{5}-\\d{4}$)/.test(value);\n }\n if (entry.hasClass(\"fa-home-phone\") || entry.hasClass(\"fa-nom-home-phone\") || entry.hasClass(\"fa-business-phone\") || entry.hasClass(\"fa-nom-business-phone\")) {\n var formats = \"+1-xxx-xxx-xxxx|1-xxx-xxx-xxxx|(xxx) xxx-xxxx|(xxx)xxx-xxxx|xxx-xxx-xxxx|xxxxxxxxxx\";\n var r = RegExp(\"^(\" + formats.replace(/([\\(\\)])/g, \"\\\\$1\").replace(/\\+/g, \"\\\\+\").replace(/x/g, \"\\\\d\") + \")$\");\n return r.test(value);\n }\n return true;\n }\n if (!validateValue(name, entry, isRequired)) {\n $element.addClass(requiredClassName);\n } else {\n $element.removeClass(requiredClassName);\n }\n var categoryDropDownInput = $form.find(\".\" + categoryDropDown + \" input\");\n var ageDropDownInput = $form.find(\".\" + ageDropDown + \" input\");\n\n // Special handling of category with option 'student' and age.\n if (categoryDropDownInput.val() === \"Student\" && ageDropDownInput.val() === '') {\n ageDropDownInput.addClass(requiredClassName);\n } else if (categoryDropDownInput.val() != \"Student\" || categoryDropDownInput.val() === \"Student\" && ageDropDownInput.val() != '') {\n ageDropDownInput.removeClass(requiredClassName);\n }\n }\n function resetDropDown($formElement) {\n var categoryDropDownInput = $formElement.find(\".\" + categoryDropDown + \" input\");\n var ageDropDownInput = $formElement.find(\".\" + ageDropDown + \" input\");\n if (categoryDropDownInput.val() != \"Student\") {\n ageDropDownInput.val('');\n }\n }\n\n /* single field validation */\n function validateSingleRequiredfield($formElement) {\n $formElement.find(\"input, textarea, select, .nice-select\").each(function () {\n var $input = $(this);\n $input.next(\".\" + triggerClassName).on(\"DOMSubtreeModified\", function () {\n var $triggerClass = $(this);\n classToggler($formElement, $triggerClass);\n });\n $input.on(\"blur\", function (e) {\n classToggler($formElement, $input);\n });\n });\n }\n\n /* multiple field validation */\n function validateMultipleRequiredFields($formElement) {\n $formElement.find(\"input, textarea, select, .nice-select\").each(function () {\n classToggler($formElement, $(this));\n });\n resetDropDown($formElement);\n }\n\n /* handle the spots that appear when hitting the form submit btn */\n function formConfirmation($form, confirmationElements, confirmOriginalTokens) {\n $(\".\" + confirmationElements).show();\n var $confimationText = $(\".\" + confirmationElements + \".\" + confirmationText);\n\n // scroll to the top of the first confirmation element\n $('html, body').animate({\n scrollTop: $confimationText.offset().top - 20\n }, 0);\n\n // map each classname with a token\n var confirmCopy = confirmOriginalTokens.data(\"confirm-tokens\");\n\n // find each class that starts with fa- and replace its corrosponding token\n $form.find(\"[class*=fa-]\").each(function () {\n var inputThis = $(this);\n var className = $.grep(this.className.split(\" \"), function (v, i) {\n return v.indexOf('fa-') === 0;\n }).join();\n if (inputThis.find(\"input, textarea, select\").val() != \"undefined\") {\n confirmCopy = confirmCopy.replace(\"{\" + className + \"}\", inputThis.find(\"input, textarea, select\").val().replace(/(?:\\r\\n|\\r|\\n)/g, '
    '));\n }\n });\n $('.component-content', $confimationText).html(confirmCopy);\n\n // Insert value of input type file\n var fileInputs = $form.find('input[type=file]');\n var fileInputContent = $confimationText.find('.' + faAttachmentsHeader).after('

    ');\n if (fileInputs.filter(function () {\n return $(this).val();\n }).length > 0) {\n fileInputs.each(function () {\n fileInputContent.next('p').append($(this).val().replace(/^.*[\\\\\\/]/, '') + '
    ');\n });\n } else {\n fileInputContent.hide();\n }\n\n // confirm button\n $confimationText.find(\".\" + confirmBtn).on('click', function () {\n $form.find(\".\" + submitButton).off(\"click.aform\");\n $form.find(\".\" + submitButton).trigger(\"click.aform\");\n });\n\n // back button\n $confimationText.find(\".\" + editBtn).on('click', function () {\n $(\".\" + confirmationElements).hide();\n $form.find(\".\" + defaultFormClass).show();\n return false;\n });\n }\n function dropDownToggle($element) {\n // hide and show age dropdown depending on category selection\n $element.find(\".\" + categoryDropDown + \" .\" + triggerClassName).on(\"DOMSubtreeModified\", function () {\n var $triggerClass = $(this);\n if ($element.find(\".\" + categoryDropDown + \" input\").val() === \"Student (Age 6-25)\") {\n $element.find(\".\" + ageDropDown).show();\n } else {\n $element.find(\".\" + ageDropDown).hide();\n }\n });\n }\n function toggleCommonErrorMessage($formElement, show) {\n if (show) {\n $formElement.find(\".\" + scfFooterBorder).find('.scfValidatorRequired').show();\n } else {\n $formElement.find(\".\" + scfFooterBorder).find('.scfValidatorRequired').hide();\n }\n }\n\n /* form handling */\n function submitHandler(form) {\n var $form = $(\".\" + form);\n if ($form.length === 0) {\n return false;\n }\n dropDownToggle($form);\n\n // Adds the * to the age dropdown otherwise the server will require it to have a value\n $form.find(\".\" + scfFooterBorder).append(commonErrorMessage);\n $form.find(\".\" + ageDropDown).append('

    *
    ');\n validateSingleRequiredfield($form);\n var confirmOriginalTokens = $(\".\" + formConfirmationClassName).data(\"confirm-tokens\", $(\".\" + formConfirmationClassName + \" .\" + componentContent).html());\n $form.find(\".\" + submitButton).on(\"click.aform\", function () {\n validateMultipleRequiredFields($form);\n if ($form.find(\".\" + requiredClassName).length > 0) {\n toggleCommonErrorMessage($form, {\n show: true\n });\n return false;\n } else {\n $form.find(\".\" + defaultFormClass).hide();\n toggleCommonErrorMessage($form);\n // Show the form confirmations spots and replace text\n formConfirmation($form, formConfirmationClassName, confirmOriginalTokens);\n trackFormSubmit();\n }\n return false;\n });\n }\n submitHandler(formClass);\n }\n window.DGS.OnLoad.getInstance().register(function () {\n /* if (!window.matchMedia(\"(max-width: 400px)\").matches) {\n $(\"#wrapper .component.form select\").addClass('turnintodropdown');\n tamingselect();\n }*/\n if ($('.component.form').length) window.DGS.Event.getInstance().trigger(window.DGS.Events.SELECT_ADDED, $('.component.form select'));\n $('#wrapper .component.form input[type=\"submit\"]').attr(\"disabled\", true);\n setTimeout(function () {\n $('#wrapper .component.form input[type=\"submit\"]').removeAttr(\"disabled\");\n }, 2000);\n $(\"#wrapper .component.form .scfCheckBoxListBorder\").each(function () {\n var $this = $(this),\n $span = $('.scfCheckBoxListLabel', $this);\n $error = $('.scfValidatorRequired', $this);\n if ($error.length) {\n $span.addClass(\"error\");\n }\n });\n formConfirmation(\"form-custom-validation\");\n formConfirmation(\"focus-on-people\");\n $(\".component.form\").each(function () {\n var $this = $(this);\n if ($this.hasClass(\"blog-form\")) {\n setTimeout(function () {\n $this.addClass(\"component-ready animate\");\n }, 500);\n }\n });\n });\n})(jQuery);","(function ($) {\n window.DGS.OnLoad.getInstance().register(function () {\n $('.component.tagged-list-spot').each(function () {\n var $this = $(this),\n itemsCount = $this.find('.tagged-page').children('.tagged-page').length,\n itemsCountVisible = $this.find('.tagged-page').children('.tagged-page').length,\n selectedFilter = $this.find('select.tagged-page-tags').val(),\n selectedSort = $this.find('select.tagged-page-sorting').val();\n\n // fake-select initial options\n\n $this.find('.fake-select.tagged-page-sorting span').text($this.find('select.tagged-page-sorting option[value=\"' + selectedSort + '\"]').text());\n $this.find('.fake-select.tagged-page-tags span').text($this.find('select.tagged-page-tags option[value=\"' + selectedFilter + '\"]').text());\n $this.find('.fake-select.tagged-page-sorting ul').toggle();\n $this.find('.fake-select.tagged-page-tags ul').toggle();\n filterAndSort($this, selectedFilter, selectedSort);\n $('body').click(function () {\n $this.find('.fake-select.tagged-page-sorting ul').hide();\n $this.find('.fake-select.tagged-page-tags ul').hide();\n });\n $this.find('.fake-select.tagged-page-sorting span').click(function (e) {\n e.stopPropagation();\n $this.find('.fake-select.tagged-page-sorting ul').toggle();\n $this.find('.fake-select.tagged-page-sorting span').toggleClass('span-focus');\n $this.find('.fake-select.tagged-page-tags ul').hide();\n $this.find('.fake-select.tagged-page-tags span').removeClass('span-focus');\n });\n $this.find('.fake-select.tagged-page-tags span').click(function (e) {\n e.stopPropagation();\n $this.find('.fake-select.tagged-page-tags ul').toggle();\n $this.find('.fake-select.tagged-page-tags span').toggleClass('span-focus');\n $this.find('.fake-select.tagged-page-sorting ul').hide();\n $this.find('.fake-select.tagged-page-sorting span').removeClass('span-focus');\n });\n $this.find('.fake-select.tagged-page-sorting li').click(function () {\n var $selected = $(this);\n if ($selected.attr('data-value') != $this.find('select.tagged-page-sorting').val()) {\n $this.find('.fake-select.tagged-page-sorting ul').hide();\n $this.find('.fake-select.tagged-page-sorting span').removeClass('span-focus');\n $this.find('.fake-select.tagged-page-sorting span').text($selected.text());\n selectedSort = $selected.attr('data-value');\n $this.find('select.tagged-page-sorting').val($selected.attr('data-value'));\n filterAndSort($this, selectedFilter, selectedSort);\n }\n });\n $this.find('.fake-select.tagged-page-tags li').click(function () {\n var $selected = $(this);\n if ($selected.attr('data-value') != $this.find('select.tagged-page-tags').val()) {\n $this.find('.fake-select.tagged-page-tags ul').hide();\n $this.find('.fake-select.tagged-page-tags span').removeClass('span-focus');\n $this.find('.fake-select.tagged-page-tags span').text($selected.text());\n selectedFilter = $selected.attr('data-value');\n $this.find('select.tagged-page-tags').val($selected.attr('data-value'));\n filterAndSort($this, selectedFilter, selectedSort);\n }\n });\n });\n });\n function filterAndSort(vm, filter, sort) {\n // Filtering\n\n var item,\n itemsArray = [],\n itemsArrayHidden = [];\n vm.find('.tagged-page').children('.tagged-page').each(function () {\n item = $(this);\n itemsArray.push(item);\n if (!(item.attr('data-tags').indexOf(filter) > -1 || filter === '')) {\n //item.hide(); // add effect; ask what kind of effect\n itemsArrayHidden.push(item);\n itemsArray.pop();\n }\n });\n\n // Sorting\n\n var aux, sortCriteria1, sortCriteria2;\n for (i = 0; i < itemsArray.length - 1; i++) {\n for (j = i + 1; j < itemsArray.length; j++) {\n switch (sort) {\n case 'alpha':\n sortCriteria1 = itemsArray[i].attr('data-title');\n sortCriteria2 = itemsArray[j].attr('data-title');\n if (sortCriteria1 > sortCriteria2) {\n aux = itemsArray[i];\n itemsArray[i] = itemsArray[j];\n itemsArray[j] = aux;\n }\n break;\n case 'date':\n sortCriteria1 = itemsArray[i].attr('data-date');\n sortCriteria2 = itemsArray[j].attr('data-date');\n if (sortCriteria1 < sortCriteria2) {\n aux = itemsArray[i];\n itemsArray[i] = itemsArray[j];\n itemsArray[j] = aux;\n }\n break;\n }\n }\n }\n\n // Reinject in dom\n\n vm.find('.tagged-page').children('.tagged-page').remove();\n vm.find('.tagged-page').append(itemsArray);\n vm.find('.tagged-page > .tagged-page').parent().append(itemsArrayHidden);\n for (var j = 0; j < itemsArray.length; j++) {\n if (itemsArray[j].css('display') == 'none') {\n itemsArray[j].slideDown();\n }\n }\n for (var k = 0; k < itemsArrayHidden.length; k++) {\n itemsArrayHidden[k].slideUp();\n }\n }\n})(jQuery);","/**\n * Created by mady on 02-09-2016.\n */\n(function ($, DGS) {\n var consts = {\n DATA_RESPONSE_URL: \"response-url\",\n DATA_FIELD_NAME: \"field-name\",\n DATA_SORT_ORDER: \"sort-order\"\n },\n DataListSpotConfig = {\n resolveSortForField: function resolveSortForField(field, sortType) {\n return '';\n },\n decorateRowAtIndex: function decorateRowAtIndex(data, index, $row) {\n $row.addClass(index % 2 == 0 ? \"data-list-spot__row-even\" : \"data-list-spot__row-odd\");\n },\n fieldInfo: {},\n Event: {\n DATA_RESULT_READY: \"dataResultReady\",\n DATA_RESULT_EMPTY: \"dataResultEmpty\",\n DATA_LIST_PRE_SEARCH: \"dataListPreSearch\",\n DATA_SEARCH_QUERY_READY: \"dataSearchQueryReady\",\n DATA_REQUEST_BUILD_QUERY: \"dataRequestBuildQuery\",\n DATA_REQUEST_BUILD_ADV_QUERY: \"dataRequestBuildAdvQuery\",\n DATA_REQUEST_INITIAL_BUILD_QUERY: \"dataRequestInitialBuildQuery\",\n DATA_REQUEST_INITIAL_BUILD_ADV_QUERY: \"dataRequestInitialBuildAdvQuery\",\n DATA_REQUEST_INITIAL_RECEIVED: \"dataRequestInitialReceived\",\n DATA_SEARCH_SET_GLOBAL_FILTER: \"dataSearchSetGlobalFilter\",\n DATA_LIST_BUILT: \"dataListBuilt\"\n },\n initialRequests: {}\n },\n savedFilterObject = {},\n getConfigurationId = function getConfigurationId($dataList) {\n return $dataList.data(\"configuration\");\n },\n getConfigForDataList = function getConfigForDataList($dataList) {\n var configId = getConfigurationId($dataList),\n script = $('script[type=\"application/json\"]', $dataList),\n config = JSON.parse(script.html());\n return config;\n },\n checkFieldNameSortability = function checkFieldNameSortability(fieldName) {\n return DataListSpotConfig.fieldInfo.hasOwnProperty(fieldName) ? DataListSpotConfig.fieldInfo[fieldName].IsSortable : false;\n },\n showContent = function showContent($container) {\n import(/* webpackChunkName: \"gsap\" */\n /* webpackPreload: true */\n /* webpackMode: 'lazy-once' */\n './../feature/gsap/gsap').then(function (foo) {\n TweenMax.fromTo($container, 0.3, {\n alpha: 0\n }, {\n alpha: 1,\n ease: Power2.easeIn\n });\n }).catch(function (error) {\n console.log('An error occurred while loading the component for selector}');\n console.log(error);\n });\n },\n showRows = function showRows($rows) {\n import(/* webpackChunkName: \"gsap\" */\n /* webpackPreload: true */\n /* webpackMode: 'lazy-once' */\n './../feature/gsap/gsap').then(function (foo) {\n TweenMax.staggerFromTo($rows, .2, {\n alpha: 0\n }, {\n alpha: 1,\n ease: Power2.easeIn\n }, .05);\n }).catch(function (error) {\n console.log('An error occurred while loading the component for selector}');\n console.log(error);\n });\n },\n initDataListSpot = function initDataListSpot() {\n $(\".component.data-list-spot\").each(function () {\n var $dataList = $(this),\n configurationId = getConfigurationId($dataList),\n config = getConfigForDataList($dataList),\n $componentContent = $(\".component-content\", $dataList),\n $headerContainer,\n $itemsContainer;\n\n // IF IS COLLAPSED. ADD LABEL\n if (isCollapsed($dataList)) {\n var _toggleCollapse = function toggleCollapse() {\n $dataList.toggleClass('open');\n $('.data-list-spot-search', $componentContent).val('');\n $('.data-list-spot__row').show();\n if ($componentContent.hasClass('open')) {\n setTimeout(function () {\n DGS.PageClick.getInstance().register(_toggleCollapse);\n }, 0);\n } else {\n DGS.PageClick.getInstance().remove(_toggleCollapse);\n }\n };\n $componentContent.append('
    Sold to...
    ');\n var $dataListTitle = $('.data-list-title', $dataList);\n if ($dataListTitle.length) {\n $dataListTitle.remove();\n $('.data-list-selected-value', $componentContent).before($dataListTitle);\n }\n $componentContent.click(function (e) {\n e.stopPropagation();\n _toggleCollapse();\n });\n }\n // IF IS SEARCHABLE. ADD SEARCH\n if (isSearchable($dataList)) {\n $componentContent.append('
    ');\n $('.data-list-spot-search', $componentContent).keyup(function (event) {\n var query = $(this).val().toLowerCase();\n $('.data-list-spot__row', $dataList).each(function () {\n var $this = $(this),\n $column = $('.data-list-spot__row__column span', $this),\n show = false;\n $column.each(function () {\n if ($(this).text().toLowerCase().indexOf(query) != -1) {\n show = true;\n }\n });\n if (show) $this.show();else $this.hide();\n });\n });\n $('input', $componentContent).click(function (e) {\n e.stopPropagation();\n });\n }\n\n // ADD HEADERS\n $componentContent.append('
    ');\n $headerContainer = $('.data-list-spot__table.headers', $dataList);\n buildHeaders($dataList, $headerContainer);\n\n // ADD ITEMS CONTAINER\n $componentContent.append('
    ');\n $itemsContainer = $('.data-list-spot__table.items', $dataList);\n\n // SETUP EVENT LISTENERS - begin\n DGS.Event.getInstance().on(DataListSpotConfig.Event.DATA_RESULT_READY, function (identifier, data, resultURL) {\n if (config.endpoint && identifier == config.endpoint || identifier == configurationId) {\n if (resultURL && $dataList.data('result-url') !== resultURL) {\n return;\n }\n removeLoader($dataList);\n if (!buildRows($dataList, data, $itemsContainer)) {\n addViewAllComponent($dataList, $componentContent);\n }\n decorateCells($dataList);\n addLoadMoreComponent(config.endpoint, $dataList, data, $componentContent);\n DGS.Event.getInstance().trigger(DataListSpotConfig.Event.DATA_LIST_BUILT, configurationId, config.data);\n }\n });\n DGS.Event.getInstance().on(DataListSpotConfig.Event.DATA_RESULT_EMPTY, function (endpoint, resultURL) {\n if (endpoint == config.endpoint) {\n if (resultURL && $dataList.data('result-url') !== resultURL) {\n return;\n }\n removeLoader($dataList);\n if (!$('.data-list-spot__row', $dataList).length) {\n addEmptyResultComponent($dataList, $componentContent);\n }\n }\n });\n DGS.Event.getInstance().on(DataListSpotConfig.Event.DATA_LIST_PRE_SEARCH, function (endpoint) {\n if (endpoint == config.endpoint) {\n clearSort($dataList);\n clearRows($dataList);\n buildLoader($dataList);\n }\n });\n DGS.Event.getInstance().on(DataListSpotConfig.Event.DATA_SEARCH_QUERY_READY, function (endpoint, fromDate, toDate, filterObject, queryJoinType, extraQuery) {\n if (endpoint == config.endpoint) {\n clearSort($dataList);\n clearRows($dataList);\n buildLoader($dataList);\n requestResultUrl($dataList, config.endpoint, fromDate, toDate, filterObject, queryJoinType, function (responseUrl) {\n if (extraQuery) {\n if (responseUrl.indexOf('?') === -1) {\n responseUrl += \"?\" + extraQuery;\n } else {\n responseUrl += \"&\" + extraQuery;\n }\n }\n saveResultUrlOnDataList($dataList, responseUrl);\n if (config.sortOrder) {\n if (responseUrl.indexOf('?') !== -1) {\n responseUrl += '&orderby=' + config.sortOrder;\n } else {\n responseUrl += '?orderby=' + config.sortOrder;\n }\n }\n _requestResultData($dataList, config.endpoint, responseUrl, 0, true);\n });\n }\n });\n DGS.Event.getInstance().on(DataListSpotConfig.Event.DATA_SEARCH_SET_GLOBAL_FILTER, function (field, value) {\n savedFilterObject[field] = field + ' ' + value;\n // refresh list\n initialPopulation($dataList);\n });\n // SETUP EVENT LISTENERS - end\n\n // INITIAL POPULATION - begin\n initialPopulation($dataList);\n // INITIAL POPULATION - end\n\n if (isCollapsed($dataList)) {\n setDefaultValue($dataList, config.data);\n }\n });\n },\n initialPopulation = function initialPopulation($dataList) {\n var configurationId = getConfigurationId($dataList),\n config = getConfigForDataList($dataList),\n initialRequestData;\n if (config.endpoint) {\n if (DataListSpotConfig.initialRequests.hasOwnProperty(config.endpoint)) {\n initialRequestData = DataListSpotConfig.initialRequests[config.endpoint];\n DGS.Event.getInstance().trigger(initialRequestData.queryType, initialRequestData.$searchSpot, config.endpoint);\n } else {\n getDataForConfiguredDateRange($dataList, config.endpoint);\n }\n } else if (config.data) {\n clearRows($dataList);\n DGS.Event.getInstance().trigger(DataListSpotConfig.Event.DATA_RESULT_READY, configurationId, config.data);\n }\n },\n requestResultUrl = function requestResultUrl($dataList, requestUrl, from, to, filterObject, queryJoinType, callback) {\n if (from == null && to == null) {\n var dates = getConfiguredDateRange($dataList);\n from = dates.from;\n to = dates.to;\n }\n var tzoffset = new Date().getTimezoneOffset() * 60000,\n data = {\n from: new Date(from - tzoffset).toISOString().substring(0, 10).replace(/-/g, \"\"),\n to: new Date(to - tzoffset).toISOString().substring(0, 10).replace(/-/g, \"\")\n },\n config = getConfigForDataList($dataList),\n requestObject = $dataList.data('requestObject'),\n currentUUID = $dataList.data('uuid'),\n uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\n var r = Math.random() * 16 | 0,\n v = c == 'x' ? r : r & 0x3 | 0x8;\n return v.toString(16);\n });\n var jsonData = JSON.stringify(data);\n if (requestObject && requestObject.requestId == currentUUID) {\n try {\n requestObject.hasBeenActivelyAborted = true;\n requestObject.abort();\n } catch (error) {\n console.log(error);\n }\n }\n $dataList.data('uuid', uuid);\n requestObject = $.ajax({\n url: requestUrl,\n type: 'GET',\n data: {\n date: jsonData\n },\n beforeSend: function beforeSend(jqXHR, settings) {\n jqXHR.requestId = uuid;\n }\n }).then(function (data, textState, jqXHR) {\n if ($dataList.data('uuid') != jqXHR.requestId) return;\n var resultUrl = data,\n filter = Object.keys(filterObject).map(function (f) {\n return filterObject[f];\n }).join(\" \" + queryJoinType + \" \"),\n savedFilter = Object.keys(savedFilterObject).map(function (f) {\n return savedFilterObject[f];\n }).join(\" and \");\n if (filter && filter.length > 0) {\n if (config.filter) filter += \" and \" + config.filter;\n } else {\n filter = config.filter;\n }\n if (savedFilter && savedFilter.length > 0) {\n if (filter && filter.length > 0) {\n filter += \" and \" + savedFilter;\n } else {\n filter = savedFilter;\n }\n }\n if (filter && filter.length > 0) {\n filter = filter.replace('(', '%28');\n filter = filter.replace(')', '%29');\n resultUrl += \"?filter=\" + filter;\n }\n callback.apply(null, [resultUrl]);\n }, function (jqXHR, textStatus, msg) {\n if (jqXHR.hasBeenActivelyAborted) return;\n if ($dataList.data('uuid') != jqXHR.requestId) return;\n switch (jqXHR.status) {\n case 401:\n window.location = config.renewLoginUrl;\n break;\n default:\n DGS.Event.getInstance().trigger(DataListSpotConfig.Event.DATA_RESULT_EMPTY, requestUrl);\n break;\n }\n });\n requestObject.requestId = uuid;\n },\n _requestResultData = function requestResultData($dataList, requestUrl, resultUrl, iterationCount, clearRowsOnReady) {\n $dataList.data('result-url', resultUrl);\n var config = getConfigForDataList($dataList);\n if (resultUrl === null || iterationCount > 10) {\n // timeout\n DGS.Event.getInstance().trigger(DataListSpotConfig.Event.DATA_RESULT_EMPTY, requestUrl);\n return;\n }\n $.ajax({\n url: resultUrl,\n type: 'GET'\n }).then(function (data, textState, jqXHR) {\n switch (jqXHR.status) {\n case 204:\n setTimeout(function () {\n _requestResultData($dataList, requestUrl, resultUrl, ++iterationCount, clearRowsOnReady);\n }, 500);\n break;\n case 200:\n if (clearRowsOnReady) clearRows($dataList);\n if (!data.hasOwnProperty('items') || data.items.length == 0) {\n DGS.Event.getInstance().trigger(DataListSpotConfig.Event.DATA_RESULT_EMPTY, requestUrl, resultUrl);\n } else {\n DGS.Event.getInstance().trigger(DataListSpotConfig.Event.DATA_RESULT_READY, requestUrl, data, resultUrl);\n }\n break;\n }\n }, function (jqXHR, textState, msg) {\n if (clearRowsOnReady) clearRows($dataList);\n switch (jqXHR.status) {\n case 401:\n window.location = config.renewLoginUrl;\n break;\n default:\n DGS.Event.getInstance().trigger(DataListSpotConfig.Event.DATA_RESULT_EMPTY, requestUrl);\n break;\n }\n });\n },\n buildHeaders = function buildHeaders($dataList, $container) {\n var config = getConfigForDataList($dataList),\n columns = config ? config.fields : [],\n $dataListHeaders = $('
    ');\n columns.forEach(function (column) {\n var classes = ['data-list-spot__headers__header', column.fieldName],\n label = column.label;\n if (column.className) {\n classes.push(column.className);\n }\n if (column.hideOnMobile) {\n classes.push('hide-on-mobile');\n }\n if (column.hideOnTablet) {\n classes.push('hide-on-tablet');\n }\n if (checkFieldNameSortability(column.fieldName) && classes.indexOf('not-sortable') === -1) {\n classes.push('sortable');\n }\n var $header = $('
    ' + label + '
    ');\n $header.data(consts.DATA_FIELD_NAME, column.fieldName);\n $dataListHeaders.append($header);\n });\n $container.append($dataListHeaders);\n $('.data-list-spot__headers__header.sortable', $container).click(function (e) {\n e.stopPropagation();\n var $this = $(this),\n $allHeaders = $('.data-list-spot__headers__header'),\n sortType = $this.hasClass('ordered-asc') ? 'ordered-desc' : 'ordered-asc',\n fieldName = $this.data(consts.DATA_FIELD_NAME);\n $allHeaders.removeClass('ordered-asc');\n $allHeaders.removeClass('ordered-desc');\n $this.addClass(sortType);\n if (config.endpoint) {\n clearRows($dataList);\n _requestResultData($dataList, config.endpoint, getResultUrlFromDataListWithSort($dataList, fieldName, sortType), 0);\n } else {\n var data = [];\n $('.data-list-spot__row', $dataList).each(function () {\n var $this = $(this),\n selector = '.data-list-spot__row__column.' + fieldName + ' span';\n data.push({\n 'row': $this,\n 'text': $(selector, $this).text()\n });\n });\n data.sort(function (a, b) {\n if (sortType == 'ordered-asc') {\n return a.text.toLowerCase() < b.text.toLowerCase() ? -1 : 1;\n }\n return b.text.toLowerCase() < a.text.toLowerCase() ? -1 : 1;\n });\n clearRows($dataList);\n data.forEach(function (item, index, array) {\n $('.data-list-spot__table.items', $dataList).append(item.row);\n });\n }\n });\n },\n buildRow = function buildRow($dataList, dataRow, index) {\n var config = getConfigForDataList($dataList),\n columns = config ? config.fields : [],\n value,\n key,\n style,\n hideOnMobile,\n hideOnTablet,\n classes,\n $header,\n $row = $('
    ');\n DGS.DataListSpotConfig.decorateRowAtIndex(dataRow, index, $row), columns.forEach(function (column) {\n classes = [\"data-list-spot__row__column\"];\n key = column.fieldName;\n classes.push(key);\n style = column.className ? \" \" + column.className : '', classes.push(style);\n $header = $('.data-list-spot__headers__header.' + key, $dataList);\n hideOnMobile = $header.hasClass('hide-on-mobile');\n hideOnTablet = $header.hasClass('hide-on-tablet');\n value = dataRow.hasOwnProperty(key) && dataRow[key] ? dataRow[key] : '';\n if (value instanceof Array) {\n if (value.length > 0 && !(value[0] instanceof String)) {\n var tmpValue = [];\n value.forEach(function (arrEntry) {\n for (var arrKey in arrEntry) {\n tmpValue.push(\"

    \").concat(arrEntry[arrKey], \"

    \"));\n }\n });\n value = tmpValue.join('');\n } else {\n value = '

    ' + value.join('

    ') + '

    ';\n }\n }\n if (hideOnMobile) {\n classes.push('hide-on-mobile');\n }\n if (hideOnTablet) {\n classes.push('hide-on-tablet');\n }\n try {\n $row.append($('
    ' + value + '
    '));\n } catch (e) {\n $row.append($('
    ' + value + '
    '));\n }\n });\n if ($dataList.hasClass('toggle-billto')) {\n // SHOULD BE MOVED TO DATASET PROVIDED BY BACKEND\n dataRow.links = [{\n href: $dataList.data('endpoint').replace('$accountNo', dataRow.accountNo),\n method: \"ws-refresh\",\n rel: \"self\"\n }];\n }\n if ($dataList.hasClass('toggle-sellto')) {\n // SHOULD BE MOVED TO DATASET PROVIDED BY BACKEND\n dataRow.links = [{\n href: \"$billToEndpoint/\" + dataRow.accountNo,\n method: \"ws\",\n rel: \"self\"\n }];\n }\n if (dataRow.links && dataRow.links.length > 0) {\n $row.addClass('clickable');\n $('.data-list-spot__row__column', $row).addClass('clickable');\n $('.data-list-spot__row__column', $row).click({\n row: dataRow\n }, function (ev) {\n if (!$(this).hasClass('clickable') || $(this).hasClass('checkbox') || $(this).hasClass('printable')) return;\n if (isCollapsed($dataList)) updateSelectedCollapsedValue($dataList, ev.data.row);\n if (!gotoDetailLink(ev.data.row)) {\n setFilterValue($dataList, ev.data.row);\n }\n });\n }\n return $row;\n },\n setDefaultValue = function setDefaultValue($dataList, data) {\n var items = getItems(data);\n items.forEach(function (row) {\n if (row.hasOwnProperty('_selected') && row._selected) {\n updateSelectedCollapsedValue($dataList, row);\n }\n });\n },\n gotoDetailLink = function gotoDetailLink(dataRow) {\n var detailsLink = dataRow.links[0].href,\n method = dataRow.links[0].method;\n if (detailsLink) {\n if (method.toLowerCase().substr(0, 2) == \"ws\") {\n var $dataListsAffected = $('.data-list-spot:not(.collapsed)');\n $dataListsAffected.each(function () {\n // Set all data lists on page to show loader while waiting for webservice\n var config = getConfigForDataList($(this));\n DGS.Event.getInstance().trigger(DGS.DataListSpotConfig.Event.DATA_LIST_PRE_SEARCH, config.endpoint);\n });\n if (detailsLink.indexOf('$billToEndpoint') !== -1) {\n // HARDCODED for toggle-sellto\n var $toggleBillTo = $('.toggle-billto'),\n toggleBillToConfig = $toggleBillTo.length ? getConfigForDataList($toggleBillTo) : null;\n if (toggleBillToConfig !== null) {\n toggleBillToConfig.data.items.forEach(function (item) {\n if (item._selected) {\n detailsLink = detailsLink.replace('$billToEndpoint', $toggleBillTo.data('endpoint')).replace('$accountNo', item.accountNo);\n }\n });\n }\n }\n // DO ajax and then refresh\n $.ajax(detailsLink, {\n complete: function complete() {\n if (method.toLowerCase() === \"ws-refresh\") {\n window.location.reload(true);\n } else {\n $dataListsAffected.each(function () {\n // refresh data for all data lists on page\n var config = getConfigForDataList($(this));\n DGS.Event.getInstance().trigger(DGS.DataListSpotConfig.Event.DATA_SEARCH_QUERY_READY, config.endpoint, null, null, {}, 'or', '');\n });\n }\n }\n });\n return true;\n }\n window.location = detailsLink;\n return true;\n }\n return false;\n },\n updateSelectedCollapsedValue = function updateSelectedCollapsedValue($dataList, dataRow) {\n var labelFormat = $dataList.attr('data-label-format'),\n s;\n for (s in dataRow) {\n if (labelFormat.indexOf('$' + s) != -1) {\n labelFormat = labelFormat.replace('$' + s, dataRow[s]);\n }\n }\n $('.data-list-selected-value', $dataList).text(labelFormat);\n $('.component-content', $dataList).removeClass('open');\n },\n setFilterValue = function setFilterValue($dataList, dataRow) {\n var detailsFilterField, detailsFilterValue;\n if (dataRow.links && dataRow.links.length > 0) {\n detailsFilterField = dataRow.links[0].filterField;\n detailsFilterValue = dataRow.links[0].filterValue;\n if (detailsFilterField && detailsFilterValue) {\n DGS.Event.getInstance().trigger(DataListSpotConfig.Event.DATA_SEARCH_SET_GLOBAL_FILTER, detailsFilterField, detailsFilterValue);\n return true;\n }\n }\n return false;\n },\n buildRows = function buildRows($dataList, data, $container) {\n var rowCounter = $('.data-list-spot__row', $dataList).length,\n initialRowCounter = rowCounter,\n config = getConfigForDataList($dataList),\n maxNumRows = config.maxCount || -1,\n hasMoreRows = false,\n items = getItems(data);\n items.forEach(function (row) {\n if (maxNumRows == -1 || rowCounter < maxNumRows) {\n $container.append(buildRow($dataList, row, rowCounter++));\n } else {\n hasMoreRows = true;\n }\n });\n showRows($('.data-list-spot__row:nth-child(n+' + initialRowCounter + ')', $dataList));\n return !hasMoreRows;\n },\n getItems = function getItems(data) {\n if (data.hasOwnProperty(\"Items\")) {\n data.items = data.Items;\n }\n if (data.hasOwnProperty(\"items\")) {\n return data.items;\n }\n return [];\n },\n isCollapsed = function isCollapsed($dataList) {\n return $dataList.hasClass('collapsed');\n },\n isSearchable = function isSearchable($dataList) {\n return $dataList.hasClass('searchable');\n },\n clearRows = function clearRows($dataList) {\n $('.remove-on-search', $dataList).remove();\n },\n decorateCells = function decorateCells($dataList) {\n // ADD TEASER FUNCTIONALITY\n if (!isCollapsed($dataList)) {\n $(\".data-list-spot__row__column\", $dataList).off('mouseover');\n $(\".data-list-spot__row__column\", $dataList).on('mouseover', function () {\n var $this = $(this);\n var $element = $('span', $this);\n var $c = $element.clone().css({\n display: 'inline',\n width: 'auto',\n visibility: 'hidden'\n }).appendTo('body');\n if ($c.width() > $element.width()) {\n $this.addClass('show-full');\n }\n $c.remove();\n });\n $(\".data-list-spot__row__column\", $dataList).off('mouseout');\n $(\".data-list-spot__row__column\", $dataList).on('mouseout', function () {\n var $this = $(this);\n $this.removeClass('show-full');\n });\n }\n $(\".data-list-spot__row__cell .data-list-spot__row__column.teaser\", $dataList).hover(function () {\n $(this).addClass('show-full');\n }, function () {\n $(this).removeClass('show-full');\n });\n\n // TRACKING CELLS\n $(\".data-list-spot__row__cell .data-list-spot__row__column.tracking\", $dataList).each(function () {\n var $this = $(this),\n text = $this.text();\n if (text.trim().substr(0, 4) == 'http') {\n $this.addClass('non-clickable');\n $this.removeClass('clickable');\n $this.html(' ');\n $this.click(function (e) {\n var href = $('a', $(this)).attr('href'),\n target = $('a', $(this)).attr('target');\n if (target == '_blank') {\n window.open(href);\n } else {\n window.location = href;\n }\n });\n }\n });\n // TRACKING CELLS\n\n // MULTI TRACKING CELLS\n $(\".data-list-spot__row__cell .data-list-spot__row__column.packing-slips\", $dataList).each(function () {\n var $this = $(this),\n $packingSlipNos = $('.packingSlipNo', $this),\n $trackingUrls = $('.trackingUrl', $this);\n $this.addClass('non-clickable');\n $this.removeClass('clickable');\n var packingSlipNos = [];\n $packingSlipNos.each(function () {\n packingSlipNos.push($(this).text());\n });\n $trackingUrls.each(function () {\n var $this = $(this),\n text = $this.text();\n $this.html('' + packingSlipNos.shift() + '');\n });\n });\n // TRACKING CELLS\n },\n addViewAllComponent = function addViewAllComponent($dataList, $container) {\n var config = getConfigForDataList($dataList),\n label = config.readMoreText || \"View all\",\n href = config.readMoreLink || \"#\";\n $('.data-list-spot__view-all-container', $dataList).remove();\n $container.append('
    ' + label + '
    ');\n setTimeout(function () {\n showContent($('.data-list-spot__view-all-container div', $container));\n }, 200);\n },\n addLoadMoreComponent = function addLoadMoreComponent(endpoint, $dataList, data, $container) {\n var config = getConfigForDataList($dataList),\n pagination = data.pagination,\n paginationLinks = pagination != null ? pagination.links : [],\n nextLink,\n link,\n i,\n countPaginationLinks = paginationLinks.length,\n loadMoreLabel = config.loadMoreText || \"Load more\",\n loadMoreLink,\n sortObj,\n orderBy;\n $('.data-list-spot__load-more-container', $dataList).remove();\n for (i = 0; i < countPaginationLinks; i++) {\n link = paginationLinks[i];\n if (link.rel == \"next\") {\n nextLink = link;\n }\n }\n if (nextLink != null && config['maxCount'] == \"\") {\n loadMoreLink = nextLink.href;\n sortObj = getSortFromDataList($dataList);\n if (sortObj.fieldName && sortObj.sortType) {\n orderBy = DataListSpotConfig.resolveSortForField(sortObj.fieldName, sortObj.sortType);\n }\n if (!orderBy && config['sortOrder']) {\n orderBy = 'orderby=' + config['sortOrder'];\n }\n if (orderBy) loadMoreLink += loadMoreLink.indexOf('?') !== -1 ? '&' + orderBy : '?' + orderBy;\n $container.append('
    ');\n showContent($('.data-list-spot__load-more-container', $container));\n $('.data-list-spot__load-more-container a', $container).click(function (event) {\n event.preventDefault();\n buildLoader($dataList);\n _requestResultData($dataList, endpoint, $(this).attr('href'), false, 0);\n });\n }\n },\n buildLoader = function buildLoader($dataList) {\n $('.data-list-spot__load-more-container', $dataList).remove();\n $('.data-list-spot__load-container', $dataList).remove();\n $(\".component-content\", $dataList).append('
    ');\n $('.data-list-spot__load-container', $dataList).append('
    ');\n showContent($('.data-list-spot__load-container', $dataList));\n },\n removeLoader = function removeLoader($dataList) {\n $('.data-list-spot__load-container', $dataList).remove();\n },\n addEmptyResultComponent = function addEmptyResultComponent($dataList, $container) {\n var config = getConfigForDataList($dataList),\n label = config['emptyResultText'] || \"No records match your search.\";\n $('.data-list-spot__empty_result-container', $dataList).remove();\n $container.append('
    ' + label + '
    ');\n showContent($('.data-list-spot__empty_result-container', $container));\n },\n getConfiguredDateRange = function getConfiguredDateRange($dataList) {\n var toDate = new Date(),\n fromDate = new Date(),\n config = getConfigForDataList($dataList),\n dateRange = config['dateRange'] ? config['dateRange'] : \"60d\";\n if (dateRange.indexOf('m') > -1) {\n fromDate.setMonth(fromDate.getMonth() - parseInt(dateRange));\n } else if (dateRange.indexOf('y') > -1) {\n fromDate.setYear(fromDate.getYear() - parseInt(dateRange));\n } else {\n fromDate.setDate(fromDate.getDate() - parseInt(dateRange));\n }\n return {\n from: fromDate,\n to: toDate\n };\n },\n getDataForConfiguredDateRange = function getDataForConfiguredDateRange($dataList, endpoint) {\n DGS.Event.getInstance().trigger(DataListSpotConfig.Event.DATA_SEARCH_QUERY_READY, endpoint, null, null, {}, 'and', null);\n },\n saveResultUrlOnDataList = function saveResultUrlOnDataList($dataList, responseUrl) {\n $dataList.data(consts.DATA_RESPONSE_URL, responseUrl);\n },\n getResultUrlFromDataListWithSort = function getResultUrlFromDataListWithSort($dataList, fieldName, sortType) {\n saveSortOnDataList($dataList, fieldName, sortType);\n var responseUrl = $dataList.data(consts.DATA_RESPONSE_URL),\n orderBy;\n if (responseUrl !== null) {\n orderBy = DataListSpotConfig.resolveSortForField(fieldName, sortType);\n return responseUrl.indexOf('?') !== -1 ? responseUrl + '&' + orderBy : responseUrl + '?' + orderBy;\n }\n },\n getSortFromDataList = function getSortFromDataList($dataList) {\n return {\n fieldName: $dataList.data(consts.DATA_FIELD_NAME),\n sortType: $dataList.data(consts.DATA_SORT_ORDER)\n };\n },\n saveSortOnDataList = function saveSortOnDataList($dataList, fieldName, sortType) {\n $dataList.data(consts.DATA_FIELD_NAME, fieldName);\n $dataList.data(consts.DATA_SORT_ORDER, sortType);\n },\n clearSort = function clearSort($dataList) {\n var sortObj = getSortFromDataList($dataList);\n if (sortObj.fieldName && sortObj.sortType) {\n $('.data-list-spot__headers__header.' + sortObj.fieldName, $dataList).removeClass(sortObj.sortType);\n }\n $dataList.removeData(consts.DATA_FIELD_NAME);\n $dataList.removeData(consts.DATA_SORT_ORDER);\n };\n DGS.OnLoad.getInstance().register(initDataListSpot);\n DGS.Event.getInstance().on('re-init-data-list-spot', initDataListSpot);\n DGS.Event.getInstance().on(DataListSpotConfig.Event.DATA_REQUEST_INITIAL_BUILD_QUERY, function ($dataListSearchSpot, endpoint) {\n DataListSpotConfig.initialRequests[endpoint] = {\n queryType: DataListSpotConfig.Event.DATA_REQUEST_BUILD_QUERY,\n $searchSpot: $dataListSearchSpot\n };\n DGS.Event.getInstance().trigger(DataListSpotConfig.Event.DATA_REQUEST_INITIAL_RECEIVED, endpoint);\n });\n DGS.Event.getInstance().on(DataListSpotConfig.Event.DATA_REQUEST_INITIAL_BUILD_ADV_QUERY, function ($dataListSearchSpot, endpoint) {\n DataListSpotConfig.initialRequests[endpoint] = {\n queryType: DataListSpotConfig.Event.DATA_REQUEST_BUILD_ADV_QUERY,\n $searchSpot: $dataListSearchSpot\n };\n DGS.Event.getInstance().trigger(DataListSpotConfig.Event.DATA_REQUEST_INITIAL_RECEIVED, endpoint);\n });\n DGS.DataListSpotConfig = DataListSpotConfig;\n})(jQuery, window.DGS);\n(function ($) {\n var visualRowIndex = -1,\n $prevRow = null;\n window.DGS.DataListSpotConfig.resolveSortForField = function (fieldName, sortType) {\n var sortOrder = sortType == 'ordered-asc' ? ' asc' : ' desc';\n return 'orderby=' + fieldName + sortOrder;\n };\n window.DGS.DataListSpotConfig.decorateRowAtIndex = function (data, index, $row) {\n var oddEven,\n type,\n oddClass = \"data-list-spot__row-odd\",\n evenClass = \"data-list-spot__row-even\";\n if (!data.attachedToLineId) {\n oddEven = index % 2 == 0 ? evenClass : oddClass;\n } else {\n if (index == 0) {\n visualRowIndex = -1;\n $prevRow = null;\n }\n if (data.attachedToLineId == 0) {\n visualRowIndex++;\n type = \"main-order\";\n if ($prevRow) $prevRow.addClass('last-attached-order-line');\n } else {\n type = \"attached-order\";\n }\n oddEven = visualRowIndex % 2 == 0 ? evenClass : oddClass;\n }\n $row.addClass(oddEven);\n $row.addClass(type);\n $prevRow = $row;\n };\n window.DGS.DataListSpotConfig.fieldInfo[\"id\"] = {\n IsKey: true\n };\n window.DGS.DataListSpotConfig.fieldInfo[\"searchId\"] = {\n IsFilterable: true,\n IsSearchable: true,\n IsSortable: true\n };\n window.DGS.DataListSpotConfig.fieldInfo[\"companyId\"] = {\n IsFilterable: true,\n IsSearchable: true,\n IsSortable: true\n };\n window.DGS.DataListSpotConfig.fieldInfo[\"accountId\"] = {\n IsFilterable: true,\n IsSearchable: true,\n IsSortable: true\n };\n window.DGS.DataListSpotConfig.fieldInfo[\"orderNumber\"] = {\n IsFilterable: true,\n IsSearchable: true,\n IsSortable: true\n };\n window.DGS.DataListSpotConfig.fieldInfo[\"customerReferenceNumber\"] = {\n IsFilterable: true,\n IsSearchable: true,\n IsSortable: true\n };\n window.DGS.DataListSpotConfig.fieldInfo[\"orderDateUtc\"] = {\n IsFilterable: true,\n IsSortable: true\n };\n window.DGS.DataListSpotConfig.fieldInfo[\"orderDateFormatted\"] = {\n IsFilterable: true,\n IsSortable: true\n };\n window.DGS.DataListSpotConfig.fieldInfo[\"status\"] = {\n IsFilterable: true,\n IsSearchable: true\n };\n window.DGS.DataListSpotConfig.fieldInfo[\"endUsers\"] = {\n IsFilterable: true,\n IsSearchable: true,\n IsCollection: true\n };\n window.DGS.DataListSpotConfig.fieldInfo[\"descriptions\"] = {\n IsFilterable: true,\n IsSearchable: true,\n IsCollection: true\n };\n window.DGS.DataListSpotConfig.fieldInfo[\"partNos\"] = {\n IsFilterable: true,\n IsSearchable: true,\n IsCollection: true\n };\n window.DGS.DataListSpotConfig.fieldInfo[\"billToId\"] = {\n IsFilterable: true,\n IsSearchable: true,\n IsSortable: true\n };\n window.DGS.DataListSpotConfig.fieldInfo[\"sellToId\"] = {\n IsFilterable: true,\n IsSearchable: true,\n IsSortable: true\n };\n window.DGS.DataListSpotConfig.fieldInfo[\"type\"] = {\n IsFilterable: true,\n IsSearchable: true\n };\n window.DGS.DataListSpotConfig.fieldInfo[\"created\"] = {\n IsFilterable: true,\n IsSortable: true\n };\n window.DGS.DataListSpotConfig.fieldInfo[\"validTo\"] = {\n IsFilterable: true,\n IsSortable: true\n };\n window.DGS.DataListSpotConfig.fieldInfo[\"data\"] = {};\n window.DGS.DataListSpotConfig.fieldInfo[\"searchPeriodFrom\"] = {\n IsFilterable: true,\n IsSortable: true\n };\n window.DGS.DataListSpotConfig.fieldInfo[\"searchPeriodTo\"] = {\n IsFilterable: true,\n IsSortable: true\n };\n window.DGS.DataListSpotConfig.fieldInfo[\"trackingNumber\"] = {\n IsFilterable: true,\n IsSortable: true\n };\n window.DGS.DataListSpotConfig.fieldInfo[\"shipmentDate\"] = {\n IsFilterable: true,\n IsSortable: true\n };\n window.DGS.DataListSpotConfig.fieldInfo[\"documentNumber\"] = {\n IsFilterable: true,\n IsSortable: true\n };\n window.DGS.DataListSpotConfig.fieldInfo[\"serialNumbers\"] = {\n IsFilterable: true,\n IsCollection: true\n };\n window.DGS.DataListSpotConfig.fieldInfo[\"accountName\"] = {\n IsSortable: true\n };\n window.DGS.DataListSpotConfig.fieldInfo[\"accountNo\"] = {\n IsSortable: true\n };\n DGS.Event.getInstance().on(window.DGS.DataListSpotConfig.Event.DATA_LIST_BUILT, function () {\n // MULTI TRACKING\n\n $('.data-list-spot__row__column.checkbox').each(function () {\n var extendable = false;\n var childSpan = $(this).children('span').text('');\n if ($(this).data('value') == 'True') {\n childSpan.append('');\n extendable = true;\n }\n if (extendable) {\n $(this).closest('.data-list-spot').data('isextendable', extendable);\n }\n });\n $('.data-list-spot__row').each(function () {\n var expireDate = $(this).children('.ExpiresDate').data('value');\n //Get 1 day in milliseconds\n var one_day = 1000 * 60 * 60 * 24;\n var now = new Date();\n var diff = new Date(expireDate).getTime() - now.getTime();\n if (diff <= 14 * one_day) {\n $(this).addClass('expiring');\n $(this).children('.data-list-spot__row__column').each(function () {\n $(this).addClass('expiring');\n });\n }\n });\n var baseServiceURL = \"/webservices/Warranties.svc\";\n $('.data-list-spot__row__column.printable').each(function () {\n var childSpan = $(this).children('span').text('');\n if ($(this).data('value') == 1) {\n childSpan.append('');\n }\n });\n $('.data-list-spot__row__column.hascoverage').each(function () {\n var childSpan = $(this).children('span');\n if ($(this).data('value') == 'NO' && childSpan.children().length === 0) {\n childSpan.append('');\n } else if ($(this).data('value') == 'YES' && childSpan.children().length === 0) {\n childSpan.append('');\n }\n });\n $('.data-list-spot').on('click', function (e) {\n if ($(e.target).is('input.selectable')) {\n e.stopImmediatePropagation();\n }\n if ($(e.target).is('img') && $(e.target).hasClass('printable')) {\n e.preventDefault();\n e.stopImmediatePropagation();\n var serviceCard = $(e.target).closest('.data-list-spot__row').children('.serviceCardNo:first').data('value');\n if (serviceCard) {\n var resultUrl = baseServiceURL + \"/\" + \"requestpdf\" + \"/\" + serviceCard;\n var attempt = 10;\n attemptPDF(attempt, resultUrl, serviceCard);\n }\n return false;\n }\n });\n function attemptPDF(attempt, url, serviceCard) {\n if (attempt < 0) return false;\n if (attempt === 0) getPDF(serviceCard);\n $.ajax({\n url: url,\n type: 'GET'\n }).then(function (data, textState, jqXHR) {\n switch (jqXHR.status) {\n case 201:\n getPDF(serviceCard);\n break;\n case 202:\n setTimeout(getPDF(serviceCard), 500);\n break;\n default:\n return false;\n }\n }).then(function (data, textState, jqXHR) {\n return false;\n });\n return false;\n }\n function getPDF(serviceCard) {\n var resultUrl = \"/webservices/Warranties.svc\" + \"/\" + \"RequestPDFCertificate\" + \"/\" + serviceCard;\n window.location = resultUrl;\n }\n });\n})(jQuery);","/*!\r\n * jQuery Cycle Plugin (with Transition Definitions)\r\n * Examples and documentation at: http://jquery.malsup.com/cycle/\r\n * Copyright (c) 2007-2013 M. Alsup\r\n * Version: 3.0.3 (11-JUL-2013)\r\n * Dual licensed under the MIT and GPL licenses.\r\n * http://jquery.malsup.com/license.html\r\n * Requires: jQuery v1.7.1 or later\r\n */\n;\n(function ($, undefined) {\n \"use strict\";\n\n var ver = '3.0.3';\n function debug(s) {\n if ($.fn.cycle.debug) log(s);\n }\n function log() {\n /*global console */\n if (window.console && console.log) console.log('[cycle] ' + Array.prototype.join.call(arguments, ' '));\n }\n $.expr[':'].paused = function (el) {\n return el.cyclePause;\n };\n\n // the options arg can be...\n // a number - indicates an immediate transition should occur to the given slide index\n // a string - 'pause', 'resume', 'toggle', 'next', 'prev', 'stop', 'destroy' or the name of a transition effect (ie, 'fade', 'zoom', etc)\n // an object - properties to control the slideshow\n //\n // the arg2 arg can be...\n // the name of an fx (only used in conjunction with a numeric value for 'options')\n // the value true (only used in first arg == 'resume') and indicates\n //\t that the resume should occur immediately (not wait for next timeout)\n\n $.fn.cycle = function (options, arg2) {\n var o = {\n s: this.selector,\n c: this.context\n };\n\n // in 1.3+ we can fix mistakes with the ready state\n if (this.length === 0 && options != 'stop') {\n if (!$.isReady && o.s) {\n log('DOM not ready, queuing slideshow');\n $(function () {\n $(o.s, o.c).cycle(options, arg2);\n });\n return this;\n }\n // is your DOM ready? http://docs.jquery.com/Tutorials:Introducing_$(document).ready()\n log('terminating; zero elements found by selector' + ($.isReady ? '' : ' (DOM not ready)'));\n return this;\n }\n\n // iterate the matched nodeset\n return this.each(function () {\n var opts = handleArguments(this, options, arg2);\n if (opts === false) return;\n opts.updateActivePagerLink = opts.updateActivePagerLink || $.fn.cycle.updateActivePagerLink;\n\n // stop existing slideshow for this container (if there is one)\n if (this.cycleTimeout) clearTimeout(this.cycleTimeout);\n this.cycleTimeout = this.cyclePause = 0;\n this.cycleStop = 0; // issue #108\n\n var $cont = $(this);\n var $slides = opts.slideExpr ? $(opts.slideExpr, this) : $cont.children();\n var els = $slides.get();\n if (els.length < 2) {\n log('terminating; too few slides: ' + els.length);\n return;\n }\n var opts2 = buildOptions($cont, $slides, els, opts, o);\n if (opts2 === false) return;\n var startTime = opts2.continuous ? 10 : getTimeout(els[opts2.currSlide], els[opts2.nextSlide], opts2, !opts2.backwards);\n\n // if it's an auto slideshow, kick it off\n if (startTime) {\n startTime += opts2.delay || 0;\n if (startTime < 10) startTime = 10;\n debug('first timeout: ' + startTime);\n this.cycleTimeout = setTimeout(function () {\n go(els, opts2, 0, !opts.backwards);\n }, startTime);\n }\n });\n };\n function triggerPause(cont, byHover, onPager) {\n var opts = $(cont).data('cycle.opts');\n if (!opts) return;\n var paused = !!cont.cyclePause;\n if (paused && opts.paused) opts.paused(cont, opts, byHover, onPager);else if (!paused && opts.resumed) opts.resumed(cont, opts, byHover, onPager);\n }\n\n // process the args that were passed to the plugin fn\n function handleArguments(cont, options, arg2) {\n if (cont.cycleStop === undefined) cont.cycleStop = 0;\n if (options === undefined || options === null) options = {};\n if (options.constructor == String) {\n switch (options) {\n case 'destroy':\n case 'stop':\n var opts = $(cont).data('cycle.opts');\n if (!opts) return false;\n cont.cycleStop++; // callbacks look for change\n if (cont.cycleTimeout) clearTimeout(cont.cycleTimeout);\n cont.cycleTimeout = 0;\n if (opts.elements) $(opts.elements).stop();\n $(cont).removeData('cycle.opts');\n if (options == 'destroy') destroy(cont, opts);\n return false;\n case 'toggle':\n cont.cyclePause = cont.cyclePause === 1 ? 0 : 1;\n checkInstantResume(cont.cyclePause, arg2, cont);\n triggerPause(cont);\n return false;\n case 'pause':\n cont.cyclePause = 1;\n triggerPause(cont);\n return false;\n case 'resume':\n cont.cyclePause = 0;\n checkInstantResume(false, arg2, cont);\n triggerPause(cont);\n return false;\n case 'prev':\n case 'next':\n opts = $(cont).data('cycle.opts');\n if (!opts) {\n log('options not found, \"prev/next\" ignored');\n return false;\n }\n if (typeof arg2 == 'string') opts.oneTimeFx = arg2;\n $.fn.cycle[options](opts);\n return false;\n default:\n options = {\n fx: options\n };\n }\n return options;\n } else if (options.constructor == Number) {\n // go to the requested slide\n var num = options;\n options = $(cont).data('cycle.opts');\n if (!options) {\n log('options not found, can not advance slide');\n return false;\n }\n if (num < 0 || num >= options.elements.length) {\n log('invalid slide index: ' + num);\n return false;\n }\n options.nextSlide = num;\n if (cont.cycleTimeout) {\n clearTimeout(cont.cycleTimeout);\n cont.cycleTimeout = 0;\n }\n if (typeof arg2 == 'string') options.oneTimeFx = arg2;\n go(options.elements, options, 1, num >= options.currSlide);\n return false;\n }\n return options;\n function checkInstantResume(isPaused, arg2, cont) {\n if (!isPaused && arg2 === true) {\n // resume now!\n var options = $(cont).data('cycle.opts');\n if (!options) {\n log('options not found, can not resume');\n return false;\n }\n if (cont.cycleTimeout) {\n clearTimeout(cont.cycleTimeout);\n cont.cycleTimeout = 0;\n }\n go(options.elements, options, 1, !options.backwards);\n }\n }\n }\n function removeFilter(el, opts) {\n if (!$.support.opacity && opts.cleartype && el.style.filter) {\n try {\n el.style.removeAttribute('filter');\n } catch (smother) {} // handle old opera versions\n }\n }\n\n // unbind event handlers\n function destroy(cont, opts) {\n if (opts.next) $(opts.next).unbind(opts.prevNextEvent);\n if (opts.prev) $(opts.prev).unbind(opts.prevNextEvent);\n if (opts.pager || opts.pagerAnchorBuilder) $.each(opts.pagerAnchors || [], function () {\n this.unbind().remove();\n });\n opts.pagerAnchors = null;\n $(cont).unbind('mouseenter.cycle mouseleave.cycle');\n if (opts.destroy)\n // callback\n opts.destroy(opts);\n }\n\n // one-time initialization\n function buildOptions($cont, $slides, els, options, o) {\n var startingSlideSpecified;\n // support metadata plugin (v1.0 and v2.0)\n var opts = $.extend({}, $.fn.cycle.defaults, options || {}, $.metadata ? $cont.metadata() : $.meta ? $cont.data() : {});\n var meta = $.isFunction($cont.data) ? $cont.data(opts.metaAttr) : null;\n if (meta) opts = $.extend(opts, meta);\n if (opts.autostop) opts.countdown = opts.autostopCount || els.length;\n var cont = $cont[0];\n $cont.data('cycle.opts', opts);\n opts.$cont = $cont;\n opts.stopCount = cont.cycleStop;\n opts.elements = els;\n opts.before = opts.before ? [opts.before] : [];\n opts.after = opts.after ? [opts.after] : [];\n\n // push some after callbacks\n if (!$.support.opacity && opts.cleartype) opts.after.push(function () {\n removeFilter(this, opts);\n });\n if (opts.continuous) opts.after.push(function () {\n go(els, opts, 0, !opts.backwards);\n });\n saveOriginalOpts(opts);\n\n // clearType corrections\n if (!$.support.opacity && opts.cleartype && !opts.cleartypeNoBg) clearTypeFix($slides);\n\n // container requires non-static position so that slides can be position within\n if ($cont.css('position') == 'static') $cont.css('position', 'relative');\n if (opts.width) $cont.width(opts.width);\n if (opts.height && opts.height != 'auto') $cont.height(opts.height);\n if (opts.startingSlide !== undefined) {\n opts.startingSlide = parseInt(opts.startingSlide, 10);\n if (opts.startingSlide >= els.length || opts.startSlide < 0) opts.startingSlide = 0; // catch bogus input\n else startingSlideSpecified = true;\n } else if (opts.backwards) opts.startingSlide = els.length - 1;else opts.startingSlide = 0;\n\n // if random, mix up the slide array\n if (opts.random) {\n opts.randomMap = [];\n for (var i = 0; i < els.length; i++) opts.randomMap.push(i);\n opts.randomMap.sort(function (a, b) {\n return Math.random() - 0.5;\n });\n if (startingSlideSpecified) {\n // try to find the specified starting slide and if found set start slide index in the map accordingly\n for (var cnt = 0; cnt < els.length; cnt++) {\n if (opts.startingSlide == opts.randomMap[cnt]) {\n opts.randomIndex = cnt;\n }\n }\n } else {\n opts.randomIndex = 1;\n opts.startingSlide = opts.randomMap[1];\n }\n } else if (opts.startingSlide >= els.length) opts.startingSlide = 0; // catch bogus input\n opts.currSlide = opts.startingSlide || 0;\n var first = opts.startingSlide;\n\n // set position and zIndex on all the slides\n $slides.css({\n position: 'absolute',\n top: 0,\n left: 0\n }).hide().each(function (i) {\n var z;\n if (opts.backwards) z = first ? i <= first ? els.length + (i - first) : first - i : els.length - i;else z = first ? i >= first ? els.length - (i - first) : first - i : els.length - i;\n $(this).css('z-index', z);\n });\n\n // make sure first slide is visible\n $(els[first]).css('opacity', 1).show(); // opacity bit needed to handle restart use case\n removeFilter(els[first], opts);\n\n // stretch slides\n if (opts.fit) {\n if (!opts.aspect) {\n if (opts.width) $slides.width(opts.width);\n if (opts.height && opts.height != 'auto') $slides.height(opts.height);\n } else {\n $slides.each(function () {\n var $slide = $(this);\n var ratio = opts.aspect === true ? $slide.width() / $slide.height() : opts.aspect;\n if (opts.width && $slide.width() != opts.width) {\n $slide.width(opts.width);\n $slide.height(opts.width / ratio);\n }\n if (opts.height && $slide.height() < opts.height) {\n $slide.height(opts.height);\n $slide.width(opts.height * ratio);\n }\n });\n }\n }\n if (opts.center && (!opts.fit || opts.aspect)) {\n $slides.each(function () {\n var $slide = $(this);\n $slide.css({\n \"margin-left\": opts.width ? (opts.width - $slide.width()) / 2 + \"px\" : 0,\n \"margin-top\": opts.height ? (opts.height - $slide.height()) / 2 + \"px\" : 0\n });\n });\n }\n if (opts.center && !opts.fit && !opts.slideResize) {\n $slides.each(function () {\n var $slide = $(this);\n $slide.css({\n \"margin-left\": opts.width ? (opts.width - $slide.width()) / 2 + \"px\" : 0,\n \"margin-top\": opts.height ? (opts.height - $slide.height()) / 2 + \"px\" : 0\n });\n });\n }\n\n // stretch container\n var reshape = (opts.containerResize || opts.containerResizeHeight) && $cont.innerHeight() < 1;\n if (reshape) {\n // do this only if container has no size http://tinyurl.com/da2oa9\n var maxw = 0,\n maxh = 0;\n for (var j = 0; j < els.length; j++) {\n var $e = $(els[j]),\n e = $e[0],\n w = $e.outerWidth(),\n h = $e.outerHeight();\n if (!w) w = e.offsetWidth || e.width || $e.attr('width');\n if (!h) h = e.offsetHeight || e.height || $e.attr('height');\n maxw = w > maxw ? w : maxw;\n maxh = h > maxh ? h : maxh;\n }\n if (opts.containerResize && maxw > 0 && maxh > 0) $cont.css({\n width: maxw + 'px',\n height: maxh + 'px'\n });\n if (opts.containerResizeHeight && maxh > 0) $cont.css({\n height: maxh + 'px'\n });\n }\n var pauseFlag = false; // https://github.com/malsup/cycle/issues/44\n if (opts.pause) $cont.bind('mouseenter.cycle', function () {\n pauseFlag = true;\n this.cyclePause++;\n triggerPause(cont, true);\n }).bind('mouseleave.cycle', function () {\n if (pauseFlag) this.cyclePause--;\n triggerPause(cont, true);\n });\n if (supportMultiTransitions(opts) === false) return false;\n\n // apparently a lot of people use image slideshows without height/width attributes on the images.\n // Cycle 2.50+ requires the sizing info for every slide; this block tries to deal with that.\n var requeue = false;\n options.requeueAttempts = options.requeueAttempts || 0;\n $slides.each(function () {\n // try to get height/width of each slide\n var $el = $(this);\n this.cycleH = opts.fit && opts.height ? opts.height : $el.height() || this.offsetHeight || this.height || $el.attr('height') || 0;\n this.cycleW = opts.fit && opts.width ? opts.width : $el.width() || this.offsetWidth || this.width || $el.attr('width') || 0;\n if ($el.is('img')) {\n var loading = this.cycleH === 0 && this.cycleW === 0 && !this.complete;\n // don't requeue for images that are still loading but have a valid size\n if (loading) {\n if (o.s && opts.requeueOnImageNotLoaded && ++options.requeueAttempts < 100) {\n // track retry count so we don't loop forever\n log(options.requeueAttempts, ' - img slide not loaded, requeuing slideshow: ', this.src, this.cycleW, this.cycleH);\n setTimeout(function () {\n $(o.s, o.c).cycle(options);\n }, opts.requeueTimeout);\n requeue = true;\n return false; // break each loop\n } else {\n log('could not determine size of image: ' + this.src, this.cycleW, this.cycleH);\n }\n }\n }\n return true;\n });\n if (requeue) return false;\n opts.cssBefore = opts.cssBefore || {};\n opts.cssAfter = opts.cssAfter || {};\n opts.cssFirst = opts.cssFirst || {};\n opts.animIn = opts.animIn || {};\n opts.animOut = opts.animOut || {};\n $slides.not(':eq(' + first + ')').css(opts.cssBefore);\n $($slides[first]).css(opts.cssFirst);\n if (opts.timeout) {\n opts.timeout = parseInt(opts.timeout, 10);\n // ensure that timeout and speed settings are sane\n if (opts.speed.constructor == String) opts.speed = $.fx.speeds[opts.speed] || parseInt(opts.speed, 10);\n if (!opts.sync) opts.speed = opts.speed / 2;\n var buffer = opts.fx == 'none' ? 0 : opts.fx == 'shuffle' ? 500 : 250;\n while (opts.timeout - opts.speed < buffer)\n // sanitize timeout\n opts.timeout += opts.speed;\n }\n if (opts.easing) opts.easeIn = opts.easeOut = opts.easing;\n if (!opts.speedIn) opts.speedIn = opts.speed;\n if (!opts.speedOut) opts.speedOut = opts.speed;\n opts.slideCount = els.length;\n opts.currSlide = opts.lastSlide = first;\n if (opts.random) {\n if (++opts.randomIndex == els.length) opts.randomIndex = 0;\n opts.nextSlide = opts.randomMap[opts.randomIndex];\n } else if (opts.backwards) opts.nextSlide = opts.startingSlide === 0 ? els.length - 1 : opts.startingSlide - 1;else opts.nextSlide = opts.startingSlide >= els.length - 1 ? 0 : opts.startingSlide + 1;\n\n // run transition init fn\n if (!opts.multiFx) {\n var init = $.fn.cycle.transitions[opts.fx];\n if ($.isFunction(init)) init($cont, $slides, opts);else if (opts.fx != 'custom' && !opts.multiFx) {\n log('unknown transition: ' + opts.fx, '; slideshow terminating');\n return false;\n }\n }\n\n // fire artificial events\n var e0 = $slides[first];\n if (!opts.skipInitializationCallbacks) {\n if (opts.before.length) opts.before[0].apply(e0, [e0, e0, opts, true]);\n if (opts.after.length) opts.after[0].apply(e0, [e0, e0, opts, true]);\n }\n if (opts.next) $(opts.next).bind(opts.prevNextEvent, function () {\n return advance(opts, 1);\n });\n if (opts.prev) $(opts.prev).bind(opts.prevNextEvent, function () {\n return advance(opts, 0);\n });\n if (opts.pager || opts.pagerAnchorBuilder) buildPager(els, opts);\n exposeAddSlide(opts, els);\n return opts;\n }\n\n // save off original opts so we can restore after clearing state\n function saveOriginalOpts(opts) {\n opts.original = {\n before: [],\n after: []\n };\n opts.original.cssBefore = $.extend({}, opts.cssBefore);\n opts.original.cssAfter = $.extend({}, opts.cssAfter);\n opts.original.animIn = $.extend({}, opts.animIn);\n opts.original.animOut = $.extend({}, opts.animOut);\n $.each(opts.before, function () {\n opts.original.before.push(this);\n });\n $.each(opts.after, function () {\n opts.original.after.push(this);\n });\n }\n function supportMultiTransitions(opts) {\n var i,\n tx,\n txs = $.fn.cycle.transitions;\n // look for multiple effects\n if (opts.fx.indexOf(',') > 0) {\n opts.multiFx = true;\n opts.fxs = opts.fx.replace(/\\s*/g, '').split(',');\n // discard any bogus effect names\n for (i = 0; i < opts.fxs.length; i++) {\n var fx = opts.fxs[i];\n tx = txs[fx];\n if (!tx || !txs.hasOwnProperty(fx) || !$.isFunction(tx)) {\n log('discarding unknown transition: ', fx);\n opts.fxs.splice(i, 1);\n i--;\n }\n }\n // if we have an empty list then we threw everything away!\n if (!opts.fxs.length) {\n log('No valid transitions named; slideshow terminating.');\n return false;\n }\n } else if (opts.fx == 'all') {\n // auto-gen the list of transitions\n opts.multiFx = true;\n opts.fxs = [];\n for (var p in txs) {\n if (txs.hasOwnProperty(p)) {\n tx = txs[p];\n if (txs.hasOwnProperty(p) && $.isFunction(tx)) opts.fxs.push(p);\n }\n }\n }\n if (opts.multiFx && opts.randomizeEffects) {\n // munge the fxs array to make effect selection random\n var r1 = Math.floor(Math.random() * 20) + 30;\n for (i = 0; i < r1; i++) {\n var r2 = Math.floor(Math.random() * opts.fxs.length);\n opts.fxs.push(opts.fxs.splice(r2, 1)[0]);\n }\n debug('randomized fx sequence: ', opts.fxs);\n }\n return true;\n }\n\n // provide a mechanism for adding slides after the slideshow has started\n function exposeAddSlide(opts, els) {\n opts.addSlide = function (newSlide, prepend) {\n var $s = $(newSlide),\n s = $s[0];\n if (!opts.autostopCount) opts.countdown++;\n els[prepend ? 'unshift' : 'push'](s);\n if (opts.els) opts.els[prepend ? 'unshift' : 'push'](s); // shuffle needs this\n opts.slideCount = els.length;\n\n // add the slide to the random map and resort\n if (opts.random) {\n opts.randomMap.push(opts.slideCount - 1);\n opts.randomMap.sort(function (a, b) {\n return Math.random() - 0.5;\n });\n }\n $s.css('position', 'absolute');\n $s[prepend ? 'prependTo' : 'appendTo'](opts.$cont);\n if (prepend) {\n opts.currSlide++;\n opts.nextSlide++;\n }\n if (!$.support.opacity && opts.cleartype && !opts.cleartypeNoBg) clearTypeFix($s);\n if (opts.fit && opts.width) $s.width(opts.width);\n if (opts.fit && opts.height && opts.height != 'auto') $s.height(opts.height);\n s.cycleH = opts.fit && opts.height ? opts.height : $s.height();\n s.cycleW = opts.fit && opts.width ? opts.width : $s.width();\n $s.css(opts.cssBefore);\n if (opts.pager || opts.pagerAnchorBuilder) $.fn.cycle.createPagerAnchor(els.length - 1, s, $(opts.pager), els, opts);\n if ($.isFunction(opts.onAddSlide)) opts.onAddSlide($s);else $s.hide(); // default behavior\n };\n }\n\n // reset internal state; we do this on every pass in order to support multiple effects\n $.fn.cycle.resetState = function (opts, fx) {\n fx = fx || opts.fx;\n opts.before = [];\n opts.after = [];\n opts.cssBefore = $.extend({}, opts.original.cssBefore);\n opts.cssAfter = $.extend({}, opts.original.cssAfter);\n opts.animIn = $.extend({}, opts.original.animIn);\n opts.animOut = $.extend({}, opts.original.animOut);\n opts.fxFn = null;\n $.each(opts.original.before, function () {\n opts.before.push(this);\n });\n $.each(opts.original.after, function () {\n opts.after.push(this);\n });\n\n // re-init\n var init = $.fn.cycle.transitions[fx];\n if ($.isFunction(init)) init(opts.$cont, $(opts.elements), opts);\n };\n\n // this is the main engine fn, it handles the timeouts, callbacks and slide index mgmt\n function go(els, opts, manual, fwd) {\n var p = opts.$cont[0],\n curr = els[opts.currSlide],\n next = els[opts.nextSlide];\n\n // opts.busy is true if we're in the middle of an animation\n if (manual && opts.busy && opts.manualTrump) {\n // let manual transitions requests trump active ones\n debug('manualTrump in go(), stopping active transition');\n $(els).stop(true, true);\n opts.busy = 0;\n clearTimeout(p.cycleTimeout);\n }\n\n // don't begin another timeout-based transition if there is one active\n if (opts.busy) {\n debug('transition active, ignoring new tx request');\n return;\n }\n\n // stop cycling if we have an outstanding stop request\n if (p.cycleStop != opts.stopCount || p.cycleTimeout === 0 && !manual) return;\n\n // check to see if we should stop cycling based on autostop options\n if (!manual && !p.cyclePause && !opts.bounce && (opts.autostop && --opts.countdown <= 0 || opts.nowrap && !opts.random && opts.nextSlide < opts.currSlide)) {\n if (opts.end) opts.end(opts);\n return;\n }\n\n // if slideshow is paused, only transition on a manual trigger\n var changed = false;\n if ((manual || !p.cyclePause) && opts.nextSlide != opts.currSlide) {\n changed = true;\n var fx = opts.fx;\n // keep trying to get the slide size if we don't have it yet\n curr.cycleH = curr.cycleH || $(curr).height();\n curr.cycleW = curr.cycleW || $(curr).width();\n next.cycleH = next.cycleH || $(next).height();\n next.cycleW = next.cycleW || $(next).width();\n\n // support multiple transition types\n if (opts.multiFx) {\n if (fwd && (opts.lastFx === undefined || ++opts.lastFx >= opts.fxs.length)) opts.lastFx = 0;else if (!fwd && (opts.lastFx === undefined || --opts.lastFx < 0)) opts.lastFx = opts.fxs.length - 1;\n fx = opts.fxs[opts.lastFx];\n }\n\n // one-time fx overrides apply to: $('div').cycle(3,'zoom');\n if (opts.oneTimeFx) {\n fx = opts.oneTimeFx;\n opts.oneTimeFx = null;\n }\n $.fn.cycle.resetState(opts, fx);\n\n // run the before callbacks\n if (opts.before.length) $.each(opts.before, function (i, o) {\n if (p.cycleStop != opts.stopCount) return;\n o.apply(next, [curr, next, opts, fwd]);\n });\n\n // stage the after callacks\n var after = function after() {\n opts.busy = 0;\n $.each(opts.after, function (i, o) {\n if (p.cycleStop != opts.stopCount) return;\n o.apply(next, [curr, next, opts, fwd]);\n });\n if (!p.cycleStop) {\n // queue next transition\n queueNext();\n }\n };\n debug('tx firing(' + fx + '); currSlide: ' + opts.currSlide + '; nextSlide: ' + opts.nextSlide);\n\n // get ready to perform the transition\n opts.busy = 1;\n if (opts.fxFn)\n // fx function provided?\n opts.fxFn(curr, next, opts, after, fwd, manual && opts.fastOnEvent);else if ($.isFunction($.fn.cycle[opts.fx]))\n // fx plugin ?\n $.fn.cycle[opts.fx](curr, next, opts, after, fwd, manual && opts.fastOnEvent);else $.fn.cycle.custom(curr, next, opts, after, fwd, manual && opts.fastOnEvent);\n } else {\n queueNext();\n }\n if (changed || opts.nextSlide == opts.currSlide) {\n // calculate the next slide\n var roll;\n opts.lastSlide = opts.currSlide;\n if (opts.random) {\n opts.currSlide = opts.nextSlide;\n if (++opts.randomIndex == els.length) {\n opts.randomIndex = 0;\n opts.randomMap.sort(function (a, b) {\n return Math.random() - 0.5;\n });\n }\n opts.nextSlide = opts.randomMap[opts.randomIndex];\n if (opts.nextSlide == opts.currSlide) opts.nextSlide = opts.currSlide == opts.slideCount - 1 ? 0 : opts.currSlide + 1;\n } else if (opts.backwards) {\n roll = opts.nextSlide - 1 < 0;\n if (roll && opts.bounce) {\n opts.backwards = !opts.backwards;\n opts.nextSlide = 1;\n opts.currSlide = 0;\n } else {\n opts.nextSlide = roll ? els.length - 1 : opts.nextSlide - 1;\n opts.currSlide = roll ? 0 : opts.nextSlide + 1;\n }\n } else {\n // sequence\n roll = opts.nextSlide + 1 == els.length;\n if (roll && opts.bounce) {\n opts.backwards = !opts.backwards;\n opts.nextSlide = els.length - 2;\n opts.currSlide = els.length - 1;\n } else {\n opts.nextSlide = roll ? 0 : opts.nextSlide + 1;\n opts.currSlide = roll ? els.length - 1 : opts.nextSlide - 1;\n }\n }\n }\n if (changed && opts.pager) opts.updateActivePagerLink(opts.pager, opts.currSlide, opts.activePagerClass);\n function queueNext() {\n // stage the next transition\n var ms = 0,\n timeout = opts.timeout;\n if (opts.timeout && !opts.continuous) {\n ms = getTimeout(els[opts.currSlide], els[opts.nextSlide], opts, fwd);\n if (opts.fx == 'shuffle') ms -= opts.speedOut;\n } else if (opts.continuous && p.cyclePause)\n // continuous shows work off an after callback, not this timer logic\n ms = 10;\n if (ms > 0) p.cycleTimeout = setTimeout(function () {\n go(els, opts, 0, !opts.backwards);\n }, ms);\n }\n }\n\n // invoked after transition\n $.fn.cycle.updateActivePagerLink = function (pager, currSlide, clsName) {\n $(pager).each(function () {\n $(this).children().removeClass(clsName).eq(currSlide).addClass(clsName);\n });\n };\n\n // calculate timeout value for current transition\n function getTimeout(curr, next, opts, fwd) {\n if (opts.timeoutFn) {\n // call user provided calc fn\n var t = opts.timeoutFn.call(curr, curr, next, opts, fwd);\n while (opts.fx != 'none' && t - opts.speed < 250)\n // sanitize timeout\n t += opts.speed;\n debug('calculated timeout: ' + t + '; speed: ' + opts.speed);\n if (t !== false) return t;\n }\n return opts.timeout;\n }\n\n // expose next/prev function, caller must pass in state\n $.fn.cycle.next = function (opts) {\n advance(opts, 1);\n };\n $.fn.cycle.prev = function (opts) {\n advance(opts, 0);\n };\n\n // advance slide forward or back\n function advance(opts, moveForward) {\n var val = moveForward ? 1 : -1;\n var els = opts.elements;\n var p = opts.$cont[0],\n timeout = p.cycleTimeout;\n if (timeout) {\n clearTimeout(timeout);\n p.cycleTimeout = 0;\n }\n if (opts.random && val < 0) {\n // move back to the previously display slide\n opts.randomIndex--;\n if (--opts.randomIndex == -2) opts.randomIndex = els.length - 2;else if (opts.randomIndex == -1) opts.randomIndex = els.length - 1;\n opts.nextSlide = opts.randomMap[opts.randomIndex];\n } else if (opts.random) {\n opts.nextSlide = opts.randomMap[opts.randomIndex];\n } else {\n opts.nextSlide = opts.currSlide + val;\n if (opts.nextSlide < 0) {\n if (opts.nowrap) return false;\n opts.nextSlide = els.length - 1;\n } else if (opts.nextSlide >= els.length) {\n if (opts.nowrap) return false;\n opts.nextSlide = 0;\n }\n }\n var cb = opts.onPrevNextEvent || opts.prevNextClick; // prevNextClick is deprecated\n if ($.isFunction(cb)) cb(val > 0, opts.nextSlide, els[opts.nextSlide]);\n go(els, opts, 1, moveForward);\n return false;\n }\n function buildPager(els, opts) {\n var $p = $(opts.pager);\n $.each(els, function (i, o) {\n $.fn.cycle.createPagerAnchor(i, o, $p, els, opts);\n });\n opts.updateActivePagerLink(opts.pager, opts.startingSlide, opts.activePagerClass);\n }\n $.fn.cycle.createPagerAnchor = function (i, el, $p, els, opts) {\n var a;\n if ($.isFunction(opts.pagerAnchorBuilder)) {\n a = opts.pagerAnchorBuilder(i, el);\n debug('pagerAnchorBuilder(' + i + ', el) returned: ' + a);\n } else a = '' + (i + 1) + '';\n if (!a) return;\n var $a = $(a);\n // don't reparent if anchor is in the dom\n if ($a.parents('body').length === 0) {\n var arr = [];\n if ($p.length > 1) {\n $p.each(function () {\n var $clone = $a.clone(true);\n $(this).append($clone);\n arr.push($clone[0]);\n });\n $a = $(arr);\n } else {\n $a.appendTo($p);\n }\n }\n opts.pagerAnchors = opts.pagerAnchors || [];\n opts.pagerAnchors.push($a);\n var pagerFn = function pagerFn(e) {\n e.preventDefault();\n opts.nextSlide = i;\n var p = opts.$cont[0],\n timeout = p.cycleTimeout;\n if (timeout) {\n clearTimeout(timeout);\n p.cycleTimeout = 0;\n }\n var cb = opts.onPagerEvent || opts.pagerClick; // pagerClick is deprecated\n if ($.isFunction(cb)) cb(opts.nextSlide, els[opts.nextSlide]);\n go(els, opts, 1, opts.currSlide < i); // trigger the trans\n //\t\treturn false; // <== allow bubble\n };\n if (/mouseenter|mouseover/i.test(opts.pagerEvent)) {\n $a.hover(pagerFn, function () {/* no-op */});\n } else {\n $a.bind(opts.pagerEvent, pagerFn);\n }\n if (!/^click/.test(opts.pagerEvent) && !opts.allowPagerClickBubble) $a.bind('click.cycle', function () {\n return false;\n }); // suppress click\n\n var cont = opts.$cont[0];\n var pauseFlag = false; // https://github.com/malsup/cycle/issues/44\n if (opts.pauseOnPagerHover) {\n $a.hover(function () {\n pauseFlag = true;\n cont.cyclePause++;\n triggerPause(cont, true, true);\n }, function () {\n if (pauseFlag) cont.cyclePause--;\n triggerPause(cont, true, true);\n });\n }\n };\n\n // helper fn to calculate the number of slides between the current and the next\n $.fn.cycle.hopsFromLast = function (opts, fwd) {\n var hops,\n l = opts.lastSlide,\n c = opts.currSlide;\n if (fwd) hops = c > l ? c - l : opts.slideCount - l;else hops = c < l ? l - c : l + opts.slideCount - c;\n return hops;\n };\n\n // fix clearType problems in ie6 by setting an explicit bg color\n // (otherwise text slides look horrible during a fade transition)\n function clearTypeFix($slides) {\n debug('applying clearType background-color hack');\n function hex(s) {\n s = parseInt(s, 10).toString(16);\n return s.length < 2 ? '0' + s : s;\n }\n function getBg(e) {\n for (; e && e.nodeName.toLowerCase() != 'html'; e = e.parentNode) {\n var v = $.css(e, 'background-color');\n if (v && v.indexOf('rgb') >= 0) {\n var rgb = v.match(/\\d+/g);\n return '#' + hex(rgb[0]) + hex(rgb[1]) + hex(rgb[2]);\n }\n if (v && v != 'transparent') return v;\n }\n return '#ffffff';\n }\n $slides.each(function () {\n $(this).css('background-color', getBg(this));\n });\n }\n\n // reset common props before the next transition\n $.fn.cycle.commonReset = function (curr, next, opts, w, h, rev) {\n $(opts.elements).not(curr).hide();\n if (typeof opts.cssBefore.opacity == 'undefined') opts.cssBefore.opacity = 1;\n opts.cssBefore.display = 'block';\n if (opts.slideResize && w !== false && next.cycleW > 0) opts.cssBefore.width = next.cycleW;\n if (opts.slideResize && h !== false && next.cycleH > 0) opts.cssBefore.height = next.cycleH;\n opts.cssAfter = opts.cssAfter || {};\n opts.cssAfter.display = 'none';\n $(curr).css('zIndex', opts.slideCount + (rev === true ? 1 : 0));\n $(next).css('zIndex', opts.slideCount + (rev === true ? 0 : 1));\n };\n\n // the actual fn for effecting a transition\n $.fn.cycle.custom = function (curr, next, opts, cb, fwd, speedOverride) {\n var $l = $(curr),\n $n = $(next);\n var speedIn = opts.speedIn,\n speedOut = opts.speedOut,\n easeIn = opts.easeIn,\n easeOut = opts.easeOut,\n animInDelay = opts.animInDelay,\n animOutDelay = opts.animOutDelay;\n $n.css(opts.cssBefore);\n if (speedOverride) {\n if (typeof speedOverride == 'number') speedIn = speedOut = speedOverride;else speedIn = speedOut = 1;\n easeIn = easeOut = null;\n }\n var fn = function fn() {\n $n.delay(animInDelay).animate(opts.animIn, speedIn, easeIn, function () {\n cb();\n });\n };\n $l.delay(animOutDelay).animate(opts.animOut, speedOut, easeOut, function () {\n $l.css(opts.cssAfter);\n if (!opts.sync) fn();\n });\n if (opts.sync) fn();\n };\n\n // transition definitions - only fade is defined here, transition pack defines the rest\n $.fn.cycle.transitions = {\n fade: function fade($cont, $slides, opts) {\n $slides.not(':eq(' + opts.currSlide + ')').css('opacity', 0);\n opts.before.push(function (curr, next, opts) {\n $.fn.cycle.commonReset(curr, next, opts);\n opts.cssBefore.opacity = 0;\n });\n opts.animIn = {\n opacity: 1\n };\n opts.animOut = {\n opacity: 0\n };\n opts.cssBefore = {\n top: 0,\n left: 0\n };\n }\n };\n $.fn.cycle.ver = function () {\n return ver;\n };\n\n // override these globally if you like (they are all optional)\n $.fn.cycle.defaults = {\n activePagerClass: 'activeSlide',\n // class name used for the active pager link\n after: null,\n // transition callback (scope set to element that was shown): function(currSlideElement, nextSlideElement, options, forwardFlag)\n allowPagerClickBubble: false,\n // allows or prevents click event on pager anchors from bubbling\n animIn: null,\n // properties that define how the slide animates in\n animInDelay: 0,\n // allows delay before next slide transitions in\t\n animOut: null,\n // properties that define how the slide animates out\n animOutDelay: 0,\n // allows delay before current slide transitions out\n aspect: false,\n // preserve aspect ratio during fit resizing, cropping if necessary (must be used with fit option)\n autostop: 0,\n // true to end slideshow after X transitions (where X == slide count)\n autostopCount: 0,\n // number of transitions (optionally used with autostop to define X)\n backwards: false,\n // true to start slideshow at last slide and move backwards through the stack\n before: null,\n // transition callback (scope set to element to be shown): function(currSlideElement, nextSlideElement, options, forwardFlag)\n center: null,\n // set to true to have cycle add top/left margin to each slide (use with width and height options)\n cleartype: !$.support.opacity,\n // true if clearType corrections should be applied (for IE)\n cleartypeNoBg: false,\n // set to true to disable extra cleartype fixing (leave false to force background color setting on slides)\n containerResize: 1,\n // resize container to fit largest slide\n containerResizeHeight: 0,\n // resize containers height to fit the largest slide but leave the width dynamic\n continuous: 0,\n // true to start next transition immediately after current one completes\n cssAfter: null,\n // properties that defined the state of the slide after transitioning out\n cssBefore: null,\n // properties that define the initial state of the slide before transitioning in\n delay: 0,\n // additional delay (in ms) for first transition (hint: can be negative)\n easeIn: null,\n // easing for \"in\" transition\n easeOut: null,\n // easing for \"out\" transition\n easing: null,\n // easing method for both in and out transitions\n end: null,\n // callback invoked when the slideshow terminates (use with autostop or nowrap options): function(options)\n fastOnEvent: 0,\n // force fast transitions when triggered manually (via pager or prev/next); value == time in ms\n fit: 0,\n // force slides to fit container\n fx: 'fade',\n // name of transition effect (or comma separated names, ex: 'fade,scrollUp,shuffle')\n fxFn: null,\n // function used to control the transition: function(currSlideElement, nextSlideElement, options, afterCalback, forwardFlag)\n height: 'auto',\n // container height (if the 'fit' option is true, the slides will be set to this height as well)\n manualTrump: true,\n // causes manual transition to stop an active transition instead of being ignored\n metaAttr: 'cycle',\n // data- attribute that holds the option data for the slideshow\n next: null,\n // element, jQuery object, or jQuery selector string for the element to use as event trigger for next slide\n nowrap: 0,\n // true to prevent slideshow from wrapping\n onPagerEvent: null,\n // callback fn for pager events: function(zeroBasedSlideIndex, slideElement)\n onPrevNextEvent: null,\n // callback fn for prev/next events: function(isNext, zeroBasedSlideIndex, slideElement)\n pager: null,\n // element, jQuery object, or jQuery selector string for the element to use as pager container\n pagerAnchorBuilder: null,\n // callback fn for building anchor links: function(index, DOMelement)\n pagerEvent: 'click.cycle',\n // name of event which drives the pager navigation\n pause: 0,\n // true to enable \"pause on hover\"\n pauseOnPagerHover: 0,\n // true to pause when hovering over pager link\n prev: null,\n // element, jQuery object, or jQuery selector string for the element to use as event trigger for previous slide\n prevNextEvent: 'click.cycle',\n // event which drives the manual transition to the previous or next slide\n random: 0,\n // true for random, false for sequence (not applicable to shuffle fx)\n randomizeEffects: 1,\n // valid when multiple effects are used; true to make the effect sequence random\n requeueOnImageNotLoaded: true,\n // requeue the slideshow if any image slides are not yet loaded\n requeueTimeout: 250,\n // ms delay for requeue\n rev: 0,\n // causes animations to transition in reverse (for effects that support it such as scrollHorz/scrollVert/shuffle)\n shuffle: null,\n // coords for shuffle animation, ex: { top:15, left: 200 }\n skipInitializationCallbacks: false,\n // set to true to disable the first before/after callback that occurs prior to any transition\n slideExpr: null,\n // expression for selecting slides (if something other than all children is required)\n slideResize: 1,\n // force slide width/height to fixed size before every transition\n speed: 1000,\n // speed of the transition (any valid fx speed value)\n speedIn: null,\n // speed of the 'in' transition\n speedOut: null,\n // speed of the 'out' transition\n startingSlide: undefined,\n // zero-based index of the first slide to be displayed\n sync: 1,\n // true if in/out transitions should occur simultaneously\n timeout: 4000,\n // milliseconds between slide transitions (0 to disable auto advance)\n timeoutFn: null,\n // callback for determining per-slide timeout value: function(currSlideElement, nextSlideElement, options, forwardFlag)\n updateActivePagerLink: null,\n // callback fn invoked to update the active pager link (adds/removes activePagerClass style)\n width: null // container width (if the 'fit' option is true, the slides will be set to this width as well)\n };\n})(jQuery);\n\n/*!\r\n * jQuery Cycle Plugin Transition Definitions\r\n * This script is a plugin for the jQuery Cycle Plugin\r\n * Examples and documentation at: http://malsup.com/jquery/cycle/\r\n * Copyright (c) 2007-2010 M. Alsup\r\n * Version:\t 2.73\r\n * Dual licensed under the MIT and GPL licenses:\r\n * http://www.opensource.org/licenses/mit-license.php\r\n * http://www.gnu.org/licenses/gpl.html\r\n */\n(function ($) {\n \"use strict\";\n\n //\n // These functions define slide initialization and properties for the named\n // transitions. To save file size feel free to remove any of these that you\n // don't need.\n //\n $.fn.cycle.transitions.none = function ($cont, $slides, opts) {\n opts.fxFn = function (curr, next, opts, after) {\n $(next).show();\n $(curr).hide();\n after();\n };\n };\n\n // not a cross-fade, fadeout only fades out the top slide\n $.fn.cycle.transitions.fadeout = function ($cont, $slides, opts) {\n $slides.not(':eq(' + opts.currSlide + ')').css({\n display: 'block',\n 'opacity': 1\n });\n opts.before.push(function (curr, next, opts, w, h, rev) {\n $(curr).css('zIndex', opts.slideCount + (rev !== true ? 1 : 0));\n $(next).css('zIndex', opts.slideCount + (rev !== true ? 0 : 1));\n });\n opts.animIn.opacity = 1;\n opts.animOut.opacity = 0;\n opts.cssBefore.opacity = 1;\n opts.cssBefore.display = 'block';\n opts.cssAfter.zIndex = 0;\n };\n\n // scrollUp/Down/Left/Right\n $.fn.cycle.transitions.scrollUp = function ($cont, $slides, opts) {\n $cont.css('overflow', 'hidden');\n opts.before.push($.fn.cycle.commonReset);\n var h = $cont.height();\n opts.cssBefore.top = h;\n opts.cssBefore.left = 0;\n opts.cssFirst.top = 0;\n opts.animIn.top = 0;\n opts.animOut.top = -h;\n };\n $.fn.cycle.transitions.scrollDown = function ($cont, $slides, opts) {\n $cont.css('overflow', 'hidden');\n opts.before.push($.fn.cycle.commonReset);\n var h = $cont.height();\n opts.cssFirst.top = 0;\n opts.cssBefore.top = -h;\n opts.cssBefore.left = 0;\n opts.animIn.top = 0;\n opts.animOut.top = h;\n };\n $.fn.cycle.transitions.scrollLeft = function ($cont, $slides, opts) {\n $cont.css('overflow', 'hidden');\n opts.before.push($.fn.cycle.commonReset);\n var w = $cont.width();\n opts.cssFirst.left = 0;\n opts.cssBefore.left = w;\n opts.cssBefore.top = 0;\n opts.animIn.left = 0;\n opts.animOut.left = 0 - w;\n };\n $.fn.cycle.transitions.scrollRight = function ($cont, $slides, opts) {\n $cont.css('overflow', 'hidden');\n opts.before.push($.fn.cycle.commonReset);\n var w = $cont.width();\n opts.cssFirst.left = 0;\n opts.cssBefore.left = -w;\n opts.cssBefore.top = 0;\n opts.animIn.left = 0;\n opts.animOut.left = w;\n };\n $.fn.cycle.transitions.scrollHorz = function ($cont, $slides, opts) {\n $cont.css('overflow', 'hidden').width();\n opts.before.push(function (curr, next, opts, fwd) {\n if (opts.rev) fwd = !fwd;\n $.fn.cycle.commonReset(curr, next, opts);\n opts.cssBefore.left = fwd ? next.cycleW - 1 : 1 - next.cycleW;\n opts.animOut.left = fwd ? -curr.cycleW : curr.cycleW;\n });\n opts.cssFirst.left = 0;\n opts.cssBefore.top = 0;\n opts.animIn.left = 0;\n opts.animOut.top = 0;\n };\n $.fn.cycle.transitions.scrollVert = function ($cont, $slides, opts) {\n $cont.css('overflow', 'hidden');\n opts.before.push(function (curr, next, opts, fwd) {\n if (opts.rev) fwd = !fwd;\n $.fn.cycle.commonReset(curr, next, opts);\n opts.cssBefore.top = fwd ? 1 - next.cycleH : next.cycleH - 1;\n opts.animOut.top = fwd ? curr.cycleH : -curr.cycleH;\n });\n opts.cssFirst.top = 0;\n opts.cssBefore.left = 0;\n opts.animIn.top = 0;\n opts.animOut.left = 0;\n };\n\n // slideX/slideY\n $.fn.cycle.transitions.slideX = function ($cont, $slides, opts) {\n opts.before.push(function (curr, next, opts) {\n $(opts.elements).not(curr).hide();\n $.fn.cycle.commonReset(curr, next, opts, false, true);\n opts.animIn.width = next.cycleW;\n });\n opts.cssBefore.left = 0;\n opts.cssBefore.top = 0;\n opts.cssBefore.width = 0;\n opts.animIn.width = 'show';\n opts.animOut.width = 0;\n };\n $.fn.cycle.transitions.slideY = function ($cont, $slides, opts) {\n opts.before.push(function (curr, next, opts) {\n $(opts.elements).not(curr).hide();\n $.fn.cycle.commonReset(curr, next, opts, true, false);\n opts.animIn.height = next.cycleH;\n });\n opts.cssBefore.left = 0;\n opts.cssBefore.top = 0;\n opts.cssBefore.height = 0;\n opts.animIn.height = 'show';\n opts.animOut.height = 0;\n };\n\n // shuffle\n $.fn.cycle.transitions.shuffle = function ($cont, $slides, opts) {\n var i,\n w = $cont.css('overflow', 'visible').width();\n $slides.css({\n left: 0,\n top: 0\n });\n opts.before.push(function (curr, next, opts) {\n $.fn.cycle.commonReset(curr, next, opts, true, true, true);\n });\n // only adjust speed once!\n if (!opts.speedAdjusted) {\n opts.speed = opts.speed / 2; // shuffle has 2 transitions\n opts.speedAdjusted = true;\n }\n opts.random = 0;\n opts.shuffle = opts.shuffle || {\n left: -w,\n top: 15\n };\n opts.els = [];\n for (i = 0; i < $slides.length; i++) opts.els.push($slides[i]);\n for (i = 0; i < opts.currSlide; i++) opts.els.push(opts.els.shift());\n\n // custom transition fn (hat tip to Benjamin Sterling for this bit of sweetness!)\n opts.fxFn = function (curr, next, opts, cb, fwd) {\n if (opts.rev) fwd = !fwd;\n var $el = fwd ? $(curr) : $(next);\n $(next).css(opts.cssBefore);\n var count = opts.slideCount;\n $el.animate(opts.shuffle, opts.speedIn, opts.easeIn, function () {\n var hops = $.fn.cycle.hopsFromLast(opts, fwd);\n for (var k = 0; k < hops; k++) {\n if (fwd) opts.els.push(opts.els.shift());else opts.els.unshift(opts.els.pop());\n }\n if (fwd) {\n for (var i = 0, len = opts.els.length; i < len; i++) $(opts.els[i]).css('z-index', len - i + count);\n } else {\n var z = $(curr).css('z-index');\n $el.css('z-index', parseInt(z, 10) + 1 + count);\n }\n $el.animate({\n left: 0,\n top: 0\n }, opts.speedOut, opts.easeOut, function () {\n $(fwd ? this : curr).hide();\n if (cb) cb();\n });\n });\n };\n $.extend(opts.cssBefore, {\n display: 'block',\n opacity: 1,\n top: 0,\n left: 0\n });\n };\n\n // turnUp/Down/Left/Right\n $.fn.cycle.transitions.turnUp = function ($cont, $slides, opts) {\n opts.before.push(function (curr, next, opts) {\n $.fn.cycle.commonReset(curr, next, opts, true, false);\n opts.cssBefore.top = next.cycleH;\n opts.animIn.height = next.cycleH;\n opts.animOut.width = next.cycleW;\n });\n opts.cssFirst.top = 0;\n opts.cssBefore.left = 0;\n opts.cssBefore.height = 0;\n opts.animIn.top = 0;\n opts.animOut.height = 0;\n };\n $.fn.cycle.transitions.turnDown = function ($cont, $slides, opts) {\n opts.before.push(function (curr, next, opts) {\n $.fn.cycle.commonReset(curr, next, opts, true, false);\n opts.animIn.height = next.cycleH;\n opts.animOut.top = curr.cycleH;\n });\n opts.cssFirst.top = 0;\n opts.cssBefore.left = 0;\n opts.cssBefore.top = 0;\n opts.cssBefore.height = 0;\n opts.animOut.height = 0;\n };\n $.fn.cycle.transitions.turnLeft = function ($cont, $slides, opts) {\n opts.before.push(function (curr, next, opts) {\n $.fn.cycle.commonReset(curr, next, opts, false, true);\n opts.cssBefore.left = next.cycleW;\n opts.animIn.width = next.cycleW;\n });\n opts.cssBefore.top = 0;\n opts.cssBefore.width = 0;\n opts.animIn.left = 0;\n opts.animOut.width = 0;\n };\n $.fn.cycle.transitions.turnRight = function ($cont, $slides, opts) {\n opts.before.push(function (curr, next, opts) {\n $.fn.cycle.commonReset(curr, next, opts, false, true);\n opts.animIn.width = next.cycleW;\n opts.animOut.left = curr.cycleW;\n });\n $.extend(opts.cssBefore, {\n top: 0,\n left: 0,\n width: 0\n });\n opts.animIn.left = 0;\n opts.animOut.width = 0;\n };\n\n // zoom\n $.fn.cycle.transitions.zoom = function ($cont, $slides, opts) {\n opts.before.push(function (curr, next, opts) {\n $.fn.cycle.commonReset(curr, next, opts, false, false, true);\n opts.cssBefore.top = next.cycleH / 2;\n opts.cssBefore.left = next.cycleW / 2;\n $.extend(opts.animIn, {\n top: 0,\n left: 0,\n width: next.cycleW,\n height: next.cycleH\n });\n $.extend(opts.animOut, {\n width: 0,\n height: 0,\n top: curr.cycleH / 2,\n left: curr.cycleW / 2\n });\n });\n opts.cssFirst.top = 0;\n opts.cssFirst.left = 0;\n opts.cssBefore.width = 0;\n opts.cssBefore.height = 0;\n };\n\n // fadeZoom\n $.fn.cycle.transitions.fadeZoom = function ($cont, $slides, opts) {\n opts.before.push(function (curr, next, opts) {\n $.fn.cycle.commonReset(curr, next, opts, false, false);\n opts.cssBefore.left = next.cycleW / 2;\n opts.cssBefore.top = next.cycleH / 2;\n $.extend(opts.animIn, {\n top: 0,\n left: 0,\n width: next.cycleW,\n height: next.cycleH\n });\n });\n opts.cssBefore.width = 0;\n opts.cssBefore.height = 0;\n opts.animOut.opacity = 0;\n };\n\n // blindX\n $.fn.cycle.transitions.blindX = function ($cont, $slides, opts) {\n var w = $cont.css('overflow', 'hidden').width();\n opts.before.push(function (curr, next, opts) {\n $.fn.cycle.commonReset(curr, next, opts);\n opts.animIn.width = next.cycleW;\n opts.animOut.left = curr.cycleW;\n });\n opts.cssBefore.left = w;\n opts.cssBefore.top = 0;\n opts.animIn.left = 0;\n opts.animOut.left = w;\n };\n // blindY\n $.fn.cycle.transitions.blindY = function ($cont, $slides, opts) {\n var h = $cont.css('overflow', 'hidden').height();\n opts.before.push(function (curr, next, opts) {\n $.fn.cycle.commonReset(curr, next, opts);\n opts.animIn.height = next.cycleH;\n opts.animOut.top = curr.cycleH;\n });\n opts.cssBefore.top = h;\n opts.cssBefore.left = 0;\n opts.animIn.top = 0;\n opts.animOut.top = h;\n };\n // blindZ\n $.fn.cycle.transitions.blindZ = function ($cont, $slides, opts) {\n var h = $cont.css('overflow', 'hidden').height();\n var w = $cont.width();\n opts.before.push(function (curr, next, opts) {\n $.fn.cycle.commonReset(curr, next, opts);\n opts.animIn.height = next.cycleH;\n opts.animOut.top = curr.cycleH;\n });\n opts.cssBefore.top = h;\n opts.cssBefore.left = w;\n opts.animIn.top = 0;\n opts.animIn.left = 0;\n opts.animOut.top = h;\n opts.animOut.left = w;\n };\n\n // growX - grow horizontally from centered 0 width\n $.fn.cycle.transitions.growX = function ($cont, $slides, opts) {\n opts.before.push(function (curr, next, opts) {\n $.fn.cycle.commonReset(curr, next, opts, false, true);\n opts.cssBefore.left = this.cycleW / 2;\n opts.animIn.left = 0;\n opts.animIn.width = this.cycleW;\n opts.animOut.left = 0;\n });\n opts.cssBefore.top = 0;\n opts.cssBefore.width = 0;\n };\n // growY - grow vertically from centered 0 height\n $.fn.cycle.transitions.growY = function ($cont, $slides, opts) {\n opts.before.push(function (curr, next, opts) {\n $.fn.cycle.commonReset(curr, next, opts, true, false);\n opts.cssBefore.top = this.cycleH / 2;\n opts.animIn.top = 0;\n opts.animIn.height = this.cycleH;\n opts.animOut.top = 0;\n });\n opts.cssBefore.height = 0;\n opts.cssBefore.left = 0;\n };\n\n // curtainX - squeeze in both edges horizontally\n $.fn.cycle.transitions.curtainX = function ($cont, $slides, opts) {\n opts.before.push(function (curr, next, opts) {\n $.fn.cycle.commonReset(curr, next, opts, false, true, true);\n opts.cssBefore.left = next.cycleW / 2;\n opts.animIn.left = 0;\n opts.animIn.width = this.cycleW;\n opts.animOut.left = curr.cycleW / 2;\n opts.animOut.width = 0;\n });\n opts.cssBefore.top = 0;\n opts.cssBefore.width = 0;\n };\n // curtainY - squeeze in both edges vertically\n $.fn.cycle.transitions.curtainY = function ($cont, $slides, opts) {\n opts.before.push(function (curr, next, opts) {\n $.fn.cycle.commonReset(curr, next, opts, true, false, true);\n opts.cssBefore.top = next.cycleH / 2;\n opts.animIn.top = 0;\n opts.animIn.height = next.cycleH;\n opts.animOut.top = curr.cycleH / 2;\n opts.animOut.height = 0;\n });\n opts.cssBefore.height = 0;\n opts.cssBefore.left = 0;\n };\n\n // cover - curr slide covered by next slide\n $.fn.cycle.transitions.cover = function ($cont, $slides, opts) {\n var d = opts.direction || 'left';\n var w = $cont.css('overflow', 'hidden').width();\n var h = $cont.height();\n opts.before.push(function (curr, next, opts) {\n $.fn.cycle.commonReset(curr, next, opts);\n opts.cssAfter.display = '';\n if (d == 'right') opts.cssBefore.left = -w;else if (d == 'up') opts.cssBefore.top = h;else if (d == 'down') opts.cssBefore.top = -h;else opts.cssBefore.left = w;\n });\n opts.animIn.left = 0;\n opts.animIn.top = 0;\n opts.cssBefore.top = 0;\n opts.cssBefore.left = 0;\n };\n\n // uncover - curr slide moves off next slide\n $.fn.cycle.transitions.uncover = function ($cont, $slides, opts) {\n var d = opts.direction || 'left';\n var w = $cont.css('overflow', 'hidden').width();\n var h = $cont.height();\n opts.before.push(function (curr, next, opts) {\n $.fn.cycle.commonReset(curr, next, opts, true, true, true);\n if (d == 'right') opts.animOut.left = w;else if (d == 'up') opts.animOut.top = -h;else if (d == 'down') opts.animOut.top = h;else opts.animOut.left = -w;\n });\n opts.animIn.left = 0;\n opts.animIn.top = 0;\n opts.cssBefore.top = 0;\n opts.cssBefore.left = 0;\n };\n\n // toss - move top slide and fade away\n $.fn.cycle.transitions.toss = function ($cont, $slides, opts) {\n var w = $cont.css('overflow', 'visible').width();\n var h = $cont.height();\n opts.before.push(function (curr, next, opts) {\n $.fn.cycle.commonReset(curr, next, opts, true, true, true);\n // provide default toss settings if animOut not provided\n if (!opts.animOut.left && !opts.animOut.top) $.extend(opts.animOut, {\n left: w * 2,\n top: -h / 2,\n opacity: 0\n });else opts.animOut.opacity = 0;\n });\n opts.cssBefore.left = 0;\n opts.cssBefore.top = 0;\n opts.animIn.left = 0;\n };\n\n // wipe - clip animation\n $.fn.cycle.transitions.wipe = function ($cont, $slides, opts) {\n var w = $cont.css('overflow', 'hidden').width();\n var h = $cont.height();\n opts.cssBefore = opts.cssBefore || {};\n var clip;\n if (opts.clip) {\n if (/l2r/.test(opts.clip)) clip = 'rect(0px 0px ' + h + 'px 0px)';else if (/r2l/.test(opts.clip)) clip = 'rect(0px ' + w + 'px ' + h + 'px ' + w + 'px)';else if (/t2b/.test(opts.clip)) clip = 'rect(0px ' + w + 'px 0px 0px)';else if (/b2t/.test(opts.clip)) clip = 'rect(' + h + 'px ' + w + 'px ' + h + 'px 0px)';else if (/zoom/.test(opts.clip)) {\n var top = parseInt(h / 2, 10);\n var left = parseInt(w / 2, 10);\n clip = 'rect(' + top + 'px ' + left + 'px ' + top + 'px ' + left + 'px)';\n }\n }\n opts.cssBefore.clip = opts.cssBefore.clip || clip || 'rect(0px 0px 0px 0px)';\n var d = opts.cssBefore.clip.match(/(\\d+)/g);\n var t = parseInt(d[0], 10),\n r = parseInt(d[1], 10),\n b = parseInt(d[2], 10),\n l = parseInt(d[3], 10);\n opts.before.push(function (curr, next, opts) {\n if (curr == next) return;\n var $curr = $(curr),\n $next = $(next);\n $.fn.cycle.commonReset(curr, next, opts, true, true, false);\n opts.cssAfter.display = 'block';\n var step = 1,\n count = parseInt(opts.speedIn / 13, 10) - 1;\n (function f() {\n var tt = t ? t - parseInt(step * (t / count), 10) : 0;\n var ll = l ? l - parseInt(step * (l / count), 10) : 0;\n var bb = b < h ? b + parseInt(step * ((h - b) / count || 1), 10) : h;\n var rr = r < w ? r + parseInt(step * ((w - r) / count || 1), 10) : w;\n $next.css({\n clip: 'rect(' + tt + 'px ' + rr + 'px ' + bb + 'px ' + ll + 'px)'\n });\n step++ <= count ? setTimeout(f, 13) : $curr.css('display', 'none');\n })();\n });\n $.extend(opts.cssBefore, {\n display: 'block',\n opacity: 1,\n top: 0,\n left: 0\n });\n opts.animIn = {\n left: 0\n };\n opts.animOut = {\n left: 0\n };\n };\n})(jQuery);","/**\r\n * Created by mady on 29-03-2017.\r\n */\n(function ($, DGS) {\n DGS.Components.DataHierarchySpot.MultiStep = DGS.Components.DataHierarchySpot.MultiStep || function () {\n var DHS = DGS.Components.DataHierarchySpot.getInstance(),\n determineStep = function determineStep() {\n var step = DGS.getQueryParameter(\"s\", window.location.href);\n return step ? step : 0;\n };\n return {\n getInstance: function getInstance() {\n var builder = {\n _queue: [],\n _$target: null,\n _template: null,\n _queryDataCallback: null,\n _steps: [],\n _step: -1,\n _data: null,\n _stepData: null,\n _stepEndpointData: null,\n _buildConfig: null,\n _getUrlVars: function _getUrlVars() {\n var url = window.location.href,\n output = {\n params: {},\n hash: \"\"\n },\n hashIndex = url.indexOf('#'),\n paramIndex = url.indexOf('?'),\n rawParam,\n params,\n paramPart;\n if (hashIndex > -1) {\n output.hash = url.slice(hashIndex + 1);\n }\n if (paramIndex > -1) {\n rawParam = url.substr(paramIndex + 1, hashIndex > -1 ? hashIndex : url.length);\n params = rawParam.split('&');\n params.forEach(function (param) {\n paramPart = param.split('=');\n output.params[paramPart[0]] = paramPart[1];\n });\n }\n return output;\n },\n _nextInQueue: function _nextInQueue() {\n if (this._queue.length > 0) {\n var next = this._queue.shift();\n next.apply();\n }\n },\n _submitData: function _submitData(data, storagePath, onSuccess, onError) {\n if (storagePath) {\n $.ajax({\n url: storagePath,\n type: 'POST',\n data: JSON.stringify(data)\n }).then(function (data, textState, jqHXR) {\n onSuccess.apply(null, [data]);\n }, function (jqXHR, textState, msg) {\n onError.apply(null, [textState, msg]);\n });\n } else {\n onSuccess.apply();\n }\n },\n setTarget: function setTarget($spot) {\n this._$target = $spot;\n return builder;\n },\n setTemplate: function setTemplate(path) {\n this._template = path;\n return builder;\n },\n addStep: function addStep(buildConfigHandler) {\n this._steps.push(buildConfigHandler);\n return builder;\n },\n onBeforeRequest: function onBeforeRequest(callback) {\n this._queryDataCallback = callback;\n return builder;\n },\n run: function run(onReadyHandler) {\n var that = this;\n // load template if any\n if (that._template) {\n that._queue.push(function () {\n DHS.loadTemplate(that._$target, that._template, function () {\n that._nextInQueue();\n });\n });\n }\n // load DHS data\n this._queue.push(function () {\n DHS.loadData(that._$target, function (data) {\n // save parsed data\n that._data = DHS.parseData(data);\n // determine step\n that._step = determineStep();\n if (that._steps.length > that._step) {\n that._stepData = that._data.step[that._step];\n if (that._stepData.getDataEndpoint) {\n // has end point\n // load endpoint if any\n that._queue.push(function () {\n var urlVars = that._getUrlVars(),\n data = that._queryDataCallback ? that._queryDataCallback.apply(null, [urlVars.params, urlVars.hash]) : {},\n requestParam = \"\",\n path = that._stepData.getDataEndpoint;\n for (var key in data) {\n if (requestParam != \"\") {\n requestParam += \"&\";\n }\n requestParam += key + \"=\" + encodeURIComponent(data[key]);\n }\n path = path.indexOf('?') == -1 ? path + '?' + requestParam : path + '&' + requestParam;\n $.ajax({\n url: path,\n type: 'GET'\n }).then(function (data) {\n that._stepData.data = data;\n that._nextInQueue();\n }, function (jqXHR, textStatus, msg) {\n that._stepData.data = null;\n that._nextInQueue();\n });\n });\n }\n // load storage if any !!\n if (that._stepData.getStorageEndpoint) {\n that._queue.push(function () {\n $.ajax({\n url: that._stepData.getStorageEndpoint,\n type: 'GET'\n }).then(function (data) {\n that._stepData.storageData = data;\n that._nextInQueue();\n }, function (jqXHR, textStatus, msg) {\n that._stepData.storageData = null;\n that._nextInQueue();\n });\n });\n }\n\n // get buildconfig\n that._queue.push(function () {\n var _buildConfig = that._steps[that._step].apply(null, [that._stepData, that._$target]);\n if (_buildConfig) window.DGS.Builder.getInstance().build(_buildConfig);\n that._nextInQueue();\n });\n if (onReadyHandler) {\n that._queue.push(function () {\n onReadyHandler.apply(null, [that._step, that._stepData]);\n });\n }\n }\n that._nextInQueue();\n });\n });\n this._nextInQueue();\n },\n addNextStepToUrl: function addNextStepToUrl(url) {\n if (url.indexOf('?') > -1) {\n url += \"&\";\n } else {\n url += \"?\";\n }\n url += \"s=\" + ++this._step;\n return url;\n },\n submitStorageData: function submitStorageData(data, onSuccess, onError) {\n data[\"step\" + this._step + \"Location\"] = window.location.href;\n this._submitData(data, this._stepData.setStorageEndpoint, onSuccess, onError);\n },\n submitApiData: function submitApiData(data, onSuccess, onError) {\n this._submitData(data, this._stepData.setEndpointData, onSuccess, onError);\n },\n getPrevStepLocation: function getPrevStepLocation() {\n if (this._stepData.storageData) {\n var key = 'step' + (this._step - 1) + 'Location',\n prevLocation = this._stepData.storageData[key];\n if (prevLocation) {\n return prevLocation;\n }\n }\n return null;\n },\n getNextStepLocation: function getNextStepLocation() {\n var targetUrl = this._stepData.targetUrl.url;\n // success. Go to next step\n if (targetUrl) {\n return this.addNextStepToUrl(targetUrl);\n }\n return null;\n },\n nextStep: function nextStep() {\n var targetUrl = this._stepData.targetUrl.url;\n // success. Go to next step\n if (targetUrl) {\n window.location = this.addNextStepToUrl(targetUrl);\n }\n }\n };\n return builder;\n }\n };\n }();\n})(jQuery, window.DGS);","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\n(function ($) {\n window.DGS.OnLoad.getInstance().register(function () {\n var centerLocatorComponent = $('.distributor-locator');\n var isFromSearch = false;\n var initRun = true;\n if (centerLocatorComponent != 'undefined' && centerLocatorComponent.length > 0) {\n var initializeMap = function initializeMap() {\n getCenters();\n };\n var getCenters = function getCenters() {\n centerLocatorComponent.find('.search-field').val('');\n url = baseUrl + '/getdistributors/_';\n ACTION.push(35 + ' getallcenters, url: ' + url);\n clearMarkersLocal();\n };\n var getCentersByPostalCode = function getCentersByPostalCode(search) {\n url = baseUrl + '/getdistributorbysearch/_/' + search;\n var searchedLat;\n var searchedLng;\n var searchedPost;\n $.ajax({\n url: url,\n type: 'GET',\n dataType: 'json',\n success: function success(data, textStatus, xhr) {\n resetMarkers(0);\n clearInfoWindow();\n var noResultsMsg = centerLocatorComponent.find('.no-results-message');\n //$('.single-center').closest('.gm-style-iw').parent().hide();\n //console.log('lat up ' + data.Distributors[0].Coordinate.Latitude);\n //console.log('long up ' + data.Distributors[0].Coordinate.Longitude);\n\n if (data.Distributors[0].Coordinate == null) {\n showHideClass(false, noResultsMsg);\n if (noResultsMsg != null) noResultsMsg.html(centerLocatorComponent.find('.search').data('nosearchresults'));\n } else {\n showHideClass(true, noResultsMsg);\n var latLng = new google.maps.LatLng(data.Distributors[0].Coordinate.Latitude, data.Distributors[0].Coordinate.Longitude);\n map.panTo(latLng);\n map.setZoom(13);\n\n //show inforWindow on success\n var center = data.Distributors[0];\n var singleCenterTemplate = $(\"#single-center-template\").html();\n var centerDiv = singleCenterTemplate.format(center.Name, center.Address, center.EmailAddress, center.FaxNumber, center.PhoneNumber, center.MobileNumber, center.Id);\n centerDiv = validateCenterDiv(centerDiv, center.EmailAddress, center.FaxNumber, center.MobileNumber, center.PhoneNumber);\n var infoWindow = new google.maps.InfoWindow({\n content: centerDiv,\n id: center.Id\n });\n if (openInfoWindows.length > 0) {\n $.each(openInfoWindows, function (index, openInfoWindow) {\n if (infoWindow.content !== openInfoWindow.content) {\n openInfoWindow.close();\n } else if (infoWindow.title === openInfoWindow.title) {\n return;\n }\n });\n }\n var theMarker = '';\n jQuery.grep(markersArray, function (n, i) {\n if (n.id == center.Id) {\n theMarker = markersArray[i];\n return;\n }\n });\n infoWindow.open(map, theMarker);\n window.DGS.Event.getInstance().trigger(window.DGS.Events.DISTRIBUTOR_LOCATOR_OPEN_INFO_WINDOW);\n openInfoWindows.push(infoWindow);\n if (selectedMarker) {\n selectedMarker.setIcon(defaultSettings.markers.defaultMarker);\n }\n theMarker.setIcon(defaultSettings.markers.selectedMarker);\n selectedMarker = theMarker;\n google.maps.event.addListener(infoWindow, 'closeclick', function (e) {\n resetMarkers(0);\n clearInfoWindow();\n });\n resetMarkers(data.Distributors[0].Id);\n if ($(document).width() > 768 && $(document).width() < 1024) {\n map.panBy(-200, -100);\n }\n }\n }\n });\n };\n var validateCenterDiv = function validateCenterDiv(centerDiv, emailAddress, faxNumber, mobileNumber, phoneNumber) {\n var $centerDiv = $(centerDiv);\n var emailDiv = $centerDiv.find('.center-email');\n var faxDiv = $centerDiv.find('.center-fax');\n var phoneDiv = $centerDiv.find('.center-phone');\n var mobileDiv = $centerDiv.find('.center-mobilephone');\n if (emailAddress == '') showHideClass(true, emailDiv);\n if (faxNumber == '') showHideClass(true, faxDiv);\n if (mobileNumber == '') showHideClass(true, mobileDiv);\n if (phoneNumber == '') showHideClass(true, phoneDiv);\n return $centerDiv[0];\n };\n var getAllCenters = function getAllCenters(url, singelton, mapUpDate) {\n singelton = singelton || false;\n mapUpDate = mapUpDate || false;\n url = url || false;\n ACTION.push(72 + ' getAllCenters, url: ' + url + ', singelton: ' + singelton + ', mapUpDate: ' + mapUpDate);\n centers = null;\n setting = null;\n searchAktiv = false;\n var noResultsMsg = centerLocatorComponent.find('.no-results-message');\n $.ajax({\n url: url,\n type: 'GET',\n dataType: 'json',\n success: function success(data, textStatus, xhr) {\n // Updates the map settings, look markers and so on...\n if (!mapSetUpdated && data.Settings.MapConfiguration != '') {\n userLocation.unit = data.Settings.Unit;\n var mapSet = JSON.parse(data.Settings.MapConfiguration);\n defaultSettings = $.extend({}, defaultSettings, mapSet);\n mapSetUpdated = true;\n mapStyle = {\n gridSize: data.Settings.ClusterGridSize,\n maxZoom: data.Settings.ClusterMaxZoom,\n styles: [{\n textColor: 'white',\n height: 45,\n url: defaultSettings.clusters.clusterSize1,\n width: 46\n }, {\n height: 49,\n textColor: 'white',\n url: defaultSettings.clusters.clusterSize2,\n width: 50\n }, {\n height: 50,\n textColor: 'white',\n url: defaultSettings.clusters.clusterSize3,\n width: 50\n }, {\n height: 70,\n textColor: 'white',\n url: defaultSettings.clusters.clusterSize4,\n width: 70\n }, {\n height: 90,\n textColor: 'white',\n url: defaultSettings.clusters.clusterSize5,\n width: 90\n }]\n };\n }\n // Updates the selected center data...\n if (!singelton) {\n centers = data.Distributors;\n setting = data.Settings;\n if (centers == null) {\n showHideClass(false, noResultsMsg);\n if (noResultsMsg != null) noResultsMsg.html(centerLocatorComponent.find('.search').data('nosearchresults'));\n } else {\n showHideClass(true, noResultsMsg);\n }\n ACTION.push(121 + ' Updates the selected center data ', setting);\n if (mapUpDate) {\n ACTION.push(123 + ' set bounds ');\n if (setting.Bounds.ShowMap || setting.ShowMap) {\n if (isFromSearch && setting.Query != null) {\n var strLatitude = setting.Query.split(',')[0];\n var strLongitude = setting.Query.split(',')[1];\n var pos = new google.maps.LatLng(strLatitude, strLongitude);\n map.setCenter(pos);\n if ($(document).width() > 768 && $(document).width() < 1024) {\n map.panBy(200, -100);\n }\n } else {\n var usrLatitude = $thisSpot.data('userlat');\n var usrLongitude = $thisSpot.data('userlong');\n if (usrLatitude.length < 1) {\n usrLatitude = 0;\n }\n if (usrLongitude.length < 1) {\n usrLongitude = 0;\n }\n if (usrLatitude != 0 || usrLongitude != 0) {\n var pos = new google.maps.LatLng(usrLatitude, usrLongitude);\n drawMap(setting.ZoomLevel, pos);\n } else {\n var pos = new google.maps.LatLng(setting.Bounds.SouthWest.Latitude, setting.Bounds.NorthEast.Longitude),\n swb1 = setting.Bounds.SouthWest.Latitude,\n swb2 = setting.Bounds.SouthWest.Longitude,\n neb1 = setting.Bounds.NorthEast.Latitude,\n neb2 = setting.Bounds.NorthEast.Longitude,\n southWest = new google.maps.LatLng(swb1, swb2),\n northEast = new google.maps.LatLng(neb1, neb2),\n bounds = new google.maps.LatLngBounds(southWest, northEast);\n ACTION.push(133 + ' drawMap ');\n drawMap(setting.ZoomLevel, pos);\n map.fitBounds(bounds);\n }\n }\n mapUpDate = false;\n }\n }\n setUpCenterList(mapUpDate);\n }\n },\n error: function error(xhr, textStatus, errorThrown) {}\n });\n };\n var clearInfoWindow = function clearInfoWindow() {\n $('.single-center').closest('.gm-style-iw').parent().hide();\n };\n var showHideClass = function showHideClass(status, div) {\n status = status || false;\n if (status) {\n div.hide();\n } else {\n div.show();\n }\n };\n var setUpCenterList = function setUpCenterList(mapUpDate) {\n mapUpDate = mapUpDate || false;\n ACTION.push(166 + ' ! setUpCenterList ! mapUpDate:', mapUpDate, ' numberOfElements : ', numberOfElements);\n if (centers != null) {\n numberOfElements = centers.length;\n if (numberOfElements == 0) numberOfElements = setting.ListCount;\n ACTION.push(170 + ' numberOfElements : ' + numberOfElements);\n for (var i = 0; i < numberOfElements; i++) {\n var center = centers[i];\n if (setting.ShowMap && firstRun) {\n var singleCenterTemplate = $(\"#single-center-template\").html();\n var centerDiv = singleCenterTemplate.format(center.Name, center.Address, center.EmailAddress, center.FaxNumber, center.PhoneNumber, center.MobileNumber, center.Id);\n centerDiv = validateCenterDiv(centerDiv, center.EmailAddress, center.FaxNumber, center.MobileNumber, center.PhoneNumber);\n addMarkers(center.Coordinate.Latitude, center.Coordinate.Longitude, center.Name, center.Id, centerDiv);\n } else {\n addMarkers(center.Coordinate.Latitude, center.Coordinate.Longitude, center.Name, center.Id);\n }\n }\n if (mc != undefined && mc != null) mc.clearMarkers();\n mc = new MarkerClusterer(map, markersArray, mapStyle);\n ACTION.push(181 + ' mapStyle : ', mapStyle);\n if (firstRun) {\n $('.search-field', $thisSpot).val();\n $('.search button', $thisSpot).on('click', function (e) {\n e.preventDefault();\n resetList();\n });\n $('.search', $thisSpot).on('keypress', function (e) {\n if (e.keyCode == 13) {\n e.preventDefault();\n resetList();\n }\n });\n var postal_cookie = window.DGS.Cookies.getInstance().readCookie(\"postal_code\");\n if (postal_cookie !== null) {\n $('.search-field', $thisSpot).val(postal_cookie);\n resetList();\n }\n $('.search', $thisSpot).submit(function (e) {\n e.preventDefault();\n resetList();\n });\n $('.zoom.control > .zoom-in, .zoom.control > .zoom-out', $thisSpot).on('click', function () {\n var zno = 16;\n if ($(this).hasClass('zoom-in')) {\n zno = Math.round(map.getZoom() + 1);\n } else {\n zno = Math.round(map.getZoom() - 1);\n if (zno < 2) {\n return;\n }\n if (zno < 4) {\n $('.single-center').closest('.gm-style-iw').parent().hide();\n }\n }\n map.setZoom(zno);\n var center = openInfoWindows[0].getPosition();\n map.setCenter(center);\n map.panBy(0, -200);\n });\n firstRun = false;\n google.maps.event.addListener(map, 'idle', function () {\n if (!firstRun) {\n var newCenter = map.getCenter(),\n newLat = newCenter.lat(),\n newLng = newCenter.lng();\n ACTION.push(226 + ' !firstRun calls getAllCCenters, newCenter: ' + newCenter + ', singelton: true');\n while (newLat > 180) newLat -= 180;\n while (newLat < -180) newLat += 180;\n while (newLng > 180) newLng -= 180;\n while (newLng < -180) newLng += 180;\n url = baseUrl + '/getcentersbycoordinate/' + getMarket() + '/' + newLat + \"/\" + newLng;\n if (newLat != oldLat && newLng != oldLng) {\n oldLat = newLat;\n oldLng = newLng;\n ACTION.push(235 + ' newLat : ' + url);\n }\n }\n ACTION.push(248 + ' getAllCenters, calPosition: ' + newCenter);\n window.DGS.Event.getInstance().trigger(window.DGS.Events.DISTRIBUTOR_LOCATOR_OPEN_INFO_WINDOW);\n });\n }\n ;\n $('.center-cta.button', $thisSpot).on('click', function (e) {\n e.preventDefault();\n window.open(\"https://maps.google.com?daddr=\" + $(this).attr('id'), \"_blank\", \"toolbar=no, scrollbars=no, resizable=yes, top=0, left=0, width=100%\");\n });\n if (infoWindows.length > 0) $('.center-content' + '#' + infoWindowID).addClass('open');\n $('.center-cta.button', $thisSpot).on('click', function (e) {\n e.preventDefault();\n window.open(\"https://maps.google.com?daddr=\" + $(this).attr('id'), \"_blank\", \"toolbar=no, scrollbars=no, resizable=yes, top=0, left=0, width=100%\");\n });\n }\n }; //Get Center by Search\n var resetList = function resetList() {\n var query = $('.search-field', $thisSpot).val();\n if (markersArray.length > 0) {\n markersArray[0].setMap(null);\n //markersArray = [];\n }\n if (query != '' && query != null & query != undefined) {\n clearInfoWindow();\n getCentersByPostalCode(query);\n }\n };\n var addMarkers = function addMarkers(latitude, longitude, name, guid, centerDiv) {\n var pos = new google.maps.LatLng(latitude, longitude);\n var infoWindow = new google.maps.InfoWindow({\n content: centerDiv,\n id: guid\n });\n var marker = new google.maps.Marker({\n position: pos,\n map: map,\n title: name,\n icon: defaultSettings.markers.defaultMarker,\n id: guid\n });\n markersArray.push(marker);\n google.maps.event.addListener(marker, 'click', function () {\n if (openInfoWindows.length > 0) {\n $.each(openInfoWindows, function (index, openInfoWindow) {\n if (infoWindow.content !== openInfoWindow.content) {\n openInfoWindow.close();\n } else if (infoWindow.title === openInfoWindow.title) {\n return;\n }\n });\n }\n infoWindow.open(map, this);\n openInfoWindows.push(infoWindow);\n if (selectedMarker) {\n selectedMarker.setIcon(defaultSettings.markers.defaultMarker);\n }\n marker.setIcon(defaultSettings.markers.selectedMarker);\n selectedMarker = marker;\n resetResult($(this));\n $('.single-center').closest('.gm-style-iw').parent().hide();\n map.panTo(this.getPosition());\n map.setZoom(13);\n $('#' + guid).closest('.gm-style-iw').parent().show();\n window.DGS.Event.getInstance().trigger(window.DGS.Events.DISTRIBUTOR_LOCATOR_OPEN_INFO_WINDOW);\n //$('#' + guid).append(\"
    \");\n if ($(document).width() > 768 && $(document).width() < 1024) {\n map.panBy(-200, -100);\n }\n });\n google.maps.event.addListener(infoWindow, 'closeclick', function (e) {\n resetMarkers(0);\n clearInfoWindow();\n });\n };\n var resetResult = function resetResult(that) {\n if (that.hasClass('center-content')) {\n if (that.hasClass('open')) {\n that.removeClass('open');\n //if ($thisSpot.hasClass('mobile-view')) {\n // that.find('.single-center').hide();\n // console.log('HVAD NU? :', $('.single-center'));\n //}\n resetMarkers(0);\n clearInfoWindow();\n } else {\n var mID = that.attr('id');\n resetMarkers(mID);\n }\n } else {\n var mID = that.attr('id');\n resetMarkers(mID);\n }\n };\n var resetMarkers = function resetMarkers(id) {\n for (var a = 0; a < markersArray.length; a++) {\n markersArray[a].setIcon(defaultSettings.markers.defaultMarker);\n if (markersArray[a].id == id) markersArray[a].setIcon(defaultSettings.markers.selectedMarker);\n }\n //setDetails(id);\n };\n var clearMarkersLocal = function clearMarkersLocal() {\n for (var i = 0; i < markersArray.length; i++) {\n markersArray[i].setMap(null);\n }\n markersArray = [];\n ACTION.push(345 + ' HHHHHHHHHHHHHHHHHHH clearMarkersLocal markersArray: ', markersArray);\n markersArray = new Array();\n firstRun = true;\n getAllCenters(url, false, true);\n if (mc != undefined) mc.clearMarkers();\n };\n var drawMap = function drawMap(zoom, pos) {\n zoom = zoom || 10;\n var isDraggable = $(document).width() > 480 ? true : false;\n ACTION.push(353 + ' DRAWMAP, zoom: ' + zoom + ' pos: ' + pos + ' map: ' + map);\n if (map == undefined) {\n var mapOptions = {\n draggable: isDraggable,\n panControl: true,\n scrollwheel: false,\n zoom: 10,\n zoomControl: true,\n center: pos,\n disableDefaultUI: true,\n key: 'AIzaSyDLUitCuNZK9T-RVR9cjuh9Js6Q-vcv-BU',\n zoomControlOptions: {\n position: google.maps.ControlPosition.RIGHT_TOP,\n style: google.maps.ZoomControlStyle.SMALL\n }\n };\n map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions);\n map.set('styles', defaultSettings.googlemap);\n }\n };\n var getMarket = function getMarket() {\n return $thisSpot.data('configuration');\n }; //Method to get the single center data when the individual center is clicked\n var setDetails = function setDetails(guid) {\n $('#' + guid).show();\n };\n /* Add format as function to strings - used for template */\n String.prototype.format = function () {\n var args = arguments;\n return this.replace(/{(\\d+)}/g, function (match, number) {\n return typeof args[number] != 'undefined' ? args[number] : match;\n });\n };\n var consoleON = false,\n firstRun = true,\n country = 'us.json',\n testData = [country, 'ip.json', 'manhatten.json'],\n centers = null,\n setting = null,\n oldLng = '',\n oldLat = oldLng,\n url = oldLat,\n locationCheck = false;\n var actionsListen = function actionsListen() {\n var ACTION = [];\n ACTION.push = function () {\n if (consoleON) return Array.prototype.push.apply(this, arguments);\n };\n return ACTION;\n };\n var ACTION = new actionsListen();\n var defaultSettings = {\n markers: {\n defaultMarker: '~/media/oticon/main/mockup/oticon-marker.png',\n selectedMarker: '~/media/oticon/main/mockup/oticon-marker-aktiv.png',\n geoMarker: '~/media/oticon/main/mockup/oticon-marker-home.png'\n },\n clusters: {\n clusterSize1: '~/media/oticon/main/mockup/m1.png',\n clusterSize2: '~/media/oticon/main/mockup/m2.png',\n clusterSize3: '~/media/oticon/main/mockup/m3.png',\n clusterSize4: '~/media/oticon/main/mockup/m4.png',\n clusterSize5: '~/media/oticon/main/mockup/m5.png'\n },\n googlemap: [{\n featureType: 'road.highway',\n elementType: 'geometry',\n stylers: [{\n color: '#FFFFFF'\n }, {\n weight: 1\n }]\n }, {\n featureType: 'road.highway',\n elementType: 'labels',\n stylers: [{\n visibility: 'off'\n }]\n }]\n };\n var map,\n searchAktiv = false,\n infoWindows = [],\n openInfoWindows = [],\n infoWindowID = 0,\n baseUrl = '/webservices/distributor.svc',\n numberOfElements = 0,\n markersArray = [],\n selectedMarker = false,\n noScrollWheel = false,\n mapSetUpdated = false,\n userLocation = {\n ip: true,\n lat: 0,\n lng: 0,\n unit: 'KM'\n },\n $thisSpot = $('.distributor-locator'),\n //$result = $('.result', $thisSpot),\n mc;\n var mapStyle = {};\n //if (document.location.hostname == \"localhost\") baseUrl = 'http://oticon.local.cas.dgs.com/webservices/centerlocator.svc';\n\n if (/Android|webOS|iPhone|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)) noScrollWheel = true;\n if (noScrollWheel || window.matchMedia(\"(max-width: 800px)\").matches) {\n //sin$result.addClass('mobile-view');\n $thisSpot.addClass('mobile-view');\n }\n if ((typeof google === \"undefined\" ? \"undefined\" : _typeof(google)) === 'object' && _typeof(google.maps) === 'object') {\n initializeMap();\n }\n }\n });\n\n // Add a new event to the DGS.Events list\n window.DGS.Events = window.DGS.Events || {};\n $.extend(window.DGS.Events, {\n DISTRIBUTOR_LOCATOR_OPEN_INFO_WINDOW: \"distributorLocatorOpenInfoWindow\"\n });\n})(jQuery);","/* eslint-disable */\n(function ($) {\n var selectors = {\n scfForm: '.scfForm',\n scfTitleBorder: '.scfTitleBorder',\n scfIntroBorder: '.scfIntroBorder',\n scfValidationSummary: '.scfValidationSummary',\n scfSubmitSummary: '.scfSubmitSummary',\n scfSectionBorder: '[class*=\"scf\"][class*=\"SectionBorder\"]',\n scfSectionLegend: '.scfSectionLegend',\n scfSectionContent: '.scfSectionContent',\n scfEntry: '[class*=\"name.\"]',\n scfLabel: '[class*=\"scf\"][class*=\"Label\"]',\n scfGeneralPanel: '[class*=\"scf\"][class*=\"GeneralPanel\"]',\n scfUsefulInfo: '[class*=\"scf\"][class*=\"UsefulInfo\"]',\n scfValidator: '.scfValidator',\n scfRequired: '[class*=\"scf\"][class*=\"Required\"]',\n scfFooterBorder: '.scfFooterBorder',\n scfSubmitButtonBorder: '.scfSubmitButtonBorder',\n scfValidatorRequired: '.scfValidatorRequired'\n };\n var methods = {\n init: function init(options) {\n var settings = $.extend({}, $.fn.wffm.defaults, options);\n if (settings.showValidatorsOnErrors) {\n // SHOW validator hints when field has error\n getEntries(this).each(function () {\n if (hasErrors($(this))) {\n $(selectors.scfValidator, $(this)).show();\n }\n });\n }\n if (settings.moveAsteriskToLabel) {\n // MOVE scfRequired elements to label\n getEntries(this).each(function () {\n var $this = $(this),\n $label = getLabel($this),\n $required = getRequired($this);\n // MOVE scfRequired elements to label\n if ($required.length) {\n if ($label.text().indexOf('*') < 0) {\n // prevents double asterix\n $label.append($required);\n }\n } else {\n $label.append(' ');\n }\n });\n }\n if (getValidationSummaryItems(this).length > settings.maxEntriesInValidatorSummary) {\n // LIMIT number of items in validation summary\n $(selectors.scfValidationSummary, this).find(\"li:nth-child(1n + \".concat(settings.maxEntriesInValidatorSummary + 1, \")\")).hide();\n $(selectors.scfValidationSummary, this).find(\"li:nth-child(1n + \".concat(settings.maxEntriesInValidatorSummary, \")\")).text('...');\n }\n if (settings.niceSelectClass != null) {\n // ADD custom classes to jquery nice select - supports string and array of strings\n if (settings.niceSelectClass.constructor === Array) {\n settings.niceSelectClass.forEach(function (customClass) {\n $('.nice-select', this).addClass(customClass);\n });\n } else {\n $('.nice-select', this).addClass(settings.niceSelectClass);\n }\n }\n if (settings.usePhoneTypeInput) {\n $('.scfTelephoneTextBox', this).each(function () {\n $(this).attr('type', 'tel');\n });\n }\n\n // CLEAN UP OF MARKUP\n // HIDE empty scf***UsefulInfo tags - cleans i\n $(selectors.scfUsefulInfo, this).each(function () {\n if ($(this).text().trim() === '') {\n $(this).hide();\n }\n });\n // CLEAN UP OF MARKUP - end\n },\n entries: function entries() {\n return getEntries(this);\n },\n label: function label() {\n return getLabel(this);\n },\n required: function required() {\n return getRequired(this);\n },\n usefulInfo: function usefulInfo() {\n return $(selectors.scfUsefulInfo, this);\n },\n hasError: function hasError() {\n return hasErrors(this);\n },\n getElementsFromQuery: function getElementsFromQuery(query, context) {\n return $(query, context);\n }\n };\n $.fn.wffm = function (options) {\n methods.init.apply(this, [options]);\n var form = this;\n return {\n scfForm: function scfForm() {\n return methods.getElementsFromQuery(selectors.scfForm, form);\n },\n scfTitleBorder: function scfTitleBorder() {\n return methods.getElementsFromQuery(selectors.scfTitleBorder, form);\n },\n scfIntroBorder: function scfIntroBorder() {\n return methods.getElementsFromQuery(selectors.scfIntroBorder, form);\n },\n scfValidationSummary: function scfValidationSummary() {\n return methods.getElementsFromQuery(selectors.scfValidationSummary, form);\n },\n scfSubmitSummary: function scfSubmitSummary() {\n return methods.getElementsFromQuery(selectors.scfSubmitSummary, form);\n },\n scfSectionBorder: function scfSectionBorder() {\n return methods.getElementsFromQuery(selectors.scfSectionBorder, form);\n },\n scfSectionLegend: function scfSectionLegend() {\n return methods.getElementsFromQuery(selectors.scfSectionLegend, form);\n },\n scfSectionContent: function scfSectionContent() {\n return methods.getElementsFromQuery(selectors.scfSectionContent, form);\n },\n scfEntry: function scfEntry() {\n return methods.getElementsFromQuery(selectors.scfEntry, form);\n },\n scfLabel: function scfLabel() {\n return methods.getElementsFromQuery(selectors.scfLabel, form);\n },\n scfGeneralPanel: function scfGeneralPanel() {\n return methods.getElementsFromQuery(selectors.scfGeneralPanel, form);\n },\n scfUsefulInfo: function scfUsefulInfo() {\n return methods.getElementsFromQuery(selectors.scfUsefulInfo, form);\n },\n scfValidator: function scfValidator() {\n return methods.getElementsFromQuery(selectors.scfValidator, form);\n },\n scfValidatorRequired: function scfValidatorRequired() {\n return methods.getElementsFromQuery(selectors.scfValidatorRequired, form);\n },\n scfRequired: function scfRequired() {\n return methods.getElementsFromQuery(selectors.scfRequired, form);\n },\n scfFooterBorder: function scfFooterBorder() {\n return methods.getElementsFromQuery(selectors.scfFooterBorder, form);\n },\n scfSubmitButtonBorder: function scfSubmitButtonBorder() {\n return methods.getElementsFromQuery(selectors.scfSubmitButtonBorder, form);\n }\n };\n };\n\n // Public defaults\n $.fn.wffm.defaults = {\n showValidatorsOnErrors: true,\n moveAsteriskToLabel: false,\n maxEntriesInValidatorSummary: Number.MAX_SAFE_INTEGER,\n niceSelectClass: null,\n usePhoneTypeInput: false\n };\n\n // Private methods\n\n function getEntries($form) {\n var $elements = $([]);\n $(selectors.scfGeneralPanel, $form).each(function () {\n $elements = $elements.add($(this).parent());\n });\n return $elements;\n }\n function hasErrors($formOrEntry) {\n return $formOrEntry.find(selectors.scfValidatorRequired).length > 0;\n }\n function getLabel($formOrEntry) {\n return $(selectors.scfLabel, $formOrEntry);\n }\n function getRequired($formOrEntry) {\n return $(selectors.scfRequired, $formOrEntry);\n }\n function getValidationSummaryItems($form) {\n return $(selectors.scfValidationSummary, $form).find('li');\n }\n})(jQuery);","(function ($) {\n \"use strict\";\n\n window.DGS.OnLoad.getInstance().register(function () {\n $('.component.redirect-notification-spot').each(function () {\n var spot = $(this);\n if ($('.component-content *', spot).length > 0) {\n spot.css('display', 'block');\n $('.component-content', spot).after().click(function () {\n spot.hide();\n });\n }\n });\n });\n})(jQuery);","(function ($) {\n window.DGS.OnLoad.getInstance().register(function () {\n var equalWidth = function equalWidth() {\n var $groupList = $('.country-selector-item-wrapper'),\n i,\n $hlist,\n maxWidth;\n $groupList.each(function (event) {\n var $hList = $('li > :not(a)', $(this));\n $hList.width('auto');\n maxWidth = -1;\n $hList.each(function (event) {\n maxWidth = Math.max(Math.ceil(this.getBoundingClientRect().width), maxWidth);\n });\n $hList.width(maxWidth);\n });\n };\n window.DGS.Resizer.getInstance().register(equalWidth);\n });\n})(jQuery);","(function ($) {\n window.DGS.OnLoad.getInstance().register(function () {\n var animateOut = function animateOut($target, callback) {\n var winWidth = $(window).width() + $target.width() + 200,\n t = new TimelineMax();\n t.to($target, 0.8, {\n x: -400,\n ease: Power2.easeOut\n });\n t.to($target, 0.6, {\n alpha: 0,\n ease: Power2.easeOut\n }, '-=.8');\n t.set($target, {\n display: 'none'\n });\n t.call(callback);\n },\n animateIn = function animateIn($target) {\n var winWidth = $(window).width() + $target.width() + 200,\n t = new TimelineMax();\n t.set($target, {\n x: 400,\n alpha: 0\n });\n t.set($target, {\n display: 'block'\n });\n t.to($target, 0.8, {\n x: 0,\n ease: Power2.easeOut\n });\n t.to($target, 0.8, {\n alpha: 1,\n ease: Power2.easeOut\n }, '-=.6');\n },\n animateBanner = function animateBanner($target) {\n var currentHeight = $target.css('height'),\n t = new TimelineMax();\n t.set($target, {\n height: 'auto'\n });\n t.from($target, 1, {\n height: currentHeight\n });\n t.set($target, {\n autoAlpha: 1\n });\n t.from($target, 1.3, {\n autoAlpha: 0\n });\n },\n track = function track(trackingKey) {\n if (typeof console !== 'undefined') console.debug(trackingKey);\n };\n $('#wrapper .screening-test-spot').each(function () {\n var $spot = $(this),\n $startTest = $('.start-test', $spot),\n $questionBtns = $('.questions li .button.no-icon', $spot),\n $screens = $('.questions-intro, .questions > ul > li:not(.screening-test-result-container), .screening-test-result, .component-content', $spot),\n currentScore = 0;\n window.DGS.EqualHeight.getInstance().register($screens, true);\n $startTest.click(function (e) {\n e.preventDefault();\n var $firstQuestion = $('.questions li:first-child'),\n trackingKey = $firstQuestion.data('tracking-key');\n animateOut($('.questions-intro', $spot), function () {\n track(trackingKey);\n animateIn($firstQuestion);\n });\n });\n $questionBtns.click(function (e) {\n e.preventDefault();\n var $next = $(this).parent().next();\n currentScore += parseInt($(e.target).data('score'));\n animateOut($(this).parent(), function () {\n if ($next.hasClass('screening-test-result-container')) {\n $('.screening-test-result', $next).each(function () {\n var minScore = $(this).data('min-score'),\n maxScore = $(this).data('max-score');\n if (parseInt(minScore) <= currentScore && currentScore <= parseInt(maxScore)) {\n track($(this).data('tracking-key'));\n animateBanner($(this));\n $(this).css('display', 'block').css('overflow', 'visible');\n $next.show();\n }\n });\n } else {\n track($next.data('tracking-key'));\n animateIn($next);\n }\n });\n });\n });\n });\n})(jQuery);","(function ($, DGS) {\n \"use strict\";\n\n DGS.OnLoad.getInstance().register(function () {\n DGS.Components.DataHierarchySpot.getInstance().register(\"dataset\", getBuildConfiguration, postBuildActions);\n });\n function getBuildConfiguration(data, $spot) {\n var groups = [];\n if (data.hasOwnProperty('Group')) {\n data['Group'].forEach(function (group) {\n var entries = [],\n groupContainer,\n $groupTitle,\n $groupSubtitle,\n $entry;\n if (group.title !== undefined && group.title !== '') {\n $groupTitle = $('

    ' + group.title + '

    ');\n }\n if (group.subtitle !== undefined && group.subtitle !== '') {\n $groupSubtitle = $('' + group.subtitle + '');\n }\n if (group.hasOwnProperty('EntryGroup')) {\n group['EntryGroup'].forEach(function (entryGroup) {\n var $entryGroup = $('
    ');\n var subentries = [];\n if (entryGroup.hasOwnProperty('Entry')) {\n entryGroup['Entry'].forEach(function (subentry) {\n buildSubEntry(subentry, subentries);\n });\n }\n $entryGroup.html(subentries);\n entries.push($entryGroup);\n });\n }\n if (group.hasOwnProperty('EntryRichText')) {\n group['EntryRichText'].forEach(function (entry) {\n buildRichTextEntry(entry, entries);\n });\n }\n if (group.hasOwnProperty('Entry')) {\n group['Entry'].forEach(function (entry) {\n buildEntry(entry, entries);\n });\n }\n groupContainer = buildContainer($groupTitle, $groupSubtitle, entries, 'group');\n groups.push(groupContainer);\n });\n }\n return {\n mainContainer: $('.component-content', $spot),\n sections: {\n desktop: {\n containers: groups\n }\n }\n };\n }\n function getClasses(entry) {\n var classes = \"\";\n if (entry.style !== undefined) {\n classes = \" \" + entry.style;\n }\n return classes;\n }\n function buildSubEntry(entry, entries) {\n if (entry.text !== undefined) {\n var $entry = $('
    ' + entry.text + '
    ');\n entries.push($entry);\n }\n }\n function buildEntry(entry, entries) {\n if (entry.text !== undefined) {\n var $entry = $('
    ' + entry.text + '
    ');\n entries.push($entry);\n }\n }\n function buildRichTextEntry(entry, entries) {\n if (entry.text !== undefined) {\n var $entry = $('
    ' + entry.text + '
    ');\n entries.push($entry);\n }\n }\n function buildContainer($groupTitle, $groupSubtitle, entries, className) {\n var groupContainer;\n if ($groupTitle !== undefined && $groupSubtitle !== undefined) {\n groupContainer = {\n className: className,\n containers: [{\n className: className + '__title',\n components: [$groupTitle, $groupSubtitle]\n }, {\n className: 'entries',\n components: entries\n }]\n };\n } else {\n groupContainer = {\n className: 'group',\n containers: [{\n className: 'entries',\n components: entries\n }]\n };\n }\n return groupContainer;\n }\n function postBuildActions($spot) {\n var $groupContainer = $('.desktop-section > .inner-container', $spot);\n $groupContainer.addClass('clearfix');\n $('.entry-group', $spot).addClass('clearfix');\n DGS.Resizer.getInstance().register(function () {\n var $tableentries = $('.data-hierarchy-spot.dataset:not(.grid-data) .component-content .entries .inner-container > .entry'),\n $entrygroups = $('.data-hierarchy-spot.dataset:not(.grid-data) .component-content .entries .inner-container > .entry-group'),\n $gridEntriesTop = $('.data-hierarchy-spot.grid-data .component-content .group:nth-child(-n+2)'),\n $gridEntriesBottom = $('.data-hierarchy-spot.grid-data .component-content .group:nth-child(n+3)');\n if (!window.matchMedia('(max-width: 991px)').matches) {\n DGS.EqualHeight.getInstance().trigger($tableentries, true);\n DGS.EqualHeight.getInstance().trigger($entrygroups, true);\n DGS.EqualHeight.getInstance().trigger($gridEntriesTop, true);\n DGS.EqualHeight.getInstance().trigger($gridEntriesBottom, true);\n } else {\n $gridEntriesTop.css(\"height\", \"auto\");\n $gridEntriesBottom.css(\"height\", \"auto\");\n $tableentries.css(\"height\", \"auto\");\n }\n });\n }\n})(jQuery, window.DGS);","/* eslint-disable prefer-arrow-callback */\n/* eslint-disable no-inner-declarations */\n(function ($) {\n window.DGS.OnLoad.getInstance().register(function () {\n if ($('#wrapper .sales-rep-contact').length) {\n var radioButtonLabelHandler = function radioButtonLabelHandler() {\n $radioButtonInputLabel.on('click', function () {\n $radioButtonInputLabel.removeClass('checked');\n $radioButtonInputLabel.each(function () {\n $(this).parent()[0].children[0].removeAttribute('checked', 'checked');\n });\n });\n $radioButtonInputLabel.each(function () {\n $(this).on('click', function () {\n $(this).addClass('checked');\n $radioButtonInputLabel.removeClass('unchecked');\n $(this).parent()[0].children[0].setAttribute('checked', 'checked');\n });\n });\n };\n var focusHandler = function focusHandler() {\n $inputs.focusin(function () {\n $(\"#\".concat($(this).attr('id'), \"_scope label\")).addClass('isFocus');\n });\n $inputs.focusout(function () {\n if (!$(\"#\".concat($(this).attr('id'), \"_scope input\")).val()) {\n $(\"#\".concat($(this).attr('id'), \"_scope label\")).removeClass('isFocus');\n }\n submitFormFunction.preValidation(this);\n });\n };\n var checkInputFieldValidation = function checkInputFieldValidation() {\n for (var i = 0; i < $inputFields.length; i++) {\n if ($('.scfValidatorRequired').length > 0 && $inputFields[i].value === '') {\n $inputFields[i].classList.add('inputError');\n $inputFields[i].blur();\n }\n for (var j = 0; j < $labels.length; j++) {\n if ($labels[j].getAttribute('for') === $inputFields[i].getAttribute('id') && $inputFields[i].value !== '') {\n $labels[j].classList.add('isFocus');\n }\n }\n }\n };\n var validateRadioButton = function validateRadioButton() {\n var $scfRadioButtonList = document.querySelectorAll('.scfRadioButtonList');\n $scfRadioButtonList.forEach(function (list) {\n var radio = list.querySelectorAll('.radioButton');\n var listIsChecked = checkParentRadioList(list);\n for (var i = 0; i < radio.length; i++) {\n if ($('.scfValidatorRequired').length > 0 && !listIsChecked) {\n radio[i].classList.add('unchecked');\n } else {\n if (radio[i].parentNode.children[0].checked) {\n radio[i].classList.add('checked');\n }\n radio[i].classList.remove('unchecked');\n }\n }\n });\n };\n // There are no sitecore sales rep contact form components on page. Break out\n $(\"