{"mappings":"kpBAsBA,IAAuBA,EACDC,mFArBtB,IAAIC,EAAU,GAoBdF,WAlBkBG,GAGhB,IAFA,IAAIC,EAAOC,OAAOD,KAAKD,GAEdG,EAAI,EAAGA,EAAIF,EAAKG,OAAQD,IAC/BJ,EAAQE,EAAKE,IAAMH,EAAMC,EAAKE,KAelCL,WAXiBO,GACf,IAAIC,EAAWP,EAAQM,GAEvB,GAAgB,MAAZC,EACF,MAAM,IAAIC,MAAM,oCAAsCF,GAGxD,OAAOC,kDCQCE,EAAQC,EAAQC,YAEjBC,EAAKC,GACZ,IAgDIC,EAhDAC,EAAKC,KAAMC,GAgDXH,EAAI,WAEG,SAASI,GAClBA,EAAOC,OAAOD,GACd,IAAK,IAAId,EAAI,EAAGA,EAAIc,EAAKb,OAAQD,IAAK,CAEpC,IAAIgB,EAAI,oBADRN,GAAKI,EAAKG,WAAWjB,IAGrBgB,GADAN,EAAIM,IAAM,EAGVN,GADAM,GAAKN,KACK,EAEVA,GAAS,YADTM,GAAKN,GAGP,OAAmB,wBAAXA,IAAM,KA5DhBC,EAAGO,KAAO,WACR,IAAIC,EAAI,QAAUR,EAAGS,GAAY,uBAAPT,EAAGU,EAG7B,OAFAV,EAAGS,GAAKT,EAAGW,GACXX,EAAGW,GAAKX,EAAGY,GACJZ,EAAGY,GAAKJ,GAAKR,EAAGU,EAAQ,EAAJF,IAI7BR,EAAGU,EAAI,EACPV,EAAGS,GAAKP,EAAK,KACbF,EAAGW,GAAKT,EAAK,KACbF,EAAGY,GAAKV,EAAK,KACbF,EAAGS,IAAMP,EAAKJ,GACVE,EAAGS,GAAK,IAAKT,EAAGS,IAAM,GAC1BT,EAAGW,IAAMT,EAAKJ,GACVE,EAAGW,GAAK,IAAKX,EAAGW,IAAM,GAC1BX,EAAGY,IAAMV,EAAKJ,GACVE,EAAGY,GAAK,IAAKZ,EAAGY,IAAM,GAC1BV,EAAO,cAGAW,EAAKC,EAAGN,GAKf,OAJAA,EAAEE,EAAII,EAAEJ,EACRF,EAAEC,GAAKK,EAAEL,GACTD,EAAEG,GAAKG,EAAEH,GACTH,EAAEI,GAAKE,EAAEF,GACFJ,WAGAO,EAAKjB,EAAMkB,GAClB,IAAIC,EAAK,IAAIpB,EAAKC,GACdoB,EAAQF,GAAQA,EAAKE,MACrBC,EAAOF,EAAGV,KAUd,OATAY,EAAKC,MAAQ,WAAa,OAAoB,WAAZH,EAAGV,OAAwB,GAC7DY,EAAKE,OAAS,WACZ,OAAOF,IAAmC,uBAAhB,QAATA,IAAoB,IAEvCA,EAAKG,MAAQH,EACTD,IACmB,iBAAVA,GAAoBL,EAAKK,EAAOD,GAC3CE,EAAKD,MAAQ,WAAa,OAAOL,EAAKI,EAAI,MAErCE,EAyBLxB,GAAUA,EAAO4B,QACnB5B,EAAO4B,QAAUR,EACRnB,GAAUA,EAAO4B,IAC1B5B,GAAO,WAAa,OAAOmB,KAE3Bd,KAAKwB,KAAOV,GAIZd,EAC+BN,EACZ,mBAAXC,QAAyBA,uDC3GzBF,EAAQC,EAAQC,YAEjB8B,EAAO5B,GACd,IAAIE,EAAKC,KAAM0B,EAAU,GAEzB3B,EAAG4B,EAAI,EACP5B,EAAG6B,EAAI,EACP7B,EAAG8B,EAAI,EACP9B,EAAG+B,EAAI,EAGP/B,EAAGO,KAAO,WACR,IAAIC,EAAIR,EAAG4B,EAAK5B,EAAG4B,GAAK,GAIxB,OAHA5B,EAAG4B,EAAI5B,EAAG6B,EACV7B,EAAG6B,EAAI7B,EAAG8B,EACV9B,EAAG8B,EAAI9B,EAAG+B,EACH/B,EAAG+B,GAAM/B,EAAG+B,IAAM,GAAMvB,EAAKA,IAAM,GAGxCV,KAAiB,EAAPA,GAEZE,EAAG4B,EAAI9B,EAGP6B,GAAW7B,EAIb,IAAK,IAAIkC,EAAI,EAAGA,EAAIL,EAAQrC,OAAS,GAAI0C,IACvChC,EAAG4B,GAA6B,EAAxBD,EAAQrB,WAAW0B,GAC3BhC,EAAGO,gBAIEM,EAAKC,EAAGN,GAKf,OAJAA,EAAEoB,EAAId,EAAEc,EACRpB,EAAEqB,EAAIf,EAAEe,EACRrB,EAAEsB,EAAIhB,EAAEgB,EACRtB,EAAEuB,EAAIjB,EAAEiB,EACDvB,WAGAO,EAAKjB,EAAMkB,GAClB,IAAIC,EAAK,IAAIS,EAAO5B,GAChBoB,EAAQF,GAAQA,EAAKE,MACrBC,EAAO,WAAa,OAAQF,EAAGV,SAAW,GAAK,YAenD,OAdAY,EAAKE,OAAS,cAEV,IAEIY,IAFMhB,EAAGV,SAAW,KACbU,EAAGV,SAAW,GAAK,YACF,cACV,IAAX0B,GACT,OAAOA,GAETd,EAAKC,MAAQH,EAAGV,KAChBY,EAAKG,MAAQH,EACTD,IACmB,iBAAVA,GAAoBL,EAAKK,EAAOD,GAC3CE,EAAKD,MAAQ,WAAa,OAAOL,EAAKI,EAAI,MAErCE,EAGLxB,GAAUA,EAAO4B,QACnB5B,EAAO4B,QAAUR,EACRnB,GAAUA,EAAO4B,IAC1B5B,GAAO,WAAa,OAAOmB,KAE3Bd,KAAKiC,OAASnB,GAIdd,EAC+BN,EACZ,mBAAXC,QAAyBA,uDC1EzBF,EAAQC,EAAQC,YAEjB8B,EAAO5B,GACd,IAAIE,EAAKC,KAAM0B,EAAU,GAGzB3B,EAAGO,KAAO,WACR,IAAIC,EAAKR,EAAG4B,EAAK5B,EAAG4B,IAAM,EAE1B,OADA5B,EAAG4B,EAAI5B,EAAG6B,EAAG7B,EAAG6B,EAAI7B,EAAG8B,EAAG9B,EAAG8B,EAAI9B,EAAG+B,EAAG/B,EAAG+B,EAAI/B,EAAGmC,GACzCnC,EAAGoC,EAAKpC,EAAGoC,EAAI,OAAS,IAC5BpC,EAAGmC,EAAKnC,EAAGmC,EAAKnC,EAAGmC,GAAK,EAAO3B,EAAKA,GAAK,GAAO,GAGtDR,EAAG4B,EAAI,EACP5B,EAAG6B,EAAI,EACP7B,EAAG8B,EAAI,EACP9B,EAAG+B,EAAI,EACP/B,EAAGmC,EAAI,EAEHrC,KAAiB,EAAPA,GAEZE,EAAG4B,EAAI9B,EAGP6B,GAAW7B,EAIb,IAAK,IAAIkC,EAAI,EAAGA,EAAIL,EAAQrC,OAAS,GAAI0C,IACvChC,EAAG4B,GAA6B,EAAxBD,EAAQrB,WAAW0B,GACvBA,GAAKL,EAAQrC,SACfU,EAAGoC,EAAIpC,EAAG4B,GAAK,GAAK5B,EAAG4B,IAAM,GAE/B5B,EAAGO,gBAIEM,EAAKC,EAAGN,GAOf,OANAA,EAAEoB,EAAId,EAAEc,EACRpB,EAAEqB,EAAIf,EAAEe,EACRrB,EAAEsB,EAAIhB,EAAEgB,EACRtB,EAAEuB,EAAIjB,EAAEiB,EACRvB,EAAE2B,EAAIrB,EAAEqB,EACR3B,EAAE4B,EAAItB,EAAEsB,EACD5B,WAGAO,EAAKjB,EAAMkB,GAClB,IAAIC,EAAK,IAAIS,EAAO5B,GAChBoB,EAAQF,GAAQA,EAAKE,MACrBC,EAAO,WAAa,OAAQF,EAAGV,SAAW,GAAK,YAenD,OAdAY,EAAKE,OAAS,cAEV,IAEIY,IAFMhB,EAAGV,SAAW,KACbU,EAAGV,SAAW,GAAK,YACF,cACV,IAAX0B,GACT,OAAOA,GAETd,EAAKC,MAAQH,EAAGV,KAChBY,EAAKG,MAAQH,EACTD,IACmB,iBAAVA,GAAoBL,EAAKK,EAAOD,GAC3CE,EAAKD,MAAQ,WAAa,OAAOL,EAAKI,EAAI,MAErCE,EAGLxB,GAAUA,EAAO4B,QACnB5B,EAAO4B,QAAUR,EACRnB,GAAUA,EAAO4B,IAC1B5B,GAAO,WAAa,OAAOmB,KAE3Bd,KAAKoC,OAAStB,GAIdd,EAC+BN,EACZ,mBAAXC,QAAyBA,uDC7EzBF,EAAQC,EAAQC,YAEjB8B,EAAOY,GACd,IAAIC,EAAKtC,KAGTsC,EAAGhC,KAAO,WAER,IAAwBC,EAAG2B,EAAvBK,EAAID,EAAGX,EAAGvC,EAAIkD,EAAGlD,EAQrB,OAPAmB,EAAIgC,EAAEnD,GAAoB8C,GAAhB3B,GAAMA,IAAM,GAAaA,GAAK,GACpB2B,IAApB3B,EAAIgC,EAAGnD,EAAI,EAAK,IAAcmB,IAAM,GAChB2B,IAApB3B,EAAIgC,EAAGnD,EAAI,EAAK,IAAcmB,IAAM,EAChB2B,IAApB3B,EAAIgC,EAAGnD,EAAI,EAAK,IAAcmB,GAAK,EACnCA,EAAIgC,EAAGnD,EAAI,EAAK,GAAuB8C,IAAnB3B,GAASA,GAAK,IAAeA,GAAK,EACtDgC,EAAEnD,GAAK8C,EACPI,EAAGlD,EAAKA,EAAI,EAAK,EACV8C,YAGKnC,EAAIF,GAChB,IAAI2C,EAAMD,EAAI,GAEd,GAAI1C,KAAiB,EAAPA,GAER0C,EAAE,GAAK1C,OAIX,IADAA,EAAO,GAAKA,EACP2C,EAAI,EAAGA,EAAI3C,EAAKR,SAAUmD,EAC7BD,EAAM,EAAJC,GAAUD,EAAM,EAAJC,IAAU,GACnB3C,EAAKQ,WAAWmC,GAAKD,EAAGC,EAAI,EAAK,IAAM,QAIzCD,EAAElD,OAAS,GAAGkD,EAAEE,KAAK,GAC5B,IAAKD,EAAI,EAAGA,EAAI,GAAc,IAATD,EAAEC,KAAYA,GAOnC,IANS,GAALA,EAAYD,EAAE,IAAK,EAAaA,EAAEC,GAEtCzC,EAAG4B,EAAIY,EACPxC,EAAGX,EAAI,EAGFoD,EAAI,IAAKA,EAAI,IAAKA,EACrBzC,EAAGO,OAIPoC,CAAKJ,EAAID,YAGFzB,EAAKC,EAAGN,GAGf,OAFAA,EAAEoB,EAAId,EAAEc,EAAEgB,QACVpC,EAAEnB,EAAIyB,EAAEzB,EACDmB,WAGAO,EAAKjB,EAAMkB,GACN,MAARlB,IAAcA,GAAS,IAAI+C,MAC/B,IAAI5B,EAAK,IAAIS,EAAO5B,GAChBoB,EAAQF,GAAQA,EAAKE,MACrBC,EAAO,WAAa,OAAQF,EAAGV,SAAW,GAAK,YAenD,OAdAY,EAAKE,OAAS,cAEV,IAEIY,IAFMhB,EAAGV,SAAW,KACbU,EAAGV,SAAW,GAAK,YACF,cACV,IAAX0B,GACT,OAAOA,GAETd,EAAKC,MAAQH,EAAGV,KAChBY,EAAKG,MAAQH,EACTD,IACEA,EAAMU,GAAGf,EAAKK,EAAOD,GACzBE,EAAKD,MAAQ,WAAa,OAAOL,EAAKI,EAAI,MAErCE,EAGLxB,GAAUA,EAAO4B,QACnB5B,EAAO4B,QAAUR,EACRnB,GAAUA,EAAO4B,IAC1B5B,GAAO,WAAa,OAAOmB,KAE3Bd,KAAK6C,UAAY/B,GAIjBd,EAC+BN,EACZ,mBAAXC,QAAyBA,uDCrEzBF,EAAQC,EAAQC,YAEjB8B,EAAOY,GACd,IAAIC,EAAKtC,KAGTsC,EAAGhC,KAAO,WACR,IACwBC,EAAG2B,EADvBJ,EAAIQ,EAAGR,EACPS,EAAID,EAAGC,EAAGnD,EAAIkD,EAAGlD,EAcrB,OAZAkD,EAAGR,EAAIA,EAAKA,EAAI,WAAc,EAE9BI,EAAIK,EAAGnD,EAAI,GAAM,KACjBmB,EAAIgC,EAAEnD,EAAMA,EAAI,EAAK,KACrB8C,GAAKA,GAAK,GACV3B,GAAKA,GAAK,GACV2B,GAAKA,IAAM,GACX3B,GAAKA,IAAM,GAEX2B,EAAIK,EAAEnD,GAAK8C,EAAI3B,EACf+B,EAAGlD,EAAIA,EAEC8C,GAAKJ,EAAKA,IAAM,IAAQ,YAGpB/B,EAAIF,GAChB,IAAIU,EAAG2B,EAAG9C,EAAGoD,EAAGV,EAAGS,EAAI,GAAIO,EAAQ,IAYnC,IAXIjD,KAAiB,EAAPA,IAEZqC,EAAIrC,EACJA,EAAO,OAGPA,GAAc,KACdqC,EAAI,EACJY,EAAQC,KAAKC,IAAIF,EAAOjD,EAAKR,SAG1BD,EAAI,EAAGoD,GAAI,GAAKA,EAAIM,IAASN,EAE5B3C,IAAMqC,GAAKrC,EAAKQ,YAAYmC,EAAI,IAAM3C,EAAKR,SAErC,IAANmD,IAASV,EAAII,GACjBA,GAAKA,GAAK,GACVA,GAAKA,IAAM,GACXA,GAAKA,GAAK,EACVA,GAAKA,IAAM,GACPM,GAAK,IACPV,EAAKA,EAAI,WAAc,EAEvB1C,EAAK,IADLmB,EAAKgC,EAAM,IAAJC,IAAaN,EAAIJ,GACT1C,EAAI,EAAI,GAW3B,IAPIA,GAAK,MACPmD,EAA+B,KAA5B1C,GAAQA,EAAKR,QAAU,KAAY,GAKxCD,EAAI,IACCoD,EAAI,IAASA,EAAI,IAAKA,EACzBN,EAAIK,EAAGnD,EAAI,GAAM,KACjBmB,EAAIgC,EAAEnD,EAAMA,EAAI,EAAK,KACrB8C,GAAKA,GAAK,GACV3B,GAAKA,GAAK,GACV2B,GAAKA,IAAM,GACX3B,GAAKA,IAAM,GACXgC,EAAEnD,GAAK8C,EAAI3B,EAGbR,EAAG+B,EAAIA,EACP/B,EAAGwC,EAAIA,EACPxC,EAAGX,EAAIA,EAGTsD,CAAKJ,EAAID,YAGFzB,EAAKC,EAAGN,GAIf,OAHAA,EAAEnB,EAAIyB,EAAEzB,EACRmB,EAAEuB,EAAIjB,EAAEiB,EACRvB,EAAEgC,EAAI1B,EAAE0B,EAAEI,QACHpC,WAGAO,EAAKjB,EAAMkB,GACN,MAARlB,IAAcA,GAAS,IAAI+C,MAC/B,IAAI5B,EAAK,IAAIS,EAAO5B,GAChBoB,EAAQF,GAAQA,EAAKE,MACrBC,EAAO,WAAa,OAAQF,EAAGV,SAAW,GAAK,YAenD,OAdAY,EAAKE,OAAS,cAEV,IAEIY,IAFMhB,EAAGV,SAAW,KACbU,EAAGV,SAAW,GAAK,YACF,cACV,IAAX0B,GACT,OAAOA,GAETd,EAAKC,MAAQH,EAAGV,KAChBY,EAAKG,MAAQH,EACTD,IACEA,EAAMsB,GAAG3B,EAAKK,EAAOD,GACzBE,EAAKD,MAAQ,WAAa,OAAOL,EAAKI,EAAI,MAErCE,EAGLxB,GAAUA,EAAO4B,QACnB5B,EAAO4B,QAAUR,EACRnB,GAAUA,EAAO4B,IAC1B5B,GAAO,WAAa,OAAOmB,KAE3Bd,KAAKiD,QAAUnC,GAIfd,EAC+BN,EACZ,mBAAXC,QAAyBA,uDC5IzBF,EAAQC,EAAQC,YAEjB8B,EAAO5B,GACd,IAAIE,EAAKC,KAAM0B,EAAU,GAGzB3B,EAAGO,KAAO,WACR,IAAI4C,EAAInD,EAAGmD,EAAGzC,EAAIV,EAAGU,EAAG0B,EAAIpC,EAAGoC,EAAGgB,EAAIpD,EAAGoD,EAQzC,OAPAD,EAAKA,GAAK,GAAOA,IAAM,EAAKzC,EAC5BA,EAAKA,EAAI0B,EAAK,EACdA,EAAKA,GAAK,GAAOA,IAAM,EAAKgB,EAC5BA,EAAKA,EAAID,EAAK,EACdnD,EAAGmD,EAAIA,EAAKA,GAAK,GAAOA,IAAM,GAAMzC,EACpCV,EAAGU,EAAIA,EAAKA,EAAI0B,EAAK,EACrBpC,EAAGoC,EAAKA,GAAK,GAAO1B,IAAM,GAAM0C,EACzBpD,EAAGoD,EAAKA,EAAID,EAAK,GAmB1BnD,EAAGoD,EAAI,EACPpD,EAAGmD,EAAI,EACPnD,EAAGU,GAAI,WACPV,EAAGoC,EAAI,WAEHtC,IAASkD,KAAKK,MAAMvD,IAEtBE,EAAGoD,EAAKtD,EAAO,WAAe,EAC9BE,EAAGmD,EAAW,EAAPrD,GAGP6B,GAAW7B,EAIb,IAAK,IAAIkC,EAAI,EAAGA,EAAIL,EAAQrC,OAAS,GAAI0C,IACvChC,EAAGmD,GAA6B,EAAxBxB,EAAQrB,WAAW0B,GAC3BhC,EAAGO,gBAIEM,EAAKC,EAAGN,GAKf,OAJAA,EAAE4C,EAAItC,EAAEsC,EACR5C,EAAE2C,EAAIrC,EAAEqC,EACR3C,EAAEE,EAAII,EAAEJ,EACRF,EAAE4B,EAAItB,EAAEsB,EACD5B,WAGAO,EAAKjB,EAAMkB,GAClB,IAAIC,EAAK,IAAIS,EAAO5B,GAChBoB,EAAQF,GAAQA,EAAKE,MACrBC,EAAO,WAAa,OAAQF,EAAGV,SAAW,GAAK,YAenD,OAdAY,EAAKE,OAAS,cAEV,IAEIY,IAFMhB,EAAGV,SAAW,KACbU,EAAGV,SAAW,GAAK,YACF,cACV,IAAX0B,GACT,OAAOA,GAETd,EAAKC,MAAQH,EAAGV,KAChBY,EAAKG,MAAQH,EACTD,IACmB,iBAAVA,GAAoBL,EAAKK,EAAOD,GAC3CE,EAAKD,MAAQ,WAAa,OAAOL,EAAKI,EAAI,MAErCE,EAGLxB,GAAUA,EAAO4B,QACnB5B,EAAO4B,QAAUR,EACRnB,GAAUA,EAAO4B,IAC1B5B,GAAO,WAAa,OAAOmB,KAE3Bd,KAAKqD,OAASvC,GAIdd,EAC+BN,EACZ,mBAAXC,QAAyBA,iDCnGnC2D,EAAA,SAAAC,SAA8CC,KAAKC,MAAM,+KCOvD,SAAShE,GAGT,IAEIiE,EAFAC,EAAKxE,OAAOyE,UACZC,EAASF,EAAGG,eAEZC,EAA4B,mBAAXC,OAAwBA,OAAS,GAClDC,EAAiBF,EAAQG,UAAY,aACrCC,EAAsBJ,EAAQK,eAAiB,kBAC/CC,EAAoBN,EAAQO,aAAe,gBAG3CC,EAAU9E,EAAO+E,mBACrB,GAAID,EAIAE,EAAiBF,MAJrB,EAaAA,EAAU9E,EAAO+E,mBAAgCC,GAczCC,KAAOA,EAoBf,IAAIC,EAAyB,iBACzBC,EAAyB,iBACzBC,EAAoB,YACpBC,EAAoB,YAIpBC,EAAmB,GAYnBC,EAAoB,GACxBA,EAAkBf,GAAkB,WAClC,OAAOjE,MAGT,IAAIiF,EAAW9F,OAAO+F,eAClBC,EAA0BF,GAAYA,EAASA,EAASG,EAAO,MAC/DD,GACAA,IAA4BxB,GAC5BE,EAAOwB,KAAKF,EAAyBlB,KAGvCe,EAAoBG,GAGtB,IAAIG,EAAKC,EAA2B3B,UAClC4B,EAAU5B,UAAYzE,OAAOsG,OAAOT,GACtCU,EAAkB9B,UAAY0B,EAAGK,YAAcJ,EAC/CA,EAA2BI,YAAcD,EACzCH,EAA2BlB,GACzBqB,EAAkBE,YAAc,oBAYlCrB,EAAQsB,oBAAsB,SAASC,GACrC,IAAIC,EAAyB,mBAAXD,GAAyBA,EAAOH,YAClD,QAAOI,IACHA,IAASL,GAG2B,uBAAnCK,EAAKH,aAAeG,EAAKC,QAIhCzB,EAAQ0B,KAAO,SAASH,GAUtB,OATI3G,OAAO+G,eACT/G,OAAO+G,eAAeJ,EAAQP,IAE9BO,EAAOK,UAAYZ,EACblB,KAAqByB,IACzBA,EAAOzB,GAAqB,sBAGhCyB,EAAOlC,UAAYzE,OAAOsG,OAAOH,GAC1BQ,GAOTvB,EAAQ6B,MAAQ,SAASC,GACvB,MAAO,CAAEC,QAASD,IAsEpBE,EAAsBC,EAAc5C,WACpC4C,EAAc5C,UAAUO,GAAuB,WAC7C,OAAOnE,MAETuE,EAAQiC,cAAgBA,EAKxBjC,EAAQkC,MAAQ,SAASC,EAASC,EAASC,EAAMC,GAC/C,IAAIC,EAAO,IAAIN,EACb9B,EAAKgC,EAASC,EAASC,EAAMC,IAG/B,OAAOtC,EAAQsB,oBAAoBc,GAC/BG,EACAA,EAAKxG,OAAOyG,MAAK,SAAS/E,GACxB,OAAOA,EAAOgF,KAAOhF,EAAOiF,MAAQH,EAAKxG,WAsKjDiG,EAAsBjB,GAEtBA,EAAGjB,GAAqB,YAOxBiB,EAAGrB,GAAkB,WACnB,OAAOjE,MAGTsF,EAAG4B,SAAW,WACZ,MAAO,sBAkCT3C,EAAQrF,KAAO,SAASiI,GACtB,IAAIjI,EAAO,GACX,IAAK,IAAIkI,KAAOD,EACdjI,EAAKuD,KAAK2E,GAMZ,OAJAlI,EAAKmI,UAIE,SAAS/G,SACPpB,EAAKG,QAAQ,CAClB,IAAIiI,EAAMpI,EAAKqI,MACf,GAAID,KAAOH,EAGT,OAFA7G,EAAK2G,MAAQK,EACbhH,EAAK0G,MAAO,EACL1G,EAQX,OADAA,EAAK0G,MAAO,EACL1G,IAsCXiE,EAAQa,OAASA,EAMjBoC,EAAQ5D,UAAY,CAClB+B,YAAa6B,EAEbC,MAAO,SAASC,GAcd,GAbA1H,KAAK2H,KAAO,EACZ3H,KAAKM,KAAO,EAGZN,KAAK4H,KAAO5H,KAAK6H,MAAQnE,EACzB1D,KAAKgH,MAAO,EACZhH,KAAK8H,SAAW,KAEhB9H,KAAK+H,OAAS,OACd/H,KAAKqG,IAAM3C,EAEX1D,KAAKgI,WAAWC,QAAQC,IAEnBR,EACH,IAAK,IAAI1B,KAAQhG,KAEQ,MAAnBgG,EAAKmC,OAAO,IACZtE,EAAOwB,KAAKrF,KAAMgG,KACjBoC,OAAOpC,EAAKrD,MAAM,MACrB3C,KAAKgG,GAAQtC,IAMrB2E,KAAM,WACJrI,KAAKgH,MAAO,EAEZ,IACIsB,EADYtI,KAAKgI,WAAW,GACLO,WAC3B,GAAwB,UAApBD,EAAWE,KACb,MAAMF,EAAWjC,IAGnB,OAAOrG,KAAKyI,MAGdC,kBAAmB,SAASC,GAC1B,GAAI3I,KAAKgH,KACP,MAAM2B,EAGR,IAAIC,EAAU5I,cACL6I,EAAOC,EAAKC,GAYnB,OAXAC,EAAOR,KAAO,QACdQ,EAAO3C,IAAMsC,EACbC,EAAQtI,KAAOwI,EAEXC,IAGFH,EAAQb,OAAS,OACjBa,EAAQvC,IAAM3C,KAGNqF,EAGZ,IAAK,IAAI3J,EAAIY,KAAKgI,WAAW3I,OAAS,EAAGD,GAAK,IAAKA,EAAG,CACpD,IAAI6J,EAAQjJ,KAAKgI,WAAW5I,GACxB4J,EAASC,EAAMV,WAEnB,GAAqB,SAAjBU,EAAMC,OAIR,OAAOL,EAAO,OAGhB,GAAII,EAAMC,QAAUlJ,KAAK2H,KAAM,CAC7B,IAAIwB,EAAWtF,EAAOwB,KAAK4D,EAAO,YAC9BG,EAAavF,EAAOwB,KAAK4D,EAAO,cAEpC,GAAIE,GAAYC,EAAY,CAC1B,GAAIpJ,KAAK2H,KAAOsB,EAAMI,SACpB,OAAOR,EAAOI,EAAMI,UAAU,GACzB,GAAIrJ,KAAK2H,KAAOsB,EAAMK,WAC3B,OAAOT,EAAOI,EAAMK,iBAGjB,GAAIH,GACT,GAAInJ,KAAK2H,KAAOsB,EAAMI,SACpB,OAAOR,EAAOI,EAAMI,UAAU,OAG3B,CAAA,IAAID,EAMT,MAAM,IAAI5J,MAAM,0CALhB,GAAIQ,KAAK2H,KAAOsB,EAAMK,WACpB,OAAOT,EAAOI,EAAMK,gBAU9BC,OAAQ,SAASf,EAAMnC,GACrB,IAAK,IAAIjH,EAAIY,KAAKgI,WAAW3I,OAAS,EAAGD,GAAK,IAAKA,EAAG,CACpD,IAAI6J,EAAQjJ,KAAKgI,WAAW5I,GAC5B,GAAI6J,EAAMC,QAAUlJ,KAAK2H,MACrB9D,EAAOwB,KAAK4D,EAAO,eACnBjJ,KAAK2H,KAAOsB,EAAMK,WAAY,CAChC,IAAIE,EAAeP,EACnB,OAIAO,IACU,UAAThB,GACS,aAATA,IACDgB,EAAaN,QAAU7C,GACvBA,GAAOmD,EAAaF,aAGtBE,EAAe,MAGjB,IAAIR,EAASQ,EAAeA,EAAajB,WAAa,GAItD,OAHAS,EAAOR,KAAOA,EACdQ,EAAO3C,IAAMA,EAETmD,GACFxJ,KAAK+H,OAAS,OACd/H,KAAKM,KAAOkJ,EAAaF,WAClBvE,GAGF/E,KAAKyJ,SAAST,IAGvBS,SAAU,SAAST,EAAQU,GACzB,GAAoB,UAAhBV,EAAOR,KACT,MAAMQ,EAAO3C,IAcf,MAXoB,UAAhB2C,EAAOR,MACS,aAAhBQ,EAAOR,KACTxI,KAAKM,KAAO0I,EAAO3C,IACM,WAAhB2C,EAAOR,MAChBxI,KAAKyI,KAAOzI,KAAKqG,IAAM2C,EAAO3C,IAC9BrG,KAAK+H,OAAS,SACd/H,KAAKM,KAAO,OACa,WAAhB0I,EAAOR,MAAqBkB,IACrC1J,KAAKM,KAAOoJ,GAGP3E,GAGT4E,OAAQ,SAASL,GACf,IAAK,IAAIlK,EAAIY,KAAKgI,WAAW3I,OAAS,EAAGD,GAAK,IAAKA,EAAG,CACpD,IAAI6J,EAAQjJ,KAAKgI,WAAW5I,GAC5B,GAAI6J,EAAMK,aAAeA,EAGvB,OAFAtJ,KAAKyJ,SAASR,EAAMV,WAAYU,EAAMS,UACtCxB,EAAce,GACPlE,IAKb6E,MAAS,SAASV,GAChB,IAAK,IAAI9J,EAAIY,KAAKgI,WAAW3I,OAAS,EAAGD,GAAK,IAAKA,EAAG,CACpD,IAAI6J,EAAQjJ,KAAKgI,WAAW5I,GAC5B,GAAI6J,EAAMC,SAAWA,EAAQ,CAC3B,IAAIF,EAASC,EAAMV,WACnB,GAAoB,UAAhBS,EAAOR,KAAkB,CAC3B,IAAIqB,EAASb,EAAO3C,IACpB6B,EAAce,GAEhB,OAAOY,GAMX,MAAM,IAAIrK,MAAM,0BAGlBsK,cAAe,SAASC,EAAUC,EAAYC,GAa5C,OAZAjK,KAAK8H,SAAW,CACd5D,SAAUkB,EAAO2E,GACjBC,WAAYA,EACZC,QAASA,GAGS,SAAhBjK,KAAK+H,SAGP/H,KAAKqG,IAAM3C,GAGNqB,aAnqBFL,EAAKgC,EAASC,EAASC,EAAMC,GAEpC,IAAIqD,EAAiBvD,GAAWA,EAAQ/C,qBAAqB4B,EAAYmB,EAAUnB,EAC/E2E,EAAYhL,OAAOsG,OAAOyE,EAAetG,WACzCgF,EAAU,IAAIpB,EAAQX,GAAe,IAMzC,OAFAsD,EAAUC,iBAkMc1D,EAASE,EAAMgC,GACvC,IAAI3H,EAAQ0D,EAEZ,OAAO,SAAgBoD,EAAQ1B,GAC7B,GAAIpF,IAAU4D,EACZ,MAAM,IAAIrF,MAAM,gCAGlB,GAAIyB,IAAU6D,EAAmB,CAC/B,GAAe,UAAXiD,EACF,MAAM1B,EAKR,OAAOgE,QAGTzB,EAAQb,OAASA,EACjBa,EAAQvC,IAAMA,IAED,CACX,IAAIyB,EAAWc,EAAQd,SACvB,GAAIA,EAAU,CACZ,IAAIwC,EAAiBC,EAAoBzC,EAAUc,GACnD,GAAI0B,EAAgB,CAClB,GAAIA,IAAmBvF,EAAkB,SACzC,OAAOuF,GAIX,GAAuB,SAAnB1B,EAAQb,OAGVa,EAAQhB,KAAOgB,EAAQf,MAAQe,EAAQvC,SAElC,GAAuB,UAAnBuC,EAAQb,OAAoB,CACrC,GAAI9G,IAAU0D,EAEZ,MADA1D,EAAQ6D,EACF8D,EAAQvC,IAGhBuC,EAAQF,kBAAkBE,EAAQvC,SAEN,WAAnBuC,EAAQb,QACjBa,EAAQW,OAAO,SAAUX,EAAQvC,KAGnCpF,EAAQ4D,EAER,IAAImE,EAASwB,EAAS9D,EAASE,EAAMgC,GACrC,GAAoB,WAAhBI,EAAOR,KAAmB,CAO5B,GAJAvH,EAAQ2H,EAAQ5B,KACZlC,EACAF,EAEAoE,EAAO3C,MAAQtB,EACjB,SAGF,MAAO,CACLkC,MAAO+B,EAAO3C,IACdW,KAAM4B,EAAQ5B,MAGS,UAAhBgC,EAAOR,OAChBvH,EAAQ6D,EAGR8D,EAAQb,OAAS,QACjBa,EAAQvC,IAAM2C,EAAO3C,OA1QPoE,CAAiB/D,EAASE,EAAMgC,GAE7CuB,WAcAK,EAASE,EAAIC,EAAKtE,GACzB,IACE,MAAO,CAAEmC,KAAM,SAAUnC,IAAKqE,EAAGrF,KAAKsF,EAAKtE,IAC3C,MAAOuE,GACP,MAAO,CAAEpC,KAAM,QAASnC,IAAKuE,aAiBxBpF,cACAE,cACAH,cA4BAgB,EAAsB3C,GAC7B,CAAC,OAAQ,QAAS,UAAUqE,SAAQ,SAASF,GAC3CnE,EAAUmE,GAAU,SAAS1B,GAC3B,OAAOrG,KAAKoK,QAAQrC,EAAQ1B,gBAoCzBG,EAAc2D,YACZU,EAAO9C,EAAQ1B,EAAKyE,EAASC,GACpC,IAAI/B,EAASwB,EAASL,EAAUpC,GAASoC,EAAW9D,GACpD,GAAoB,UAAhB2C,EAAOR,KAEJ,CACL,IAAIxG,EAASgH,EAAO3C,IAChB2E,EAAQhJ,EAAOiF,MACnB,OAAI+D,GACiB,iBAAVA,GACPnH,EAAOwB,KAAK2F,EAAO,WACdC,QAAQH,QAAQE,EAAM1E,SAASS,MAAK,SAASE,GAClD4D,EAAO,OAAQ5D,EAAO6D,EAASC,MAC9B,SAASH,GACVC,EAAO,QAASD,EAAKE,EAASC,MAI3BE,QAAQH,QAAQE,GAAOjE,MAAK,SAASmE,GAI1ClJ,EAAOiF,MAAQiE,EACfJ,EAAQ9I,MACP,SAASmJ,GAGV,OAAON,EAAO,QAASM,EAAOL,EAASC,MAvBzCA,EAAO/B,EAAO3C,KA4BlB,IAAI+E,EAgCJpL,KAAKoK,iBA9BYrC,EAAQ1B,YACdgF,IACP,OAAO,IAAIJ,SAAQ,SAASH,EAASC,GACnCF,EAAO9C,EAAQ1B,EAAKyE,EAASC,MAIjC,OAAOK,EAaLA,EAAkBA,EAAgBrE,KAChCsE,EAGAA,GACEA,cA+GDd,EAAoBzC,EAAUc,GACrC,IAAIb,EAASD,EAAS5D,SAAS0E,EAAQb,QACvC,GAAIA,IAAWrE,EAAW,CAKxB,GAFAkF,EAAQd,SAAW,KAEI,UAAnBc,EAAQb,OAAoB,CAC9B,GAAID,EAAS5D,SAASoH,SAGpB1C,EAAQb,OAAS,SACjBa,EAAQvC,IAAM3C,EACd6G,EAAoBzC,EAAUc,GAEP,UAAnBA,EAAQb,QAGV,OAAOhD,EAIX6D,EAAQb,OAAS,QACjBa,EAAQvC,IAAM,IAAIkF,UAChB,kDAGJ,OAAOxG,EAGT,IAAIiE,EAASwB,EAASzC,EAAQD,EAAS5D,SAAU0E,EAAQvC,KAEzD,GAAoB,UAAhB2C,EAAOR,KAIT,OAHAI,EAAQb,OAAS,QACjBa,EAAQvC,IAAM2C,EAAO3C,IACrBuC,EAAQd,SAAW,KACZ/C,EAGT,IAAIyG,EAAOxC,EAAO3C,IAElB,OAAMmF,EAOFA,EAAKxE,MAGP4B,EAAQd,EAASkC,YAAcwB,EAAKvE,MAGpC2B,EAAQtI,KAAOwH,EAASmC,QAQD,WAAnBrB,EAAQb,SACVa,EAAQb,OAAS,OACjBa,EAAQvC,IAAM3C,GAUlBkF,EAAQd,SAAW,KACZ/C,GANEyG,GA3BP5C,EAAQb,OAAS,QACjBa,EAAQvC,IAAM,IAAIkF,UAAU,oCAC5B3C,EAAQd,SAAW,KACZ/C,YAoDF0G,EAAaC,GACpB,IAAIzC,EAAQ,CAAEC,OAAQwC,EAAK,IAEvB,KAAKA,IACPzC,EAAMI,SAAWqC,EAAK,IAGpB,KAAKA,IACPzC,EAAMK,WAAaoC,EAAK,GACxBzC,EAAMS,SAAWgC,EAAK,IAGxB1L,KAAKgI,WAAWvF,KAAKwG,YAGdf,EAAce,GACrB,IAAID,EAASC,EAAMV,YAAc,GACjCS,EAAOR,KAAO,gBACPQ,EAAO3C,IACd4C,EAAMV,WAAaS,WAGZxB,EAAQX,GAIf7G,KAAKgI,WAAa,CAAC,CAAEkB,OAAQ,SAC7BrC,EAAYoB,QAAQwD,EAAczL,MAClCA,KAAKyH,OAAM,YA8BJrC,EAAO2E,GACd,GAAIA,EAAU,CACZ,IAAI4B,EAAiB5B,EAAS9F,GAC9B,GAAI0H,EACF,OAAOA,EAAetG,KAAK0E,GAG7B,GAA6B,mBAAlBA,EAASzJ,KAClB,OAAOyJ,EAGT,IAAK3B,MAAM2B,EAAS1K,QAAS,CAC3B,IAAID,GAAI,EAAIwM,EAAO,SAAStL,WACjBlB,EAAI2K,EAAS1K,WAChBwE,EAAOwB,KAAK0E,EAAU3K,GAGxB,OAFAkB,EAAK2G,MAAQ8C,EAAS3K,GACtBkB,EAAK0G,MAAO,EACL1G,EAOX,OAHAA,EAAK2G,MAAQvD,EACbpD,EAAK0G,MAAO,EAEL1G,GAGT,OAAOsL,EAAKtL,KAAOsL,GAKvB,MAAO,CAAEtL,KAAM+J,YAIRA,IACP,MAAO,CAAEpD,MAAOvD,EAAWsD,MAAM,IAxfnC,CAssBC,WACC,OAAOhH,MAAyB,iBAAT4G,MAAqBA,KAD7C,IAEOiF,SAAS,cAATA,8FCzrBR,SAESpM,EAAQqM,EAAMC,GAKzB,IAQIC,EARAC,EAAQ,IAIRC,EAAaH,EAAKI,IAAIF,EAHb,GAITG,EAAeL,EAAKI,IAAI,EAHf,IAITE,EAA0B,EAAfD,EACXE,EAAOL,aAOFM,EAAWlK,EAAMmK,EAASC,GACjC,IAAInF,EAAM,GAINoF,EAAYC,EAAOC,GAHvBJ,EAAsB,GAAXA,EAAmB,CAAEK,SAAS,GAAUL,GAAW,IAIpDK,QAAU,CAACxK,EAAMyK,EAAShB,IACzB,MAARzJ,aA+IH,IACE,IAAI0K,EAQJ,OAPIf,IAAee,EAAMf,EAAWgB,aAElCD,EAAMA,EAAId,IAEVc,EAAM,IAAIE,WAAWhB,IACpBxM,EAAOyN,QAAUzN,EAAO0N,UAAUC,gBAAgBL,IAE9CD,EAASC,GAChB,MAAOM,GACP,IAAIC,EAAU7N,EAAO8N,UACjBC,EAAUF,GAAWA,EAAQE,QACjC,MAAO,EAAE,IAAI5K,KAAMnD,EAAQ+N,EAAS/N,EAAOgO,OAAQX,EAAShB,KA5J3C4B,GAAarL,EAAM,GAAIiF,GAGtCqG,EAAO,IAAIC,EAAKtG,GAIhBuG,EAAO,eACT,IAAI/N,EAAI6N,EAAKG,EA5BJ,GA6BL3L,EAAI+J,EACJvK,EAAI,EACD7B,EAAIsM,GACTtM,GAAKA,EAAI6B,GAAKsK,EACd9J,GAAK8J,EACLtK,EAAIgM,EAAKG,EAAE,QAENhO,GAAKuM,GACVvM,GAAK,EACLqC,GAAK,EACLR,KAAO,EAET,OAAQ7B,EAAI6B,GAAKQ,GAWnB,OARA0L,EAAK1M,MAAQ,WAAa,OAAmB,EAAZwM,EAAKG,EAAE,IACxCD,EAAKxM,MAAQ,WAAa,OAAOsM,EAAKG,EAAE,GAAK,YAC7CD,EAAKzM,OAASyM,EAGdlB,EAAOG,EAASa,EAAKI,GAAIjC,IAGjBU,EAAQwB,MAAQvB,GACpB,SAASvL,EAAMrB,EAAMoO,EAAchN,GAUjC,OATIA,IAEEA,EAAM8M,GAAKnN,EAAKK,EAAO0M,GAE3BzM,EAAKD,MAAQ,WAAa,OAAOL,EAAK+M,EAAM,MAK1CM,GAAgBlC,EAAY,OAAI7K,EAAarB,GAIrCqB,IAElB2M,EACAnB,EACA,WAAYF,EAAUA,EAAQ/M,OAAUO,MAAQ+L,EAChDS,EAAQvL,gBAaD2M,EAAKtG,GACZ,IAAI4G,EAAGC,EAAS7G,EAAIjI,OAChBU,EAAKC,KAAMoO,EAAI,EAAGC,EAAItO,EAAGX,EAAIW,EAAGyC,EAAI,EAAG9B,EAAIX,EAAGgO,EAAI,OAGjDI,IAAU7G,EAAM,CAAC6G,MAGfC,EAAInC,GACTvL,EAAE0N,GAAKA,IAET,IAAKA,EAAI,EAAGA,EAAInC,EAAOmC,IACrB1N,EAAE0N,GAAK1N,EAAE2N,EAAI/B,EAAQ+B,EAAI/G,EAAI8G,EAAID,IAAWD,EAAIxN,EAAE0N,KAClD1N,EAAE2N,GAAKH,GAIRnO,EAAG+N,EAAI,SAASQ,OAEf,IAAI/N,EAAGgO,EAAI,EACPnP,EAAIW,EAAGX,EAAGoD,EAAIzC,EAAGyC,EAAGgM,EAAIzO,EAAGgO,EACxBO,KACL/N,EAAIiO,EAAEpP,EAAIkN,EAAQlN,EAAI,GACtBmP,EAAIA,EAAItC,EAAQuC,EAAElC,GAASkC,EAAEpP,GAAKoP,EAAEhM,EAAI8J,EAAQ9J,EAAIjC,KAAQiO,EAAEhM,GAAKjC,IAGrE,OADAR,EAAGX,EAAIA,EAAGW,EAAGyC,EAAIA,EACV+L,IAINtC,YAOIrL,EAAKC,EAAGN,GAIf,OAHAA,EAAEnB,EAAIyB,EAAEzB,EACRmB,EAAEiC,EAAI3B,EAAE2B,EACRjC,EAAEwN,EAAIlN,EAAEkN,EAAEpL,QACHpC,WAOAqM,EAAQjC,EAAK8D,GACpB,IAAqCC,EAAjC1M,EAAS,GAAI2M,SAAchE,EAC/B,GAAI8D,GAAgB,UAAPE,EACX,IAAKD,KAAQ/D,EACX,IAAM3I,EAAOS,KAAKmK,EAAQjC,EAAI+D,GAAOD,EAAQ,IAAO,MAAOpB,IAG/D,OAAQrL,EAAO3C,OAAS2C,EAAgB,UAAP2M,EAAkBhE,EAAMA,EAAM,cAQxDgC,EAAO9M,EAAMyH,OACpB,IAA4BsH,EAAxBC,EAAahP,EAAO,GAAW2C,EAAI,EAChCA,EAAIqM,EAAWxP,QACpBiI,EAAIgF,EAAO9J,GACT8J,GAASsC,GAAyB,GAAhBtH,EAAIgF,EAAO9J,IAAWqM,EAAWxO,WAAWmC,KAElE,OAAOsK,EAASxF,YA8BTwF,EAAS3J,GAChB,OAAOhD,OAAO2O,aAAaC,MAAM,EAAG5L,GAgBtC,GANAwJ,EAAOZ,EAAKiD,SAAUlD,GAMamD,EAAgB,CACjDA,EAAiB1C,EAEjB,IACEP,EAAa1I,EAAA,SACb,MAAO4L,SACmB,mBAAXvP,QAAyBA,OAAO4B,IACjD5B,QAAO,WAAa,OAAO4M,KAG3BR,EAAqB,WAAIQ,EA3NzB,CAmOiB,oBAAT3F,KAAwBA,KAAOqI,EACvC,GACAlM,MCvMFkM,EAAGzN,KAAO2N,EACVF,EAAGhN,OAASmN,EACZH,EAAG7M,OAASiN,EACZJ,EAAGpM,UAAYyM,EACfL,EAAGhM,QAAUsM,EACbN,EAAG5L,OAASmM,EAEZC,EAAiBR,EC3DV,IAAIS,EAASC,kBC0GpBC,EAjGG,MAKEjK,cAID3F,KAAKd,KAAO,IAAI2Q,IAChB7P,KAAK8P,MAAQ,GAQfC,OACE/P,KAAK8P,MAAMC,MAAI,CAAE5M,EAAGD,IAAMC,EAAE6M,SAAW9M,EAAE8M,WAW3CC,IAAI3I,EAAKL,GACP,MAAM+I,EAAWE,OAAOjJ,GACxB,GAAImB,MAAM4H,GAAW,MAAM,IAAIzE,UAAU,+BAkBzC,OAhBKvL,KAAKd,KAAKiR,IAAI7I,GAMjBtH,KAAK8P,MAAMM,KAAKC,IACVA,EAAQ/I,MAAQA,GAClBnI,OAAOmR,OAAOD,EAAS,UAAEL,IAGpBK,MATTrQ,KAAKd,KAAKqR,IAAIjJ,GACdtH,KAAK8P,MAAMrN,KAAK,KAAE6E,WAAK0I,KAYzBhQ,KAAK+P,OACE/P,KAAK8P,MAAMzQ,OASpBiB,OACE,MAAM+P,EAAUrQ,KAAK8P,MAAMU,QAK3B,OAFAxQ,KAAKd,KAAKuR,OAAOJ,EAAQ/I,KAElB+I,EAMTK,UACE,OAAOC,QAA8B,IAAtB3Q,KAAK8P,MAAMzQ,QAS5B8Q,IAAI7I,GACF,OAAOtH,KAAKd,KAAKiR,IAAI7I,GASvBsJ,IAAItJ,GACF,OAAOtH,KAAK8P,MAAMe,MAAKR,GAAWA,EAAQ/I,MAAQA,eC9EtDwJ,EAfG,SACMC,EAAkBX,EAAK9I,GAC9B,MAAM0J,EAAS,IAAIC,IAEnB,IAAK,MAAOC,EAAMC,KAAQf,EACpBc,IAAS5J,GAAO6J,aAAeF,IACjCD,EAAOf,IAAIiB,EAAMH,EAAkBI,EAAK7J,IAC/B4J,IAAS5J,GAClB0J,EAAOf,IAAIiB,EAAMC,GAIrB,OAAOH,YCwBTI,EAtBG,SACMC,EAAUC,GACjB,MAAMlB,EAAM,IAAIa,IAiBhB,OAhBa9R,OAAOD,KAAKoS,GAEpBrJ,SAASX,IACZ,MAAM6J,EAAMG,EAAOhK,GAEnB,GAAY,OAAR6J,GAA+B,iBAARA,IAAqBI,MAAMC,QAAQL,GAC5D,OAAOf,EAAIH,IAAI3I,EAAK+J,EAAUF,IAGhC,IA5BD,SACkBA,GACnB,MAAMM,EAAOvB,OAAOiB,GAEpB,QAAI/I,MAAMqJ,IAASA,GAAQ,GAwBpBC,CAAYP,GACf,MAAM,IAAI3R,MAAK,8BAA+B8H,kCAAqC6J,GAGrF,OAAOf,EAAIH,IAAI3I,EAAK4I,OAAOiB,OAGtBf,YCnBTuB,EAlBG,SACMC,EAAaxB,GACpB,KAAMA,aAAea,KACnB,MAAM,IAAIzR,MAAK,oDAAqD4Q,GAGtEA,EAAInI,SAAO,CAAEhB,EAAOK,KAClB,GAAqB,iBAAVL,GAAsBA,aAAiBgK,IAChDW,EAAa3K,QAIf,GAAqB,iBAAVA,GAAsBA,GAAS,EACxC,MAAM,IAAIzH,MAAK,sDAAuDyH,QAAYK,SCmRxFuK,EA/RkC,MA6C7BlM,YACSmM,GACNA,aAAiBb,KACnBU,EAAaG,GACb9R,KAAK8R,MAAQA,GAEb9R,KAAK8R,MADIA,EACIV,EAAUU,GAEV,IAAIb,IA4BrBc,QAAQ/L,EAAMgM,GACZ,IAAIC,EAUJ,OATID,aAAqBf,KACvBU,EAAaK,GACbC,EAAQD,GAERC,EAAQb,EAAUY,GAGpBhS,KAAK8R,MAAM7B,IAAIjK,EAAMiM,GAEdjS,KAMTkS,UAAUlM,EAAMgM,GACd,OAAOhS,KAAK+R,QAAQ/L,EAAMgM,GAoB5BG,WAAW7K,GAGT,OAFAtH,KAAK8R,MAAQhB,EAAkB9Q,KAAK8R,MAAOxK,GAEpCtH,KA4CToS,KAAKC,EAAOC,EAAM9F,EAAU,IAE1B,IAAKxM,KAAK8R,MAAMS,KACd,OAAI/F,EAAQiF,KAAa,CAAEW,KAAM,KAAMX,KAAM,GAEtC,KAGT,MAAMe,EAAW,IAAI3C,IACf4C,EAAW,IAAI7C,EACf8C,EAAW,IAAIzB,IAErB,IAAImB,EAAO,GACPO,EAAY,EAEZC,EAAQ,GAGZ,GAFIpG,EAAQoG,QAAOA,EAAQ,GAAGC,OAAOrG,EAAQoG,QAEzCA,EAAME,SAAST,GACjB,MAAM,IAAI7S,MAAK,kBAAmB6S,wBAC7B,GAAIO,EAAME,SAASR,GACxB,MAAM,IAAI9S,MAAK,gBAAiB8S,4BAIlCG,EAASxC,IAAIoC,EAAO,IAGZI,EAAS/B,WAAW,CAE1B,MAAMqC,EAAON,EAASnS,OAItB,GAAIyS,EAAKzL,MAAQgL,EAAM,CAErBK,EAAYI,EAAK/C,SAEjB,IAAIgD,EAAUD,EAAKzL,SACZoL,EAASvC,IAAI6C,IAClBZ,EAAK3P,KAAKuQ,GACVA,EAAUN,EAAS9B,IAAIoC,GAGzB,MAIFR,EAASjC,IAAIwC,EAAKzL,MAGAtH,KAAK8R,MAAMlB,IAAImC,EAAKzL,MAAQ,IAAI2J,KACxChJ,SAAO,CAAEgL,EAAOC,KAExB,GAAIV,EAASrC,IAAI+C,IAAUN,EAAME,SAASI,GAAQ,OAAO,KAIzD,IAAKT,EAAStC,IAAI+C,GAEhB,OADAR,EAASzC,IAAIiD,EAAOH,EAAKzL,KAClBmL,EAASxC,IAAIiD,EAAOH,EAAK/C,SAAWiD,GAG7C,MAAME,EAAmBV,EAAS7B,IAAIsC,GAAOlD,SACvCoD,EAAWL,EAAK/C,SAAWiD,EAIjC,OAAIG,EAAWD,GACbT,EAASzC,IAAIiD,EAAOH,EAAKzL,KAClBmL,EAASxC,IAAIiD,EAAOE,IAGtB,QAKX,OAAKhB,EAAK/S,QAUNmN,EAAQ6G,KACVjB,EAAK5B,QAGL4B,EAAOA,EAAKS,OAAO,CAACR,IAKjB7F,EAAQnF,UACX+K,EAAOA,EAAK/K,WAIVmF,EAAQiF,KACH,MACLW,EACAX,KAAMkB,GAIHP,GA9BD5F,EAAQiF,KAAa,CAAEW,KAAM,KAAMX,KAAM,GAEtC,KAkCX6B,gBAAgBC,GACd,OAAOvT,KAAKoS,QAAQmB,KC7RjB,ICGHC,EAAYrQ,IAEb,IAAIkK,EAAIlK,OACDkK,IAAMA,EAAEoG,WACZpG,EAAIA,EAAEoG,UAET,IAAIC,EAAQrG,EAGRsG,EAAKxQ,OACFwQ,IAAOA,EAAGF,WACdpG,EAAIsG,EACJA,EAAKA,EAAGF,UACRpG,EAAEoG,UAAYC,EAGjB,OAAOA,GAkBCE,EAAO,CAAIzQ,EAAQD,IACpBsQ,EAASrQ,KAAOqQ,EAAStQ,GChCxB2Q,EACRnF,IAEA,IAAIoF,EAAS,IAAI7C,KACZ8C,YAACA,EAAW,MAAS,IAAUrF,EAEhCsF,EAAUjB,IACX,IAAIkB,EAAcH,EAAOlD,IAAImC,GAQ7B,YANoBrP,IAAhBuQ,IACDA,EDMQ,MACd,IAAIlU,EAAU,CACXmU,MAAO,GAGV,OADAnU,EAAG0T,UAAY1T,EACRA,GCXaoU,GAEdL,EAAO7D,IAAI8C,EAAMkB,IAGbA,GAGNG,EAA4B,GAehC,OAbA1F,EAAK2F,SAASpM,SAASqM,IACpB,IAAKC,EAAIC,GAAM9F,EAAK+F,YAAYH,GAC5BI,EAAKV,EAAOO,GACZI,EAAKX,EAAOQ,GAEXZ,EAAiBc,EAAIC,GAGfZ,EDQPP,ECRiCkB,GDQrBR,QCPbE,EAAiB3R,KAAK6R,IAHtBF,EAAiB3R,KAAK6R,GDFhB,EAAInR,EAAQD,KACxB,GAAI0Q,EAAQzQ,EAAGD,GAAI,OACnB,IAAI0R,EAAQpB,EAASrQ,GAAG+Q,MAAQV,EAAStQ,GAAGgR,MAC5CV,EAAStQ,GAAGuQ,UAAYD,EAASrQ,GACjCqQ,EAASrQ,GAAG+Q,MAAQU,GCDdC,CAAcH,EAAIC,OAMjBP,GCvCCU,EAAS,CAAI3R,EAASD,IACvBC,EAAExB,IAAMuB,EAAEvB,GAAKwB,EAAEvB,IAAMsB,EAAEtB,EAGxBmT,EAAO,CAAI5R,EAASD,KACrB,CACJvB,EAAGwB,EAAExB,EAAIuB,EAAEvB,EACXC,EAAGuB,EAAEvB,EAAIsB,EAAEtB,IAWNoT,EAAY,EAAKrT,EAACA,EAACC,EAAEA,KAAS,GAAQD,KAAKC,IAE3CqT,EAAkBC,IAC1B,IAAKC,EAAIC,GAAMF,EAAKG,MAAM,KAC1B,MAAO,CACJ1T,GAAIwT,EACJvT,GAAIwT,ICNCE,EAAqB5G,IAC7B,IAyDIqF,GAzDCwB,OAACA,EAAMhD,KAAEA,EAAIvD,OAAEA,GAAWN,EAE3B8G,EAAY,CAAE7T,EAAY,EAAT4Q,EAAK5Q,EAAOC,EAAY,EAAT2Q,EAAK3Q,GAErC6T,EAAgC,GAChCC,EAA4B,GAC5BC,EAA+B,GAC/BC,EAAgC,GAEhCC,EJ5BiB,EACrBtD,EACAuD,KAEA,IAAMnU,EAAGoU,EAAOnU,EAAGoU,GAAUzD,EAC7B,OAAOhB,MAAM0E,KAAK,CAAE5W,OAAQ2W,IAAO,CAAGE,EAAGtU,IAC/B2P,MAAM0E,KAAK,CAAE5W,OAAQ0W,IAAO,CAAGG,EAAGvU,IAAMmU,EAAa,GAAElU,IAAGD,SIsBzDwU,CAAsBX,GAAS,EAAI5T,EAACA,EAACD,EAAEA,MAO/C,GAAIA,GAAc,EAAT4Q,EAAK5Q,EAAQ,GAAKC,GAAc,EAAT2Q,EAAK3Q,EAAQ,EAE1C,MAAO,CACJ4G,KAAM,YAIZ,GAZqB7G,EAAI,GAAM,GAAKC,EAAI,GAAM,EAY9B,CACb,IAAI7B,EAAmB,CACpByI,KAAM,UAGT,OADAiN,EAAWhT,KAAK,GAAEd,IAAGC,EAAGwU,OAAQrW,IACzBA,EAGV,IAAIA,EAAiB,CAClByI,KAAM,OACN6N,OAAQ,SACRC,WAAY,WAGf,KAxBU3U,GAAK,GAAKC,GAAK,GAAKD,GAAK6T,EAAU7T,EAAI,GAAKC,GAAK4T,EAAU5T,EAAI,GAwBrD,CACjB,IAAI2U,EAAgB,GAAE5U,IAAGC,EAAG4U,KAAMzW,GAClC2V,EAASjT,KAAK8T,IA7BM5U,EAAIC,GAAK,GAAM,EAgChC+T,EAAYlT,KAAK8T,GAEjBX,EAAanT,KAAK8T,GAIxB,OAAOxW,KAGN0W,EAAWZ,ECpEA,EAAI7G,EAAc0H,KACjC,IAAK,IAAI3U,EAAI2U,EAAMrX,OAAS,EAAG0C,EAAI,IAAKA,EAAG,CACxC,IAAI4U,EAAK5T,KAAKK,MAAM4L,KAAYjN,EAAI,KAElC2U,EAAM3U,GAAI2U,EAAMC,IAAO,CAACD,EAAMC,GAAKD,EAAM3U,MDoE9C6U,CAAQ5H,EAFkB2G,GAMtBJ,EAAOsB,aAAe,IACvB9C,EAAe+C,GAET9H,KAAYuG,EAAOwB,yBACnBD,GAAWvB,EAAOsB,cAKJhD,EAAQ,CAC5BQ,SAAUsB,EACVlB,YAAc+B,IACX,GAAIA,EAAK7U,EAAI,GAAM,EAChB,MAAO,CAACkU,EAAKW,EAAK5U,GAAG4U,EAAK7U,EAAI,GAAIkU,EAAKW,EAAK5U,GAAG4U,EAAK7U,EAAI,IACpD,GAAI6U,EAAK5U,EAAI,GAAM,EACvB,MAAO,CAACiU,EAAKW,EAAK5U,EAAI,GAAG4U,EAAK7U,GAAIkU,EAAKW,EAAK5U,EAAI,GAAG4U,EAAK7U,IACpD,MAAM,IAAInC,mBAEpBuU,IAGc9L,SAAO,EAAGuO,KAACA,MACzBA,EAAKH,OAAS,WAMjB,IAAIW,EAAW,IAAIC,EAAApF,IAEfqF,EAAwB,CACzB,CAAEtV,GAAG,EAAID,EAAG,GACZ,CAAEC,EAAG,EAAID,EAAG,GACZ,CAAEC,EAAG,EAAGD,GAAG,GACX,CAAEC,EAAG,EAAGD,EAAG,IAuBd,OAXA8T,EAAWxN,SAASkP,IACjB,IAAIC,EAAQpC,EAAamC,GACrBE,EAAqC,GAXrB,IAAIC,GAAAA,EAaJH,EAZbD,EACHK,QAAQC,IACN,IAAK7V,EAACA,EAACC,EAAEA,GAAMmT,EAAQuC,EAAKE,GAC5B,MAAiC,UAA1Bf,EAAS7U,GAAGD,GAAG0U,UAExBjG,KAAKoH,IAAczC,OAAAA,EAAQuC,GD9GJ/I,EC8G8B,ED7GrD,CACJ5M,GAFkBwB,EC8G4BqU,GD5GzC7V,EAAI4M,EACT3M,EAAGuB,EAAEvB,EAAI2M,KAHK,IAAIpL,EAASoL,MCqHItG,SAASwP,IACrCJ,EAAWrC,EAAayC,IAAc,KAGzCT,EAASjF,QAAQqF,EAAOC,MAGpB,MAAExB,WAAMY,WAAUf,cAAUC,eAAaC,WAAcoB,IE/GtDU,EAAQhJ,IAChB,IAAK6G,OAACA,EAAMoC,QAAEA,EAAOC,MAAEA,EAAKrF,KAAEA,GAAS7D,GAClCmJ,iBAACA,EAAgBC,0BAAEA,GAA8BpJ,GAEjDmH,KACFA,EAAIY,SACJA,EAAQO,SACRA,EAAQrB,YACRA,EAAWC,aACXA,GACCN,EAAkB5G,GAClBqJ,EAAiC,iBACjCtK,EAAmC,OAEvCiC,EAAEmG,KAAOA,EAET,IAAImC,EAAiB,CAClBrW,EAAG,EACHC,EAA2B,EAAxBmB,KAAKkV,KAAK1F,EAAK3Q,EAAI,GAAS,GAG9BsW,EAAkB,IAAKF,GAEvBG,EAAoB,CACrBxW,EAAY,EAAT4Q,EAAK5Q,EAAQ,EAChBC,EAAG,EAAI2Q,EAAK3Q,EAAI,EAAIoW,EAAOpW,GAG9B6U,EAASuB,EAAOpW,GAAG,GAAGyU,OAAS,QAC/BI,EAAS0B,EAAYvW,GAAGuW,EAAYxW,EAAI,GAAG0U,OAAS,QAEpD,IAAI+B,EAAY,EASZC,EAAmBf,IACpB,IAAI5B,EAAyB,CAACe,EAASa,EAAI1V,GAAG0V,EAAI3V,IAClD,GAAI2V,EAAI3V,EAAI,GAAM,EACf+T,EAASjT,KAAKgU,EAASa,EAAI1V,GAAG0V,EAAI3V,EAAI,GAAI8U,EAASa,EAAI1V,GAAG0V,EAAI3V,EAAI,QAC9D,CAAA,GAAI2V,EAAI1V,EAAI,GAAM,EAElB,MAAM,IAAIpC,MADdkW,EAASjT,KAAKgU,EAASa,EAAI1V,EAAI,GAAG0V,EAAI3V,GAAI8U,EAASa,EAAI1V,EAAI,GAAG0V,EAAI3V,IAGrE+T,EAASzN,SAASuO,IACfA,EAAKF,WAAa,cAIxBuB,EAAiBS,WAAS,KACvB3C,EAAY1N,QAAQoQ,GACpBP,GAA0B,GAC1BS,OASH,IAAIC,EAAQhB,IACT,IAAIiB,GAAsB,EACtBC,GAAqB,EAErB5D,EAAUkD,EAAQG,IAAgC,IAAhBX,EAAU7V,IAC7C+W,GAAqB,GAGxBV,EAAOrW,GAAK6V,EAAU7V,EACtBqW,EAAOpW,GAAK4V,EAAU5V,EAGnBoW,EAAOrW,EAAI,GACXqW,EAAOpW,EAAI,GACgC,UAA3C6U,EAASuB,EAAOpW,KAAKoW,EAAOrW,IAAI0U,QAEhCI,EAASuB,EAAOpW,GAAGoW,EAAOrW,GAAG2U,WAAa,UAC1C0B,EAAOrW,GAAK6V,EAAU7V,EACtBqW,EAAOpW,GAAK4V,EAAU5V,EACtB6W,GAAsB,GACdC,GACRjL,EAAS,QAENsK,EADW,WAAVA,EACO,cAEA,YAGoC,WAA3CtB,EAASuB,EAAOpW,KAAKoW,EAAOrW,IAAI0U,QACjCgC,EAAgBL,GAEnBA,EAAOrW,GAAK6V,EAAU7V,EACtBqW,EAAOpW,GAAK4V,EAAU5V,GAGzBwW,IAAcK,EAEVL,IAAc7C,EAAOoD,YApEzBhD,EAAY9C,OAAO+C,GAAc3N,SAAO,EAAGuO,KAACA,MACzCA,EAAKF,WAAa,eAErBwB,GAA0B,IAoEtBM,GAAa7C,EAAOqD,cACjBR,EAAY7C,EAAOqD,aACpBC,IAEC/D,EAAUoD,EAAQF,KACnBD,EAAQ,SACRtK,EAAS,UAGf8K,KAGCM,EAAU,KACX,IAAIzG,EAAiB4E,EAAS5E,KAC3B4C,EAAakD,GACblD,EAAagD,IAGhBE,EAAS,IACHjD,EAAe7C,IAAO,IAAM4C,EAAakD,MAW9CY,EAAStB,IACV,GAAIzU,KAAKgW,IAAIvB,EAAU7V,GAAKoB,KAAKgW,IAAIvB,EAAU5V,KAAO,EAAG,MAAM,IAAIpC,MACnE,MAAM,IAAOgZ,EAAKhB,IAGrBI,EAAMoB,KAAKV,UAAUQ,EAAM,CAAEnX,GAAG,EAAIC,EAAG,KACvCgW,EAAMqB,MAAMX,UAAUQ,EAAM,CAAEnX,EAAG,EAAGC,EAAG,KACvCgW,EAAMsB,GAAGZ,UAAUQ,EAAM,CAAEnX,EAAG,EAAGC,GAAG,KACpCgW,EAAMuB,KAAKb,UAAUQ,EAAM,CAAEnX,EAAG,EAAGC,EAAG,KAEtC,IAAI2W,EAAM,KACPZ,EAAQY,OAAO,MACZ1C,EACAuD,QAAShB,GAAa7C,EAAOqD,YAAcV,OAASxU,SACpDsU,QACAD,SACAtK,KAIN8K,WCrLHc,EAAc,IAAAC,IAAuBhW,EAAA,SAAAwH,QAA6C,SAAOyO,OAAAC,KAAAC,KAAGvS,iBCA5FwS,EAAc,IAAAJ,IAAuBhW,EAAA,SAAAwH,QAA6C,SAAOyO,OAAAC,KAAAC,KAAGvS,WCC5F,IAAIyS,EAAS,EAAK3T,EAAM4T,KAAaA,EAAQ7S,MAAM/E,GAAW,CAACgE,EAAMhE,cCwB5D6X,EACNC,EACAC,EAAqE,GACrEC,EAAsB,IAEtB,IAAIC,EAAOC,SAASC,cAAiBL,GAcrC,OAZA3a,OAAOib,QAAQL,GAAW9R,SAAO,EAAGjC,EAAMiB,WACpBvD,IAAfuW,EAAKjU,GACNiU,EAAKjU,GAAQiB,EAEbgT,EAAKI,aAAarU,EAAMiB,MAI9B+S,EAAS/R,SAASqS,IACfL,EAAKM,YAAYD,MAGbL,ECpCH,IAAIO,EAAS/T,MAAUgT,IAC3B,IAAI3O,EAIA2P,EAAQZ,EAAE,MAAO,QAFX,IAAS/O,IAEY4P,IAAKjB,IAMpC,aAJM,IAAIxO,SAAS0P,IAChB7P,EAAU6P,KAGNF,GCTCG,EAAQnU,SHFQ,CAAOU,IAC/B,IAAI0T,EAAc1b,OAAOib,QAAQjT,GAAQiJ,IAAIuJ,GAC7C,OAAO1O,QAAQ6P,IAAID,GAAa9T,KAAK5H,OAAO4b,cGCrCC,CAAwB,CAC5B5B,QAASoB,EAAUvD,EAAAoC,IACnBrB,OAAQwC,EAAUvD,EAAAyC,MCbbuB,EAAQ,CAAC,IAAK,IAAK,KACnBC,EAAY,CAAC,IAAK,IAAK,KACvBC,EAAO,CAAC,GAAI,GAAI,IAEhBC,EAAQ,CAAC,EAAG,EAAG,GCefC,EAAiBC,IACzB,IAAKC,MAACA,EAAKC,OAAEA,EAAMjG,OAAEA,GAAW+F,EAC5BG,ECrBgB,CAAID,IACxB,IAAIC,EAAMD,EAAOE,WAAW,MAC5B,GAAY,OAARD,EACD,MAAM,IAAIjc,MAEb,OAAOic,GDgBGE,CAAaH,GAgDnBI,EAAe,CAChBC,EACAC,EACAC,KAEA,IAAItB,EAAQc,EAAMQ,GAEdC,EE1Ea,EAAIvB,EAAeqB,KACvC,IAAIG,EAAQlZ,KAAKmZ,IAAIJ,EAAWna,EAAI8Y,EAAMxO,MAAO6P,EAAWla,EAAI6Y,EAAM0B,QAElEra,EAAI2Y,EAAMxO,MAAQgQ,EAClB7b,EAAIqa,EAAM0B,OAASF,EAEvB,MAAO,GACJna,IACA1B,EACAuB,EAAGoB,KAAKC,IAAI,EAAG8Y,EAAWna,EAAIG,GAAK,EACnCF,EAAGmB,KAAKC,IAAI,EAAG8Y,EAAWla,EAAIxB,GAAK,QACnC6b,IF+DUG,CAAa3B,EAAOqB,GAE1BO,EAAKR,EAAUla,EAAIma,EAAWna,EAC9B2a,EAAKT,EAAUja,EAAIka,EAAWla,EAC9B2T,EAAOgH,YACRd,EAAIe,YAAc,MAClBf,EAAIgB,WAAWJ,EAAIC,EAAIR,EAAWna,EAAGma,EAAWla,IAEnD6Z,EAAIiB,UAAUjC,EAAO4B,EAAKL,EAAIra,EAAG2a,EAAKN,EAAIpa,EAAGoa,EAAIla,EAAGka,EAAI5b,IA8C3D,MAJsB,QAfZqG,MAAUiI,IACjB,IAAIiO,EAzFQ,CAAI9G,IAChB,KAAMA,EAAKxW,OAAS,GAAI,MAAM,IAAIG,MAElC,MAAO,CACJmC,EAAGkU,EAAK,GAAGxW,OACXuC,EAAGiU,EAAKxW,SAoFIud,CAAYlO,EAAKmH,MAC5BiG,EAjFU,CAAIa,IACX,CACJhb,EAAG,IAAMgb,EAAShb,EAClBC,EAAG,IAAM+a,EAAS/a,IA8EJib,CAAcF,QA1EpBlW,OAAUoP,EAA8B8G,KACnD,IAAIlC,EAAQ,IAAIqC,UAAUH,EAAShb,EAAGgb,EAAS/a,IAC1C1B,KAACA,GAASua,EAEf5E,EAAK5N,SAAO,CAAE8U,EAAMC,KACjB,IAAIC,EAAM,EAAIF,EAAK1d,OAAS2d,EAC5BD,EAAK9U,SAAO,CAAEiV,EAAQC,KACnB,IACIC,EADAC,EAAKJ,EAAM,EAAIE,EAGhBC,EADiB,aAAhBF,EAAO1U,KACA4S,EACgB,WAAhB8B,EAAO1U,KACP2S,EACsB,cAAtB+B,EAAO5G,WACP4E,EACkB,WAAlBgC,EAAO7G,OACP4E,EAEAE,GAETjb,EAAKmd,EAAK,GAAInd,EAAKmd,EAAK,GAAInd,EAAKmd,EAAK,IAAMD,EAC9Cld,EAAKmd,EAAK,GAAK,UAIrB,IAAIC,QAAeC,kBAAkB9C,GACrCgB,EAAI+B,uBAAwB,EAC5B/B,EAAIiB,UAAUY,EAAQ,EAAG,EAAG,IAAK,MAiD3BG,CAAW/O,EAAKmH,KAAM8G,GAC5Bf,EAAgBlN,EAAKsJ,OAAQ8D,EAAY,eACpBpY,IAAjBgL,EAAK0K,SACNwC,EAAgBlN,EAAK0K,QAAS0C,EAAY,WAGzB,UAAhBpN,EAAKjB,QAlCG,EACZsK,EACA2F,KAEA,IAAK/b,EAACA,EAACC,EAAEA,EAAC+b,MAAEA,GAAUD,EAGtBjC,EAAImC,KAAU,GAAKD,EAAX,iCACRlC,EAAIoC,UAAY,QAChBpC,EAAIe,YAAc,QAElB,IAAItH,EAAI,GAAM6C,IACA,YAAVA,EACD7C,EAAO,eACW,gBAAV6C,EACR7C,EAAO,kBACW,WAAV6C,IACR7C,EAAO,wBAEVuG,EAAIqC,UAAY,EAChBrC,EAAIsC,WAAW7I,EAAMvT,EAAGC,GACxB6Z,EAAIuC,SAAS9I,EAAMvT,EAAGC,IAcnBqc,CAAYvP,EAAKqJ,MAAO,CAAEpW,EAAG,IAAKC,EAAG,IAAK+b,MAAO;;;;;;;;;;;;;;gFGjGlB,IAAAO,EAAA,SAAAC,EAAAC,UAAEF,EAAC/e,OAAA+G,gBAAA,CACrCC,UAAa,cAClBoL,OAAA,SAAApP,EAAAe,GAEUf,EAAAgE,UAAAjD,IACP,SAAAf,EAAAe,GACI,IAAK,IAAImb,KAAInb,EAAOA,EAAAY,eAAaua,KAAQlc,EAACkc,GAAMnb,EAACmb,MAERF,EAACC,aAE1CE,EAAQnc,EAAAe,GAEZ,SAAOqb,IACVve,KAAA2F,YAAAxD,EAFG+b,EAAC/b,EAAAe,GAKDf,EAAAyB,UAAS,OAAAV,EAAA/D,OAAAsG,OAAAvC,IAAAqb,EAAA3a,UAAAV,EAAAU,UAAA,IAAA2a,cAuC8CC,EAAAC,WAK/Cle,EAAIuN,WAL+C,EAAGlG,KAAC,WAAG,GAAA,EAAArH,EAAA,GAAA,MAAAA,EAAA,UACpDA,EAAE,SAEL,OACH,eACsBT,mBAAgBoC,GAAA,gBAGlCwc,cAAS,IAACnT,UAAK,0DAAkBhL,EAAM,EAAFme,EAAE,GAAA9c,EAAA,OAAA8c,EAAA,GAAA9c,EAAA,SAAArB,EAAAqB,EAAA,SAAArB,EAAA8E,KAAAzD,GAAA,GAAAA,EAAAtB,SAAAC,EAAAA,EAAA8E,KAAAzD,EAAA8c,EAAA,KAAA1X,KAAA,OAAAzG,iBAAGme,EAAM,CAAO,OACvDne,EAAA0G,UAAoB,SAAU,EAAM,KAAA,EAAC1G,EAACme,EAAE,MACxC,KAAK,EAAqB,OAAlBxI,EAAEkB,QAAuB,CAAOnQ,MAAQyX,EAAA,6BAE+D9c,EAAC8c,EAAA,GAC5GA,EAAI,CAAyD,GAAwB,cACrF,IAAsCxI,EAACyI,IAAKpX,aAAUA,uBACtD,KAAKhH,EAAK2V,EAAC0I,MAAKre,EAAMA,EAAAlB,OAAI,GAAAkB,EAAAA,EAAAlB,OAAA,KAAA,IAAAqf,EAAA,IAAA,IAAAA,EAAA,IAAA,CAACxI,EAAE,EAAc,SAAuB,GAAC,IAAAwI,EAAA,MAAAne,GAAAme,EAAA,GAAAne,EAAA,IAAAme,EAAA,GAAAne,EAAA,IAAA,CAC/D2V,EAAEkB,MAAMsH,EAAI,GACd,iCAEAxI,EAAIkB,MAAQ7W,EAAE,GACfA,EAAAme,EAAO,MAAI,GAAAne,GAAA2V,EAAAkB,MAAA7W,EAAA,GAAA,CAAC2V,EAAAkB,MAAA7W,EAAA,GAAO2V,EAAAyI,IAAAlc,KAAAic,GAAa,MAAane,EAAA,IAAA2V,EAAAyI,IAAApX,MAC9C2O,EAAC0I,KAAErX,MAAqB,SAAgCmX,EAAID,EAAMpZ,KAAAmZ,EAAAtI,GAAE,MAAA7I,GACnFqR,EAAA,CAvBW,EAAOrR,GAAmCzL,EAAA,EAAa,QAAmEf,EAAON,EAAI,EAwBpJ,GAAA,EAAAme,EAAA,GAAA,MAAAA,EAAA,SAEe,CACHzX,MAAQyX,EAAE,GAAGA,EAAA,QAAQ,EACjC1X,MAAA,GAtBkD6X,CAAA,CACvC/e,EACIoC,KAwBZ,OAAO4L,EAAA,CACHxN,KAAKwe,EAAM,GACXC,MAAMD,EAAQ,UACLA,EAAK,IACF,mBAAR9a,SAAQ8J,EAAA9J,OAAAE,UAAA,sCA6C0FhC,0BAAU8c,GAAWhf,KAAAkC,EAAAA,EAAAlC,MAAA,IAAAgf,EAAA9c,YAAQ+c,EAAAT,EAAAU,EAAA/U,GAAE,IAACnG,OAAAI,cAAA,MAAA,IAAAmH,UAAA,4CACnHnM,MAAN2P,MAAMyP,EAAAU,GAAA,IAAAC,EAAA,YAAML,EAAAhf,GAACgO,EAAAhO,KAAMV,EAAEU,GAAG,SAAAoC,GAAM,OAAQ,IAAG+I,SAAA,SAAA9H,EAAAD,GAACic,EAAM1c,KAAI,CAAW3C,EAAEoC,EACnEiB,EAAWD,IAA8F,GAAAkc,EAAAtf,EAAAoC,iBAE/Gkd,EAAOtf,EAAAoC,GAAS,KALCqM,EAKwBT,EAAAhO,GAAAoC,IALkD+E,iBAAW+X,EAAA/T,QAAAH,QAAAyD,EAAAtH,MAAA/E,GAAA6E,KAAAsY,EAAAtU,GAAAuU,EAAAH,EAAA,GAAA,GAAA5Q,SAMtGlB,GAAmBiS,EAAOH,EAAC,GAAA,GAAK9R,GAN7B,IAAckB,EAO7B,SAAA8Q,EAAApY,KAEe,OAAAA,YAGH8D,EAAM9D,GAAOmY,EAAO,QAAOnY,cAAmCpG,EAAOqB,QAAkBid,EAAI3O,QAAgB2O,EAAA9f,QAAA+f,EAAAD,EAAA,GAAA,GAAAA,EAAA,GAAA,WAAoB/f,EAAI,GAAG0f,EAAA,QAAAA,EAAA,SAAAA,EAAA,UAAA1f,EAAA4E,OAAAI,eAAA,WAD/I,OAAWpE,MAAIZ,WC1KHmgB,EAAW5d,GACzB,MAAoB,mBAANA,ECDhB,IAAI6d,GAAsD,EAM7CC,EAAS,CAKpBxU,aAASvH,EAULgc,0CAAsCzY,GACxC,GAAIA,EAAO,CACT,IAAMkE,EAAQ,IAAI3L,MAClBmgB,QAAQC,KAAK,gGAAkGzU,EAAM0U,YAC5GL,GACTG,QAAQG,IAAI,wDAEdN,EAAsDvY,GAGpDyY,4CACF,OAAOF,aC3BKO,EAAgBnV,GAC9BoV,YAAW,WAAQ,MAAMpV,IAAQ,GCF5B,IAAMqV,EAAuB,CAClCC,QAAQ,EACR5f,KAAA,SAAK2G,KACLkE,MAAA,SAAMP,GACJ,GAAI6U,EAAOC,sCACT,MAAM9U,EAENmV,EAAgBnV,IAGpBnB,SAAA,cCdW0W,EAAiB5O,MAAMC,SAAY,SAAI7P,GAAqB,OAAAA,GAAyB,iBAAbA,EAAEtC,QCQvF,IAoBa+gB,EApBoB,oBACtBC,EAAqCC,GAO5C,OANA9gB,MAAM6F,KAAKrF,MACXA,KAAKugB,QAAUD,EACVA,EAAOjhB,OAAM,4CACpBihB,EAAOlQ,KAAI,SAACxF,EAAKxL,GAAM,OAAGA,EAAI,EAAC,KAAKwL,EAAI1D,cAAcsZ,KAAK,QAAY,GACrExgB,KAAKgG,KAAO,sBACXhG,KAAasgB,OAASA,EAChBtgB,KAKT,OAFAqgB,EAAwBzc,UAAYzE,OAAOsG,OAAOjG,MAAMoE,WAEjDyc,EAbwB,GCUjCI,EAAA,oBAsBEA,EAAYC,GAXL1gB,KAAAkgB,QAAkB,EAGflgB,KAAA2gB,iBAAyD,KAE3D3gB,KAAA4gB,eAA4C,KAO9CF,IACK1gB,KAAM6gB,aAAeH,GAtBb,IAA2BI,EA0LhD,OA1JEL,EAAA7c,UAAA8c,YAAA,WACE,IAAIJ,EAEJ,IAAItgB,KAAKkgB,OAAT,CAII,IC3DiBve,ED2DjBof,EAAA/gB,KAAE2gB,EAAAI,EAAAJ,iBAAkBE,EAAAE,EAAAF,aAAcD,EAAAG,EAAAH,eAQtC,GANA5gB,KAAKkgB,QAAS,EACdlgB,KAAK2gB,iBAAmB,KAGxB3gB,KAAK4gB,eAAiB,KAElBD,aAA4BF,EAC9BE,EAAiBK,OAAOhhB,WACnB,GAAyB,OAArB2gB,EACT,IAAK,IAAIM,EAAQ,EAAGA,EAAQN,EAAiBthB,SAAU4hB,EAAO,CAC7CN,EAAiBM,GACzBD,OAAOhhB,MAIlB,GAAIuf,EAAWsB,GACb,IACEA,EAAaxb,KAAKrF,MAClB,MAAOqN,GACPiT,EAASjT,aAAa+S,EAAsBc,GAA4B7T,EAAEiT,QAAU,CAACjT,GAIzF,GAAI8S,EAAQS,GACV,CAAIK,GAAQ,MAAZ,IACIE,EAAMP,EAAevhB,SAEhB4hB,EAAQE,GAAK,CACpB,IAAMC,EAAMR,EAAeK,GAC3B,GCzFO,QADUtf,ED0FJyf,ICzFe,iBAANzf,ED0FpB,IACEyf,EAAIV,cACJ,MAAOrT,GACPiT,EAASA,GAAU,GACfjT,aAAa+S,EACfE,EAASA,EAAOzN,OAAOqO,GAA4B7T,EAAEiT,SAErDA,EAAO7d,KAAK4K,KAOtB,GAAIiT,EACF,MAAM,IAAIF,EAAoBE,KAwBlCG,EAAA7c,UAAA2M,IAAA,SAAI8Q,GACF,IAAIC,EAA8BD,EAElC,IAAWA,EACT,OAAOZ,EAAac,MAGtB,cAAeF,GACb,IAAK,WACHC,EAAe,IAAIb,EAA2BY,GAChD,IAAK,SACH,GAAIC,IAAiBthB,MAAQshB,EAAapB,QAA8C,mBAA7BoB,EAAaZ,YAEtE,OAAOY,EACF,GAAIthB,KAAKkgB,OAEd,OADAoB,EAAaZ,cACNY,EACF,KAAMA,aAAwBb,GAAe,CAClD,IAAMe,EAAMF,GACZA,EAAe,IAAIb,GACNG,eAAiB,CAACY,GAEjC,cAEA,MAAM,IAAIhiB,MAAM,yBAA2B6hB,EAAW,2BAKpD,IAAAV,EAAAW,EAAAX,iBACN,GAAyB,OAArBA,EAGFW,EAAaX,iBAAmB3gB,UAC3B,GAAI2gB,aAA4BF,EAAc,CACnD,GAAIE,IAAqB3gB,KAEvB,OAAOshB,EAITA,EAAaX,iBAAmB,CAACA,EAAkB3gB,UAC9C,CAAA,IAAuC,IAAnC2gB,EAAiBc,QAAQzhB,MAKlC,OAAOshB,EAHPX,EAAiBle,KAAKzC,MAOxB,IAAM0hB,EAAgB1hB,KAAK4gB,eAO3B,OANsB,OAAlBc,EACF1hB,KAAK4gB,eAAiB,CAACU,GAEvBI,EAAcjf,KAAK6e,GAGdA,GASTb,EAAA7c,UAAAod,OAAA,SAAOM,GACL,IAAMI,EAAgB1hB,KAAK4gB,eAC3B,GAAIc,EAAe,CACjB,IAAMC,EAAoBD,EAAcD,QAAQH,IACtB,IAAtBK,GACFD,EAAcE,OAAOD,EAAmB,KAtLhClB,EAAAc,QAAgCT,EAG5C,IAAIL,GAFEP,QAAS,EACRY,GAwLXL,EA5LA,YA8LSS,GAA4BZ,GACpC,OAAOA,EAAOuB,QAAO,SAACC,EAAMlX,GAAQ,OAAAkX,EAAKjP,OAAQjI,aAAewV,EAAuBxV,EAAI0V,OAAS1V,KAAM,IEhNpG,IAAMmX,GACO,mBAAX/d,OACHA,OAAO,gBACP,kBAAoBjB,KAAKiM,SCc/BgT,GAAA,SAAAC,YAuCED,EAAYE,EACA/W,EACA1B,GAFZ,IAAA0Y,EAGEF,EAAA5c,KAAArF,OAAOA,KAEP,OApBemiB,EAAAC,eAAsB,KACtBD,EAAAE,iBAA2B,EAC3BF,EAAAG,oBAA8B,EAErCH,EAAAI,WAAqB,EAgBrBC,UAAUnjB,QAChB,KAAK,EACH8iB,EAAKhK,YAAc8H,EACnB,MACF,KAAK,EACH,IAAKiC,EAAmB,CACtBC,EAAKhK,YAAc8H,EACnB,MAEF,GAAiC,iBAAtBiC,EAAgC,CACrCA,aAA6BF,GAC/BG,EAAKG,mBAAqBJ,EAAkBI,mBAC5CH,EAAKhK,YAAc+J,EACnBA,EAAkB3R,IAAI4R,KAEtBA,EAAKG,oBAAqB,EAC1BH,EAAKhK,YAAc,IAAIsK,GAAkBN,EAA6BD,IAExE,cAGFC,EAAKG,oBAAqB,EAC1BH,EAAKhK,YAAc,IAAIsK,GAAkBN,EAA6BD,EAAmB/W,EAAO1B,YA6ExG,OA/ImC6U,EAAA0D,EAAAC,GAEjCD,EAAApe,UAACme,IAAD,WAAyB,OAAO/hB,MAczBgiB,EAAAvc,OAAP,SAAiBnF,EACA6K,EACA1B,GACf,IAAMiZ,EAAa,IAAIV,EAAW1hB,EAAM6K,EAAO1B,GAE/C,OADAiZ,EAAWJ,oBAAqB,EACzBI,GAyDTV,EAAApe,UAAAtD,KAAA,SAAK2G,GACEjH,KAAKuiB,WACRviB,KAAK2iB,MAAM1b,IAWf+a,EAAApe,UAAAuH,MAAA,SAAMP,GACC5K,KAAKuiB,YACRviB,KAAKuiB,WAAY,EACjBviB,KAAK4iB,OAAOhY,KAUhBoX,EAAApe,UAAA6F,SAAA,WACOzJ,KAAKuiB,YACRviB,KAAKuiB,WAAY,EACjBviB,KAAK6iB,cAITb,EAAApe,UAAA8c,YAAA,WACM1gB,KAAKkgB,SAGTlgB,KAAKuiB,WAAY,EACjBN,EAAAre,UAAM8c,YAAWrb,KAAArF,QAGTgiB,EAAApe,UAAA+e,MAAV,SAAgB1b,GACdjH,KAAKmY,YAAY7X,KAAK2G,IAGd+a,EAAApe,UAAAgf,OAAV,SAAiBhY,GACf5K,KAAKmY,YAAYhN,MAAMP,GACvB5K,KAAK0gB,eAGGsB,EAAApe,UAAAif,UAAV,WACE7iB,KAAKmY,YAAY1O,WACjBzJ,KAAK0gB,eAIPsB,EAAApe,UAAAkf,uBAAA,WACW,IAAAnC,EAAA3gB,KAAA2gB,iBAMT,OALA3gB,KAAK2gB,iBAAmB,KACxB3gB,KAAK0gB,cACL1gB,KAAKkgB,QAAS,EACdlgB,KAAKuiB,WAAY,EACjBviB,KAAK2gB,iBAAmBA,EACjB3gB,MAEXgiB,EA/IA,CAAmCvB,GAsJnCgC,GAAA,SAAAR,YAIEQ,EAAoBM,EACRC,EACA7X,EACA1B,GAHZ,IAMMnJ,EANN6hB,EAIEF,EAAA5c,KAAArF,OAAOA,KAJWmiB,EAAAY,kBAAAA,EAOlB,IAAIna,EAAeuZ,SAEf5C,EAAWyD,GACb1iB,EAA+B0iB,EACtBA,IACT1iB,EAA6B0iB,EAAgB1iB,KAC7C6K,EAA8B6X,EAAgB7X,MAC9C1B,EAAiCuZ,EAAgBvZ,SAC7CuZ,IAAmB/C,IAEjBV,GADJ3W,EAAUzJ,OAAOsG,OAAOud,IACDtC,cACrByB,EAAK5R,IAAiB3H,EAAQ8X,YAAYuC,KAAKra,IAEjDA,EAAQ8X,YAAcyB,EAAKzB,YAAYuC,KAAKd,KAIhDA,EAAKe,SAAWta,EAChBuZ,EAAKQ,MAAQriB,EACb6hB,EAAKS,OAASzX,EACdgX,EAAKU,UAAYpZ,IAsGrB,OArIuC6U,EAAAmE,EAAAR,GAkCrCQ,EAAA7e,UAAAtD,KAAA,SAAK2G,GACH,IAAKjH,KAAKuiB,WAAaviB,KAAK2iB,MAAO,CACzB,IAAAI,EAAA/iB,KAAA+iB,kBACHtD,EAAOC,uCAA0CqD,EAAkBT,mBAE7DtiB,KAAKmjB,gBAAgBJ,EAAmB/iB,KAAK2iB,MAAO1b,IAC7DjH,KAAK0gB,cAFL1gB,KAAKojB,aAAapjB,KAAK2iB,MAAO1b,KAOpCwb,EAAA7e,UAAAuH,MAAA,SAAMP,GACJ,IAAK5K,KAAKuiB,UAAW,CACX,IAAAQ,EAAA/iB,KAAA+iB,kBACArD,EAAAD,EAAAC,sCACR,GAAI1f,KAAK4iB,OACFlD,GAA0CqD,EAAkBT,oBAI/DtiB,KAAKmjB,gBAAgBJ,EAAmB/iB,KAAK4iB,OAAQhY,GACrD5K,KAAK0gB,gBAJL1gB,KAAKojB,aAAapjB,KAAK4iB,OAAQhY,GAC/B5K,KAAK0gB,oBAKF,GAAKqC,EAAkBT,mBAOxB5C,GACFqD,EAAkBX,eAAiBxX,EACnCmY,EAAkBV,iBAAkB,GAEpCtC,EAAgBnV,GAElB5K,KAAK0gB,kBAb2C,CAEhD,GADA1gB,KAAK0gB,cACDhB,EACF,MAAM9U,EAERmV,EAAgBnV,MAatB6X,EAAA7e,UAAA6F,SAAA,WAAA,IAAA0Y,EAAAniB,KACE,IAAKA,KAAKuiB,UAAW,CACX,IAAAQ,EAAA/iB,KAAA+iB,kBACR,GAAI/iB,KAAK6iB,UAAW,CAClB,IAAMQ,EAAkB,WAAM,OAAAlB,EAAKU,UAAUxd,KAAK8c,EAAKe,WAElDzD,EAAOC,uCAA0CqD,EAAkBT,oBAItEtiB,KAAKmjB,gBAAgBJ,EAAmBM,GACxCrjB,KAAK0gB,gBAJL1gB,KAAKojB,aAAaC,GAClBrjB,KAAK0gB,oBAMP1gB,KAAK0gB,gBAKH+B,EAAA7e,UAAAwf,aAAR,SAAqB1Y,EAAczD,GACjC,IACEyD,EAAGrF,KAAKrF,KAAKkjB,SAAUjc,GACvB,MAAO2D,GAEP,GADA5K,KAAK0gB,cACDjB,EAAOC,sCACT,MAAM9U,EAENmV,EAAgBnV,KAKd6X,EAAA7e,UAAAuf,gBAAR,SAAwBG,EAAuB5Y,EAAczD,GAC3D,IAAKwY,EAAOC,sCACV,MAAM,IAAIlgB,MAAM,YAElB,IACEkL,EAAGrF,KAAKrF,KAAKkjB,SAAUjc,GACvB,MAAO2D,GACP,OAAI6U,EAAOC,uCACT4D,EAAOlB,eAAiBxX,EACxB0Y,EAAOjB,iBAAkB,GAClB,IAEPtC,EAAgBnV,IACT,GAGX,OAAO,GAIT6X,EAAA7e,UAAAid,aAAA,WACU,IAAAkC,EAAA/iB,KAAA+iB,kBACR/iB,KAAKkjB,SAAW,KAChBljB,KAAK+iB,kBAAoB,KACzBA,EAAkBrC,eAEtB+B,EArIA,CAAuCT,IC9JhC,IAAMuB,GAAsC,mBAAXvf,QAAyBA,OAAOwf,YAAc,wBCVtEC,GAAY9hB,GAC1B,OAAOA,WCsBO+hB,GAAoBC,GAClC,OAAmB,IAAfA,EAAItkB,OACCokB,GAGU,IAAfE,EAAItkB,OACCskB,EAAI,GAGN,SAAe/L,GACpB,OAAO+L,EAAI9B,QAAO,SAACla,EAAW+C,GAA4B,OAAAA,EAAG/C,KAAOiQ,ICjCxE,IAAAgM,cAAA,IAAAzB,EAAAniB,KACEA,KAAA8K,QAA4D,KAC5D9K,KAAA+K,OAAiC,KACjC/K,KAAA4Z,QAAU,IAAI3O,SAAW,SAAC9H,EAAGD,GAC3Bif,EAAKrX,QAAU3H,EACfgf,EAAKpX,OAAS7H,eCFF2gB,GAAqBvS,GACnC,gBAG2BA,6GACrBwS,EAA2C,GAC3C1e,EAAc,GAChB2e,GAAW,EACX5Y,EAAa,KACb6Y,GAAY,EAEVC,EAAO3S,EAAOgH,UAAU,CAC5BhY,KAAM,SAAA2G,GACA6c,EAAUzkB,OAAS,EACrBykB,EAAUtT,QAAS1F,QAAQ,CAAE7D,MAAKA,EAAED,MAAM,IAE1C5B,EAAO3C,KAAKwE,IAGhBkE,MAAO,SAAAP,OACLmZ,GAAW,EACX5Y,EAAQP,EACDkZ,EAAUzkB,OAAS,GACxBykB,EAAUtT,QAASzF,OAAOH,IAG9BnB,SAAU,eACRua,GAAY,EACLF,EAAUzkB,OAAS,GACxBykB,EAAUtT,QAAS1F,QAAQ,CAAE7D,WAAOvD,EAAWsD,MAAM,mEAOnD,OAAA5B,EAAO/F,OAAS,EACZ,CAAA,EAAA2f,EAAA5Z,EAAOoL,UADX,CAAA,EAAA,GACF,KAAA,EAAA,MAAA,CAAA,EAAAuQ,EAAAnZ,sBAAAmZ,EAAAnZ,qBACS,OAAAoc,gBAAA,CAAA,EAAA,GACT,KAAA,EAAA,MAAA,CAAA,EAAAjD,EAAAnZ,eACS,IAAAmc,EAAA,MAAA,CAAA,EAAA,GACT,MAAM5Y,SAIS,OAFThJ,EAAI,IAAIyhB,GACdE,EAAUrhB,KAAKN,GACA,CAAA,EAAA6c,EAAM7c,EAAEyX,iBACnB,OADE5X,EAAS+e,EAAAnZ,QACJZ,mBAAP,CAAA,EAAA,IACF,KAAA,GAAA,MAAA,CAAA,EAAA+Z,EAAAnZ,QAEM,KAAA,GAAA,MAAA,CAAA,EAAAoX,EAAAhd,EAAOiF,QAAb,KAAA,GAAA,MAAA,CAAA,EAAA8Z,EAAAnZ,gBAAAmZ,EAAAnZ,mEAKN,8BAEAqc,EAAKvD,2CAvDAwD,CAAU5S,GCenB,IAAA6S,GAAA,oBAkBEA,EAAY7L,GAfLtY,KAAAokB,WAAqB,EAgBtB9L,IACFtY,KAAKqkB,WAAa/L,GA+UxB,OApTE6L,EAAAvgB,UAAA0gB,KAAA,SAAQC,GACN,IAAMf,EAAa,IAAIW,EAGvB,OAFAX,EAAWlS,OAAStR,KACpBwjB,EAAWe,SAAWA,EACff,GAwITW,EAAAvgB,UAAA0U,UAAA,SAAU0K,EACA7X,EACA1B,GAEA,IAAA8a,EAAAvkB,KAAAukB,SACFC,WC7MRC,EACAtZ,EACA1B,GAEA,GAAIgb,EAAgB,CAClB,GAAIA,aAA0BzC,GAC5B,OAAwByC,EAG1B,GAAKA,EAAuB1C,IAC1B,OAAQ0C,EAAuB1C,MAInC,OAAK0C,GAAmBtZ,GAAU1B,EAI3B,IAAIuY,GAAWyC,EAAgBtZ,EAAO1B,GAHpC,IAAIuY,GAAW/B,GD8LTyE,CAAa1B,EAAgB7X,EAAO1B,GAYjD,GAVI8a,EACFC,EAAKjU,IAAIgU,EAASlf,KAAKmf,EAAMxkB,KAAKsR,SAElCkT,EAAKjU,IACHvQ,KAAKsR,QAAWmO,EAAOC,wCAA0C8E,EAAKlC,mBACtEtiB,KAAKqkB,WAAWG,GAChBxkB,KAAK2kB,cAAcH,IAInB/E,EAAOC,uCACL8E,EAAKlC,qBACPkC,EAAKlC,oBAAqB,EACtBkC,EAAKnC,iBACP,MAAMmC,EAAKpC,eAKjB,OAAOoC,GAITL,EAAAvgB,UAAA+gB,cAAA,SAAcH,GACZ,IACE,OAAOxkB,KAAKqkB,WAAWG,GACvB,MAAO5Z,GACH6U,EAAOC,wCACT8E,EAAKnC,iBAAkB,EACvBmC,EAAKpC,eAAiBxX,aEzOCga,QACtBA,GAAU,CACT,IAAA7D,EAAA6D,EAAEC,EAAA9D,EAAAb,OAAQ/H,EAAA4I,EAAA5I,YAAaoK,EAAAxB,EAAAwB,UAC7B,GAAIsC,GAAUtC,EACZ,OAAO,EAEPqC,EADSzM,GAAeA,aAAuB6J,GACpC7J,EAEA,KAGf,OAAO,EFgOC2M,CAAeN,GAGjB7E,QAAQC,KAAKhV,GAFb4Z,EAAKrZ,MAAMP,KAcjBuZ,EAAAvgB,UAAAqE,QAAA,SAAQ3H,EAA0BykB,GAAlC,IAAA5C,EAAAniB,KAGE,OAAO,IAFP+kB,EAAcC,GAAeD,KAEA,SAACja,EAASC,GAGrC,IAAIuW,EACJA,EAAea,EAAK7J,WAAU,SAACrR,GAC7B,IACE3G,EAAK2G,GACL,MAAO2D,GACPG,EAAOH,GACH0W,GACFA,EAAaZ,iBAGhB3V,EAAQD,OAKfqZ,EAAAvgB,UAAAygB,WAAA,SAAW3B,GACD,IAAApR,EAAAtR,KAAAsR,OACR,OAAOA,GAAUA,EAAOgH,UAAUoK,IAqBpCyB,EAAAvgB,UAAC2f,IAAD,WACE,OAAOvjB,MAqCTmkB,EAAAvgB,UAAAqhB,KAAA,WAAK,IAAA,IAAAC,EAAA,GAAAC,EAAA,EAAAA,EAAA3C,UAAAnjB,OAAA8lB,IAAAD,EAAAC,GAAA3C,UAAA2C,GACH,OAA0B,IAAtBD,EAAW7lB,OACNW,KAGF0jB,GAAcwB,EAAdxB,CAA0B1jB,OAoBnCmkB,EAAAvgB,UAAAwhB,UAAA,SAAUL,GAAV,IAAA5C,EAAAniB,KAGE,OAAO,IAFP+kB,EAAcC,GAAeD,KAEN,SAACja,EAASC,GAC/B,IAAI9D,EACJkb,EAAK7J,WAAU,SAAC3W,GAAS,OAAAsF,EAAQtF,KAAG,SAACiJ,GAAa,OAAAG,EAAOH,MAAM,WAAM,OAAAE,EAAQ7D,UA5T1Ekd,EAAA1e,OAAmB,SAAI6S,GAC5B,OAAO,IAAI6L,EAAc7L,IA8T7B6L,EAnWA,YA4WSa,GAAeD,GAKtB,GAJKA,IACHA,EAActF,EAAOxU,SAAWA,UAG7B8Z,EACH,MAAM,IAAIvlB,MAAM,yBAGlB,OAAOulB,EAiBH/gB,QAAUA,OAAOI,gBACnB+f,GAAWvgB,UAAUI,OAAOI,eAAiB,WAC3C,OAAOyf,GAAkB7jB,QGpZ/B,IAsBaqlB,GAtBwB,oBAC1BC,IAIP,OAHA9lB,MAAM6F,KAAKrF,MACXA,KAAKugB,QAAU,sBACfvgB,KAAKgG,KAAO,0BACLhG,KAKT,OAFAslB,EAA4B1hB,UAAYzE,OAAOsG,OAAOjG,MAAMoE,WAErD0hB,EAV4B,GCErCC,GAAA,SAAAtD,YAGEsD,EAAmBC,EAA4B9C,GAA/C,IAAAP,EACEF,EAAA5c,KAAArF,OAAOA,YADUmiB,EAAAqD,QAAAA,EAA4BrD,EAAAO,WAAAA,EAF/CP,EAAAjC,QAAkB,IA4BpB,OA7B4C5B,EAAAiH,EAAAtD,GAO1CsD,EAAA3hB,UAAA8c,YAAA,WACE,IAAI1gB,KAAKkgB,OAAT,CAIAlgB,KAAKkgB,QAAS,EAEd,IAAMsF,EAAUxlB,KAAKwlB,QACfC,EAAYD,EAAQC,UAI1B,GAFAzlB,KAAKwlB,QAAU,KAEVC,GAAkC,IAArBA,EAAUpmB,SAAgBmmB,EAAQjD,YAAaiD,EAAQtF,OAAzE,CAIA,IAAMwF,EAAkBD,EAAUhE,QAAQzhB,KAAK0iB,aAEvB,IAApBgD,GACFD,EAAU7D,OAAO8D,EAAiB,MAGxCH,EA7BA,CAA4C9E,GCG5CkF,GAAA,SAAA1D,YACE0D,EAAsBxN,GAAtB,IAAAgK,EACEF,EAAA5c,KAAArF,KAAMmY,IAAYnY,YADEmiB,EAAAhK,YAAAA,IAGxB,OAJ0CmG,EAAAqH,EAAA1D,GAI1C0D,EAJA,CAA0C3D,IAe1C4D,GAAA,SAAA3D,YAgBE2D,IAAA,IAAAzD,EACEF,EAAA5c,KAAArF,OAAOA,YAXTmiB,EAAAsD,UAA2B,GAE3BtD,EAAAjC,QAAS,EAETiC,EAAAI,WAAY,EAEZJ,EAAA4B,UAAW,EAEX5B,EAAA0D,YAAmB,OAyGrB,OAvHuCvH,EAAAsH,EAAA3D,GAErC2D,EAAAhiB,UAACme,IAAD,WACE,OAAO,IAAI4D,GAAkB3lB,OAwB/B4lB,EAAAhiB,UAAA0gB,KAAA,SAAQC,GACN,IAAMiB,EAAU,IAAIM,GAAiB9lB,KAAMA,MAE3C,OADAwlB,EAAQjB,SAAgBA,EACZiB,GAGdI,EAAAhiB,UAAAtD,KAAA,SAAK2G,GACH,GAAIjH,KAAKkgB,OACP,MAAM,IAAImF,GAEZ,IAAKrlB,KAAKuiB,UAIR,IAHQ,IAAAkD,EAAAzlB,KAAAylB,UACFtE,EAAMsE,EAAUpmB,OAChBuB,EAAO6kB,EAAU9iB,QACdvD,EAAI,EAAGA,EAAI+hB,EAAK/hB,IACvBwB,EAAKxB,GAAGkB,KAAK2G,IAKnB2e,EAAAhiB,UAAAuH,MAAA,SAAMP,GACJ,GAAI5K,KAAKkgB,OACP,MAAM,IAAImF,GAEZrlB,KAAK+jB,UAAW,EAChB/jB,KAAK6lB,YAAcjb,EACnB5K,KAAKuiB,WAAY,EAIjB,IAHQ,IAAAkD,EAAAzlB,KAAAylB,UACFtE,EAAMsE,EAAUpmB,OAChBuB,EAAO6kB,EAAU9iB,QACdvD,EAAI,EAAGA,EAAI+hB,EAAK/hB,IACvBwB,EAAKxB,GAAG+L,MAAMP,GAEhB5K,KAAKylB,UAAUpmB,OAAS,GAG1BumB,EAAAhiB,UAAA6F,SAAA,WACE,GAAIzJ,KAAKkgB,OACP,MAAM,IAAImF,GAEZrlB,KAAKuiB,WAAY,EAIjB,IAHQ,IAAAkD,EAAAzlB,KAAAylB,UACFtE,EAAMsE,EAAUpmB,OAChBuB,EAAO6kB,EAAU9iB,QACdvD,EAAI,EAAGA,EAAI+hB,EAAK/hB,IACvBwB,EAAKxB,GAAGqK,WAEVzJ,KAAKylB,UAAUpmB,OAAS,GAG1BumB,EAAAhiB,UAAA8c,YAAA,WACE1gB,KAAKuiB,WAAY,EACjBviB,KAAKkgB,QAAS,EACdlgB,KAAKylB,UAAY,MAInBG,EAAAhiB,UAAA+gB,cAAA,SAAcjC,GACZ,GAAI1iB,KAAKkgB,OACP,MAAM,IAAImF,GAEV,OAAOpD,EAAAre,UAAM+gB,cAAatf,KAAArF,KAAC0iB,IAK/BkD,EAAAhiB,UAAAygB,WAAA,SAAW3B,GACT,GAAI1iB,KAAKkgB,OACP,MAAM,IAAImF,GACL,OAAIrlB,KAAK+jB,UACdrB,EAAWvX,MAAMnL,KAAK6lB,aACfpF,EAAac,OACXvhB,KAAKuiB,WACdG,EAAWjZ,WACJgX,EAAac,QAEpBvhB,KAAKylB,UAAUhjB,KAAKigB,GACb,IAAI6C,GAAoBvlB,KAAM0iB,KAUzCkD,EAAAhiB,UAAAmiB,aAAA,WACE,IAAMvC,EAAa,IAAIW,GAEvB,OADMX,EAAYlS,OAAStR,KACpBwjB,GA9FFoC,EAAAngB,OAAmB,SAAI0S,EAA0B7G,GACtD,OAAO,IAAIwU,GAAoB3N,EAAa7G,IA+FhDsU,EAvHA,CAAuCzB,IA4HvC2B,GAAA,SAAA7D,YACE6D,EAAsB3N,EAA2B7G,GAAjD,IAAA6Q,EACEF,EAAA5c,KAAArF,OAAOA,YADamiB,EAAAhK,YAAAA,EAEpBgK,EAAK7Q,OAASA,IAiClB,OApCyCgN,EAAAwH,EAAA7D,GAMvC6D,EAAAliB,UAAAtD,KAAA,SAAK2G,GACK,IAAAkR,EAAAnY,KAAAmY,YACJA,GAAeA,EAAY7X,MAC7B6X,EAAY7X,KAAK2G,IAIrB6e,EAAAliB,UAAAuH,MAAA,SAAMP,GACI,IAAAuN,EAAAnY,KAAAmY,YACJA,GAAeA,EAAYhN,OAC7BnL,KAAKmY,YAAahN,MAAMP,IAI5Bkb,EAAAliB,UAAA6F,SAAA,WACU,IAAA0O,EAAAnY,KAAAmY,YACJA,GAAeA,EAAY1O,UAC7BzJ,KAAKmY,YAAa1O,YAKtBqc,EAAAliB,UAAAygB,WAAA,SAAW3B,GAET,OADQ1iB,KAAAsR,OAECtR,KAAKsR,OAAQgH,UAAUoK,GAEvBjC,EAAac,OAG1BuE,EApCA,CAAyCF,ICnGzC,IAAAI,GAAA,oBACEA,EAAoBC,EAAiDzH,GAAjDxe,KAAAimB,QAAAA,EAAiDjmB,KAAAwe,QAAAA,EAMvE,OAHEwH,EAAApiB,UAAAyB,KAAA,SAAKqd,EAA2BpR,GAC9B,OAAOA,EAAOgH,UAAU,IAAI4N,GAAcxD,EAAY1iB,KAAKimB,QAASjmB,KAAKwe,WAE7EwH,EAPA,GAcAE,GAAA,SAAAjE,YAIEkE,EAAYhO,EACQ8N,EACRzH,GAFZ,IAAA2D,EAGEF,EAAA5c,KAAArF,KAAMmY,IAAYnY,YAFAmiB,EAAA8D,QAAAA,EAJpB9D,EAAA7T,MAAgB,EAOd6T,EAAK3D,QAAUA,GAAW2D,IAe9B,OAvBkC7D,EAAA6H,EAAAlE,GAatBkE,EAAAviB,UAAA+e,MAAV,SAAgB1b,GACd,IAAIjF,EACJ,IACEA,EAAShC,KAAKimB,QAAQ5gB,KAAKrF,KAAKwe,QAASvX,EAAOjH,KAAKsO,SACrD,MAAO1D,GAEP,YADA5K,KAAKmY,YAAYhN,MAAMP,GAGzB5K,KAAKmY,YAAY7X,KAAK0B,IAE1BmkB,EAvBA,CAAkCnE,aC4GlBoE,GACdC,EACAC,EACA9Z,EACA+Z,GAQA,OALIhH,EAAW/S,KAEb+Z,EAAiB/Z,EACjBA,OAAU9I,GAER6iB,EAEKH,GAAaC,EAAQC,EAAW9Z,GAA6CyY,MDjJ9DgB,ECkJhB,SAAA1S,GAAQ,OAAA4M,EAAQ5M,GAAQgT,EAAexX,WAAA,EAAIwE,GAAQgT,EAAgBhT,IDjJpE,SAAsBjC,GAC3B,GAAuB,mBAAZ2U,EACT,MAAM,IAAI1a,UAAU,8DAEtB,OAAO+F,EAAOgT,KAAK,IAAI0B,GAAYC,EAASzH,OCiJvC,IAAI2F,IAAc,SAAAzB,GAQvB8D,GAAkBH,EAAQC,YAPTjZ,GACXmV,UAAUnjB,OAAS,EACrBqjB,EAAWpiB,KAAKiR,MAAM3N,UAAUjB,MAAM0C,KAAKmd,YAE3CE,EAAWpiB,KAAK+M,KAG0BqV,EAAYlW,UD9JpCyZ,EAAyCzH,WCkK1DgI,GAAqBC,EAA+BH,EAC/BI,EAAmChE,EACnClW,GAC5B,IAAIkU,EACJ,YA+BqB+F,GACrB,OAAOA,GAAmD,mBAA/BA,EAAUE,kBAA4E,mBAAlCF,EAAUG,oBAhCrFC,CAAcJ,GAAY,CAC5B,IAAMK,EAASL,EACfA,EAAUE,iBAAiBL,EAAWI,EAASla,GAC/CkU,EAAc,WAAM,OAAAoG,EAAOF,oBAAoBN,EAAWI,EAASla,SAC9D,YAuB0Bia,GACjC,OAAOA,GAAqC,mBAAjBA,EAAUM,IAA8C,mBAAlBN,EAAUO,IAxBhEC,CAA0BR,GAAY,CAC/C,IAAMS,EAAST,EACfA,EAAUM,GAAGT,EAAWI,GACxBhG,EAAc,WAAM,OAAAwG,EAAOF,IAAIV,EAAWI,SACrC,YAewBD,GAC/B,OAAOA,GAA8C,mBAA1BA,EAAUU,aAAkE,mBAA7BV,EAAUW,eAhBzEC,CAAwBZ,GAAY,CAC7C,IAAMa,EAASb,EACfA,EAAUU,YAAYb,EAAWI,GACjChG,EAAc,WAAM,OAAA4G,EAAOF,eAAed,EAAWI,QAChD,CAAA,IAAID,IAAcA,EAAkBpnB,OAKzC,MAAM,IAAIkM,UAAU,wBAJpB,IAAK,IAAInM,EAAI,EAAG+hB,EAAOsF,EAAkBpnB,OAAQD,EAAI+hB,EAAK/hB,IACxDonB,GAAmBC,EAAkBrnB,GAAIknB,EAAWI,EAAShE,EAAYlW,GAM7EkW,EAAWnS,IAAImQ,GC3MV,ICrBI6G,GAAW,KACnB,IAAIC,EDoByB,CAC7BlM,IAEA,IAAKjL,QAACA,EAAOoX,WAAEA,GAAenM,EAG1BoM,EAAyB,GACzBC,EAAuB,GAEvBC,EAAY,CAAIC,EAAqBC,IAA0BC,IAChE,IAAIzgB,EAAM,GAAKygB,EAAGN,GACdf,EAAUoB,EAAWxgB,QACT5D,IAAZgjB,IACDA,IACMqB,EAAGC,QAAUD,EAAGE,SAAWF,EAAGG,UACjCH,EAAGI,mBAKRC,EAAgBR,EAAa,EAAQF,GACrCW,EAAcT,EAAa,EAAMD,GAarC,OAXAtX,EAAQsW,iBAAiB,UAAWyB,GAAe,GACnD/X,EAAQsW,iBAAiB,QAAS0B,GAAa,GAUxC,CACJC,UAAS,CAAGhhB,EAAamF,KACtB,QAA0B/I,IAAtBgkB,EAAapgB,GACd,MAAM,IAAI9H,MAAK,kBAAmB8H,0BAIrC,OAFAogB,EAAapgB,GAAOmF,EAEb,CACJuU,OAAM,YACI0G,EAAapgB,MAK7BihB,QAAO,CAAGjhB,EAAamF,KACpB,QAAwB/I,IAApBikB,EAAWrgB,GACZ,MAAM,IAAI9H,MAAK,kBAAmB8H,wBAIrC,OAFAqgB,EAAWrgB,GAAOmF,EAEX,CACJuU,OAAM,YACI2G,EAAWrgB,MAK3BkhB,OAAS9Z,IACN,IAAKpH,IAACA,EAAGmhB,QAAEA,EAAOC,MAAEA,GAAUha,EAC9B,QAA0BhL,IAAtBgkB,EAAapgB,GACd,MAAM,IAAI9H,MAAK,kBAAmB8H,0BAErC,QAAwB5D,IAApBikB,EAAWrgB,GACZ,MAAM,IAAI9H,MAAK,kBAAmB8H,wBAMrC,OAHAogB,EAAapgB,GAAOmhB,EACpBd,EAAWrgB,GAAOohB,EAEX,CACJ1H,OAAM,YACI0G,EAAapgB,UACbqgB,EAAWrgB,gBAlDjB,KAEVogB,EAAe,GACfC,EAAa,GACbtX,EAAQuW,oBAAoB,UAAWwB,GAAe,GACtD/X,EAAQuW,oBAAoB,QAASyB,GAAa,MCnDtCM,CAAsB,CAClCtY,QAAS6J,SAAS0O,gBAClBnB,WAAY,QAGXoB,ECT2B,GAAKxY,QAACA,MACrC,IAAIyY,EAAcC,GAGZA,EAAIC,UAAU,IAAMD,EAAIE,eAAeD,UAAU,IAAMD,EAIzDG,EAAQ,EACRC,EAAQ,EAERC,EAAoBL,IACrB,IAAIC,EAAUF,EAAWC,GAEzBG,EAAQF,EAAQK,QAChBF,EAAQH,EAAQM,SAGfC,EAAmBR,IACpB,IAAKG,IAAUC,EACZ,OAGH,IAAIH,EAAUF,EAAWC,GAErBS,EAAWR,EAAQK,QACnBI,EAAWT,EAAQM,QAEnBjN,EAAK6M,EAAQM,EACblN,EAAK6M,EAAQM,EAENpN,GAAM,EAAIC,GAAM,EAEhB,OAIPvZ,KAAKgW,IAAIsD,GAAMtZ,KAAKgW,IAAIuD,GAErBD,EAAK,EACNtc,EAAGiZ,KAAK1Y,OAERP,EAAGkZ,MAAM3Y,OAGRgc,EAAK,EACNvc,EAAGmZ,GAAG5Y,OAENP,EAAGoZ,KAAK7Y,OAId4oB,EAAQM,EACRL,EAAQM,IAGPC,GAAc,EACdC,EAAmB5B,IACpB2B,GAAc,EACdN,EAAiBrB,IAGhB6B,EAAmB7B,IAChB2B,GACDH,EAAgBxB,IAIlB8B,EAAa,KACdH,GAAc,GAGjBrZ,EAAQsW,iBAAiB,aAAcyC,GAAkB,GACzD/Y,EAAQsW,iBAAiB,YAAa4C,GAAiB,GACvDlZ,EAAQsW,iBAAiB,YAAagD,GAAiB,GACvDtZ,EAAQsW,iBAAiB,YAAaiD,GAAiB,GACvDvZ,EAAQsW,iBAAiB,UAAWkD,GAAe,GAEnD,IAQI9pB,EAAK,CACNiZ,KAAM,IAAI4M,GACV3M,MAAO,IAAI2M,GACX1M,GAAI,IAAI0M,GACRzM,KAAM,IAAIyM,aAZA,KACVvV,EAAQuW,oBAAoB,aAAcwC,GAAkB,GAC5D/Y,EAAQuW,oBAAoB,YAAa2C,GAAiB,GAC1DlZ,EAAQuW,oBAAoB,YAAa+C,GAAiB,GAC1DtZ,EAAQuW,oBAAoB,YAAagD,GAAiB,GAC1DvZ,EAAQuW,oBAAoB,UAAWiD,GAAe,KAWzD,OAAO9pB,GDrFiB+pB,CAAwB,CAC7CzZ,QAAS6J,SAAS0O,kBAGjBmB,EAAc,CAAIziB,EAAa0iB,IACzB,IAAI7F,IAAkBzB,IAC1B,IAAIjW,EAAQ,IAASiW,EAAWpiB,OAC5B2pB,EAAOD,EAAM1R,UAAU7L,GACvByd,EAAO1C,EAASc,UAAUhhB,EAAKmF,GACnC,MAAM,KACHyd,EAAKlJ,SACLiJ,EAAKjJ,OAAOiJ,OAKrB,MAAO,CACJjR,KAAM+Q,EAAe,YAAalB,EAAkB7P,MACpDC,MAAO8Q,EAAe,aAAclB,EAAkB5P,OACtDC,GAAI6Q,EAAe,UAAWlB,EAAkB3P,IAChDC,KAAM4Q,EAAe,YAAalB,EAAkB1P,MACpDgR,UAAS,KACN3C,EAAS2C,YACTtB,EAAkBsB,eEdhBC,GAAW,CACnBC,EACAC,KAEA,IAAIC,EAAY,GAEZC,EAAYH,EAASI,OAAOpV,MAAM,KAAK1S,MAAM,GA6CjD,OAxBA6nB,EAAUviB,SAASyiB,IAChB,IAAIpjB,EACAqjB,EACA1jB,EACAyjB,EAAM5X,SAAS,OACdxL,KAAQqjB,GAAaD,EAAMrV,MAAM,KACnCpO,EAAQ0jB,EAAUnK,KAAK,KAClBpY,MAAMnB,KACRA,GAASA,KAGZK,EAAMojB,EACNzjB,GAAQ,GAGXsjB,EAAOjjB,GAAOL,KAGjB9H,OAAOD,KAAKorB,GAAeriB,SAASX,IAC3BA,KAAOijB,IACVA,EAAOjjB,GAAOgjB,EAAchjB,GAvCzB,EACNiO,EACAqV,KAEA,IAAIC,EAAgB,GAYpB,OAVA1rB,OAAOD,KAAK0rB,GAAe3iB,SAASX,IAE9BujB,EAAcvjB,GADbA,KAAOiO,EACS,IAAUA,EAAOjO,GAEjB,CAAKwjB,EAAOF,IACnBA,EAActjB,GAAKwjB,MAK5BD,GAuB6BhL,CAAM0K,EAAQD,QAI9CC,GCvEV,IAAIQ,GAAa,GACbC,GAASD,GAAWjnB,eACpBmnB,GAAWF,GAAW7jB,SACtBgkB,GAAaF,GAAO9jB,SACpBikB,GAAuBD,GAAW7lB,KAAKlG,QAa3CisB,GAZsB,SAAUzgB,GAC9B,IAAI0gB,EAAOC,EACX,SAAK3gB,GAA8B,oBAAvBsgB,GAAS5lB,KAAKsF,QAG1B0gB,EAAQlsB,OAAO+F,eAAeyF,KAKP,mBADvB2gB,EAAON,GAAO3lB,KAAKgmB,EAAO,gBAAkBA,EAAM1lB,cACbulB,GAAW7lB,KAAKimB,KAAUH,KCd7DI,GAASpsB,OAAOsG,OAAO,MACvB+lB,GAAU,WACV,IAAI9Q,EAAK+Q,EAAa7qB,EAAMoF,EAAMwG,EAASkf,EAAOrF,EAAS7D,UAAU,IAAM,GAAIpjB,EAAI,EAAGC,EAASmjB,UAAUnjB,OAAQssB,EAAOnJ,UAAU,KAAM,EAAOoJ,EAAYpJ,UAAU,QAAK9e,EAAY6nB,GAItL,IAHsB,iBAAXlF,GAAyC,mBAAXA,IACrCA,EAAS,IAENjnB,EAAIC,EAAQD,IACf,GAAgC,OAA3BoN,EAAUgW,UAAUpjB,IACrB,IAAK4G,KAAQwG,EACTkO,EAAM2L,EAAOrgB,GACbpF,EAAO4L,EAAQxG,GACF,cAATA,GAAwBqgB,IAAWzlB,IAGnC+qB,GAAQ/qB,IAASwqB,GAAcxqB,KAAU6qB,EAAcla,MAAMC,QAAQ5Q,MACjE6qB,GACAA,GAAc,EACdC,EAAQhR,GAAOnJ,MAAMC,QAAQkJ,GAAOA,EAAM,IAE1CgR,EAAQhR,GAAO0Q,GAAc1Q,GAAOA,EAAM,GAE9C2L,EAAOrgB,GAAQwlB,GAAQG,EAAMnJ,UAAU,GAAIkJ,EAAO9qB,IAC3CA,IAASgrB,IAChBvF,EAAOrgB,GAAQpF,IAK/B,OAAOylB,GAEXwF,GAAeL,GCtBfM,GARc,WACV,IAAIvY,EAAO,EACP,GACA,GAGJ,OADAA,EAAK9Q,KAAKsM,MAAMwE,EAAMiP,WACfqJ,GAAO9c,MAAM,KAAMwE,QCK9BwY,GAZkB,IACV,IAAI9gB,SAAQH,IACdoP,SAASuE,KACZ3T,IAEAoP,SAASyM,iBAAiB,oBAAkB,KAC3C7b,cCWJkhB,GAXuB,CAAIC,EAASC,EAAa,MAChD,MAAMC,EAAQjS,SAASC,cAAc,SAOrC,OANAgS,EAAM3jB,KAAO,WAEbrJ,OAAOib,QAAQ8R,GAAYjkB,SAAQmkB,GAAQD,EAAM9R,gBAAgB+R,KAEjED,EAAME,YAAcJ,EACpB/R,SAASoS,KAAK/R,YAAY4R,GACnBA,GCdR,MAAMI,GAAW,IAAItb,IAMfub,GAAaxmB,GACXumB,GAAS3b,IAAI5K,OCiErBymB,GAdoB,KACnB,GAAIvS,SAASwS,cAAa,kCACzB,OAID,MAAMC,EAAiBH,GAAW,kBAC9BG,GAAkBA,EAAeC,YAIrCZ,GAlDgB,ikDAkDe,CAAE,qBAAsB,MCrExD,MAAMa,GAAsY,CAACC,QAAU,KAAKhS,IAAM,CAAC,KAAK,QAAQ,QAAQ,KAAK,KAAK,KAAK,KAAK,KAAK,QAAQ,QAAQ,KAAK,QAAQ,KAAK,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,KAAK,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,KAAK,KAAK,KAAK,KAAK,QAAQ,QAAQ,QAAQ,QAAQ,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,QAAQ,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,QAAQ,KAAK,KAAK,QAAQ,KAAK,KAAK,QAAQ,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,QAAQ,QAAQ,QAAQ,UAEx2BiS,GAF4B,CAACD,QAAU,cAAchS,IAAM,CAAC,cAAc,mBAAmB,aAAa,iBAAiB,mBAEpFgS,QACvCE,GAH0J,CAACF,QAAU,KAAKhS,IAAM,CAAC,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,QAAQ,UAGrUgS,QAC7CG,GAAiBJ,GAAwBC,QACrBD,GAAwB/R,ICDlD,IAAIoS,IAAc,EAEdC,GAAgB,CACnBC,cAAe,OACfC,MAAON,GACPO,IAAK,KACLC,SAAU,KACVC,aAAc,KACdC,YAAY,EACZC,eAAgB,IAIjB,MAmCMC,GAAiB,IAAI1c,IAC3B0c,GAAe1d,IAAI,QAAQ,GAC3B0d,GAAe1d,IAAI,SAAS,GAE5B,MAiDM2d,GAAiB,KAClBV,KAlDyB,MAC7B,MAAMW,EAAe3T,SAASwS,cAAc,sBAAwBxS,SAASwS,cAAc,6BAE3F,IAAIoB,EAEJ,GAAID,EAAc,CACjB,IACCC,EAAatqB,KAAKC,MAAMoqB,EAAaE,WACpC,MAAOnjB,GACR+U,QAAQC,KAAK,wDAGVkO,IACHX,GAAgBrB,GAAMqB,GAAeW,MA0CvCE,GApCe,IAAIC,gBAAgBte,OAAO0a,SAASI,QAE5CxiB,SAAO,CAAEhB,EAAOK,KACtB,IAAKA,EAAI4mB,WAAW,UACnB,OAGD,MAAMC,EAAiBlnB,EAAMmnB,cAEvBC,EAAQ/mB,EAAI+N,MAAM,WAAW,GAE/BsY,GAAexd,IAAIlJ,KACtBA,EAAQ0mB,GAAe/c,IAAIud,IAG5BhB,GAAckB,GAASpnB,KAIM,MAC9B,MAAM0lB,EAAiBH,GAAW,kBAClC,IAAKG,IAAmBA,EAAeC,WACtC,OAGD,MAAM0B,EAAgB3B,EAAe4B,iCACrCpB,GAAgBrB,GAAMqB,GAAemB,IAgBrCE,GAEAtB,IAAc,ICvHTuB,GAAgB,IAAIxd,IACpByd,GAAe,IAAIzd,IACnB0d,GAAe,IAAI1d,IAenB2d,GAAanoB,MAASgT,IACtBgV,GAAc7d,IAAI6I,IACtBgV,GAAcxe,IAAIwJ,EAAKoV,MAAMpV,IAE9B,MAAMqV,QAAiBL,GAAc7d,IAAI6I,GAMzC,OAJKiV,GAAa9d,IAAI6I,IACrBiV,GAAaze,IAAIwJ,EAAKqV,EAASC,QAGzBL,GAAa9d,IAAI6I,QCPzBuV,GAVyBC,IACxB,MAAMC,EAASD,EAASE,YAAY,KAEpC,OAAID,EAAS,EACL,GAGDD,EAAStsB,MAAMusB,ICbvB,MAAME,GAAY,IAAIne,IAChBoe,GAAc,IAAIpe,IAClBqe,GAAqB,IAAIzf,IACzB0f,GAAmB,IAAI1f,IAsBvB2f,GAAuB,CAAIC,EAAaC,EAAWvD,KACpDA,EAAMjW,EAETmZ,GAAYpf,IAAG,GAAIwf,KAAeC,IAAavD,EAAMjW,GAC3CiW,EAAMrZ,SAAS,SAEzBuc,GAAYpf,IAAG,GAAIwf,KAAeC,IAAavD,GAG/CiD,GAAUnf,IAAG,GAAIwf,KAAeC,IAAavD,GAE9CmD,GAAmB/e,IAAIkf,GACvBF,GAAiBhf,IAAImf,IAGhBC,GAAkBlpB,MAAUgpB,EAAaC,KAC9C,MAAMvD,EAAQkD,GAAYze,IAAG,GAAI6e,KAAeC,KAChD,GAAIvD,EACH,OAAOA,EAGR,IAAKoD,GAAiBpf,IAAIuf,GAAY,CACrC,MAAME,EAAe,IAAIL,GAAiBnqB,UAAUob,KAAK,MAEzD,OADAb,QAAQC,KAAI,+DAAgEmN,8BAAyC6C,KAC9GP,GAAYze,IAAG,GAAI6e,KAAe1C,MAG1C,MAAM7sB,QAAa2vB,GAAqBJ,EAAaC,GAC/CI,EAAa5vB,EAAKgW,GAAKhW,EAG7B,OADAmvB,GAAYpf,IAAG,GAAIwf,KAAeC,IAAaI,GACxCA,GAGFD,GAAoBppB,MAAUgpB,EAAaC,KAChD,MAAMjW,EAAM2V,GAAUxe,IAAG,GAAI6e,KAAeC,KAE5C,IAAKjW,EACJ,MAAM,IAAIja,MAAK,0BAA2BiwB,0DAG3C,MAAiC,SAA1BT,GAAiBvV,GFlENhT,OAASgT,IACtBgV,GAAc7d,IAAI6I,IACtBgV,GAAcxe,IAAIwJ,EAAKoV,MAAMpV,IAE9B,MAAMqV,QAAiBL,GAAc7d,IAAI6I,GAMzC,OAJKkV,GAAa/d,IAAI6I,IACrBkV,GAAa1e,IAAIwJ,EAAKqV,EAAS5Z,QAGzByZ,GAAa/d,IAAI6I,IEwDkBsW,CAActW,GAAOmV,GAAcnV,IAGxEuW,GAAqB,IACnBV,OCvDRW,GAZmC,CAAIhE,EAASwD,KAC/C,MAAMS,EAAehW,SAASoS,KAAKI,cAAa,oCAAqC+C,OACrF,GAAIS,EACHA,EAAa7D,YAAcJ,GAAW,OAChC,CAIND,GAAkBC,EAHC,CAClB,4BAA6BwD,UCqDhCU,GAV2B,KAC1B,MAAMC,EAzDe,MAErB,IAAIC,EAAKnW,SAASwS,cAAc,kCAChC,GAAI2D,EACH,OAAOC,iBAAiBD,GAAIE,gBAG7BF,EAAKnW,SAASC,cAAc,QAC5BkW,EAAGlE,MAAMxU,QAAU,OACnB0Y,EAAGG,UAAUjgB,IAAI,iCACjB2J,SAASuE,KAAKlE,YAAY8V,GAC1B,MAAMI,EAAWH,iBAAiBD,GAAIE,gBAGtC,OAFArW,SAASuE,KAAKiS,YAAYL,GAEnBI,GA2CgBE,GACvB,IAAKP,GAAqC,SAAnBA,EACtB,OAGD,MAAMK,EA7CiB,CAAGL,IAC1B,MAAMQ,EAAM,+CAAkDC,KAAKT,GACnE,GAAIQ,GAAUA,EAAOvxB,QAAU,EAAG,CACjC,IAAIyxB,EAAeF,EAAO,GAE1B,GADAE,EAAeA,EAAaC,QAAO,OAAA,KACJ,MAA3BD,EAAa3oB,OAAO,IAA+D,MAAjD2oB,EAAa3oB,OAAO2oB,EAAazxB,OAAS,GAC/E,IACCyxB,EAAeE,mBAAmBF,GACjC,MAAO5hB,GAER,YADAyQ,QAAQC,KAAK,iEAIf,IACC,OAAOpc,KAAKC,MAAMqtB,GACjB,MAAOG,GACRtR,QAAQC,KAAK,4DA6BEsR,CAAmBd,GACpC,MAzByB,CAAGK,IAC5B,IAAIf,EACAyB,EAEJ,IACCzB,EAAYe,EAASW,KAAKC,MAAK,6BAA8B,GAC7DF,EAAgBV,EAASa,QAAQ,GAChC,MAAOpiB,GAER,YADAyQ,QAAQC,KAAK,kCAAmC6Q,GAIjD,MAAO,WACNf,gBACAyB,IAWMI,CAAqBd,IC/D7B,IAAIe,GAEJ,MAAMC,GAAc,MAAW9hB,OAAO+hB,gBAEhCC,GAAW,KAChBH,QAAgB9tB,EAEhBiM,OAAO+hB,gBAAgBE,QAAQ,CAC9BC,YAAa3X,SAASoS,KACtBwF,QAAQ,KCIJC,GAAatrB,MAAS4mB,IAC3B,IAL2B2C,KACD7f,IAJA,iCASzB,OAGD,MAAM8b,QAAgB0D,GAZI,gCAYmCtC,GAC7D4C,GAA8BhE,EAbJ,sCA0E3B+F,GApBgBvrB,MAAS4mB,IACxB,MAAM4E,EApBkB,MAExB,MAAMA,EAAW9B,KACjB,GAAI8B,EACH,OAAOA,EAIR,MAAMtF,EAAiBH,GAAW,kBAClC,GAAIG,GACgBA,EAAeuF,qBAEjC,MAAO,CACNxC,UAAW/C,EAAe4B,iCAAiClB,QAO7C8E,GAGZF,GAAY5E,IAAU4E,EAASvC,UA1ChB,MACpB,MAAMQ,EAAehW,SAASoS,KAAKI,cAAa,oEAC5CwD,GACHA,EAAakC,cAAc1B,YAAYR,IA0CvCmC,SAFMN,GAAc1E,GAMrB,MAAMiF,EJMgB,CAAGjF,GAClBkC,GAAiBpf,IAAIkd,GIPNkF,CAAkBlF,GAASA,EAAQ4E,GAAYA,EAASd,mBA1CpD1qB,OAAS4mB,IACR2C,KACR/nB,SAAOxB,MAAOgpB,IAChC,GA1ByB,kCA0BrBA,EACH,OAGD,MAAMxD,QAAgB0D,GAAmBF,EAAapC,GACtD4C,GAA8BhE,EAASwD,OAmClC+C,CAAsBF,GAGxBb,MACHE,MCzEF,IAAIc,GAEJ,MAAMC,GAAQ,UACChvB,IAAV+uB,KRiBJ7E,KQhBC6E,GRiBMtF,GAAcE,OQddoF,ICVR,IAAIE,OAyBJC,GAvBwB,IACnBD,KAIJA,GAAwB,IAAI1nB,SAAQH,IAC/B6E,OAAOkjB,gBACNljB,OAAOkjB,cAAcC,OACtBnjB,OAAOkjB,cAAcE,QAExBpjB,OAAOkjB,cAAcE,SAAO,KAE3BjoB,OAIDA,OAIK6nB,ICfR,IAAIK,OAwBJC,GAtBU,IACLD,KAIJA,GAAc,IAAI/nB,SAAOxE,MAAOqE,IAC/B,MAAM6hB,EAAiBH,GAAW,kBAC9BG,SACGA,EAAejqB,aAGhBqpB,WACAiG,GAAWU,MACjB/F,GAAkBA,EAAeuG,kBACjCzG,WACMmG,KACN9nB,OAGMkoB,QCJRG,GAhBG,qBAEalsB,gCAGamsB,GAC3Bj0B,OAAOD,KAAKk0B,GAAOnrB,SAAQO,IAC1BrJ,OAAOk0B,eAAerzB,KAAMwI,EAAM,CACjCoI,IAAG,IACKwiB,EAAM5qB,cCHlB8qB,GAdoB,CAAIC,EAAOC,EAAWC,GAAY,KACrD,GAAqB,mBAAVF,GAA6C,mBAAdC,EACzC,OAAO,EAER,GAAIC,GAAaF,IAAUC,EAC1B,OAAO,EAER,IAAIlQ,EAASiQ,KAEZjQ,EAASnkB,OAAO+F,eAAeoe,SACZ,OAAXA,GAAmBA,IAAWkQ,GACvC,OAAOlQ,IAAWkQ,GCXnB,MAAME,GAAkB,IAAIziB,IACtB0iB,GAAkB,IAAI1iB,IAUtB2iB,GAAmBC,IACxB,IAAKF,GAAgBxjB,IAAI0jB,GAAS,CACjC,MAAM7xB,EAAS6xB,EAAO9C,QAAO,kBAAoB,SAAS3C,cAC1DuF,GAAgB1jB,IAAI4jB,EAAQ7xB,GAE7B,OAAO2xB,GAAgB/iB,IAAIijB,IAGtBC,GAAcC,GACZA,EAAM3jB,KAAG,CAAEyjB,EAAQ5S,IACR,IAAVA,EAAc4S,EAAOzF,cAAgByF,EAAO1rB,OAAO,GAAG6rB,cAAgBH,EAAOlxB,MAAM,GAAGyrB,gBAC3F5N,KAAK,IC2GT,MAAMyT,GAAsB,CAAIhtB,EAAOitB,KACtC,MAAMC,EAAeD,EAAS1rB,KAE9B,OAAI2rB,IAAiBxjB,QACI,kBAAV1J,GAAsBA,EAEjCktB,IAAiBh0B,OACK,iBAAV8G,GAAP,MAAoCA,EAA2CA,EAAQA,EAAMC,WAElGitB,IAAiBh1B,OACI,iBAAV8H,EAAqBA,EAAQitB,EAASE,aAEjDd,GAAea,EAAchB,IACzBgB,EAAaE,QAAQptB,GAASA,EAAQitB,EAASE,kBADvD,GAKKE,GAAkB,CAAIrtB,EAAOstB,KAClC,GAAc,OAAVttB,EACH,OAAOA,EAGa,IAAGopB,EAkBxB,QAlBwBA,EAWappB,aAVRutB,aACa,SAAjBnE,EAAGoE,UAGnBpE,EAAGqE,cAAc,CAAE9nB,SAAS,IAAQ2K,QAAOod,GAAQA,aAAgBH,cAGpE,CAACnE,IAIIpoB,SAAQooB,IACpB,KAAMA,aAAckE,EAAS/rB,MAC5B,MAAM,IAAIhJ,MAAK,GAAI6wB,oBAAqBkE,EAAS/rB,WAI5CvB,OAGR2tB,GApKG,kBAEUnE,GACXzwB,KAAKywB,SAAWA,EAMdoE,6BAC0B5tB,EAAOitB,GAEnC,OADmBA,EAASY,SAEpB7tB,EAAMmJ,KAAI2kB,GAAad,GAAuBc,EAAWb,KAE1DD,GAAuBhtB,EAAOitB,GAMnCW,yBACsB5tB,EAAOstB,GAC/B,OAAOD,GAAmBrtB,EAAOstB,GAOlCS,SACC,OAAOh1B,KAAKywB,SAASwE,IAStBC,aAAaC,GACZ,MAAMjB,EAAWl0B,KAAKo1B,gBAAgBD,GACtC,OAAOjB,EAAS1rB,OAASrJ,SAAW+0B,EAASmB,YAQ9CC,oBACC,OAAOn2B,OAAOD,KAAKc,KAAKo1B,iBAQzBG,oBACC,OAAOv1B,KAAKs1B,oBAAoB/d,OAAOvX,KAAKk1B,aAAcl1B,MAAMoQ,IAAIwjB,IAOrE4B,WACC,OAAOx1B,KAAKywB,SAASgF,OAAS,GAO/BC,cACC,MAAMC,EAAc31B,KAAKw1B,WAAW1I,QACpC,OAAO6I,GAAeA,EAAYntB,OAASotB,KAO5CC,WACC,QAAS12B,OAAOib,QAAQpa,KAAKw1B,YAAYn2B,OAO1Cy2B,qBACC,OAAO91B,KAAK+1B,mBAAqB52B,OAAOib,QAAQpa,KAAKw1B,YAAYQ,MAAI,EAAGC,EAAW1B,KAAcA,EAAS2B,kBAO3GH,kBACC,QAAS/1B,KAAKywB,SAAS0F,aAOxBf,gBACC,OAAOp1B,KAAKywB,SAAS2F,YAAc,GAOpCC,YACC,OAAOr2B,KAAKywB,SAAS6F,QAAU,KC7HjC,MAAMC,GAAqB,KAC1B,IAAIC,EAAatc,SAASwS,cAAc,mBAExC,GAAI8J,EACH,OAAOA,EAIR,MAAMC,EAAcvc,SAASuE,KAG7B,OAFA+X,EAAatc,SAASC,cAAc,mBAE7Bsc,EAAYC,aAAaF,EAAYC,EAAYE,mBAOnDC,WAA0BpC,0BAE9BqC,QAGGC,mBACH,OAAO,EAGRC,UACC,MAAMC,EAAmB9c,SAASwS,cAAc1sB,KAAKi3B,QAAQ7I,eAC7D4I,EAAiB5E,cAAc1B,YAAYsG,IAIxCE,eAAetmB,IAAI,oBACvBsmB,eAAev3B,OAAO,kBAAmBi3B,QCO1CO,uBAvCEn3B,KAAKo3B,KAAO,GACZp3B,KAAKq3B,SAAW,IAAIpmB,IAGrBV,IAAI+mB,GACH,GAAIt3B,KAAKq3B,SAASlnB,IAAImnB,GACrB,OAAOt3B,KAAKq3B,SAASzmB,IAAI0mB,GAG1B,IAAIC,EACJ,MAAM3d,EAAU,IAAI3O,SAAQH,IAC3BysB,EAAkBzsB,KAOnB,OALA8O,EAAQ4d,iBAAmBD,EAE3Bv3B,KAAKo3B,KAAK30B,KAAK60B,GACft3B,KAAKq3B,SAASpnB,IAAIqnB,EAAc1d,GAEzBA,EAGRpJ,QACC,MAAM8mB,EAAet3B,KAAKo3B,KAAK5mB,QAC/B,GAAI8mB,EAAc,CACjB,MAAM1d,EAAU5Z,KAAKq3B,SAASzmB,IAAI0mB,GAElC,OADAt3B,KAAKq3B,SAAS5mB,OAAO6mB,GACd,cAAEA,UAAc1d,IAIzB6d,UACC,OAAOz3B,KAAKo3B,KAGbM,QAAQJ,GACP,OAAOt3B,KAAKq3B,SAASlnB,IAAImnB,KCrC3B,MAAMK,GAAiB,IAAI9nB,ICM3B,IAAI+nB,GAGJ,MAAMC,GAA2B,IAAIV,GAErC,IAAIW,GACHC,GAGGC,GAKD,MACGC,iBAEJ,MAAM,IAAIz4B,MAAM,gBAMdq1B,sBACmByC,GAErB,MAAMY,EAAML,GAAyBtnB,IAAI+mB,GAIzC,OADAW,GAAgBE,qBACTD,2BAGiBZ,GAExB,MAAMY,EAAML,GAAyBtnB,IAAI+mB,GAIzC,OADAW,GAAgBG,gBACTF,EAKLrD,4BAEG+C,KAGJA,GAAejoB,OAAO0oB,sBAAsBJ,GAAgBK,6CAKxDV,KACJA,GAAe,EACfK,GAAgBK,oDAOjB,IAAIC,EACHjB,EACA1d,EACD,MAAM4e,EAAc,IAAIvnB,SACjBsnB,EAAmBV,GAAyBrnB,SAAS,CAC3D8mB,EAAeiB,EAAiBjB,aAChC1d,EAAU2e,EAAiB3e,QAE3B,MAAM6e,EAAkBD,EAAY5nB,IAAI0mB,IAAiB,EACzD,GAAImB,EA3EoB,GA6EvB,MAAM,IAAIj5B,MAAK,0EAEhB83B,EAAaoB,UACb9e,EAAQ4d,mBACRgB,EAAYvoB,IAAIqnB,EAAcmB,EAAkB,GAI5CT,KACJA,GAAwBhY,YAAU,KACjCgY,QAAwBt0B,EAC0B,IAA9Cm0B,GAAyBJ,UAAUp4B,QACtC44B,GAAgBU,wBAEf,MAGJf,QAAel0B,EAKbmxB,wBAEF,OAAIiD,KAIJA,GAAoB,IAAI7sB,SAAQH,IAC/BitB,GAA2BjtB,EAC3B6E,OAAO0oB,uBAAqB,KACuB,IAA9CR,GAAyBJ,UAAUp4B,SACtCy4B,QAAoBp0B,EACpBoH,WAKIgtB,6CAIP,MAAMc,EDhHkB,MACzB,MAAMC,EAAM,GAIZ,OAHAlB,GAAe1vB,SAAQgtB,IACtB4D,EAAIp2B,KAAKwyB,MAEH4D,GC2GkBC,GAAuB1oB,KAAI6kB,GAAOiC,eAAe6B,YAAY9D,KACrF,OAAOhqB,QAAQ6P,IAAI8d,qCAIbX,GAAgBe,wCAChBf,GAAgBgB,8CAIlBpB,GAAyBJ,UAAUp4B,OAAS,GAK5C04B,KACHA,GAAyB1yB,KAAKrF,KA7HhCk5B,WA8HEnB,QAA2Br0B,EAC3Bo0B,QAAoBp0B,QAKvBy1B,GAAelB,SCvDTmB,WAA8B5E,0BAElCqC,QAGGC,mBACH,OAAO,GAIJI,eAAetmB,IAAI,yBACvBsmB,eAAev3B,OAAO,uBAAwBy5B,QAG/CC,GAhGG,kBAEUC,GACXt5B,KAAKu5B,kBAAoBD,EACzBt5B,KAAKw5B,WAAY,EAGlBC,aACC,OAAOz5B,KAAKw5B,UAMbE,kBACC,MAAMC,EAAe35B,KAAKu5B,kBAAkB5zB,YAAYi0B,mBAAmB55B,KAAKu5B,mBAC/EM,GAAclqB,OAAOmqB,UAAmB95B,KAAKu5B,kBAAkB5zB,YAAYo0B,iBAEvE/5B,KAAKg6B,uBAGTh6B,KAAKg6B,qBAAuB9f,SAASC,cAAc,wBACnDna,KAAKg6B,qBAAqBC,aAAa,CAAEC,KAAM,SAC/Cl6B,KAAKg6B,qBAAqBxJ,UAAUjgB,IAAIvQ,KAAKu5B,kBAAkBY,KAE/D5D,KAAwBhc,YAAYva,KAAKg6B,sBACzCh6B,KAAKw5B,WAAY,GAGlBx5B,KAAKu5B,kBAAkB5zB,YAAY4S,OAAOohB,EAAc35B,KAAKg6B,qBAAqBI,WAAYP,EAAa,CAAEQ,aAAcr6B,KAAKu5B,oBAMjIe,gCACC,IAAKt6B,KAAKg6B,qBACT,OAGD,MAAMxD,EAAaD,KAEnBC,EAAW9F,YAAY1wB,KAAKg6B,sBAE5Bh6B,KAAKg6B,qBAAuB,KAGxBxD,EAAW+D,kBAAoB,GJxCpChE,KAAwBQ,UIgDxByD,sBAAsBC,GAChBz6B,KAAKg6B,uBAINS,GACHz6B,KAAKg6B,qBAAqBxJ,UAAUjgB,IAAI,oBACxCvQ,KAAKg6B,qBAAqBxJ,UAAUjgB,IAAI,iCAExCvQ,KAAKg6B,qBAAqBxJ,UAAUxP,OAAO,oBAC3ChhB,KAAKg6B,qBAAqBxJ,UAAUxP,OAAO,iCAO1Cva,kBAMF,OAJKzG,KAAKw5B,WAAcx5B,KAAKg6B,sBAC5Bh6B,KAAK05B,wBAEAP,GAAgBF,iBACfj5B,KAAKg6B,qBAAqBI,aCrFnC,MAAMM,GAAI/qB,OAGJgrB,GAAY,IAAIC,YAyDtBC,GArDG,oBAGD,MAAM,IAAIr7B,MAAM,gBAcdq1B,sBACmB9hB,EAAMtG,EAAUD,GACrC,IAAIsuB,EAAiBH,GAAU/pB,IAAImC,GACnC,GAAI+nB,EACH,MAAM,IAAIt7B,MAAM,kEAGbk7B,GAAEZ,SACLgB,EAAiBJ,GAAEZ,SAASiB,gBAAgBhoB,EAAMtG,IAElDquB,EAAiB,IAAIE,iBAAiBvuB,GACtCquB,EAAeG,QAAQloB,EAAMvG,IAG9BmuB,GAAU1qB,IAAI8C,EAAM+nB,GAMlBjG,wBACqB9hB,GACvB,MAAM+nB,EAAiBH,GAAU/pB,IAAImC,GAChC+nB,IAIDA,aAA0BE,iBAC7BF,EAAeI,aAEfR,GAAEZ,SAASqB,kBAAkBL,GAE9BH,GAAUlqB,OAAOsC,MCtDnB,MAAMqoB,GAAc,CACnB,iBAOD,IAAIC,GAEJ,MAKMC,GAAa,UACC53B,IAAf23B,KrBmBJzN,KqBlBCyN,GrBmBMlO,GAAcM,YqBhBd4N,IAGFE,GAAoBjV,IACzB,MAAMkV,EAAKF,KAGX,OAvB4B,CAAGhV,GACxB8U,GAAYtoB,SAASwT,GAsBxBmV,CAAwBnV,MAKjB,IAAPkV,IAtB2B,CAAGlV,IAClC,MAAMkV,EAAKF,KACX,QAASE,EAAGlF,QAAUkF,EAAGlF,OAAOxjB,UAAY0oB,EAAGlF,OAAOxjB,SAASwT,KAwBvDoV,CAA2BpV,KCvC9BqV,GAAe,OCcrBC,GAZ0BC,IACzB,MACMC,EDUW,CAAG7G,GACb0G,GAAa1G,GAAO0G,GAAa1G,GAAKzU,KAAK,IAAM,GCXpCub,CADRF,EAAaG,cAAchH,WACE,GACzC,IAAIiH,EAAkBJ,EAAaK,OAKnC,OAHI3qB,MAAMC,QAAQyqB,KACjBA,EAAkBA,EAAgBzb,KAAK,MAElC,GAAIyb,KAAmBH,KCR9B,MAAMK,GAAwB,IAAIlrB,QAsBlCmrB,GAd8BP,IAC7B,MAAM5E,EAAU4E,EAAaG,cAAchH,SACrCqH,EAAeT,GAAkBC,GACvC,GAAIM,GAAsBhsB,IAAI8mB,GAC7B,OAAOkF,GAAsBvrB,IAAIqmB,GAGlC,MAAM9K,EAAQ,IAAImQ,cAIlB,OAHAnQ,EAAMoQ,YAAYF,GAElBF,GAAsBlsB,IAAIgnB,EAAS9K,GAC5BA,GCrBR,MAeMqQ,GAAe,CAAIC,EAAKC,EAAUC,EAAkBC,KACzD,MAAMC,EAAuBF,EAAmBD,EAASr9B,OACnDy9B,EAAoBL,EAAIt0B,OAAO00B,GAE/BE,EAAeN,EAAIO,UAAU,EAAGL,GAAoBC,EAC1D,GAA0B,MAAtBE,EAA2B,CAC9B,MAAMG,EArBuB,EAAIR,EAAKS,KACvC,IAAIC,EAAS,EACb,IAAK,IAAI7lB,EAAM4lB,EAAwB,EAAG5lB,EAAMmlB,EAAIp9B,OAAQiY,IAAO,CAClE,MAAM8lB,EAAOX,EAAIt0B,OAAOmP,GAMxB,GALa,MAAT8lB,EACHD,IACmB,MAATC,GACVD,IAEc,IAAXA,EACH,OAAO7lB,IAWsB+lB,CAA0BZ,EAAKI,GAC7D,OAAOE,EAAeN,EAAIO,UAAUH,EAAuB,EAAGI,GAAyBR,EAAIO,UAAUC,EAAwB,GAG9H,OAAOF,EAAeN,EAAIO,UAAUH,IAqB/BS,GAAa,CAAIvgB,EAAMkY,KAE5BlY,EAXqB,EAAI0f,EAAKC,EAAUE,KACxC,IAAID,EAAmBF,EAAIhb,QAAQib,SACP,IAArBC,GAENA,GADAF,EAAMD,GAAgBC,EAAKC,EAAUC,EAAkBC,IAChCnb,QAAQib,GAEhC,OAAOD,GAKAc,CADPxgB,EAAOA,EAAK1J,OACkB,YAAW,KAGhC6a,WAAW,SACZsO,GAAgBzf,EAAM,QAAS,EAAGkY,GAKtClY,EAAKsU,MAAK,YAAwB,OAATtU,GAA0B,QAATA,GAK1CA,EAAKsU,MAAM,IAAImM,OAAM,IAAKvI,mBAJtBlY,EASF,GAAIkY,KAAOlY,QAsBlB0gB,GAnBmB,CAAIhB,EAAKxH,KAE3BwH,GADAA,EAAMA,EAAI1L,QAAO,MAAA,MACPA,QAAO,UAAA,QACjB,IAAI/uB,EAAM,GAaV,OAZcy6B,EAAIpnB,MAAK,MACjBpN,SAAQ8U,IAEb,GADoBA,EAAKsU,MAAK,MACb,CAChB,MAAMqM,EAAY3gB,EAAK1H,MAAM,KAI7B0H,EAH2B2gB,EAAUttB,KAAIutB,GACjCL,GAAcK,EAAU1I,KAENzU,KAAK,KAEhCxe,EAAM,GAAMA,IAAS+a,OAEf/a,GCjFR,MAAM47B,GAAa,IAAI/tB,QA2CvBguB,GA3BgChC,IAC/B,MAAM5G,EAAM4G,EAAaG,cAAchH,SACvC,GAAI4I,GAAWztB,IAAI8kB,GAClB,OAGD,IAAI6I,EAAalC,GAAkBC,GACnCiC,EAAaL,GAAcK,EAAY7I,GAGvC,IAAI8I,EAxBe,CAAGlC,IACtB,IAAImC,EAAwBnC,EAAa9B,iBAKzC,OAJIxoB,MAAMC,QAAQwsB,KACjBA,EAAwBA,EAAsBxd,KAAK,MAG7Cwd,GAkBgBC,CAAepC,GAClCkC,IACHA,EAAmBN,GAAcM,EAAkB,wBACnDD,EAAU,GAAMA,KAAcC,KAG/B/R,GAAkB8R,EAAY,CAC7B,0BAA2B7I,EAC3BiJ,SAAY,aAETzM,OpB3BCD,KACJA,GAAgB7hB,OAAOqQ,WAAW2R,GAAa,KoB8BhDiM,GAAWrtB,IAAI0kB,QCrChBkJ,iBANsBhL,kBACNlsB,GACd,OAAOiJ,OAAOkuB,UAAUn3B,KCF1B,MAAMo3B,GAAY,CAAC,WAAY,iBAoB/BC,GAZ4Bt4B,IAC3B,GAAIq4B,GAAUvrB,SAAS9M,GACtB,OAAO,EAOR,OALgB,CACfwuB,YACA+J,QACA3I,MAEeI,MAAKzC,GAASA,EAAM3vB,UAAUE,eAAekC,MCJ9D,MAAMw4B,GAAW,CAChBlI,OAAQ,CACPmI,gBAAiB,KAInB,IAAIC,GAAS,EAEb,MAAMC,GAAkB,IAAI1tB,IAYzB,MACG2tB,WAAmBpK,0BASvB,IAAI+C,EAPJV,QACA72B,KAAK6+B,cACL7+B,KAAK8+B,mBACL9+B,KAAK++B,wBACL/+B,KAAKg/B,wBACLh/B,KAAKi/B,WAAY,EAGjBj/B,KAAKk/B,oBAAsB,IAAIj0B,SAAQH,IACtCysB,EAAkBzsB,KAEnB9K,KAAKk/B,oBAAoB1H,iBAAmBD,EAE5Cv3B,KAAKm/B,qBAAuB,IAAIluB,IAChCjR,KAAKo/B,qBAAsB,EAM5BP,cACC7+B,KAAKm6B,IAAG,YAAcuE,GAMvBM,wBACC,MAAMK,EAAiBr/B,KAAK2F,YAAY25B,kBAClCC,EAAkBv/B,KAAK2F,YAAY65B,mBAGzC,GAAIH,IACHr/B,KAAKi6B,aAAa,CAAEC,KAAM,SAGtBvqB,OAAOmqB,UACV+D,GAAwB79B,KAAK2F,aAI1BuU,SAASulB,oBAAoB,CAChC,MAAMtT,EAAQiQ,GAAsBp8B,KAAK2F,aACzC3F,KAAKo6B,WAAWqF,mBAAqB,CAACtT,GAKpCoT,IACHv/B,KAAK0/B,eAAiB,IAAIrG,GAAer5B,OAOxCyG,0BAEF,MAAM44B,EAAiBr/B,KAAK2F,YAAY25B,kBAClCvJ,EAAkB/1B,KAAK2F,YAAYq2B,cAAcjG,kBAGnDsJ,IACCtJ,IAEH/1B,KAAK2/B,mCACC3/B,KAAK4/B,oBAGP5/B,KAAKo6B,kBACHnvB,QAAQH,gBAGTquB,GAAgB0G,kBAAkB7/B,MACxCA,KAAKk/B,oBAAoB1H,mBACM,mBAApBx3B,KAAK8/B,YACf9/B,KAAK8/B,cASRC,uBACC,MAAMV,EAAiBr/B,KAAK2F,YAAY25B,kBAClCC,EAAkBv/B,KAAK2F,YAAY65B,mBACnCzJ,EAAkB/1B,KAAK2F,YAAYq2B,cAAcjG,kBAEnDsJ,IACCtJ,GACH/1B,KAAKggC,4BAGwB,mBAAnBhgC,KAAKigC,WACfjgC,KAAKigC,aAIHV,GACHv/B,KAAK0/B,eAAepF,gCAOtBqF,6BAEC,IAD8B3/B,KAAK2F,YAAYq2B,cAAcnG,WAE5D,OAGD,MACMqK,EAA0B,CAC/BC,WAAW,EACXC,QAHmBpgC,KAAK2F,YAAYq2B,cAActG,cAIlD2K,eAAe,GAEhBxF,GAAYyF,eAAetgC,KAAMA,KAAK4/B,iBAAiB3c,KAAKjjB,MAAOkgC,GAMpEF,4BACCnF,GAAY0F,iBAAiBvgC,MAM3ByG,yBAEezG,KAAK2F,YAAYq2B,cAAcnG,kBAEzC71B,KAAKwgC,eAMV/5B,qBAEF,MAAMg6B,EAAWzgC,KAAK2F,YAAYq2B,cAAcxG,WAC1CE,EAAc11B,KAAK2F,YAAYq2B,cAActG,cAC7CgL,EAAcnvB,MAAM0E,KAAKyf,EAAc11B,KAAK2gC,WAAa3gC,KAAKga,UAGpE,IAAK,MAAO4mB,EAAUC,KAAa1hC,OAAOib,QAAQqmB,GACjDzgC,KAAK8gC,WAAWF,EAAUC,GAG3B,MAAME,EAAmB,IAAI9vB,IACvB+vB,EAAqB,IAAI/vB,IAEzBgwB,EAAsBP,EAAYtwB,KAAG3J,MAAQ6T,EAAO4mB,KAEzD,MAAMC,EAAWnhC,KAAK2F,YAAYy7B,aAAa9mB,GACzCia,EAAWkM,EAASU,GAG1B,QAAiBz9B,IAAb6wB,EAAwB,CAC3B,MAAM8M,EAAcliC,OAAOD,KAAKuhC,GAAUjgB,KAAK,MAE/C,YADAb,QAAQC,KAAI,qBAAsBuhB,cAAsB7mB,EAAK,qBAAuB+mB,KAKrF,GAAI9M,EAAS2B,gBAAiB,CAC7B,MAAMoL,GAAaP,EAAiBnwB,IAAIuwB,IAAa,GAAK,EAC1DJ,EAAiB9wB,IAAIkxB,EAAUG,GAC/BhnB,EAAMinB,gBAAe,GAAMJ,KAAYG,IAIxC,GAAIhnB,aAAiBka,YAAa,CACjC,MAAMC,EAAYna,EAAMma,UAExB,GADwBA,EAAU3hB,SAAS,KACtB,CAEpB,IADkBnD,OAAOunB,eAAetmB,IAAI6jB,GAC5B,CACf,MAAM+M,EAAqB7xB,OAAOunB,eAAe6B,YAAYtE,GAC7D,IAAIgN,EAAiB9C,GAAgB/tB,IAAI6jB,GACpCgN,IACJA,EAAiB,IAAIx2B,SAAQH,GAAWkV,WAAWlV,EAAS,OAC5D6zB,GAAgB1uB,IAAIwkB,EAAWgN,UAE1Bx2B,QAAQy2B,KAAK,CAACF,EAAoBC,IAEzC9xB,OAAOunB,eAAeyK,QAAQrnB,KAIhCA,EAAQta,KAAK2F,YAAYq2B,cAAcr2B,YAAYi8B,kBAAkBtnB,EAAOia,IAElEuC,cAAgBvC,EAASsN,WAClC7hC,KAAK8hC,4BAA4BxnB,EAAOia,EAASsN,WAGlD,MAAME,EAAexN,EAASwN,cAAgBZ,EAE1CH,EAAmB7wB,IAAI4xB,GAC1Bf,EAAmBpwB,IAAImxB,GAAct/B,KAAK,OAAE6X,MAAO4mB,IAEnDF,EAAmB/wB,IAAI8xB,EAAc,CAAC,OAAEznB,MAAO4mB,cAI3Cj2B,QAAQ6P,IAAImmB,GAIlBD,EAAmB/4B,SAAO,CAAE+R,EAAUgoB,KACrChiC,KAAKiiC,OAAOD,GAAQhoB,EAASjK,MAAI,CAAE5M,EAAGD,IAAMC,EAAE+9B,IAAMh+B,EAAEg+B,MAAK9wB,KAAI8F,GAAKA,EAAEoE,WAEvEta,KAAKkiC,YAAY,SAOlBpB,WAAWK,EAAU5M,GACpB,MAAMwN,EAAexN,EAASwN,cAAgBZ,EAE9C,IAAInnB,EAAWha,KAAKiiC,OAAOF,GACtBxwB,MAAMC,QAAQwI,KAClBA,EAAW,CAACA,IAGbA,EAAS/R,SAAQqS,IACZA,GAASA,EAAMwc,cAClB92B,KAAKmiC,4BAA4B7nB,MAInCta,KAAKiiC,OAAOF,GAAgB,GAC5B/hC,KAAKkiC,YAAYH,EAAc,IAOhCK,yBAAyBp8B,EAAMq8B,EAAUC,GACxC,MAAMlM,EAAap2B,KAAK2F,YAAYq2B,cAAc5G,gBAE5CmN,EhB5Rc,CAAG1O,IACxB,IAAKH,GAAgBvjB,IAAI0jB,GAAS,CACjC,MAAM7xB,EAAS8xB,GAAYD,EAAOxe,MAAM,MACxCqe,GAAgBzjB,IAAI4jB,EAAQ7xB,GAE7B,OAAO0xB,GAAgB9iB,IAAIijB,IgBuRF2O,CADPx8B,EAAK+qB,QAAO,QAAU,KAEvC,GAAIqF,EAAWtyB,eAAey+B,GAAkB,CAC/C,MAAME,EAAoBrM,EAAWmM,GAAiB/5B,KAClDi6B,IAAsB9xB,UACzB2xB,EAAwB,OAAbA,GAERG,IAAsBtE,KACzBmE,EAAWI,SAASJ,IAErBtiC,KAAKuiC,GAAmBD,GAO1BK,iBAAiB38B,EAAMs8B,GACtB,IAAKtiC,KAAK2F,YAAYq2B,cAAc9G,aAAalvB,GAChD,OAGD,GAAwB,iBAAbs8B,EACV,OAGD,MAAMM,EAAWhP,GAAiB5tB,GAC5B68B,EAAY7iC,KAAK8iC,aAAaF,GACZ,kBAAbN,GACO,IAAbA,GAAmC,OAAdO,EACxB7iC,KAAKqa,aAAauoB,EAAU,KACL,IAAbN,GAAoC,OAAdO,GAChC7iC,KAAK+iC,gBAAgBH,GAEZC,IAAcP,GACxBtiC,KAAKqa,aAAauoB,EAAUN,GAO9BU,iBAAiBt0B,GAChB,GAAI1O,KAAK8D,eAAe4K,GAAO,CAC9B,MAAMzH,EAAQjH,KAAK0O,UACZ1O,KAAK0O,GACZ1O,KAAK0O,GAAQzH,GAOf83B,wBACkB/+B,KAAK2F,YAAYq2B,cAAc1G,oBACvCrtB,QAAQjI,KAAKgjC,iBAAkBhjC,MAMzC8+B,mBACC,MAAMmE,EAAejjC,KAAK2F,YAAYu9B,mBACtCljC,KAAKiiC,OAAS9iC,OAAOmR,OAAO,GAAI2yB,GAMjCnB,4BAA4BxnB,EAAOunB,GAClC,MAAMsB,EAAgB7oB,EAAM3U,YAAYq2B,cACvCmF,EAAWnhC,KAAK2F,YAAYy7B,aAAa9mB,GACzC8oB,EAAkBD,EAAc/N,gBAEjC,IAAIiO,EAAgB,GACnBC,EAAmB,GAEhB/xB,MAAMC,QAAQqwB,GACjBwB,EAAgBxB,GAEhBwB,EAAgB9xB,MAAMC,QAAQqwB,EAAU0B,OAAS1B,EAAU0B,MAAQpkC,OAAOD,KAAKkkC,GAC/EE,EAAmB/xB,MAAMC,QAAQqwB,EAAU2B,SAAW3B,EAAU2B,QAAU,IAGtExjC,KAAKm/B,qBAAqBhvB,IAAIgxB,IAClCnhC,KAAKm/B,qBAAqBlvB,IAAIkxB,EAAU,eAAEkC,mBAAeC,IAG1DhpB,EAAMqM,iBAAiB,kBAAmB3mB,KAAKyjC,mCAC/CnpB,EAAM8kB,qBAAsB,EAM7B+C,4BAA4B7nB,GAC3BA,EAAMsM,oBAAoB,kBAAmB5mB,KAAKyjC,mCAClDnpB,EAAM8kB,qBAAsB,EAM7BX,gBAAgBz4B,EAAMiB,GACrBjH,KAAK2iC,iBAAiB38B,EAAMiB,GAExBjH,KAAKo/B,qBACRp/B,KAAK0jC,cAAc,IAAIC,YAAY,kBAAmB,CACrDC,OAAQ,MAAE59B,EAAMs8B,SAAUr7B,GAC1B48B,UAAU,EACVC,SAAS,KAQZL,kCAAkC/0B,GAEjC,MAAMq1B,EAAa/jC,KAAK+jC,WACxB,IAAKA,EACJ,OAGD,MAAM5C,EAAW4C,EAAWp+B,YAAYy7B,aAAaphC,MAC/CgkC,EAAgBD,EAAW5E,qBAAqBvuB,IAAIuwB,GAE1D,IAAK6C,EACJ,OAED,MAAOX,cAACA,EAAaC,iBAAEA,GAAqBU,EAExCX,EAAcvwB,SAASpE,EAAKk1B,OAAO59B,QAAUs9B,EAAiBxwB,SAASpE,EAAKk1B,OAAO59B,OACtF+9B,EAAW7B,YAAY,WAAYliC,MAQrCkiC,cACMliC,KAAKi/B,WAKNj/B,KAAKikC,cAAgBjkC,KAAKkkC,wBAC7BlkC,KAAKi/B,WAAY,EAEjB9F,GAAgBgL,eAAenkC,OAQjC04B,UACC,MAAM5C,EAAqB91B,KAAK2F,YAAYq2B,cAAclG,qBAG1D91B,KAAKkkC,uBAAwB,EAES,mBAA3BlkC,KAAKokC,mBACfpkC,KAAKokC,oBAIFpkC,KAAKqkC,4BACRrkC,KAAKqkC,oCAICrkC,KAAKkkC,sBAIZlkC,KAAKi/B,WAAY,EACjBj/B,KAAKskC,oBAEDtkC,KAAKukC,yBACRvkC,KAAK0/B,eAAehG,gBAAgB15B,MAIjC81B,GACH91B,KAAKwkC,mCAI+B,mBAA1BxkC,KAAKykC,kBACfzkC,KAAKykC,mBAOPH,oBACC,IAAKtkC,KAAK2F,YAAY25B,kBACrB,OAGD,IAAIoF,EACJ,MAAM/K,EAAe35B,KAAK2F,YAAYg/B,SAAS3kC,MAE1Cka,SAASulB,oBAAuB9vB,OAAOmqB,WAC3C4K,EAAiB9I,GAAkB57B,KAAK2F,cAEzC3F,KAAK2F,YAAY4S,OAAOohB,EAAc35B,KAAKo6B,WAAYsK,EAAgB,CAAErK,aAAcr6B,OAMxFwkC,mCACqBjzB,MAAM0E,KAAKjW,KAAKga,UAExB/R,SAAQqS,IACfA,EAAMinB,iBACTjnB,EAAMD,aAAa,OAAQC,EAAMinB,oBAQpCqD,iBACC,OAAO5kC,KAAKk/B,oBAQb+E,YACC,GAAKjkC,KAAKo6B,YAAkD,IAApCp6B,KAAKo6B,WAAWpgB,SAAS3a,OAIjD,OAA2C,IAApCW,KAAKo6B,WAAWpgB,SAAS3a,OAC7BW,KAAKo6B,WAAWpgB,SAAS,GAAKha,KAAKo6B,WAAWpgB,SAAS,GAQ3D6qB,iBACC,MAAMC,EAAS9kC,KAAKikC,YACpB,GAAIa,EAAQ,CAEX,OADiBA,EAAOpY,cAAc,yBACnBoY,GAOlBr+B,oBAEIzG,KAAK4kC,iBAEX,MAAMG,EAAc/kC,KAAK6kC,iBAErBE,GAA4C,mBAAtBA,EAAYC,OACrCD,EAAYC,QAYdC,UAAUj/B,EAAM9F,EAAMglC,GACrB,IAAIC,GAAoB,EAExB,MAAMC,EAAkB,IAAIzB,YAAW,OAAQ39B,IAAQ,CACtD49B,OAAQ1jC,EACR2jC,UAAU,EACVC,SAAS,aACToB,IAMD,GAFAC,EAAoBnlC,KAAK0jC,cAAc0B,GAEnC7J,GAAkBv1B,GACrB,OAAOm/B,EAGR,MAAME,EAAc,IAAI1B,YAAY39B,EAAM,CACzC49B,OAAQ1jC,EACR2jC,UAAU,EACVC,SAAS,aACToB,IAOD,OAH0BllC,KAAK0jC,cAAc2B,IAGjBF,EAQ7BG,gBAAgBnE,GAQf,OAAOnhC,KAAKmhC,GAAUtf,QAPT,CAAI0jB,EAAKC,IACE,SAAnBA,EAAK/Q,UACD8Q,EAAI1yB,OAAO,CAAC2yB,IAEbD,EAAI1yB,OAAO2yB,EAAK9Q,cAAc,CAAE9nB,SAAS,IAAQ2K,QAAOod,GAAQA,aAAgBH,gBAGlD,IAGnCiG,gBACH,MAAmF,YAA5EnK,iBAAiBtwB,MAAMylC,iBAhlBO,0BAmlBtCC,qCACK1lC,KAAK0/B,gBACR1/B,KAAK0/B,eAAelF,sBAAsBx6B,KAAKy6B,WAS7C3D,mBACH,OAAO,EAOG6O,gCACV,OAAO3lC,KAAKg8B,cAAczG,oBAKxBV,oBACiBva,GAEnB,KAAMA,aAAiBka,aACtB,MAAO,UAIR,MAAMwN,EAAO1nB,EAAMwoB,aAAa,QAChC,GAAId,EAAM,CACT,MAAM3Q,EAAQ2Q,EAAK3Q,MAAK,eACxB,OAAOA,EAAQA,EAAM,GAAK2Q,EAI3B,MAAO,UAKLnN,yBAEF,QAAS70B,KAAK2kC,SAGfJ,wBACC,OAAOvkC,KAAK2F,YAAY65B,oBAAsBx/B,KAAK0/B,eAAejG,aAKhE5E,0BAEF,MAA0C,mBAA5B70B,KAAK45B,mBAMpBgM,0BACC,OAAO5lC,KAAK0/B,eAAeuE,YAKzBpP,0BAEF,GAAI70B,KAAK6lC,cACR,OAAO7lC,KAAK6lC,cAGb,MAAMC,EAAgB9lC,KAAKg8B,cACrBiH,EAAe,GACflN,EAAkB+P,EAAc/P,kBAGhCwN,EAAQuC,EAAc1Q,gBAC5B,IAAK,MAAMD,KAAYoO,EAAO,CAC7B,MAAMwC,EAAWxC,EAAMpO,GAAU3sB,KAC3Bw9B,EAAmBzC,EAAMpO,GAAUf,aAErC2R,IAAap1B,SAChBsyB,EAAa9N,IAAY,OAEAzxB,IAArBsiC,GACHrmB,QAAQC,KAAK,8HAEJ2jB,EAAMpO,GAAUL,SAC1BmO,EAAa9N,GAAY,GAEzB8N,EAAa9N,GADH4Q,IAAa5mC,OACE,iBAAkBokC,EAAMpO,GAAYoO,EAAMpO,GAAUf,aAAe,GAClF2R,IAAa5lC,OACE,iBAAkBojC,EAAMpO,GAAYoO,EAAMpO,GAAUf,aAAe,GAEnE4R,EAK3B,GAAIjQ,EAAiB,CACpB,MAAMN,EAAQqQ,EAActQ,WAC5B,IAAK,MAAO2L,EAAU5M,KAAap1B,OAAOib,QAAQqb,GAAQ,CAEzDwN,EADqB1O,EAASwN,cAAgBZ,GACjB,IAK/B,OADAnhC,KAAK6lC,cAAgB5C,EACdA,EAKLpO,4BAEF,MAAMxJ,EAAQrrB,KAAK4D,UACbmyB,EAAkB/1B,KAAKg8B,cAAcjG,kBAGrCK,EAAap2B,KAAKg8B,cAAc5G,gBACtC,IAAK,MAAO1mB,EAAMwlB,KAAa/0B,OAAOib,QAAQgc,GAAa,CAC1D,IAAKkI,GAAoB5vB,GACxB,MAAM,IAAIlP,MAAK,IAAKkP,mFAGrB,GAAIwlB,EAAS1rB,OAASmI,SAAWujB,EAASE,aACzC,MAAM,IAAI50B,MAAK,4CAA6CkP,0CAG7D,GAAIwlB,EAAS1rB,OAAS+I,MACrB,MAAM,IAAI/R,MAAK,4BAA6BkP,6IAG7C,GAAIwlB,EAAS1rB,OAASrJ,QAAU+0B,EAASE,aACxC,MAAM,IAAI50B,MAAK,4CAA6CkP,qEAG7D,GAAIwlB,EAASY,UAAYZ,EAASE,aACjC,MAAM,IAAI50B,MAAK,4CAA6CkP,4DAG7DvP,OAAOk0B,eAAehI,EAAO3c,EAAM,CAClCkC,MACC,QAA0BlN,IAAtB1D,KAAKiiC,OAAOvzB,GACf,OAAO1O,KAAKiiC,OAAOvzB,GAGpB,MAAMs3B,EAAmB9R,EAASE,aAElC,OAAIF,EAAS1rB,OAASmI,UAEXujB,EAAS1rB,OAASrI,OACrB6lC,EACG9R,EAASY,SACZ,GAEAkR,IAGT/1B,IAAIhJ,GACHA,EAAQjH,KAAK2F,YAAYq2B,cAAcr2B,YAAYsgC,sBAAsBh/B,EAAOitB,GAE/Dl0B,KAAKiiC,OAAOvzB,KAEZzH,IAChBjH,KAAKiiC,OAAOvzB,GAAQzH,EACpBjH,KAAKkiC,YAAYxzB,EAAMzH,GACvBjH,KAAKy+B,gBAAgB/vB,EAAMzH,OAO/B,GAAI8uB,EAAiB,CACpB,MAAMN,EAAQz1B,KAAKg8B,cAAcxG,WACjC,IAAK,MAAO2L,EAAU5M,KAAap1B,OAAOib,QAAQqb,GAAQ,CACzD,IAAK6I,GAAoB6C,GACxB,MAAM,IAAI3hC,MAAK,IAAK2hC,mFAGrB,MAAMY,EAAexN,EAASwN,cAAgBZ,EAC9ChiC,OAAOk0B,eAAehI,EAAO0W,EAAc,CAC1CnxB,MACC,YAAkClN,IAA9B1D,KAAKiiC,OAAOF,GACR/hC,KAAKiiC,OAAOF,GAEb,IAER9xB,MACC,MAAM,IAAIzQ,MAAM,oDAWVixB,sBACV,OAAO+N,GAOGtC,oBACV,MAAO,GAOGnC,8BACV,MAAO,GAOLlF,4BAEI5B,KAEFjzB,KAAKkmC,gBACFlmC,KAAKkmC,WAGZ,MAAMjR,EAAMj1B,KAAKg8B,cAAchH,SAEzBmR,EZt1Ba,CAAGlR,GAChB0C,GAAexnB,IAAI8kB,GYq1BFmR,CAAgBnR,GACjCoR,EAAkBnP,eAAetmB,IAAIqkB,GAS3C,OAPIoR,IAAoBF,EACvBxmB,QAAQC,KAAI,8BAA+BqV,+EAChCoR,IACXrmC,KAAKsmC,qBZh2BS,CAAGrR,IACnB0C,GAAepnB,IAAI0kB,IYg2BjBsR,CAAYtR,GACZtlB,OAAOunB,eAAev3B,OAAOs1B,EAAKj1B,OAE5BA,KAQL60B,qBAEF,GAAI70B,KAAK8D,eAAe,aACvB,OAAO9D,KAAKwmC,UAGb,MAAMC,EAAkB,CAACzmC,KAAKywB,UAC9B,IAAI8C,EAAQvzB,UACLuzB,IAAUqL,IAChBrL,EAAQp0B,OAAO+F,eAAequB,GAC9BkT,EAAgBC,QAAQnT,EAAM9C,UAE/B,MAAMkW,EAAiB7a,GAAM,MAAO2a,GAGpC,OADAzmC,KAAKwmC,UAAY,IAAI5R,GAAmB+R,GACjC3mC,KAAKwmC,eAIdI,GAAehI;;;;;;;;;;;;;GC72Bf,MAAMiI,GAAa,IAAIjM,QA+CVkM,GAAyCjmC,GAAI,IACjD0S,KACH,MAAMpR,EAAItB,KAAK0S,GAEf,OADAszB,GAAW52B,IAAI9N,GAAG,GACXA,GAGA4kC,GAAeC,GACN,mBAANA,GAAoBH,GAAW12B,IAAI62B,GClDtCC,GAAiC,oBAAXt3B,QACN,MAAzBA,OAAOunB,qBAEHxzB,IADHiM,OAAOunB,eAAqCgQ,0BAQpCC,GAAa,CACrBC,EACA/0B,EACAg1B,EAAiB,KACjBC,EAAoB,aACZj1B,IAAUg1B,GAAK,CACpB,MAAMvnC,EAAIuS,EAAOk1B,YACjBH,EAAU1Q,aAAarkB,EAAQi1B,GAC/Bj1B,EAAQvS,IAQH0nC,GAAW,CACnBJ,EAAiB/0B,EAAkBg1B,EAAiB,aAC5Ch1B,IAAUg1B,GAAK,CACpB,MAAMvnC,EAAIuS,EAAOk1B,YACjBH,EAAU1W,YAAYre,GACtBA,EAAQvS,ICRH2nC,GAAW,GAKXC,GAAU,GC7BVC,GAAM,SAAYxnC,OAAO4C,KAAKiM,UAAUrM,MAAM,OAM9CilC,GAAU,UAAUD,WAEpBE,GAAc,IAAIrK,OAAM,GAAImK,MAAUC,YAUtCE,eAIC9lC,EAAwBqO,GAH3BrQ,KAAA+zB,MAAwB,GAI/B/zB,KAAKqQ,QAAUA,EAEf,MAAM03B,EAAwB,GACxBloB,EAAgB,GAEhBmoB,EAAS9tB,SAAS+tB,iBACpB53B,EAAQ63B,QACR,IACA,MACA,GAIJ,IAAIC,EAAgB,EAChBlnB,GAAQ,EACRmnB,EAAY,EAChB,MAAMC,QAACA,EAASjjC,QAAQ/F,OAACA,IAAW2C,OAC7BomC,EAAY/oC,GAAQ,CACzB,MAAM0T,EAAOi1B,EAAOM,WACpB,GAAa,OAATv1B,GAUJ,GAFAkO,IAEsB,IAAlBlO,EAAKw1B,SAAwC,CAC/C,GAAKx1B,EAAiBy1B,gBAAiB,CACrC,MAAMtc,EAAcnZ,EAAiBmZ,YAC/B7sB,OAACA,GAAU6sB,EAMjB,IAAI5d,EAAQ,EACZ,IAAK,IAAIlP,EAAI,EAAGA,EAAIC,EAAQD,IACtBqpC,GAASvc,EAAW9sB,GAAG4G,KAlDH,UAmDtBsI,SAGGA,KAAU,GAAG,CAGlB,MAAMo6B,EAAgBL,EAAQD,GAExBpiC,EAAO2iC,GAAuB9X,KAAK6X,GAAgB,GAMnDE,EACF5iC,EAAKooB,cAlEe,QAmElBya,EACD91B,EAAiB+vB,aAAa8F,GAClC71B,EAAiBgwB,gBAAgB6F,GAClC,MAAME,EAAUD,EAAexzB,MAAMwyB,IACrC7nC,KAAK+zB,MAAMtxB,KAAK,CAAC+F,KAAM,kBAAayY,OAAOjb,EAAMqiC,QAASS,IAC1DV,GAAaU,EAAQzpC,OAAS,GAGA,aAA7B0T,EAAiBkkB,UACpBpX,EAAMpd,KAAKsQ,GACXi1B,EAAOe,YAAeh2B,EAA6Bm1B,cAEhD,GAAsB,IAAlBn1B,EAAKw1B,SAAqC,CACnD,MAAMroC,EAAQ6S,EAAc7S,KAC5B,GAAIA,EAAKuhB,QAAQkmB,KAAW,EAAG,CAC7B,MAAMrkB,EAASvQ,EAAKgxB,WACdsE,EAAUnoC,EAAKmV,MAAMwyB,IACrBmB,EAAYX,EAAQhpC,OAAS,EAGnC,IAAK,IAAID,EAAI,EAAGA,EAAI4pC,EAAW5pC,IAAK,CAClC,IAAI6pC,EACAz6B,EAAI65B,EAAQjpC,GAChB,GAAU,KAANoP,EACFy6B,EAASC,SACJ,CACL,MAAM7X,EAAQsX,GAAuB9X,KAAKriB,GAC5B,OAAV6iB,GAAkBoX,GAASpX,EAAM,GA9Ff,WA+FpB7iB,EAAIA,EAAE7L,MAAM,EAAG0uB,EAAMpQ,OAASoQ,EAAM,GAChCA,EAAM,GAAG1uB,MAAM,GAhGC,QAgGwBtD,QAAUgyB,EAAM,IAE9D4X,EAAS/uB,SAASivB,eAAe36B,GAEnC8U,EAAOoT,aAAauS,EAAQl2B,GAC5B/S,KAAK+zB,MAAMtxB,KAAK,CAAC+F,KAAM,OAAQyY,QAASA,IAIf,KAAvBonB,EAAQW,IACV1lB,EAAOoT,aAAawS,KAAgBn2B,GACpCg1B,EAActlC,KAAKsQ,IAElBA,EAAc7S,KAAOmoC,EAAQW,GAGhCZ,GAAaY,QAEV,GAAsB,IAAlBj2B,EAAKw1B,SACd,GAAKx1B,EAAiB7S,OAASynC,GAAQ,CACrC,MAAMrkB,EAASvQ,EAAKgxB,WAKS,OAAzBhxB,EAAKq2B,iBAA4BnoB,IAAUknB,IAC7ClnB,IACAqC,EAAOoT,aAAawS,KAAgBn2B,IAEtCo1B,EAAgBlnB,EAChBjhB,KAAK+zB,MAAMtxB,KAAK,CAAC+F,KAAM,aAAQyY,IAGN,OAArBlO,EAAKw0B,YACNx0B,EAAiB7S,KAAO,IAEzB6nC,EAActlC,KAAKsQ,GACnBkO,KAEFmnB,QACK,CACL,IAAIhpC,GAAI,QACuD,KAAvDA,EAAK2T,EAAiB7S,KAAKuhB,QAAQkmB,GAAQvoC,EAAI,KAKrDY,KAAK+zB,MAAMtxB,KAAK,CAAC+F,KAAM,OAAQyY,OAAO,IACtCmnB,UA9GJJ,EAAOe,YAAclpB,EAAMtY,MAqH/B,IAAK,MAAMzH,KAAKioC,EACdjoC,EAAEikC,WAAYrT,YAAY5wB,IAKhC,MAAM2oC,GAAQ,CAAIhM,EAAa4M,KAC7B,MAAMpoB,EAAQwb,EAAIp9B,OAASgqC,EAAOhqC,OAClC,OAAO4hB,GAAS,GAAKwb,EAAI95B,MAAMse,KAAWooB,GA4B/BC,GAAwBC,IAAsC,IAAfA,EAAKtoB,MAIpDioB,GAAY,IAAShvB,SAASsvB,cAAc,IA4B5Cb,sJCpOAc,eAOP9E,EAAoB+E,EACpBl9B,GAPaxM,KAAA2pC,QAAiC,GAQhD3pC,KAAK2kC,SAAWA,EAChB3kC,KAAK0pC,UAAYA,EACjB1pC,KAAKwM,QAAUA,EAGjBo9B,OAAOxkC,GACL,IAAIhG,EAAI,EACR,IAAK,MAAMmqC,KAAQvpC,KAAK2pC,aACTjmC,IAAT6lC,GACFA,EAAKM,SAASzkC,EAAOhG,IAEvBA,IAEF,IAAK,MAAM0qC,KAAQ9pC,KAAK2pC,aACTjmC,IAATomC,GACFA,EAAKC,SAKXC,SAuCE,MAAMC,EAAWhD,GACbjnC,KAAK2kC,SAASt0B,QAAQ63B,QAAQgC,WAAU,GACxChwB,SAASiwB,WAAWnqC,KAAK2kC,SAASt0B,QAAQ63B,SAAS,GAEjDroB,EAAgB,GAChBkU,EAAQ/zB,KAAK2kC,SAAS5Q,MAEtBiU,EAAS9tB,SAAS+tB,iBACpBgC,EACA,IACA,MACA,GACJ,IAEIV,EAFAnB,EAAY,EACZgC,EAAY,EAEZr3B,EAAOi1B,EAAOM,gBAEXF,EAAYrU,EAAM10B,QAEvB,GADAkqC,EAAOxV,EAAMqU,GACRkB,GAAqBC,GAA1B,MASOa,EAAYb,EAAKtoB,OACtBmpB,IACuB,aAAnBr3B,EAAMs3B,WACRxqB,EAAMpd,KAAKsQ,GACXi1B,EAAOe,YAAeh2B,EAA6Bm1B,SAElB,QAA9Bn1B,EAAOi1B,EAAOM,cAKjBN,EAAOe,YAAclpB,EAAMtY,MAC3BwL,EAAOi1B,EAAOM,YAKlB,GAAkB,SAAdiB,EAAK/gC,KAAiB,CACxB,MAAM+gC,EAAOvpC,KAAK0pC,UAAUY,qBAAqBtqC,KAAKwM,SACtD+8B,EAAKgB,gBAAgBx3B,EAAMq2B,iBAC3BppC,KAAK2pC,QAAQlnC,KAAK8mC,QAElBvpC,KAAK2pC,QAAQlnC,QAAQzC,KAAK0pC,UAAUc,2BAChCz3B,EAAiBw2B,EAAKvjC,KAAMujC,EAAKlB,QAASroC,KAAKwM,UAErD47B,SAjCEpoC,KAAK2pC,QAAQlnC,UAAKiB,GAClB0kC,IAuCJ,OAJInB,KACF/sB,SAASuwB,UAAUR,GACnB/S,eAAeyK,QAAQsI,IAElBA,GCtIX,MAAMS,GAAa,IAAO/C,YAMbgD,eAOPtC,EAA+BjjC,EAA4BoD,EAC3DkhC,GACF1pC,KAAKqoC,QAAUA,EACfroC,KAAKoF,OAASA,EACdpF,KAAKwI,KAAOA,EACZxI,KAAK0pC,UAAYA,EAMnBkB,UACE,MAAMC,EAAI7qC,KAAKqoC,QAAQhpC,OAAS,EAChC,IAAIyrC,EAAO,GACPC,GAAmB,EAEvB,IAAK,IAAI3rC,EAAI,EAAGA,EAAIyrC,EAAGzrC,IAAK,CAC1B,MAAMoP,EAAIxO,KAAKqoC,QAAQjpC,GAkBjB4rC,EAAcx8B,EAAE2gB,YAAY,WAIlC4b,GAAoBC,GAAc,GAAMD,KACE,IAAtCv8B,EAAEiT,QAAQ,SAAOupB,EAAc,GAInC,MAAMC,EAAiBtC,GAAuB9X,KAAKriB,GAOjDs8B,GANqB,OAAnBG,EAMMz8B,GAAKu8B,EAAmBL,GAAgB9C,IAKxCp5B,EAAE08B,OAAO,EAAGD,EAAehqB,OAASgqB,EAAe,GACvDA,EAAe,GFvDS,QEuDmBA,EAAe,GAC1DtD,GAIR,OADAmD,GAAQ9qC,KAAKqoC,QAAQwC,GACdC,EAGTK,qBACE,MAAMxG,EAAWzqB,SAASC,cAAc,YAExC,OADAwqB,EAAS5W,UAAY/tB,KAAK4qC,UACnBjG,SAWEyG,WAA0BT,GACrCC,UACE,MAAA,QAAe/T,MAAM+T,kBAGvBO,qBACE,MAAMxG,EAAW9N,MAAMsU,qBACjBjD,EAAUvD,EAASuD,QACnBmD,EAAanD,EAAQvR,WAG3B,OAFAuR,EAAQxX,YAAY2a,GACpBlE,GAAce,EAASmD,EAAW1U,YAC3BgO,GCjGJ,MAAM2G,GAAerkC,GAEZ,OAAVA,KACmB,iBAAVA,GAAuC,mBAAVA,GAE/BskC,GAActkC,GAClBsK,MAAMC,QAAQvK,OAEdA,IAAUA,EAAcjD,OAAOE,iBAQ3BsnC,eAOCn7B,EAAkBrK,EAAcqiC,GAF5CroC,KAAAyrC,OAAQ,EAGNzrC,KAAKqQ,QAAUA,EACfrQ,KAAKgG,KAAOA,EACZhG,KAAKqoC,QAAUA,EACfroC,KAAK+zB,MAAQ,GACb,IAAK,IAAI30B,EAAI,EAAGA,EAAIipC,EAAQhpC,OAAS,EAAGD,IACrCY,KAAK+zB,MAA0B30B,GAAKY,KAAK0rC,cAOpCA,cACR,OAAO,IAAIC,GAAc3rC,MAGjB4rC,YACR,MAAMvD,EAAUroC,KAAKqoC,QACfwC,EAAIxC,EAAQhpC,OAAS,EAC3B,IAAI6V,EAAO,GAEX,IAAK,IAAI9V,EAAI,EAAGA,EAAIyrC,EAAGzrC,IAAK,CAC1B8V,GAAQmzB,EAAQjpC,GAChB,MAAMmqC,EAAOvpC,KAAK+zB,MAAM30B,GACxB,QAAasE,IAAT6lC,EAAoB,CACtB,MAAMrnC,EAAIqnC,EAAKtiC,MACf,GAAIqkC,GAAYppC,KAAOqpC,GAAWrpC,GAChCgT,GAAqB,iBAANhT,EAAiBA,EAAI/B,OAAO+B,QAE3C,IAAK,MAAM3B,KAAK2B,EACdgT,GAAqB,iBAAN3U,EAAiBA,EAAIJ,OAAOI,IAOnD,OADA2U,GAAQmzB,EAAQwC,GACT31B,EAGT60B,SACM/pC,KAAKyrC,QACPzrC,KAAKyrC,OAAQ,EACbzrC,KAAKqQ,QAAQgK,aAAara,KAAKgG,KAAMhG,KAAK4rC,qBAQnCD,eAICE,GAFZ7rC,KAAAiH,WAAiBvD,EAGf1D,KAAK6rC,UAAYA,EAGnBhC,SAAS5iC,GACHA,IAAUwgC,IAAc6D,GAAYrkC,IAAUA,IAAUjH,KAAKiH,QAC/DjH,KAAKiH,MAAQA,EAIR8/B,GAAY9/B,KACfjH,KAAK6rC,UAAUJ,OAAQ,IAK7B1B,cACShD,GAAY/mC,KAAKiH,QAAQ,CAC9B,MAAM6kC,EAAY9rC,KAAKiH,MACvBjH,KAAKiH,MAAQwgC,GACbqE,EAAU9rC,MAERA,KAAKiH,QAAUwgC,IAGnBznC,KAAK6rC,UAAU9B,gBAYNgC,eAOCv/B,GAHZxM,KAAAiH,WAAiBvD,EACT1D,KAAAgsC,oBAA0BtoC,EAGhC1D,KAAKwM,QAAUA,EAQjBy/B,WAAW7E,GACTpnC,KAAKksC,UAAY9E,EAAU7sB,YAAY2uB,MACvClpC,KAAKmsC,QAAU/E,EAAU7sB,YAAY2uB,MAUvCqB,gBAAgB6B,GACdpsC,KAAKksC,UAAYE,EACjBpsC,KAAKmsC,QAAUC,EAAI7E,YAQrB8E,eAAe9C,GACbA,EAAK+C,SAAStsC,KAAKksC,UAAYhD,MAC/BK,EAAK+C,SAAStsC,KAAKmsC,QAAUjD,MAQ/BqD,gBAAgBH,GACdA,EAAIE,SAAStsC,KAAKksC,UAAYhD,MAC9BlpC,KAAKmsC,QAAUC,EAAID,QACnBC,EAAID,QAAUnsC,KAAKksC,UAGrBrC,SAAS5iC,GACPjH,KAAKgsC,eAAiB/kC,EAGxB8iC,SACE,GAAkC,OAA9B/pC,KAAKksC,UAAUnI,WACjB,YAEKgD,GAAY/mC,KAAKgsC,iBAAiB,CACvC,MAAMF,EAAY9rC,KAAKgsC,eACvBhsC,KAAKgsC,eAAiBvE,GACtBqE,EAAU9rC,MAEZ,MAAMiH,EAAQjH,KAAKgsC,eACf/kC,IAAUwgC,KAGV6D,GAAYrkC,GACVA,IAAUjH,KAAKiH,OACjBjH,KAAKwsC,aAAavlC,GAEXA,aAAiB0jC,GAC1B3qC,KAAKysC,uBAAuBxlC,GACnBA,aAAiB2uB,KAC1B51B,KAAK0sC,aAAazlC,GACTskC,GAAWtkC,GACpBjH,KAAK2sC,iBAAiB1lC,GACbA,IAAUygC,IACnB1nC,KAAKiH,MAAQygC,GACb1nC,KAAK4sC,SAGL5sC,KAAKwsC,aAAavlC,IAIdqlC,SAASv5B,GACf/S,KAAKmsC,QAAQpI,WAAYrN,aAAa3jB,EAAM/S,KAAKmsC,SAG3CO,aAAazlC,GACfjH,KAAKiH,QAAUA,IAGnBjH,KAAK4sC,QACL5sC,KAAKssC,SAASrlC,GACdjH,KAAKiH,MAAQA,GAGPulC,aAAavlC,GACnB,MAAM8L,EAAO/S,KAAKksC,UAAU3E,YAItBsF,EACe,iBAJrB5lC,EAAiB,MAATA,EAAgB,GAAKA,GAIGA,EAAQ9G,OAAO8G,GAC3C8L,IAAS/S,KAAKmsC,QAAQ/C,iBACJ,IAAlBr2B,EAAKw1B,SAINx1B,EAAc7S,KAAO2sC,EAEtB7sC,KAAK0sC,aAAaxyB,SAASivB,eAAe0D,IAE5C7sC,KAAKiH,MAAQA,EAGPwlC,uBAAuBxlC,GAC7B,MAAM09B,EAAW3kC,KAAKwM,QAAQsgC,gBAAgB7lC,GAC9C,GAAIjH,KAAKiH,iBAAiBwiC,IACtBzpC,KAAKiH,MAAM09B,WAAaA,EAC1B3kC,KAAKiH,MAAM2iC,OAAO3iC,EAAM7B,YACnB,CAKL,MAAM2nC,EACF,IAAItD,GAAiB9E,EAAU19B,EAAMyiC,UAAW1pC,KAAKwM,SACnDy9B,EAAW8C,EAAS/C,SAC1B+C,EAASnD,OAAO3iC,EAAM7B,QACtBpF,KAAK0sC,aAAazC,GAClBjqC,KAAKiH,MAAQ8lC,GAITJ,iBAAiB1lC,GAWlBsK,MAAMC,QAAQxR,KAAKiH,SACtBjH,KAAKiH,MAAQ,GACbjH,KAAK4sC,SAKP,MAAMI,EAAYhtC,KAAKiH,MACvB,IACIgmC,EADA7E,EAAY,EAGhB,IAAK,MAAMzT,KAAQ1tB,EAEjBgmC,EAAWD,EAAU5E,QAGJ1kC,IAAbupC,IACFA,EAAW,IAAIlB,GAAS/rC,KAAKwM,SAC7BwgC,EAAUvqC,KAAKwqC,GACG,IAAd7E,EACF6E,EAASZ,eAAersC,MAExBitC,EAASV,gBAAgBS,EAAU5E,EAAY,KAGnD6E,EAASpD,SAASlV,GAClBsY,EAASlD,SACT3B,IAGEA,EAAY4E,EAAU3tC,SAExB2tC,EAAU3tC,OAAS+oC,EACnBpoC,KAAK4sC,MAAMK,GAAYA,EAASd,UAIpCS,MAAMV,EAAkBlsC,KAAKksC,WAC3B1E,GACIxnC,KAAKksC,UAAUnI,WAAamI,EAAU3E,YAAcvnC,KAAKmsC,gBAWpDe,eAOC78B,EAAkBrK,EAAcqiC,GAC1C,GAJFroC,KAAAiH,WAAiBvD,EACT1D,KAAAgsC,oBAA0BtoC,EAGT,IAAnB2kC,EAAQhpC,QAA+B,KAAfgpC,EAAQ,IAA4B,KAAfA,EAAQ,GACvD,MAAM,IAAI7oC,MACN,2DAENQ,KAAKqQ,QAAUA,EACfrQ,KAAKgG,KAAOA,EACZhG,KAAKqoC,QAAUA,EAGjBwB,SAAS5iC,GACPjH,KAAKgsC,eAAiB/kC,EAGxB8iC,cACShD,GAAY/mC,KAAKgsC,iBAAiB,CACvC,MAAMF,EAAY9rC,KAAKgsC,eACvBhsC,KAAKgsC,eAAiBvE,GACtBqE,EAAU9rC,MAEZ,GAAIA,KAAKgsC,iBAAmBvE,GAC1B,OAEF,MAAMxgC,IAAUjH,KAAKgsC,eACjBhsC,KAAKiH,QAAUA,IACbA,EACFjH,KAAKqQ,QAAQgK,aAAara,KAAKgG,KAAM,IAErChG,KAAKqQ,QAAQ0yB,gBAAgB/iC,KAAKgG,MAEpChG,KAAKiH,MAAQA,GAEfjH,KAAKgsC,eAAiBvE,UAab0F,WAA0B3B,eAGzBn7B,EAAkBrK,EAAcqiC,GAC1CxR,MAAMxmB,EAASrK,EAAMqiC,GACrBroC,KAAKotC,OACmB,IAAnB/E,EAAQhpC,QAA+B,KAAfgpC,EAAQ,IAA4B,KAAfA,EAAQ,GAGlDqD,cACR,OAAO,IAAI2B,GAAartC,MAGhB4rC,YACR,OAAI5rC,KAAKotC,OACAptC,KAAK+zB,MAAM,GAAG9sB,MAEhB4vB,MAAM+U,YAGf7B,SACM/pC,KAAKyrC,QACPzrC,KAAKyrC,OAAQ,EAEZzrC,KAAKqQ,QAAgBrQ,KAAKgG,MAAQhG,KAAK4rC,oBAKjCyB,WAAqB1B,IAMlC,IAAI2B,IAAwB,QAK1B,IACE,MAAM9gC,EAAU,CACV+gC,cAEF,OADAD,IAAwB,GACjB,IAIX39B,OAAOgX,iBAAiB,OAAQna,EAAgBA,GAEhDmD,OAAOiX,oBAAoB,OAAQpa,EAAgBA,GACnD,MAAOghC,eAOEC,eASCp9B,EAAkBiW,EAAmB+T,GALjDr6B,KAAAiH,WAA2CvD,EAEnC1D,KAAAgsC,oBAAoDtoC,EAI1D1D,KAAKqQ,QAAUA,EACfrQ,KAAKsmB,UAAYA,EACjBtmB,KAAKq6B,aAAeA,EACpBr6B,KAAK0tC,mBAAsBrgC,GAAMrN,KAAK2tC,YAAYtgC,GAGpDw8B,SAAS5iC,GACPjH,KAAKgsC,eAAiB/kC,EAGxB8iC,cACShD,GAAY/mC,KAAKgsC,iBAAiB,CACvC,MAAMF,EAAY9rC,KAAKgsC,eACvBhsC,KAAKgsC,eAAiBvE,GACtBqE,EAAU9rC,MAEZ,GAAIA,KAAKgsC,iBAAmBvE,GAC1B,OAGF,MAAMmG,EAAc5tC,KAAKgsC,eACnB6B,EAAc7tC,KAAKiH,MACnB6mC,EAAsC,MAAfF,GACV,MAAfC,IACKD,EAAYL,UAAYM,EAAYN,SACpCK,EAAYG,OAASF,EAAYE,MACjCH,EAAYI,UAAYH,EAAYG,SACvCC,EACa,MAAfL,IAAuC,MAAfC,GAAuBC,GAE/CA,GACF9tC,KAAKqQ,QAAQuW,oBACT5mB,KAAKsmB,UAAWtmB,KAAK0tC,mBAAoB1tC,KAAKkuC,WAEhDD,IACFjuC,KAAKkuC,UAAYC,GAAWP,GAC5B5tC,KAAKqQ,QAAQsW,iBACT3mB,KAAKsmB,UAAWtmB,KAAK0tC,mBAAoB1tC,KAAKkuC,YAEpDluC,KAAKiH,MAAQ2mC,EACb5tC,KAAKgsC,eAAiBvE,GAGxBkG,YAAYS,GACgB,mBAAfpuC,KAAKiH,MACdjH,KAAKiH,MAAM5B,KAAKrF,KAAKq6B,cAAgBr6B,KAAKqQ,QAAS+9B,GAElDpuC,KAAKiH,MAA8B0mC,YAAYS,IAQtD,MAAMD,GAAcnH,GAAyCA,IACxDsG,GACI,CAACC,QAASvG,EAAEuG,QAASS,QAAShH,EAAEgH,QAASD,KAAM/G,EAAE+G,MACjD/G,EAAEuG,SC9cJ,MAAMc,GAA2B,UA1BtC7D,2BACIn6B,EAAkBrK,EAAcqiC,EAChC77B,GACF,MAAM8hC,EAAStoC,EAAK,GACpB,GAAe,MAAXsoC,EAAgB,CAElB,OADkB,IAAInB,GAAkB98B,EAASrK,EAAKrD,MAAM,GAAI0lC,GAC/CtU,MAEnB,GAAe,MAAXua,EACF,MAAO,CAAC,IAAIb,GAAUp9B,EAASrK,EAAKrD,MAAM,GAAI6J,EAAQ6tB,eAExD,GAAe,MAAXiU,EACF,MAAO,CAAC,IAAIpB,GAAqB78B,EAASrK,EAAKrD,MAAM,GAAI0lC,IAG3D,OADkB,IAAImD,GAAmBn7B,EAASrK,EAAMqiC,GACvCtU,MAMnBuW,qBAAqB99B,GACnB,OAAO,IAAIu/B,GAASv/B,cCXR+hC,GAAgBvsC,GAC9B,IAAIwsC,EAAgBC,GAAe79B,IAAI5O,EAAOwG,WACxB9E,IAAlB8qC,IACFA,EAAgB,CACdE,aAAc,IAAI9T,QAClB+T,UAAW,IAAI19B,KAEjBw9B,GAAex+B,IAAIjO,EAAOwG,KAAMgmC,IAGlC,IAAI7J,EAAW6J,EAAcE,aAAa99B,IAAI5O,EAAOqmC,SACrD,QAAiB3kC,IAAbihC,EACF,OAAOA,EAKT,MAAMr9B,EAAMtF,EAAOqmC,QAAQ7nB,KAAKmnB,IAahC,OAVAhD,EAAW6J,EAAcG,UAAU/9B,IAAItJ,QACtB5D,IAAbihC,IAEFA,EAAW,IAAImD,GAAS9lC,EAAQA,EAAOmpC,sBAEvCqD,EAAcG,UAAU1+B,IAAI3I,EAAKq9B,IAInC6J,EAAcE,aAAaz+B,IAAIjO,EAAOqmC,QAAS1D,GACxCA,EAkBF,MAAM8J,GAAiB,IAAIx9B,ICxErB29B,GAAQ,IAAIhU,QCmCH,oBAAXjrB,SACRA,OAAwB,kBAAMA,OAAwB,gBAAI,KAAKlN,KAAK,SAOhE,MAAMosC,GAAI,CAAIxG,KAAkCjjC,IACnD,IAAIulC,GAAetC,EAASjjC,EAAQ,OAAQipC,IAMnCS,GAAG,CAAIzG,KAAkCjjC,IAClD,IAAIgmC,GAAkB/C,EAASjjC,EAAQ,MAAOipC,ICpD5CU,GAAmB,CACpBC,EAAyBC,KACxB,MAAM7H,EAAY4H,EAAc9C,UAAUnI,WACpCmL,OAA4BxrC,IAAfurC,EAA2BD,EAAc7C,QACd8C,EAAW/C,UACnDA,EAAY9E,EAAU1Q,aAAawS,KAAgBgG,GACzD9H,EAAU1Q,aAAawS,KAAgBgG,GACvC,MAAMC,EAAU,IAAIpD,GAASiD,EAAcxiC,SAE3C,OADA2iC,EAAQ5E,gBAAgB2B,GACjBiD,GAGPC,GAAU,CAAI7F,EAAgBtiC,KAClCsiC,EAAKM,SAAS5iC,GACdsiC,EAAKQ,SACER,GAGH8F,GAAgB,CACjBL,EAAyBzF,EAAgB6C,KACxC,MAAMhF,EAAY4H,EAAc9C,UAAUnI,WACpCmL,EAAa9C,EAAMA,EAAIF,UAAY8C,EAAc7C,QACjDA,EAAU5C,EAAK4C,QAAQ5E,YACzB4E,IAAY+C,GACd/H,GAAcC,EAAWmC,EAAK2C,UAAWC,EAAS+C,IAIpDI,GAAc/F,IAClB/B,GACI+B,EAAK2C,UAAUnI,WAAawF,EAAK2C,UAAW3C,EAAK4C,QAAQ5E,cAMzDgI,GAAW,CAAInY,EAAiB/kB,EAAeg1B,KACnD,MAAMj3B,EAAM,IAAIa,IAChB,IAAK,IAAI7R,EAAIiT,EAAOjT,GAAKioC,EAAKjoC,IAC5BgR,EAAIH,IAAImnB,EAAKh4B,GAAIA,GAEnB,OAAOgR,GAIHo/B,GAAgB,IAAI5U,QACpB6U,GAAe,IAAI7U,QAqBZ8U,GACT5I,IAAS,CACD6I,EACAC,EACAjL,KAEE,IAAIkL,EAOJ,YANiBnsC,IAAbihC,EACFA,EAAWiL,OACkBlsC,IAApBksC,IACTC,EAAQD,GAGFZ,IACN,KAAMA,aAAyBjD,IAC7B,MAAM,IAAIvsC,MAAM,4CAIlB,MAAMswC,EAAWN,GAAc5+B,IAAIo+B,IAAkB,GAC/Ce,EAAUN,GAAa7+B,IAAIo+B,IAAkB,GAK7CgB,EAAuB,GAIvBC,EAAuB,GACvBC,EAAqB,GAC3B,IAWIC,EACAC,EAZAnvB,EAAQ,EACZ,IAAK,MAAM0T,KAAQgb,EACjBO,EAAQjvB,GAAS4uB,EAAQA,EAAMlb,EAAM1T,GAASA,EAC9CgvB,EAAUhvB,GAAS0jB,EAAWhQ,EAAM1T,GACpCA,IAWF,IAAIovB,EAAU,EACVC,EAAUR,EAASzwC,OAAS,EAC5BkxC,EAAU,EACVC,EAAUP,EAAU5wC,OAAS,OAsM1BgxC,GAAWC,GAAWC,GAAWC,GACtC,GAA0B,OAAtBV,EAASO,GAGXA,SACK,GAA0B,OAAtBP,EAASQ,GAGlBA,SACK,GAAIP,EAAQM,KAAaH,EAAQK,GAEtCP,EAASO,GACLnB,GAAWU,EAASO,GAAWJ,EAAUM,IAC7CF,IACAE,SACK,GAAIR,EAAQO,KAAaJ,EAAQM,GAEtCR,EAASQ,GACLpB,GAAWU,EAASQ,GAAWL,EAAUO,IAC7CF,IACAE,SACK,GAAIT,EAAQM,KAAaH,EAAQM,GAEtCR,EAASQ,GACLpB,GAAWU,EAASO,GAAWJ,EAAUO,IAC7CnB,GACIL,EACAc,EAASO,GACTL,EAASQ,EAAU,IACvBH,IACAG,SACK,GAAIT,EAAQO,KAAaJ,EAAQK,GAEtCP,EAASO,GACLnB,GAAWU,EAASQ,GAAWL,EAAUM,IAC7ClB,GACIL,EAAec,EAASQ,GAAWR,EAASO,IAChDC,IACAC,SAQA,QANyB7sC,IAArBysC,IAGFA,EAAmBZ,GAAYW,EAASK,EAASC,GACjDJ,EAAmBb,GAAYQ,EAASM,EAASC,IAE9CH,EAAiBhgC,IAAI4/B,EAAQM,IAI3B,GAAKF,EAAiBhgC,IAAI4/B,EAAQO,IAIlC,CAIL,MAAMG,EAAWL,EAAiBx/B,IAAIs/B,EAAQK,IACxCG,OACWhtC,IAAb+sC,EAAyBX,EAASW,GAAY,KAClD,GAAgB,OAAZC,EAAkB,CAGpB,MAAMvB,EAAUJ,GACZC,EAAec,EAASO,IAC5BjB,GAAWD,EAASc,EAAUM,IAC9BP,EAASO,GAAWpB,OAGpBa,EAASO,GACLnB,GAAWsB,EAAST,EAAUM,IAClClB,GACIL,EAAe0B,EAASZ,EAASO,IAGrCP,EAASW,GAAsB,KAEjCF,SA1BAjB,GAAWQ,EAASQ,IACpBA,SALAhB,GAAWQ,EAASO,IACpBA,SAkCCE,GAAWC,GAAS,CAGzB,MAAMrB,EACFJ,GAAoBC,EAAegB,EAASQ,EAAU,IAC1DpB,GAAWD,EAASc,EAAUM,IAC9BP,EAASO,KAAapB,OAGjBkB,GAAWC,GAAS,CACzB,MAAMI,EAAUZ,EAASO,KACT,OAAZK,GACFpB,GAAWoB,GAIflB,GAAcv/B,IAAI++B,EAAegB,GACjCP,GAAax/B,IAAI++B,EAAekB,aCna1CS,eAKQtgC,GAHZrQ,KAAA4wC,QAAuB,IAAI/gC,IAC3B7P,KAAA6wC,SAAU,EAGR7wC,KAAKqQ,QAAUA,EACf,MAAMmgB,GAAangB,EAAQyyB,aAAa,UAAY,IAAIztB,MAAK,OAC7D,IAAK,MAAMy7B,KAAOtgB,EAChBxwB,KAAK4wC,QAAQrgC,IAAIugC,GAGrBvgC,IAAIugC,GACF9wC,KAAK4wC,QAAQrgC,IAAIugC,GACjB9wC,KAAK6wC,SAAU,EAGjB7vB,OAAO8vB,GACL9wC,KAAK4wC,QAAQngC,OAAOqgC,GACpB9wC,KAAK6wC,SAAU,EAGjB9G,SACE,GAAI/pC,KAAK6wC,QAAS,CAChB,IAAIE,EAAc,GAClB/wC,KAAK4wC,QAAQ3oC,SAAS6oC,GAAQC,GAAeD,EAAM,MACnD9wC,KAAKqQ,QAAQgK,aAAa,QAAS02B,KAazC,MAAMC,GAAuB,IAAIpW,QAWpBqW,GAAWnK,IAAWoK,GAA0B3H,IAC3D,KAAMA,aAAgBoC,KAAmBpC,aAAgB8D,IAC7B,UAAxB9D,EAAKsC,UAAU7lC,MAAoBujC,EAAKsC,UAAU9X,MAAM10B,OAAS,EACnE,MAAM,IAAIG,MACN,8GAIN,MAAMqsC,UAACA,GAAatC,GACdl5B,QAACA,GAAWw7B,EAElB,IAAIsF,EAAkBH,GAAqBpgC,IAAI24B,QACvB7lC,IAApBytC,IAGF9gC,EAAQgK,aAAa,QAASwxB,EAAUxD,QAAQ7nB,KAAK,MACrDwwB,GAAqB/gC,IAAIs5B,EAAM4H,EAAkB,IAAIthC,MAGvD,MAAM2gB,EACDngB,EAAQmgB,WAAa,IAAImgB,GAAUtgC,GAKxC8gC,EAAgBlpC,SAASjC,IACjBA,KAAQkrC,IACZ1gB,EAAUxP,OAAOhb,GACjBmrC,EAAiB1gC,OAAOzK,OAK5B,IAAK,MAAM8T,KAAQo3B,EAAW,CAC5B,MAAMjqC,EAAQiqC,EAAUp3B,GACpB7S,GAASkqC,EAAgBhhC,IAAI2J,KAG3B7S,GACFupB,EAAUjgB,IAAIuJ,GACdq3B,EAAgB5gC,IAAIuJ,KAEpB0W,EAAUxP,OAAOlH,GACjBq3B,EAAgB1gC,OAAOqJ,KAIkB,mBAAnC0W,EAAwBuZ,QACjCvZ,EAAwBuZ,YC3FvBqH,GAA6B,IAAIxW,QAmB1ByW,GAAWvK,IAAWwK,GAA0B/H,IAC3D,KAAMA,aAAgBoC,KAAmBpC,aAAgB8D,IAC7B,UAAxB9D,EAAKsC,UAAU7lC,MAAoBujC,EAAKsC,UAAU9X,MAAM10B,OAAS,EACnE,MAAM,IAAIG,MACN,4GAIN,MAAMqsC,UAACA,GAAatC,GACdpd,MAACA,GAAS0f,EAAUx7B,QAE1B,IAAIkhC,EAA0BH,GAA2BxgC,IAAI24B,QAE7B7lC,IAA5B6tC,IAEFplB,EAAMF,QAAU4f,EAAUxD,QAAQ7nB,KAAK,KACvC4wB,GAA2BnhC,IAAIs5B,EAAMgI,EAA0B,IAAI1hC,MAMrE0hC,EAAwBtpC,SAASjC,IACzBA,KAAQsrC,IACZC,EAAyB9gC,OAAOzK,IACN,IAAtBA,EAAKyb,QAAQ,KAEd0K,EAAcnmB,GAAQ,KAEvBmmB,EAAMqlB,eAAexrC,OAM3B,IAAK,MAAM8T,KAAQw3B,EACjBC,EAAwBhhC,IAAIuJ,IACF,IAAtBA,EAAK2H,QAAQ,KAEd0K,EAAcrS,GAAQw3B,EAAUx3B,GAEjCqS,EAAMslB,YAAY33B,EAAMw3B,EAAUx3B,WCtExC43B,GAZe,CAAIC,EAAgBC,EAAS1V,GAAS7B,aAACA,GAAiB,MAClE6B,IACHyV,EAAiB9C,EAAI,UAAU3S,YAAiByV,KLoC/B,EACd3vC,EACAolC,EACA56B,KACC,IAAI+8B,EAAOqF,GAAMh+B,IAAIw2B,QACR1jC,IAAT6lC,IACF/B,GAAYJ,EAAWA,EAAUzQ,YACjCiY,GAAM3+B,IAAIm3B,EAAWmC,EAAO,IAAIwC,GAAQ5sC,OAAAmR,OAAA,iBACjBi+B,IACG/hC,KAE1B+8B,EAAK0C,WAAW7E,IAElBmC,EAAKM,SAAS7nC,GACdunC,EAAKQ,UKhDV8H,CAAOF,EAAgBC,EAAS,cAAEvX,KCNnC,MAAMyX,GAEA,EAFAA,GAGE,GAHFA,GASG,GATHA,GAUE,GAVFA,GAaA,GAbAA,GAcC,GAdDA,GAeO,GAfPA,GAgBK,GAhBLA,GAiBQ,GAjBRA,GAkBO,GAlBPA,GAgFD,IAyBCC,GAAU3D,IAAUA,EAAM9mC,IAAoB,UAAd8mC,EAAM9mC,IAAkB8mC,EAAM4D,UAAYF,MAAoBG,GAAgB7D,GAE9G8D,GAAU9D,IAAUA,EAAM9mC,IAAqB,aAAd8mC,EAAM9mC,KAAoC,MAAd8mC,EAAM9mC,IAAe8mC,EAAM4D,UAAYF,MAAoBG,GAAgB7D,GAExI+D,GAAS/D,IAAUA,EAAM9mC,IAAqB,cAAd8mC,EAAM9mC,KAAqC,SAAd8mC,EAAM9mC,IAAkB8mC,EAAM4D,UAAYF,MAAyBG,GAAgB7D,GAEhJgE,GAAUhE,IAAUA,EAAM9mC,IAAqB,eAAd8mC,EAAM9mC,KAAsC,UAAd8mC,EAAM9mC,IAAmB8mC,EAAM4D,UAAYF,MAA0BG,GAAgB7D,GAEpJiE,GAAOjE,IAAUA,EAAM9mC,IAAqB,YAAd8mC,EAAM9mC,KAAmC,OAAd8mC,EAAM9mC,IAAgB8mC,EAAM4D,UAAYF,MAAuBG,GAAgB7D,GAExIkE,GAASlE,IAAUA,EAAM9mC,IAAqB,cAAd8mC,EAAM9mC,KAAqC,SAAd8mC,EAAM9mC,IAAkB8mC,EAAM4D,UAAYF,MAAyBG,GAAgB7D,GAMhJmE,GAAWnE,IAAUA,EAAM9mC,IAAoB,WAAd8mC,EAAM9mC,KAAkC,QAAd8mC,EAAM9mC,IAAgB8mC,EAAM4D,UAAYF,MAAqBG,GAAgB7D,GAExIoE,GAAYpE,IAAUA,EAAM9mC,IAAoB,QAAd8mC,EAAM9mC,IAAgB8mC,EAAM4D,UAAYF,MAAkBG,GAAgB7D,GAgB5G6D,GAAkB7D,GAASA,EAAMlmB,UAAYkmB,EAAMpmB,QAAUyqB,GAAWrE,GAExEqE,GAAarE,MAAYA,EAAMsE,UAAWtE,EAAMnmB,SAEhD0qB,GAAiB,CAAIC,EAAQC,EAAUC,EAASC,IAAcH,EAAO1qB,WAAa6qB,GAAaH,EAAO5qB,SAAW8qB,GAAWL,GAAWG,KAAYC,EC7IzJ,IAAIG,GAEJ,MAAMC,GAAW,UACCvvC,IAAbsvC,K9C4BJplB,K8C3BColB,G9C4BM7lB,GAAcI,U8C1BdylB,QCNRE,GAUE,KATD,MAAMC,EAAmB5lC,UAAU6lC,UAQnC,OAFmBD,GAAoBA,EAAiB,IAHhD5lC,UAAUggB,UAGoEhgB,UAAU8lC,cAAgB9lC,UAAU+lC,iBAEtGtmB,ICNrB,MAAMumB,GAAsB,CAC3BC,GAAM,KACNC,GAAM,KACNC,GAAM,KACNC,GAAM,MAGDC,GCTJ,CAHa3sC,IACd,MAAM4sC,EAAC,qCAAwChjB,KAAK5pB,GACpD,OAAO4sC,GAAKA,EAAE,GAAKA,EAAE,GAAGx+B,MAAK,KAAQ,MDUhBy+B,CAA6B,gCAAkC,GAQ/EC,GAAM,KACX,MAAMC,GhDONpmB,KACOT,GAAcG,KgDNrB,OAAyB,OAArB0mB,IACMA,GATVzmB,GADkBA,EAaA0lB,MAAiBC,OAZXK,GAAoBhmB,IAAcA,EAEnDqmB,GAAcnyB,QAAQ8L,IAAa,GAH3B,IAAGA,GEdb0mB,GAAO,iNA0FbC,qBAvFaC,GACX,MAAMC,EAAUH,GAAQpjB,KAAKsjB,EAAUpjB,QAAO,KAAO,MACrD,GAAgB,OAAZqjB,EACH,MAAM,IAAI50C,MAAK,sBAAuB20C,gCAEvCn0C,KAAKm0C,UAAYA,EACjBn0C,KAAKq0C,UAAYD,EAAQ,IAAM,KAC/Bp0C,KAAKs0C,QAAUF,EAAQ,IAAM,KAC7Bp0C,KAAKu0C,QAAUH,EAAQ,IAAM,KAC7Bp0C,KAAKw0C,SAAYJ,EAAQ,IAAMA,EAAQ,GAAGzxC,MAAM,IAAO,KACvD3C,KAAKy0C,WAAcL,EAAQ,IAAMA,EAAQ,GAAGzxC,MAAM,IAAO,KACzD3C,KAAK00C,YAAcN,EAAQ,IAAM,KAC7Bp0C,KAAKq0C,YACRr0C,KAAKq0C,UAAYr0C,KAAKq0C,UAAUjmB,eAE7BpuB,KAAKs0C,UACRt0C,KAAKs0C,QAAUt0C,KAAKs0C,QAAQlmB,cAAc2C,QAAO,UAAWviB,GACpDA,EAAEwlB,iBAGPh0B,KAAKu0C,UACRv0C,KAAKu0C,QAAUv0C,KAAKu0C,QAAQvgB,eAI9B2gB,cACC,OAAO30C,KAAKq0C,UAGbO,YACC,OAAO50C,KAAKs0C,QAGbO,YACC,OAAO70C,KAAKu0C,QAGbO,aACC,OAAO90C,KAAKw0C,SAGbO,oBACC,OAAO/0C,KAAKw0C,SAAWx0C,KAAKw0C,SAASn/B,MAAM,KAAO,GAGnD2/B,eACC,OAAOh1C,KAAKy0C,WAGbQ,sBACC,OAAOj1C,KAAKy0C,WAAaz0C,KAAKy0C,WAAW9xC,MAAM,GAAG0S,MAAM,KAAO,GAGhE6/B,gBACC,OAAOl1C,KAAK00C,YAGbS,uBACC,OAAOn1C,KAAK00C,YAAc10C,KAAK00C,YAAY/xC,MAAM,GAAG0S,MAAM,KAAO,GAGlE+/B,oBAAoBC,GACnB,OAAOr1C,KAAKm1C,uBAAuB1zB,QAAQ4zB,IAAY,EAGxDnuC,WACC,MAAMqH,EAAI,CAACvO,KAAKq0C,WAiBhB,OAfIr0C,KAAKs0C,SACR/lC,EAAE9L,KAAKzC,KAAKs0C,SAETt0C,KAAKu0C,SACRhmC,EAAE9L,KAAKzC,KAAKu0C,SAETv0C,KAAKw0C,UACRjmC,EAAE9L,KAAKzC,KAAKw0C,UAETx0C,KAAKy0C,YACRlmC,EAAE9L,KAAKzC,KAAKy0C,YAETz0C,KAAK00C,aACRnmC,EAAE9L,KAAKzC,KAAK00C,aAENnmC,EAAEiS,KAAK,OClFhB,MAAM80B,GAAwBC,IAC7B,IACC,GAAIA,GAAwB,iBAATA,EAClB,OAAO,IAAIrB,GAAOqB,GAElB,MAAOloC,UAqBVmoC,GAZkBD,GACbA,EACID,GAAsBC,GAG1BtC,KACI,IAAIiB,GAAOjB,MAGZqC,GAAsBpC,MCzB9B,MAAMuC,GAAW,6MACXC,GAAwB,iCAGxBC,GAAsB,CAC3BC,GAAM,KACNC,GAAM,KACNv2C,GAAM,KACNw2C,GAAM,UA2CPC,GAnCwBC,IACvB,IAAInC,EAEJ,IAAKmC,EACJ,OAAO/oB,GAGR,GAAsB,iBAAX+oB,IAAwBnC,EAAI4B,GAAY5kB,KAAKmlB,EAAOjlB,QAAO,KAAO,OAAQ,CACpF,IAAIxD,EAAWsmB,EAAE,GAAGzlB,cAChB6nB,EAASpC,EAAE,GAAKA,EAAE,GAAG7f,mBAAgBtwB,EACzC,MAAMwyC,EAASrC,EAAE,GAAKA,EAAE,GAAGzlB,mBAAgB1qB,EACrCyyC,EAAWtC,EAAE,GAAKA,EAAE,GAAGlxC,MAAM,QAAKe,EAClC0yC,EAAYvC,EAAE,GAKpB,OAHAtmB,EAAWooB,GAAoBpoB,IAAaA,EAGvC6oB,IAAcvC,EAAI6B,GAAyB7kB,KAAKulB,KACnDD,IAAatC,EAAI6B,GAAyB7kB,KAAKslB,IAC1C,SAAUtC,EAAE,GAAGzlB,iBAIL,OAAbb,GAAsB0oB,IACV,SAAXC,EACHD,EAAS,KACY,SAAXC,IACVD,EAAS,OAIJ1oB,GAAY0oB,EAAS,IAAMA,GAAUE,EAAW,IAAMA,EAASplB,QAAQ,IAAK,KAAO,IAAM,WCtBlGslB,GAnB2BL,IAC1B,IAAKA,EACJ,OAAO/oB,GAGR,GAAe,UAAX+oB,EACH,MAAO,QAIR,MAAM33B,EAAI23B,EAAO7mB,YAAY,KAC7B,OAAI9Q,GAAK,EACD23B,EAAOrzC,MAAM,EAAG0b,GAIjB23B,IAAW/oB,GAAiBA,GAAiB,IClBrD,MAAMqpB,GAAa,IAAIrlC,IACjBslC,GAAa,IAAItlC,IAQjBulC,GAAiB,CAAI/mB,EAAavvB,KACvCo2C,GAAWrmC,IAAIwf,EAAavvB,IA0BvBu2C,GAAehwC,MAASgpB,IAC7B,MAAMinB,EAAoBH,GAAW3lC,IAAI6e,GAEzC,IAAKinB,EAGJ,YAFA/2B,QAAQC,KAAI,2EAAsG,uBAC3F6P,kEAIxB,MAAMlC,EAAWioB,KAAYb,cAE7B,IAAIgC,EAAWZ,GAAgBxoB,SACvBmpB,EAAkBC,IACzBA,EAAWN,GAAmBM,GAG/B,GAAIA,IAAa3pB,GAChB,OAGD,MAAM4pB,EAAYF,EAAkBC,GAEpC,GAAyB,iBAAdC,EAEV,YADAJ,GAAkB/mB,EAAamnB,GAIhC,MAAM12C,QAAa0uB,GAAcgoB,GACjCJ,GAAkB/mB,EAAavvB,ICtE1B22C,GAAkB,yEAsBxBC,GApBmB,CAAI5hC,EAAM9P,KAC5BA,EAASA,GAAU,GAEZ8P,EAAK6b,QAAQ8lB,IAAkB,CAAGE,EAAIC,EAAIC,EAAIC,EAAIC,KACxD,GAAIH,EACH,MAAO,IAGR,GAAIC,EACH,OAAOA,EAAGlmB,QAAO,MAAQ,KAG1B,GAAImmB,EACH,OAAO/2C,OAAOiF,EAAOs9B,SAASwU,KAG/B,MAAM,IAAI13C,MAAK,uCAAwC23C,SCfzD,MAAMC,GAAsB,IAAInmC,UAE1BomC,eACO5nB,GACXzvB,KAAKyvB,YAAcA,EAGpB6nB,QAAQC,KAAY3mB,GACnB,IAAK2mB,IAAYA,EAAQjwC,MAAQiwC,EAAQC,YACxC,MAAO,GAGR,MAAMC,GFIkBhoB,EEJSzvB,KAAKyvB,YFKhC6mB,GAAW1lC,IAAI6e,IADA,IAAGA,EEHxB,MAAMioB,EAAcD,GAAUA,EAAOF,EAAQjwC,KAAOmwC,EAAOF,EAAQjwC,KAAOiwC,EAAQC,YAElF,OAAOV,GAAcY,EAAa9mB,IAIpC,MAAM+mB,GAAgBloB,IACrB,GAAI2nB,GAAoBjnC,IAAIsf,GAC3B,OAAO2nB,GAAoBxmC,IAAI6e,GAGhC,MAAMmoB,EAAa,IAAIP,GAAW5nB,GAElC,OADA2nB,GAAoBnnC,IAAIwf,EAAamoB,GAC9BA,OCKRC,GAlCsB9kC,IACrB,KAAMA,aAAgByhB,aACrB,MAAM,IAAIh1B,MAAM,+CAGjB,MAAMs4C,EAAa,CAACC,gBAAiBC,mBACrC,IAAIC,GAAwB,EACxBC,GAA2B,OAExBnlC,GAAM,CACZ,GAAwB,wBAApBA,EAAK7L,YAMR,GAHI+wC,IACHA,GAAwB,IAEpBC,IAA6BD,EACjC,OAAOllC,OAEF,GAAIA,EAAKkkB,SAAWlkB,EAAKkkB,QAAQxV,QAAQ,MAAO,EAAI,CAC1D,IAAIy2B,EAGH,OAAOnlC,EAFPmlC,GAA2B,OAItB,GAAIJ,EAAWr2B,QAAQ1O,EAAKpN,cAAe,EAEjD,OAAOoN,EAGRA,EAAOA,EAAKgxB,YAAchxB,EAAKolC,OCxBjC,MAAMC,GAAc,CAMnBC,QAAS,UAOTC,SAAU,WAOVC,SAAU,WAOVC,YAAa,cAObC,WAAY,cAWV,MACGC,WAAqBvlB,kBACXlsB,GACd,QAASmxC,GAAYnxC,IAIvByxC,GAAaC,qBAAqBP,QAElCQ,GAAeF,GCnDfG,GAAe/R,IAAU7/B,GAASsiC,IACjC,QAAe7lC,IAAVuD,GAAwBsiC,aAAgBoC,IAC5C,GAAI1kC,IAAUsiC,EAAKtiC,MAAO,CACzB,MAAMjB,EAAOujC,EAAKsC,UAAU7lC,KAC5BujC,EAAKsC,UAAUx7B,QAAQ0yB,gBAAgB/8B,SAE9BujC,EAAKsC,WAAatC,EAAKsC,UAAUx7B,SAAWk5B,EAAKsC,UAAUx7B,QAAQyyB,aAAayG,EAAKsC,UAAU7lC,QAAUiB,EACnHsiC,EAAKM,SAASpC,IAEd8B,EAAKM,SAAS5iC,MCdhB,MACM6xC,GAAUlwC,GAAqBimC,EAAI,iDAAiDgK,GAAUjwC,EAAQmwC,0BAA0BF,GAAUjwC,EAAQowC,6BAClJC,GAAUrwC,GAAqBimC,EAAI,iCAAiCgK,GAAUjwC,EAAQswC,+BAE5FC,GAJgBvwC,GAAqBimC,EAAI,+DAA+DjmC,EAAQs1B,yCAAyC2a,GAAUjwC,EAAQ0kB,oBAAoB1kB,EAAQwwC,yBAAyBxwC,EAAQywC,sBAAsBzwC,EAAQ0wC,wBAAwB1wC,EAAQ2wC,0BAA0B3wC,EAAQ4wC,wBAAwB5wC,EAAQ6wC,sBAAsB7wC,EAAQ8wC,sBAAsBb,GAAUjwC,EAAQ+wC,kCAAkCd,GAAUjwC,EAAQgxC,QAAQC,kCAAkChB,GAAUjwC,EAAQgxC,QAAQE,+BAA+BjB,GAAUjwC,EAAQmxC,2BAA2BlB,GAAUjwC,EAAQgxC,QAAQI,6BAA8BpxC,EAAQmwC,KAAOD,GAAOlwC,QAAWlF,cAAuBm1C,GAAUjwC,EAAQuxB,0EAA2EvxB,EAAQqxC,cAAgBhB,GAAOrwC,QAAWlF,aCJz2B,MAAMw2C,GAAW,IAAIjpC,IACfkpC,GAAyB,IAAIlpC,IAK7BmpC,GAAO,CAAIp0C,EAAMq0C,KAElBr0C,EAAKkoB,WAAW,iBACnBloB,EAAOA,EAAK+qB,QAAQ,cAAe,KAClC/qB,EAAMq0C,GAAcr0C,EAAKqP,MAAM,KAAKhO,WAGhC,GADNgzC,EAAaA,GARa,eASFr0C,KAGnBs0C,GAAY,CAAIt0C,GAAOu0C,SAACA,EAAQC,QAAEA,EAAOH,WAAEA,GAAe,MAC/D,MAAM/yC,EAAM8yC,GAAQp0C,EAAMq0C,GAC1BH,GAASjqC,IAAI3I,EAAK,UAAEizC,UAAUC,KCXzBC,GAAa7xC,GAAoBkmC,EAAG,IAAKlmC,EAAQ8xC,eAF3C,CAAI9xC,GAAqBkmC,EAAG,cAAc+J,GAAUjwC,EAAQuxB,iBAAiB0e,GAAUjwC,EAAQ+xC,+BAEnCC,CAAOhyC,QAAWlF,+EAAwFm1C,GAAUjwC,EAAQ2xC,uBACpMM,GAJgBjyC,GAAqBimC,EAAI,mCAAmCgK,GAAUjwC,EAAQkyC,4GAA4GjC,GAAUjwC,EAAQ+xC,2DAA2DF,GAAU7xC,WCJjSmyC,GAAe,y+hBCAfC,GAAe,u7oBCKfxrB,GAAwB,gCAAiC,cAAeurB,IACxEvrB,GAAwB,qBAAsB,cAAewrB,ICK7D,MAKMC,GAAW,CAChBhmB,IAAK,WACLmB,WAAmE,CAelEpwB,KAAM,CACLwC,KAAMrI,QAcP+6C,eAAgB,CACf1yC,KAAMrI,QAUPg7C,YAAa,CACZ3yC,KAAMmI,SAMP4pC,SAAU,CACT/xC,KAAMrI,OACNk1B,aAAa,GAMdmlB,QAAS,CACRhyC,KAAMrJ,OACNk2B,aAAa,GAMd+lB,QAAS,CACR5yC,KAAMmI,UAGR2lB,OAAQ,IAyBN,MACG+kB,WAAazU,iBAEjB/P,QACA72B,KAAK43C,WAAaD,GAAc,sBAGtBlnB,sBACV,OAAOwqB,GAGG1iC,oBACV,OAAOm5B,GAGG/M,sBACV,OAAOkW,GAGG3e,oBACV,MD5Ha,iXCgIbl8B,KAAKs7C,0BACC7E,GAAgB,iDAItB,IAAK9mC,OAAOmqB,SACX,OAEoB5f,SAASoS,KAAKI,cAAa,gCAE/CV,GAAiB,yCAA2C,CAAE,uBAAwB,gCAKvF,IAAKrc,OAAOmqB,SACX,OAED,MAAM5J,EAAehW,SAASoS,KAAKI,cAAa,+BAC5CwD,GACHhW,SAASoS,KAAKoE,YAAYR,6BAK3B,MAAMlqB,EAAOhG,KAAKgG,KAClB,IAAKA,EAEJ,OAAO2Z,QAAQC,KAAK,iCAAkC5f,MAEvD,IAAIu7C,ELhJe,EAAIv1C,EAAMq0C,EAjBJ,eAkB1B,MAAM/yC,EAAM8yC,GAAQp0C,EAAMq0C,GAC1B,OAAOH,GAAStpC,IAAItJ,IK8IJk0C,CAAgBx1C,GAK/B,OAJKu1C,IACJA,OL7Ic90C,OAAUT,EAAMq0C,EAtBN,eAuB1B,MAAM/yC,EAAM8yC,GAAQp0C,EAAMq0C,GAErBF,GAAuBhqC,IAAIkqC,IAC/BF,GAAuBlqC,IAAIoqC,EAAYpvC,QAAQH,QA3B1B,mBA8BtB,MAAMywC,QAAiBpB,GAAuBvpC,IAAIypC,GAElD,MAhCsB,mBAgClBkB,EACIA,EAGDrB,GAAStpC,IAAItJ,IKgIDm0C,CAAYz1C,IA5JT,mBA+JjBu1C,GACHv7C,KAAKo7C,SAAU,EAERz7B,QAAQC,KAAI,4IAA6I5Z,EAAK+qB,QAAQ,cAAe,8FAGxLwqB,GAMLv7C,KAAKu6C,SAAWgB,EAAShB,cACzBv6C,KAAKw6C,QAAUe,EAASf,WANvBx6C,KAAKo7C,SAAU,EAERz7B,QAAQC,KAAI,uDAAwD5f,KAAKgG,SAO9E00C,qBACH,OAAO16C,KAAKm7C,aAAen7C,KAAK26C,mBAG7BA,yBACH,OAAI36C,KAAKk7C,eACDl7C,KAAKk7C,eAGNl7C,KAAK43C,WAAWN,QAAQt3C,KAAKw6C,eAAY92C,EAG7Co3C,UACH,OAAO/G,KAAW,MAAQ,yBAI1B/zB,YAAU,KACThgB,KAAK2F,YAAY+1C,sBACf,IAILL,GAAK17C,aAELg8C,GAAeN,GCnNf,MAAilBO,GAAuB,CAACt0C,IAAK,uBAAwBkwC,YAAa,eAAqBqE,GAA0B,CAACv0C,IAAK,0BAA2BkwC,YAAa,mBAAyBsE,GAA0B,CAACx0C,IAAK,0BAA2BkwC,YAAa,mBAAyBuE,GAA8B,CAACz0C,IAAK,8BAA+BkwC,YAAa,cAAoXwE,GAAS,CAAC10C,IAAK,SAAUkwC,YAAa,UAA4gJyE,GAA0B,CAAC30C,IAAK,0BAA2BkwC,YAAa,UAAg/E0E,GAAoB,CAAC50C,IAAK,oBAAqBkwC,YAAa,iBAAuB2E,GAAsB,CAAC70C,IAAK,sBAAuBkwC,YAAa,kBAAwB4E,GAA0B,CAAC90C,IAAK,0BAA2BkwC,YAAa,qBAA2B6E,GAAsB,CAAC/0C,IAAK,sBAAuBkwC,YAAa,gCCKtuRhoB,GAAwB,gCAAiC,cAAeurB,IACxEvrB,GAAwB,qBAAsB,cAAewrB,ICU7D,IAAIsB,IAA0B,EAC1BC,GAAe,KAKnB,MAAMC,GAAW,CAChBvnB,IAAK,aACLmB,WAAqE,CAYpEqmB,OAAQ,CACPj0C,KAAMowC,GACNxkB,aAAcwkB,GAAaP,SAa5Bna,SAAU,CACT11B,KAAMmI,SAiBPooC,KAAM,CACLvwC,KAAMrI,QAUPu8C,QAAS,CACRl0C,KAAMmI,SAcPgsC,QAAS,CACRn0C,KAAMmI,SAOPisC,OAAQ,CACPp0C,KAAMmI,SAOPqoC,SAAU,CACTxwC,KAAMmI,SAOPksC,QAAS,CACRr0C,KAAMmI,SAOPmsC,QAAS,CACRt0C,KAAMmI,SAUPosC,UAAW,CACVv0C,KAAMrI,OACNi0B,kBAAc1wB,GAUfs5C,eAAgB,CACfx0C,KAAMrI,OACNi0B,aAAc,IAOf6oB,aAAc,CACbz0C,KAAMmI,SAGPusC,cAAe,CACd10C,KAAMrJ,QAOPg+C,UAAW,CACV30C,KAAMrI,OACNi0B,aAAc,IACdiB,aAAa,IAGfc,cAAc,EACdV,MAAgE,CAU/D3I,QAAW,CACVtkB,KAAMotB,OAGRU,OAAiE,CAYhE8mB,MAAO,KAqCN,MACGC,WAAezW,GACTnW,sBACV,OAAO+rB,GAGGtgB,oBACV,MDjPa,87MCoPH3jB,oBACV,OAAOm5B,GAGG/M,sBACV,OAAOwU,iBAIPtiB,QAEA72B,KAAKs9C,YAAW,KACXf,KACHA,GAAaK,QAAS,IAInBN,KACJpiC,SAASyM,iBAAiB,UAAW3mB,KAAKs9C,aAE1ChB,IAA0B,GAG3Bt8C,KAAK43C,WAAaD,GAAc,sBAGjCvT,oBACC,MAAMmZ,EAAc/wB,GAAW,eAC3BxsB,KAAK28C,UAAYY,GACpB59B,QAAQC,KAAI,+IAGb5f,KAAKg5C,UAAYh5C,KAAK2gC,WAAWthC,OACjCW,KAAK88C,UAAY98C,KAAK+4C,KAGvBO,SAASlL,GACRA,EAAMoP,SAAW,SACjB,MAAMD,EAAc/wB,GAAW,eAC3B+wB,GACHA,EAAYE,kBAAkBz9C,MAIhCu5C,aAAanL,GACZA,EAAMoP,SAAW,SACjBx9C,KAAK48C,QAAS,EACdL,GAAev8C,KAGhBw5C,WAAWpL,GACVA,EAAMoP,SAAW,SAGlB/D,WAAWrL,IACN8D,GAAQ9D,IAAU2D,GAAQ3D,MAC7BpuC,KAAK48C,QAAS,GAIhBlD,SAAStL,IACJ8D,GAAQ9D,IAAU2D,GAAQ3D,MAC7BpuC,KAAK48C,QAAS,GAIhBxD,YAAYsE,GACX19C,KAAK48C,QAAS,EACd58C,KAAK68C,SAAU,EAGhBxD,aACCr5C,KAAK68C,SAAU,EAGZvvB,UACH,OAAOymB,KAAW,WAAQrwC,EAGvBu2C,oBACH,OAAOj6C,KAAKy8C,SAAW7D,GAAaP,SAAWr4C,KAAKy8C,SAAW7D,GAAaJ,YAGzEoB,cACH,MAAO,CACNC,aAAgB75C,KAAK29C,gBAAkB39C,KAAK29C,eAAe9D,aAC3DC,aAAgB95C,KAAK29C,gBAAkB39C,KAAK29C,eAAe7D,aAC3DE,MAASh6C,KAAK29C,gBAAkB39C,KAAK29C,eAAe3D,OAIlDD,oBACH,IAAK/5C,KAAKg9C,eACT,OAAIh9C,KAAK+8C,UACD/8C,KAAK+8C,eAGb,EAGD,MAAMa,EAAM59C,KAAKg9C,eAAe3nC,MAAM,KAChCwoC,EAAQhG,GAAc73C,MAC5B,IAAIgC,EAAS,GAWb,OATA47C,EAAI31C,SAAO,CAAE61C,EAAW78B,KACvB,MAAM5Q,EAAUwtC,EAAMnxB,cAAa,QAASoxB,OAC5C97C,GAAM,GAAOqO,EAAUA,EAAQgc,YAAc,KAEzCpL,EAAQ28B,EAAIv+C,OAAS,IACxB2C,GAAU,QAILA,4BAIP,MAAO,CACNs2C,SAAYuD,GACZtD,SAAYuD,GACZrD,WAAcsD,IAIZ7C,qBACH,OAAOl5C,KAAK43C,WAAWN,QAAQ+F,GAAOU,mBAAmB/9C,KAAKy8C,SAG3D9C,oBACH,MAAMqE,EAAWh+C,KAAK8iC,aAAa,YAEnC,OAAIkb,IAIGh+C,KAAKi9C,aAAe,KAAOj9C,KAAKm9C,yCAIjClyC,QAAQ6P,IAAI,CACjB6gC,GAAKh8C,SACL82C,GAAgB,yBAKnB4G,GAAO19C,aAEPs+C,GAAeZ,GC1Yf,MAAMa,GAAW,CAChBjpB,IAAK,aACLmB,WAAsE,CAQrE+nB,SAAU,CACT31C,KAAMmI,SAaPooC,KAAM,CACLvwC,KAAMrI,OACNi0B,aAAc,MAUfntB,MAAO,CACNuB,KAAMrI,SAIRm2B,OAAiE,IAgB/D,MACG8nB,WAAexX,GACTnW,sBACV,OAAOytB,IAITE,GAAOz+C,aAEP0+C,GAAeD,GClEf,MAAME,GAAc,CACnBC,KAAM,OACNC,QAAS,UACTC,QAAS,UACTj/C,MAAO,QACPk/C,YAAa,qBAGRC,WAAmBxrB,kBACTlsB,GACd,QAASq3C,GAAYr3C,IAIvB03C,GAAWhG,qBAAqB2F,QAEhCM,GAAeD,GCnBf,MACME,GAAW,qIAEjBvE,GAHa,kBAGM,UAAEuE,KCHrB,MACMC,GAAW,iOAEjBxE,GAHa,UAGM,UAAEwE,SCCrBC,GAFgBn2C,GAAqBimC,EAAI,0CAA0CjmC,EAAQ0wC,mBAAmBT,GAAUjwC,EAAQo2C,wDAAwDnG,GAAUjwC,EAAQuxB,6FCC1M3K,GAAwB,gCAAiC,cAAeurB,IACxEvrB,GAAwB,qBAAsB,cAAewrB,ICM7D,MAAMiE,GAAW,CAChBhqB,IAAK,YACLmB,WAAqE,CAWpE8oB,SAAU,CACT12C,KAAMmI,SAYPjM,KAAM,CACL8D,KAAMmI,SAYPwuC,UAAW,CACV32C,KAAMmI,SAYPquC,IAAO,CACNx2C,KAAMrI,SAGRs1B,MAA+D,CAS9D3I,QAAW,CACVtkB,KAAMotB,QA8BN,MACGwpB,WAAcxY,GACRnW,sBACV,OAAOwuB,GAGG1mC,oBACV,OAAOm5B,GAGG/M,sBACV,OAAOoa,GAGG7iB,oBACV,MDpHa,y9BCuHdod,WACC,MAAM+F,EAAiBnlC,SAASolC,eAAet/C,KAAKg/C,KAChDK,GACHA,EAAera,SAKlBoa,GAAMz/C,aAEN4/C,GAAeH,GC7Hf,MAAMI,GAAS,GAgFTC,GAAK,CACVC,QAAW,MACXC,UAAa,MACbC,IAAO,MACPC,QAAW,WAmENC,GAAM,IAhEM,MACjB,MAAMC,EAAYxyC,UAAUwyC,UAE5B,IAAIC,EACHC,EAMD,GAHAD,EAAS,6EACTC,EAAWF,EAAU1uB,MAAM2uB,GAEvBC,EAAU,CACb,MAAMC,EAAa,mBAEnB,GAAID,EAAS,GAAG5uB,MAAM6uB,GAGrB,OAFAD,EAAS,GAAKA,EAAS,GAAGlvB,QAAO,KAAO,KAEhC,CACP/qB,KAAQy5C,GAAGG,IACXO,WAAcF,EAAS,IAIzB,GAAIA,EAAS,GAAG5uB,MAAK,WAEpB,OADA4uB,EAAS,GAAKA,EAAS,GAAGlvB,QAAO,MAAQ,IACjC,CACP/qB,KAAQy5C,GAAGI,QACXM,WAAcF,EAAS,IAQ1B,GAFAD,EAAS,sDACTC,EAAWF,EAAU1uB,MAAM2uB,GACvBC,EACH,MAAQ,CACPj6C,KAAQy5C,GAAGI,QACXM,WAAkC,IAApBF,EAAS5gD,OAAe4gD,EAAS,GAAK,KA4B/CG,IAvBW,MAClB,MAAMC,EAAY9yC,UAAU+yC,SAC5B,IAAiC,IAA7BD,EAAU5+B,QAAQ,OAAe,CACpC,MAAM8+B,EAAQ,yBACRC,EAAWjzC,UAAUwyC,UAAU1uB,MAAMkvB,GAE3C,MAAO,CACNv6C,KAAQy5C,GAAGC,QACXS,WAAcK,EAAS,IAIzB,OAAiC,IAA7BH,EAAU5+B,QAAQ,OACd,CACNzb,KAAQy5C,GAAGE,UACXQ,WAAc,IAIT,MAIkBM,GAGpBC,GAAM,KACPlB,GAAOmB,KAIXnB,GAAOmB,GAAKb,MAAY,GACxBN,GAAOmB,GAAGC,GAAKnB,GACfD,GAAOmB,GAAGE,QAAUrB,GAAOmB,GAAGR,WAAaW,WAAWtB,GAAOmB,GAAGR,aAAc,EAE1EX,GAAOmB,GAAG36C,MACb7G,OAAOD,KAAKugD,IAAIx3C,SAAQjC,IACnBy5C,GAAGz5C,KAAUw5C,GAAOmB,GAAG36C,OAC1Bw5C,GAAOmB,GAAG36C,EAAKooB,gBAAiB,QAkL9B2yB,GAAU,CACfC,kBAAqB,KACrBC,KAAQ,KACRC,QAAW,KACXC,OAAU,KACVC,OAAU,KACVvB,QAAW,MA0CNwB,GAAW,KAChB,MAAMC,EAzBW,MACjB,MAAMC,EAAah0C,UAAUwyC,UAAU3xB,cASjCozB,EAJK,qBAIgB3wB,KAAK0wB,IALnB,kCAMD1wB,KAAK0wB,IARJ,uBASD1wB,KAAK0wB,IARN,kBASD1wB,KAAK0wB,IACVA,EAAW9/B,QAAQ,cAAgB,GAP1B,gCAOwCoP,KAAK0wB,IAAgB,GAErEE,EAAO,CACZn0C,QAASk0C,EAAa,IAAM,GAC5BX,QAASW,EAAa,IAAM,KAG7B,OADAC,EAAKA,EAAKn0C,UAAW,EACdm0C,GAIUC,GACXH,EAAah0C,UAAUwyC,UACvB4B,EAAahyC,OAAOpC,UAG1B,IAAIq0C,EACAC,EACAC,EAGJ,GAAIR,EAASS,QACZH,EAAU,SACNL,EAAWlwB,MAAK,wBACnBywB,EAAWhB,WAAWtjB,OAAOwZ,IAC7B6K,EAAU,CACT77C,KAAM+6C,GAAQG,QACdf,WAAU,GAAK2B,IACfjB,QAASiB,EACTC,SAAS,EACTC,OAAQJ,EAAWK,KAAKV,KAIzBM,EAAU,CACTG,OAAQJ,EAAWK,KAAKV,GACxBQ,SAAS,EACTlB,SAAS,QAGL,GAAIS,EAASY,OAAQ,CAE3B,MAAMC,EAAsBZ,EAAWnzB,cAAciD,MAAK,qBAC1D,IAAI+wB,EACAD,IACHC,EAAgBD,EAAoB,IAErCP,EAAU,SACV,MAAMS,EAAed,EAAWlwB,MAAK,kCAC/BixB,EAAgBf,EAAWlwB,MAAK,qBAChCkxB,EAAgBhB,EAAWlwB,MAAK,kCAEtC,GAAIgxB,GAAgBC,GAAiBC,EAAe,CACnD,IAAIC,EACHC,EACAC,EAEGL,GACHG,EAAQzB,GAAQI,OAChBuB,EAAUd,EAAWK,KAAKV,GAC1BkB,EAAW3B,WAAWuB,EAAa,KACzBC,GACVE,EAAQzB,GAAQG,QAChBwB,GAAU,EACVD,EAAW3B,WAAWwB,EAAc,KAC1BC,IACVC,EAAQzB,GAAQlB,QAChB6C,EAAUd,EAAWK,KAAKV,GAC1BkB,EAAW3B,WAAWyB,EAAc,KAGrCV,EAAU,CACT77C,KAAMw8C,EACNR,OAAQU,EACRvC,WAAU,GAAKsC,IACf5B,QAAS4B,EACTP,QAAQ,gBACRE,OAEK,CACN,MAAMO,EAAI,0CACJC,EAAcjB,EAAWkB,WAC/B,GAAIF,EAAKV,KAAKV,GAAa,CAC1B,MAAMuB,EAASH,EAAK9xB,KAAK0wB,GACzBO,EAAWhB,WAAWgC,EAAO,IAC7BjB,EAAU,CACT77C,KAAM+6C,GAAQK,OACdjB,WAAU,GAAK2B,IACfiB,YAAY,EACZC,SAAS,EACTnC,QAASiB,EACTE,OAAQJ,EAAWK,KAAKV,GACxBW,QAAQ,gBACRE,EACAa,UAAyB,cAAdH,EAAO,SAcnBjB,GAZQ,mBAAqBI,KAAKV,IAAU,QAAeU,KAAKV,IAAU,QAAgBU,KAAKV,KAAiC,IAAhBqB,IAAwC,IAAhBA,EAY9H,CACTZ,OAAQJ,EAAWK,KAAKV,GACxBW,QAAQ,gBACRE,EACAvB,SAAS,GAdA,CACT76C,KAAM+6C,GAAQK,OACdP,SAAS,EACTkC,WAAYH,EACZI,SAAUJ,EACVZ,OAAQJ,EAAWK,KAAKV,GACxBW,QAAQ,gBACRE,SAWOd,EAAS4B,MAAQ5B,EAAS6B,SACpCrB,EAAWhB,WAAWQ,EAAST,SAE/BgB,EAAU,CACT77C,KAAM+6C,GAAQC,kBACdb,WAAU,GAAK2B,IACfjB,QAASiB,EACToB,MAAM,EACNlB,QAAQ,IAECV,EAAS8B,MACnBtB,EAAWhB,WAAWQ,EAAST,SAC/BgB,EAAU,CACT77C,KAAM+6C,GAAQE,KACdd,WAAU,GAAK2B,IACfjB,QAASiB,EACTsB,MAAM,IAGPvB,EAAU,CACT77C,KAAM,GACNm6C,WAAY,GACZU,SAAS,EACTmB,QAAQ,GAIV,OAAOH,GAGFwB,GAAW,KAChB7D,GAAOlyC,QAAU+zC,KACjB7B,GAAOlyC,QAAQg2C,QAAUvC,GAErBvB,GAAOlyC,QAAQtH,MAClB7G,OAAOD,KAAK6hD,IAAS94C,SAAQ/E,IACxB69C,GAAQ79C,KAAOs8C,GAAOlyC,QAAQtH,OACjCw5C,GAAOlyC,QAAQpK,EAAEkrB,gBAAiB,OAkDhCm1B,GAAW,KACZ/D,GAAOgE,UAINhE,GAAOlyC,SACX+1C,KAGD7D,GAAOgE,QAAU,GACjBhE,GAAOgE,QAAQC,SAAY,iBAAkB9zC,QAAYpC,UAAUm2C,eAAiB,GAAO/zC,OAAOg0C,eAAiBzpC,oBAAoBvK,OAAOg0C,iBAoEzIC,GAAa,CAClBC,OAAU,SACVC,MAAS,QACTC,QAAW,UACXC,MAAS,SAGJC,GAAS,KACd,MAAM1C,EAAah0C,UAAUwyC,UAC7B,GAAIP,GAAOmB,GAAG36C,OAASw5C,GAAOmB,GAAGC,GAAGhB,IACnC,MAAM,QAASqC,KAAKV,GAGrB,GA7EK/B,GAAOgE,SACXD,KAGQ/D,GAAOgE,QAAQC,MAyEJ,CACnB,GAAIjE,GAAOmB,GAAGuD,SAAW1E,GAAOmB,GAAGE,SAAW,EAC7C,OAAO,EAGR,GAAIrB,GAAOlyC,QAAQ62C,QAAU3E,GAAOmB,GAAGyD,SAAW5E,GAAOmB,GAAGE,SAAW,IAMtE,OAAM,yBAA2BoB,KAAKV,GAEvC,IAAI8C,EAAgB10C,OAAO20C,iBAAmB30C,OAAO20C,iBAAmB,EAQpE9E,GAAOmB,GAAGyD,SAAW5E,GAAOlyC,QAAQ40C,QAAWpB,WAAWtB,GAAOlyC,QAAQ80C,eAAiB,QAC7FiC,EAAgB,GAsBjB,OAjBiBthD,KAAKmZ,IAAIvM,OAAOlC,OAAOxB,MAAQo4C,EAAe10C,OAAOlC,OAAO0O,OAASkoC,IAAkB,IAoBzG,MAAME,EAAa,2BAA+BtC,KAAKV,GAIvD,OAAQ/B,GAAOlyC,QAAQ41C,OAAwC,IAAhC3B,EAAW9/B,QAAQ,UAAqB+9B,GAAOmB,GAAGyD,UAAYG,GAiBxFC,GAAU,KACfjB,KACA7C,KAEAlB,GAAOiF,OAAS,GAChBjF,GAAOiF,OAnBQ,MACf,MAAMC,EAAkBT,KAClBU,EAAgBnF,GAAOmB,GAAGuD,SAAW1E,GAAOmB,GAAGE,SAAW,EAE1D+D,EAAU,GAOhB,OANAA,EAAQC,UAAarF,GAAOgE,QAAQC,QAASkB,IAAkBD,GAC/DE,EAAQE,SAAYtF,GAAOmB,GAAGoE,gBAAkBvF,GAAOgE,QAAQC,OAAYiB,GAC3EE,EAAQI,WAAeJ,EAAQC,QAAWD,EAAQE,SAAUH,GAC5DC,EAAQK,MAAQL,EAAQI,SAAWJ,EAAQC,OAC3CD,EAAQM,WAAatB,GAEdgB,GAQSO,IACZ3F,GAAOiF,OAAOI,QAAUrF,GAAOiF,OAAOK,SACzCtF,GAAOlyC,QAAQ00C,QAAS,IAYpBoD,GAAS,KACT5F,GAAOiF,QACXD,KAGMhF,GAAOiF,OAAOO,SAWhBK,GAAO,KACP7F,GAAOiF,QACXD,KAGMhF,GAAOiF,OAAOK,OC5xBtB,IAAIQ,GAAgB,IAEpB,MAeMC,GAAa,CAAInX,EAAOoX,KAC7B,IAAI7jD,EACAC,EAEJ,GAAIwsC,EAAMplB,QAAS,CAClB,MAAMy6B,EAAQrV,EAAMplB,QAAQ,GAC5BrnB,EAAI8hD,EAAMp6B,QACVznB,EAAI6hD,EAAMn6B,aAEV3nB,EAAIysC,EAAM/kB,QACVznB,EAAIwsC,EAAM9kB,QAGX,MAlBkB,EAAI3nB,EAAGC,EAAG4jD,IACrB7jD,GAAK6jD,EAAKxsC,MAAQrX,GAAK6jD,EAAKvsC,OAC/BrX,GAAK4jD,EAAKC,KAAO7jD,GAAK4jD,EAAKE,OAgBxBC,CAAchkD,EAAGC,EAAG4jD,IAGtBI,GAAuBv1B,IAC5B,MAAM/M,EAAS+M,EAAG+B,eAAkB/B,EAAGw1B,aAAex1B,EAAGw1B,cAAc1N,KAEvE,OAAK70B,EAAOwiC,QAAUxiC,EAAOwT,cAAiBxT,IAAWpJ,SAAS0O,gBAC1DtF,EAGDsiC,GAAqBtiC,IAIvByiC,GAAa,KAClBT,IAAiB,EACVA,ICzCFU,GAAUp9C,GAAqBimC,EAAI,8BAA8BjmC,EAAQq9C,kEAAkEpN,GAAUjwC,EAAQs9C,4CAA4CrN,GAAUjwC,EAAQu9C,yCAAyCtN,GAAUjwC,EAAQs9C,6CAA6CrN,GAAUjwC,EAAQw9C,0BAA4Bx9C,EAAQy9C,iBAAgC3iD,EAAlB4iD,GAAO19C,0EAC9Y09C,GAAU19C,GAAqBimC,EAAI,GAAIjmC,EAAQ29C,OAAOlnD,OAASmnD,GAAO59C,GAAW69C,GAAO79C,KACxF49C,GAAU59C,GAAqBimC,EAAI,+CACnC4X,GAAU79C,GAAqBimC,EAAI,kHAAkHgK,GAAUjwC,EAAQ89C,iGAAiG99C,EAAQ+9C,wCAChRC,GAAUh+C,GAAqBimC,EAAI,4GAA4GwC,GAASzoC,EAAQszB,OAAO2qB,sDAAsDj+C,EAAQk+C,6DAA6DzV,GAASzoC,EAAQszB,OAAO6qB,mBAAoBn+C,EAAQo+C,eAAiBC,GAAOr+C,QAAWlF,2CAAoD2tC,GAASzoC,EAAQszB,OAAOgM,gCAAiCt/B,EAAQs+C,eAAiBC,GAAOv+C,QAAWlF,gDAAyDkF,EAAQw+C,+BACllBH,GAAUr+C,GAAqBimC,EAAI,GAAIjmC,EAAQ29C,OAAOlnD,OAASgoD,GAAOz+C,GAAW0+C,GAAO1+C,KACxFy+C,GAAUz+C,GAAqBimC,EAAI,kHACnCyY,GAAU1+C,GAAqBimC,EAAI,6DAA6DgK,GAAUjwC,EAAQ89C,qBAClHS,GAAUv+C,GAAqBimC,EAAI,GAAIjmC,EAAQ2+C,OAAOloD,OAASmoD,GAAQ5+C,QAAWlF,IAClF8jD,GAAW5+C,GAAqBimC,EAAI,8FAE1C4Y,GAZgB7+C,GAAqBimC,EAAI,GAAIjmC,EAAQ8+C,SAAW1B,GAAOp9C,GAAWg+C,GAAOh+C,SCQzF++C,GAZqB50C,IACpB,GAAsB,SAAlBA,EAAKs3B,SACR,OAAO,EAGR,MAAMmb,EAAOzyC,EAAK60C,wBAElB,OAAQ70C,EAAK80C,aAAe,GAAK90C,EAAK+0C,cAAgB,GACxB,WAA1B/0C,EAAKoZ,MAAM7V,YACK,IAAfkvC,EAAKv5C,OAAe,GCT1B,MAAM87C,GAAU,gBACVC,GAAU,0CAiBhBC,GAfwBl1C,IACvB,GAAIA,EAAKmrB,SACR,OAAO,EAGR,MAAMgqB,EAAWn1C,EAAK+vB,aAAa,YACnC,OAAIolB,MAAAA,EACIxlB,SAASwlB,IAAa,EAGvBF,GAAW/F,KAAKlvC,EAAKs3B,WACvB0d,GAAW9F,KAAKlvC,EAAKs3B,WACtBt3B,EAAKo1C,MCXV,MAAMC,GAA2BhhB,IAC3BA,GAAaugB,GAAavgB,GACvB,KAGDihB,GAAqBjhB,GAAW,GAGlCkhB,GAA0BlhB,IAC1BA,GAAaugB,GAAavgB,GACvB,KAGDihB,GAAqBjhB,GAAW,GAGlCihB,GAAoB,CAAIjhB,EAAWmhB,KACxC,IAAIjuC,EAQAkuC,EAPJ,GAAIphB,EAAU1S,eAAiB0S,EAAU1S,gBAAiB,CACzD,MAAM+zB,EAAmBrhB,EAAU1S,gBACnCpa,EAAQiuC,EAAUE,EAAiB,GAAKA,EAAiBA,EAAiBppD,OAAS,QAEnFib,EAAQiuC,EAAUnhB,EAAUzQ,WAAayQ,EAAUshB,eAK7CpuC,GAAO,CACb,MAAMquC,EAAgBruC,EAGtB,GADAA,EAAQA,aAAiBssB,GAAatsB,EAAMuqB,iBAAmBvqB,GAC1DA,EACJ,OAAO,KAGR,GAAuB,IAAnBA,EAAMiuB,WAAmBof,GAAartC,GAAQ,CACjD,GAAI2tC,GAAgB3tC,GACnB,OAAQA,GAAgC,mBAAhBA,EAAM0qB,MAAwB1qB,EAAQ,KAI/D,GADAkuC,EAAsBH,GAAqB/tC,EAAOiuC,GAC9CC,EACH,OAAQA,GAA4D,mBAA9BA,EAAoBxjB,MAAwBwjB,EAAsB,KAI1GluC,EAAQiuC,EAAUI,EAAcphB,YAAcohB,EAAcvf,gBAG7D,OAAO,MChDFwf,GAAUhgD,GAAqBimC,EAAI,GAAIjmC,EAAQ29C,OAAOlnD,OAASwpD,GAAOjgD,GAAWkgD,GAAOlgD,KACxFigD,GAAUjgD,GAAqBimC,EAAI,kHACnCia,GAAUlgD,GAAqBimC,EAAI,6DAA6DgK,GAAUjwC,EAAQ89C,qBAClHqC,GAAUngD,GAAqBimC,EAAI,GAAIjmC,EAAQ2+C,OAAOloD,OAAS2pD,GAAOpgD,QAAWlF,IACjFslD,GAAUpgD,GAAqBimC,EAAI,8FAEzCoa,GAPgBrgD,GAAqBimC,EAAI,4GAA4GwC,GAASzoC,EAAQszB,OAAO2qB,sDAAsDj+C,EAAQk+C,6DAA6DzV,GAASzoC,EAAQszB,OAAO6qB,mBAAoBn+C,EAAQo+C,eAAiB4B,GAAOhgD,QAAWlF,2CAAoD2tC,GAASzoC,EAAQszB,OAAOgM,gCAAiCt/B,EAAQs+C,eAAiB6B,GAAOngD,QAAWlF,gDAAyDkF,EAAQw+C,+BCExlB,MAAM8B,GAAwB,CAM7BC,KAAM,OAONC,MAAO,QAOPC,IAAK,MAOLC,OAAQ,UAWN,MACGC,WAA6Bp2B,kBACnBlsB,GACd,QAASiiD,GAAsBjiD,IAIjCsiD,GAAqB5Q,qBAAqBuQ,QAE1CM,GAAeD,GC9Cf,MAAME,GAAwB,CAM7BC,OAAQ,SAORL,IAAK,MAOLC,OAAQ,SAORK,QAAS,WAWP,MACGC,WAA6Bz2B,kBACnBlsB,GACd,QAASwiD,GAAsBxiD,IAIjC2iD,GAAqBjR,qBAAqB8Q,QAE1CI,GAAeD,GChDf,MAAME,GAA0B,CAM/BJ,OAAQ,SAORP,KAAM,OAONC,MAAO,QAOPO,QAAS,WAWP,MACGI,WAA+B52B,kBACrBlsB,GACd,QAAS6iD,GAAwB7iD,IAInC8iD,GAAuBpR,qBAAqBmR,QAE5CE,GAAeD,GCnDf,IAAIE,GAAW,GAEf,MAAMC,GAAiBnd,IACjBkd,GAASn3C,SAASi6B,IACtBkd,GAASxnD,KAAKsqC,GAGS,IAApBkd,GAAS5qD,QACZ8qD,MAIIC,GAAoBrd,IACzBkd,GAAWA,GAAS1yC,QAAO8Y,GACnBA,IAAO0c,IAGVkd,GAAS5qD,QACbgrD,MAQIC,GAAmBlc,IACxB,GAAImE,GAASnE,GAAQ,CACpB,MAAMmc,EAAWN,GAASA,GAAS5qD,OAAS,GAE5CkrD,GAAYA,EAAS5D,UAIjBwD,GAAoB,KACzBjwC,SAASyM,iBAAiB,UAAW2jC,KAGhCD,GAAoB,KACzBnwC,SAAS0M,oBAAoB,UAAW0jC,KCtCzC,IAAIE,GAAiB,KACrB,MACMC,GAAiB,GAEjBC,GAAqBtc,IAC1Bqc,GAAexiD,SAAQ0iD,IACtBA,EAAQC,iBA8BJC,GAAezc,IACpB,MAAM0c,EAAiBL,GACjBM,EDhBC,IAAId,ICkBX,GAA4B,IAAxBc,EAAa1rD,QAAkB0rD,EAAaA,EAAa1rD,OAAS,GAAGymD,OAKzE,IAAK,IAAI1mD,EAAK0rD,EAAezrD,OAAS,GAAU,IAAND,EAAUA,IAAK,CACxD,MAAMurD,EAAUG,EAAe1rD,GAG/B,GAAIurD,EAAQK,OAASL,EAAQM,gBAAgB7c,GAC5C,OAGD,GAAImX,GAAcnX,EAAOuc,EAAQ/C,yBAChC,MAGD+C,EAAQhE,UAYJuE,GAAmBne,IARA,IAAG4d,EAS3BT,GAAend,GACf0d,GAAehoD,KAAKsqC,IAVO4d,EAYP5d,IAXT4d,EAAQvwB,WAAWzT,iBAAiB,SAAU+jC,IAAoB,GAa/C,IAA1BD,GAAeprD,SAhEnB6a,SAASuE,KAAKkI,iBAAiB,SAAU+jC,IAAoB,GAkB7DxwC,SAASyM,iBAAiB,YAAakkC,IAVvCL,GAAiBW,aAAW,KAC3BT,OAnBsB,OAiFlBU,GAAsBre,IAC3B,IAAIz+B,EAAQ,EAGZ,IAAK,IAAIlP,EAAIqrD,GAAehpC,QAAQsrB,GAAW3tC,EAAIqrD,GAAeprD,OAAQD,IACzEqrD,GAAerrD,GAAGunD,OAAM,GAAO,GAC/ByD,GAAkBK,GAAerrD,KAvBPurD,EAwBNF,GAAerrD,KAvBzBurD,EAAQvwB,WAAWxT,oBAAoB,SAAU8jC,IAwB3Dp8C,IAzBuB,IAAGq8C,EA6B3Bp5C,MAAMjD,GAAO+8C,OAAOpjD,SAAO,KAASwiD,GAAeljD,SAE9CkjD,GAAeprD,SAjFpB6a,SAASuE,KAAKmI,oBAAoB,SAAU8jC,IAAoB,GAkBhExwC,SAAS0M,oBAAoB,YAAaikC,IAR1CS,cAAcd,MCvBfh7B,GAAwB,gCAAiC,cAAeurB,IACxEvrB,GAAwB,qBAAsB,cAAewrB,ICS7D,MAKMuQ,GAAW,CAChBt2B,IAAK,cACLmB,WAAsE,CAQrEo1B,aAAc,CACbhjD,KAAMrI,QAYPumD,WAAY,CACXl+C,KAAMrI,QAkBPsrD,cAAe,CACdjjD,KAAMghD,GACNp1B,aAAco1B,GAAqBJ,OAkBpCsC,gBAAiB,CAChBljD,KAAMwhD,GACN51B,aAAc41B,GAAuBN,QAkBtCiC,cAAe,CACdnjD,KAAMqhD,GACNz1B,aAAcy1B,GAAqBH,QAYpCsB,MAAO,CACNxiD,KAAMmI,SAUPi7C,QAAS,CACRpjD,KAAMmI,SAWPk7C,mBAAoB,CACnBrjD,KAAMmI,SAQPm7C,gBAAiB,CAChBtjD,KAAM21B,GACN/J,aAAc,EACdiB,aAAa,GAQd02B,gBAAiB,CAChBvjD,KAAM21B,GACN/J,aAAc,EACdiB,aAAa,GAQd22B,oBAAqB,CACpBxjD,KAAMghD,GACNp1B,aAAco1B,GAAqBJ,OAQpCjsB,OAAQ,CAAE30B,KAAMmI,SAEhBs7C,kBAAmB,CAAEzjD,KAAM21B,IAK3B+tB,qBAAsB,CACrB1jD,KAAMmI,UAGRwlB,cAAc,EACdV,MAAiE,CAOhE3I,QAAW,CACVtkB,KAAMgsB,aAUP+xB,OAAQ,CACP/9C,KAAMgsB,aAUP+yB,OAAQ,CACP/+C,KAAMgsB,cAGR8B,OAAkE,CAOjE61B,WAAY,GAQZC,UAAW,GASXC,YAAa,CACZC,WAAY,CAAE9jD,KAAMmI,UASrB47C,WAAY,KAuCX,MACGC,WAAgB5lB,GACVnW,sBACV,OAAO86B,GAGGhzC,oBACV,OAAOm5B,GAGGxV,oBACV,MD9Sa,4yFCiTHyI,sBACV,OAAOskB,GAGR7B,iBACC,MAAMqF,EAAiBrE,GAAyBpoD,KAAK0sD,YAEjDD,GACHA,EAAeznB,QAIjB8hB,gBACC,MAAM6F,EAAgBrE,GAAwBtoD,KAAK0sD,YAE/CC,GACHA,EAAc3nB,QAIhBimB,gBAAgB7c,GACf,MAAM/nB,EAAS+nB,EAAM/nB,OACrB,OAAOA,IAAWrmB,KAAK4sD,SAAYvmC,EAAOwe,gBAAkBxe,EAAOwe,mBAAqB7kC,KAAK4sD,QAQ9F9G,OAAO+G,GACDA,IAAU7sD,KAAKm9B,SAIpBn9B,KAAK4sD,QAAUC,EACf7sD,KAAK8sD,0BZ1VgB,MACtB,IAAIz8C,EAAU6J,SAAS6yC,mBAEhB18C,EAAQ+pB,YAAc/pB,EAAQ+pB,WAAW2yB,eAC/C18C,EAAUA,EAAQ+pB,WAAW2yB,cAG9B,OAAQ18C,GAAoC,mBAAlBA,EAAQ20B,MAAwB30B,EAAU,MYmVlC28C,GACjChtD,KAAKmsB,MAAM8gC,OAASlH,KAEpB/lD,KAAKilC,UAAU,aAAc,IAC7BjlC,KAAK4qD,aACL5qD,KAAKktD,oBAELhC,GAAiBlrD,MAEjBA,KAAKm9B,QAAS,EACdn9B,KAAKilC,UAAU,YAAa,KAO7B0hB,MAAM2F,GAAa,EAAOa,GAAuB,EAAOC,GAAsB,GACxEptD,KAAKm9B,SAIVn9B,KAAKilC,UAAU,cAAe,YAC7BqnB,IACE,GAGHtsD,KAAKm9B,QAAS,EAETgwB,GACJ/B,GAAoBprD,MAGhBotD,GACJptD,KAAKqtD,aAGNrtD,KAAKstD,OACLttD,KAAKilC,UAAU,aAAc,KAG1BsoB,qBACH,IAAIl9C,EAAU6J,SAAS6yC,mBAEhB18C,EAAQ+pB,YAAc/pB,EAAQ+pB,WAAW2yB,eAC/C18C,EAAUA,EAAQ+pB,WAAW2yB,cAG9B,OAAQ18C,GAAoC,mBAAlBA,EAAQ20B,MAAwB30B,EAAU,KAGrE68C,oBACC,GAAIltD,KAAKksD,qBACR,OAGD,MAAM77C,EAAUrQ,KAAK6lD,cAAcvG,eAAet/C,KAAKwrD,eAAiBtxC,SAASolC,eAAet/C,KAAKwrD,eAAiBpD,GAAyBpoD,KAAK0sD,YAEhJr8C,GACHA,EAAQ20B,QAIVqoB,aACMrtD,KAAK8sD,4BAIV9sD,KAAK8sD,0BAA0B9nB,QAC/BhlC,KAAK8sD,0BAA4B,MAGlCU,uBAAuBC,EAAWC,GACjC,MAEMC,EAAS,CACdvE,MAASsE,EAAWz0C,MACpBkwC,KAAQuE,EAAW10C,KACnBqwC,IAAOqE,EAAWjI,IAClB6D,OAAUoE,EAAWhI,QAGhBkI,EAAoBhI,GAAqB5lD,KAAK4sD,SACpD,IAAIiB,GAAkB,EAClBC,GAAe,EAEnB,GAAIF,EAAkB9H,OAAQ,CAC7B,MAAMiI,EAAcH,EAAkBlB,WAAW9E,wBACjDiG,EAAkBH,EAAWjI,IAAOsI,EAAYtI,IAAMsI,EAAY5xC,OAClE2xC,EAAgBJ,EAAWjI,IAAMiI,EAAWvxC,OAAU4xC,EAAYtI,IAGnE,OAAQkI,EAAOF,GAAa,GAAME,EAAOF,GAnBvB,GAmBgDG,EAAkBI,aAAiBH,GAAmBC,EAGzHlD,aACC,MAAMqD,EAAcjuD,KAAKiuD,YACnBP,EAAa1tD,KAAK4sD,QAAQhF,wBAC1B6F,EAAYztD,KAAKkuD,cAAcR,EAAYO,GAC3CE,EAAYnuD,KAAK0rD,kBAAoB1B,GAAuBL,QAElE,OAAI3pD,KAAKouD,2BACDpuD,KAAK2mD,QAGT3mD,KAAKquD,eAAkBruD,KAAKquD,cAAcr1C,OAASy0C,EAAUz0C,MAAUhZ,KAAKquD,cAAc5I,MAAQgI,EAAUhI,KAAQ0I,GACvHnuD,KAAKmsB,MAAMxU,QAAU,oBACrB3X,KAAKmsB,MAAMlgB,MAAQjM,KAAKsuD,UAIzBtuD,KAAKquD,cAAgBZ,EAErBztD,KAAKgsD,oBAAsByB,EAAUhC,cACrCzrD,KAAK8rD,gBAAkB2B,EAAUc,OACjCvuD,KAAK+rD,gBAAkB0B,EAAUe,OAEjCxuD,KAAKmsB,MAAMnT,KAAI,GAAMhZ,KAAKyuD,UAC1BzuD,KAAKmsB,MAAMs5B,IAAG,GAAMzlD,KAAK0uD,SACzB1uD,KAAKmsB,MAAMxU,QAAU,oBAEjBw2C,GAAanuD,KAAKsuD,SACrBtuD,KAAKmsB,MAAMlgB,MAAQjM,KAAKsuD,UAI1BhB,OACCttD,KAAKmsB,MAAMxU,QAAU,OAGlBs2C,kBACH,IAAIhiD,EACHkQ,EACGqpC,EAAOxlD,KAAK4nD,wBAEhB,OAAI5nD,KAAKm9B,QACRlxB,EAAQu5C,EAAKv5C,MACbkQ,EAASqpC,EAAKrpC,OAEP,OAAElQ,SAAOkQ,KAGjBnc,KAAKmsB,MAAM7V,WAAa,SACxBtW,KAAKmsB,MAAMxU,QAAU,eAErB6tC,EAAOxlD,KAAK4nD,wBAEZ37C,EAAQu5C,EAAKv5C,MACbkQ,EAASqpC,EAAKrpC,OAEdnc,KAAKmsB,MAAMxU,QAAU,OACrB3X,KAAKmsB,MAAM7V,WAAa,UAEjB,OAAErK,SAAOkQ,IAGbuwC,iBACH,OAAO1sD,KAAKo6B,WAAW1N,cAAc,wBAGlCiiC,eACH,OAAO3uD,KAAKo6B,WAAW1N,cAAc,oBAGtCwhC,cAAcU,EAAYX,GACzB,IAAIj1C,EAAO,EACPysC,EAAM,EACV,MAAMoG,EAAqB7rD,KAAK6rD,mBAE1BgD,EAAc30C,SAAS0O,gBAAgBimC,YACvCC,EAAe50C,SAAS0O,gBAAgBkmC,aAE9C,IAAIC,EAAYD,EAEZ7iD,EAAQ,GACRkQ,EAAS,GAEb,MAAMsvC,EAAgBzrD,KAAKgvD,uBAAuBJ,EAAYX,GAE9DjuD,KAAKouD,2BAA6BpuD,KAAKwtD,uBAAuB/B,EAAemD,GAE7E,MAAMK,EAAaxD,IAAkBjC,GAAqBH,KACtDoC,IAAkBjC,GAAqBF,OAEvCtpD,KAAK0rD,kBAAoB1B,GAAuBL,SAAWsF,GAC9DhB,EAAYhiD,MAAQ2iD,EAAW3iD,MAC/BA,EAAK,GAAM2iD,EAAW3iD,WACZjM,KAAK2rD,gBAAkB9B,GAAqBF,SAAYsF,IAClEhB,EAAY9xC,OAASyyC,EAAWzyC,OAChCA,EAAM,GAAMyyC,EAAWzyC,YAGxBnc,KAAKsuD,OAASriD,EACdjM,KAAKkvD,QAAU/yC,EAEf,MAAMgzC,EAAcnvD,KAAK4rD,QAAU,EAhhBnB,EAmhBhB,OAAQH,GACR,KAAKjC,GAAqBH,IACzBrwC,EAAOhZ,KAAKovD,gBAAgBR,EAAYX,GACxCxI,EAAM1iD,KAAKC,IAAI4rD,EAAWnJ,IAAMwI,EAAY9xC,OAASgzC,EAAa,GAE7DtD,IACJkD,EAAYH,EAAWnJ,IAAM0J,GAE9B,MACD,KAAK3F,GAAqBF,OACzBtwC,EAAOhZ,KAAKovD,gBAAgBR,EAAYX,GAEpCpC,EACHpG,EAAM1iD,KAAKC,IAAID,KAAKmZ,IAAI0yC,EAAWlJ,OAASyJ,EAAaL,EAAeb,EAAY9xC,QAAS,IAE7FspC,EAAMmJ,EAAWlJ,OAASyJ,EAC1BJ,EAAYD,EAAeF,EAAWlJ,OAASyJ,GAEhD,MACD,KAAK3F,GAAqBL,KACzBnwC,EAAOjW,KAAKC,IAAI4rD,EAAW51C,KAAOi1C,EAAYhiD,MAAQkjD,EAAa,GACnE1J,EAAMzlD,KAAKqvD,iBAAiBT,EAAYX,GACxC,MACD,KAAKzE,GAAqBJ,MAExBpwC,EADG6yC,EACI9oD,KAAKC,IAAID,KAAKmZ,IAAI0yC,EAAW51C,KAAO41C,EAAW3iD,MAAQkjD,EAAaN,EAAcZ,EAAYhiD,OAAQ,GAEtG2iD,EAAW51C,KAAO41C,EAAW3iD,MAAQkjD,EAG7C1J,EAAMzlD,KAAKqvD,iBAAiBT,EAAYX,GAKrCgB,EACChB,EAAYhiD,MAAQ4iD,GAAe71C,EAAO,EAC7CA,EAAO,EACGA,EAAOi1C,EAAYhiD,MAAQ4iD,IACrC71C,GAAQA,EAAOi1C,EAAYhiD,MAAQ4iD,GAGhCZ,EAAY9xC,OAAS2yC,GAAgBrJ,EAAM,EAC9CA,EAAM,EACIA,EAAMwI,EAAY9xC,OAAS2yC,IACrCrJ,GAAOA,EAAMwI,EAAY9xC,OAAS2yC,GAIpC,IAAIQ,EAAmBvsD,KAAKwsD,MAAMR,GAIlC,GAFkB/uD,KAAKumD,OAAOlnD,QAAUW,KAAK0mD,WAE9B,CACd,MAAM8I,EAAexvD,KAAKo6B,WAAW1N,cAAc,6BAC/C1sB,KAAKo6B,WAAW1N,cAAc,0BAE9B8iC,IACHF,EAAmBvsD,KAAKwsD,MAAMR,EAAYS,EAAa1H,eAIzD9nD,KAAKisD,kBAAoBqD,EAEzB,MAAMxD,EAAkBmD,EAAaL,EAAW51C,KAAO41C,EAAW3iD,MAAQ,EAAI+M,EAAOi1C,EAAYhiD,MAAQ,EAAI,EACvG8/C,EAAmBkD,EAAqF,EAAxEL,EAAWnJ,IAAMmJ,EAAWzyC,OAAS,EAAIspC,EAAMwI,EAAY9xC,OAAS,EAU1G,YARmBzY,IAAf1D,KAAKyuD,OAAuB1rD,KAAKgW,IAAI/Y,KAAKyuD,MAAQz1C,GAAQ,OAC7DhZ,KAAKyuD,MAAQ1rD,KAAKwsD,MAAMv2C,UAGPtV,IAAd1D,KAAK0uD,MAAsB3rD,KAAKgW,IAAI/Y,KAAK0uD,KAAOjJ,GAAO,OAC1DzlD,KAAK0uD,KAAO3rD,KAAKwsD,MAAM9J,IAGjB,CACN8I,OAAQxrD,KAAKwsD,MAAMzD,GACnB0C,OAAQzrD,KAAKwsD,MAAMxD,GACnBtG,IAAKzlD,KAAK0uD,KACV11C,KAAMhZ,KAAKyuD,oBACXhD,GAQFgE,kBAAkBZ,EAAaC,EAAcF,EAAYX,GACxD,OAAIW,EAAW51C,KAAOi1C,EAAYhiD,MAC1Bu9C,GAAqBL,KAGzB0F,EAAcD,EAAW31C,MAAQ21C,EAAW51C,KACxCwwC,GAAqBJ,MAGzB0F,EAAeF,EAAWlJ,OAASuI,EAAY9xC,OAC3CqtC,GAAqBF,OAGzBwF,EAAeF,EAAWlJ,OAASkJ,EAAWnJ,IAC1C+D,GAAqBH,SAD7B,EAKD2F,uBAAuBJ,EAAYX,GAClC,MAAMxC,EAAgBzrD,KAAKyrD,cAC3B,IAAIO,EAAsBP,EAE1B,MAAMoD,EAAc30C,SAAS0O,gBAAgBimC,YACvCC,EAAe50C,SAAS0O,gBAAgBkmC,aAE9C,OAAQrD,GACR,KAAKjC,GAAqBH,IACrBuF,EAAWnJ,IAAMwI,EAAY9xC,QAC7ByyC,EAAWnJ,IAAMqJ,EAAeF,EAAWlJ,SAC9CsG,EAAsBxC,GAAqBF,QAE5C,MACD,KAAKE,GAAqBF,OACrBwF,EAAeF,EAAWlJ,OAASuI,EAAY9xC,QAC/C2yC,EAAeF,EAAWlJ,OAASkJ,EAAWnJ,MACjDuG,EAAsBxC,GAAqBH,KAE5C,MACD,KAAKG,GAAqBL,KACrByF,EAAW51C,KAAOi1C,EAAYhiD,QACjC+/C,EAAsBhsD,KAAKyvD,kBAAkBZ,EAAaC,EAAcF,EAAYX,IAAgBxC,GAErG,MACD,KAAKjC,GAAqBJ,MACrByF,EAAcD,EAAW31C,MAAQg1C,EAAYhiD,QAChD+/C,EAAsBhsD,KAAKyvD,kBAAkBZ,EAAaC,EAAcF,EAAYX,IAAgBxC,GAKtG,OAAOO,EAGRoD,gBAAgBR,EAAYX,GAC3B,IAAIj1C,EAEJ,OAAQhZ,KAAK0rD,iBACb,KAAK1B,GAAuBN,OAC5B,KAAKM,GAAuBL,QAC3B3wC,EAAO41C,EAAW51C,MAAQi1C,EAAYhiD,MAAQ2iD,EAAW3iD,OAAS,EAClE,MACD,KAAK+9C,GAAuBb,KAC3BnwC,EAAO41C,EAAW51C,KAClB,MACD,KAAKgxC,GAAuBZ,MAC3BpwC,EAAO41C,EAAW31C,MAAQg1C,EAAYhiD,MAIvC,OAAO+M,EAGRq2C,iBAAiBT,EAAYX,GAC5B,IAAIxI,EAEJ,OAAQzlD,KAAK2rD,eACb,KAAK9B,GAAqBH,OAC1B,KAAKG,GAAqBF,QACzBlE,EAAMmJ,EAAWnJ,KAAOwI,EAAY9xC,OAASyyC,EAAWzyC,QAAU,EAClE,MACD,KAAK0tC,GAAqBR,IACzB5D,EAAMmJ,EAAWnJ,IACjB,MACD,KAAKoE,GAAqBP,OACzB7D,EAAMmJ,EAAWlJ,OAASuI,EAAY9xC,OAIvC,OAAOspC,EAGJvpB,aACH,MAAO,CACNgM,QAAS,CACR,aAAY,GAAKloC,KAAKisD,uBAEvBlF,MAAO,CACN2I,UAAS,aAAe1vD,KAAK8rD,sBAAsB9rD,KAAK+rD,sBAEzDlF,KAAM,IAOJG,qBACH,OAAO,EAMJE,qBACH,OAAO,GAITsF,GAAQ7sD,aAERgwD,GAAenD,GC7uBfh9B,GAAwB,gCAAiC,cAAeurB,IACxEvrB,GAAwB,qBAAsB,cAAewrB,ICQ7D,MAAM4U,GAAW,CAChBz5B,cAAc,EACdV,MAAgE,CAQ/D3I,QAAW,CACVtkB,KAAMgsB,aAUP+xB,OAAQ,CACP/9C,KAAMgsB,aAUP+yB,OAAQ,CACP/+C,KAAMgsB,cAGR4B,WAAqE,CAQpEo1B,aAAc,CACbhjD,KAAMrI,QAYPumD,WAAY,CACXl+C,KAAMrI,QAOPg9B,OAAQ,CACP30B,KAAMmI,SAGPk/C,QAAS,CACRrnD,KAAM21B,GACN9I,aAAa,GAGdy6B,gBAAiB,CAChBtnD,KAAMmI,QACN0kB,aAAa,GAMd62B,qBAAsB,CACrB1jD,KAAMmI,UAGR2lB,OAAiE,CAShE61B,WAAY,GAQZC,UAAW,GASXC,YAAa,CACZC,WAAY,CAAE9jD,KAAMmI,UASrB47C,WAAY,KAIRwD,GAAe,GACrB,IAAIC,IAA0B,EAC1BC,IAA6B,WA8BxBC,KACR,IAAIC,EACH/wD,EACAgxD,GAAW,EAEZ,IAAKhxD,EAAI2wD,GAAa1wD,OAAS,EAAGD,GAAK,EAAGA,IACzC+wD,EAAQJ,GAAa3wD,GACjBgxD,EACHD,EAAML,iBAAkB,EAEpBK,EAAME,YACTF,EAAML,iBAAkB,EACxBM,GAAW,aAQcA,GAC5B,GAAIJ,KAA4BI,EAC/B,mBAzCD,GAAIH,GACH,OAGDA,IAA6B,EAE7B,MAAMK,EAAiBp2C,SAASC,cAAc,SAC9Cm2C,EAAe9nD,KAAO,WACtB8nD,EAAeviC,UAAS,oIAQxB7T,SAASoS,KAAK/R,YAAY+1C,IA4B1BC,GAEIH,GASJl2C,SAASuE,KAAK0N,MAAMs5B,IAAG,IAAO91C,OAAO6gD,gBACrCt2C,SAASuE,KAAK+R,UAAUjgB,IAAI,wBAP3BkgD,KAEDT,GAA0BI,EAf1BM,CAAoBN,YAuBZK,KACRv2C,SAASuE,KAAK+R,UAAUxP,OAAO,uBAC/BrR,OAAOghD,SAAS,GAAI7P,WAAW5mC,SAASuE,KAAK0N,MAAMs5B,MACnDvrC,SAASuE,KAAK0N,MAAMs5B,IAAM,OA8P3BmL,GAjPG,cACiBhqB,GACRnW,sBACV,OAAOm/B,GAGG1zB,oBACV,MDpOa,qoDCuOCi0B,EAAO/hB,GAErB,IAAIyiB,EAEJ,IAAK,IAAIzxD,EAHO2wD,GAAatuC,QAAQ0uC,GAGf/wD,EAAI2wD,GAAa1wD,OAAQD,IAE9C,GADAyxD,EAAcd,GAAa3wD,GACvByxD,EAAYC,QAAQ1iB,GACvB,OAAO,EAIT,OAAO,yBAIP,IAAK,IAAIhvC,EAAI,EAAGA,EAAI2wD,GAAa1wD,OAAQD,IACxC,GAAI2wD,GAAa3wD,GAAGixD,UACnB,OAAO,EAIT,OAAO,gBAIPx5B,QAEA72B,KAAK+wD,wBAA0B/wD,KAAKgxD,gBAAgB/tC,KAAKjjB,MAG1DixD,aACC,OAAOlB,GAAatuC,QAAQzhB,QAAU+vD,GAAa1wD,OAAS,EAG7DgxD,UACC,OAAO,EAGRW,gBAAgB5iB,GACXmE,GAASnE,IAAUpuC,KAAKixD,eAC3BjxD,KAAKssD,YAAa,EAClBtsD,KAAK2mD,SAIPuK,iBACC,MAAMpsB,EAAS9kC,KAAKikC,YACpB,OAAOa,GAAUA,EAAOpY,cAAc,mBAGvCokC,QAAQpT,GACP,OAAO,EAGRyT,OACCnxD,KAAKilC,UAAU,aAAc,IAE7BjlC,KAAKoxD,sBAAuB,EAE5BpxD,KAAK6vD,QAAU9J,KACfgK,GAAattD,KAAKzC,MAClBkqD,GAAelqD,MAGfkwD,KAGDvJ,QACC3mD,KAAKilC,UAAU,cAAe,CAC7BqnB,WAAYtsD,KAAKssD,aACf,GAEHtsD,KAAKssD,YAAa,EAElB,MAAMrrC,EAAQ8uC,GAAatuC,QAAQzhB,MACnC+vD,GAAanuC,OAAOX,EAAO,GAEvBjhB,KAAKm9B,QACRitB,GAAkBpqD,MAGnBkwD,KAGDmB,mBACC,MAAM7F,EAAexrD,KAAKwrD,aAC1B,IAAI8F,EAAqBtxD,KAAKwrD,aAE9B,GAAIA,GAAwC,iBAAjBA,IAC1B8F,EAAqBp3C,SAASolC,eAAekM,IAExC8F,GAAoB,CACxB,MAAMC,WA1Lax+C,QACfA,IAASA,EAAKolC,MACpBplC,EAAOA,EAAKgxB,WAGb,OAAOhxB,GAAQA,EAAKolC,KAqLEqZ,CAAcxxD,MAC7BuxD,IACHD,EAAqBC,EAAWn3B,WAAW1N,cAAa,IAAK8+B,MAKhExrD,KAAKyxD,oBAAsBH,EAG5BI,4BACK1xD,KAAKixD,eACRjxD,KAAKqxD,mBACLrxD,KAAK2xD,gBAAgB3xD,KAAKkxD,mBAG3BlxD,KAAKilC,UAAU,YAAa,IAG7BR,mBACMzkC,KAAKm9B,SAILn9B,KAAKoxD,uBACTpxD,KAAK0xD,4BACL1xD,KAAKoxD,sBAAuB,IAI9BO,gBAAgBvqB,GACf,GAAIpnC,KAAKksD,qBACR,OAGD,GAAIlsD,KAAKyxD,oBAIR,YAHIzxD,KAAKyxD,sBAAwBv3C,SAAS6yC,eACzC/sD,KAAKyxD,oBAAoBzsB,SAK3B,IAAKoC,EACJ,OAGD,MAAMwqB,EAAmBxJ,GAAyBhhB,GAE9CwqB,EACHA,EAAiB5sB,QAEjBoC,EAAUpC,QAIZqU,WAAWjL,GACVpuC,KAAK6xD,cAAczjB,EAAOpuC,KAAKkxD,kBAGhCW,cAAczjB,EAAOhH,GACpB,IAAKpnC,KAAKixD,aACT,OAGD,IAMIW,EANAvrC,EAAS+nB,EAAM/nB,YAEZA,EAAO+T,YAAc/T,EAAO+T,WAAW2yB,eAC7C1mC,EAASA,EAAO+T,WAAW2yB,cAI5B,IAAI+E,GAAgB,EAEpB,OAAQzrC,EAAO/mB,IACf,IAAI,GAAIU,KAAKm6B,cACZy3B,EAAmBtJ,GAAwBlhB,GAC3C0qB,GAAgB,EAChB,MACD,IAAI,GAAI9xD,KAAKm6B,aACZy3B,EAAmBxJ,GAAyBhhB,GAC5C0qB,GAAgB,EAChB,MACD,IAAI,GAAI9xD,KAAKm6B,iBACZy3B,EAAmB5xD,KAAK+xD,wBACpB3J,GAAyBhhB,GAC7B0qB,GAAgB,EAIbF,EACHA,EAAiB5sB,QACP8sB,GACV1qB,EAAUpC,QAGXhlC,KAAK+xD,uBAAyBH,GAAoB13C,SAAS6yC,cAG5DiF,oBACC,IAAI3hD,EAAU6J,SAAS6yC,mBAEhB18C,EAAQ+pB,YAAc/pB,EAAQ+pB,WAAW2yB,eAC/C18C,EAAUA,EAAQ+pB,WAAW2yB,cAG9B/sD,KAAKiyD,sBAAyB5hD,GAAoC,mBAAlBA,EAAQ20B,MAAwB30B,EAAU,KAG3Fg9C,aACC,IAAKrtD,KAAKiyD,sBACT,OAGD,MAAMC,EAAuBlyD,KAAKiyD,sBAC9BC,GACHA,EAAqBltB,QAGtBhlC,KAAKiyD,sBAAwB,KAG9BhyB,YACCwwB,KAGG0B,gBAEH,UADsBnyD,KAAK0mD,YAAc1mD,KAAK0mD,WAAWrnD,UAC9BW,KAAKumD,OAAOlnD,QAGpC+yD,gBACH,QAASpyD,KAAKunD,OAAOloD,OAGlBgzD,WACH,MAAO,YC7cT,MACMC,GAAU1pD,GAAqBimC,EAAI,cAAejmC,EAAQ29C,OAAOlnD,OAASkzD,GAAO3pD,GAAW4pD,GAAO5pD,eACnG2pD,GAAU3pD,GAAqBimC,EAAI,YAAYgK,GAAUjwC,EAAQuxB,6BAA6B0e,GAAUjwC,EAAQypD,uEAChHG,GAAU5pD,GAAqBimC,EAAI,WAAWgK,GAAUjwC,EAAQuxB,qEAAqE0e,GAAUjwC,EAAQ89C,sBACvJ+L,GAAU7pD,GAAqBimC,EAAI,uGAEzC6jB,GANgB9pD,GAAqBimC,EAAI,2CAA2CjmC,EAAQywC,yBAAyBR,GAAUjwC,EAAQuxB,iDAAiD0e,GAAUjwC,EAAQ+pD,0CAA0C1hB,GAASroC,EAAQgoC,QAAQgiB,0DAA0D/Z,GAAUjwC,EAAQiqD,gGAAgG5hB,GAASroC,EAAQgoC,QAAQgiB,qBAAsBhqD,EAAQupD,UAAYG,GAAO1pD,QAAWlF,2IAAqJkF,EAAQwpD,UAAYK,GAAO7pD,QAAWlF,8BAAuCm1C,GAAUjwC,EAAQuxB,0DAA0D0e,GAAUjwC,EAAQuxB,2BAA2B0e,GAAUjwC,EAAQkqD,uBAAuB7hB,GAASroC,EAAQgoC,QAAQkiB,6BCC36BtjC,GAAwB,gCAAiC,cAAeurB,IACxEvrB,GAAwB,qBAAsB,cAAewrB,ICO7D,MAAM+X,GAAW,CAChB99B,IAAK,aACLmB,WAAsE,CAWrE48B,QAAS,CACRxqD,KAAMmI,WAqCN,MACGsiD,WAAerC,GACTngC,sBACV,OAAOsiC,GAGGx6C,oBACV,OAAOm5B,GAGG/M,sBACV,OAAO+tB,GAGGx2B,oBACV,MAAO,CAAC00B,GAAM10B,ODxED,0nBC+Edi1B,OACC,GAAInxD,KAAKm9B,OACR,OAID,GADkBtG,MAAMs6B,OAEvB,OAAO,EAGRnxD,KAAKgyD,oBAELhyD,KAAKm9B,QAAS,EAOfwpB,QACC,IAAK3mD,KAAKm9B,OACT,OAGiBtG,MAAM8vB,UAKxB3mD,KAAKm9B,QAAS,EAEdn9B,KAAKqtD,aAELrtD,KAAKilC,UAAU,aAAc,KAG1B2L,cACH,MAAO,CACNgiB,aAAc,CACb,YAAavN,MAEdyN,WAAY,CACX,iBAAiB,EACjB,wBAAwB,EACxB,+BAAgC9yD,KAAK8vD,kBAKpC6C,aACH,MAAM,YAAa3yD,KAAK6vD,QAAU,KAG/BiD,iBACH,MAAM,YAAa9yD,KAAK6vD,WAGrBgD,2BACH,GAAI7yD,KAAK0mD,YAAc1mD,KAAKumD,OAC3B,MAAM,GAAIvmD,KAAKm6B,qBAMlB84B,GAAOtzD,aAEPuzD,GAAeD,GCnJf,MAAME,GAAc,CAMnBC,GAAI,KAOJC,GAAI,KAOJC,GAAI,KAOJC,GAAI,KAOJC,GAAI,KAOJC,GAAI,MAWF,MACGC,WAAmBvgC,kBACTlsB,GACd,QAASksD,GAAYlsD,IAIvBysD,GAAW/a,qBAAqBwa,QAEhCQ,GAAeD,GC/Df,MACME,GAAUhrD,GAAqBimC,EAAI,8CAA8CgK,GAAUjwC,EAAQuxB,wCACnG05B,GAAUjrD,GAAqBimC,EAAI,8CAA8CgK,GAAUjwC,EAAQuxB,wCACnG25B,GAAUlrD,GAAqBimC,EAAI,8CAA8CgK,GAAUjwC,EAAQuxB,wCACnG45B,GAAUnrD,GAAqBimC,EAAI,8CAA8CgK,GAAUjwC,EAAQuxB,wCACnG65B,GAAUprD,GAAqBimC,EAAI,8CAA8CgK,GAAUjwC,EAAQuxB,wCACnG85B,GAAUrrD,GAAqBimC,EAAI,8CAA8CgK,GAAUjwC,EAAQuxB,4CAEzG+5B,GARgBtrD,GAAqBimC,EAAI,GAAIjmC,EAAQurD,GAAKP,GAAOhrD,QAAWlF,IAAckF,EAAQwrD,GAAKP,GAAOjrD,QAAWlF,IAAckF,EAAQyrD,GAAKP,GAAOlrD,QAAWlF,IAAckF,EAAQ0rD,GAAKP,GAAOnrD,QAAWlF,IAAckF,EAAQ2rD,GAAKP,GAAOprD,QAAWlF,IAAckF,EAAQ4rD,GAAKP,GAAOrrD,QAAWlF,ICC7S8rB,GAAwB,gCAAiC,cAAeurB,IACxEvrB,GAAwB,qBAAsB,cAAewrB,ICO7D,MAAMyZ,GAAW,CAChBx/B,IAAK,YACLmB,WAAoE,CASnE1xB,KAAM,CACL8D,KAAMmI,SAWP+jD,MAAO,CACNlsD,KAAMmrD,GACNv/B,aAAcu/B,GAAWN,KAG3B59B,MAA+D,CAU9D3I,QAAW,CACVtkB,KAAMotB,QAuBN,MACG++B,WAAc/tB,GACRnW,sBACV,OAAOgkC,GAGGl8C,oBACV,OAAOm5B,GAGG/M,sBACV,OAAOuvB,GAGGh4B,oBACV,MDnFa,6/BCsFV04B,sBACH,OAAO50D,KAAK00D,MAAMtmC,cAGf+lC,SACH,MAAgC,OAAzBn0D,KAAK40D,gBAGTR,SACH,MAAgC,OAAzBp0D,KAAK40D,gBAGTP,SACH,MAAgC,OAAzBr0D,KAAK40D,gBAGTN,SACH,MAAgC,OAAzBt0D,KAAK40D,gBAGTL,SACH,MAAgC,OAAzBv0D,KAAK40D,gBAGTJ,SACH,MAAgC,OAAzBx0D,KAAK40D,iBAIdD,GAAMh1D,aAENk1D,GAAeF,GCvHfnlC,GAAwB,gCAAiC,cAAeurB,IACxEvrB,GAAwB,qBAAsB,cAAewrB,ICO7D,MAKM8Z,GAAW,CAChB7/B,IAAK,yBACLmB,WAAgF,CAQ/E2+B,UAAW,CACVvsD,KAAMmI,SAOPs1C,YAAa,CACZz9C,KAAMmI,SAQPqkD,qBAAsB,CACrBxsD,KAAMmI,SAOP01C,YAAa,CACZ79C,KAAMmI,WAsBN,MACGskD,WAA0BtF,GACpBl/B,sBACV,OAAOqkC,GAGGv8C,oBACV,OAAOm5B,GAGGxV,oBACV,MDhFa,szGCmFHyI,sBACV,OAAO8iB,iCAIDx8C,QAAQ6P,IAAI,CACjBmjC,GAAOt+C,SACPuzD,GAAOvzD,SACPk1D,GAAMl1D,WASRwxD,KAAKtE,GACCxH,MAQJrlD,KAAKmsB,MAAM8gC,OAASlH,KACpB/lD,KAAKk1D,QAAQ/D,SAPRnxD,KAAK+0D,YACT/0D,KAAKm1D,UAAYpyD,KAAKC,IAlGA,IAkGuB6pD,EAAOjF,wBAAwB37C,QAG7EjM,KAAK8lD,OAAO+G,IAWdlG,QACMtB,KAGJrlD,KAAKk1D,QAAQvO,QAFb9vB,MAAM8vB,QAMJzqB,aACH,MAAMk5B,EAAgBv+B,MAAMqF,OAM5B,OAJAk5B,EAAcvO,KAAO,CACpB,YAAW,GAAK7mD,KAAKm1D,eAGfC,EAGJF,cACH,OAAOl1D,KAAKo6B,WAAW1N,cAAc,cAGlCg7B,eACH,OAAOrC,KAGJ2B,qBACH,OAAOhnD,KAAK0nD,WAAa1nD,KAAKg1D,qBAG3B9N,qBACH,OAAOlnD,KAAK0nD,WAAa1nD,KAAKg1D,qBAG/B7O,iBAAiB/X,GAChBpuC,KAAKm9B,QAAS,EACdn9B,KAAKkmD,sBAAsB9X,GAG5BgY,kBAAkBhY,GACjBpuC,KAAKm9B,QAAS,EACdn9B,KAAKkmD,sBAAsB9X,GAG5B8X,sBAAsB9X,GACrB,MAAM5lC,EAAO4lC,EAAM5lC,KAAKuoB,QAAQ,OAAQ,IAExC/wB,KAAKilC,UAAUz8B,EAAM4lC,EAAMxK,SAI7BqxB,GAAkBt1D,aAElB01D,GAAeJ,OC1GfK,uBAtEEt1D,KAAKu1D,eAAiB,GAGvBC,YAAYlvC,EAAWmvC,GACtB,MAAMC,EAAgB11D,KAAKu1D,eAC3B,IAAII,EAAiBD,EAAcpvC,GAE9B/U,MAAMC,QAAQmkD,KAClBD,EAAcpvC,GAAa,GAC3BqvC,EAAiBD,EAAcpvC,IAGhCqvC,EAAelzD,KAAK,CACnBmzD,SAAYH,IAIdI,YAAYvvC,EAAWmvC,GACtB,MAAMC,EAAgB11D,KAAKu1D,eAC3B,IAAII,EAAiBD,EAAcpvC,GAE9BqvC,IAILA,EAAiBA,EAAep+C,QAAO62B,GAC/BA,EAAgB,WAAMqnB,IAGA,IAA1BE,EAAet2D,eACXq2D,EAAcpvC,IAIvB2e,UAAU3e,EAAWpmB,GACpB,MACMy1D,EADgB31D,KAAKu1D,eACUjvC,GAEhCqvC,GAILA,EAAe1tD,SAAQmmC,IACtBA,EAAgB,SAAE/oC,KAAKrF,KAAME,MAI/B41D,kBAAkBxvC,EAAWmvC,GAC5B,MACME,EADgB31D,KAAKu1D,eACUjvC,GAErC,IAAKqvC,EACJ,OAAO,EAGR,IAAK,IAAIv2D,EAAI,EAAGA,EAAIu2D,EAAet2D,OAAQD,IAAK,CAE/C,GADcu2D,EAAev2D,GACT,WAAMq2D,EACzB,OAAO,EAIT,OAAO,EAGRM,aAAazvC,GACZ,QAAStmB,KAAKu1D,eAAejvC,SC/D/B0vC,GALuB,CACtBC,KAAM,OACNC,SAAU,WACVC,WAAY,kBCiBbC,GAhB+B,CAI9BC,OAAQ,SAKRC,OAAQ,SAKRC,OAAQ,gBCFHC,WAAuBlB,eAChBmB,EAAkBjqD,EAAU,IACvCqqB,QAEA72B,KAAK02D,aAAelqD,EAAQkqD,cAAgB,EAC5C12D,KAAK22D,QAAUnqD,EAAQmqD,SAAW,EAClC32D,KAAK42D,SAAWpqD,EAAQoqD,UAAYR,GAAuBC,OAC3Dr2D,KAAK62D,aAAc,EACnB72D,KAAK82D,aAAc,EACnB,MAAMC,EAAiBvqD,EAAQuqD,eACzBC,GAAkBD,GAAkBA,IAAmBf,GAAeC,KAC5Ej2D,KAAKi3D,uBAAyBD,GAAkBD,IAAmBf,GAAeG,WAClFn2D,KAAKk3D,qBAAuBF,GAAkBD,IAAmBf,GAAeE,SAEhFl2D,KAAKy2D,iBAAmBA,EACxBz2D,KAAKy2D,iBAAiB9vC,iBAAiB,UAAW3mB,KAAKm3D,UAAUl0C,KAAKjjB,OACtEA,KAAKy2D,iBAAiBpyB,2BAA0B,KAC/CrkC,KAAKo3D,SAIPA,QACCp3D,KAAKq3D,YAAYpvD,SAAO,CAAE0sB,EAAMuM,KAC/BvM,EAAKwoB,UAAajc,IAAQlhC,KAAK02D,aAAgB,IAAM,QAIvDY,0BACC,OAAOt3D,KAAKi3D,uBAGbM,wBACC,OAAOv3D,KAAKk3D,uCAGK9oB,GACbpuC,KAAK02D,cAAgB12D,KAAKq3D,YAAYh4D,OACzCW,KAAKw3D,uBACKx3D,KAAK02D,aAAe,GAC9B12D,KAAKy3D,oBAGNrpB,EAAMjmB,uBAEAgR,GAAgBu+B,eAEtB13D,KAAK4pC,SACL5pC,KAAK23D,eAGNR,UAAU/oB,GACT,OAAIiE,GAAKjE,IAAUpuC,KAAKu3D,wBAChBv3D,KAAK43D,UAAUxpB,GAGnBkE,GAAOlE,IAAUpuC,KAAKu3D,wBAClBv3D,KAAK63D,YAAYzpB,GAGrB+D,GAAO/D,IAAUpuC,KAAKs3D,0BAClBt3D,KAAK83D,YAAY1pB,GAGrBgE,GAAQhE,IAAUpuC,KAAKs3D,0BACnBt3D,KAAK+3D,aAAa3pB,G5DqChB,CAAGA,IAAUA,EAAM9mC,IAAoB,SAAd8mC,EAAM9mC,IAAiB8mC,EAAM4D,UAAYF,MAAmBG,GAAgB7D,G4DlC3G4pB,CAAO5pB,GACHpuC,KAAKi4D,YAAY7pB,G5DmChB,CAAGA,IAAUA,EAAM9mC,IAAoB,QAAd8mC,EAAM9mC,IAAgB8mC,EAAM4D,UAAYF,MAAkBG,GAAgB7D,G4DhCxG8pB,CAAM9pB,GACFpuC,KAAKm4D,WAAW/pB,QADxB,EAKDwpB,UAAUxpB,GACLpuC,KAAKo4D,iBACRp4D,KAAK02D,cAAgB12D,KAAK22D,QAC1B32D,KAAKq4D,YAAYjqB,IAInBypB,YAAYzpB,GACPpuC,KAAKo4D,iBACRp4D,KAAK02D,cAAgB12D,KAAK22D,QAC1B32D,KAAKq4D,YAAYjqB,IAInB0pB,YAAY1pB,GACPpuC,KAAKo4D,iBACRp4D,KAAK02D,cAAgB,EACrB12D,KAAKq4D,YAAYjqB,IAInB2pB,aAAa3pB,GACRpuC,KAAKo4D,iBACRp4D,KAAK02D,cAAgB,EACrB12D,KAAKq4D,YAAYjqB,IAInB6pB,YAAY7pB,GACX,GAAIpuC,KAAKo4D,eAAgB,CACxB,MAAME,EAAet4D,KAAK22D,QAAU,EAAI32D,KAAK22D,QAAU32D,KAAKq3D,YAAYh4D,OACxEW,KAAK02D,cAAgB12D,KAAK02D,aAAe4B,EACzCt4D,KAAKq4D,YAAYjqB,IAInB+pB,WAAW/pB,GACV,GAAIpuC,KAAKo4D,eAAgB,CACxB,MAAME,EAAet4D,KAAK22D,QAAU,EAAI32D,KAAK22D,QAAU32D,KAAKq3D,YAAYh4D,OACxEW,KAAK02D,cAAiB4B,EAAe,EAAIt4D,KAAK02D,aAAe4B,EAC7Dt4D,KAAKq4D,YAAYjqB,IAInBxE,OAAO2uB,GACN,MAAMC,EAAYx4D,KAAKq3D,YAMvB,GAJIkB,IACHv4D,KAAK02D,aAAe12D,KAAKq3D,YAAY51C,QAAQ82C,KAGzCC,EAAUx4D,KAAK02D,eACf8B,EAAUx4D,KAAK02D,cAAcvZ,WAAwD,MAA3Cqb,EAAUx4D,KAAK02D,cAAcvZ,UAC3E,OAGD,MAAMxN,EAAQ6oB,EAAU71D,MAAM,GAE9B,IAAK,IAAIvD,EAAI,EAAGA,EAAIuwC,EAAMtwC,OAAQD,IACjCuwC,EAAMvwC,GAAG+9C,UAAa/9C,IAAMY,KAAK02D,aAAe,IAAM,KAIvD12D,KAAKy2D,iBAAiBv0B,cAGvBy1B,eACC,MAAMc,EAAcz4D,KAAK04D,kBACrBD,GACHA,EAAYzzB,QAIdozB,eACC,MAAMK,EAAcz4D,KAAK04D,kBAEzB,IAAI3L,EAAgB7yC,SAAS6yC,mBAEtBA,EAAc3yB,YAAc2yB,EAAc3yB,WAAW2yB,eAC3DA,EAAgBA,EAAc3yB,WAAW2yB,cAG1C,OAAO0L,GAAeA,IAAgB1L,EAGvC2L,kBACC,MAAM/oB,EAAQ3vC,KAAKq3D,YAEnB,IAAK1nB,EAAMtwC,OACV,OAAO,UAIDW,KAAK02D,cAAgB/mB,EAAMtwC,QACjCW,KAAK02D,cAAgB12D,KAAK22D,QAGvB32D,KAAK02D,aAAe,IACvB12D,KAAK02D,aAAe,GAGrB,MAAM+B,EAAc9oB,EAAM3vC,KAAK02D,cAE/B,OAAI+B,aAAuB7xB,GACnB6xB,EAAY5zB,iBAGf7kC,KAAKy2D,iBAAiBxyB,YAIpBjkC,KAAKy2D,iBAAiBxyB,YAAYvX,cAAa,IAAK+rC,EAAYn5D,WAJvE,EAOGq5D,qBAAiBjuD,GACpB1K,KAAKq3D,UAAY3sD,EAGd6tD,YAAQpnD,GACXnR,KAAK02D,aAAevlD,EAGrBqmD,uBACC,MAAM7nB,EAAQ3vC,KAAKq3D,YACblgB,EAASn3C,KAAK02D,aAAe/mB,EAAMtwC,OAErCW,KAAK42D,WAAaR,GAAuBE,QAKzCt2D,KAAK42D,WAAaR,GAAuBG,OAC5Cv2D,KAAK44D,kBAEL54D,KAAK02D,aAAe/mB,EAAMtwC,OAAS,EAGpCW,KAAKilC,UAAUuxB,GAAeqC,aAAc,CAAExmD,OAAO,EAAOg1B,KAAK,SAAM8P,KAVtEn3C,KAAK02D,aAAe,EAatBe,oBACC,MAAM9nB,EAAQ3vC,KAAKq3D,YACblgB,EAASn3C,KAAK02D,aAAe12D,KAAK22D,QAEpC32D,KAAK42D,WAAaR,GAAuBE,QAKzCt2D,KAAK42D,WAAaR,GAAuBG,OAC5Cv2D,KAAK84D,kBAEL94D,KAAK02D,aAAe,EAGrB12D,KAAKilC,UAAUuxB,GAAeqC,aAAc,CAAExmD,OAAO,EAAMg1B,KAAK,SAAO8P,KAVtEn3C,KAAK02D,aAAe/mB,EAAMtwC,OAAS,EAarCu5D,kBACC54D,KAAKilC,UAAUuxB,GAAeuC,aAC9B,MAAMppB,EAAQ3vC,KAAKq3D,YAEdr3D,KAAK62D,YAGT72D,KAAK02D,aAAe,EAFpB12D,KAAK02D,aAAe/mB,EAAMtwC,OAAS,EAMrCy5D,kBACC94D,KAAKilC,UAAUuxB,GAAewC,UAC9B,MAAMrpB,EAAQ3vC,KAAKq3D,YAEdr3D,KAAK82D,YAGT92D,KAAK02D,cAAgB12D,KAAKi5D,UAAYtpB,EAAMtwC,QAAU,EAFtDW,KAAK02D,aAAe,GAOvBF,GAAewC,SAAW,UAC1BxC,GAAeuC,YAAc,aAC7BvC,GAAeqC,aAAe,mBAE9BK,GAAe1C,OC1Pf2C,GAzBuBpmD,IACtB,IAAKA,EACJ,OAAO,EAGR,MAAMs3B,EAAWt3B,EAAKs3B,SAASjc,cAE/B,GAAIrb,EAAKmiB,aAAa,uBACrB,OAAO,EAGR,GAAIyyB,GAAa50C,GAChB,OAAO,EAGR,GAAiB,MAAbs3B,GAAgB,sCAA0C4X,KAAK5X,GAClE,OAAQt3B,EAAKmrB,SAGd,MAAMgqB,EAAWn1C,EAAK+vB,aAAa,YACnC,OAAIolB,MAAAA,EACIxlB,SAASwlB,IAAa,OAD9B,GCpBD,MASMkR,GAAY,CAAInnD,EAAOonD,KAC5B,MAAMC,EAAiBD,GAAa,GAwBpC,OAtBA9nD,MAAM0E,KAAKhE,GAAOhK,SAAQ8gC,IACzB,GAAIA,EAAYR,WAAa3S,KAAK2jC,UAAlC,CAIA,GAAIxwB,EAAY3O,WAAY,CAE3B,MAAMpgB,EAAW+uB,EAAY3O,WAAWpgB,SACxC+uB,EAAcx3B,MAAM0E,KAAK+D,GAAUnJ,MAAKkC,GAAyB,UAAjBA,EAAKkkB,UAGlDkiC,GAAepwB,IAClBuwB,EAAe72D,KAAKsmC,GAGO,SAAxBA,EAAY9R,QACfmiC,GAAarwB,EAAYrU,gBAAiB4kC,GAE1CF,GAAarwB,EAAY/uB,SAAUs/C,OAI9BA,GC9BFE,GAAY,CAMjBjb,KAAM,OAONkb,aAAc,eAOdC,kBAAmB,oBAQnBC,gBAAiB,kBAOjBC,YAAa,cAObC,OAAQ,UAWN,MACGC,WAAiB3mC,kBACPlsB,GACd,QAASuyD,GAAUvyD,IAIrB6yD,GAASnhB,qBAAqB6gB,QAE9BO,GAAeD,GC9Df,MAAME,GAAsB,CAM3BC,IAAK,MAOLC,MAAO,QAMP3b,KAAM,QAWJ,MACG4b,WAAuBhnC,kBACblsB,GACd,QAAS+yD,GAAoB/yD,IAI/BkzD,GAAexhB,qBAAqBqhB,QAEpCI,GAAeD,GCvCf,MAAME,GAAqB,CAM1BC,MAAO,QAOPC,OAAQ,SAORC,MAAO,SAWL,MACGC,WAA0BtnC,kBAChBlsB,GACd,QAASozD,GAAmBpzD,IAI9BwzD,GAAkB9hB,qBAAqB0hB,QAEvCK,GAAeD,GC1Cf,MACME,GAAU/xD,GAAqBimC,EAAI,+HAA+HgK,GAAUjwC,EAAQgyD,oNACpLC,GAAUjyD,GAAqBimC,EAAI,iDAAiDgK,GAAUjwC,EAAQsM,0BAE5G4lD,GAJgBlyD,GAAqBimC,EAAI,gFAAiFjmC,EAAQg0C,OAAS+d,GAAO/xD,QAAWlF,IAAckF,EAAQsM,KAAO2lD,GAAOjyD,QAAWlF,6BCC5M8rB,GAAwB,gCAAiC,cAAeurB,IACxEvrB,GAAwB,qBAAsB,cAAewrB,ICW7D,MAAM+f,GAAW,CAChB9lC,IAAK,oBACLQ,MAAuE,CAStE3I,QAAW,CACVtkB,KAAMotB,OAGRQ,WAA4E,CAS3ElhB,KAAM,CACL1M,KAAMrI,QAYPoS,KAAM,CAAE/J,KAAMkyD,GAAmBtmC,aAAcsmC,GAAkBH,QASjE3d,OAAQ,CAAEp0C,KAAMmI,WA4Bf,MACGqqD,WAAsBp0B,iBAE1B/P,QAEA72B,KAAK43C,WAAaD,GAAc,sBAGtBlnB,sBACV,OAAOsqC,GAGG7+B,oBACV,MDjGa,uqECoGH3jB,oBACV,OAAOm5B,GAGG/M,sBACV,OAAOm2B,iCAID7vD,QAAQ6P,IAAI,CACjB27B,GAAgB,sBAChB8I,GAAM5/C,WAIJi7D,gBACH,OAAO56D,KAAK43C,WAAWN,QAAQsE,KAIjCof,GAAcr7D,aAEds7D,GAAeD,GC7Hf,MACME,GAAUtyD,GAAqBimC,EAAI,0BACnCssB,GAAUvyD,GAAqBimC,EAAI,eAAegK,GAAUjwC,EAAQwyD,yCAAyCviB,GAAUjwC,EAAQ89C,wBAC/H2U,GAAUzyD,GAAqBimC,EAAI,WAAWgK,GAAUjwC,EAAQuxB,kDAAkD0e,GAAUjwC,EAAQ0yD,6BAA6BziB,GAAUjwC,EAAQuxB,uDAAuD0e,GAAUjwC,EAAQ2yD,2BAC5PC,GAAU5yD,GAAqBimC,EAAI,eAAegK,GAAUjwC,EAAQuxB,2CAA2C0e,GAAUjwC,EAAQ6yD,wBACjIC,GAAU9yD,GAAqBimC,EAAI,8DAA8DjmC,EAAQ+yD,gFAE/GC,GAPgBhzD,GAAqBimC,EAAI,wCAAwCjmC,EAAQywC,yBAAyBzwC,EAAQ6wC,wBAAwB7wC,EAAQizD,8BAA+BjzD,EAAQ29C,OAAOlnD,OAAS67D,GAAOtyD,QAAWlF,IAAckF,EAAQkzD,eAAiBX,GAAOvyD,QAAWlF,aAAsBm1C,GAAUjwC,EAAQuxB,sEAAsE0e,GAAUjwC,EAAQuxB,0DAA0D0e,GAAUjwC,EAAQmzD,oCAAoCljB,GAAUjwC,EAAQozD,kDAAmDpzD,EAAQqzD,eAAiBZ,GAAOzyD,QAAWlF,UAAoBkF,EAAQ6yD,WAAaD,GAAO5yD,QAAWlF,IAAckF,EAAQszD,SAAWR,GAAO9yD,QAAWlF,aAAsBm1C,GAAUjwC,EAAQuxB,mECClxB3K,GAAwB,gCAAiC,cAAeurB,IACxEvrB,GAAwB,qBAAsB,cAAewrB,ICU7D,MAMMmhB,GAAW,CAChBlnC,IAAK,WACLkB,cAAc,EACdV,MAA8D,CAY7D8wB,OAAQ,CACP/9C,KAAMgsB,aAYP1H,QAAW,CACViV,aAAc,QACdv5B,KAAMgsB,cAGR4B,WAAoE,CAWnEswB,WAAY,CACXl+C,KAAMrI,QAUPs7D,WAAY,CACXjzD,KAAMrI,QAUPi8D,MAAO,CACN5zD,KAAMmI,SAaPupB,KAAM,CACL1xB,KAAMuxD,GACN3lC,aAAc2lC,GAASxb,MAUxBgd,WAAY,CACX/yD,KAAMrI,QAkBPk8D,WAAY,CACX7zD,KAAM4xD,GACNhmC,aAAcgmC,GAAeH,KAa9BqC,eAAgB,CACf9zD,KAAMmI,SAYPgrD,KAAM,CACLnzD,KAAMmI,UAGR2lB,OAAgE,CAU/DimC,UAAW,CACV34B,OAAQ,CACPjP,KAAM,CAAEnsB,KAAMgsB,eAahBgoC,WAAY,CACX54B,OAAQ,CACPjP,KAAM,CAAEnsB,KAAMgsB,eAahBioC,gBAAiB,CAChB74B,OAAQ,CACP84B,cAAe,CAAEl0D,KAAM+I,OACvBorD,wBAAyB,CAAEn0D,KAAM+I,OACjCqrD,0BAA2B,CAAEp0D,KAAMmI,WAarCksD,SAAU,KA0CT,MACGC,WAAal2B,GACPnW,sBACV,OAAO0rC,GAGG5jD,oBACV,OAAOm5B,GAGG/M,sBACV,OAAOi3B,GAGG1/B,oBACV,MDhRa,0lDCoRbrF,QACA72B,KAAK+8D,qBAGL/8D,KAAKg9D,uBAAyB,KAG9Bh9D,KAAKi9D,kBAAmB,EAExBj9D,KAAKk9D,wBAA0B,KAE/Bl9D,KAAK2mB,iBAAiB,aAAc3mB,KAAKm9D,YAAYl6C,KAAKjjB,OAC1DA,KAAK2mB,iBAAiB,eAAgB3mB,KAAKo9D,cAAcn6C,KAAKjjB,OAC9DA,KAAK2mB,iBAAiB,oBAAqB3mB,KAAKq9D,eAAep6C,KAAKjjB,OACpEA,KAAK2mB,iBAAiB,qBAAsB3mB,KAAKs9D,gBAAgBr6C,KAAKjjB,OACtEA,KAAK2mB,iBAAiB,0BAA2B3mB,KAAKu9D,qBAAqBt6C,KAAKjjB,OAG7E87D,qBACH,OAAQ97D,KAAKumD,OAAOlnD,QAAUW,KAAK0mD,WAGhC0U,eACH,MAAM,GAAIp7D,KAAKm6B,aAGZ8hC,qBACH,OAA6B,IAAtBj8D,KAAK2vC,MAAMtwC,QAAgBW,KAAKu7D,WAGpCW,eACH,OAAOl8D,KAAK27D,MAAQ37D,KAAKs8D,eAGtBP,oBACH,OAAO/7D,KAAKk6B,OAAS6/B,GAASH,YAG3BoC,qBACH,OAAOh8D,KAAK87D,eAAiB97D,KAAKo7D,cAAW13D,EAG9C0gC,oBACCpkC,KAAKw9D,mBAGNT,qBACC/8D,KAAKy9D,gBAAkB,IAAIvE,GAAel5D,KAAM,CAC/C+2D,eAAgBf,GAAeE,WAGhCl2D,KAAKy9D,gBAAgB9E,iBAAgB,IAAS34D,KAAKslC,gBAAgB,SAGpEk4B,mBACC,MAAME,EAAe19D,KAAKslC,gBAAgB,SAE1Co4B,EAAaz1D,SAAO,CAAE0sB,EAAMrtB,KAC3B,MAAMq2D,EAAcr2D,IAAQo2D,EAAar+D,OAAS,EAC5Cu+D,EAAmB59D,KAAKq8D,aAAejC,GAAeH,KACvDj6D,KAAKq8D,aAAejC,GAAeF,QAAUyD,EAElDhpC,EAAKkpC,MAAQ79D,KAAKk6B,KAClBvF,EAAKmpC,UAAYF,KAGlB59D,KAAKk9D,wBAA0B,KAMhCK,qBAAqBnvB,GACpB,MAAMuuB,EAA0B38D,KAAK+9D,mBACrC,IAAItB,GAAkB,EACtBz8D,KAAKg+D,qBAAsB,EAEvBh+D,KAAI,SAAUA,KAAKk6B,UACtBuiC,EAAkBz8D,KAAI,SAAUA,KAAKk6B,QAAQkU,EAAMxK,OAAOjP,KAAMyZ,EAAMxK,OAAOua,WAG1Ese,GACHz8D,KAAKilC,UAAU,kBAAmB,CACjCy3B,cAAe18D,KAAK+9D,2CACpBpB,EACAC,0BAA2BxuB,EAAMxK,OAAOg5B,0BACxCt1D,IAAK8mC,EAAMxK,OAAOt8B,MAKrB22D,mBAAmBtpC,GAClB,OAAIA,EAAKwpB,WAITn+C,KAAKk+D,wBACLvpC,EAAKwpB,UAAW,GAET,GAGRggB,wBAAwBxpC,GACvB,OAAO30B,KAAKi+D,mBAAmBtpC,GAGhCypC,sBAAsBzpC,GACrB,OAAO30B,KAAKi+D,mBAAmBtpC,GAGhC0pC,kBAAkB1pC,EAAMwpB,GAEvB,OADAxpB,EAAKwpB,SAAWA,GACT,EAGRmgB,aAAa3pC,GACZ30B,KAAKilC,UAAU,aAAc,MAAEtQ,IAGhCupC,wBACCl+D,KAAK+9D,mBAAmB91D,SAAQ0sB,IAAUA,EAAKwpB,UAAW,KAG3D4f,mBACC,OAAO/9D,KAAKslC,gBAAgB,SAAS/tB,QAAOod,GAAQA,EAAKwpB,WAG1DogB,uBACC,MAAMb,EAAe19D,KAAKslC,gBAAgB,SAC1C,IAAIk5B,EAAoB,KAExB,IAAK,IAAIp/D,EAAI,EAAGA,EAAIs+D,EAAar+D,OAAQD,IACxC,GAAIs+D,EAAat+D,GAAG++C,SAAU,CAC7BqgB,EAAoBd,EAAat+D,GACjC,MAIF,OAAOo/D,EAGR/kB,WAAWrL,GACNoE,GAAUpE,IACbpuC,KAAKy+D,eAAerwB,GAOtBqwB,eAAerwB,GAId,IAAIswB,EACJ,MAAMr4C,EAASrmB,KAAK2+D,oBAAoBvwB,EAAM/nB,QAE1CrmB,KAAK4+D,gBACRF,EAAiB1+D,KAAK6+D,uCAGlBH,GAIDA,IAAmBr4C,IAClBrmB,KAAKu+D,uBACRv+D,KAAK8+D,yBACK9+D,KAAK++D,2BACf/+D,KAAKg/D,6BAELh/D,KAAKi/D,iBAGN7wB,EAAM8wB,2BACN9wB,EAAMjmB,kBAIR0zC,UAAUztB,GACJpuC,KAAKs8D,gBAGVt8D,KAAKm/D,SAASn/D,KAAK68D,SAAS55C,KAAKjjB,KAAMouC,EAAM/nB,QAjcT,KAocrCgzB,WAAWjL,GAEV,GAAKpuC,KAAKo/D,iBAAiBp/D,KAAK2+D,oBAAoBvwB,EAAM/nB,SAA1D,CAOA,IAAKrmB,KAAK++D,2BAQT,OAPI/+D,KAAKu+D,uBACRv+D,KAAK8+D,yBAEL9+D,KAAKi/D,sBAGN7wB,EAAM8wB,2BAMFl/D,KAAKq/D,uBACLr/D,KAAKu+D,uBACRv+D,KAAK8+D,yBAEL9+D,KAAKg/D,8BAIPh/D,KAAKs/D,oBAAmB,QA3BvBlxB,EAAM8wB,2BA8BRE,iBAAiBrsD,GAChB,MAAMwsD,EAASxsD,EAAKzT,GAEpB,OAAIU,KAAKm6B,MAAQolC,GAAUv/D,KAAKw/D,mBAAmBlgE,KAAOigE,GAInDv/D,KAAKy/D,kBAAkBngE,KAAOigE,EAGtCnC,cAAchvB,GACb,MAAM/nB,EAAS+nB,EAAM/nB,OAErBrmB,KAAKy9D,gBAAgB7zB,OAAOvjB,GAC5BrmB,KAAKilC,UAAU,cAAe,CAAEtQ,KAAMtO,IAGvC82C,YAAY/uB,GACX,MAAMsxB,EAActxB,EAAMxK,OAAOjP,KAEjC30B,KAAKilC,UAAU,YAAa,CAAEtQ,KAAM+qC,IACpC1/D,KAAKilC,UAAU,YAAa,CAAEtQ,KAAM+qC,IAE/B1/D,KAAKg+D,qBAAuBh+D,KAAKk6B,OAAS6/B,GAASF,SACvD75D,KAAKg+D,qBAAsB,EAC3Bh+D,KAAKu9D,qBAAqB,CACzB35B,OAAQ,CACPjP,KAAM+qC,EACN9C,2BAA2B,EAC3Bze,UAAWuhB,EAAYvhB,SACvB72C,IAAK8mC,EAAMxK,OAAOt8B,QAKrBtH,KAAKg+D,qBAAsB,EAG5BV,gBAAgBlvB,GACfpuC,KAAK2/D,yBAAyBvxB,EAAM/nB,QACpCrmB,KAAK4/D,qBAGNvC,eAAejvB,GACdpuC,KAAK2/D,yBAAyBvxB,EAAM/nB,QACpCrmB,KAAK6/D,oBAGND,qBACC5/D,KAAKs/D,oBAAmB,GACxBt/D,KAAKw/D,mBAAmBx6B,QAGzB66B,oBACC7/D,KAAKs/D,oBAAmB,GACxBt/D,KAAKy/D,kBAAkBz6B,QAGxBi6B,iBACC,MAAMa,EAAY9/D,KAAK+/D,eAEnBD,GACHA,EAAU96B,QAIZg6B,6BACC,MAAMgB,EAAwBhgE,KAAK++D,2BAE/BiB,GACHA,EAAsBh7B,QAIxB85B,yBACC,MAAMN,EAAoBx+D,KAAKu+D,uBAE3BC,GACHA,EAAkBx5B,QAIpBs6B,mBAAmBW,GAClBjgE,KAAKi9D,iBAAmBgD,EAGzBZ,qBACC,OAAOr/D,KAAKi9D,iBAGb0C,yBAAyBhrC,GACxB30B,KAAKg9D,uBAAyBroC,EAG/BoqC,2BACC,OAAO/+D,KAAKg9D,uBAGb+C,eACC,MAAMrC,EAAe19D,KAAKslC,gBAAgB,SAC1C,QAASo4B,EAAar+D,QAAUq+D,EAAa,GAG9C+B,kBAIC,OAHKz/D,KAAKkgE,gBACTlgE,KAAKkgE,cAAgBlgE,KAAKo6B,WAAW1N,cAAa,IAAK1sB,KAAKm6B,cAEtDn6B,KAAKkgE,cAGbV,mBAIC,OAHKx/D,KAAKmgE,iBACTngE,KAAKmgE,eAAiBngE,KAAKo6B,WAAW1N,cAAa,IAAK1sB,KAAKm6B,eAEvDn6B,KAAKmgE,eAGbtB,sCACC,MTtmB0B,CAAG9rD,IAC9B,MAAMsmD,EAAYD,GAAarmD,EAAKiH,UACpC,OAAOq/C,EAAUh6D,OAASg6D,EAAUA,EAAUh6D,OAAS,GAAK,MSomBpD+gE,CAAuBpgE,KAAK4+D,cAAc36B,cAAgBjkC,KAAK4+D,cAAc36B,YAGrF06B,oBAAoBt4C,GACnB,IAAIw2B,EAAUx2B,EAMd,OAJIA,EAAO+T,YAAc/T,EAAO+T,WAAW2yB,gBAC1ClQ,EAAUx2B,EAAO+T,WAAW2yB,eAGtBlQ,EAGRggB,SAASxsC,GACR,MAAMgwC,EAAYhwC,EAAGgwC,UACflkD,EAASkU,EAAGy3B,aACZwY,EAAejwC,EAAGiwC,aAEpBtgE,KAAKugE,uBAAyBF,EACjCrgE,KAAKugE,uBAAyBF,GAG/BrgE,KAAKugE,uBAAyBF,EAE1BC,EApnBuB,IAonBgBnkD,EAASkkD,GACnDrgE,KAAKilC,UAAU,aAIjBk6B,SAASz0D,EAAI81D,GACZC,aAAazgE,KAAK0gE,kBAClB1gE,KAAK0gE,iBAAmB1gD,YAAU,KACjChgB,KAAK0gE,iBAAmB,KACxBh2D,MACE81D,iCAIGvF,GAAct7D,UAItBm9D,GAAKn9D,aAELghE,GAAe7D,GCtpBf,MACM8D,GAAW,iJAEjBtmB,GAHa,OAGM,UAAEsmB,KCCrB,MAAMC,GAAgB,CAMrBC,SAAU,WAOVC,OAAQ,SAORC,OAAQ,UAWN,MACGC,WAAqB9tC,kBACXlsB,GACd,QAAS45D,GAAc55D,IAIzBg6D,GAAatoB,qBAAqBkoB,QAElCK,GAAeD,GCzCfzxC,GAAwB,gCAAiC,cAAeurB,IACxEvrB,GAAwB,qBAAsB,cAAewrB,ICK7D,MAAMmmB,GAAW,CAChB/qC,WAA6E,CAQ5E+nB,SAAU,CACT31C,KAAMmI,SAOPmtD,UAAW,CACVt1D,KAAMmI,SAGPwsC,UAAW,CACV30C,KAAMrI,OACNi0B,aAAc,KACdiB,aAAa,GAOdwnB,QAAS,CACRr0C,KAAMmI,UAGR2lB,OAAQ,CACP8qC,SAAU,GACVC,cAAe,SAgGjBC,GAlFG,cACwB16B,GACfnW,sBACV,OAAO0wC,GAGGjlC,oBACV,MD9Da,0vCCiEdmd,WAAWjL,GACVpuC,KAAK68C,SAAU,EACf78C,KAAKilC,UAAU,WAAYmJ,GAG5BgL,YAAYsE,GACX19C,KAAK68C,SAAU,EAGhBpD,WAAWrL,GACV,OAAIoE,GAAUpE,GACNpuC,KAAKy+D,eAAerwB,G3E0CX,CAAGA,IAAUA,EAAM9mC,IAAoB,QAAd8mC,EAAM9mC,IAAgB8mC,EAAM4D,UAAYF,KAAiBa,GAAkBvE,GAAkB,GAAiB,GAAmB,G2EvCvKmzB,CAAcnzB,GACVpuC,KAAKwhE,mBAAmBpzB,QADhC,EAKDqwB,eAAerwB,GACd,MAAM/nB,EAAS+nB,EAAM/nB,OAEjBrmB,KAAKyhE,sBAAsBp7C,IAC9BrmB,KAAKilC,UAAU,gBAAiB,CAAEtQ,KAAMtO,IAI1Cm7C,mBAAmBpzB,GAClB,MAAM/nB,EAAS+nB,EAAM/nB,OAErB,GAAIrmB,KAAK0hE,uBAAuBr7C,GAAS,CACxC,MAAMs7C,EAAYvzB,EAClBuzB,EAAUhtC,KAAOtO,EACjBrmB,KAAKilC,UAAU,iBAAkB08B,IAQnCF,sBAAsBp7C,GACrB,MAAMu7C,GbhHoB7uD,EagHW/S,KAAKikC,Yb/GpCm1B,GAAarmD,EAAKiH,WADD,IAAGjH,EasH1B,OAJIsT,EAAOwe,iBACVxe,EAASA,EAAOwe,mBAGT+8B,EAASviE,QAAWuiE,EAASA,EAASviE,OAAS,KAAOgnB,EAM/Dq7C,uBAAuBr7C,GACtB,OAAOrmB,KAAKikC,cAAgB5d,EAGzBuqB,cACH,MAAO,CACNixB,KAAM,CACL,eAAe,EACf,qBAAqB,IAKpBv0C,UACH,OAAOymB,KAAW,WAAQrwC,QCwC5Bo+D,yBAnLiBC,GACf,OAAO/hE,KAAKgiE,OAAO7xD,IAAI4xD,mBAGRA,GACf,OAAO/hE,KAAKgiE,OAAOpxD,IAAImxD,oCAGSA,GAChC,OAAO/hE,KAAKiiE,eAAerxD,IAAImxD,sBAGbA,GAElB,OADA/hE,KAAKiiE,eAAexxD,OAAOsxD,GACpB/hE,KAAKgiE,OAAOvxD,OAAOsxD,qBAGTG,EAAUH,GACvB/hE,KAAKmiE,SAASJ,IACjB/hE,KAAKoiE,uBAAuBF,EAAUH,GACtC/hE,KAAKqiE,SAASN,GAAWt/D,KAAKy/D,IAE9BliE,KAAKsiE,YAAYJ,EAAUH,0BAING,EAAUH,GAChC,IAAK/hE,KAAKmiE,SAASJ,GAClB,OAGD,MAAMQ,EAAQviE,KAAKqiE,SAASN,GACtBS,EAAgBxiE,KAAKyiE,0BAA0BV,GAGrDQ,EAAMt6D,SAAO,CAAEy6D,EAAWxhC,EAAKrI,KAC9B,GAAIqpC,EAAS/nC,MAAQuoC,EAAUvoC,IAC9B,OAAOtB,EAAIjX,OAAOsf,EAAK,MAIrBshC,IAAkBN,GACrBliE,KAAKiiE,eAAehyD,IAAI8xD,EAAW,MAI/BQ,EAAMljE,QACVW,KAAK2iE,YAAYZ,sBAIAG,EAAUH,GACxBG,EAAS/jB,UACZn+C,KAAKiiE,eAAehyD,IAAI8xD,EAAWG,GAGpCliE,KAAKgiE,OAAO/xD,IAAI8xD,EAAW,CAACG,0BAGPvtC,EAAMotC,GAC3B,MAAMQ,EAAQviE,KAAKqiE,SAASN,GAC3Ba,EAAcL,EAAMljE,OACpBwjE,EAAsBN,EAAM9gD,QAAQkT,GAErC,GAAIiuC,GAAe,EAClB,OAGD,MAAME,EAAmB9iE,KAAK+iE,gBAAgBF,EAAqBN,GAEnEviE,KAAKgjE,uBAAuBF,EAAkBf,6BAGrBptC,EAAMotC,GAC/B,MAAMQ,EAAQviE,KAAKqiE,SAASN,GAC3Ba,EAAcL,EAAMljE,OACpBwjE,EAAsBN,EAAM9gD,QAAQkT,GAErC,GAAIiuC,GAAe,EAClB,OAGD,MAAMK,EAAuBjjE,KAAKkjE,oBAAoBL,EAAqBN,GAE3EviE,KAAKgjE,uBAAuBC,EAAsBlB,qBAGjCptC,EAAMotC,GACvB/hE,KAAKgjE,uBAAuBruC,EAAMotC,iCAGLoB,EAAkBpB,GAC/C,MAAMS,EAAgBxiE,KAAKyiE,0BAA0BV,GAErD/hE,KAAKojE,eAAeZ,GACpBxiE,KAAKqjE,aAAaF,GAClBnjE,KAAKiiE,eAAehyD,IAAI8xD,EAAWoB,yBAGdjB,GACjBA,IACHA,EAAS/jB,UAAW,uBAIF+jB,GACfA,IACHA,EAASl9B,QACTk9B,EAAS/jB,UAAW,EACpB+jB,EAASoB,WAAY,EACrBpB,EAASj9B,UAAU,kCAIE3tB,EAAKirD,GAE3B,IAAIgB,EAAoB,KAExB,GAAIjsD,IAHgBirD,EAAMljE,OAGA,EAAG,CAC5B,GAAIkjE,EAAM,GAAGrkC,UAAYqkC,EAAM,GAAGiB,SACjC,OAAOxjE,KAAK+iE,gBAAgB,EAAGR,GAEhCgB,EAAoBhB,EAAM,OACpB,CAAA,GAAIA,EAAMjrD,EAAM,GAAG4mB,UAAYqkC,EAAMjrD,EAAM,GAAGksD,SACpD,OAAOxjE,KAAK+iE,gBAAgBzrD,EAAM,EAAGirD,GAErCgB,EAAoBhB,EAAMjrD,EAAM,GAGjC,OAAOisD,6BAGmBjsD,EAAKirD,GAC/B,MAAMK,EAAcL,EAAMljE,OAC1B,IAAIokE,EAAwB,KAC5B,GAAY,IAARnsD,EAAW,CACd,GAAIirD,EAAMK,EAAc,GAAG1kC,UAAYqkC,EAAMK,EAAc,GAAGY,SAC7D,OAAOxjE,KAAKkjE,oBAAoBN,EAAc,EAAGL,GAElDkB,EAAwBlB,EAAMK,EAAc,OACtC,CAAA,GAAIL,EAAMjrD,EAAM,GAAG4mB,UAAYqkC,EAAMjrD,EAAM,GAAGksD,SACpD,OAAOxjE,KAAKkjE,oBAAoB5rD,EAAM,EAAGirD,GAEzCkB,EAAwBlB,EAAMjrD,EAAM,GAGrC,OAAOmsD,gCAGsBvB,EAAUH,GACvC,MAAMS,EAAgBxiE,KAAKyiE,0BAA0BV,GAEjDG,EAAS/jB,SACPqkB,EAEMN,IAAaM,IACvBxiE,KAAKojE,eAAeZ,GACpBxiE,KAAKiiE,eAAehyD,IAAI8xD,EAAWG,IAHnCliE,KAAKiiE,eAAehyD,IAAI8xD,EAAWG,GAK1BA,IAAaM,GACvBxiE,KAAKiiE,eAAehyD,IAAI8xD,EAAW,MAI1BC,oBAIV,OAHKhiE,KAAK0jE,UACT1jE,KAAK0jE,QAAU,IAAIzyD,KAEbjR,KAAK0jE,QAGFzB,4BAIV,OAHKjiE,KAAK2jE,kBACT3jE,KAAK2jE,gBAAkB,IAAI1yD,KAErBjR,KAAK2jE,kBC5Kd,MACMC,GAAUh7D,GAAqBimC,EAAI,kBAAkBgK,GAAUjwC,EAAQuxB,4CAA4C0e,GAAUjwC,EAAQuxB,gBAAgBvxB,EAAQlE,SAASm0C,GAAUjwC,EAAQsM,qBACxL2uD,GAAUj7D,GAAqBimC,EAAI,aAAagK,GAAUjwC,EAAQuxB,uCAAuC0e,GAAUjwC,EAAQk7D,0BAE3HC,GAAan7D,GAAoBkmC,EAAG,uIAC1Ck1B,GALgBp7D,GAAqBimC,EAAI,8BAA8BoC,GAASroC,EAAQgoC,QAAQixB,qCAAqChpB,GAAUjwC,EAAQu1C,6BAA6BtF,GAAUjwC,EAAQq7D,iCAAiCprB,GAAUjwC,EAAQs7D,mCAAmCrrB,GAAUjwC,EAAQozD,sCAAsCnjB,GAAUjwC,EAAQu7D,+BAA+BtrB,GAAUjwC,EAAQs/C,mBAAmBrP,GAAUjwC,EAAQ0kB,iBAAiB1kB,EAAQ0wC,uBAAuB1wC,EAAQ6wC,uBAAuB7wC,EAAQ8wC,yCAAyCzI,GAASroC,EAAQgoC,QAAQwzB,2EAA2EL,GAAUn7D,yCAA+CA,EAAQu1C,wBAAwBv1C,EAAQ46D,wBAAwB56D,EAAQs1B,mBAAmB2a,GAAUjwC,EAAQ5C,sCAAuC4C,EAAQsM,KAAO0uD,GAAOh7D,QAAWlF,IAAckF,EAAQy7D,cAAgBR,GAAOj7D,QAAWlF,UCCt8B8rB,GAAwB,gCAAiC,cAAeurB,IACxEvrB,GAAwB,qBAAsB,cAAewrB,ICwB7D,MAAMspB,GAAW,CAChBrvC,IAAK,kBACLmB,WAA2E,CAW1E8H,SAAU,CACT11B,KAAMmI,SAaP6yD,SAAU,CACTh7D,KAAMmI,SAcPwtC,SAAU,CACT31C,KAAMmI,SAUPuE,KAAM,CACL1M,KAAMrI,QAiBPokE,WAAY,CACXnwC,aAAcwqB,GAAWL,KACzB/1C,KAAMo2C,IA4BP54C,KAAM,CACLwC,KAAMrI,QAeP8G,MAAO,CACNuB,KAAMrI,QAYPuE,KAAM,CACL8D,KAAMmI,UAGR2lB,OAAsE,CAQrEkuC,OAAQ,KAoCP,MACGC,WAAoB79B,iBAExB/P,QAEA72B,KAAK43C,WAAaD,GAAc,sBAGtBlnB,sBACV,OAAO6zC,GAGG/rD,oBACV,OAAOm5B,GAGG/M,sBACV,OAAOq/B,GAGG9nC,oBACV,MD9Na,0pHCkOPjxB,QAAQ6P,IAAI,CACjBykC,GAAM5/C,SACN82C,GAAgB,wBAIlBrS,oBACCpkC,KAAK0kE,YAEL1kE,KAAK2kE,qBAGND,YACC,MAAME,EAAW5kE,KAAK6kE,MAChBC,EAAe9kE,KAAKgG,KAEtB8+D,IAAiBF,GAChBA,GAEH9C,GAAiBiD,gBAAgB/kE,KAAM4kE,GAGpCE,GAEHhD,GAAiBkD,WAAWhlE,KAAM8kE,IAEzBA,GACVhD,GAAiBM,uBAAuBpiE,KAAM8kE,GAG/C9kE,KAAK6kE,MAAQ7kE,KAAKgG,KAGnB2+D,qBACC,MAAMpnB,EAAc/wB,GAAW,eAC3B+wB,EACHA,EAAY0nB,sBAAsBjlE,MAAI,CAAGqQ,EAAS60D,KACjDA,EAAYhnC,SAAW7tB,EAAQ6tB,WAAa7tB,EAAQ8tC,SACpD+mB,EAAYj+D,MAAQoJ,EAAQ8tC,SAAW9tC,EAAQpJ,MAAQ,MAE9CjH,KAAKiH,OACf0Y,QAAQC,KAAI,6IAId05B,WACC,OAAOt5C,KAAKmlE,SAGbtN,YAAYzpB,GACX,MAAM02B,EAAe9kE,KAAKgG,KAErB8+D,IAIL12B,EAAMjmB,iBACN25C,GAAiBsD,eAAeplE,KAAM8kE,IAGvClN,UAAUxpB,GACT,MAAM02B,EAAe9kE,KAAKgG,KAErB8+D,IAIL12B,EAAMjmB,iBACN25C,GAAiBuD,mBAAmBrlE,KAAM8kE,IAG3CrrB,WAAWrL,GACV,OAAI8D,GAAQ9D,GACJA,EAAMjmB,iBAGV4pB,GAAQ3D,GACJpuC,KAAKmlE,WAGT7yB,GAAOlE,IAAUgE,GAAQhE,KAC5BpuC,KAAK63D,YAAYzpB,SAGdiE,GAAKjE,IAAU+D,GAAO/D,KACzBpuC,KAAK43D,UAAUxpB,KAIjBsL,SAAStL,GACJ8D,GAAQ9D,IACXpuC,KAAKmlE,SAIPA,SACC,OAAKnlE,KAAKslE,YAILtlE,KAAKgG,MAMV87D,GAAiByD,WAAWvlE,KAAMA,KAAKgG,MAChChG,OANNA,KAAKm+C,UAAYn+C,KAAKm+C,SACtBn+C,KAAKilC,UAAU,UACRjlC,MANAA,KAaTslE,YACC,QAAStlE,KAAKk+B,UAAYl+B,KAAKwjE,UAAYxjE,KAAKm+C,UAGjDqnB,yBACC,MAAM5tB,EAAa53C,KAAK43C,WAExB,MAAO,CACNp4C,MAASo4C,EAAWN,QAAQ4E,IAC5BuC,QAAW7G,EAAWN,QAAQ6E,KAI5BvL,cACH,MAAO,CACNwzB,MAAO,CACN,8BAA+BpkE,KAAKk+B,WAAal+B,KAAKwjE,UAAYpe,OAKjE6e,mBACH,OAAOjkE,KAAKwjE,SAAW,YAAS9/D,EAG7BwgE,mBACH,OAAOlkE,KAAKk+B,SAAW,YAASx6B,EAG7Bs4D,qBACH,OAAOh8D,KAAKkV,KAAI,GAAMlV,KAAKm6B,iBAAcz2B,EAGtCygE,sBACH,OAAOnkE,KAAKqkE,cAAa,GAAMrkE,KAAKm6B,iBAAcz2B,EAG/C2gE,oBACH,OAAOrkE,KAAKukE,aAAe3lB,GAAWL,KAGnCulB,qBACH,OAAO9jE,KAAKwlE,yBAAyBxlE,KAAKukE,YAGvCrc,eACH,MAAMlK,EAAWh+C,KAAK8iC,aAAa,YAEnC,OAAI9iC,KAAKk+B,SACD,KAGJl+B,KAAKgG,KACDhG,KAAKm+C,SAAW,IAAM,KAGvBH,GAAY,IAGhBynB,kBACH,MAA2B,SAApBzlE,KAAKukE,WAAwB,IAAM,IAGvCj3C,UACH,OAAOymB,KAAW,WAAQrwC,GAI5B+gE,GAAY9kE,SCzZZ,MACM+lE,GAAW,8IAEjBprB,GAHa,SAGM,UAAEorB,KCDrB,MACMC,GAAU/8D,GAAqBimC,EAAI,6EACnC+2B,GAAUh9D,GAAqBimC,EAAI,kBAAkBgK,GAAUjwC,EAAQuxB,iDAAiDvxB,EAAQi9D,OAAOnhE,SAASm0C,GAAUjwC,EAAQi9D,OAAO3wD,sBACzK4wD,GAAUl9D,GAAqBimC,EAAI,aAAagK,GAAUjwC,EAAQuxB,uCAAuC0e,GAAUjwC,EAAQk7D,+BAEjIiC,GALgBn9D,GAAqBimC,EAAI,iCAAiCoC,GAASroC,EAAQgoC,QAAQixB,wCAAwChpB,GAAUjwC,EAAQo9D,4BAA4BntB,GAAUjwC,EAAQq7D,iCAAiCprB,GAAUjwC,EAAQs7D,mCAAmCrrB,GAAUjwC,EAAQozD,sCAAsCnjB,GAAUjwC,EAAQu7D,+BAA+BtrB,GAAUjwC,EAAQs/C,wBAAwBt/C,EAAQ6wC,uBAAuB7wC,EAAQ8wC,qBAAqB9wC,EAAQ0wC,kBAAkBT,GAAUjwC,EAAQ0kB,kBAAkBurB,GAAUjwC,EAAQuxB,4CAA6CvxB,EAAQo9D,QAAUL,GAAO/8D,QAAWlF,eAAwBm1C,GAAUjwC,EAAQuxB,sCAAsCvxB,EAAQo9D,uBAAuBp9D,EAAQ46D,wBAAwB56D,EAAQs1B,0CAA2Ct1B,EAAQi9D,OAAO3wD,KAAO0wD,GAAOh9D,QAAWlF,IAAckF,EAAQy7D,cAAgByB,GAAOl9D,QAAWlF,0CCCn7B8rB,GAAwB,gCAAiC,cAAeurB,IACxEvrB,GAAwB,qBAAsB,cAAewrB,ICgB7D,MAAMirB,GAAW,CAChBhxC,IAAK,eACLmB,WAAuE,CAWtE8H,SAAU,CACT11B,KAAMmI,SAaP6yD,SAAU,CACTh7D,KAAMmI,SAcPq1D,QAAS,CACRx9D,KAAMmI,SAUPuE,KAAM,CACL1M,KAAMrI,QAYPokE,WAAY,CACX/7D,KAAMo2C,GACNxqB,aAAcwqB,GAAWL,MAY1B75C,KAAM,CACL8D,KAAMmI,SAmBP3K,KAAM,CACLwC,KAAMrI,QAGP0lE,OAAQ,CACPr9D,KAAMrJ,SAGRm3B,OAAmE,CAQlE4vC,OAAQ,KAwCP,MACGC,WAAiBv/B,GACXnW,sBACV,OAAOw1C,GAGG1tD,oBACV,OAAOm5B,GAGG/M,sBACV,OAAOohC,GAGG7pC,oBACV,MD1La,o2HC8LbrF,QAEA72B,KAAK6lE,OAAS,GACd7lE,KAAK43C,WAAaD,GAAc,sBAGjCvT,oBACCpkC,KAAKomE,YAELpmE,KAAK2kE,qBAGNyB,YACCpmE,KAAK6lE,OAAS1mE,OAAOmR,OAAO,GAAItQ,KAAK6lE,QACrC7lE,KAAK6lE,OAAO3wD,KAAOlV,KAAKkV,KACxBlV,KAAK6lE,OAAOnhE,KAAO1E,KAAK0E,KACxB1E,KAAK6lE,OAAOQ,cAAgBrmE,KAAKqmE,cAGlC1B,qBACC,MAAMpnB,EAAc/wB,GAAW,eAC3B+wB,EACHA,EAAY0nB,sBAAsBjlE,MAAI,CAAGqQ,EAAS60D,KACjDA,EAAYhnC,SAAW7tB,EAAQ6tB,WAAa7tB,EAAQ21D,QACpDd,EAAYj+D,MAAQoJ,EAAQ21D,QAAU,KAAO,MAEpChmE,KAAKgG,MACf2Z,QAAQC,KAAI,4IAId05B,WACCt5C,KAAKmlE,SAGN1rB,WAAWrL,GACN8D,GAAQ9D,IACXA,EAAMjmB,iBAGH4pB,GAAQ3D,IACXpuC,KAAKmlE,SAIPzrB,SAAStL,GACJ8D,GAAQ9D,IACXpuC,KAAKmlE,SAIPA,SAOC,OANInlE,KAAKslE,cACRtlE,KAAKgmE,SAAWhmE,KAAKgmE,QACrBhmE,KAAKilC,UAAU,UAEfjlC,KAAKilC,UAAU,kBAETjlC,KAGRslE,YACC,QAAStlE,KAAKk+B,UAAYl+B,KAAKwjE,UAGhCgC,yBACC,MAAM5tB,EAAa53C,KAAK43C,WAExB,MAAO,CACNp4C,MAASo4C,EAAWN,QAAQ4E,IAC5BuC,QAAW7G,EAAWN,QAAQ6E,KAI5BvL,cACH,MAAO,CACNixB,KAAM,CACL,2BAA4B7hE,KAAKk+B,WAAal+B,KAAKwjE,UAAYpe,OAK9D6e,mBACH,OAAOjkE,KAAKwjE,SAAW,YAAS9/D,EAG7BwgE,mBACH,OAAOlkE,KAAKk+B,SAAW,YAASx6B,EAG7Bs4D,qBACH,OAAOh8D,KAAKkV,KAAI,GAAMlV,KAAKm6B,iBAAcz2B,EAGtCygE,sBACH,OAAOnkE,KAAKqkE,cAAa,GAAMrkE,KAAKm6B,iBAAcz2B,EAG/C2gE,oBACH,OAAOrkE,KAAKukE,aAAe3lB,GAAWL,KAGnCulB,qBACH,OAAO9jE,KAAKwlE,yBAAyBxlE,KAAKukE,YAGvCrc,eACH,MAAMlK,EAAWh+C,KAAK8iC,aAAa,YACnC,OAAO9iC,KAAKk+B,cAAWx6B,EAAYs6C,GAAY,IAG5C1wB,UACH,OAAOymB,KAAW,WAAQrwC,gCAIpBuH,QAAQ6P,IAAI,CACjBykC,GAAM5/C,SACNg8C,GAAKh8C,SACL82C,GAAgB,yBAKnB0vB,GAASxmE,SC5TT6vB,GAAwB,gCAAiC,cAAeurB,IACxEvrB,GAAwB,qBAAsB,cAAewrB,ICY7D,MAAMsrB,GAAW,CAChBlwC,WAAwE,CAavE5tB,KAAM,CACLA,KAAM04D,GACN9sC,aAAc8sC,GAAaH,QAS5BnkB,OAAQ,CACPp0C,KAAMmI,SASP41D,WAAY,CACX/9D,KAAMmI,SAGPktD,MAAO,CACNr1D,KAAMuxD,GACN3lC,aAAc2lC,GAASxb,KACvBlpB,aAAa,IAGfiB,OAAQ,CAOPkwC,YAAa,GACbC,OAAQ,GACRrF,SAAU,GACVC,cAAe,SAuNjBqF,GAzMG,cACoBpF,GACX7wC,sBACV,OAAO61C,GAGGpqC,oBACV,MAAO,CDvFM,g9ECuFGolC,GAAaplC,oBAGlBqH,GACX1M,MAAM0M,GAENvjC,KAAK2mE,gBAAkBv4B,IAClB2D,GAAQ3D,IACXpuC,KAAK4mE,cAIP5mE,KAAK4mE,WAAU,KACV5mE,KAAK48C,SACR58C,KAAK48C,QAAS,IAIhB58C,KAAK43C,WAAaD,GAAc,sBAGjCvT,qBAAqBxT,GACpB5wB,KAAKumE,WAAcvmE,KAAKwI,OAAS04D,GAAaH,QAAY/gE,KAAK69D,QAAU9D,GAASF,OAGnF/5B,aACC5lB,SAASyM,iBAAiB,UAAW3mB,KAAK4mE,YAC1C1sD,SAASyM,iBAAiB,WAAY3mB,KAAK4mE,YAC3C1sD,SAASyM,iBAAiB,QAAS3mB,KAAK2mE,iBAGzC1mC,YACC/lB,SAAS0M,oBAAoB,UAAW5mB,KAAK4mE,YAC7C1sD,SAAS0M,oBAAoB,QAAS5mB,KAAK2mE,iBAC3CzsD,SAAS0M,oBAAoB,WAAY5mB,KAAK4mE,YAG/CntB,WAAWrL,GACVvX,MAAM4iB,WAAWrL,GAEjB,MAAMy4B,EAAa7mE,KAAKwI,OAAS04D,GAAaH,OAE1C7uB,GAAQ9D,IACXA,EAAMjmB,kBAGF+pB,GAAQ9D,IAAU2D,GAAQ3D,KAAWy4B,GACzC7mE,KAAK8mE,WAGF/0B,GAAQ3D,IACXpuC,KAAK+mE,cAAc34B,GAIrBsL,SAAStL,IACJ8D,GAAQ9D,IAAU2D,GAAQ3D,KAC7BpuC,KAAK4mE,aAGF10B,GAAQ9D,IACXpuC,KAAK+mE,cAAc34B,GAIrBmL,aAAanL,GACW,WAAnBA,EAAMoP,UAGVx9C,KAAK8mE,WAGNttB,WAAWpL,GACa,WAAnBA,EAAMoP,UAGVx9C,KAAK4mE,aAGNI,cAAc54B,GACbpuC,KAAKu5C,aAAanL,GAGnB64B,YAAY74B,GACXpuC,KAAKw5C,WAAWpL,GAGjBgL,cACCviB,MAAMuiB,cACNp5C,KAAK4mE,aAGNttB,SAASlL,GACe,WAAnBA,EAAMoP,UAGVx9C,KAAK+mE,cAAc34B,GAOpB84B,+BAA+B94B,GAC1BpuC,KAAKmnE,YAITnnE,KAAKilC,UAAU,sBAAuB,CAAEtQ,KAAM30B,KAAMm+C,SAAU/P,EAAM/nB,OAAO2/C,QAASpJ,2BAA2B,IAGhHwK,gCAAgCh5B,GAC3BpuC,KAAKmnE,YAITnnE,KAAKilC,UAAU,sBAAuB,CAAEtQ,KAAM30B,KAAMm+C,UAAW/P,EAAM/nB,OAAO83B,SAAUye,2BAA2B,IAGlHkK,WACK9mE,KAAKwI,OAAS04D,GAAaH,SAC9B/gE,KAAK48C,QAAS,GAIhByqB,SAASj5B,GACRpuC,KAAKilC,UAAU,sBAAuB,CAAEtQ,KAAM30B,KAAM48D,2BAA2B,IAGhF0K,cAAcl5B,GACbpuC,KAAKilC,UAAU,cAAe,CAAEtQ,KAAM30B,KAAMm+C,SAAUn+C,KAAKm+C,WAG5D4oB,cAAc34B,GACTpuC,KAAKmnE,YAITnnE,KAAKilC,UAAU,SAAU,CAAEtQ,KAAM30B,KAAMm+C,SAAUn+C,KAAKm+C,SAAU72C,IAAK8mC,EAAM9mC,MAGxE6/D,iBACH,OAAOnnE,KAAKwI,OAAS04D,GAAaJ,UAAY9gE,KAAKwI,OAAS04D,GAAaF,OAGtEuG,kCACH,OAAOvnE,KAAK69D,QAAU9D,GAASH,aAC3B55D,KAAK69D,QAAU9D,GAASL,kBAGzB8N,iCACH,OAAQxnE,KAAKunE,8BACRvnE,KAAK69D,QAAU9D,GAASJ,iBAAmB35D,KAAK69D,QAAU9D,GAASF,QAGrE4N,uBACH,MAAO,CACN1N,GAASL,kBACTK,GAASJ,gBACTI,GAASN,cACR3mD,SAAS9S,KAAK69D,OAGb6J,sBACH,OAAO1nE,KAAK69D,QAAU9D,GAASH,YAG5B+N,iBACH,OAAO3nE,KAAK69D,QAAU9D,GAASF,OAG5B+N,iBACH,OAAO5nE,KAAKwI,OAAS04D,GAAaF,OAG/B6G,mBACH,GAAI7nE,KAAK0nE,gBACR,OAAO1nE,KAAKm+C,SAMV2pB,iBACH,OAAO9nE,KAAK43C,WAAWN,QAAQ0E,kCAIzB/wC,QAAQ6P,IAAI,CACjB27B,GAAgB,0BCvRnB,MACMsxB,GAAUn/D,GAAqBimC,EAAI,GAAIjmC,EAAQ6+D,iBAAmBO,GAAOp/D,QAAWlF,IAAckF,EAAQ8+D,gBAAkBO,GAAOr/D,QAAWlF,IAAckF,EAAQ++D,WAAaO,GAAOt/D,QAAWlF,IACnMskE,GAAUp/D,GAAqBimC,EAAI,kCAAkCjmC,EAAQu+D,uCAAuCtuB,GAAUjwC,EAAQuxB,mFAAmFvxB,EAAQu1C,wBAAwBv1C,EAAQw+D,uDACjQa,GAAUr/D,GAAqBimC,EAAI,+BAA+BjmC,EAAQu+D,uCAAuCtuB,GAAUjwC,EAAQuxB,0EAA0EvxB,EAAQu1C,wBAAwBv1C,EAAQs+D,mDACrPgB,GAAUt/D,GAAqBimC,EAAI,oDAAoDgK,GAAUjwC,EAAQuxB,qFAAqFvxB,EAAQy+D,uBAAuBxuB,GAAUjwC,EAAQk/D,uCAC/OK,GAAUv/D,GAAqBimC,EAAI,wBAAwBgK,GAAUjwC,EAAQ6R,+BAC7E2tD,GAAUx/D,GAAqBimC,EAAI,+BAA+BgK,GAAUjwC,EAAQmwC,0CACpFsvB,GAAUz/D,GAAqBimC,EAAI,iEACnCy5B,GAAU1/D,GAAqBimC,EAAI,gDAAgDgK,GAAUjwC,EAAQ2/D,wBACrGC,GAAU5/D,GAAqBimC,EAAI,yCAAyCgK,GAAUjwC,EAAQ4C,gBAC9Fi9D,GAAW7/D,GAAqBimC,EAAI,+BAA+BgK,GAAUjwC,EAAQmwC,0CACrF2vB,GAAW9/D,GAAqBimC,EAAI,kGAAkGjmC,EAAQ0+D,2CAC9IqB,GAAW//D,GAAqBimC,EAAI,GAAIjmC,EAAQ6+D,iBAAmBmB,GAAQhgE,QAAWlF,IAAckF,EAAQ8+D,gBAAkBmB,GAAQjgE,QAAWlF,IAAckF,EAAQ++D,WAAamB,GAAQlgE,QAAWlF,IACvMklE,GAAWhgE,GAAqBimC,EAAI,kCAAkCjmC,EAAQu+D,uCAAuCtuB,GAAUjwC,EAAQuxB,mFAAmFvxB,EAAQu1C,wBAAwBv1C,EAAQw+D,uDAClQyB,GAAWjgE,GAAqBimC,EAAI,+BAA+BjmC,EAAQu+D,uCAAuCtuB,GAAUjwC,EAAQuxB,0EAA0EvxB,EAAQu1C,wBAAwBv1C,EAAQs+D,mDACtP4B,GAAWlgE,GAAqBimC,EAAI,oDAAoDgK,GAAUjwC,EAAQuxB,qFAAqFvxB,EAAQy+D,uBAAuBxuB,GAAUjwC,EAAQk/D,2CAEtPiB,GAjBgBngE,GAAqBimC,EAAI,iBAAiBgK,GAAUjwC,EAAQu0C,sBAAsBlM,GAASroC,EAAQgoC,QAAQixB,eAAehpB,GAAUjwC,EAAQ0kB,mBAAmB1kB,EAAQywC,0BAA0BzwC,EAAQwwC,wBAAwBxwC,EAAQ8wC,uBAAuB9wC,EAAQ6wC,yBAAyB7wC,EAAQ4wC,2BAA2B5wC,EAAQ2wC,8BAA8B3wC,EAAQo+D,6BAA6Bp+D,EAAQq+D,wBAAwBr+D,EAAQ0wC,4BAA4BT,GAAUjwC,EAAQi/D,kCAAmCj/D,EAAQ2+D,4BAA8BQ,GAAOn/D,QAAWlF,aAAsBm1C,GAAUjwC,EAAQuxB,2CAA4CvxB,EAAQogE,aAAeb,GAAOv/D,QAAWlF,IAAckF,EAAQqgE,iBAAmBb,GAAOx/D,QAAWlF,wCAAkDkF,EAAQyjB,YAAYhtB,OAASgpE,GAAOz/D,QAAWlF,IAAckF,EAAQ2/D,YAAcD,GAAO1/D,QAAWlF,kCAA2Cm1C,GAAUjwC,EAAQJ,sBAAuBI,EAAQ4C,KAAOg9D,GAAO5/D,QAAWlF,YAAsBkF,EAAQsgE,eAAiBT,GAAQ7/D,QAAWlF,IAAckF,EAAQg/D,WAAac,GAAQ9/D,QAAWlF,IAAckF,EAAQ4+D,2BAA6BmB,GAAQ//D,QAAWlF,SCKltC,MAAMylE,GAAW,CAChBl0C,IAAK,SACLmB,WAA+E,CAS9EmyC,YAAa,CACZ//D,KAAMrI,QAaP44C,KAAM,CACLvwC,KAAMrI,QAYPu8C,QAAS,CACRl0C,KAAMmI,SAWP8J,MAAO,CACNjS,KAAMrI,QASPqL,KAAM,CACLhD,KAAMrI,QAYPipE,UAAW,CACV5gE,KAAMo2C,GACNxqB,aAAcwqB,GAAWL,MAQ1B8qB,SAAU,CACT7gE,KAAMmI,UAGR8kB,MAA0E,CAUzE3I,QAAW,CACVtkB,KAAMotB,QAmBN,MACG0zC,WAAyB5C,GACnBnuD,oBACV,OAAOm5B,GAGG/M,sBACV,OAAOokC,GAGG7sC,oBACV,OAAOwqC,GAASxqC,OAGNzL,sBACV,OAAO04C,GAGR/kC,qBAAqBxT,GACpBiG,MAAMuN,qBAAqBxT,GAC3B5wB,KAAKqpE,WAAarpE,KAAKqsB,YAGpB28C,mBACH,QAAShpE,KAAKya,MAGXwuD,uBACH,OAAQjpE,KAAK+4C,OAAS/4C,KAAK08C,QAGxBwsB,qBACH,OAAQlpE,KAAK+4C,MAAQ/4C,KAAK08C,sCAIpBf,GAAKh8C,UAIb2pE,GAAiB3pE,aAEjB4pE,GAAeD,GCpKf,MACME,GAAU5gE,GAAqBimC,EAAI,aAAagK,GAAUjwC,EAAQuxB,gDAAgD0e,GAAUjwC,EAAQk7D,8BAE1I2F,GAHgB7gE,GAAqBimC,EAAI,qCAAqCgK,GAAUjwC,EAAQkyC,mBAAmBjC,GAAUjwC,EAAQs/C,kBAAkBrP,GAAUjwC,EAAQuxB,uEAAuE0e,GAAUjwC,EAAQuxB,iCAAiC0e,GAAUjwC,EAAQ8gE,qCAAqC7wB,GAAUjwC,EAAQ+gE,0BAA0B/gE,EAAQ6wC,uBAAuB7wC,EAAQ8wC,uBAAuB9wC,EAAQywC,0BAA0BzwC,EAAQwwC,wBAAwBxwC,EAAQghE,yEAAyE/wB,GAAUjwC,EAAQuxB,oBAAoB0e,GAAUjwC,EAAQuxB,gBAAgB0e,GAAUjwC,EAAQihE,oFAAoFjhE,EAAQkhE,uBAAuBjxB,GAAUjwC,EAAQkyC,sBAAuBlyC,EAAQy7D,cAAgBmF,GAAO5gE,QAAWlF,0CCAv3B,MACMqmE,GAAUnhE,GAAqBimC,EAAI,yJAAyJgK,GAAUjwC,EAAQohE,4CAA4CnxB,GAAUjwC,EAAQqhE,mCAAmCpxB,GAAUjwC,EAAQshE,4BAA4BthE,EAAQ6wC,gGAAgGZ,GAAUjwC,EAAQuhE,+FAA+FvhE,EAAQghE,8GAA8GhhE,EAAQwhE,yCAAyCvxB,GAAUjwC,EAAQyhE,yBAA0B36B,GAAO9mC,EAAQ0hE,gBAAc,CAAG31C,EAAM1T,IAAU0T,EAAKwF,KAAOlZ,KAAQ0T,EAAM1T,IAAUspD,GAAO51C,EAAM1T,EAAOrY,2CACj3B2hE,GAAM,CAAI51C,EAAM1T,EAAOrY,IAAqBimC,EAAI,sBAAsBla,EAAKwpB,mBAAmBtF,GAAUlkB,EAAKokB,cAAcF,GAAUlkB,EAAKr1B,gBAAgBu5C,GAAUlkB,EAAKtI,+BAE/Km+C,GAJgB5hE,GAAqBimC,EAAI,GAAIjmC,EAAQ4D,QAAUu9D,GAAOnhE,QAAWlF,ICCjF8rB,GAAwB,gCAAiC,cAAeurB,IACxEvrB,GAAwB,qBAAsB,cAAewrB,ICD7DxrB,GAAwB,gCAAiC,cAAeurB,IACxEvrB,GAAwB,qBAAsB,cAAewrB,ICmC7D,MAAMyvB,GAAW,CAChBx1C,IAAK,aACLkB,cAAc,EACdV,MAAgE,CAe/D3I,QAAW,CACViV,aAAc,UACdv5B,KAAMgsB,YACNqN,UAAW,CAAE6oC,QAAS,CAAC,QAGzBt0C,WAAuE,CAWtE8H,SAAU,CACT11B,KAAMmI,SAoBP3K,KAAM,CACLwC,KAAMrI,QAmBPokE,WAAY,CACX/7D,KAAMo2C,GACNxqB,aAAcwqB,GAAWL,MAG1BsrB,MAAO,CACNrhE,KAAMrI,OACNk1B,aAAa,GAGdy0C,aAAc,CACbthE,KAAMmI,QACN0kB,aAAa,GAMd8H,OAAQ,CACP30B,KAAMmI,SAMPksC,QAAS,CACRr0C,KAAMmI,UAGR2lB,OAAiE,CAQhE4vC,OAAQ,CACPtiC,OAAQ,CACP+mC,eAAgB,OAgCjB,MACGC,WAAehkC,GACTnW,sBACV,OAAOg6C,GAGGlyD,oBACV,OAAOm5B,GAGG/M,sBACV,OAAO8kC,GAGG7vC,gCACV,OAAO4wC,GAGGtuC,oBACV,MFxMa,o0KE2MHnC,8BACV,MD5Ma,2xFCgNblD,QAEA72B,KAAKsqE,eAAiB,GACtBtqE,KAAK6qE,gBAAiB,EACtB7qE,KAAK8qE,0BAA2B,EAChC9qE,KAAK+qE,gBAAiB,EACtB/qE,KAAKgrE,oBAAsB,KAC3BhrE,KAAK43C,WAAaD,GAAc,sBAGjCvT,oBACCpkC,KAAKirE,iBACLjrE,KAAK2kE,qBAGNtrB,aACCr5C,KAAK68C,SAAU,EAGhBzD,cACCp5C,KAAK68C,SAAU,EAGZquB,oBACH,OAAOlrE,KAAKmrE,mBAAqBnrE,KAAKmrE,kBAAkBhuC,4BAIxDn9B,KAAK8pE,cAAe,EAEpB,aAD6B9pE,KAAK4lC,2BACZlZ,cAAc,0BASjCi+C,qBACH,OAAO3qE,KAAKwM,QAAQqE,MAAKu6D,GAAUA,EAAOjtB,sCAI1Cn+C,KAAKmrE,wBAA0BnrE,KAAKqrE,eAChCrrE,KAAKk+B,WAITl+B,KAAK0lC,qCAED1lC,KAAKkrE,cACRlrE,KAAKmrE,kBAAkBxkB,QAEvB3mD,KAAKmrE,kBAAkBha,KAAKnxD,OAI9BirE,iBACC,IAAIK,GAA0B,EAC9B,MAAMvqE,EAAOf,KAAKwM,QAAQ4D,KAAG,CAAEm7D,EAAKtqD,KAC/BsqD,EAAIptB,WACPmtB,EAA0BrqD,GAG3BsqD,EAAIptB,UAAW,EAER,CACNA,UAAU,EACVpF,KAAMwyB,EAAIxyB,KACV9xC,MAAOskE,EAAItkE,MACXolB,YAAak/C,EAAIl/C,YACjB/sB,GAAIisE,EAAIpxC,QAINmxC,GAA0B,GAC7BvqE,EAAKuqE,GAAyBntB,UAAW,EACzCn+C,KAAKwM,QAAQ8+D,GAAyBntB,UAAW,EACjDn+C,KAAK6pE,MAAQ9oE,EAAKuqE,GAAyBj/C,YAC3CrsB,KAAK6qE,eAAiBS,IAEtBtrE,KAAK6pE,MAAQ,GACb7pE,KAAK6qE,gBAAiB,IAGS,IAA5BS,GAAkCvqE,EAAK,KAC1CA,EAAK,GAAGo9C,UAAW,EACnBn+C,KAAKwM,QAAQ,GAAG2xC,UAAW,EAC3Bn+C,KAAK6qE,eAAiB,EACtB7qE,KAAK6pE,MAAQ7pE,KAAKwM,QAAQ,GAAG6f,aAG9BrsB,KAAKsqE,eAAiBvpE,EAGvB4jE,qBACC,MAAMpnB,EAAc/wB,GAAW,eAC3B+wB,EACHA,EAAY0nB,sBAAsBjlE,MAAI,CAAGqQ,EAAS60D,KACjDA,EAAYhnC,SAAW7tB,EAAQ6tB,SAC/BgnC,EAAYj+D,MAAQoJ,EAAQm7D,yBAAyBvkE,SAE5CjH,KAAKgG,MACf2Z,QAAQC,KAAI,4IAId65B,WAAWrL,G5FhMA,CAAGA,GACVA,EAAM9mC,IACa,OAAd8mC,EAAM9mC,MAAiB2qC,GAAgB7D,KAA4B,cAAdA,EAAM9mC,KAAqC,SAAd8mC,EAAM9mC,KAAkC,YAAd8mC,EAAM9mC,KAAmC,OAAd8mC,EAAM9mC,MAAkBqrC,GAAkBvE,GAAkB,GAAiB,GAAkB,GAGvOA,EAAM4D,UAAYF,KAAgBG,GAAgB7D,IAAYA,EAAM4D,UAAYF,IAAuBa,GAAkBvE,GAAkB,GAAiB,GAAkB,G4F4LjLq9B,CAAOr9B,IACVpuC,KAAK4pE,qBAGF13B,GAAQ9D,IACXA,EAAMjmB,iBAGFnoB,KAAKkrE,eACTlrE,KAAK0rE,uBAAuBt9B,GAAO,GAIrCsL,SAAStL,GACJ8D,GAAQ9D,KAAWpuC,KAAKkrE,eAC3BlrE,KAAK4pE,qBAIP+B,sBAAsBh3C,GACrB,MAAO,GAAGlT,QAAQpc,KAAKsvB,EAAKvC,cAAcpY,SAAU2a,GAGrDi3C,QAAQ3qD,GACPjhB,KAAKwM,QAAQxM,KAAK6qE,gBAAgB1sB,UAAW,EAC7Cn+C,KAAK6qE,eAAiB5pD,EACtBjhB,KAAKwM,QAAQyU,GAAOk9B,UAAW,EAGhCksB,iBAAiBj8B,GAChB,MAAMy9B,EAAoB7rE,KAAK2rE,sBAAsBv9B,EAAMxK,OAAOjP,MAElE30B,KAAK4rE,QAAQC,GACb7rE,KAAK4pE,qBAGNI,uBACC,IAAKhqE,KAAKwrE,yBACT,OAGD,MAAMM,EAAK9rE,KAAKmrE,kBAAkBz+C,cAAa,IAAK1sB,KAAKwrE,yBAAyBrxC,UAElF2xC,EAAG15C,cAAcqrC,gBAAgB/G,aAAe12D,KAAK6qE,eACrDiB,GAAMA,EAAG9mC,QAGVolC,qBAAqBh8B,GACpBpuC,KAAK0rE,uBAAuBt9B,GAAO,GAGpCs9B,uBAAuBt9B,EAAO29B,GAC7B,IAAIzqC,GAAY,EAChB,MAAM0qC,EAAY15B,GAAOlE,GACnB69B,EAAU55B,GAAKjE,IAEjB49B,GAAaC,KAChB79B,EAAMjmB,iBAELmZ,EADG0qC,EACShsE,KAAKksE,sBAELlsE,KAAKmsE,0BAGlBnsE,KAAKwM,QAAQxM,KAAK6qE,gBAAgB1sB,UAAW,EAC7Cn+C,KAAKwM,QAAQ80B,GAAW6c,UAAW,EACnCn+C,KAAK6qE,gBAA+B,IAAdvpC,EAAmBthC,KAAK6qE,eAAiBvpC,EAE3DyqC,GACH/rE,KAAKilC,UAAU,SAAU,CAAE0lC,eAAgB3qE,KAAKwM,QAAQ80B,MAItDiR,GAASnE,KACZpuC,KAAK+qE,gBAAiB,IAGnBh5B,GAAQ3D,IAAU8D,GAAQ9D,MAC7BpuC,KAAKosE,qBAAsB,GAI7BF,sBACC,OAAOlsE,KAAK6qE,iBAAoB7qE,KAAKwM,QAAQnN,OAAS,EAAKW,KAAK6qE,eAAkB7qE,KAAK6qE,eAAiB,EAGzGsB,0BACC,OAA+B,IAAxBnsE,KAAK6qE,eAAuB7qE,KAAK6qE,eAAkB7qE,KAAK6qE,eAAiB,EAGjFZ,cACCjqE,KAAK8qE,yBAA2B9qE,KAAK6qE,eACrC7qE,KAAKgrE,oBAAsBhrE,KAAKwM,QAAQxM,KAAK6qE,gBAG9CX,cACClqE,KAAK8pE,cAAe,EAEhB9pE,KAAK+qE,gBACR/qE,KAAK4rE,QAAQ5rE,KAAK8qE,0BAClB9qE,KAAK+qE,gBAAiB,GACZ/qE,KAAKgrE,sBAAwBhrE,KAAKwM,QAAQxM,KAAK6qE,kBACzD7qE,KAAKilC,UAAU,SAAU,CAAE0lC,eAAgB3qE,KAAKwM,QAAQxM,KAAK6qE,kBAC7D7qE,KAAKgrE,oBAAsBhrE,KAAKwM,QAAQxM,KAAK6qE,iBAI3CrF,6BACH,MAAM5tB,EAAa53C,KAAK43C,WAExB,MAAO,CACN4G,QAAW5G,EAAWN,QAAQ+E,IAC9BqC,YAAe9G,EAAWN,QAAQ8E,IAClC58C,MAASo4C,EAAWN,QAAQ4E,IAC5BuC,QAAW7G,EAAWN,QAAQ6E,KAI5B2nB,qBACH,OAAO9jE,KAAKwlE,uBAAuBxlE,KAAKukE,YAGrCF,oBACH,OAAOrkE,KAAKukE,aAAe3lB,GAAWL,KAGnCmrB,uBACH,OAAO1pE,KAAKqkE,cAAa,GAAMrkE,KAAKm6B,0BAAuBz2B,EAGxDimE,iBACH,OAAO3pE,KAAKk+B,eAAYx6B,EAGrBymE,uBACH,OAAOnqE,KAAK43C,WAAWN,QAAQ2E,IAG5BowB,2BACH,OAAOrsE,KAAKo6B,WAAW1N,cAAa,IAAK1sB,KAAKwM,QAAQxM,KAAK6qE,gBAAgB1wC,UAGxEqxC,+BACH,OAAOxrE,KAAKwM,QAAQxM,KAAK6qE,gBAGtB3iB,eACH,OAAOloD,KAAKk+B,SAAW,KAAO,IAG3B4c,UACH,OAAO/G,KAAW,MAAQ,oCAIpB9oC,QAAQ6P,IAAI,CACjBujC,GAAO1+C,SACP4/C,GAAM5/C,SACN01D,GAAkB11D,SAClBghE,GAAKhhE,SACL4pE,GAAiB5pE,SACjBg8C,GAAKh8C,YAKRirE,GAAOjrE,SC/dP,IAAI2sE,GAAuB7yD,GACjBA,EAAIsX,QAAO,gBAAkB,IAGnCw7C,GAAuB9yD,IACR,qHAONxR,SAASukE,IAChB/yD,EAAMA,EAAIsX,QAAQy7C,EAAO,OAErB/yD,GAGNgzD,GAAe/9D,GAED,GADM49D,GAAoB59D,EAAK2b,SAAS89B,cACXz5C,EAAK7O,OAIhD6sE,GAAaF,GAAmBt3D,KAAmBA,EAAKmc,MAAMm7C,GAE9DG,GAAqBlzD,GACf8yD,GAAoB9yD,KAASA,EA6F5BmzD,GAAal+D,IACrB,IAAIm+D,GAAyB,EAEzBC,EApFa,CAAIp+D,IACrB,IAAK2b,SAACA,GAAa3b,EASfuL,EAAOJ,EAlBD,aAoBP,GAT8D,CAC9D,CAAC,YAAa,GAAI8yD,IAClB,CAAC,cAAe,cAAeD,GAAS,uBACxC,CAAC,eAAgB,QAASA,GAAS,iBACnC,CAAC,SAAU,UAAWA,GAAS,oBAMlBt8D,KAAG,EAAGpK,EAAM+mE,EAAW9qB,MACjC,IAAI+qB,EAAanzD,EArBb,aAqBuB,CAAEwS,YAAarmB,IAK1C,OAJIi8C,EAAK53B,EAAS89B,QACf6kB,EAAW7uB,UAAW,GAEzB6uB,EAAWC,QAAQF,UAAYA,EACxBC,MAeb,OAXA/yD,EAAK0M,iBACF,UACCoB,IACEpI,QAAQG,IAAI,KAAMiI,GAClB,IAAImlD,EAAiBnlD,EAAW6b,OAAO+mC,eAAesC,QAAQF,UAC1DI,EAAwBZ,GAAoBE,GAAY/9D,IAC5D2b,EAAS/Z,OAAO68D,EAAwBD,MAE3C,GAGI,MAAEjzD,IAkDcmzD,CAAiB1+D,GACpC2+D,EA3CU,CAAI3+D,IAClB,IAAK2b,SAACA,GAAa3b,EAOnB,MAAO,CAAEuL,KAAMJ,EA3DL,aA2De,SALd,KACR,IAAI1B,EAAcm0D,GAAoBjiD,EAAS89B,MAC/C99B,EAAS/Z,OAAO6H,IAGiBkU,YAAa,eAmC7BihD,CAAc5+D,GAC9B6+D,EA5Bc,CAAI7+D,IACtB,IAAK2b,SAACA,GAAa3b,EAOnB,MAAO,CAAEuL,KAAMJ,EA3EL,aA2Ee,SALd,KACR,IAAI1B,EAAcs0D,GAAY/9D,GAC9B2b,EAAS/Z,OAAO6H,IAGiBkU,YAAa,mBAoBzBmhD,CAAkB9+D,GACtC++D,EAfmB,MACvB,IAAIxzD,EAAOJ,EAlFD,aAkFW,CAAE6zD,UAAW,WAElC,MAAO,MACJzzD,EACA0zD,OAAQvnD,GAAUnM,EAAM,WAUC2zD,GAExB3zD,EAAOJ,EACR,OACA,CACGg0D,UAAW,aAEd,CAACf,EAAiB7yD,KAAMozD,EAAcpzD,KAAMszD,EAAkBtzD,OAGjE,MAAO,MACJA,EACApC,iBAAkB41D,EAAsBE,OACxC71D,0BAA4BxB,IACzB,GAAIA,IAAeu2D,EAChB,OAAO,GAES,IAAfv2D,EACD2D,EAAK6zD,OAAOL,EAAsBxzD,MAElCwzD,EAAsBxzD,KAAK+G,SAE9B6rD,EAAyBv2D,KCnJ9By3D,GAAar/D,IACd,IAAK2b,SAACA,GAAa3b,EAEf6G,EAAS6U,GAA8BC,EAAU,CAClDxqB,KAAI,ICfAkD,KAAKiM,SACR9H,SAAS,IACTvE,MAAM,GACNqxB,cDaDg6C,KAAI,KAAQ,EACZC,KAAI,KAAQ,EACZ/1D,OAAM,KAAQ,EACdg2D,WAAU,EAAIh2D,OAACA,KAAaA,IAC5Bo1C,KAAI,EAAIp1C,OAACA,KAAaA,IACtBS,UAAS,EAAI20C,KAACA,KAAYA,IAAS,GAAI,EACvC/wC,UAAS,KAAQ,EACjB3D,YAAW,EAAIs1D,WAACA,KAAkBA,IAAe,GAAI,EACrD37D,KAAI,EAAIy7D,KAACA,EAAIC,KAAEA,EAAIt1D,UAAEA,MAClB,IAAIw1D,EAAaH,IAAS,EAAIC,IAAS,EAAI,EAC3C,OAAQt1D,KAAe,EAAI,CAAC,EAAG,EAAG,IAAM,CAAC,GAAI,GAAI,KAAKw1D,IAEzDC,MAAK,KAAQ,EACbv3D,aAAY,EAAIu3D,MAACA,EAAK77D,KAAEA,KACjB67D,KAAW,EACLA,IAAUA,IAAU77D,IAEpB,EAGbwE,wBAAuB,IAAQ,IAYlC,OATyB,IAArBxB,EAAOoD,YACRpD,EAAOoD,UAAY01D,EAAAA,IAEK,IAAvB94D,EAAOqD,cACRrD,EAAOqD,YAAcy1D,EAAAA,GAGxB1uD,QAAQnU,KAAI,SAAU+J,EAAO1V,QAEtB0V,GEzCK9O,WtJAQ,CAAI4jB,IACxB,IAAIikD,EAAejkD,EAAS89B,KAAKp3B,QAAO,SAAW,IAEnD,GAAIu9C,EAAax7D,SAAS,KAAM,MAAM,IAAItT,MAM1C,GAJI6qB,EAAS89B,OAASmmB,GACnBjkD,EAAS0G,QAAQu9C,GAGhBjkD,EAAS89B,KAAKr1C,SAAS,KAAM,MAAM,IAAItT,OsJR3C+uE,CAAalkD,UAEb,IAAK7O,OAACA,EAAMjG,OAAEA,EAAMsC,iBAAEA,EAAgBC,0BAAEA,GFyC5B,CAAIpJ,IAChB,IAAKwL,SAACA,EAAQmQ,SAAEA,GAAa3b,EACzB6G,EAASw4D,GAAUr/D,GACnB8/D,EAAY5B,GAAU,UAAEviD,EAAUxqB,KAAM0V,EAAO1V,OAE/C2b,EAAS3B,EAAE,UACf2B,EAAOvP,MAAQ,IACfuP,EAAOW,OAAS,IAEhB,IAAIsyD,EAAS50D,EAAE,IAAK,CACjBkU,WG9DyB2gD,EH8DG,0CG7DzB,YAAaA,+9CADK,IAAIA,EH2E5B,OAVAx0D,EAASuE,KAAKqvD,OACXj0D,EAAE,KAAM,CACLwS,YAAanS,EAAS8/B,MACtB6zB,UAAW,WAEdW,EAAUv0D,KACVJ,EAAE,MAAO,GAAI,CAAC2B,IACdizD,GAGI,QACJjzD,SACAjG,EACAsC,iBAAkB22D,EAAU32D,iBAC5BC,0BAA2B02D,EAAU12D,4BEpE8B62D,CAAK,UACxEz0D,kBACAmQ,WAGCrb,EAASiI,EAAAxH,EAAA,CAAW8F,EAAO1V,MAC3B0b,QAAcX,IACdjD,EAAU0D,EAAc,OAAEE,SAAOC,SAAQjG,IACzCqC,EAAQ2P,KAEZ7P,EAAK,QACFnC,UACAoC,QACAC,SACA5I,mBACA6I,4BACAC,EACAvF,KAAM,CACH5Q,EAAGoB,KAAKwsD,MAAqB,EAAdh6C,EAAOhD,KAAY,GAClC3Q,EAAG2T,EAAOhD,SE1BnBq8D","sources":["node_modules/@parcel/runtime-js/lib/helpers/bundle-manifest.js","node_modules/seedrandom/lib/alea.js","node_modules/seedrandom/lib/xor128.js","node_modules/seedrandom/lib/xorwow.js","node_modules/seedrandom/lib/xorshift7.js","node_modules/seedrandom/lib/xor4096.js","node_modules/seedrandom/lib/tychei.js","node_modules/@parcel/runtime-js/lib/runtime-2bfbe724b35597e1.js","node_modules/regenerator-runtime/runtime.js","node_modules/seedrandom/seedrandom.js","node_modules/seedrandom/index.js","src/util/window.ts","node_modules/node-dijkstra/libs/PriorityQueue.js","node_modules/node-dijkstra/libs/removeDeepFromMap.js","node_modules/node-dijkstra/libs/toDeepMap.js","node_modules/node-dijkstra/libs/validateDeep.js","node_modules/node-dijkstra/libs/Graph.js","src/util/array2d.ts","src/core/labyrinth/joinableSet.ts","src/core/labyrinth/kruskal.ts","src/util/pair.ts","src/core/labyrinth/generateLabyrinth.ts","src/core/labyrinth/shuffle.ts","src/core/core.ts","node_modules/@parcel/runtime-js/lib/runtime-3c3d71590141f7b3.js","node_modules/@parcel/runtime-js/lib/runtime-2b6dec436e31e8a3.js","src/util/promise.ts","src/page/lib/hyper.ts","src/display/loadImage.ts","src/display/asset.ts","src/display/color.ts","src/display/display.ts","src/util/getContext2d.ts","src/util/scaleToFitIn.ts","node_modules/tslib/tslib.es6.js","node_modules/rxjs/src/internal/util/isFunction.ts","node_modules/rxjs/src/internal/config.ts","node_modules/rxjs/src/internal/util/hostReportError.ts","node_modules/rxjs/src/internal/Observer.ts","node_modules/rxjs/src/internal/util/isArray.ts","node_modules/rxjs/src/internal/util/UnsubscriptionError.ts","node_modules/rxjs/src/internal/Subscription.ts","node_modules/rxjs/src/internal/util/isObject.ts","node_modules/rxjs/src/internal/symbol/rxSubscriber.ts","node_modules/rxjs/src/internal/Subscriber.ts","node_modules/rxjs/src/internal/symbol/observable.ts","node_modules/rxjs/src/internal/util/identity.ts","node_modules/rxjs/src/internal/util/pipe.ts","node_modules/rxjs/src/internal/util/deferred.ts","node_modules/rxjs/src/internal/asyncIteratorFrom.ts","node_modules/rxjs/src/internal/Observable.ts","node_modules/rxjs/src/internal/util/toSubscriber.ts","node_modules/rxjs/src/internal/util/canReportError.ts","node_modules/rxjs/src/internal/util/ObjectUnsubscribedError.ts","node_modules/rxjs/src/internal/SubjectSubscription.ts","node_modules/rxjs/src/internal/Subject.ts","node_modules/rxjs/src/internal/operators/map.ts","node_modules/rxjs/src/internal/observable/fromEvent.ts","src/input/keyboardManager.ts","src/input/input.ts","src/input/fingerMoveManager.ts","src/util/urlParam.ts","node_modules/@ui5/webcomponents-base/dist/thirdparty/isPlainObject.js","node_modules/@ui5/webcomponents-base/dist/thirdparty/_merge.js","node_modules/@ui5/webcomponents-base/dist/thirdparty/merge.js","node_modules/@ui5/webcomponents-base/dist/util/whenDOMReady.js","node_modules/@ui5/webcomponents-base/dist/util/createStyleInHead.js","node_modules/@ui5/webcomponents-base/dist/FeaturesRegistry.js","node_modules/@ui5/webcomponents-base/dist/FontFace.js","node_modules/@ui5/webcomponents-base/dist/generated/AssetParameters.js","node_modules/@ui5/webcomponents-base/dist/InitialConfiguration.js","node_modules/@ui5/webcomponents-base/dist/util/FetchHelper.js","node_modules/@ui5/webcomponents-base/dist/util/getFileExtension.js","node_modules/@ui5/webcomponents-base/dist/asset-registries/Themes.js","node_modules/@ui5/webcomponents-base/dist/theming/createThemePropertiesStyleTag.js","node_modules/@ui5/webcomponents-base/dist/theming/getThemeDesignerTheme.js","node_modules/@ui5/webcomponents-base/dist/theming/CSSVarsPonyfill.js","node_modules/@ui5/webcomponents-base/dist/theming/applyTheme.js","node_modules/@ui5/webcomponents-base/dist/config/Theme.js","node_modules/@ui5/webcomponents-base/dist/compatibility/whenPolyfillLoaded.js","node_modules/@ui5/webcomponents-base/dist/boot.js","node_modules/@ui5/webcomponents-base/dist/types/DataType.js","node_modules/@ui5/webcomponents-base/dist/util/isDescendantOf.js","node_modules/@ui5/webcomponents-base/dist/util/StringHelper.js","node_modules/@ui5/webcomponents-base/dist/UI5ElementMetadata.js","node_modules/@ui5/webcomponents-base/dist/StaticArea.js","node_modules/@ui5/webcomponents-base/dist/RenderQueue.js","node_modules/@ui5/webcomponents-base/dist/CustomElementsRegistry.js","node_modules/@ui5/webcomponents-base/dist/RenderScheduler.js","node_modules/@ui5/webcomponents-base/dist/StaticAreaItem.js","node_modules/@ui5/webcomponents-base/dist/compatibility/DOMObserver.js","node_modules/@ui5/webcomponents-base/dist/config/NoConflict.js","node_modules/@ui5/webcomponents-base/dist/theming/CustomStyle.js","node_modules/@ui5/webcomponents-base/dist/theming/getEffectiveStyle.js","node_modules/@ui5/webcomponents-base/dist/theming/getConstructableStyle.js","node_modules/@ui5/webcomponents-base/dist/theming/adaptCSSForIE.js","node_modules/@ui5/webcomponents-base/dist/theming/createComponentStyleTag.js","node_modules/@ui5/webcomponents-base/dist/types/Integer.js","node_modules/@ui5/webcomponents-base/dist/util/isValidPropertyName.js","node_modules/@ui5/webcomponents-base/dist/UI5Element.js","node_modules/lit-html/src/lib/directive.ts","node_modules/lit-html/src/lib/dom.ts","node_modules/lit-html/src/lib/part.ts","node_modules/lit-html/src/lib/template.ts","node_modules/lit-html/src/lib/template-instance.ts","node_modules/lit-html/src/lib/template-result.ts","node_modules/lit-html/src/lib/parts.ts","node_modules/lit-html/src/lib/default-template-processor.ts","node_modules/lit-html/src/lib/template-factory.ts","node_modules/lit-html/src/lib/render.ts","node_modules/lit-html/src/lit-html.ts","node_modules/lit-html/src/directives/repeat.ts","node_modules/lit-html/src/directives/class-map.ts","node_modules/lit-html/src/directives/style-map.ts","node_modules/@ui5/webcomponents-base/dist/renderer/LitRenderer.js","node_modules/@ui5/webcomponents-base/dist/Keys.js","node_modules/@ui5/webcomponents-base/dist/config/Language.js","node_modules/@ui5/webcomponents-base/dist/util/detectNavigatorLanguage.js","node_modules/@ui5/webcomponents-base/dist/config/RTL.js","node_modules/@ui5/webcomponents-base/dist/util/getDesigntimePropertyAsArray.js","node_modules/@ui5/webcomponents-base/dist/locale/Locale.js","node_modules/@ui5/webcomponents-base/dist/locale/getLocale.js","node_modules/@ui5/webcomponents-base/dist/locale/normalizeLocale.js","node_modules/@ui5/webcomponents-base/dist/locale/nextFallbackLocale.js","node_modules/@ui5/webcomponents-base/dist/asset-registries/i18n.js","node_modules/@ui5/webcomponents-base/dist/util/formatMessage.js","node_modules/@ui5/webcomponents-base/dist/i18nBundle.js","node_modules/@ui5/webcomponents-base/dist/util/findNodeOwner.js","node_modules/@ui5/webcomponents/dist/types/ButtonDesign.js","node_modules/@ui5/webcomponents-base/dist/renderer/ifDefined.js","node_modules/@ui5/webcomponents/dist/generated/templates/ButtonTemplate.lit.js","node_modules/@ui5/webcomponents-base/dist/SVGIconRegistry.js","node_modules/@ui5/webcomponents/dist/generated/templates/IconTemplate.lit.js","node_modules/@ui5/webcomponents-theme-base/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js","node_modules/@ui5/webcomponents/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js","node_modules/@ui5/webcomponents/dist/generated/themes/Icon.css.js","node_modules/@ui5/webcomponents/dist/Icon.js","node_modules/@ui5/webcomponents/dist/generated/i18n/i18n-defaults.js","node_modules/@ui5/webcomponents/dist/generated/themes/Button.css.js","node_modules/@ui5/webcomponents/dist/Button.js","node_modules/@ui5/webcomponents/dist/Option.js","node_modules/@ui5/webcomponents-base/dist/types/ValueState.js","node_modules/@ui5/webcomponents-icons/dist/icons/slim-arrow-down.js","node_modules/@ui5/webcomponents-icons/dist/icons/decline.js","node_modules/@ui5/webcomponents/dist/generated/templates/LabelTemplate.lit.js","node_modules/@ui5/webcomponents/dist/generated/themes/Label.css.js","node_modules/@ui5/webcomponents/dist/Label.js","node_modules/@ui5/webcomponents-base/dist/Device.js","node_modules/@ui5/webcomponents/dist/popup-utils/PopupUtils.js","node_modules/@ui5/webcomponents/dist/generated/templates/ResponsivePopoverTemplate.lit.js","node_modules/@ui5/webcomponents-base/dist/util/isNodeHidden.js","node_modules/@ui5/webcomponents-base/dist/util/isNodeClickable.js","node_modules/@ui5/webcomponents-base/dist/util/FocusableElements.js","node_modules/@ui5/webcomponents/dist/generated/templates/PopoverTemplate.lit.js","node_modules/@ui5/webcomponents/dist/types/PopoverPlacementType.js","node_modules/@ui5/webcomponents/dist/types/PopoverVerticalAlign.js","node_modules/@ui5/webcomponents/dist/types/PopoverHorizontalAlign.js","node_modules/@ui5/webcomponents/dist/popup-utils/OpenedPopupsRegistry.js","node_modules/@ui5/webcomponents/dist/popup-utils/PopoverRegistry.js","node_modules/@ui5/webcomponents/dist/generated/themes/Popover.css.js","node_modules/@ui5/webcomponents/dist/Popover.js","node_modules/@ui5/webcomponents/dist/generated/themes/Popup.css.js","node_modules/@ui5/webcomponents/dist/Popup.js","node_modules/@ui5/webcomponents/dist/generated/templates/DialogTemplate.lit.js","node_modules/@ui5/webcomponents/dist/generated/themes/Dialog.css.js","node_modules/@ui5/webcomponents/dist/Dialog.js","node_modules/@ui5/webcomponents/dist/types/TitleLevel.js","node_modules/@ui5/webcomponents/dist/generated/templates/TitleTemplate.lit.js","node_modules/@ui5/webcomponents/dist/generated/themes/Title.css.js","node_modules/@ui5/webcomponents/dist/Title.js","node_modules/@ui5/webcomponents/dist/generated/themes/ResponsivePopover.css.js","node_modules/@ui5/webcomponents/dist/ResponsivePopover.js","node_modules/@ui5/webcomponents-base/dist/EventProvider.js","node_modules/@ui5/webcomponents-base/dist/types/NavigationMode.js","node_modules/@ui5/webcomponents-base/dist/types/ItemNavigationBehavior.js","node_modules/@ui5/webcomponents-base/dist/delegate/ItemNavigation.js","node_modules/@ui5/webcomponents-base/dist/util/isNodeTabbable.js","node_modules/@ui5/webcomponents-base/dist/util/TabbableElements.js","node_modules/@ui5/webcomponents/dist/types/ListMode.js","node_modules/@ui5/webcomponents/dist/types/ListSeparators.js","node_modules/@ui5/webcomponents/dist/types/BusyIndicatorSize.js","node_modules/@ui5/webcomponents/dist/generated/templates/BusyIndicatorTemplate.lit.js","node_modules/@ui5/webcomponents/dist/generated/themes/BusyIndicator.css.js","node_modules/@ui5/webcomponents/dist/BusyIndicator.js","node_modules/@ui5/webcomponents/dist/generated/templates/ListTemplate.lit.js","node_modules/@ui5/webcomponents/dist/generated/themes/List.css.js","node_modules/@ui5/webcomponents/dist/List.js","node_modules/@ui5/webcomponents-icons/dist/icons/edit.js","node_modules/@ui5/webcomponents/dist/types/ListItemType.js","node_modules/@ui5/webcomponents/dist/generated/themes/ListItemBase.css.js","node_modules/@ui5/webcomponents/dist/ListItemBase.js","node_modules/@ui5/webcomponents/dist/RadioButtonGroup.js","node_modules/@ui5/webcomponents/dist/generated/templates/RadioButtonTemplate.lit.js","node_modules/@ui5/webcomponents/dist/generated/themes/RadioButton.css.js","node_modules/@ui5/webcomponents/dist/RadioButton.js","node_modules/@ui5/webcomponents-icons/dist/icons/accept.js","node_modules/@ui5/webcomponents/dist/generated/templates/CheckBoxTemplate.lit.js","node_modules/@ui5/webcomponents/dist/generated/themes/CheckBox.css.js","node_modules/@ui5/webcomponents/dist/CheckBox.js","node_modules/@ui5/webcomponents/dist/generated/themes/ListItem.css.js","node_modules/@ui5/webcomponents/dist/ListItem.js","node_modules/@ui5/webcomponents/dist/generated/templates/StandardListItemTemplate.lit.js","node_modules/@ui5/webcomponents/dist/StandardListItem.js","node_modules/@ui5/webcomponents/dist/generated/templates/SelectTemplate.lit.js","node_modules/@ui5/webcomponents/dist/generated/templates/SelectPopoverTemplate.lit.js","node_modules/@ui5/webcomponents/dist/generated/themes/Select.css.js","node_modules/@ui5/webcomponents/dist/generated/themes/ResponsivePopoverCommon.css.js","node_modules/@ui5/webcomponents/dist/Select.js","src/page/buttonSet.ts","src/page/init.ts","src/util/randomSeed.ts","src/main.ts","src/lib/githubCorner.ts","src/start.ts"],"sourcesContent":["\"use strict\";\n\nvar mapping = {};\n\nfunction register(pairs) {\n var keys = Object.keys(pairs);\n\n for (var i = 0; i < keys.length; i++) {\n mapping[keys[i]] = pairs[keys[i]];\n }\n}\n\nfunction resolve(id) {\n var resolved = mapping[id];\n\n if (resolved == null) {\n throw new Error('Could not resolve bundle with id ' + id);\n }\n\n return resolved;\n}\n\nmodule.exports.register = register;\nmodule.exports.resolve = resolve;","// A port of an algorithm by Johannes Baagøe , 2010\n// http://baagoe.com/en/RandomMusings/javascript/\n// https://github.com/nquinlan/better-random-numbers-for-javascript-mirror\n// Original work is under MIT license -\n\n// Copyright (C) 2010 by Johannes Baagøe \n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\n\n(function(global, module, define) {\n\nfunction Alea(seed) {\n var me = this, mash = Mash();\n\n me.next = function() {\n var t = 2091639 * me.s0 + me.c * 2.3283064365386963e-10; // 2^-32\n me.s0 = me.s1;\n me.s1 = me.s2;\n return me.s2 = t - (me.c = t | 0);\n };\n\n // Apply the seeding algorithm from Baagoe.\n me.c = 1;\n me.s0 = mash(' ');\n me.s1 = mash(' ');\n me.s2 = mash(' ');\n me.s0 -= mash(seed);\n if (me.s0 < 0) { me.s0 += 1; }\n me.s1 -= mash(seed);\n if (me.s1 < 0) { me.s1 += 1; }\n me.s2 -= mash(seed);\n if (me.s2 < 0) { me.s2 += 1; }\n mash = null;\n}\n\nfunction copy(f, t) {\n t.c = f.c;\n t.s0 = f.s0;\n t.s1 = f.s1;\n t.s2 = f.s2;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new Alea(seed),\n state = opts && opts.state,\n prng = xg.next;\n prng.int32 = function() { return (xg.next() * 0x100000000) | 0; }\n prng.double = function() {\n return prng() + (prng() * 0x200000 | 0) * 1.1102230246251565e-16; // 2^-53\n };\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nfunction Mash() {\n var n = 0xefc8249d;\n\n var mash = function(data) {\n data = String(data);\n for (var i = 0; i < data.length; i++) {\n n += data.charCodeAt(i);\n var h = 0.02519603282416938 * n;\n n = h >>> 0;\n h -= n;\n h *= n;\n n = h >>> 0;\n h -= n;\n n += h * 0x100000000; // 2^32\n }\n return (n >>> 0) * 2.3283064365386963e-10; // 2^-32\n };\n\n return mash;\n}\n\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.alea = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n","// A Javascript implementaion of the \"xor128\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n\n // Set up generator function.\n me.next = function() {\n var t = me.x ^ (me.x << 11);\n me.x = me.y;\n me.y = me.z;\n me.z = me.w;\n return me.w ^= (me.w >>> 19) ^ t ^ (t >>> 8);\n };\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor128 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n","// A Javascript implementaion of the \"xorwow\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var t = (me.x ^ (me.x >>> 2));\n me.x = me.y; me.y = me.z; me.z = me.w; me.w = me.v;\n return (me.d = (me.d + 362437 | 0)) +\n (me.v = (me.v ^ (me.v << 4)) ^ (t ^ (t << 1))) | 0;\n };\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n me.v = 0;\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n if (k == strseed.length) {\n me.d = me.x << 10 ^ me.x >>> 4;\n }\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n t.v = f.v;\n t.d = f.d;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorwow = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n","// A Javascript implementaion of the \"xorshift7\" algorithm by\n// François Panneton and Pierre L'ecuyer:\n// \"On the Xorgshift Random Number Generators\"\n// http://saluc.engr.uconn.edu/refs/crypto/rng/panneton05onthexorshift.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n // Update xor generator.\n var X = me.x, i = me.i, t, v, w;\n t = X[i]; t ^= (t >>> 7); v = t ^ (t << 24);\n t = X[(i + 1) & 7]; v ^= t ^ (t >>> 10);\n t = X[(i + 3) & 7]; v ^= t ^ (t >>> 3);\n t = X[(i + 4) & 7]; v ^= t ^ (t << 7);\n t = X[(i + 7) & 7]; t = t ^ (t << 13); v ^= t ^ (t << 9);\n X[i] = v;\n me.i = (i + 1) & 7;\n return v;\n };\n\n function init(me, seed) {\n var j, w, X = [];\n\n if (seed === (seed | 0)) {\n // Seed state array using a 32-bit integer.\n w = X[0] = seed;\n } else {\n // Seed state using a string.\n seed = '' + seed;\n for (j = 0; j < seed.length; ++j) {\n X[j & 7] = (X[j & 7] << 15) ^\n (seed.charCodeAt(j) + X[(j + 1) & 7] << 13);\n }\n }\n // Enforce an array length of 8, not all zeroes.\n while (X.length < 8) X.push(0);\n for (j = 0; j < 8 && X[j] === 0; ++j);\n if (j == 8) w = X[7] = -1; else w = X[j];\n\n me.x = X;\n me.i = 0;\n\n // Discard an initial 256 values.\n for (j = 256; j > 0; --j) {\n me.next();\n }\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.x = f.x.slice();\n t.i = f.i;\n return t;\n}\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.x) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorshift7 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n","// A Javascript implementaion of Richard Brent's Xorgens xor4096 algorithm.\n//\n// This fast non-cryptographic random number generator is designed for\n// use in Monte-Carlo algorithms. It combines a long-period xorshift\n// generator with a Weyl generator, and it passes all common batteries\n// of stasticial tests for randomness while consuming only a few nanoseconds\n// for each prng generated. For background on the generator, see Brent's\n// paper: \"Some long-period random number generators using shifts and xors.\"\n// http://arxiv.org/pdf/1004.3115v1.pdf\n//\n// Usage:\n//\n// var xor4096 = require('xor4096');\n// random = xor4096(1); // Seed with int32 or string.\n// assert.equal(random(), 0.1520436450538547); // (0, 1) range, 53 bits.\n// assert.equal(random.int32(), 1806534897); // signed int32, 32 bits.\n//\n// For nonzero numeric keys, this impelementation provides a sequence\n// identical to that by Brent's xorgens 3 implementaion in C. This\n// implementation also provides for initalizing the generator with\n// string seeds, or for saving and restoring the state of the generator.\n//\n// On Chrome, this prng benchmarks about 2.1 times slower than\n// Javascript's built-in Math.random().\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n var w = me.w,\n X = me.X, i = me.i, t, v;\n // Update Weyl generator.\n me.w = w = (w + 0x61c88647) | 0;\n // Update xor generator.\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n // Update Xor generator array state.\n v = X[i] = v ^ t;\n me.i = i;\n // Result is the combination.\n return (v + (w ^ (w >>> 16))) | 0;\n };\n\n function init(me, seed) {\n var t, v, i, j, w, X = [], limit = 128;\n if (seed === (seed | 0)) {\n // Numeric seeds initialize v, which is used to generates X.\n v = seed;\n seed = null;\n } else {\n // String seeds are mixed into v and X one character at a time.\n seed = seed + '\\0';\n v = 0;\n limit = Math.max(limit, seed.length);\n }\n // Initialize circular array and weyl value.\n for (i = 0, j = -32; j < limit; ++j) {\n // Put the unicode characters into the array, and shuffle them.\n if (seed) v ^= seed.charCodeAt((j + 32) % seed.length);\n // After 32 shuffles, take v as the starting w value.\n if (j === 0) w = v;\n v ^= v << 10;\n v ^= v >>> 15;\n v ^= v << 4;\n v ^= v >>> 13;\n if (j >= 0) {\n w = (w + 0x61c88647) | 0; // Weyl.\n t = (X[j & 127] ^= (v + w)); // Combine xor and weyl to init array.\n i = (0 == t) ? i + 1 : 0; // Count zeroes.\n }\n }\n // We have detected all zeroes; make the key nonzero.\n if (i >= 128) {\n X[(seed && seed.length || 0) & 127] = -1;\n }\n // Run the generator 512 times to further mix the state before using it.\n // Factoring this as a function slows the main generator, so it is just\n // unrolled here. The weyl generator is not advanced while warming up.\n i = 127;\n for (j = 4 * 128; j > 0; --j) {\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n X[i] = v ^ t;\n }\n // Storing state as object members is faster than using closure variables.\n me.w = w;\n me.X = X;\n me.i = i;\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.i = f.i;\n t.w = f.w;\n t.X = f.X.slice();\n return t;\n};\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.X) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor4096 = impl;\n}\n\n})(\n this, // window object or global\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n","// A Javascript implementaion of the \"Tyche-i\" prng algorithm by\n// Samuel Neves and Filipe Araujo.\n// See https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var b = me.b, c = me.c, d = me.d, a = me.a;\n b = (b << 25) ^ (b >>> 7) ^ c;\n c = (c - d) | 0;\n d = (d << 24) ^ (d >>> 8) ^ a;\n a = (a - b) | 0;\n me.b = b = (b << 20) ^ (b >>> 12) ^ c;\n me.c = c = (c - d) | 0;\n me.d = (d << 16) ^ (c >>> 16) ^ a;\n return me.a = (a - b) | 0;\n };\n\n /* The following is non-inverted tyche, which has better internal\n * bit diffusion, but which is about 25% slower than tyche-i in JS.\n me.next = function() {\n var a = me.a, b = me.b, c = me.c, d = me.d;\n a = (me.a + me.b | 0) >>> 0;\n d = me.d ^ a; d = d << 16 ^ d >>> 16;\n c = me.c + d | 0;\n b = me.b ^ c; b = b << 12 ^ d >>> 20;\n me.a = a = a + b | 0;\n d = d ^ a; me.d = d = d << 8 ^ d >>> 24;\n me.c = c = c + d | 0;\n b = b ^ c;\n return me.b = (b << 7 ^ b >>> 25);\n }\n */\n\n me.a = 0;\n me.b = 0;\n me.c = 2654435769 | 0;\n me.d = 1367130551;\n\n if (seed === Math.floor(seed)) {\n // Integer seed.\n me.a = (seed / 0x100000000) | 0;\n me.b = seed | 0;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 20; k++) {\n me.b ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.a = f.a;\n t.b = f.b;\n t.c = f.c;\n t.d = f.d;\n return t;\n};\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.tychei = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n","require('./helpers/bundle-manifest').register(JSON.parse(\"{\\\"jISEJ\\\":\\\"labyrinth.214a482d.js\\\",\\\"hoOKO\\\":\\\"monster-smooze-A.24b2cc12.png\\\",\\\"bQIr6\\\":\\\"rarity-930-1.27390dd7.png\\\"}\"));","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n!(function(global) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n var inModule = typeof module === \"object\";\n var runtime = global.regeneratorRuntime;\n if (runtime) {\n if (inModule) {\n // If regeneratorRuntime is defined globally and we're in a module,\n // make the exports object identical to regeneratorRuntime.\n module.exports = runtime;\n }\n // Don't bother evaluating the rest of this file if the runtime was\n // already defined globally.\n return;\n }\n\n // Define the runtime globally (as expected by generated code) as either\n // module.exports (if we're in a module) or a new, empty object.\n runtime = global.regeneratorRuntime = inModule ? module.exports : {};\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n runtime.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunctionPrototype[toStringTagSymbol] =\n GeneratorFunction.displayName = \"GeneratorFunction\";\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n prototype[method] = function(arg) {\n return this._invoke(method, arg);\n };\n });\n }\n\n runtime.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n runtime.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n if (!(toStringTagSymbol in genFun)) {\n genFun[toStringTagSymbol] = \"GeneratorFunction\";\n }\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n runtime.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return Promise.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return Promise.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new Promise(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n runtime.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n runtime.async = function(innerFn, outerFn, self, tryLocsList) {\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList)\n );\n\n return runtime.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n if (delegate.iterator.return) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n Gp[toStringTagSymbol] = \"Generator\";\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n runtime.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n runtime.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n})(\n // In sloppy mode, unbound `this` refers to the global object, fallback to\n // Function constructor if we're in global strict mode. That is sadly a form\n // of indirect eval which violates Content Security Policy.\n (function() {\n return this || (typeof self === \"object\" && self);\n })() || Function(\"return this\")()\n);\n","/*\nCopyright 2019 David Bau.\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n*/\n\n(function (global, pool, math) {\n//\n// The following constants are related to IEEE 754 limits.\n//\n\nvar width = 256, // each RC4 output is 0 <= x < 256\n chunks = 6, // at least six RC4 outputs for each double\n digits = 52, // there are 52 significant digits in a double\n rngname = 'random', // rngname: name for Math.random and Math.seedrandom\n startdenom = math.pow(width, chunks),\n significance = math.pow(2, digits),\n overflow = significance * 2,\n mask = width - 1,\n nodecrypto; // node.js crypto module, initialized at the bottom.\n\n//\n// seedrandom()\n// This is the seedrandom function described above.\n//\nfunction seedrandom(seed, options, callback) {\n var key = [];\n options = (options == true) ? { entropy: true } : (options || {});\n\n // Flatten the seed string or build one from local entropy if needed.\n var shortseed = mixkey(flatten(\n options.entropy ? [seed, tostring(pool)] :\n (seed == null) ? autoseed() : seed, 3), key);\n\n // Use the seed to initialize an ARC4 generator.\n var arc4 = new ARC4(key);\n\n // This function returns a random double in [0, 1) that contains\n // randomness in every bit of the mantissa of the IEEE 754 value.\n var prng = function() {\n var n = arc4.g(chunks), // Start with a numerator n < 2 ^ 48\n d = startdenom, // and denominator d = 2 ^ 48.\n x = 0; // and no 'extra last byte'.\n while (n < significance) { // Fill up all significant digits by\n n = (n + x) * width; // shifting numerator and\n d *= width; // denominator and generating a\n x = arc4.g(1); // new least-significant-byte.\n }\n while (n >= overflow) { // To avoid rounding up, before adding\n n /= 2; // last byte, shift everything\n d /= 2; // right using integer math until\n x >>>= 1; // we have exactly the desired bits.\n }\n return (n + x) / d; // Form the number within [0, 1).\n };\n\n prng.int32 = function() { return arc4.g(4) | 0; }\n prng.quick = function() { return arc4.g(4) / 0x100000000; }\n prng.double = prng;\n\n // Mix the randomness into accumulated entropy.\n mixkey(tostring(arc4.S), pool);\n\n // Calling convention: what to return as a function of prng, seed, is_math.\n return (options.pass || callback ||\n function(prng, seed, is_math_call, state) {\n if (state) {\n // Load the arc4 state from the given state if it has an S array.\n if (state.S) { copy(state, arc4); }\n // Only provide the .state method if requested via options.state.\n prng.state = function() { return copy(arc4, {}); }\n }\n\n // If called as a method of Math (Math.seedrandom()), mutate\n // Math.random because that is how seedrandom.js has worked since v1.0.\n if (is_math_call) { math[rngname] = prng; return seed; }\n\n // Otherwise, it is a newer calling convention, so return the\n // prng directly.\n else return prng;\n })(\n prng,\n shortseed,\n 'global' in options ? options.global : (this == math),\n options.state);\n}\n\n//\n// ARC4\n//\n// An ARC4 implementation. The constructor takes a key in the form of\n// an array of at most (width) integers that should be 0 <= x < (width).\n//\n// The g(count) method returns a pseudorandom integer that concatenates\n// the next (count) outputs from ARC4. Its return value is a number x\n// that is in the range 0 <= x < (width ^ count).\n//\nfunction ARC4(key) {\n var t, keylen = key.length,\n me = this, i = 0, j = me.i = me.j = 0, s = me.S = [];\n\n // The empty key [] is treated as [0].\n if (!keylen) { key = [keylen++]; }\n\n // Set up S using the standard key scheduling algorithm.\n while (i < width) {\n s[i] = i++;\n }\n for (i = 0; i < width; i++) {\n s[i] = s[j = mask & (j + key[i % keylen] + (t = s[i]))];\n s[j] = t;\n }\n\n // The \"g\" method returns the next (count) outputs as one number.\n (me.g = function(count) {\n // Using instance members instead of closure state nearly doubles speed.\n var t, r = 0,\n i = me.i, j = me.j, s = me.S;\n while (count--) {\n t = s[i = mask & (i + 1)];\n r = r * width + s[mask & ((s[i] = s[j = mask & (j + t)]) + (s[j] = t))];\n }\n me.i = i; me.j = j;\n return r;\n // For robust unpredictability, the function call below automatically\n // discards an initial batch of values. This is called RC4-drop[256].\n // See http://google.com/search?q=rsa+fluhrer+response&btnI\n })(width);\n}\n\n//\n// copy()\n// Copies internal state of ARC4 to or from a plain object.\n//\nfunction copy(f, t) {\n t.i = f.i;\n t.j = f.j;\n t.S = f.S.slice();\n return t;\n};\n\n//\n// flatten()\n// Converts an object tree to nested arrays of strings.\n//\nfunction flatten(obj, depth) {\n var result = [], typ = (typeof obj), prop;\n if (depth && typ == 'object') {\n for (prop in obj) {\n try { result.push(flatten(obj[prop], depth - 1)); } catch (e) {}\n }\n }\n return (result.length ? result : typ == 'string' ? obj : obj + '\\0');\n}\n\n//\n// mixkey()\n// Mixes a string seed into a key that is an array of integers, and\n// returns a shortened string seed that is equivalent to the result key.\n//\nfunction mixkey(seed, key) {\n var stringseed = seed + '', smear, j = 0;\n while (j < stringseed.length) {\n key[mask & j] =\n mask & ((smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++));\n }\n return tostring(key);\n}\n\n//\n// autoseed()\n// Returns an object for autoseeding, using window.crypto and Node crypto\n// module if available.\n//\nfunction autoseed() {\n try {\n var out;\n if (nodecrypto && (out = nodecrypto.randomBytes)) {\n // The use of 'out' to remember randomBytes makes tight minified code.\n out = out(width);\n } else {\n out = new Uint8Array(width);\n (global.crypto || global.msCrypto).getRandomValues(out);\n }\n return tostring(out);\n } catch (e) {\n var browser = global.navigator,\n plugins = browser && browser.plugins;\n return [+new Date, global, plugins, global.screen, tostring(pool)];\n }\n}\n\n//\n// tostring()\n// Converts an array of charcodes to a string\n//\nfunction tostring(a) {\n return String.fromCharCode.apply(0, a);\n}\n\n//\n// When seedrandom.js is loaded, we immediately mix a few bits\n// from the built-in RNG into the entropy pool. Because we do\n// not want to interfere with deterministic PRNG state later,\n// seedrandom will not call math.random on its own again after\n// initialization.\n//\nmixkey(math.random(), pool);\n\n//\n// Nodejs and AMD support: export the implementation as a module using\n// either convention.\n//\nif ((typeof module) == 'object' && module.exports) {\n module.exports = seedrandom;\n // When in node.js, try using crypto package for autoseeding.\n try {\n nodecrypto = require('crypto');\n } catch (ex) {}\n} else if ((typeof define) == 'function' && define.amd) {\n define(function() { return seedrandom; });\n} else {\n // When included as a plain script, set up Math.seedrandom global.\n math['seed' + rngname] = seedrandom;\n}\n\n\n// End anonymous scope, and pass initial values.\n})(\n // global: `self` in browsers (including strict mode and web workers),\n // otherwise `this` in Node and other environments\n (typeof self !== 'undefined') ? self : this,\n [], // pool: entropy pool starts empty\n Math // math: package containing random, pow, and seedrandom\n);\n","// A library of seedable RNGs implemented in Javascript.\n//\n// Usage:\n//\n// var seedrandom = require('seedrandom');\n// var random = seedrandom(1); // or any seed.\n// var x = random(); // 0 <= x < 1. Every bit is random.\n// var x = random.quick(); // 0 <= x < 1. 32 bits of randomness.\n\n// alea, a 53-bit multiply-with-carry generator by Johannes Baagøe.\n// Period: ~2^116\n// Reported to pass all BigCrush tests.\nvar alea = require('./lib/alea');\n\n// xor128, a pure xor-shift generator by George Marsaglia.\n// Period: 2^128-1.\n// Reported to fail: MatrixRank and LinearComp.\nvar xor128 = require('./lib/xor128');\n\n// xorwow, George Marsaglia's 160-bit xor-shift combined plus weyl.\n// Period: 2^192-2^32\n// Reported to fail: CollisionOver, SimpPoker, and LinearComp.\nvar xorwow = require('./lib/xorwow');\n\n// xorshift7, by François Panneton and Pierre L'ecuyer, takes\n// a different approach: it adds robustness by allowing more shifts\n// than Marsaglia's original three. It is a 7-shift generator\n// with 256 bits, that passes BigCrush with no systmatic failures.\n// Period 2^256-1.\n// No systematic BigCrush failures reported.\nvar xorshift7 = require('./lib/xorshift7');\n\n// xor4096, by Richard Brent, is a 4096-bit xor-shift with a\n// very long period that also adds a Weyl generator. It also passes\n// BigCrush with no systematic failures. Its long period may\n// be useful if you have many generators and need to avoid\n// collisions.\n// Period: 2^4128-2^32.\n// No systematic BigCrush failures reported.\nvar xor4096 = require('./lib/xor4096');\n\n// Tyche-i, by Samuel Neves and Filipe Araujo, is a bit-shifting random\n// number generator derived from ChaCha, a modern stream cipher.\n// https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n// Period: ~2^127\n// No systematic BigCrush failures reported.\nvar tychei = require('./lib/tychei');\n\n// The original ARC4-based prng included in this library.\n// Period: ~2^1600\nvar sr = require('./seedrandom');\n\nsr.alea = alea;\nsr.xor128 = xor128;\nsr.xorwow = xorwow;\nsr.xorshift7 = xorshift7;\nsr.xor4096 = xor4096;\nsr.tychei = tychei;\n\nmodule.exports = sr;\n","export let w: any = window\n","/**\n * This very basic implementation of a priority queue is used to select the\n * next node of the graph to walk to.\n *\n * The queue is always sorted to have the least expensive node on top.\n * Some helper methods are also implemented.\n *\n * You should **never** modify the queue directly, but only using the methods\n * provided by the class.\n */\nclass PriorityQueue {\n\n /**\n * Creates a new empty priority queue\n */\n constructor() {\n // The `keys` set is used to greatly improve the speed at which we can\n // check the presence of a value in the queue\n this.keys = new Set();\n this.queue = [];\n }\n\n /**\n * Sort the queue to have the least expensive node to visit on top\n *\n * @private\n */\n sort() {\n this.queue.sort((a, b) => a.priority - b.priority);\n }\n\n /**\n * Sets a priority for a key in the queue.\n * Inserts it in the queue if it does not already exists.\n *\n * @param {any} key Key to update or insert\n * @param {number} value Priority of the key\n * @return {number} Size of the queue\n */\n set(key, value) {\n const priority = Number(value);\n if (isNaN(priority)) throw new TypeError('\"priority\" must be a number');\n\n if (!this.keys.has(key)) {\n // Insert a new entry if the key is not already in the queue\n this.keys.add(key);\n this.queue.push({ key, priority });\n } else {\n // Update the priority of an existing key\n this.queue.map((element) => {\n if (element.key === key) {\n Object.assign(element, { priority });\n }\n\n return element;\n });\n }\n\n this.sort();\n return this.queue.length;\n }\n\n /**\n * The next method is used to dequeue a key:\n * It removes the first element from the queue and returns it\n *\n * @return {object} First priority queue entry\n */\n next() {\n const element = this.queue.shift();\n\n // Remove the key from the `_keys` set\n this.keys.delete(element.key);\n\n return element;\n }\n\n /**\n * @return {boolean} `true` when the queue is empty\n */\n isEmpty() {\n return Boolean(this.queue.length === 0);\n }\n\n /**\n * Check if the queue has a key in it\n *\n * @param {any} key Key to lookup\n * @return {boolean}\n */\n has(key) {\n return this.keys.has(key);\n }\n\n /**\n * Get the element in the queue with the specified key\n *\n * @param {any} key Key to lookup\n * @return {object}\n */\n get(key) {\n return this.queue.find(element => element.key === key);\n }\n\n}\n\nmodule.exports = PriorityQueue;\n","/**\n * Removes a key and all of its references from a map.\n * This function has no side-effects as it returns\n * a brand new map.\n *\n * @param {Map} map - Map to remove the key from\n * @param {string} key - Key to remove from the map\n * @return {Map} New map without the passed key\n */\nfunction removeDeepFromMap(map, key) {\n const newMap = new Map();\n\n for (const [aKey, val] of map) {\n if (aKey !== key && val instanceof Map) {\n newMap.set(aKey, removeDeepFromMap(val, key));\n } else if (aKey !== key) {\n newMap.set(aKey, val);\n }\n }\n\n return newMap;\n}\n\nmodule.exports = removeDeepFromMap;\n","/**\n * Validates a cost for a node\n *\n * @private\n * @param {number} val - Cost to validate\n * @return {bool}\n */\nfunction isValidNode(val) {\n const cost = Number(val);\n\n if (isNaN(cost) || cost <= 0) {\n return false;\n }\n\n return true;\n}\n\n/**\n * Creates a deep `Map` from the passed object.\n *\n * @param {Object} source - Object to populate the map with\n * @return {Map} New map with the passed object data\n */\nfunction toDeepMap(source) {\n const map = new Map();\n const keys = Object.keys(source);\n\n keys.forEach((key) => {\n const val = source[key];\n\n if (val !== null && typeof val === 'object' && !Array.isArray(val)) {\n return map.set(key, toDeepMap(val));\n }\n\n if (!isValidNode(val)) {\n throw new Error(`Could not add node at key \"${key}\", make sure it's a valid node`, val);\n }\n\n return map.set(key, Number(val));\n });\n\n return map;\n}\n\nmodule.exports = toDeepMap;\n","/**\n * Validate a map to ensure all it's values are either a number or a map\n *\n * @param {Map} map - Map to valiadte\n */\nfunction validateDeep(map) {\n if (!(map instanceof Map)) {\n throw new Error(`Invalid graph: Expected Map instead found ${typeof map}`);\n }\n\n map.forEach((value, key) => {\n if (typeof value === 'object' && value instanceof Map) {\n validateDeep(value);\n return;\n }\n\n if (typeof value !== 'number' || value <= 0) {\n throw new Error(`Values must be numbers greater than 0. Found value ${value} at ${key}`);\n }\n });\n}\n\nmodule.exports = validateDeep;\n","const Queue = require('./PriorityQueue');\nconst removeDeepFromMap = require('./removeDeepFromMap');\nconst toDeepMap = require('./toDeepMap');\nconst validateDeep = require('./validateDeep');\n\n/** Creates and manages a graph */\nclass Graph {\n\n /**\n * Creates a new Graph, optionally initializing it a nodes graph representation.\n *\n * A graph representation is an object that has as keys the name of the point and as values\n * the points reacheable from that node, with the cost to get there:\n *\n * {\n * node (Number|String): {\n * neighbor (Number|String): cost (Number),\n * ...,\n * },\n * }\n *\n * In alternative to an object, you can pass a `Map` of `Map`. This will\n * allow you to specify numbers as keys.\n *\n * @param {Objec|Map} [graph] - Initial graph definition\n * @example\n *\n * const route = new Graph();\n *\n * // Pre-populated graph\n * const route = new Graph({\n * A: { B: 1 },\n * B: { A: 1, C: 2, D: 4 },\n * });\n *\n * // Passing a Map\n * const g = new Map()\n *\n * const a = new Map()\n * a.set('B', 1)\n *\n * const b = new Map()\n * b.set('A', 1)\n * b.set('C', 2)\n * b.set('D', 4)\n *\n * g.set('A', a)\n * g.set('B', b)\n *\n * const route = new Graph(g)\n */\n constructor(graph) {\n if (graph instanceof Map) {\n validateDeep(graph);\n this.graph = graph;\n } else if (graph) {\n this.graph = toDeepMap(graph);\n } else {\n this.graph = new Map();\n }\n }\n\n /**\n * Adds a node to the graph\n *\n * @param {string} name - Name of the node\n * @param {Object|Map} neighbors - Neighbouring nodes and cost to reach them\n * @return {this}\n * @example\n *\n * const route = new Graph();\n *\n * route.addNode('A', { B: 1 });\n *\n * // It's possible to chain the calls\n * route\n * .addNode('B', { A: 1 })\n * .addNode('C', { A: 3 });\n *\n * // The neighbors can be expressed in a Map\n * const d = new Map()\n * d.set('A', 2)\n * d.set('B', 8)\n *\n * route.addNode('D', d)\n */\n addNode(name, neighbors) {\n let nodes;\n if (neighbors instanceof Map) {\n validateDeep(neighbors);\n nodes = neighbors;\n } else {\n nodes = toDeepMap(neighbors);\n }\n\n this.graph.set(name, nodes);\n\n return this;\n }\n\n /**\n * @deprecated since version 2.0, use `Graph#addNode` instead\n */\n addVertex(name, neighbors) {\n return this.addNode(name, neighbors);\n }\n\n /**\n * Removes a node and all of its references from the graph\n *\n * @param {string|number} key - Key of the node to remove from the graph\n * @return {this}\n * @example\n *\n * const route = new Graph({\n * A: { B: 1, C: 5 },\n * B: { A: 3 },\n * C: { B: 2, A: 2 },\n * });\n *\n * route.removeNode('C');\n * // The graph now is:\n * // { A: { B: 1 }, B: { A: 3 } }\n */\n removeNode(key) {\n this.graph = removeDeepFromMap(this.graph, key);\n\n return this;\n }\n\n /**\n * Compute the shortest path between the specified nodes\n *\n * @param {string} start - Starting node\n * @param {string} goal - Node we want to reach\n * @param {object} [options] - Options\n *\n * @param {boolean} [options.trim] - Exclude the origin and destination nodes from the result\n * @param {boolean} [options.reverse] - Return the path in reversed order\n * @param {boolean} [options.cost] - Also return the cost of the path when set to true\n *\n * @return {array|object} Computed path between the nodes.\n *\n * When `option.cost` is set to true, the returned value will be an object with shape:\n * - `path` *(Array)*: Computed path between the nodes\n * - `cost` *(Number)*: Cost of the path\n *\n * @example\n *\n * const route = new Graph()\n *\n * route.addNode('A', { B: 1 })\n * route.addNode('B', { A: 1, C: 2, D: 4 })\n * route.addNode('C', { B: 2, D: 1 })\n * route.addNode('D', { C: 1, B: 4 })\n *\n * route.path('A', 'D') // => ['A', 'B', 'C', 'D']\n *\n * // trimmed\n * route.path('A', 'D', { trim: true }) // => [B', 'C']\n *\n * // reversed\n * route.path('A', 'D', { reverse: true }) // => ['D', 'C', 'B', 'A']\n *\n * // include the cost\n * route.path('A', 'D', { cost: true })\n * // => {\n * // path: [ 'A', 'B', 'C', 'D' ],\n * // cost: 4\n * // }\n */\n path(start, goal, options = {}) {\n // Don't run when we don't have nodes set\n if (!this.graph.size) {\n if (options.cost) return { path: null, cost: 0 };\n\n return null;\n }\n\n const explored = new Set();\n const frontier = new Queue();\n const previous = new Map();\n\n let path = [];\n let totalCost = 0;\n\n let avoid = [];\n if (options.avoid) avoid = [].concat(options.avoid);\n\n if (avoid.includes(start)) {\n throw new Error(`Starting node (${start}) cannot be avoided`);\n } else if (avoid.includes(goal)) {\n throw new Error(`Ending node (${goal}) cannot be avoided`);\n }\n\n // Add the starting point to the frontier, it will be the first node visited\n frontier.set(start, 0);\n\n // Run until we have visited every node in the frontier\n while (!frontier.isEmpty()) {\n // Get the node in the frontier with the lowest cost (`priority`)\n const node = frontier.next();\n\n // When the node with the lowest cost in the frontier in our goal node,\n // we can compute the path and exit the loop\n if (node.key === goal) {\n // Set the total cost to the current value\n totalCost = node.priority;\n\n let nodeKey = node.key;\n while (previous.has(nodeKey)) {\n path.push(nodeKey);\n nodeKey = previous.get(nodeKey);\n }\n\n break;\n }\n\n // Add the current node to the explored set\n explored.add(node.key);\n\n // Loop all the neighboring nodes\n const neighbors = this.graph.get(node.key) || new Map();\n neighbors.forEach((nCost, nNode) => {\n // If we already explored the node, or the node is to be avoided, skip it\n if (explored.has(nNode) || avoid.includes(nNode)) return null;\n\n // If the neighboring node is not yet in the frontier, we add it with\n // the correct cost\n if (!frontier.has(nNode)) {\n previous.set(nNode, node.key);\n return frontier.set(nNode, node.priority + nCost);\n }\n\n const frontierPriority = frontier.get(nNode).priority;\n const nodeCost = node.priority + nCost;\n\n // Otherwise we only update the cost of this node in the frontier when\n // it's below what's currently set\n if (nodeCost < frontierPriority) {\n previous.set(nNode, node.key);\n return frontier.set(nNode, nodeCost);\n }\n\n return null;\n });\n }\n\n // Return null when no path can be found\n if (!path.length) {\n if (options.cost) return { path: null, cost: 0 };\n\n return null;\n }\n\n // From now on, keep in mind that `path` is populated in reverse order,\n // from destination to origin\n\n // Remove the first value (the goal node) if we want a trimmed result\n if (options.trim) {\n path.shift();\n } else {\n // Add the origin waypoint at the end of the array\n path = path.concat([start]);\n }\n\n // Reverse the path if we don't want it reversed, so the result will be\n // from `start` to `goal`\n if (!options.reverse) {\n path = path.reverse();\n }\n\n // Return an object if we also want the cost\n if (options.cost) {\n return {\n path,\n cost: totalCost,\n };\n }\n\n return path;\n }\n\n /**\n * @deprecated since version 2.0, use `Graph#path` instead\n */\n shortestPath(...args) {\n return this.path(...args);\n }\n\n}\n\nmodule.exports = Graph;\n","import { Pair } from '../type/ponyEscape'\n\nexport let createArray2d = (\n size: Pair,\n fillFunction: (pos: Pair) => T,\n): T[][] => {\n let { x: sizex, y: sizey } = size\n return Array.from({ length: sizey }, (_, y) => {\n return Array.from({ length: sizex }, (_, x) => fillFunction({ y, x }))\n })\n}\n","export interface Set {\n _emissary: Set\n _size: number\n}\n\nlet emissary = (a: Set) => {\n // find the final emissary\n let e = a\n while (e !== e._emissary) {\n e = e._emissary\n }\n let final = e\n\n // set all intermediate nodes to point directly to the final emissary\n let ee = a\n while (ee !== ee._emissary) {\n e = ee\n ee = ee._emissary\n e._emissary = final\n }\n\n return final\n}\n\nexport let create = () => {\n let me: Set = {\n _size: 1,\n } as any\n me._emissary = me\n return me\n}\n\nexport let join = (a: Set, b: Set) => {\n if (sameSet(a, b)) return\n let total = emissary(a)._size + emissary(b)._size\n emissary(b)._emissary = emissary(a)\n emissary(a)._size = total\n}\n\nexport let sameSet = (a: Set, b: Set) => {\n return emissary(a) === emissary(b)\n}\n\nexport let size = (a: Set) => {\n return emissary(a)._size\n}\n","import * as joinable from './joinableSet'\n\nexport interface KruskalProp {\n linkList: TLink[]\n getNodePair: (link: TLink) => [TNode, TNode]\n smallEnough?: (setSize: number) => boolean\n}\n\nexport let kruskal = (\n prop: KruskalProp,\n): TLink[] => {\n let setMap = new Map()\n let { smallEnough = () => false } = prop\n\n let getSet = (node: TNode) => {\n let joinableSet = setMap.get(node)\n\n if (joinableSet === undefined) {\n joinableSet = joinable.create()\n\n setMap.set(node, joinableSet)\n }\n\n return joinableSet\n }\n\n let selectedLinkList: TLink[] = []\n\n prop.linkList.forEach((link) => {\n let [na, nb] = prop.getNodePair(link)\n let sa = getSet(na)\n let sb = getSet(nb)\n\n if (!joinable.sameSet(sa, sb)) {\n selectedLinkList.push(link)\n joinable.join(sa, sb)\n } else if (smallEnough(joinable.size(sa))) {\n selectedLinkList.push(link)\n }\n })\n\n return selectedLinkList\n}\n","import { Pair } from '../type/ponyEscape'\n\nexport let pairEqual = (a: Pair, b: Pair) => {\n return a.x === b.x && a.y === b.y\n}\n\nexport let pairAdd = (a: Pair, b: Pair) => {\n return {\n x: a.x + b.x,\n y: a.y + b.y,\n }\n}\n\nexport let pairScale = (a: Pair, r: number) => {\n return {\n x: a.x * r,\n y: a.y * r,\n }\n}\n\nexport let pairToString = ({ x, y }: Pair) => `${x},${y}`\n\nexport let pairFromString = (text: string) => {\n let [xx, yy] = text.split(',')\n return {\n x: +xx,\n y: +yy,\n }\n}\n","import { default as Dijkstra } from 'node-dijkstra'\nimport { Square, WallSquare, GroundSquare, Pair } from '../../type/ponyEscape'\nimport { createArray2d } from '../../util/array2d'\nimport { LoadProp } from '../core'\nimport { kruskal } from './kruskal'\nimport { shuffle } from './shuffle'\nimport { pairScale, pairAdd, pairToString } from '../../util/pair'\n\nexport interface LocalizedWall {\n x: number\n y: number\n wall: WallSquare\n}\n\nexport interface LocalizedGround {\n x: number\n y: number\n ground: GroundSquare\n}\n\nexport let generateLabyrinth = (prop: LoadProp) => {\n let { config, size, random } = prop\n\n let twiceSize = { x: size.x * 2, y: size.y * 2 }\n\n let groundList: LocalizedGround[] = []\n let wallList: LocalizedWall[] = []\n let oddWallList: LocalizedWall[] = []\n let evenWallList: LocalizedWall[] = []\n\n let grid = createArray2d(twiceSize, ({ y, x }) => {\n let isOddWall = () => (x + y) % 2 === 1\n let isGround = () => x % 2 === 1 && y % 2 === 1\n let isMapBorder = () => {\n return x <= 0 || y <= 0 || x >= twiceSize.x - 2 || y >= twiceSize.y - 2\n }\n\n if (x >= size.x * 2 - 1 || y >= size.y * 2 - 1) {\n // bottom and right side shall be left unused\n return {\n type: 'exterior',\n }\n }\n\n if (isGround()) {\n let me: GroundSquare = {\n type: 'ground',\n }\n groundList.push({ x, y, ground: me })\n return me\n }\n\n let me: WallSquare = {\n type: 'wall',\n filled: 'filled',\n visibility: 'visible',\n }\n\n if (!isMapBorder()) {\n let localizedWall = { x, y, wall: me }\n wallList.push(localizedWall)\n\n if (isOddWall()) {\n oddWallList.push(localizedWall)\n } else {\n evenWallList.push(localizedWall)\n }\n }\n\n return me\n })\n\n let wallGrid = grid as WallSquare[][]\n\n let shuffledOddWalllist = oddWallList\n\n shuffle(random, shuffledOddWalllist)\n\n let smallEnough\n\n if (config.maxCycleSize > 0) {\n smallEnough = (setSize: number) => {\n return (\n random() >= config.cycleRejectionFrequency &&\n setSize <= config.maxCycleSize\n )\n }\n }\n\n let selectedWallList = kruskal({\n linkList: oddWallList,\n getNodePair: (wall: LocalizedWall) => {\n if (wall.x % 2 === 0) {\n return [grid[wall.y][wall.x - 1], grid[wall.y][wall.x + 1]]\n } else if (wall.y % 2 === 0) {\n return [grid[wall.y - 1][wall.x], grid[wall.y + 1][wall.x]]\n } else throw new Error()\n },\n smallEnough,\n })\n\n selectedWallList.forEach(({ wall }) => {\n wall.filled = 'empty'\n })\n\n //////////////\n // Dijkstra //\n //////////////\n let dijkstra = new Dijkstra()\n\n let directionList: Pair[] = [\n { y: -1, x: 0 },\n { y: +1, x: 0 },\n { y: 0, x: -1 },\n { y: 0, x: +1 },\n ]\n\n let getNeigboorPairList = (pos: Pair) => {\n return directionList\n .filter((direction) => {\n let { x, y } = pairAdd(pos, direction)\n return wallGrid[y][x].filled === 'empty'\n })\n .map((direction) => pairAdd(pos, pairScale(direction, 2)))\n }\n\n groundList.forEach((localized) => {\n let label = pairToString(localized)\n let siblingObj: Record = {}\n\n getNeigboorPairList(localized).forEach((neighboor) => {\n siblingObj[pairToString(neighboor)] = 1\n })\n\n dijkstra.addNode(label, siblingObj)\n })\n\n return { grid, wallGrid, wallList, oddWallList, evenWallList, dijkstra }\n}\n","// Fisher-Yates / Knuth shuffle algorithm\n\nimport { prng } from '../../lib/seedrandom'\n\nexport let shuffle = (random: prng, array: unknown[]) => {\n for (let k = array.length - 1; k > 0; --k) {\n let kr = Math.floor(random() * (k + 1))\n //\n ;[array[k], array[kr]] = [array[kr], array[k]]\n }\n}\n","import { prng } from '../lib/seedrandom'\nimport { PonyEscapeConfig } from '../type/ponyEscapeConfig'\nimport {\n Pair,\n Player,\n PonyDisplay,\n PonyInput,\n WallSquare,\n Monster,\n PonyRenderProp,\n} from '../type/ponyEscape'\nimport { w } from '../util/window'\nimport { generateLabyrinth } from './labyrinth/generateLabyrinth'\nimport { pairEqual, pairToString, pairFromString } from '../util/pair'\nimport { Observable } from 'rxjs'\n\nexport interface LoadProp {\n config: PonyEscapeConfig\n display: PonyDisplay\n input: PonyInput\n random: prng\n size: Pair\n revealLabyrinth$: Observable\n setRevealButtonVisibility: (value: boolean) => void\n}\n\nexport let core = (prop: LoadProp) => {\n let { config, display, input, size } = prop\n let { revealLabyrinth$, setRevealButtonVisibility } = prop\n\n let {\n grid,\n wallGrid,\n dijkstra,\n oddWallList,\n evenWallList,\n } = generateLabyrinth(prop)\n let score: PonyRenderProp['score'] = ''\n let screen: PonyRenderProp['screen'] = 'play'\n\n w.grid = grid\n\n let player: Player = {\n x: 1,\n y: Math.ceil(size.y / 4) * 2 - 1,\n }\n\n let smooze: Monster = { ...player }\n\n let destination: Pair = {\n x: size.x * 2 - 1,\n y: 2 * size.y - 2 - player.y,\n }\n\n wallGrid[player.y][0].filled = 'empty'\n wallGrid[destination.y][destination.x - 1].filled = 'empty'\n\n let moveCount = 0\n\n let hideAllWalls = () => {\n oddWallList.concat(evenWallList).forEach(({ wall }) => {\n wall.visibility = 'invisible'\n })\n setRevealButtonVisibility(true)\n }\n\n let makeWallVisible = (pos: Pair) => {\n let wallList: WallSquare[] = [wallGrid[pos.y][pos.x]]\n if (pos.x % 2 === 1) {\n wallList.push(wallGrid[pos.y][pos.x - 1], wallGrid[pos.y][pos.x + 1])\n } else if (pos.y % 2 === 1) {\n wallList.push(wallGrid[pos.y - 1][pos.x], wallGrid[pos.y + 1][pos.x])\n } else throw new Error()\n\n wallList.forEach((wall) => {\n wall.visibility = 'visible'\n })\n }\n\n revealLabyrinth$.subscribe(() => {\n oddWallList.forEach(makeWallVisible)\n setRevealButtonVisibility(false)\n render()\n })\n\n /**\n * move\n * Let the player do a move\n *\n * @param direction The delta Pair that leads the player to an odd wall\n */\n let move = (direction: Pair) => {\n let moveCounteIncrement = false\n let destinationReached = false\n\n if (pairEqual(player, destination) && direction.x === 1) {\n destinationReached = true\n }\n\n player.x += direction.x\n player.y += direction.y\n\n if (\n player.x > 0 &&\n player.y > 0 &&\n wallGrid[player.y]?.[player.x]?.filled === 'empty'\n ) {\n wallGrid[player.y][player.x].visibility = 'visible'\n player.x += direction.x\n player.y += direction.y\n moveCounteIncrement = true\n } else if (destinationReached) {\n screen = 'score'\n if (score === 'defeat') {\n score = 'defeat-plus'\n } else {\n score = 'victory'\n }\n } else {\n if (wallGrid[player.y]?.[player.x]?.filled === 'filled') {\n makeWallVisible(player)\n }\n player.x -= direction.x\n player.y -= direction.y\n }\n\n moveCount += +moveCounteIncrement\n\n if (moveCount === config.hideDelay) {\n hideAllWalls()\n }\n if (moveCount >= config.smoozeDelay) {\n if (moveCount > config.smoozeDelay) {\n moveSmooze()\n }\n if (pairEqual(smooze, player)) {\n score = 'defeat'\n screen = 'score'\n }\n }\n render()\n }\n\n let moveSmooze = () => {\n let path: string[] = dijkstra.path(\n pairToString(smooze),\n pairToString(player),\n )\n\n smooze = {\n ...pairFromString(path?.[1] ?? pairToString(smooze)),\n }\n }\n\n /**\n * move_\n *\n * Prepare a move for the given delta\n *\n * @param direction The delta Pair; see `move()`\n */\n let move_ = (direction: Pair) => {\n if (Math.abs(direction.x) + Math.abs(direction.y) !== 1) throw new Error()\n return () => move(direction)\n }\n\n input.left.subscribe(move_({ x: -1, y: 0 }))\n input.right.subscribe(move_({ x: 1, y: 0 }))\n input.up.subscribe(move_({ x: 0, y: -1 }))\n input.down.subscribe(move_({ x: 0, y: 1 }))\n\n let render = () => {\n display.render({\n grid,\n monster: moveCount >= config.smoozeDelay ? smooze : undefined,\n player,\n score,\n screen,\n })\n }\n\n render()\n}\n","module.exports = new __parcel__URL__(require('./helpers/bundle-manifest').resolve(\"hoOKO\")).toString();","module.exports = new __parcel__URL__(require('./helpers/bundle-manifest').resolve(\"bQIr6\")).toString();","// delayName :: (k, Promise a) -> Promise (k, a)\nlet delayName = ([name, promise]) => promise.then((result) => [name, result])\n\nexport type PromiseValues = {\n [TK in keyof TO]: Promise\n}\n\n// promiseObjectAll :: {k: Promise a} -> Promise {k: a}\nexport let promiseObjectAll = (object: PromiseValues): Promise => {\n let promiseList = Object.entries(object).map(delayName)\n return Promise.all(promiseList).then(Object.fromEntries)\n}\n","// function create()\n// from\n// https://github.com/mathieucaroff/xadom/blob/37570300c7/src/util/xaUtil.ts\n\nimport { deepUpdate } from '../../util/deepUpdate'\n\n/**\n * create an HTML Element\n *\n * @param name The html name of the element to create\n * @param attribute An object associating keys to values for the created element\n * @param children An array of children elements\n */\nfunction h(\n name: K,\n attribute?: Partial & Record,\n children?: Element[],\n): HTMLElementTagNameMap[K]\n\nfunction h(\n name: string,\n attribute?: Record,\n children?: Element[],\n): T\n\nfunction h(\n name: K,\n attribute: Partial & Record = {},\n children: Element[] = [],\n) {\n let elem = document.createElement(name)\n\n Object.entries(attribute).forEach(([name, value]) => {\n if (elem[name] !== undefined) {\n elem[name] = value\n } else {\n elem.setAttribute(name, value)\n }\n })\n\n children.forEach((child) => {\n elem.appendChild(child)\n })\n\n return elem\n}\n\nexport { h }\n","import { h } from '../page/lib/hyper'\n\n/**\n * Load an image, encapsulated in a promise which garantees that the loading\n * has completed.\n *\n * @param url url of the image\n */\nexport let loadImage = async (url: string): Promise => {\n let resolve\n\n let onload = () => resolve()\n\n let image = h('img', { onload, src: url })\n\n await new Promise((resFunc) => {\n resolve = resFunc\n })\n\n return image\n}\n","import monsterUrl from '../../asset/monster/monster-smooze-A.png'\nimport playerUrl from '../../asset/player/rarity-930-1.png'\nimport { promiseObjectAll } from '../util/promise'\nimport { loadImage } from './loadImage'\n\nexport interface Asset {\n monster: HTMLImageElement\n player: HTMLImageElement\n}\n\nexport let getAsset = async (): Promise => {\n return promiseObjectAll({\n monster: loadImage(monsterUrl),\n player: loadImage(playerUrl),\n })\n}\n","export let white = [255, 255, 255]\nexport let albescent = [210, 210, 210]\nexport let coal = [40, 40, 40]\nexport let darkCoal = [20, 20, 20]\nexport let black = [0, 0, 0]\n","import { Pair, PonyDisplay, PonyRenderProp } from '../type/ponyEscape'\nimport { PonyEscapeConfig } from '../type/ponyEscapeConfig'\nimport { getContext2d } from '../util/getContext2d'\nimport { scaleToFitIn } from '../util/scaleToFitIn'\nimport { Asset } from './asset'\nimport { albescent, black, coal, white } from './color'\n\nexport interface PonyDisplayProp {\n asset: Asset\n canvas: HTMLCanvasElement\n config: PonyEscapeConfig\n}\n\nexport interface ScorePosition {\n x: number\n y: number\n scale: number\n}\n\nexport let createDisplay = (prop: PonyDisplayProp): PonyDisplay => {\n let { asset, canvas, config } = prop\n let ctx = getContext2d(canvas)\n\n let getGridSize = (grid: PonyRenderProp['grid']): Pair => {\n if (!(grid.length > 0)) throw new Error()\n\n return {\n x: grid[0].length,\n y: grid.length,\n }\n }\n\n let getSquareSize = (gridSize: Pair): Pair => {\n return {\n x: 800 / gridSize.x,\n y: 600 / gridSize.y,\n }\n }\n\n let renderGrid = async (grid: PonyRenderProp['grid'], gridSize: Pair) => {\n let image = new ImageData(gridSize.x, gridSize.y)\n let { data } = image\n\n grid.forEach((line, ky) => {\n let kky = 4 * line.length * ky\n line.forEach((square, kx) => {\n let kk = kky + 4 * kx\n let color: number[]\n if (square.type === 'exterior') {\n color = black\n } else if (square.type === 'ground') {\n color = coal\n } else if (square.visibility === 'invisible') {\n color = albescent\n } else if (square.filled === 'filled') {\n color = white\n } else {\n color = coal\n }\n ;[data[kk + 0], data[kk + 1], data[kk + 2]] = color\n data[kk + 3] = 255\n })\n })\n\n let bitmap = await createImageBitmap(image)\n ctx.imageSmoothingEnabled = false\n ctx.drawImage(bitmap, 0, 0, 800, 600)\n }\n\n let renderCharacter = (\n character: Pair,\n squareSize: Pair,\n which: 'player' | 'monster',\n ) => {\n let image = asset[which]\n\n let fit = scaleToFitIn(image, squareSize)\n\n let dx = character.x * squareSize.x\n let dy = character.y * squareSize.y\n if (config.highlight) {\n ctx.strokeStyle = 'red'\n ctx.strokeRect(dx, dy, squareSize.x, squareSize.y)\n }\n ctx.drawImage(image, dx + fit.x, dy + fit.y, fit.w, fit.h)\n }\n\n let renderScore = (\n score: PonyRenderProp['score'],\n scorePos: ScorePosition,\n ) => {\n let { x, y, scale } = scorePos\n\n let FONT_FAMILY = 'Anton, Impact, \"Arial Bold\"'\n ctx.font = `${32 * scale}px ${FONT_FAMILY}`\n ctx.fillStyle = 'white'\n ctx.strokeStyle = 'black'\n\n let text = `${score}`\n if (score === 'victory') {\n text = 'You escaped!'\n } else if (score === 'defeat-plus') {\n text = \"You've escaped!\"\n } else if (score === 'defeat') {\n text = \"You've been smoozed!\"\n }\n ctx.lineWidth = 5\n ctx.strokeText(text, x, y)\n ctx.fillText(text, x, y)\n }\n\n let render = async (prop: PonyRenderProp): Promise => {\n let gridSize = getGridSize(prop.grid)\n let squareSize = getSquareSize(gridSize)\n\n await renderGrid(prop.grid, gridSize)\n renderCharacter(prop.player, squareSize, 'player')\n if (prop.monster !== undefined) {\n renderCharacter(prop.monster, squareSize, 'monster')\n }\n\n if (prop.screen === 'score') {\n renderScore(prop.score, { x: 210, y: 300, scale: 2 })\n }\n }\n\n let me: PonyDisplay = {\n render,\n }\n\n return me\n}\n","export let getContext2d = (canvas: HTMLCanvasElement) => {\n let ctx = canvas.getContext('2d')\n if (ctx === null) {\n throw new Error()\n }\n return ctx\n}\n","import { Pair, WHPair } from '../type/ponyEscape'\n\nexport let scaleToFitIn = (image: WHPair, squareSize: Pair) => {\n let ratio = Math.min(squareSize.x / image.width, squareSize.y / image.height)\n\n let w = image.width * ratio\n let h = image.height * ratio\n\n return {\n w,\n h,\n x: Math.max(0, squareSize.x - w) / 2,\n y: Math.max(0, squareSize.y - h) / 2,\n ratio,\n }\n}\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","export function isFunction(x: any): x is Function {\n return typeof x === 'function';\n}\n","let _enable_super_gross_mode_that_will_cause_bad_things = false;\n\n/**\n * The global configuration object for RxJS, used to configure things\n * like what Promise contructor should used to create Promises\n */\nexport const config = {\n /**\n * The promise constructor used by default for methods such as\n * {@link toPromise} and {@link forEach}\n */\n Promise: undefined! as PromiseConstructorLike,\n\n /**\n * If true, turns on synchronous error rethrowing, which is a deprecated behavior\n * in v6 and higher. This behavior enables bad patterns like wrapping a subscribe\n * call in a try/catch block. It also enables producer interference, a nasty bug\n * where a multicast can be broken for all observers by a downstream consumer with\n * an unhandled error. DO NOT USE THIS FLAG UNLESS IT'S NEEDED TO BY TIME\n * FOR MIGRATION REASONS.\n */\n set useDeprecatedSynchronousErrorHandling(value: boolean) {\n if (value) {\n const error = new Error();\n console.warn('DEPRECATED! RxJS was set to use deprecated synchronous error handling behavior by code at: \\n' + error.stack);\n } else if (_enable_super_gross_mode_that_will_cause_bad_things) {\n console.log('RxJS: Back to a better error behavior. Thank you. <3');\n }\n _enable_super_gross_mode_that_will_cause_bad_things = value;\n },\n\n get useDeprecatedSynchronousErrorHandling() {\n return _enable_super_gross_mode_that_will_cause_bad_things;\n },\n};\n","/**\n * Throws an error on another job so that it's picked up by the runtime's\n * uncaught error handling mechanism.\n * @param err the error to throw\n */\nexport function hostReportError(err: any) {\n setTimeout(() => { throw err; }, 0);\n}","import { Observer } from './types';\nimport { config } from './config';\nimport { hostReportError } from './util/hostReportError';\n\nexport const empty: Observer = {\n closed: true,\n next(value: any): void { /* noop */},\n error(err: any): void {\n if (config.useDeprecatedSynchronousErrorHandling) {\n throw err;\n } else {\n hostReportError(err);\n }\n },\n complete(): void { /*noop*/ }\n};\n","export const isArray = (() => Array.isArray || ((x: any): x is T[] => x && typeof x.length === 'number'))();\n","export interface UnsubscriptionError extends Error {\n readonly errors: any[];\n}\n\nexport interface UnsubscriptionErrorCtor {\n new(errors: any[]): UnsubscriptionError;\n}\n\nconst UnsubscriptionErrorImpl = (() => {\n function UnsubscriptionErrorImpl(this: Error, errors: (Error|string)[]) {\n Error.call(this);\n this.message = errors ?\n `${errors.length} errors occurred during unsubscription:\n${errors.map((err, i) => `${i + 1}) ${err.toString()}`).join('\\n ')}` : '';\n this.name = 'UnsubscriptionError';\n (this as any).errors = errors;\n return this;\n }\n\n UnsubscriptionErrorImpl.prototype = Object.create(Error.prototype);\n\n return UnsubscriptionErrorImpl;\n})();\n\n/**\n * An error thrown when one or more errors have occurred during the\n * `unsubscribe` of a {@link Subscription}.\n */\nexport const UnsubscriptionError: UnsubscriptionErrorCtor = UnsubscriptionErrorImpl as any;\n","import { isArray } from './util/isArray';\nimport { isObject } from './util/isObject';\nimport { isFunction } from './util/isFunction';\nimport { UnsubscriptionError } from './util/UnsubscriptionError';\nimport { SubscriptionLike, TeardownLogic } from './types';\n\n/**\n * Represents a disposable resource, such as the execution of an Observable. A\n * Subscription has one important method, `unsubscribe`, that takes no argument\n * and just disposes the resource held by the subscription.\n *\n * Additionally, subscriptions may be grouped together through the `add()`\n * method, which will attach a child Subscription to the current Subscription.\n * When a Subscription is unsubscribed, all its children (and its grandchildren)\n * will be unsubscribed as well.\n *\n * @class Subscription\n */\nexport class Subscription implements SubscriptionLike {\n /** @nocollapse */\n public static EMPTY: Subscription = (function(empty: any) {\n empty.closed = true;\n return empty;\n }(new Subscription()));\n\n /**\n * A flag to indicate whether this Subscription has already been unsubscribed.\n * @type {boolean}\n */\n public closed: boolean = false;\n\n /** @internal */\n protected _parentOrParents: Subscription | Subscription[] | null = null;\n /** @internal */\n private _subscriptions: SubscriptionLike[] | null = null;\n\n /**\n * @param {function(): void} [unsubscribe] A function describing how to\n * perform the disposal of resources when the `unsubscribe` method is called.\n */\n constructor(unsubscribe?: () => void) {\n if (unsubscribe) {\n ( this)._unsubscribe = unsubscribe;\n }\n }\n\n /**\n * Disposes the resources held by the subscription. May, for instance, cancel\n * an ongoing Observable execution or cancel any other type of work that\n * started when the Subscription was created.\n * @return {void}\n */\n unsubscribe(): void {\n let errors: any[] | undefined;\n\n if (this.closed) {\n return;\n }\n\n let { _parentOrParents, _unsubscribe, _subscriptions } = ( this);\n\n this.closed = true;\n this._parentOrParents = null;\n // null out _subscriptions first so any child subscriptions that attempt\n // to remove themselves from this subscription will noop\n this._subscriptions = null;\n\n if (_parentOrParents instanceof Subscription) {\n _parentOrParents.remove(this);\n } else if (_parentOrParents !== null) {\n for (let index = 0; index < _parentOrParents.length; ++index) {\n const parent = _parentOrParents[index];\n parent.remove(this);\n }\n }\n\n if (isFunction(_unsubscribe)) {\n try {\n _unsubscribe.call(this);\n } catch (e) {\n errors = e instanceof UnsubscriptionError ? flattenUnsubscriptionErrors(e.errors) : [e];\n }\n }\n\n if (isArray(_subscriptions)) {\n let index = -1;\n let len = _subscriptions.length;\n\n while (++index < len) {\n const sub = _subscriptions[index];\n if (isObject(sub)) {\n try {\n sub.unsubscribe();\n } catch (e) {\n errors = errors || [];\n if (e instanceof UnsubscriptionError) {\n errors = errors.concat(flattenUnsubscriptionErrors(e.errors));\n } else {\n errors.push(e);\n }\n }\n }\n }\n }\n\n if (errors) {\n throw new UnsubscriptionError(errors);\n }\n }\n\n /**\n * Adds a tear down to be called during the unsubscribe() of this\n * Subscription. Can also be used to add a child subscription.\n *\n * If the tear down being added is a subscription that is already\n * unsubscribed, is the same reference `add` is being called on, or is\n * `Subscription.EMPTY`, it will not be added.\n *\n * If this subscription is already in an `closed` state, the passed\n * tear down logic will be executed immediately.\n *\n * When a parent subscription is unsubscribed, any child subscriptions that were added to it are also unsubscribed.\n *\n * @param {TeardownLogic} teardown The additional logic to execute on\n * teardown.\n * @return {Subscription} Returns the Subscription used or created to be\n * added to the inner subscriptions list. This Subscription can be used with\n * `remove()` to remove the passed teardown logic from the inner subscriptions\n * list.\n */\n add(teardown: TeardownLogic): Subscription {\n let subscription = (teardown);\n\n if (!(teardown)) {\n return Subscription.EMPTY;\n }\n\n switch (typeof teardown) {\n case 'function':\n subscription = new Subscription(<(() => void)>teardown);\n case 'object':\n if (subscription === this || subscription.closed || typeof subscription.unsubscribe !== 'function') {\n // This also covers the case where `subscription` is `Subscription.EMPTY`, which is always in `closed` state.\n return subscription;\n } else if (this.closed) {\n subscription.unsubscribe();\n return subscription;\n } else if (!(subscription instanceof Subscription)) {\n const tmp = subscription;\n subscription = new Subscription();\n subscription._subscriptions = [tmp];\n }\n break;\n default: {\n throw new Error('unrecognized teardown ' + teardown + ' added to Subscription.');\n }\n }\n\n // Add `this` as parent of `subscription` if that's not already the case.\n let { _parentOrParents } = subscription;\n if (_parentOrParents === null) {\n // If we don't have a parent, then set `subscription._parents` to\n // the `this`, which is the common case that we optimize for.\n subscription._parentOrParents = this;\n } else if (_parentOrParents instanceof Subscription) {\n if (_parentOrParents === this) {\n // The `subscription` already has `this` as a parent.\n return subscription;\n }\n // If there's already one parent, but not multiple, allocate an\n // Array to store the rest of the parent Subscriptions.\n subscription._parentOrParents = [_parentOrParents, this];\n } else if (_parentOrParents.indexOf(this) === -1) {\n // Only add `this` to the _parentOrParents list if it's not already there.\n _parentOrParents.push(this);\n } else {\n // The `subscription` already has `this` as a parent.\n return subscription;\n }\n\n // Optimize for the common case when adding the first subscription.\n const subscriptions = this._subscriptions;\n if (subscriptions === null) {\n this._subscriptions = [subscription];\n } else {\n subscriptions.push(subscription);\n }\n\n return subscription;\n }\n\n /**\n * Removes a Subscription from the internal list of subscriptions that will\n * unsubscribe during the unsubscribe process of this Subscription.\n * @param {Subscription} subscription The subscription to remove.\n * @return {void}\n */\n remove(subscription: Subscription): void {\n const subscriptions = this._subscriptions;\n if (subscriptions) {\n const subscriptionIndex = subscriptions.indexOf(subscription);\n if (subscriptionIndex !== -1) {\n subscriptions.splice(subscriptionIndex, 1);\n }\n }\n }\n}\n\nfunction flattenUnsubscriptionErrors(errors: any[]) {\n return errors.reduce((errs, err) => errs.concat((err instanceof UnsubscriptionError) ? err.errors : err), []);\n}\n","export function isObject(x: any): x is Object {\n return x !== null && typeof x === 'object';\n}\n","/** @deprecated do not use, this is no longer checked by RxJS internals */\nexport const rxSubscriber = (() =>\n typeof Symbol === 'function'\n ? Symbol('rxSubscriber')\n : '@@rxSubscriber_' + Math.random())();\n\n/**\n * @deprecated use rxSubscriber instead\n */\nexport const $$rxSubscriber = rxSubscriber;\n","import { isFunction } from './util/isFunction';\nimport { empty as emptyObserver } from './Observer';\nimport { Observer, PartialObserver } from './types';\nimport { Subscription } from './Subscription';\nimport { rxSubscriber as rxSubscriberSymbol } from '../internal/symbol/rxSubscriber';\nimport { config } from './config';\nimport { hostReportError } from './util/hostReportError';\n\n/**\n * Implements the {@link Observer} interface and extends the\n * {@link Subscription} class. While the {@link Observer} is the public API for\n * consuming the values of an {@link Observable}, all Observers get converted to\n * a Subscriber, in order to provide Subscription-like capabilities such as\n * `unsubscribe`. Subscriber is a common type in RxJS, and crucial for\n * implementing operators, but it is rarely used as a public API.\n *\n * @class Subscriber\n */\nexport class Subscriber extends Subscription implements Observer {\n\n [rxSubscriberSymbol]() { return this; }\n\n /**\n * A static factory for a Subscriber, given a (potentially partial) definition\n * of an Observer.\n * @param {function(x: ?T): void} [next] The `next` callback of an Observer.\n * @param {function(e: ?any): void} [error] The `error` callback of an\n * Observer.\n * @param {function(): void} [complete] The `complete` callback of an\n * Observer.\n * @return {Subscriber} A Subscriber wrapping the (partially defined)\n * Observer represented by the given arguments.\n * @nocollapse\n */\n static create(next?: (x?: T) => void,\n error?: (e?: any) => void,\n complete?: () => void): Subscriber {\n const subscriber = new Subscriber(next, error, complete);\n subscriber.syncErrorThrowable = false;\n return subscriber;\n }\n\n /** @internal */ syncErrorValue: any = null;\n /** @internal */ syncErrorThrown: boolean = false;\n /** @internal */ syncErrorThrowable: boolean = false;\n\n protected isStopped: boolean = false;\n protected destination: Observer | Subscriber; // this `any` is the escape hatch to erase extra type param (e.g. R)\n\n /**\n * @param {Observer|function(value: T): void} [destinationOrNext] A partially\n * defined Observer or a `next` callback function.\n * @param {function(e: ?any): void} [error] The `error` callback of an\n * Observer.\n * @param {function(): void} [complete] The `complete` callback of an\n * Observer.\n */\n constructor(destinationOrNext?: PartialObserver | ((value: T) => void) | null,\n error?: ((e?: any) => void) | null,\n complete?: (() => void) | null) {\n super();\n\n switch (arguments.length) {\n case 0:\n this.destination = emptyObserver;\n break;\n case 1:\n if (!destinationOrNext) {\n this.destination = emptyObserver;\n break;\n }\n if (typeof destinationOrNext === 'object') {\n if (destinationOrNext instanceof Subscriber) {\n this.syncErrorThrowable = destinationOrNext.syncErrorThrowable;\n this.destination = destinationOrNext;\n destinationOrNext.add(this);\n } else {\n this.syncErrorThrowable = true;\n this.destination = new SafeSubscriber(this, > destinationOrNext);\n }\n break;\n }\n default:\n this.syncErrorThrowable = true;\n this.destination = new SafeSubscriber(this, <((value: T) => void)> destinationOrNext, error, complete);\n break;\n }\n }\n\n /**\n * The {@link Observer} callback to receive notifications of type `next` from\n * the Observable, with a value. The Observable may call this method 0 or more\n * times.\n * @param {T} [value] The `next` value.\n * @return {void}\n */\n next(value?: T): void {\n if (!this.isStopped) {\n this._next(value!);\n }\n }\n\n /**\n * The {@link Observer} callback to receive notifications of type `error` from\n * the Observable, with an attached `Error`. Notifies the Observer that\n * the Observable has experienced an error condition.\n * @param {any} [err] The `error` exception.\n * @return {void}\n */\n error(err?: any): void {\n if (!this.isStopped) {\n this.isStopped = true;\n this._error(err);\n }\n }\n\n /**\n * The {@link Observer} callback to receive a valueless notification of type\n * `complete` from the Observable. Notifies the Observer that the Observable\n * has finished sending push-based notifications.\n * @return {void}\n */\n complete(): void {\n if (!this.isStopped) {\n this.isStopped = true;\n this._complete();\n }\n }\n\n unsubscribe(): void {\n if (this.closed) {\n return;\n }\n this.isStopped = true;\n super.unsubscribe();\n }\n\n protected _next(value: T): void {\n this.destination.next(value);\n }\n\n protected _error(err: any): void {\n this.destination.error(err);\n this.unsubscribe();\n }\n\n protected _complete(): void {\n this.destination.complete();\n this.unsubscribe();\n }\n\n /** @deprecated This is an internal implementation detail, do not use. */\n _unsubscribeAndRecycle(): Subscriber {\n const { _parentOrParents } = this;\n this._parentOrParents = null!;\n this.unsubscribe();\n this.closed = false;\n this.isStopped = false;\n this._parentOrParents = _parentOrParents;\n return this;\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nexport class SafeSubscriber extends Subscriber {\n\n private _context: any;\n\n constructor(private _parentSubscriber: Subscriber,\n observerOrNext?: PartialObserver | ((value: T) => void) | null,\n error?: ((e?: any) => void) | null,\n complete?: (() => void) | null) {\n super();\n\n let next: ((value: T) => void) | undefined;\n let context: any = this;\n\n if (isFunction(observerOrNext)) {\n next = (<((value: T) => void)> observerOrNext);\n } else if (observerOrNext) {\n next = (> observerOrNext).next;\n error = (> observerOrNext).error;\n complete = (> observerOrNext).complete;\n if (observerOrNext !== emptyObserver) {\n context = Object.create(observerOrNext);\n if (isFunction(context.unsubscribe)) {\n this.add(<() => void> context.unsubscribe.bind(context));\n }\n context.unsubscribe = this.unsubscribe.bind(this);\n }\n }\n\n this._context = context;\n this._next = next!;\n this._error = error!;\n this._complete = complete!;\n }\n\n next(value?: T): void {\n if (!this.isStopped && this._next) {\n const { _parentSubscriber } = this;\n if (!config.useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {\n this.__tryOrUnsub(this._next, value);\n } else if (this.__tryOrSetError(_parentSubscriber, this._next, value)) {\n this.unsubscribe();\n }\n }\n }\n\n error(err?: any): void {\n if (!this.isStopped) {\n const { _parentSubscriber } = this;\n const { useDeprecatedSynchronousErrorHandling } = config;\n if (this._error) {\n if (!useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {\n this.__tryOrUnsub(this._error, err);\n this.unsubscribe();\n } else {\n this.__tryOrSetError(_parentSubscriber, this._error, err);\n this.unsubscribe();\n }\n } else if (!_parentSubscriber.syncErrorThrowable) {\n this.unsubscribe();\n if (useDeprecatedSynchronousErrorHandling) {\n throw err;\n }\n hostReportError(err);\n } else {\n if (useDeprecatedSynchronousErrorHandling) {\n _parentSubscriber.syncErrorValue = err;\n _parentSubscriber.syncErrorThrown = true;\n } else {\n hostReportError(err);\n }\n this.unsubscribe();\n }\n }\n }\n\n complete(): void {\n if (!this.isStopped) {\n const { _parentSubscriber } = this;\n if (this._complete) {\n const wrappedComplete = () => this._complete.call(this._context);\n\n if (!config.useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {\n this.__tryOrUnsub(wrappedComplete);\n this.unsubscribe();\n } else {\n this.__tryOrSetError(_parentSubscriber, wrappedComplete);\n this.unsubscribe();\n }\n } else {\n this.unsubscribe();\n }\n }\n }\n\n private __tryOrUnsub(fn: Function, value?: any): void {\n try {\n fn.call(this._context, value);\n } catch (err) {\n this.unsubscribe();\n if (config.useDeprecatedSynchronousErrorHandling) {\n throw err;\n } else {\n hostReportError(err);\n }\n }\n }\n\n private __tryOrSetError(parent: Subscriber, fn: Function, value?: any): boolean {\n if (!config.useDeprecatedSynchronousErrorHandling) {\n throw new Error('bad call');\n }\n try {\n fn.call(this._context, value);\n } catch (err) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n parent.syncErrorValue = err;\n parent.syncErrorThrown = true;\n return true;\n } else {\n hostReportError(err);\n return true;\n }\n }\n return false;\n }\n\n /** @internal This is an internal implementation detail, do not use. */\n _unsubscribe(): void {\n const { _parentSubscriber } = this;\n this._context = null;\n this._parentSubscriber = null!;\n _parentSubscriber.unsubscribe();\n }\n}\n","/** Symbol.observable addition */\n/* Note: This will add Symbol.observable globally for all TypeScript users,\n however, we are no longer polyfilling Symbol.observable */\ndeclare global {\n interface SymbolConstructor {\n readonly observable: symbol;\n }\n}\n\n/** Symbol.observable or a string \"@@observable\". Used for interop */\nexport const observable = (() => typeof Symbol === 'function' && Symbol.observable || '@@observable')();\n","export function identity(x: T): T {\n return x;\n}\n","import { noop } from './noop';\nimport { identity } from './identity';\nimport { UnaryFunction } from '../types';\n\n/* tslint:disable:max-line-length */\nexport function pipe(): UnaryFunction;\nexport function pipe(fn1: UnaryFunction): UnaryFunction;\nexport function pipe(fn1: UnaryFunction, fn2: UnaryFunction): UnaryFunction;\nexport function pipe(fn1: UnaryFunction, fn2: UnaryFunction, fn3: UnaryFunction): UnaryFunction;\nexport function pipe(fn1: UnaryFunction, fn2: UnaryFunction, fn3: UnaryFunction, fn4: UnaryFunction): UnaryFunction;\nexport function pipe(fn1: UnaryFunction, fn2: UnaryFunction, fn3: UnaryFunction, fn4: UnaryFunction, fn5: UnaryFunction): UnaryFunction;\nexport function pipe(fn1: UnaryFunction, fn2: UnaryFunction, fn3: UnaryFunction, fn4: UnaryFunction, fn5: UnaryFunction, fn6: UnaryFunction): UnaryFunction;\nexport function pipe(fn1: UnaryFunction, fn2: UnaryFunction, fn3: UnaryFunction, fn4: UnaryFunction, fn5: UnaryFunction, fn6: UnaryFunction, fn7: UnaryFunction): UnaryFunction;\nexport function pipe(fn1: UnaryFunction, fn2: UnaryFunction, fn3: UnaryFunction, fn4: UnaryFunction, fn5: UnaryFunction, fn6: UnaryFunction, fn7: UnaryFunction, fn8: UnaryFunction): UnaryFunction;\nexport function pipe(fn1: UnaryFunction, fn2: UnaryFunction, fn3: UnaryFunction, fn4: UnaryFunction, fn5: UnaryFunction, fn6: UnaryFunction, fn7: UnaryFunction, fn8: UnaryFunction, fn9: UnaryFunction): UnaryFunction;\nexport function pipe(fn1: UnaryFunction, fn2: UnaryFunction, fn3: UnaryFunction, fn4: UnaryFunction, fn5: UnaryFunction, fn6: UnaryFunction, fn7: UnaryFunction, fn8: UnaryFunction, fn9: UnaryFunction, ...fns: UnaryFunction[]): UnaryFunction;\n/* tslint:enable:max-line-length */\n\nexport function pipe(...fns: Array>): UnaryFunction {\n return pipeFromArray(fns);\n}\n\n/** @internal */\nexport function pipeFromArray(fns: Array>): UnaryFunction {\n if (fns.length === 0) {\n return identity as UnaryFunction;\n }\n\n if (fns.length === 1) {\n return fns[0];\n }\n\n return function piped(input: T): R {\n return fns.reduce((prev: any, fn: UnaryFunction) => fn(prev), input as any);\n };\n}\n","export class Deferred {\n resolve: (value?: T | PromiseLike | undefined) => void = null!;\n reject: (reason?: any) => void = null!;\n promise = new Promise((a, b) => {\n this.resolve = a;\n this.reject = b;\n });\n}\n","import { Observable } from './Observable';\nimport { Deferred } from './util/deferred';\n\nexport function asyncIteratorFrom(source: Observable) {\n return coroutine(source);\n}\n\nasync function* coroutine(source: Observable) {\n const deferreds: Deferred>[] = [];\n const values: T[] = [];\n let hasError = false;\n let error: any = null;\n let completed = false;\n\n const subs = source.subscribe({\n next: value => {\n if (deferreds.length > 0) {\n deferreds.shift()!.resolve({ value, done: false });\n } else {\n values.push(value);\n }\n },\n error: err => {\n hasError = true;\n error = err;\n while (deferreds.length > 0) {\n deferreds.shift()!.reject(err);\n }\n },\n complete: () => {\n completed = true;\n while (deferreds.length > 0) {\n deferreds.shift()!.resolve({ value: undefined, done: true });\n }\n },\n });\n\n try {\n while (true) {\n if (values.length > 0) {\n yield values.shift();\n } else if (completed) {\n return;\n } else if (hasError) {\n throw error;\n } else {\n const d = new Deferred>();\n deferreds.push(d);\n const result = await d.promise;\n if (result.done) {\n return;\n } else {\n yield result.value;\n }\n }\n }\n } catch (err) {\n throw err;\n } finally {\n subs.unsubscribe();\n }\n}","import { Operator } from './Operator';\nimport { Subscriber } from './Subscriber';\nimport { Subscription } from './Subscription';\nimport { TeardownLogic, OperatorFunction, PartialObserver, Subscribable } from './types';\nimport { canReportError } from './util/canReportError';\nimport { toSubscriber } from './util/toSubscriber';\nimport { iif } from './observable/iif';\nimport { throwError } from './observable/throwError';\nimport { observable as Symbol_observable } from './symbol/observable';\nimport { pipeFromArray } from './util/pipe';\nimport { config } from './config';\nimport { asyncIteratorFrom } from './asyncIteratorFrom';\n\n/**\n * A representation of any set of values over any amount of time. This is the most basic building block\n * of RxJS.\n *\n * @class Observable\n */\nexport class Observable implements Subscribable {\n\n /** Internal implementation detail, do not use directly. */\n public _isScalar: boolean = false;\n\n /** @deprecated This is an internal implementation detail, do not use. */\n source: Observable | undefined;\n\n /** @deprecated This is an internal implementation detail, do not use. */\n operator: Operator | undefined;\n\n /**\n * @constructor\n * @param {Function} subscribe the function that is called when the Observable is\n * initially subscribed to. This function is given a Subscriber, to which new values\n * can be `next`ed, or an `error` method can be called to raise an error, or\n * `complete` can be called to notify of a successful completion.\n */\n constructor(subscribe?: (this: Observable, subscriber: Subscriber) => TeardownLogic) {\n if (subscribe) {\n this._subscribe = subscribe;\n }\n }\n\n // HACK: Since TypeScript inherits static properties too, we have to\n // fight against TypeScript here so Subject can have a different static create signature\n /**\n * Creates a new cold Observable by calling the Observable constructor\n * @static true\n * @owner Observable\n * @method create\n * @param {Function} subscribe? the subscriber function to be passed to the Observable constructor\n * @return {Observable} a new cold observable\n * @nocollapse\n * @deprecated use new Observable() instead\n */\n static create: Function = (subscribe?: (subscriber: Subscriber) => TeardownLogic) => {\n return new Observable(subscribe);\n }\n\n /**\n * Creates a new Observable, with this Observable as the source, and the passed\n * operator defined as the new observable's operator.\n * @method lift\n * @param {Operator} operator the operator defining the operation to take on the observable\n * @return {Observable} a new observable with the Operator applied\n */\n lift(operator?: Operator): Observable {\n const observable = new Observable();\n observable.source = this;\n observable.operator = operator;\n return observable;\n }\n\n subscribe(observer?: PartialObserver): Subscription;\n /** @deprecated Use an observer instead of a complete callback */\n subscribe(next: null | undefined, error: null | undefined, complete: () => void): Subscription;\n /** @deprecated Use an observer instead of an error callback */\n subscribe(next: null | undefined, error: (error: any) => void, complete?: () => void): Subscription;\n /** @deprecated Use an observer instead of a complete callback */\n subscribe(next: (value: T) => void, error: null | undefined, complete: () => void): Subscription;\n subscribe(next?: (value: T) => void, error?: (error: any) => void, complete?: () => void): Subscription;\n /**\n * Invokes an execution of an Observable and registers Observer handlers for notifications it will emit.\n *\n * Use it when you have all these Observables, but still nothing is happening.\n *\n * `subscribe` is not a regular operator, but a method that calls Observable's internal `subscribe` function. It\n * might be for example a function that you passed to Observable's constructor, but most of the time it is\n * a library implementation, which defines what will be emitted by an Observable, and when it be will emitted. This means\n * that calling `subscribe` is actually the moment when Observable starts its work, not when it is created, as it is often\n * the thought.\n *\n * Apart from starting the execution of an Observable, this method allows you to listen for values\n * that an Observable emits, as well as for when it completes or errors. You can achieve this in two\n * of the following ways.\n *\n * The first way is creating an object that implements {@link Observer} interface. It should have methods\n * defined by that interface, but note that it should be just a regular JavaScript object, which you can create\n * yourself in any way you want (ES6 class, classic function constructor, object literal etc.). In particular do\n * not attempt to use any RxJS implementation details to create Observers - you don't need them. Remember also\n * that your object does not have to implement all methods. If you find yourself creating a method that doesn't\n * do anything, you can simply omit it. Note however, if the `error` method is not provided, all errors will\n * be left uncaught.\n *\n * The second way is to give up on Observer object altogether and simply provide callback functions in place of its methods.\n * This means you can provide three functions as arguments to `subscribe`, where the first function is equivalent\n * of a `next` method, the second of an `error` method and the third of a `complete` method. Just as in case of Observer,\n * if you do not need to listen for something, you can omit a function, preferably by passing `undefined` or `null`,\n * since `subscribe` recognizes these functions by where they were placed in function call. When it comes\n * to `error` function, just as before, if not provided, errors emitted by an Observable will be thrown.\n *\n * Whichever style of calling `subscribe` you use, in both cases it returns a Subscription object.\n * This object allows you to call `unsubscribe` on it, which in turn will stop the work that an Observable does and will clean\n * up all resources that an Observable used. Note that cancelling a subscription will not call `complete` callback\n * provided to `subscribe` function, which is reserved for a regular completion signal that comes from an Observable.\n *\n * Remember that callbacks provided to `subscribe` are not guaranteed to be called asynchronously.\n * It is an Observable itself that decides when these functions will be called. For example {@link of}\n * by default emits all its values synchronously. Always check documentation for how given Observable\n * will behave when subscribed and if its default behavior can be modified with a `scheduler`.\n *\n * ## Example\n * ### Subscribe with an Observer\n * ```ts\n * import { of } from 'rxjs';\n *\n * const sumObserver = {\n * sum: 0,\n * next(value) {\n * console.log('Adding: ' + value);\n * this.sum = this.sum + value;\n * },\n * error() {\n * // We actually could just remove this method,\n * // since we do not really care about errors right now.\n * },\n * complete() {\n * console.log('Sum equals: ' + this.sum);\n * }\n * };\n *\n * of(1, 2, 3) // Synchronously emits 1, 2, 3 and then completes.\n * .subscribe(sumObserver);\n *\n * // Logs:\n * // \"Adding: 1\"\n * // \"Adding: 2\"\n * // \"Adding: 3\"\n * // \"Sum equals: 6\"\n * ```\n *\n * ### Subscribe with functions\n * ```ts\n * import { of } from 'rxjs'\n *\n * let sum = 0;\n *\n * of(1, 2, 3).subscribe(\n * value => {\n * console.log('Adding: ' + value);\n * sum = sum + value;\n * },\n * undefined,\n * () => console.log('Sum equals: ' + sum)\n * );\n *\n * // Logs:\n * // \"Adding: 1\"\n * // \"Adding: 2\"\n * // \"Adding: 3\"\n * // \"Sum equals: 6\"\n * ```\n *\n * ### Cancel a subscription\n * ```ts\n * import { interval } from 'rxjs';\n *\n * const subscription = interval(1000).subscribe(\n * num => console.log(num),\n * undefined,\n * () => {\n * // Will not be called, even when cancelling subscription.\n * console.log('completed!');\n * }\n * );\n *\n * setTimeout(() => {\n * subscription.unsubscribe();\n * console.log('unsubscribed!');\n * }, 2500);\n *\n * // Logs:\n * // 0 after 1s\n * // 1 after 2s\n * // \"unsubscribed!\" after 2.5s\n * ```\n *\n * @param {Observer|Function} observerOrNext (optional) Either an observer with methods to be called,\n * or the first of three possible handlers, which is the handler for each value emitted from the subscribed\n * Observable.\n * @param {Function} error (optional) A handler for a terminal event resulting from an error. If no error handler is provided,\n * the error will be thrown as unhandled.\n * @param {Function} complete (optional) A handler for a terminal event resulting from successful completion.\n * @return {ISubscription} a subscription reference to the registered handlers\n * @method subscribe\n */\n subscribe(observerOrNext?: PartialObserver | ((value: T) => void) | null,\n error?: ((error: any) => void) | null,\n complete?: (() => void) | null): Subscription {\n\n const { operator } = this;\n const sink = toSubscriber(observerOrNext, error, complete);\n\n if (operator) {\n sink.add(operator.call(sink, this.source));\n } else {\n sink.add(\n this.source || (config.useDeprecatedSynchronousErrorHandling && !sink.syncErrorThrowable) ?\n this._subscribe(sink) :\n this._trySubscribe(sink)\n );\n }\n\n if (config.useDeprecatedSynchronousErrorHandling) {\n if (sink.syncErrorThrowable) {\n sink.syncErrorThrowable = false;\n if (sink.syncErrorThrown) {\n throw sink.syncErrorValue;\n }\n }\n }\n\n return sink;\n }\n\n /** @deprecated This is an internal implementation detail, do not use. */\n _trySubscribe(sink: Subscriber): TeardownLogic {\n try {\n return this._subscribe(sink);\n } catch (err) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n sink.syncErrorThrown = true;\n sink.syncErrorValue = err;\n }\n if (canReportError(sink)) {\n sink.error(err);\n } else {\n console.warn(err);\n }\n }\n }\n\n /**\n * @method forEach\n * @param next a handler for each value emitted by the observable\n * @param [promiseCtor] a constructor function used to instantiate the Promise\n * @return a promise that either resolves on observable completion or\n * rejects with the handled error\n */\n forEach(next: (value: T) => void, promiseCtor?: PromiseConstructorLike): Promise {\n promiseCtor = getPromiseCtor(promiseCtor);\n\n return new promiseCtor((resolve, reject) => {\n // Must be declared in a separate statement to avoid a ReferenceError when\n // accessing subscription below in the closure due to Temporal Dead Zone.\n let subscription: Subscription;\n subscription = this.subscribe((value) => {\n try {\n next(value);\n } catch (err) {\n reject(err);\n if (subscription) {\n subscription.unsubscribe();\n }\n }\n }, reject, resolve);\n }) as Promise;\n }\n\n /** @internal This is an internal implementation detail, do not use. */\n _subscribe(subscriber: Subscriber): TeardownLogic {\n const { source } = this;\n return source && source.subscribe(subscriber);\n }\n\n // `if` and `throw` are special snow flakes, the compiler sees them as reserved words. Deprecated in\n // favor of iif and throwError functions.\n /**\n * @nocollapse\n * @deprecated In favor of iif creation function: import { iif } from 'rxjs';\n */\n static if: typeof iif;\n /**\n * @nocollapse\n * @deprecated In favor of throwError creation function: import { throwError } from 'rxjs';\n */\n static throw: typeof throwError;\n\n /**\n * An interop point defined by the es7-observable spec https://github.com/zenparsing/es-observable\n * @method Symbol.observable\n * @return {Observable} this instance of the observable\n */\n [Symbol_observable]() {\n return this;\n }\n\n /* tslint:disable:max-line-length */\n pipe(): Observable;\n pipe(op1: OperatorFunction): Observable;\n pipe(op1: OperatorFunction, op2: OperatorFunction): Observable;\n pipe(op1: OperatorFunction, op2: OperatorFunction, op3: OperatorFunction): Observable;\n pipe(op1: OperatorFunction, op2: OperatorFunction, op3: OperatorFunction, op4: OperatorFunction): Observable;\n pipe(op1: OperatorFunction, op2: OperatorFunction, op3: OperatorFunction, op4: OperatorFunction, op5: OperatorFunction): Observable;\n pipe(op1: OperatorFunction, op2: OperatorFunction, op3: OperatorFunction, op4: OperatorFunction, op5: OperatorFunction, op6: OperatorFunction): Observable;\n pipe(op1: OperatorFunction, op2: OperatorFunction, op3: OperatorFunction, op4: OperatorFunction, op5: OperatorFunction, op6: OperatorFunction, op7: OperatorFunction): Observable;\n pipe(op1: OperatorFunction, op2: OperatorFunction, op3: OperatorFunction, op4: OperatorFunction, op5: OperatorFunction, op6: OperatorFunction, op7: OperatorFunction, op8: OperatorFunction): Observable;\n pipe(op1: OperatorFunction, op2: OperatorFunction, op3: OperatorFunction, op4: OperatorFunction, op5: OperatorFunction, op6: OperatorFunction, op7: OperatorFunction, op8: OperatorFunction, op9: OperatorFunction): Observable;\n pipe(op1: OperatorFunction, op2: OperatorFunction, op3: OperatorFunction, op4: OperatorFunction, op5: OperatorFunction, op6: OperatorFunction, op7: OperatorFunction, op8: OperatorFunction, op9: OperatorFunction, ...operations: OperatorFunction[]): Observable;\n /* tslint:enable:max-line-length */\n\n /**\n * Used to stitch together functional operators into a chain.\n * @method pipe\n * @return {Observable} the Observable result of all of the operators having\n * been called in the order they were passed in.\n *\n * ### Example\n * ```ts\n * import { interval } from 'rxjs';\n * import { map, filter, scan } from 'rxjs/operators';\n *\n * interval(1000)\n * .pipe(\n * filter(x => x % 2 === 0),\n * map(x => x + x),\n * scan((acc, x) => acc + x)\n * )\n * .subscribe(x => console.log(x))\n * ```\n */\n pipe(...operations: OperatorFunction[]): Observable {\n if (operations.length === 0) {\n return this as any;\n }\n\n return pipeFromArray(operations)(this);\n }\n\n /* tslint:disable:max-line-length */\n toPromise(this: Observable): Promise;\n toPromise(this: Observable, PromiseCtor: typeof Promise): Promise;\n toPromise(this: Observable, PromiseCtor: PromiseConstructorLike): Promise;\n /* tslint:enable:max-line-length */\n\n /**\n * Subscribe to this Observable and get a Promise resolving on\n * `complete` with the last emission (if any).\n *\n * @method toPromise\n * @param [promiseCtor] a constructor function used to instantiate\n * the Promise\n * @return A Promise that resolves with the last value emit, or\n * rejects on an error. If there were no emissions, Promise\n * resolves with undefined.\n */\n toPromise(promiseCtor?: PromiseConstructorLike): Promise {\n promiseCtor = getPromiseCtor(promiseCtor);\n\n return new promiseCtor((resolve, reject) => {\n let value: T | undefined;\n this.subscribe((x: T) => value = x, (err: any) => reject(err), () => resolve(value));\n }) as Promise;\n }\n}\n\n/**\n * Decides between a passed promise constructor from consuming code,\n * A default configured promise constructor, and the native promise\n * constructor and returns it. If nothing can be found, it will throw\n * an error.\n * @param promiseCtor The optional promise constructor to passed by consuming code\n */\nfunction getPromiseCtor(promiseCtor: PromiseConstructorLike | undefined) {\n if (!promiseCtor) {\n promiseCtor = config.Promise || Promise;\n }\n\n if (!promiseCtor) {\n throw new Error('no Promise impl found');\n }\n\n return promiseCtor;\n}\n\nexport interface Observable {\n [Symbol.asyncIterator](): AsyncIterableIterator;\n}\n\n(function () {\n /**\n * We only add this symbol if the runtime supports it.\n * Adding this adds support for subscribing to observables\n * via `for await(const value of source$) {}`\n *\n * This passes muster in Node 9, which does not support\n * async iterators. As well as working in Node 12, which does\n * support the symbol.\n */\n if (Symbol && Symbol.asyncIterator) {\n Observable.prototype[Symbol.asyncIterator] = function () {\n return asyncIteratorFrom(this);\n };\n }\n})();","import { Subscriber } from '../Subscriber';\nimport { rxSubscriber as rxSubscriberSymbol } from '../symbol/rxSubscriber';\nimport { empty as emptyObserver } from '../Observer';\nimport { PartialObserver } from '../types';\n\nexport function toSubscriber(\n nextOrObserver?: PartialObserver | ((value: T) => void) | null,\n error?: ((error: any) => void) | null,\n complete?: (() => void) | null): Subscriber {\n\n if (nextOrObserver) {\n if (nextOrObserver instanceof Subscriber) {\n return (> nextOrObserver);\n }\n\n if ((nextOrObserver as any)[rxSubscriberSymbol]) {\n return (nextOrObserver as any)[rxSubscriberSymbol]();\n }\n }\n\n if (!nextOrObserver && !error && !complete) {\n return new Subscriber(emptyObserver);\n }\n\n return new Subscriber(nextOrObserver, error, complete);\n}\n","import { Subscriber } from '../Subscriber';\nimport { Subject } from '../Subject';\n\n/**\n * Determines whether the ErrorObserver is closed or stopped or has a\n * destination that is closed or stopped - in which case errors will\n * need to be reported via a different mechanism.\n * @param observer the observer\n */\nexport function canReportError(observer: Subscriber | Subject): boolean {\n while (observer) {\n const { closed, destination, isStopped } = observer as any;\n if (closed || isStopped) {\n return false;\n } else if (destination && destination instanceof Subscriber) {\n observer = destination;\n } else {\n observer = null!;\n }\n }\n return true;\n}\n","export interface ObjectUnsubscribedError extends Error {\n}\n\nexport interface ObjectUnsubscribedErrorCtor {\n new(): ObjectUnsubscribedError;\n}\n\nconst ObjectUnsubscribedErrorImpl = (() => {\n function ObjectUnsubscribedErrorImpl(this: Error) {\n Error.call(this);\n this.message = 'object unsubscribed';\n this.name = 'ObjectUnsubscribedError';\n return this;\n }\n\n ObjectUnsubscribedErrorImpl.prototype = Object.create(Error.prototype);\n\n return ObjectUnsubscribedErrorImpl;\n})();\n\n/**\n * An error thrown when an action is invalid because the object has been\n * unsubscribed.\n *\n * @see {@link Subject}\n * @see {@link BehaviorSubject}\n *\n * @class ObjectUnsubscribedError\n */\nexport const ObjectUnsubscribedError: ObjectUnsubscribedErrorCtor = ObjectUnsubscribedErrorImpl as any;","import { Subject } from './Subject';\nimport { Observer } from './types';\nimport { Subscription } from './Subscription';\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nexport class SubjectSubscription extends Subscription {\n closed: boolean = false;\n\n constructor(public subject: Subject, public subscriber: Observer) {\n super();\n }\n\n unsubscribe() {\n if (this.closed) {\n return;\n }\n\n this.closed = true;\n\n const subject = this.subject;\n const observers = subject.observers;\n\n this.subject = null!;\n\n if (!observers || observers.length === 0 || subject.isStopped || subject.closed) {\n return;\n }\n\n const subscriberIndex = observers.indexOf(this.subscriber);\n\n if (subscriberIndex !== -1) {\n observers.splice(subscriberIndex, 1);\n }\n }\n}\n","import { Operator } from './Operator';\nimport { Observable } from './Observable';\nimport { Subscriber } from './Subscriber';\nimport { Subscription } from './Subscription';\nimport { Observer, SubscriptionLike, TeardownLogic } from './types';\nimport { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';\nimport { SubjectSubscription } from './SubjectSubscription';\nimport { rxSubscriber as rxSubscriberSymbol } from '../internal/symbol/rxSubscriber';\n\n/**\n * @class SubjectSubscriber\n */\nexport class SubjectSubscriber extends Subscriber {\n constructor(protected destination: Subject) {\n super(destination);\n }\n}\n\n/**\n * A Subject is a special type of Observable that allows values to be\n * multicasted to many Observers. Subjects are like EventEmitters.\n *\n * Every Subject is an Observable and an Observer. You can subscribe to a\n * Subject, and you can call next to feed values as well as error and complete.\n *\n * @class Subject\n */\nexport class Subject extends Observable implements SubscriptionLike {\n\n [rxSubscriberSymbol]() {\n return new SubjectSubscriber(this);\n }\n\n observers: Observer[] = [];\n\n closed = false;\n\n isStopped = false;\n\n hasError = false;\n\n thrownError: any = null;\n\n constructor() {\n super();\n }\n\n /**@nocollapse\n * @deprecated use new Subject() instead\n */\n static create: Function = (destination: Observer, source: Observable): AnonymousSubject => {\n return new AnonymousSubject(destination, source);\n }\n\n lift(operator: Operator): Observable {\n const subject = new AnonymousSubject(this, this);\n subject.operator = operator;\n return subject;\n }\n\n next(value: T) {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n if (!this.isStopped) {\n const { observers } = this;\n const len = observers.length;\n const copy = observers.slice();\n for (let i = 0; i < len; i++) {\n copy[i].next(value!);\n }\n }\n }\n\n error(err: any) {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n this.hasError = true;\n this.thrownError = err;\n this.isStopped = true;\n const { observers } = this;\n const len = observers.length;\n const copy = observers.slice();\n for (let i = 0; i < len; i++) {\n copy[i].error(err);\n }\n this.observers.length = 0;\n }\n\n complete() {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n this.isStopped = true;\n const { observers } = this;\n const len = observers.length;\n const copy = observers.slice();\n for (let i = 0; i < len; i++) {\n copy[i].complete();\n }\n this.observers.length = 0;\n }\n\n unsubscribe() {\n this.isStopped = true;\n this.closed = true;\n this.observers = null!;\n }\n\n /** @deprecated This is an internal implementation detail, do not use. */\n _trySubscribe(subscriber: Subscriber): TeardownLogic {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n } else {\n return super._trySubscribe(subscriber);\n }\n }\n\n /** @deprecated This is an internal implementation detail, do not use. */\n _subscribe(subscriber: Subscriber): Subscription {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n } else if (this.hasError) {\n subscriber.error(this.thrownError);\n return Subscription.EMPTY;\n } else if (this.isStopped) {\n subscriber.complete();\n return Subscription.EMPTY;\n } else {\n this.observers.push(subscriber);\n return new SubjectSubscription(this, subscriber);\n }\n }\n\n /**\n * Creates a new Observable with this Subject as the source. You can do this\n * to create customize Observer-side logic of the Subject and conceal it from\n * code that uses the Observable.\n * @return {Observable} Observable that the Subject casts to\n */\n asObservable(): Observable {\n const observable = new Observable();\n (observable).source = this;\n return observable;\n }\n}\n\n/**\n * @class AnonymousSubject\n */\nexport class AnonymousSubject extends Subject {\n constructor(protected destination?: Observer, source?: Observable) {\n super();\n this.source = source;\n }\n\n next(value: T) {\n const { destination } = this;\n if (destination && destination.next) {\n destination.next(value);\n }\n }\n\n error(err: any) {\n const { destination } = this;\n if (destination && destination.error) {\n this.destination!.error(err);\n }\n }\n\n complete() {\n const { destination } = this;\n if (destination && destination.complete) {\n this.destination!.complete();\n }\n }\n\n /** @deprecated This is an internal implementation detail, do not use. */\n _subscribe(subscriber: Subscriber): Subscription {\n const { source } = this;\n if (source) {\n return this.source!.subscribe(subscriber);\n } else {\n return Subscription.EMPTY;\n }\n }\n}\n","import { Operator } from '../Operator';\nimport { Subscriber } from '../Subscriber';\nimport { Observable } from '../Observable';\nimport { OperatorFunction } from '../types';\n\n/**\n * Applies a given `project` function to each value emitted by the source\n * Observable, and emits the resulting values as an Observable.\n *\n * Like [Array.prototype.map()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map),\n * it passes each source value through a transformation function to get\n * corresponding output values.\n *\n * ![](map.png)\n *\n * Similar to the well known `Array.prototype.map` function, this operator\n * applies a projection to each value and emits that projection in the output\n * Observable.\n *\n * ## Example\n * Map every click to the clientX position of that click\n * ```ts\n * import { fromEvent } from 'rxjs';\n * import { map } from 'rxjs/operators';\n *\n * const clicks = fromEvent(document, 'click');\n * const positions = clicks.pipe(map(ev => ev.clientX));\n * positions.subscribe(x => console.log(x));\n * ```\n *\n * @see {@link mapTo}\n * @see {@link pluck}\n *\n * @param {function(value: T, index: number): R} project The function to apply\n * to each `value` emitted by the source Observable. The `index` parameter is\n * the number `i` for the i-th emission that has happened since the\n * subscription, starting from the number `0`.\n * @param {any} [thisArg] An optional argument to define what `this` is in the\n * `project` function.\n * @return {Observable} An Observable that emits the values from the source\n * Observable transformed by the given `project` function.\n * @name map\n */\nexport function map(project: (value: T, index: number) => R, thisArg?: any): OperatorFunction {\n return function mapOperation(source: Observable): Observable {\n if (typeof project !== 'function') {\n throw new TypeError('argument is not a function. Are you looking for `mapTo()`?');\n }\n return source.lift(new MapOperator(project, thisArg));\n };\n}\n\nexport class MapOperator implements Operator {\n constructor(private project: (value: T, index: number) => R, private thisArg: any) {\n }\n\n call(subscriber: Subscriber, source: any): any {\n return source.subscribe(new MapSubscriber(subscriber, this.project, this.thisArg));\n }\n}\n\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nclass MapSubscriber extends Subscriber {\n count: number = 0;\n private thisArg: any;\n\n constructor(destination: Subscriber,\n private project: (value: T, index: number) => R,\n thisArg: any) {\n super(destination);\n this.thisArg = thisArg || this;\n }\n\n // NOTE: This looks unoptimized, but it's actually purposefully NOT\n // using try/catch optimizations.\n protected _next(value: T) {\n let result: R;\n try {\n result = this.project.call(this.thisArg, value, this.count++);\n } catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.next(result);\n }\n}\n","import { Observable } from '../Observable';\nimport { isArray } from '../util/isArray';\nimport { isFunction } from '../util/isFunction';\nimport { Subscriber } from '../Subscriber';\nimport { map } from '../operators/map';\n\nexport interface NodeStyleEventEmitter {\n addListener: (eventName: string | symbol, handler: NodeEventHandler) => this;\n removeListener: (eventName: string | symbol, handler: NodeEventHandler) => this;\n}\n\nexport type NodeEventHandler = (...args: any[]) => void;\n\n// For APIs that implement `addListener` and `removeListener` methods that may\n// not use the same arguments or return EventEmitter values\n// such as React Native\nexport interface NodeCompatibleEventEmitter {\n addListener: (eventName: string, handler: NodeEventHandler) => void | {};\n removeListener: (eventName: string, handler: NodeEventHandler) => void | {};\n}\n\nexport interface JQueryStyleEventEmitter {\n on: (eventName: string, handler: Function) => void;\n off: (eventName: string, handler: Function) => void;\n}\n\nexport interface HasEventTargetAddRemove {\n addEventListener(type: string, listener: ((evt: E) => void) | null, options?: boolean | AddEventListenerOptions): void;\n removeEventListener(type: string, listener?: ((evt: E) => void) | null, options?: EventListenerOptions | boolean): void;\n}\n\nexport type EventTargetLike = HasEventTargetAddRemove | NodeStyleEventEmitter | NodeCompatibleEventEmitter | JQueryStyleEventEmitter;\n\nexport type FromEventTarget = EventTargetLike | ArrayLike>;\n\nexport interface EventListenerOptions {\n capture?: boolean;\n passive?: boolean;\n once?: boolean;\n}\n\nexport interface AddEventListenerOptions extends EventListenerOptions {\n once?: boolean;\n passive?: boolean;\n}\n\n/* tslint:disable:max-line-length */\nexport function fromEvent(target: FromEventTarget, eventName: string): Observable;\n/** @deprecated resultSelector no longer supported, pipe to map instead */\nexport function fromEvent(target: FromEventTarget, eventName: string, resultSelector?: (...args: any[]) => T): Observable;\nexport function fromEvent(target: FromEventTarget, eventName: string, options?: EventListenerOptions): Observable;\n/** @deprecated resultSelector no longer supported, pipe to map instead */\nexport function fromEvent(target: FromEventTarget, eventName: string, options: EventListenerOptions, resultSelector: (...args: any[]) => T): Observable;\n/* tslint:enable:max-line-length */\n\n/**\n * Creates an Observable that emits events of a specific type coming from the\n * given event target.\n *\n * Creates an Observable from DOM events, or Node.js\n * EventEmitter events or others.\n *\n * ![](fromEvent.png)\n *\n * `fromEvent` accepts as a first argument event target, which is an object with methods\n * for registering event handler functions. As a second argument it takes string that indicates\n * type of event we want to listen for. `fromEvent` supports selected types of event targets,\n * which are described in detail below. If your event target does not match any of the ones listed,\n * you should use {@link fromEventPattern}, which can be used on arbitrary APIs.\n * When it comes to APIs supported by `fromEvent`, their methods for adding and removing event\n * handler functions have different names, but they all accept a string describing event type\n * and function itself, which will be called whenever said event happens.\n *\n * Every time resulting Observable is subscribed, event handler function will be registered\n * to event target on given event type. When that event fires, value\n * passed as a first argument to registered function will be emitted by output Observable.\n * When Observable is unsubscribed, function will be unregistered from event target.\n *\n * Note that if event target calls registered function with more than one argument, second\n * and following arguments will not appear in resulting stream. In order to get access to them,\n * you can pass to `fromEvent` optional project function, which will be called with all arguments\n * passed to event handler. Output Observable will then emit value returned by project function,\n * instead of the usual value.\n *\n * Remember that event targets listed below are checked via duck typing. It means that\n * no matter what kind of object you have and no matter what environment you work in,\n * you can safely use `fromEvent` on that object if it exposes described methods (provided\n * of course they behave as was described above). So for example if Node.js library exposes\n * event target which has the same method names as DOM EventTarget, `fromEvent` is still\n * a good choice.\n *\n * If the API you use is more callback then event handler oriented (subscribed\n * callback function fires only once and thus there is no need to manually\n * unregister it), you should use {@link bindCallback} or {@link bindNodeCallback}\n * instead.\n *\n * `fromEvent` supports following types of event targets:\n *\n * **DOM EventTarget**\n *\n * This is an object with `addEventListener` and `removeEventListener` methods.\n *\n * In the browser, `addEventListener` accepts - apart from event type string and event\n * handler function arguments - optional third parameter, which is either an object or boolean,\n * both used for additional configuration how and when passed function will be called. When\n * `fromEvent` is used with event target of that type, you can provide this values\n * as third parameter as well.\n *\n * **Node.js EventEmitter**\n *\n * An object with `addListener` and `removeListener` methods.\n *\n * **JQuery-style event target**\n *\n * An object with `on` and `off` methods\n *\n * **DOM NodeList**\n *\n * List of DOM Nodes, returned for example by `document.querySelectorAll` or `Node.childNodes`.\n *\n * Although this collection is not event target in itself, `fromEvent` will iterate over all Nodes\n * it contains and install event handler function in every of them. When returned Observable\n * is unsubscribed, function will be removed from all Nodes.\n *\n * **DOM HtmlCollection**\n *\n * Just as in case of NodeList it is a collection of DOM nodes. Here as well event handler function is\n * installed and removed in each of elements.\n *\n *\n * ## Examples\n * ### Emits clicks happening on the DOM document\n * ```ts\n * import { fromEvent } from 'rxjs';\n *\n * const clicks = fromEvent(document, 'click');\n * clicks.subscribe(x => console.log(x));\n *\n * // Results in:\n * // MouseEvent object logged to console every time a click\n * // occurs on the document.\n * ```\n *\n * ### Use addEventListener with capture option\n * ```ts\n * import { fromEvent } from 'rxjs';\n *\n * const clicksInDocument = fromEvent(document, 'click', true); // note optional configuration parameter\n * // which will be passed to addEventListener\n * const clicksInDiv = fromEvent(someDivInDocument, 'click');\n *\n * clicksInDocument.subscribe(() => console.log('document'));\n * clicksInDiv.subscribe(() => console.log('div'));\n *\n * // By default events bubble UP in DOM tree, so normally\n * // when we would click on div in document\n * // \"div\" would be logged first and then \"document\".\n * // Since we specified optional `capture` option, document\n * // will catch event when it goes DOWN DOM tree, so console\n * // will log \"document\" and then \"div\".\n * ```\n *\n * @see {@link bindCallback}\n * @see {@link bindNodeCallback}\n * @see {@link fromEventPattern}\n *\n * @param {FromEventTarget} target The DOM EventTarget, Node.js\n * EventEmitter, JQuery-like event target, NodeList or HTMLCollection to attach the event handler to.\n * @param {string} eventName The event name of interest, being emitted by the\n * `target`.\n * @param {EventListenerOptions} [options] Options to pass through to addEventListener\n * @return {Observable}\n * @name fromEvent\n */\nexport function fromEvent(\n target: FromEventTarget,\n eventName: string,\n options?: EventListenerOptions | ((...args: any[]) => T),\n resultSelector?: ((...args: any[]) => T)\n): Observable {\n\n if (isFunction(options)) {\n // DEPRECATED PATH\n resultSelector = options;\n options = undefined;\n }\n if (resultSelector) {\n // DEPRECATED PATH\n return fromEvent(target, eventName, options as EventListenerOptions | undefined).pipe(\n map(args => isArray(args) ? resultSelector!(...args) : resultSelector!(args))\n );\n }\n\n return new Observable(subscriber => {\n function handler(e: T) {\n if (arguments.length > 1) {\n subscriber.next(Array.prototype.slice.call(arguments) as any);\n } else {\n subscriber.next(e);\n }\n }\n setupSubscription(target, eventName, handler, subscriber, options as EventListenerOptions);\n });\n}\n\nfunction setupSubscription(sourceObj: FromEventTarget, eventName: string,\n handler: (...args: any[]) => void, subscriber: Subscriber,\n options?: EventListenerOptions) {\n let unsubscribe: (() => void) | undefined;\n if (isEventTarget(sourceObj)) {\n const source = sourceObj;\n sourceObj.addEventListener(eventName, handler, options);\n unsubscribe = () => source.removeEventListener(eventName, handler, options);\n } else if (isJQueryStyleEventEmitter(sourceObj)) {\n const source = sourceObj;\n sourceObj.on(eventName, handler);\n unsubscribe = () => source.off(eventName, handler);\n } else if (isNodeStyleEventEmitter(sourceObj)) {\n const source = sourceObj;\n sourceObj.addListener(eventName, handler as NodeEventHandler);\n unsubscribe = () => source.removeListener(eventName, handler as NodeEventHandler);\n } else if (sourceObj && (sourceObj as any).length) {\n for (let i = 0, len = (sourceObj as any).length; i < len; i++) {\n setupSubscription((sourceObj as any)[i], eventName, handler, subscriber, options);\n }\n } else {\n throw new TypeError('Invalid event target');\n }\n\n subscriber.add(unsubscribe);\n}\n\nfunction isNodeStyleEventEmitter(sourceObj: any): sourceObj is NodeStyleEventEmitter {\n return sourceObj && typeof sourceObj.addListener === 'function' && typeof sourceObj.removeListener === 'function';\n}\n\nfunction isJQueryStyleEventEmitter(sourceObj: any): sourceObj is JQueryStyleEventEmitter {\n return sourceObj && typeof sourceObj.on === 'function' && typeof sourceObj.off === 'function';\n}\n\nfunction isEventTarget(sourceObj: any): sourceObj is HasEventTargetAddRemove {\n return sourceObj && typeof sourceObj.addEventListener === 'function' && typeof sourceObj.removeEventListener === 'function';\n}\n","// https://github.com/mathieucaroff/cellular-automaton-explorer-1d/blob/7cb4e7360f/src/display/keyboardManager.ts\n//\n// with:\n// - me.onKeyup added\n// - me.removeAll improved\n\nexport interface WithRemover {\n remove: () => void\n}\n\nexport interface KeyboardManagerProp {\n element: Element\n evPropName: keyof KeyboardEvent\n}\n\nexport interface KeyboardManager {\n onKeydown: (key: string, callback: () => void) => WithRemover\n onKeyup: (key: string, callback: () => void) => WithRemover\n onBoth: (prop: {\n key: string\n keydown: () => void\n keyup: () => void\n }) => WithRemover\n removeAll: () => void\n}\n\nexport let createKeyboardManager = (\n prop: KeyboardManagerProp,\n): KeyboardManager => {\n let { element, evPropName } = prop\n\n type EventMap = Record void) | undefined>\n let onKeydownMap: EventMap = {}\n let onKeyupMap: EventMap = {}\n\n let eventHandler = (closureName: string, onEventMap: EventMap) => (ev) => {\n let key = '' + ev[evPropName]\n let handler = onEventMap[key]\n if (handler !== undefined) {\n handler()\n if (!(ev.altKey || ev.ctrlKey || ev.shiftKey)) {\n ev.preventDefault()\n }\n }\n }\n\n let handleKeydown = eventHandler('down', onKeydownMap)\n let handleKeyup = eventHandler('up', onKeyupMap)\n\n element.addEventListener('keydown', handleKeydown, true)\n element.addEventListener('keyup', handleKeyup, true)\n\n let removeAll = () => {\n // untested // TODO?\n onKeydownMap = {}\n onKeyupMap = {}\n element.removeEventListener('keydown', handleKeydown, true)\n element.removeEventListener('keyup', handleKeyup, true)\n }\n\n return {\n onKeydown: (key: string, callback: () => void) => {\n if (onKeydownMap[key] !== undefined) {\n throw new Error(`keyboard event ${key}(down) assigned twice`)\n }\n onKeydownMap[key] = callback\n\n return {\n remove: () => {\n delete onKeydownMap[key]\n },\n }\n },\n\n onKeyup: (key: string, callback: () => void) => {\n if (onKeyupMap[key] !== undefined) {\n throw new Error(`keyboard event ${key}(up) assigned twice`)\n }\n onKeyupMap[key] = callback\n\n return {\n remove: () => {\n delete onKeyupMap[key]\n },\n }\n },\n\n onBoth: (prop) => {\n let { key, keydown, keyup } = prop\n if (onKeydownMap[key] !== undefined) {\n throw new Error(`keyboard event ${key}(down) assigned twice`)\n }\n if (onKeyupMap[key] !== undefined) {\n throw new Error(`keyboard event ${key}(up) assigned twice`)\n }\n\n onKeydownMap[key] = keydown\n onKeyupMap[key] = keyup\n\n return {\n remove: () => {\n delete onKeydownMap[key]\n delete onKeyupMap[key]\n },\n }\n },\n\n removeAll,\n }\n}\n","import { Observable, Subject } from 'rxjs'\nimport { PonyInput } from '../type/ponyEscape'\nimport { createKeyboardManager } from './keyboardManager'\nimport { createFingerMoveManager } from './fingerMoveManager'\n\nexport let createInput = (): PonyInput => {\n let keyboard = createKeyboardManager({\n element: document.documentElement,\n evPropName: 'key',\n })\n\n let fingerMoveManager = createFingerMoveManager({\n element: document.documentElement,\n })\n\n let makeObservable = (key: string, swipe: Subject) => {\n return new Observable((subscriber) => {\n let callback = () => subscriber.next()\n let subS = swipe.subscribe(callback)\n let subK = keyboard.onKeydown(key, callback)\n return () => {\n subK.remove()\n subS.remove(subS)\n }\n })\n }\n\n return {\n left: makeObservable('ArrowLeft', fingerMoveManager.left),\n right: makeObservable('ArrowRight', fingerMoveManager.right),\n up: makeObservable('ArrowUp', fingerMoveManager.up),\n down: makeObservable('ArrowDown', fingerMoveManager.down),\n removeAll: () => {\n keyboard.removeAll()\n fingerMoveManager.removeAll()\n },\n }\n}\n","import { Subject } from 'rxjs'\n\nexport let createFingerMoveManager = ({ element }) => {\n let getTouches = (evt) => {\n return (\n // browser API ?? jQuery\n evt.touches?.[0] ?? evt.originalEvent?.touches?.[0] ?? evt\n )\n }\n\n let xDown = 0\n let yDown = 0\n\n let handleTouchStart = (evt) => {\n let touches = getTouches(evt)\n\n xDown = touches.clientX\n yDown = touches.clientY\n }\n\n let handleTouchMove = (evt) => {\n if (!xDown || !yDown) {\n return\n }\n\n let touches = getTouches(evt)\n\n let currentX = touches.clientX\n let currentY = touches.clientY\n\n let dx = xDown - currentX\n let dy = yDown - currentY\n\n let dist = dx ** 2 + dy ** 2\n\n if (dist < 80 ** 2) {\n return\n }\n\n if (Math.abs(dx) > Math.abs(dy)) {\n /*most significant*/\n if (dx > 0) {\n me.left.next()\n } else {\n me.right.next()\n }\n } else {\n if (dy > 0) {\n me.up.next()\n } else {\n me.down.next()\n }\n }\n\n xDown = currentX\n yDown = currentY\n }\n\n let mouseIsDown = false\n let handleMouseDown = (ev: Event) => {\n mouseIsDown = true\n handleTouchStart(ev)\n }\n\n let handleMouseMove = (ev) => {\n if (mouseIsDown) {\n handleTouchMove(ev)\n }\n }\n\n let handleMouseUp = () => {\n mouseIsDown = false\n }\n\n element.addEventListener('touchstart', handleTouchStart, false)\n element.addEventListener('touchmove', handleTouchMove, false)\n element.addEventListener('mousedown', handleMouseDown, false)\n element.addEventListener('mousemove', handleMouseMove, false)\n element.addEventListener('mouseup', handleMouseUp, false)\n\n let removeAll = () => {\n element.removeEventListener('touchstart', handleTouchStart, false)\n element.removeEventListener('touchmove', handleTouchMove, false)\n element.removeEventListener('mousedown', handleMouseDown, false)\n element.removeEventListener('mousemove', handleMouseMove, false)\n element.removeEventListener('mouseup', handleMouseUp, false)\n }\n\n let me = {\n left: new Subject(),\n right: new Subject(),\n up: new Subject(),\n down: new Subject(),\n removeAll,\n }\n\n return me\n}\n","export type DefaultConfigObject = {\n [K in keyof T]: (param: Indirect) => T[K]\n}\n\nexport type Indirect = {\n [K in keyof T]: () => T[K]\n}\n\nexport let spacelessURL = (location: Location) => {\n let spaceLessURL = location.href.replace(/ |%20/g, '')\n\n if (spaceLessURL.includes(' ')) throw new Error()\n\n if (location.href !== spaceLessURL) {\n location.replace(spaceLessURL)\n }\n\n if (location.href.includes(' ')) throw new Error()\n}\n\nexport let getUrlParam = (\n location: Location,\n defaultConfig: DefaultConfigObject,\n) => {\n let config: T = {} as any\n\n let pieceList = location.search.split('?').slice(1)\n\n let stack = (\n config: T,\n defaultConfig: DefaultConfigObject,\n ): Indirect => {\n let stackedConfig = {} as Indirect\n\n Object.keys(defaultConfig).forEach((key) => {\n if (key in config) {\n stackedConfig[key] = () => config[key]\n } else {\n stackedConfig[key] = (conf = defaultConfig) => {\n return defaultConfig[key](conf)\n }\n }\n })\n\n return stackedConfig\n }\n\n pieceList.forEach((piece) => {\n let key: string\n let valueList: string[]\n let value\n if (piece.includes('=')) {\n ;[key, ...valueList] = piece.split('=')\n value = valueList.join('=')\n if (!isNaN(value)) {\n value = +value\n }\n } else {\n key = piece\n value = true\n }\n\n config[key] = value\n })\n\n Object.keys(defaultConfig).forEach((key) => {\n if (!(key in config)) {\n config[key] = defaultConfig[key](stack(config, defaultConfig))\n }\n })\n\n return config\n}\n","var class2type = {};\nvar hasOwn = class2type.hasOwnProperty;\nvar toString = class2type.toString;\nvar fnToString = hasOwn.toString;\nvar ObjectFunctionString = fnToString.call(Object);\nvar fnIsPlainObject = function (obj) {\n var proto, Ctor;\n if (!obj || toString.call(obj) !== \"[object Object]\") {\n return false;\n }\n proto = Object.getPrototypeOf(obj);\n if (!proto) {\n return true;\n }\n Ctor = hasOwn.call(proto, \"constructor\") && proto.constructor;\n return typeof Ctor === \"function\" && fnToString.call(Ctor) === ObjectFunctionString;\n};\nexport default fnIsPlainObject;\n","import isPlainObject from './isPlainObject.js';\nvar oToken = Object.create(null);\nvar fnMerge = function () {\n var src, copyIsArray, copy, name, options, clone, target = arguments[2] || {}, i = 3, length = arguments.length, deep = arguments[0] || false, skipToken = arguments[1] ? undefined : oToken;\n if (typeof target !== 'object' && typeof target !== 'function') {\n target = {};\n }\n for (; i < length; i++) {\n if ((options = arguments[i]) != null) {\n for (name in options) {\n src = target[name];\n copy = options[name];\n if (name === '__proto__' || target === copy) {\n continue;\n }\n if (deep && copy && (isPlainObject(copy) || (copyIsArray = Array.isArray(copy)))) {\n if (copyIsArray) {\n copyIsArray = false;\n clone = src && Array.isArray(src) ? src : [];\n } else {\n clone = src && isPlainObject(src) ? src : {};\n }\n target[name] = fnMerge(deep, arguments[1], clone, copy);\n } else if (copy !== skipToken) {\n target[name] = copy;\n }\n }\n }\n }\n return target;\n};\nexport default fnMerge;","import _merge from './_merge.js';\nvar fnMerge = function () {\n var args = [\n true,\n false\n ];\n args.push.apply(args, arguments);\n return _merge.apply(null, args);\n};\nexport default fnMerge;","const whenDOMReady = () => {\n\treturn new Promise(resolve => {\n\t\tif (document.body) {\n\t\t\tresolve();\n\t\t} else {\n\t\t\tdocument.addEventListener(\"DOMContentLoaded\", () => {\n\t\t\t\tresolve();\n\t\t\t});\n\t\t}\n\t});\n};\n\nexport default whenDOMReady;\n","/**\n * Creates a ${templateResult}`;\n\t}\n\trender(templateResult, domNode, { eventContext });\n};\n\nexport { html, svg } from \"lit-html/lit-html.js\";\nexport { repeat } from \"lit-html/directives/repeat.js\";\nexport { classMap } from \"lit-html/directives/class-map.js\";\nexport { styleMap } from \"lit-html/directives/style-map.js\";\n\nexport default litRender;\n","const KeyCodes = {\n\tBACKSPACE: 8,\n\tTAB: 9,\n\tENTER: 13,\n\tSHIFT: 16,\n\tCONTROL: 17,\n\tALT: 18,\n\tBREAK: 19,\n\tCAPS_LOCK: 20,\n\tESCAPE: 27,\n\tSPACE: 32,\n\tPAGE_UP: 33,\n\tPAGE_DOWN: 34,\n\tEND: 35,\n\tHOME: 36,\n\tARROW_LEFT: 37,\n\tARROW_UP: 38,\n\tARROW_RIGHT: 39,\n\tARROW_DOWN: 40,\n\tPRINT: 44,\n\tINSERT: 45,\n\tDELETE: 46,\n\tDIGIT_0: 48,\n\tDIGIT_1: 49,\n\tDIGIT_2: 50,\n\tDIGIT_3: 51,\n\tDIGIT_4: 52,\n\tDIGIT_5: 53,\n\tDIGIT_6: 54,\n\tDIGIT_7: 55,\n\tDIGIT_8: 56,\n\tDIGIT_9: 57,\n\tA: 65,\n\tB: 66,\n\tC: 67,\n\tD: 68,\n\tE: 69,\n\tF: 70,\n\tG: 71,\n\tH: 72,\n\tI: 73,\n\tJ: 74,\n\tK: 75,\n\tL: 76,\n\tM: 77,\n\tN: 78,\n\tO: 79,\n\tP: 80,\n\tQ: 81,\n\tR: 82,\n\tS: 83,\n\tT: 84,\n\tU: 85,\n\tV: 86,\n\tW: 87,\n\tX: 88,\n\tY: 89,\n\tZ: 90,\n\tWINDOWS: 91,\n\tCONTEXT_MENU: 93,\n\tTURN_OFF: 94,\n\tSLEEP: 95,\n\tNUMPAD_0: 96,\n\tNUMPAD_1: 97,\n\tNUMPAD_2: 98,\n\tNUMPAD_3: 99,\n\tNUMPAD_4: 100,\n\tNUMPAD_5: 101,\n\tNUMPAD_6: 102,\n\tNUMPAD_7: 103,\n\tNUMPAD_8: 104,\n\tNUMPAD_9: 105,\n\tNUMPAD_ASTERISK: 106,\n\tNUMPAD_PLUS: 107,\n\tNUMPAD_MINUS: 109,\n\tNUMPAD_COMMA: 110,\n\tNUMPAD_SLASH: 111,\n\tF1: 112,\n\tF2: 113,\n\tF3: 114,\n\tF4: 115,\n\tF5: 116,\n\tF6: 117,\n\tF7: 118,\n\tF8: 119,\n\tF9: 120,\n\tF10: 121,\n\tF11: 122,\n\tF12: 123,\n\tNUM_LOCK: 144,\n\tSCROLL_LOCK: 145,\n\tOPEN_BRACKET: 186,\n\tPLUS: 187,\n\tCOMMA: 188,\n\tSLASH: 189,\n\tDOT: 190,\n\tPIPE: 191,\n\tSEMICOLON: 192,\n\tMINUS: 219,\n\tGREAT_ACCENT: 220,\n\tEQUALS: 221,\n\tSINGLE_QUOTE: 222,\n\tBACKSLASH: 226,\n};\n\nconst isEnter = event => (event.key ? event.key === \"Enter\" : event.keyCode === KeyCodes.ENTER) && !hasModifierKeys(event);\n\nconst isSpace = event => (event.key ? (event.key === \"Spacebar\" || event.key === \" \") : event.keyCode === KeyCodes.SPACE) && !hasModifierKeys(event);\n\nconst isLeft = event => (event.key ? (event.key === \"ArrowLeft\" || event.key === \"Left\") : event.keyCode === KeyCodes.ARROW_LEFT) && !hasModifierKeys(event);\n\nconst isRight = event => (event.key ? (event.key === \"ArrowRight\" || event.key === \"Right\") : event.keyCode === KeyCodes.ARROW_RIGHT) && !hasModifierKeys(event);\n\nconst isUp = event => (event.key ? (event.key === \"ArrowUp\" || event.key === \"Up\") : event.keyCode === KeyCodes.ARROW_UP) && !hasModifierKeys(event);\n\nconst isDown = event => (event.key ? (event.key === \"ArrowDown\" || event.key === \"Down\") : event.keyCode === KeyCodes.ARROW_DOWN) && !hasModifierKeys(event);\n\nconst isHome = event => (event.key ? event.key === \"Home\" : event.keyCode === KeyCodes.HOME) && !hasModifierKeys(event);\n\nconst isEnd = event => (event.key ? event.key === \"End\" : event.keyCode === KeyCodes.END) && !hasModifierKeys(event);\n\nconst isEscape = event => (event.key ? event.key === \"Escape\" || event.key === \"Esc\" : event.keyCode === KeyCodes.ESCAPE) && !hasModifierKeys(event);\n\nconst isTabNext = event => (event.key ? event.key === \"Tab\" : event.keyCode === KeyCodes.TAB) && !hasModifierKeys(event);\n\nconst isTabPrevious = event => (event.key ? event.key === \"Tab\" : event.keyCode === KeyCodes.TAB) && checkModifierKeys(event, /* Ctrl */ false, /* Alt */ false, /* Shift */ true);\n\nconst isBackSpace = event => (event.key ? event.key === \"Backspace\" : event.keyCode === KeyCodes.BACKSPACE) && !hasModifierKeys(event);\n\nconst isDelete = event => (event.key ? event.key === \"Delete\" : event.keyCode === KeyCodes.DELETE) && !hasModifierKeys(event);\n\nconst isShow = event => {\n\tif (event.key) {\n\t\treturn (event.key === \"F4\" && !hasModifierKeys(event)) || (((event.key === \"ArrowDown\" || event.key === \"Down\") || (event.key === \"ArrowUp\" || event.key === \"Up\")) && checkModifierKeys(event, /* Ctrl */ false, /* Alt */ true, /* Shift */ false));\n\t}\n\n\treturn (event.keyCode === KeyCodes.F4 && !hasModifierKeys(event)) || (event.keyCode === KeyCodes.ARROW_DOWN && checkModifierKeys(event, /* Ctrl */ false, /* Alt */ true, /* Shift */ false));\n};\n\nconst hasModifierKeys = event => event.shiftKey || event.altKey || getCtrlKey(event);\n\nconst getCtrlKey = event => !!(event.metaKey || event.ctrlKey); // double negation doesn't have effect on boolean but ensures null and undefined are equivalent to false.\n\nconst checkModifierKeys = (oEvent, bCtrlKey, bAltKey, bShiftKey) => oEvent.shiftKey === bShiftKey && oEvent.altKey === bAltKey && getCtrlKey(oEvent) === bCtrlKey;\n\nexport {\n\tisEnter,\n\tisSpace,\n\tisLeft,\n\tisRight,\n\tisUp,\n\tisDown,\n\tisHome,\n\tisEnd,\n\tisEscape,\n\tisTabNext,\n\tisTabPrevious,\n\tisBackSpace,\n\tisDelete,\n\tisShow,\n};\n","import { getLanguage as getConfiguredLanguage } from \"../InitialConfiguration.js\";\n\nlet language;\n\nconst getLanguage = () => {\n\tif (language === undefined) {\n\t\tlanguage = getConfiguredLanguage();\n\t}\n\treturn language;\n};\n\nexport { getLanguage }; // eslint-disable-line\n","import { DEFAULT_LANGUAGE } from \"../generated/AssetParameters.js\";\n\nexport default () => {\n\tconst browserLanguages = navigator.languages;\n\n\tconst navigatorLanguage = () => {\n\t\treturn navigator.language;\n\t};\n\n\tconst rawLocale = (browserLanguages && browserLanguages[0]) || navigatorLanguage() || navigator.userLanguage || navigator.browserLanguage;\n\n\treturn rawLocale || DEFAULT_LANGUAGE;\n};\n","import { getRTL as getConfiguredRTL } from \"../InitialConfiguration.js\";\nimport { getLanguage } from \"./Language.js\";\nimport getDesigntimePropertyAsArray from \"../util/getDesigntimePropertyAsArray.js\";\nimport detectNavigatorLanguage from \"../util/detectNavigatorLanguage.js\";\n\nconst M_ISO639_OLD_TO_NEW = {\n\t\"iw\": \"he\",\n\t\"ji\": \"yi\",\n\t\"in\": \"id\",\n\t\"sh\": \"sr\",\n};\n\nconst A_RTL_LOCALES = getDesigntimePropertyAsArray(\"$cldr-rtl-locales:ar,fa,he$\") || [];\n\nconst impliesRTL = language => {\n\tlanguage = (language && M_ISO639_OLD_TO_NEW[language]) || language;\n\n\treturn A_RTL_LOCALES.indexOf(language) >= 0;\n};\n\nconst getRTL = () => {\n\tconst configurationRTL = getConfiguredRTL();\n\n\tif (configurationRTL !== null) {\n\t\treturn !!configurationRTL;\n\t}\n\n\treturn impliesRTL(getLanguage() || detectNavigatorLanguage());\n};\n\nexport { getRTL }; // eslint-disable-line\n","export default value => {\n\tconst m = /\\$([-a-z0-9A-Z._]+)(?::([^$]*))?\\$/.exec(value);\n\treturn m && m[2] ? m[2].split(/,/) : null;\n};\n","const rLocale = /^((?:[A-Z]{2,3}(?:-[A-Z]{3}){0,3})|[A-Z]{4}|[A-Z]{5,8})(?:-([A-Z]{4}))?(?:-([A-Z]{2}|[0-9]{3}))?((?:-[0-9A-Z]{5,8}|-[0-9][0-9A-Z]{3})*)((?:-[0-9A-WYZ](?:-[0-9A-Z]{2,8})+)*)(?:-(X(?:-[0-9A-Z]{1,8})+))?$/i;\n\nclass Locale {\n\tconstructor(sLocaleId) {\n\t\tconst aResult = rLocale.exec(sLocaleId.replace(/_/g, \"-\"));\n\t\tif (aResult === null) {\n\t\t\tthrow new Error(`The given language ${sLocaleId} does not adhere to BCP-47.`);\n\t\t}\n\t\tthis.sLocaleId = sLocaleId;\n\t\tthis.sLanguage = aResult[1] || null;\n\t\tthis.sScript = aResult[2] || null;\n\t\tthis.sRegion = aResult[3] || null;\n\t\tthis.sVariant = (aResult[4] && aResult[4].slice(1)) || null;\n\t\tthis.sExtension = (aResult[5] && aResult[5].slice(1)) || null;\n\t\tthis.sPrivateUse = aResult[6] || null;\n\t\tif (this.sLanguage) {\n\t\t\tthis.sLanguage = this.sLanguage.toLowerCase();\n\t\t}\n\t\tif (this.sScript) {\n\t\t\tthis.sScript = this.sScript.toLowerCase().replace(/^[a-z]/, s => {\n\t\t\t\treturn s.toUpperCase();\n\t\t\t});\n\t\t}\n\t\tif (this.sRegion) {\n\t\t\tthis.sRegion = this.sRegion.toUpperCase();\n\t\t}\n\t}\n\n\tgetLanguage() {\n\t\treturn this.sLanguage;\n\t}\n\n\tgetScript() {\n\t\treturn this.sScript;\n\t}\n\n\tgetRegion() {\n\t\treturn this.sRegion;\n\t}\n\n\tgetVariant() {\n\t\treturn this.sVariant;\n\t}\n\n\tgetVariantSubtags() {\n\t\treturn this.sVariant ? this.sVariant.split(\"-\") : [];\n\t}\n\n\tgetExtension() {\n\t\treturn this.sExtension;\n\t}\n\n\tgetExtensionSubtags() {\n\t\treturn this.sExtension ? this.sExtension.slice(2).split(\"-\") : [];\n\t}\n\n\tgetPrivateUse() {\n\t\treturn this.sPrivateUse;\n\t}\n\n\tgetPrivateUseSubtags() {\n\t\treturn this.sPrivateUse ? this.sPrivateUse.slice(2).split(\"-\") : [];\n\t}\n\n\thasPrivateUseSubtag(sSubtag) {\n\t\treturn this.getPrivateUseSubtags().indexOf(sSubtag) >= 0;\n\t}\n\n\ttoString() {\n\t\tconst r = [this.sLanguage];\n\n\t\tif (this.sScript) {\n\t\t\tr.push(this.sScript);\n\t\t}\n\t\tif (this.sRegion) {\n\t\t\tr.push(this.sRegion);\n\t\t}\n\t\tif (this.sVariant) {\n\t\t\tr.push(this.sVariant);\n\t\t}\n\t\tif (this.sExtension) {\n\t\t\tr.push(this.sExtension);\n\t\t}\n\t\tif (this.sPrivateUse) {\n\t\t\tr.push(this.sPrivateUse);\n\t\t}\n\t\treturn r.join(\"-\");\n\t}\n}\n\nexport default Locale;\n","import detectNavigatorLanguage from \"../util/detectNavigatorLanguage.js\";\nimport { getLanguage as getConfigLanguage } from \"../config/Language.js\";\nimport Locale from \"./Locale.js\";\n\nconst convertToLocaleOrNull = lang => {\n\ttry {\n\t\tif (lang && typeof lang === \"string\") {\n\t\t\treturn new Locale(lang);\n\t\t}\n\t} catch (e) {\n\t\t// ignore\n\t}\n};\n\n/**\n * Returns the locale based on the parameter or configured language Configuration#getLanguage\n * If no language has been configured - a new locale based on browser language is returned\n */\nconst getLocale = lang => {\n\tif (lang) {\n\t\treturn convertToLocaleOrNull(lang);\n\t}\n\n\tif (getConfigLanguage()) {\n\t\treturn new Locale(getConfigLanguage());\n\t}\n\n\treturn convertToLocaleOrNull(detectNavigatorLanguage());\n};\n\nexport default getLocale;\n","import { DEFAULT_LOCALE } from \"../generated/AssetParameters.js\";\n\nconst localeRegEX = /^((?:[A-Z]{2,3}(?:-[A-Z]{3}){0,3})|[A-Z]{4}|[A-Z]{5,8})(?:-([A-Z]{4}))?(?:-([A-Z]{2}|[0-9]{3}))?((?:-[0-9A-Z]{5,8}|-[0-9][0-9A-Z]{3})*)((?:-[0-9A-WYZ](?:-[0-9A-Z]{2,8})+)*)(?:-(X(?:-[0-9A-Z]{1,8})+))?$/i;\nconst SAPSupportabilityLocales = /(?:^|-)(saptrc|sappsd)(?:-|$)/i;\n\n/* Map for old language names for a few ISO639 codes. */\nconst M_ISO639_NEW_TO_OLD = {\n\t\"he\": \"iw\",\n\t\"yi\": \"ji\",\n\t\"id\": \"in\",\n\t\"sr\": \"sh\",\n};\n\n/**\n * Normalizes the given locale in BCP-47 syntax.\n * @param {string} locale locale to normalize\n * @returns {string} Normalized locale, \"undefined\" if the locale can't be normalized or the default locale, if no locale provided.\n */\nconst normalizeLocale = locale => {\n\tlet m;\n\n\tif (!locale) {\n\t\treturn DEFAULT_LOCALE;\n\t}\n\n\tif (typeof locale === \"string\" && (m = localeRegEX.exec(locale.replace(/_/g, \"-\")))) {/* eslint-disable-line */\n\t\tlet language = m[1].toLowerCase();\n\t\tlet region = m[3] ? m[3].toUpperCase() : undefined;\n\t\tconst script = m[2] ? m[2].toLowerCase() : undefined;\n\t\tconst variants = m[4] ? m[4].slice(1) : undefined;\n\t\tconst isPrivate = m[6];\n\n\t\tlanguage = M_ISO639_NEW_TO_OLD[language] || language;\n\n\t\t// recognize and convert special SAP supportability locales (overwrites m[]!)\n\t\tif ((isPrivate && (m = SAPSupportabilityLocales.exec(isPrivate))) /* eslint-disable-line */ ||\n\t\t\t(variants && (m = SAPSupportabilityLocales.exec(variants)))) {/* eslint-disable-line */\n\t\t\treturn `en_US_${m[1].toLowerCase()}`; // for now enforce en_US (agreed with SAP SLS)\n\t\t}\n\n\t\t// Chinese: when no region but a script is specified, use default region for each script\n\t\tif (language === \"zh\" && !region) {\n\t\t\tif (script === \"hans\") {\n\t\t\t\tregion = \"CN\";\n\t\t\t} else if (script === \"hant\") {\n\t\t\t\tregion = \"TW\";\n\t\t\t}\n\t\t}\n\n\t\treturn language + (region ? \"_\" + region + (variants ? \"_\" + variants.replace(\"-\", \"_\") : \"\") : \"\"); /* eslint-disable-line */\n\t}\n};\n\nexport default normalizeLocale;\n","import { DEFAULT_LOCALE } from \"../generated/AssetParameters.js\";\n\n/**\n * Calculates the next fallback locale for the given locale.\n *\n * @param {string} locale Locale string in Java format (underscores) or null\n * @returns {string} Next fallback Locale or \"en\" if no fallbacks found.\n */\nconst nextFallbackLocale = locale => {\n\tif (!locale) {\n\t\treturn DEFAULT_LOCALE;\n\t}\n\n\tif (locale === \"zh_HK\") {\n\t\treturn \"zh_TW\";\n\t}\n\n\t// if there are multiple segments (separated by underscores), remove the last one\n\tconst p = locale.lastIndexOf(\"_\");\n\tif (p >= 0) {\n\t\treturn locale.slice(0, p);\n\t}\n\n\t// for any language but the default, fallback to the default first before falling back to the 'raw' language (empty string)\n\treturn locale !== DEFAULT_LOCALE ? DEFAULT_LOCALE : \"\";\n};\n\nexport default nextFallbackLocale;\n","import getLocale from \"../locale/getLocale.js\";\nimport { fetchJsonOnce } from \"../util/FetchHelper.js\";\nimport normalizeLocale from \"../locale/normalizeLocale.js\";\nimport nextFallbackLocale from \"../locale/nextFallbackLocale.js\";\nimport { DEFAULT_LANGUAGE } from \"../generated/AssetParameters.js\";\n\nconst bundleData = new Map();\nconst bundleURLs = new Map();\n\n/**\n * Sets a map with texts and ID the are related to.\n * @param {string} packageName package ID that the i18n bundle will be related to\n * @param {Object} data an object with string locales as keys and text translataions as values\n * @public\n */\nconst setI18nBundleData = (packageName, data) => {\n\tbundleData.set(packageName, data);\n};\n\nconst getI18nBundleData = packageName => {\n\treturn bundleData.get(packageName);\n};\n\n/**\n * Registers a map of locale/url information, to be used by the fetchI18nBundle method.\n * @param {string} packageName package ID that the i18n bundle will be related to\n * @param {Object} bundle an object with string locales as keys and the URLs of where the corresponding locale can be fetched from, f.e {\"en\": \"path/en.json\", ...}\n * @public\n */\nconst registerI18nBundle = (packageName, bundle) => {\n\tbundleURLs.set(packageName, bundle);\n};\n\n/**\n * This method preforms the asynchronous task of fetching the actual text resources. It will fetch\n * each text resource over the network once (even for multiple calls to the same method).\n * It should be fully finished before the i18nBundle class is created in the webcomponents.\n * This method uses the bundle URLs that are populated by the registerI18nBundle method.\n * To simplify the usage, the synchronization of both methods happens internally for the same bundleId\n * @param {packageName} packageName the NPM package name\n * @public\n */\nconst fetchI18nBundle = async packageName => {\n\tconst bundlesForPackage = bundleURLs.get(packageName);\n\n\tif (!bundlesForPackage) {\n\t\tconsole.warn(`Message bundle assets are not configured. Falling back to English texts.`, /* eslint-disable-line */\n\t\t` You need to import ${packageName}/dist/Assets.js with a build tool that supports JSON imports.`); /* eslint-disable-line */\n\t\treturn;\n\t}\n\n\tconst language = getLocale().getLanguage();\n\n\tlet localeId = normalizeLocale(language);\n\twhile (!bundlesForPackage[localeId]) {\n\t\tlocaleId = nextFallbackLocale(localeId);\n\t}\n\n\tif (localeId === DEFAULT_LANGUAGE) {\n\t\treturn;\n\t}\n\n\tconst bundleURL = bundlesForPackage[localeId];\n\n\tif (typeof bundleURL === \"object\") { // inlined from build\n\t\tsetI18nBundleData(packageName, bundleURL);\n\t\treturn;\n\t}\n\n\tconst data = await fetchJsonOnce(bundleURL);\n\tsetI18nBundleData(packageName, data);\n};\n\nexport {\n\tfetchI18nBundle,\n\tregisterI18nBundle,\n\tsetI18nBundleData,\n\tgetI18nBundleData,\n};\n","const messageFormatRegEX = /('')|'([^']+(?:''[^']*)*)(?:'|$)|\\{([0-9]+(?:\\s*,[^{}]*)?)\\}|[{}]/g;\n\nconst formatMessage = (text, values) => {\n\tvalues = values || [];\n\n\treturn text.replace(messageFormatRegEX, ($0, $1, $2, $3, offset) => {\n\t\tif ($1) {\n\t\t\treturn '\\''; /* eslint-disable-line */\n\t\t}\n\n\t\tif ($2) {\n\t\t\treturn $2.replace(/''/g, '\\''); /* eslint-disable-line */\n\t\t}\n\n\t\tif ($3) {\n\t\t\treturn String(values[parseInt($3)]);\n\t\t}\n\n\t\tthrow new Error(`[i18n]: pattern syntax error at pos ${offset}`);\n\t});\n};\n\nexport default formatMessage;\n","import { fetchI18nBundle, getI18nBundleData } from \"./asset-registries/i18n.js\";\nimport formatMessage from \"./util/formatMessage.js\";\n\nconst I18nBundleInstances = new Map();\n\nclass I18nBundle {\n\tconstructor(packageName) {\n\t\tthis.packageName = packageName;\n\t}\n\n\tgetText(textObj, ...params) {\n\t\tif (!textObj || !textObj.key || !textObj.defaultText) {\n\t\t\treturn \"\";\n\t\t}\n\n\t\tconst bundle = getI18nBundleData(this.packageName);\n\t\tconst messageText = bundle && bundle[textObj.key] ? bundle[textObj.key] : textObj.defaultText;\n\n\t\treturn formatMessage(messageText, params);\n\t}\n}\n\nconst getI18nBundle = packageName => {\n\tif (I18nBundleInstances.has(packageName)) {\n\t\treturn I18nBundleInstances.get(packageName);\n\t}\n\n\tconst i18nBundle = new I18nBundle(packageName);\n\tI18nBundleInstances.set(packageName, i18nBundle);\n\treturn i18nBundle;\n};\n\nexport { fetchI18nBundle, getI18nBundle };\n","const findNodeOwner = node => {\n\tif (!(node instanceof HTMLElement)) {\n\t\tthrow new Error(\"Argument node should be of type HTMLElement\");\n\t}\n\n\tconst ownerTypes = [HTMLHtmlElement, HTMLIFrameElement];\n\tlet currentShadowRootFlag = true;\n\tlet currentCustomElementFlag = true;\n\n\twhile (node) {\n\t\tif (node.toString() === \"[object ShadowRoot]\") {\n\t\t\t// Web Component\n\t\t\t// or the shadow root of web component with attached shadow root\n\t\t\tif (currentShadowRootFlag) {\n\t\t\t\tcurrentShadowRootFlag = false;\n\t\t\t}\n\t\t\tif (!currentCustomElementFlag && !currentShadowRootFlag) {\n\t\t\t\treturn node;\n\t\t\t}\n\t\t} else if (node.tagName && node.tagName.indexOf(\"-\") > -1) {\n\t\t\tif (currentCustomElementFlag) {\n\t\t\t\tcurrentCustomElementFlag = false;\n\t\t\t} else {\n\t\t\t\treturn node;\n\t\t\t}\n\t\t} else if (ownerTypes.indexOf(node.constructor) > -1) {\n\t\t\t// Document or Iframe reached\n\t\t\treturn node;\n\t\t}\n\n\t\tnode = node.parentNode || node.host;\n\t}\n};\n\nexport default findNodeOwner;\n","import DataType from \"@ui5/webcomponents-base/dist/types/DataType.js\";\n\n/**\n * @lends sap.ui.webcomponents.main.types.ButtonDesign.prototype\n * @public\n */\nconst ButtonTypes = {\n\t/**\n\t * default type (no special styling)\n\t * @public\n\t * @type {Default}\n\t */\n\tDefault: \"Default\",\n\n\t/**\n\t * accept type (green button)\n\t * @public\n\t * @type {Positive}\n\t */\n\tPositive: \"Positive\",\n\n\t/**\n\t * reject style (red button)\n\t * @public\n\t * @type {Negative}\n\t */\n\tNegative: \"Negative\",\n\n\t/**\n\t * transparent type\n\t * @public\n\t * @type {Transparent}\n\t */\n\tTransparent: \"Transparent\",\n\n\t/**\n\t * emphasized type\n\t * @public\n\t * @type {Emphasized}\n\t */\n\tEmphasized: \"Emphasized\",\n};\n\n/**\n * @class\n * Different types of Button.\n * @constructor\n * @author SAP SE\n * @alias sap.ui.webcomponents.main.types.ButtonDesign\n * @public\n * @enum {string}\n */\nclass ButtonDesign extends DataType {\n\tstatic isValid(value) {\n\t\treturn !!ButtonTypes[value];\n\t}\n}\n\nButtonDesign.generataTypeAcessors(ButtonTypes);\n\nexport default ButtonDesign;\n","import {\n\tAttributePart,\n\tdirective,\n\tnoChange,\n} from \"lit-html/lit-html.js\";\n\n/*\n\tlit-html directive that removes and attribute if it is undefined\n*/\nexport default directive(value => part => {\n\tif ((value === undefined) && part instanceof AttributePart) {\n\t\tif (value !== part.value) {\n\t\t\tconst name = part.committer.name;\n\t\t\tpart.committer.element.removeAttribute(name);\n\t\t}\n\t} else if (part.committer && part.committer.element && part.committer.element.getAttribute(part.committer.name) === value) {\n\t\tpart.setValue(noChange);\n\t} else {\n\t\tpart.setValue(value);\n\t}\n});\n","\n/* eslint no-unused-vars: 0 */\nimport ifDefined from '@ui5/webcomponents-base/dist/renderer/ifDefined.js';\nimport { html, svg, repeat, classMap, styleMap } from '@ui5/webcomponents-base/dist/renderer/LitRenderer.js';\nconst block0 = (context) => { return html`\t\t${ context.icon ? block1(context) : undefined }\t\t${ context.hasButtonType ? block2(context) : undefined }`; };\nconst block1 = (context) => { return html`\t\t`; };\nconst block2 = (context) => { return html`${ifDefined(context.buttonTypeText)}\t\t`; };\n\nexport default block0;","const registry = new Map();\nconst iconCollectionPromises = new Map();\n\nconst ICON_NOT_FOUND = \"ICON_NOT_FOUND\";\nconst DEFAULT_COLLECTION = \"SAP-icons\";\n\nconst calcKey = (name, collection) => {\n\t// silently support ui5-compatible URIs\n\tif (name.startsWith(\"sap-icon://\")) {\n\t\tname = name.replace(\"sap-icon://\", \"\");\n\t\t[name, collection] = name.split(\"/\").reverse();\n\t}\n\tcollection = collection || DEFAULT_COLLECTION;\n\treturn `${collection}:${name}`;\n};\n\nconst registerIcon = (name, { pathData, accData, collection } = {}) => {\n\tconst key = calcKey(name, collection);\n\tregistry.set(key, { pathData, accData });\n};\n\nconst getIconDataSync = (name, collection = DEFAULT_COLLECTION) => {\n\tconst key = calcKey(name, collection);\n\treturn registry.get(key);\n};\n\nconst getIconData = async (name, collection = DEFAULT_COLLECTION) => {\n\tconst key = calcKey(name, collection);\n\n\tif (!iconCollectionPromises.has(collection)) {\n\t\ticonCollectionPromises.set(collection, Promise.resolve(ICON_NOT_FOUND));\n\t}\n\n\tconst iconData = await iconCollectionPromises.get(collection);\n\n\tif (iconData === ICON_NOT_FOUND) {\n\t\treturn iconData;\n\t}\n\n\treturn registry.get(key);\n};\n\nconst getRegisteredNames = async () => {\n\tif (iconCollectionPromises.has(DEFAULT_COLLECTION)) {\n\t\tawait iconCollectionPromises.get(DEFAULT_COLLECTION);\n\t}\n\treturn Array.from(registry.keys()).map(k => k.split(\":\")[1]);\n};\n\nconst registerCollectionPromise = (collection, promise) => {\n\ticonCollectionPromises.set(collection, promise);\n};\n\nexport {\n\tgetIconData,\n\tgetIconDataSync,\n\tregisterIcon,\n\tgetRegisteredNames,\n\tregisterCollectionPromise,\n};\n","\n/* eslint no-unused-vars: 0 */\nimport ifDefined from '@ui5/webcomponents-base/dist/renderer/ifDefined.js';\nimport { html, svg, repeat, classMap, styleMap } from '@ui5/webcomponents-base/dist/renderer/LitRenderer.js';\nconst block0 = (context) => { return html`${blockSVG1(context)}`; };\nconst block1 = (context) => { return svg`${ifDefined(context.accessibleNameText)}\t`; };\n\nconst blockSVG1 = (context) => {return svg`\t${ context.hasIconTooltip ? block1(context) : undefined }`};\nexport default block0;","export default \":root{--sapBrandColor:#0a6ed1;--sapHighlightColor:#0854a0;--sapBaseColor:#fff;--sapShellColor:#354a5f;--sapBackgroundColor:#f7f7f7;--sapFontFamily:\\\"72\\\",\\\"72full\\\",Arial,Helvetica,sans-serif;--sapFontLightFamily:\\\"72-Light\\\",\\\"72-Lightfull\\\",\\\"72\\\",\\\"72full\\\",Arial,Helvetica,sans-serif;--sapFontBoldFamily:\\\"72-Bold\\\",\\\"72-Boldfull\\\",\\\"72\\\",\\\"72full\\\",Arial,Helvetica,sans-serif;--sapFontHeaderFamily:\\\"72\\\",\\\"72full\\\",Arial,Helvetica,sans-serif;--sapFontSize:.875rem;--sapFontSmallSize:.75rem;--sapFontLargeSize:1rem;--sapFontHeader1Size:2.25rem;--sapFontHeader2Size:1.5rem;--sapFontHeader3Size:1.25rem;--sapFontHeader4Size:1.125rem;--sapFontHeader5Size:1rem;--sapFontHeader6Size:.875rem;--sapTextColor:#32363a;--sapLinkColor:#0a6ed1;--sapLink_Hover_Color:#0854a0;--sapLink_Active_Color:#0a6ed1;--sapLink_Visited_Color:#0a6ed1;--sapLink_InvertedColor:#d3e8fd;--sapLink_SubtleColor:#074888;--sapCompanyLogo:none;--sapBackgroundImage:none;--sapBackgroundImageOpacity:1.0;--sapBackgroundImageRepeat:false;--sapSelectedColor:#0854a0;--sapActiveColor:#0854a0;--sapHighlightTextColor:#fff;--sapTitleColor:#32363a;--sapNegativeColor:#b00;--sapCriticalColor:#e9730c;--sapPositiveColor:#107e3e;--sapInformativeColor:#0a6ed1;--sapNeutralColor:#6a6d70;--sapNegativeElementColor:#b00;--sapCriticalElementColor:#e9730c;--sapPositiveElementColor:#107e3e;--sapInformativeElementColor:#0a6ed1;--sapNeutralElementColor:#6a6d70;--sapNegativeTextColor:#b00;--sapPositiveTextColor:#107e3e;--sapCriticalTextColor:#e9730c;--sapInformativeTextColor:#053b70;--sapNeutralTextColor:#6a6d70;--sapNeutralBorderColor:#6a6d70;--sapErrorColor:#b00;--sapErrorBorderColor:#b00;--sapWarningColor:#e9730c;--sapWarningBorderColor:#e9730c;--sapSuccessColor:#107e3e;--sapSuccessBorderColor:#107e3e;--sapInformationColor:#0a6ed1;--sapInformationBorderColor:#0a6ed1;--sapErrorBackground:#ffebeb;--sapWarningBackground:#fef7f1;--sapSuccessBackground:#f1fdf6;--sapInformationBackground:#f5faff;--sapNeutralBackground:#f4f4f4;--sapIndicationColor_1:#800;--sapIndicationColor_1_Hover_Background:#6f0000;--sapIndicationColor_1_Active_Background:#500;--sapIndicationColor_1_TextColor:#fff;--sapIndicationColor_2:#b00;--sapIndicationColor_2_Hover_Background:#a20000;--sapIndicationColor_2_Active_Background:#800;--sapIndicationColor_2_TextColor:#fff;--sapIndicationColor_3:#e9730c;--sapIndicationColor_3_Hover_Background:#da6c0b;--sapIndicationColor_3_Active_Background:#cc650b;--sapIndicationColor_3_TextColor:#fff;--sapIndicationColor_4:#107e3e;--sapIndicationColor_4_Hover_Background:#0d6733;--sapIndicationColor_4_Active_Background:#0a5128;--sapIndicationColor_4_TextColor:#fff;--sapIndicationColor_5:#0a6ed1;--sapIndicationColor_5_Hover_Background:#0961b9;--sapIndicationColor_5_Active_Background:#0854a0;--sapIndicationColor_5_TextColor:#fff;--sapIndicationColor_6:#0f828f;--sapIndicationColor_6_Hover_Background:#0d6d78;--sapIndicationColor_6_Active_Background:#0a5861;--sapIndicationColor_6_TextColor:#fff;--sapIndicationColor_7:#925ace;--sapIndicationColor_7_Hover_Background:#8546c8;--sapIndicationColor_7_Active_Background:#7838bd;--sapIndicationColor_7_TextColor:#fff;--sapIndicationColor_8:#c0399f;--sapIndicationColor_8_Hover_Background:#ac338f;--sapIndicationColor_8_Active_Background:#992d7e;--sapIndicationColor_8_TextColor:#fff;--sapElement_LineHeight:2.75rem;--sapElement_Height:2.25rem;--sapElement_BorderWidth:.0625rem;--sapElement_BorderCornerRadius:.25rem;--sapElement_Compact_LineHeight:2rem;--sapElement_Compact_Height:1.625rem;--sapElement_Condensed_LineHeight:1.5rem;--sapElement_Condensed_Height:1.375rem;--sapContent_LineHeight:1.4;--sapContent_IconHeight:1rem;--sapContent_IconColor:#0854a0;--sapContent_ContrastIconColor:#fff;--sapContent_NonInteractiveIconColor:#6a6d70;--sapContent_MarkerIconColor:#286eb4;--sapContent_MarkerTextColor:#0e7581;--sapContent_ImagePlaceholderBackground:#ccc;--sapContent_ImagePlaceholderForegroundColor:#fff;--sapContent_RatedColor:#d08014;--sapContent_UnratedColor:#89919a;--sapContent_FocusColor:#000;--sapContent_FocusStyle:dotted;--sapContent_FocusWidth:.0625rem;--sapContent_ContrastFocusColor:#fff;--sapContent_ShadowColor:#000;--sapContent_ContrastShadowColor:#fff;--sapContent_Shadow0:0 0 0 0.0625rem rgba(0,0,0,0.1),0 0.125rem 0.5rem 0 rgba(0,0,0,0.1);--sapContent_Shadow1:0 0 0 0.0625rem rgba(0,0,0,0.42),0 0.125rem 0.5rem 0 rgba(0,0,0,0.3);--sapContent_Shadow2:0 0 0 0.0625rem rgba(0,0,0,0.42),0 0.625rem 1.875rem 0 rgba(0,0,0,0.3);--sapContent_Shadow3:0 0 0 0.0625rem rgba(0,0,0,0.42),0 1.25rem 5rem 0 rgba(0,0,0,0.3);--sapContent_TextShadow:0 0 0.125rem #fff;--sapContent_HeaderShadow:0 0 0.25rem 0 rgba(0,0,0,0.15),inset 0 -0.0625rem 0 0 #d9d9d9;--sapContent_SearchHighlightColor:#d4f7db;--sapContent_HelpColor:#3f8600;--sapContent_LabelColor:#6a6d70;--sapContent_MonospaceFontFamily:lucida console,monospace;--sapContent_DisabledTextColor:rgba(50,54,58,0.6);--sapContent_DisabledOpacity:0.4;--sapContent_ContrastTextThreshold:0.65;--sapContent_ContrastTextColor:#fff;--sapContent_ForegroundColor:#efefef;--sapContent_ForegroundBorderColor:#89919a;--sapContent_ForegroundTextColor:#32363a;--sapContent_BadgeBackground:#d04343;--sapContent_BadgeTextColor:#fff;--sapContent_Placeholderloading_Background:#e0e0e0;--sapContent_Placeholderloading_Gradient:linear-gradient(90deg,#e0e0e0 0%,#e0e0e0 35%,#d3d3d3 50%,#e0e0e0 65%,#e0e0e0);--sapContent_DragAndDropActiveColor:#0854a0;--sapContent_Selected_Background:#0854a0;--sapContent_Selected_TextColor:#fff;--sapContent_Selected_Hover_Background:#095caf;--sapContent_Illustrative_Color1:#0a6ed1;--sapContent_Illustrative_Color2:#72b5f8;--sapContent_Illustrative_Color3:#ffba10;--sapContent_Illustrative_Color4:#4a5055;--sapContent_Illustrative_Color5:#9da4aa;--sapContent_Illustrative_Color6:#c6cace;--sapContent_Illustrative_Color7:#e7e9ea;--sapContent_Illustrative_Color8:#fff;--sapShell_Background:#edeff0;--sapShell_BackgroundImage:linear-gradient(180deg,#dfe3e4,#f3f4f5);--sapShell_BackgroundGradient:linear-gradient(180deg,#dfe3e4,#f3f4f5);--sapShell_BackgroundImageOpacity:1.0;--sapShell_BackgroundImageRepeat:false;--sapShell_BorderColor:#354a5f;--sapShell_TextColor:#fff;--sapShell_InteractiveTextColor:#d1e8ff;--sapShell_InteractiveBorderColor:#7996b4;--sapShell_GroupTitleTextColor:#32363a;--sapShell_Hover_Background:#283848;--sapShell_Active_Background:#23303e;--sapShell_Active_TextColor:#fff;--sapShell_Selected_Background:#23303e;--sapShell_Selected_TextColor:#fff;--sapShell_Selected_Hover_Background:#23303e;--sapShell_Favicon:none;--sapShell_Navigation_Background:#fff;--sapShell_Navigation_SelectedColor:#0854a0;--sapShell_Navigation_Selected_TextColor:#0854a0;--sapShell_Navigation_TextColor:#32363a;--sapShell_Shadow:0 0 0.25rem 0 rgba(0,0,0,0.15),inset 0 -0.0625rem 0 0 rgba(0,0,0,0.2);--sapButton_BorderWidth:.0625rem;--sapButton_BorderCornerRadius:.25rem;--sapButton_Background:#fff;--sapButton_BorderColor:#0854a0;--sapButton_TextColor:#0854a0;--sapButton_Hover_Background:#ebf5fe;--sapButton_Hover_BorderColor:#0854a0;--sapButton_Hover_TextColor:#0854a0;--sapButton_IconColor:#0854a0;--sapButton_Active_Background:#0854a0;--sapButton_Active_BorderColor:#0854a0;--sapButton_Active_TextColor:#fff;--sapButton_Emphasized_Background:#0a6ed1;--sapButton_Emphasized_BorderColor:#0a6ed1;--sapButton_Emphasized_TextColor:#fff;--sapButton_Emphasized_Hover_Background:#085caf;--sapButton_Emphasized_Hover_BorderColor:#085caf;--sapButton_Emphasized_Hover_TextColor:#fff;--sapButton_Emphasized_Active_Background:#0854a0;--sapButton_Emphasized_Active_BorderColor:#0854a0;--sapButton_Emphasized_TextShadow:transparent;--sapButton_Accept_Background:#fff;--sapButton_Accept_BorderColor:#107e3e;--sapButton_Accept_Hover_Background:#f1fdf6;--sapButton_Accept_Hover_BorderColor:#107e3e;--sapButton_Accept_Hover_TextColor:#107e3e;--sapButton_Accept_Active_Background:#0d6733;--sapButton_Accept_Active_BorderColor:#0d6733;--sapButton_Accept_TextColor:#107e3e;--sapButton_Accept_Selected_Background:#0d6733;--sapButton_Accept_Selected_BorderColor:#0d6733;--sapButton_Accept_Selected_TextColor:#fff;--sapButton_Accept_Selected_Hover_Background:#107e3e;--sapButton_Accept_Selected_Hover_BorderColor:#107e3e;--sapButton_Reject_Background:#fff;--sapButton_Reject_BorderColor:#b00;--sapButton_Reject_Hover_Background:#ffebeb;--sapButton_Reject_Hover_BorderColor:#b00;--sapButton_Reject_Hover_TextColor:#b00;--sapButton_Reject_Active_Background:#a20000;--sapButton_Reject_Active_BorderColor:#a20000;--sapButton_Reject_TextColor:#b00;--sapButton_Reject_Selected_Background:#a20000;--sapButton_Reject_Selected_BorderColor:#a20000;--sapButton_Reject_Selected_TextColor:#fff;--sapButton_Reject_Selected_Hover_Background:#b00;--sapButton_Reject_Selected_Hover_BorderColor:#b00;--sapButton_Lite_Background:transparent;--sapButton_Lite_BorderColor:transparent;--sapButton_Lite_TextColor:#0854a0;--sapButton_Lite_Hover_Background:#ebf5fe;--sapButton_Lite_Hover_BorderColor:#0854a0;--sapButton_Lite_Hover_TextColor:#0854a0;--sapButton_Lite_Active_Background:#0854a0;--sapButton_Lite_Active_BorderColor:#0854a0;--sapButton_Selected_Background:#0854a0;--sapButton_Selected_BorderColor:#0854a0;--sapButton_Selected_TextColor:#fff;--sapButton_Selected_Hover_Background:#095caf;--sapButton_Selected_Hover_BorderColor:#095caf;--sapButton_Attention_Background:#fff;--sapButton_Attention_BorderColor:#e9730c;--sapButton_Attention_TextColor:#e9730c;--sapButton_Attention_Hover_Background:#fef7f1;--sapButton_Attention_Hover_BorderColor:#e9730c;--sapButton_Attention_Hover_TextColor:#e9730c;--sapButton_Attention_Active_Background:#d1670b;--sapButton_Attention_Active_BorderColor:#d1670b;--sapButton_Attention_Selected_Background:#d1670b;--sapButton_Attention_Selected_BorderColor:#d1670b;--sapButton_Attention_Selected_TextColor:#fff;--sapButton_Attention_Selected_Hover_Background:#e9730c;--sapButton_Attention_Selected_Hover_BorderColor:#e9730c;--sapButton_Negative_Background:#b00;--sapButton_Negative_BorderColor:#b00;--sapButton_Negative_TextColor:#fff;--sapButton_Negative_Hover_Background:#970000;--sapButton_Negative_Hover_BorderColor:#970000;--sapButton_Negative_Hover_TextColor:#fff;--sapButton_Negative_Active_Background:#800;--sapButton_Negative_Active_BorderColor:#800;--sapButton_Critical_Background:#e9730c;--sapButton_Critical_BorderColor:#e9730c;--sapButton_Critical_TextColor:#fff;--sapButton_Critical_Hover_Background:#c7620a;--sapButton_Critical_Hover_BorderColor:#c7620a;--sapButton_Critical_Hover_TextColor:#fff;--sapButton_Critical_Active_Background:#b85b0a;--sapButton_Critical_Active_BorderColor:#b85b0a;--sapButton_Success_Background:#107e3e;--sapButton_Success_BorderColor:#107e3e;--sapButton_Success_TextColor:#fff;--sapButton_Success_Hover_Background:#0c5e2e;--sapButton_Success_Hover_BorderColor:#0c5e2e;--sapButton_Success_Hover_TextColor:#fff;--sapButton_Success_Active_Background:#0a5128;--sapButton_Success_Active_BorderColor:#0a5128;--sapButton_Information_Background:#0a6ed1;--sapButton_Information_BorderColor:#0a6ed1;--sapButton_Information_TextColor:#fff;--sapButton_Information_Hover_Background:#0961b9;--sapButton_Information_Hover_BorderColor:#0961b9;--sapButton_Information_Hover_TextColor:#fff;--sapButton_Information_Active_Background:#0854a0;--sapButton_Information_Active_BorderColor:#0854a0;--sapButton_Neutral_Background:#6a6d70;--sapButton_Neutral_BorderColor:#6a6d70;--sapButton_Neutral_TextColor:#fff;--sapButton_Neutral_Hover_Background:#595b5e;--sapButton_Neutral_Hover_BorderColor:#595b5e;--sapButton_Neutral_Hover_TextColor:#fff;--sapButton_Neutral_Active_Background:#515456;--sapButton_Neutral_Active_BorderColor:#515456;--sapButton_Track_Selected_Background:#ebf5fe;--sapButton_Track_Selected_TextColor:#32363a;--sapButton_Track_Background:#ededed;--sapButton_Track_TextColor:#32363a;--sapButton_TokenBackground:#fafafa;--sapButton_TokenBorderColor:#c2c2c2;--sapField_Background:#fff;--sapField_TextColor:#32363a;--sapField_PlaceholderTextColor:#74777a;--sapField_BorderColor:#89919a;--sapField_HelpBackground:#fff;--sapField_BorderWidth:.0625rem;--sapField_BorderCornerRadius:.125rem;--sapField_Hover_Background:#fff;--sapField_Hover_BorderColor:#0854a0;--sapField_Hover_HelpBackground:#ebf5fe;--sapField_Active_BorderColor:#0854a0;--sapField_Focus_Background:#fff;--sapField_Focus_BorderColor:#89919a;--sapField_Focus_HelpBackground:#fff;--sapField_ReadOnly_Background:hsla(0,0%,94.9%,0.5);--sapField_ReadOnly_BorderColor:#89919a;--sapField_ReadOnly_HelpBackground:hsla(0,0%,94.9%,0.5);--sapField_RequiredColor:#ce3b3b;--sapField_InvalidColor:#b00;--sapField_InvalidBackground:#fff;--sapField_WarningColor:#e9730c;--sapField_WarningBackground:#fff;--sapField_SuccessColor:#107e3e;--sapField_SuccessBackground:#fff;--sapField_InformationColor:#0a6ed1;--sapField_InformationBackground:#fff;--sapGroup_TitleBackground:transparent;--sapGroup_TitleBorderColor:#d9d9d9;--sapGroup_TitleTextColor:#32363a;--sapGroup_ContentBackground:#fff;--sapGroup_ContentBorderColor:#d9d9d9;--sapGroup_BorderWidth:.0625rem;--sapGroup_BorderCornerRadius:0;--sapGroup_FooterBackground:transparent;--sapToolbar_Background:transparent;--sapToolbar_SeparatorColor:#d9d9d9;--sapList_HeaderBackground:#f2f2f2;--sapList_HeaderBorderColor:#e4e4e4;--sapList_HeaderTextColor:#32363a;--sapList_BorderColor:#e4e4e4;--sapList_TextColor:#32363a;--sapList_Active_TextColor:#fff;--sapList_BorderWidth:.0625rem;--sapList_SelectionBackgroundColor:#e5f0fa;--sapList_SelectionBorderColor:#0854a0;--sapList_Hover_SelectionBackground:#d8e9f8;--sapList_Background:#fff;--sapList_Hover_Background:#f5f5f5;--sapList_AlternatingBackground:#fafafa;--sapList_GroupHeaderBackground:#fff;--sapList_GroupHeaderBorderColor:#d8d8d8;--sapList_GroupHeaderTextColor:#32363a;--sapList_FooterBackground:#fafafa;--sapList_FooterTextColor:#32363a;--sapList_TableGroupHeaderBackground:#efefef;--sapList_TableGroupHeaderBorderColor:#d8d8d8;--sapList_TableGroupHeaderTextColor:#32363a;--sapList_TableFooterBorder:#d8d8d8;--sapList_TableFixedBorderColor:#d8d8d8;--sapList_Active_Background:#0854a0;--sapScrollBar_FaceColor:#949494;--sapScrollBar_TrackColor:#fff;--sapScrollBar_BorderColor:#949494;--sapScrollBar_SymbolColor:#0854a0;--sapScrollBar_Dimension:.75rem;--sapScrollBar_Hover_FaceColor:#8c8c8c;--sapPageHeader_Background:#fff;--sapPageHeader_BorderColor:#d9d9d9;--sapPageHeader_TextColor:#32363a;--sapPageFooter_Background:#fff;--sapPageFooter_BorderColor:#d9d9d9;--sapPageFooter_TextColor:#32363a;--sapInfobar_Background:#0f828f;--sapInfobar_Hover_Background:#0e7581;--sapInfobar_Active_Background:#0a545c;--sapObjectHeader_Background:#fff;--sapObjectHeader_BorderColor:#d9d9d9;--sapBlockLayer_Background:#000;--sapTile_Background:#fff;--sapTile_Hover_Background:#f5f5f5;--sapTile_Active_Background:#f5f5f5;--sapTile_BorderColor:transparent;--sapTile_TitleTextColor:#32363a;--sapTile_TextColor:#6a6d70;--sapTile_IconColor:#5a7da0;--sapTile_SeparatorColor:#ccc;--sapAccentColor1:#d08014;--sapAccentColor2:#d04343;--sapAccentColor3:#db1f77;--sapAccentColor4:#c0399f;--sapAccentColor5:#6367de;--sapAccentColor6:#286eb4;--sapAccentColor7:#0f828f;--sapAccentColor8:#7ca10c;--sapAccentColor9:#925ace;--sapAccentColor10:#647987;--sapLegend_WorkingBackground:#fafafa;--sapLegend_NonWorkingBackground:#dedede;--sapLegend_CurrentDateTime:#c0399f;--sapLegendColor1:#d58215;--sapLegendColor2:#dc5b5b;--sapLegendColor3:#db1f77;--sapLegendColor4:#9b3b3b;--sapLegendColor5:#cf5db3;--sapLegendColor6:#286eb4;--sapLegendColor7:#1193a2;--sapLegendColor8:#8b9668;--sapLegendColor9:#647987;--sapLegendColor10:#892971;--sapLegendColor11:#725a3a;--sapLegendColor12:#bb2f2f;--sapLegendColor13:#bc1b66;--sapLegendColor14:#8b714f;--sapLegendColor15:#606190;--sapLegendColor16:#597da1;--sapLegendColor17:#49797e;--sapLegendColor18:#687a33;--sapLegendColor19:#295989;--sapLegendColor20:#5154bd;--sapLegendBackgroundColor1:#fdf3e7;--sapLegendBackgroundColor2:#faeaea;--sapLegendBackgroundColor3:#fce9f2;--sapLegendBackgroundColor4:#f8ecec;--sapLegendBackgroundColor5:#f9ebf5;--sapLegendBackgroundColor6:#ebf3fa;--sapLegendBackgroundColor7:#e8fbfd;--sapLegendBackgroundColor8:#f3f4ef;--sapLegendBackgroundColor9:#f1f3f4;--sapLegendBackgroundColor10:#f9ebf6;--sapLegendBackgroundColor11:#f6f2ed;--sapLegendBackgroundColor12:#faeaea;--sapLegendBackgroundColor13:#fce9f2;--sapLegendBackgroundColor14:#f5f2ee;--sapLegendBackgroundColor15:#f0f0f5;--sapLegendBackgroundColor16:#eff2f6;--sapLegendBackgroundColor17:#eff5f6;--sapLegendBackgroundColor18:#f5f7ed;--sapLegendBackgroundColor19:#ebf2f9;--sapLegendBackgroundColor20:#ecedf8;--sapChart_OrderedColor_1:#5899da;--sapChart_OrderedColor_2:#e8743b;--sapChart_OrderedColor_3:#19a979;--sapChart_OrderedColor_4:#ed4a7b;--sapChart_OrderedColor_5:#945ecf;--sapChart_OrderedColor_6:#13a4b4;--sapChart_OrderedColor_7:#525df4;--sapChart_OrderedColor_8:#bf399e;--sapChart_OrderedColor_9:#6c8893;--sapChart_OrderedColor_10:#ee6868;--sapChart_OrderedColor_11:#2f6497;--sapChart_Bad:#dc0d0e;--sapChart_Critical:#de890d;--sapChart_Good:#3fa45b;--sapChart_Neutral:#848f94;--sapChart_Sequence_1:#5899da;--sapChart_Sequence_2:#e8743b;--sapChart_Sequence_3:#19a979;--sapChart_Sequence_4:#ed4a7b;--sapChart_Sequence_5:#945ecf;--sapChart_Sequence_6:#13a4b4;--sapChart_Sequence_7:#525df4;--sapChart_Sequence_8:#bf399e;--sapChart_Sequence_9:#6c8893;--sapChart_Sequence_10:#ee6868;--sapChart_Sequence_11:#2f6497;--sapChart_Sequence_Neutral:#848f94;}\";","export default \":root{--_ui5_content_density:cozy;--_ui5_calendar_header_height:3rem;--_ui5_calendar_header_arrow_button_width:2.5rem;--_ui5_calendar_header_padding:0.25rem 0;--_ui5_checkbox_root_side_padding:.6875rem;--_ui5_checkbox_icon_size:1rem;--_ui5_custom_list_item_height:3rem;--_ui5_custom_list_item_rb_min_width:3rem;--_ui5_day_picker_item_width:2.25rem;--_ui5_day_picker_item_height:2.875rem;--_ui5_day_picker_empty_height:3rem;--_ui5_datetime_picker_width:40.0625rem;--_ui5_datetime_picker_height:25rem;--_ui5_datetime_timeview_phonemode_width:19.5rem;--_ui5_datetime_timeview_padding:1rem;--_ui5_input_inner_padding:0 0.75rem;--_ui5_input_value_state_icon_padding:var(--_ui5-input-icon-padding);--_ui5_list_no_data_height:3rem;--_ui5_list_item_cb_margin_right:0;--_ui5_list_item_title_size:var(--sapMFontLargeSize);--_ui5_list_item_img_size:2rem;--_ui5_list_item_img_margin:0.5rem 0.75rem 0.5rem 0rem;--_ui5_list_item_base_height:3rem;--_ui5_list_busy_row_height:3rem;--_ui5_month_picker_item_height:3rem;--_ui5_year_picker_item_height:3rem;--_ui5_tokenizer_root_padding:0.1875rem;--_ui5_token_height:1.625rem;--_ui5_token_icon_size:1rem;--_ui5_token_icon_padding:0.25rem 0.5rem;--_ui5_token_wrapper_right_padding:0.3125rem;--_ui5_tl_bubble_padding:1rem;--_ui5_tl_indicator_before_bottom:-1.625rem;--_ui5_tl_padding:1rem 1rem 1rem .5rem;--_ui5_tl_li_margin_bottom:1.625rem;--_ui5_rb_height:2.75rem;--_ui5_rb_label_side_padding:.875rem;--_ui5_rb_focus_dist:.5rem;--_ui5_rb_inner_size:2.75rem;--_ui5_rb_svg_size:1.375rem;--_ui5_rb_label_width:calc(100% - 2.75rem);--_ui5_rb_rtl_focus_right:0.5rem;--_ui5_switch_text_on_left:calc(-100% + 1.9125rem);--_ui5_switch_slide_transform:translateX(100%) translateX(-1.875rem);--_ui5_switch_rtl_transform:translateX(1.875rem) translateX(-100%);--_ui5_switch_text_right:calc(-100% + 1.9125rem);--_ui5_tc_item_text:3rem;--_ui5_tc_item_text_text_only:3rem;--_ui5_tc_item_text_line_height:normal;--_ui5_tc_item_icon_size:1.5rem;--_ui5_tc_item_add_text_margin_top:0.625rem;--_ui5-responnsive_popover_header_height:2.75rem;--ui5-badge-font-size:0.75em;--_ui5_button_base_min_compact_width:2rem;--_ui5_button_compact_height:1.625rem;--_ui5_button_compact_padding:0.4375rem;--_ui5_button_outline:1px dotted var(--sapContent_FocusColor);--_ui5_button_outline_offset:-0.1875rem;--_ui5_button_focus_offset:1px;--_ui5_button_focus_width:1px;--_ui5_button_focus_color:var(--sapContent_FocusColor);--_ui5_button_transparent_border_color:transparent;--_ui5_button_transparent_hover_border_color:var(--sapButton_BorderColor);--_ui5_button_active_border_color:var(--sapButton_Active_BorderColor);--_ui5_button_positive_border_color:var(--sapButton_Accept_BorderColor);--_ui5_button_positive_border_hover_color:var(--sapButton_Accept_Hover_BorderColor);--_ui5_button_positive_border_active_color:var(--sapButton_Accept_Active_BorderColor);--_ui5_button_positive_border_focus_hover_color:var(--sapContent_FocusColor);--_ui5_button_positive_focus_border_color:var(--sapButton_Accept_BorderColor);--_ui5_button_negative_focus_border_color:var(--sapButton_Reject_BorderColor);--_ui5_button_negative_active_border_color:var(--sapButton_Reject_Active_BorderColor);--_ui5_button_emphasized_focused_border_color:var(--sapButton_Emphasized_BorderColor);--_ui5_button_base_min_width:2.25rem;--_ui5_button_base_height:2.25rem;--_ui5_button_border_radius:0.25rem;--_ui5_button_base_padding:0.5625rem;--_ui5_button_base_icon_only_padding:0.5625rem;--_ui5_button_base_icon_margin:0.375rem;--_ui5_button_emphasized_font_weight:bold;--_ui5_button_text_shadow:none;--_ui5_card_border_color:var(--sapTile_SeparatorColor);--_ui5_card_content_padding:1rem;--_ui5_card_header_hover_bg:var(--sapList_Hover_Background);--_ui5_card_header_active_bg:var(--_ui5_card_header_hover_bg);--_ui5_card_header_border_color:var(--_ui5_card_border_color);--_ui5_card_header_focus_border:1px dotted var(--sapContent_FocusColor);--ui5_carousel_button_size:2.125rem;--ui5_carousel_dot_border:none;--_ui5_checkbox_hover_background:var(--sapField_Hover_Background);--_ui5_checkbox_inner_width_height:1.375rem;--_ui5_checkbox_inner_error_border:0.125rem solid var(--sapField_InvalidColor);--_ui5_checkbox_inner_warning_border:0.125rem solid var(--sapField_WarningColor);--_ui5_checkbox_checkmark_warning_color:var(--sapField_TextColor);--_ui5_checkbox_checkmark_color:var(--sapSelectedColor);--_ui5_checkbox_wrapped_focus_left_top_bottom_position:.5625rem;--_ui5_checkbox_focus_outline:1px dotted var(--sapContent_FocusColor);--_ui5_checkbox_compact_wrapper_padding:.5rem;--_ui5_checkbox_compact_width_height:2rem;--_ui5_checkbox_compact_inner_size:1rem;--_ui5_checkbox_compact_focus_position:.375rem;--_ui5_checkbox_wrapper_padding:.6875rem;--_ui5_checkbox_width_height:2.75rem;--_ui5_checkbox_inner_border:.0625rem solid var(--sapField_BorderColor);--_ui5_checkbox_focus_position:0.5625rem;--_ui5_checkbox_inner_border_radius:.125rem;--_ui5_checkbox_wrapped_content_margin_top:0;--_ui5_checkbox_wrapped_focus_padding:.5rem;--_ui5_checkbox_inner_readonly_border:1px solid var(--sapField_ReadOnly_BorderColor);--_ui5_checkbox_compact_wrapped_label_margin_top:-0.125rem;--_ui5_datepicker_icon_border:none;--_ui5_daypicker_item_margin:2px;--_ui5_daypicker_item_border:none;--_ui5_daypicker_item_outline_width:1px;--_ui5_daypicker_item_outline_offset:1px;--_ui5_daypicker_daynames_container_height:2rem;--_ui5_daypicker_item_othermonth_background_color:var(--sapList_Background);--_ui5_daypicker_item_othermonth_color:var(--sapContent_LabelColor);--_ui5_daypicker_item_othermonth_hover_color:var(--sapContent_LabelColor);--_ui5_daypicker_dayname_color:var(--sapContent_LabelColor);--_ui5_daypicker_weekname_color:var(--sapContent_LabelColor);--_ui5_daypicker_item_now_selected_focus_after_width:calc(100% - 0.125rem);--_ui5_daypicker_item_now_selected_focus_after_height:calc(100% - 0.125rem);--_ui5_daypicker_item_selected_hover_background_color:var(--sapActiveColor_Lighten3);--_ui5_daypicker_item_border_radius:0.25rem;--_ui5_daypicker_item_now_inner_border_radius:0.125rem;--ui5-group-header-listitem-background-color:var(--sapList_GroupHeaderBackground);--_ui5_input_width:13.125rem;--_ui5_input_compact_height:1.625rem;--_ui5_input_state_border_width:0.125rem;--_ui5_input_error_font_weight:normal;--_ui5_input_focus_border_width:1px;--_ui5_input_error_warning_border_style:solid;--_ui5_input_error_warning_font_style:inherit;--_ui5_input_disabled_color:var(--sapContent_DisabledTextColor);--_ui5_input_disabled_font_weight:normal;--_ui5_input_disabled_border_color:var(--sapField_BorderColor);--_ui5_input_disabled_background:var(--sapField_Background);--_ui5_input_icon_min_width:2.375rem;--_ui5_input_compact_min_width:2rem;--_ui5_input_height:2.25rem;--_ui5_input_disabled_opacity:0.4;--_ui5_input_wrapper_border_radius:0.125rem;--_ui5_input_icon_padding:.5625rem .6875rem;--_ui5_link_outline_element_size:calc(100% - 0.125rem);--_ui5_link_opacity:0.4;--ui5_list_footer_text_color:var(--sapTextColor);--ui5-listitem-background-color:var(--sapList_Background);--ui5-listitem-border-bottom:1px solid var(--sapList_BorderColor);--ui5-listitem-selected-border-bottom:1px solid var(--sapList_SelectionBorderColor);--_ui5_listitembase_focus_width:1px;--_ui5_monthpicker_item_border:none;--_ui5_monthpicker_item_margin:1px;--_ui5_monthpicker_item_focus_after_width:calc(100% - 0.375rem);--_ui5_monthpicker_item_focus_after_height:calc(100% - 0.375rem);--_ui5_monthpicker_item_focus_after_border:1px dotted var(--sapContent_FocusColor);--_ui5_monthpicker_item_focus_after_offset:2px;--_ui5_monthpicker_item_border_radius:0.25rem;--_ui5_messagestrip_icon_width:2.5rem;--_ui5_messagestrip_border_radius:0.1875rem;--_ui5_messagestrip_button_border_width:0;--_ui5_messagestrip_button_border_style:none;--_ui5_messagestrip_button_border_color:transparent;--_ui5_messagestrip_button_border_radius:0;--_ui5_messagestrip_padding:0.125rem .125rem;--_ui5_messagestrip_button_height:1.625rem;--_ui5_messagestrip_border_width:1px;--_ui5_messagestrip_close_button_border:none;--_ui5_messagestrip_close_button_size:1.625rem;--_ui5_messagestrip_icon_top:0.4375rem;--_ui5_messagestrip_focus_width:1px;--_ui5_panel_focus_border:1px dotted var(--sapContent_FocusColor);--_ui5_panel_header_height:2.75rem;--_ui5_panel_button_root_width:2.75rem;--_ui5_popover_content_padding:.4375em;--_ui5_radiobutton_min_width:2.75rem;--_ui5_radiobutton_min_width_compact:2rem;--_ui5_radiobutton_hover_fill:var(--sapField_Hover_Background);--_ui5_radiobutton_border_width:1px;--_ui5_radiobutton_selected_fill:var(--sapSelectedColor);--_ui5_radiobutton_selected_error_fill:var(--sapField_InvalidColor);--_ui5_radiobutton_selected_warning_fill:var(--sapField_TextColor);--_ui5_radiobutton_warning_error_border_dash:0;--_ui5_select_disabled_background:var(--sapField_Background);--_ui5_select_disabled_border_color:var(--sapField_BorderColor);--_ui5_select_state_error_warning_border_style:solid;--_ui5_select_state_error_warning_border_width:0.125rem;--_ui5_select_hover_icon_left_border:1px solid transparent;--_ui5_select_rtl_hover_icon_left_border:none;--_ui5_select_rtl_hover_icon_right_border:none;--_ui5_select_focus_width:1px;--_ui5_switch_height:2.75rem;--_ui5_switch_width:3.875rem;--_ui5_switch_no_label_width:3.25rem;--_ui5_switch_outline:1px;--_ui5_switch_compact_height:2rem;--_ui5_switch_compact_width:3.5rem;--_ui5_switch_compact_no_label_width:2.5rem;--_ui5_switch_track_height:1.375rem;--_ui5_switch_track_no_label_height:1.25rem;--_ui5_switch_track_compact_no_label_height:1rem;--_ui5_switch_track_hover_border_color:var(--_ui5_switch_track_checked_border_color);--_ui5_switch_track_border_radius:0.75rem;--_ui5_switch_track_disabled_checked_bg:var(--_ui5_switch_track_checked_bg);--_ui5_switch_track_disabled_border_color:var(--sapContent_ForegroundBorderColor);--_ui5_switch_track_disabled_semantic_checked_bg:var(--sapSuccessBackground);--_ui5_switch_track_disabled_semantic_checked_border_color:var(--sapSuccessBorderColor);--_ui5_switch_track_disabled_semantic_bg:var(--sapErrorBackground);--_ui5_switch_track_disabled_semantic_border_color:var(--sapErrorBorderColor);--_ui5_switch_handle_width:2rem;--_ui5_switch_handle_height:2rem;--_ui5_switch_handle_border_width:1px;--_ui5_switch_handle_border_radius:1rem;--_ui5_switch_handle_bg:var(--sapButton_TokenBackground);--_ui5_switch_handle_checked_bg:var(--sapButton_Selected_Background);--_ui5_switch_handle_checked_border_color:var(--sapButton_Selected_BorderColor);--_ui5_switch_handle_semantic_hover_bg:var(--sapErrorBackground);--_ui5_switch_handle_semantic_checked_hover_bg:var(--sapSuccessBackground);--_ui5_switch_handle_semantic_hover_border_color:var(--sapErrorBorderColor);--_ui5_switch_handle_semantic_checked_hover_border_color:var(--sapSuccessBorderColor);--_ui5_switch_handle_compact_width:1.625rem;--_ui5_switch_handle_compact_height:1.625rem;--_ui5_switch_handle_disabled_bg:var(--_ui5_switch_handle_bg);--_ui5_switch_handle_disabled_checked_bg:var(--_ui5_switch_handle_checked_bg);--_ui5_switch_handle_disabled_border_color:var(--sapContent_ForegroundBorderColor);--_ui5_switch_handle_disabled_semantic_checked_bg:var(--sapButton_Background);--_ui5_switch_handle_disabled_semantic_checked_border_color:var(--sapSuccessBorderColor);--_ui5_switch_handle_disabled_semantic_border_color:var(--sapErrorBorderColor);--_ui5_switch_text_on_semantic_color:var(--sapPositiveElementColor);--_ui5_switch_text_off_semantic_color:var(--sapNegativeElementColor);--_ui5_switch_text_disabled_color:var(--sapTextColor);--_ui5_tc_header_height:4.6875rem;--_ui5_tc_header_height_compact:3.6875rem;--_ui5_tc_header_height_text_only:3rem;--_ui5_tc_header_height_text_only_compact:2rem;--_ui5_tc_headeritem_text_selected_color:var(--sapSelectedColor);--_ui5_tc_headerItem_positive_selected_border_color:var(--sapPositiveColor);--_ui5_tc_headerItem_negative_selected_border_color:var(--sapNegativeColor);--_ui5_tc_headerItem_critical_selected_border_color:var(--sapCriticalColor);--_ui5_tc_headerItem_neutral_selected_border_color:var(--sapNeutralColor);--_ui5_tc_headerItem_focus_border:1px dotted var(--sapContent_FocusColor);--_ui5_tc_headerItemSemanticIcon_display:none;--_ui5_tc_headerItemIcon_border:1px solid var(--sapHighlightColor);--_ui5_tc_headerItemIcon_color:var(--sapHighlightColor);--_ui5_tc_headerItemIcon_selected_background:var(--sapHighlightColor);--_ui5_tc_headerItemIcon_selected_color:var(--sapGroup_ContentBackground);--_ui5_tc_headerItemIcon_positive_selected_background:var(--sapPositiveColor);--_ui5_tc_headerItemIcon_negative_selected_background:var(--sapNegativeColor);--_ui5_tc_headerItemIcon_critical_selected_background:var(--sapCriticalColor);--_ui5_tc_headerItemIcon_neutral_selected_background:var(--sapNeutralColor);--_ui5_tc_headerItemIcon_semantic_selected_color:var(--sapGroup_ContentBackground);--_ui5_tc_header_box_shadow:var(--sapContent_HeaderShadow);--_ui5_tc_header_border_bottom:0.0625rem solid var(--sapObjectHeader_Background);--_ui5_tc_headerItem_color:var(--sapContent_LabelColor);--_ui5_tc_headerItemContent_border_bottom:0.188rem solid var(--sapSelectedColor);--_ui5_tc_overflowItem_default_color:var(--sapHighlightColor);--_ui5_tc_content_border_bottom:0.0625rem solid var(--sapObjectHeader_BorderColor);--_ui5_textarea_focus_after_width:1px;--_ui5_textarea_warning_border_style:solid;--_ui5_textarea_warning_border_width:2px;--_ui5_TimelineItem_arrow_size:1.625rem;--_ui5_TimelineItem_bubble_outline_width:0.0625rem;--_ui5_TimelineItem_bubble_outline_top:-0.125rem;--_ui5_TimelineItem_bubble_outline_right:-0.125rem;--_ui5_TimelineItem_bubble_outline_bottom:-0.125rem;--_ui5_TimelineItem_bubble_outline_left:-0.625rem;--_ui5_TimelineItem_bubble_rtl_left_offset:-0.125rem;--_ui5_TimelineItem_bubble_rtl_right_offset:-0.625rem;--_ui5_toast_vertical_offset:3rem;--_ui5_toast_horizontal_offset:2rem;--_ui5_toast_background:var(--sapList_Background);--_ui5_toast_shadow:var(--sapContent_Shadow2);--_ui5_wheelslider_item_text_size:var(--sapFontSize);--_ui5_wheelslider_label_text_size:var(--sapFontSmallSize);--_ui5_wheelslider_mobile_selection_frame_margin_top:calc(var(--_ui5_wheelslider_item_height)*4);--_ui5_wheelslider_label_text_color:var(--sapContent_LabelColor);--_ui5_wheelslider_height:15rem;--_ui5_wheelslider_mobile_height:27rem;--_ui5_wheelslider_arrows_visibility:hidden;--_ui5_wheelslider_item_background_color:var(--sapLegend_WorkingBackground);--_ui5_wheelslider_item_text_color:var(--sapTextColor);--_ui_wheelslider_item_hover_color:var(--sapList_Hover_Background);--_ui5_wheelslider_item_border_color:var(--sapList_Background);--_ui5_wheelslider_collapsed_item_text_color:var(--_ui5_wheelslider_item_border_color);--_ui5_wheelslider_selected_item_background_color:var(--sapContent_Selected_Background);--_ui5_wheelslider_selected_item_hover_background_color:var(--sapButton_Emphasized_Hover_BorderColor);--_ui5_wheelslider_active_item_background_color:var(--sapContent_Selected_Background);--_ui5_wheelslider_active_item_text_color:var(--sapContent_Selected_TextColor);--_ui5_wheelslider_item_width:3rem;--_ui5_wheelslider_item_height:2.875rem;--_ui5_wheelslider_selection_frame_color:var(--sapList_SelectionBorderColor);--_ui_wheelslider_item_border_radius:var(--_ui5_button_border_radius);--_ui5_toggle_button_pressed_focussed:var(--sapButton_Selected_BorderColor);--_ui5_toggle_button_pressed_focussed_hovered:var(--sapButton_Selected_BorderColor);--_ui5_yearpicker_item_selected_focus:var(--sapContent_Selected_Background);--_ui5_yearpicker_item_border:none;--_ui5_yearpicker_item_margin:1px;--_ui5_yearpicker_item_focus_after_width:calc(100% - 0.375rem);--_ui5_yearpicker_item_focus_after_height:calc(100% - 0.375rem);--_ui5_yearpicker_item_focus_after_border:1px dotted var(--sapContent_FocusColor);--_ui5_yearpicker_item_focus_after_offset:2px;--_ui5_yearpicker_item_border_radius:0.25rem;--_ui5_calendar_header_arrow_button_border:none;--_ui5_calendar_header_arrow_button_border_radius:0.25rem;--_ui5_calendar_header_middle_button_width:6.25rem;--_ui5_calendar_header_middle_button_flex:1 1 auto;--_ui5_calendar_header_middle_button_focus_border_radius:0.25rem;--_ui5_calendar_header_middle_button_focus_border:none;--_ui5_calendar_header_middle_button_focus_after_display:block;--_ui5_calendar_header_middle_button_focus_after_width:calc(100% - 0.375rem);--_ui5_calendar_header_middle_button_focus_after_height:calc(100% - 0.375rem);--_ui5_calendar_header_middle_button_focus_after_top_offset:0.125rem;--_ui5_calendar_header_middle_button_focus_after_left_offset:0.125rem;--ui5_table_header_row_outline_width:1px;--ui5_table_row_outline_width:1px;--ui5_title_level_1Size:1.625rem;--ui5_title_level_2Size:1.375rem;--ui5_title_level_3Size:1.250rem;--ui5_title_level_4Size:1.125rem;--ui5_title_level_5Size:1rem;--ui5_title_level_6Size:0.875rem;--_ui5_token_background:var(--sapButton_TokenBackground);--_ui5_token_border_radius:0.25rem;--_ui5_token_text_color:var(--sapTextColor);--_ui5_token_icon_color:var(--sapContent_IconColor);--_ui5-multi_combobox_token_margin_top:1px}.sapUiSizeCompact,.ui5-content-density-compact,:root,[data-ui5-compact-size]{--_ui5_datetime_timeview_width:17rem;--_ui5_token_wrapper_left_padding:0;--_ui5_button_icon_font_size:1rem;--_ui5_daypicker_weeknumbers_container_padding_top:2rem;--_ui5_wheelslider_selection_frame_margin_top:calc(var(--_ui5_wheelslider_item_height)*2)}.sapUiSizeCompact,.ui5-content-density-compact,[data-ui5-compact-size]{--_ui5_content_density:compact;--_ui5_button_base_height:1.625rem;--_ui5_button_base_padding:0.4375rem;--_ui5_button_base_min_width:2rem;--_ui5_calendar_header_height:2rem;--_ui5_calendar_header_padding:0;--_ui5_calendar_header_arrow_button_width:2rem;--_ui5_checkbox_root_side_padding:var(--_ui5_checkbox_wrapped_focus_padding);--_ui5_checkbox_wrapped_content_margin_top:var(--_ui5_checkbox_compact_wrapped_label_margin_top);--_ui5_checkbox_wrapped_focus_left_top_bottom_position:var(--_ui5_checkbox_compact_focus_position);--_ui5_checkbox_width_height:var(--_ui5_checkbox_compact_width_height);--_ui5_checkbox_inner_width_height:var(--_ui5_checkbox_compact_inner_size);--_ui5_checkbox_icon_size:.75rem;--_ui5_checkbox_wrapper_padding:var(--_ui5_checkbox_compact_wrapper_padding);--_ui5_checkbox_focus_position:var(--_ui5_checkbox_compact_focus_position);--_ui5_custom_list_item_height:2rem;--_ui5_custom_list_item_rb_min_width:2rem;--_ui5_day_picker_item_width:2rem;--_ui5_day_picker_item_height:2rem;--_ui5_day_picker_empty_height:2.125rem;--_ui5_datetime_picker_height:17rem;--_ui5_datetime_picker_width:34.0625rem;--_ui5_datetime_timeview_phonemode_width:18.5rem;--_ui5_datetime_timeview_padding:0.5rem;--_ui5_input_height:var(--_ui5_input_compact_height);--_ui5_input_inner_padding:0 0.5rem;--_ui5_input_icon_min_width:var(--_ui5_input_compact_min_width);--_ui5_input_icon_padding:.25rem .5rem;--_ui5_input_value_state_icon_padding:.1875rem .5rem;--_ui5_list_no_data_height:2rem;--_ui5_list_item_cb_margin_right:.5rem;--_ui5_list_item_title_size:var(--sapFontSize);--_ui5_list_item_img_size:1.75rem;--_ui5_list_item_img_margin:0.55rem 0.75rem 0.5rem 0rem;--_ui5_list_item_base_height:2rem;--_ui5_list_busy_row_height:2rem;--_ui5_month_picker_item_height:2rem;--_ui5_panel_header_height:2rem;--_ui5_year_picker_item_height:2rem;--_ui5_tokenizer_root_padding:0.125rem;--_ui5_token_height:1.125rem;--_ui5_token_icon_size:.75rem;--_ui5_token_icon_padding:0.1rem 0.25rem;--_ui5_token_wrapper_right_padding:0.25rem;--_ui5_tl_bubble_padding:.5rem;--_ui5_tl_indicator_before_bottom:-.5rem;--_ui5_tl_padding:.5rem;--_ui5_tl_li_margin_bottom:.5rem;--_ui5_rb_height:2rem;--_ui5_rb_label_side_padding:.5rem;--_ui5_rb_focus_dist:.375rem;--_ui5_rb_inner_size:2rem;--_ui5_rb_svg_size:1rem;--_ui5_rb_label_width:calc(100% - 2rem + 1px);--_ui5_rb_rtl_focus_right:0.375rem;--_ui5_wheelslider_item_width:4rem;--_ui5_wheelslider_item_height:2rem;--_ui5_wheelslider_height:14rem;--_ui5_wheelslider_arrows_visibility:visible;--_ui5_switch_height:var(--_ui5_switch_compact_height);--_ui5_switch_width:var(--_ui5_switch_compact_width);--_ui5_switch_handle_height:var(--_ui5_switch_handle_compact_height);--_ui5_switch_handle_width:var(--_ui5_switch_handle_compact_width);--_ui5_switch_text_on_left:calc(-100% + 1.5625rem);--_ui5_switch_slide_transform:translateX(100%) translateX(-1.5rem);--_ui5_switch_no_label_width:var(--_ui5_switch_compact_no_label_width);--_ui5_switch_track_no_label_height:var(--_ui5_switch_track_compact_no_label_height);--_ui5_switch_rtl_transform:translateX(-100%) translateX(1.5rem);--_ui5_switch_text_right:calc(-100% + 1.5625rem);--_ui5_tc_item_text:2rem;--_ui5_tc_item_text_line_height:1.325rem;--_ui5_tc_item_icon_size:1rem;--_ui5_tc_item_add_text_margin_top:0.3125rem;--_ui5_tc_header_height:var(--_ui5_tc_header_height_compact);--_ui5_radiobutton_min_width:var(--_ui5_radiobutton_min_width_compact);--_ui5-responnsive_popover_header_height:2.5rem}\";","import { registerThemeProperties } from \"@ui5/webcomponents-base/dist/asset-registries/Themes.js\";\n\nimport defaultThemeBase from \"@ui5/webcomponents-theme-base/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js\";\nimport defaultTheme from \"./sap_fiori_3/parameters-bundle.css.js\";\n\nregisterThemeProperties(\"@ui5/webcomponents-theme-base\", \"sap_fiori_3\", defaultThemeBase);\nregisterThemeProperties(\"@ui5/webcomponents\", \"sap_fiori_3\", defaultTheme);\nexport default \":host(:not([hidden])){display:inline-block}:host([invalid]){display:none}:host(:not([hidden]).ui5_hovered){opacity:.7}:host{width:1rem;height:1rem;color:var(--sapContent_NonInteractiveIconColor);fill:currentColor;outline:none}:host(:not([dir=ltr])) .ui5-icon-root[dir=rtl]{transform:scale(-1)}.ui5-icon-root{display:flex;transform:scaleY(-1)}\";","import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport { getRTL } from \"@ui5/webcomponents-base/dist/config/RTL.js\";\nimport { getIconData, getIconDataSync } from \"@ui5/webcomponents-base/dist/SVGIconRegistry.js\";\nimport createStyleInHead from \"@ui5/webcomponents-base/dist/util/createStyleInHead.js\";\nimport { fetchI18nBundle, getI18nBundle } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport IconTemplate from \"./generated/templates/IconTemplate.lit.js\";\n\n// Styles\nimport iconCss from \"./generated/themes/Icon.css.js\";\n\nconst ICON_NOT_FOUND = \"ICON_NOT_FOUND\";\n\n/**\n * @public\n */\nconst metadata = {\n\ttag: \"ui5-icon\",\n\tproperties: /** @lends sap.ui.webcomponents.main.Icon.prototype */ {\n\t\t/**\n\t\t * Defines the unique identifier (icon name) of each ui5-icon.\n\t\t *

\n\t\t * To browse all available icons, see the\n\t\t * Icon Explorer.\n\t\t *

\n\t\t * Example:\n\t\t *
\n\t\t * name='add', name='delete', name='employee'.\n\t\t *\n\t\t * @type {string}\n\t\t * @defaultvalue \"\"\n\t\t * @public\n\t\t*/\n\t\tname: {\n\t\t\ttype: String,\n\t\t},\n\n\t\t/**\n\t\t * Defines the text alternative of the ui5-icon.\n\t\t * If not provided a default text alternative will be set, if present.\n\t\t *

\n\t\t * Note: Every icon should have a text alternative in order to\n\t\t * calculate its accessible name.\n\t\t *\n\t\t * @type {string}\n\t\t * @defaultvalue \"\"\n\t\t * @public\n\t\t */\n\t\taccessibleName: {\n\t\t\ttype: String,\n\t\t},\n\n\t\t/**\n\t\t * Defines whether the ui5-icon should have a tooltip.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @defaultvalue false\n\t\t * @public\n\t\t */\n\t\tshowTooltip: {\n\t\t\ttype: Boolean,\n\t\t},\n\n\t\t/**\n\t\t * @private\n\t\t */\n\t\tpathData: {\n\t\t\ttype: String,\n\t\t\tnoAttribute: true,\n\t\t},\n\n\t\t/**\n\t\t * @private\n\t\t */\n\t\taccData: {\n\t\t\ttype: Object,\n\t\t\tnoAttribute: true,\n\t\t},\n\n\t\t/**\n\t\t* @private\n\t\t*/\n\t\tinvalid: {\n\t\t\ttype: Boolean,\n\t\t},\n\t},\n\tevents: {\n\t},\n};\n\n/**\n * @class\n *

Overview

\n *\n * The ui5-icon component represents an SVG icon.\n * There are two main scenarios how the ui5-icon component is used:\n * as a purely decorative element; or as a visually appealing clickable area in the form of an icon button.\n *

\n * A large set of built-in icons is available\n * and they can be used by setting the name property on the ui5-icon.\n *\n *

ES6 Module Import

\n *\n * import \"@ui5/webcomponents/dist/Icon.js\";\n *\n * @constructor\n * @author SAP SE\n * @alias sap.ui.webcomponents.main.Icon\n * @extends sap.ui.webcomponents.base.UI5Element\n * @tagname ui5-icon\n * @public\n */\nclass Icon extends UI5Element {\n\tconstructor() {\n\t\tsuper();\n\t\tthis.i18nBundle = getI18nBundle(\"@ui5/webcomponents\");\n\t}\n\n\tstatic get metadata() {\n\t\treturn metadata;\n\t}\n\n\tstatic get render() {\n\t\treturn litRender;\n\t}\n\n\tstatic get template() {\n\t\treturn IconTemplate;\n\t}\n\n\tstatic get styles() {\n\t\treturn iconCss;\n\t}\n\n\tstatic async onDefine() {\n\t\tthis.createGlobalStyle(); // hide all icons until the first icon has rendered (and added the Icon.css)\n\t\tawait fetchI18nBundle(\"@ui5/webcomponents\");\n\t}\n\n\tstatic createGlobalStyle() {\n\t\tif (!window.ShadyDOM) {\n\t\t\treturn;\n\t\t}\n\t\tconst styleElement = document.head.querySelector(`style[data-ui5-icon-global]`);\n\t\tif (!styleElement) {\n\t\t\tcreateStyleInHead(`ui5-icon { display: none !important; }`, { \"data-ui5-icon-global\": \"\" });\n\t\t}\n\t}\n\n\tstatic removeGlobalStyle() {\n\t\tif (!window.ShadyDOM) {\n\t\t\treturn;\n\t\t}\n\t\tconst styleElement = document.head.querySelector(`style[data-ui5-icon-global]`);\n\t\tif (styleElement) {\n\t\t\tdocument.head.removeChild(styleElement);\n\t\t}\n\t}\n\n\tasync onBeforeRendering() {\n\t\tconst name = this.name;\n\t\tif (!name) {\n\t\t\t/* eslint-disable-next-line */\n\t\t\treturn console.warn(\"Icon name property is required\", this);\n\t\t}\n\t\tlet iconData = getIconDataSync(name);\n\t\tif (!iconData) {\n\t\t\ticonData = await getIconData(name);\n\t\t}\n\n\t\tif (iconData === ICON_NOT_FOUND) {\n\t\t\tthis.invalid = true;\n\t\t\t/* eslint-disable-next-line */\n\t\t\treturn console.warn(`Required icon is not registered. You can either import the icon as a module in order to use it e.g. \"@ui5/webcomponents-icons/dist/icons/${name.replace(\"sap-icon://\", \"\")}.js\", or setup a JSON build step and import \"@ui5/webcomponents-icons/dist/Assets.js\".`);\n\t\t}\n\n\t\tif (!iconData) {\n\t\t\tthis.invalid = true;\n\t\t\t/* eslint-disable-next-line */\n\t\t\treturn console.warn(`Required icon is not registered. Invalid icon name: ${this.name}`);\n\t\t}\n\n\t\tthis.pathData = iconData.pathData;\n\t\tthis.accData = iconData.accData;\n\t}\n\n\tget hasIconTooltip() {\n\t\treturn this.showTooltip && this.accessibleNameText;\n\t}\n\n\tget accessibleNameText() {\n\t\tif (this.accessibleName) {\n\t\t\treturn this.accessibleName;\n\t\t}\n\n\t\treturn this.i18nBundle.getText(this.accData) || undefined;\n\t}\n\n\tget dir() {\n\t\treturn getRTL() ? \"rtl\" : \"ltr\";\n\t}\n\n\tasync onEnterDOM() {\n\t\tsetTimeout(() => {\n\t\t\tthis.constructor.removeGlobalStyle(); // remove the global style as Icon.css is already in place\n\t\t}, 0);\n\t}\n}\n\nIcon.define();\n\nexport default Icon;\n","const ARIA_LABEL_CARD_CONTENT = {key: \"ARIA_LABEL_CARD_CONTENT\", defaultText: \"Card Content\"};const ARIA_ROLEDESCRIPTION_CARD = {key: \"ARIA_ROLEDESCRIPTION_CARD\", defaultText: \"Card\"};const ARIA_ROLEDESCRIPTION_CARD_HEADER = {key: \"ARIA_ROLEDESCRIPTION_CARD_HEADER\", defaultText: \"Card Header\"};const ARIA_ROLEDESCRIPTION_INTERACTIVE_CARD_HEADER = {key: \"ARIA_ROLEDESCRIPTION_INTERACTIVE_CARD_HEADER\", defaultText: \"Interactive Card Header\"};const AVATAR_TOOLTIP = {key: \"AVATAR_TOOLTIP\", defaultText: \"Avatar\"};const BADGE_DESCRIPTION = {key: \"BADGE_DESCRIPTION\", defaultText: \"Badge\"};const BUSY_INDICATOR_TITLE = {key: \"BUSY_INDICATOR_TITLE\", defaultText: \"Please wait\"};const BUTTON_ARIA_TYPE_ACCEPT = {key: \"BUTTON_ARIA_TYPE_ACCEPT\", defaultText: \"Positive Action\"};const BUTTON_ARIA_TYPE_REJECT = {key: \"BUTTON_ARIA_TYPE_REJECT\", defaultText: \"Negative Action\"};const BUTTON_ARIA_TYPE_EMPHASIZED = {key: \"BUTTON_ARIA_TYPE_EMPHASIZED\", defaultText: \"Emphasized\"};const DATEPICKER_DATE_ACC_TEXT = {key: \"DATEPICKER_DATE_ACC_TEXT\", defaultText: \"Date\"};const CAROUSEL_OF_TEXT = {key: \"CAROUSEL_OF_TEXT\", defaultText: \"of\"};const CAROUSEL_DOT_TEXT = {key: \"CAROUSEL_DOT_TEXT\", defaultText: \"Item {0} of {1} displayed\"};const DATEPICKER_OPEN_ICON_TITLE = {key: \"DATEPICKER_OPEN_ICON_TITLE\", defaultText: \"Open Picker\"};const DELETE = {key: \"DELETE\", defaultText: \"Delete\"};const FILEUPLOAD_BROWSE = {key: \"FILEUPLOAD_BROWSE\", defaultText: \"Browse...\"};const GROUP_HEADER_TEXT = {key: \"GROUP_HEADER_TEXT\", defaultText: \"Group Header\"};const ICON_ACTION_SETTINGS = {key: \"ICON_ACTION_SETTINGS\", defaultText: \"Settings\"};const ICON_ACTIVATE = {key: \"ICON_ACTIVATE\", defaultText: \"Activate\"};const ICON_ADD = {key: \"ICON_ADD\", defaultText: \"Add\"};const ICON_ADD_CONTACT = {key: \"ICON_ADD_CONTACT\", defaultText: \"Add Contact\"};const ICON_ADD_FILTER = {key: \"ICON_ADD_FILTER\", defaultText: \"Add Filter\"};const ICON_ADD_PHOTO = {key: \"ICON_ADD_PHOTO\", defaultText: \"Add Photo\"};const ICON_BACK_TO_TOP = {key: \"ICON_BACK_TO_TOP\", defaultText: \"Back to Top\"};const ICON_COLLAPSE = {key: \"ICON_COLLAPSE\", defaultText: \"Collapse\"};const ICON_COLLAPSE_GROUP = {key: \"ICON_COLLAPSE_GROUP\", defaultText: \"Collapse Group\"};const ICON_CROP = {key: \"ICON_CROP\", defaultText: \"Crop\"};const ICON_DECLINE = {key: \"ICON_DECLINE\", defaultText: \"Decline\"};const ICON_DELETE = {key: \"ICON_DELETE\", defaultText: \"Delete\"};const ICON_DISPLAY = {key: \"ICON_DISPLAY\", defaultText: \"Display\"};const ICON_DOWN = {key: \"ICON_DOWN\", defaultText: \"Down\"};const ICON_DOWNLOAD = {key: \"ICON_DOWNLOAD\", defaultText: \"Download\"};const ICON_DRILL_DOWN = {key: \"ICON_DRILL_DOWN\", defaultText: \"Drill Down\"};const ICON_DRILL_UP = {key: \"ICON_DRILL_UP\", defaultText: \"Drill Up\"};const ICON_ERROR = {key: \"ICON_ERROR\", defaultText: \"Error\"};const ICON_EXIT_FULL_SCREEN = {key: \"ICON_EXIT_FULL_SCREEN\", defaultText: \"Exit Full Screen\"};const ICON_EXPAND = {key: \"ICON_EXPAND\", defaultText: \"Expand\"};const ICON_EXPAND_GROUP = {key: \"ICON_EXPAND_GROUP\", defaultText: \"Expand Group\"};const ICON_FILTER = {key: \"ICON_FILTER\", defaultText: \"Filter\"};const ICON_FLAG = {key: \"ICON_FLAG\", defaultText: \"Flag\"};const ICON_FORWARD = {key: \"ICON_FORWARD\", defaultText: \"Forward\"};const ICON_FULL_SCREEN = {key: \"ICON_FULL_SCREEN\", defaultText: \"Enter Full Screen\"};const ICON_GENERATE_SHORTCUT = {key: \"ICON_GENERATE_SHORTCUT\", defaultText: \"Create Shortcut\"};const ICON_GROUP_2 = {key: \"ICON_GROUP_2\", defaultText: \"Group\"};const ICON_HIDE = {key: \"ICON_HIDE\", defaultText: \"Hide\"};const ICON_IPAD = {key: \"ICON_IPAD\", defaultText: \"Tablet\"};const ICON_IPAD_2 = {key: \"ICON_IPAD_2\", defaultText: \"Tablet\"};const ICON_IPHONE = {key: \"ICON_IPHONE\", defaultText: \"Phone\"};const ICON_IPHONE_2 = {key: \"ICON_IPHONE_2\", defaultText: \"Phone\"};const ICON_LAPTOP = {key: \"ICON_LAPTOP\", defaultText: \"Laptop\"};const ICON_MESSAGE_ERROR = {key: \"ICON_MESSAGE_ERROR\", defaultText: \"Error\"};const ICON_MESSAGE_INFORMATION = {key: \"ICON_MESSAGE_INFORMATION\", defaultText: \"Information\"};const ICON_MESSAGE_SUCCESS = {key: \"ICON_MESSAGE_SUCCESS\", defaultText: \"Successful\"};const ICON_MESSAGE_WARNING = {key: \"ICON_MESSAGE_WARNING\", defaultText: \"Warning\"};const ICON_MOVE = {key: \"ICON_MOVE\", defaultText: \"Move\"};const ICON_MULTI_SELECT = {key: \"ICON_MULTI_SELECT\", defaultText: \"Multi Select\"};const ICON_NAV_BACK = {key: \"ICON_NAV_BACK\", defaultText: \"Navigate Back\"};const ICON_OVERFLOW = {key: \"ICON_OVERFLOW\", defaultText: \"More\"};const ICON_REDO = {key: \"ICON_REDO\", defaultText: \"Redo\"};const ICON_REFRESH = {key: \"ICON_REFRESH\", defaultText: \"Refresh\"};const ICON_RESIZE = {key: \"ICON_RESIZE\", defaultText: \"Resize\"};const ICON_RESIZE_HORIZONTAL = {key: \"ICON_RESIZE_HORIZONTAL\", defaultText: \"Resize Horizontally\"};const ICON_RESIZE_VERTICAL = {key: \"ICON_RESIZE_VERTICAL\", defaultText: \"Resize Vertically\"};const ICON_RESPONSE = {key: \"ICON_RESPONSE\", defaultText: \"Reply\"};const ICON_SAVE = {key: \"ICON_SAVE\", defaultText: \"Save\"};const ICON_SEARCH = {key: \"ICON_SEARCH\", defaultText: \"Search\"};const ICON_SETTINGS = {key: \"ICON_SETTINGS\", defaultText: \"Settings\"};const ICON_SHOW = {key: \"ICON_SHOW\", defaultText: \"Show\"};const ICON_SORT = {key: \"ICON_SORT\", defaultText: \"Sort\"};const ICON_SORT_ASCENDING = {key: \"ICON_SORT_ASCENDING\", defaultText: \"Sort Ascending\"};const ICON_SORT_DESCENDING = {key: \"ICON_SORT_DESCENDING\", defaultText: \"Sort Descending\"};const ICON_SYNCHRONIZE = {key: \"ICON_SYNCHRONIZE\", defaultText: \"Synchronize\"};const ICON_UNDO = {key: \"ICON_UNDO\", defaultText: \"Undo\"};const ICON_UP = {key: \"ICON_UP\", defaultText: \"Up\"};const ICON_UPLOAD = {key: \"ICON_UPLOAD\", defaultText: \"Upload\"};const ICON_ZOOM_IN = {key: \"ICON_ZOOM_IN\", defaultText: \"Zoom In\"};const ICON_ZOOM_OUT = {key: \"ICON_ZOOM_OUT\", defaultText: \"Zoom Out\"};const ICON_ACCESSIBLE_NAME = {key: \"ICON_ACCESSIBLE_NAME\", defaultText: \"Select Options\"};const INPUT_SUGGESTIONS = {key: \"INPUT_SUGGESTIONS\", defaultText: \"Suggestions Available\"};const INPUT_SUGGESTIONS_TITLE = {key: \"INPUT_SUGGESTIONS_TITLE\", defaultText: \"Select\"};const LINK_SUBTLE = {key: \"LINK_SUBTLE\", defaultText: \"Subtle\"};const LINK_EMPHASIZED = {key: \"LINK_EMPHASIZED\", defaultText: \"Emphasized\"};const MESSAGE_STRIP_CLOSE_BUTTON = {key: \"MESSAGE_STRIP_CLOSE_BUTTON\", defaultText: \"Message Strip Close\"};const MULTIINPUT_SHOW_MORE_TOKENS = {key: \"MULTIINPUT_SHOW_MORE_TOKENS\", defaultText: \"{0} More\"};const PANEL_ICON = {key: \"PANEL_ICON\", defaultText: \"Expand/Collapse\"};const SEGMENTEDBUTTON_ARIA_DESCRIPTION = {key: \"SEGMENTEDBUTTON_ARIA_DESCRIPTION\", defaultText: \"Segmented Button\"};const SWITCH_ON = {key: \"SWITCH_ON\", defaultText: \"On\"};const SWITCH_OFF = {key: \"SWITCH_OFF\", defaultText: \"Off\"};const TABCONTAINER_NEXT_ICON_ACC_NAME = {key: \"TABCONTAINER_NEXT_ICON_ACC_NAME\", defaultText: \"Next\"};const TABCONTAINER_PREVIOUS_ICON_ACC_NAME = {key: \"TABCONTAINER_PREVIOUS_ICON_ACC_NAME\", defaultText: \"Previous\"};const TABCONTAINER_OVERFLOW_MENU_TITLE = {key: \"TABCONTAINER_OVERFLOW_MENU_TITLE\", defaultText: \"Overflow Menu\"};const TEXTAREA_CHARACTERS_LEFT = {key: \"TEXTAREA_CHARACTERS_LEFT\", defaultText: \"{0} characters remaining\"};const TEXTAREA_CHARACTERS_EXCEEDED = {key: \"TEXTAREA_CHARACTERS_EXCEEDED\", defaultText: \"{0} characters over limit\"};const TIMELINE_ARIA_LABEL = {key: \"TIMELINE_ARIA_LABEL\", defaultText: \"Timeline\"};const TIMEPICKER_HOURS_LABEL = {key: \"TIMEPICKER_HOURS_LABEL\", defaultText: \"Hours\"};const TIMEPICKER_MINUTES_LABEL = {key: \"TIMEPICKER_MINUTES_LABEL\", defaultText: \"Minutes\"};const TIMEPICKER_SECONDS_LABEL = {key: \"TIMEPICKER_SECONDS_LABEL\", defaultText: \"Seconds\"};const TIMEPICKER_PERIODS_LABEL = {key: \"TIMEPICKER_PERIODS_LABEL\", defaultText: \"AM/PM\"};const TIMEPICKER_SUBMIT_BUTTON = {key: \"TIMEPICKER_SUBMIT_BUTTON\", defaultText: \"OK\"};const TIMEPICKER_CANCEL_BUTTON = {key: \"TIMEPICKER_CANCEL_BUTTON\", defaultText: \"Cancel\"};const DATETIME_PICKER_DATE_BUTTON = {key: \"DATETIME_PICKER_DATE_BUTTON\", defaultText: \"Date\"};const DATETIME_PICKER_TIME_BUTTON = {key: \"DATETIME_PICKER_TIME_BUTTON\", defaultText: \"Time\"};const TOKEN_ARIA_DELETABLE = {key: \"TOKEN_ARIA_DELETABLE\", defaultText: \"Deletable\"};const TOKENIZER_ARIA_CONTAIN_TOKEN = {key: \"TOKENIZER_ARIA_CONTAIN_TOKEN\", defaultText: \"May contain tokens\"};const TOKENIZER_ARIA_CONTAIN_ONE_TOKEN = {key: \"TOKENIZER_ARIA_CONTAIN_ONE_TOKEN\", defaultText: \"Contains 1 token\"};const TOKENIZER_ARIA_CONTAIN_SEVERAL_TOKENS = {key: \"TOKENIZER_ARIA_CONTAIN_SEVERAL_TOKENS\", defaultText: \"Contains {0} tokens\"};const TOKENIZER_ARIA_LABEL = {key: \"TOKENIZER_ARIA_LABEL\", defaultText: \"Tokenizer\"};const VALUE_STATE_ERROR = {key: \"VALUE_STATE_ERROR\", defaultText: \"Invalid entry\"};const VALUE_STATE_WARNING = {key: \"VALUE_STATE_WARNING\", defaultText: \"Warning issued\"};const VALUE_STATE_INFORMATION = {key: \"VALUE_STATE_INFORMATION\", defaultText: \"Informative entry\"};const VALUE_STATE_SUCCESS = {key: \"VALUE_STATE_SUCCESS\", defaultText: \"Entry successfully validated\"};\nexport {ARIA_LABEL_CARD_CONTENT,ARIA_ROLEDESCRIPTION_CARD,ARIA_ROLEDESCRIPTION_CARD_HEADER,ARIA_ROLEDESCRIPTION_INTERACTIVE_CARD_HEADER,AVATAR_TOOLTIP,BADGE_DESCRIPTION,BUSY_INDICATOR_TITLE,BUTTON_ARIA_TYPE_ACCEPT,BUTTON_ARIA_TYPE_REJECT,BUTTON_ARIA_TYPE_EMPHASIZED,DATEPICKER_DATE_ACC_TEXT,CAROUSEL_OF_TEXT,CAROUSEL_DOT_TEXT,DATEPICKER_OPEN_ICON_TITLE,DELETE,FILEUPLOAD_BROWSE,GROUP_HEADER_TEXT,ICON_ACTION_SETTINGS,ICON_ACTIVATE,ICON_ADD,ICON_ADD_CONTACT,ICON_ADD_FILTER,ICON_ADD_PHOTO,ICON_BACK_TO_TOP,ICON_COLLAPSE,ICON_COLLAPSE_GROUP,ICON_CROP,ICON_DECLINE,ICON_DELETE,ICON_DISPLAY,ICON_DOWN,ICON_DOWNLOAD,ICON_DRILL_DOWN,ICON_DRILL_UP,ICON_ERROR,ICON_EXIT_FULL_SCREEN,ICON_EXPAND,ICON_EXPAND_GROUP,ICON_FILTER,ICON_FLAG,ICON_FORWARD,ICON_FULL_SCREEN,ICON_GENERATE_SHORTCUT,ICON_GROUP_2,ICON_HIDE,ICON_IPAD,ICON_IPAD_2,ICON_IPHONE,ICON_IPHONE_2,ICON_LAPTOP,ICON_MESSAGE_ERROR,ICON_MESSAGE_INFORMATION,ICON_MESSAGE_SUCCESS,ICON_MESSAGE_WARNING,ICON_MOVE,ICON_MULTI_SELECT,ICON_NAV_BACK,ICON_OVERFLOW,ICON_REDO,ICON_REFRESH,ICON_RESIZE,ICON_RESIZE_HORIZONTAL,ICON_RESIZE_VERTICAL,ICON_RESPONSE,ICON_SAVE,ICON_SEARCH,ICON_SETTINGS,ICON_SHOW,ICON_SORT,ICON_SORT_ASCENDING,ICON_SORT_DESCENDING,ICON_SYNCHRONIZE,ICON_UNDO,ICON_UP,ICON_UPLOAD,ICON_ZOOM_IN,ICON_ZOOM_OUT,ICON_ACCESSIBLE_NAME,INPUT_SUGGESTIONS,INPUT_SUGGESTIONS_TITLE,LINK_SUBTLE,LINK_EMPHASIZED,MESSAGE_STRIP_CLOSE_BUTTON,MULTIINPUT_SHOW_MORE_TOKENS,PANEL_ICON,SEGMENTEDBUTTON_ARIA_DESCRIPTION,SWITCH_ON,SWITCH_OFF,TABCONTAINER_NEXT_ICON_ACC_NAME,TABCONTAINER_PREVIOUS_ICON_ACC_NAME,TABCONTAINER_OVERFLOW_MENU_TITLE,TEXTAREA_CHARACTERS_LEFT,TEXTAREA_CHARACTERS_EXCEEDED,TIMELINE_ARIA_LABEL,TIMEPICKER_HOURS_LABEL,TIMEPICKER_MINUTES_LABEL,TIMEPICKER_SECONDS_LABEL,TIMEPICKER_PERIODS_LABEL,TIMEPICKER_SUBMIT_BUTTON,TIMEPICKER_CANCEL_BUTTON,DATETIME_PICKER_DATE_BUTTON,DATETIME_PICKER_TIME_BUTTON,TOKEN_ARIA_DELETABLE,TOKENIZER_ARIA_CONTAIN_TOKEN,TOKENIZER_ARIA_CONTAIN_ONE_TOKEN,TOKENIZER_ARIA_CONTAIN_SEVERAL_TOKENS,TOKENIZER_ARIA_LABEL,VALUE_STATE_ERROR,VALUE_STATE_WARNING,VALUE_STATE_INFORMATION,VALUE_STATE_SUCCESS};","import { registerThemeProperties } from \"@ui5/webcomponents-base/dist/asset-registries/Themes.js\";\n\nimport defaultThemeBase from \"@ui5/webcomponents-theme-base/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js\";\nimport defaultTheme from \"./sap_fiori_3/parameters-bundle.css.js\";\n\nregisterThemeProperties(\"@ui5/webcomponents-theme-base\", \"sap_fiori_3\", defaultThemeBase);\nregisterThemeProperties(\"@ui5/webcomponents\", \"sap_fiori_3\", defaultTheme);\nexport default \".ui5-hidden-text{position:absolute;clip:rect(1px,1px,1px,1px);user-select:none;left:0;top:0}:host(:not([hidden])){display:inline-block}:host{min-width:var(--_ui5_button_base_min_width);height:var(--_ui5_button_base_height);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);text-shadow:var(--_ui5_button_text_shadow);border-radius:var(--_ui5_button_border_radius);border-width:.0625rem;cursor:pointer;background-color:var(--sapButton_Background);border:1px solid var(--sapButton_BorderColor);color:var(--sapButton_TextColor);box-sizing:border-box}:host([has-icon]) button[dir=rtl].ui5-button-root .ui5-button-text{margin-right:var(--_ui5_button_base_icon_margin);margin-left:0}:host([has-icon][icon-end]) button[dir=rtl].ui5-button-root .ui5-button-icon{margin-right:var(--_ui5_button_base_icon_margin);margin-left:0}.ui5-button-root{min-width:inherit;cursor:inherit;height:100%;width:100%;box-sizing:border-box;display:flex;justify-content:center;align-items:center;outline:none;padding:0 var(--_ui5_button_base_padding);position:relative;background:transparent;border:none;color:inherit;text-shadow:inherit;font:inherit;white-space:inherit;overflow:inherit;text-overflow:inherit}:host(:not([active]):hover),:host(:not([hidden]).ui5_hovered){background:var(--sapButton_Hover_Background)}.ui5-button-icon{font-size:var(--_ui5_button_icon_font_size);height:0;top:-.5rem;position:relative;color:inherit;flex-shrink:0}:host([icon-end]) .ui5-button-root{flex-direction:row-reverse}:host([icon-end]) .ui5-button-icon{margin-left:var(--_ui5_button_base_icon_margin)}:host([icon-only]) .ui5-button-root{min-width:auto}:host([icon-only]) .ui5-button-text{display:none}.ui5-button-text{outline:none;position:relative;white-space:inherit;overflow:inherit;text-overflow:inherit}:host([has-icon]) .ui5-button-text{margin-left:var(--_ui5_button_base_icon_margin)}:host([disabled]){opacity:.5;pointer-events:none}:host([focused]){outline:var(--_ui5_button_outline);outline-offset:var(--_ui5_button_outline_offset)}.ui5-button-root::-moz-focus-inner{border:0}bdi{display:block;white-space:inherit;overflow:inherit;text-overflow:inherit}:host([active]:not([disabled])){background-image:none;background-color:var(--sapButton_Active_Background);border-color:var(--_ui5_button_active_border_color);color:var(--sapButton_Active_TextColor);text-shadow:none}:host([active]){outline-color:var(--sapContent_ContrastFocusColor)}:host([design=Positive]){background-color:var(--sapButton_Accept_Background);border-color:var(--_ui5_button_positive_border_color);color:var(--sapButton_Accept_TextColor);text-shadow:var(--_ui5_button_text_shadow)}:host([design=Positive]:hover){background-color:var(--sapButton_Accept_Hover_Background);border-color:var(--_ui5_button_positive_border_hover_color)}:host([design=Positive][active]){background-color:var(--sapButton_Accept_Active_Background);border-color:var(--_ui5_button_positive_border_active_color);color:var(--sapButton_Active_TextColor);text-shadow:none}:host([design=Positive][focused]){outline-color:var(--_ui5_button_positive_border_focus_hover_color);border-color:var(--_ui5_button_positive_focus_border_color)}:host([design=Positive][active][focused]){outline-color:var(--sapContent_ContrastFocusColor)}:host([design=Negative]){background-color:var(--sapButton_Reject_Background);border-color:var(--sapButton_Reject_BorderColor);color:var(--sapButton_Reject_TextColor);text-shadow:var(--_ui5_button_text_shadow)}:host([design=Negative]:hover){background-color:var(--sapButton_Reject_Hover_Background);border-color:var(--sapButton_Reject_Hover_BorderColor)}:host([design=Negative][focused]){border-color:var(--_ui5_button_negative_focus_border_color);outline-color:var(--_ui5_button_positive_border_focus_hover_color)}:host([design=Negative][active]){background-color:var(--sapButton_Reject_Active_Background);border-color:var(--_ui5_button_negative_active_border_color);color:var(--sapButton_Active_TextColor);text-shadow:none}:host([design=Negative][active][focused]){outline-color:var(--sapContent_ContrastFocusColor)}:host([design=Emphasized]){background-color:var(--sapButton_Emphasized_Background);border-color:var(--sapButton_Emphasized_BorderColor);color:var(--sapButton_Emphasized_TextColor);text-shadow:0 0 .125rem var(--sapButton_Emphasized_TextShadow);font-weight:var(--_ui5_button_emphasized_font_weight)}:host([design=Emphasized]:not([active]):hover){background-color:var(--sapButton_Emphasized_Hover_Background);border-color:var(--sapButton_Emphasized_Hover_BorderColor)}:host([design=Empasized][active]){background-color:var(--sapButton_Emphasized_Active_Background);border-color:var(--sapButton_Emphasized_Active_BorderColor);color:var(--sapButton_Active_TextColor);text-shadow:none}:host([design=Emphasized][focused]){outline-color:var(--sapContent_ContrastFocusColor);border-color:var(--_ui5_button_emphasized_focused_border_color)}:host([design=Transparent]){background-color:var(--sapButton_Lite_Background);color:var(--sapButton_Lite_TextColor);text-shadow:var(--_ui5_button_text_shadow);border-color:var(--_ui5_button_transparent_border_color)}:host([design=Transparent]):hover{background-color:var(--sapButton_Lite_Hover_Background)}:host([design=Transparent][active]){background-color:var(--sapButton_Active_Background);color:var(--sapButton_Active_TextColor);text-shadow:none}:host([design=Transparent]:not([active]):hover){border-color:var(--_ui5_button_transparent_hover_border_color)}ui5-button[focused]{outline:none}ui5-button[focused] .ui5-button-root{position:relative}ui5-button[focused] .ui5-button-root:after{content:\\\"\\\";position:absolute;border-width:1px;border-style:dotted;border-color:var(--_ui5_button_focus_color);top:var(--_ui5_button_focus_offset);bottom:var(--_ui5_button_focus_offset);left:var(--_ui5_button_focus_offset);right:var(--_ui5_button_focus_offset)}ui5-button[active] .ui5-button-root:after{border-color:var(--sapContent_ContrastFocusColor)}ui5-button[design=Positive][focused] .ui5-button-root:after{border-color:var(--_ui5_button_positive_border_focus_hover_color)}ui5-button[design=Positive][active][focused] .ui5-button-root:after{border-color:var(--sapContent_ContrastFocusColor)}ui5-button[design=Negative][focused] .ui5-button-root:after{border-color:var(--_ui5_button_positive_border_focus_hover_color)}ui5-button[design=Negative][active][focused] .ui5-button-root:after{border-color:var(--sapContent_ContrastFocusColor)}ui5-button[design=Emphasized][focused] .ui5-button-root:after{border-color:var(--sapContent_ContrastFocusColor)}ui5-button ui5-icon.ui5-button-icon{height:1rem;top:0}\";","import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport { isSpace, isEnter } from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport { getRTL } from \"@ui5/webcomponents-base/dist/config/RTL.js\";\nimport { getFeature } from \"@ui5/webcomponents-base/dist/FeaturesRegistry.js\";\nimport { fetchI18nBundle, getI18nBundle } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport findNodeOwner from \"@ui5/webcomponents-base/dist/util/findNodeOwner.js\";\nimport ButtonDesign from \"./types/ButtonDesign.js\";\nimport ButtonTemplate from \"./generated/templates/ButtonTemplate.lit.js\";\nimport Icon from \"./Icon.js\";\n\nimport { BUTTON_ARIA_TYPE_ACCEPT, BUTTON_ARIA_TYPE_REJECT, BUTTON_ARIA_TYPE_EMPHASIZED } from \"./generated/i18n/i18n-defaults.js\";\n\n// Styles\nimport buttonCss from \"./generated/themes/Button.css.js\";\n\nlet isGlobalHandlerAttached = false;\nlet activeButton = null;\n\n/**\n * @public\n */\nconst metadata = {\n\ttag: \"ui5-button\",\n\tproperties: /** @lends sap.ui.webcomponents.main.Button.prototype */ {\n\n\t\t/**\n\t\t * Defines the ui5-button design.\n\t\t *

\n\t\t * Note: Available options are \"Default\", \"Emphasized\", \"Positive\",\n\t\t * \"Negative\", and \"Transparent\".\n\t\t *\n\t\t * @type {ButtonDesign}\n\t\t * @defaultvalue \"Default\"\n\t\t * @public\n\t\t */\n\t\tdesign: {\n\t\t\ttype: ButtonDesign,\n\t\t\tdefaultValue: ButtonDesign.Default,\n\t\t},\n\n\t\t/**\n\t\t * Defines whether the ui5-button is disabled\n\t\t * (default is set to false).\n\t\t * A disabled ui5-button can't be pressed or\n\t\t * focused, and it is not in the tab chain.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @defaultvalue false\n\t\t * @public\n\t\t */\n\t\tdisabled: {\n\t\t\ttype: Boolean,\n\t\t},\n\n\t\t/**\n\t\t * Defines the icon to be displayed as graphical element within the ui5-button.\n\t\t * The SAP-icons font provides numerous options.\n\t\t *

\n\t\t * Example:\n\t\t *
\n\t\t *
ui5-button icon=\"palette\"
\n\t\t *\n\t\t * See all the available icons in the Icon Explorer.\n\t\t *\n\t\t * @type {string}\n\t\t * @defaultvalue \"\"\n\t\t * @public\n\t\t */\n\t\ticon: {\n\t\t\ttype: String,\n\t\t},\n\n\t\t/**\n\t\t * Defines whether the icon should be displayed after the ui5-button text.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @defaultvalue false\n\t\t * @public\n\t\t */\n\t\ticonEnd: {\n\t\t\ttype: Boolean,\n\t\t},\n\n\t\t/**\n\t\t * When set to true, the ui5-button will\n\t\t * automatically submit the nearest form element upon press.\n\t\t *

\n\t\t * Important: For the submits property to have effect, you must add the following import to your project:\n\t\t * import \"@ui5/webcomponents/dist/features/InputElementsFormSupport.js\";\n\t\t *\n\t\t * @type {boolean}\n\t\t * @defaultvalue false\n\t\t * @public\n\t\t */\n\t\tsubmits: {\n\t\t\ttype: Boolean,\n\t\t},\n\n\t\t/**\n\t\t * Used to switch the active state (pressed or not) of the ui5-button.\n\t\t * @private\n\t\t */\n\t\tactive: {\n\t\t\ttype: Boolean,\n\t\t},\n\n\t\t/**\n\t\t * Defines if a content has been added to the default slot\n\t\t * @private\n\t\t */\n\t\ticonOnly: {\n\t\t\ttype: Boolean,\n\t\t},\n\n\t\t/**\n\t\t * Indicates if the elements is on focus\n\t\t * @private\n\t\t */\n\t\tfocused: {\n\t\t\ttype: Boolean,\n\t\t},\n\n\t\t/**\n\t\t * Indicates if the elements has a slotted icon\n\t\t * @private\n\t\t */\n\t\thasIcon: {\n\t\t\ttype: Boolean,\n\t\t},\n\n\t\t/**\n\t\t * Defines the aria-label attribute for the button\n\t\t * @type {String}\n\t\t * @defaultvalue: \"\"\n\t\t * @private\n\t\t * @since 1.0.0-rc.7\n\t\t */\n\t\tariaLabel: {\n\t\t\ttype: String,\n\t\t\tdefaultValue: undefined,\n\t\t},\n\n\t\t/**\n\t\t * Receives id(or many ids) of the elements that label the button\n\t\t * @type {String}\n\t\t * @defaultvalue \"\"\n\t\t * @private\n\t\t * @since 1.0.0-rc.7\n\t\t */\n\t\tariaLabelledby: {\n\t\t\ttype: String,\n\t\t\tdefaultValue: \"\",\n\t\t},\n\n\t\t/**\n\t\t * Indicates if the element if focusable\n\t\t * @private\n\t\t */\n\t\tnonFocusable: {\n\t\t\ttype: Boolean,\n\t\t},\n\n\t\t_iconSettings: {\n\t\t\ttype: Object,\n\t\t},\n\n\t\t/**\n\t\t * Defines the tabIndex of the component.\n\t\t * @private\n\t\t */\n\t\t_tabIndex: {\n\t\t\ttype: String,\n\t\t\tdefaultValue: \"0\",\n\t\t\tnoAttribute: true,\n\t\t},\n\t},\n\tmanagedSlots: true,\n\tslots: /** @lends sap.ui.webcomponents.main.Button.prototype */ {\n\t\t/**\n\t\t * Defines the text of the ui5-button.\n\t\t *

\n\t\t * Note: Аlthough this slot accepts HTML Elements, it is strongly recommended that you only use text in order to preserve the intended design.\n\t\t *\n\t\t * @type {Node[]}\n\t\t * @slot\n\t\t * @public\n\t\t */\n\t\t\"default\": {\n\t\t\ttype: Node,\n\t\t},\n\t},\n\tevents: /** @lends sap.ui.webcomponents.main.Button.prototype */ {\n\n\t\t/**\n\t\t * Fired when the ui5-button is activated either with a\n\t\t * mouse/tap or by using the Enter or Space key.\n\t\t *

\n\t\t * Note: The event will not be fired if the disabled\n\t\t * property is set to true.\n\t\t *\n\t\t * @event\n\t\t * @public\n\t\t */\n\t\tclick: {},\n\t},\n};\n\n/**\n * @class\n *\n *

Overview

\n *\n * The ui5-button component represents a simple push button.\n * It enables users to trigger actions by clicking or tapping the ui5-button, or by pressing\n * certain keyboard keys, such as Enter.\n *\n *\n *

Usage

\n *\n * For the ui5-button UI, you can define text, icon, or both. You can also specify\n * whether the text or the icon is displayed first.\n *

\n * You can choose from a set of predefined types that offer different\n * styling to correspond to the triggered action.\n *

\n * You can set the ui5-button as enabled or disabled. An enabled\n * ui5-button can be pressed by clicking or tapping it. The button changes\n * its style to provide visual feedback to the user that it is pressed or hovered over with\n * the mouse cursor. A disabled ui5-button appears inactive and cannot be pressed.\n *\n *

ES6 Module Import

\n *\n * import \"@ui5/webcomponents/dist/Button\";\n *\n * @constructor\n * @author SAP SE\n * @alias sap.ui.webcomponents.main.Button\n * @extends UI5Element\n * @tagname ui5-button\n * @public\n */\nclass Button extends UI5Element {\n\tstatic get metadata() {\n\t\treturn metadata;\n\t}\n\n\tstatic get styles() {\n\t\treturn buttonCss;\n\t}\n\n\tstatic get render() {\n\t\treturn litRender;\n\t}\n\n\tstatic get template() {\n\t\treturn ButtonTemplate;\n\t}\n\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis._deactivate = () => {\n\t\t\tif (activeButton) {\n\t\t\t\tactiveButton.active = false;\n\t\t\t}\n\t\t};\n\n\t\tif (!isGlobalHandlerAttached) {\n\t\t\tdocument.addEventListener(\"mouseup\", this._deactivate);\n\n\t\t\tisGlobalHandlerAttached = true;\n\t\t}\n\n\t\tthis.i18nBundle = getI18nBundle(\"@ui5/webcomponents\");\n\t}\n\n\tonBeforeRendering() {\n\t\tconst FormSupport = getFeature(\"FormSupport\");\n\t\tif (this.submits && !FormSupport) {\n\t\t\tconsole.warn(`In order for the \"submits\" property to have effect, you should also: import \"@ui5/webcomponents/dist/features/InputElementsFormSupport.js\";`); // eslint-disable-line\n\t\t}\n\n\t\tthis.iconOnly = !this.childNodes.length;\n\t\tthis.hasIcon = !!this.icon;\n\t}\n\n\t_onclick(event) {\n\t\tevent.isMarked = \"button\";\n\t\tconst FormSupport = getFeature(\"FormSupport\");\n\t\tif (FormSupport) {\n\t\t\tFormSupport.triggerFormSubmit(this);\n\t\t}\n\t}\n\n\t_onmousedown(event) {\n\t\tevent.isMarked = \"button\";\n\t\tthis.active = true;\n\t\tactiveButton = this; // eslint-disable-line\n\t}\n\n\t_onmouseup(event) {\n\t\tevent.isMarked = \"button\";\n\t}\n\n\t_onkeydown(event) {\n\t\tif (isSpace(event) || isEnter(event)) {\n\t\t\tthis.active = true;\n\t\t}\n\t}\n\n\t_onkeyup(event) {\n\t\tif (isSpace(event) || isEnter(event)) {\n\t\t\tthis.active = false;\n\t\t}\n\t}\n\n\t_onfocusout(_event) {\n\t\tthis.active = false;\n\t\tthis.focused = false;\n\t}\n\n\t_onfocusin() {\n\t\tthis.focused = true;\n\t}\n\n\tget rtl() {\n\t\treturn getRTL() ? \"rtl\" : undefined;\n\t}\n\n\tget hasButtonType() {\n\t\treturn this.design !== ButtonDesign.Default && this.design !== ButtonDesign.Transparent;\n\t}\n\n\tget accInfo() {\n\t\treturn {\n\t\t\t\"ariaExpanded\": this._buttonAccInfo && this._buttonAccInfo.ariaExpanded,\n\t\t\t\"ariaControls\": this._buttonAccInfo && this._buttonAccInfo.ariaControls,\n\t\t\t\"title\": this._buttonAccInfo && this._buttonAccInfo.title,\n\t\t};\n\t}\n\n\tget ariaLabelText() {\n\t\tif (!this.ariaLabelledby) {\n\t\t\tif (this.ariaLabel) {\n\t\t\t\treturn this.ariaLabel;\n\t\t\t}\n\n\t\t\treturn undefined;\n\t\t}\n\n\t\tconst ids = this.ariaLabelledby.split(\" \");\n\t\tconst owner = findNodeOwner(this);\n\t\tlet result = \"\";\n\n\t\tids.forEach((elementId, index) => {\n\t\t\tconst element = owner.querySelector(`[id='${elementId}']`);\n\t\t\tresult += `${element ? element.textContent : \"\"}`;\n\n\t\t\tif (index < ids.length - 1) {\n\t\t\t\tresult += \" \";\n\t\t\t}\n\t\t});\n\n\t\treturn result;\n\t}\n\n\tstatic typeTextMappings() {\n\t\treturn {\n\t\t\t\"Positive\": BUTTON_ARIA_TYPE_ACCEPT,\n\t\t\t\"Negative\": BUTTON_ARIA_TYPE_REJECT,\n\t\t\t\"Emphasized\": BUTTON_ARIA_TYPE_EMPHASIZED,\n\t\t};\n\t}\n\n\tget buttonTypeText() {\n\t\treturn this.i18nBundle.getText(Button.typeTextMappings()[this.design]);\n\t}\n\n\tget tabIndexValue() {\n\t\tconst tabindex = this.getAttribute(\"tabindex\");\n\n\t\tif (tabindex) {\n\t\t\treturn tabindex;\n\t\t}\n\n\t\treturn this.nonFocusable ? \"-1\" : this._tabIndex;\n\t}\n\n\tstatic async onDefine() {\n\t\tawait Promise.all([\n\t\t\tIcon.define(),\n\t\t\tfetchI18nBundle(\"@ui5/webcomponents\"),\n\t\t]);\n\t}\n}\n\nButton.define();\n\nexport default Button;\n","import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\n\n/**\n* @public\n*/\nconst metadata = {\n\ttag: \"ui5-option\",\n\tproperties: /** @lends sap.ui.webcomponents.main.Option.prototype */ {\n\n\t\t/**\n\t\t * Defines the selected state of the ui5-option.\n\t\t * @type {boolean}\n\t\t * @defaultvalue false\n\t\t * @public\n\t\t */\n\t\tselected: {\n\t\t\ttype: Boolean,\n\t\t},\n\n\t\t/**\n\t\t * Defines the icon source URI.\n\t\t *

\n\t\t * Note:\n\t\t * SAP-icons font provides numerous buil-in icons. To find all the available icons, see the\n\t\t * Icon Explorer.\n\t\t *\n\t\t * @type {string}\n\t\t * @public\n\t\t */\n\t\ticon: {\n\t\t\ttype: String,\n\t\t\tdefaultValue: null,\n\t\t},\n\n\t\t/**\n\t\t * Defines the value of the ui5-select inside an HTML Form element when this ui5-option is selected.\n\t\t * For more information on HTML Form support, see the name property of ui5-select.\n\t\t *\n\t\t * @type {string}\n\t\t * @public\n\t\t */\n\t\tvalue: {\n\t\t\ttype: String,\n\t\t},\n\t},\n\n\tevents: /** @lends sap.ui.webcomponents.main.Option.prototype */ {},\n};\n\n/**\n * @class\n *\n *

Overview

\n *\n * The ui5-option component defines the content of an opton in the ui5-select.\n *\n * @constructor\n * @author SAP SE\n * @alias sap.ui.webcomponents.main.Option\n * @extends sap.ui.webcomponents.base.UI5Element\n * @tagname ui5-option\n * @public\n */\nclass Option extends UI5Element {\n\tstatic get metadata() {\n\t\treturn metadata;\n\t}\n}\n\nOption.define();\n\nexport default Option;\n","import DataType from \"./DataType.js\";\n\n/**\n * Different states.\n */\nconst ValueStates = {\n\tNone: \"None\",\n\tSuccess: \"Success\",\n\tWarning: \"Warning\",\n\tError: \"Error\",\n\tInformation: \"Information\",\n};\n\nclass ValueState extends DataType {\n\tstatic isValid(value) {\n\t\treturn !!ValueStates[value];\n\t}\n}\n\nValueState.generataTypeAcessors(ValueStates);\n\nexport default ValueState;\n","import { registerIcon } from \"@ui5/webcomponents-base/dist/SVGIconRegistry.js\";\n\nconst name = \"slim-arrow-down\";\nconst pathData = \"M420.5 187q11-12 23 0 5 5 5 11t-5 11l-165 165q-10 9-23 9t-22-9l-166-165q-5-5-5-11.5t5-11.5 11.5-5 11.5 5l160 160q5 6 11 0l159-159z\";\n\nregisterIcon(name, { pathData });\n\nexport default { pathData };","import { registerIcon } from \"@ui5/webcomponents-base/dist/SVGIconRegistry.js\";\n\nconst name = \"decline\";\nconst pathData = \"M425.25 109q5 5 5 11.5t-5 11.5l-124 124 124 125q11 11 0 22l-22 23q-12 11-23 0l-125-125-124 125q-5 5-11.5 5t-11.5-5l-22-23q-5-5-5-11t5-11l124-125-124-124q-5-5-5-11.5t5-11.5l22-23q12-11 23 0l124 125 125-125q11-11 23 0l22 23z\";\n\nregisterIcon(name, { pathData });\n\nexport default { pathData };","\n/* eslint no-unused-vars: 0 */\nimport ifDefined from '@ui5/webcomponents-base/dist/renderer/ifDefined.js';\nimport { html, svg, repeat, classMap, styleMap } from '@ui5/webcomponents-base/dist/renderer/LitRenderer.js';\nconst block0 = (context) => { return html``; };\n\nexport default block0;","import { registerThemeProperties } from \"@ui5/webcomponents-base/dist/asset-registries/Themes.js\";\n\nimport defaultThemeBase from \"@ui5/webcomponents-theme-base/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js\";\nimport defaultTheme from \"./sap_fiori_3/parameters-bundle.css.js\";\n\nregisterThemeProperties(\"@ui5/webcomponents-theme-base\", \"sap_fiori_3\", defaultThemeBase);\nregisterThemeProperties(\"@ui5/webcomponents\", \"sap_fiori_3\", defaultTheme);\nexport default \":host(:not([hidden])){display:inline-flex}:host{max-width:100%;color:var(--sapContent_LabelColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;cursor:text}:host(:not([wrap])) .ui5-label-root{width:100%;font-weight:inherit;display:inline-block;white-space:nowrap;cursor:inherit;overflow:hidden}:host(:not([wrap])) .ui5-label-text-wrapper{text-overflow:ellipsis;overflow:hidden;display:inline-block;vertical-align:top;max-width:100%}:host(:not([wrap])[required][show-colon]) .ui5-label-text-wrapper{max-width:calc(100% - .725rem)}:host(:not([wrap])[required]) .ui5-label-text-wrapper{max-width:calc(100% - .475rem)}:host(:not([wrap])[show-colon]) .ui5-label-text-wrapper{max-width:calc(100% - .2rem)}:host([show-colon]) .ui5-label-required-colon:before{content:\\\":\\\"}:host([required]) .ui5-label-required-colon:after{content:\\\"*\\\";color:var(--sapField_RequiredColor);font-size:1.25rem;font-weight:700;position:relative;vertical-align:middle;line-height:0}\";","import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\n\n// Template\nimport LabelTemplate from \"./generated/templates/LabelTemplate.lit.js\";\n\n// Styles\nimport labelCss from \"./generated/themes/Label.css.js\";\n\n/**\n * @public\n */\nconst metadata = {\n\ttag: \"ui5-label\",\n\tproperties: /** @lends sap.ui.webcomponents.main.Label.prototype */ {\n\n\t\t/**\n\t\t * Defines whether an asterisk character is added to the ui5-label text.\n\t\t *

\n\t\t * Note: Usually indicates that user input is required.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @defaultvalue false\n\t\t * @public\n\t\t */\n\t\trequired: {\n\t\t\ttype: Boolean,\n\t\t},\n\n\t\t/**\n\t\t * Determines whether the ui5-label should wrap, when there is not enough space.\n\t\t *

\n\t\t * Note: By default the text would truncate.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @defaultvalue false\n\t\t * @public\n\t\t */\n\t\twrap: {\n\t\t\ttype: Boolean,\n\t\t},\n\n\t\t/**\n\t\t * Defines whether semi-colon is added to the ui5-label text.\n\t\t *

\n\t\t * Note: Usually used in forms.\n\t\t * @type {boolean}\n\t\t * @defaultvalue false\n\t\t * @public\n\t\t */\n\n\t\tshowColon: {\n\t\t\ttype: Boolean,\n\t\t},\n\n\t\t/**\n\t\t * Defines the labeled input by providing its ID.\n\t\t *

\n\t\t * Note: Can be used with both ui5-input and native input.\n\t\t *\n\t\t * @type {string}\n\t\t * @defaultvalue \"\"\n\t\t * @public\n\t\t */\n\t\t\"for\": {\n\t\t\ttype: String,\n\t\t},\n\t},\n\tslots: /** @lends sap.ui.webcomponents.main.Label.prototype */ {\n\t\t/**\n\t\t * Defines the text of the ui5-label.\n\t\t *
Note: Аlthough this slot accepts HTML Elements, it is strongly recommended that you only use text in order to preserve the intended design.\n\t\t *\n\t\t * @type {Node[]}\n\t\t * @slot\n\t\t * @public\n\t\t */\n\t\t\"default\": {\n\t\t\ttype: Node,\n\t\t},\n\t},\n};\n\n/**\n * @class\n *\n *

Overview

\n *\n * The ui5-label is a component used to represent a label,\n * providing valuable information to the user.\n * Usually it is placed next to a value holder, such as a text field.\n * It informs the user about what data is displayed or expected in the value holder.\n *

\n * The ui5-label appearance can be influenced by properties,\n * such as required and wrap.\n * The appearance of the Label can be configured in a limited way by using the design property.\n * For a broader choice of designs, you can use custom styles.\n *\n *

ES6 Module Import

\n *\n * import \"@ui5/webcomponents/dist/Label\";\n *\n * @constructor\n * @author SAP SE\n * @alias sap.ui.webcomponents.main.Label\n * @extends sap.ui.webcomponents.base.UI5Element\n * @tagname ui5-label\n * @public\n */\nclass Label extends UI5Element {\n\tstatic get metadata() {\n\t\treturn metadata;\n\t}\n\n\tstatic get render() {\n\t\treturn litRender;\n\t}\n\n\tstatic get template() {\n\t\treturn LabelTemplate;\n\t}\n\n\tstatic get styles() {\n\t\treturn labelCss;\n\t}\n\n\t_onclick() {\n\t\tconst elementToFocus = document.getElementById(this.for);\n\t\tif (elementToFocus) {\n\t\t\telementToFocus.focus();\n\t\t}\n\t}\n}\n\nLabel.define();\n\nexport default Label;\n","/**\n * Device and Feature Detection API: Provides information about the used browser / device and cross platform support for certain events\n * like media queries, orientation change or resizing.\n *\n * This API is independent from any other part of the UI5 framework. This allows it to be loaded beforehand, if it is needed, to create the UI5 bootstrap\n * dynamically depending on the capabilities of the browser or device.\n *\n * @namespace\n * @name Device\n */\n\nconst Device = {};\n\n//* ******* OS Detection ********\n\n/**\n * Contains information about the operating system of the Device.\n * @name Device.os\n */\n\n/**\n * Enumeration containing the names of known operating systems.\n * @name Device.os.OS\n */\n\n/**\n * The name of the operating system.\n * @name Device.os.name\n * @type String\n */\n\n/**\n * The version of the operating system as string. Might be empty if no version can be determined.\n * @name Device.os.versionStr\n * @type String\n */\n\n/**\n * The version of the operating system as float. Might be -1 if no version can be determined.\n * @name Device.os.version\n * @type float\n */\n\n/**\n * If this flag is set to true, a Windows operating system is used.\n * @name Device.os.windows\n * @type boolean\n */\n\n/**\n * If this flag is set to true, a Mac operating system is used.\n * @name Device.os.macintosh\n * @type boolean\n */\n\n/*\n * If this flag is set to true, an iOS operating system is used.\n * @name Device.os.ios\n * @type boolean\n */\n\n/**\n * If this flag is set to true, an Android operating system is used.\n * @name Device.os.android\n * @type boolean\n */\n\n/*\n * Windows operating system name.\n * @see Device.os.name\n * @name Device.os.OS.WINDOWS\n */\n\n/**\n * MAC operating system name.\n * @see Device.os.name\n * @name Device.os.OS.MACINTOSH\n */\n\n/**\n * iOS operating system name.\n * @see Device.os.name\n * @name Device.os.OS.IOS\n */\n\n/**\n * Android operating system name.\n * @see Device.os.name\n * @name Device.os.OS.ANDROID\n */\n\nconst OS = {\n\t\"WINDOWS\": \"win\",\n\t\"MACINTOSH\": \"mac\",\n\t\"IOS\": \"iOS\",\n\t\"ANDROID\": \"Android\",\n};\n\nconst _getMobileOS = () => {\n\tconst userAgent = navigator.userAgent;\n\n\tlet rPlatform, // regular expression for platform\n\t\taMatches;\n\n\t// iOS, Android\n\trPlatform = /\\(([a-zA-Z ]+);\\s(?:[U]?[;]?)([\\D]+)((?:[\\d._]*))(?:.*[)][^\\d]*)([\\d.]*)\\s/;\n\taMatches = userAgent.match(rPlatform);\n\n\tif (aMatches) {\n\t\tconst rAppleDevices = /iPhone|iPad|iPod/;\n\n\t\tif (aMatches[0].match(rAppleDevices)) {\n\t\t\taMatches[3] = aMatches[3].replace(/_/g, \".\");\n\n\t\t\treturn ({\n\t\t\t\t\"name\": OS.IOS,\n\t\t\t\t\"versionStr\": aMatches[3],\n\t\t\t});\n\t\t}\n\n\t\tif (aMatches[2].match(/Android/)) {\n\t\t\taMatches[2] = aMatches[2].replace(/\\s/g, \"\");\n\t\t\treturn ({\n\t\t\t\t\"name\": OS.ANDROID,\n\t\t\t\t\"versionStr\": aMatches[3],\n\t\t\t});\n\t\t}\n\t}\n\n\t// Firefox on Android\n\trPlatform = /\\((Android)[\\s]?([\\d][.\\d]*)?;.*Firefox\\/[\\d][.\\d]*/;\n\taMatches = userAgent.match(rPlatform);\n\tif (aMatches) {\n\t\treturn ({\n\t\t\t\"name\": OS.ANDROID,\n\t\t\t\"versionStr\": aMatches.length === 3 ? aMatches[2] : \"\",\n\t\t});\n\t}\n};\n\nconst _getDesktopOS = () => {\n\tconst sPlatform = navigator.platform;\n\tif (sPlatform.indexOf(\"Win\") !== -1) {\n\t\tconst rVersion = /Windows NT (\\d+).(\\d)/i; // userAgent since windows 10: Windows NT 10[...]\n\t\tconst uaResult = navigator.userAgent.match(rVersion);\n\n\t\treturn {\n\t\t\t\"name\": OS.WINDOWS,\n\t\t\t\"versionStr\": uaResult[1],\n\t\t};\n\t}\n\n\tif (sPlatform.indexOf(\"Mac\") !== -1) {\n\t\treturn {\n\t\t\t\"name\": OS.MACINTOSH,\n\t\t\t\"versionStr\": \"\",\n\t\t};\n\t}\n\n\treturn null;\n};\n\nconst _getOS = () => {\n\treturn _getMobileOS() || _getDesktopOS();\n};\n\nconst _setOS = () => {\n\tif (Device.os) {\n\t\treturn;\n\t}\n\n\tDevice.os = _getOS() || {};\n\tDevice.os.OS = OS;\n\tDevice.os.version = Device.os.versionStr ? parseFloat(Device.os.versionStr) : -1;\n\n\tif (Device.os.name) {\n\t\tObject.keys(OS).forEach(name => {\n\t\t\tif (OS[name] === Device.os.name) {\n\t\t\t\tDevice.os[name.toLowerCase()] = true;\n\t\t\t}\n\t\t});\n\t}\n};\n\nconst getOS = () => {\n\tif (!Device.os) {\n\t\t_setOS();\n\t}\n\n\treturn Device.os;\n};\n\nconst isAndroid = () => {\n\tif (!Device.os) {\n\t\t_setOS();\n\t}\n\n\treturn !!Device.os.android;\n};\n\n//* ******* Browser Detection ********\n\n/**\n * Contains information about the used browser.\n * @name Device.browser\n */\n\n/**\n * Enumeration containing the names of known browsers.\n * @name Device.browser.BROWSER\n *\n * The name of the browser.\n * @name Device.browser.name\n * @type String\n */\n\n/**\n * The version of the browser as string. Might be empty if no version can be determined.\n * @name Device.browser.versionStr\n * @type String\n */\n\n/**\n * The version of the browser as float. Might be -1 if no version can be determined.\n * @name Device.browser.version\n * @type float\n */\n\n/**\n * If this flag is set to true, the mobile variant of the browser is used or\n * a tablet or phone device is detected. This information might not be available for all browsers.\n * @name Device.browser.mobile\n * @type boolean\n */\n\n/**\n * If this flag is set to true, the Microsoft Internet Explorer browser is used.\n * @name Device.browser.internet_explorer\n * @type boolean\n * @deprecated since 1.20, use {@link Device.browser.msie} instead.\n */\n\n/**\n * If this flag is set to true, the Microsoft Internet Explorer browser is used.\n * @name Device.browser.msie\n * @type boolean\n */\n\n/**\n * If this flag is set to true, the Microsoft Edge browser is used.\n * @name Device.browser.edge\n * @type boolean\n */\n\n/**\n * If this flag is set to true, the Mozilla Firefox browser is used.\n * @name Device.browser.firefox\n */\n\n/**\n * If this flag is set to true, the Google Chrome browser is used.\n * @name Device.browser.chrome\n * @type boolean\n *\n * If this flag is set to true, the Apple Safari browser is used.\n *\n * Note:\n * This flag is also true when the standalone (fullscreen) mode or webview is used on iOS devices.\n * Please also note the flags {@link Device.browser.fullscreen} and {@link Device.browser.webview}.\n *\n * @name Device.browser.safari\n * @type boolean\n */\n\n/**\n * If this flag is set to true, a browser featuring a Webkit engine is used.\n *\n * Note:\n * This flag is also true when the used browser was based on the Webkit engine, but\n * uses another rendering engine in the meantime. For example the Chrome browser started from version 28 and above\n * uses the Blink rendering engine.\n *\n * @name Device.browser.webkit\n * @type boolean\n */\n\n/**\n * If this flag is set to true, the Safari browser runs in standalone fullscreen mode on iOS.\n *\n * Note: This flag is only available if the Safari browser was detected. Furthermore, if this mode is detected,\n * technically not a standard Safari is used. There might be slight differences in behavior and detection, e.g.\n * the availability of {@link Device.browser.version}.\n *\n * @name Device.browser.fullscreen\n * @type boolean\n */\n\n/**\n * If this flag is set to true, the Safari browser runs in webview mode on iOS.\n *\n * Note: This flag is only available if the Safari browser was detected. Furthermore, if this mode is detected,\n * technically not a standard Safari is used. There might be slight differences in behavior and detection, e.g.\n * the availability of {@link Device.browser.version}.\n *\n * @name Device.browser.webview\n * @type boolean\n */\n\n/**\n * If this flag is set to true, the Phantom JS browser is used.\n * @name Device.browser.phantomJS\n * @type boolean\n */\n\n/**\n * The version of the used Webkit engine, if available.\n * @name Device.browser.webkitVersion\n * @type String\n */\n\n/**\n * If this flag is set to true, a browser featuring a Mozilla engine is used.\n * @name Device.browser.mozilla\n * @type boolean\n */\n\n/**\n * Internet Explorer browser name.\n * @name Device.browser.BROWSER.INTERNET_EXPLORER\n */\n\n/**\n * Edge browser name.\n * @name Device.browser.BROWSER.EDGE\n */\n\n/**\n * Firefox browser name.\n * @name Device.browser.BROWSER.FIREFOX\n */\n\n/**\n * Chrome browser name.\n * @name Device.browser.BROWSER.CHROME\n */\n\n/**\n * Safari browser name.\n * @name Device.browser.BROWSER.SAFARI\n */\n\n/**\n * Android stock browser name.\n * @name Device.browser.BROWSER.ANDROID\n */\n\nconst BROWSER = {\n\t\"INTERNET_EXPLORER\": \"ie\",\n\t\"EDGE\": \"ed\",\n\t\"FIREFOX\": \"ff\",\n\t\"CHROME\": \"cr\",\n\t\"SAFARI\": \"sf\",\n\t\"ANDROID\": \"an\",\n};\n\n/*!\n* Taken from jQuery JavaScript Library v1.7.1\n* http://jquery.com/\n*\n* Copyright 2011, John Resig\n* Dual licensed under the MIT or GPL Version 2 licenses.\n* http://jquery.org/license\n*\n* Includes Sizzle.js\n* http://sizzlejs.com/\n* Copyright 2011, The Dojo Foundation\n* Released under the MIT, BSD, and GPL Licenses.\n*\n* Date: Mon Nov 21 21:11:03 2011 -0500\n*/\nconst _calcBrowser = () => {\n\tconst sUserAgent = navigator.userAgent.toLowerCase();\n\n\tconst rwebkit = /(webkit)[ /]([\\w.]+)/;\n\tconst rmsie = /(msie) ([\\w.]+)/;\n\tconst rmsie11 = /(trident)\\/[\\w.]+;.*rv:([\\w.]+)/;\n\tconst redge = /(edge)[ /]([\\w.]+)/;\n\tconst rmozilla = /(mozilla)(?:.*? rv:([\\w.]+))?/;\n\n\t// WinPhone IE11 and MS Edge userAgents contain \"WebKit\" and \"Mozilla\" and therefore must be checked first\n\tconst browserMatch = redge.exec(sUserAgent)\n\t\t|| rmsie11.exec(sUserAgent)\n\t\t|| rwebkit.exec(sUserAgent)\n\t\t|| rmsie.exec(sUserAgent)\n\t\t|| (sUserAgent.indexOf(\"compatible\") < 0 && rmozilla.exec(sUserAgent)) || [];\n\n\tconst oRes = {\n\t\tbrowser: browserMatch[1] || \"\",\n\t\tversion: browserMatch[2] || \"0\",\n\t};\n\toRes[oRes.browser] = true;\n\treturn oRes;\n};\n\nconst _getBrowser = () => {\n\tconst oBrowser = _calcBrowser();\n\tconst sUserAgent = navigator.userAgent;\n\tconst oNavigator = window.navigator;\n\n\t// jQuery checks for user agent strings. We differentiate between browsers\n\tlet oExpMobile;\n\tlet oResult;\n\tlet fVersion;\n\n\t// Mozilla\n\tif (oBrowser.mozilla) {\n\t\toExpMobile = /Mobile/;\n\t\tif (sUserAgent.match(/Firefox\\/(\\d+\\.\\d+)/)) {\n\t\t\tfVersion = parseFloat(RegExp.$1);\n\t\t\toResult = {\n\t\t\t\tname: BROWSER.FIREFOX,\n\t\t\t\tversionStr: `${fVersion}`,\n\t\t\t\tversion: fVersion,\n\t\t\t\tmozilla: true,\n\t\t\t\tmobile: oExpMobile.test(sUserAgent),\n\t\t\t};\n\t\t} else {\n\t\t\t// unknown mozilla browser\n\t\t\toResult = {\n\t\t\t\tmobile: oExpMobile.test(sUserAgent),\n\t\t\t\tmozilla: true,\n\t\t\t\tversion: -1,\n\t\t\t};\n\t\t}\n\t} else if (oBrowser.webkit) {\n\t\t// webkit version is needed for calculation if the mobile android device is a tablet (calculation of other mobile devices work without)\n\t\tconst regExpWebkitVersion = sUserAgent.toLowerCase().match(/webkit[/]([\\d.]+)/);\n\t\tlet webkitVersion;\n\t\tif (regExpWebkitVersion) {\n\t\t\twebkitVersion = regExpWebkitVersion[1];\n\t\t}\n\t\toExpMobile = /Mobile/;\n\t\tconst aChromeMatch = sUserAgent.match(/(Chrome|CriOS)\\/(\\d+\\.\\d+).\\d+/);\n\t\tconst aFirefoxMatch = sUserAgent.match(/FxiOS\\/(\\d+\\.\\d+)/);\n\t\tconst aAndroidMatch = sUserAgent.match(/Android .+ Version\\/(\\d+\\.\\d+)/);\n\n\t\tif (aChromeMatch || aFirefoxMatch || aAndroidMatch) {\n\t\t\tlet sName,\n\t\t\t\tsVersion,\n\t\t\t\tbMobile;\n\n\t\t\tif (aChromeMatch) {\n\t\t\t\tsName = BROWSER.CHROME;\n\t\t\t\tbMobile = oExpMobile.test(sUserAgent);\n\t\t\t\tsVersion = parseFloat(aChromeMatch[2]);\n\t\t\t} else if (aFirefoxMatch) {\n\t\t\t\tsName = BROWSER.FIREFOX;\n\t\t\t\tbMobile = true;\n\t\t\t\tsVersion = parseFloat(aFirefoxMatch[1]);\n\t\t\t} else if (aAndroidMatch) {\n\t\t\t\tsName = BROWSER.ANDROID;\n\t\t\t\tbMobile = oExpMobile.test(sUserAgent);\n\t\t\t\tsVersion = parseFloat(aAndroidMatch[1]);\n\t\t\t}\n\n\t\t\toResult = {\n\t\t\t\tname: sName,\n\t\t\t\tmobile: bMobile,\n\t\t\t\tversionStr: `${sVersion}`,\n\t\t\t\tversion: sVersion,\n\t\t\t\twebkit: true,\n\t\t\t\twebkitVersion,\n\t\t\t};\n\t\t} else { // Safari might have an issue with sUserAgent.match(...); thus changing\n\t\t\tconst oExp = /(Version|PhantomJS)\\/(\\d+\\.\\d+).*Safari/;\n\t\t\tconst bStandalone = oNavigator.standalone;\n\t\t\tif (oExp.test(sUserAgent)) {\n\t\t\t\tconst aParts = oExp.exec(sUserAgent);\n\t\t\t\tfVersion = parseFloat(aParts[2]);\n\t\t\t\toResult = {\n\t\t\t\t\tname: BROWSER.SAFARI,\n\t\t\t\t\tversionStr: `${fVersion}`,\n\t\t\t\t\tfullscreen: false,\n\t\t\t\t\twebview: false,\n\t\t\t\t\tversion: fVersion,\n\t\t\t\t\tmobile: oExpMobile.test(sUserAgent),\n\t\t\t\t\twebkit: true,\n\t\t\t\t\twebkitVersion,\n\t\t\t\t\tphantomJS: aParts[1] === \"PhantomJS\",\n\t\t\t\t};\n\t\t\t} else if (/iPhone|iPad|iPod/.test(sUserAgent) && !(/CriOS/.test(sUserAgent)) && !(/FxiOS/.test(sUserAgent)) && (bStandalone === true || bStandalone === false)) {\n\t\t\t\t// WebView or Standalone mode on iOS\n\t\t\t\toResult = {\n\t\t\t\t\tname: BROWSER.SAFARI,\n\t\t\t\t\tversion: -1,\n\t\t\t\t\tfullscreen: bStandalone,\n\t\t\t\t\twebview: !bStandalone,\n\t\t\t\t\tmobile: oExpMobile.test(sUserAgent),\n\t\t\t\t\twebkit: true,\n\t\t\t\t\twebkitVersion,\n\t\t\t\t};\n\t\t\t} else { // other webkit based browser\n\t\t\t\toResult = {\n\t\t\t\t\tmobile: oExpMobile.test(sUserAgent),\n\t\t\t\t\twebkit: true,\n\t\t\t\t\twebkitVersion,\n\t\t\t\t\tversion: -1,\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\t} else if (oBrowser.msie || oBrowser.trident) {\n\t\tfVersion = parseFloat(oBrowser.version);\n\n\t\toResult = {\n\t\t\tname: BROWSER.INTERNET_EXPLORER,\n\t\t\tversionStr: `${fVersion}`,\n\t\t\tversion: fVersion,\n\t\t\tmsie: true,\n\t\t\tmobile: false,\n\t\t};\n\t} else if (oBrowser.edge) {\n\t\tfVersion = parseFloat(oBrowser.version);\n\t\toResult = {\n\t\t\tname: BROWSER.EDGE,\n\t\t\tversionStr: `${fVersion}`,\n\t\t\tversion: fVersion,\n\t\t\tedge: true,\n\t\t};\n\t} else {\n\t\toResult = {\n\t\t\tname: \"\",\n\t\t\tversionStr: \"\",\n\t\t\tversion: -1,\n\t\t\tmobile: false,\n\t\t};\n\t}\n\n\treturn oResult;\n};\n\nconst _setBrowser = () => {\n\tDevice.browser = _getBrowser();\n\tDevice.browser.BROWSER = BROWSER;\n\n\tif (Device.browser.name) {\n\t\tObject.keys(BROWSER).forEach(b => {\n\t\t\tif (BROWSER[b] === Device.browser.name) {\n\t\t\t\tDevice.browser[b.toLowerCase()] = true;\n\t\t\t}\n\t\t});\n\t}\n};\n\nconst getBrowser = () => {\n\tif (!Device.browser) {\n\t\t_setBrowser();\n\t}\n\treturn Device.browser;\n};\n\nconst isIE = () => {\n\tif (!Device.browser) {\n\t\t_setBrowser();\n\t}\n\treturn !!Device.browser.msie;\n};\n\nconst isEdge = () => {\n\tif (!Device.browser) {\n\t\t_setBrowser();\n\t}\n\treturn !!Device.browser.edge;\n};\n\nconst isChrome = () => {\n\tif (!Device.browser) {\n\t\t_setBrowser();\n\t}\n\treturn !!Device.browser.chrome;\n};\n\nconst isFF = () => {\n\tif (!Device.browser) {\n\t\t_setBrowser();\n\t}\n\treturn !!Device.browser.firefox;\n};\n\nconst isSafari = () => {\n\tif (!Device.browser) {\n\t\t_setBrowser();\n\t}\n\treturn !!Device.browser.safari;\n};\n\n//* ******* Support Detection ********\n\nconst _setSupport = () => {\n\tif (Device.support) {\n\t\treturn;\n\t}\n\n\tif (!Device.browser) {\n\t\t_setBrowser();\n\t}\n\n\tDevice.support = {};\n\tDevice.support.touch = !!((\"ontouchstart\" in window) || (navigator.maxTouchPoints > 0) || (window.DocumentTouch && document instanceof window.DocumentTouch));\n};\n\nconst supportTouch = () => {\n\tif (!Device.support) {\n\t\t_setSupport();\n\t}\n\n\treturn !!Device.support.touch;\n};\n\n//* ******* System Detection ********\n\n/**\n * Provides a basic categorization of the used device based on various indicators.\n *\n * Note: Depending on the capabilities of the device it is also possible that multiple flags are set to true.\n *\n * @namespace\n * @name Device.system\n */\n\n/**\n * If this flag is set to true, the device is recognized as a tablet.\n *\n * Note: This flag is also true for some browsers on desktop devices running on Windows 8 or higher.\n * Also see the documentation for {@link Device.system.combi} devices.\n * You can use the following logic to ensure that the current device is a tablet device:\n *\n *
\n * if(Device.system.tablet && !Device.system.desktop){\n *\t...tablet related commands...\n * }\n * 
\n *\n * @name Device.system.tablet\n * @type boolean\n */\n\n/**\n * If this flag is set to true, the device is recognized as a phone.\n *\n * @name Device.system.phone\n * @type boolean\n */\n\n/**\n * If this flag is set to true, the device is recognized as a desktop system.\n *\n * @name Device.system.desktop\n * @type boolean\n */\n\n/**\n * Indicates if the device is recognized as a combination of a desktop system and tablet.\n *\n * Note: This property is mainly for Microsoft Windows 8 (and following) devices where the mouse and touch event may be supported\n * natively by the browser being used. This property is set to true only when both mouse and touch event are natively supported.\n *\n * @name Device.system.combi\n * @type boolean\n */\n\n/**\n * @name Device.system.SYSTEMTYPE\n * Enumeration containing the names of known types of the devices.\n */\n\nconst SYSTEMTYPE = {\n\t\"TABLET\": \"tablet\",\n\t\"PHONE\": \"phone\",\n\t\"DESKTOP\": \"desktop\",\n\t\"COMBI\": \"combi\",\n};\n\nconst _isTablet = () => {\n\tconst sUserAgent = navigator.userAgent;\n\tif (Device.os.name === Device.os.OS.IOS) {\n\t\treturn /ipad/i.test(sUserAgent);\n\t}\n\t// in real mobile device\n\tif (supportTouch()) {\n\t\tif (Device.os.windows && Device.os.version >= 8) {\n\t\t\treturn true;\n\t\t}\n\n\t\tif (Device.browser.chrome && Device.os.android && Device.os.version >= 4.4) {\n\t\t\t// From Android version 4.4, WebView also uses Chrome as Kernel.\n\t\t\t// We can use the user agent pattern defined in Chrome to do phone/tablet detection\n\t\t\t// According to the information here: https://developer.chrome.com/multidevice/user-agent#chrome_for_android_user_agent,\n\t\t\t// the existence of \"Mobile\" indicates it's a phone. But because the crosswalk framework which is used in Fiori Client\n\t\t\t// inserts another \"Mobile\" to the user agent for both tablet and phone, we need to check whether \"Mobile Safari/\" exists.\n\t\t\treturn !/Mobile Safari\\/[.0-9]+/.test(sUserAgent);\n\t\t}\n\t\tlet densityFactor = window.devicePixelRatio ? window.devicePixelRatio : 1; // may be undefined in Windows Phone devices\n\t\t// On Android sometimes window.screen.width returns the logical CSS pixels, sometimes the physical device pixels;\n\t\t// Tests on multiple devices suggest this depends on the Webkit version.\n\t\t// The Webkit patch which changed the behavior was done here: https://bugs.webkit.org/show_bug.cgi?id=106460\n\t\t// Chrome 27 with Webkit 537.36 returns the logical pixels,\n\t\t// Chrome 18 with Webkit 535.19 returns the physical pixels.\n\t\t// The BlackBerry 10 browser with Webkit 537.10+ returns the physical pixels.\n\t\t// So it appears like somewhere above Webkit 537.10 we do not hve to divide by the devicePixelRatio anymore.\n\t\tif (Device.os.android && Device.browser.webkit && (parseFloat(Device.browser.webkitVersion) > 537.10)) {\n\t\t\tdensityFactor = 1;\n\t\t}\n\n\t\t// this is how android distinguishes between tablet and phone\n\t\t// http://android-developers.blogspot.de/2011/07/new-tools-for-managing-screen-sizes.html\n\t\tconst bTablet = (Math.min(window.screen.width / densityFactor, window.screen.height / densityFactor) >= 600);\n\n\t\t// special workaround for Nexus 7 where the window.screen.width is 600px or 601px in portrait mode (=> tablet)\n\t\t// but window.screen.height 552px in landscape mode (=> phone), because the browser UI takes some space on top.\n\t\t// So the detected device type depends on the orientation :-(\n\t\t// actually this is a Chrome bug, as \"width\"/\"height\" should return the entire screen's dimensions and\n\t\t// \"availWidth\"/\"availHeight\" should return the size available after subtracting the browser UI\n\n\t\t/*\n\t\t\t\tif (isLandscape() &&\n\t\t\t\t\t(window.screen.height === 552 || window.screen.height === 553) // old/new Nexus 7\n\t\t\t\t\t&&\n\t\t\t\t\t(/Nexus 7/i.test(sUserAgent))) {\n\t\t\t\t\tbTablet = true;\n\t\t\t\t}\n\t\t\t\t*/\n\n\t\treturn bTablet;\n\t}\n\t// This simple android phone detection can be used here because this is the mobile emulation mode in desktop browser\n\tconst bAndroidPhone = (/(?=android)(?=.*mobile)/i.test(sUserAgent));\n\t// in desktop browser, it's detected as tablet when\n\t// 1. Windows 8 device with a touch screen where \"Touch\" is contained in the userAgent\n\t// 2. Android emulation and it's not an Android phone\n\treturn (Device.browser.msie && sUserAgent.indexOf(\"Touch\") !== -1) || (Device.os.android && !bAndroidPhone);\n};\n\nconst _getSystem = () => {\n\tconst bTabletDetected = _isTablet();\n\tconst isWin8Upwards = Device.os.windows && Device.os.version >= 8;\n\n\tconst oSystem = {};\n\toSystem.tablet = !!((Device.support.touch || isWin8Upwards) && bTabletDetected);\n\toSystem.phone = !!((Device.os.windows_phone || (Device.support.touch)) && !bTabletDetected);\n\toSystem.desktop = !!((!oSystem.tablet && !oSystem.phone) || isWin8Upwards);\n\toSystem.combi = oSystem.desktop && oSystem.tablet;\n\toSystem.SYSTEMTYPE = SYSTEMTYPE;\n\n\treturn oSystem;\n};\n\nconst _setSystem = () => {\n\t_setSupport();\n\t_setOS();\n\n\tDevice.system = {};\n\tDevice.system = _getSystem();\n\tif (Device.system.tablet || Device.system.phone) {\n\t\tDevice.browser.mobile = true;\n\t}\n};\n\nconst getSystem = () => {\n\tif (!Device.system) {\n\t\t_setSystem();\n\t}\n\n\treturn Device.system;\n};\n\nconst isDesktop = () => {\n\tif (!Device.system) {\n\t\t_setSystem();\n\t}\n\n\treturn Device.system.desktop;\n};\n\nconst isTablet = () => {\n\tif (!Device.system) {\n\t\t_setSystem();\n\t}\n\n\treturn Device.system.tablet;\n};\n\nconst isPhone = () => {\n\tif (!Device.system) {\n\t\t_setSystem();\n\t}\n\n\treturn Device.system.phone;\n};\n\nconst isMobile = () => {\n\tif (!Device.system) {\n\t\t_setSystem();\n\t}\n\n\treturn Device.browser.mobile;\n};\n\nexport {\n\tisIE,\n\tisEdge,\n\tisChrome,\n\tisFF,\n\tisSafari,\n\tisMobile,\n\tisDesktop,\n\tisTablet,\n\tisPhone,\n\tisAndroid,\n\tgetOS,\n\tgetSystem,\n\tgetBrowser,\n\tsupportTouch,\n};\n","let currentZIndex = 100;\n\nconst getFocusedElement = () => {\n\tlet element = document.activeElement;\n\n\twhile (element.shadowRoot && element.shadowRoot.activeElement) {\n\t\telement = element.shadowRoot.activeElement;\n\t}\n\n\treturn (element && typeof element.focus === \"function\") ? element : null;\n};\n\nconst isPointInRect = (x, y, rect) => {\n\treturn x >= rect.left && x <= rect.right\n\t\t&& y >= rect.top && y <= rect.bottom;\n};\n\nconst isClickInRect = (event, rect) => {\n\tlet x;\n\tlet y;\n\n\tif (event.touches) {\n\t\tconst touch = event.touches[0];\n\t\tx = touch.clientX;\n\t\ty = touch.clientY;\n\t} else {\n\t\tx = event.clientX;\n\t\ty = event.clientY;\n\t}\n\n\treturn isPointInRect(x, y, rect);\n};\n\nconst getClosedPopupParent = el => {\n\tconst parent = el.parentElement || (el.getRootNode && el.getRootNode().host);\n\n\tif ((parent.openBy && parent.isUI5Element) || parent === document.documentElement) {\n\t\treturn parent;\n\t}\n\n\treturn getClosedPopupParent(parent);\n};\n\n\nconst getNextZIndex = () => {\n\tcurrentZIndex += 2;\n\treturn currentZIndex;\n};\n\nexport {\n\tgetFocusedElement,\n\tisClickInRect,\n\tgetClosedPopupParent,\n\tgetNextZIndex,\n};\n","\n/* eslint no-unused-vars: 0 */\nimport ifDefined from '@ui5/webcomponents-base/dist/renderer/ifDefined.js';\nimport { html, svg, repeat, classMap, styleMap } from '@ui5/webcomponents-base/dist/renderer/LitRenderer.js';\nconst block0 = (context) => { return html`${ context._isPhone ? block1(context) : block5(context) }`; };\nconst block1 = (context) => { return html`\t\t${ !context._hideHeader ? block2(context) : undefined }\t\t`; };\nconst block2 = (context) => { return html`${ context.header.length ? block3(context) : block4(context) }`; };\nconst block3 = (context) => { return html`\t\t\t`; };\nconst block4 = (context) => { return html`
${ifDefined(context.headerText)}
\t\t\t`; };\nconst block5 = (context) => { return html`
\t${ context._displayHeader ? block6(context) : undefined }
\t${ context._displayFooter ? block9(context) : undefined }
`; };\nconst block6 = (context) => { return html`${ context.header.length ? block7(context) : block8(context) }`; };\nconst block7 = (context) => { return html`
\t\t`; };\nconst block8 = (context) => { return html`

${ifDefined(context.headerText)}

\t\t`; };\nconst block9 = (context) => { return html`${ context.footer.length ? block10(context) : undefined }`; };\nconst block10 = (context) => { return html`\t\t`; };\n\nexport default block0;","const isNodeHidden = node => {\n\tif (node.nodeName === \"SLOT\") {\n\t\treturn false;\n\t}\n\n\tconst rect = node.getBoundingClientRect();\n\n\treturn (node.offsetWidth <= 0 && node.offsetHeight <= 0)\n\t\t|| node.style.visibility === \"hidden\"\n\t\t|| (rect.width === 0 && 0 && rect.height === 0);\n};\n\nexport default isNodeHidden;\n","const rClickable = /^(?:a|area)$/i;\nconst rFocusable = /^(?:input|select|textarea|button)$/i;\n\nconst isNodeClickable = node => {\n\tif (node.disabled) {\n\t\treturn false;\n\t}\n\n\tconst tabIndex = node.getAttribute(\"tabindex\");\n\tif (tabIndex !== null && tabIndex !== undefined) {\n\t\treturn parseInt(tabIndex) >= 0;\n\t}\n\n\treturn rFocusable.test(node.nodeName)\n\t\t|| (rClickable.test(node.nodeName)\n\t\t&& node.href);\n};\n\nexport default isNodeClickable;\n","import UI5Element from \"../UI5Element.js\";\nimport isNodeHidden from \"./isNodeHidden.js\";\nimport isNodeClickable from \"./isNodeClickable.js\";\n\nconst getFirstFocusableElement = container => {\n\tif (!container || isNodeHidden(container)) {\n\t\treturn null;\n\t}\n\n\treturn findFocusableElement(container, true);\n};\n\nconst getLastFocusableElement = container => {\n\tif (!container || isNodeHidden(container)) {\n\t\treturn null;\n\t}\n\n\treturn findFocusableElement(container, false);\n};\n\nconst findFocusableElement = (container, forward) => {\n\tlet child;\n\tif (container.assignedNodes && container.assignedNodes()) {\n\t\tconst assignedElements = container.assignedNodes();\n\t\tchild = forward ? assignedElements[0] : assignedElements[assignedElements.length - 1];\n\t} else {\n\t\tchild = forward ? container.firstChild : container.lastChild;\n\t}\n\n\tlet focusableDescendant;\n\n\twhile (child) {\n\t\tconst originalChild = child;\n\n\t\tchild = child instanceof UI5Element ? child.getFocusDomRef() : child;\n\t\tif (!child) {\n\t\t\treturn null;\n\t\t}\n\n\t\tif (child.nodeType === 1 && !isNodeHidden(child)) {\n\t\t\tif (isNodeClickable(child)) {\n\t\t\t\treturn (child && typeof child.focus === \"function\") ? child : null;\n\t\t\t}\n\n\t\t\tfocusableDescendant = findFocusableElement(child, forward);\n\t\t\tif (focusableDescendant) {\n\t\t\t\treturn (focusableDescendant && typeof focusableDescendant.focus === \"function\") ? focusableDescendant : null;\n\t\t\t}\n\t\t}\n\n\t\tchild = forward ? originalChild.nextSibling : originalChild.previousSibling;\n\t}\n\n\treturn null;\n};\n\nexport {\n\tgetFirstFocusableElement,\n\tgetLastFocusableElement,\n};\n","\n/* eslint no-unused-vars: 0 */\nimport ifDefined from '@ui5/webcomponents-base/dist/renderer/ifDefined.js';\nimport { html, svg, repeat, classMap, styleMap } from '@ui5/webcomponents-base/dist/renderer/LitRenderer.js';\nconst block0 = (context) => { return html`
\t${ context._displayHeader ? block1(context) : undefined }
\t${ context._displayFooter ? block4(context) : undefined }
`; };\nconst block1 = (context) => { return html`${ context.header.length ? block2(context) : block3(context) }`; };\nconst block2 = (context) => { return html`
\t\t`; };\nconst block3 = (context) => { return html`

${ifDefined(context.headerText)}

\t\t`; };\nconst block4 = (context) => { return html`${ context.footer.length ? block5(context) : undefined }`; };\nconst block5 = (context) => { return html`\t\t`; };\n\nexport default block0;","import DataType from \"@ui5/webcomponents-base/dist/types/DataType.js\";\n\n/**\n * @lends sap.ui.webcomponents.main.types.PopoverPlacementType.prototype\n * @public\n */\nconst PopoverPlacementTypes = {\n\t/**\n\t * Popover will be placed at the left side of the reference element.\n\t * @public\n\t * @type {Left}\n\t */\n\tLeft: \"Left\",\n\n\t/**\n\t * Popover will be placed at the right side of the reference element.\n\t * @public\n\t * @type {Right}\n\t */\n\tRight: \"Right\",\n\n\t/**\n\t * Popover will be placed at the top of the reference element.\n\t * @public\n\t * @type {Bottom}\n\t */\n\tTop: \"Top\",\n\n\t/**\n\t * Popover will be placed at the bottom of the reference element.\n\t * @public\n\t * @type {Bottom}\n\t */\n\tBottom: \"Bottom\",\n};\n\n/**\n * @class\n * Types for the placement of Popover control.\n * @constructor\n * @author SAP SE\n * @alias sap.ui.webcomponents.main.types.PopoverPlacementType\n * @public\n * @enum {string}\n */\nclass PopoverPlacementType extends DataType {\n\tstatic isValid(value) {\n\t\treturn !!PopoverPlacementTypes[value];\n\t}\n}\n\nPopoverPlacementType.generataTypeAcessors(PopoverPlacementTypes);\n\nexport default PopoverPlacementType;\n","import DataType from \"@ui5/webcomponents-base/dist/types/DataType.js\";\n\n\n/**\n * @lends sap.ui.webcomponents.main.types.PopoverVerticalAlign.prototype\n * @public\n */\nconst PopoverVerticalAligns = {\n\t/**\n\t *\n\t * @public\n\t * @type {Center}\n\t */\n\tCenter: \"Center\",\n\n\t/**\n\t * Popover will be placed at the top of the reference control.\n\t * @public\n\t * @type {Top}\n\t */\n\tTop: \"Top\",\n\n\t/**\n\t * Popover will be placed at the bottom of the reference control.\n\t * @public\n\t * @type {Bottom}\n\t */\n\tBottom: \"Bottom\",\n\n\t/**\n\t * Popover will be streched\n\t * @public\n\t * @type {Stretch}\n\t */\n\tStretch: \"Stretch\",\n};\n\n/**\n * @class\n * Types for the placement of message Popover control.\n * @constructor\n * @author SAP SE\n * @alias sap.ui.webcomponents.main.types.PopoverVerticalAlign\n * @public\n * @enum {string}\n */\nclass PopoverVerticalAlign extends DataType {\n\tstatic isValid(value) {\n\t\treturn !!PopoverVerticalAligns[value];\n\t}\n}\n\nPopoverVerticalAlign.generataTypeAcessors(PopoverVerticalAligns);\n\nexport default PopoverVerticalAlign;\n","import DataType from \"@ui5/webcomponents-base/dist/types/DataType.js\";\n\n/**\n * @lends sap.ui.webcomponents.main.types.PopoverHorizontalAlign.prototype\n * @public\n */\nconst PopoverHorizontalAligns = {\n\t/**\n\t * Popover is centered\n\t * @public\n\t * @type {Center}\n\t */\n\tCenter: \"Center\",\n\n\t/**\n\t * Popover opens on the left side of the target\n\t * @public\n\t * @type {Left}\n\t */\n\tLeft: \"Left\",\n\n\t/**\n\t * Popover opens on the right side of the target\n\t * @public\n\t * @type {Right}\n\t */\n\tRight: \"Right\",\n\n\t/**\n\t * Popover is stretched\n\t * @public\n\t * @type {Stretch}\n\t */\n\tStretch: \"Stretch\",\n};\n\n/**\n * @class\n * Defines the horizontal alignment of ui5-popover\n * @constructor\n * @author SAP SE\n * @alias sap.ui.webcomponents.main.types.PopoverHorizontalAlign\n * @public\n * @enum {string}\n */\nclass PopoverHorizontalAlign extends DataType {\n\tstatic isValid(value) {\n\t\treturn !!PopoverHorizontalAligns[value];\n\t}\n}\n\nPopoverHorizontalAlign.generataTypeAcessors(PopoverHorizontalAligns);\n\nexport default PopoverHorizontalAlign;\n","import { isEscape } from \"@ui5/webcomponents-base/dist/Keys.js\";\n\nlet registry = [];\n\nconst addOpenedPopup = instance => {\n\tif (!registry.includes(instance)) {\n\t\tregistry.push(instance);\n\t}\n\n\tif (registry.length === 1) {\n\t\tattachGlobalListener();\n\t}\n};\n\nconst removeOpenedPopup = instance => {\n\tregistry = registry.filter(el => {\n\t\treturn el !== instance;\n\t});\n\n\tif (!registry.length) {\n\t\tdetachGlobalListener();\n\t}\n};\n\nconst getOpenedPopups = () => {\n\treturn [...registry];\n};\n\nconst _keydownListener = event => {\n\tif (isEscape(event)) {\n\t\tconst topPopup = registry[registry.length - 1];\n\n\t\ttopPopup && topPopup.close();\n\t}\n};\n\nconst attachGlobalListener = () => {\n\tdocument.addEventListener(\"keydown\", _keydownListener);\n};\n\nconst detachGlobalListener = () => {\n\tdocument.removeEventListener(\"keydown\", _keydownListener);\n};\n\nexport { addOpenedPopup, removeOpenedPopup, getOpenedPopups };\n","import { isClickInRect } from \"./PopupUtils.js\";\nimport { getOpenedPopups, addOpenedPopup, removeOpenedPopup } from \"./OpenedPopupsRegistry.js\";\n\nlet updateInterval = null;\nconst intervalTimeout = 300;\nconst openedRegistry = [];\n\nconst repositionPopovers = event => {\n\topenedRegistry.forEach(popover => {\n\t\tpopover.reposition();\n\t});\n};\n\nconst attachGlobalScrollHandler = () => {\n\tdocument.body.addEventListener(\"scroll\", repositionPopovers, true);\n};\n\nconst detachGlobalScrollHandler = () => {\n\tdocument.body.removeEventListener(\"scroll\", repositionPopovers, true);\n};\n\nconst runUpdateInterval = () => {\n\tupdateInterval = setInterval(() => {\n\t\trepositionPopovers();\n\t}, intervalTimeout);\n};\n\nconst stopUpdateInterval = () => {\n\tclearInterval(updateInterval);\n};\n\nconst attachGlobalClickHandler = () => {\n\tdocument.addEventListener(\"mousedown\", clickHandler);\n};\n\nconst detachGlobalClickHandler = () => {\n\tdocument.removeEventListener(\"mousedown\", clickHandler);\n};\n\nconst clickHandler = event => {\n\tconst openedPopovers = openedRegistry;\n\tconst openedPopups = getOpenedPopups();\n\n\tif (openedPopups.length === 0 || !(openedPopups[openedPopups.length - 1].openBy)) {\n\t\treturn;\n\t}\n\n\t// loop all open popovers\n\tfor (let i = (openedPopovers.length - 1); i !== -1; i--) {\n\t\tconst popover = openedPopovers[i];\n\n\t\t// if popover is modal, opener is clicked or there is one more popover above, skip closing\n\t\tif (popover.modal || popover.isOpenerClicked(event)) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (isClickInRect(event, popover.getBoundingClientRect())) {\n\t\t\tbreak;\n\t\t}\n\n\t\tpopover.close();\n\t}\n};\n\nconst attachScrollHandler = popover => {\n\tpopover && popover.shadowRoot.addEventListener(\"scroll\", repositionPopovers, true);\n};\n\nconst detachScrollHandler = popover => {\n\tpopover && popover.shadowRoot.removeEventListener(\"scroll\", repositionPopovers);\n};\n\nconst addOpenedPopover = instance => {\n\taddOpenedPopup(instance);\n\topenedRegistry.push(instance);\n\n\tattachScrollHandler(instance);\n\n\tif (openedRegistry.length === 1) {\n\t\tattachGlobalScrollHandler();\n\t\tattachGlobalClickHandler();\n\t\trunUpdateInterval();\n\t}\n};\n\nconst removeOpenedPopover = instance => {\n\tlet count = 0;\n\n\n\tfor (let i = openedRegistry.indexOf(instance); i < openedRegistry.length; i++) {\n\t\topenedRegistry[i].close(false, true);\n\t\tremoveOpenedPopup(openedRegistry[i]);\n\t\tdetachScrollHandler(openedRegistry[i]);\n\t\tcount++;\n\t}\n\n\t// remove top popovers from registry\n\tArray(count).fill().forEach(() => { openedRegistry.pop(); });\n\n\tif (!openedRegistry.length) {\n\t\tdetachGlobalScrollHandler();\n\t\tdetachGlobalClickHandler();\n\t\tstopUpdateInterval();\n\t}\n};\n\nconst getRegistry = () => {\n\treturn openedRegistry;\n};\n\nexport { addOpenedPopover, removeOpenedPopover, getRegistry };\n","import { registerThemeProperties } from \"@ui5/webcomponents-base/dist/asset-registries/Themes.js\";\n\nimport defaultThemeBase from \"@ui5/webcomponents-theme-base/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js\";\nimport defaultTheme from \"./sap_fiori_3/parameters-bundle.css.js\";\n\nregisterThemeProperties(\"@ui5/webcomponents-theme-base\", \"sap_fiori_3\", defaultThemeBase);\nregisterThemeProperties(\"@ui5/webcomponents\", \"sap_fiori_3\", defaultTheme);\nexport default \":host{display:none;position:fixed;min-width:6.25rem;background:var(--sapGroup_ContentBackground);box-shadow:var(--sapContent_Shadow2);border-radius:.25rem;min-height:2rem;box-sizing:border-box}.ui5-popover-root{background:inherit;border-radius:inherit;width:100%;height:100%;box-sizing:border-box;display:flex;flex-direction:column;overflow:hidden}@media screen and (-ms-high-contrast:active){.ui5-popover-root{border:1px solid var(--sapPageFooter_BorderColor)}}:host([modal]):before{content:\\\"\\\";position:fixed;background-color:#000;opacity:.6;top:0;left:0;right:0;bottom:0;outline:0 none;z-index:-1}.ui5-popover-arr{pointer-events:none;display:block;width:1rem;height:1rem;position:absolute;overflow:hidden}.ui5-popover-arr:after{content:\\\"\\\";display:block;width:.7rem;height:.7rem;background-color:var(--sapGroup_ContentBackground);box-shadow:var(--sapContent_Shadow2);transform:rotate(-45deg)}:host([actual-placement-type=Bottom]) .ui5-popover-arr{left:calc(50% - .5625rem);top:-.5rem;height:.5625rem}:host([actual-placement-type=Bottom]) .ui5-popover-arr:after{margin:.1875rem 0 0 .1875rem}:host([actual-placement-type=Left]) .ui5-popover-arr{top:calc(50% - .5625rem);right:-.5625rem;width:.5625rem}:host([actual-placement-type=Left]) .ui5-popover-arr:after{margin:.1875rem 0 0 -.375rem}:host([actual-placement-type=Top]) .ui5-popover-arr{left:calc(50% - .5625rem);height:.5625rem;bottom:calc(-1*(var(--_ui5_popover_content_padding) + 2px))}:host([actual-placement-type=Top]) .ui5-popover-arr:after{margin:-.375rem 0 0 .125rem}:host(:not([actual-placement-type])) .ui5-popover-arr,:host([actual-placement-type=Right]) .ui5-popover-arr{left:-.5625rem;top:calc(50% - .5625rem);width:.5625rem;height:1rem}:host(:not([actual-placement-type])) .ui5-popover-arr:after,:host([actual-placement-type=Right]) .ui5-popover-arr:after{margin:.125rem 0 0 .25rem}:host([no-arrow]) .ui5-popover-arr{display:none}.ui5-popover-header-root,.ui5-popup-header-text{border-bottom:1px solid var(--sapPageFooter_BorderColor)}.ui5-popover-footer-root{background:var(--sapPageFooter_Background);border-top:1px solid var(--sapPageFooter_BorderColor);color:var(--sapPageFooter_TextColor)}.ui5-popover-footer-root,.ui5-popover-header-root,:host([header-text]) .ui5-popup-header-text{margin:0;color:var(--sapPageHeader_TextColor);font-size:1rem;font-weight:400;font-family:var(--sapFontFamily);display:flex;justify-content:center;align-items:center}.ui5-popover-content{overflow:auto;padding:var(--_ui5_popover_content_padding);box-sizing:border-box}:host([no-padding]) .ui5-popover-content{padding:0}:host([header-text]) .ui5-popup-header-text{padding:0 .25rem;text-align:center;min-height:3rem;max-height:3rem;line-height:3rem;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;max-width:100%;display:inline-block}:host(:not([header-text])) .ui5-popup-header-text{display:none}\";","import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport { getFirstFocusableElement, getLastFocusableElement } from \"@ui5/webcomponents-base/dist/util/FocusableElements.js\";\nimport Integer from \"@ui5/webcomponents-base/dist/types/Integer.js\";\nimport PopoverTemplate from \"./generated/templates/PopoverTemplate.lit.js\";\nimport PopoverPlacementType from \"./types/PopoverPlacementType.js\";\nimport PopoverVerticalAlign from \"./types/PopoverVerticalAlign.js\";\nimport PopoverHorizontalAlign from \"./types/PopoverHorizontalAlign.js\";\n\nimport { addOpenedPopover, removeOpenedPopover } from \"./popup-utils/PopoverRegistry.js\";\nimport { getFocusedElement, getClosedPopupParent, getNextZIndex } from \"./popup-utils/PopupUtils.js\";\n\n// Styles\nimport PopoverCss from \"./generated/themes/Popover.css.js\";\n\nconst arrowSize = 8;\n\n/**\n * @public\n */\nconst metadata = {\n\ttag: \"ui5-popover\",\n\tproperties: /** @lends sap.ui.webcomponents.main.Popover.prototype */ {\n\t\t/**\n\t\t * Defines the ID of the HTML Element, which will get the initial focus.\n\t\t *\n\t\t * @type {string}\n\t\t * @defaultvalue \"\"\n\t\t * @public\n\t\t */\n\t\tinitialFocus: {\n\t\t\ttype: String,\n\t\t},\n\n\t\t/**\n\t\t * Defines the header text.\n\t\t *

\n\t\t * Note: If header slot is provided, the headerText is ignored.\n\t\t *\n\t\t * @type {string}\n\t\t * @defaultvalue \"\"\n\t\t * @public\n\t\t */\n\t\theaderText: {\n\t\t\ttype: String,\n\t\t},\n\n\t\t/**\n\t\t * Determines on which side the ui5-popover is placed at.\n\t\t *

\n\t\t * Available options are:\n\t\t *
    \n\t\t *
  • Left
  • \n\t\t *
  • Right
  • \n\t\t *
  • Top
  • \n\t\t *
  • Bottom
  • \n\t\t *
\n\t\t *\n\t\t * @type {PopoverPlacementType}\n\t\t * @defaultvalue \"Right\"\n\t\t * @public\n\t\t */\n\t\tplacementType: {\n\t\t\ttype: PopoverPlacementType,\n\t\t\tdefaultValue: PopoverPlacementType.Right,\n\t\t},\n\n\t\t/**\n\t\t * Determines the horizontal alignment of the ui5-popover.\n\t\t *

\n\t\t * Available options are:\n\t\t *
    \n\t\t *
  • Center
  • \n\t\t *
  • Left
  • \n\t\t *
  • Right
  • \n\t\t *
  • Stretch
  • \n\t\t *
\n\t\t *\n\t\t * @type {PopoverHorizontalAlign}\n\t\t * @defaultvalue \"Center\"\n\t\t * @public\n\t\t */\n\t\thorizontalAlign: {\n\t\t\ttype: PopoverHorizontalAlign,\n\t\t\tdefaultValue: PopoverHorizontalAlign.Center,\n\t\t},\n\n\t\t/**\n\t\t * Determines the vertical alignment of the ui5-popover.\n\t\t *

\n\t\t * Available options are:\n\t\t *
    \n\t\t *
  • Center
  • \n\t\t *
  • Top
  • \n\t\t *
  • Bottom
  • \n\t\t *
  • Stretch
  • \n\t\t *
\n\t\t *\n\t\t * @type {PopoverVerticalAlign}\n\t\t * @defaultvalue \"Center\"\n\t\t * @public\n\t\t */\n\t\tverticalAlign: {\n\t\t\ttype: PopoverVerticalAlign,\n\t\t\tdefaultValue: PopoverVerticalAlign.Center,\n\t\t},\n\n\t\t/**\n\t\t * Defines whether the ui5-popover should close when\n\t\t * clicking/tapping outside of the popover.\n\t\t * If enabled, it blocks any interaction with the background.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @defaultvalue false\n\t\t * @public\n\t\t */\n\t\tmodal: {\n\t\t\ttype: Boolean,\n\t\t},\n\n\t\t/**\n\t\t * Determines whether the ui5-popover arrow is hidden.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @defaultvalue false\n\t\t * @public\n\t\t */\n\t\tnoArrow: {\n\t\t\ttype: Boolean,\n\t\t},\n\n\t\t/**\n\t\t * Determines if there is no enough space, the ui5-popover can be placed\n\t\t * over the target.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @defaultvalue false\n\t\t * @public\n\t\t */\n\t\tallowTargetOverlap: {\n\t\t\ttype: Boolean,\n\t\t},\n\n\t\t/**\n\t\t * Sets the X translation of the arrow\n\t\t *\n\t\t * @private\n\t\t */\n\t\tarrowTranslateX: {\n\t\t\ttype: Integer,\n\t\t\tdefaultValue: 0,\n\t\t\tnoAttribute: true,\n\t\t},\n\n\t\t/**\n\t\t * Sets the Y translation of the arrow\n\t\t *\n\t\t * @private\n\t\t */\n\t\tarrowTranslateY: {\n\t\t\ttype: Integer,\n\t\t\tdefaultValue: 0,\n\t\t\tnoAttribute: true,\n\t\t},\n\n\t\t/**\n\t\t * Returns the calculated placement depending on the free space\n\t\t *\n\t\t * @private\n\t\t */\n\t\tactualPlacementType: {\n\t\t\ttype: PopoverPlacementType,\n\t\t\tdefaultValue: PopoverPlacementType.Right,\n\t\t},\n\n\t\t/**\n\t\t * Defines whether the ui5-popover is open\n\t\t *\n\t\t * @private\n\t\t */\n\t\topened: { type: Boolean },\n\n\t\t_maxContentHeight: { type: Integer },\n\n\t\t/**\n\t\t * @private\n\t\t */\n\t\t_disableInitialFocus: {\n\t\t\ttype: Boolean,\n\t\t},\n\t},\n\tmanagedSlots: true,\n\tslots: /** @lends sap.ui.webcomponents.main.Popover.prototype */ {\n\t\t/**\n\t\t * Defines the content of the Web Component.\n\t\t * @type {Node[]}\n\t\t * @slot\n\t\t * @public\n\t\t */\n\t\t\"default\": {\n\t\t\ttype: HTMLElement,\n\t\t},\n\n\t\t/**\n\t\t * Defines the header HTML Element.\n\t\t *\n\t\t * @type {HTMLElement[]}\n\t\t * @slot\n\t\t * @public\n\t\t */\n\t\theader: {\n\t\t\ttype: HTMLElement,\n\t\t},\n\n\t\t/**\n\t\t * Defines the footer HTML Element.\n\t\t *\n\t\t * @type {HTMLElement[]}\n\t\t * @slot\n\t\t * @public\n\t\t */\n\t\tfooter: {\n\t\t\ttype: HTMLElement,\n\t\t},\n\t},\n\tevents: /** @lends sap.ui.webcomponents.main.Popover.prototype */ {\n\t\t/**\n\t\t * Fired before the component is opened.\n\t\t *\n\t\t * @public\n\t\t * @event\n\t\t */\n\t\tbeforeOpen: {},\n\n\t\t/**\n\t\t * Fired after the component is opened.\n\t\t *\n\t\t * @public\n\t\t * @event\n\t\t */\n\t\tafterOpen: {},\n\n\t\t/**\n\t\t * Fired before the component is closed.\n\t\t *\n\t\t * @public\n\t\t * @event\n\t\t * @param {Boolean} escPressed Indicates that ESC key has triggered the event.\n\t\t */\n\t\tbeforeClose: {\n\t\t\tescPressed: { type: Boolean },\n\t\t},\n\n\t\t/**\n\t\t * Fired after the component is closed.\n\t\t *\n\t\t * @public\n\t\t * @event\n\t\t */\n\t\tafterClose: {},\n\t},\n};\n\n/**\n * @class\n *\n *

Overview

\n *\n * The ui5-popover component displays additional information for an object\n * in a compact way and without leaving the page.\n * The Popover can contain various UI elements, such as fields, tables, images, and charts.\n * It can also include actions in the footer.\n *\n *

Structure

\n *\n * The popover has three main areas:\n *
    \n *
  • Header (optional)
  • \n *
  • Content
  • \n *
  • Footer (optional)
  • \n *
\n *\n * Note: The ui5-popover is closed when the user clicks\n * or taps outside the popover\n * or selects an action within the popover. You can prevent this with the\n * modal property.\n *\n *

ES6 Module Import

\n *\n * import \"@ui5/webcomponents/dist/Popover.js\";\n *\n * @constructor\n * @author SAP SE\n * @alias sap.ui.webcomponents.main.Popover\n * @extends UI5Element\n * @tagname ui5-popover\n * @since 1.0.0-rc.6\n * @public\n */\nclass Popover extends UI5Element {\n\tstatic get metadata() {\n\t\treturn metadata;\n\t}\n\n\tstatic get render() {\n\t\treturn litRender;\n\t}\n\n\tstatic get styles() {\n\t\treturn PopoverCss;\n\t}\n\n\tstatic get template() {\n\t\treturn PopoverTemplate;\n\t}\n\n\tforwardToFirst() {\n\t\tconst firstFocusable = getFirstFocusableElement(this.contentDOM);\n\n\t\tif (firstFocusable) {\n\t\t\tfirstFocusable.focus();\n\t\t}\n\t}\n\n\tforwardToLast() {\n\t\tconst lastFocusable = getLastFocusableElement(this.contentDOM);\n\n\t\tif (lastFocusable) {\n\t\t\tlastFocusable.focus();\n\t\t}\n\t}\n\n\tisOpenerClicked(event) {\n\t\tconst target = event.target;\n\t\treturn target === this._opener || (target.getFocusDomRef && target.getFocusDomRef() === this._opener);\n\t}\n\n\t/**\n\t * Opens the popover.\n\t * @param {HTMLElement} opener the element that the popover is opened by\n\t * @public\n\t */\n\topenBy(opener) {\n\t\tif (!opener || this.opened) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._opener = opener;\n\t\tthis._focusedElementBeforeOpen = getFocusedElement();\n\t\tthis.style.zIndex = getNextZIndex();\n\n\t\tthis.fireEvent(\"beforeOpen\", {});\n\t\tthis.reposition();\n\t\tthis.applyInitialFocus();\n\n\t\taddOpenedPopover(this);\n\n\t\tthis.opened = true;\n\t\tthis.fireEvent(\"afterOpen\", {});\n\t}\n\n\t/**\n\t * Closes the popover.\n\t * @public\n\t */\n\tclose(escPressed = false, preventRegitryUpdate = false, preventFocusRestore = false) {\n\t\tif (!this.opened) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.fireEvent(\"beforeClose\", {\n\t\t\tescPressed,\n\t\t}, true);\n\n\n\t\tthis.opened = false;\n\n\t\tif (!preventRegitryUpdate) {\n\t\t\tremoveOpenedPopover(this);\n\t\t}\n\n\t\tif (!preventFocusRestore) {\n\t\t\tthis.resetFocus();\n\t\t}\n\n\t\tthis.hide();\n\t\tthis.fireEvent(\"afterClose\", {});\n\t}\n\n\tget focusedElement() {\n\t\tlet element = document.activeElement;\n\n\t\twhile (element.shadowRoot && element.shadowRoot.activeElement) {\n\t\t\telement = element.shadowRoot.activeElement;\n\t\t}\n\n\t\treturn (element && typeof element.focus === \"function\") ? element : null;\n\t}\n\n\tapplyInitialFocus() {\n\t\tif (this._disableInitialFocus) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst element = this.getRootNode().getElementById(this.initialFocus) || document.getElementById(this.initialFocus) || getFirstFocusableElement(this.contentDOM);\n\n\t\tif (element) {\n\t\t\telement.focus();\n\t\t}\n\t}\n\n\tresetFocus() {\n\t\tif (!this._focusedElementBeforeOpen) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._focusedElementBeforeOpen.focus();\n\t\tthis._focusedElementBeforeOpen = null;\n\t}\n\n\tshouldCloseDueOverflow(placement, openerRect) {\n\t\tconst threshold = 32;\n\n\t\tconst limits = {\n\t\t\t\"Right\": openerRect.right,\n\t\t\t\"Left\": openerRect.left,\n\t\t\t\"Top\": openerRect.top,\n\t\t\t\"Bottom\": openerRect.bottom,\n\t\t};\n\n\t\tconst closedPopupParent = getClosedPopupParent(this._opener);\n\t\tlet overflowsBottom = false;\n\t\tlet overflowsTop = false;\n\n\t\tif (closedPopupParent.openBy) {\n\t\t\tconst contentRect = closedPopupParent.contentDOM.getBoundingClientRect();\n\t\t\toverflowsBottom = openerRect.top > (contentRect.top + contentRect.height);\n\t\t\toverflowsTop = (openerRect.top + openerRect.height) < contentRect.top;\n\t\t}\n\n\t\treturn (limits[placement] < 0 || (limits[placement] + threshold > closedPopupParent.innerHeight)) || overflowsBottom || overflowsTop;\n\t}\n\n\treposition() {\n\t\tconst popoverSize = this.popoverSize;\n\t\tconst openerRect = this._opener.getBoundingClientRect();\n\t\tconst placement = this.calcPlacement(openerRect, popoverSize);\n\t\tconst streching = this.horizontalAlign === PopoverHorizontalAlign.Stretch;\n\n\t\tif (this._preventRepositionAndClose) {\n\t\t\treturn this.close();\n\t\t}\n\n\t\tif (this._oldPlacement && (this._oldPlacement.left === placement.left) && (this._oldPlacement.top === placement.top) && streching) {\n\t\t\tthis.style.display = \"inline-block\";\n\t\t\tthis.style.width = this._width;\n\t\t\treturn;\n\t\t}\n\n\t\tthis._oldPlacement = placement;\n\n\t\tthis.actualPlacementType = placement.placementType;\n\t\tthis.arrowTranslateX = placement.arrowX;\n\t\tthis.arrowTranslateY = placement.arrowY;\n\n\t\tthis.style.left = `${this._left}px`;\n\t\tthis.style.top = `${this._top}px`;\n\t\tthis.style.display = \"inline-block\";\n\n\t\tif (streching && this._width) {\n\t\t\tthis.style.width = this._width;\n\t\t}\n\t}\n\n\thide() {\n\t\tthis.style.display = \"none\";\n\t}\n\n\tget popoverSize() {\n\t\tlet width,\n\t\t\theight;\n\t\tlet rect = this.getBoundingClientRect();\n\n\t\tif (this.opened) {\n\t\t\twidth = rect.width;\n\t\t\theight = rect.height;\n\n\t\t\treturn { width, height };\n\t\t}\n\n\t\tthis.style.visibility = \"hidden\";\n\t\tthis.style.display = \"inline-block\";\n\n\t\trect = this.getBoundingClientRect();\n\n\t\twidth = rect.width;\n\t\theight = rect.height;\n\n\t\tthis.style.display = \"none\";\n\t\tthis.style.visibility = \"visible\";\n\n\t\treturn { width, height };\n\t}\n\n\tget contentDOM() {\n\t\treturn this.shadowRoot.querySelector(\".ui5-popover-content\");\n\t}\n\n\tget arrowDOM() {\n\t\treturn this.shadowRoot.querySelector(\".ui5-popover-arr\");\n\t}\n\n\tcalcPlacement(targetRect, popoverSize) {\n\t\tlet left = 0;\n\t\tlet top = 0;\n\t\tconst allowTargetOverlap = this.allowTargetOverlap;\n\n\t\tconst clientWidth = document.documentElement.clientWidth;\n\t\tconst clientHeight = document.documentElement.clientHeight;\n\n\t\tlet maxHeight = clientHeight;\n\n\t\tlet width = \"\";\n\t\tlet height = \"\";\n\n\t\tconst placementType = this.getActualPlacementType(targetRect, popoverSize);\n\n\t\tthis._preventRepositionAndClose = this.shouldCloseDueOverflow(placementType, targetRect);\n\n\t\tconst isVertical = placementType === PopoverPlacementType.Top\n\t\t\t|| placementType === PopoverPlacementType.Bottom;\n\n\t\tif (this.horizontalAlign === PopoverHorizontalAlign.Stretch && isVertical) {\n\t\t\tpopoverSize.width = targetRect.width;\n\t\t\twidth = `${targetRect.width}px`;\n\t\t} else if (this.verticalAlign === PopoverVerticalAlign.Stretch && !isVertical) {\n\t\t\tpopoverSize.height = targetRect.height;\n\t\t\theight = `${targetRect.height}px`;\n\t\t}\n\n\t\tthis._width = width;\n\t\tthis._height = height;\n\n\t\tconst arrowOffset = this.noArrow ? 0 : arrowSize;\n\n\t\t// calc popover positions\n\t\tswitch (placementType) {\n\t\tcase PopoverPlacementType.Top:\n\t\t\tleft = this.getVerticalLeft(targetRect, popoverSize);\n\t\t\ttop = Math.max(targetRect.top - popoverSize.height - arrowOffset, 0);\n\n\t\t\tif (!allowTargetOverlap) {\n\t\t\t\tmaxHeight = targetRect.top - arrowOffset;\n\t\t\t}\n\t\t\tbreak;\n\t\tcase PopoverPlacementType.Bottom:\n\t\t\tleft = this.getVerticalLeft(targetRect, popoverSize);\n\n\t\t\tif (allowTargetOverlap) {\n\t\t\t\ttop = Math.max(Math.min(targetRect.bottom + arrowOffset, clientHeight - popoverSize.height), 0);\n\t\t\t} else {\n\t\t\t\ttop = targetRect.bottom + arrowOffset;\n\t\t\t\tmaxHeight = clientHeight - targetRect.bottom - arrowOffset;\n\t\t\t}\n\t\t\tbreak;\n\t\tcase PopoverPlacementType.Left:\n\t\t\tleft = Math.max(targetRect.left - popoverSize.width - arrowOffset, 0);\n\t\t\ttop = this.getHorizontalTop(targetRect, popoverSize);\n\t\t\tbreak;\n\t\tcase PopoverPlacementType.Right:\n\t\t\tif (allowTargetOverlap) {\n\t\t\t\tleft = Math.max(Math.min(targetRect.left + targetRect.width + arrowOffset, clientWidth - popoverSize.width), 0);\n\t\t\t} else {\n\t\t\t\tleft = targetRect.left + targetRect.width + arrowOffset;\n\t\t\t}\n\n\t\t\ttop = this.getHorizontalTop(targetRect, popoverSize);\n\t\t\tbreak;\n\t\t}\n\n\t\t// correct popover positions\n\t\tif (isVertical) {\n\t\t\tif (popoverSize.width > clientWidth || left < 0) {\n\t\t\t\tleft = 0;\n\t\t\t} else if (left + popoverSize.width > clientWidth) {\n\t\t\t\tleft -= left + popoverSize.width - clientWidth;\n\t\t\t}\n\t\t} else {\n\t\t\tif (popoverSize.height > clientHeight || top < 0) { // eslint-disable-line\n\t\t\t\ttop = 0;\n\t\t\t} else if (top + popoverSize.height > clientHeight) {\n\t\t\t\ttop -= top + popoverSize.height - clientHeight;\n\t\t\t}\n\t\t}\n\n\t\tlet maxContentHeight = Math.round(maxHeight);\n\n\t\tconst hasHeader = this.header.length || this.headerText;\n\n\t\tif (hasHeader) {\n\t\t\tconst headerDomRef = this.shadowRoot.querySelector(\".ui5-popover-header-root\")\n\t\t\t\t|| this.shadowRoot.querySelector(\".ui5-popup-header-text\");\n\n\t\t\tif (headerDomRef) {\n\t\t\t\tmaxContentHeight = Math.round(maxHeight - headerDomRef.offsetHeight);\n\t\t\t}\n\t\t}\n\n\t\tthis._maxContentHeight = maxContentHeight;\n\n\t\tconst arrowTranslateX = isVertical ? targetRect.left + targetRect.width / 2 - left - popoverSize.width / 2 : 0;\n\t\tconst arrowTranslateY = !isVertical ? targetRect.top + targetRect.height / 2 - top - popoverSize.height / 2 : 0;\n\n\t\tif (this._left === undefined || Math.abs(this._left - left) > 1.5) {\n\t\t\tthis._left = Math.round(left);\n\t\t}\n\n\t\tif (this._top === undefined || Math.abs(this._top - top) > 1.5) {\n\t\t\tthis._top = Math.round(top);\n\t\t}\n\n\t\treturn {\n\t\t\tarrowX: Math.round(arrowTranslateX),\n\t\t\tarrowY: Math.round(arrowTranslateY),\n\t\t\ttop: this._top,\n\t\t\tleft: this._left,\n\t\t\tplacementType,\n\t\t};\n\t}\n\n\t/**\n\t * Fallbacks to new placement, prioritizing Left and Right placements.\n\t * @private\n\t */\n\tfallbackPlacement(clientWidth, clientHeight, targetRect, popoverSize) {\n\t\tif (targetRect.left > popoverSize.width) {\n\t\t\treturn PopoverPlacementType.Left;\n\t\t}\n\n\t\tif (clientWidth - targetRect.right > targetRect.left) {\n\t\t\treturn PopoverPlacementType.Right;\n\t\t}\n\n\t\tif (clientHeight - targetRect.bottom > popoverSize.height) {\n\t\t\treturn PopoverPlacementType.Bottom;\n\t\t}\n\n\t\tif (clientHeight - targetRect.bottom < targetRect.top) {\n\t\t\treturn PopoverPlacementType.Top;\n\t\t}\n\t}\n\n\tgetActualPlacementType(targetRect, popoverSize) {\n\t\tconst placementType = this.placementType;\n\t\tlet actualPlacementType = placementType;\n\n\t\tconst clientWidth = document.documentElement.clientWidth;\n\t\tconst clientHeight = document.documentElement.clientHeight;\n\n\t\tswitch (placementType) {\n\t\tcase PopoverPlacementType.Top:\n\t\t\tif (targetRect.top < popoverSize.height\n\t\t\t\t&& targetRect.top < clientHeight - targetRect.bottom) {\n\t\t\t\tactualPlacementType = PopoverPlacementType.Bottom;\n\t\t\t}\n\t\t\tbreak;\n\t\tcase PopoverPlacementType.Bottom:\n\t\t\tif (clientHeight - targetRect.bottom < popoverSize.height\n\t\t\t\t&& clientHeight - targetRect.bottom < targetRect.top) {\n\t\t\t\tactualPlacementType = PopoverPlacementType.Top;\n\t\t\t}\n\t\t\tbreak;\n\t\tcase PopoverPlacementType.Left:\n\t\t\tif (targetRect.left < popoverSize.width) {\n\t\t\t\tactualPlacementType = this.fallbackPlacement(clientWidth, clientHeight, targetRect, popoverSize) || placementType;\n\t\t\t}\n\t\t\tbreak;\n\t\tcase PopoverPlacementType.Right:\n\t\t\tif (clientWidth - targetRect.right < popoverSize.width) {\n\t\t\t\tactualPlacementType = this.fallbackPlacement(clientWidth, clientHeight, targetRect, popoverSize) || placementType;\n\t\t\t}\n\t\t\tbreak;\n\t\t}\n\n\t\treturn actualPlacementType;\n\t}\n\n\tgetVerticalLeft(targetRect, popoverSize) {\n\t\tlet left;\n\n\t\tswitch (this.horizontalAlign) {\n\t\tcase PopoverHorizontalAlign.Center:\n\t\tcase PopoverHorizontalAlign.Stretch:\n\t\t\tleft = targetRect.left - (popoverSize.width - targetRect.width) / 2;\n\t\t\tbreak;\n\t\tcase PopoverHorizontalAlign.Left:\n\t\t\tleft = targetRect.left;\n\t\t\tbreak;\n\t\tcase PopoverHorizontalAlign.Right:\n\t\t\tleft = targetRect.right - popoverSize.width;\n\t\t\tbreak;\n\t\t}\n\n\t\treturn left;\n\t}\n\n\tgetHorizontalTop(targetRect, popoverSize) {\n\t\tlet top;\n\n\t\tswitch (this.verticalAlign) {\n\t\tcase PopoverVerticalAlign.Center:\n\t\tcase PopoverVerticalAlign.Stretch:\n\t\t\ttop = targetRect.top - (popoverSize.height - targetRect.height) / 2;\n\t\t\tbreak;\n\t\tcase PopoverVerticalAlign.Top:\n\t\t\ttop = targetRect.top;\n\t\t\tbreak;\n\t\tcase PopoverVerticalAlign.Bottom:\n\t\t\ttop = targetRect.bottom - popoverSize.height;\n\t\t\tbreak;\n\t\t}\n\n\t\treturn top;\n\t}\n\n\tget styles() {\n\t\treturn {\n\t\t\tcontent: {\n\t\t\t\t\"max-height\": `${this._maxContentHeight}px`,\n\t\t\t},\n\t\t\tarrow: {\n\t\t\t\ttransform: `translate(${this.arrowTranslateX}px, ${this.arrowTranslateY}px)`,\n\t\t\t},\n\t\t\troot: { },\n\t\t};\n\t}\n\n\t/**\n\t * Hook for descendants to hide header.\n\t */\n\tget _displayHeader() {\n\t\treturn true;\n\t}\n\n\t/**\n\t * Hook for descendants to hide footer.\n\t */\n\tget _displayFooter() {\n\t\treturn true;\n\t}\n}\n\nPopover.define();\n\nexport default Popover;\n","import { registerThemeProperties } from \"@ui5/webcomponents-base/dist/asset-registries/Themes.js\";\n\nimport defaultThemeBase from \"@ui5/webcomponents-theme-base/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js\";\nimport defaultTheme from \"./sap_fiori_3/parameters-bundle.css.js\";\n\nregisterThemeProperties(\"@ui5/webcomponents-theme-base\", \"sap_fiori_3\", defaultThemeBase);\nregisterThemeProperties(\"@ui5/webcomponents\", \"sap_fiori_3\", defaultTheme);\nexport default \".ui5-popup-frame{width:0;height:0;display:none;visibility:visible}:host([opened]) .ui5-popup-frame{display:inline}.ui5-popup-root{min-width:6.25rem;box-sizing:border-box;outline:none;max-width:100%;max-height:100%;background:var(--sapGroup_ContentBackground);border:none;box-shadow:var(--sapContent_Shadow2);border-radius:.25rem;min-height:2rem}@media screen and (-ms-high-contrast:active){.ui5-popup-root{border:1px solid var(--sapPageFooter_BorderColor)}}.ui5-popup-root .ui5-popup-header{margin:0;color:var(--sapPageHeader_TextColor);font-size:1rem;font-weight:400;font-family:var(--sapFontFamily);border-bottom:1px solid var(--sapPageFooter_BorderColor)}.ui5-popup-root .ui5-popup-headerText{padding:0 .25rem;text-align:center;height:3rem;line-height:3rem}.ui5-popup-root .ui5-popup-footer{font-size:1rem;font-weight:400;font-family:var(--sapFontFamily);background:var(--sapPageFooter_Background);border-top:1px solid var(--sapPageFooter_BorderColor);color:var(--sapPageFooter_TextColor)}.ui5-popup-root .ui5-popup-content{overflow:auto;position:relative;box-sizing:border-box;background-color:var(--sapGroup_ContentBackground);border-radius:.25rem;flex-grow:1;width:100%}.ui5-popup-root .ui5-popup-content,.ui5-popup-root .ui5-popup-footer{border-bottom-left-radius:.25rem;border-bottom-right-radius:.25rem}.ui5-popup-root .ui5-popup-scroll{vertical-align:middle;box-sizing:border-box;padding:var(--_ui5_popover_content_padding)}.ui5-popup-BLy{background-color:#000;opacity:.6;filter:alpha(opacity=60);top:0;left:0;right:0;bottom:0;position:fixed;outline:0 none}.ui5-popup-blockLayer{visibility:visible}.ui5-popup-blockLayer--hidden{display:none}\";","import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport { getFirstFocusableElement, getLastFocusableElement } from \"@ui5/webcomponents-base/dist/util/FocusableElements.js\";\nimport Integer from \"@ui5/webcomponents-base/dist/types/Integer.js\";\nimport { isEscape } from \"@ui5/webcomponents-base/dist/Keys.js\";\n\n// Styles\nimport styles from \"./generated/themes/Popup.css.js\";\n\nimport { addOpenedPopup, removeOpenedPopup } from \"./popup-utils/OpenedPopupsRegistry.js\";\nimport { getNextZIndex } from \"./popup-utils/PopupUtils.js\";\n\n/**\n * @public\n */\nconst metadata = {\n\tmanagedSlots: true,\n\tslots: /** @lends sap.ui.webcomponents.main.Popup.prototype */ {\n\n\t\t/**\n\t\t * Defines the content of the Web Component.\n\t\t * @type {Node[]}\n\t\t * @slot\n\t\t * @public\n\t\t */\n\t\t\"default\": {\n\t\t\ttype: HTMLElement,\n\t\t},\n\n\t\t/**\n\t\t * Defines the header HTML Element.\n\t\t *\n\t\t * @type {HTMLElement[]}\n\t\t * @slot\n\t\t * @public\n\t\t */\n\t\theader: {\n\t\t\ttype: HTMLElement,\n\t\t},\n\n\t\t/**\n\t\t * Defines the footer HTML Element.\n\t\t *\n\t\t * @type {HTMLElement[]}\n\t\t * @slot\n\t\t * @public\n\t\t */\n\t\tfooter: {\n\t\t\ttype: HTMLElement,\n\t\t},\n\t},\n\tproperties: /** @lends sap.ui.webcomponents.main.Popup.prototype */ {\n\t\t/**\n\t\t * Defines the ID of the HTML Element, which will get the initial focus.\n\t\t *\n\t\t * @type {string}\n\t\t * @defaultvalue \"\"\n\t\t * @public\n\t\t */\n\t\tinitialFocus: {\n\t\t\ttype: String,\n\t\t},\n\n\t\t/**\n\t\t * Defines the header text.\n\t\t *

\n\t\t * Note: If header slot is provided, the headerText is ignored.\n\t\t *\n\t\t * @type {string}\n\t\t * @defaultvalue \"\"\n\t\t * @public\n\t\t */\n\t\theaderText: {\n\t\t\ttype: String,\n\t\t},\n\n\t\t/**\n\t\t * Indicates if the elements is on focus\n\t\t * @private\n\t\t */\n\t\topened: {\n\t\t\ttype: Boolean,\n\t\t},\n\n\t\t_zIndex: {\n\t\t\ttype: Integer,\n\t\t\tnoAttribute: true,\n\t\t},\n\n\t\t_hideBlockLayer: {\n\t\t\ttype: Boolean,\n\t\t\tnoAttribute: true,\n\t\t},\n\n\t\t/**\n\t\t * @private\n\t\t */\n\t\t_disableInitialFocus: {\n\t\t\ttype: Boolean,\n\t\t},\n\t},\n\tevents: /** @lends sap.ui.webcomponents.main.Popup.prototype */ {\n\n\t\t/**\n\t\t * Fired before the component is opened.\n\t\t *\n\t\t * @public\n\t\t * @event\n\t\t */\n\n\t\tbeforeOpen: {},\n\t\t/**\n\t\t * Fired after the component is opened.\n\t\t *\n\t\t * @public\n\t\t * @event\n\t\t */\n\n\t\tafterOpen: {},\n\t\t/**\n\t\t * Fired before the component is closed.\n\t\t *\n\t\t * @public\n\t\t * @event\n\t\t * @param {Boolean} escPressed Indicates that ESC key has triggered the event.\n\t\t */\n\n\t\tbeforeClose: {\n\t\t\tescPressed: { type: Boolean },\n\t\t},\n\n\t\t/**\n\t\t * Fired after the component is closed.\n\t\t *\n\t\t * @public\n\t\t * @event\n\t\t */\n\t\tafterClose: {},\n\t},\n};\n\nconst openedPopups = [];\nlet isBodyScrollingDisabled = false;\nlet customBLyBackStyleInserted = false;\n\nfunction getParentHost(node) {\n\twhile (node && !node.host) {\n\t\tnode = node.parentNode;\n\t}\n\n\treturn node && node.host;\n}\n\nfunction createBLyBackStyle() {\n\tif (customBLyBackStyleInserted) {\n\t\treturn;\n\t}\n\n\tcustomBLyBackStyleInserted = true;\n\n\tconst bodyStyleSheet = document.createElement(\"style\");\n\tbodyStyleSheet.type = \"text/css\";\n\tbodyStyleSheet.innerHTML = `\n\t\t.ui5-popup-BLy--back {\n\t\t\twidth: 100%;\n\t\t\theight: 100%;\n\t\t\tposition: fixed;\n\t\t\toverflow: hidden;\n\t\t}\n\t`;\n\tdocument.head.appendChild(bodyStyleSheet);\n}\n\nfunction updateBlockLayers() {\n\tlet popup,\n\t\ti,\n\t\thasModal = false;\n\n\tfor (i = openedPopups.length - 1; i >= 0; i--) {\n\t\tpopup = openedPopups[i];\n\t\tif (hasModal) {\n\t\t\tpopup._hideBlockLayer = true;\n\t\t} else {\n\t\t\tif (popup.isModal()) { // eslint-disable-line\n\t\t\t\tpopup._hideBlockLayer = false;\n\t\t\t\thasModal = true;\n\t\t\t}\n\t\t}\n\t}\n\n\tupdateBodyScrolling(hasModal);\n}\n\nfunction updateBodyScrolling(hasModal) {\n\tif (isBodyScrollingDisabled === hasModal) {\n\t\treturn;\n\t}\n\n\tcreateBLyBackStyle();\n\n\tif (hasModal) {\n\t\taddBodyStyles();\n\t} else {\n\t\tremoveBodyStyles();\n\t}\n\tisBodyScrollingDisabled = hasModal;\n}\n\nfunction addBodyStyles() {\n\tdocument.body.style.top = `-${window.pageYOffset}px`;\n\tdocument.body.classList.add(\"ui5-popup-BLy--back\");\n}\n\nfunction removeBodyStyles() {\n\tdocument.body.classList.remove(\"ui5-popup-BLy--back\");\n\twindow.scrollTo(0, -parseFloat(document.body.style.top));\n\tdocument.body.style.top = \"\";\n}\n\n/**\n * @class\n *

Overview

\n * Represents a base class for all popup Web Components.\n *\n * @constructor\n * @author SAP SE\n * @alias sap.ui.webcomponents.main.Popup\n * @extends sap.ui.webcomponents.base.UI5Element\n * @public\n */\nclass Popup extends UI5Element {\n\tstatic get metadata() {\n\t\treturn metadata;\n\t}\n\n\tstatic get styles() {\n\t\treturn styles;\n\t}\n\n\tstatic hitTest(popup, event) {\n\t\tconst indexOf = openedPopups.indexOf(popup);\n\t\tlet openedPopup;\n\n\t\tfor (let i = indexOf; i < openedPopups.length; i++) {\n\t\t\topenedPopup = openedPopups[i];\n\t\t\tif (openedPopup.hitTest(event)) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n\n\tstatic hasModalPopup() {\n\t\tfor (let i = 0; i < openedPopups.length; i++) {\n\t\t\tif (openedPopups[i].isModal()) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis._documentKeyDownHandler = this.documentKeyDown.bind(this);\n\t}\n\n\tisTopPopup() {\n\t\treturn openedPopups.indexOf(this) === openedPopups.length - 1;\n\t}\n\n\tisModal() {\n\t\treturn true;\n\t}\n\n\tdocumentKeyDown(event) {\n\t\tif (isEscape(event) && this.isTopPopup()) {\n\t\t\tthis.escPressed = true;\n\t\t\tthis.close();\n\t\t}\n\t}\n\n\tgetPopupDomRef() {\n\t\tconst domRef = this.getDomRef();\n\t\treturn domRef && domRef.querySelector(\".ui5-popup-root\");\n\t}\n\n\thitTest(_event) {\n\t\treturn true;\n\t}\n\n\topen() {\n\t\tthis.fireEvent(\"beforeOpen\", { });\n\n\t\tthis._isFirstTimeRendered = false;\n\n\t\tthis._zIndex = getNextZIndex();\n\t\topenedPopups.push(this);\n\t\taddOpenedPopup(this);\n\n\n\t\tupdateBlockLayers();\n\t}\n\n\tclose() {\n\t\tthis.fireEvent(\"beforeClose\", {\n\t\t\tescPressed: this.escPressed,\n\t\t}, true);\n\n\t\tthis.escPressed = false;\n\n\t\tconst index = openedPopups.indexOf(this);\n\t\topenedPopups.splice(index, 1);\n\n\t\tif (this.opened) {\n\t\t\tremoveOpenedPopup(this);\n\t\t}\n\n\t\tupdateBlockLayers();\n\t}\n\n\tinitInitialFocus() {\n\t\tconst initialFocus = this.initialFocus;\n\t\tlet initialFocusDomRef = this.initialFocus;\n\n\t\tif (initialFocus && typeof initialFocus === \"string\") {\n\t\t\tinitialFocusDomRef = document.getElementById(initialFocus);\n\n\t\t\tif (!initialFocusDomRef) {\n\t\t\t\tconst parentHost = getParentHost(this);\n\t\t\t\tif (parentHost) {\n\t\t\t\t\tinitialFocusDomRef = parentHost.shadowRoot.querySelector(`#${initialFocus}`);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tthis._initialFocusDomRef = initialFocusDomRef;\n\t}\n\n\tonFirstTimeAfterRendering() {\n\t\tif (this.isTopPopup()) {\n\t\t\tthis.initInitialFocus();\n\t\t\tthis.setInitialFocus(this.getPopupDomRef());\n\t\t}\n\n\t\tthis.fireEvent(\"afterOpen\", {});\n\t}\n\n\tonAfterRendering() {\n\t\tif (!this.opened) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!this._isFirstTimeRendered) {\n\t\t\tthis.onFirstTimeAfterRendering();\n\t\t\tthis._isFirstTimeRendered = true;\n\t\t}\n\t}\n\n\tsetInitialFocus(container) {\n\t\tif (this._disableInitialFocus) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this._initialFocusDomRef) {\n\t\t\tif (this._initialFocusDomRef !== document.activeElement) {\n\t\t\t\tthis._initialFocusDomRef.focus();\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\n\t\tif (!container) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst focusableElement = getFirstFocusableElement(container);\n\n\t\tif (focusableElement) {\n\t\t\tfocusableElement.focus();\n\t\t} else {\n\t\t\tcontainer.focus();\n\t\t}\n\t}\n\n\t_onfocusin(event) {\n\t\tthis.preserveFocus(event, this.getPopupDomRef());\n\t}\n\n\tpreserveFocus(event, container) {\n\t\tif (!this.isTopPopup()) {\n\t\t\treturn;\n\t\t}\n\n\t\tlet target = event.target;\n\n\t\twhile (target.shadowRoot && target.shadowRoot.activeElement) {\n\t\t\ttarget = target.shadowRoot.activeElement;\n\t\t}\n\n\t\tlet focusableElement;\n\t\tlet isSpecialCase = false;\n\n\t\tswitch (target.id) {\n\t\tcase `${this._id}-firstfe`:\n\t\t\tfocusableElement = getLastFocusableElement(container);\n\t\t\tisSpecialCase = true;\n\t\t\tbreak;\n\t\tcase `${this._id}-lastfe`:\n\t\t\tfocusableElement = getFirstFocusableElement(container);\n\t\t\tisSpecialCase = true;\n\t\t\tbreak;\n\t\tcase `${this._id}-blocklayer`:\n\t\t\tfocusableElement = this._currentFocusedElement\n\t\t\t\t|| getFirstFocusableElement(container);\n\t\t\tisSpecialCase = true;\n\t\t\tbreak;\n\t\t}\n\n\t\tif (focusableElement) {\n\t\t\tfocusableElement.focus();\n\t\t} else if (isSpecialCase) {\n\t\t\tcontainer.focus();\n\t\t}\n\n\t\tthis._currentFocusedElement = focusableElement || document.activeElement;\n\t}\n\n\tstoreCurrentFocus() {\n\t\tlet element = document.activeElement;\n\n\t\twhile (element.shadowRoot && element.shadowRoot.activeElement) {\n\t\t\telement = element.shadowRoot.activeElement;\n\t\t}\n\n\t\tthis._lastFocusableElement = (element && typeof element.focus === \"function\") ? element : null;\n\t}\n\n\tresetFocus() {\n\t\tif (!this._lastFocusableElement) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst lastFocusableElement = this._lastFocusableElement;\n\t\tif (lastFocusableElement) {\n\t\t\tlastFocusableElement.focus();\n\t\t}\n\n\t\tthis._lastFocusableElement = null;\n\t}\n\n\tonExitDOM() {\n\t\tremoveBodyStyles();\n\t}\n\n\tget hasHeader() {\n\t\tconst hasHeaderText = this.headerText && this.headerText.length;\n\t\treturn !!(hasHeaderText || this.header.length);\n\t}\n\n\tget hasFooter() {\n\t\treturn !!this.footer.length;\n\t}\n\n\tget role() {\n\t\treturn \"heading\";\n\t}\n}\n\nexport default Popup;\n","\n/* eslint no-unused-vars: 0 */\nimport ifDefined from '@ui5/webcomponents-base/dist/renderer/ifDefined.js';\nimport { html, svg, repeat, classMap, styleMap } from '@ui5/webcomponents-base/dist/renderer/LitRenderer.js';\nconst block0 = (context) => { return html`
\t\t\t${ context.hasHeader ? block1(context) : undefined }
\t\t\t${ context.hasFooter ? block4(context) : undefined }
`; };\nconst block1 = (context) => { return html`
\t\t\t${ context.header.length ? block2(context) : block3(context) }
\t`; };\nconst block2 = (context) => { return html`
\t\t\t`; };\nconst block3 = (context) => { return html`

${ifDefined(context.headerText)}

\t\t\t`; };\nconst block4 = (context) => { return html`
\t`; };\n\nexport default block0;","import { registerThemeProperties } from \"@ui5/webcomponents-base/dist/asset-registries/Themes.js\";\n\nimport defaultThemeBase from \"@ui5/webcomponents-theme-base/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js\";\nimport defaultTheme from \"./sap_fiori_3/parameters-bundle.css.js\";\n\nregisterThemeProperties(\"@ui5/webcomponents-theme-base\", \"sap_fiori_3\", defaultThemeBase);\nregisterThemeProperties(\"@ui5/webcomponents\", \"sap_fiori_3\", defaultTheme);\nexport default \".ui5-dialog-root-parent{position:fixed;left:0;right:0;top:0;bottom:0;display:flex;justify-content:center;align-items:center;overflow:hidden}:host([stretch]) .ui5-dialog-root{width:90%;height:93%;min-width:0;min-height:0}:host([stretch]) .ui5-phone.ui5-dialog-root-parent .ui5-dialog-root{width:100%;height:100%;box-shadow:none;border-radius:0}.ui5-dialog-root{display:flex;flex-direction:column;overflow:hidden;min-width:25rem}.ui5-phone{min-width:0}.ui5-dialog-root footer,.ui5-dialog-root header{flex-shrink:0}.ui5-dialog-section{overflow:hidden;flex:1 1 auto;display:flex}.ui5-dialog-section .ui5-popup-content{flex-basis:100%}\";","import litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\n\nimport { isPhone } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport Popup from \"./Popup.js\";\n// Template\nimport DialogTemplate from \"./generated/templates/DialogTemplate.lit.js\";\n\n// Styles\nimport dialogCss from \"./generated/themes/Dialog.css.js\";\n\n/**\n * @public\n */\nconst metadata = {\n\ttag: \"ui5-dialog\",\n\tproperties: /** @lends sap.ui.webcomponents.main.Dialog.prototype */ {\n\t\t/**\n\t\t * Determines whether the ui5-dialog should be stretched to fullscreen.\n\t\t *

\n\t\t * Note: The ui5-dialog will be stretched to aproximetly\n\t\t * 90% of the viewport.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @defaultvalue false\n\t\t * @public\n\t\t */\n\t\tstretch: {\n\t\t\ttype: Boolean,\n\t\t},\n\t},\n};\n\n/**\n * @class\n *

Overview

\n * The ui5-dialog component is used to temporarily display some information in a\n * size-limited window in front of the regular app screen.\n * It is used to prompt the user for an action or a confirmation.\n * The ui5-dialog interrupts the current app processing as it is the only focused UI element and\n * the main screen is dimmed/blocked.\n * The dialog combines concepts known from other technologies where the windows have\n * names such as dialog box, dialog window, pop-up, pop-up window, alert box, or message box.\n *

\n * The ui5-dialog is modal, which means that user action is required before returning to the parent window is possible.\n * The content of the ui5-dialog is fully customizable.\n *\n *

Structure

\n * A ui5-dialog consists of a header, content, and a footer for action buttons.\n * The ui5-dialog is usually displayed at the center of the screen.\n *\n *

Responsive Behavior

\n * The stretch property can be used to stretch the\n * ui5-dialog on full screen.\n *\n *

ES6 Module Import

\n *\n * import \"@ui5/webcomponents/dist/Dialog\";\n *\n * @constructor\n * @author SAP SE\n * @alias sap.ui.webcomponents.main.Dialog\n * @extends Popup\n * @tagname ui5-dialog\n * @public\n */\nclass Dialog extends Popup {\n\tstatic get metadata() {\n\t\treturn metadata;\n\t}\n\n\tstatic get render() {\n\t\treturn litRender;\n\t}\n\n\tstatic get template() {\n\t\treturn DialogTemplate;\n\t}\n\n\tstatic get styles() {\n\t\treturn [Popup.styles, dialogCss];\n\t}\n\n\t/**\n\t* Opens the ui5-dialog.\n\t* @public\n\t*/\n\topen() {\n\t\tif (this.opened) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst cancelled = super.open();\n\t\tif (cancelled) {\n\t\t\treturn true;\n\t\t}\n\n\t\tthis.storeCurrentFocus();\n\n\t\tthis.opened = true;\n\t}\n\n\t/**\n\t* Closes the ui5-dialog.\n\t* @public\n\t*/\n\tclose() {\n\t\tif (!this.opened) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst cancelled = super.close();\n\t\tif (cancelled) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.opened = false;\n\n\t\tthis.resetFocus();\n\n\t\tthis.fireEvent(\"afterClose\", { });\n\t}\n\n\tget classes() {\n\t\treturn {\n\t\t\tdialogParent: {\n\t\t\t\t\"ui5-phone\": isPhone(),\n\t\t\t},\n\t\t\tblockLayer: {\n\t\t\t\t\"ui5-popup-BLy\": true,\n\t\t\t\t\"ui5-popup-blockLayer\": true,\n\t\t\t\t\"ui5-popup-blockLayer--hidden\": this._hideBlockLayer,\n\t\t\t},\n\t\t};\n\t}\n\n\tget zindex() {\n\t\treturn `z-index: ${this._zIndex + 1};`;\n\t}\n\n\tget blockLayer() {\n\t\treturn `z-index: ${this._zIndex};`;\n\t}\n\n\tget headerAriaLabelledBy() {\n\t\tif (this.headerText || this.header) {\n\t\t\treturn `${this._id}-popup-heading`;\n\t\t}\n\t\treturn undefined;\n\t}\n}\n\nDialog.define();\n\nexport default Dialog;\n","import DataType from \"@ui5/webcomponents-base/dist/types/DataType.js\";\n\n/**\n * @lends sap.ui.webcomponents.main.types.TitleLevel.prototype\n * @public\n */\nconst TitleLevels = {\n\t/**\n\t * Renders h1 tag.\n\t * @public\n\t * @type {H1}\n\t */\n\tH1: \"H1\",\n\n\t/**\n\t * Renders h2 tag.\n\t * @public\n\t * @type {H2}\n\t */\n\tH2: \"H2\",\n\n\t/**\n\t * Renders h3 tag.\n\t * @public\n\t * @type {H3}\n\t */\n\tH3: \"H3\",\n\n\t/**\n\t * Renders h4 tag.\n\t * @public\n\t * @type {H4}\n\t */\n\tH4: \"H4\",\n\n\t/**\n\t * Renders h5 tag.\n\t * @public\n\t * @type {H5}\n\t */\n\tH5: \"H5\",\n\n\t/**\n\t * Renders h6 tag.\n\t * @public\n\t * @type {H6}\n\t */\n\tH6: \"H6\",\n};\n\n/**\n * @class\n * Defines the ui5-title level\n * @constructor\n * @author SAP SE\n * @alias sap.ui.webcomponents.main.types.TitleLevel\n * @public\n * @enum {string}\n */\nclass TitleLevel extends DataType {\n\tstatic isValid(value) {\n\t\treturn !!TitleLevels[value];\n\t}\n}\n\nTitleLevel.generataTypeAcessors(TitleLevels);\n\nexport default TitleLevel;\n","\n/* eslint no-unused-vars: 0 */\nimport ifDefined from '@ui5/webcomponents-base/dist/renderer/ifDefined.js';\nimport { html, svg, repeat, classMap, styleMap } from '@ui5/webcomponents-base/dist/renderer/LitRenderer.js';\nconst block0 = (context) => { return html`${ context.h1 ? block1(context) : undefined }${ context.h2 ? block2(context) : undefined }${ context.h3 ? block3(context) : undefined }${ context.h4 ? block4(context) : undefined }${ context.h5 ? block5(context) : undefined }${ context.h6 ? block6(context) : undefined }`; };\nconst block1 = (context) => { return html`\t\t\t\t`; };\nconst block2 = (context) => { return html`\t\t\t\t`; };\nconst block3 = (context) => { return html`\t\t\t\t`; };\nconst block4 = (context) => { return html`\t\t\t\t`; };\nconst block5 = (context) => { return html`\t\t\t\t`; };\nconst block6 = (context) => { return html`\t\t\t\t`; };\n\nexport default block0;","import { registerThemeProperties } from \"@ui5/webcomponents-base/dist/asset-registries/Themes.js\";\n\nimport defaultThemeBase from \"@ui5/webcomponents-theme-base/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js\";\nimport defaultTheme from \"./sap_fiori_3/parameters-bundle.css.js\";\n\nregisterThemeProperties(\"@ui5/webcomponents-theme-base\", \"sap_fiori_3\", defaultThemeBase);\nregisterThemeProperties(\"@ui5/webcomponents\", \"sap_fiori_3\", defaultTheme);\nexport default \":host(:not([hidden])){display:block}:host{max-width:100%;color:var(--sapGroup_TitleTextColor);font-family:var(--sapFontFamily);text-shadow:var(--sapContent_TextShadow)}.ui5-title-root{display:inline-block;position:relative;font-weight:400;box-sizing:border-box;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%;vertical-align:bottom;-webkit-margin-before:0;-webkit-margin-after:0;-webkit-margin-start:0;-webkit-margin-end:0;margin:0;cursor:text}:host([wrap]) .ui5-title-root{white-space:pre-line}:host .ui5-title-root{font-size:var(--ui5_title_level_2Size)}:host([level=H1]) .ui5-title-root{font-size:var(--ui5_title_level_1Size)}:host([level=H2]) .ui5-title-root{font-size:var(--ui5_title_level_2Size)}:host([level=H3]) .ui5-title-root{font-size:var(--ui5_title_level_3Size)}:host([level=H4]) .ui5-title-root{font-size:var(--ui5_title_level_4Size)}:host([level=H5]) .ui5-title-root{font-size:var(--ui5_title_level_5Size)}:host([level=H6]) .ui5-title-root{font-size:var(--ui5_title_level_6Size)}\";","import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport TitleLevel from \"./types/TitleLevel.js\";\n\n// Template\nimport TitleTemplate from \"./generated/templates/TitleTemplate.lit.js\";\n\n// Styles\nimport titleCss from \"./generated/themes/Title.css.js\";\n\n/**\n * @public\n */\nconst metadata = {\n\ttag: \"ui5-title\",\n\tproperties: /** @lends sap.ui.webcomponents.main.Title.prototype */ {\n\n\t\t/**\n\t\t * Defines whether the ui5-title would wrap.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @defaultvalue false\n\t\t * @public\n\t\t*/\n\t\twrap: {\n\t\t\ttype: Boolean,\n\t\t},\n\n\t\t/**\n\t\t * Defines the ui5-title level.\n\t\t * Available options are: \"H6\" to \"H1\".\n\t\t *\n\t\t * @type {TitleLevel}\n\t\t * @defaultvalue \"H2\"\n\t\t * @public\n\t\t*/\n\t\tlevel: {\n\t\t\ttype: TitleLevel,\n\t\t\tdefaultValue: TitleLevel.H2,\n\t\t},\n\t},\n\tslots: /** @lends sap.ui.webcomponents.main.Title.prototype */ {\n\t\t/**\n\t\t * Defines the text of the ui5-title.\n\t\t *

\n\t\t * Note: Аlthough this slot accepts HTML Elements, it is strongly recommended that you only use text in order to preserve the intended design.\n\t\t *\n\t\t * @type {Node[]}\n\t\t * @slot\n\t\t * @public\n\t\t */\n\t\t\"default\": {\n\t\t\ttype: Node,\n\t\t},\n\t},\n};\n\n/**\n * @class\n *\n *

Overview

\n *\n * The ui5-title component is used to display titles inside a page.\n * It is a simple, large-sized text with explicit header/title semantics.\n *\n *

ES6 Module Import

\n *\n * import \"@ui5/webcomponents/dist/Title\";\n *\n * @constructor\n * @author SAP SE\n * @alias sap.ui.webcomponents.main.Title\n * @extends sap.ui.webcomponents.base.UI5Element\n * @tagname ui5-title\n * @public\n */\nclass Title extends UI5Element {\n\tstatic get metadata() {\n\t\treturn metadata;\n\t}\n\n\tstatic get render() {\n\t\treturn litRender;\n\t}\n\n\tstatic get template() {\n\t\treturn TitleTemplate;\n\t}\n\n\tstatic get styles() {\n\t\treturn titleCss;\n\t}\n\n\tget normalizedLevel() {\n\t\treturn this.level.toLowerCase();\n\t}\n\n\tget h1() {\n\t\treturn this.normalizedLevel === \"h1\";\n\t}\n\n\tget h2() {\n\t\treturn this.normalizedLevel === \"h2\";\n\t}\n\n\tget h3() {\n\t\treturn this.normalizedLevel === \"h3\";\n\t}\n\n\tget h4() {\n\t\treturn this.normalizedLevel === \"h4\";\n\t}\n\n\tget h5() {\n\t\treturn this.normalizedLevel === \"h5\";\n\t}\n\n\tget h6() {\n\t\treturn this.normalizedLevel === \"h6\";\n\t}\n}\n\nTitle.define();\n\nexport default Title;\n","import { registerThemeProperties } from \"@ui5/webcomponents-base/dist/asset-registries/Themes.js\";\n\nimport defaultThemeBase from \"@ui5/webcomponents-theme-base/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js\";\nimport defaultTheme from \"./sap_fiori_3/parameters-bundle.css.js\";\n\nregisterThemeProperties(\"@ui5/webcomponents-theme-base\", \"sap_fiori_3\", defaultThemeBase);\nregisterThemeProperties(\"@ui5/webcomponents\", \"sap_fiori_3\", defaultTheme);\nexport default \":host{display:none;position:fixed;background:var(--sapGroup_ContentBackground);box-shadow:var(--sapContent_Shadow2);border-radius:.25rem;box-sizing:border-box}.ui5-popover-root{background:inherit;border-radius:inherit;width:100%;height:100%;box-sizing:border-box;display:flex;flex-direction:column;overflow:hidden}@media screen and (-ms-high-contrast:active){.ui5-popover-root{border:1px solid var(--sapPageFooter_BorderColor)}}:host([modal]):before{content:\\\"\\\";position:fixed;background-color:#000;opacity:.6;top:0;left:0;right:0;bottom:0;outline:0 none;z-index:-1}.ui5-popover-arr{pointer-events:none;display:block;width:1rem;height:1rem;position:absolute;overflow:hidden}.ui5-popover-arr:after{content:\\\"\\\";display:block;width:.7rem;height:.7rem;background-color:var(--sapGroup_ContentBackground);box-shadow:var(--sapContent_Shadow2);transform:rotate(-45deg)}:host([actual-placement-type=Bottom]) .ui5-popover-arr{left:calc(50% - .5625rem);top:-.5rem;height:.5625rem}:host([actual-placement-type=Bottom]) .ui5-popover-arr:after{margin:.1875rem 0 0 .1875rem}:host([actual-placement-type=Left]) .ui5-popover-arr{top:calc(50% - .5625rem);right:-.5625rem;width:.5625rem}:host([actual-placement-type=Left]) .ui5-popover-arr:after{margin:.1875rem 0 0 -.375rem}:host([actual-placement-type=Top]) .ui5-popover-arr{left:calc(50% - .5625rem);height:.5625rem;bottom:calc(-1*(var(--_ui5_popover_content_padding) + 2px))}:host([actual-placement-type=Top]) .ui5-popover-arr:after{margin:-.375rem 0 0 .125rem}:host(:not([actual-placement-type])) .ui5-popover-arr,:host([actual-placement-type=Right]) .ui5-popover-arr{left:-.5625rem;top:calc(50% - .5625rem);width:.5625rem;height:1rem}:host(:not([actual-placement-type])) .ui5-popover-arr:after,:host([actual-placement-type=Right]) .ui5-popover-arr:after{margin:.125rem 0 0 .25rem}:host([no-arrow]) .ui5-popover-arr{display:none}.ui5-popover-header-root,.ui5-popup-header-text{border-bottom:1px solid var(--sapPageFooter_BorderColor)}.ui5-popover-footer-root{background:var(--sapPageFooter_Background);border-top:1px solid var(--sapPageFooter_BorderColor);color:var(--sapPageFooter_TextColor)}.ui5-popover-footer-root,.ui5-popover-header-root,:host([header-text]) .ui5-popup-header-text{margin:0;color:var(--sapPageHeader_TextColor);font-size:1rem;font-weight:400;font-family:var(--sapFontFamily);display:flex;justify-content:center;align-items:center}.ui5-popover-content{overflow:auto;padding:var(--_ui5_popover_content_padding);box-sizing:border-box}:host([no-padding]) .ui5-popover-content{padding:0}:host([header-text]) .ui5-popup-header-text{padding:0 .25rem;text-align:center;min-height:3rem;max-height:3rem;line-height:3rem;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;max-width:100%;display:inline-block}:host(:not([header-text])) .ui5-popup-header-text{display:none}:host{--_ui5_input_width:100%;min-width:6.25rem;min-height:2rem}:host(:not([with-padding])){--_ui5_popover_content_padding:0}:host([opened]){display:inline-block}.ui5-responsive-popover-header{height:var(--_ui5-responnsive_popover_header_height);display:flex;justify-content:space-between;align-items:center;padding:0 0 0 1rem;box-shadow:var(--sapContent_HeaderShadow)}:host [dir=rtl] .ui5-responsive-popover-header{padding:0 1rem 0 0}.ui5-responsive-popover-header-text{display:flex;align-items:center;width:calc(100% - var(--_ui5_button_base_min_width))}\";","import litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport { isPhone } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport { getNextZIndex } from \"./popup-utils/PopupUtils.js\";\nimport ResponsivePopoverTemplate from \"./generated/templates/ResponsivePopoverTemplate.lit.js\";\nimport Popover from \"./Popover.js\";\nimport Dialog from \"./Dialog.js\";\nimport Button from \"./Button.js\";\nimport Title from \"./Title.js\";\nimport \"@ui5/webcomponents-icons/dist/icons/decline.js\";\n\n// Styles\nimport ResponsivePopoverCss from \"./generated/themes/ResponsivePopover.css.js\";\n\nconst POPOVER_MIN_WIDTH = 100;\n\n/**\n * @public\n */\nconst metadata = {\n\ttag: \"ui5-responsive-popover\",\n\tproperties: /** @lends sap.ui.webcomponents.main.ResponsivePopover.prototype */ {\n\n\t\t/**\n\t\t * Defines whether the component will stretch to fit its content.\n\t\t *
Note: by default the popover will be as wide as its opener component and will grow if the content is not fitting.\n\t\t *
Note: if set to true, it will take only as much space as it needs.\n\t\t * @private\n\t\t */\n\t\tnoStretch: {\n\t\t\ttype: Boolean,\n\t\t},\n\n\t\t/**\n\t\t * Defines if padding would be added around the content.\n\t\t * @private\n\t\t */\n\t\twithPadding: {\n\t\t\ttype: Boolean,\n\t\t},\n\n\t\t/**\n\t\t * Defines if only the content would be displayed (without header and footer) in the popover on Desktop.\n\t\t * By default both the header and footer would be displayed.\n\t\t * @private\n\t\t */\n\t\tcontentOnlyOnDesktop: {\n\t\t\ttype: Boolean,\n\t\t},\n\n\t\t/**\n\t\t * Used internaly for controls which must not have header.\n\t\t * @private\n\t\t */\n\t\t_hideHeader: {\n\t\t\ttype: Boolean,\n\t\t},\n\t},\n};\n\n/**\n * @class\n *\n *

Overview

\n * The ui5-responsive-popover acts as a Popover on desktop and tablet, while on phone it acts as a Dialog.\n * The component improves tremendously the user experience on mobile.\n *\n *

Usage

\n * Use it when you want to make sure that all the content is visible on any device.\n *\n * @constructor\n * @author SAP SE\n * @alias sap.ui.webcomponents.main.ResponsivePopover\n * @extends Popover\n * @tagname ui5-responsive-popover\n * @since 1.0.0-rc.6\n * @public\n */\nclass ResponsivePopover extends Popover {\n\tstatic get metadata() {\n\t\treturn metadata;\n\t}\n\n\tstatic get render() {\n\t\treturn litRender;\n\t}\n\n\tstatic get styles() {\n\t\treturn ResponsivePopoverCss;\n\t}\n\n\tstatic get template() {\n\t\treturn ResponsivePopoverTemplate;\n\t}\n\n\tstatic async onDefine() {\n\t\tawait Promise.all([\n\t\t\tButton.define(),\n\t\t\tDialog.define(),\n\t\t\tTitle.define(),\n\t\t]);\n\t}\n\n\t/**\n\t * Opens popover on desktop and dialog on mobile.\n\t * @param {HTMLElement} opener the element that the popover is opened by\n\t * @public\n\t */\n\topen(opener) {\n\t\tif (!isPhone()) {\n\t\t\t// make popover width be >= of the opener's width\n\t\t\tif (!this.noStretch) {\n\t\t\t\tthis._minWidth = Math.max(POPOVER_MIN_WIDTH, opener.getBoundingClientRect().width);\n\t\t\t}\n\n\t\t\tthis.openBy(opener);\n\t\t} else {\n\t\t\tthis.style.zIndex = getNextZIndex();\n\t\t\tthis._dialog.open();\n\t\t}\n\t}\n\n\t/**\n\t * Closes the popover/dialog.\n\t * @public\n\t */\n\tclose() {\n\t\tif (!isPhone()) {\n\t\t\tsuper.close();\n\t\t} else {\n\t\t\tthis._dialog.close();\n\t\t}\n\t}\n\n\tget styles() {\n\t\tconst popoverStyles = super.styles;\n\n\t\tpopoverStyles.root = {\n\t\t\t\"min-width\": `${this._minWidth}px`,\n\t\t};\n\n\t\treturn popoverStyles;\n\t}\n\n\tget _dialog() {\n\t\treturn this.shadowRoot.querySelector(\"ui5-dialog\");\n\t}\n\n\tget _isPhone() {\n\t\treturn isPhone();\n\t}\n\n\tget _displayHeader() {\n\t\treturn this._isPhone || !this.contentOnlyOnDesktop;\n\t}\n\n\tget _displayFooter() {\n\t\treturn this._isPhone || !this.contentOnlyOnDesktop;\n\t}\n\n\t_afterDialogOpen(event) {\n\t\tthis.opened = true;\n\t\tthis._propagateDialogEvent(event);\n\t}\n\n\t_afterDialogClose(event) {\n\t\tthis.opened = false;\n\t\tthis._propagateDialogEvent(event);\n\t}\n\n\t_propagateDialogEvent(event) {\n\t\tconst type = event.type.replace(\"ui5-\", \"\");\n\n\t\tthis.fireEvent(type, event.detail);\n\t}\n}\n\nResponsivePopover.define();\n\nexport default ResponsivePopover;\n","class EventProvider {\n\tconstructor() {\n\t\tthis._eventRegistry = {};\n\t}\n\n\tattachEvent(eventName, fnFunction) {\n\t\tconst eventRegistry = this._eventRegistry;\n\t\tlet eventListeners = eventRegistry[eventName];\n\n\t\tif (!Array.isArray(eventListeners)) {\n\t\t\teventRegistry[eventName] = [];\n\t\t\teventListeners = eventRegistry[eventName];\n\t\t}\n\n\t\teventListeners.push({\n\t\t\t\"function\": fnFunction,\n\t\t});\n\t}\n\n\tdetachEvent(eventName, fnFunction) {\n\t\tconst eventRegistry = this._eventRegistry;\n\t\tlet eventListeners = eventRegistry[eventName];\n\n\t\tif (!eventListeners) {\n\t\t\treturn;\n\t\t}\n\n\t\teventListeners = eventListeners.filter(event => {\n\t\t\treturn event[\"function\"] !== fnFunction; // eslint-disable-line\n\t\t});\n\n\t\tif (eventListeners.length === 0) {\n\t\t\tdelete eventRegistry[eventName];\n\t\t}\n\t}\n\n\tfireEvent(eventName, data) {\n\t\tconst eventRegistry = this._eventRegistry;\n\t\tconst eventListeners = eventRegistry[eventName];\n\n\t\tif (!eventListeners) {\n\t\t\treturn;\n\t\t}\n\n\t\teventListeners.forEach(event => {\n\t\t\tevent[\"function\"].call(this, data); // eslint-disable-line\n\t\t});\n\t}\n\n\tisHandlerAttached(eventName, fnFunction) {\n\t\tconst eventRegistry = this._eventRegistry;\n\t\tconst eventListeners = eventRegistry[eventName];\n\n\t\tif (!eventListeners) {\n\t\t\treturn false;\n\t\t}\n\n\t\tfor (let i = 0; i < eventListeners.length; i++) {\n\t\t\tconst event = eventListeners[i];\n\t\t\tif (event[\"function\"] === fnFunction) { // eslint-disable-line\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n\n\thasListeners(eventName) {\n\t\treturn !!this._eventRegistry[eventName];\n\t}\n}\n\nexport default EventProvider;\n","const NavigationMode = {\n\tAuto: \"Auto\",\n\tVertical: \"Vertical\",\n\tHorizontal: \"Horizontal\",\n};\nexport default NavigationMode;\n","/**\n * @private\n * Different behavior for ItemNavigation.\n */\nconst ItemNavigationBehavior = {\n\t/**\n\t* Static behavior: when border of the items is reached, you can't go out of the cage.\n \t*/\n\tStatic: \"Static\",\n\n\t/**\n\t* Cycling behavior: when border of the items is reached, you can cycle through the items.\n \t*/\n\tCyclic: \"Cyclic\",\n\n\t/**\n\t* Paging behavior: when border of the items is reached, tou can go up/down based on the rowsize(e.g. DayPicker)\n \t*/\n\tPaging: \"Paging\",\n};\nexport default ItemNavigationBehavior;\n","import RenderScheduler from \"../RenderScheduler.js\";\nimport {\n\tisDown,\n\tisUp,\n\tisLeft,\n\tisRight,\n\tisHome,\n\tisEnd,\n} from \"../Keys.js\";\n\nimport EventProvider from \"../EventProvider.js\";\nimport UI5Element from \"../UI5Element.js\";\nimport NavigationMode from \"../types/NavigationMode.js\";\nimport ItemNavigationBehavior from \"../types/ItemNavigationBehavior.js\";\n\n// navigatable items must have id and tabindex\nclass ItemNavigation extends EventProvider {\n\tconstructor(rootWebComponent, options = {}) {\n\t\tsuper();\n\n\t\tthis.currentIndex = options.currentIndex || 0;\n\t\tthis.rowSize = options.rowSize || 1;\n\t\tthis.behavior = options.behavior || ItemNavigationBehavior.Static;\n\t\tthis.hasNextPage = true; // used in Paging mode and controlled from the rootWebComponent\n\t\tthis.hasPrevPage = true; // used in Paging mode and controlled from the rootWebComponent\n\t\tconst navigationMode = options.navigationMode;\n\t\tconst autoNavigation = !navigationMode || navigationMode === NavigationMode.Auto;\n\t\tthis.horizontalNavigationOn = autoNavigation || navigationMode === NavigationMode.Horizontal;\n\t\tthis.verticalNavigationOn = autoNavigation || navigationMode === NavigationMode.Vertical;\n\n\t\tthis.rootWebComponent = rootWebComponent;\n\t\tthis.rootWebComponent.addEventListener(\"keydown\", this.onkeydown.bind(this));\n\t\tthis.rootWebComponent._onComponentStateFinalized = () => {\n\t\t\tthis._init();\n\t\t};\n\t}\n\n\t_init() {\n\t\tthis._getItems().forEach((item, idx) => {\n\t\t\titem._tabIndex = (idx === this.currentIndex) ? \"0\" : \"-1\";\n\t\t});\n\t}\n\n\t_horizontalNavigationOn() {\n\t\treturn this.horizontalNavigationOn;\n\t}\n\n\t_verticalNavigationOn() {\n\t\treturn this.verticalNavigationOn;\n\t}\n\n\tasync _onKeyPress(event) {\n\t\tif (this.currentIndex >= this._getItems().length) {\n\t\t\tthis.onOverflowBottomEdge();\n\t\t} else if (this.currentIndex < 0) {\n\t\t\tthis.onOverflowTopEdge();\n\t\t}\n\n\t\tevent.preventDefault();\n\n\t\tawait RenderScheduler.whenFinished();\n\n\t\tthis.update();\n\t\tthis.focusCurrent();\n\t}\n\n\tonkeydown(event) {\n\t\tif (isUp(event) && this._verticalNavigationOn()) {\n\t\t\treturn this._handleUp(event);\n\t\t}\n\n\t\tif (isDown(event) && this._verticalNavigationOn()) {\n\t\t\treturn this._handleDown(event);\n\t\t}\n\n\t\tif (isLeft(event) && this._horizontalNavigationOn()) {\n\t\t\treturn this._handleLeft(event);\n\t\t}\n\n\t\tif (isRight(event) && this._horizontalNavigationOn()) {\n\t\t\treturn this._handleRight(event);\n\t\t}\n\n\t\tif (isHome(event)) {\n\t\t\treturn this._handleHome(event);\n\t\t}\n\n\t\tif (isEnd(event)) {\n\t\t\treturn this._handleEnd(event);\n\t\t}\n\t}\n\n\t_handleUp(event) {\n\t\tif (this._canNavigate()) {\n\t\t\tthis.currentIndex -= this.rowSize;\n\t\t\tthis._onKeyPress(event);\n\t\t}\n\t}\n\n\t_handleDown(event) {\n\t\tif (this._canNavigate()) {\n\t\t\tthis.currentIndex += this.rowSize;\n\t\t\tthis._onKeyPress(event);\n\t\t}\n\t}\n\n\t_handleLeft(event) {\n\t\tif (this._canNavigate()) {\n\t\t\tthis.currentIndex -= 1;\n\t\t\tthis._onKeyPress(event);\n\t\t}\n\t}\n\n\t_handleRight(event) {\n\t\tif (this._canNavigate()) {\n\t\t\tthis.currentIndex += 1;\n\t\t\tthis._onKeyPress(event);\n\t\t}\n\t}\n\n\t_handleHome(event) {\n\t\tif (this._canNavigate()) {\n\t\t\tconst homeEndRange = this.rowSize > 1 ? this.rowSize : this._getItems().length;\n\t\t\tthis.currentIndex -= this.currentIndex % homeEndRange;\n\t\t\tthis._onKeyPress(event);\n\t\t}\n\t}\n\n\t_handleEnd(event) {\n\t\tif (this._canNavigate()) {\n\t\t\tconst homeEndRange = this.rowSize > 1 ? this.rowSize : this._getItems().length;\n\t\t\tthis.currentIndex += (homeEndRange - 1 - this.currentIndex % homeEndRange); // eslint-disable-line\n\t\t\tthis._onKeyPress(event);\n\t\t}\n\t}\n\n\tupdate(current) {\n\t\tconst origItems = this._getItems();\n\n\t\tif (current) {\n\t\t\tthis.currentIndex = this._getItems().indexOf(current);\n\t\t}\n\n\t\tif (!origItems[this.currentIndex]\n\t\t\t|| (origItems[this.currentIndex]._tabIndex && origItems[this.currentIndex]._tabIndex === \"0\")) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst items = origItems.slice(0);\n\n\t\tfor (let i = 0; i < items.length; i++) {\n\t\t\titems[i]._tabIndex = (i === this.currentIndex ? \"0\" : \"-1\");\n\t\t}\n\n\n\t\tthis.rootWebComponent._invalidate();\n\t}\n\n\tfocusCurrent() {\n\t\tconst currentItem = this._getCurrentItem();\n\t\tif (currentItem) {\n\t\t\tcurrentItem.focus();\n\t\t}\n\t}\n\n\t_canNavigate() {\n\t\tconst currentItem = this._getCurrentItem();\n\n\t\tlet activeElement = document.activeElement;\n\n\t\twhile (activeElement.shadowRoot && activeElement.shadowRoot.activeElement) {\n\t\t\tactiveElement = activeElement.shadowRoot.activeElement;\n\t\t}\n\n\t\treturn currentItem && currentItem === activeElement;\n\t}\n\n\t_getCurrentItem() {\n\t\tconst items = this._getItems();\n\n\t\tif (!items.length) {\n\t\t\treturn null;\n\t\t}\n\n\t\t// normalize the index\n\t\twhile (this.currentIndex >= items.length) {\n\t\t\tthis.currentIndex -= this.rowSize;\n\t\t}\n\n\t\tif (this.currentIndex < 0) {\n\t\t\tthis.currentIndex = 0;\n\t\t}\n\n\t\tconst currentItem = items[this.currentIndex];\n\n\t\tif (currentItem instanceof UI5Element) {\n\t\t\treturn currentItem.getFocusDomRef();\n\t\t}\n\n\t\tif (!this.rootWebComponent.getDomRef()) {\n\t\t\treturn;\n\t\t}\n\n\t\treturn this.rootWebComponent.getDomRef().querySelector(`#${currentItem.id}`);\n\t}\n\n\tset getItemsCallback(fn) {\n\t\tthis._getItems = fn;\n\t}\n\n\tset current(val) {\n\t\tthis.currentIndex = val;\n\t}\n\n\tonOverflowBottomEdge() {\n\t\tconst items = this._getItems();\n\t\tconst offset = this.currentIndex - items.length;\n\n\t\tif (this.behavior === ItemNavigationBehavior.Cyclic) {\n\t\t\tthis.currentIndex = 0;\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.behavior === ItemNavigationBehavior.Paging) {\n\t\t\tthis._handleNextPage();\n\t\t} else {\n\t\t\tthis.currentIndex = items.length - 1;\n\t\t}\n\n\t\tthis.fireEvent(ItemNavigation.BORDER_REACH, { start: false, end: true, offset });\n\t}\n\n\tonOverflowTopEdge() {\n\t\tconst items = this._getItems();\n\t\tconst offset = this.currentIndex + this.rowSize;\n\n\t\tif (this.behavior === ItemNavigationBehavior.Cyclic) {\n\t\t\tthis.currentIndex = items.length - 1;\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.behavior === ItemNavigationBehavior.Paging) {\n\t\t\tthis._handlePrevPage();\n\t\t} else {\n\t\t\tthis.currentIndex = 0;\n\t\t}\n\n\t\tthis.fireEvent(ItemNavigation.BORDER_REACH, { start: true, end: false, offset });\n\t}\n\n\t_handleNextPage() {\n\t\tthis.fireEvent(ItemNavigation.PAGE_BOTTOM);\n\t\tconst items = this._getItems();\n\n\t\tif (!this.hasNextPage) {\n\t\t\tthis.currentIndex = items.length - 1;\n\t\t} else {\n\t\t\tthis.currentIndex = 0;\n\t\t}\n\t}\n\n\t_handlePrevPage() {\n\t\tthis.fireEvent(ItemNavigation.PAGE_TOP);\n\t\tconst items = this._getItems();\n\n\t\tif (!this.hasPrevPage) {\n\t\t\tthis.currentIndex = 0;\n\t\t} else {\n\t\t\tthis.currentIndex = (this.pageSize || items.length) - 1;\n\t\t}\n\t}\n}\n\nItemNavigation.PAGE_TOP = \"PageTop\";\nItemNavigation.PAGE_BOTTOM = \"PageBottom\";\nItemNavigation.BORDER_REACH = \"_borderReach\";\n\nexport default ItemNavigation;\n","import isNodeHidden from \"./isNodeHidden.js\";\n\nconst isNodeTabbable = node => {\n\tif (!node) {\n\t\treturn false;\n\t}\n\n\tconst nodeName = node.nodeName.toLowerCase();\n\n\tif (node.hasAttribute(\"data-sap-no-tab-ref\")) {\n\t\treturn false;\n\t}\n\n\tif (isNodeHidden(node)) {\n\t\treturn false;\n\t}\n\n\tif (nodeName === \"a\" || /input|select|textarea|button|object/.test(nodeName)) {\n\t\treturn !node.disabled;\n\t}\n\n\tconst tabIndex = node.getAttribute(\"tabindex\");\n\tif (tabIndex !== null && tabIndex !== undefined) {\n\t\treturn parseInt(tabIndex) >= 0;\n\t}\n};\n\nexport default isNodeTabbable;\n","import isNodeTabbable from \"./isNodeTabbable.js\";\n\nconst getTabbableElements = node => {\n\treturn getTabbables(node.children);\n};\n\nconst getLastTabbableElement = node => {\n\tconst tabbables = getTabbables(node.children);\n\treturn tabbables.length ? tabbables[tabbables.length - 1] : null;\n};\n\nconst getTabbables = (nodes, tabbables) => {\n\tconst tabbablesNodes = tabbables || [];\n\n\tArray.from(nodes).forEach(currentNode => {\n\t\tif (currentNode.nodeType === Node.TEXT_NODE) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (currentNode.shadowRoot) {\n\t\t\t// get the root node of the ShadowDom (1st none style tag)\n\t\t\tconst children = currentNode.shadowRoot.children;\n\t\t\tcurrentNode = Array.from(children).find(node => node.tagName !== \"STYLE\");\n\t\t}\n\n\t\tif (isNodeTabbable(currentNode)) {\n\t\t\ttabbablesNodes.push(currentNode);\n\t\t}\n\n\t\tif (currentNode.tagName === \"SLOT\") {\n\t\t\tgetTabbables(currentNode.assignedNodes(), tabbablesNodes);\n\t\t} else {\n\t\t\tgetTabbables(currentNode.children, tabbablesNodes);\n\t\t}\n\t});\n\n\treturn tabbablesNodes;\n};\n\nexport {\n\tgetTabbableElements,\n\tgetLastTabbableElement,\n};\n","import DataType from \"@ui5/webcomponents-base/dist/types/DataType.js\";\n\n/**\n * @lends sap.ui.webcomponents.main.types.ListMode.prototype\n * @public\n */\nconst ListModes = {\n\t/**\n\t * Default mode (no selection).\n\t * @public\n\t * @type {None}\n\t */\n\tNone: \"None\",\n\n\t/**\n\t * Right-positioned single selection mode (only one list item can be selected).\n\t * @public\n\t * @type {SingleSelect}\n\t */\n\tSingleSelect: \"SingleSelect\",\n\n\t/**\n\t * Left-positioned single selection mode (only one list item can be selected).\n\t * @public\n\t * @type {SingleSelectBegin}\n\t */\n\tSingleSelectBegin: \"SingleSelectBegin\",\n\n\t/**\n\t * Selected item is highlighted but no selection element is visible\n\t * (only one list item can be selected).\n\t * @public\n\t * @type {SingleSelectEnd}\n\t */\n\tSingleSelectEnd: \"SingleSelectEnd\",\n\n\t/**\n\t * Multi selection mode (more than one list item can be selected).\n\t * @public\n\t * @type {MultiSelect}\n\t */\n\tMultiSelect: \"MultiSelect\",\n\n\t/**\n\t * Delete mode (only one list item can be deleted via provided delete button)\n\t * @public\n\t * @type {Delete}\n\t */\n\tDelete: \"Delete\",\n};\n\n/**\n * @class\n * Defines the type of ui5-list.\n * @constructor\n * @author SAP SE\n * @alias sap.ui.webcomponents.main.types.ListMode\n * @public\n * @enum {string}\n */\nclass ListMode extends DataType {\n\tstatic isValid(value) {\n\t\treturn !!ListModes[value];\n\t}\n}\n\nListMode.generataTypeAcessors(ListModes);\n\nexport default ListMode;\n","import DataType from \"@ui5/webcomponents-base/dist/types/DataType.js\";\n\n/**\n * @lends sap.ui.webcomponents.main.types.ListSeparators.prototype\n * @public\n */\nconst ListSeparatorsTypes = {\n\t/**\n\t * Separators between the items including the last and the first one.\n\t * @public\n\t * @type {All}\n\t */\n\tAll: \"All\",\n\t/**\n\t * Separators between the items.\n\t * Note: This enumeration depends on the theme.\n\t * @public\n\t * @type {Inner}\n\t */\n\tInner: \"Inner\",\n\t/**\n\t * No item separators.\n\t * @public\n\t * @type {None}\n\t */\n\tNone: \"None\",\n};\n\n/**\n * @class\n * Defines which separator style will be applied for the list items.\n * @constructor\n * @author SAP SE\n * @alias sap.ui.webcomponents.main.types.ListSeparators\n * @public\n * @enum {string}\n */\nclass ListSeparators extends DataType {\n\tstatic isValid(value) {\n\t\treturn !!ListSeparatorsTypes[value];\n\t}\n}\n\nListSeparators.generataTypeAcessors(ListSeparatorsTypes);\n\nexport default ListSeparators;\n","import DataType from \"@ui5/webcomponents-base/dist/types/DataType.js\";\n\n/**\n * @lends sap.ui.webcomponents.main.types.BusyIndicatorSize.prototype\n * @public\n */\nconst BusyIndicatorSizes = {\n\t/**\n\t * small size\n\t * @public\n\t * @type {Small}\n\t */\n\tSmall: \"Small\",\n\n\t/**\n\t * medium size\n\t * @public\n\t * @type {Medium}\n\t */\n\tMedium: \"Medium\",\n\n\t/**\n\t * large size\n\t * @public\n\t * @type {Large}\n\t */\n\tLarge: \"Large\",\n};\n\n/**\n * @class\n * Different types of BusyIndicator.\n * @constructor\n * @author SAP SE\n * @alias sap.ui.webcomponents.main.types.BusyIndicatorSize\n * @public\n * @enum {string}\n */\nclass BusyIndicatorSize extends DataType {\n\tstatic isValid(value) {\n\t\treturn !!BusyIndicatorSizes[value];\n\t}\n}\n\nBusyIndicatorSize.generataTypeAcessors(BusyIndicatorSizes);\n\nexport default BusyIndicatorSize;\n","\n/* eslint no-unused-vars: 0 */\nimport ifDefined from '@ui5/webcomponents-base/dist/renderer/ifDefined.js';\nimport { html, svg, repeat, classMap, styleMap } from '@ui5/webcomponents-base/dist/renderer/LitRenderer.js';\nconst block0 = (context) => { return html`
\t\t${ context.active ? block1(context) : undefined }${ context.text ? block2(context) : undefined }
`; };\nconst block1 = (context) => { return html`
\t\t`; };\nconst block2 = (context) => { return html`\t\t\t\t${ifDefined(context.text)}\t\t`; };\n\nexport default block0;","import { registerThemeProperties } from \"@ui5/webcomponents-base/dist/asset-registries/Themes.js\";\n\nimport defaultThemeBase from \"@ui5/webcomponents-theme-base/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js\";\nimport defaultTheme from \"./sap_fiori_3/parameters-bundle.css.js\";\n\nregisterThemeProperties(\"@ui5/webcomponents-theme-base\", \"sap_fiori_3\", defaultThemeBase);\nregisterThemeProperties(\"@ui5/webcomponents\", \"sap_fiori_3\", defaultTheme);\nexport default \":host(:not([hidden])){display:inline-block}:host(:not([active])) .ui5-busyindicator-wrapper{display:none}:host([active]){color:var(--sapContent_IconColor);pointer-events:none}:host([active]) ::slotted(:not([class^=ui5-busyindicator-])){opacity:.6}:host([size=Small]) .ui5-busyindicator-root{min-width:1.5em;min-height:.5rem}:host([size=Small][text]:not([text=\\\"\\\"])) .ui5-busyindicator-root{min-height:1.75rem}:host([size=Small]) .ui5-busyindicator-circle{width:.5rem;height:.5rem}:host(:not([size])) .ui5-busyindicator-root,:host([size=Medium]) .ui5-busyindicator-root{min-width:3rem;min-height:1rem}:host(:not([size])[text]:not([text=\\\"\\\"])) .ui5-busyindicator-root,:host([size=Medium][text]:not([text=\\\"\\\"])) .ui5-busyindicator-root{min-height:2.25rem}:host(:not([size])) .ui5-busyindicator-circle,:host([size=Medium]) .ui5-busyindicator-circle{width:1rem;height:1rem}:host([size=Large]) .ui5-busyindicator-root{min-width:6rem;min-height:2rem}:host([size=Large][text]:not([text=\\\"\\\"])) .ui5-busyindicator-root{min-height:3.25rem}:host([size=Large]) .ui5-busyindicator-circle{width:2rem;height:2rem}.ui5-busyindicator-root{display:flex;justify-content:center;align-items:center;position:relative;background-color:inherit}.ui5-busyindicator-wrapper{position:absolute;z-index:99;width:100%;left:0;right:0;top:50%;transform:translateY(-50%)}.ui5-busyindicator-circle{display:inline-block;background-color:currentColor;border-radius:50%}.ui5-busyindicator-circle:before{content:\\\"\\\";width:100%;height:100%;border-radius:100%}.ui5-busyindicator-dynamic-content{height:100%;display:flex;justify-content:center;align-items:center;background-color:inherit}.circle-animation-0{animation:grow 1.6s cubic-bezier(.32,.06,.85,1.11) infinite}.circle-animation-1{animation:grow 1.6s cubic-bezier(.32,.06,.85,1.11) infinite;animation-delay:.2s}.circle-animation-2{animation:grow 1.6s cubic-bezier(.32,.06,.85,1.11) infinite;animation-delay:.4s}.ui5-busyindicator-text{width:100%;margin-top:.25rem;text-align:center}@keyframes grow{0%,50%,to{-webkit-transform:scale(.5);-moz-transform:scale(.5);-ms-transform:scale(.5);transform:scale(.5)}25%{-webkit-transform:scale(1);-moz-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}}\";","import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport { fetchI18nBundle, getI18nBundle } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport BusyIndicatorSize from \"./types/BusyIndicatorSize.js\";\nimport Label from \"./Label.js\";\n\n// Template\nimport BusyIndicatorTemplate from \"./generated/templates/BusyIndicatorTemplate.lit.js\";\n\nimport { BUSY_INDICATOR_TITLE } from \"./generated/i18n/i18n-defaults.js\";\n\n// Styles\nimport busyIndicatorCss from \"./generated/themes/BusyIndicator.css.js\";\n\n/**\n * @public\n */\nconst metadata = {\n\ttag: \"ui5-busyindicator\",\n\tslots: /** @lends sap.ui.webcomponents.main.BusyIndicator.prototype */ {\n\n\t\t/**\n\t\t * Determines the content over which the ui5-busyindicator will appear.\n\t\t *\n\t\t * @type {Node[]}\n\t\t * @slot\n\t\t * @public\n\t\t */\n\t\t\"default\": {\n\t\t\ttype: Node,\n\t\t},\n\t},\n\tproperties: /** @lends sap.ui.webcomponents.main.BusyIndicator.prototype */ {\n\n\t\t/**\n\t\t * Defines text to be displayed below the busy indicator. It can be used to inform the user of the current operation.\n\t\t * @type {String}\n\t\t * @public\n\t\t * @defaultvalue \"\"\n\t\t * @since 1.0.0-rc.7\n\t\t */\n\t\ttext: {\n\t\t\ttype: String,\n\t\t},\n\n\t\t/**\n\t\t * Defines the size of the ui5-busyindicator.\n\t\t *

\n\t\t * Note: Available options are \"Small\", \"Medium\", and \"Large\".\n\t\t *\n\t\t * @type {BusyIndicatorSize}\n\t\t * @defaultvalue \"Medium\"\n\t\t * @public\n\t\t */\n\t\tsize: { type: BusyIndicatorSize, defaultValue: BusyIndicatorSize.Medium },\n\n\t\t/**\n\t\t * Defines if the busy indicator is visible on the screen. By default it is not.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @defaultvalue false\n\t\t * @public\n\t\t */\n\t\tactive: { type: Boolean },\n\t},\n};\n\n/**\n * @class\n *\n *

Overview

\n *\n * The ui5-busyindicator signals that some operation is going on and that the\n * user must wait. It does not block the current UI screen so other operations could be\n * triggered in parallel.\n *\n *

Usage

\n * For the ui5-busyindicator you can define the size of the indicator, as well\n * as whether it is shown or hidden. In order to hide it, use the html attribute hidden or display: none;\n *\n *

ES6 Module Import

\n *\n * import \"@ui5/webcomponents/dist/BusyIndicator\";\n *\n * @constructor\n * @author SAP SE\n * @alias sap.ui.webcomponents.main.BusyIndicator\n * @extends UI5Element\n * @tagname ui5-busyindicator\n * @public\n * @since 0.12.0\n */\nclass BusyIndicator extends UI5Element {\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis.i18nBundle = getI18nBundle(\"@ui5/webcomponents\");\n\t}\n\n\tstatic get metadata() {\n\t\treturn metadata;\n\t}\n\n\tstatic get styles() {\n\t\treturn busyIndicatorCss;\n\t}\n\n\tstatic get render() {\n\t\treturn litRender;\n\t}\n\n\tstatic get template() {\n\t\treturn BusyIndicatorTemplate;\n\t}\n\n\tstatic async onDefine() {\n\t\tawait Promise.all([\n\t\t\tfetchI18nBundle(\"@ui5/webcomponents\"),\n\t\t\tLabel.define(),\n\t\t]);\n\t}\n\n\tget ariaTitle() {\n\t\treturn this.i18nBundle.getText(BUSY_INDICATOR_TITLE);\n\t}\n}\n\nBusyIndicator.define();\n\nexport default BusyIndicator;\n","\n/* eslint no-unused-vars: 0 */\nimport ifDefined from '@ui5/webcomponents-base/dist/renderer/ifDefined.js';\nimport { html, svg, repeat, classMap, styleMap } from '@ui5/webcomponents-base/dist/renderer/LitRenderer.js';\nconst block0 = (context) => { return html`\t${ context.header.length ? block1(context) : undefined }${ context.shouldRenderH1 ? block2(context) : undefined }
    \t\t${ context.showNoDataText ? block3(context) : undefined }
\t${ context.footerText ? block4(context) : undefined }${ context.showBusy ? block5(context) : undefined }
`; };\nconst block1 = (context) => { return html`\t`; };\nconst block2 = (context) => { return html`
\t\t\t${ifDefined(context.headerText)}
\t`; };\nconst block3 = (context) => { return html`
  • \t\t\t\t\t${ifDefined(context.noDataText)}
  • \t\t`; };\nconst block4 = (context) => { return html`
    \t\t\t${ifDefined(context.footerText)}
    \t`; };\nconst block5 = (context) => { return html`
    \t`; };\n\nexport default block0;","import { registerThemeProperties } from \"@ui5/webcomponents-base/dist/asset-registries/Themes.js\";\n\nimport defaultThemeBase from \"@ui5/webcomponents-theme-base/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js\";\nimport defaultTheme from \"./sap_fiori_3/parameters-bundle.css.js\";\n\nregisterThemeProperties(\"@ui5/webcomponents-theme-base\", \"sap_fiori_3\", defaultThemeBase);\nregisterThemeProperties(\"@ui5/webcomponents\", \"sap_fiori_3\", defaultTheme);\nexport default \":host(:not([hidden])){display:block;max-width:100%}:host([inset]) .ui5-list-root{padding:2rem}:host([separators=None]) .ui5-list-nodata{border-bottom:0}.ui5-list-root{width:100%;height:100%;position:relative;box-sizing:border-box;overflow:auto}.ui5-list-ul{list-style-type:none;padding:0;margin:0}.ui5-list-ul:focus{outline:none}.ui5-list-focusarea{position:fixed}.ui5-list-header{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;box-sizing:border-box;font-size:var(--sapMFontHeader4Size);font-family:var(--sapFontFamily);color:var(--sapGroup_TitleTextColor);height:3rem;line-height:3rem;padding:0 1rem;background-color:var(--sapGroup_TitleBackground);border-bottom:1px solid var(--sapGroup_TitleBorderColor)}.ui5-list-footer{height:2rem;box-sizing:border-box;-webkit-text-size-adjust:none;font-size:var(--sapFontSize);font-family:var(--sapFontFamily);line-height:2rem;background-color:var(--sapList_FooterBackground);color:var(--ui5_list_footer_text_color);padding:0 1rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ui5-list-nodata{list-style-type:none;display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center;color:var(--sapTextColor);background-color:var(--sapList_Background);border-bottom:1px solid var(--sapList_BorderColor);padding:0 1rem!important;height:var(--_ui5_list_no_data_height);font-size:var(--sapFontSize)}.ui5-list-nodata-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ui5-list-busy-row{display:flex;align-items:center;height:var(--_ui5_list_busy_row_height);justify-content:center}\";","import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport ItemNavigation from \"@ui5/webcomponents-base/dist/delegate/ItemNavigation.js\";\nimport { getLastTabbableElement } from \"@ui5/webcomponents-base/dist/util/TabbableElements.js\";\nimport { isTabNext } from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport NavigationMode from \"@ui5/webcomponents-base/dist/types/NavigationMode.js\";\nimport ListMode from \"./types/ListMode.js\";\nimport ListSeparators from \"./types/ListSeparators.js\";\nimport BusyIndicator from \"./BusyIndicator.js\";\n\n// Template\nimport ListTemplate from \"./generated/templates/ListTemplate.lit.js\";\n\n// Styles\nimport listCss from \"./generated/themes/List.css.js\";\n\nconst BUSYINDICATOR_HEIGHT = 48; // px\nconst INFINITE_SCROLL_DEBOUNCE_RATE = 250; // ms\n\n/**\n * @public\n */\nconst metadata = {\n\ttag: \"ui5-list\",\n\tmanagedSlots: true,\n\tslots: /** @lends sap.ui.webcomponents.main.List.prototype */ {\n\n\t\t/**\n\t\t * Defines the ui5-li header.\n\t\t *

    \n\t\t * Note: When header is set, the\n\t\t * headerText property is ignored.\n\t\t *\n\t\t * @type {HTMLElement[]}\n\t\t * @slot\n\t\t * @public\n\t\t */\n\t\theader: {\n\t\t\ttype: HTMLElement,\n\t\t},\n\n\t\t/**\n\t\t * Defines the items of the ui5-list.\n\t\t *

    \n\t\t * Note: Use ui5-li, ui5-li-custom, and ui5-li-groupheader for the intended design.\n\t\t *\n\t\t * @type {HTMLElement[]}\n\t\t * @slot\n\t\t * @public\n\t\t */\n\t\t\"default\": {\n\t\t\tpropertyName: \"items\",\n\t\t\ttype: HTMLElement,\n\t\t},\n\t},\n\tproperties: /** @lends sap.ui.webcomponents.main.List.prototype */ {\n\n\t\t/**\n\t\t * Defines the ui5-list header text.\n\t\t *

    \n\t\t * Note: If header is set this property is ignored.\n\t\t *\n\t\t * @type {string}\n\t\t * @defaultvalue \"\"\n\t\t * @public\n\t\t */\n\t\theaderText: {\n\t\t\ttype: String,\n\t\t},\n\n\t\t/**\n\t\t * Defines the footer text.\n\t\t *\n\t\t * @type {string}\n\t\t * @defaultvalue \"\"\n\t\t * @public\n\t\t */\n\t\tfooterText: {\n\t\t\ttype: String,\n\t\t},\n\n\t\t/**\n\t\t * Determines whether the list items are indented.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @defaultvalue false\n\t\t * @public\n\t\t */\n\t\tinset: {\n\t\t\ttype: Boolean,\n\t\t},\n\n\t\t/**\n\t\t * Defines the mode of the ui5-list.\n\t\t *

    \n\t\t * Note: Avalaible options are None, SingleSelect,\n\t\t * MultiSelect, and Delete.\n\t\t *\n\t\t * @type {ListMode}\n\t\t * @defaultvalue \"None\"\n\t\t * @public\n\t\t */\n\t\tmode: {\n\t\t\ttype: ListMode,\n\t\t\tdefaultValue: ListMode.None,\n\t\t},\n\n\t\t/**\n\t\t * Defines the text that is displayed when the ui5-list contains no items.\n\t\t *\n\t\t * @type {string}\n\t\t * @defaultvalue \"\"\n\t\t * @public\n\t\t */\n\t\tnoDataText: {\n\t\t\ttype: String,\n\t\t},\n\n\t\t/**\n\t\t * Defines the item separator style that is used.\n\t\t *

    \n\t\t * Notes:\n\t\t *
      \n\t\t *
    • Avalaible options are All, Inner, and None.
    • \n\t\t *
    • When set to None, none of the items are separated by horizontal lines.
    • \n\t\t *
    • When set to Inner, the first item doesn't have a top separator and the last\n\t\t * item doesn't have a bottom separator.
    • \n\t\t *
    \n\t\t *\n\t\t * @type {ListSeparators}\n\t\t * @defaultvalue \"All\"\n\t\t * @public\n\t\t */\n\t\tseparators: {\n\t\t\ttype: ListSeparators,\n\t\t\tdefaultValue: ListSeparators.All,\n\t\t},\n\n\t\t/**\n\t\t * Defines if the component would fire the loadMore event\n\t\t * when the user scrolls to the bottom of the list, and helps achieving an \"infinite scroll\" effect\n\t\t * by adding new items each time.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @defaultvalue false\n\t\t * @public\n\t\t * @since 1.0.0-rc.6\n\t\t */\n\t\tinfiniteScroll: {\n\t\t\ttype: Boolean,\n\t\t},\n\n\t\t/**\n\t\t * Defines if the component would display a loading indicator at the bottom of the list.\n\t\t * It's especially useful, when combined with infiniteScroll.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @defaultvalue false\n\t\t * @public\n\t\t * @since 1.0.0-rc.6\n\t\t */\n\t\tbusy: {\n\t\t\ttype: Boolean,\n\t\t},\n\t},\n\tevents: /** @lends sap.ui.webcomponents.main.List.prototype */ {\n\n\t\t/**\n\t\t * Fired when an item is activated, unless the item's type property\n\t\t * is set to Inactive.\n\t\t *\n\t\t * @event\n\t\t * @param {HTMLElement} item the clicked item.\n\t\t * @public\n\t\t */\n\t\titemClick: {\n\t\t\tdetail: {\n\t\t\t\titem: { type: HTMLElement },\n\t\t\t},\n\t\t},\n\n\t\t/**\n\t\t * Fired when the Delete button of any item is pressed.\n\t\t *

    \n\t\t * Note: A Delete button is displayed on each item,\n\t\t * when the ui5-list mode property is set to Delete.\n\t\t * @event\n\t\t * @param {HTMLElement} item the deleted item.\n\t\t * @public\n\t\t */\n\t\titemDelete: {\n\t\t\tdetail: {\n\t\t\t\titem: { type: HTMLElement },\n\t\t\t},\n\t\t},\n\n\t\t/**\n\t\t * Fired when selection is changed by user interaction\n\t\t * in SingleSelect and MultiSelect modes.\n\t\t *\n\t\t * @event\n\t\t * @param {Array} selectedItems An array of the selected items.\n\t\t * @param {Array} previouslySelectedItems An array of the previously selected items.\n\t\t * @public\n\t\t */\n\t\tselectionChange: {\n\t\t\tdetail: {\n\t\t\t\tselectedItems: { type: Array },\n\t\t\t\tpreviouslySelectedItems: { type: Array },\n\t\t\t\tselectionComponentPressed: { type: Boolean }, // protected, indicates if the user used the selection components to change the selection\n\t\t\t},\n\t\t},\n\n\t\t/**\n\t\t * Fired when the user scrolls to the bottom of the list.\n\t\t *

    \n\t\t * Note: The event is fired when the infiniteScroll property is enabled.\n\t\t *\n\t\t * @event\n\t\t * @public\n\t\t * @since 1.0.0-rc.6\n\t\t */\n\t\tloadMore: {},\n\t},\n};\n\n/**\n * @class\n *\n *

    Overview

    \n *\n * The ui5-list component allows displaying a list of items, advanced keyboard\n * handling support for navigating between items, and predefined modes to improve the development efficiency.\n *

    \n * The ui5-list is а container for the available list items:\n *
      \n *
    • ui5-li
    • \n *
    • ui5-li-custom
    • \n *
    • ui5-li-group-header
    • \n *
    \n *

    \n * To benefit from the built-in selection mechanism, you can use the available\n * selection modes, such as\n * SingleSelect, MultiSelect and Delete.\n *

    \n * Additionally, the ui5-list provides header, footer, and customization for the list item separators.\n *\n *

    ES6 Module Import

    \n *\n * import \"@ui5/webcomponents/dist/List.js\";\n *
    \n * import \"@ui5/webcomponents/dist/StandardListItem.js\"; (for ui5-li)\n *
    \n * import \"@ui5/webcomponents/dist/CustomListItem.js\"; (for ui5-li-custom)\n *
    \n * import \"@ui5/webcomponents/dist/GroupHeaderListItem.js\"; (for ui5-li-group-header)\n *\n * @constructor\n * @author SAP SE\n * @alias sap.ui.webcomponents.main.List\n * @extends UI5Element\n * @tagname ui5-list\n * @appenddocs StandardListItem CustomListItem GroupHeaderListItem\n * @public\n */\nclass List extends UI5Element {\n\tstatic get metadata() {\n\t\treturn metadata;\n\t}\n\n\tstatic get render() {\n\t\treturn litRender;\n\t}\n\n\tstatic get template() {\n\t\treturn ListTemplate;\n\t}\n\n\tstatic get styles() {\n\t\treturn listCss;\n\t}\n\n\tconstructor() {\n\t\tsuper();\n\t\tthis.initItemNavigation();\n\n\t\t// Stores the last focused item within the internal ul element.\n\t\tthis._previouslyFocusedItem = null;\n\n\t\t// Indicates that the List is forwarding the focus before or after the internal ul.\n\t\tthis._forwardingFocus = false;\n\n\t\tthis._previouslySelectedItem = null;\n\n\t\tthis.addEventListener(\"ui5-_press\", this.onItemPress.bind(this));\n\t\tthis.addEventListener(\"ui5-_focused\", this.onItemFocused.bind(this));\n\t\tthis.addEventListener(\"ui5-_forwardAfter\", this.onForwardAfter.bind(this));\n\t\tthis.addEventListener(\"ui5-_forwardBefore\", this.onForwardBefore.bind(this));\n\t\tthis.addEventListener(\"ui5-_selectionRequested\", this.onSelectionRequested.bind(this));\n\t}\n\n\tget shouldRenderH1() {\n\t\treturn !this.header.length && this.headerText;\n\t}\n\n\tget headerID() {\n\t\treturn `${this._id}-header`;\n\t}\n\n\tget showNoDataText() {\n\t\treturn this.items.length === 0 && this.noDataText;\n\t}\n\n\tget showBusy() {\n\t\treturn this.busy || this.infiniteScroll;\n\t}\n\n\tget isMultiSelect() {\n\t\treturn this.mode === ListMode.MultiSelect;\n\t}\n\n\tget ariaLabelledBy() {\n\t\treturn this.shouldRenderH1 ? this.headerID : undefined;\n\t}\n\n\tonBeforeRendering() {\n\t\tthis.prepareListItems();\n\t}\n\n\tinitItemNavigation() {\n\t\tthis._itemNavigation = new ItemNavigation(this, {\n\t\t\tnavigationMode: NavigationMode.Vertical,\n\t\t});\n\n\t\tthis._itemNavigation.getItemsCallback = () => this.getSlottedNodes(\"items\");\n\t}\n\n\tprepareListItems() {\n\t\tconst slottedItems = this.getSlottedNodes(\"items\");\n\n\t\tslottedItems.forEach((item, key) => {\n\t\t\tconst isLastChild = key === slottedItems.length - 1;\n\t\t\tconst showBottomBorder = this.separators === ListSeparators.All\n\t\t\t\t|| (this.separators === ListSeparators.Inner && !isLastChild);\n\n\t\t\titem._mode = this.mode;\n\t\t\titem.hasBorder = showBottomBorder;\n\t\t});\n\n\t\tthis._previouslySelectedItem = null;\n\t}\n\n\t/*\n\t* ITEM SELECTION BASED ON THE CURRENT MODE\n\t*/\n\tonSelectionRequested(event) {\n\t\tconst previouslySelectedItems = this.getSelectedItems();\n\t\tlet selectionChange = false;\n\t\tthis._selectionRequested = true;\n\n\t\tif (this[`handle${this.mode}`]) {\n\t\t\tselectionChange = this[`handle${this.mode}`](event.detail.item, event.detail.selected);\n\t\t}\n\n\t\tif (selectionChange) {\n\t\t\tthis.fireEvent(\"selectionChange\", {\n\t\t\t\tselectedItems: this.getSelectedItems(),\n\t\t\t\tpreviouslySelectedItems,\n\t\t\t\tselectionComponentPressed: event.detail.selectionComponentPressed,\n\t\t\t\tkey: event.detail.key,\n\t\t\t});\n\t\t}\n\t}\n\n\thandleSingleSelect(item) {\n\t\tif (item.selected) {\n\t\t\treturn false;\n\t\t}\n\n\t\tthis.deselectSelectedItems();\n\t\titem.selected = true;\n\n\t\treturn true;\n\t}\n\n\thandleSingleSelectBegin(item) {\n\t\treturn this.handleSingleSelect(item);\n\t}\n\n\thandleSingleSelectEnd(item) {\n\t\treturn this.handleSingleSelect(item);\n\t}\n\n\thandleMultiSelect(item, selected) {\n\t\titem.selected = selected;\n\t\treturn true;\n\t}\n\n\thandleDelete(item) {\n\t\tthis.fireEvent(\"itemDelete\", { item });\n\t}\n\n\tdeselectSelectedItems() {\n\t\tthis.getSelectedItems().forEach(item => { item.selected = false; });\n\t}\n\n\tgetSelectedItems() {\n\t\treturn this.getSlottedNodes(\"items\").filter(item => item.selected);\n\t}\n\n\tgetFirstSelectedItem() {\n\t\tconst slottedItems = this.getSlottedNodes(\"items\");\n\t\tlet firstSelectedItem = null;\n\n\t\tfor (let i = 0; i < slottedItems.length; i++) {\n\t\t\tif (slottedItems[i].selected) {\n\t\t\t\tfirstSelectedItem = slottedItems[i];\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\treturn firstSelectedItem;\n\t}\n\n\t_onkeydown(event) {\n\t\tif (isTabNext(event)) {\n\t\t\tthis._handleTabNext(event);\n\t\t}\n\t}\n\n\t/*\n\t* KEYBOARD SUPPORT\n\t*/\n\t_handleTabNext(event) {\n\t\t// If forward navigation is performed, we check if the List has headerToolbar.\n\t\t// If yes - we check if the target is at the last tabbable element of the headerToolbar\n\t\t// to forward correctly the focus to the selected, previously focused or to the first list item.\n\t\tlet lastTabbableEl;\n\t\tconst target = this.getNormalizedTarget(event.target);\n\n\t\tif (this.headerToolbar) {\n\t\t\tlastTabbableEl = this.getHeaderToolbarLastTabbableElement();\n\t\t}\n\n\t\tif (!lastTabbableEl) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (lastTabbableEl === target) {\n\t\t\tif (this.getFirstSelectedItem()) {\n\t\t\t\tthis.focusFirstSelectedItem();\n\t\t\t} else if (this.getPreviouslyFocusedItem()) {\n\t\t\t\tthis.focusPreviouslyFocusedItem();\n\t\t\t} else {\n\t\t\t\tthis.focusFirstItem();\n\t\t\t}\n\n\t\t\tevent.stopImmediatePropagation();\n\t\t\tevent.preventDefault();\n\t\t}\n\t}\n\n\t_onScroll(event) {\n\t\tif (!this.infiniteScroll) {\n\t\t\treturn;\n\t\t}\n\t\tthis.debounce(this.loadMore.bind(this, event.target), INFINITE_SCROLL_DEBOUNCE_RATE);\n\t}\n\n\t_onfocusin(event) {\n\t\t// If the focusin event does not origin from one of the 'triggers' - ignore it.\n\t\tif (!this.isForwardElement(this.getNormalizedTarget(event.target))) {\n\t\t\tevent.stopImmediatePropagation();\n\t\t\treturn;\n\t\t}\n\n\t\t// The focus arrives in the List for the first time.\n\t\t// If there is selected item - focus it or focus the first item.\n\t\tif (!this.getPreviouslyFocusedItem()) {\n\t\t\tif (this.getFirstSelectedItem()) {\n\t\t\t\tthis.focusFirstSelectedItem();\n\t\t\t} else {\n\t\t\t\tthis.focusFirstItem();\n\t\t\t}\n\n\t\t\tevent.stopImmediatePropagation();\n\t\t\treturn;\n\t\t}\n\n\t\t// The focus returns to the List,\n\t\t// focus the first selected item or the previously focused element.\n\t\tif (!this.getForwardingFocus()) {\n\t\t\tif (this.getFirstSelectedItem()) {\n\t\t\t\tthis.focusFirstSelectedItem();\n\t\t\t} else {\n\t\t\t\tthis.focusPreviouslyFocusedItem();\n\t\t\t}\n\t\t}\n\n\t\tthis.setForwardingFocus(false);\n\t}\n\n\tisForwardElement(node) {\n\t\tconst nodeId = node.id;\n\n\t\tif (this._id === nodeId || this.getBeforeElement().id === nodeId) {\n\t\t\treturn true;\n\t\t}\n\n\t\treturn this.getAfterElement().id === nodeId;\n\t}\n\n\tonItemFocused(event) {\n\t\tconst target = event.target;\n\n\t\tthis._itemNavigation.update(target);\n\t\tthis.fireEvent(\"itemFocused\", { item: target });\n\t}\n\n\tonItemPress(event) {\n\t\tconst pressedItem = event.detail.item;\n\n\t\tthis.fireEvent(\"itemPress\", { item: pressedItem });\n\t\tthis.fireEvent(\"itemClick\", { item: pressedItem });\n\n\t\tif (!this._selectionRequested && this.mode !== ListMode.Delete) {\n\t\t\tthis._selectionRequested = true;\n\t\t\tthis.onSelectionRequested({\n\t\t\t\tdetail: {\n\t\t\t\t\titem: pressedItem,\n\t\t\t\t\tselectionComponentPressed: false,\n\t\t\t\t\tselected: !pressedItem.selected,\n\t\t\t\t\tkey: event.detail.key,\n\t\t\t\t},\n\t\t\t});\n\t\t}\n\n\t\tthis._selectionRequested = false;\n\t}\n\n\tonForwardBefore(event) {\n\t\tthis.setPreviouslyFocusedItem(event.target);\n\t\tthis.focusBeforeElement();\n\t}\n\n\tonForwardAfter(event) {\n\t\tthis.setPreviouslyFocusedItem(event.target);\n\t\tthis.focusAfterElement();\n\t}\n\n\tfocusBeforeElement() {\n\t\tthis.setForwardingFocus(true);\n\t\tthis.getBeforeElement().focus();\n\t}\n\n\tfocusAfterElement() {\n\t\tthis.setForwardingFocus(true);\n\t\tthis.getAfterElement().focus();\n\t}\n\n\tfocusFirstItem() {\n\t\tconst firstItem = this.getFirstItem();\n\n\t\tif (firstItem) {\n\t\t\tfirstItem.focus();\n\t\t}\n\t}\n\n\tfocusPreviouslyFocusedItem() {\n\t\tconst previouslyFocusedItem = this.getPreviouslyFocusedItem();\n\n\t\tif (previouslyFocusedItem) {\n\t\t\tpreviouslyFocusedItem.focus();\n\t\t}\n\t}\n\n\tfocusFirstSelectedItem() {\n\t\tconst firstSelectedItem = this.getFirstSelectedItem();\n\n\t\tif (firstSelectedItem) {\n\t\t\tfirstSelectedItem.focus();\n\t\t}\n\t}\n\n\tsetForwardingFocus(forwardingFocus) {\n\t\tthis._forwardingFocus = forwardingFocus;\n\t}\n\n\tgetForwardingFocus() {\n\t\treturn this._forwardingFocus;\n\t}\n\n\tsetPreviouslyFocusedItem(item) {\n\t\tthis._previouslyFocusedItem = item;\n\t}\n\n\tgetPreviouslyFocusedItem() {\n\t\treturn this._previouslyFocusedItem;\n\t}\n\n\tgetFirstItem() {\n\t\tconst slottedItems = this.getSlottedNodes(\"items\");\n\t\treturn !!slottedItems.length && slottedItems[0];\n\t}\n\n\tgetAfterElement() {\n\t\tif (!this._afterElement) {\n\t\t\tthis._afterElement = this.shadowRoot.querySelector(`#${this._id}-after`);\n\t\t}\n\t\treturn this._afterElement;\n\t}\n\n\tgetBeforeElement() {\n\t\tif (!this._beforeElement) {\n\t\t\tthis._beforeElement = this.shadowRoot.querySelector(`#${this._id}-before`);\n\t\t}\n\t\treturn this._beforeElement;\n\t}\n\n\tgetHeaderToolbarLastTabbableElement() {\n\t\treturn getLastTabbableElement(this.headerToolbar.getDomRef()) || this.headerToolbar.getDomRef();\n\t}\n\n\tgetNormalizedTarget(target) {\n\t\tlet focused = target;\n\n\t\tif (target.shadowRoot && target.shadowRoot.activeElement) {\n\t\t\tfocused = target.shadowRoot.activeElement;\n\t\t}\n\n\t\treturn focused;\n\t}\n\n\tloadMore(el) {\n\t\tconst scrollTop = el.scrollTop;\n\t\tconst height = el.offsetHeight;\n\t\tconst scrollHeight = el.scrollHeight;\n\n\t\tif (this.previousScrollPosition > scrollTop) { // skip scrolling upwards\n\t\t\tthis.previousScrollPosition = scrollTop;\n\t\t\treturn;\n\t\t}\n\t\tthis.previousScrollPosition = scrollTop;\n\n\t\tif (scrollHeight - BUSYINDICATOR_HEIGHT <= height + scrollTop) {\n\t\t\tthis.fireEvent(\"loadMore\");\n\t\t}\n\t}\n\n\tdebounce(fn, delay) {\n\t\tclearTimeout(this.debounceInterval);\n\t\tthis.debounceInterval = setTimeout(() => {\n\t\t\tthis.debounceInterval = null;\n\t\t\tfn();\n\t\t}, delay);\n\t}\n\n\tstatic async onDefine() {\n\t\tawait BusyIndicator.define();\n\t}\n}\n\nList.define();\n\nexport default List;\n","import { registerIcon } from \"@ui5/webcomponents-base/dist/SVGIconRegistry.js\";\n\nconst name = \"edit\";\nconst pathData = \"M475 104q5 7 5 12 0 6-5 11L150 453q-4 4-8 4L32 480l22-110q0-5 4-9L384 36q4-4 11-4t11 4zm-121 99l-46-45L84 381l46 46zm87-88l-46-44-64 64 45 45z\";\n\nregisterIcon(name, { pathData });\n\nexport default { pathData };","import DataType from \"@ui5/webcomponents-base/dist/types/DataType.js\";\n\n/**\n * @lends sap.ui.webcomponents.main.types.ListItemType.prototype\n * @public\n */\nconst ListItemTypes = {\n\t/**\n\t * Indicates the list item does not have any active feedback when item is pressed.\n\t * @public\n\t * @type {Inactive}\n\t */\n\tInactive: \"Inactive\",\n\n\t/**\n\t * Indicates that the item is clickable via active feedback when item is pressed.\n\t * @public\n\t * @type {Active}\n\t */\n\tActive: \"Active\",\n\n\t/**\n\t * Enables detail button of the list item that fires detailClick event.\n\t * @public\n\t * @type {Detail}\n\t */\n\tDetail: \"Detail\",\n};\n\n/**\n * @class\n * Different types of ListItem.\n * @constructor\n * @author SAP SE\n * @alias sap.ui.webcomponents.main.types.ListItemType\n * @public\n * @enum {string}\n */\nclass ListItemType extends DataType {\n\tstatic isValid(value) {\n\t\treturn !!ListItemTypes[value];\n\t}\n}\n\nListItemType.generataTypeAcessors(ListItemTypes);\n\nexport default ListItemType;\n","import { registerThemeProperties } from \"@ui5/webcomponents-base/dist/asset-registries/Themes.js\";\n\nimport defaultThemeBase from \"@ui5/webcomponents-theme-base/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js\";\nimport defaultTheme from \"./sap_fiori_3/parameters-bundle.css.js\";\n\nregisterThemeProperties(\"@ui5/webcomponents-theme-base\", \"sap_fiori_3\", defaultThemeBase);\nregisterThemeProperties(\"@ui5/webcomponents\", \"sap_fiori_3\", defaultTheme);\nexport default \":host(:not([hidden])){display:block}:host{height:var(--_ui5_list_item_base_height);background:var(--ui5-listitem-background-color);box-sizing:border-box}:host([selected]){background:var(--sapList_SelectionBackgroundColor)}:host([has-border]){border-bottom:var(--ui5-listitem-border-bottom)}:host([selected]){border-bottom:var(--ui5-listitem-selected-border-bottom)}:host([selected][has-border]){border-bottom:var(--ui5-listitem-selected-border-bottom)}.ui5-li-root{position:relative;display:flex;align-items:center;width:100%;height:100%;padding:0 1rem 0 1rem;box-sizing:border-box}:host([focused]) .ui5-li-root.ui5-li--focusable{outline:none}:host([focused]) .ui5-li-root.ui5-li--focusable:after{content:\\\"\\\";border:var(--_ui5_listitembase_focus_width) dotted var(--sapContent_FocusColor);position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}:host([focused]) .ui5-li-content:focus:after{content:\\\"\\\";border:var(--_ui5_listitembase_focus_width) dotted var(--sapContent_FocusColor);position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}:host([active][focused]) .ui5-li-root.ui5-li--focusable:after{border-color:var(--sapContent_ContrastFocusColor)}.ui5-li-content{max-width:100%;min-height:1px;font-family:var(--sapFontFamily);pointer-events:none}\";","import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport { getTabbableElements } from \"@ui5/webcomponents-base/dist/util/TabbableElements.js\";\nimport { isTabNext, isTabPrevious } from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport { getRTL } from \"@ui5/webcomponents-base/dist/config/RTL.js\";\n\n// Styles\nimport styles from \"./generated/themes/ListItemBase.css.js\";\n\n/**\n * @public\n */\nconst metadata = {\n\tproperties: /** @lends sap.ui.webcomponents.main.ListItemBase.prototype */ {\n\n\t\t/**\n\t\t * Defines the selected state of the ListItem.\n\t\t * @type {boolean}\n\t\t * @defaultvalue false\n\t\t * @public\n\t\t */\n\t\tselected: {\n\t\t\ttype: Boolean,\n\t\t},\n\n\t\t/**\n\t\t* Defines if the list item should display its bottom border.\n\t\t* @private\n\t\t*/\n\t\thasBorder: {\n\t\t\ttype: Boolean,\n\t\t},\n\n\t\t_tabIndex: {\n\t\t\ttype: String,\n\t\t\tdefaultValue: \"-1\",\n\t\t\tnoAttribute: true,\n\t\t},\n\n\t\t/**\n\t\t * Indicates if the element is on focus\n\t\t * @private\n\t\t */\n\t\tfocused: {\n\t\t\ttype: Boolean,\n\t\t},\n\t},\n\tevents: {\n\t\t_focused: {},\n\t\t_focusForward: {},\n\t},\n};\n\n/**\n * A class to serve as a foundation\n * for the ListItem and GroupHeaderListItem classes.\n *\n * @abstract\n * @constructor\n * @author SAP SE\n * @alias sap.ui.webcomponents.main.ListItemBase\n * @extends UI5Element\n * @public\n */\nclass ListItemBase extends UI5Element {\n\tstatic get metadata() {\n\t\treturn metadata;\n\t}\n\n\tstatic get styles() {\n\t\treturn styles;\n\t}\n\n\t_onfocusin(event) {\n\t\tthis.focused = true;\n\t\tthis.fireEvent(\"_focused\", event);\n\t}\n\n\t_onfocusout(_event) {\n\t\tthis.focused = false;\n\t}\n\n\t_onkeydown(event) {\n\t\tif (isTabNext(event)) {\n\t\t\treturn this._handleTabNext(event);\n\t\t}\n\n\t\tif (isTabPrevious(event)) {\n\t\t\treturn this._handleTabPrevious(event);\n\t\t}\n\t}\n\n\t_handleTabNext(event) {\n\t\tconst target = event.target;\n\n\t\tif (this.shouldForwardTabAfter(target)) {\n\t\t\tthis.fireEvent(\"_forwardAfter\", { item: target });\n\t\t}\n\t}\n\n\t_handleTabPrevious(event) {\n\t\tconst target = event.target;\n\n\t\tif (this.shouldForwardTabBefore(target)) {\n\t\t\tconst eventData = event;\n\t\t\teventData.item = target;\n\t\t\tthis.fireEvent(\"_forwardBefore\", eventData);\n\t\t}\n\t}\n\n\t/*\n\t* Determines if th current list item either has no tabbable content or\n\t* [TAB] is performed onto the last tabbale content item.\n\t*/\n\tshouldForwardTabAfter(target) {\n\t\tconst aContent = getTabbableElements(this.getDomRef());\n\n\t\tif (target.getFocusDomRef) {\n\t\t\ttarget = target.getFocusDomRef();\n\t\t}\n\n\t\treturn !aContent.length || (aContent[aContent.length - 1] === target);\n\t}\n\n\t/*\n\t* Determines if the current list item is target of [SHIFT+TAB].\n\t*/\n\tshouldForwardTabBefore(target) {\n\t\treturn this.getDomRef() === target;\n\t}\n\n\tget classes() {\n\t\treturn {\n\t\t\tmain: {\n\t\t\t\t\"ui5-li-root\": true,\n\t\t\t\t\"ui5-li--focusable\": true,\n\t\t\t},\n\t\t};\n\t}\n\n\tget rtl() {\n\t\treturn getRTL() ? \"rtl\" : undefined;\n\t}\n}\n\nexport default ListItemBase;\n","class RadioButtonGroup {\n\tstatic hasGroup(groupName) {\n\t\treturn this.groups.has(groupName);\n\t}\n\n\tstatic getGroup(groupName) {\n\t\treturn this.groups.get(groupName);\n\t}\n\n\tstatic getSelectedRadioFromGroup(groupName) {\n\t\treturn this.selectedRadios.get(groupName);\n\t}\n\n\tstatic removeGroup(groupName) {\n\t\tthis.selectedRadios.delete(groupName);\n\t\treturn this.groups.delete(groupName);\n\t}\n\n\tstatic addToGroup(radioBtn, groupName) {\n\t\tif (this.hasGroup(groupName)) {\n\t\t\tthis.enforceSingleSelection(radioBtn, groupName);\n\t\t\tthis.getGroup(groupName).push(radioBtn);\n\t\t} else {\n\t\t\tthis.createGroup(radioBtn, groupName);\n\t\t}\n\t}\n\n\tstatic removeFromGroup(radioBtn, groupName) {\n\t\tif (!this.hasGroup(groupName)) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst group = this.getGroup(groupName);\n\t\tconst selectedRadio = this.getSelectedRadioFromGroup(groupName);\n\n\t\t// Remove the radio button from the given group\n\t\tgroup.forEach((_radioBtn, idx, arr) => {\n\t\t\tif (radioBtn._id === _radioBtn._id) {\n\t\t\t\treturn arr.splice(idx, 1);\n\t\t\t}\n\t\t});\n\n\t\tif (selectedRadio === radioBtn) {\n\t\t\tthis.selectedRadios.set(groupName, null);\n\t\t}\n\n\t\t// Remove the group if it is empty\n\t\tif (!group.length) {\n\t\t\tthis.removeGroup(groupName);\n\t\t}\n\t}\n\n\tstatic createGroup(radioBtn, groupName) {\n\t\tif (radioBtn.selected) {\n\t\t\tthis.selectedRadios.set(groupName, radioBtn);\n\t\t}\n\n\t\tthis.groups.set(groupName, [radioBtn]);\n\t}\n\n\tstatic selectNextItem(item, groupName) {\n\t\tconst group = this.getGroup(groupName),\n\t\t\tgroupLength = group.length,\n\t\t\tcurrentItemPosition = group.indexOf(item);\n\n\t\tif (groupLength <= 1) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst nextItemToSelect = this._nextSelectable(currentItemPosition, group);\n\n\t\tthis.updateSelectionInGroup(nextItemToSelect, groupName);\n\t}\n\n\tstatic selectPreviousItem(item, groupName) {\n\t\tconst group = this.getGroup(groupName),\n\t\t\tgroupLength = group.length,\n\t\t\tcurrentItemPosition = group.indexOf(item);\n\n\t\tif (groupLength <= 1) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst previousItemToSelect = this._previousSelectable(currentItemPosition, group);\n\n\t\tthis.updateSelectionInGroup(previousItemToSelect, groupName);\n\t}\n\n\tstatic selectItem(item, groupName) {\n\t\tthis.updateSelectionInGroup(item, groupName);\n\t}\n\n\tstatic updateSelectionInGroup(radioBtnToSelect, groupName) {\n\t\tconst selectedRadio = this.getSelectedRadioFromGroup(groupName);\n\n\t\tthis._deselectRadio(selectedRadio);\n\t\tthis._selectRadio(radioBtnToSelect);\n\t\tthis.selectedRadios.set(groupName, radioBtnToSelect);\n\t}\n\n\tstatic _deselectRadio(radioBtn) {\n\t\tif (radioBtn) {\n\t\t\tradioBtn.selected = false;\n\t\t}\n\t}\n\n\tstatic _selectRadio(radioBtn) {\n\t\tif (radioBtn) {\n\t\t\tradioBtn.focus();\n\t\t\tradioBtn.selected = true;\n\t\t\tradioBtn._selected = true;\n\t\t\tradioBtn.fireEvent(\"select\");\n\t\t}\n\t}\n\n\tstatic _nextSelectable(pos, group) {\n\t\tconst groupLength = group.length;\n\t\tlet nextRadioToSelect = null;\n\n\t\tif (pos === groupLength - 1) {\n\t\t\tif (group[0].disabled || group[0].readonly) {\n\t\t\t\treturn this._nextSelectable(1, group);\n\t\t\t}\n\t\t\tnextRadioToSelect = group[0];\n\t\t} else if (group[pos + 1].disabled || group[pos + 1].readonly) {\n\t\t\treturn this._nextSelectable(pos + 1, group);\n\t\t} else {\n\t\t\tnextRadioToSelect = group[pos + 1];\n\t\t}\n\n\t\treturn nextRadioToSelect;\n\t}\n\n\tstatic _previousSelectable(pos, group) {\n\t\tconst groupLength = group.length;\n\t\tlet previousRadioToSelect = null;\n\t\tif (pos === 0) {\n\t\t\tif (group[groupLength - 1].disabled || group[groupLength - 1].readonly) {\n\t\t\t\treturn this._previousSelectable(groupLength - 1, group);\n\t\t\t}\n\t\t\tpreviousRadioToSelect = group[groupLength - 1];\n\t\t} else if (group[pos - 1].disabled || group[pos - 1].readonly) {\n\t\t\treturn this._previousSelectable(pos - 1, group);\n\t\t} else {\n\t\t\tpreviousRadioToSelect = group[pos - 1];\n\t\t}\n\n\t\treturn previousRadioToSelect;\n\t}\n\n\tstatic enforceSingleSelection(radioBtn, groupName) {\n\t\tconst selectedRadio = this.getSelectedRadioFromGroup(groupName);\n\n\t\tif (radioBtn.selected) {\n\t\t\tif (!selectedRadio) {\n\t\t\t\tthis.selectedRadios.set(groupName, radioBtn);\n\t\t\t} else if (radioBtn !== selectedRadio) {\n\t\t\t\tthis._deselectRadio(selectedRadio);\n\t\t\t\tthis.selectedRadios.set(groupName, radioBtn);\n\t\t\t}\n\t\t} else if (radioBtn === selectedRadio) {\n\t\t\tthis.selectedRadios.set(groupName, null);\n\t\t}\n\t}\n\n\tstatic get groups() {\n\t\tif (!this._groups) {\n\t\t\tthis._groups = new Map();\n\t\t}\n\t\treturn this._groups;\n\t}\n\n\tstatic get selectedRadios() {\n\t\tif (!this._selectedRadios) {\n\t\t\tthis._selectedRadios = new Map();\n\t\t}\n\t\treturn this._selectedRadios;\n\t}\n}\n\nexport default RadioButtonGroup;\n","\n/* eslint no-unused-vars: 0 */\nimport ifDefined from '@ui5/webcomponents-base/dist/renderer/ifDefined.js';\nimport { html, svg, repeat, classMap, styleMap } from '@ui5/webcomponents-base/dist/renderer/LitRenderer.js';\nconst block0 = (context) => { return html`
    ${blockSVG1(context)}
    \t${ context.text ? block1(context) : undefined }${ context.hasValueState ? block2(context) : undefined }
    `; };\nconst block1 = (context) => { return html`${ifDefined(context.text)}\t`; };\nconst block2 = (context) => { return html`${ifDefined(context.valueStateText)}\t`; };\n\nconst blockSVG1 = (context) => {return svg``};\nexport default block0;","import { registerThemeProperties } from \"@ui5/webcomponents-base/dist/asset-registries/Themes.js\";\n\nimport defaultThemeBase from \"@ui5/webcomponents-theme-base/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js\";\nimport defaultTheme from \"./sap_fiori_3/parameters-bundle.css.js\";\n\nregisterThemeProperties(\"@ui5/webcomponents-theme-base\", \"sap_fiori_3\", defaultThemeBase);\nregisterThemeProperties(\"@ui5/webcomponents\", \"sap_fiori_3\", defaultTheme);\nexport default \".ui5-hidden-text{position:absolute;clip:rect(1px,1px,1px,1px);user-select:none;left:0;top:0}:host(:not([hidden])){display:inline-block}:host{min-width:var(--_ui5_radiobutton_min_width);max-width:100%;text-overflow:ellipsis;overflow:hidden;color:var(--sapField_BorderColor)}:host([selected]){color:var(--_ui5_radiobutton_selected_fill)}:host([selected]) .ui5-radio-svg-inner{fill:currentColor}:host([selected]) .ui5-radio-svg-outer{stroke:var(--sapField_BorderColor)}:host([disabled]) .ui5-radio-root{opacity:var(--sapContent_DisabledOpacity)}:host(:not([disabled])) .ui5-radio-root:focus:before{content:\\\"\\\";display:block;position:absolute;top:var(--_ui5_rb_focus_dist);bottom:var(--_ui5_rb_focus_dist);left:var(--_ui5_rb_focus_dist);right:var(--_ui5_rb_focus_dist);pointer-events:none;border:var(--_ui5_radiobutton_border_width) dotted var(--sapContent_FocusColor)}:host(:not([value-state=Error]):not([value-state=Warning])) .ui5-radio-root:hover .ui5-radio-inner--hoverable .ui5-radio-svg-outer{fill:var(--_ui5_radiobutton_hover_fill);stroke:var(--sapField_Hover_BorderColor)}:host([text]) .ui5-radio-root:focus:before{right:0}:host([selected][readonly]) .ui5-radio-svg-inner{fill:var(--sapContent_NonInteractiveIconColor)}:host([readonly]) .ui5-radio-root .ui5-radio-svg-outer{fill:var(--sapField_ReadOnly_Background);stroke:var(--sapField_ReadOnly_BorderColor)}:host([value-state=Error]) .ui5-radio-svg-outer,:host([value-state=Warning]) .ui5-radio-svg-outer{stroke-width:2}:host([value-state=Error][selected]) .ui5-radio-svg-inner{fill:var(--_ui5_radiobutton_selected_error_fill)}:host([value-state=Error]) .ui5-radio-root:hover .ui5-radio-inner.ui5-radio-inner--hoverable:hover .ui5-radio-svg-outer,:host([value-state=Error]) .ui5-radio-svg-outer{stroke:var(--sapField_InvalidColor);fill:var(--sapField_InvalidBackground)}:host([value-state=Warning][selected]) .ui5-radio-svg-inner{fill:var(--_ui5_radiobutton_selected_warning_fill)}:host([value-state=Warning]) .ui5-radio-root:hover .ui5-radio-inner.ui5-radio-inner--hoverable:hover .ui5-radio-svg-outer,:host([value-state=Warning]) .ui5-radio-svg-outer{stroke:var(--sapField_WarningColor);fill:var(--sapField_WarningBackground)}:host([value-state=Error]) .ui5-radio-root,:host([value-state=Warning]) .ui5-radio-root{stroke-dasharray:var(--_ui5_radiobutton_warning_error_border_dash)}.ui5-radio-root{height:var(--_ui5_rb_height);position:relative;display:flex;flex-wrap:nowrap;outline:none;max-width:100%}.ui5-radio-inner{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:var(--_ui5_rb_inner_size);height:var(--_ui5_rb_inner_size);font-size:1rem;pointer-events:none;vertical-align:top}.ui5-radio-inner:focus{outline:none}.ui5-radio-inner input{-webkit-appearance:none;visibility:hidden;width:0;left:0;position:absolute;font-size:inherit;margin:0}ui5-label.ui5-radio-label{display:flex;align-items:center;width:var(--_ui5_rb_label_width);padding-right:1px;vertical-align:top;cursor:default;max-width:100%;text-overflow:ellipsis;overflow:hidden;pointer-events:none}:host([wrap][text]) .ui5-radio-root{height:auto}:host([wrap][text]) ui5-label.ui5-radio-label{padding:var(--_ui5_rb_label_side_padding) 0;word-break:break-all}.ui5-radio-svg{height:var(--_ui5_rb_svg_size);width:var(--_ui5_rb_svg_size);overflow:visible;pointer-events:none}.ui5-radio-svg-outer{fill:var(--sapField_Background);stroke:currentColor;stroke-width:1}.ui5-radio-svg-inner{fill:none}.ui5-radio-svg-inner,.ui5-radio-svg-outer{flex-shrink:0}:host([text]) [dir=rtl].ui5-radio-root:focus:before{left:0;right:var(--_ui5_rb_rtl_focus_right)}:host(.ui5-li-singlesel-radiobtn) .ui5-radio-root .ui5-radio-inner .ui5-radio-svg-outer{fill:var(--sapList_Background)}\";","import { isDesktop } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport { getRTL } from \"@ui5/webcomponents-base/dist/config/RTL.js\";\nimport { getFeature } from \"@ui5/webcomponents-base/dist/FeaturesRegistry.js\";\nimport UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport { fetchI18nBundle, getI18nBundle } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport ValueState from \"@ui5/webcomponents-base/dist/types/ValueState.js\";\nimport {\n\tisSpace,\n\tisEnter,\n\tisDown,\n\tisLeft,\n\tisUp,\n\tisRight,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport Label from \"./Label.js\";\nimport RadioButtonGroup from \"./RadioButtonGroup.js\";\n\n// Template\nimport RadioButtonTemplate from \"./generated/templates/RadioButtonTemplate.lit.js\";\n\n// i18n\nimport { VALUE_STATE_ERROR, VALUE_STATE_WARNING } from \"./generated/i18n/i18n-defaults.js\";\n\n// Styles\nimport radioButtonCss from \"./generated/themes/RadioButton.css.js\";\n\n/**\n * @public\n */\nconst metadata = {\n\ttag: \"ui5-radiobutton\",\n\tproperties: /** @lends sap.ui.webcomponents.main.RadioButton.prototype */ {\n\n\t\t/**\n\t\t * Determines whether the ui5-radiobutton is disabled.\n\t\t *

    \n\t\t * Note: A disabled ui5-radiobutton is completely noninteractive.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @defaultvalue false\n\t\t * @public\n\t\t */\n\t\tdisabled: {\n\t\t\ttype: Boolean,\n\t\t},\n\n\t\t/**\n\t\t * Determines whether the ui5-radiobutton is read-only.\n\t\t *

    \n\t\t * Note: A read-only ui5-radiobutton is not editable,\n\t\t * but still provides visual feedback upon user interaction.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @defaultvalue false\n\t\t * @public\n\t\t */\n\t\treadonly: {\n\t\t\ttype: Boolean,\n\t\t},\n\n\t\t/**\n\t\t * Determines whether the ui5-radiobutton is selected or not.\n\t\t *

    \n\t\t * Note: The property value can be changed with user interaction,\n\t\t * either by cliking/tapping on the ui5-radiobutton,\n\t\t * or by using the Space or Enter key.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @defaultvalue false\n\t\t * @public\n\t\t */\n\t\tselected: {\n\t\t\ttype: Boolean,\n\t\t},\n\n\t\t/**\n\t\t * Defines the text of the ui5-radiobutton.\n\t\t *\n\t\t * @type {string}\n\t\t * @defaultvalue \"\"\n\t\t * @public\n\t\t */\n\t\ttext: {\n\t\t\ttype: String,\n\t\t},\n\n\t\t/**\n\t\t * Defines the value state of the ui5-radiobutton.\n\t\t *

    \n\t\t * Available options are:\n\t\t *
      \n\t\t *
    • None
    • \n\t\t *
    • Error
    • \n\t\t *
    • Warning
    • \n\t\t *
    \n\t\t *\n\t\t * @type {ValueState}\n\t\t * @defaultvalue \"None\"\n\t\t * @public\n\t\t */\n\t\tvalueState: {\n\t\t\tdefaultValue: ValueState.None,\n\t\t\ttype: ValueState,\n\t\t},\n\n\t\t/**\n\t\t * Defines the name of the ui5-radiobutton.\n\t\t * Radio buttons with the same name will form a radio button group.\n\t\t *\n\t\t *

    \n\t\t * Note:\n\t\t * The selection can be changed with ARROW_UP/DOWN and ARROW_LEFT/RIGHT keys between radio buttons in same group.\n\t\t *\n\t\t *

    \n\t\t * Note:\n\t\t * Only one radio button can be selected per group.\n\t\t *\n\t\t *

    \n\t\t * Important: For the name property to have effect when submitting forms, you must add the following import to your project:\n\t\t * import \"@ui5/webcomponents/dist/features/InputElementsFormSupport.js\";\n\t\t *\n\t\t *

    \n\t\t * Note: When set, a native input HTML element\n\t\t * will be created inside the ui5-radiobutton so that it can be submitted as\n\t\t * part of an HTML form.\n\t\t *\n\t\t * @type {string}\n\t\t * @defaultvalue \"\"\n\t\t * @public\n\t\t */\n\t\tname: {\n\t\t\ttype: String,\n\t\t},\n\n\t\t/**\n\t\t * Defines the form value of the ui5-radiobutton.\n\t\t * When a form with a radio button group is submitted, the group's value\n\t\t * will be the value of the currently selected radio button.\n\t\t *
    \n\t\t * Important: For the value property to have effect, you must add the following import to your project:\n\t\t * import \"@ui5/webcomponents/dist/features/InputElementsFormSupport.js\";\n\t\t *\n\t\t * @type {string}\n\t\t * @defaultvalue \"\"\n\t\t * @public\n\t\t */\n\t\tvalue: {\n\t\t\ttype: String,\n\t\t},\n\n\t\t/**\n\t\t * Defines whether the ui5-radiobutton text wraps when there is not enough space.\n\t\t *

    \n\t\t * Note: By default, the text truncates when there is not enough space.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @defaultvalue false\n\t\t * @public\n\t\t */\n\t\twrap: {\n\t\t\ttype: Boolean,\n\t\t},\n\t},\n\tevents: /** @lends sap.ui.webcomponents.main.RadioButton.prototype */ {\n\n\t\t/**\n\t\t * Fired when the ui5-radiobutton selected state changes.\n\t\t *\n\t\t * @event\n\t\t * @public\n\t\t */\n\t\tselect: {},\n\t},\n};\n\n/**\n * @class\n *\n *

    Overview

    \n *\n * The ui5-radibutton component enables users to select a single option from a set of options.\n * When a ui5-radiobutton is selected by the user, the\n * select event is fired.\n * When a ui5-radiobutton that is within a group is selected, the one\n * that was previously selected gets automatically deselected. You can group radio buttons by using the name property.\n *
    \n * Note: If ui5-radiobutton is not part of a group, it can be selected once, but can not be deselected back.\n *\n *

    Keyboard Handling

    \n *\n * Once the ui5-radiobutton is on focus, it might be selected by pressing the Space and Enter keys.\n *
    \n * The Arrow Down/Arrow Up and Arrow Left/Arrow Right keys can be used to change selection between next/previous radio buttons in one group,\n * while TAB and SHIFT + TAB can be used to enter or leave the radio button group.\n *
    \n * Note: On entering radio button group, the focus goes to the currently selected radio button.\n *\n *

    ES6 Module Import

    \n *\n * import \"@ui5/webcomponents/dist/RadioButton\";\n *\n * @constructor\n * @author SAP SE\n * @alias sap.ui.webcomponents.main.RadioButton\n * @extends sap.ui.webcomponents.base.UI5Element\n * @tagname ui5-radiobutton\n * @public\n */\nclass RadioButton extends UI5Element {\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis.i18nBundle = getI18nBundle(\"@ui5/webcomponents\");\n\t}\n\n\tstatic get metadata() {\n\t\treturn metadata;\n\t}\n\n\tstatic get render() {\n\t\treturn litRender;\n\t}\n\n\tstatic get template() {\n\t\treturn RadioButtonTemplate;\n\t}\n\n\tstatic get styles() {\n\t\treturn radioButtonCss;\n\t}\n\n\tstatic async onDefine() {\n\t\tawait Promise.all([\n\t\t\tLabel.define(),\n\t\t\tfetchI18nBundle(\"@ui5/webcomponents\"),\n\t\t]);\n\t}\n\n\tonBeforeRendering() {\n\t\tthis.syncGroup();\n\n\t\tthis._enableFormSupport();\n\t}\n\n\tsyncGroup() {\n\t\tconst oldGroup = this._name;\n\t\tconst currentGroup = this.name;\n\n\t\tif (currentGroup !== oldGroup) {\n\t\t\tif (oldGroup) {\n\t\t\t\t// remove the control from the previous group\n\t\t\t\tRadioButtonGroup.removeFromGroup(this, oldGroup);\n\t\t\t}\n\n\t\t\tif (currentGroup) {\n\t\t\t\t// add the control to the existing group\n\t\t\t\tRadioButtonGroup.addToGroup(this, currentGroup);\n\t\t\t}\n\t\t} else if (currentGroup) {\n\t\t\tRadioButtonGroup.enforceSingleSelection(this, currentGroup);\n\t\t}\n\n\t\tthis._name = this.name;\n\t}\n\n\t_enableFormSupport() {\n\t\tconst FormSupport = getFeature(\"FormSupport\");\n\t\tif (FormSupport) {\n\t\t\tFormSupport.syncNativeHiddenInput(this, (element, nativeInput) => {\n\t\t\t\tnativeInput.disabled = element.disabled || !element.selected;\n\t\t\t\tnativeInput.value = element.selected ? element.value : \"\";\n\t\t\t});\n\t\t} else if (this.value) {\n\t\t\tconsole.warn(`In order for the \"value\" property to have effect, you should also: import \"@ui5/webcomponents/dist/features/InputElementsFormSupport.js\";`); // eslint-disable-line\n\t\t}\n\t}\n\n\t_onclick() {\n\t\treturn this.toggle();\n\t}\n\n\t_handleDown(event) {\n\t\tconst currentGroup = this.name;\n\n\t\tif (!currentGroup) {\n\t\t\treturn;\n\t\t}\n\n\t\tevent.preventDefault();\n\t\tRadioButtonGroup.selectNextItem(this, currentGroup);\n\t}\n\n\t_handleUp(event) {\n\t\tconst currentGroup = this.name;\n\n\t\tif (!currentGroup) {\n\t\t\treturn;\n\t\t}\n\n\t\tevent.preventDefault();\n\t\tRadioButtonGroup.selectPreviousItem(this, currentGroup);\n\t}\n\n\t_onkeydown(event) {\n\t\tif (isSpace(event)) {\n\t\t\treturn event.preventDefault();\n\t\t}\n\n\t\tif (isEnter(event)) {\n\t\t\treturn this.toggle();\n\t\t}\n\n\t\tif (isDown(event) || isRight(event)) {\n\t\t\tthis._handleDown(event);\n\t\t}\n\n\t\tif (isUp(event) || isLeft(event)) {\n\t\t\tthis._handleUp(event);\n\t\t}\n\t}\n\n\t_onkeyup(event) {\n\t\tif (isSpace(event)) {\n\t\t\tthis.toggle();\n\t\t}\n\t}\n\n\ttoggle() {\n\t\tif (!this.canToggle()) {\n\t\t\treturn this;\n\t\t}\n\n\t\tif (!this.name) {\n\t\t\tthis.selected = !this.selected;\n\t\t\tthis.fireEvent(\"select\");\n\t\t\treturn this;\n\t\t}\n\n\t\tRadioButtonGroup.selectItem(this, this.name);\n\t\treturn this;\n\t}\n\n\tcanToggle() {\n\t\treturn !(this.disabled || this.readonly || this.selected);\n\t}\n\n\tvalueStateTextMappings() {\n\t\tconst i18nBundle = this.i18nBundle;\n\n\t\treturn {\n\t\t\t\"Error\": i18nBundle.getText(VALUE_STATE_ERROR),\n\t\t\t\"Warning\": i18nBundle.getText(VALUE_STATE_WARNING),\n\t\t};\n\t}\n\n\tget classes() {\n\t\treturn {\n\t\t\tinner: {\n\t\t\t\t\"ui5-radio-inner--hoverable\": !this.disabled && !this.readonly && isDesktop(),\n\t\t\t},\n\t\t};\n\t}\n\n\tget ariaReadonly() {\n\t\treturn this.readonly ? \"true\" : undefined;\n\t}\n\n\tget ariaDisabled() {\n\t\treturn this.disabled ? \"true\" : undefined;\n\t}\n\n\tget ariaLabelledBy() {\n\t\treturn this.text ? `${this._id}-label` : undefined;\n\t}\n\n\tget ariaDescribedBy() {\n\t\treturn this.hasValueState ? `${this._id}-descr` : undefined;\n\t}\n\n\tget hasValueState() {\n\t\treturn this.valueState !== ValueState.None;\n\t}\n\n\tget valueStateText() {\n\t\treturn this.valueStateTextMappings()[this.valueState];\n\t}\n\n\tget tabIndex() {\n\t\tconst tabindex = this.getAttribute(\"tabindex\");\n\n\t\tif (this.disabled) {\n\t\t\treturn \"-1\";\n\t\t}\n\n\t\tif (this.name) {\n\t\t\treturn this.selected ? \"0\" : \"-1\";\n\t\t}\n\n\t\treturn tabindex || \"0\";\n\t}\n\n\tget strokeWidth() {\n\t\treturn this.valueState === \"None\" ? \"1\" : \"2\";\n\t}\n\n\tget rtl() {\n\t\treturn getRTL() ? \"rtl\" : undefined;\n\t}\n}\n\nRadioButton.define();\n\nexport default RadioButton;\n","import { registerIcon } from \"@ui5/webcomponents-base/dist/SVGIconRegistry.js\";\n\nconst name = \"accept\";\nconst pathData = \"M455.8 94q9 9 3 19l-222 326q-4 8-12 9t-14-5l-151-167q-5-5-4.5-11t5.5-11l25-25q12-12 23 0l96 96q5 5 13 4.5t12-8.5l175-249q4-7 11.5-8t13.5 4z\";\n\nregisterIcon(name, { pathData });\n\nexport default { pathData };","\n/* eslint no-unused-vars: 0 */\nimport ifDefined from '@ui5/webcomponents-base/dist/renderer/ifDefined.js';\nimport { html, svg, repeat, classMap, styleMap } from '@ui5/webcomponents-base/dist/renderer/LitRenderer.js';\nconst block0 = (context) => { return html`
    \t\t\t${ context.checked ? block1(context) : undefined }
    \t\t${ context._label.text ? block2(context) : undefined }${ context.hasValueState ? block3(context) : undefined }`; };\nconst block1 = (context) => { return html`\t\t\t`; };\nconst block2 = (context) => { return html`${ifDefined(context._label.text)}\t\t`; };\nconst block3 = (context) => { return html`${ifDefined(context.valueStateText)}\t\t`; };\n\nexport default block0;","import { registerThemeProperties } from \"@ui5/webcomponents-base/dist/asset-registries/Themes.js\";\n\nimport defaultThemeBase from \"@ui5/webcomponents-theme-base/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js\";\nimport defaultTheme from \"./sap_fiori_3/parameters-bundle.css.js\";\n\nregisterThemeProperties(\"@ui5/webcomponents-theme-base\", \"sap_fiori_3\", defaultThemeBase);\nregisterThemeProperties(\"@ui5/webcomponents\", \"sap_fiori_3\", defaultTheme);\nexport default \".ui5-hidden-text{position:absolute;clip:rect(1px,1px,1px,1px);user-select:none;left:0;top:0}:host(:not([hidden])){display:inline-block}:host{overflow:hidden;max-width:100%;outline:none}:host([disabled]) .ui5-checkbox-root{opacity:.5}:host([readonly]:not([value-state=Warning]):not([value-state=Error])) .ui5-checkbox-inner{background:var(--sapField_ReadOnly_Background);border:var(--_ui5_checkbox_inner_readonly_border);color:var(--sapContent_NonInteractiveIconColor)}:host([wrap][text]) .ui5-checkbox-root{min-height:auto;box-sizing:border-box;align-items:flex-start;padding-top:var(--_ui5_checkbox_root_side_padding);padding-bottom:var(--_ui5_checkbox_root_side_padding)}:host([wrap][text]) .ui5-checkbox-root .ui5-checkbox-inner,:host([wrap][text]) .ui5-checkbox-root .ui5-checkbox-label{margin-top:var(--_ui5_checkbox_wrapped_content_margin_top)}:host([wrap][text]) .ui5-checkbox-root .ui5-checkbox-label{word-break:break-all}:host([wrap]) .ui5-checkbox-root:focus:before{bottom:var(--_ui5_checkbox_wrapped_focus_left_top_bottom_position)}:host([value-state=Error]) .ui5-checkbox--hoverable:hover .ui5-checkbox-inner,:host([value-state=Error]) .ui5-checkbox-inner{background:var(--sapField_InvalidBackground);border:var(--_ui5_checkbox_inner_error_border);color:var(--sapField_InvalidColor)}:host([value-state=Warning]) .ui5-checkbox--hoverable:hover .ui5-checkbox-inner,:host([value-state=Warning]) .ui5-checkbox-inner{background:var(--sapField_WarningBackground);border:var(--_ui5_checkbox_inner_warning_border);color:var(--sapField_WarningColor)}:host([value-state=Warning]) .ui5-checkbox-icon{color:var(--_ui5_checkbox_checkmark_warning_color)}:host([text]) .ui5-checkbox-root{padding-right:0}:host([text]) .ui5-checkbox-root:focus:before{right:0}.ui5-checkbox-root{position:relative;display:inline-flex;align-items:center;justify-content:center;width:100%;min-height:var(--_ui5_checkbox_width_height);min-width:var(--_ui5_checkbox_width_height);padding:0 var(--_ui5_checkbox_wrapper_padding);box-sizing:border-box;outline:none;-webkit-tap-highlight-color:rgba(0,0,0,0)}.ui5-checkbox-root:after{content:\\\"\\\";min-height:inherit;font-size:0}.ui5-checkbox-root:focus:before{content:\\\"\\\";position:absolute;top:var(--_ui5_checkbox_focus_position);left:var(--_ui5_checkbox_focus_position);right:var(--_ui5_checkbox_focus_position);bottom:var(--_ui5_checkbox_focus_position);border:var(--_ui5_checkbox_focus_outline)}.ui5-checkbox--hoverable:hover .ui5-checkbox-inner{background:var(--_ui5_checkbox_hover_background);border-color:var(--sapField_Hover_BorderColor)}.ui5-checkbox-inner{display:flex;justify-content:center;align-items:center;min-width:var(--_ui5_checkbox_inner_width_height);max-width:var(--_ui5_checkbox_inner_width_height);height:var(--_ui5_checkbox_inner_width_height);max-height:var(--_ui5_checkbox_inner_width_height);border:var(--_ui5_checkbox_inner_border);border-radius:var(--_ui5_checkbox_inner_border_radius);background:var(--sapField_Background);color:var(--_ui5_checkbox_checkmark_color);box-sizing:border-box;position:relative;cursor:default;pointer-events:none}.ui5-checkbox-icon{color:currentColor;cursor:default}.ui5-checkbox-inner input{-webkit-appearance:none;visibility:hidden;width:0;left:0;position:absolute;font-size:inherit}.ui5-checkbox-root .ui5-checkbox-label{margin-left:var(--_ui5_checkbox_wrapper_padding);cursor:default;text-overflow:ellipsis;overflow:hidden;pointer-events:none;user-select:none;-ms-user-select:none;-webkit-user-select:none}.ui5-checkbox-icon{width:var(--_ui5_checkbox_icon_size);height:var(--_ui5_checkbox_icon_size)}:host([text]) [dir=rtl].ui5-checkbox-root{padding-left:0;padding-right:var(--_ui5_checkbox_wrapper_padding)}:host([text]) [dir=rtl].ui5-checkbox-root:focus:before{left:0;right:var(--_ui5_checkbox_focus_position)}:host([text]) [dir=rtl].ui5-checkbox-root .ui5-checkbox-label{margin-left:0;margin-right:var(--_ui5_checkbox_compact_wrapper_padding)}\";","import { isDesktop } from \"@ui5/webcomponents-base/dist/Device.js\";\nimport UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport { fetchI18nBundle, getI18nBundle } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport ValueState from \"@ui5/webcomponents-base/dist/types/ValueState.js\";\nimport { getFeature } from \"@ui5/webcomponents-base/dist/FeaturesRegistry.js\";\nimport { getRTL } from \"@ui5/webcomponents-base/dist/config/RTL.js\";\nimport { isSpace, isEnter } from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport \"@ui5/webcomponents-icons/dist/icons/accept.js\";\nimport Icon from \"./Icon.js\";\nimport Label from \"./Label.js\";\nimport { VALUE_STATE_ERROR, VALUE_STATE_WARNING } from \"./generated/i18n/i18n-defaults.js\";\n\n// Template\nimport CheckBoxTemplate from \"./generated/templates/CheckBoxTemplate.lit.js\";\n\n// Styles\nimport checkboxCss from \"./generated/themes/CheckBox.css.js\";\n\n/**\n * @public\n */\nconst metadata = {\n\ttag: \"ui5-checkbox\",\n\tproperties: /** @lends sap.ui.webcomponents.main.CheckBox.prototype */ {\n\n\t\t/**\n\t\t * Defines whether the ui5-checkbox is disabled.\n\t\t *

    \n\t\t * Note: A disabled ui5-checkbox is completely noninteractive.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @defaultvalue false\n\t\t * @public\n\t\t */\n\t\tdisabled: {\n\t\t\ttype: Boolean,\n\t\t},\n\n\t\t/**\n\t\t * Defines whether the ui5-checkbox is read-only.\n\t\t *

    \n\t\t * Note: A red-only ui5-checkbox is not editable,\n\t\t * but still provides visual feedback upon user interaction.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @defaultvalue false\n\t\t * @public\n\t\t */\n\t\treadonly: {\n\t\t\ttype: Boolean,\n\t\t},\n\n\t\t/**\n\t\t * Defines if the ui5-checkbox is checked.\n\t\t *

    \n\t\t * Note: The property can be changed with user interaction,\n\t\t * either by cliking/tapping on the ui5-checkbox, or by\n\t\t * pressing the Enter or Space key.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @defaultvalue false\n\t\t * @public\n\t\t */\n\t\tchecked: {\n\t\t\ttype: Boolean,\n\t\t},\n\n\t\t/**\n\t\t * Defines the text of the ui5-checkbox.\n\t\t *\n\t\t * @type {string}\n\t\t * @defaultvalue \"\"\n\t\t * @public\n\t\t */\n\t\ttext: {\n\t\t\ttype: String,\n\t\t},\n\n\t\t/**\n\t\t * Defines the value state of the ui5-checkbox.\n\t\t *

    \n\t\t * Note: Available options are Warning, Error, and None (default).\n\t\t *\n\t\t * @type {ValueState}\n\t\t * @defaultvalue \"None\"\n\t\t * @public\n\t\t */\n\t\tvalueState: {\n\t\t\ttype: ValueState,\n\t\t\tdefaultValue: ValueState.None,\n\t\t},\n\n\t\t/**\n\t\t * Defines whether the ui5-checkbox text wraps when there is not enough space.\n\t\t *

    \n\t\t * Note: By default, the text truncates when there is not enough space.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @defaultvalue false\n\t\t * @public\n\t\t */\n\t\twrap: {\n\t\t\ttype: Boolean,\n\t\t},\n\n\t\t/**\n\t\t * Determines the name with which the ui5-checkbox will be submitted in an HTML form.\n\t\t *\n\t\t *

    \n\t\t * Important: For the name property to have effect, you must add the following import to your project:\n\t\t * import \"@ui5/webcomponents/dist/features/InputElementsFormSupport.js\";\n\t\t *\n\t\t *

    \n\t\t * Note: When set, a native input HTML element\n\t\t * will be created inside the ui5-checkbox so that it can be submitted as\n\t\t * part of an HTML form. Do not use this property unless you need to submit a form.\n\t\t *\n\t\t * @type {string}\n\t\t * @defaultvalue \"\"\n\t\t * @public\n\t\t */\n\t\tname: {\n\t\t\ttype: String,\n\t\t},\n\n\t\t_label: {\n\t\t\ttype: Object,\n\t\t},\n\t},\n\tevents: /** @lends sap.ui.webcomponents.main.CheckBox.prototype */ {\n\n\t\t/**\n\t\t * Fired when the ui5-checkbox checked state changes.\n\t\t *\n\t\t * @public\n\t\t * @event\n\t\t */\n\t\tchange: {},\n\t},\n};\n\n/**\n * @class\n *\n *

    Overview

    \n *\n * Allows the user to set a binary value, such as true/false or yes/no for an item.\n *

    \n * The ui5-checkbox component consists of a box and a label that describes its purpose.\n * If it's checked, an indicator is displayed inside the box.\n * To check/uncheck the ui5-checkbox, the user has to click or tap the square\n * box or its label.\n *

    \n * The ui5-checkbox component only has 2 states - checked and unchecked.\n * Clicking or tapping toggles the ui5-checkbox between checked and unchecked state.\n *\n *

    Usage

    \n *\n * You can manually set the width of the element containing the box and the label using the width property.\n * If the text exceeds the available width, it is truncated.\n * The touchable area for toggling the ui5-checkbox ends where the text ends.\n *

    \n * You can disable the ui5-checkbox by setting the disabled property to\n * true,\n * or use the ui5-checkbox in read-only mode by setting the readonly\n * property to true.\n *\n *

    ES6 Module Import

    \n *\n * import \"@ui5/webcomponents/dist/CheckBox\";\n *\n * @constructor\n * @author SAP SE\n * @alias sap.ui.webcomponents.main.CheckBox\n * @extends sap.ui.webcomponents.base.UI5Element\n * @tagname ui5-checkbox\n * @public\n */\nclass CheckBox extends UI5Element {\n\tstatic get metadata() {\n\t\treturn metadata;\n\t}\n\n\tstatic get render() {\n\t\treturn litRender;\n\t}\n\n\tstatic get template() {\n\t\treturn CheckBoxTemplate;\n\t}\n\n\tstatic get styles() {\n\t\treturn checkboxCss;\n\t}\n\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis._label = {};\n\t\tthis.i18nBundle = getI18nBundle(\"@ui5/webcomponents\");\n\t}\n\n\tonBeforeRendering() {\n\t\tthis.syncLabel();\n\n\t\tthis._enableFormSupport();\n\t}\n\n\tsyncLabel() {\n\t\tthis._label = Object.assign({}, this._label);\n\t\tthis._label.text = this.text;\n\t\tthis._label.wrap = this.wrap;\n\t\tthis._label.textDirection = this.textDirection;\n\t}\n\n\t_enableFormSupport() {\n\t\tconst FormSupport = getFeature(\"FormSupport\");\n\t\tif (FormSupport) {\n\t\t\tFormSupport.syncNativeHiddenInput(this, (element, nativeInput) => {\n\t\t\t\tnativeInput.disabled = element.disabled || !element.checked;\n\t\t\t\tnativeInput.value = element.checked ? \"on\" : \"\";\n\t\t\t});\n\t\t} else if (this.name) {\n\t\t\tconsole.warn(`In order for the \"name\" property to have effect, you should also: import \"@ui5/webcomponents/dist/features/InputElementsFormSupport.js\";`); // eslint-disable-line\n\t\t}\n\t}\n\n\t_onclick() {\n\t\tthis.toggle();\n\t}\n\n\t_onkeydown(event) {\n\t\tif (isSpace(event)) {\n\t\t\tevent.preventDefault();\n\t\t}\n\n\t\tif (isEnter(event)) {\n\t\t\tthis.toggle();\n\t\t}\n\t}\n\n\t_onkeyup(event) {\n\t\tif (isSpace(event)) {\n\t\t\tthis.toggle();\n\t\t}\n\t}\n\n\ttoggle() {\n\t\tif (this.canToggle()) {\n\t\t\tthis.checked = !this.checked;\n\t\t\tthis.fireEvent(\"change\");\n\t\t\t// Angular two way data binding\n\t\t\tthis.fireEvent(\"value-changed\");\n\t\t}\n\t\treturn this;\n\t}\n\n\tcanToggle() {\n\t\treturn !(this.disabled || this.readonly);\n\t}\n\n\tvalueStateTextMappings() {\n\t\tconst i18nBundle = this.i18nBundle;\n\n\t\treturn {\n\t\t\t\"Error\": i18nBundle.getText(VALUE_STATE_ERROR),\n\t\t\t\"Warning\": i18nBundle.getText(VALUE_STATE_WARNING),\n\t\t};\n\t}\n\n\tget classes() {\n\t\treturn {\n\t\t\tmain: {\n\t\t\t\t\"ui5-checkbox--hoverable\": !this.disabled && !this.readonly && isDesktop(),\n\t\t\t},\n\t\t};\n\t}\n\n\tget ariaReadonly() {\n\t\treturn this.readonly ? \"true\" : undefined;\n\t}\n\n\tget ariaDisabled() {\n\t\treturn this.disabled ? \"true\" : undefined;\n\t}\n\n\tget ariaLabelledBy() {\n\t\treturn this.text ? `${this._id}-label` : undefined;\n\t}\n\n\tget ariaDescribedBy() {\n\t\treturn this.hasValueState ? `${this._id}-descr` : undefined;\n\t}\n\n\tget hasValueState() {\n\t\treturn this.valueState !== ValueState.None;\n\t}\n\n\tget valueStateText() {\n\t\treturn this.valueStateTextMappings()[this.valueState];\n\t}\n\n\tget tabIndex() {\n\t\tconst tabindex = this.getAttribute(\"tabindex\");\n\t\treturn this.disabled ? undefined : tabindex || \"0\";\n\t}\n\n\tget rtl() {\n\t\treturn getRTL() ? \"rtl\" : undefined;\n\t}\n\n\tstatic async onDefine() {\n\t\tawait Promise.all([\n\t\t\tLabel.define(),\n\t\t\tIcon.define(),\n\t\t\tfetchI18nBundle(\"@ui5/webcomponents\"),\n\t\t]);\n\t}\n}\n\nCheckBox.define();\n\nexport default CheckBox;\n","import { registerThemeProperties } from \"@ui5/webcomponents-base/dist/asset-registries/Themes.js\";\n\nimport defaultThemeBase from \"@ui5/webcomponents-theme-base/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js\";\nimport defaultTheme from \"./sap_fiori_3/parameters-bundle.css.js\";\n\nregisterThemeProperties(\"@ui5/webcomponents-theme-base\", \"sap_fiori_3\", defaultThemeBase);\nregisterThemeProperties(\"@ui5/webcomponents\", \"sap_fiori_3\", defaultTheme);\nexport default \".ui5-hidden-text{position:absolute;clip:rect(1px,1px,1px,1px);user-select:none;left:0;top:0}:host([actionable]){cursor:pointer}:host([selected][actionable]:not([active]):hover){background:var(--sapList_Hover_SelectionBackground)}:host([active][actionable]),:host([selected][active][actionable]){background:var(--sapList_Active_Background)}:host([actionable]:not([active]):not([selected]):hover){background:var(--sapList_Hover_Background)}:host([active][actionable]) .ui5-li-root.ui5-li--focusable .ui5-li-content:focus,:host([active][actionable]) .ui5-li-root.ui5-li--focusable:focus{outline-color:var(--sapContent_ContrastFocusColor)}:host([active][actionable]) .ui5-li-root .ui5-li-icon{color:var(--sapList_Active_TextColor)}:host([active][actionable]) .ui5-li-desc,:host([active][actionable]) .ui5-li-info,:host([active][actionable]) .ui5-li-title{color:var(--sapList_Active_TextColor)}:host([info-state=Warning]) .ui5-li-info{color:var(--sapCriticalTextColor)}:host([info-state=Success]) .ui5-li-info{color:var(--sapPositiveTextColor)}:host([info-state=Error]) .ui5-li-info{color:var(--sapNegativeTextColor)}:host([has-title][description]){height:5rem}:host([has-title][description]) .ui5-li-title{padding-bottom:.375rem}.ui5-li-title-wrapper{display:flex;flex-direction:column;flex:auto;min-width:1px;line-height:normal}.ui5-li-title{color:var(--sapTextColor);font-size:var(--_ui5_list_item_title_size)}.ui5-li-desc,.ui5-li-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ui5-li-desc{color:var(--sapContent_LabelColor);font-size:var(--sapFontSize)}.ui5-li-info{margin:0 .25rem;color:var(--sapNeutralTextColor);font-size:.875rem;flex-shrink:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ui5-li-img{width:var(--_ui5_list_item_img_size);min-width:var(--_ui5_list_item_img_size);height:var(--_ui5_list_item_img_size);min-height:var(--_ui5_list_item_img_size);margin:var(--_ui5_list_item_img_margin)}.ui5-li-icon{min-width:1rem;min-height:1rem;color:var(--sapContent_NonInteractiveIconColor);padding-right:.5rem}.ui5-li-content{display:flex;align-items:center;flex:auto;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;pointer-events:none}.ui5-li-deletebtn{display:flex;align-items:center}.ui5-li-multisel-cb,.ui5-li-singlesel-radiobtn{flex-shrink:0}:host() ui5-checkbox.ui5-li-singlesel-radiobtn{margin-right:var(--_ui5_list_item_cb_margin_right)}:host [dir=rtl] .ui5-li-icon{padding-left:.5rem;padding-right:0}:host [dir=rtl] .ui5-li-img{margin:.5rem 0 .5rem .75rem}\";","import { isSpace, isEnter } from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport \"@ui5/webcomponents-icons/dist/icons/decline.js\";\nimport \"@ui5/webcomponents-icons/dist/icons/edit.js\";\nimport { fetchI18nBundle, getI18nBundle } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport ListItemType from \"./types/ListItemType.js\";\nimport ListMode from \"./types/ListMode.js\";\nimport ListItemBase from \"./ListItemBase.js\";\nimport \"./RadioButton.js\";\nimport \"./CheckBox.js\";\nimport \"./Button.js\";\nimport { DELETE } from \"./generated/i18n/i18n-defaults.js\";\n\n// Styles\nimport styles from \"./generated/themes/ListItem.css.js\";\n\n/**\n * @public\n */\nconst metadata = {\n\tproperties: /** @lends sap.ui.webcomponents.main.ListItem.prototype */ {\n\n\t\t/**\n\t\t * Defines the visual indication and behavior of the list items.\n\t\t * Available options are Active (by default), Inactive and Detail.\n\t\t *

    \n\t\t * Note: When set to Active, the item will provide visual response upon press and hover,\n\t\t * while with type Inactive and Detail - will not.\n\t\t *\n\t\t * @type {ListItemType}\n\t\t * @defaultvalue \"Active\"\n\t\t * @public\n\t\t*/\n\t\ttype: {\n\t\t\ttype: ListItemType,\n\t\t\tdefaultValue: ListItemType.Active,\n\t\t},\n\n\t\t/**\n\t\t * Indicates if the list item is active, e.g pressed down with the mouse or the keyboard keys.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @private\n\t\t*/\n\t\tactive: {\n\t\t\ttype: Boolean,\n\t\t},\n\n\t\t/**\n\t\t * Indicates if the list item is actionable, e.g has hover and pressed effects.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @private\n\t\t*/\n\t\tactionable: {\n\t\t\ttype: Boolean,\n\t\t},\n\n\t\t_mode: {\n\t\t\ttype: ListMode,\n\t\t\tdefaultValue: ListMode.None,\n\t\t\tnoAttribute: true,\n\t\t},\n\t},\n\tevents: {\n\t\t/**\n\t\t * Fired when the user clicks on the detail button when type is Detail.\n\t\t *\n\t\t * @event\n\t\t * @public\n\t\t */\n\t\tdetailClick: {},\n\t\t_press: {},\n\t\t_focused: {},\n\t\t_focusForward: {},\n\t},\n};\n\n/**\n * @class\n * A class to serve as a base\n * for the StandardListItem and CustomListItem classes.\n *\n * @constructor\n * @author SAP SE\n * @alias sap.ui.webcomponents.main.ListItem\n * @extends ListItemBase\n * @public\n */\nclass ListItem extends ListItemBase {\n\tstatic get metadata() {\n\t\treturn metadata;\n\t}\n\n\tstatic get styles() {\n\t\treturn [styles, ListItemBase.styles];\n\t}\n\n\tconstructor(props) {\n\t\tsuper(props);\n\n\t\tthis.deactivateByKey = event => {\n\t\t\tif (isEnter(event)) {\n\t\t\t\tthis.deactivate();\n\t\t\t}\n\t\t};\n\n\t\tthis.deactivate = () => {\n\t\t\tif (this.active) {\n\t\t\t\tthis.active = false;\n\t\t\t}\n\t\t};\n\n\t\tthis.i18nBundle = getI18nBundle(\"@ui5/webcomponents\");\n\t}\n\n\tonBeforeRendering(...params) {\n\t\tthis.actionable = (this.type === ListItemType.Active) && (this._mode !== ListMode.Delete);\n\t}\n\n\tonEnterDOM() {\n\t\tdocument.addEventListener(\"mouseup\", this.deactivate);\n\t\tdocument.addEventListener(\"touchend\", this.deactivate);\n\t\tdocument.addEventListener(\"keyup\", this.deactivateByKey);\n\t}\n\n\tonExitDOM() {\n\t\tdocument.removeEventListener(\"mouseup\", this.deactivate);\n\t\tdocument.removeEventListener(\"keyup\", this.deactivateByKey);\n\t\tdocument.removeEventListener(\"touchend\", this.deactivate);\n\t}\n\n\t_onkeydown(event) {\n\t\tsuper._onkeydown(event);\n\n\t\tconst itemActive = this.type === ListItemType.Active;\n\n\t\tif (isSpace(event)) {\n\t\t\tevent.preventDefault();\n\t\t}\n\n\t\tif ((isSpace(event) || isEnter(event)) && itemActive) {\n\t\t\tthis.activate();\n\t\t}\n\n\t\tif (isEnter(event)) {\n\t\t\tthis.fireItemPress(event);\n\t\t}\n\t}\n\n\t_onkeyup(event) {\n\t\tif (isSpace(event) || isEnter(event)) {\n\t\t\tthis.deactivate();\n\t\t}\n\n\t\tif (isSpace(event)) {\n\t\t\tthis.fireItemPress(event);\n\t\t}\n\t}\n\n\t_onmousedown(event) {\n\t\tif (event.isMarked === \"button\") {\n\t\t\treturn;\n\t\t}\n\t\tthis.activate();\n\t}\n\n\t_onmouseup(event) {\n\t\tif (event.isMarked === \"button\") {\n\t\t\treturn;\n\t\t}\n\t\tthis.deactivate();\n\t}\n\n\t_ontouchstart(event) {\n\t\tthis._onmousedown(event);\n\t}\n\n\t_ontouchend(event) {\n\t\tthis._onmouseup(event);\n\t}\n\n\t_onfocusout() {\n\t\tsuper._onfocusout();\n\t\tthis.deactivate();\n\t}\n\n\t_onclick(event) {\n\t\tif (event.isMarked === \"button\") {\n\t\t\treturn;\n\t\t}\n\t\tthis.fireItemPress(event);\n\t}\n\n\t/*\n\t * Called when selection components in Single (ui5-radiobutton)\n\t * and Multi (ui5-checkbox) selection modes are used.\n\t */\n\tonMultiSelectionComponentPress(event) {\n\t\tif (this.isInactive) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.fireEvent(\"_selectionRequested\", { item: this, selected: event.target.checked, selectionComponentPressed: true });\n\t}\n\n\tonSingleSelectionComponentPress(event) {\n\t\tif (this.isInactive) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.fireEvent(\"_selectionRequested\", { item: this, selected: !event.target.selected, selectionComponentPressed: true });\n\t}\n\n\tactivate() {\n\t\tif (this.type === ListItemType.Active) {\n\t\t\tthis.active = true;\n\t\t}\n\t}\n\n\tonDelete(event) {\n\t\tthis.fireEvent(\"_selectionRequested\", { item: this, selectionComponentPressed: false });\n\t}\n\n\tonDetailClick(event) {\n\t\tthis.fireEvent(\"detailClick\", { item: this, selected: this.selected });\n\t}\n\n\tfireItemPress(event) {\n\t\tif (this.isInactive) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.fireEvent(\"_press\", { item: this, selected: this.selected, key: event.key });\n\t}\n\n\tget isInactive() {\n\t\treturn this.type === ListItemType.Inactive || this.type === ListItemType.Detail;\n\t}\n\n\tget placeSelectionElementBefore() {\n\t\treturn this._mode === ListMode.MultiSelect\n\t\t\t|| this._mode === ListMode.SingleSelectBegin;\n\t}\n\n\tget placeSelectionElementAfter() {\n\t\treturn !this.placeSelectionElementBefore\n\t\t\t&& (this._mode === ListMode.SingleSelectEnd || this._mode === ListMode.Delete);\n\t}\n\n\tget modeSingleSelect() {\n\t\treturn [\n\t\t\tListMode.SingleSelectBegin,\n\t\t\tListMode.SingleSelectEnd,\n\t\t\tListMode.SingleSelect,\n\t\t].includes(this._mode);\n\t}\n\n\tget modeMultiSelect() {\n\t\treturn this._mode === ListMode.MultiSelect;\n\t}\n\n\tget modeDelete() {\n\t\treturn this._mode === ListMode.Delete;\n\t}\n\n\tget typeDetail() {\n\t\treturn this.type === ListItemType.Detail;\n\t}\n\n\tget ariaSelected() {\n\t\tif (this.modeMultiSelect) {\n\t\t\treturn this.selected;\n\t\t}\n\n\t\treturn undefined;\n\t}\n\n\tget deleteText() {\n\t\treturn this.i18nBundle.getText(DELETE);\n\t}\n\n\tstatic async onDefine() {\n\t\tawait Promise.all([\n\t\t\tfetchI18nBundle(\"@ui5/webcomponents\"),\n\t\t]);\n\t}\n}\n\nexport default ListItem;\n","\n/* eslint no-unused-vars: 0 */\nimport ifDefined from '@ui5/webcomponents-base/dist/renderer/ifDefined.js';\nimport { html, svg, repeat, classMap, styleMap } from '@ui5/webcomponents-base/dist/renderer/LitRenderer.js';\nconst block0 = (context) => { return html`\t\t${ context.placeSelectionElementBefore ? block1(context) : undefined }
    \t\t\t${ context.displayImage ? block5(context) : undefined }${ context.displayIconBegin ? block6(context) : undefined }
    \t\t${ context.textContent.length ? block7(context) : undefined }${ context.description ? block8(context) : undefined }${ifDefined(context.type)}
    \t${ context.info ? block9(context) : undefined }
    \t\t${ context.displayIconEnd ? block10(context) : undefined }${ context.typeDetail ? block11(context) : undefined }${ context.placeSelectionElementAfter ? block12(context) : undefined }`; };\nconst block1 = (context) => { return html`${ context.modeSingleSelect ? block2(context) : undefined }${ context.modeMultiSelect ? block3(context) : undefined }${ context.modeDelete ? block4(context) : undefined }`; };\nconst block2 = (context) => { return html`\t`; };\nconst block3 = (context) => { return html`\t`; };\nconst block4 = (context) => { return html`
    \t`; };\nconst block5 = (context) => { return html`\t`; };\nconst block6 = (context) => { return html`\t`; };\nconst block7 = (context) => { return html`\t\t`; };\nconst block8 = (context) => { return html`${ifDefined(context.description)}\t\t`; };\nconst block9 = (context) => { return html`${ifDefined(context.info)}\t`; };\nconst block10 = (context) => { return html`\t`; };\nconst block11 = (context) => { return html`
    \t\t`; };\nconst block12 = (context) => { return html`${ context.modeSingleSelect ? block13(context) : undefined }${ context.modeMultiSelect ? block14(context) : undefined }${ context.modeDelete ? block15(context) : undefined }`; };\nconst block13 = (context) => { return html`\t`; };\nconst block14 = (context) => { return html`\t`; };\nconst block15 = (context) => { return html`
    \t`; };\n\nexport default block0;","import litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport ValueState from \"@ui5/webcomponents-base/dist/types/ValueState.js\";\nimport ListItem from \"./ListItem.js\";\nimport Icon from \"./Icon.js\";\nimport StandardListItemTemplate from \"./generated/templates/StandardListItemTemplate.lit.js\";\n\n/**\n * @public\n */\nconst metadata = {\n\ttag: \"ui5-li\",\n\tproperties: /** @lends sap.ui.webcomponents.main.StandardListItem.prototype */ {\n\n\t\t/**\n\t\t * Defines the description displayed right under the item text, if such is present.\n\t\t * @type {string}\n\t\t * @defaultvalue: \"\"\n\t\t * @public\n\t\t * @since 0.8.0\n\t\t */\n\t\tdescription: {\n\t\t\ttype: String,\n\t\t},\n\n\t\t/**\n\t\t * Defines the icon source URI.\n\t\t *

    \n\t\t * Note:\n\t\t * SAP-icons font provides numerous buil-in icons. To find all the available icons, see the\n\t\t * Icon Explorer.\n\t\t *\n\t\t * @type {string}\n\t\t * @public\n\t\t */\n\t\ticon: {\n\t\t\ttype: String,\n\t\t},\n\n\t\t/**\n\t\t * Defines whether the icon should be displayed in the beginning of the list item or in the end.\n\t\t *

    \n\t\t * Note: If image is set, the icon would be displayed after the image.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @defaultvalue false\n\t\t * @public\n\t\t */\n\t\ticonEnd: {\n\t\t\ttype: Boolean,\n\t\t},\n\n\t\t/**\n\t\t * Defines the image source URI.\n\t\t *

    \n\t\t * Note: The image would be displayed in the beginning of the list item.\n\t\t *\n\t\t * @type {string}\n\t\t * @public\n\t\t */\n\t\timage: {\n\t\t\ttype: String,\n\t\t},\n\n\t\t/**\n\t\t * Defines the info, displayed in the end of the list item.\n\t\t * @type {string}\n\t\t * @public\n\t\t * @since 0.13.0\n\t\t */\n\t\tinfo: {\n\t\t\ttype: String,\n\t\t},\n\n\t\t/**\n\t\t * Defines the state of the info.\n\t\t *
    \n\t\t * Available options are: \"None\" (by default), \"Success\", \"Warning\" and \"Erorr\".\n\t\t * @type {ValueState}\n * @defaultvalue \"None\"\n\t\t * @public\n\t\t * @since 0.13.0\n\t\t */\n\t\tinfoState: {\n\t\t\ttype: ValueState,\n\t\t\tdefaultValue: ValueState.None,\n\t\t},\n\n\t\t/**\n\t\t * Indicates if the list item has text content.\n\t\t * @type {boolean}\n\t\t * @private\n\t\t */\n\t\thasTitle: {\n\t\t\ttype: Boolean,\n\t\t},\n\t},\n\tslots: /** @lends sap.ui.webcomponents.main.StandardListItem.prototype */ {\n\t\t/**\n\t\t * Defines the text of the ui5-li.\n\t\t *

    \n\t\t * Note: Аlthough this slot accepts HTML Elements, it is strongly recommended that you only use text in order to preserve the intended design.\n\t\t *\n\t\t * @type {Node[]}\n\t\t * @slot\n\t\t * @public\n\t\t */\n\t\t\"default\": {\n\t\t\ttype: Node,\n\t\t},\n\t},\n};\n\n/**\n * @class\n * The ui5-li represents the simplest type of item for a ui5-list.\n *\n * This is a list item,\n * providing the most common use cases such as text,\n * image and icon.\n *\n * @constructor\n * @author SAP SE\n * @alias sap.ui.webcomponents.main.StandardListItem\n * @extends ListItem\n * @tagname ui5-li\n * @public\n */\nclass StandardListItem extends ListItem {\n\tstatic get render() {\n\t\treturn litRender;\n\t}\n\n\tstatic get template() {\n\t\treturn StandardListItemTemplate;\n\t}\n\n\tstatic get styles() {\n\t\treturn ListItem.styles;\n\t}\n\n\tstatic get metadata() {\n\t\treturn metadata;\n\t}\n\n\tonBeforeRendering(...params) {\n\t\tsuper.onBeforeRendering(...params);\n\t\tthis.hasTitle = !!this.textContent;\n\t}\n\n\tget displayImage() {\n\t\treturn !!this.image;\n\t}\n\n\tget displayIconBegin() {\n\t\treturn (this.icon && !this.iconEnd);\n\t}\n\n\tget displayIconEnd() {\n\t\treturn (this.icon && this.iconEnd);\n\t}\n\n\tstatic async onDefine() {\n\t\tawait Icon.define();\n\t}\n}\n\nStandardListItem.define();\n\nexport default StandardListItem;\n","\n/* eslint no-unused-vars: 0 */\nimport ifDefined from '@ui5/webcomponents-base/dist/renderer/ifDefined.js';\nimport { html, svg, repeat, classMap, styleMap } from '@ui5/webcomponents-base/dist/renderer/LitRenderer.js';\nconst block0 = (context) => { return html`
    ${ifDefined(context._text)}
    \t${ context.hasValueState ? block1(context) : undefined }`; };\nconst block1 = (context) => { return html`${ifDefined(context.valueStateText)}\t`; };\n\nexport default block0;","\n/* eslint no-unused-vars: 0 */\nimport ifDefined from '@ui5/webcomponents-base/dist/renderer/ifDefined.js';\nimport { html, svg, repeat, classMap, styleMap } from '@ui5/webcomponents-base/dist/renderer/LitRenderer.js';\nconst block0 = (context) => { return html`${ context.options ? block1(context) : undefined }`; };\nconst block1 = (context) => { return html`
    ${ifDefined(context._headerTitleText)}
    \t\t\t${ repeat(context._syncedOptions, (item, index) => item._id || index, (item, index) => block2(item, index, context)) }`; };\nconst block2 = (item, index, context) => { return html`\t\t\t\t\t${ifDefined(item.textContent)}\t\t\t`; };\n\nexport default block0;","import { registerThemeProperties } from \"@ui5/webcomponents-base/dist/asset-registries/Themes.js\";\n\nimport defaultThemeBase from \"@ui5/webcomponents-theme-base/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js\";\nimport defaultTheme from \"./sap_fiori_3/parameters-bundle.css.js\";\n\nregisterThemeProperties(\"@ui5/webcomponents-theme-base\", \"sap_fiori_3\", defaultThemeBase);\nregisterThemeProperties(\"@ui5/webcomponents\", \"sap_fiori_3\", defaultTheme);\nexport default \"[input-icon]{color:var(--sapContent_IconColor);cursor:pointer;outline:none;padding:var(--_ui5_input_icon_padding);border-left:1px solid transparent;min-width:1rem;min-height:1rem}[input-icon][pressed]{background:var(--sapButton_Selected_Background);color:var(--sapButton_Active_TextColor)}[input-icon]:active{background-color:var(--sapButton_Active_Background);color:var(--sapButton_Active_TextColor)}[input-icon]:not([pressed]):not(:active):hover{background:var(--sapButton_Lite_Hover_Background)}[input-icon]:hover{border-left:var(--_ui5_select_hover_icon_left_border)}[input-icon][dir=rtl]:hover{border-left:none;border-right:var(--_ui5_select_hover_icon_left_border)}[input-icon][dir=rtl]{border-left:none;border-right:1px solid transparent}.ui5-hidden-text{position:absolute;clip:rect(1px,1px,1px,1px);user-select:none;left:0;top:0}:host(:not([hidden])){display:inline-block}:host{width:var(--_ui5_input_width);min-width:var(--_ui5_input_width);height:var(--_ui5_input_height);color:var(--sapField_TextColor);font-size:var(--sapFontSize);font-family:var(--sapFontFamily);font-style:normal;background-color:var(--sapField_Background);border:1px solid var(--sapField_BorderColor);border-radius:var(--_ui5_input_wrapper_border_radius);box-sizing:border-box}:host([focused]){outline:var(--_ui5_input_focus_border_width) dotted var(--sapContent_FocusColor);outline-offset:-3px}:host([value-state]:not([value-state=None])[focused]){outline:var(--_ui5_input_focus_border_width) dotted var(--sapContent_FocusColor);outline-offset:-4px}.ui5-input-root{width:100%;height:100%;background:transparent;display:inline-block;outline:none;box-sizing:border-box;color:inherit}:host([disabled]){opacity:var(--_ui5_input_disabled_opacity);cursor:default;pointer-events:none;background:var(--sapField_ReadOnly_Background);border-color:var(--sapField_ReadOnly_BorderColor);-webkit-text-fill-color:var(--sapContent_DisabledTextColor);color:var(--sapContent_DisabledTextColor)}[inner-input]{background:transparent;color:inherit;border:none;font-style:inherit;-webkit-appearance:none;-moz-appearance:textfield;line-height:normal;padding:var(--_ui5_input_inner_padding);box-sizing:border-box;min-width:3rem;text-overflow:ellipsis;flex:1;outline:none;font-size:inherit;font-family:inherit}[inner-input]::-moz-selection,[inner-input]::selection{background:var(--sapSelected);color:var(--sapContent_contrastTextColor)}:host([disabled]) [inner-input]::-webkit-input-placeholder{visibility:hidden}:host([readonly]) [inner-input]::-webkit-input-placeholder{visibility:hidden}[inner-input]::-webkit-input-placeholder{font-style:italic;color:var(--sapField_PlaceholderTextColor)}:host([disabled]) [inner-input]::-moz-placeholder{visibility:hidden}:host([readonly]) [inner-input]::-moz-placeholder{visibility:hidden}[inner-input]::-moz-placeholder{font-style:italic;color:var(--sapField_PlaceholderTextColor)}:host([disabled]) [inner-input]:-ms-input-placeholder{visibility:hidden}:host([readonly]) [inner-input]:-ms-input-placeholder{visibility:hidden}[inner-input]:-ms-input-placeholder{font-style:italic;color:var(--sapField_PlaceholderTextColor)}.ui5-input-content{height:100%;box-sizing:border-box;display:flex;flex-direction:row;justify-content:flex-end;overflow:hidden;outline:none;background:transparent;color:inherit}:host([readonly]){border-color:var(--sapField_ReadOnly_BorderColor);background:var(--sapField_ReadOnly_Background)}:host(:not([value-state]):not([readonly]):hover){background-color:var(--sapField_Hover_Background);border:1px solid var(--sapField_Hover_BorderColor)}:host([value-state=None]:not([readonly]):hover){background-color:var(--sapField_Hover_Background);border:1px solid var(--sapField_Hover_BorderColor)}:host([value-state]:not([value-state=None])){border-width:var(--_ui5_input_state_border_width)}:host([value-state=Error]) [inner-input],:host([value-state=Warning]) [inner-input]{font-style:var(--_ui5_input_error_warning_font_style)}:host([value-state=Error]) [inner-input]{font-weight:var(--_ui5_input_error_font_weight)}:host([value-state=Error]:not([readonly])){background-color:var(--sapField_InvalidBackground);border-color:var(--sapField_InvalidColor)}:host([value-state=Error]:not([readonly]):not([disabled])),:host([value-state=Warning]:not([readonly]):not([disabled])){border-style:var(--_ui5_input_error_warning_border_style)}:host([value-state=Warning]:not([readonly])){background-color:var(--sapField_WarningBackground);border-color:var(--sapField_WarningColor)}:host([value-state=Success]:not([readonly])){background-color:var(--sapField_SuccessBackground);border-color:var(--sapField_SuccessColor);border-width:1px}:host([value-state=Information]:not([readonly])){background-color:var(--sapField_InformationBackground);border-color:var(--sapField_InformationColor)}[inner-input]::-ms-clear{height:0;width:0}.ui5-input-icon-root{min-width:var(--_ui5_input_icon_min_width);height:100%;display:flex;justify-content:center;align-items:center}::slotted(ui5-icon[slot=icon]){padding:var(--_ui5_input_icon_padding)}.ui5-select-root{width:100%;height:100%;display:flex;outline:none;cursor:pointer;overflow:hidden}.ui5-select-label-root{display:inline-flex;align-items:center;flex-shrink:1;flex-grow:1;height:100%;min-width:1rem;padding-left:.5rem}.ui5-select-label-root ui5-label{cursor:pointer}:host [dir=rtl].ui5-select-root .ui5-select-label-root{padding-left:0;padding-right:.5rem}:host(:not([disabled])){cursor:pointer}\";","import { registerThemeProperties } from \"@ui5/webcomponents-base/dist/asset-registries/Themes.js\";\n\nimport defaultThemeBase from \"@ui5/webcomponents-theme-base/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js\";\nimport defaultTheme from \"./sap_fiori_3/parameters-bundle.css.js\";\n\nregisterThemeProperties(\"@ui5/webcomponents-theme-base\", \"sap_fiori_3\", defaultThemeBase);\nregisterThemeProperties(\"@ui5/webcomponents\", \"sap_fiori_3\", defaultTheme);\nexport default \".input-root-phone{flex:1;height:var(--_ui5_input_height);color:var(--sapField_TextColor);font-size:var(--sapFontSize);font-family:var(--sapFontFamily);background-color:var(--sapField_Background);border:1px solid var(--sapField_BorderColor);border-radius:var(--_ui5_input_wrapper_border_radius);box-sizing:border-box}.input-root-phone [inner-input]{padding:0 .5rem;width:100%;height:100%}.input-root-phone[value-state]:not([value-state=None])[focused]{outline:var(--_ui5_input_focus_border_width) dotted var(--sapContent_FocusColor);outline-offset:-4px}.input-root-phone [value-state=Error] [input-icon][data-ui5-compact-size],.input-root-phone [value-state=Success] [input-icon][data-ui5-compact-size],.input-root-phone [value-state=Warning] [input-icon][data-ui5-compact-size]{padding:.1875rem .5rem}[inner-input]{background:transparent;color:inherit;border:none;font-style:normal;-webkit-appearance:none;-moz-appearance:textfield;line-height:normal;padding:var(--_ui5_input_inner_padding);box-sizing:border-box;min-width:3rem;text-overflow:ellipsis;flex:1;outline:none;font-size:inherit;font-family:inherit}[inner-input]::-moz-selection,[inner-input]::selection{background:var(--sapSelected);color:var(--sapContent_contrastTextColor)}[inner-input]::-webkit-input-placeholder{font-style:italic;color:var(--sapField_PlaceholderTextColor)}[inner-input]::-moz-placeholder{font-style:italic;color:var(--sapField_PlaceholderTextColor)}[inner-input]:-ms-input-placeholder{font-style:italic;color:var(--sapField_PlaceholderTextColor)}.input-root-phone[value-state]:not([value-state=None]){border-width:var(--_ui5_input_state_border_width)}.input-root-phone[value-state=Error] [inner-input],.input-root-phone[value-state=Warning] [inner-input]{font-style:var(--_ui5_input_error_warning_font_style)}.input-root-phone[value-state=Error] [inner-input]{font-weight:var(--_ui5_input_error_font_weight)}.input-root-phone[value-state=Error]:not([readonly]){background-color:var(--sapField_InvalidBackground);border-color:var(--sapField_InvalidColor)}.input-root-phone[value-state=Error]:not([readonly]):not([disabled]),.input-root-phone[value-state=Warning]:not([readonly]):not([disabled]){border-style:var(--_ui5_input_error_warning_border_style)}.input-root-phone[value-state=Warning]:not([readonly]){background-color:var(--sapField_WarningBackground);border-color:var(--sapField_WarningColor)}.input-root-phone[value-state=Success]:not([readonly]){background-color:var(--sapField_SuccessBackground);border-color:var(--sapField_SuccessColor)}[inner-input]::-ms-clear{height:0;width:0}.ui5-multi-combobox-toggle-button{margin-left:.5rem}.ui5-responsive-popover-header .row{display:flex;align-items:center;justify-content:space-between;padding:.25rem 1rem}.ui5-responsive-popover-footer{display:flex;justify-content:flex-end;padding:.25rem}\";","import UI5Element from \"@ui5/webcomponents-base/dist/UI5Element.js\";\nimport litRender from \"@ui5/webcomponents-base/dist/renderer/LitRenderer.js\";\nimport {\n\tisSpace,\n\tisUp,\n\tisDown,\n\tisEnter,\n\tisEscape,\n\tisShow,\n} from \"@ui5/webcomponents-base/dist/Keys.js\";\nimport { getFeature } from \"@ui5/webcomponents-base/dist/FeaturesRegistry.js\";\nimport { getRTL } from \"@ui5/webcomponents-base/dist/config/RTL.js\";\nimport ValueState from \"@ui5/webcomponents-base/dist/types/ValueState.js\";\nimport \"@ui5/webcomponents-icons/dist/icons/slim-arrow-down.js\";\nimport { getI18nBundle } from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport \"@ui5/webcomponents-icons/dist/icons/decline.js\";\nimport {\n\tVALUE_STATE_SUCCESS,\n\tVALUE_STATE_INFORMATION,\n\tVALUE_STATE_ERROR,\n\tVALUE_STATE_WARNING,\n\tINPUT_SUGGESTIONS_TITLE,\n} from \"./generated/i18n/i18n-defaults.js\";\nimport Option from \"./Option.js\";\nimport Label from \"./Label.js\";\nimport ResponsivePopover from \"./ResponsivePopover.js\";\nimport List from \"./List.js\";\nimport StandardListItem from \"./StandardListItem.js\";\nimport Icon from \"./Icon.js\";\n\n// Templates\nimport SelectTemplate from \"./generated/templates/SelectTemplate.lit.js\";\nimport SelectPopoverTemplate from \"./generated/templates/SelectPopoverTemplate.lit.js\";\n\n// Styles\nimport selectCss from \"./generated/themes/Select.css.js\";\nimport ResponsivePopoverCommonCss from \"./generated/themes/ResponsivePopoverCommon.css.js\";\n\n/**\n * @public\n */\nconst metadata = {\n\ttag: \"ui5-select\",\n\tmanagedSlots: true,\n\tslots: /** @lends sap.ui.webcomponents.main.Select.prototype */ {\n\n\t\t/**\n\t\t * Defines the ui5-select options.\n\t\t *\n\t\t *

    \n\t\t * Note: Only one selected option is allowed.\n\t\t * If more than one option is defined as selected, the last one would be considered as the selected one.\n\t\t *\n\t\t *

    \n\t\t * Note: Use the ui5-option component to define the desired options.\n\t\t * @type {HTMLElement[]}\n\t\t * @slot\n\t\t * @public\n\t\t */\n\t\t\"default\": {\n\t\t\tpropertyName: \"options\",\n\t\t\ttype: HTMLElement,\n\t\t\tlistenFor: { include: [\"*\"] },\n\t\t},\n\t},\n\tproperties: /** @lends sap.ui.webcomponents.main.Select.prototype */ {\n\n\t\t/**\n\t\t * Defines whether ui5-select is in disabled state.\n\t\t *

    \n\t\t * Note: A disabled ui5-select is noninteractive.\n\t\t *\n\t\t * @type {boolean}\n\t\t * @defaultvalue false\n\t\t * @public\n\t\t */\n\t\tdisabled: {\n\t\t\ttype: Boolean,\n\t\t},\n\n\t\t/**\n\t\t * Determines the name with which the ui5-select will be submitted in an HTML form.\n\t\t * The value of the ui5-select will be the value of the currently selected ui5-option.\n\t\t *\n\t\t *

    \n\t\t * Important: For the name property to have effect, you must add the following import to your project:\n\t\t * import \"@ui5/webcomponents/dist/features/InputElementsFormSupport.js\";\n\t\t *\n\t\t *

    \n\t\t * Note: When set, a native input HTML element\n\t\t * will be created inside the ui5-select so that it can be submitted as\n\t\t * part of an HTML form. Do not use this property unless you need to submit a form.\n\t\t *\n\t\t * @type {string}\n\t\t * @defaultvalue \"\"\n\t\t * @public\n\t\t */\n\t\tname: {\n\t\t\ttype: String,\n\t\t},\n\n\t\t/**\n\t\t * Defines the value state of the ui5-select.\n\t\t *

    \n\t\t * Available options are:\n\t\t *
      \n\t\t *
    • None
    • \n\t\t *
    • Error
    • \n\t\t *
    • Warning
    • \n\t\t *
    • Success
    • \n\t\t *
    • Information
    • \n\t\t *
    \n\t\t *\n\t\t * @type {ValueState}\n\t\t * @defaultvalue \"None\"\n\t\t * @public\n\t\t */\n\t\tvalueState: {\n\t\t\ttype: ValueState,\n\t\t\tdefaultValue: ValueState.None,\n\t\t},\n\n\t\t_text: {\n\t\t\ttype: String,\n\t\t\tnoAttribute: true,\n\t\t},\n\n\t\t_iconPressed: {\n\t\t\ttype: Boolean,\n\t\t\tnoAttribute: true,\n\t\t},\n\n\t\t/**\n\t\t * @private\n\t\t */\n\t\topened: {\n\t\t\ttype: Boolean,\n\t\t},\n\n\t\t/**\n\t\t * @private\n\t\t */\n\t\tfocused: {\n\t\t\ttype: Boolean,\n\t\t},\n\t},\n\tevents: /** @lends sap.ui.webcomponents.main.Select.prototype */ {\n\t\t/**\n\t\t * Fired when the selected option changes.\n\t\t *\n\t\t * @event\n\t\t * @param {HTMLElement} selectedOption the selected option.\n\t\t * @public\n\t\t */\n\t\tchange: {\n\t\t\tdetail: {\n\t\t\t\tselectedOption: {},\n\t\t\t},\n\t\t},\n\t},\n};\n\n/**\n * @class\n *\n *

    Overview

    \n * The ui5-select component is used to create a drop-down list.\n * The items inside the ui5-select define the available options by using the ui5-option component.\n *\n *

    Keyboard Handling

    \n * The ui5-select provides advanced keyboard handling.\n * If the ui5-select is focused,\n * you can open or close the drop-down by pressing F4, ALT+UP or ALT+DOWN keys.\n * Once the drop-down is opened, you can use the UP and DOWN arrow keys\n * to navigate through the available options and select one by pressing the Space or Enter keys.\n *
    \n *

    ES6 Module Import

    \n * import \"@ui5/webcomponents/dist/Select\";\n *
    \n * import \"@ui5/webcomponents/dist/Option\";\n * @constructor\n * @author SAP SE\n * @alias sap.ui.webcomponents.main.Select\n * @extends sap.ui.webcomponents.base.UI5Element\n * @tagname ui5-select\n * @appenddocs Option\n * @public\n * @since 0.8.0\n */\nclass Select extends UI5Element {\n\tstatic get metadata() {\n\t\treturn metadata;\n\t}\n\n\tstatic get render() {\n\t\treturn litRender;\n\t}\n\n\tstatic get template() {\n\t\treturn SelectTemplate;\n\t}\n\n\tstatic get staticAreaTemplate() {\n\t\treturn SelectPopoverTemplate;\n\t}\n\n\tstatic get styles() {\n\t\treturn selectCss;\n\t}\n\n\tstatic get staticAreaStyles() {\n\t\treturn ResponsivePopoverCommonCss;\n\t}\n\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis._syncedOptions = [];\n\t\tthis._selectedIndex = -1;\n\t\tthis._selectedIndexBeforeOpen = -1;\n\t\tthis._escapePressed = false;\n\t\tthis._lastSelectedOption = null;\n\t\tthis.i18nBundle = getI18nBundle(\"@ui5/webcomponents\");\n\t}\n\n\tonBeforeRendering() {\n\t\tthis._syncSelection();\n\t\tthis._enableFormSupport();\n\t}\n\n\t_onfocusin() {\n\t\tthis.focused = true;\n\t}\n\n\t_onfocusout() {\n\t\tthis.focused = false;\n\t}\n\n\tget _isPickerOpen() {\n\t\treturn this.responsivePopover && this.responsivePopover.opened;\n\t}\n\n\tasync _respPopover() {\n\t\tthis._iconPressed = true;\n\t\tconst staticAreaItem = await this.getStaticAreaItemDomRef();\n\t\treturn staticAreaItem.querySelector(\"ui5-responsive-popover\");\n\t}\n\n\t/**\n\t * Currently selected option.\n\t * @readonly\n\t * @type { ui5-option }\n\t * @public\n\t */\n\tget selectedOption() {\n\t\treturn this.options.find(option => option.selected);\n\t}\n\n\tasync _toggleRespPopover() {\n\t\tthis.responsivePopover = await this._respPopover();\n\t\tif (this.disabled) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.updateStaticAreaItemContentDensity();\n\n\t\tif (this._isPickerOpen) {\n\t\t\tthis.responsivePopover.close();\n\t\t} else {\n\t\t\tthis.responsivePopover.open(this);\n\t\t}\n\t}\n\n\t_syncSelection() {\n\t\tlet lastSelectedOptionIndex = -1;\n\t\tconst opts = this.options.map((opt, index) => {\n\t\t\tif (opt.selected) {\n\t\t\t\tlastSelectedOptionIndex = index;\n\t\t\t}\n\n\t\t\topt.selected = false;\n\n\t\t\treturn {\n\t\t\t\tselected: false,\n\t\t\t\ticon: opt.icon,\n\t\t\t\tvalue: opt.value,\n\t\t\t\ttextContent: opt.textContent,\n\t\t\t\tid: opt._id,\n\t\t\t};\n\t\t});\n\n\t\tif (lastSelectedOptionIndex > -1) {\n\t\t\topts[lastSelectedOptionIndex].selected = true;\n\t\t\tthis.options[lastSelectedOptionIndex].selected = true;\n\t\t\tthis._text = opts[lastSelectedOptionIndex].textContent;\n\t\t\tthis._selectedIndex = lastSelectedOptionIndex;\n\t\t} else {\n\t\t\tthis._text = \"\";\n\t\t\tthis._selectedIndex = -1;\n\t\t}\n\n\t\tif (lastSelectedOptionIndex === -1 && opts[0]) {\n\t\t\topts[0].selected = true;\n\t\t\tthis.options[0].selected = true;\n\t\t\tthis._selectedIndex = 0;\n\t\t\tthis._text = this.options[0].textContent;\n\t\t}\n\n\t\tthis._syncedOptions = opts;\n\t}\n\n\t_enableFormSupport() {\n\t\tconst FormSupport = getFeature(\"FormSupport\");\n\t\tif (FormSupport) {\n\t\t\tFormSupport.syncNativeHiddenInput(this, (element, nativeInput) => {\n\t\t\t\tnativeInput.disabled = element.disabled;\n\t\t\t\tnativeInput.value = element._currentlySelectedOption.value;\n\t\t\t});\n\t\t} else if (this.name) {\n\t\t\tconsole.warn(`In order for the \"name\" property to have effect, you should also: import \"@ui5/webcomponents/dist/features/InputElementsFormSupport.js\";`); // eslint-disable-line\n\t\t}\n\t}\n\n\t_onkeydown(event) {\n\t\tif (isShow(event)) {\n\t\t\tthis._toggleRespPopover();\n\t\t}\n\n\t\tif (isSpace(event)) {\n\t\t\tevent.preventDefault();\n\t\t}\n\n\t\tif (!this._isPickerOpen) {\n\t\t\tthis._handleArrowNavigation(event, true);\n\t\t}\n\t}\n\n\t_onkeyup(event) {\n\t\tif (isSpace(event) && !this._isPickerOpen) {\n\t\t\tthis._toggleRespPopover();\n\t\t}\n\t}\n\n\t_getSelectedItemIndex(item) {\n\t\treturn [].indexOf.call(item.parentElement.children, item);\n\t}\n\n\t_select(index) {\n\t\tthis.options[this._selectedIndex].selected = false;\n\t\tthis._selectedIndex = index;\n\t\tthis.options[index].selected = true;\n\t}\n\n\t_selectionChange(event) {\n\t\tconst selectedItemIndex = this._getSelectedItemIndex(event.detail.item);\n\n\t\tthis._select(selectedItemIndex);\n\t\tthis._toggleRespPopover();\n\t}\n\n\t_applyFocusAfterOpen() {\n\t\tif (!this._currentlySelectedOption) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst li = this.responsivePopover.querySelector(`#${this._currentlySelectedOption._id}-li`);\n\n\t\tli.parentElement._itemNavigation.currentIndex = this._selectedIndex;\n\t\tli && li.focus();\n\t}\n\n\t_handlePickerKeydown(event) {\n\t\tthis._handleArrowNavigation(event, false);\n\t}\n\n\t_handleArrowNavigation(event, shouldFireEvent) {\n\t\tlet nextIndex = -1;\n\t\tconst isDownKey = isDown(event);\n\t\tconst isUpKey = isUp(event);\n\n\t\tif (isDownKey || isUpKey) {\n\t\t\tevent.preventDefault();\n\t\t\tif (isDownKey) {\n\t\t\t\tnextIndex = this._getNextOptionIndex();\n\t\t\t} else {\n\t\t\t\tnextIndex = this._getPreviousOptionIndex();\n\t\t\t}\n\n\t\t\tthis.options[this._selectedIndex].selected = false;\n\t\t\tthis.options[nextIndex].selected = true;\n\t\t\tthis._selectedIndex = nextIndex === -1 ? this._selectedIndex : nextIndex;\n\n\t\t\tif (shouldFireEvent) {\n\t\t\t\tthis.fireEvent(\"change\", { selectedOption: this.options[nextIndex] });\n\t\t\t}\n\t\t}\n\n\t\tif (isEscape(event)) {\n\t\t\tthis._escapePressed = true;\n\t\t}\n\n\t\tif (isEnter(event) || isSpace(event)) {\n\t\t\tthis._shouldClosePopover = true;\n\t\t}\n\t}\n\n\t_getNextOptionIndex() {\n\t\treturn this._selectedIndex === (this.options.length - 1) ? this._selectedIndex : (this._selectedIndex + 1);\n\t}\n\n\t_getPreviousOptionIndex() {\n\t\treturn this._selectedIndex === 0 ? this._selectedIndex : (this._selectedIndex - 1);\n\t}\n\n\t_beforeOpen() {\n\t\tthis._selectedIndexBeforeOpen = this._selectedIndex;\n\t\tthis._lastSelectedOption = this.options[this._selectedIndex];\n\t}\n\n\t_afterClose() {\n\t\tthis._iconPressed = false;\n\n\t\tif (this._escapePressed) {\n\t\t\tthis._select(this._selectedIndexBeforeOpen);\n\t\t\tthis._escapePressed = false;\n\t\t} else if (this._lastSelectedOption !== this.options[this._selectedIndex]) {\n\t\t\tthis.fireEvent(\"change\", { selectedOption: this.options[this._selectedIndex] });\n\t\t\tthis._lastSelectedOption = this.options[this._selectedIndex];\n\t\t}\n\t}\n\n\tget valueStateTextMappings() {\n\t\tconst i18nBundle = this.i18nBundle;\n\n\t\treturn {\n\t\t\t\"Success\": i18nBundle.getText(VALUE_STATE_SUCCESS),\n\t\t\t\"Information\": i18nBundle.getText(VALUE_STATE_INFORMATION),\n\t\t\t\"Error\": i18nBundle.getText(VALUE_STATE_ERROR),\n\t\t\t\"Warning\": i18nBundle.getText(VALUE_STATE_WARNING),\n\t\t};\n\t}\n\n\tget valueStateText() {\n\t\treturn this.valueStateTextMappings[this.valueState];\n\t}\n\n\tget hasValueState() {\n\t\treturn this.valueState !== ValueState.None;\n\t}\n\n\tget valueStateTextId() {\n\t\treturn this.hasValueState ? `${this._id}-valueStateDesc` : undefined;\n\t}\n\n\tget isDisabled() {\n\t\treturn this.disabled || undefined;\n\t}\n\n\tget _headerTitleText() {\n\t\treturn this.i18nBundle.getText(INPUT_SUGGESTIONS_TITLE);\n\t}\n\n\tget _currentSelectedItem() {\n\t\treturn this.shadowRoot.querySelector(`#${this.options[this._selectedIndex]._id}-li`);\n\t}\n\n\tget _currentlySelectedOption() {\n\t\treturn this.options[this._selectedIndex];\n\t}\n\n\tget tabIndex() {\n\t\treturn this.disabled ? \"-1\" : \"0\";\n\t}\n\n\tget dir() {\n\t\treturn getRTL() ? \"rtl\" : \"ltr\";\n\t}\n\n\tstatic async onDefine() {\n\t\tawait Promise.all([\n\t\t\tOption.define(),\n\t\t\tLabel.define(),\n\t\t\tResponsivePopover.define(),\n\t\t\tList.define(),\n\t\t\tStandardListItem.define(),\n\t\t\tIcon.define(),\n\t\t]);\n\t}\n}\n\nSelect.define();\n\nexport default Select;\n","import '@ui5/webcomponents/dist/Button'\nimport '@ui5/webcomponents/dist/Option'\nimport '@ui5/webcomponents/dist/Select'\nimport { fromEvent } from 'rxjs'\nimport { h } from './lib/hyper'\n\nexport interface ButtonSetProp {\n location: Location\n seed: string\n}\n\nlet removeSeedParameter = (url: string): string => {\n return url.replace(/\\?seed=[^?]*/g, '')\n}\n\nlet removeModeParameter = (url: string): string => {\n let regexList = [\n /\\?hide(=[^?]*)?/g,\n /\\?hideDelay(=[^?]*)?/g,\n /\\?justSmooze(=[^?]*)?/g,\n /\\?smooze(=[^?]*)?/g,\n /\\?smoozeDelay(=[^?]*)?/g,\n ]\n regexList.forEach((regex) => {\n url = url.replace(regex, '')\n })\n return url\n}\n\nlet urlWithSeed = (prop: ButtonSetProp) => {\n let urlWithoutSeed = removeSeedParameter(prop.location.href)\n let destination = `${urlWithoutSeed}?seed=${prop.seed}`\n return destination\n}\n\nlet willMatch = (regex: RegExp) => (text: string) => !!text.match(regex)\n\nlet testLabyrinthMode = (url: string) => {\n return removeModeParameter(url) === url\n}\n\nlet BUTTON = 'ui5-button' as 'button'\nlet SELECT = 'ui5-select'\nlet OPTION = 'ui5-option' as 'option'\n\n/**\n * The GameModeDropdown allows to select which mode the game should run in\n *\n * This reloads the page.\n */\nlet GameModeDropdown = (prop: ButtonSetProp) => {\n let { location } = prop\n\n let gameModeList: [string, string, (url: string) => boolean][] = [\n ['labyrinth', '', testLabyrinthMode],\n ['just smooze', '?justSmooze', willMatch(/\\?justSmooze(\\?|$)/)],\n ['hidden walls', '?hide', willMatch(/\\?hide(\\?|$)/)],\n ['smooze', '?smooze', willMatch(/\\?smooze(\\?|$)/)],\n ]\n\n let elem = h(\n SELECT,\n {},\n gameModeList.map(([name, parameter, test]) => {\n let optionElem = h(OPTION, { textContent: name })\n if (test(location.href)) {\n optionElem.selected = true\n }\n optionElem.dataset.parameter = parameter\n return optionElem\n }),\n )\n\n elem.addEventListener(\n 'change',\n (ev) => {\n console.log('ev', ev)\n let modeParameter = (ev as any).detail.selectedOption.dataset.parameter\n let urlWithSeedButNotMode = removeModeParameter(urlWithSeed(prop))\n location.assign(urlWithSeedButNotMode + modeParameter)\n },\n true,\n )\n\n return { elem }\n}\n\n/**\n * The NewGameButton allows to start a new game.\n *\n * This reloads the page.\n */\nlet NewGameButton = (prop: ButtonSetProp) => {\n let { location } = prop\n\n let onclick = () => {\n let destination = removeSeedParameter(location.href)\n location.assign(destination)\n }\n\n return { elem: h(BUTTON, { onclick, textContent: 'New Game' }) }\n}\n\n/**\n * The RestartSameButton allows to replay the same game.\n *\n * This reloads the page.\n */\nlet RestartSameButton = (prop: ButtonSetProp) => {\n let { location } = prop\n\n let onclick = () => {\n let destination = urlWithSeed(prop)\n location.assign(destination)\n }\n\n return { elem: h(BUTTON, { onclick, textContent: 'Restart Same' }) }\n}\n\n/**\n * This button is used to reveal the labyrinthe when it's hidden.\n */\nlet RevealLabyrintheButton = () => {\n let elem = h(BUTTON, { innerText: 'Reveal' })\n\n return {\n elem,\n click$: fromEvent(elem, 'click'),\n }\n}\n\nexport let ButtonSet = (prop: ButtonSetProp) => {\n let revealButtonVisibility = false\n\n let gameModeDropDown = GameModeDropdown(prop)\n let newGameButton = NewGameButton(prop)\n let restartGameButton = RestartSameButton(prop)\n let revealLabyrinthButton = RevealLabyrintheButton()\n\n let elem = h(\n 'span',\n {\n className: 'buttonSet',\n },\n [gameModeDropDown.elem, newGameButton.elem, restartGameButton.elem],\n )\n\n return {\n elem,\n revealLabyrinth$: revealLabyrinthButton.click$,\n setRevealButtonVisibility: (visibility: boolean) => {\n if (visibility === revealButtonVisibility) {\n return false\n }\n if (visibility === true) {\n elem.append(revealLabyrinthButton.elem)\n } else {\n revealLabyrinthButton.elem.remove()\n }\n revealButtonVisibility = visibility\n },\n }\n}\n","import { PonyEscapeConfig } from '../type/ponyEscapeConfig'\nimport { randomSeed } from '../util/randomSeed'\nimport { getUrlParam } from '../util/urlParam'\nimport { ButtonSet } from './buttonSet'\nimport { h } from './lib/hyper'\nimport { githubCornerHTML } from '../lib/githubCorner'\n\ninterface InitProp {\n document: Document\n location: Location\n}\n\nlet getConfig = (prop: InitProp) => {\n let { location } = prop\n\n let config = getUrlParam(location, {\n seed: () => randomSeed(),\n easy: () => false,\n hard: () => false,\n smooze: () => false,\n justSmooze: ({ smooze }) => smooze(),\n hide: ({ smooze }) => smooze(),\n hideDelay: ({ hide }) => (hide() ? 4 : -1),\n highlight: () => false,\n smoozeDelay: ({ justSmooze }) => (justSmooze() ? 5 : -1),\n size: ({ easy, hard, hideDelay }) => {\n let difficulty = easy() ? 0 : hard() ? 2 : 1\n return (hideDelay() >= 0 ? [7, 8, 10] : [12, 15, 21])[difficulty]\n },\n cycle: () => -1,\n maxCycleSize: ({ cycle, size }) => {\n if (cycle() >= 0) {\n return cycle() * cycle() * size()\n } else {\n return 0\n }\n },\n cycleRejectionFrequency: () => 0,\n })\n\n if (config.hideDelay === -1) {\n config.hideDelay = Infinity\n }\n if (config.smoozeDelay === -1) {\n config.smoozeDelay = Infinity\n }\n\n console.info(`?seed=${config.seed}`)\n\n return config\n}\n\nexport let init = (prop: InitProp) => {\n let { document, location } = prop\n let config = getConfig(prop)\n let buttonSet = ButtonSet({ location, seed: config.seed })\n\n let canvas = h('canvas')\n canvas.width = 800\n canvas.height = 600\n\n let corner = h('i', {\n innerHTML: githubCornerHTML('https://github.com/ponydevs/pony-escape'),\n })\n\n document.body.append(\n h('h1', {\n textContent: document.title,\n className: 'inline',\n }),\n buttonSet.elem,\n h('div', {}, [canvas]),\n corner,\n )\n\n return {\n canvas,\n config,\n revealLabyrinth$: buttonSet.revealLabyrinth$,\n setRevealButtonVisibility: buttonSet.setRevealButtonVisibility,\n }\n}\n","export let randomSeed = () => {\n return Math.random()\n .toString(36)\n .slice(2)\n .toUpperCase()\n}\n","import { default as seedrandom } from 'seedrandom'\nimport { core } from './core/core'\nimport { getAsset } from './display/asset'\nimport { createDisplay } from './display/display'\nimport { createInput } from './input/input'\nimport { init } from './page/init'\nimport { spacelessURL } from './util/urlParam'\n\nexport let main = async () => {\n spacelessURL(location)\n\n let { canvas, config, revealLabyrinth$, setRevealButtonVisibility } = init({\n document,\n location,\n })\n\n let random = seedrandom(config.seed)\n let asset = await getAsset()\n let display = createDisplay({ asset, canvas, config })\n let input = createInput()\n\n core({\n config,\n display,\n input,\n random,\n revealLabyrinth$,\n setRevealButtonVisibility,\n size: {\n x: Math.round((config.size * 8) / 6),\n y: config.size,\n },\n })\n}\n","export let githubCornerHTML = (repositoryUrl: string) => {\n return `
    `\n}\n","// https://github.com/parcel-bundler/parcel/issues/1762#issuecomment-519631755\nimport 'regenerator-runtime/runtime';\nimport { main } from './main';\n\nmain();\n"],"names":["$18c11f3350a906ea$export$6503ec6e8aabbaf","$18c11f3350a906ea$export$f7ad0328861e2f03","$18c11f3350a906ea$var$mapping","pairs","keys","Object","i","length","id","resolved","Error","global","module","define","Alea","seed","n","me","this","mash","data","String","h","charCodeAt","next","t","s0","c","s1","s2","copy","f","impl","opts","xg","state","prng","int32","double","quick","exports","amd","alea","XorGen","strseed","x","y","z","w","k","result","xor128","v","d","xorwow","seed1","me1","X","j","push","init","slice","Date","xorshift7","limit","Math","max","xor4096","b","a","floor","tychei","parcelRequire","register","JSON","parse","undefined","Op","prototype","hasOwn","hasOwnProperty","$Symbol","Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","runtime","regeneratorRuntime","$7238a34a955809b2$exports","wrap","GenStateSuspendedStart","GenStateSuspendedYield","GenStateExecuting","GenStateCompleted","ContinueSentinel","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","values","call","Gp","GeneratorFunctionPrototype","Generator","create","GeneratorFunction","constructor","displayName","isGeneratorFunction","genFun","ctor","name","mark","setPrototypeOf","__proto__","awrap","arg","__await","defineIteratorMethods","AsyncIterator","async","innerFn","outerFn","self","tryLocsList","iter","then","done","value","toString","object","key1","reverse","key","pop","Context","reset","skipTempReset","prev","sent","_sent","delegate","method","tryEntries","forEach","resetTryEntry","charAt","isNaN","stop","rootRecord","completion","type","rval","dispatchException","exception","context","handle","loc","caught","record","entry","tryLoc","hasCatch","hasFinally","catchLoc","finallyLoc","abrupt","finallyEntry","complete","afterLoc","finish","catch","thrown","delegateYield","iterable","resultName","nextLoc","protoGenerator","generator","_invoke","doneResult","delegateResult","maybeInvokeDelegate","tryCatch","makeInvokeMethod","fn","obj","err","invoke","resolve","reject","value1","Promise","unwrapped","error","previousPromise","callInvokeWithMethodAndArg","return","TypeError","info","pushTryEntry","locs","iteratorMethod","next1","Function","pool","math","nodecrypto","width","startdenom","pow","significance","overflow","mask","seedrandom","options","callback","shortseed","mixkey","flatten","entropy","tostring","out","randomBytes","Uint8Array","crypto","msCrypto","getRandomValues","e","browser","navigator","plugins","screen","autoseed","arc4","ARC4","prng1","g","S","pass","is_math_call","t1","keylen","i1","j1","count","r","s","depth","prop","typ","smear","stringseed","fromCharCode","apply","random","$d7e73366feb50558$exports","ex","$cmoHh","$euRi5","$hDsEw","$3J2Zm","$6Px8M","$lDm0S","$2725bdcb11510985$exports","$b2cbd4eb77074535$export$efccba1c4a2ef57b","window","$670320c96898d1f3$exports","Set","queue","sort","priority","set","Number","has","map","element","assign","add","shift","delete","isEmpty","Boolean","get","find","$ffc96ea27d205013$exports","$ffc96ea27d205013$var$removeDeepFromMap","newMap","Map","aKey","val","$b836f3080a3621c7$exports","$b836f3080a3621c7$var$toDeepMap","source","Array","isArray","cost","$b836f3080a3621c7$var$isValidNode","$efde3d4db8efad8a$exports","$efde3d4db8efad8a$var$validateDeep","$d9c435412ab2eacd$exports","graph","addNode","neighbors","nodes","addVertex","removeNode","path","start","goal","size","explored","frontier","previous","totalCost","avoid","concat","includes","node","nodeKey","nCost","nNode","frontierPriority","nodeCost","trim","shortestPath","args","$91823d3039a019ff$var$emissary","_emissary","final","ee","$91823d3039a019ff$export$a393cb7b8bb902bc","$c0ec38f27d411069$export$ea13b04bd9726a31","setMap","smallEnough","getSet","joinableSet","_size","$91823d3039a019ff$export$185802fd694ee1f5","selectedLinkList","linkList","link","na","nb","getNodePair","sa","sb","total","$91823d3039a019ff$export$f7e2c8231c57a8bd","$1a196dc67116b847$export$b2d4a3a92f6476d4","$1a196dc67116b847$export$5af2835478688415","$1a196dc67116b847$export$c51e0028b6a9ece7","$1a196dc67116b847$export$33ddbfb1aefaacf2","text","xx","yy","split","$c648a3f9c4e1fd19$export$11ced39dcdfe0e2b","config","twiceSize","groundList","wallList","oddWallList","evenWallList","grid","fillFunction","sizex","sizey","from","_","$23f4931dce2b2382$export$29b6a97e6108bb8c","ground","filled","visibility","localizedWall","wall","wallGrid","array","kr","$c745060990e79c31$export$448332262467e042","maxCycleSize","setSize","cycleRejectionFrequency","dijkstra","$parcel$interopDefault","directionList","localized","label","siblingObj","pos","filter","direction","neighboor","$144531c0d2cfe5fe$export$b75f8c4f8f3fbd14","display","input","revealLabyrinth$","setRevealButtonVisibility","score","player","ceil","smooze","destination","moveCount","makeWallVisible","subscribe","render","move","moveCounteIncrement","destinationReached","hideDelay","smoozeDelay","moveSmooze","move_","abs","left","right","up","down","monster","$0e991293c165738c$exports","URL","import","meta","url","$825aefc49ab98ec0$exports","$2223a81f21e90cb3$var$delayName","promise","$22abcde661ea95b1$export$dda1d9f60106f0e9","name1","attribute","children","elem","document","createElement","entries","setAttribute","child","appendChild","$cff03e8cbc083945$export$fe58198efe02b173","image","src","resFunc","$f67bdca1f7ff3ad7$export$da446a5ee2572b7","promiseList","all","fromEntries","$2223a81f21e90cb3$export$fda59885ee51e7c7","$531ad522affd2f68$export$8fa4e5556fd77a60","$531ad522affd2f68$export$e78330df7028d530","$531ad522affd2f68$export$e5514420d956361","$531ad522affd2f68$export$c073df10e766abfa","$76596671fee4e156$export$630b3f7014e81311","prop1","asset","canvas","ctx","getContext","$8b2d6df9c8354615$export$860b0424cb04a816","renderCharacter","character","squareSize","which","fit","ratio","min","height","$ff7d98c1e55a4c98$export$f962c7f4a4e631bc","dx","dy","highlight","strokeStyle","strokeRect","drawImage","gridSize","getGridSize","getSquareSize","ImageData","line","ky","kky","square","kx","color","kk","bitmap","createImageBitmap","imageSmoothingEnabled","renderGrid","scorePos","scale","font","fillStyle","lineWidth","strokeText","fillText","renderScore","$5c96a02c592fcff1$var$extendStatics","d1","b1","p","$5c96a02c592fcff1$export$a8ba968b8961cb8a","__","thisArg","body","op","ops","trys","step","verb","throw","$5c96a02c592fcff1$export$10c90e4f7922046c","$5c96a02c592fcff1$export$e427f37a30a4de9b","_arguments","q","resume","fulfill","settle","$c1aa42b0603892d6$export$f6e2535fb5126e54","$ca336efb1b4fb564$var$_enable_super_gross_mode_that_will_cause_bad_things","$ca336efb1b4fb564$export$e506a1d27d1eaa20","useDeprecatedSynchronousErrorHandling","console","warn","stack","log","$e16ebd6c3cb2f8da$export$ebb0f299889f975f","setTimeout","$f00adf07fb2c6e72$export$6e22c362a0406a2c","closed","$6c6cbf1e7043b1c1$export$43bee75e5e14138e","$f587043ffd615a90$export$c9648b76fd580c34","UnsubscriptionErrorImpl","errors","message","join","$8343668acd7c4a9b$export$f55210826850c514","unsubscribe","_parentOrParents","_subscriptions","_unsubscribe","empty","_a","remove","index","$8343668acd7c4a9b$var$flattenUnsubscriptionErrors","len","sub","teardown","subscription","EMPTY","tmp","indexOf","subscriptions","subscriptionIndex","splice","reduce","errs","$048c2ca1c18b497c$export$77f77496d7cade10","$cf8ce74b80455e9f$export$60959659b2c22881","_super","destinationOrNext","_this","syncErrorValue","syncErrorThrown","syncErrorThrowable","isStopped","arguments","$cf8ce74b80455e9f$export$94eeb6a328cab6c7","subscriber","_next","_error","_complete","_unsubscribeAndRecycle","_parentSubscriber","observerOrNext","bind","_context","__tryOrSetError","__tryOrUnsub","wrappedComplete","parent","$eaf29fccbded6ed3$export$5ab46cbf6120b33a","observable","$7569c528cdd9d182$export$f0954fd7d5368655","$0f1e8e2d1fe93adf$export$71f88a61afaa14d7","fns","$36f82c2a257a9283$export$85f6557964517f1a","$7c251274d89782f0$export$284ca61ae115b0","deferreds","hasError","completed","subs","$7c251274d89782f0$var$coroutine","$4f562137a990678a$export$77cea355fa80b5f4","_isScalar","_subscribe","lift","operator","sink","nextOrObserver","$d4bb8fd10fdd3c85$export$2a12c2cebbfd1087","_trySubscribe","observer","closed_1","$c3c54c379e857c19$export$f7d54ecb625129e3","promiseCtor","$4f562137a990678a$var$getPromiseCtor","pipe","operations","_i","toPromise","$43504509ae7aa03d$export$f708eee25634bc80","ObjectUnsubscribedErrorImpl","$f3b1c0317a7ed344$export$b7a41f2bfb5c60c3","subject","observers","subscriberIndex","$2d63f5ffe6ca8602$export$d2a63025e8078d0c","$2d63f5ffe6ca8602$export$b6bbab5a9b109038","thrownError","$2d63f5ffe6ca8602$export$155189cde295587d","asObservable","$9853a79d111e4e33$export$65d6be2d9a2ba8ee","project","$9853a79d111e4e33$var$MapSubscriber","MapSubscriber","$f65a851e0b190f66$export$a36e16046ae8f1bb","target","eventName","resultSelector","$f65a851e0b190f66$var$setupSubscription","sourceObj","handler","addEventListener","removeEventListener","$f65a851e0b190f66$var$isEventTarget","source_1","on","off","$f65a851e0b190f66$var$isJQueryStyleEventEmitter","source_2","addListener","removeListener","$f65a851e0b190f66$var$isNodeStyleEventEmitter","source_3","$78f078b7cc50459e$export$d80fffb1deb3b97e","keyboard","evPropName","onKeydownMap","onKeyupMap","eventHandler","closureName","onEventMap","ev","altKey","ctrlKey","shiftKey","preventDefault","handleKeydown","handleKeyup","onKeydown","onKeyup","onBoth","keydown","keyup","$ce9271695b6d1aba$export$289502818b8df325","documentElement","fingerMoveManager","getTouches","evt","touches","originalEvent","xDown","yDown","handleTouchStart","clientX","clientY","handleTouchMove","currentX","currentY","mouseIsDown","handleMouseDown","handleMouseMove","handleMouseUp","$980b4aacfe31969f$export$35cb6e3890086077","makeObservable","swipe","subS","subK","removeAll","$864ea5d16c681f72$export$95fb6d2a52edc159","location","defaultConfig1","config1","pieceList","search","piece","valueList","defaultConfig","stackedConfig","conf","$ac867f8bc3eb7207$var$class2type","$ac867f8bc3eb7207$var$hasOwn","$ac867f8bc3eb7207$var$toString","$ac867f8bc3eb7207$var$fnToString","$ac867f8bc3eb7207$var$ObjectFunctionString","$ac867f8bc3eb7207$export$2e2bcd8739ae039","proto","Ctor","$1f04437924ca69f6$var$oToken","$1f04437924ca69f6$var$fnMerge","copyIsArray","clone","deep","skipToken","$1f04437924ca69f6$export$2e2bcd8739ae039","$f0e1bd5653bf1a29$export$2e2bcd8739ae039","$9a4169e604a54484$export$2e2bcd8739ae039","$d0b9e32dd89d8e94$export$2e2bcd8739ae039","cssText","attributes","style","pair","textContent","head","$5139b36500305785$var$features","$5139b36500305785$export$bba2e7bbd72e62e1","$d54a1904acd392e3$export$2e2bcd8739ae039","querySelector","OpenUI5Support","isLoaded","$6a0327488bd6edbb$var$assetParameters","default","$6a0327488bd6edbb$export$2faeed762aac6741","$6a0327488bd6edbb$export$910b680d1eea6990","$6a0327488bd6edbb$export$1af4c7e47ad72f44","$f4d64242f7b65a38$var$initialized","$f4d64242f7b65a38$var$initialConfig","animationMode","theme","rtl","language","calendarType","noConflict","formatSettings","$f4d64242f7b65a38$var$booleanMapping","$f4d64242f7b65a38$var$initConfiguration","configScript","configJSON","innerHTML","$f4d64242f7b65a38$var$parseConfigurationScript","URLSearchParams","startsWith","lowerCaseValue","toLowerCase","param","OpenUI5Config","getConfigurationSettingsObject","$f4d64242f7b65a38$var$applyOpenUI5Configuration","$5ee3c4ed710b0c2e$var$fetchPromises","$5ee3c4ed710b0c2e$var$jsonPromises","$5ee3c4ed710b0c2e$var$textPromises","$5ee3c4ed710b0c2e$export$fb6d4b6d33af835d","fetch","response","json","$c88536575d4120c7$export$2e2bcd8739ae039","fileName","dotPos","lastIndexOf","$066e80ebfb613c8e$var$themeURLs","$066e80ebfb613c8e$var$themeStyles","$066e80ebfb613c8e$var$registeredPackages","$066e80ebfb613c8e$var$registeredThemes","$066e80ebfb613c8e$export$3a051e08c93ad776","packageName","themeName","$066e80ebfb613c8e$export$f17694deb49de449","regThemesStr","$066e80ebfb613c8e$var$fetchThemeProperties","themeProps","$5ee3c4ed710b0c2e$export$72ad4d89f052dda6","$066e80ebfb613c8e$export$30dbd733003029d4","$ef9a36f5e1d96d51$export$2e2bcd8739ae039","styleElement","$418301b8d1b90aee$export$2e2bcd8739ae039","metadataString","el","getComputedStyle","backgroundImage","classList","metadata","removeChild","$418301b8d1b90aee$var$getThemeMetadata","params","exec","paramsString","replace","decodeURIComponent","ex1","$418301b8d1b90aee$var$parseThemeMetadata","baseThemeName","Path","match","Extends","$418301b8d1b90aee$var$processThemeMetadata","$f56468008da3b559$var$ponyfillTimer","$f56468008da3b559$export$1e748ba6a075246a","CSSVarsPonyfill","$f56468008da3b559$export$45b34c0f6b66c25a","cssVars","rootElement","silent","$9b514c520b088a46$var$loadThemeBase","$9b514c520b088a46$export$2e2bcd8739ae039","extTheme","cssVariablesLoaded","$9b514c520b088a46$var$detectExternalTheme","parentElement","$9b514c520b088a46$var$deleteThemeBase","packagesTheme","$066e80ebfb613c8e$export$4d6c690d8c1ad592","$9b514c520b088a46$var$loadComponentPackages","$921bf0db57903de7$var$theme","$921bf0db57903de7$export$89cbf1a0881c8b9c","$3cf6b108fc573636$var$polyfillLoadedPromise","$3cf6b108fc573636$export$2e2bcd8739ae039","WebComponents","ready","waitFor","$b0685d8775cce850$var$bootPromise","$b0685d8775cce850$export$2e2bcd8739ae039","attachListeners","$c4b4433875554fa6$export$2e2bcd8739ae039","types","defineProperty","$6681bac754f3ec1e$export$2e2bcd8739ae039","klass","baseKlass","inclusive","$68524dd0df9df511$var$kebabToCamelMap","$68524dd0df9df511$var$camelToKebabMap","$68524dd0df9df511$export$12e614f5e6e4ebe4","string","$68524dd0df9df511$var$toCamelCase","parts","toUpperCase","$60ae4a44a89771a0$var$validateSingleProperty","propData","propertyType","defaultValue","isValid","$60ae4a44a89771a0$var$validateSingleSlot","slotData","HTMLElement","localName","assignedNodes","item","$60ae4a44a89771a0$export$2e2bcd8739ae039","static","multiple","propValue","getTag","tag","hasAttribute","propName","getProperties","noAttribute","getPropertiesList","getAttributesList","getSlots","slots","canSlotText","defaultSlot","Node","hasSlots","hasIndividualSlots","slotsAreManaged","some","_slotName","individualSlots","managedSlots","properties","getEvents","events","$37ff5467963ae4d8$export$36b590fc1d827248","staticArea","bodyElement","insertBefore","firstChild","$37ff5467963ae4d8$var$StaticAreaElement","super","isUI5Element","destroy","staticAreaDomRef","tagName","customElements","$5a44e591f7ba1ed0$export$2e2bcd8739ae039","list","promises","webComponent","deferredResolve","_deferredResolve","getList","isAdded","$12feffdb5b8d6e59$var$DefinitionsSet","$83929b7c7f205b15$var$renderTaskId","$83929b7c7f205b15$var$invalidatedWebComponents","$83929b7c7f205b15$var$renderTaskPromise","$83929b7c7f205b15$var$renderTaskPromiseResolve","$83929b7c7f205b15$var$mutationObserverTimer","$83929b7c7f205b15$var$RenderScheduler","res","scheduleRenderTask","runRenderTask","requestAnimationFrame","renderWebComponents","webComponentInfo","renderStats","timesRerendered","_render","_resolveTaskPromise","definedPromises","arr","$12feffdb5b8d6e59$export$930a2c3b4b612b7d","whenDefined","whenAllCustomElementsAreDefined","whenDOMUpdated","$83929b7c7f205b15$var$taskResult","$83929b7c7f205b15$export$2e2bcd8739ae039","$cde487c3e34d1ba6$var$StaticAreaItemElement","$cde487c3e34d1ba6$export$2e2bcd8739ae039","_ui5ElementContext","ui5ElementContext","_rendered","isRendered","_updateFragment","renderResult","staticAreaTemplate","stylesToAdd","ShadyDOM","staticAreaStyles","staticAreaItemDomRef","attachShadow","mode","_id","shadowRoot","eventContext","_removeFragmentFromStaticArea","childElementCount","_updateContentDensity","isCompact","$3c302d4d633b2ed3$var$w","$3c302d4d633b2ed3$var$observers","WeakMap","$3c302d4d633b2ed3$export$2e2bcd8739ae039","observerObject","observeChildren","MutationObserver","observe","disconnect","unobserveChildren","$311b3e17fea341a9$var$excludeList","$311b3e17fea341a9$var$noConflict","$311b3e17fea341a9$export$968d34e7f08389f1","$311b3e17fea341a9$export$c53325c739ed7720","nc","$311b3e17fea341a9$var$shouldFireOriginalEvent","$311b3e17fea341a9$var$shouldNotFireOriginalEvent","$2779c6fcbf49038a$var$customCSSFor","$42cac24b925e7e4f$export$2e2bcd8739ae039","ElementClass","customStyle","$2779c6fcbf49038a$export$91509efcd6e63dc7","getMetadata","componentStyles","styles","$41ac643332bba9f9$var$constructableStyleMap","$41ac643332bba9f9$export$2e2bcd8739ae039","styleContent","CSSStyleSheet","replaceSync","$38ddd99421a5f2bb$var$replaceSelector","str","selector","selectorStartPos","replacement","charAfterSelectorPos","charAfterSelector","upToSelector","substring","closingParenthesisPos","openingParenthesisPos","opened","char","$38ddd99421a5f2bb$var$findClosingParenthesisPos","$38ddd99421a5f2bb$var$adaptLinePart","$38ddd99421a5f2bb$var$replaceSelectors","RegExp","$38ddd99421a5f2bb$export$2e2bcd8739ae039","lineParts","linePart","$feb5324496ca53e3$var$IEStyleSet","$feb5324496ca53e3$export$2e2bcd8739ae039","cssContent","staticCssContent","componentStaticStyles","$feb5324496ca53e3$var$getStaticStyle","disabled","$07d3352bdf200094$export$2e2bcd8739ae039","isInteger","$7247609d00848248$var$whitelist","$7247609d00848248$export$2e2bcd8739ae039","Element","$cce8df472880f0e0$var$metadata","_propertyChange","$cce8df472880f0e0$var$autoId","$cce8df472880f0e0$var$elementTimeouts","$cce8df472880f0e0$var$UI5Element","_generateId","_initializeState","_upgradeAllProperties","_initializeContainers","_upToDate","_domRefReadyPromise","_monitoredChildProps","_firePropertyChange","needsShadowDOM","_needsShadowDOM","needsStaticArea","_needsStaticArea","adoptedStyleSheets","staticAreaItem","_startObservingDOMChildren","_processChildren","renderImmediately","onEnterDOM","disconnectedCallback","_stopObservingDOMChildren","onExitDOM","mutationObserverOptions","childList","subtree","characterData","observeDOMNode","unobserveDOMNode","_updateSlots","slotsMap","domChildren","childNodes","slotName1","slotData1","_clearSlot","autoIncrementMap","slottedChildrenMap","allChildrenUpgraded","idx","slotName","_getSlotName","validValues","nextIndex","_individualSlot","whenDefinedPromise","timeoutPromise","race","upgrade","validateSlotValue","listenFor","_attachChildPropertyUpdated","propertyName","slot","_state","_invalidate","_detachChildPropertyUpdated","attributeChangedCallback","oldValue","newValue","nameInCamelCase","$68524dd0df9df511$export$4e2d767d23cc93ee","propertyTypeClass","parseInt","_updateAttribute","attrName","attrValue","getAttribute","removeAttribute","_upgradeProperty","defaultState","_getDefaultState","childMetadata","childProperties","observedProps","notObservedProps","props","exclude","_invalidateParentOnPropertyUpdate","dispatchEvent","CustomEvent","detail","composed","bubbles","parentNode","propsMetadata","getDomRef","_suppressInvalidation","renderDeferred","onBeforeRendering","_onComponentStateFinalized","_updateShadowRoot","_shouldUpdateFragment","_assignIndividualSlotsToChildren","onAfterRendering","styleToPrepend","template","_waitForDomRef","getFocusDomRef","domRef","focusDomRef","focus","fireEvent","cancelable","compatEventResult","noConflictEvent","customEvent","getSlottedNodes","acc","curr","getPropertyValue","updateStaticAreaItemContentDensity","observedAttributes","getStaticAreaItemDomRef","_defaultState","MetadataClass","propType","propDefaultValue","validatePropertyValue","onDefine","definedLocally","$12feffdb5b8d6e59$export$4422d2ccfd21efbf","definedGlobally","_generateAccessors","$12feffdb5b8d6e59$export$7ac5ff381b4620eb","_metadata","metadataObjects","unshift","mergedMetadata","$cce8df472880f0e0$export$2e2bcd8739ae039","$3e8bd64d8ced9af7$var$directives","$3e8bd64d8ced9af7$export$99b43ad1ed32e735","$3e8bd64d8ced9af7$export$4b5d79f26e0e3ad5","o","$739d7429d0e9ac82$export$52a61c3a7415f2b1","polyfillWrapFlushCallback","$739d7429d0e9ac82$export$4cae3494608af418","container","end","before","nextSibling","$739d7429d0e9ac82$export$77f49a256021c8de","$416fcdb557dd27f4$export$9c068ae9cc5db4e8","$416fcdb557dd27f4$export$45b790e32b2810ee","$c42ca2d32292a526$export$ffc4d0086f1a4c9","$c42ca2d32292a526$export$36b8314a2f34ed60","$c42ca2d32292a526$export$8c751b9db6965af4","$c42ca2d32292a526$export$14416b8d99d47caa","nodesToRemove","walker","createTreeWalker","content","lastPartIndex","partIndex","strings","nextNode","nodeType","hasAttributes","$c42ca2d32292a526$var$endsWith","stringForPart","$c42ca2d32292a526$export$a5d53adfffe6a300","attributeLookupName","attributeValue","statics","currentNode","lastIndex","insert","$c42ca2d32292a526$export$46b32044f78fe9b1","createTextNode","previousSibling","suffix","$c42ca2d32292a526$export$93919229d19012c8","part","createComment","$5900699a09154d62$export$6eecef7813f38266","processor","__parts","update","setValue","part1","commit","_clone","fragment","cloneNode","importNode","nodeIndex","nodeName","handleTextExpression","insertAfterNode","handleAttributeExpressions","adoptNode","$b0ba4ea5b56b9ecc$var$commentMarker","$b0ba4ea5b56b9ecc$export$ce95ebd39b69fb27","getHTML","l","html","isCommentBinding","commentOpen","attributeMatch","substr","getTemplateElement","$b0ba4ea5b56b9ecc$export$36e852975bbbeae0","svgElement","$9115fb5260f5b78e$export$c3825b437cbdea5c","$9115fb5260f5b78e$export$9652023d9040757","$9115fb5260f5b78e$export$9ac9216e336e96d0","dirty","_createPart","$9115fb5260f5b78e$export$da9b3ca39c846561","_getValue","committer","directive","$9115fb5260f5b78e$export$a354997aeda6e93","__pendingValue","appendInto","startNode","endNode","ref","appendIntoPart","__insert","insertAfterPart","__commitText","__commitTemplateResult","__commitNode","__commitIterable","clear","valueAsString","templateFactory","instance","itemParts","itemPart","$9115fb5260f5b78e$export$b9df278b293d5b48","$9115fb5260f5b78e$export$2d7935a96ad7cb22","single","$9115fb5260f5b78e$export$b78f5e1c476c794e","$9115fb5260f5b78e$var$eventOptionsSupported","capture","_e","$9115fb5260f5b78e$export$b28e368652651bd7","__boundHandleEvent","handleEvent","newListener","oldListener","shouldRemoveListener","once","passive","shouldAddListener","__options","$9115fb5260f5b78e$var$getOptions","event","$801ef34ed3213e0e$export$608256e8e6650f65","prefix","$a5fe4f14b8d39ea2$export$ac8809ff023de002","templateCache","$a5fe4f14b8d39ea2$export$f4a9a5e9f571ddee","stringsArray","keyString","$ca64cbbfd570e12d$export$6e2410c1d27f06e7","$e5ed8027d647799b$export$c0bb0b647f701bb5","$e5ed8027d647799b$export$7ed1367e7fa1ad68","$e41d1b66de65ecc4$var$createAndInsertPart","containerPart","beforePart","beforeNode","newPart","$e41d1b66de65ecc4$var$updatePart","$e41d1b66de65ecc4$var$insertPartBefore","$e41d1b66de65ecc4$var$removePart","$e41d1b66de65ecc4$var$generateMap","$e41d1b66de65ecc4$var$partListCache","$e41d1b66de65ecc4$var$keyListCache","$e41d1b66de65ecc4$export$76d90c956114f2c2","items","keyFnOrTemplate","keyFn","oldParts","oldKeys","newParts","newValues","newKeys","newKeyToIndexMap","oldKeyToIndexMap","oldHead","oldTail","newHead","newTail","oldIndex","oldPart","$0e5c059fc79abe53$var$ClassList","classes","changed","cls","classString","$0e5c059fc79abe53$var$previousClassesCache","$0e5c059fc79abe53$export$56cc687933817664","classInfo","previousClasses","$74d80410d825d70d$var$previousStylePropertyCache","$74d80410d825d70d$export$1e5b4ce2fa884e6a","styleInfo","previousStyleProperties","removeProperty","setProperty","$f4ec91fe7532a141$export$2e2bcd8739ae039","templateResult","domNode","$ca64cbbfd570e12d$export$b3890eb0ae9dca99","$6d7d2a1d36ee8d42$var$KeyCodes","$6d7d2a1d36ee8d42$export$9a221620b781a323","keyCode","$6d7d2a1d36ee8d42$var$hasModifierKeys","$6d7d2a1d36ee8d42$export$1d5ccafae59b4926","$6d7d2a1d36ee8d42$export$d649b6842e09f2b","$6d7d2a1d36ee8d42$export$a9d71693f0c1a85d","$6d7d2a1d36ee8d42$export$a7a45a9ca041f85b","$6d7d2a1d36ee8d42$export$cd586f8e7dde2570","$6d7d2a1d36ee8d42$export$c9e49a4f1397b369","$6d7d2a1d36ee8d42$export$4b1a64546d861780","$6d7d2a1d36ee8d42$var$getCtrlKey","metaKey","$6d7d2a1d36ee8d42$var$checkModifierKeys","oEvent","bCtrlKey","bAltKey","bShiftKey","$3dc1873fe2aeff33$var$language","$3dc1873fe2aeff33$export$64783e31db14f0ba","$0091dc3c8999c36e$export$2e2bcd8739ae039","browserLanguages","languages","userLanguage","browserLanguage","$46a2c6557328f1f2$var$M_ISO639_OLD_TO_NEW","iw","ji","in","sh","$46a2c6557328f1f2$var$A_RTL_LOCALES","m","$2b847fdab49d398c$export$2e2bcd8739ae039","$46a2c6557328f1f2$export$b2303637e9533380","configurationRTL","$f01b4fcd22bda46e$var$rLocale","$f01b4fcd22bda46e$export$2e2bcd8739ae039","sLocaleId","aResult","sLanguage","sScript","sRegion","sVariant","sExtension","sPrivateUse","getLanguage","getScript","getRegion","getVariant","getVariantSubtags","getExtension","getExtensionSubtags","getPrivateUse","getPrivateUseSubtags","hasPrivateUseSubtag","sSubtag","$f6a57680170b7bcb$var$convertToLocaleOrNull","lang","$f6a57680170b7bcb$export$2e2bcd8739ae039","$99fb6f9740bb49d6$var$localeRegEX","$99fb6f9740bb49d6$var$SAPSupportabilityLocales","$99fb6f9740bb49d6$var$M_ISO639_NEW_TO_OLD","he","yi","sr","$99fb6f9740bb49d6$export$2e2bcd8739ae039","locale","region","script","variants","isPrivate","$a8a175e41abb52c4$export$2e2bcd8739ae039","$19e8da85041838f5$var$bundleData","$19e8da85041838f5$var$bundleURLs","$19e8da85041838f5$export$61baa1e619b767d4","$19e8da85041838f5$export$f07494e2afe99ad7","bundlesForPackage","localeId","bundleURL","$6207a66067fbde6c$var$messageFormatRegEX","$6207a66067fbde6c$export$2e2bcd8739ae039","$0","$1","$2","$3","offset","$ab91200bb25da4cd$var$I18nBundleInstances","$ab91200bb25da4cd$var$I18nBundle","getText","textObj","defaultText","bundle","messageText","$ab91200bb25da4cd$export$976b66d4f7aee98c","i18nBundle","$5cc8765a1ac6424e$export$2e2bcd8739ae039","ownerTypes","HTMLHtmlElement","HTMLIFrameElement","currentShadowRootFlag","currentCustomElementFlag","host","$66c1e99318986489$var$ButtonTypes","Default","Positive","Negative","Transparent","Emphasized","$66c1e99318986489$var$ButtonDesign","generataTypeAcessors","$66c1e99318986489$export$2e2bcd8739ae039","$a594e657d8272e4a$export$2e2bcd8739ae039","$f77aae7c0e91edd5$var$block1","icon","iconOnly","$f77aae7c0e91edd5$var$block2","buttonTypeText","$f77aae7c0e91edd5$export$2e2bcd8739ae039","_onfocusout","_onfocusin","_onclick","_onmousedown","_onmouseup","_onkeydown","_onkeyup","tabIndexValue","accInfo","ariaExpanded","ariaControls","ariaLabelText","title","hasButtonType","$824329a245e0c2e6$var$registry","$824329a245e0c2e6$var$iconCollectionPromises","$824329a245e0c2e6$var$calcKey","collection","$824329a245e0c2e6$export$b7ff5f03e6b8b5e0","pathData","accData","$8ca81815b31bb5d4$var$blockSVG1","hasIconTooltip","accessibleNameText","$8ca81815b31bb5d4$var$block1","$8ca81815b31bb5d4$export$2e2bcd8739ae039","dir","$b155a60c150ecd09$export$2e2bcd8739ae039","$7911a31d7a2b381e$export$2e2bcd8739ae039","$5117dd143f47c2f7$var$metadata","accessibleName","showTooltip","invalid","$5117dd143f47c2f7$var$Icon","createGlobalStyle","iconData","$824329a245e0c2e6$export$abfab81fb576b9a5","$824329a245e0c2e6$export$87c5d5c11680e015","removeGlobalStyle","$5117dd143f47c2f7$export$2e2bcd8739ae039","$0a810cfe1c25d61d$export$34493651bfd0629b","$0a810cfe1c25d61d$export$c1caadd14ed3a4d5","$0a810cfe1c25d61d$export$94a34ee40503c9c0","$0a810cfe1c25d61d$export$7a4cce4b7ead505","$0a810cfe1c25d61d$export$4bd2facc4a3e6aa1","$0a810cfe1c25d61d$export$112cabdb4b4ea932","$0a810cfe1c25d61d$export$fef35cd7b1d85caa","$0a810cfe1c25d61d$export$6858e3642bddef4c","$0a810cfe1c25d61d$export$4bc4f6333f1fc33f","$0a810cfe1c25d61d$export$85006d6ed98616a8","$db8c48f4fb6938b6$var$isGlobalHandlerAttached","$db8c48f4fb6938b6$var$activeButton","$db8c48f4fb6938b6$var$metadata","design","iconEnd","submits","active","focused","hasIcon","ariaLabel","ariaLabelledby","nonFocusable","_iconSettings","_tabIndex","click","$db8c48f4fb6938b6$var$Button","_deactivate","FormSupport","isMarked","triggerFormSubmit","_event","_buttonAccInfo","ids","owner","elementId","typeTextMappings","tabindex","$db8c48f4fb6938b6$export$2e2bcd8739ae039","$8984810634e03638$var$metadata","selected","$8984810634e03638$var$Option","$8984810634e03638$export$2e2bcd8739ae039","$cc5270aa7d3ef773$var$ValueStates","None","Success","Warning","Information","$cc5270aa7d3ef773$var$ValueState","$cc5270aa7d3ef773$export$2e2bcd8739ae039","$f7ac3b75aaedfa1a$var$pathData","$265ea32d1237766c$var$pathData","$84c47723efa04006$export$2e2bcd8739ae039","for","$aa58b489333a7c33$var$metadata","required","showColon","$aa58b489333a7c33$var$Label","elementToFocus","getElementById","$aa58b489333a7c33$export$2e2bcd8739ae039","$181c1bf6e993ffa1$var$Device","$181c1bf6e993ffa1$var$OS","WINDOWS","MACINTOSH","IOS","ANDROID","$181c1bf6e993ffa1$var$_getOS","userAgent","rPlatform","aMatches","rAppleDevices","versionStr","$181c1bf6e993ffa1$var$_getMobileOS","sPlatform","platform","rVersion","uaResult","$181c1bf6e993ffa1$var$_getDesktopOS","$181c1bf6e993ffa1$var$_setOS","os","OS","version","parseFloat","$181c1bf6e993ffa1$var$BROWSER","INTERNET_EXPLORER","EDGE","FIREFOX","CHROME","SAFARI","$181c1bf6e993ffa1$var$_getBrowser","oBrowser","sUserAgent","browserMatch","oRes","$181c1bf6e993ffa1$var$_calcBrowser","oNavigator","oExpMobile","oResult","fVersion","mozilla","mobile","test","webkit","regExpWebkitVersion","webkitVersion","aChromeMatch","aFirefoxMatch","aAndroidMatch","sName","sVersion","bMobile","oExp","bStandalone","standalone","aParts","fullscreen","webview","phantomJS","msie","trident","edge","$181c1bf6e993ffa1$var$_setBrowser","BROWSER","$181c1bf6e993ffa1$var$_setSupport","support","touch","maxTouchPoints","DocumentTouch","$181c1bf6e993ffa1$var$SYSTEMTYPE","TABLET","PHONE","DESKTOP","COMBI","$181c1bf6e993ffa1$var$_isTablet","windows","chrome","android","densityFactor","devicePixelRatio","bAndroidPhone","$181c1bf6e993ffa1$var$_setSystem","system","bTabletDetected","isWin8Upwards","oSystem","tablet","phone","windows_phone","desktop","combi","SYSTEMTYPE","$181c1bf6e993ffa1$var$_getSystem","$181c1bf6e993ffa1$export$1e4fed98bcaa1d82","$181c1bf6e993ffa1$export$3dc8fb2aae1f259d","$e45c2f8cbafc27c8$var$currentZIndex","$e45c2f8cbafc27c8$export$cdb3653f1fabc09d","rect","top","bottom","$e45c2f8cbafc27c8$var$isPointInRect","$e45c2f8cbafc27c8$export$1340d16ac40636e","getRootNode","openBy","$e45c2f8cbafc27c8$export$56d46eb9a9a6801e","$4f7cb60e7866171e$var$block1","withPadding","_propagateDialogEvent","_afterDialogOpen","_afterDialogClose","_hideHeader","$4f7cb60e7866171e$var$block2","header","$4f7cb60e7866171e$var$block3","$4f7cb60e7866171e$var$block4","headerText","close","$4f7cb60e7866171e$var$block5","root","forwardToLast","arrow","_displayHeader","$4f7cb60e7866171e$var$block6","_displayFooter","$4f7cb60e7866171e$var$block9","forwardToFirst","$4f7cb60e7866171e$var$block7","$4f7cb60e7866171e$var$block8","footer","$4f7cb60e7866171e$var$block10","$4f7cb60e7866171e$export$2e2bcd8739ae039","_isPhone","$cbf507c77968f0ba$export$2e2bcd8739ae039","getBoundingClientRect","offsetWidth","offsetHeight","$4cf34c74805d7de3$var$rClickable","$4cf34c74805d7de3$var$rFocusable","$4cf34c74805d7de3$export$2e2bcd8739ae039","tabIndex","href","$4c6e4f605ce3e7db$export$4c789efc159a8e3b","$4c6e4f605ce3e7db$var$findFocusableElement","$4c6e4f605ce3e7db$export$fbc25fb080624e","forward","focusableDescendant","assignedElements","lastChild","originalChild","$8c849b527061e179$var$block1","$8c849b527061e179$var$block2","$8c849b527061e179$var$block3","$8c849b527061e179$var$block4","$8c849b527061e179$var$block5","$8c849b527061e179$export$2e2bcd8739ae039","$b18a936b990904f5$var$PopoverPlacementTypes","Left","Right","Top","Bottom","$b18a936b990904f5$var$PopoverPlacementType","$b18a936b990904f5$export$2e2bcd8739ae039","$525b96076e6c67d8$var$PopoverVerticalAligns","Center","Stretch","$525b96076e6c67d8$var$PopoverVerticalAlign","$525b96076e6c67d8$export$2e2bcd8739ae039","$5d83eb5d2b00f732$var$PopoverHorizontalAligns","$5d83eb5d2b00f732$var$PopoverHorizontalAlign","$5d83eb5d2b00f732$export$2e2bcd8739ae039","$a7927cbd70f66aa0$var$registry","$a7927cbd70f66aa0$export$5632ba18c97fa7b6","$a7927cbd70f66aa0$var$attachGlobalListener","$a7927cbd70f66aa0$export$800c090b42a416a6","$a7927cbd70f66aa0$var$detachGlobalListener","$a7927cbd70f66aa0$var$_keydownListener","topPopup","$b6e9fa22531d4766$var$updateInterval","$b6e9fa22531d4766$var$openedRegistry","$b6e9fa22531d4766$var$repositionPopovers","popover","reposition","$b6e9fa22531d4766$var$clickHandler","openedPopovers","openedPopups","modal","isOpenerClicked","$b6e9fa22531d4766$export$debdcb1745b077e1","setInterval","$b6e9fa22531d4766$export$40285197ee983c30","fill","clearInterval","$adc619bb6c52126b$var$metadata","initialFocus","placementType","horizontalAlign","verticalAlign","noArrow","allowTargetOverlap","arrowTranslateX","arrowTranslateY","actualPlacementType","_maxContentHeight","_disableInitialFocus","beforeOpen","afterOpen","beforeClose","escPressed","afterClose","$adc619bb6c52126b$var$Popover","firstFocusable","contentDOM","lastFocusable","_opener","opener","_focusedElementBeforeOpen","activeElement","$e45c2f8cbafc27c8$export$7199507006fc692d","zIndex","applyInitialFocus","preventRegitryUpdate","preventFocusRestore","resetFocus","hide","focusedElement","shouldCloseDueOverflow","placement","openerRect","limits","closedPopupParent","overflowsBottom","overflowsTop","contentRect","innerHeight","popoverSize","calcPlacement","streching","_preventRepositionAndClose","_oldPlacement","_width","arrowX","arrowY","_left","_top","arrowDOM","targetRect","clientWidth","clientHeight","maxHeight","getActualPlacementType","isVertical","_height","arrowOffset","getVerticalLeft","getHorizontalTop","maxContentHeight","round","headerDomRef","fallbackPlacement","transform","$adc619bb6c52126b$export$2e2bcd8739ae039","$7dd6a50e72c03f93$var$metadata","_zIndex","_hideBlockLayer","$7dd6a50e72c03f93$var$openedPopups","$7dd6a50e72c03f93$var$isBodyScrollingDisabled","$7dd6a50e72c03f93$var$customBLyBackStyleInserted","$7dd6a50e72c03f93$var$updateBlockLayers","popup","hasModal","isModal","bodyStyleSheet","$7dd6a50e72c03f93$var$createBLyBackStyle","pageYOffset","$7dd6a50e72c03f93$var$removeBodyStyles","$7dd6a50e72c03f93$var$updateBodyScrolling","scrollTo","$7dd6a50e72c03f93$export$2e2bcd8739ae039","openedPopup","hitTest","_documentKeyDownHandler","documentKeyDown","isTopPopup","getPopupDomRef","open","_isFirstTimeRendered","initInitialFocus","initialFocusDomRef","parentHost","$7dd6a50e72c03f93$var$getParentHost","_initialFocusDomRef","onFirstTimeAfterRendering","setInitialFocus","focusableElement","preserveFocus","isSpecialCase","_currentFocusedElement","storeCurrentFocus","_lastFocusableElement","lastFocusableElement","hasHeader","hasFooter","role","$f7981532ea804ded$var$block1","$f7981532ea804ded$var$block2","$f7981532ea804ded$var$block3","$f7981532ea804ded$var$block4","$f7981532ea804ded$export$2e2bcd8739ae039","zindex","dialogParent","headerAriaLabelledBy","blockLayer","$87172fa2f438149c$var$metadata","stretch","$87172fa2f438149c$var$Dialog","$87172fa2f438149c$export$2e2bcd8739ae039","$0d33411f17028c7b$var$TitleLevels","H1","H2","H3","H4","H5","H6","$0d33411f17028c7b$var$TitleLevel","$0d33411f17028c7b$export$2e2bcd8739ae039","$e156c59d81ddf8da$var$block1","$e156c59d81ddf8da$var$block2","$e156c59d81ddf8da$var$block3","$e156c59d81ddf8da$var$block4","$e156c59d81ddf8da$var$block5","$e156c59d81ddf8da$var$block6","$e156c59d81ddf8da$export$2e2bcd8739ae039","h1","h2","h3","h4","h5","h6","$8441b54251f20659$var$metadata","level","$8441b54251f20659$var$Title","normalizedLevel","$8441b54251f20659$export$2e2bcd8739ae039","$a4ec0831e3e11f13$var$metadata","noStretch","contentOnlyOnDesktop","$a4ec0831e3e11f13$var$ResponsivePopover","_dialog","_minWidth","popoverStyles","$a4ec0831e3e11f13$export$2e2bcd8739ae039","$0f16b2802839287e$export$2e2bcd8739ae039","_eventRegistry","attachEvent","fnFunction","eventRegistry","eventListeners","function","detachEvent","isHandlerAttached","hasListeners","$71e7e919a69373a1$export$2e2bcd8739ae039","Auto","Vertical","Horizontal","$a94f085e46b5cd9a$export$2e2bcd8739ae039","Static","Cyclic","Paging","$7e08e7c453e8b92a$var$ItemNavigation","rootWebComponent","currentIndex","rowSize","behavior","hasNextPage","hasPrevPage","navigationMode","autoNavigation","horizontalNavigationOn","verticalNavigationOn","onkeydown","_init","_getItems","_horizontalNavigationOn","_verticalNavigationOn","onOverflowBottomEdge","onOverflowTopEdge","whenFinished","focusCurrent","_handleUp","_handleDown","_handleLeft","_handleRight","$6d7d2a1d36ee8d42$export$947c0ccec8fe9e2a","_handleHome","$6d7d2a1d36ee8d42$export$42af6f45c6e0d09f","_handleEnd","_canNavigate","_onKeyPress","homeEndRange","current","origItems","currentItem","_getCurrentItem","getItemsCallback","_handleNextPage","BORDER_REACH","_handlePrevPage","PAGE_BOTTOM","PAGE_TOP","pageSize","$7e08e7c453e8b92a$export$2e2bcd8739ae039","$d9343ca8095f0796$export$2e2bcd8739ae039","$d50316efb11350fb$var$getTabbables","tabbables","tabbablesNodes","TEXT_NODE","$60813fb27ddb3434$var$ListModes","SingleSelect","SingleSelectBegin","SingleSelectEnd","MultiSelect","Delete","$60813fb27ddb3434$var$ListMode","$60813fb27ddb3434$export$2e2bcd8739ae039","$1718c49fba6a6514$var$ListSeparatorsTypes","All","Inner","$1718c49fba6a6514$var$ListSeparators","$1718c49fba6a6514$export$2e2bcd8739ae039","$2a70f6063f058362$var$BusyIndicatorSizes","Small","Medium","Large","$2a70f6063f058362$var$BusyIndicatorSize","$2a70f6063f058362$export$2e2bcd8739ae039","$5e18918622137b1e$var$block1","ariaTitle","$5e18918622137b1e$var$block2","$5e18918622137b1e$export$2e2bcd8739ae039","$4dcd420fdb010daa$var$metadata","$4dcd420fdb010daa$var$BusyIndicator","$4dcd420fdb010daa$export$2e2bcd8739ae039","$0d1d82cd3afb3172$var$block1","$0d1d82cd3afb3172$var$block2","headerID","$0d1d82cd3afb3172$var$block3","noDataTabIndex","noDataText","$0d1d82cd3afb3172$var$block4","footerText","$0d1d82cd3afb3172$var$block5","busy","$0d1d82cd3afb3172$export$2e2bcd8739ae039","_onScroll","shouldRenderH1","isMultiSelect","ariaLabelledBy","showNoDataText","showBusy","$7bdfb4bb15cf559c$var$metadata","inset","separators","infiniteScroll","itemClick","itemDelete","selectionChange","selectedItems","previouslySelectedItems","selectionComponentPressed","loadMore","$7bdfb4bb15cf559c$var$List","initItemNavigation","_previouslyFocusedItem","_forwardingFocus","_previouslySelectedItem","onItemPress","onItemFocused","onForwardAfter","onForwardBefore","onSelectionRequested","prepareListItems","_itemNavigation","slottedItems","isLastChild","showBottomBorder","_mode","hasBorder","getSelectedItems","_selectionRequested","handleSingleSelect","deselectSelectedItems","handleSingleSelectBegin","handleSingleSelectEnd","handleMultiSelect","handleDelete","getFirstSelectedItem","firstSelectedItem","_handleTabNext","lastTabbableEl","getNormalizedTarget","headerToolbar","getHeaderToolbarLastTabbableElement","focusFirstSelectedItem","getPreviouslyFocusedItem","focusPreviouslyFocusedItem","focusFirstItem","stopImmediatePropagation","debounce","isForwardElement","getForwardingFocus","setForwardingFocus","nodeId","getBeforeElement","getAfterElement","pressedItem","setPreviouslyFocusedItem","focusBeforeElement","focusAfterElement","firstItem","getFirstItem","previouslyFocusedItem","forwardingFocus","_afterElement","_beforeElement","$d50316efb11350fb$export$66a735583da34748","scrollTop","scrollHeight","previousScrollPosition","delay","clearTimeout","debounceInterval","$7bdfb4bb15cf559c$export$2e2bcd8739ae039","$21614b46dac30d85$var$pathData","$64592ebb2020c177$var$ListItemTypes","Inactive","Active","Detail","$64592ebb2020c177$var$ListItemType","$64592ebb2020c177$export$2e2bcd8739ae039","$acb277c53c9cdbed$var$metadata","_focused","_focusForward","$acb277c53c9cdbed$export$2e2bcd8739ae039","$6d7d2a1d36ee8d42$export$8cf16445603c5ef7","_handleTabPrevious","shouldForwardTabAfter","shouldForwardTabBefore","eventData","aContent","main","$ff795e8b3c40566f$export$2e2bcd8739ae039","groupName","groups","selectedRadios","radioBtn","hasGroup","enforceSingleSelection","getGroup","createGroup","group","selectedRadio","getSelectedRadioFromGroup","_radioBtn","removeGroup","groupLength","currentItemPosition","nextItemToSelect","_nextSelectable","updateSelectionInGroup","previousItemToSelect","_previousSelectable","radioBtnToSelect","_deselectRadio","_selectRadio","_selected","nextRadioToSelect","readonly","previousRadioToSelect","_groups","_selectedRadios","$4398376e617b8a9b$var$block1","$4398376e617b8a9b$var$block2","valueStateText","$4398376e617b8a9b$var$blockSVG1","$4398376e617b8a9b$export$2e2bcd8739ae039","ariaReadonly","ariaDisabled","ariaDescribedBy","inner","hasValueState","$be9b8da005940395$var$metadata","valueState","select","$be9b8da005940395$var$RadioButton","syncGroup","_enableFormSupport","oldGroup","_name","currentGroup","removeFromGroup","addToGroup","syncNativeHiddenInput","nativeInput","toggle","selectNextItem","selectPreviousItem","canToggle","selectItem","valueStateTextMappings","strokeWidth","$9cc25c38882b4f66$var$pathData","$44f10a6fc1b223c0$var$block1","$44f10a6fc1b223c0$var$block2","_label","$44f10a6fc1b223c0$var$block3","$44f10a6fc1b223c0$export$2e2bcd8739ae039","checked","$0c40eb15c6ef9b37$var$metadata","change","$0c40eb15c6ef9b37$var$CheckBox","syncLabel","textDirection","$f99f1afaeaba0bc9$var$metadata","actionable","detailClick","_press","$f99f1afaeaba0bc9$export$2e2bcd8739ae039","deactivateByKey","deactivate","itemActive","activate","fireItemPress","_ontouchstart","_ontouchend","onMultiSelectionComponentPress","isInactive","onSingleSelectionComponentPress","onDelete","onDetailClick","placeSelectionElementBefore","placeSelectionElementAfter","modeSingleSelect","modeMultiSelect","modeDelete","typeDetail","ariaSelected","deleteText","$a419b9948ac6ce53$var$block1","$a419b9948ac6ce53$var$block2","$a419b9948ac6ce53$var$block3","$a419b9948ac6ce53$var$block4","$a419b9948ac6ce53$var$block5","$a419b9948ac6ce53$var$block6","$a419b9948ac6ce53$var$block7","$a419b9948ac6ce53$var$block8","description","$a419b9948ac6ce53$var$block9","$a419b9948ac6ce53$var$block10","$a419b9948ac6ce53$var$block11","$a419b9948ac6ce53$var$block12","$a419b9948ac6ce53$var$block13","$a419b9948ac6ce53$var$block14","$a419b9948ac6ce53$var$block15","$a419b9948ac6ce53$export$2e2bcd8739ae039","displayImage","displayIconBegin","displayIconEnd","$f20ae5ab7346c4e2$var$metadata","infoState","hasTitle","$f20ae5ab7346c4e2$var$StandardListItem","$f20ae5ab7346c4e2$export$2e2bcd8739ae039","$80691362ead5f6c2$var$block1","$80691362ead5f6c2$export$2e2bcd8739ae039","valueStateTextId","isDisabled","_toggleRespPopover","_text","_iconPressed","$de257e53266fbf8e$var$block1","_applyFocusAfterOpen","_beforeOpen","_afterClose","_headerTitleText","_handlePickerKeydown","_selectionChange","_syncedOptions","$de257e53266fbf8e$var$block2","$de257e53266fbf8e$export$2e2bcd8739ae039","$67753de48125a27f$var$metadata","include","selectedOption","$67753de48125a27f$var$Select","_selectedIndex","_selectedIndexBeforeOpen","_escapePressed","_lastSelectedOption","_syncSelection","_isPickerOpen","responsivePopover","option","_respPopover","lastSelectedOptionIndex","opt","_currentlySelectedOption","$6d7d2a1d36ee8d42$export$3b1b3798dc57bb39","_handleArrowNavigation","_getSelectedItemIndex","_select","selectedItemIndex","li","shouldFireEvent","isDownKey","isUpKey","_getNextOptionIndex","_getPreviousOptionIndex","_shouldClosePopover","_currentSelectedItem","$ceda6d983676557d$var$removeSeedParameter","$ceda6d983676557d$var$removeModeParameter","regex","$ceda6d983676557d$var$urlWithSeed","$ceda6d983676557d$var$willMatch","$ceda6d983676557d$var$testLabyrinthMode","$ceda6d983676557d$export$87e672a75327e04b","revealButtonVisibility","gameModeDropDown","parameter","optionElem","dataset","modeParameter","urlWithSeedButNotMode","$ceda6d983676557d$var$GameModeDropdown","newGameButton","$ceda6d983676557d$var$NewGameButton","restartGameButton","$ceda6d983676557d$var$RestartSameButton","revealLabyrinthButton","innerText","click$","$ceda6d983676557d$var$RevealLabyrintheButton","className","append","$15cdec2ac6ae6cc6$var$getConfig","easy","hard","justSmooze","difficulty","cycle","Infinity","spaceLessURL","$864ea5d16c681f72$export$9536f3c38aae61ee","buttonSet","corner","repositoryUrl","$15cdec2ac6ae6cc6$export$2cd8252107eb640b","$ad2bcec7a0192558$export$f22da7240b7add18"],"version":3,"file":"labyrinth.214a482d.js.map"}