@ytsaurus/ui 1.75.0 → 1.75.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"js/acl.c948c339.chunk.js","mappings":"2PAWaA,GAAQC,EAAAA,EAAAA,GAAG,qBAEjB,SAASC,EAAqBC,GAA+D,IAAnCC,EAA2BC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,GACrFG,EAAwB,GACxBC,EAAsB,GACtBC,EAAyB,GACzBC,EAA6B,GACnCC,IAAST,GAAO,SAACU,GACb,IAAOC,EAAwDD,EAAxDC,eAAgBC,EAAwCF,EAAxCE,YAAaC,EAA2BH,EAA3BG,WAAYC,EAAeJ,EAAfI,YAC5CH,EACAH,EAAaO,KAAKL,GACXI,EACPP,EAASQ,KAAKL,GACPG,GAAcD,EACrBN,EAAMS,KAAKL,GAEXL,EAAQU,KAAKL,EAErB,IAEA,IAAMM,EAAaX,EAAQY,KAAI,SAACP,GAAI,OAAKQ,EAAqBR,EAAK,IAC7DS,EAAWlB,EAAagB,KAAI,SAACP,GAAI,MAAM,CACzCU,MAAOV,EACPW,KAAM,CAAC,EACPC,QAAQ,EACX,IAED,MAAO,CACHC,SAAU,GACVlB,QAAS,CAACe,MAAO,UAAWC,KAAML,EAAWQ,OAAOL,IACpDb,MAAO,CACHc,MAAO,gBACPK,cAAe5B,EAAM,eACrBwB,KAAMf,EAAMW,KAAI,SAACP,GAAI,OAAKQ,EAAqBR,EAAM,CAACY,QAAQ,GAAM,KAExEf,SAAU,CACNa,MAAO,kBACPK,cAAe5B,EAAM,kBACrBwB,KAAMd,EAASU,KAAI,SAACP,GAAI,OAAKQ,EAAqBR,EAAM,CAACY,QAAQ,GAAM,KAE3Ed,aAAc,CACVY,MAAO,eACPK,cAAe5B,EAAM,qBACrBwB,KAAMb,EAAaS,KAAI,SAACP,GAAI,OAAKQ,EAAqBR,EAAM,CAACY,QAAQ,GAAM,KAGvF,CAEA,SAASJ,EAAqBQ,GAA2C,IAAvBC,EAAezB,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAC,EACjE,OAAA0B,EAAAA,EAAAA,GAAA,CACIR,MAAOM,EAAKG,MAAQH,EAAKI,MACzBT,KAAMK,GACHC,EAEX,CAEO,SAASI,EACZD,GAEA,IAAOzB,EAA4ByB,EAA5BzB,QAASkB,EAAmBO,EAAnBP,SAAUjB,EAASwB,EAATxB,MAC1B,MAAM,GAANkB,QAAAQ,EAAAA,EAAAA,GACOT,IAAQS,EAAAA,EAAAA,GACRC,EAA8B5B,KAAQ2B,EAAAA,EAAAA,GACtCC,EAA8B3B,IAEzC,CAEA,SAAS2B,EACLC,GAEA,IAAOb,GAAQa,GAAoB,CAAC,GAA7Bb,KACP,OAAOc,IACHC,IAAQf,GAAM,SAAAgB,GAAS,OAAAA,EAAPC,OAAqB,KACrC,SAAAC,GAAa,IACTC,EADED,EAAJlB,MACgC,CAAC,EAC/B,MAAO,CAACoB,KADGD,EAAJC,KACcX,MADHU,EAALV,MAEjB,GAER,CAEO,SAASY,EAAuBZ,GAOnC,IAAOzB,EAAqByB,EAArBzB,QACDsC,EADsBb,EAAZP,UACU,GACpBe,GAAYjC,GAAWA,EAAQgB,MAAS,IAAIuB,QAAO,SAAAC,GAAS,OAAAA,EAAPP,OAAoB,IAC/E,MAAO,CACHK,MAAOA,EAAM1B,KAAI,SAAA6B,GAAoB,IAAlBL,EAAIK,EAAJL,KAAMX,EAAKgB,EAALhB,MACrB,MAAgB,UAATW,EAAmB,CAACM,KAAMjB,GAAS,CAACkB,MAAOlB,EACtD,IACAQ,QAASA,EAAQrB,KAAI,SAAAgC,GAAa,IAC9BC,EADuBD,EAAJ5B,MACW,CAAC,EAAxBS,EAAKoB,EAALpB,MACP,MAAgB,UADEoB,EAAJT,KACY,CAACM,KAAMjB,GAAU,CAACkB,MAAOlB,EACvD,IAER,C,sRCnGMjC,GAAQC,EAAAA,EAAAA,GAAG,mBAEV,SAASqD,EAAYC,GACxB,OAAOC,EAAAA,EAAAA,KAACC,EAAAA,GAAK1B,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GAAKwB,GAAK,IAAEG,UAAW1D,MACxC,CAEO,SAAS2D,EAAgBC,GAC5B,OAAOC,IACHvB,IAAKsB,GAAQ,SAACE,EAAOC,GACjB,OAAOD,EACD,CACIE,KAAK,SAADrC,OAAWoC,GACfnB,KAAM,QACNqB,OAAQ,CACJC,UAAUV,EAAAA,EAAAA,KAACF,EAAW,CAACQ,MAAOA,WAGtCvD,CACV,IAER,CAEA,IAAM4D,EAAmC,wBAElC,SAASC,EAAoBN,GAChC,MAAO,CACHO,kBAAgBC,EAAAA,EAAAA,GAAA,GACXH,GAAaX,EAAAA,EAAAA,KAACF,EAAW,CAACQ,MAAOA,KAG9C,C,eC3BO,SAASS,IACZ,OAAO,gTACX,CAEO,ICVyDC,EDUnDC,GCVmDD,GDW5DE,EAAAA,EAAAA,GACIC,EAAAA,MAAUC,EAAAA,EAAAA,GAAAC,IAAAA,MAAC,SAAAC,IAAA,OAAAD,IAAAA,MAAA,SAAAE,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAAAF,EAAAE,KAAA,EACiBV,IAAkB,OAAU,OAAVQ,EAAAG,GAAAH,EAAAI,KAAEC,SAAQL,EAAAM,OAAA,kBAAAN,EAAAG,KAAA,wBAAAH,EAAAO,OAAA,GAAAR,EAAA,MAExD,ICdG,SAA6BvB,GAChC,IAAAgC,EAA8BZ,EAAAA,UAAe,GAAMa,GAAAC,EAAAA,EAAAA,GAAAF,EAAA,GAA5CG,EAAOF,EAAA,GAAEG,EAAUH,EAAA,GAM1B,OALAb,EAAAA,WAAgB,YACPe,GAAWnC,EAAMqC,SAClBD,GAAW,EAEnB,GAAG,CAACpC,EAAMqC,QAASF,IACXA,GAAiBlC,EAAAA,EAAAA,KAACgB,GAASzC,EAAAA,EAAAA,GAAA,GAAKwB,IAAtB,IACtB,IDsB2BmB,EAAAA,EAAAA,GAC3BC,EAAAA,MAAUC,EAAAA,EAAAA,GAAAC,IAAAA,MAAC,SAAAgB,IAAA,OAAAhB,IAAAA,MAAA,SAAAiB,GAAA,cAAAA,EAAAd,KAAAc,EAAAb,MAAA,cAAAa,EAAAb,KAAA,EACiBV,IAAkB,OAAiB,OAAjBuB,EAAAZ,GAAAY,EAAAX,KAAEY,gBAAeD,EAAAT,OAAA,kBAAAS,EAAAZ,KAAA,wBAAAY,EAAAR,OAAA,GAAAO,EAAA,MAE/D,IAJG,IAOMG,GAAetB,EAAAA,EAAAA,GACxBC,EAAAA,MAAUC,EAAAA,EAAAA,GAAAC,IAAAA,MAAC,SAAAoB,IAAA,OAAApB,IAAAA,MAAA,SAAAqB,GAAA,cAAAA,EAAAlB,KAAAkB,EAAAjB,MAAA,cAAAiB,EAAAjB,KAAA,EACiBV,IAAkB,OAAc,OAAd2B,EAAAhB,GAAAgB,EAAAf,KAAEa,aAAYE,EAAAb,OAAA,kBAAAa,EAAAhB,KAAA,wBAAAgB,EAAAZ,OAAA,GAAAW,EAAA,MAE5D,IAGSE,GAAmBzB,EAAAA,EAAAA,GAC5BC,EAAAA,MAAUC,EAAAA,EAAAA,GAAAC,IAAAA,MAAC,SAAAuB,IAAA,OAAAvB,IAAAA,MAAA,SAAAwB,GAAA,cAAAA,EAAArB,KAAAqB,EAAApB,MAAA,cAAAoB,EAAApB,KAAA,EACiBV,IAAkB,OAAkB,OAAlB8B,EAAAnB,GAAAmB,EAAAlB,KAAEgB,iBAAgBE,EAAAhB,OAAA,kBAAAgB,EAAAnB,KAAA,wBAAAmB,EAAAf,OAAA,GAAAc,EAAA,MAEhE,G,uGExDJ,QADyB,SAAA7C,GAAK,OAAIC,EAAAA,EAAAA,KAAA,OAAAzB,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,CAAKuE,MAAM,6BAA6BC,KAAK,OAAOC,QAAQ,aAAgBjD,GAAK,IAAAW,UAAEV,EAAAA,EAAAA,KAAA,QAAM+C,KAAK,eAAeE,SAAS,UAAUC,EAAE,yMAAyMC,SAAS,cAAmB,E,ICOnY3G,GAAQC,E,SAAAA,GAAG,sBAYJ2G,EAA0B,SAAHC,GAQ7B,IAPHnD,EAASmD,EAATnD,UACAoD,EAAQD,EAARC,SACAC,EAAMF,EAANE,OACAC,EAAcH,EAAdG,eACAC,EAAGJ,EAAHI,IACAC,EAAQL,EAARK,SACAC,EAAEN,EAAFM,GAEMC,EAAgBH,EAAM,eAAiB,WACvCI,EAAiBJ,EAAM,aAAe,SAC5C,OACIK,EAAAA,EAAAA,MAACC,EAAAA,EAAM,CACH7D,UAAW1D,EAAM,CAAC+G,OAAAA,GAASrD,GAC3B8D,KAAK,iBACLjG,MAAOuF,EAAWM,EAAgBC,EAClCI,QAAST,EACTG,GAAIA,EAAGjD,SAAA,CAENgD,IAAaJ,EAAWM,EAAgBC,GAAkB,KAC3D7D,EAAAA,EAAAA,KAACkE,EAAAA,EAAI,CACDhE,UAAW1D,EAAM,SAAU,CAAC8G,SAAAA,IAC5BtF,KAAMyF,EAAMU,EAAwBC,EAAAA,EACpCC,KAAM,OAItB,C,qJCrCMC,EAAU,IAAIC,EAAAA,EAUCC,EAAe,SAAAC,IAAAC,EAAAA,EAAAA,GAAAF,EAAAC,GAAA,IAAAE,GAAAC,EAAAA,EAAAA,GAAAJ,GAAA,SAAAA,IAAA,OAAAK,EAAAA,EAAAA,GAAA,KAAAL,GAAAG,EAAAG,MAAA,KAAAjI,UAAA,CA+B/B,OA/B+BkI,EAAAA,EAAAA,GAAAP,EAAA,EAAAQ,IAAA,qBAAAvG,MAChC,WACI,IAAAwG,EAAmCC,KAAKnF,MAAjCO,EAAK2E,EAAL3E,MAAO6E,EAAMF,EAANE,OAAQC,EAASH,EAATG,UAElB9E,GAAS6E,GACTb,EAAQe,IAAI,CACRC,MAAO,SACP9E,KAAM,UACN+E,WAAY,IACZxH,MAAO,8BACPyH,QAASJ,EAAaA,EAAsBK,QAAUC,EAAAA,EAAOC,OAAOC,SACpEC,QAAS,CACL,CACIC,MAAO,QACP7B,QAAS,kBAAM8B,EAAAA,EAAAA,IAAeX,EAAqB,KAKvE,GAAC,CAAAJ,IAAA,SAAAvG,MAED,WACI,IAAAuH,EAAsEd,KAAKnF,MAAKkG,EAAAD,EAAzEE,gBAAAA,OAAe,IAAAD,GAAQA,EAAE3F,EAAK0F,EAAL1F,MAAO8E,EAASY,EAATZ,UAAWD,EAAMa,EAANb,OAAQzE,EAAQsF,EAARtF,SAI1D,OAAIJ,IAAU4F,GAFUf,EAMjBzE,GAHIV,EAAAA,EAAAA,KAACmG,EAAAA,EAAK,CAAC7F,MAAO8E,GAI7B,KAACZ,CAAA,CA/B+B,CAASxD,EAAAA,U,iDCHtC,SAASoF,EAAYrG,GACxB,OAAOsG,EAAAA,GAAUC,kBAAkBvG,EACvC,C,oMCPA,SAASwG,EAAsBxG,GAC3B,IAAAyG,EAQIzG,EAPA0G,SAAAA,OAAQ,IAAAD,EAAG,IAAGA,EAAAE,EAOd3G,EANA4G,SAAAA,OAAQ,IAAAD,EAAG,WAAO,EAACA,EACnBE,EAKA7G,EALA6G,OACAnI,EAIAsB,EAJAtB,MACAoI,EAGA9G,EAHA8G,eACAC,EAEA/G,EAFA+G,UACGC,GAAIC,EAAAA,EAAAA,GACPjH,EAAKkH,GAETlF,EAA0BZ,EAAAA,WAAoCa,GAAAC,EAAAA,EAAAA,GAAAF,EAAA,GAAvDmF,EAAKlF,EAAA,GAAEmF,EAAQnF,EAAA,GAEhBoF,EAAkBjG,EAAAA,SAAc,WAClC,OAAOkG,IAAUV,EAAiBF,EACtC,GAAG,CAACA,EAAUE,IAERW,EAAenG,EAAAA,aACjB,SAAC3C,GACG2I,EAAS3I,GACT4I,EAAgB5I,EACpB,GACA,CAAC4I,EAAiBD,IAGhBI,EAAgBpG,EAAAA,aAClB,SAACqG,GACOV,GACAA,EAAUU,GAEA,UAAVA,EAAExC,KAAmB6B,GACrBA,EAAeW,EAEvB,GACA,CAACX,EAAgBC,IAGfW,EAAatG,EAAAA,aACf,SAACqG,GACGL,OAASpK,GAEL6J,GACAA,EAAOY,EAEf,GACA,CAACL,EAAUP,IAGf,OACI5G,EAAAA,EAAAA,KAAC0H,EAAAA,GAASnJ,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,CACNoI,SAAUW,GACNP,GAAI,IACRtI,WAAiB1B,IAAVmK,EAAsBzI,EAAQyI,EACrCN,OAAQa,EACRX,UAAWS,IAGvB,CAEA,QAAepG,EAAAA,KAAWoF,E,2QCtCnB,SAASoB,EAAiB3J,GAC7B,MAAO,CAACoB,KAAMwI,EAAAA,GAAoB5J,KAAAA,EACtC,CAIO,SAAS6J,EAAuBC,GACnC,OAAO,SAACC,EAAUC,GACd,GAAKF,EAAL,CAIA,IAAMG,EAAmB,IAAIC,KAAIC,EAAAA,EAAAA,IAA6BH,MAC1DC,EAAiBG,IAAIN,GACrBG,EAAgB,OAAQH,GAExBG,EAAiB5C,IAAIyC,GAEzBC,EAAS,CAAC3I,KAAMwI,EAAAA,GAAoB5J,KAAM,CAACiK,iBAAAA,IAR3C,CASJ,CACJ,C,yNCnDA,MAEA,EAFelI,GAAW,gBAAoB,MAAOsI,OAAOC,OAAO,CAAExF,MAAO,6BAA8ByF,MAAO,GAAIC,OAAQ,GAAIzF,KAAM,OAAQC,QAAS,aAAejD,GACnK,gBAAoB,OAAQ,CAAEgD,KAAM,eAAgBE,SAAU,UAAWC,EAAG,+JAAgKC,SAAU,a,qICmB3O,SAASsF,EAAoBpF,GAQjC,IAPPjB,EAAOiB,EAAPjB,QACArE,EAAKsF,EAALtF,MACA2K,EAAWrF,EAAXqF,YACAC,EAAWtF,EAAXsF,YACAC,EAAYvF,EAAZuF,aACAC,EAAWxF,EAAXwF,YAAWC,EAAAzF,EACX0F,eAAAA,OAAc,IAAAD,EAAG,GAAEA,EAEnBE,GAA0BC,EAAAA,EAAAA,eAASlM,GAAUmM,GAAAjH,EAAAA,EAAAA,GAAA+G,EAAA,GAAtC1I,EAAK4I,EAAA,GAAEC,EAAQD,EAAA,GAEhBE,GAAgBC,EAAAA,EAAAA,UAAQ,WAC1B,MAAO,CACH7I,KAAM8I,OAAOT,aAAW,EAAXA,EAAarI,MAC1B+I,QAASV,aAAW,EAAXA,EAAaU,QACtBC,QAASC,QAAQZ,aAAW,EAAXA,EAAaW,SAEtC,GAAG,CAACX,IAEJ,OACI7I,EAAAA,EAAAA,KAACiB,EAAAA,GAAU,CACPyI,qBAAmB,EACnBtH,QAASA,EACTuH,OAAO,EACPC,YAAa,CAAC7L,MAAAA,GACd8L,YAAa,CAACC,UAAWpB,GACzBqB,QAAS,WACLZ,OAASpM,GACT4L,GACJ,EACAqB,MAAO,SAACC,GACJ,IAAAC,EAAiCD,EAAKjC,WAAWmC,OAA1C3J,EAAI0J,EAAJ1J,KAAM+I,EAAOW,EAAPX,QAASC,EAAOU,EAAPV,QAMtB,OAAOZ,EALuC,CAC1CpI,KAAMA,EACN+I,QAAAA,EACAC,QAASA,IAEoB,OAAO,SAACY,GAErC,MADAjB,EAASiB,GACHA,CACV,GACJ,EACAhB,cAAeA,EACfiB,OAAM,CACF,CACI7J,KAAM,OACNpB,KAAM,OACNkL,UAAU,EACVC,QAAS,OACT9J,OAAQ,CACJ+J,YAAa,oBACbC,SAAUC,IAAU3B,EAAgB,UAG5C,CACIvI,KAAM,UACNpB,KAAM,cACNkL,UAAU,EACVC,QAAS,UACTI,QAAS,2BACTlK,OAAQ,CACJgK,SAAUC,IAAU3B,EAAgB,aAG5C,CACIvI,KAAM,UACNpB,KAAM,UACNmL,QAAS,UACT9J,OAAQ,CACJgK,SAAUC,IAAU3B,EAAgB,cAE3C5K,QAAAQ,EAAAA,EAAAA,IACEwB,EAAAA,EAAAA,GAAgB,CAACG,OAIpC,C,yBCxEM9D,GAAQC,EAAAA,EAAAA,GAAG,iBAkBF,SAASmO,EAAYvH,GAWzB,IAVP8B,EAAM9B,EAAN8B,OACA0F,EAAYxH,EAAZwH,aACAC,EAAIzH,EAAJyH,KACAC,EAAa1H,EAAb0H,cACAC,EAAO3H,EAAP2H,QAAOC,EAAA5H,EACP6H,UAAAA,OAAS,IAAAD,GAAQA,EACjBtD,EAAgBtE,EAAhBsE,iBACAwD,EAAa9H,EAAb8H,cACAC,EAAqB/H,EAArB+H,sBACAC,EAA4BhI,EAA5BgI,6BAEArC,GAAoCC,EAAAA,EAAAA,UAAS,CACzClL,MAAO,GACP2K,YAAa,GACbK,eAAgB,GAChBF,iBAAa9L,EACbqF,SAAS,EACTuG,YAAa,WACT2C,GAAc,SAACC,GAAS,OAAAhN,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACjBgN,GAAS,IACZnJ,SAAS,GAAK,GAEtB,EACAwG,aAAc,SAAC4C,GAA+B,OAAKC,QAAQC,SAAS,IACxDxC,GAAAjH,EAAAA,EAAAA,GAAA+G,EAAA,GAbT2C,EAAUzC,EAAA,GAAEoC,EAAapC,EAAA,GA0E1BK,EAAyC,CAC3C,CACI/I,KAAM,QACNN,UAAW1D,EAAM,SACjBoP,OAAQ,KACRC,OAAM,SAAA7M,GAAS,IAAP8M,EAAG9M,EAAH8M,IACJ,OAAO9L,EAAAA,EAAAA,KAAC+L,EAAK,CAAC7L,UAAW1D,EAAM,cAAe,CAACgN,QAASsC,EAAItC,WAChE,GAEJ,CACIhJ,KAAM,OACNqL,OAAM,SAAA3M,GAAS,IAAP4M,EAAG5M,EAAH4M,IACJ,OAAO9L,EAAAA,EAAAA,KAAA,QAAMjC,MAAO+N,EAAItL,KAAKE,SAAEoL,EAAItL,MACvC,EACAwL,MAAO,OACP9L,UAAW1D,EAAM,SAErB,CACIgE,KAAM,UACNqL,OAAM,SAAA1M,GAAS,IAAD8M,EAANH,EAAG3M,EAAH2M,IACJ,OAAOI,EAAAA,EAAAA,IAAsB,QAAZD,EAACH,EAAIvC,eAAO,IAAA0C,OAAA,EAAXA,EAAarO,KAAI,SAACuO,GAAM,UAAAhO,OAASgO,EAAM,QAAKC,KAAK,MACvE,EACAlM,UAAW1D,EAAM,WACjBwP,MAAO,QAEX,CACIxL,KAAM,GACNN,UAAW1D,EAAM,WACjBqP,OAAM,SAAArM,GAAS,IAAPsM,EAAGtM,EAAHsM,IACJ,OAAOZ,GACHpH,EAAAA,EAAAA,MAAAuI,EAAAA,SAAA,CAAA3L,SAAA,EACIV,EAAAA,EAAAA,KAAA,QACIE,UAAW1D,EAAM,OAAQ,CAAC8P,QAAQ,IAClCrI,QAAS,kBApDN5G,EAoD8ByO,OAnDrDR,GAAc,SAACC,GAAS,OAAAhN,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACjBgN,GAAS,IACZxN,MAAO,sBACP2K,YAAa,SACbG,aAAWtK,EAAAA,EAAAA,GAAA,GAAMlB,GACjB0L,eAAgB,CAAC,OAAQ,UAAW,WACpC3G,SAAS,EACTwG,aAAc,WACV,IAAO2D,EAAMlP,EAANkP,GACP,OAAOlG,EAAAA,GAAUmG,YACZC,kBAAkBzB,EAASuB,GAC3BG,MAAK,WACF3B,GACJ,GACR,GAAC,IAfiB,IAAC1N,CAoDkC,EAACqD,UAEtCV,EAAAA,EAAAA,KAACkE,EAAAA,EAAI,CAACyI,QAAQ,iBAElB3M,EAAAA,EAAAA,KAAA,QACIE,UAAW1D,EAAM,OAAQ,CAACoQ,MAAM,IAChC3I,QAAS,kBA5ER5G,EA4E8ByO,OA3EnDR,GAAc,SAACC,GAAS,OAAAhN,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACjBgN,GAAS,IACZxN,MAAO,oBACP2K,YAAa,OACbG,aAAWtK,EAAAA,EAAAA,GAAA,GAAMlB,GACjB0L,eAAgB,GAChB3G,SAAS,EACTwG,aAAc,SAACnK,GACX,OAAO4H,EAAAA,GAAUmG,YACZK,gBAAgB7B,GAAOzM,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GAAME,GAAK,IAAE8N,GAAIlP,EAAKkP,MAC7CG,MAAK,WACF3B,GACJ,GACR,GAAC,IAde,IAAC1N,CA4EkC,EAACqD,UAEpCV,EAAAA,EAAAA,KAACkE,EAAAA,EAAI,CAACyI,QAAQ,gBAGtB,IACR,EACAX,MAAO,UAIf,OACIlI,EAAAA,EAAAA,MAACgJ,EAAAA,EAAa,CAAApM,SAAA,EACVoD,EAAAA,EAAAA,MAAA,OAAApD,SAAA,EACIoD,EAAAA,EAAAA,MAAA,OAAK5D,UAAU,4CAA2CQ,SAAA,CAAC,gBAEtDwK,IACGpH,EAAAA,EAAAA,MAACC,EAAAA,EAAM,CAAC7D,UAAW1D,EAAM,SAAU,CAAC6I,KAAK,IAAQpB,QAnH9C,WACnBqH,GAAc,SAACC,GAAS,OAAAhN,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACjBgN,GAAS,IACZxN,MAAO,uBACP2K,YAAa,MACbK,eAAgB,CAAC,WACjB3G,SAAS,EACTyG,YAAa,CACTrI,KAAM,GACN+I,QAAS,GACTC,SAAS,GAEbZ,aAAc,SAACnK,GACX,OAAO4H,EAAAA,GAAUmG,YACZO,kBAAkB/B,EAASF,EAAMrM,GACjCiO,MAAK,WACF3B,GACJ,GACR,GAAC,GAET,EA+F6FrK,SAAA,EACrEV,EAAAA,EAAAA,KAACkE,EAAAA,EAAI,CAACyI,QAAS,SAAU,aAKrC3M,EAAAA,EAAAA,KAACgN,EAAAA,GAAiB,CACdC,QAAQ,gBACRC,aAAa,UACbC,SACInN,EAAAA,EAAAA,KAACoN,EAAAA,EAAO,CACJC,YAAa,CACT,CACIC,MACItN,EAAAA,EAAAA,KAACuG,EAAAA,EAAqB,CAClBiE,YAAY,iBACZtK,UAAW1D,EAAM,UACjBiC,MAAO2M,EACPzE,SAAU,SAACyE,GAAqB,OAC5BzD,EAAiB,CAACyD,sBAAAA,GAAuB,KAKzD,CACIkC,MACItN,EAAAA,EAAAA,KAACuN,EAAkB,CAEXpC,cAAAA,EACAxD,iBAAAA,EACA0D,6BAAAA,IAIZmC,YAAY,MAK5BhI,SACIxF,EAAAA,EAAAA,KAACyN,EAAAA,GAAW,CACRtI,OAAQA,EACRuI,YAAY,kCACZ1P,KAAM6M,EACNtB,QAASA,EACTjE,MAAO,gBACPqI,SAAU,CACNC,UAAU,EACVC,gBAAgB,UAMnClC,EAAWvJ,SAAUpC,EAAAA,EAAAA,KAACyI,GAAoBlK,EAAAA,EAAAA,GAAA,GAAKoN,IAAiB,OAG7E,CAQO,SAAS4B,EAAkB9N,GAIL,IAHVhB,EAAKgB,EAApB0L,cACAE,EAA4B5L,EAA5B4L,6BACA1D,EAAgBlI,EAAhBkI,iBAEMmG,EAAU3M,EAAAA,SAAc,WAC1B,OAAOkK,aAA4B,EAA5BA,EAA8BzN,KAAI,SAACa,GACtC,MAAO,CAACA,MAAAA,EAAOV,MAAOU,EAC1B,GACJ,GAAG,CAAC4M,IACJ,OACIrL,EAAAA,EAAAA,KAAC+N,EAAAA,EAAM,CACH7N,UAAW1D,EAAM,kBACjBwR,UAAQ,EACRC,UAAQ,EACRC,YAAU,EACVpI,MAAM,UACN0E,YAAY,SACZ2D,MAAOL,EACPrP,MAAOA,EACPkI,SAAU,SAACwE,GAAa,OAAKxD,EAAiB,CAACwD,cAAAA,GAAe,EAC9DiD,2BAA4B,GAC5B7F,MAAM,OAGlB,C,gECpQM/L,IAAQC,EAAAA,EAAAA,GAAG,+BAEI4R,GAAqB,SAAA5J,IAAAC,EAAAA,EAAAA,GAAA2J,EAAA5J,GAAA,IAAAE,GAAAC,EAAAA,EAAAA,GAAAyJ,GAAA,SAAAA,IAAA,IAAAC,GAAAzJ,EAAAA,EAAAA,GAAA,KAAAwJ,GAAA,QAAAE,EAAA1R,UAAAC,OAAA0R,EAAA,IAAAC,MAAAF,GAAAG,EAAA,EAAAA,EAAAH,EAAAG,IAAAF,EAAAE,GAAA7R,UAAA6R,GAoDpC,OApDoCJ,EAAA3J,EAAAgK,KAAA7J,MAAAH,EAAA,OAAAxG,OAAAqQ,KAuBtCI,MAAQ,CACJC,SAAS,GACZP,EAEDQ,qBAAuB,kBAAOR,EAAKM,MAAMC,OAAQ,EAADP,EAChDS,cAAgB,kBAAMT,EAAKU,UAAS,SAACC,GAAS,MAAM,CAACJ,SAAUI,EAAUJ,QAAQ,GAAG,EAADP,EAEnFY,WAAa,WACT,IAAAjK,EAAsCqJ,EAAKvO,MAApCoP,EAAOlK,EAAPkK,QAASrE,EAAI7F,EAAJ6F,KAAMsE,EAAYnK,EAAZmK,aACtBpJ,EAGIsI,EAAKvO,MAFUiF,EAAGgB,EAAlBoJ,aAAepK,IAGnB,OAAOqK,EAFcrJ,EAAjBqJ,mBAEqB,CACrBC,QAAStK,EACTmK,QAAAA,EACArE,KAAAA,EACAsE,aAAAA,IACD1C,MAAK,SAACpM,GACAA,GACDgO,EAAKvE,SAEb,GACJ,EAACuE,EAEDvE,QAAU,WACN,IAAOpB,EAAe2F,EAAKvO,MAApB4I,YACP2F,EAAKU,UAAS,iBAAO,CAACH,SAAS,EAAM,IACrClG,GACJ,EAAC2F,CAAC,CAqED,OArEAvJ,EAAAA,EAAAA,GAAAsJ,EAAA,EAAArJ,IAAA,SAAAvG,MAED,WACI,IAAOoQ,EAAW3J,KAAK0J,MAAhBC,QACPU,EAAyErK,KAAKnF,MAAvEqC,EAAOmN,EAAPnN,QAASgN,EAAYG,EAAZH,aAAcI,EAAmBD,EAAnBC,oBAAqBlP,EAAKiP,EAALjP,MAAOmP,EAAWF,EAAXE,YACnDzK,EACHoK,EADGpK,IAAK5F,EACRgQ,EADQhQ,KAAMsQ,EACdN,EADcM,UAAWC,EACzBP,EADyBO,SAAUC,EACnCR,EADmCQ,YAAarG,EAChD6F,EADgD7F,QAASsG,EACzDT,EADyDS,gBAG7D,OACI7P,EAAAA,EAAAA,KAAC8P,GAAAA,EAAK,CACFC,UAAW7K,KAAKgK,WAChBc,QAASR,EACTpN,QAASA,EACTsG,YAAY,SACZuH,SAAU/K,KAAK6E,QACfhM,MAAM,qBACNmS,eAAgBhL,KAAK6E,QACrBoG,kBAAmBjL,KAAK4J,qBACxBtJ,SACI1B,EAAAA,EAAAA,MAAA,OAAK5D,UAAW1D,KAAQkE,SAAA,EACpBV,EAAAA,EAAAA,KAACoQ,GAAAA,GAAS,CACNlQ,UAAW1D,GAAM,QACjB2R,MAAO,CACH,CACInJ,IAAK,YACLvG,MAAO6K,OAAOoG,IAElB,CACI1K,IAAK,WACLvG,OAAOyN,EAAAA,EAAAA,IAAWyD,aAAQ,EAARA,EAAUvD,KAAK,QAErC,CACIpH,IAAK,cACLvG,OAAOyN,EAAAA,EAAAA,IAAW0D,aAAW,EAAXA,EAAaxD,KAAK,OACpChK,QAAkB,WAAThD,GAEb,CACI4F,IAAK,kBACLvG,OAAOyN,EAAAA,EAAAA,IAAW3C,aAAO,EAAPA,EAAS6C,KAAK,OAChChK,QAAkB,YAAThD,GAEb,CACI4F,IAAK,mBACLvG,MACIiH,EAAAA,EAAOC,OAAsB,cAAEkK,IAC/BnK,EAAAA,EAAOC,OAAOC,SAClBxD,QAAkB,WAAThD,OAKrB0E,EAAAA,EAAAA,MAAA,KAAG5D,UAAW1D,GAAM,SAAU,CAACqS,QAAAA,IAAUnO,SAAA,EACrCV,EAAAA,EAAAA,KAACqQ,GAAAA,EAAQ,CACLhM,KAAM,IACNmB,QAAQ,gBACR8K,QAASzB,EACT0B,SAAUrL,KAAK6J,iBAGnB/O,EAAAA,EAAAA,KAACwQ,GAAAA,EAAK,CAAClL,MAAM,SAAS9G,KAAK,oCAG9B8B,GAAS0E,IAAQyK,IACdzP,EAAAA,EAAAA,KAACmG,GAAAA,EAAK,CAACV,QAAQ,8BAA8BnF,MAAOA,QAM5E,KAAC+N,CAAA,CAzHqC,CAASrN,EAAAA,W,yJCgB7CxE,IAAQC,EAAAA,EAAAA,GAAG,cA8NjB,UAAegU,EAAAA,GAAAA,IAAQC,GAAAA,EAAvB,EApLA,SAAmB3Q,GACf,IACIG,EAmBAH,EAnBAG,UACA4K,EAkBA/K,EAlBA+K,KACAqE,EAiBApP,EAjBAoP,QACAwB,EAgBA5Q,EAhBA4Q,QACAvO,EAeArC,EAfAqC,QACA4N,EAcAjQ,EAdAiQ,QACAY,EAaA7Q,EAbA6Q,WACAjI,EAYA5I,EAZA4I,YACAkI,EAWA9Q,EAXA8Q,aACAC,EAUA/Q,EAVA+Q,8BACAC,EASAhR,EATAgR,SACAC,EAQAjR,EARAiR,YACAC,EAOAlR,EAPAkR,cACAC,EAMAnR,EANAmR,eACA5Q,EAKAP,EALAO,MACA8E,EAIArF,EAJAqF,UACA+L,EAGApR,EAHAoR,YACAC,EAEArR,EAFAqR,gBACAC,EACAtR,EADAsR,UAGEC,GAAkBC,EAAAA,EAAAA,cAAY,WAChCJ,EAAY,CAACrG,KAAAA,EAAMqE,QAAAA,IACnByB,GACJ,GAAG,CAACA,EAAYzB,EAASgC,EAAarG,IAEhC0G,GAAuBD,EAAAA,EAAAA,cAAY,WACrC5I,IACAyI,EAAgB,CAACjC,QAAAA,GACrB,GAAG,CAACiC,EAAiBzI,EAAawG,IAE5BnF,GAAQuH,EAAAA,EAAAA,cACV,SAACtH,GACG,IAAAC,EACID,EAAKjC,WAAWmC,OADb4G,EAAQ7G,EAAR6G,SAAUE,EAAa/G,EAAb+G,cAAeD,EAAW9G,EAAX8G,YAAaS,EAAsBvH,EAAtBuH,uBAA2B1K,GAAIC,EAAAA,EAAAA,GAAAkD,EAAAjD,IAG5E,OAAOoK,EAAU,CACbvG,KAAAA,EACAqE,QAAAA,EACAhF,QAAM5L,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACCwI,GAAI,IACP2K,oBAAqBD,EACrBT,aAAatS,EAAAA,EAAAA,IAA2BsS,GACxCD,UAAUrS,EAAAA,EAAAA,IAA2BqS,GACrCE,eAAevS,EAAAA,EAAAA,IAA2BuS,KAE9CN,QAAAA,EACAgB,KAAM,uBAEd,GACA,CAACxC,EAASrE,EAAMuG,EAAWV,IAGzBiB,GAAwBvI,EAAAA,EAAAA,UAC1B,iBACK,CACG2H,YAAa,CACTxQ,KAAM,cACNpB,KAAM,YACNmL,QAAS,cACT9J,OAAQ,CACJoR,gBAAiB,EACjBrH,YAAa,0BAGrBiH,uBAAwB,CACpBjR,KAAM,yBACNpB,KAAM,UACNmL,QAAS,uBAEb0G,cAAe,CACXzQ,KAAM,gBACNpB,KAAM,YACNmL,QAAS,iBACT9J,OAAQ,CACJoR,gBAAiB,EACjBrH,YAAa,wCAGrBuG,SAAU,CACNvQ,KAAM,WACNpB,KAAM,YACNmL,QAAS,WACT9J,OAAQ,CACJoR,gBAAiB,EACjBrH,YAAa,mCAGrBqG,aAAc,CACVrQ,KAAM,eACNpB,KAAM,UACNmL,QAAS,iBAEbuH,QAAS,CACLtR,KAAM,UACN+J,QAAS,kBACTnL,KAAM,YAEb,GACL,IAGG2S,EAAmB1L,EAAAA,GAAUmG,YAA7BuF,gBACDC,GAAe3I,EAAAA,EAAAA,UAAQ,WACzB,IAAM4I,EAAsB5L,EAAAA,GAAU6L,4BAChCC,EAA+D,CACjEtB,aAAcoB,EAAoB9C,GAASiD,mBAC3CrB,SAAUkB,EAAoB9C,GAASkD,cACvCpB,cAAegB,EAAoB9C,GAASmD,mBAC5Cb,uBAAwBQ,EAAoB9C,GAASoD,0BAGzD,OAAOR,EACFxS,QAAO,SAACiB,GAAI,YACmBzD,IAA5BoV,EAAkB3R,IAAsB2R,EAAkB3R,EAAY,IAEzE5C,KAAI,SAAC4C,GAAI,OAAKoR,EAAsBpR,EAAK,GAClD,GAAG,CAAC2O,EAASyC,EAAuBG,IA0CpC,OAAQA,SAAAA,EAAiBjV,QACrBkD,EAAAA,EAAAA,KAAC8M,EAAAA,EAAa,CAAApM,UACVoD,EAAAA,EAAAA,MAAA,OAAK5D,UAAW1D,GAAM,KAAM0D,GAAWQ,SAAA,EACnCV,EAAAA,EAAAA,KAAC+D,EAAAA,EAAM,CAACE,QAASqN,EAAgB5Q,SAAC,yBAElCoD,EAAAA,EAAAA,MAAC0O,GAAAA,EAAY,CACTnO,KAAK,IACLoO,KAAMhJ,QAAQrH,GACd2H,QAASpB,EACTzI,UAAW1D,GAAM,QAAS,CAACwT,QAAAA,EAAS1P,MAAAA,IAAQI,SAAA,EAE5CV,EAAAA,EAAAA,KAACwS,GAAAA,EAAaE,OAAM,CAACnI,QAAQ,yBAC7BvK,EAAAA,EAAAA,KAACwS,GAAAA,EAAaG,KAAI,CAAAjS,UAlB1BV,EAAAA,EAAAA,KAACwE,GAAAA,EAAe,CAACW,QAAQ,EAAO7E,MAAOA,EAAO8E,UAAWA,EAAU1E,SAC9DsP,GAAUhQ,EAAAA,EAAAA,KAAC4S,EAAAA,EAAM,KAjCtB5S,EAAAA,EAAAA,KAACiB,EAAAA,GAAU,CACPyI,qBAAmB,EACnBC,OAAO,EACPvH,QAASqH,QAAQrH,GACjB2H,QAASyH,EACTxH,MAAOA,EACPZ,cAAe,CACX4H,aAAatU,EAAAA,EAAAA,IAAqBsU,GAClCS,wBAAyBX,EACzBG,eAAevU,EAAAA,EAAAA,IAAqBuU,GACpCF,UAAUrU,EAAAA,EAAAA,IAAqBqU,GAC/BF,aAAcpH,QAAQoH,IAE1BgC,WAAY,CAACC,mBAAoBC,MACjC1I,OAAM,GAAAlM,QAAAQ,EAAAA,EAAAA,GACCqT,GAAY,CACf,CACIxR,KAAM,cACNpB,KAAM,QACNqB,OAAQ,CACJC,SAAUwQ,IACNlR,EAAAA,EAAAA,KAACmG,GAAAA,EAAK,CAACV,QAAQ,qBAAqBnF,MAAO4Q,sBAiBrC,IAiBtC,I,gBClOM1U,IAAQC,EAAAA,EAAAA,GAAG,mBA8KjB,UAAegU,EAAAA,GAAAA,IAAQC,GAAAA,EAAvB,EAvJA,SAA2B3Q,GACvB,IACIG,EAeAH,EAfAG,UACA4K,EAcA/K,EAdA+K,KACAqE,EAaApP,EAbAoP,QACAwB,EAYA5Q,EAZA4Q,QACAvO,EAWArC,EAXAqC,QACA4N,EAUAjQ,EAVAiQ,QACAY,EASA7Q,EATA6Q,WACAjI,EAQA5I,EARA4I,YACAqK,EAOAjT,EAPAiT,WACA9B,EAMAnR,EANAmR,eACAC,EAKApR,EALAoR,YACAC,EAIArR,EAJAqR,gBACAC,EAGAtR,EAHAsR,UACA/Q,EAEAP,EAFAO,MACA8E,EACArF,EADAqF,UAGJ4D,GAAoCC,EAAAA,EAAAA,WAAS,GAAMC,GAAAjH,EAAAA,EAAAA,GAAA+G,EAAA,GAA5CiK,EAAU/J,EAAA,GAAEgK,EAAahK,EAAA,GAE1BoI,GAAkBC,EAAAA,EAAAA,cAAY,WAChCJ,EAAY,CAACrG,KAAAA,EAAMqE,QAAAA,IACnByB,GACJ,GAAG,CAACA,EAAYzB,EAASgC,EAAarG,IAEhC0G,GAAuBD,EAAAA,EAAAA,cAAY,WACrC5I,IACAyI,EAAgB,CAACjC,QAAAA,GACrB,GAAG,CAACiC,EAAiBzI,EAAawG,IAE5BnF,GAAQuH,EAAAA,EAAAA,cACV,SAACtH,GACG,IAAOE,EAAUF,EAAKjC,WAAfmC,OAEP,OAAOkH,EAAU,CACbvG,KAAAA,EACAqE,QAAAA,EACAhF,OAAAA,EACAwG,QAAAA,EACAgB,KAAM,uBAEd,GACA,CAACxC,EAASrE,EAAMuG,EAAWV,IAGzBiB,GAAwBvI,EAAAA,EAAAA,UAC1B,iBACK,CACG2J,WAAY,CACRxS,KAAM,aACNpB,KAAM,UACNmL,QAAS,cACTgG,SAAU,SAAC9R,GACPyU,GAAezU,EACnB,GAEJ0U,mBAAoB,CAChB3S,KAAM,qBACNpB,KAAM,QACNqB,OAAQ,CACJC,SAAUuS,GACNjT,EAAAA,EAAAA,KAACoT,GAAAA,EAAU,CACPhU,KAAM,QACNqG,SACI3B,EAAAA,EAAAA,MAAAuI,EAAAA,SAAA,CAAA3L,SAAA,CAAE,YACUV,EAAAA,EAAAA,KAAA,QAAME,UAAW1D,GAAM,QAAQkE,SAAC,gBAAmB,IAAI,YACvDV,EAAAA,EAAAA,KAAA,QAAME,UAAW1D,GAAM,QAAQkE,SAAC,UAAY,4EAEzC,SAIvB,OAGZoR,QAAS,CACLtR,KAAM,UACN+J,QAAS,kBACTnL,KAAM,YAEb,GACL,CAAC6T,IAGLI,EAAgDhN,EAAAA,GAAUmG,YAAnD8G,EAAuBD,EAAvBC,wBAAyBC,EAAYF,EAAZE,aAC1BvB,GAAe3I,EAAAA,EAAAA,UAAQ,WAGzB,OAF4BhD,EAAAA,GAAU6L,4BACQ/C,GAAvCqE,gBAEDF,EAAwB1V,KAAI,SAAC4C,GAAI,OAAKoR,EAAsBpR,EAAK,IACjE,EACV,GAAG,CAAC2O,EAASyC,EAAuB0B,IAsC6BG,GAAlBF,QAAAA,EAAgB,CAAC,GAAzDG,gBAAAA,OAAe,IAAAD,EAAG,mBAAkBA,EAE3C,OAAQzB,EAAalV,QACjBkD,EAAAA,EAAAA,KAAC8M,EAAAA,EAAa,CAAApM,UACVoD,EAAAA,EAAAA,MAAA,OAAK5D,UAAW1D,GAAM,KAAM0D,GAAWQ,SAAA,EACnCV,EAAAA,EAAAA,KAAC+D,EAAAA,EAAM,CAACE,QAASqN,EAAgB5Q,SAAEgT,KAEnC5P,EAAAA,EAAAA,MAAC0O,GAAAA,EAAY,CACTnO,KAAK,IACLoO,KAAMhJ,QAAQrH,GACd2H,QAASpB,EACTzI,UAAW1D,GAAM,QAAS,CAACwT,QAAAA,EAAS1P,MAAAA,IAAQI,SAAA,EAE5CV,EAAAA,EAAAA,KAACwS,GAAAA,EAAaE,OAAM,CAACnI,QAASmJ,KAC9B1T,EAAAA,EAAAA,KAACwS,GAAAA,EAAaG,KAAI,CAAAjS,UApB1BV,EAAAA,EAAAA,KAACwE,GAAAA,EAAe,CAACW,QAAQ,EAAO7E,MAAOA,EAAO8E,UAAWA,EAAU1E,SAC9DsP,GAAUhQ,EAAAA,EAAAA,KAAC4S,EAAAA,EAAM,KA7BtB5S,EAAAA,EAAAA,KAACiB,EAAAA,GAAU,CACPyI,qBAAmB,EACnBC,OAAO,EACPvH,QAASqH,QAAQrH,GACjB2H,QAASyH,EACTxH,MAAOA,EACPZ,cAAe,CACX4J,WAAYvJ,QAAQuJ,IAExBH,WAAY,CAACC,mBAAoBC,MACjC1I,OAAM,GAAAlM,QAAAQ,EAAAA,EAAAA,GACCqT,GAAY,CACf,CACIxR,KAAM,cACNpB,KAAM,QACNqB,OAAQ,CACJC,SAAUwQ,IACNlR,EAAAA,EAAAA,KAACmG,GAAAA,EAAK,CAACV,QAAQ,qBAAqBnF,MAAO4Q,sBAmBzC,IAiBlC,ICzLA,IAAM1U,IAAQC,EAAAA,EAAAA,GAAG,wBAmCJkX,GAAU,SAAAlP,IAAAC,EAAAA,EAAAA,GAAAiP,EAAAlP,GAAA,IAAAE,GAAAC,EAAAA,EAAAA,GAAA+O,GAAA,SAAAA,IAAA,IAAArF,GAAAzJ,EAAAA,EAAAA,GAAA,KAAA8O,GAAA,QAAApF,EAAA1R,UAAAC,OAAA8W,EAAA,IAAAnF,MAAAF,GAAAG,EAAA,EAAAA,EAAAH,EAAAG,IAAAkF,EAAAlF,GAAA7R,UAAA6R,GAWlB,OAXkBJ,EAAA3J,EAAAgK,KAAA7J,MAAAH,EAAA,OAAAxG,OAAAyV,KACnBC,oBAAkBzS,EAAAA,EAAAA,GAAAC,IAAAA,MAAG,SAAAC,IAAA,IAAA2D,EAAA4O,EAAA1C,EAAArG,EAAAqE,EAAA2E,EAAAjX,UAAA,OAAAwE,IAAAA,MAAA,SAAAE,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OACoC,OADpCwD,EACwCqJ,EAAKvO,MAAvD8T,EAAkB5O,EAAlB4O,mBAAoB1C,EAAWlM,EAAXkM,YAAarG,EAAI7F,EAAJ6F,KAAMqE,EAAOlK,EAAPkK,QAAO5N,EAAAE,KAAA,EAC/CoS,EAAkB/O,WAAC,EAADgP,GAAU,KAAD,SAAAvS,EAAAE,KAAA,EAC3B0P,EAAY,CAACrG,KAAAA,EAAMqE,QAAAA,IAAU,KAAD,mBAAA5N,EAAAO,OAAA,GAAAR,EAAA,KACrCgN,EAED+C,WAASjQ,EAAAA,EAAAA,GAAAC,IAAAA,MAAG,SAAAgB,IAAA,IAAA2D,EAAAqL,EAAAF,EAAArG,EAAAqE,EAAA4E,EAAAlX,UAAA,OAAAwE,IAAAA,MAAA,SAAAiB,GAAA,cAAAA,EAAAd,KAAAc,EAAAb,MAAA,OACoC,OADpCuE,EACwCsI,EAAKvO,MAA9CsR,EAASrL,EAATqL,UAAWF,EAAWnL,EAAXmL,YAAarG,EAAI9E,EAAJ8E,KAAMqE,EAAOnJ,EAAPmJ,QAAO7M,EAAAb,KAAA,EACtC4P,EAASvM,WAAC,EAADiP,GAAU,KAAD,SAAAzR,EAAAb,KAAA,EAClB0P,EAAY,CAACrG,KAAAA,EAAMqE,QAAAA,IAAU,KAAD,mBAAA7M,EAAAR,OAAA,GAAAO,EAAA,KACrCiM,CAAC,CAsFD,OAtFAvJ,EAAAA,EAAAA,GAAA4O,EAAA,EAAA3O,IAAA,SAAAvG,MAED,WACI,IAAA8Q,EA2BIrK,KAAKnF,MA1BLiU,EAAOzE,EAAPyE,QACAlJ,EAAIyE,EAAJzE,KACAqE,EAAOI,EAAPJ,QACAwB,EAAOpB,EAAPoB,QACAzQ,EAASqP,EAATrP,UACA+T,EAAuB1E,EAAvB0E,wBACAC,EAAwB3E,EAAxB2E,yBAEA/C,EAAW5B,EAAX4B,YACAnB,EAAOT,EAAPS,QACA1P,EAAKiP,EAALjP,MACA8E,EAASmK,EAATnK,UAEA4N,EAAUzD,EAAVyD,WACAnC,EAAYtB,EAAZsB,aACAC,EAA6BvB,EAA7BuB,8BAEAC,EAAQxB,EAARwB,SACAE,EAAa1B,EAAb0B,cACAD,EAAWzB,EAAXyB,YAEAmD,EAAc5E,EAAd4E,eACA/C,EAAe7B,EAAf6B,gBACApG,EAAOuE,EAAPvE,QAEAH,EAAY0E,EAAZ1E,aAGJ,OACI7K,EAAAA,EAAAA,KAAC8M,EAAAA,EAAa,CAAApM,SACTyO,IAAYiF,EAAAA,GAAcC,mBACvBrU,EAAAA,EAAAA,KAACsU,EAAAA,EAAI,CAACpU,UAAW1D,GAAM,KAAM0D,GAAYqU,IAAK,EAAE7T,UAC5CoD,EAAAA,EAAAA,MAAC3C,EAAAA,SAAc,CAAAT,SAAA,EACXV,EAAAA,EAAAA,KAACwU,GAAAA,EAAkB,CACfR,QAASA,EACTlJ,KAAMA,EACNqE,QAASA,EACT7O,MAAO2T,EACPJ,mBAAoB3O,KAAK2O,mBACzBK,yBAA0BA,EAC1BlJ,QAASA,EACTH,aAAcA,IAEjBmJ,IAAYS,EAAAA,GAAQC,6BACjB1U,EAAAA,EAAAA,KAAC2U,GAAiB,CACdxD,YAAaA,EACbnB,QAASA,EACT1P,MAAOA,EACP8E,UAAWA,EACX0F,KAAMA,EACNqE,QAASA,EACTwB,QAASA,EACTqC,WAAYA,EACZ3B,UAAWnM,KAAKmM,UAChBH,eAAgBiD,EAChB/C,gBAAiBA,IAGxB4C,IAAYS,EAAAA,GAAQC,6BACjB1U,EAAAA,EAAAA,KAAC4U,GAAS,CACNzD,YAAaA,EACbnB,QAASA,EACT1P,MAAOA,EACP8E,UAAWA,EACX0F,KAAMA,EACNqE,QAASA,EACTwB,QAASA,EACTE,aAAcA,EACdC,8BAA+BA,EAC/BC,SAAUA,EACVE,cAAeA,EACfD,YAAaA,EACbK,UAAWnM,KAAKmM,UAChBH,eAAgBiD,EAChB/C,gBAAiBA,UAQjD,KAACuC,CAAA,CAjGkB,CAAS3S,EAAAA,WChDhC,SADuB,SAAAjB,GAAK,OAAIC,EAAAA,EAAAA,KAAA,OAAAzB,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,CAAKuE,MAAM,6BAA6BC,KAAK,OAAOC,QAAQ,aAAgBjD,GAAK,IAAAW,UAAEV,EAAAA,EAAAA,KAAA,QAAM+C,KAAK,eAAeE,SAAS,UAAUC,EAAE,wLAAwLC,SAAS,cAAmB,E,4BCYhX3G,IAAQC,EAAAA,EAAAA,GAAG,qBAEV,SAASoY,GAAaxR,GAKzB,IAF+D,IAF/DyR,EAAezR,EAAfyR,gBACA5U,EAASmD,EAATnD,UAEM6U,EAAwC,GACrCC,EAAI,EAAGA,GAAIF,aAAe,EAAfA,EAAiBhY,QAAQkY,GAAK,EAC9CD,EAAOrX,KAAKoX,EAAgBG,MAAMD,EAAGA,EAAI,IAE7C,OACIhV,EAAAA,EAAAA,KAACsU,EAAAA,EAAI,CAACpU,UAAW1D,GAAM,KAAM0D,GAAWQ,SACnCqU,EAAOnX,KAAI,SAACuQ,EAAO5N,GAChB,OAAOP,EAAAA,EAAAA,KAACkV,GAAgB,CAAC/G,MAAOA,GAAY5N,EAChD,KAGZ,CAEA,SAAS2U,GAAgBlW,GAAsD,IAApDmP,EAAKnP,EAALmP,MACvB,OACInO,EAAAA,EAAAA,KAACsU,EAAAA,EAAI,CAACpU,UAAW1D,GAAM,SAAU2Y,UAAU,SAASZ,IAAK,EAAE7T,SACtDyN,EAAMvQ,KAAI,SAAAsB,GAAqB,IAAnBE,EAAIF,EAAJE,KAAMgW,EAAMlW,EAANkW,OACf,OACItR,EAAAA,EAAAA,MAACwQ,EAAAA,EAAI,CACDpU,UAAW1D,GAAM,OAAQ,CAAC4C,KAAMgW,IAEhCC,WAAY,SACZd,IAAK,EAAE7T,SAAA,EAEPV,EAAAA,EAAAA,KAACkE,EAAAA,EAAI,CACDG,KAAM,GACNnE,UAAW1D,GAAM,OAAQ,CACrB8Y,MAAkB,SAAXF,EAAoB,SAAW,YAE1CpX,KAAiB,SAAXoX,EAAoBG,GAAAA,EAAWC,KAExC7P,GAAAA,EAAO8P,SAASrW,KAXZA,EAcjB,KAGZ,C,oDC9CM5C,IAAQC,EAAAA,EAAAA,GAAG,qBAEF,SAASiZ,KACpB,IAAM3N,GAAW4N,EAAAA,EAAAA,MACXC,GAAgBC,EAAAA,EAAAA,IAAYC,EAAAA,IAElC,OACI9V,EAAAA,EAAAA,KAACoN,EAAAA,EAAO,CACJC,YAAa,CACT,CACIC,MACItN,EAAAA,EAAAA,KAAC+V,GAAAA,EAAM,CACHvL,YAAY,oBACZ+F,SAAU,SAAC9R,GVfhC,IACHuX,EUe4BjO,GVf5BiO,EUekE,CAACA,iBAAkBvX,GVfrFuX,iBAEO,CACH5W,KAAMwI,EAAAA,GACN5J,KAAM,CAACgY,iBAAAA,KUYa,EACA9V,UAAW1D,GAAM,kBACjBiC,MAAOmX,EACPvR,KAAK,IACL4R,WAAW,OAOvC,C,2BCXMzZ,IAAQC,EAAAA,EAAAA,GAAG,8BAOF,SAASyZ,GAAwB7S,GAMrC,IALP2Q,EAAO3Q,EAAP2Q,QACA7E,EAAO9L,EAAP8L,QACAhE,EAAa9H,EAAb8H,cACAxD,EAAgBtE,EAAhBsE,iBACA0D,EAA4BhI,EAA5BgI,6BAEMtD,GAAW4N,EAAAA,EAAAA,MACXC,GAAgBC,EAAAA,EAAAA,IAAYM,EAAAA,IAC5BC,GAAqBP,EAAAA,EAAAA,IAAYQ,EAAAA,IACjCC,GAAiBT,EAAAA,EAAAA,KAAYU,EAAAA,EAAAA,IAA8BpH,IAEjE,OACInP,EAAAA,EAAAA,KAACoN,EAAAA,EAAO,CACJC,YAAa,CACT,CACIC,MACItN,EAAAA,EAAAA,KAAC+V,GAAAA,EAAM,CACH7V,UAAW1D,GAAM,UACjBgO,YAAY,oBACZ+F,SAAU,SAAC9R,GXnChC,IAAoC+X,EWoCXzO,GXpCWyO,EWqCmB,CACtBA,cAAe/X,GXtCZ+X,cAChC,CACHpX,KAAMwI,EAAAA,GACN5J,KAAM,CAACwY,cAAAA,KWsCa,EACA/X,MAAOmX,EACPvR,KAAK,IACL4R,WAAW,KAIvB,CACIzI,YAAY,EACZF,KACI0G,IAAYS,EAAAA,GAAQC,4BAChB1U,EAAAA,EAAAA,KAACuN,EAAkB,CACVpC,cAAAA,EAAexD,iBAAAA,EAAkB0D,6BAAAA,KAG1CrL,EAAAA,EAAAA,KAAC+N,EAAAA,EAAM,CACH7N,UAAW1D,GAAM,UACjBwR,UAAQ,EACRxD,YAAa,SACb/L,MAAO2X,EACPjI,MAAOrP,KAAKwX,GAAgB,SAACG,GAAC,MAAM,CAChChY,MAAOgY,EACPjY,KAAMmH,GAAAA,EAAO+Q,cAAcD,GAC9B,IACD9P,SAAU,SAAClI,GX1DpC,IACHkY,EW0DgC5O,GX1DhC4O,EW2DkE,CAC1BA,kBAAmBlY,GX5D3DkY,kBAEO,CACHvX,KAAMwI,EAAAA,GACN5J,KAAM,CAAC2Y,kBAAAA,KW2DiB,EACA7Q,MAAO,cACPsI,2BAA4B,GAC5B7F,MAAM,YAOtC,C,4BC3EM/L,IAAQC,EAAAA,EAAAA,GAAG,sBAEV,SAASma,GAAcvT,GAAwD,IAAtDnD,EAASmD,EAATnD,UAAW2W,EAAUxT,EAAVwT,WAAY9B,EAAM1R,EAAN0R,OACnD,OACI/U,EAAAA,EAAAA,KAACsU,EAAAA,EAAI,CAAC/Q,QAAM,EAACrD,UAAW1D,GAAM,CAACqa,WAAAA,GAAa3W,GAAWQ,SAClDqU,EAAOnX,KAAI,SAACuQ,EAAO5N,GAChB,OAAOP,EAAAA,EAAAA,KAAC8W,GAAY,CAAC3I,MAAOA,GAAY5N,EAC5C,KAGZ,CAEA,SAASuW,GAAY9X,GAA+C,IAA7CmP,EAAKnP,EAALmP,MACnB,OACInO,EAAAA,EAAAA,KAACoQ,GAAAA,GAAS,CACNlQ,UAAW1D,GAAM,QACjBua,OAAQ,EACR5I,MAAOA,EAAMvQ,KAAI,SAACP,GACd,MAAO,CAAC2H,IAAK3H,EAAKmD,KAAM/B,OAAOuB,EAAAA,EAAAA,KAACgX,GAAY,CAACvY,MAAOpB,EAAKoB,MAAOwY,IAAK5Z,EAAK4Z,MAC9E,KAGZ,CAEA,SAASD,GAAY9X,GAA2D,IAAzDT,EAAKS,EAALT,MAAOwY,EAAG/X,EAAH+X,IAC1B,OACInT,EAAAA,EAAAA,MAACwQ,EAAAA,EAAI,CAAA5T,SAAA,EACDV,EAAAA,EAAAA,KAACkX,GAAK,CAACzY,MAAOA,IACb0Y,GAAWF,KACRjX,EAAAA,EAAAA,KAACoX,GAAAA,EAAI,CAACpT,KAAK,YAAY9D,UAAW1D,GAAM,QAAS6a,OAAO,SAASC,KAAML,EAAIvW,UACvEV,EAAAA,EAAAA,KAACkE,EAAAA,EAAI,CAACyI,QAAQ,aAKlC,CAEA,SAASwK,GAAWF,GAChB,OAAOxN,QAAQwN,EACnB,CAEA,SAASC,GAAK/X,GAA8C,IAA5CV,EAAKU,EAALV,MACZ,MACS,aADT8Y,EAAAA,GAAAA,GAAe9Y,IAGHuB,EAAAA,EAAAA,KAAA,QAAME,UAAW1D,GAAM,QAAS,CAACgb,KAAM/N,QAAQhL,KAASiC,SACnDjC,EAAQ,OAAS,WAInBuB,EAAAA,EAAAA,KAAA,QAAME,UAAW1D,GAAM,SAASkE,SAAEjC,GAErD,C,gBCjEMgZ,GAAmB,CAAChD,EAAAA,GAAQiD,iBAAkBjD,EAAAA,GAAQC,4BAA4B9W,KACpF,SAACa,GACG,MAAO,CAACA,MAAAA,EAAO+G,QAASG,GAAAA,EAAO+Q,cAAcjY,GACjD,IAGG,SAASkZ,GAActU,GAG2B,IAFrDsE,EAAgBtE,EAAhBsE,iBACAqM,EAAO3Q,EAAP2Q,QAEA,OACIhU,EAAAA,EAAAA,KAAC4X,GAAAA,EAAW,CACRnZ,MAAOuV,EACPlG,QAAS2J,GACT9Q,SAAU,SAAClI,GACPkJ,EAAiB,CAACkQ,cAAepZ,GACrC,GAGZ,C,uCCjBO,SAASqZ,GAAczU,GAA6C,IAAD0U,EAA1CC,EAAW3U,EAAX2U,YAAa7J,EAAK9K,EAAL8K,MACzC,OAAKA,EAIE6J,GACHhY,EAAAA,EAAAA,KAACiY,GAAAA,EAAa,CACV1P,MAAM,MACN2P,QAAQ,iBACRzZ,MAGM,QAHDsZ,EACD5J,aAAK,EAALA,EAAOvQ,KAAI,SAACua,GACR,MAAM,IAANha,OAAWia,GAAAA,EAAQC,OAAOF,GAAE,IAChC,WAAE,IAAAJ,EAAAA,EAAI,GAEVO,iBAAkB,EAClBC,cAAe,MAGnBrM,EAAAA,EAAAA,IAAWiC,aAAK,EAALA,EAAOvQ,KAAI,SAACP,GAAI,UAAAc,OAASd,EAAI,QAAK+O,KAAK,OAhB3CzG,GAAAA,EAAOC,QAkBtB,CC9BA,SADwB,SAAA7F,GAAK,OAAIC,EAAAA,EAAAA,KAAA,OAAAzB,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,CAAKuE,MAAM,6BAA6BC,KAAK,OAAOC,QAAQ,aAAgBjD,GAAK,IAAAW,UAAEV,EAAAA,EAAAA,KAAA,QAAM+C,KAAK,eAAeyV,YAAa,GAAKvV,SAAS,UAAUC,EAAE,qgBAAqgBC,SAAS,cAAmB,E,4BCuB/sB,SAASsV,GAAkBpV,GAAkC,IAAhCrF,EAAIqF,EAAJrF,KAC1BiZ,EAjBV,SAAqBjZ,GACjB,OAAQA,aAAI,EAAJA,EAAM0a,MACV,KAAKtE,EAAAA,GAAcuE,KACf,OAAOC,EAAAA,GAAAA,IAAmB,CAAC9N,KAAM9M,EAAKwC,OAE1C,KAAK4T,EAAAA,GAAcyE,KACf,OAAOC,EAAAA,GAAAA,IAAkB,CAACC,KAAM/a,EAAKwC,KAAMwY,SAAUhb,EAAKgb,WAE9D,KAAK5E,EAAAA,GAAc6E,QACf,OAAOC,EAAAA,GAAAA,IAAgBlb,EAAKwC,MAEhC,QACI,OAEZ,CAGgB2Y,CAAYnb,GACxB,OAAQiZ,GAGJnT,EAAAA,EAAAA,MAAC3C,EAAAA,SAAc,CAAAT,SAAA,CAAC,oBACM,KAClBV,EAAAA,EAAAA,KAACoX,GAAAA,EAAI,CAACgC,QAAM,EAACnC,IAAKA,EAAKoC,wBAAsB,EAAA3Y,SACxC1C,aAAI,EAAJA,EAAMwC,UALf,mBASR,CCYA,IAAMhE,IAAQC,EAAAA,EAAAA,GAAG,kBAOX6c,GAAG,SAAA7U,IAAAC,EAAAA,EAAAA,GAAA4U,EAAA7U,GAAA,IAAAE,GAAAC,EAAAA,EAAAA,GAAA0U,GAAA,SAAAA,IAAA,IAAAhL,GAAAzJ,EAAAA,EAAAA,GAAA,KAAAyU,GAAA,QAAA/K,EAAA1R,UAAAC,OAAA8W,EAAA,IAAAnF,MAAAF,GAAAG,EAAA,EAAAA,EAAAH,EAAAG,IAAAkF,EAAAlF,GAAA7R,UAAA6R,GA0bJ,OA1bIJ,EAAA3J,EAAAgK,KAAA7J,MAAAH,EAAA,OAAAxG,OAAAyV,KAgHLhF,MAAQ,CACJM,WAAY,CAAC,GAChBZ,EAuJDiL,4BAA8B,SAACrK,GAC3B,IAAO0B,EAActC,EAAKvO,MAAnB6Q,WACPtC,EAAKU,SAAS,CAACE,WAAAA,GAAa0B,EAChC,EAACtC,EAEDkL,uBAAyB,WACrB,IAAO7Q,EAAe2F,EAAKvO,MAApB4I,YACP2F,EAAKU,SAAS,CAACE,WAAY,CAAC,GAAIvG,EACpC,EAAC2F,EAoKDmL,qBAAmBrY,EAAAA,EAAAA,GAAAC,IAAAA,MAAG,SAAAC,IAAA,IAAA2D,EAAAwU,EAAAtI,EAAAhC,EAAArE,EAAA4O,EAAA5F,EAAAjX,UAAA,OAAAwE,IAAAA,MAAA,SAAAE,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OACoC,OADpCwD,EACwCqJ,EAAKvO,MAAxD0Z,EAAmBxU,EAAnBwU,oBAAqBtI,EAAWlM,EAAXkM,YAAahC,EAAOlK,EAAPkK,QAASrE,EAAI7F,EAAJ6F,KAAIvJ,EAAAE,KAAA,EACpCgY,EAAmB3U,WAAC,EAADgP,GAAU,KAAD,EAArC,OAAH4F,EAAGnY,EAAAI,KAAAJ,EAAAE,KAAA,EACH0P,EAAY,CAACrG,KAAAA,EAAMqE,QAAAA,IAAU,KAAD,SAAA5N,EAAAM,OAAA,SAC3B6X,GAAG,wBAAAnY,EAAAO,OAAA,GAAAR,EAAA,KACbgN,CAAC,CA5UD,OA4UAvJ,EAAAA,EAAAA,GAAAuU,EAAA,EAAAtU,IAAA,oBAAAvG,MAtUD,WACI,IAAAuH,EAAqCd,KAAKnF,MAAnC+K,EAAI9E,EAAJ8E,KAAMqE,EAAOnJ,EAAPmJ,QAASgC,EAAWnL,EAAXmL,YAElBrG,GACAqG,EAAY,CAACrG,KAAAA,EAAMqE,QAAAA,GAE3B,GAAC,CAAAnK,IAAA,qBAAAvG,MAED,SAAmB8M,GACf,IAAAgE,EAAqCrK,KAAKnF,MAAnC+K,EAAIyE,EAAJzE,KAAMqE,EAAOI,EAAPJ,QAASgC,EAAW5B,EAAX4B,YAClB5F,EAAUT,OAASA,GACnBqG,EAAY,CAACrG,KAAAA,EAAMqE,QAAAA,GAE3B,GAAC,CAAAnK,IAAA,sBAAAvG,MAED,WAEmC,IAD/Bkb,GAC8B9c,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAJ,CAAC,GAD3B8c,aAEMC,EAAkB1U,KAAKqU,4BAC7BM,EAA0C3U,KAAKnF,MAAxCoP,EAAO0K,EAAP1K,QAAStH,EAAsBgS,EAAtBhS,uBAChB,MAAO,CACHiS,OAAQ,CACJtZ,KAAM,GACNwL,MAAO,QACP9L,UAAW1D,GAAM,aAAc,CAAC4C,KAAM,WACtCyM,OAAM,SAAA3M,GAAS,IAAP4M,EAAG5M,EAAH4M,IACExI,EAAW,aAAcwI,EAAMA,EAAIxI,cAAWvG,EACpD,YAAoBA,IAAbuG,EAAyB,MAC5BtD,EAAAA,EAAAA,KAACoD,GAAAA,EAAY,CACTG,QAAM,EACND,SAAUA,EACVE,eAAgB,WACZqE,EAAuBiE,EAAI6D,SAAS,GACxC,EACAhM,GAAG,cAGf,EACA4E,MAAO,IAEXoH,SAAU,CACNnP,KAAM,WACNwL,MAAO,OACP9L,UAAW1D,GAAM,aAAc,CAAC4C,KAAM,aACtCyM,OAAM,SAAA1M,GAAS,IAAP2M,EAAG3M,EAAH2M,IACwDiO,EAArB1T,EAAAA,GAAUmG,YAA1CwN,wBAAAA,OAAuB,IAAAD,EAAG,CAAC,EAACA,EAE5BE,EAAiBnO,EAAjBmO,cAEDC,EAAQ,UAAWpO,EAAMA,EAAIoO,WAAQnd,EAC3C,OACI+G,EAAAA,EAAAA,MAACwQ,EAAAA,EAAI,CAACpU,UAAW1D,GAAM,UAAW,CAAC0d,MAAO5Q,OAAO4Q,KAAUC,MAAI,EAAC5F,IAAK,EAAE7T,SAAA,CAClE+I,QAAQkQ,KACL3Z,EAAAA,EAAAA,KAACoa,EAAAA,EAAO,CACJla,UAAW1D,GAAM,YAAa,CAAC6d,QAASvO,EAAI4D,YAC5ClK,SAASxF,EAAAA,EAAAA,KAACyY,GAAkB,CAACza,KAAMic,IAAkBvZ,UAErDV,EAAAA,EAAAA,KAACkE,EAAAA,EAAI,CACDhE,UAAW1D,GAAM,kBACjBwB,KAAMsc,GACNjW,KAAM,QAIlBrE,EAAAA,EAAAA,KAACsU,EAAAA,EAAI,CAACiG,MAAI,EAACJ,MAAI,EAAC5F,IAAK,EAAE7T,SAClB4Y,EAAIkB,kBAAkB1O,KAE1BzD,OAAOoS,KAAKT,GAAyBpc,KAAI,SAACoH,EAAKzE,GAC5C,IAAMma,EAAWV,EAAwBhV,GACzC,OACIhF,EAAAA,EAAAA,KAACmB,EAAAA,SAAc,CAAAT,SACVga,EAASC,WAAW7O,IADJvL,EAI7B,MAGZ,GAEJqP,YAAa,CACTpP,KAAM,cACNwL,MAAO,OACP9L,UAAW1D,GAAM,aAAc,CAAC4C,KAAM,gBACtCyM,OAAM,SAAArM,GAAS,IAADob,EAAN9O,EAAGtM,EAAHsM,IACEsJ,EAAwB,SAAftJ,EAAIsJ,OAAoB,OAAS,QAC1C9P,EAAmB,SAAX8P,EAAoB,SAAW,UAE7C,OACItR,EAAAA,EAAAA,MAAA,OAAK5D,UAAW1D,GAAM,cAAe,CAAC4C,KAAM0M,EAAIsJ,SAAS1U,SAAA,EACrDV,EAAAA,EAAAA,KAACwQ,GAAAA,EAAK,CAACtQ,UAAW1D,GAAM,gBAAiB8I,MAAOA,EAAM5E,SACjD0U,KAELpV,EAAAA,EAAAA,KAAC8X,GAAc,CACX3J,MAAsB,QAAjByM,EAAE9O,EAAI8D,mBAAW,IAAAgL,OAAA,EAAfA,EAAiBhd,IAAI8H,EAAAA,EAAOC,OAAO8P,UAC1CuC,YAAa,aAAclM,MAI3C,GAEJ+O,iBAAkB,CACdra,KAAM,mBACNqL,OAAM,SAAApM,GAAS,IACckS,EADlBlS,EAAHqM,IACG+O,iBACP,YAAgB9d,IAAT4U,EACDjM,EAAAA,EAAOC,OAAOC,UACdsG,EAAAA,EAAAA,IAAWxG,EAAAA,EAAOC,OAAsB,cAAEgM,GACpD,EACA3F,MAAO,OACP9L,UAAW1D,GAAM,aAAc,CAAC4C,KAAM,sBAE1CyG,QAAS,CACLrF,KAAM,UACNoL,OAAQ,GACRI,MAAO,QACP9L,UAAW1D,GAAM,aAAc,CAAC4C,KAAM,YACtCyM,OAAM,SAAAjM,GAAS,IAAPkM,EAAGlM,EAAHkM,IACExI,EAAW,aAAcwI,EAAMA,EAAIxI,cAAWvG,EAC9C+d,EAAczU,EAAAA,GAAU0U,gCAC9B,YAAoBhe,IAAbuG,EACD,UACgBvG,IAAhB+d,IACI9a,EAAAA,EAAAA,KAAC8a,EAAW,CACRzc,KAAMyN,EACNqD,QAASA,EACT6L,SAAUpB,GAG5B,GAEJqB,aAAc,CACVza,KAAM,OACNwL,MAAO,OACP9L,UAAW1D,GAAM,aAAc,CAAC4C,KAAM,iBACtCyM,OAAM,SAAAhM,GAAS,IAAPiM,EAAGjM,EAAHiM,IACJ,OAAOpG,EAAAA,EAAOC,OAAiB,SAAEmG,EAAI1M,KACzC,GAEJmK,QAAS,CACL/I,KAAM,kBACNwL,MAAO,OACP9L,UAAW1D,GAAM,aAAc,CAAC4C,KAAM,YACtCyM,OAAM,SAAAqP,GAAS,IAAPpP,EAAGoP,EAAHpP,IACJ,OAAO9L,EAAAA,EAAAA,KAAC8X,GAAc,CAAC3J,MAAOrC,EAAIvC,QAASyO,YAAa,aAAclM,GAC1E,GAGZ,GAAC,CAAA9G,IAAA,sBAAAvG,MAYD,SAA4DpB,GACxD,IACoBF,EAKhBE,EALAC,eACa6d,EAIb9d,EAJAI,YACa2d,EAGb/d,EAHAE,YACY8d,EAEZhe,EAFAG,WACW8d,EACXje,EADAke,UAEJ,OAAO/e,GAAM,MAAO,CAChBW,aAAcA,GAAgBme,EAC9BH,UAAAA,EACAC,UAAAA,EACAC,SAAAA,GAER,GAAC,CAAArW,IAAA,kBAAAvG,MAED,WAAmB,IAAD+c,EAAA,KACdC,EAAkDvW,KAAKnF,MAAhD2b,EAAYD,EAAZC,aAAcC,EAAiBF,EAAjBE,kBAAmBxW,EAAMsW,EAANtW,OAClCyW,EAAgB,CAAC,WAAY,eAAgB,WAAqBhe,KACpE,SAAC4C,GAAI,OAAKgb,EAAKK,oBAAiC,CAAClC,cAAc,IAAOnZ,EAAK,IAE/E,OACIkb,IACI1b,EAAAA,EAAAA,KAAC8M,EAAAA,EAAa,CAAApM,UACVoD,EAAAA,EAAAA,MAAA,OAAK5D,UAAW1D,GAAM,aAAakE,SAAA,EAC/BoD,EAAAA,EAAAA,MAAA,OAAK5D,UAAU,4CAA2CQ,SAAA,CAAC,gBAEvDV,EAAAA,EAAAA,KAAC+D,EAAAA,EAAM,CAAC7D,UAAW1D,GAAM,wBAAwBkE,SAAC,yDAItDV,EAAAA,EAAAA,KAACgN,EAAAA,GAAiB,CACdC,QAAQ,gBACRE,SAASnN,EAAAA,EAAAA,KAAC0V,GAAgB,IAC1BxI,aAAa,UACb1H,SACIxF,EAAAA,EAAAA,KAACyN,EAAAA,GAAW,CACRzP,KAAM2d,EACNxW,OAAQA,EACRuI,YAAY,+BACZnE,QAASqS,EACTtW,MAAO,gBACPwW,aAAc5W,KAAK6W,oBACnBpO,SAAU,CACNC,UAAU,EACVC,gBAAgB,WASpD,GAAC,CAAA7I,IAAA,0BAAAvG,MAED,WAA2B,IAADud,EAAA,KACtBC,EAUI/W,KAAKnF,MATLiU,EAAOiI,EAAPjI,QACA7O,EAAM8W,EAAN9W,OACA6K,EAAOiM,EAAPjM,QACAkM,EAAeD,EAAfC,gBACAC,EAAkBF,EAAlBE,mBACAhN,EAAO8M,EAAP9M,QACAhE,EAAa8Q,EAAb9Q,cACAxD,EAAgBsU,EAAhBtU,iBACA0D,EAA4B4Q,EAA5B5Q,6BAEE+Q,EAAapI,IAAYS,EAAAA,GAAQC,2BAEvC2H,EAA4DD,EACtDD,EACAD,EAFC/N,EAAKkO,EAALlO,MAAOmO,EAAaD,EAAbC,cAAeC,EAAaF,EAAbE,cAAe5C,EAAY0C,EAAZ1C,aAGtC6C,EAAeJ,EAAU,GAAAje,QAAAQ,EAAAA,EAAAA,GACnB2d,EAAgB,CAAC,eAA0B,IAAI,CAAC,YACrD,CAAC,eAEFV,EAA8C,GAAAzd,QAAAQ,EAAAA,EAAAA,GAExC4d,EAAgB,CAAC,UAAqB,IAAI,CAC9C,aAAU5d,EAAAA,EAAAA,GACP6d,GAAY,CACf,mBACA,YAEN5e,KAAI,SAAC4C,GAAI,OAAKwb,EAAKH,oBAAoC,CAAClC,aAAAA,IAAenZ,EAAK,IAE9E,OACIR,EAAAA,EAAAA,KAAC8M,EAAAA,EAAa,CAAApM,UACVoD,EAAAA,EAAAA,MAAA,OAAK5D,UAAW1D,GAAM,sBAAsBkE,SAAA,EACxCV,EAAAA,EAAAA,KAAA,OAAKE,UAAU,4CAA2CQ,SACrD0b,EAAa,8BAAgC,wBAElDpc,EAAAA,EAAAA,KAACgN,EAAAA,GAAiB,CACdC,QAAQ,gBACRC,aAAa,UACbC,SACInN,EAAAA,EAAAA,KAACkW,GAAwB,CAEjBlC,QAAAA,EACA7E,QAAAA,EACAhE,cAAAA,EACAxD,iBAAAA,EACA0D,6BAAAA,IAIZ7F,SACIxF,EAAAA,EAAAA,KAACyN,EAAAA,GAAW,CACRC,YACIsG,IAAYS,EAAAA,GAAQC,2BACd,4CACA,sCAEV1W,KAAMmQ,EACN6B,QAASA,EACT7K,OAAQA,EACRoE,QAASqS,EACTtW,MAAO,gBACPwW,aAAc5W,KAAK6W,oBACnBpO,SAAU,CACNC,UAAU,EACVC,gBAAgB,WAQhD,GAAC,CAAA7I,IAAA,qBAAAvG,MAED,WACI,IAAAge,EAYIvX,KAAKnF,MAXLoF,EAAMsX,EAANtX,OACA0F,EAAY4R,EAAZ5R,aACAsE,EAAOsN,EAAPtN,QACArE,EAAI2R,EAAJ3R,KACAqG,EAAWsL,EAAXtL,YACAnG,EAAOyR,EAAPzR,QACA0R,EAAQD,EAARC,SACA/U,EAAgB8U,EAAhB9U,iBACAwD,EAAasR,EAAbtR,cACAC,EAAqBqR,EAArBrR,sBACAC,EAA4BoR,EAA5BpR,6BAEEtL,EAAQ,CACV+K,KAAAA,EACAC,cAAe,kBAAMoG,EAAY,CAACrG,KAAAA,EAAMqE,QAAAA,GAAS,EACjDtE,aAAAA,EACAG,QAAAA,EACAE,UAAW7E,EAAAA,GAAUmG,YAAYmQ,4BAA4B,CAACD,SAAAA,IAC9D/U,iBAAAA,EACAwD,cAAAA,EACAC,sBAAAA,EACAC,6BAAAA,GAEJ,OAAOuR,EAAAA,GAAAA,OAAuBzN,IAAYiF,EAAAA,GAAcuE,MACpD3Y,EAAAA,EAAAA,KAAC4K,GAAYrM,EAAAA,EAAAA,GAAA,CAAC4G,OAAQA,GAAYpF,IAClC,IACR,GAAC,CAAAiF,IAAA,gBAAAvG,MASD,WACI,IAAAoe,EA6BI3X,KAAKnF,MA5BL+c,EAAqBD,EAArBC,sBACA1a,EAAOya,EAAPza,QACAyO,EAAYgM,EAAZhM,aACAC,EAA6B+L,EAA7B/L,8BACAhG,EAAI+R,EAAJ/R,KACAqE,EAAO0N,EAAP1N,QACAwB,EAAOkM,EAAPlM,QACAoM,EAA2BF,EAA3BE,4BACAC,EAAwBH,EAAxBG,yBACAC,EAA8BJ,EAA9BI,+BACAzN,EAAmBqN,EAAnBrN,oBACA0N,EAA4BL,EAA5BK,6BACAC,EAAsBN,EAAtBM,uBACAhM,EAAW0L,EAAX1L,YACAnB,EAAO6M,EAAP7M,QACA7K,EAAM0X,EAAN1X,OACA7E,EAAKuc,EAALvc,MACA8E,EAASyX,EAATzX,UACA2L,EAAQ8L,EAAR9L,SACAE,EAAa4L,EAAb5L,cACAD,EAAW6L,EAAX7L,YACAoM,EAAwBP,EAAxBO,yBACAC,EAA6BR,EAA7BQ,8BACAC,EAA8BT,EAA9BS,+BACAtS,EAAO6R,EAAP7R,QACAH,EAAYgS,EAAZhS,aACAmJ,EAAO6I,EAAP7I,QACArM,EAAgBkV,EAAhBlV,iBAEGuH,EAAchK,KAAK0J,MAAnBM,WAEDqO,EAAa9T,QAAQuK,GACrBoI,EAAapI,IAAYS,EAAAA,GAAQC,2BAEvC,OACI5Q,EAAAA,EAAAA,MAAC0Z,EAAAA,SAAQ,CAAA9c,SAAA,EACLoD,EAAAA,EAAAA,MAACwQ,EAAAA,EAAI,CAACpU,UAAW1D,GAAM,UAAW,CAAC,cAAe+gB,IAAa7c,SAAA,CAC1D6c,IACGvd,EAAAA,EAAAA,KAACsU,EAAAA,EAAI,CAACiG,MAAI,EAAA7Z,UACNV,EAAAA,EAAAA,KAAC2X,GAAc,CAAM3D,QAAAA,EAASrM,iBAAAA,MAGrCxC,IACGnF,EAAAA,EAAAA,KAAC2T,GAAU,CACP3I,QAASA,EACT9K,UAAW1D,GAAM,eACjBsO,KAAMA,EACNqE,QAASA,EACTwB,QAASA,EACTkD,mBAAoBmJ,EACpB/I,wBAAyB8I,EACzB7I,yBAA0B+I,EAC1B9L,YAAaA,EACbnB,QAASA,EACT1P,MAAOA,EACP8E,UAAWA,EACX4N,YAAa8J,EACbjM,aAAcA,EACdC,8BAA+BA,EAC/BC,SAAUA,EACVE,cAAeA,EACfD,YAAaA,EACbK,UAAW+L,EACXjJ,eAAgBkJ,EAChBjM,gBAAiBkM,EACjBzS,aAAcA,EACdmJ,QAASA,OAIpB9O,KAAKuY,aAELrB,EAAalX,KAAKwY,qBAAuBxY,KAAKyY,kBAC9CzY,KAAK0Y,2BAEN5d,EAAAA,EAAAA,KAACqO,GAAqB,CAClBc,QAASA,EACTrE,KAAMA,EAEN1I,QAASA,EACTgN,aAAcF,EACdvG,YAAazD,KAAKsU,uBAClBhK,oBAAqBA,EACrBC,YAAayN,EACb7N,kBAAmBnK,KAAKuU,oBACxBnZ,MAAO6c,GAPFjO,aAAU,EAAVA,EAAYlK,OAWjC,GAAC,CAAAA,IAAA,aAAAvG,MAED,WACI,IAAAof,EAMI3Y,KAAKnF,MALLoP,EAAO0O,EAAP1O,QACA2N,EAAqBe,EAArBf,sBACAjM,EAAYgN,EAAZhN,aACAC,EAA6B+M,EAA7B/M,8BACAgE,EAAe+I,EAAf/I,gBAEJgJ,EACIzX,EAAAA,GAAU6L,4BAA4B/C,GADnCiD,EAAkB0L,EAAlB1L,mBAAoBoB,EAAesK,EAAftK,gBAAiBjB,EAAwBuL,EAAxBvL,yBAG5C,SAASwL,EAAcvd,EAAcnC,EAA+B2f,GAChE,IAAMvf,GAAQwf,EAAAA,EAAAA,IAAU5f,GACxB,MAAO,CACHmC,KAAAA,EACA/B,MAAOuf,GAAUvf,EAAQA,EACzBwY,IAAK,kBAAqB5Y,GAAmBA,aAAZtB,EAAYsB,EAAM6f,QAE3D,CAEA,IAAMC,EAAsC9d,IAAS,CACjDmT,GAAmBuK,EAAc,cAAejB,GAAuB,IACvEF,EAAAA,GAAAA,OACIxK,GACA2L,EAAc,gBAAiBlN,IACnC+L,EAAAA,GAAAA,OACIrK,GACAwL,EAAc,uBAAwBjN,GAA+B,KAG7EsN,EACIlZ,KAAKnF,MADFmc,EAAekC,EAAflC,gBAAiBC,EAAkBiC,EAAlBjC,mBAAoBR,EAAiByC,EAAjBzC,kBAAmB9Q,EAAYuT,EAAZvT,aAAcmJ,EAAOoK,EAAPpK,QAGvEqK,EACFrK,IAAYS,EAAAA,GAAQC,2BACd,CACI,CAAClU,KAAM,gBAAiB/B,MAAOoM,EAAa/N,QAC5C,CAAC0D,KAAM,qBAAsB/B,MAAO0d,EAAmBmC,QAE3D,CACI,CAAC9d,KAAM,eAAgB/B,MAAOkd,EAAkB7e,QAChD,CAAC0D,KAAM,qBAAsB/B,MAAOyd,EAAgBoC,QAG5Df,EAAa9T,QAAQuK,GAC3B,OACIlQ,EAAAA,EAAAA,MAACwQ,EAAAA,EAAI,CAACpU,UAAW1D,GAAM,QAAS2d,MAAI,EAAC9E,WAAW,SAAQ3U,SAAA,EACpDV,EAAAA,EAAAA,KAAC4W,GAAc,CACX1W,UAAW1D,GAAM,aACjBqa,WAAW,gBACX9B,OAAQ,CAACoJ,EAAUE,GAAU9e,QAAO,SAAAgf,GAAQ,OAAAA,EAANzhB,OAAqB,CAAC,MAE/DkX,IAAYS,EAAAA,GAAQC,6BACjB1U,EAAAA,EAAAA,KAAC6U,GAAa,CACV3U,UAAW1D,GAAM,YAAa,CAAC,gBAAiB+gB,IAChDzI,gBAAiBA,MAKrC,GAAC,CAAA9P,IAAA,SAAAvG,MAED,WACI,IAAA+f,EAAqCtZ,KAAKnF,MAAnCiQ,EAAOwO,EAAPxO,QAAS7K,EAAMqZ,EAANrZ,OAAQjF,EAASse,EAATte,UAClBue,EAAiBzO,IAAY7K,EAEnC,OACInF,EAAAA,EAAAA,KAAC8M,EAAAA,EAAa,CAAApM,UACVV,EAAAA,EAAAA,KAACwE,GAAAA,GAAejG,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GAAK2G,KAAKnF,OAAK,IAAAW,UAC3BV,EAAAA,EAAAA,KAAA,OAAKE,UAAW1D,GAAM,CAACwT,QAASyO,GAAiBve,GAAWQ,SACvD+d,GAAiBze,EAAAA,EAAAA,KAAC4S,EAAAA,EAAM,IAAM1N,KAAKwZ,sBAKxD,IAAC,EAAA1Z,IAAA,oBAAAvG,MAhjBD,SAAyBpB,GAErB,GADmBA,EAAZshB,SACO,CAAC,IAADC,EACH9W,GAAP7F,EAAAA,EAAAA,GAAkB5E,EAAKsS,SAAQ,GAAjB,GACdkP,EAAyB,QAAzBD,EAAevhB,EAAKyhB,aAAK,IAAAF,EAAAA,EAAI,GAAtBxf,GAAwB6C,EAAAA,EAAAA,GAAA4c,EAAA,GAApB,GACX,OACI7e,EAAAA,EAAAA,KAACoG,GAAAA,EAAW,CACR5F,KAAMsH,EACN1I,KAAe,UAATA,EAAmB,QAAU,OACnCuf,UAAQ,EACRI,UAAQ,GAGpB,CAEA,GAAyB,SAArB1hB,EAAK2hB,YAAwB,CAC7B,IAAOC,EAAc5hB,EAAd4hB,WACDC,EAAW7hB,EAAKsS,SAAS,GAC/B,OAAO3P,EAAAA,EAAAA,KAACoG,GAAAA,EAAW,CAAC6Q,IAAKgI,EAAYze,KAAM0e,EAAoBH,UAAQ,GAC3E,CAEA,GAAyB,QAArB1hB,EAAK2hB,YAAuB,CAAC,IAADG,EACtBC,EAAQ/hB,EAAKsS,SAAS,GACrBnP,GAAoB,QAA3B2e,EAAe9hB,EAAKgiB,eAAO,IAAAF,EAAAA,EAAI,CAAC,GAAzB3e,KAEDhC,EAAI,GAAAL,OAAMqC,EAAI,MAAArC,OAAKihB,EAAK,KAC9B,OACItb,EAAAA,EAAAA,MAAA,OAAK5D,UAAW1D,GAAM,oBAAoBkE,SAAA,EACtCV,EAAAA,EAAAA,KAACoG,GAAAA,EAAW,CAAC6Q,IAAK5Z,EAAK4hB,WAAYze,KAAMhC,EAAMY,KAAK,MAAM2f,UAAQ,KAClE/e,EAAAA,EAAAA,KAACwQ,GAAAA,EAAK,CAAChS,KAAK,UAGxB,CAEA,IAAA8gB,EAA2BjiB,EAAKkiB,WAAa,CAAC,EAAvC/e,EAAI8e,EAAJ9e,KAAMyW,EAAGqI,EAAHrI,IAAKtX,EAAK2f,EAAL3f,MACX6f,EAAcniB,EAAdmiB,WACP,OACIxf,EAAAA,EAAAA,KAACyf,GAAAA,EAAO,CACJja,QACI7F,IACImE,EAAAA,EAAAA,MAAC3C,EAAAA,SAAc,CAAAT,SAAA,CAAC,aACDf,GACXK,EAAAA,EAAAA,KAAA,QAAME,UAAW1D,GAAM,kBAAkBkE,UACrCV,EAAAA,EAAAA,KAAC0f,EAAAA,EAAe,CAAClhB,KAAI,aAAAL,OAAewB,GAAS0E,KAAK,WAIjE3D,UAEDV,EAAAA,EAAAA,KAACoG,GAAAA,EAAW,CACR5F,KAAMA,QAAAA,EAAQb,EACdsX,IAAKA,EACL7X,KAAK,QACLugB,UAAWH,EACXT,UAAQ,KAIxB,KAACzF,CAAA,CA9GI,CAAStY,EAAAA,WAAZsY,GACKsC,aAAe,CAClBzN,MAAO,CACHuB,UAAW,CACPnF,QAAS,GACTyB,MAAO,UAEX2D,SAAU,CACN3D,MAAO,QAEX4D,YAAa,CACT5D,MAAO,QAEXzC,QAAS,CACLgB,QAAS,kBACTyB,MAAO,QAEX6O,iBAAkB,CACd7O,MAAO,QAEXnG,QAAS,CACL0E,QAAS,GACTyB,MAAO,SAEX4T,aAAc,CACV5T,MAAO,QAEX6T,eAAgB,CACZ7T,MAAO,QAEX+E,SAAU,CACN/E,MAAO,QAEXiP,aAAc,CACVjP,MAAO,OACPzB,QAAS,SAGjBuV,KAAM,CACFC,cAAe,CACX5R,MAAO,CAAC,YAAa,WAAY,cAAe,mBAAoB,YAExE5E,QAAS,CACL4E,MAAO,CAAC,YAAa,WAAY,YAErC6R,UAAW,CACP7R,MAAO,CAAC,YAAa,WAAY,eAAgB,cAyjBjE,UAAeuC,EAAAA,GAAAA,GAAY4I,IClpB3B,IAAM9c,IAAQC,EAAAA,EAAAA,GAAG,kBAQF,SAASqe,GAAY/a,GAChC,IAAO1B,EAAkB0B,EAAlB1B,KAAM2c,EAAYjb,EAAZib,SACNtL,EAAarR,EAAbqR,UAEDuQ,EAAe9e,EAAAA,aAAkB,WACnC6Z,SAAAA,EAAW3c,EACf,GAAG,CAAC2c,EAAU3c,IAEd,OACI2B,EAAAA,EAAAA,KAACmB,EAAAA,SAAc,CAAAT,UACTgP,QAA0B3S,IAAbie,IACXhb,EAAAA,EAAAA,KAAC+D,EAAAA,EAAM,CAAC7D,UAAW1D,GAAM,UAAWyH,QAAS,kBAAMgc,GAAc,EAACvf,UAC9DV,EAAAA,EAAAA,KAACkE,EAAAA,EAAI,CAACyI,QAAQ,iBAKlC,C,mGCiHA,SAASuT,GAAWC,EAAwBC,EAA8BC,GACtE,IAAOC,EAAyCH,EAAzCG,mBAAoBC,EAAqBJ,EAArBI,kBAEvBpP,EAKAiP,EALAjP,YACAsI,EAIA2G,EAJA3G,oBACAuD,EAGAoD,EAHApD,yBACAI,EAEAgD,EAFAhD,yBACGoD,GAAiBxZ,EAAAA,EAAAA,GACpBoZ,EAAanZ,IACjB,OAAA1I,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACO8hB,GACAF,GACAK,GAAiB,IACpBrP,YAAa,SAACsP,GACV,OAAOtP,GAAW5S,EAAAA,EAAAA,GAAC,CAAC,EAAGkiB,GAAS,CAACH,mBAAAA,GAAqBC,EAC1D,EACA9G,oBAAqB,SAACgH,GAClB,OAAOhH,EAAoBgH,EAAQ,CAACH,mBAAAA,GACxC,EACAtD,yBAA0B,SAACyD,GACvB,OAAOzD,EAAyByD,EAAQ,CAACH,mBAAAA,GAC7C,EACAlD,yBAA0B,SAACqD,GACvB,OAAOrD,EAAyBqD,EAAQ,CAACH,mBAAAA,GAC7C,GAER,CAQA,SAASI,GAAmBvR,GACxB,OAPJ,SAA4BA,GACxB,IAhI4BwR,EAgItBC,GAhIsBD,EAgImBxR,EA/HxC,SAACP,EAAkByR,GACtB,IAAMQ,GAAmBC,EAAAA,EAAAA,IAAmBH,EAAcN,EAASvV,MAE/DqE,EAIA0R,EAJA1R,QACArE,EAGA+V,EAHA/V,KACWwV,EAEXO,EAFAE,UAIER,EAAoB,CACtBS,oBAHAH,EADAG,qBAOJC,EAQIrS,EAAMsS,IAAI/R,GAPVhK,EAAM8b,EAAN9b,OACA6K,EAAOiR,EAAPjR,QACA1P,EAAK2gB,EAAL3gB,MACA8E,EAAS6b,EAAT7b,UACA0X,EAAqBmE,EAArBnE,sBACAjM,EAAYoQ,EAAZpQ,aACAC,EAA6BmQ,EAA7BnQ,8BAGE4K,GAAeyF,EAAAA,EAAAA,IAAgBvS,EAAOO,GACtCwM,GAAoByF,EAAAA,EAAAA,IAA+BxS,EAAOO,GAChEkS,GAA8CC,EAAAA,EAAAA,IAC1C1S,EACAO,GAFG+M,EAAemF,EAAfnF,gBAAiBC,EAAkBkF,EAAlBlF,mBAIlBtR,GAAe0W,EAAAA,EAAAA,IAAyB3S,EAAOO,GAC/C2F,GAAkB0M,EAAAA,EAAAA,IAAsB5S,EAAOO,GAE/ChE,GAAgBsW,EAAAA,EAAAA,IAAoB7S,GAEpCmC,GAAW2Q,EAAAA,EAAAA,IAAwB9S,EAAOO,GAC1C8B,GAAgB0Q,EAAAA,EAAAA,IAA6B/S,EAAOO,GACpD6B,GAAc4Q,EAAAA,EAAAA,IAA4BhT,EAAOO,GAEjDuN,GAAWmF,EAAAA,EAAAA,IAAQjT,GAEzB,MAAO,CACH5D,SAAS8W,EAAAA,EAAAA,IAAWlT,GAEpBoB,QAAAA,EACA7K,OAAAA,EACA7E,MAAAA,EACA8E,UAAAA,EAEA0F,KAAAA,EACA4R,SAAAA,EACA/L,SAASoR,EAAAA,EAAAA,IAAkBnT,EAAOO,GAClCA,QAAAA,EACA2N,sBAAAA,EACAjM,aAAAA,EACAC,8BAAAA,EACAjG,aAAAA,EACAqR,gBAAAA,EACAC,mBAAAA,EACAT,aAAAA,EACAC,kBAAAA,EACA5K,SAAAA,EACAE,cAAAA,EACAD,YAAAA,EAEA8D,gBAAAA,EACAiI,6BAA6BiF,EAAAA,EAAAA,IAA8BpT,EAAOO,GAClE9D,8BAA8B4W,EAAAA,EAAAA,IAAyBrT,EAAOO,GAC9DkO,+BAA+B6E,EAAAA,EAAAA,IAA4BtT,EAAOO,GAElEK,qBAAqBA,EAAAA,EAAAA,IAAoBZ,EAAOO,GAChD+N,8BAA8BiF,EAAAA,EAAAA,IAA4BvT,EAAOO,GACjEgO,wBAAwBiF,EAAAA,EAAAA,IAAwBxT,EAAOO,GAEvDhE,cAAAA,EACAC,uBAAuBiX,EAAAA,EAAAA,IAA4BzT,GAEnD0R,mBAAAA,EACAC,kBAAAA,EAEAvM,QAAqB,SAAZ7E,OAAqBpS,GAAYulB,EAAAA,EAAAA,IAAiB1T,GAEnE,GA+CM2T,EA5C+B,CACrCpR,YAAAA,EAAAA,GACA6L,yBAA0BnJ,EAAAA,GAC1BoJ,+BAAgC/I,EAAAA,GAChCkJ,yBAA0B/L,EAAAA,GAC1BiM,+BAAgClM,EAAAA,GAChCqI,oBAAqBpK,EAAAA,GACrB1H,iBAAAA,EACAE,uBAAAA,GAqCA,OAAO2a,EAAAA,EAAAA,IAAQ5B,EAAiB2B,EAAoBrC,GACxD,CAGWuC,CAAmBtT,EAAnBsT,CAA4BnJ,GACvC,CAMO,IAAMoJ,GAAmBhC,GAAmBtM,EAAAA,GAAcuO,uBAEpDC,GAAgBlC,GAAmBtM,EAAAA,GAAcuE,MAEjDkK,GAAenC,GAAmBtM,EAAAA,GAAcyE,MAEhDiK,GAAcpC,GAAmBtM,EAAAA,GAAc6E,SAE/C8J,GAAYrC,GAAmBtM,EAAAA,GAAc4O,mB,kPCzLpDxmB,GAAQC,EAAAA,EAAAA,GAAG,2BAiBIwmB,EAAkB,SAAAxe,IAAAC,EAAAA,EAAAA,GAAAue,EAAAxe,GAAA,IAAAE,GAAAC,EAAAA,EAAAA,GAAAqe,GAAA,SAAAA,IAAA,IAAA3U,GAAAzJ,EAAAA,EAAAA,GAAA,KAAAoe,GAAA,QAAA1U,EAAA1R,UAAAC,OAAA0R,EAAA,IAAAC,MAAAF,GAAAG,EAAA,EAAAA,EAAAH,EAAAG,IAAAF,EAAAE,GAAA7R,UAAA6R,GAwBjC,OAxBiCJ,EAAA3J,EAAAgK,KAAA7J,MAAAH,EAAA,OAAAxG,OAAAqQ,KAanCI,MAAe,CAAC,EAACN,EAEjB4U,qBAAuB,SACnBC,EACAC,GAEA,IAAAne,EAA0BqJ,EAAKvO,MAAxBtB,EAAKwG,EAALxG,MAAO8R,EAAQtL,EAARsL,SACdlN,EAAiD5E,GAAS,CAAC,EAAlCmR,EAAWvM,EAA5B8f,GAAiCpc,GAAIC,EAAAA,EAAAA,GAAA3D,EAAA,CAArC8f,GAAcvlB,IAAAylB,EAAAA,IAGtB9S,EADqBX,EAAc7I,GAAIxI,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GAAOwI,GAAI,IAAAjG,EAAAA,EAAAA,GAAA,GAAGqiB,EAAiBC,IAE1E,EAAC9U,CAAC,CAbD,OAaAvJ,EAAAA,EAAAA,GAAAke,EAAA,EAAAje,IAAA,2BAAAvG,MAED,SACI0kB,EACAC,EACA7iB,GACD,IAADib,EAAA,KACExV,EAA2Cd,KAAKnF,MAAzCtB,EAAKuH,EAALvH,MAAOgM,EAAQzE,EAARyE,SAAU6Y,EAAetd,EAAfsd,gBAClBC,EAAe9Y,IAAkD,IAAtC+Y,IAASF,EAAiB/iB,GAE3D,OACIP,EAAAA,EAAAA,KAACqQ,EAAAA,EAAQ,CACLC,QAAS7G,QAAQhL,aAAK,EAALA,EAAQ0kB,IAEzB3d,QAASG,EAAAA,EAAO+Q,cAAcyM,GAC9B5S,SAAU,kBAAMiL,EAAK0H,qBAAqBC,EAAgBC,EAAiB,EAC3E3Y,SAAU8Y,EACVrjB,UAAW1D,EAAM,SAJZ2mB,EAOjB,GAAC,CAAAne,IAAA,gBAAAvG,MAED,SAAcglB,GAAuC,IAADzH,EAAA,KAChD,OAAOld,IAAK2kB,GAAS,SAACpmB,EAAMkD,GACxB,IAAMC,EAAOyiB,EAAmBS,cAAcrmB,GAC9C,OACI2C,EAAAA,EAAAA,KAACmB,EAAAA,SAAc,CAAAT,SACVsb,EAAK2H,yBAAyBnjB,EAAMnD,EAAMkD,IAD1BA,EAI7B,GACJ,GAAC,CAAAyE,IAAA,SAAAvG,MAED,WACI,IAAA8Q,EAAyBrK,KAAKnF,MAAvB0jB,EAAOlU,EAAPkU,QAASnjB,EAAKiP,EAALjP,MAEhB,OACIwD,EAAAA,EAAAA,MAAA,OAAK5D,UAAW1D,IAAQkE,SAAA,CACnBwE,KAAK0e,cAAcH,GACnBnjB,IAASN,EAAAA,EAAAA,KAAA,OAAKE,UAAW1D,EAAM,iBAAiBkE,SAAEJ,MAG/D,IAAC,EAAA0E,IAAA,gBAAAvG,MAjED,SAAqBolB,GACjB,OAAOA,EAAOzX,KAAK,IACvB,GAEA,CAAApH,IAAA,UAAAvG,MAIA,SAAeA,GACX,OAAOqlB,IAASrlB,EACpB,KAACwkB,CAAA,CAXkC,CAASjiB,EAAAA,WAA3BiiB,EAMVc,kBAAmB,EANTd,EAQVe,gBAAkB,iBAAO,CAAC,CAAC,C,6RCfhCxnB,GAAQC,EAAAA,EAAAA,GAAG,2BAEXwnB,EAAmB,WAiDnBC,EAAoD,CACtDC,sBAAuB,OAGrBC,EAAgB,IAAIlc,IAAmC,CAAC,cAAe,oBA2Q7E,SAAeuI,EAAAA,EAAAA,IAAQC,EAAAA,EAAvB,EAzQA,SAA4B3Q,GAAe,IAADskB,EAElCrQ,EAeAjU,EAfAiU,QACA5R,EAcArC,EAdAqC,QACAwO,EAaA7Q,EAbA6Q,WACAjI,EAYA5I,EAZA4I,YACAzI,EAWAH,EAXAG,UACAokB,EAUAvkB,EAVAukB,gBACAxZ,EASA/K,EATA+K,KACAqE,EAQApP,EARAoP,QACA0E,EAOA9T,EAPA8T,mBACAK,EAMAnU,EANAmU,yBACA5T,EAKAP,EALAO,MACA0K,EAIAjL,EAJAiL,QACAH,EAGA9K,EAHA8K,aACA0Z,EAEAxkB,EAFAwkB,YAIExa,GAAUwH,EAAAA,EAAAA,cAAY,WACxB5I,IACAuL,EAAyB,CAAC/E,QAAAA,GAC9B,GAAG,CAACxG,EAAauL,EAA0B/E,IAE3CkE,EAIIhN,EAAAA,GAAUmG,YAHVgY,EAAwBnR,EAAxBmR,yBAAwBzK,EAAA1G,EACxB2G,wBAAAA,OAAuB,IAAAD,EAAG,CAAC,EAACA,EAC5BxG,EAAYF,EAAZE,aAGEvJ,GAAQuH,EAAAA,EAAAA,cACV,SAACtH,GACG,IAAME,GAAM5L,EAAAA,EAAAA,GAAA,GAAO0L,EAAKjC,WAAWmC,QAC7Bsa,EAA2C,CAAC,EAOlD,OANApc,OAAOoS,KAAKT,GAAyB0K,SAAQ,SAACC,GAC1C,IAAM3f,EAAG,GAAA7G,OAAM8lB,GAAgB9lB,OAAGwmB,GAClCF,EAAgBE,GAAKlb,QAAQU,EAAOnF,WAE7BmF,EAAOnF,EAClB,IACO6O,EAAmB,CACtB1J,QAAM5L,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GAAM4L,GAAM,IAAEsa,gBAAAA,IACpBtV,QAAAA,GAER,GACA,CAAC0E,EAAoB1E,IAGnByV,EAAc,WAAAzmB,OAAkC,QAAlCkmB,EAAcH,EAAY/U,UAAQ,IAAAkV,EAAAA,EAAIlV,GAC1D2O,EACIzX,EAAAA,GAAU6L,4BAA4B/C,GADnC0V,EAAoB/G,EAApB+G,qBAAsBC,EAAuBhH,EAAvBgH,wBAG7B/iB,EAAwDZ,EAAAA,cAEtDpE,GAAUiF,GAAAC,EAAAA,EAAAA,GAAAF,EAAA,GAFLgjB,EAAoB/iB,EAAA,GAAEgjB,EAAuBhjB,EAAA,GAI9CijB,GAAS1T,EAAAA,EAAAA,cAAWnQ,EAAAA,EAAAA,GAAAC,IAAAA,MAAC,SAAAC,IAAA,IAAA7C,EAAA,OAAA4C,IAAAA,MAAA,SAAAE,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,cAAAF,EAAAC,KAAA,EAAAD,EAAAE,KAAA,EAECqjB,aAAuB,EAAvBA,EAA0B,CAACha,KAAAA,IAAO,KAAD,EAA/CrM,EAAK8C,EAAAI,KACXqjB,EAAwBvmB,GAAO8C,EAAAE,KAAA,gBAAAF,EAAAC,KAAA,EAAAD,EAAAG,GAAAH,EAAA,SAE/ByjB,OAAwBjoB,GAAW,QAEtB,OAFsBwE,EAAAC,KAAA,GAEnCoP,IAAarP,EAAA2jB,OAAA,6BAAA3jB,EAAAO,OAAA,GAAAR,EAAA,wBAElB,CAACwJ,EAAM8F,EAAYkU,IAEhBK,GAAoBhW,IAAYiF,EAAAA,GAAc6E,QAE9CwK,GAAUsB,QAAAA,EAAwBF,EAClCjV,GAAcuV,GAuMxB,SAAqC1B,GACjC,OAAKA,GAAWA,EAAQ3mB,OAAS,EACtB,CAAC,GAGZgE,EAAAA,EAAAA,GAAA,GACKmiB,EAAAA,EAAmBS,cAAcD,EAAQ,IAAMA,EAAQ,GAEhE,CA/M4C2B,CAA4B3B,IAAW,KAEzE4B,IAGFhc,EAAAA,EAAAA,UAAQ,WACR,IAAMia,EAAkBnU,IAAYiF,EAAAA,GAAc6E,QAAU,CAAC,QAAKlc,EAClE,MAAO,CACHiO,QAAS,CACL5L,KAAM,QACNmL,QAAS,UACT9J,OAAQ,CACJP,UAAW1D,EAAM,aAGzBsO,KAAM,CACF1L,KAAM,OACNmL,QAASqa,EACTnkB,OAAQ,CACJgK,UAAWnK,IAGnBsP,YAAa,CACTxQ,KAAM,cACNmL,QAAS,cACTD,UAAU,EACVK,SACI3K,EAAAA,EAAAA,KAAAqM,EAAAA,SAAA,CAAA3L,UACK4kB,EAAAA,EAAAA,KACGC,EAAAA,EAAAA,IAASlf,EAAAA,GAAUmf,SAAS,mBAAoB,qBAChD,uBAIZ/kB,OAAQ,CACJgjB,QAASA,GACTH,gBAAAA,IAGRmC,YAAa,CACTrmB,KAAM,cACNmL,QAAS,eACTD,UAAU,GAEdob,gBAAiB,CACbtmB,KAAM,mBACNmL,QAAS,oBACTD,UAAU,EACV7J,OAAQ,CACJoK,aAAAA,IAGR8E,SAAU,CACNvQ,KAAM,eACNmL,QAAS,WACTD,UAAU,EACV7J,OAAQ,CACJ+J,YAAa,0CACbmb,aAAc,CAAC,QAAS,SAAU,SAG1CC,SAAU,CACNxmB,KAAM,cACNmL,QAAS,YAEbsb,cAAe,CACXzmB,KAAM,QACNc,UAAW1D,EAAM,yBACjBiE,OAAQ,CACJC,UACIoD,EAAAA,EAAAA,MAAC3C,EAAAA,SAAc,CAAAT,SAAA,EACXV,EAAAA,EAAAA,KAAA,OAAKE,UAAW,mBAAmBQ,SAAC,aACpCV,EAAAA,EAAAA,KAAA,OAAKE,UAAW1D,EAAM,kBAAkBkE,SAAC,kKASzDoR,QAAS,CACL1S,KAAM,WACNc,UAAW1D,EAAM,mBAErBqe,iBAAkB,CACdzb,KAAM,mBACNmL,QAAS,mBACT9J,OAAQ,CACJ0N,MAAOrP,IAAKgnB,EAAAA,IAAwB,SAACrnB,GAAK,MAAM,CAC5CA,MAAOA,EACPD,KAAMkH,EAAAA,EAAOC,OAAsB,cAAElH,GACxC,IACDsnB,WAAW,EACXC,YAAY,EACZC,KAAM,QAGdxB,gBAAiB,CACbrlB,KAAM,QACNmL,QAAS,mBACT9J,OAAQ,CAACC,SAAU,oBAG/B,GAAG,CAAC+iB,GAASmB,EAAgBtkB,EAAO6O,IAE9BiN,GAAapI,IAAYS,EAAAA,GAAQC,2BAEjC1C,IAAe3I,EAAAA,EAAAA,UAAQ,WACzB,IAAI6c,GAAc,EACZxM,EAAM8K,EAAyB2B,QACjC,SAACC,EAAKC,GAEF,OADmBjK,GAAuB,gBAAViK,EAA2BjC,EAAchc,IAAIie,MAK/D,oBAAVA,IACAH,EAAaE,EAAItpB,QAGrBspB,EAAI1oB,MAAIa,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAC,CAAC,EACH8mB,GAAgBgB,IAAM,IACzB7lB,KAAM6lB,MATCD,CAaf,GACA,IAGJ,IAAoB,IAAhBF,EAAmB,CACnB,IAAMI,EAAoBje,OAAOoS,KAAKT,QAAAA,EAA2B,IAAIpc,KAAI,SAACoH,GACtE,IAAM0V,EAAWV,EAAwBhV,GACzC,MAAO,CACH5F,KAAM,UACNmL,QAAS7E,EAAAA,EAAOC,OAAO+Q,cAAcgE,aAAQ,EAARA,EAAU3c,OAC/CyC,KAAK,GAADrC,OAAK8lB,GAAgB9lB,OAAG6G,GAC5B2F,QAAS+P,EAAS6L,KAClBC,aAAc9L,EAAS8L,aAE/B,IACA9M,EAAI+M,OAAM3hB,MAAV4U,EAAG,CAAQwM,EAAY,GAAC/nB,QAAAQ,EAAAA,EAAAA,GAAK2nB,IACjC,CACA,OAAO5M,CACX,GAAG,CAAC2L,GAAiBb,EAA0BpI,KAE/Cpd,GAAoEuU,QAAAA,EAAgB,CAAC,EAACmT,GAAA1nB,GAA/E2nB,QAAAA,QAAO,IAAAD,GAAG,WAAUA,GAAAE,GAAA5nB,GAAE6nB,eACvB9oB,GAAQqe,QAD6B,IAAAwK,GAAG,mBAAkBA,GACpBD,GAE5C,OAAQlD,UAAAA,GAAS3mB,QACbkD,EAAAA,EAAAA,KAAC8M,EAAAA,EAAa,CAAApM,UACVoD,EAAAA,EAAAA,MAAA,OAAK5D,UAAW1D,EAAM,KAAM0D,GAAWQ,SAAA,EACnCV,EAAAA,EAAAA,KAAC+D,EAAAA,GAAMxF,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,CAAC2B,UAAWokB,EAAiBtgB,KAAK,UAAaugB,GAAW,IAAEtgB,QAASghB,EAAOvkB,SAC9E3C,OAGLiC,EAAAA,EAAAA,KAACiB,EAAAA,GAAU,CACPyI,qBAAmB,EACnBK,QAASA,EACT7J,UAAW1D,EAAM,SACjB4F,QAASqH,QAAQrH,GACjB4H,MAAOA,EACPJ,YAAa,CACT7L,MAAAA,IAEJqL,cAAe,CACX0B,KAAAA,EACA8E,YAAAA,GACA5E,QAAAA,EACA6P,iBAAkBiL,EAAAA,GAAuBgB,wBAE7CC,SAAU,SAAC5c,GACP,IACM6c,EAGF,CACArX,cAAU5S,GAQd,OAbiBoN,EAAOwF,SAQV7S,SAEVkqB,EAAgBrX,SADK,4CAIlBqX,CACX,EACA3c,OAAM,GAAAlM,QAAAQ,EAAAA,EAAAA,GAAMqT,KAAYrT,EAAAA,EAAAA,IAAKwB,EAAAA,EAAAA,GAAgB,CAACG,aAtCpC,IA2C9B,G,+HCxUe,SAASoQ,EAAwC1P,GAAoC,IAADimB,EACzFC,GAAYD,EAAA,SAAAE,IAAAziB,EAAAA,EAAAA,GAAA0iB,EAAAD,GAAA,IAAAxiB,GAAAC,EAAAA,EAAAA,GAAAwiB,GAAA,SAAAA,IAAA,IAAA9Y,GAAAzJ,EAAAA,EAAAA,GAAA,KAAAuiB,GAAA,QAAA7Y,EAAA1R,UAAAC,OAAA0R,EAAA,IAAAC,MAAAF,GAAAG,EAAA,EAAAA,EAAAH,EAAAG,IAAAF,EAAAE,GAAA7R,UAAA6R,GAeqE,OAfrEJ,EAAA3J,EAAAgK,KAAA7J,MAAAH,EAAA,OAAAxG,OAAAqQ,KAWdI,MAAQ,CAACxM,QAASkM,EAAKvO,MAAMqC,SAAQkM,EAErCsC,WAAa,kBAAMtC,EAAKU,SAAS,CAAC5M,SAAS,GAAO,EAADkM,EACjD3F,YAAc,kBAAM2F,EAAKU,SAAS,CAAC5M,SAAS,GAAQ,EAADkM,EACnD+Y,cAAgB,kBAAM/Y,EAAKU,UAAS,SAACC,GAAS,MAAM,CAAC7M,SAAU6M,EAAU7M,QAAQ,GAAG,EAADkM,CAAC,CAcnF,OAdkFvJ,EAAAA,EAAAA,GAAAqiB,EAAA,EAAApiB,IAAA,SAAAvG,MAEnF,WACI,IAAO2D,EAAW8C,KAAK0J,MAAhBxM,QAEP,OACIpC,EAAAA,EAAAA,KAACgB,GAASzC,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACF2G,KAAKnF,OAAK,IACdqC,QAASA,EACTwO,WAAY1L,KAAK0L,WACjBjI,YAAazD,KAAKyD,YAClB0e,cAAeniB,KAAKmiB,gBAGhC,KAACD,CAAA,CA7Ba,CAA6BjmB,EAAAA,WAAe8lB,EAKnDK,aAAe,CAClBllB,SAAS,GACZ6kB,EAEMM,YAAW,eAAAppB,QAAkBqpB,EAAAA,EAAAA,IAAexmB,GAAU,KAAAimB,GAsBjE,OAAOC,CACX,C,mCCjDO,IAAMO,EAAkB,CAC3BC,eAAgB,iBAEhBC,SAAU,YAEVC,mBAAoB,qBAEpBC,4BAA6B,8BAC7BC,wBAAyB,0BACzBC,wBAAyB,0BACzBC,4BAA6B,+BAC7BC,oCAAqC,sCACrCC,gCAAiC,kCACjCC,iCAAkC,mCAClCC,+BAAgC,iCAChCC,mCAAoC,qCAEpCC,mBAAoB,qBACpBC,0BAA2B,4BAC3BC,0BAA2B,4BAC3BC,0BAA2B,4BAC3BC,+BAAgC,iCAChCC,qBAAsB,uBACtBC,sBAAuB,wBACvBC,uBAAwB,yBACxBC,6BAA8B,+BAE9BC,gBAAiB,mBAEjBC,UAAW,YACXC,sBAAuB,wBACvBC,yBAA0B,2BAC1BC,4BAA6B,8BAC7BC,yBAA0B,2BAC1BC,sBAAuB,wBACvBC,8BAA+B,gCAC/BC,wBAAyB,0BACzBC,mBAAoB,qBAEpBC,WAAY,cACZC,oBAAqB,sBACrBC,mBAAoB,qBACpBC,mBAAoB,qBACpBC,eAAgB,iBAEhBC,eAAgB,iB,2RCRdC,EAAyB,SAC3BjV,EACA3F,GAEA,IAAO6a,EAAmB3jB,EAAAA,GAAU6L,4BAA4B/C,GAAzD6a,gBACP,OAAOlrB,IAAKgW,GAAiB,SAACzX,EAAMkD,GAChC,MAAO,CACHnB,KAAM4qB,EAAgBzpB,GACtB6U,OAAQ/X,EAAK+X,OAErB,GACJ,EAAE,SAIa6U,EAAyBC,EAAAC,EAAAC,GAAA,OAAAC,EAAAvlB,MAAC,KAADjI,UAAA,UAAAwtB,IAuBvC,OAvBuCA,GAAAjpB,EAAAA,EAAAA,GAAAC,IAAAA,MAAxC,SAAAuB,EACIuM,EACAmb,EACAtR,GAAiB,IAAAuR,EAAA,OAAAlpB,IAAAA,MAAA,SAAAmpB,GAAA,cAAAA,EAAAhpB,KAAAgpB,EAAA/oB,MAAA,OAAA+oB,EAAA9oB,GAETyN,EAAOqb,EAAA/oB,KAAA+oB,EAAA9oB,KACN0S,EAAAA,GAAcuO,uBAAqB6H,EAAA9oB,KACnC0S,EAAAA,GAAcC,kBAAgBmW,EAAA9oB,KAC9B0S,EAAAA,GAAcuE,KAFqB,EAEjB6R,EAAA9oB,KAElB0S,EAAAA,GAAc6E,QAAO,EAAAuR,EAAA9oB,KAErB0S,EAAAA,GAAcyE,KAAI,EAAA2R,EAAA9oB,KAMlB0S,EAAAA,GAAc4O,mBAAkB,yBAAAwH,EAAA3oB,OAAA,SAT1ByoB,GAAU,cAAAE,EAAA3oB,OAAA,2BAAA1D,OAEQmsB,IAAU,cAAAE,EAAA/oB,KAAA,EAEJgpB,EAAAA,GAAUC,IAAIC,EAAAA,GAAQC,uBAAwB,CACzE9f,KAAK,+CAAD3M,OAAiD6a,EAAQ,WAAA7a,OAAUmsB,EAAU,gBAClF,KAAD,EAFoB,OAAhBC,EAAgBC,EAAA7oB,KAAA6oB,EAAA3oB,OAAA,6BAAA1D,OAGK6a,GAAQ7a,OAAGosB,IAAQ,cAAAC,EAAA3oB,OAAA,sCAAA1D,OAGVmsB,IAAU,cAGhD,IAAInkB,MAAM,yCAAyC,KAAD,oBAAAqkB,EAAA1oB,OAAA,GAAAc,EAAA,MAC3DkC,MAAA,KAAAjI,UAAA,CAEM,SAASsU,EAAW9N,GAIR,IAHdyH,EAAIzH,EAAJyH,KAAMqE,EAAO9L,EAAP8L,QACNmR,GADazjB,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAC0B,CAAC,GAAxCyjB,mBACDxS,EAAuCjR,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAACmkB,yBAAqBjkB,GAEhE,sBAAAmC,GAAAkC,EAAAA,EAAAA,GAAAC,IAAAA,MAAO,SAAAC,EAAOyG,EAAUC,GAAQ,IAAA4G,EAAAic,EAAAC,EAAAC,EAAA/f,EAAAgO,EAAAgR,EAAAhJ,EAAAgK,EAAAC,EAAA,OAAA5pB,IAAAA,MAAA,SAAAE,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,OAUF,OATpBmN,EAAQ5G,IAAU6iB,EACMjc,EAAMsc,OAA7BJ,EAAKD,EAALC,MAAKC,EAAAF,EAAE7f,QAAAA,OAAO,IAAA+f,EAAG,GAAEA,EAE1BhjB,EAAS,CAAC3I,KAAM+rB,EAAAA,GAAUC,QAASjc,QAAAA,IAE7B6J,EACF7J,IAAYiF,EAAAA,GAAcyE,KAAOyH,IAAsB+K,EAAAA,EAAAA,IAAQzc,QAAS7R,EACrEitB,EAAmB3jB,EAAAA,GAAU6L,4BAA4B/C,GAAzD6a,gBAEAhJ,EAAuBlT,EAAvBkT,oBAAmBzf,EAAAC,KAAA,EAAAD,EAAAE,KAAA,EAGewoB,EAA0B9a,EAASrE,EAAMkO,GAAU,KAAD,EAA3D,GAAtBgS,EAAsBzpB,EAAAI,MACOqf,EAAmB,CAAAzf,EAAAE,KAAA,gBAAAF,EAAAE,KAAA,GAC1CwoB,EAA0B9a,EAAS6R,EAAqBhI,GAAS,QAAAzX,EAAAG,GAAAH,EAAAI,KAAAJ,EAAAE,KAAA,iBAAAF,EAAAG,GACvEspB,EAAuB,KAAD,GAFI,OAA1BC,EAA0B1pB,EAAAG,GAAAH,EAAAE,KAAA,GAInBgK,QAAQhI,IAAI,EACrB6nB,EAAAA,EAAAA,IAAO,CACHtgB,QAAAA,EACAF,KAAAA,EACA4N,KAAMvJ,EACN6J,SAAAA,EACAuS,QAASP,KAEbQ,EAAAA,EAAAA,IAAuBP,EAA4BH,EAAOd,IAC1DyB,EAAAA,EAAAA,IAAe,CACXzgB,QAAAA,EACAF,KAAAA,EACA4N,KAAMvJ,EACN6J,SAAAA,EACAuS,QAASP,MAEdte,MAAK,SAAAvN,GAA0C,IAADK,GAAAyC,EAAAA,EAAAA,GAAA9C,EAAA,GAAvC+hB,EAAG1hB,EAAA,GAAEsV,EAAetV,EAAA,GAAEwR,EAAWxR,EAAA,GACvCuI,EAAS,CACL3I,KAAM+rB,EAAAA,GAAUO,QAChB1tB,KAAM,CACF8M,KAAAA,EACA6F,QAASK,EAAYL,QACrBI,SAAUC,EAAYD,SACtB4F,kBAAmBuK,EAAItR,YACvB/E,aAAcqW,EAAIyK,cAClB3a,YAAaA,EAAYA,YACzB8D,gBAAiBiV,EAAuBjV,EAAiB3F,GACzD8B,cAAeD,EAAYC,cAC3B6L,sBAAuB9L,EAAY8L,sBACnCjM,aAAcG,EAAYH,aAC1BC,8BAA+BE,EAAYF,+BAE/C3B,QAAAA,GAER,IAAG,KAAD,UAAA5N,EAAAM,OAAA,SAAAN,EAAAI,MAAA,QAAAJ,EAAAC,KAAA,GAAAD,EAAAqqB,GAAArqB,EAAA,SAEFwG,EAAS,CACL3I,KAAM+rB,EAAAA,GAAUU,QAChB7tB,KAAM,CACFsC,MAAKiB,EAAAqqB,IAETzc,QAAAA,IACD,yBAAA5N,EAAAO,OAAA,GAAAR,EAAA,mBAEV,gBAAAwqB,EAAAC,GAAA,OAAA7sB,EAAA4F,MAAA,KAAAjI,UAAA,EA9DD,EA+DJ,CAEO,SAASwS,EAAiB5P,GAQC,IAN1B6P,EAAO7P,EAAP6P,QACAH,EAAO1P,EAAP0P,QACArE,EAAIrL,EAAJqL,KACAsE,EAAY3P,EAAZ2P,aAEHkR,GAFezjB,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAEwB,CAAC,GAAxCyjB,mBAED,sBAAAzgB,GAAAuB,EAAAA,EAAAA,GAAAC,IAAAA,MAAO,SAAAgB,EAAO0F,EAAUC,GAAQ,IAAAgkB,EAAAhhB,EAAA4D,EAAAoK,EAAAiT,EAAA,OAAA5qB,IAAAA,MAAA,SAAAiB,GAAA,cAAAA,EAAAd,KAAAc,EAAAb,MAAA,OAWyD,OAXzDuqB,EACLhkB,IAAWkjB,OAA3BlgB,QAAAA,OAAO,IAAAghB,EAAG,GAAEA,EACbpd,EAAQ5G,IAEdD,EAAS,CACL3I,KAAM8sB,EAAAA,GAAkBd,QACxBptB,KAAMsR,EACNH,QAAAA,IAGE6J,EACF7J,IAAYiF,EAAAA,GAAcyE,KAAOyH,IAAsB+K,EAAAA,EAAAA,IAAQzc,QAAS7R,EAASuF,EAAAd,KAAA,EAAAc,EAAAb,KAAA,EAG7CwoB,EAA0B9a,EAASrE,EAAMkO,GAAU,KAAD,EAA3D,OAArBiT,EAAqB3pB,EAAAX,KAAAW,EAAAb,KAAA,GAEd4E,EAAAA,GAAUmG,YAClB2f,WAAW,CACRhd,QAAAA,EACAnE,QAAAA,EACAsE,QAAAA,EACAxE,KAAAA,EACAygB,QAASU,EACT7c,aAAAA,IAEH1C,MAAK,WACF3E,EAAS,CACL3I,KAAM8sB,EAAAA,GAAkBR,QACxB1tB,KAAMsR,EACNH,QAAAA,GAER,IAAG,KAAD,UAAA7M,EAAAT,OAAA,SAAAS,EAAAX,MAAA,WAAAW,EAAAd,KAAA,GAAAc,EAAAZ,GAAAY,EAAA,WAEF8pB,EAAAA,EAAAA,GAAW9pB,EAAAZ,IAAQ,CAADY,EAAAb,KAAA,SACqC,OAAvDsG,EAAS,CAAC3I,KAAM8sB,EAAAA,GAAkBG,UAAWld,QAAAA,IAAU7M,EAAAT,OAAA,cAChD9E,GAAS,QAMb,OAJHgL,EAAS,CACL3I,KAAM8sB,EAAAA,GAAkBL,QACxB7tB,KAAIsE,EAAAZ,GACJyN,QAAAA,IACD7M,EAAAT,OAAA,SACI4J,QAAQ6gB,OAAMhqB,EAAAZ,KAAO,yBAAAY,EAAAR,OAAA,GAAAO,EAAA,mBAGvC,gBAAAkqB,EAAAC,GAAA,OAAA3sB,EAAAiF,MAAA,KAAAjI,UAAA,EA7CD,EA8CJ,CAEA,SAAS4vB,EAAmBC,GACxB,GAAKA,EAIL,OAAOC,KAAKC,OAAOF,EAAKG,UAAYC,KAAKC,OAAS,KAAO,GAAK,IAClE,CAeO,SAASlZ,EAAkBqH,GAGf,IAFd/Q,EAAM+Q,EAAN/Q,OAAQgF,EAAO+L,EAAP/L,QACRmR,GADezjB,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GACwB,CAAC,GAAxCyjB,mBAED,sBAAA/B,GAAAnd,EAAAA,EAAAA,GAAAC,IAAAA,MAAO,SAAAoB,EAAOsF,EAAUC,GAAQ,IAAA4G,EAAAoe,EAAAhiB,EAAAqI,EAAA0G,EAAAC,EAAAiT,EAAAtwB,EAAAuwB,EAAArS,EAAA4J,EAAAiB,EAAAD,EAAA0H,EAAAC,EAAAC,EAAArU,EAAAsU,EAAAC,EAAA,OAAAlsB,IAAAA,MAAA,SAAAwB,GAAA,cAAAA,EAAArB,KAAAqB,EAAApB,MAAA,OACtBmN,EAAQ5G,IAAUglB,EAGpBpe,EADAsc,OAASlgB,QAAAA,OAAO,IAAAgiB,EAAG,GAAEA,EAGzBjlB,EAAS,CACL3I,KAAMouB,EAAAA,GAAmBpC,QACzBjc,QAAAA,IACDkE,EAEoChN,EAAAA,GAAUmG,YAAWuN,EAAA1G,EAArD2G,wBAAAA,OAAuB,IAAAD,EAAG,CAAC,EAACA,EAE7BkT,EAAYR,EAAmBtiB,EAAOyb,UACtCjpB,EAAqB,GACrBuwB,EAAwB,GACvBrS,EAAmE1Q,EAAnE0Q,iBAAkB4J,EAAiDta,EAAjDsa,gBAAiBiB,EAAgCvb,EAAhCub,gBAAiBD,EAAetb,EAAfsb,YAAW0H,GAAAM,EAAAA,EAAAA,GACnDtjB,EAAOwF,UAAQ9M,EAAArB,KAAA,EAAA6rB,EAAAhsB,IAAAA,MAAA,SAAAgsB,IAAA,IAAAhwB,EAAAyK,EAAA4lB,EAAAC,EAAA,OAAAtsB,IAAAA,MAAA,SAAAqB,GAAA,cAAAA,EAAAlB,KAAAkB,EAAAjB,MAAA,OAAvBpE,EAAI+vB,EAAA3uB,MACLqJ,GAAU8lB,EAAAA,EAAAA,IAAkBvwB,GAC5BqwB,GAAUnvB,EAAAA,EAAAA,GAAA,CACZuJ,QAAAA,EACA+lB,mBAAoBZ,GAChBpS,EAAmB,CAACA,iBAAAA,GAAoB,CAAC,GAEjDxS,OAAOylB,QAAQ9T,GAAyB0K,SAAQ,SAAA7F,GAAsB,IAADkP,GAAA9rB,EAAAA,EAAAA,GAAA4c,EAAA,GAAnB7Z,EAAG+oB,EAAA,GAAErT,EAAQqT,EAAA,GAC3DrT,SAAAA,EAAUsT,qBAAqBN,EAAYjJ,aAAe,EAAfA,EAAkBzf,GACjE,KACM2oB,EAAqBM,IAASnvB,IAAKqL,EAAOyF,eACzB9S,QACnBowB,EAAsBxvB,MAAIa,EAAAA,EAAAA,GAAC,CACvBqR,YAAa+d,GACVD,IAGPjI,SAAAA,EAAa3oB,QACbowB,EAAsBxvB,MAAIa,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAC,CAAC,EACrB2uB,EAAsBA,EAAsBpwB,OAAS,IACrD4wB,GAAU,IACbnkB,QAASkc,EACT7V,YAAa,CAAC,WAGtBxS,IAAS+M,EAAOyF,aAAa,SAACA,GAC1BjT,EAAMe,MAAIa,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAC,CAAC,GACL2vB,EAAAA,EAAAA,IAAyB,CAACte,YAAAA,KAC1B8d,GAEX,IACIhI,GACA/oB,EAAMe,MAAIa,EAAAA,EAAAA,GAAC,CACP4vB,UAAW,cACXC,gBAAiB1I,GACdgI,IAEV,wBAAAhrB,EAAAZ,OAAA,GAAAurB,EAAA,IAAAF,EAAAkB,IAAA,YAAAjB,EAAAD,EAAAmB,KAAAC,KAAA,CAAA1rB,EAAApB,KAAA,gBAAAoB,EAAA2rB,cAAAnB,IAAA,iBAAAxqB,EAAApB,KAAA,iBAAAoB,EAAApB,KAAA,iBAAAoB,EAAArB,KAAA,GAAAqB,EAAA+oB,GAAA/oB,EAAA,SAAAsqB,EAAA3lB,EAAA3E,EAAA+oB,IAAA,eAAA/oB,EAAArB,KAAA,GAAA2rB,EAAAsB,IAAA5rB,EAAAqiB,OAAA,YAIgF,OAD/ElM,EACF7J,IAAYiF,EAAAA,GAAcyE,KAAOyH,IAAsB+K,EAAAA,EAAAA,IAAQzc,QAAS7R,EAAS8F,EAAArB,KAAA,GAAAqB,EAAApB,KAAA,GAG5CwoB,EACjC9a,EACAhF,EAAOW,KACPkO,GACF,KAAD,GAJ2B,OAAtBuU,EAAsB1qB,EAAAlB,KAAAkB,EAAAhB,OAAA,SAOrBwE,EAAAA,GAAUmG,YACZqH,mBAAmB,CAChB7I,QAAAA,EACAF,KAAMX,EAAOW,KACbygB,QAASgC,EACT5wB,MAAAA,EACA+xB,cAAexB,EAAsBtvB,IAAIswB,EAAAA,IACzCpc,QAAuB,QAAhBwb,EAAEnjB,EAAO2H,eAAO,IAAAwb,EAAAA,EAAI,GAC3B5U,KAAMvJ,EACN6J,SAAAA,IAEHtM,MAAK,WACF3E,EAAS,CACL3I,KAAMouB,EAAAA,GAAmB9B,QACzBvc,QAAAA,GAER,KAAE,WAAAtM,EAAArB,KAAA,GAAAqB,EAAA8rB,GAAA9rB,EAAA,YAEFupB,EAAAA,EAAAA,GAAWvpB,EAAA8rB,IAAQ,CAAD9rB,EAAApB,KAAA,SACsC,OAAxDsG,EAAS,CAAC3I,KAAMouB,EAAAA,GAAmBnB,UAAWld,QAAAA,IAAUtM,EAAAhB,OAAA,cACjD9E,GAAS,QAMb,OAJHgL,EAAS,CACL3I,KAAMouB,EAAAA,GAAmB3B,QACzB7tB,KAAI6E,EAAA8rB,GACJxf,QAAAA,IACDtM,EAAAhB,OAAA,SACI4J,QAAQ6gB,OAAMzpB,EAAA8rB,KAAO,yBAAA9rB,EAAAf,OAAA,GAAAW,EAAA,iCAGvC,gBAAAmsB,EAAAC,GAAA,OAAAtQ,EAAAzZ,MAAA,KAAAjI,UAAA,EAlGD,EAmGJ,CAEO,SAASqX,EAAwB4a,GAAyB,IAAvB3f,EAAO2f,EAAP3f,QACtC,MAAO,CAAC/P,KAAMouB,EAAAA,GAAmBnB,UAAWld,QAAAA,EAChD,CAYO,SAASkC,EAASiO,GAcN,IAZXxU,EAAIwU,EAAJxU,KACAX,EAAMmV,EAANnV,OACAwG,EAAO2O,EAAP3O,QACAxB,EAAOmQ,EAAPnQ,QACAwC,EAAI2N,EAAJ3N,KAOH2O,GAPOzjB,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAOgC,CAAC,GAAxCyjB,mBAED,OAAO,SAACvY,EAAUC,GACd,IAAM4G,EAAQ5G,IAGA+mB,EAAV/mB,IADAkjB,OAASlgB,QAAAA,OAAO,IAAA+jB,EAAG,GAAEA,EAGzBhnB,EAAS,CACL3I,KAAM4vB,EAAAA,GAAW5D,QACjBjc,QAAAA,IAGJ,IAAM6J,EACF7J,IAAYiF,EAAAA,GAAcyE,KAAOyH,IAAsB+K,EAAAA,EAAAA,IAAQzc,QAAS7R,EAC5E,OAAOsJ,EAAAA,GAAUmG,YACZ6E,UAAUrG,EAASF,GAAIvM,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACjB4L,GAAM,IACTwG,QAAAA,EACAxB,QAAAA,EACA6J,SAAAA,EACArH,KAAAA,KAEHjF,MAAK,WACF3E,EAAS,CACL3I,KAAM4vB,EAAAA,GAAWtD,QACjBvc,QAAAA,GAER,IAAE,OACK,SAAC7O,GACJ,IAAI8rB,EAAAA,EAAAA,GAAY9rB,GACZ,OAAOyH,EAAS,CAAC3I,KAAM4vB,EAAAA,GAAW3C,UAAWld,QAAAA,IACzC,IAAD8f,EACGjxB,GAAOsC,SAAe,QAAV2uB,EAAL3uB,EAAO4uB,gBAAQ,IAAAD,OAAA,EAAfA,EAAiBjxB,QAAQsC,aAAK,EAALA,EAAO4uB,WAAY5uB,EAMzD,OALAyH,EAAS,CACL3I,KAAM4vB,EAAAA,GAAWnD,QACjB7tB,KAAAA,EACAmR,QAAAA,IAEG1D,QAAQ6gB,OAAOhsB,EAE9B,GACR,CACJ,CAEO,SAAS8Q,EAAe+d,GAAoC,IAAlChgB,EAAOggB,EAAPhgB,QAC7B,MAAO,CAAC/P,KAAM4vB,EAAAA,GAAW3C,UAAWld,QAAAA,EACxC,C,yFC9YO,IAAM2G,EAA4B,SAAClH,GAAgB,OAAKA,EAAMwgB,WAAWpZ,gBAAiB,EACpFG,EAAyB,SAACvH,GAAgB,OAAKA,EAAMwgB,WAAW5Y,aAAc,EAC9EH,EAA6B,SAACzH,GAAgB,OAAKA,EAAMwgB,WAAWzY,iBAAkB,EACtF8K,EAAsB,SAAC7S,GAAgB,OAAKA,EAAMwgB,WAAWjkB,aAAc,EAC3EkX,EAA8B,SAACzT,GAAgB,OACxDA,EAAMwgB,WAAWhkB,qBAAsB,EAC9BjD,EAA+B,SAACyG,GAAgB,OAAKA,EAAMwgB,WAAWnnB,gBAAiB,EACvFqa,EAAmB,SAAC1T,GAAgB,OAAKA,EAAMwgB,WAAWvX,aAAc,C,6fCkBrF,SAASwX,EAAoBlT,GACzB,IAAM5S,EAAUzK,IAAKqd,GAAoB,SAACmT,GAAU,OAAKA,EAAW/lB,OAAO,IAE3E,OAAOlJ,IAASkvB,IAAMtB,IAAS1kB,KAAWimB,MAC9C,CAEA,SAASC,EACLzP,EACA5gB,GAEA,OAAON,IAAKkhB,GAAW,SAAClY,GACpB,IAAM4nB,EAAQ,CACVtwB,KAAAA,EACAuQ,SAAU,CAAC7H,EAAQrJ,OACnBugB,YAA8B,UAAjBlX,EAAQ1I,KAAoB,OAAoB,QAC7DmgB,UACqB,WAAjBzX,EAAQ1I,KACF,CAACoB,KAAMsH,EAAQ6nB,WAAY1Y,IAAKnP,EAAQmP,IAAKtX,WAAO5C,QACpDA,EACVqY,YAAQrY,GAEZ,OAAAwB,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACOuJ,GACA4nB,EAEX,GACJ,CAIO,IAAMlO,EAAwB,SAAC5S,EAAkBO,GAAoB,OACxEP,EAAMsS,IAAI/R,GAAS2F,eAAgB,EACjC8a,EAA0B,SAAChhB,EAAkBO,GAAoB,OACnEP,EAAMsS,IAAI/R,GAASwH,iBAAkB,EAEnCkZ,GAA8CC,EAAAA,EAAAA,IAChD,CAACF,IA8BL,SAA6DzhB,GACzD,IAAMuL,EAA8B,GAWpC,OAVAtc,IAAS+Q,GAAO,SAAC9Q,GACb,IAAOsS,EAAYtS,EAAZsS,SACHA,GAAYA,EAAS7S,OAAS,EAC9BM,IAASuS,GAAU,SAAC7H,EAASvH,GACzBmZ,EAAIhc,MAAIa,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAC,CAAC,EAAGlB,GAAI,IAAEsS,SAAU,CAAC7H,GAAUioB,YAAY,EAAMC,aAAczvB,IAC5E,IAEAmZ,EAAIhc,KAAKL,EAEjB,IACOqc,CACX,IAvCanD,EAAgC,SAACpH,GAC1C,OAAO2gB,EAAAA,EAAAA,IACH,CACIzZ,EAAAA,GACA,SAACzH,GAAK,OAAKihB,EAA4CjhB,EAAOO,EAAQ,IAE1E,SAAC8gB,EAAmB9hB,GAChB,IAAM+hB,EAAmB,IAAIhoB,IACtB8hB,GAAmB3jB,EAAAA,GAAU6L,4BAA4B/C,IAAY,CAAC,GAAtE6a,gBAQP,MAPA,GAAA7rB,QAAAQ,EAAAA,EAAAA,GAAIqrB,IAAerrB,EAAAA,EAAAA,GAAKsxB,IAAmBvL,SAAQ,SAAC4K,GAAU,OAC1DY,EAAiB7qB,IAAIiqB,EAAW,IAEpCnhB,EAAMuW,SAAQ,SAACrnB,GACX,IAAOuS,EAAevS,EAAfuS,YACPA,SAAAA,EAAa8U,SAAQ,SAAC4K,GAAU,OAAKY,EAAiB7qB,IAAIiqB,EAAW,GACzE,IACOa,KAAOxxB,EAAAA,EAAAA,GAAKuxB,IAAmB,SAACZ,GAAU,OAAKA,CAAU,GACpE,GAER,EAsBA,SAASc,EAEP/yB,EAASkC,GAAiB,IAAD8wB,EAChBrR,EAA0B3hB,EAA1B2hB,YAAaO,EAAaliB,EAAbkiB,UACpB,MAAoB,UAAhBP,EACOsR,IAAMjoB,OAAOylB,QAAQvO,QAAAA,EAAa,CAAC,IAAI,SAAAvgB,GAAmB,IAADuxB,EAAArxB,GAAA+C,EAAAA,EAAAA,GAAAjD,EAAA,GAAhBgG,EAAG9F,EAAA,GAAET,EAAKS,EAAA,GAClDsxB,EAA0BlnB,OAAO7K,GAKrC,MAJY,QAARuG,IAC4B,MAAxBwrB,EAAIA,EAAI1zB,OAAS,KAAY0zB,EAAMA,EAAIvb,MAAM,GAAI,IACrDub,EAAMA,EAAIC,MAAM,KAAKC,QAEjB,KAAS,QAARH,EAAKC,SAAG,IAAAD,OAAA,EAAHA,EAAKI,cAAcC,QAAQrxB,GAC7C,KAGI,IADM+J,OAAuB,QAAjB+mB,EAAChzB,EAAKsS,SAAS,UAAE,IAAA0gB,EAAAA,EAAI,IACrBM,cAAcC,QAAQrxB,EAC9C,CAUA,IAaasxB,GAAkCf,EAAAA,EAAAA,IAC3C,CACID,EACA1Z,EAAAA,GACAE,EAAAA,GACAoL,EAAAA,KAEJ,SAACtT,EAAOyH,EAAeqa,EAAmB1mB,GACtC,IAAAunB,EAA6CC,IACzC5iB,GACA,SAAC9Q,GAAI,IAAA2zB,EAAA,QAAkB,QAAbA,EAAC3zB,EAAKkM,eAAO,IAAAynB,GAAZA,EAAcl0B,OAAM,IAClCm0B,GAAAhvB,EAAAA,EAAAA,GAAA6uB,EAAA,GAHM5U,EAAe+U,EAAA,GAKhBC,EALmCD,EAAA,GAKHrzB,KAAI,SAACP,GACvC,OAAAkB,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GAAWlB,GAAI,IAAEkM,QAAS4mB,IAAQ9yB,EAAKkM,UAC3C,IAEM4nB,EAAkBvb,aAAa,EAAbA,EAAewb,oBACjCC,EAAkBF,EAClB,SAAC9zB,GAA0B,OAAK+yB,EAAuB/yB,EAAM8zB,EAAgB,OAC7Ep0B,EAEAu0B,EAAuB,IAAIppB,IAAwB+nB,GACnDsB,EAAsBD,EAAqBjtB,KAC3C,SAAChH,GAA0B,IAAAm0B,EAAA,OAC+B,QAD/BA,EArCN,SAACn0B,EAA0BkC,GAC1D,IAAOqQ,EAAevS,EAAfuS,YACH6hB,EAAa,EACjB,OAAO7hB,aAAW,EAAXA,EAAa8hB,MAAK,SAACjb,GAItB,OAHIlX,EAAO6I,IAAIqO,IACXgb,IAEGA,GAAclyB,EAAO8E,IAChC,GACJ,CA6BkBstB,CAA2Bt0B,EAAMi0B,UAAqB,IAAAE,GAAAA,CAAS,OACnEz0B,EAEA60B,EAAiB,IAAI1pB,IAAIqB,GACzBsoB,EAAkBD,EAAevtB,KACjC,SAAAlF,GAAsC,IAAD2yB,EAAnCvoB,EAAOpK,EAAPoK,QACE,OAA8D,QAA9DuoB,EAAOvoB,aAAO,EAAPA,EAASmoB,MAAK,SAACK,GAAO,OAAKH,EAAexpB,IAAI2pB,EAAQ,WAAC,IAAAD,GAAAA,CAClE,OACA/0B,EAEAi1B,EAAiB3xB,IAAS,CAACgxB,EAAiBE,IAC5CU,EAAoB5xB,IAAS,CAACgxB,EAAiBQ,IACrD,MAAO,CACH3V,gBAAiB8V,EAAel1B,OAC1Bof,EAAgB3c,OAAO2yB,EAAAA,YAAWptB,WAAC,GAADnG,EAAAA,EAAAA,GAAIqzB,KACtC9V,EACNC,mBAAoB8V,EAAkBn1B,OAChCo0B,EAAY3xB,OAAO2yB,EAAAA,YAAWptB,WAAC,GAADnG,EAAAA,EAAAA,GAAIszB,KAClCf,EAEd,IAGS5P,GAAiCwO,EAAAA,EAAAA,IAC1C,CAACe,EAAiC1oB,EAAAA,KAClC,SAAA3I,EAAwCyI,GAAsB,IAA5DiU,EAAe1c,EAAf0c,gBAAiBC,EAAkB3c,EAAlB2c,mBACf,MAAO,CACHD,iBAAe3d,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACR4zB,EAAmBjW,EAAiBjU,IAAiB,IACxDqW,MAAOpC,EAAgBpf,SAE3Bqf,oBAAkB5d,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACX4zB,EAAmBhW,EAAoBlU,IAAiB,IAC3DqW,MAAOnC,EAAmBrf,SAGtC,IAGEs1B,EAAkB,WAUpB,SAAAA,EAAYC,GACR,IAD4CxtB,EAAAA,EAAAA,GAAA,KAAAutB,GAAA,KAThDE,aAAO,OACPxqB,aAAO,OACP4H,eAAS,OAET6iB,eAAiB,IAAIrqB,IAA0B,KAC/CqB,QAAU,IAAIrB,IAAc,KAC5BmqB,WAAK,OACL3xB,SAAW,IAAI+N,MAGP4jB,EAAM1iB,SAAS7S,OAAS,EACxB,MAAM,IAAIqJ,MAAM,uDAADhI,OAC4Ck0B,EAAM1iB,SAASvD,KAAK,OAInFlH,KAAKotB,QAAUE,EAAeH,GAC9BntB,KAAKwK,UAAYjG,QAAQ4oB,EAAM3iB,WAC/BxK,KAAK4C,QAAUuqB,EAAM1iB,SAAS,GAC9BzK,KAAKmtB,OAAK9zB,EAAAA,EAAAA,GAAA,GAAO8zB,GACjBntB,KAAKG,IAAIgtB,EACb,CAuEC,OAvEAttB,EAAAA,EAAAA,GAAAqtB,EAAA,EAAAptB,IAAA,MAAAvG,MAED,SAAIpB,GAA6B,IAADo1B,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAA1kB,EAAA,KACtBgkB,EAAUE,EAAen1B,GAC/B,GAAI6H,KAAKotB,UAAYA,EACjB,MAAM,IAAInsB,MAAM,wDAADhI,OAC6C+G,KAAKotB,QAAO,SAAAn0B,OAAQm0B,IAIpF,GAA6B,IAAzBj1B,EAAKsS,SAAS7S,OACd,MAAM,IAAIqJ,MAAM,oDAADhI,OACyC80B,KAAKC,UAAU71B,KAI3E,IAAM81B,GAAK50B,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GAAOlB,GAAI,IAAEuS,aAAWjR,EAAAA,EAAAA,GAAuB,QAAvB8zB,EAAOp1B,EAAKuS,mBAAW,IAAA6iB,EAAAA,EAAI,MAC9DvtB,KAAKxE,SAAShD,KAAKy1B,GAEF,QAAjBT,EAAAS,EAAMvjB,mBAAW,IAAA8iB,GAAjBA,EAAmBlD,OACF,QAAjBmD,EAAAQ,EAAMvjB,mBAAW,IAAA+iB,GAAjBA,EAAmBjO,SAAQ,SAACjO,GACxBnI,EAAKikB,eAAeltB,IAAIoR,EAC5B,IACY,QAAZmc,EAAAv1B,EAAKkM,eAAO,IAAAqpB,GAAZA,EAAclO,SAAQ,SAACvY,GAAM,OAAKmC,EAAK/E,QAAQlE,IAAI8G,EAAO,KAE1D0mB,EAAA3tB,KAAKmtB,OAAM9W,YAAXsX,EAAWtX,UAAc9R,QAAQpM,EAAKke,aACtCuX,EAAA5tB,KAAKmtB,OAAM/0B,iBAAXw1B,EAAWx1B,eAAmBmM,QAAQpM,EAAKC,kBAC3Cy1B,EAAA7tB,KAAKmtB,OAAM70B,aAAXu1B,EAAWv1B,WAAeiM,QAAQpM,EAAKG,cACvCw1B,EAAA9tB,KAAKmtB,OAAM90B,cAAXy1B,EAAWz1B,YAAgBkM,QAAQpM,EAAKE,aAC5C,GAAC,CAAAyH,IAAA,WAAAvG,MAED,SAAS6E,GAKN,IAADkY,EAAA,KACQ7B,EAAezU,KAAKwK,UAC1B,GAA6B,IAAzBxK,KAAKxE,SAAS5D,OACd,MAAO,CAACqR,MAAOjJ,KAAKxE,SAAUiZ,aAAAA,GAGlC,IAAM0Y,GAA+D9zB,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GAC9D2G,KAAKmtB,OAAK,IACbnY,MAAO,EACP5W,SAAAA,IAEJ+uB,EAAMziB,aAAcjR,EAAAA,EAAAA,GAAIuG,KAAKqtB,gBAAgB/C,OAC7C6C,EAAM9oB,SAAU5K,EAAAA,EAAAA,GAAIuG,KAAKqE,SAASimB,OAElC,IAAIlT,GAAgB,EACdnO,EAAS7K,EACF,CAEH+uB,GAAKl0B,QAAAQ,EAAAA,EAAAA,GACFwxB,IAAQjrB,KAAKxE,SAAU,CAAC,mBAAoB,gBAAgB9C,KAAI,SAACoX,GAEhE,OADAsH,IAAAA,EAA+B,SAAbtH,EAAEI,SACpB7W,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GAAWyW,GAAC,IAAEkF,MAAO,GACzB,MANJ,CAACmY,GAkBP,OATAntB,KAAKxE,SAASgkB,SAAQ,SAAC1P,GACfA,EAAE6F,mBAAqBwX,EAAMxX,mBAC7BwX,EAAMxX,sBAAmB9d,GAExBgW,IAASyI,EAAK6W,MAAMpY,cAAejF,EAAEiF,iBACtCoY,EAAMpY,mBAAgBld,EAE9B,IAEO,CAACoR,MAAAA,EAAOoO,eAAe,EAAMD,cAAAA,EAAe3C,aAAAA,EACvD,KAACyY,CAAA,CA7FmB,GAkGxB,SAASI,EAAen1B,GACpB,IACIqS,EAEArS,EAFAqS,UACW5H,GADF7F,EAAAA,EAAAA,GAET5E,EADAsS,SAAQ,GAAU,GAEtB,MAAM,WAANxR,OAAkB2J,EAAO,eAAA3J,OAAcsL,QAAQiG,GACnD,CAEA,SAASyiB,EACLiB,EACAnrB,GAEA,IAAMorB,EAAiD,CAAC,EAExDD,EAAe1O,SAAQ,SAACrnB,GACpB,IAAMi2B,EAASd,EAAen1B,GACxBk2B,EAAMF,EAAWC,GAClBC,EAGDA,EAAIluB,IAAIhI,GAFRg2B,EAAWC,GAAU,IAAIlB,EAAmB/0B,EAIpD,IAEA,IAAMqc,EAAMrR,OAAO8B,OAAOkpB,GAAYlN,QAClC,SAACC,EAAK/oB,GACF,IAAAm2B,EAA6Cn2B,EAAKo2B,SAC9CxrB,EAAiBG,IAAI/K,EAAKyK,UADvBqG,EAAKqlB,EAALrlB,MAAOoO,EAAaiX,EAAbjX,cAAe5C,EAAY6Z,EAAZ7Z,aAM7B,OAHAyM,EAAIjY,MAAQiY,EAAIjY,MAAMhQ,OAAOgQ,GAC7BiY,EAAI7J,gBAAJ6J,EAAI7J,cAAkBA,GACtB6J,EAAIzM,eAAJyM,EAAIzM,aAAiBA,GACdyM,CACX,GACA,CAACjY,MAAO,KAGZulB,EAA2B3C,IAAWrX,EAAIvL,OAAO,SAAC9Q,GAAI,OAAKA,EAAKqS,SAAS,IAACikB,GAAA1xB,EAAAA,EAAAA,GAAAyxB,EAAA,GAAnEhkB,EAASikB,EAAA,GAAEC,EAAKD,EAAA,GAEvB,OAAAp1B,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GACOmb,GAAG,IACNvL,MAAM,GAADhQ,QAAAQ,EAAAA,EAAAA,GAAM+Q,IAAS/Q,EAAAA,EAAAA,GAAKi1B,KAEjC,EAEsD9D,EAAAA,EAAAA,IAClD,CAACF,GACDiE,GAFG,IAMMtS,GAA2BuO,EAAAA,EAAAA,IACpC,CAH8B,SAAClhB,EAAkBO,GAAoB,OACrEP,EAAMsS,IAAI/R,GAAStE,YAAa,EAEX4W,EAAAA,GAAqBY,EAAAA,KAC1C,SAAClU,EAAOhD,EAAe2oB,GACnB,IAAMlC,EAAiB,IAAI1pB,IAAIiD,GAEzB4oB,EAAkBD,aAAU,EAAVA,EAAYnD,cAC9BqD,EAAa3zB,IAAS,CACxB,SAAChD,GACG,OAAQA,EAAK4B,OACjB,EACA2yB,EAAevtB,KAAO,EAChB,SAAChH,GAAoB,IAAD42B,EAAAC,EAChB,OAA6D,QAA7DD,EAAmB,QAAnBC,EAAO72B,EAAKkM,eAAO,IAAA2qB,OAAA,EAAZA,EAAcxC,MAAK,SAAClxB,GAAI,OAAKoxB,EAAexpB,IAAI5H,EAAK,WAAC,IAAAyzB,GAAAA,CACjE,OACAl3B,EACNg3B,SAAAA,EAAiBj3B,OACX,SAACO,GAAc,IAAAoC,EAAA00B,EAAA,OAC6C,QAD7C10B,GACV,KAAe,QAAd00B,EAAK92B,EAAKmD,YAAI,IAAA2zB,OAAA,EAATA,EAAWxD,cAAcC,QAAQmD,WAAgB,IAAAt0B,GAAAA,CAAS,OACrE1C,IAEJq3B,EAAWr1B,IAAQoP,EAAO+jB,EAAAA,YAAWptB,WAAC,GAADnG,EAAAA,EAAAA,GAAIq1B,KAAap2B,KAAI,SAACP,GAC7D,OAAAkB,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GAAWlB,GAAI,IAAEkM,QAAS4mB,IAAQ9yB,EAAKkM,UAC3C,IACA,OAAO4mB,IAAQiE,EAAU,CAAC,QAC9B,IAGJ,SAASP,EAOP1lB,GACE,IAAMhR,EAA6B,GAC7Bie,EAA0B,GAC1BD,EAA0B,GAC1BpU,EAAqB,GAa3B,OAZA3J,IAAS+Q,GAAO,SAAC9Q,GACb,IAAOI,EAAwDJ,EAAxDI,YAAaF,EAA2CF,EAA3CE,YAAaD,EAA8BD,EAA9BC,eAAgBE,EAAcH,EAAdG,WAC7CF,EACAH,EAAaO,KAAKL,GACXI,EACP0d,EAAUzd,KAAKL,GACRE,GAAeC,EACtB4d,EAAU1d,KAAKL,GAEf0J,EAAKrJ,KAAKL,EAElB,IACM,GAANc,OAAWid,EAAcD,EAAche,EAAiB4J,EAC5D,CAYA,IAAMstB,EAAmB,SAACzlB,EAAkBO,GAAoB,OAC5DP,EAAMsS,IAAI/R,GAAS8B,aAAc,EAC/BqjB,EAAkB,SAAC1lB,EAAkBO,GAAoB,OAAKP,EAAMsS,IAAI/R,GAAS6B,WAAY,EAC7FujB,EAAc,SAAC3lB,EAAkBO,GAAoB,OAAKP,EAAMsS,IAAI/R,GAAS4B,QAAS,EAE/E4Q,GAA+BmO,EAAAA,EAAAA,IAAe,CAACuE,IAAmB,SAACpjB,GAAa,OACzFlS,IAAQkS,GAAe,SAACujB,GAAY,OAAMA,EAAa9kB,SAAS,GAAC,IAExDkS,GAA8BkO,EAAAA,EAAAA,IAAe,CAACwE,IAAkB,SAAC1U,GAAY,OACtF7gB,IAAQ6gB,GAAc,SAAC5O,GAAW,OAAMA,EAAYtB,SAAS,GAAC,IAErDgS,GAA0BoO,EAAAA,EAAAA,IAAe,CAACyE,IAAc,SAACE,GAAQ,OAC1E11B,IAAQ01B,GAAU,SAACC,GAAO,OAAMA,EAAQhlB,SAAS,GAAC,IAGhDilB,GAAkB7E,EAAAA,EAAAA,IACpB,CAACuE,EAAkBC,EAAiBC,IACpC,SAACtjB,EAAe2O,EAAc6U,GAC1B,MAAM,GAANt2B,QAAAQ,EAAAA,EAAAA,GACO8wB,EAAiBxe,EAAe,mBAAgBtS,EAAAA,EAAAA,GAChD8wB,EAAiB7P,EAAc,iBAAcjhB,EAAAA,EAAAA,GAC7C8wB,EAAiBgF,EAAU,YAEtC,IAGStT,IAAkB2O,EAAAA,EAAAA,IAAe,CAAC6E,IAAkB,SAACxmB,GAAK,OAAKA,EAAMrR,OAAS,CAAC,IAE/E83B,IAAuB9E,EAAAA,EAAAA,IAChC,CAAC6E,EAAiB7e,EAAAA,KAvUtB,SAEE3H,EAAiByH,GACf,IAAKA,EAAe,OAAOzH,EAC3B,IAAMgjB,EAAkBvb,EAAc+a,cACtC,OAAO5xB,IAAQoP,GAAO,SAAC9Q,GAAI,OAAK+yB,EAAuB/yB,EAAM8zB,EAAgB,GACjF,IAqUa/P,IAAiC0O,EAAAA,EAAAA,IAC1C,CAAC8E,KA5CL,SACIzmB,GAMA,OAJYgiB,IAAQhiB,EAAO,CACvB,SAAC9Q,GAAI,OAAMA,EAAKqS,SAAS,EACzB,SAACrS,GAAI,OAAMA,EAAKsS,UAAYtS,EAAKsS,SAAS,KAAO,CAAI,GAG7D,IA0CaklB,KAFe/E,EAAAA,EAAAA,IAAe,CAAC6E,GAAkBd,IAEhB/D,EAAAA,EAAAA,IAC1C,CAACF,IACD,SAACjZ,GACG,IAAMme,EAAsB/1B,IACxB4X,GACA,SAAC2Y,GAAU,IAAAyF,EAAA,MAA2B,UAAtBzF,EAAWla,SAAwC,QAAlB2f,EAAAzF,EAAW/lB,eAAO,IAAAwrB,OAAA,EAAlBA,EAAoBj4B,QAAU,CAAC,IAGpF,OAAOgC,IAAKg2B,GAAqB,SAACz3B,GAC9B,IAAM23B,GAAgBz2B,EAAAA,EAAAA,GAAA,GAAOlB,GAE7B,OADA23B,EAAI51B,KAAO,UACJ41B,CACX,GACJ,KAGEC,IAA+BnF,EAAAA,EAAAA,IACjC,CAACF,IACD,SAACjZ,GACG,IAAMme,EAAsB/1B,IACxB4X,GACA,SAAC2Y,GAAU,IAAA4F,EAAA,MAA2B,SAAtB5F,EAAWla,SAAuC,QAAlB8f,EAAA5F,EAAW/lB,eAAO,IAAA2rB,OAAA,EAAlBA,EAAoBp4B,QAAU,CAAC,IAGnF,OAAOgC,IACHg2B,GACA,SAACxF,GAAU,OAAA/wB,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,GAEA+wB,GAAU,IACblwB,KAAM,WAAS,GAG/B,IAGS6iB,IAA2B6N,EAAAA,EAAAA,IACpC,CAAC+E,IACDxF,GAGS8F,IAAyBrF,EAAAA,EAAAA,IAClC,CAACmF,IACD5F,GAGS+F,IAAsBtF,EAAAA,EAAAA,IAAe,CAACqF,KAAyB,SAACE,GAAK,OAC9Ev2B,IAAKu2B,GAAO,SAAC70B,GAAI,MAAM,CAACwE,IAAKxE,EAAM/B,MAAO+B,EAAMzC,MAAOyC,EAAK,GAAE,IAGrDgP,GAAsB,SAACZ,EAAkBO,GAAoB,OACtEP,EAAMsS,IAAI/R,GAASK,mBAAoB,EAC9B4S,GAA0B,SAACxT,EAAkBO,GAAoB,OAC1EP,EAAMsS,IAAI/R,GAASmmB,aAAc,EACxBnT,GAA8B,SAACvT,EAAkBO,GAAoB,OAC9EP,EAAMsS,IAAI/R,GAASomB,cAAe,EACzBvT,GAAgC,SAACpT,EAAkBO,GAAoB,OAChFP,EAAMsS,IAAI/R,GAASqmB,0BAA2B,EACrCtT,GAA8B,SAACtT,EAAkBO,GAAoB,OAC9EP,EAAMsS,IAAI/R,GAASsmB,wBAAyB,EACnC1T,GAAoB,SAACnT,EAAkBO,GAAoB,OACpEP,EAAMsS,IAAI/R,GAASwB,OAAQ,EAMlB+kB,IAAkB5F,EAAAA,EAAAA,IAC3B,CALkB,SAAClhB,EAAkBO,GAAoB,OAAKP,EAAMsS,IAAI/R,GAASa,OAAQ,EACxE,SAACpB,EAAkBO,GAAoB,OAAKP,EAAMsS,IAAI/R,GAAShK,MAAO,EACvE,SAACyJ,EAAkBO,GAAoB,OAAKP,EAAMsS,IAAI/R,GAAS7O,KAAM,IAIrF,SAAC0P,EAAS7K,EAAQ7E,GACd,OAAOq1B,EAAAA,EAAAA,IAAuB3lB,EAAS7K,EAAQ7E,EACnD,G,iJCjhBG,SAASsY,EAAmB6H,GAQ/B,IAAOzV,EAAoByV,EAApBzV,QAAYjE,GAAIC,EAAAA,EAAAA,GAAIyZ,EAAMxZ,GAC3ByS,EAAG,IAAAvb,OAAO6M,GAAW4qB,EAAAA,EAAG5qB,QAAO,KAAA7M,OAAI03B,EAAAA,GAAKC,YACxCC,ECjBH,SAA+CtV,EAAWuV,GAC7D,IAAMtc,EAAM,IAAIuc,gBAehB,OAdA5tB,OAAOoS,KAAKgG,GAAQ0F,QAAO,SAACC,EAAKzB,GAC7B,IACeuR,EADTz3B,EAAQgiB,EAAOkE,GACrB,GAAIA,KAAKqR,EACL,GAAmB,QAAnBE,EAAIF,EAAKrR,GAAG7W,eAAO,IAAAooB,GAAfA,EAAiBC,UAAW,CAAC,IAADC,EAAAC,EACtBrB,EAAqB,QAAlBoB,EAAGJ,EAAKrR,GAAG7W,eAAO,IAAAsoB,GAAW,QAAXC,EAAfD,EAAiBD,iBAAS,IAAAE,OAAA,EAA1BA,EAAA1nB,KAAAynB,EAA6B33B,QAC7B1B,IAARi4B,GACAtb,EAAI4c,OAAO3R,EAAGqQ,EAAM,GAE5B,MACItb,EAAI4c,OAAO3R,EAAGlmB,EAAQ,IAG9B,OAAO2nB,CACX,GAAG1M,GACIA,CACX,CDAmB6c,CAAoBxvB,GAAMyvB,EAAAA,EAAAA,MAAuBC,WAChE,OAAOV,EAAM,GAAA53B,OAAMub,EAAG,KAAAvb,OAAI43B,GAAWrc,CACzC,CEfO,SAASgd,IAAiF,IAADrzB,EAAAxG,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAJ,CAAC,EAArD85B,EAAItzB,EAAJszB,KAAM3rB,EAAO3H,EAAP2H,QAC1C,OAAO2rB,EAAI,IAAAx4B,OACD6M,GAAW4qB,EAAAA,EAAG5qB,QAAO,KAAA7M,OAAI03B,EAAAA,GAAKe,WAAU,KAAAz4B,OAAI04B,EAAAA,EAAcC,MAAK,KAAA34B,OAAIw4B,GAAI,IAAAx4B,OACvE6M,GAAW4qB,EAAAA,EAAG5qB,QAAO,KAAA7M,OAAI03B,EAAAA,GAAKe,WAAU,KAAAz4B,OAAI04B,EAAAA,EAAcC,MACxE,CAEO,SAASC,EAAa/rB,EAAiBgsB,GAC1C,MAAM,IAAN74B,OAAW6M,EAAO,KAAA7M,OAAI03B,EAAAA,GAAKe,WAAU,KAAAz4B,OAAI04B,EAAAA,EAAcI,YAAW,UAAA94B,OAAS64B,EAC/E,CAEO,SAASle,EAAiB9Z,GAQ7B,IAPA+Z,EAAI/Z,EAAJ+Z,KACAC,EAAQha,EAARga,SACAhO,EAAOhM,EAAPgM,QAMA,MAAM,IAAN7M,OAAW6M,GAAW4qB,EAAAA,EAAG5qB,QAAO,KAAA7M,OAAI03B,EAAAA,GAAKpM,WAAU,UAAAtrB,OAAS4a,EAAI,cAAA5a,OAAa6a,EACjF,CAEO,SAASE,EAAgBge,EAAiBlsB,GAC7C,MAAM,IAAN7M,OAAW6M,GAAW4qB,EAAAA,EAAG5qB,QAAO,KAAA7M,OAAI03B,EAAAA,GAAKlO,SAAQ,aAAAxpB,OAAY+4B,EACjE,C,6DC7BA,QADwB,SAAAn3B,GAAK,OAAIC,EAAAA,EAAAA,KAAA,OAAAzB,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAA,CAAKuE,MAAM,6BAA6BC,KAAK,OAAOC,QAAQ,aAAgBjD,GAAK,IAAAW,UAAEV,EAAAA,EAAAA,KAAA,QAAM+C,KAAK,eAAeE,SAAS,UAAUC,EAAE,mIAAmIC,SAAS,cAAmB,C,6FCAlU,MAmEag0B,EAAiB,CAC1BC,GAAI,CACAC,aArEe,CACnBC,QAAS,KACTC,UAAW,OACXC,UAAW,OACXC,WAAY,QACZC,IAAK,SACLC,OAAQ,QACRC,IAAK,OACLC,QAAS,OACTC,IAAK,MACLC,OAAQ,MACRC,IAAK,OACLC,QAAS,QA0DLC,SAdc,CAClBC,MAAO,IACPC,IAAK,IACLC,KAAM,KAYFC,YA5Cc,CAClBC,GAAI,IACJC,KAAM,IACNC,KAAM,IACNC,MAAO,IACPC,OAAQ,MACRC,KAAM,IACNC,MAAO,QACPR,KAAM,OACND,IAAK,MACLD,MAAO,QACPW,IAAK,MACLC,UAAW,cAkCXC,IAAK,CACD3B,aA5DgB,CACpBC,QAAS,KACTC,UAAW,OACXC,UAAW,OACXC,WAAY,QACZC,IAAK,SACLmB,MAAO,SACPjB,IAAK,UACLS,KAAM,UACND,IAAK,SACLN,IAAK,SACLE,IAAK,WAkDDE,SAde,CACnBD,QAAS,IACTE,MAAO,IACPJ,OAAQ,IACRF,QAAS,KAWLS,YAnCe,CACnBC,GAAI,IACJC,KAAM,IACNC,KAAM,IACNC,MAAO,IACPC,OAAQ,IACRC,KAAM,IACNjB,OAAQ,IACRM,QAAS,IACTF,OAAQ,IACRF,QAAS,IACTM,MAAO,IACPY,UAAW,IACXD,IAAK,O,4CCrDF,SAASrI,EAAMwI,EAAKC,GACvB,OAAOD,EAAIE,OAAO1I,MAAMyI,GAAW35B,OAAOkK,QAC9C,CCAA,MAAM2vB,EAAmB,KAyBzB,SAASC,EAAUr0B,GACf,IAAIs0B,EACJ,OAAkC,QAA1BA,EAAKt0B,EAAIuiB,mBAAgC,IAAP+R,EAAgBA,EAAK,IAAWt0B,EAAIuH,GAClF,CCxBA,MAAMgtB,GAAI,QAAM,UACVC,EAAS,CACXC,cAAenwB,OAAOowB,aAAa,KACnCC,YAAarwB,OAAOowB,aAAa,OAExBE,EAAS,cAAiB,SAAgB75B,EAAO85B,GAC1D,MAAM,MAAEp7B,EAAK,SAAEq7B,EAAQ,KAAE91B,EAAO,QAAO,GAAEL,EAAE,MAAEo2B,EAAK,UAAE75B,GAAcH,EAC5DgV,EAwBH,SAAsBtW,EAAOu7B,GAChC,IAAIV,EACJ,MAAMQ,EAAoC,QAAxBR,EAAKU,EAAKF,gBAA6B,IAAPR,EAAgBA,EFxCtB,oBAAdW,WAA4B,qBAAqBC,KAAKD,UAAUH,UEwCZ,MAAQ,KAE1F,ODrCG,SAAwBK,EAAM17B,GACjC,OAAOgyB,EAAMhyB,EAAO26B,GAAkBx7B,KAAK6c,GAAS,IAAOgW,EAAMhW,EAF9C,KAGd7c,IAIT,SAAmBu8B,GACf,OAAO,SAAUC,GACb,IAAId,EACJ,MAAMe,EASd,SAAkBF,EAAMlB,GACpB,IAAIK,EAEJ,OADAL,EAAMA,EAAItI,cAC+B,QAAjC2I,EAAKa,EAAK9C,aAAa4B,UAAyB,IAAPK,EAAgBA,EAAKL,CAC1E,CAbsBqB,CAASH,EAAMC,GAC7B,MAAO,CACHA,MACA7tB,GAAI8tB,EACJE,SAA0C,QAA/BjB,EAAKa,EAAKjC,SAASmC,UAA2B,IAAPf,EAAgBA,EAAK,EACvE/R,YAAa4S,EAAK7B,YAAY+B,GAEtC,CACJ,CAfaG,CAAUL,IACd3K,MAAK,CAACiL,EAAGlB,IAAMA,EAAEgB,SAAWE,EAAEF,YAClCv1B,GAAQA,EAAIuH,KAAI3O,IAAIy7B,IACzB,CCgCWqB,CADMvD,EAAe2C,GACAr7B,EAChC,CA7BmBk8B,CAAal8B,EAAO,CAAEq7B,aAC/Bt0B,EAAU,GAChB,IAAIo1B,GAAY,EAkBhB,OAjBA7lB,EAAO2P,SAAQ,CAACjK,EAAMogB,KACE,IAAhBpgB,EAAK3d,SAEL89B,EACAp1B,EAAQ9H,KAAK87B,EAAOC,eAGpBmB,GAAY,EAEhBngB,EAAKiK,SAAQ,CAAC1f,EAAK81B,KACe,IAAXA,GAEft1B,EAAQ9H,KAAK87B,EAAOG,YAAa,gBAAoB,OAAQ,CAAE30B,IAAK,GAAGA,KAAO61B,KAAYC,SAAe56B,UAAWq5B,EAAE,SAAW,KAAMC,EAAOG,aAElJn0B,EAAQ9H,KAAK,gBAAoB,MAAO,CAAEsH,IAAK,GAAGA,KAAO61B,KAAYC,KAAY91B,GAAK,IACxF,IAEiB,IAAnBQ,EAAQ1I,OACD,KACH,gBAAoB,MAAO,CAAE+8B,IAAKA,EAAKE,MAAOA,EAAO,UAAWp2B,EAAIzD,UAAWq5B,EAAE,CAAEv1B,QAAQ9D,IAAcsF,EACrH,I,eC5BA,MAAMu1B,EAAoB,CAAC,SAAU,OAC/B,GAAI,QAAM,kBACT,SAASC,EAAcj7B,GAC1B,MAAM,UAAEk7B,EAAYF,EAAiB,MAAEh9B,EAAK,OAAEm9B,EAAM,SAAEx6B,EAAQ,UAAER,EAAS,iBAAEi7B,EAAgB,YAAEC,EAAW,SAAE3wB,GAAW,EAAK,MAAEsvB,EAAK,GAAEp2B,EAAE,GAAE4I,EAAE,cAAE8uB,GAAkBt7B,EAAOu7B,GAAa,QAAOv7B,EAAO,CAAC,YAAa,QAAS,SAAU,WAAY,YAAa,mBAAoB,cAAe,WAAY,QAAS,KAAM,KAAM,mBACtTw7B,EAAeC,GAAoB,WAAe,MACnDC,GAAiB,EAAAC,EAAA,GAAkBH,EAAeD,GASlDnI,EAAQ,WAAewI,KAAKj7B,GAC5Bk7B,EAAWzI,EAAM0G,IACjBA,GAAM,EAAAgC,EAAA,GAAWL,EAAkBI,GACzC,OAAQ,gBAAoB,WAAgB,KACxC,eAAmBzI,EAAO,CAAE0G,QAC5B0B,EAZQ,gBAAoBO,EAAA,EAAO,CAAEvvB,GAAIA,EAAI8uB,cAAeA,EAAeh9B,KAAM,UAAW6B,UAAW,EAAE,KAAMA,GAAY65B,MAAOA,EAAOtnB,KAAMgpB,IAAmBhxB,EAAUwwB,UAAWA,EAAWc,UAAW,CAAE/+B,QAASu+B,GAAiBS,sBAAsB,EAAMC,qBAAqB,EAAMC,cAAc,EAAMv4B,GAAIA,GACpT,gBAAoB,MAAO,CAAEzD,UAAW,EAAE,UAAWi7B,IACjD,gBAAoB,MAAO,CAAEj7B,UAAW,EAAE,YACtC,gBAAoB,MAAO,CAAEA,UAAW,EAAE,UAAYnC,GACtDm9B,GAAU,gBAAoBtB,EAAQ,CAAE51B,KAAM,OAAQvF,MAAOy8B,EAAQh7B,UAAW,EAAE,aACtFk7B,GAAe,gBAAoB,MAAO,CAAEl7B,UAAW,EAAE,gBAAkBk7B,KAOnD,KACxC,C,sPCzBA,GAAe,EAAAe,EAAA,GAAoB,CAAEC,GAAE,KAAI,GADzB,mBCKZC,EAAkB,IAClBC,EAAuB,CACzBC,GAAI,GACJlO,EAAG,GACHmO,EAAG,GACHC,EAAG,GACHC,GAAI,IAEFC,EAA4B58B,IAC9B,MAAM,KAAEsE,EAAO,IAAG,WAAEu4B,GAAa,EAAI,mBAAEC,EAAqBC,EAAK,aAAY,mBAAEC,EAAqBD,EAAK,WAAU,OAAEE,EAAM,KAAEh5B,EAAO,OAAM,WAAE1F,EAAa,CAAC,GAAMyB,EAAOgH,GAAO,QAAOhH,EAAO,CAAC,OAAQ,aAAc,qBAAsB,qBAAsB,SAAU,OAAQ,eACjR,OAAQ,gBAAoBi7B,EAAA,EAAe,CAAEvwB,UAAWmyB,EAAY7+B,MAAkB,YAAXi/B,EAAuBD,EAAqBF,GACnH,gBAAoB94B,EAAA,EAAQsE,OAAOC,OAAO,CAAEtE,KAAMA,EAAMK,KAAMA,EAAM/F,WAAY+J,OAAOC,OAAO,CAAE,aAAcu0B,GAAsBv+B,IAAeyI,GAC/I,gBAAoBhD,EAAA,EAAOG,KAAM,KAC7B,gBAAoB+4B,EAAA,EAAe,CAAE54B,KAAMi4B,EAAqBj4B,GAAO24B,OAAQA,MAAa,EAErG,SAAStd,EAAgB3f,GAC5B,MAAM,KAAEvB,EAAI,QAAE0+B,EAAUb,EAAe,OAAEc,EAAM,QAAErvB,GAAY/N,EAAOwkB,GAAc,QAAOxkB,EAAO,CAAC,OAAQ,UAAW,SAAU,YAC9H,OAAQ,gBAAoBq9B,EAAA,EAAiB,CAAE5+B,KAAMA,EAAM0+B,QAASA,EAASC,OAAQA,EAAQrvB,QAASA,IAAYkvB,GAAW,gBAAoBL,EAA0Bt0B,OAAOC,OAAO,CAAC,EAAGic,EAAa,CAAEyY,OAAQA,MACxN,C,0DCvBO,MAAMtB,EAAoB,CAAC2B,GAAUC,YAAY,IAAKC,aAAYC,yBAAwB,MAC7F,MAAO/B,EAAgBgC,EAAaC,GCHjC,SAAoBC,GACvB,MAAOl/B,EAAOm/B,GAAY,YDEoC,GCD9D,MAAO,CACHn/B,EACA,eAAkB,IAAMm/B,GAAS,IAAO,IACxC,eAAkB,IAAMA,GAAS,IAAQ,IACzC,eAAkB,IAAMA,GAAU3E,IAASA,KAAM,IAEzD,CDLuD4E,GAC7CC,EAAa,WACbC,EAAmB,UAAa,GAiDtC,OAhDA,aAAgB,KACZ,GAAKV,EAuCL,OAPAA,EAAOW,iBAAiB,aAAcC,GACtCZ,EAAOW,iBAAiB,aAAcE,GACtCb,EAAOW,iBAAiB,UAAWz2B,GAC9Bi2B,IACDH,EAAOW,iBAAiB,QAASG,GACjCd,EAAOW,iBAAiB,OAAQI,IAE7B,KACHf,EAAOgB,oBAAoB,aAAcJ,GACzCZ,EAAOgB,oBAAoB,aAAcH,GACzCb,EAAOgB,oBAAoB,QAASF,GACpCd,EAAOgB,oBAAoB,OAAQD,GACnCf,EAAOgB,oBAAoB,UAAW92B,EAAc,EAzCxD,SAAS02B,IACLK,aAAaR,EAAW9gC,SACxB8gC,EAAW9gC,QAAUuhC,OAAOC,WAAWf,EAAaH,EACxD,CACA,SAASY,IACLI,aAAaR,EAAW9gC,SACxB8gC,EAAW9gC,QAAUuhC,OAAOC,WAAWd,EAAaH,EACxD,CACA,SAASY,EAAkB32B,GAClBu2B,EAAiB/gC,SAAWyhC,SAASC,gBAAkBl3B,EAAE6P,SAC1D0mB,EAAiB/gC,SAAU,EAC3BshC,aAAaR,EAAW9gC,SACxBygC,IAER,CACA,SAASW,EAAiB52B,GAClBu2B,EAAiB/gC,UAChBwK,EAAEm3B,cAAcC,SAASp3B,EAAEq3B,iBAC5Bd,EAAiB/gC,SAAU,EAC3BshC,aAAaR,EAAW9gC,SACxB0gC,IAER,CACA,SAASn2B,EAAcC,GACfA,EAAExC,MAAQ,IAAQ85B,SAClBR,aAAaR,EAAW9gC,SACxB0gC,IAER,CAcC,GACF,CAACL,EAAQI,EAAaC,EAAaJ,EAAWC,EAAYC,IACtD/B,CAAc,C","sources":["webpack://@ytsaurus/ui/./src/ui/components/Dialog/controls/RoleListControl/utils.ts","webpack://@ytsaurus/ui/./src/ui/components/Dialog/DialogError.tsx","webpack://@ytsaurus/ui/./src/ui/components/Dialog/index.tsx","webpack://@ytsaurus/ui/./src/ui/hocs/withDelayedMount.tsx","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/icons/svgs/chevrons-right.svg","webpack://@ytsaurus/ui/./src/ui/components/ExpandButton/ExpandButton.tsx","webpack://@ytsaurus/ui/./src/ui/components/LoadDataHandler/LoadDataHandler.tsx","webpack://@ytsaurus/ui/./src/ui/components/SubjectLink/SubjectLink.tsx","webpack://@ytsaurus/ui/./src/ui/components/TextInputWithDebounce/TextInputWithDebounce.tsx","webpack://@ytsaurus/ui/./src/ui/store/actions/acl-filters.ts","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/icons/esm/Power.js","webpack://@ytsaurus/ui/./src/ui/containers/ACL/ColumnGroups/EditColumnGroupModal.tsx","webpack://@ytsaurus/ui/./src/ui/containers/ACL/ColumnGroups/ColumnGroups.tsx","webpack://@ytsaurus/ui/./src/ui/containers/ACL/DeletePermissionModal/DeletePermissionModal.js","webpack://@ytsaurus/ui/./src/ui/containers/ACL/ManageAcl/ManageAcl.tsx","webpack://@ytsaurus/ui/./src/ui/containers/ACL/ManageInheritance/ManageInheritance.tsx","webpack://@ytsaurus/ui/./src/ui/containers/ACL/AclActions/AclActions.tsx","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/icons/svgs/circle-check.svg","webpack://@ytsaurus/ui/./src/ui/containers/ACL/MyPermissinos/MyPermissions.tsx","webpack://@ytsaurus/ui/./src/ui/containers/ACL/ApproversFilters/ApproversFilters.tsx","webpack://@ytsaurus/ui/./src/ui/containers/ACL/ObjectPermissionsFilters/ObjectPermissionsFilters.tsx","webpack://@ytsaurus/ui/./src/ui/components/SegmentControl/SegmentControl.tsx","webpack://@ytsaurus/ui/./src/ui/containers/ACL/AclModeControl.tsx","webpack://@ytsaurus/ui/./src/ui/containers/ACL/AclColumnsCell.tsx","webpack://@ytsaurus/ui/./src/ui/assets/img/svg/acl-inherited.svg","webpack://@ytsaurus/ui/./src/ui/containers/ACL/InheritanceMessage/InheritanceMessage.tsx","webpack://@ytsaurus/ui/./src/ui/containers/ACL/ACL.tsx","webpack://@ytsaurus/ui/./src/ui/containers/ACL/RoleActions.tsx","webpack://@ytsaurus/ui/./src/ui/containers/ACL/ACL-connect-helpers.tsx","webpack://@ytsaurus/ui/./src/ui/containers/ACL/RequestPermissions/PermissionsControl/PermissionsControl.tsx","webpack://@ytsaurus/ui/./src/ui/containers/ACL/RequestPermissions/RequestPermissions.tsx","webpack://@ytsaurus/ui/./src/ui/hocs/withVisible.tsx","webpack://@ytsaurus/ui/./src/ui/rum/rum-measure-types.ts","webpack://@ytsaurus/ui/./src/ui/store/actions/acl.ts","webpack://@ytsaurus/ui/./src/ui/store/selectors/acl-filters.ts","webpack://@ytsaurus/ui/./src/ui/store/selectors/acl.ts","webpack://@ytsaurus/ui/./src/ui/utils/app-url/navigation.ts","webpack://@ytsaurus/ui/./src/ui/utils/app-url/utils.ts","webpack://@ytsaurus/ui/./src/ui/utils/app-url/index.ts","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/icons/svgs/chevron-right.svg","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/uikit/build/esm/components/Hotkey/definitions.js","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/uikit/build/esm/components/Hotkey/utils.js","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/uikit/build/esm/components/Hotkey/parse.js","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/uikit/build/esm/components/Hotkey/Hotkey.js","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/uikit/build/esm/components/ActionTooltip/ActionTooltip.js","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/uikit/build/esm/components/ClipboardButton/i18n/index.js","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/uikit/build/esm/components/ClipboardButton/ClipboardButton.js","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/uikit/build/esm/hooks/private/useTooltipVisible/index.js","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/uikit/build/esm/hooks/private/useBoolean/useBoolean.js"],"sourcesContent":["import cn from 'bem-cn-lite';\n\nimport filter_ from 'lodash/filter';\nimport forEach_ from 'lodash/forEach';\nimport map_ from 'lodash/map';\n\nimport type {EditableManyListsItemType} from '../../../../components/Dialog';\nimport type {ResponsibleType, RoleConverted, Subject} from '../../../../utils/acl/acl-types';\nimport type {PreparedRole} from '../../../../utils/acl';\nimport {RoleListControlProps} from './RoleListControl';\n\nexport const block = cn('role-list-control');\n\nexport function prepareRoleListValue(roles: Array<PreparedRole>, otherMembers: Array<string> = []) {\n const current: typeof roles = [];\n const toAdd: typeof roles = [];\n const toRemove: typeof roles = [];\n const unrecognized: typeof roles = [];\n forEach_(roles, (item) => {\n const {isUnrecognized, isRequested, isApproved, isDepriving} = item;\n if (isUnrecognized) {\n unrecognized.push(item);\n } else if (isDepriving) {\n toRemove.push(item);\n } else if (isApproved || isRequested) {\n toAdd.push(item);\n } else {\n current.push(item);\n }\n });\n\n const currentArr = current.map((item) => prepareItemOfCurrent(item));\n const otherArr = otherMembers.map((item) => ({\n title: item,\n data: {},\n frozen: true,\n }));\n\n return {\n newItems: [],\n current: {title: 'Current', data: currentArr.concat(otherArr)},\n toAdd: {\n title: 'Will be added',\n itemClassName: block('item-to-add'),\n data: toAdd.map((item) => prepareItemOfCurrent(item, {frozen: true})),\n },\n toRemove: {\n title: 'Will be removed',\n itemClassName: block('item-to-remove'),\n data: toRemove.map((item) => prepareItemOfCurrent(item, {frozen: true})),\n },\n unrecognized: {\n title: 'Unrecognized',\n itemClassName: block('item-unrecognized'),\n data: unrecognized.map((item) => prepareItemOfCurrent(item, {frozen: true})),\n },\n };\n}\n\nfunction prepareItemOfCurrent(role: PreparedRole, extraProps: any = {}) {\n return {\n title: role.text || role.value,\n data: role,\n ...extraProps,\n };\n}\n\nexport function roleListValueToSubjectList(\n value: RoleListControlProps['value'],\n): Array<ResponsibleType> {\n const {current, newItems, toAdd} = value;\n return [\n ...newItems,\n ...manyListDataItemToSubjectList(current),\n ...manyListDataItemToSubjectList(toAdd),\n ];\n}\n\nfunction manyListDataItemToSubjectList(\n manyListDataItem: EditableManyListsItemType<RoleConverted>,\n): Array<ResponsibleType> {\n const {data} = manyListDataItem || {};\n return map_(\n filter_(data, ({removed}) => !removed),\n ({data}) => {\n const {type, value} = data || {};\n return {type: type!, value: value!};\n },\n );\n}\n\nexport function extractChangedSubjects(value: {\n current: EditableManyListsItemType<RoleConverted>;\n newItems: Array<ResponsibleType>;\n}): {\n added: Subject[];\n removed: Subject[];\n} {\n const {current, newItems} = value;\n const added = newItems || [];\n const removed = ((current && current.data) || []).filter(({removed}) => removed);\n return {\n added: added.map(({type, value}) => {\n return type === 'users' ? {user: value} : {group: value};\n }),\n removed: removed.map(({data}) => {\n const {value, type} = data || {};\n return type === 'users' ? {user: value!} : {group: value!};\n }),\n };\n}\n","import React from 'react';\nimport cn from 'bem-cn-lite';\n\nimport type {FORM_ERROR as FormErrorType} from './index';\n\nimport {FIX_MY_TYPE, YTError} from '../../types';\nimport Block from '../../components/Block/Block';\n\nimport compact_ from 'lodash/compact';\nimport map_ from 'lodash/map';\n\nconst block = cn('yt-dialog-error');\n\nexport function DialogError(props: FIX_MY_TYPE) {\n return <Block {...props} className={block()} />;\n}\n\nexport function makeErrorFields(errors: Array<YTError | Error | undefined>) {\n return compact_(\n map_(errors, (error, index) => {\n return error\n ? {\n name: `error_${index}`,\n type: 'block' as const,\n extras: {\n children: <DialogError error={error} />,\n },\n }\n : undefined;\n }),\n );\n}\n\nconst FORM_ERROR: typeof FormErrorType = 'FINAL_FORM/form-error';\n\nexport function makeFormSubmitError(error: YTError) {\n return {\n validationErrors: {\n [FORM_ERROR]: <DialogError error={error} />,\n },\n };\n}\n","import React from 'react';\nimport withLazyLoading from '../../hocs/withLazyLoading';\nimport {withDelayedMount} from '../../hocs/withDelayedMount';\n\nimport type {\n registerDialogControl as RegisterDialogControlFn,\n registerDialogTabControl as RegisterDialogTabControlFn,\n YTDialogType,\n} from './Dialog';\n\nexport type * from './Dialog';\nexport * from './DialogError';\nexport * from './controls/RoleListControl/utils';\n\nexport function importYTDFDialog() {\n return import(/* webpackChunkName: \"yt-df-dialog\" */ './Dialog');\n}\n\nexport const YTDFDialog = withDelayedMount(\n withLazyLoading(\n React.lazy(async () => {\n return {default: (await importYTDFDialog()).YTDialog};\n }),\n '',\n ),\n) as YTDialogType;\n\nexport function useControlRegistration(\n fn: (params: {\n registerDialogControl: typeof RegisterDialogControlFn;\n registerDialogTabControl: typeof RegisterDialogTabControlFn;\n }) => void,\n) {\n importYTDFDialog().then(({registerDialogControl, registerDialogTabControl}) => {\n fn({registerDialogControl, registerDialogTabControl});\n });\n}\n\nexport type {RoleListControlProps} from './controls/RoleListControl/RoleListControl';\nexport const RoleListControl = withLazyLoading(\n React.lazy(async () => {\n return {default: (await importYTDFDialog()).RoleListControl};\n }),\n '',\n);\n\nexport const EditableList = withLazyLoading(\n React.lazy(async () => {\n return {default: (await importYTDFDialog()).EditableList};\n }),\n '',\n);\n\nexport const TabFieldVertical = withLazyLoading(\n React.lazy(async () => {\n return {default: (await importYTDFDialog()).TabFieldVertical};\n }),\n '',\n);\n","import React from 'react';\n\n/**\n * The hoc allows to delay mounting until `props.visible == true`.\n * The hoc might be useful to wrap components wrapped by React.lazy\n * @param Component\n * @returns\n */\nexport function withDelayedMount<P extends {visible?: boolean}>(Component: React.ComponentType<P>) {\n return function MountOnFirstVisible(props: P) {\n const [mounted, setMounted] = React.useState(false);\n React.useEffect(() => {\n if (!mounted && props.visible) {\n setMounted(true);\n }\n }, [props.visible, mounted]);\n return !mounted ? null : <Component {...props} />;\n };\n}\n","const SvgChevronsRight = props => <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 16 16\" {...props}><path fill=\"currentColor\" fillRule=\"evenodd\" d=\"M3.47 10.97a.75.75 0 1 0 1.06 1.06l3.5-3.5a.75.75 0 0 0 0-1.06l-3.5-3.5a.75.75 0 0 0-1.06 1.06L6.44 8zm5 0a.75.75 0 1 0 1.06 1.06l3.5-3.5a.75.75 0 0 0 0-1.06l-3.5-3.5a.75.75 0 0 0-1.06 1.06L11.44 8z\" clipRule=\"evenodd\" /></svg>;\nexport default SvgChevronsRight;","import React, {FC} from 'react';\nimport {Button, ButtonProps, Icon} from '@gravity-ui/uikit';\nimport shevronRightSvg from '@gravity-ui/icons/svgs/chevron-right.svg';\nimport doubleShevronRightSvg from '@gravity-ui/icons/svgs/chevrons-right.svg';\nimport cn from 'bem-cn-lite';\nimport './ExpandButton.scss';\n\nconst block = cn('yt-expanded-button');\n\ntype Props = {\n className?: string;\n expanded: boolean;\n toggleExpanded: () => void;\n inline?: boolean;\n all?: boolean;\n showText?: boolean;\n qa?: ButtonProps['qa'];\n};\n\nexport const ExpandButton: FC<Props> = ({\n className,\n expanded,\n inline,\n toggleExpanded,\n all,\n showText,\n qa,\n}) => {\n const titleExpanded = all ? 'Collapse All' : 'Collapse';\n const titleCollapsed = all ? 'Expand All' : 'Expand';\n return (\n <Button\n className={block({inline}, className)}\n view=\"flat-secondary\"\n title={expanded ? titleExpanded : titleCollapsed}\n onClick={toggleExpanded}\n qa={qa}\n >\n {showText && (expanded ? titleExpanded : titleCollapsed) + ' '}\n <Icon\n className={block('expand', {expanded})}\n data={all ? doubleShevronRightSvg : shevronRightSvg}\n size={16}\n />\n </Button>\n );\n};\n","import React, {Component} from 'react';\n\nimport {Toaster} from '@gravity-ui/uikit';\nimport Error from '../../components/Error/Error';\nimport hammer from '../../common/hammer';\n\nimport {showErrorPopup} from '../../utils/utils';\nimport {YTError} from '../../types';\n\nconst toaster = new Toaster();\n\ninterface LoadDataHandlerProps {\n alwaysShowError?: boolean;\n loaded: boolean;\n error: boolean;\n errorData?: YTError;\n children: React.ReactNode;\n}\n\nexport default class LoadDataHandler extends Component<LoadDataHandlerProps> {\n componentDidUpdate() {\n const {error, loaded, errorData} = this.props;\n\n if (error && loaded) {\n toaster.add({\n theme: 'danger',\n name: 'network',\n autoHiding: 500000,\n title: 'Oops! something went wrong.',\n content: errorData ? (errorData as YTError).message : hammer.format.NO_VALUE,\n actions: [\n {\n label: ' view',\n onClick: () => showErrorPopup(errorData as YTError),\n },\n ],\n });\n }\n }\n\n render() {\n const {alwaysShowError = false, error, errorData, loaded, children} = this.props;\n\n const initialLoading = !loaded;\n\n if (error && (alwaysShowError || initialLoading)) {\n return <Error error={errorData} />;\n }\n\n return children;\n }\n}\n","import {SubjectGroupType} from '../../utils/acl';\nimport UIFactory from '../../UIFactory';\n\nexport type SubjectCardProps = {\n className?: string;\n noLink?: boolean;\n showIcon?: boolean;\n\n internal?: boolean;\n url?: string;\n\n name: string | number;\n type?: 'user' | 'group' | 'tvm';\n groupType?: SubjectGroupType;\n};\n\nexport function SubjectCard(props: SubjectCardProps) {\n return UIFactory.renderSubjectCard(props);\n}\n","import React from 'react';\nimport throttle_ from 'lodash/throttle';\n\nimport {TextInput, TextInputProps} from '@gravity-ui/uikit';\n\nexport interface TextInputWithDebounceProps extends TextInputProps {\n debounce?: number;\n onBlur?: (e: React.FocusEvent) => void;\n onEnterKeyDown?: (e: React.KeyboardEvent) => void;\n}\n\nfunction TextInputWithDebounce(props: TextInputWithDebounceProps) {\n const {\n debounce = 400,\n onUpdate = () => {},\n onBlur,\n value,\n onEnterKeyDown,\n onKeyDown,\n ...rest\n } = props;\n\n const [input, setInput] = React.useState<string | undefined>();\n\n const handleChangeExt = React.useMemo(() => {\n return throttle_(onUpdate as any, debounce);\n }, [debounce, onUpdate]);\n\n const handleChange = React.useCallback(\n (text: string) => {\n setInput(text);\n handleChangeExt(text);\n },\n [handleChangeExt, setInput],\n );\n\n const handleKeyDown = React.useCallback(\n (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (onKeyDown) {\n onKeyDown(e);\n }\n if (e.key === 'Enter' && onEnterKeyDown) {\n onEnterKeyDown(e);\n }\n },\n [onEnterKeyDown, onKeyDown],\n );\n\n const handleBlur = React.useCallback(\n (e: React.FocusEvent<HTMLInputElement>) => {\n setInput(undefined);\n\n if (onBlur) {\n onBlur(e);\n }\n },\n [setInput, onBlur],\n );\n\n return (\n <TextInput\n onUpdate={handleChange}\n {...rest}\n value={input === undefined ? value : input}\n onBlur={handleBlur}\n onKeyDown={handleKeyDown}\n />\n );\n}\n\nexport default React.memo(TextInputWithDebounce);\n","import {ThunkAction} from 'redux-thunk';\nimport {getAclFilterExpandedSubjects} from '../../store/selectors/acl-filters';\nimport {ACL_CHANGE_FILTERS} from '../../constants/acl';\n\nimport {AclFiltersAction, AclFiltersState} from '../reducers/acl/acl-filters';\nimport {RootState} from '../../store/reducers';\n\nexport function changeApproversSubjectFilter({\n approversSubject,\n}: Pick<AclFiltersState, 'approversSubject'>) {\n return {\n type: ACL_CHANGE_FILTERS,\n data: {approversSubject},\n };\n}\n\nexport function changeObjectSubjectFilter({objectSubject}: Pick<AclFiltersState, 'objectSubject'>) {\n return {\n type: ACL_CHANGE_FILTERS,\n data: {objectSubject},\n };\n}\n\nexport function changeObjectPermissionsFilter({\n objectPermissions,\n}: Pick<AclFiltersState, 'objectPermissions'>) {\n return {\n type: ACL_CHANGE_FILTERS,\n data: {objectPermissions},\n };\n}\n\nexport function updateAclFilters(data: Partial<AclFiltersState>) {\n return {type: ACL_CHANGE_FILTERS, data};\n}\n\ntype AclFilterThunkAction = ThunkAction<void, RootState, unknown, AclFiltersAction>;\n\nexport function toggleExpandAclSubject(subject?: string | number): AclFilterThunkAction {\n return (dispatch, getState) => {\n if (!subject) {\n return;\n }\n\n const expandedSubjects = new Set(getAclFilterExpandedSubjects(getState()));\n if (expandedSubjects.has(subject)) {\n expandedSubjects.delete(subject);\n } else {\n expandedSubjects.add(subject);\n }\n dispatch({type: ACL_CHANGE_FILTERS, data: {expandedSubjects}});\n };\n}\n","import * as React from 'react';\nconst Power = (props) => (React.createElement(\"svg\", Object.assign({ xmlns: \"http://www.w3.org/2000/svg\", width: 16, height: 16, fill: \"none\", viewBox: \"0 0 16 16\" }, props),\n React.createElement(\"path\", { fill: \"currentColor\", fillRule: \"evenodd\", d: \"M8.75 1.75a.75.75 0 0 0-1.5 0v5.5a.75.75 0 0 0 1.5 0v-5.5ZM4.92 3.442A.75.75 0 1 0 4.08 2.2a7 7 0 1 0 7.841 0 .75.75 0 1 0-.841 1.242 5.5 5.5 0 1 1-6.159 0Z\", clipRule: \"evenodd\" })));\nexport default Power;\n","import React, {useMemo, useState} from 'react';\nimport {YTDFDialog, makeErrorFields} from '../../../components/Dialog';\nimport {AclColumnGroup} from '../../../utils/acl/acl-types';\nimport includes_ from 'lodash/includes';\n\nexport interface Props {\n title: string;\n confirmText: string;\n handleClose: () => void;\n handleSubmit: (value: Partial<AclColumnGroup>) => Promise<void>;\n initialData?: Partial<AclColumnGroup>;\n disabledFields?: Array<keyof FormValues>;\n visible: boolean;\n}\n\ninterface FormValues {\n name: string;\n columns: Array<string>;\n enabled: boolean;\n}\n\nexport default function EditColumnGroupModal({\n visible,\n title,\n confirmText,\n handleClose,\n handleSubmit,\n initialData,\n disabledFields = [],\n}: Props) {\n const [error, setError] = useState(undefined);\n\n const initialValues = useMemo(() => {\n return {\n name: String(initialData?.name),\n columns: initialData?.columns,\n enabled: Boolean(initialData?.enabled),\n };\n }, [initialData]);\n\n return (\n <YTDFDialog<FormValues>\n pristineSubmittable\n visible={visible}\n modal={true}\n headerProps={{title}}\n footerProps={{textApply: confirmText}}\n onClose={() => {\n setError(undefined);\n handleClose();\n }}\n onAdd={(form) => {\n const {name, columns, enabled} = form.getState().values;\n const submitResult: Partial<AclColumnGroup> = {\n name: name,\n columns,\n enabled: enabled,\n };\n return handleSubmit(submitResult).catch((err) => {\n setError(err);\n throw err;\n });\n }}\n initialValues={initialValues}\n fields={[\n {\n name: 'name',\n type: 'text',\n required: true,\n caption: 'Name',\n extras: {\n placeholder: 'column group name',\n disabled: includes_(disabledFields, 'name'),\n },\n },\n {\n name: 'columns',\n type: 'acl-columns',\n required: true,\n caption: 'Columns',\n tooltip: 'One column name per line',\n extras: {\n disabled: includes_(disabledFields, 'columns'),\n },\n },\n {\n name: 'enabled',\n type: 'tumbler',\n caption: 'Enabled',\n extras: {\n disabled: includes_(disabledFields, 'enabled'),\n },\n },\n ...makeErrorFields([error]),\n ]}\n />\n );\n}\n","import React, {useState} from 'react';\n\nimport cn from 'bem-cn-lite';\n\nimport {Power} from '@gravity-ui/icons';\n\nimport ErrorBoundary from '../../../components/ErrorBoundary/ErrorBoundary';\n\nimport DataTableYT from '../../../components/DataTableYT/DataTableYT';\nimport type {Column} from '@gravity-ui/react-data-table';\nimport Icon from '../../../components/Icon/Icon';\nimport Button from '../../../components/Button/Button';\nimport {renderText} from '../../../components/templates/utils';\nimport {Toolbar} from '../../../components/WithStickyToolbar/Toolbar/Toolbar';\nimport Select from '../../../components/Select/Select';\nimport WithStickyToolbar from '../../../components/WithStickyToolbar/WithStickyToolbar';\n\nimport EditColumnGroupModal, {Props as ModalProps} from './EditColumnGroupModal';\nimport {AclColumnGroup} from '../../../utils/acl/acl-types';\nimport UIFactory from '../../../UIFactory';\n\nimport './ColumnGroups.scss';\nimport TextInputWithDebounce from '../../../components/TextInputWithDebounce/TextInputWithDebounce';\nimport {ACLReduxProps} from '../ACL-connect-helpers';\n\nconst block = cn('column-groups');\n\ntype Props = ColumnGropsToolbarProps &\n Pick<\n ACLReduxProps,\n | 'loaded'\n | 'columnGroups'\n | 'columnsFilter'\n | 'columnGroupNameFilter'\n | 'updateAclFilters'\n | 'userPermissionsAccessColumns'\n > & {\n path: string;\n loadAclDataFn: () => void;\n cluster: string;\n allowEdit?: boolean;\n };\n\nexport default function ColumnGroups({\n loaded,\n columnGroups,\n path,\n loadAclDataFn,\n cluster,\n allowEdit = false,\n updateAclFilters,\n columnsFilter,\n columnGroupNameFilter,\n userPermissionsAccessColumns,\n}: Props) {\n const [modalProps, setModalProps] = useState({\n title: '',\n confirmText: '',\n disabledFields: [],\n initialData: undefined,\n visible: false,\n handleClose: () => {\n setModalProps((prevProps) => ({\n ...prevProps,\n visible: false,\n }));\n },\n handleSubmit: (_value: Partial<AclColumnGroup>) => Promise.resolve(),\n } as ModalProps);\n\n const handleAddClick = () => {\n setModalProps((prevProps) => ({\n ...prevProps,\n title: 'Add new column group',\n confirmText: 'Add',\n disabledFields: ['enabled'],\n visible: true,\n initialData: {\n name: '',\n columns: [],\n enabled: false,\n },\n handleSubmit: (value: Partial<AclColumnGroup>) => {\n return UIFactory.getAclApi()\n .createColumnGroup(cluster, path, value)\n .then(() => {\n loadAclDataFn();\n });\n },\n }));\n };\n\n const handleEditClick = (item: AclColumnGroup) => {\n setModalProps((prevProps) => ({\n ...prevProps,\n title: 'Edit column group',\n confirmText: 'Save',\n initialData: {...item},\n disabledFields: [],\n visible: true,\n handleSubmit: (value: Partial<AclColumnGroup>) => {\n return UIFactory.getAclApi()\n .editColumnGroup(cluster, {...value, id: item.id})\n .then(() => {\n loadAclDataFn();\n });\n },\n }));\n };\n\n const handleDeleteClick = (item: AclColumnGroup) => {\n setModalProps((prevProps) => ({\n ...prevProps,\n title: 'Delete column group',\n confirmText: 'Delete',\n initialData: {...item},\n disabledFields: ['name', 'columns', 'enabled'],\n visible: true,\n handleSubmit: () => {\n const {id} = item;\n return UIFactory.getAclApi()\n .deleteColumnGroup(cluster, id)\n .then(() => {\n loadAclDataFn();\n });\n },\n }));\n };\n\n const columns: Array<Column<AclColumnGroup>> = [\n {\n name: 'Empty',\n className: block('empty'),\n header: null,\n render({row}) {\n return <Power className={block('active-icon', {enabled: row.enabled})} />;\n },\n },\n {\n name: 'Name',\n render({row}) {\n return <span title={row.name}>{row.name}</span>;\n },\n align: 'left',\n className: block('name'),\n },\n {\n name: 'Columns',\n render({row}) {\n return renderText(row.columns?.map((column) => `\"${column}\"`).join(', '));\n },\n className: block('columns'),\n align: 'left',\n },\n {\n name: '',\n className: block('actions'),\n render({row}) {\n return allowEdit ? (\n <>\n <span\n className={block('icon', {delete: true})}\n onClick={() => handleDeleteClick(row)}\n >\n <Icon awesome=\"trash-alt\" />\n </span>\n <span\n className={block('icon', {edit: true})}\n onClick={() => handleEditClick(row)}\n >\n <Icon awesome=\"pencil\" />\n </span>\n </>\n ) : null;\n },\n align: 'right',\n },\n ];\n\n return (\n <ErrorBoundary>\n <div>\n <div className=\"elements-heading elements-heading_size_xs\">\n Column groups\n {allowEdit && (\n <Button className={block('button', {add: true})} onClick={handleAddClick}>\n <Icon awesome={'plus'} />\n Add\n </Button>\n )}\n </div>\n <WithStickyToolbar\n padding=\"skip-vertical\"\n bottomMargin=\"regular\"\n toolbar={\n <Toolbar\n itemsToWrap={[\n {\n node: (\n <TextInputWithDebounce\n placeholder=\"Filter by name\"\n className={block('filter')}\n value={columnGroupNameFilter}\n onUpdate={(columnGroupNameFilter) =>\n updateAclFilters({columnGroupNameFilter})\n }\n />\n ),\n },\n {\n node: (\n <ColumnGroupsFilter\n {...{\n columnsFilter,\n updateAclFilters,\n userPermissionsAccessColumns,\n }}\n />\n ),\n shrinkable: true,\n },\n ]}\n />\n }\n content={\n <DataTableYT<AclColumnGroup>\n loaded={loaded}\n noItemsText=\"There are not any column groups\"\n data={columnGroups}\n columns={columns}\n theme={'yt-borderless'}\n settings={{\n sortable: false,\n displayIndices: false,\n }}\n />\n }\n />\n </div>\n {modalProps.visible ? <EditColumnGroupModal {...modalProps} /> : null}\n </ErrorBoundary>\n );\n}\n\ninterface ColumnGropsToolbarProps\n extends Pick<\n ACLReduxProps,\n 'updateAclFilters' | 'columnsFilter' | 'userPermissionsAccessColumns'\n > {}\n\nexport function ColumnGroupsFilter({\n columnsFilter: value,\n userPermissionsAccessColumns,\n updateAclFilters,\n}: ColumnGropsToolbarProps) {\n const options = React.useMemo(() => {\n return userPermissionsAccessColumns?.map((value) => {\n return {value, title: value};\n });\n }, [userPermissionsAccessColumns]);\n return (\n <Select\n className={block('columns-filter')}\n multiple\n hasClear\n filterable\n label=\"Columns\"\n placeholder=\"filter\"\n items={options}\n value={value}\n onUpdate={(columnsFilter) => updateAclFilters({columnsFilter})}\n maxVisibleValuesTextLength={60}\n width=\"max\"\n />\n );\n}\n","import React, {Component} from 'react';\nimport PropTypes from 'prop-types';\nimport cn from 'bem-cn-lite';\nimport {Checkbox} from '@gravity-ui/uikit';\n\nimport Error from '../../../components/Error/Error';\nimport Label from '../../../components/Label/Label';\nimport MetaTable from '../../../components/MetaTable/MetaTable';\nimport Modal from '../../../components/Modal/Modal';\nimport {renderText} from '../../../components/templates/utils';\n\nimport hammer from '../../../common/hammer';\n\nimport './DeletePermissionModal.scss';\n\nconst block = cn('navigation-acl-delete-modal');\n\nexport default class DeletePermissionModal extends Component {\n static propTypes = {\n // from parent\n idmKind: PropTypes.string,\n path: PropTypes.string.isRequired,\n itemToDelete: PropTypes.shape({\n key: PropTypes.string,\n action: PropTypes.string,\n inherited: PropTypes.bool,\n inheritanceMode: PropTypes.string,\n subjects: PropTypes.arrayOf(PropTypes.string),\n permissions: PropTypes.arrayOf(PropTypes.string),\n columns: PropTypes.arrayOf(PropTypes.string),\n }).isRequired,\n visible: PropTypes.bool.isRequired,\n handleClose: PropTypes.func.isRequired,\n // from connect\n deletePermissions: PropTypes.func.isRequired,\n isPermissionDeleted: PropTypes.bool.isRequired,\n error: PropTypes.object,\n lastItemKey: PropTypes.string,\n };\n\n state = {\n confirm: false,\n };\n\n checkConfirmDisabled = () => !this.state.confirm;\n toggleConfirm = () => this.setState((prevState) => ({confirm: !prevState.confirm}));\n\n deleteItem = () => {\n const {idmKind, path, itemToDelete} = this.props;\n const {\n itemToDelete: {key},\n deletePermissions,\n } = this.props;\n return deletePermissions({\n roleKey: key,\n idmKind,\n path,\n itemToDelete,\n }).then((error) => {\n if (!error) {\n this.onClose();\n }\n });\n };\n\n onClose = () => {\n const {handleClose} = this.props;\n this.setState(() => ({confirm: false}));\n handleClose();\n };\n\n render() {\n const {confirm} = this.state;\n const {visible, itemToDelete, isPermissionDeleted, error, lastItemKey} = this.props;\n const {key, type, inherited, subjects, permissions, columns, inheritanceMode} =\n itemToDelete;\n\n return (\n <Modal\n onConfirm={this.deleteItem}\n loading={isPermissionDeleted}\n visible={visible}\n confirmText=\"Delete\"\n onCancel={this.onClose}\n title=\"Delete permissions\"\n onOutsideClick={this.onClose}\n isConfirmDisabled={this.checkConfirmDisabled}\n content={\n <div className={block()}>\n <MetaTable\n className={block('meta')}\n items={[\n {\n key: 'inherited',\n value: String(inherited),\n },\n {\n key: 'subjects',\n value: renderText(subjects?.join(', ')),\n },\n {\n key: 'permissions',\n value: renderText(permissions?.join(', ')),\n visible: type === 'object',\n },\n {\n key: 'private columns',\n value: renderText(columns?.join(', ')),\n visible: type === 'columns',\n },\n {\n key: 'inheritance mode',\n value:\n hammer.format['ReadableField'](inheritanceMode) ||\n hammer.format.NO_VALUE,\n visible: type === 'object',\n },\n ]}\n />\n\n <p className={block('delete', {confirm})}>\n <Checkbox\n size={'l'}\n content=\"Yes, I'm sure\"\n checked={confirm}\n onChange={this.toggleConfirm}\n />\n\n <Label theme=\"danger\" text=\"This action CANNOT be undone\" />\n </p>\n\n {error && key === lastItemKey && (\n <Error message=\"Could not delete permission\" error={error} />\n )}\n </div>\n }\n />\n );\n }\n}\n","import React, {useCallback, useMemo} from 'react';\nimport {compose} from 'redux';\nimport cn from 'bem-cn-lite';\n\nimport isEqual_ from 'lodash/isEqual';\n\nimport {Dialog as CommonDialog, Loader} from '@gravity-ui/uikit';\n\nimport {\n DialogField,\n FormApi,\n RoleListControlProps,\n YTDFDialog,\n prepareRoleListValue,\n roleListValueToSubjectList,\n} from '../../../components/Dialog';\n\nimport {IdmKindType} from '../../../utils/acl/acl-types';\nimport {PreparedRole} from '../../../utils/acl';\nimport {YTError} from '../../../types';\n\nimport LoadDataHandler from '../../../components/LoadDataHandler/LoadDataHandler';\nimport Error from '../../../components/Error/Error';\nimport ErrorBoundary from '../../../components/ErrorBoundary/ErrorBoundary';\nimport Button from '../../../components/Button/Button';\n\nimport withVisible, {WithVisibleProps} from '../../../hocs/withVisible';\n\nimport UIFactory from '../../../UIFactory';\nimport {ACLReduxProps} from '../ACL-connect-helpers';\n\nimport './ManageAcl.scss';\n\nconst block = cn('acl-manage');\n\nexport type ManageAclFieldsNames =\n | 'responsible'\n | 'inheritanceResponsible'\n | 'readApprovers'\n | 'auditors'\n | 'bossApproval'\n | 'inheritAcl'\n | 'comment';\n\nexport type ManageInheritanceFieldNames = 'inheritAcl' | 'inheritAcl_warning' | 'comment';\n\ninterface Props extends WithVisibleProps {\n className?: string;\n path: string;\n idmKind: IdmKindType;\n version?: string;\n normalizedPoolTree?: string;\n loading: boolean;\n auditors: Array<PreparedRole>;\n responsible: Array<PreparedRole>;\n readApprovers: Array<PreparedRole>;\n disableInheritanceResponsible?: boolean | PreparedRole;\n bossApproval?: PreparedRole;\n error: boolean;\n manageAclError?: YTError;\n errorData?: YTError;\n loadAclData: (args: {path: string; idmKind: IdmKindType}) => void;\n updateAcl: (...args: Parameters<ACLReduxProps['userPermissionsUpdateAcl']>) => Promise<void>;\n cancelUpdateAcl: (args: {idmKind: IdmKindType}) => void;\n}\n\ninterface FormValues {\n auditors: RoleListControlProps['value'];\n responsible: RoleListControlProps['value'];\n readApprovers: RoleListControlProps['value'];\n inheritanceResponsible: boolean;\n bossApproval: boolean;\n comment?: string;\n}\n\nfunction ManageAcl(props: Props) {\n const {\n className,\n path,\n idmKind,\n version,\n visible,\n loading,\n handleShow,\n handleClose,\n bossApproval,\n disableInheritanceResponsible,\n auditors,\n responsible,\n readApprovers,\n manageAclError,\n error,\n errorData,\n loadAclData,\n cancelUpdateAcl,\n updateAcl,\n } = props;\n\n const handleModalOpen = useCallback(() => {\n loadAclData({path, idmKind});\n handleShow();\n }, [handleShow, idmKind, loadAclData, path]);\n\n const handleUpdateAclClose = useCallback(() => {\n handleClose();\n cancelUpdateAcl({idmKind});\n }, [cancelUpdateAcl, handleClose, idmKind]);\n\n const onAdd = useCallback(\n (form: FormApi<FormValues, Partial<FormValues>>) => {\n const {auditors, readApprovers, responsible, inheritanceResponsible, ...rest} =\n form.getState().values;\n\n return updateAcl({\n path,\n idmKind,\n values: {\n ...rest,\n disableInheritance: !inheritanceResponsible,\n responsible: roleListValueToSubjectList(responsible),\n auditors: roleListValueToSubjectList(auditors),\n readApprovers: roleListValueToSubjectList(readApprovers),\n },\n version,\n mode: 'keep-missing-fields',\n });\n },\n [idmKind, path, updateAcl, version],\n );\n\n const manageAclDialogFields = useMemo(\n () =>\n ({\n responsible: {\n name: 'responsible',\n type: 'acl-roles',\n caption: 'Responsible',\n extras: {\n maxVisibleCount: 3,\n placeholder: 'Who should approve...',\n },\n },\n inheritanceResponsible: {\n name: 'inheritanceResponsible',\n type: 'tumbler',\n caption: 'Inherit responsible',\n },\n readApprovers: {\n name: 'readApprovers',\n type: 'acl-roles',\n caption: 'Read approvers',\n extras: {\n maxVisibleCount: 3,\n placeholder: 'Who should approve read requests...',\n },\n },\n auditors: {\n name: 'auditors',\n type: 'acl-roles',\n caption: 'Auditors',\n extras: {\n maxVisibleCount: 3,\n placeholder: 'Who should audit ACL change...',\n },\n },\n bossApproval: {\n name: 'bossApproval',\n type: 'tumbler',\n caption: 'Boss approval',\n },\n comment: {\n name: 'comment',\n caption: 'Comment for IDM',\n type: 'textarea',\n },\n }) as Record<ManageAclFieldsNames, DialogField<FormValues>>,\n [],\n );\n\n const {manageAclFields} = UIFactory.getAclApi();\n const dialogFields = useMemo(() => {\n const permissionsSettings = UIFactory.getAclPermissionsSettings();\n const idmKindConditions: {[Key in ManageAclFieldsNames]?: boolean} = {\n bossApproval: permissionsSettings[idmKind].allowBossApprovals,\n auditors: permissionsSettings[idmKind].allowAuditors,\n readApprovers: permissionsSettings[idmKind].allowReadApprovers,\n inheritanceResponsible: permissionsSettings[idmKind].allowInheritResponsibles,\n };\n\n return manageAclFields\n .filter((name) =>\n idmKindConditions[name] !== undefined ? idmKindConditions[name] : true,\n )\n .map((name) => manageAclDialogFields[name]);\n }, [idmKind, manageAclDialogFields, manageAclFields]);\n\n const renderDialog = () => {\n return (\n <YTDFDialog<FormValues>\n pristineSubmittable\n modal={false}\n visible={Boolean(visible)}\n onClose={handleUpdateAclClose}\n onAdd={onAdd}\n initialValues={{\n responsible: prepareRoleListValue(responsible),\n inheritanceResponsible: !disableInheritanceResponsible,\n readApprovers: prepareRoleListValue(readApprovers),\n auditors: prepareRoleListValue(auditors),\n bossApproval: Boolean(bossApproval),\n }}\n formExtras={{initialValuesEqual: isEqual_}}\n fields={[\n ...dialogFields,\n {\n name: 'error-block',\n type: 'block',\n extras: {\n children: manageAclError && (\n <Error message=\"Acl update failure\" error={manageAclError} />\n ),\n },\n },\n ]}\n />\n );\n };\n\n const renderForm = () => {\n return (\n <LoadDataHandler loaded={false} error={error} errorData={errorData}>\n {loading ? <Loader /> : renderDialog()}\n </LoadDataHandler>\n );\n };\n\n return !manageAclFields?.length ? null : (\n <ErrorBoundary>\n <div className={block(null, className)}>\n <Button onClick={handleModalOpen}>Manage responsibles</Button>\n\n <CommonDialog\n size=\"m\"\n open={Boolean(visible)}\n onClose={handleClose}\n className={block('modal', {loading, error})}\n >\n <CommonDialog.Header caption=\"Manage responsibles\" />\n <CommonDialog.Body>{renderForm()}</CommonDialog.Body>\n </CommonDialog>\n </div>\n </ErrorBoundary>\n );\n}\n\nexport default compose(withVisible)(ManageAcl) as unknown as React.ComponentType<\n Omit<Props, keyof WithVisibleProps>\n>;\n","import React, {useCallback, useMemo, useState} from 'react';\nimport {compose} from 'redux';\nimport cn from 'bem-cn-lite';\n\nimport {Dialog as CommonDialog, Loader} from '@gravity-ui/uikit';\n\nimport isEqual_ from 'lodash/isEqual';\n\nimport {DialogField, FormApi, YTDFDialog} from '../../../components/Dialog';\n\nimport {IdmKindType} from '../../../utils/acl/acl-types';\nimport {PreparedRole} from '../../../utils/acl';\nimport {YTError} from '../../../types';\n\nimport Button from '../../../components/Button/Button';\nimport Error from '../../../components/Error/Error';\nimport ErrorBoundary from '../../../components/ErrorBoundary/ErrorBoundary';\nimport LoadDataHandler from '../../../components/LoadDataHandler/LoadDataHandler';\n\nimport withVisible, {WithVisibleProps} from '../../../hocs/withVisible';\n\nimport './ManageInheritance.scss';\nimport UIFactory from '../../../UIFactory';\nimport ErrorBlock from '../../../components/Block/Block';\nimport {ACLReduxProps} from '../ACL-connect-helpers';\nimport {ManageInheritanceFieldNames} from '../ManageAcl/ManageAcl';\n\nconst block = cn('acl-inheritance');\n\ninterface Props extends WithVisibleProps {\n className?: string;\n path: string;\n idmKind: IdmKindType;\n version?: string;\n normalizedPoolTree?: string;\n loading: boolean;\n inheritAcl?: boolean | PreparedRole;\n error: boolean;\n manageAclError?: YTError;\n errorData?: YTError;\n loadAclData: (args: {path: string; idmKind: IdmKindType}) => void;\n updateAcl: (...args: Parameters<ACLReduxProps['userPermissionsUpdateAcl']>) => Promise<void>;\n cancelUpdateAcl: (args: {idmKind: IdmKindType}) => void;\n}\n\ninterface FormValues {\n inheritAcl: boolean;\n comment?: string;\n}\n\nfunction ManageInheritance(props: Props) {\n const {\n className,\n path,\n idmKind,\n version,\n visible,\n loading,\n handleShow,\n handleClose,\n inheritAcl,\n manageAclError,\n loadAclData,\n cancelUpdateAcl,\n updateAcl,\n error,\n errorData,\n } = props;\n\n const [hasWarning, setHasWarning] = useState(false);\n\n const handleModalOpen = useCallback(() => {\n loadAclData({path, idmKind});\n handleShow();\n }, [handleShow, idmKind, loadAclData, path]);\n\n const handleUpdateAclClose = useCallback(() => {\n handleClose();\n cancelUpdateAcl({idmKind});\n }, [cancelUpdateAcl, handleClose, idmKind]);\n\n const onAdd = useCallback(\n (form: FormApi<FormValues, Partial<FormValues>>) => {\n const {values} = form.getState();\n\n return updateAcl({\n path,\n idmKind,\n values,\n version,\n mode: 'keep-missing-fields',\n });\n },\n [idmKind, path, updateAcl, version],\n );\n\n const manageAclDialogFields = useMemo(\n () =>\n ({\n inheritAcl: {\n name: 'inheritAcl',\n type: 'tumbler',\n caption: 'Inherit ACL',\n onChange: (value) => {\n setHasWarning(!value);\n },\n },\n inheritAcl_warning: {\n name: 'inheritAcl_warning',\n type: 'block',\n extras: {\n children: hasWarning ? (\n <ErrorBlock\n type={'alert'}\n message={\n <>\n Setting <span className={block('flag')}>inherit_acl</span>{' '}\n flag to <span className={block('flag')}>false</span> may\n result in the loss of permissions sufficient to undo this\n operation.{' '}\n </>\n }\n ></ErrorBlock>\n ) : null,\n },\n },\n comment: {\n name: 'comment',\n caption: 'Comment for IDM',\n type: 'textarea',\n },\n }) as Record<ManageInheritanceFieldNames, DialogField<FormValues>>,\n [hasWarning],\n );\n\n const {manageInheritanceFields, buttonsTitle} = UIFactory.getAclApi();\n const dialogFields = useMemo(() => {\n const permissionsSettings = UIFactory.getAclPermissionsSettings();\n const {allowInheritAcl} = permissionsSettings[idmKind];\n return allowInheritAcl\n ? manageInheritanceFields.map((name) => manageAclDialogFields[name])\n : [];\n }, [idmKind, manageAclDialogFields, manageInheritanceFields]);\n\n const renderDialog = () => {\n return (\n <YTDFDialog<FormValues>\n pristineSubmittable\n modal={false}\n visible={Boolean(visible)}\n onClose={handleUpdateAclClose}\n onAdd={onAdd}\n initialValues={{\n inheritAcl: Boolean(inheritAcl),\n }}\n formExtras={{initialValuesEqual: isEqual_}}\n fields={[\n ...dialogFields,\n {\n name: 'error-block',\n type: 'block',\n extras: {\n children: manageAclError && (\n <Error message=\"Acl update failure\" error={manageAclError} />\n ),\n },\n },\n ]}\n />\n );\n };\n\n const renderForm = () => {\n return (\n <LoadDataHandler loaded={false} error={error} errorData={errorData}>\n {loading ? <Loader /> : renderDialog()}\n </LoadDataHandler>\n );\n };\n\n const {editInheritance = 'Edit inheritance'} = buttonsTitle ?? {};\n\n return !dialogFields.length ? null : (\n <ErrorBoundary>\n <div className={block(null, className)}>\n <Button onClick={handleModalOpen}>{editInheritance}</Button>\n\n <CommonDialog\n size=\"m\"\n open={Boolean(visible)}\n onClose={handleClose}\n className={block('modal', {loading, error})}\n >\n <CommonDialog.Header caption={editInheritance} />\n <CommonDialog.Body>{renderForm()}</CommonDialog.Body>\n </CommonDialog>\n </div>\n </ErrorBoundary>\n );\n}\n\nexport default compose(withVisible)(ManageInheritance) as unknown as React.ComponentType<\n Omit<Props, keyof WithVisibleProps>\n>;\n","import React, {Component} from 'react';\nimport cn from 'bem-cn-lite';\n\nimport {Flex} from '@gravity-ui/uikit';\n\nimport ErrorBoundary from '../../../components/ErrorBoundary/ErrorBoundary';\nimport {AclMode, IdmObjectType} from '../../../constants/acl';\n\nimport RequestPermissions from '../RequestPermissions/RequestPermissions';\nimport ManageAcl from '../ManageAcl/ManageAcl';\nimport {ACLReduxProps} from '../ACL-connect-helpers';\nimport {IdmKindType} from '../../../utils/acl/acl-types';\nimport ManageInheritance from '../ManageInheritance/ManageInheritance';\n\nconst block = cn('acl-user-permissions');\n\ntype Props = Pick<\n ACLReduxProps,\n | 'path'\n | 'cluster'\n | 'version'\n | 'loadAclData'\n | 'loading'\n | 'error'\n | 'errorData'\n | 'responsible'\n | 'auditors'\n | 'readApprovers'\n | 'bossApproval'\n | 'disableInheritanceResponsible'\n | 'columnGroups'\n | 'aclMode'\n> & {\n className?: string;\n idmKind: IdmKindType;\n\n // for RequestPermissions\n requestPermissions: ACLReduxProps['userPermissionsRequestFn'];\n requestPermissionsError: ACLReduxProps['userPermissionsRequestError'];\n cancelRequestPermissions: ACLReduxProps['userPermissionsCancelRequestFn'];\n\n // for ManageAcl\n inheritAcl: ACLReduxProps['disableAclInheritance'];\n\n updateAcl: ACLReduxProps['userPermissionsUpdateAcl'];\n updateAclError: ACLReduxProps['userPermissionsUpdateAclError'];\n cancelUpdateAcl: ACLReduxProps['userPermissionsCancelUpdateAcl'];\n};\n\nexport class AclActions extends Component<Props> {\n requestPermissions = async (...args: Parameters<ACLReduxProps['userPermissionsRequestFn']>) => {\n const {requestPermissions, loadAclData, path, idmKind} = this.props;\n await requestPermissions(...args);\n await loadAclData({path, idmKind});\n };\n\n updateAcl = async (...args: Parameters<ACLReduxProps['userPermissionsUpdateAcl']>) => {\n const {updateAcl, loadAclData, path, idmKind} = this.props;\n await updateAcl(...args);\n await loadAclData({path, idmKind});\n };\n\n render() {\n const {\n aclMode,\n path,\n idmKind,\n version,\n className,\n requestPermissionsError,\n cancelRequestPermissions,\n\n loadAclData,\n loading,\n error,\n errorData,\n\n inheritAcl,\n bossApproval,\n disableInheritanceResponsible,\n\n auditors,\n readApprovers,\n responsible,\n\n updateAclError,\n cancelUpdateAcl,\n cluster,\n\n columnGroups,\n } = this.props;\n\n return (\n <ErrorBoundary>\n {idmKind !== IdmObjectType.UI_EFFECTIVE_ACL && (\n <Flex className={block(null, className)} gap={4}>\n <React.Fragment>\n <RequestPermissions\n aclMode={aclMode}\n path={path}\n idmKind={idmKind}\n error={requestPermissionsError}\n requestPermissions={this.requestPermissions}\n cancelRequestPermissions={cancelRequestPermissions}\n cluster={cluster}\n columnGroups={columnGroups}\n />\n {aclMode !== AclMode.COLUMN_GROUPS_PERMISSISONS && (\n <ManageInheritance\n loadAclData={loadAclData}\n loading={loading}\n error={error}\n errorData={errorData}\n path={path}\n idmKind={idmKind}\n version={version}\n inheritAcl={inheritAcl}\n updateAcl={this.updateAcl}\n manageAclError={updateAclError}\n cancelUpdateAcl={cancelUpdateAcl}\n />\n )}\n {aclMode !== AclMode.COLUMN_GROUPS_PERMISSISONS && (\n <ManageAcl\n loadAclData={loadAclData}\n loading={loading}\n error={error}\n errorData={errorData}\n path={path}\n idmKind={idmKind}\n version={version}\n bossApproval={bossApproval}\n disableInheritanceResponsible={disableInheritanceResponsible}\n auditors={auditors}\n readApprovers={readApprovers}\n responsible={responsible}\n updateAcl={this.updateAcl}\n manageAclError={updateAclError}\n cancelUpdateAcl={cancelUpdateAcl}\n />\n )}\n </React.Fragment>\n </Flex>\n )}\n </ErrorBoundary>\n );\n }\n}\n","const SvgCircleCheck = props => <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 16 16\" {...props}><path fill=\"currentColor\" fillRule=\"evenodd\" d=\"M13.5 8a5.5 5.5 0 1 1-11 0 5.5 5.5 0 0 1 11 0M15 8A7 7 0 1 1 1 8a7 7 0 0 1 14 0m-3.9-1.55a.75.75 0 1 0-1.2-.9L7.419 8.858 6.03 7.47a.75.75 0 0 0-1.06 1.06l2 2a.75.75 0 0 0 1.13-.08z\" clipRule=\"evenodd\" /></svg>;\nexport default SvgCircleCheck;","import React from 'react';\nimport cn from 'bem-cn-lite';\nimport {Flex, Icon} from '@gravity-ui/uikit';\nimport checkSvg from '@gravity-ui/icons/svgs/circle-check.svg';\nimport xMarkSvg from '@gravity-ui/icons/svgs/circle-xmark.svg';\n\nimport format from '../../../common/hammer/format';\n\nimport {ACLReduxProps} from '../ACL-connect-helpers';\n\nimport './MyPermissions.scss';\n\nconst block = cn('yt-my-permissions');\n\nexport function MyPermissions({\n userPermissions,\n className,\n}: Pick<ACLReduxProps, 'userPermissions'> & {className?: string}) {\n const groups: Array<typeof userPermissions> = [];\n for (let i = 0; i < userPermissions?.length; i += 4) {\n groups.push(userPermissions.slice(i, i + 4));\n }\n return (\n <Flex className={block(null, className)}>\n {groups.map((items, index) => {\n return <PermissionsGroup items={items} key={index} />;\n })}\n </Flex>\n );\n}\n\nfunction PermissionsGroup({items}: {items: ACLReduxProps['userPermissions']}) {\n return (\n <Flex className={block('group')} direction=\"column\" gap={1}>\n {items.map(({type, action}) => {\n return (\n <Flex\n className={block('item', {type: action})}\n key={type}\n alignItems={'center'}\n gap={1}\n >\n <Icon\n size={16}\n className={block('icon', {\n color: action === 'deny' ? 'danger' : 'success',\n })}\n data={action === 'deny' ? xMarkSvg : checkSvg}\n />\n {format.Readable(type)}\n </Flex>\n );\n })}\n </Flex>\n );\n}\n","import React from 'react';\nimport {useDispatch, useSelector} from 'react-redux';\nimport cn from 'bem-cn-lite';\nimport {changeApproversSubjectFilter} from '../../../store/actions/acl-filters';\nimport {getApproversSubjectFilter} from '../../../store/selectors/acl-filters';\nimport {Toolbar} from '../../../components/WithStickyToolbar/Toolbar/Toolbar';\nimport Filter from '../../../components/Filter/Filter';\nimport './ApproversFilters.scss';\n\nconst block = cn('approvers-filters');\n\nexport default function ApproversFilters() {\n const dispatch = useDispatch();\n const subjectFilter = useSelector(getApproversSubjectFilter);\n\n return (\n <Toolbar\n itemsToWrap={[\n {\n node: (\n <Filter\n placeholder=\"Filter by subject\"\n onChange={(value: string) => {\n dispatch(changeApproversSubjectFilter({approversSubject: value}));\n }}\n className={block('subject-filter')}\n value={subjectFilter}\n size=\"m\"\n autofocus={false}\n />\n ),\n },\n ]}\n />\n );\n}\n","import React from 'react';\nimport {useDispatch, useSelector} from 'react-redux';\nimport cn from 'bem-cn-lite';\nimport map_ from 'lodash/map';\n\nimport format from '../../../common/hammer/format';\n\nimport {\n changeObjectPermissionsFilter,\n changeObjectSubjectFilter,\n} from '../../../store/actions/acl-filters';\nimport {\n getObjectPermissionsFilter,\n getObjectSubjectFilter,\n} from '../../../store/selectors/acl-filters';\nimport {getObjectPermissionsTypesList} from '../../../store/selectors/acl';\nimport Filter from '../../../components/Filter/Filter';\nimport Select from '../../../components/Select/Select';\nimport {Toolbar} from '../../../components/WithStickyToolbar/Toolbar/Toolbar';\nimport './ObjectPermissionsFilters.scss';\nimport {ACLReduxProps} from '../ACL-connect-helpers';\nimport {AclMode} from '../../../constants/acl';\nimport {ColumnGroupsFilter} from '../ColumnGroups/ColumnGroups';\n\nconst block = cn('object-permissions-filters');\n\ntype Props = Pick<\n ACLReduxProps,\n 'aclMode' | 'idmKind' | 'columnsFilter' | 'updateAclFilters' | 'userPermissionsAccessColumns'\n>;\n\nexport default function ObjectPermissionsFilters({\n aclMode,\n idmKind,\n columnsFilter,\n updateAclFilters,\n userPermissionsAccessColumns,\n}: Props) {\n const dispatch = useDispatch();\n const subjectFilter = useSelector(getObjectSubjectFilter);\n const selectedPermissons = useSelector(getObjectPermissionsFilter);\n const permissionList = useSelector(getObjectPermissionsTypesList(idmKind));\n\n return (\n <Toolbar\n itemsToWrap={[\n {\n node: (\n <Filter\n className={block('filter')}\n placeholder=\"Filter by subject\"\n onChange={(value: string) => {\n dispatch(\n changeObjectSubjectFilter({\n objectSubject: value,\n }),\n );\n }}\n value={subjectFilter}\n size=\"m\"\n autofocus={false}\n />\n ),\n },\n {\n shrinkable: true,\n node:\n aclMode === AclMode.COLUMN_GROUPS_PERMISSISONS ? (\n <ColumnGroupsFilter\n {...{columnsFilter, updateAclFilters, userPermissionsAccessColumns}}\n />\n ) : (\n <Select\n className={block('filter')}\n multiple\n placeholder={'filter'}\n value={selectedPermissons}\n items={map_(permissionList, (p) => ({\n value: p,\n text: format.ReadableField(p),\n }))}\n onUpdate={(value: string[]) => {\n dispatch(\n changeObjectPermissionsFilter({\n objectPermissions: value as typeof selectedPermissons,\n }),\n );\n }}\n label={'Permissions'}\n maxVisibleValuesTextLength={60}\n width=\"auto\"\n />\n ),\n },\n ]}\n />\n );\n}\n","import React from 'react';\nimport cn from 'bem-cn-lite';\n\nimport {Flex, Link} from '@gravity-ui/uikit';\n\nimport Icon from '../../components/Icon/Icon';\nimport MetaTable from '../../components/MetaTable/MetaTable';\n\nimport './SegmentControl.scss';\n\nexport type SegmentControlProps = {\n className?: string;\n groups: Array<Array<SegmentControlItem>>;\n background?: 'neutral-light';\n};\n\nexport type SegmentControlItem = {\n name: string;\n value: boolean | number;\n url?: string;\n};\n\nconst block = cn('yt-segment-control');\n\nexport function SegmentControl({className, background, groups}: SegmentControlProps) {\n return (\n <Flex inline className={block({background}, className)}>\n {groups.map((items, index) => {\n return <SegmentGroup items={items} key={index} />;\n })}\n </Flex>\n );\n}\n\nfunction SegmentGroup({items}: {items: Array<SegmentControlItem>}) {\n return (\n <MetaTable\n className={block('item')}\n rowGap={4}\n items={items.map((item) => {\n return {key: item.name, value: <SegmentValue value={item.value} url={item.url} />};\n })}\n />\n );\n}\n\nfunction SegmentValue({value, url}: Pick<SegmentControlItem, 'value' | 'url'>) {\n return (\n <Flex>\n <Value value={value} />\n {isValidUrl(url) && (\n <Link view=\"secondary\" className={block('link')} target=\"_blank\" href={url}>\n <Icon awesome=\"link\" />\n </Link>\n )}\n </Flex>\n );\n}\n\nfunction isValidUrl(url?: string): url is string {\n return Boolean(url);\n}\n\nfunction Value({value}: Pick<SegmentControlItem, 'value'>) {\n switch (typeof value) {\n case 'boolean':\n return (\n <span className={block('value', {bool: Boolean(value)})}>\n {value ? 'True' : 'False'}\n </span>\n );\n default:\n return <span className={block('value')}>{value}</span>;\n }\n}\n","import React from 'react';\n\nimport {RadioButton} from '@gravity-ui/uikit';\n\nimport {AclMode} from '../../constants/acl';\nimport format from '../../common/hammer/format';\n\nimport {ACLReduxProps} from './ACL-connect-helpers';\n\nconst ACL_MODE_OPTIONS = [AclMode.MAIN_PERMISSIONS, AclMode.COLUMN_GROUPS_PERMISSISONS].map(\n (value) => {\n return {value, content: format.ReadableField(value)};\n },\n);\n\nexport function AclModeControl({\n updateAclFilters,\n aclMode,\n}: Pick<ACLReduxProps, 'aclMode' | 'updateAclFilters'>) {\n return (\n <RadioButton\n value={aclMode}\n options={ACL_MODE_OPTIONS}\n onUpdate={(value) => {\n updateAclFilters({aclCurrentTab: value as AclMode});\n }}\n />\n );\n}\n","import React from 'react';\nimport format from '../../common/hammer/format';\nimport {VisibleValues} from '../../components/VisibleValues/VisibleValues';\nimport {renderText} from '../../components/templates/utils';\nimport unipika from '../../common/thor/unipika';\n\nexport type AclColumnsCellProps = {\n items?: Array<string>;\n expanadable?: boolean;\n};\n\nexport function AclColumnsCell({expanadable, items}: AclColumnsCellProps) {\n if (!items) {\n return format.NO_VALUE;\n }\n\n return expanadable ? (\n <VisibleValues\n width=\"max\"\n counter=\"missing-values\"\n value={\n items?.map((v) => {\n return `\"${unipika.decode(v)}\"`;\n }) ?? []\n }\n maxVisibleValues={5}\n maxTextLength={40}\n />\n ) : (\n renderText(items?.map((item) => `\"${item}\"`).join(', '))\n );\n}\n","const SvgAclInherited = props => <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 16 16\" {...props}><path fill=\"currentColor\" fillOpacity={0.3} fillRule=\"evenodd\" d=\"M12.25 2.5h-8.5a.75.75 0 0 0-.75.75v1.5c0 .414.336.75.75.75h8.5a.75.75 0 0 0 .75-.75v-1.5a.75.75 0 0 0-.75-.75m0 4.5H5v3.13c0 .69.56 1.25 1.25 1.25H7v-.13A2.25 2.25 0 0 1 9.25 9h3a2.25 2.25 0 0 1 2.25 2.25v1.5A2.25 2.25 0 0 1 12.25 15h-3a2.25 2.25 0 0 1-2.246-2.12H6.25a2.75 2.75 0 0 1-2.75-2.75V6.986a2.25 2.25 0 0 1-2-2.236v-1.5A2.25 2.25 0 0 1 3.75 1h8.5a2.25 2.25 0 0 1 2.25 2.25v1.5A2.25 2.25 0 0 1 12.25 7m-3 3.5h3a.75.75 0 0 1 .75.75v1.5a.75.75 0 0 1-.75.75h-3a.75.75 0 0 1-.75-.75v-1.5a.75.75 0 0 1 .75-.75\" clipRule=\"evenodd\" /></svg>;\nexport default SvgAclInherited;","import React from 'react';\n\nimport {IdmObjectType} from '../../../constants/acl';\nimport Link from '../../../components/Link/Link';\nimport {InheritedFrom} from '../../../utils/acl/acl-types';\nimport {makeAccountsUrl, makeNavigationLink, makeSchedulingUrl} from '../../../utils/app-url';\n\nfunction urlFromData(data?: InheritedFrom) {\n switch (data?.kind) {\n case IdmObjectType.PATH: {\n return makeNavigationLink({path: data.name});\n }\n case IdmObjectType.POOL: {\n return makeSchedulingUrl({pool: data.name, poolTree: data.poolTree!});\n }\n case IdmObjectType.ACCOUNT: {\n return makeAccountsUrl(data.name);\n }\n default:\n return undefined;\n }\n}\n\nexport function InheritanceMessage({data}: {data?: InheritedFrom}) {\n const url = urlFromData(data);\n return !url ? (\n 'Role is inherited'\n ) : (\n <React.Fragment>\n Role is inherited{' '}\n <Link routed url={url} routedPreserveLocation>\n {data?.name}\n </Link>\n </React.Fragment>\n );\n}\n","import React, {Component, Fragment} from 'react';\nimport hammer from '../../common/hammer';\nimport cn from 'bem-cn-lite';\n\nimport compact_ from 'lodash/compact';\n\nimport {Button, ClipboardButton, Flex, Icon, Loader, Popover} from '@gravity-ui/uikit';\nimport {Column} from '@gravity-ui/react-data-table';\n\nimport {AclMode, IdmObjectType} from '../../constants/acl';\n\nimport ColumnGroups from './ColumnGroups/ColumnGroups';\n\nimport DeletePermissionModal from './DeletePermissionModal/DeletePermissionModal';\nimport {AclActions} from './AclActions/AclActions';\nimport {MyPermissions} from './MyPermissinos/MyPermissions';\n\nimport LoadDataHandler from '../../components/LoadDataHandler/LoadDataHandler';\nimport ErrorBoundary from '../../components/ErrorBoundary/ErrorBoundary';\nimport DataTableYT from '../../components/DataTableYT/DataTableYT';\nimport {Tooltip} from '../../components/Tooltip/Tooltip';\nimport {SubjectCard} from '../../components/SubjectLink/SubjectLink';\n\nimport withVisible, {WithVisibleProps} from '../../hocs/withVisible';\nimport {renderText} from '../../components/templates/utils';\nimport Label from '../../components/Label/Label';\nimport {isIdmAclAvailable} from '../../config';\nimport ApproversFilters from './ApproversFilters/ApproversFilters';\nimport ObjectPermissionsFilters from './ObjectPermissionsFilters/ObjectPermissionsFilters';\nimport UIFactory, {AclRoleActionsType} from '../../UIFactory';\n\nimport {ACLReduxProps} from './ACL-connect-helpers';\nimport {PreparedAclSubject} from '../../utils/acl/acl-types';\nimport {ObjectPermissionRowWithExpand, PreparedApprover} from '../../store/selectors/acl';\n\nimport {SegmentControl, SegmentControlItem} from '../../components/SegmentControl/SegmentControl';\nimport WithStickyToolbar from '../../components/WithStickyToolbar/WithStickyToolbar';\nimport {PreparedRole, isGranted} from '../../utils/acl';\nimport {AclModeControl} from './AclModeControl';\nimport {ExpandButton} from '../../components/ExpandButton';\nimport {AclColumnsCell} from './AclColumnsCell';\n\nimport aclInheritedSvg from '../../assets/img/svg/acl-inherited.svg';\n\nimport './ACL.scss';\nimport {InheritanceMessage} from './InheritanceMessage/InheritanceMessage';\n\nconst block = cn('navigation-acl');\n\ntype Props = ACLReduxProps & WithVisibleProps & {className?: string};\n\ntype ApproverRow = PreparedApprover;\ntype PermissionsRow = ObjectPermissionRowWithExpand;\n\nclass ACL extends Component<Props> {\n static tableColumns = {\n items: {\n inherited: {\n caption: '',\n align: 'center',\n },\n subjects: {\n align: 'left',\n },\n permissions: {\n align: 'left',\n },\n columns: {\n caption: 'Private columns',\n align: 'left',\n },\n inheritance_mode: {\n align: 'left',\n },\n actions: {\n caption: '',\n align: 'right',\n },\n responsibles: {\n align: 'left',\n },\n read_approvers: {\n align: 'left',\n },\n auditors: {\n align: 'left',\n },\n approve_type: {\n align: 'left',\n caption: 'Type',\n },\n },\n sets: {\n objectDefault: {\n items: ['inherited', 'subjects', 'permissions', 'inheritance_mode', 'actions'],\n },\n columns: {\n items: ['inherited', 'subjects', 'columns'],\n },\n approvers: {\n items: ['inherited', 'subjects', 'approve_type', 'actions'],\n },\n },\n };\n\n // eslint-disable-next-line react/sort-comp\n static renderSubjectLink(item: PreparedAclSubject | PreparedApprover | PermissionsRow) {\n const {internal} = item;\n if (internal) {\n const [subject] = item.subjects;\n const [type] = item.types ?? [];\n return (\n <SubjectCard\n name={subject!}\n type={type === 'group' ? 'group' : 'user'}\n internal\n showIcon\n />\n );\n }\n\n if (item.subjectType === 'user') {\n const {subjectUrl} = item;\n const username = item.subjects[0];\n return <SubjectCard url={subjectUrl} name={username as string} showIcon />;\n }\n\n if (item.subjectType === 'tvm') {\n const tvmId = item.subjects[0];\n const {name} = item.tvmInfo ?? {};\n\n const text = `${name} (${tvmId})`;\n return (\n <div className={block('subject-with-tvm')}>\n <SubjectCard url={item.subjectUrl} name={text} type=\"tvm\" showIcon />\n <Label text=\"TVM\" />\n </div>\n );\n }\n\n const {name, url, group} = item.groupInfo || {};\n const {group_type} = item;\n return (\n <Tooltip\n content={\n group && (\n <React.Fragment>\n idm-group:{group}\n <span className={block('copy-idm-group')}>\n <ClipboardButton text={`idm-group:${group}`} size=\"s\" />\n </span>\n </React.Fragment>\n )\n }\n >\n <SubjectCard\n name={name ?? group!}\n url={url}\n type=\"group\"\n groupType={group_type}\n showIcon\n />\n </Tooltip>\n );\n }\n\n state = {\n deleteItem: {} as {key?: string},\n };\n\n componentDidMount() {\n const {path, idmKind, loadAclData} = this.props;\n\n if (path) {\n loadAclData({path, idmKind});\n }\n }\n\n componentDidUpdate(prevProps: Props) {\n const {path, idmKind, loadAclData} = this.props;\n if (prevProps.path !== path) {\n loadAclData({path, idmKind});\n }\n }\n\n getColumnsTemplates<T extends ApproverRow | PermissionsRow>({\n hasInherited,\n }: {hasInherited?: boolean} = {}) {\n const openDeleteModal = this.handleDeletePermissionClick;\n const {idmKind, toggleExpandAclSubject} = this.props;\n return {\n expand: {\n name: '',\n align: 'right',\n className: block('table-item', {type: 'expand'}),\n render({row}) {\n const expanded = 'expanded' in row ? row.expanded : undefined;\n return expanded === undefined ? null : (\n <ExpandButton\n inline\n expanded={expanded}\n toggleExpanded={() => {\n toggleExpandAclSubject(row.subjects[0]);\n }}\n qa=\"acl-expand\"\n />\n );\n },\n width: 36,\n } as Column<T>,\n subjects: {\n name: 'Subjects',\n align: 'left',\n className: block('table-item', {type: 'subjects'}),\n render({row}) {\n const {requestPermissionsFlags = {}} = UIFactory.getAclApi();\n\n const {inheritedFrom} = row;\n\n const level = 'level' in row ? row.level : undefined;\n return (\n <Flex className={block('subject', {level: String(level)})} wrap gap={1}>\n {Boolean(hasInherited) && (\n <Popover\n className={block('inherited', {hidden: !row.inherited})}\n content={<InheritanceMessage data={inheritedFrom} />}\n >\n <Icon\n className={block('inherited-icon')}\n data={aclInheritedSvg}\n size={16}\n />\n </Popover>\n )}\n <Flex grow wrap gap={1}>\n {ACL.renderSubjectLink(row)}\n </Flex>\n {Object.keys(requestPermissionsFlags).map((key, index) => {\n const flagInfo = requestPermissionsFlags[key];\n return (\n <React.Fragment key={index}>\n {flagInfo.renderIcon(row)}\n </React.Fragment>\n );\n })}\n </Flex>\n );\n },\n } as Column<T>,\n permissions: {\n name: 'Permissions',\n align: 'left',\n className: block('table-item', {type: 'permissions'}),\n render({row}) {\n const action = row.action === 'deny' ? 'deny' : 'allow';\n const theme = action === 'deny' ? 'danger' : 'success';\n\n return (\n <div className={block('permissions', {type: row.action})}>\n <Label className={block('action-label')} theme={theme}>\n {action}\n </Label>\n <AclColumnsCell\n items={row.permissions?.map(hammer.format.Readable)}\n expanadable={'expanded' in row}\n />\n </div>\n );\n },\n } as Column<T>,\n inheritance_mode: {\n name: 'Inheritance mode',\n render({row}) {\n const {inheritance_mode: mode} = row;\n return mode === undefined\n ? hammer.format.NO_VALUE\n : renderText(hammer.format['ReadableField'](mode));\n },\n align: 'left',\n className: block('table-item', {type: 'inheritance-mode'}),\n } as Column<T>,\n actions: {\n name: 'actions',\n header: '',\n align: 'right',\n className: block('table-item', {type: 'actions'}),\n render({row}) {\n const expanded = 'expanded' in row ? row.expanded : undefined;\n const RoleActions = UIFactory.getComponentForAclRoleActions();\n return expanded !== undefined\n ? null\n : RoleActions !== undefined && (\n <RoleActions\n role={row}\n idmKind={idmKind}\n onDelete={openDeleteModal}\n />\n );\n },\n } as Column<T>,\n approve_type: {\n name: 'Type',\n align: 'left',\n className: block('table-item', {type: 'approve-type'}),\n render({row}) {\n return hammer.format['Readable'](row.type);\n },\n } as Column<T>,\n columns: {\n name: 'Private columns',\n align: 'left',\n className: block('table-item', {type: 'columns'}),\n render({row}) {\n return <AclColumnsCell items={row.columns} expanadable={'expanded' in row} />;\n },\n } as Column<T>,\n };\n }\n\n handleDeletePermissionClick = (deleteItem: AclRoleActionsType) => {\n const {handleShow} = this.props;\n this.setState({deleteItem}, handleShow);\n };\n\n handleCloseDeleteModal = () => {\n const {handleClose} = this.props;\n this.setState({deleteItem: {}}, handleClose);\n };\n\n rowClassNameByFlags<T extends ApproverRow | PermissionsRow>(item: T) {\n const {\n isUnrecognized: unrecognized,\n isDepriving: depriving,\n isRequested: requested,\n isApproved: approved,\n isMissing: missing,\n } = item;\n return block('row', {\n unrecognized: unrecognized || missing,\n depriving,\n requested,\n approved,\n });\n }\n\n renderApprovers() {\n const {hasApprovers, approversFiltered, loaded} = this.props;\n const tableColumns = (['subjects', 'approve_type', 'actions'] as const).map(\n (name) => this.getColumnsTemplates<ApproverRow>({hasInherited: true})[name],\n );\n return (\n hasApprovers && (\n <ErrorBoundary>\n <div className={block('approvers')}>\n <div className=\"elements-heading elements-heading_size_xs\">\n Responsibles\n <Button className={block('sync-with-col-groups')}>\n Hidden button to sync offsets with column groups\n </Button>\n </div>\n <WithStickyToolbar\n padding=\"skip-vertical\"\n toolbar={<ApproversFilters />}\n bottomMargin=\"regular\"\n content={\n <DataTableYT\n data={approversFiltered}\n loaded={loaded}\n noItemsText=\"Thre are no any responsibles\"\n columns={tableColumns}\n theme={'yt-borderless'}\n rowClassName={this.rowClassNameByFlags}\n settings={{\n sortable: false,\n displayIndices: false,\n }}\n />\n }\n />\n </div>\n </ErrorBoundary>\n )\n );\n }\n\n renderObjectPermissions() {\n const {\n aclMode,\n loaded,\n loading,\n mainPermissions,\n columnsPermissions,\n idmKind,\n columnsFilter,\n updateAclFilters,\n userPermissionsAccessColumns,\n } = this.props;\n const useColumns = aclMode === AclMode.COLUMN_GROUPS_PERMISSISONS;\n\n const {items, hasDenyAction, hasExpandable, hasInherited} = useColumns\n ? columnsPermissions\n : mainPermissions;\n const extraColumns = useColumns\n ? ([...(hasDenyAction ? ['permissions' as const] : []), 'columns'] as const)\n : (['permissions'] as const);\n\n const tableColumns: Array<Column<PermissionsRow>> = (\n [\n ...(hasExpandable ? ['expand' as const] : []),\n 'subjects',\n ...extraColumns,\n 'inheritance_mode',\n 'actions',\n ] as const\n ).map((name) => this.getColumnsTemplates<PermissionsRow>({hasInherited})[name]);\n\n return (\n <ErrorBoundary>\n <div className={block('object-permissions')}>\n <div className=\"elements-heading elements-heading_size_xs\">\n {useColumns ? 'Private columns permissions' : 'Object permissions'}\n </div>\n <WithStickyToolbar\n padding=\"skip-vertical\"\n bottomMargin=\"regular\"\n toolbar={\n <ObjectPermissionsFilters\n {...{\n aclMode,\n idmKind,\n columnsFilter,\n updateAclFilters,\n userPermissionsAccessColumns,\n }}\n />\n }\n content={\n <DataTableYT\n noItemsText={\n aclMode === AclMode.COLUMN_GROUPS_PERMISSISONS\n ? 'There are no any column group permissions'\n : 'There are no any object permissions'\n }\n data={items}\n loading={loading}\n loaded={loaded}\n columns={tableColumns}\n theme={'yt-borderless'}\n rowClassName={this.rowClassNameByFlags}\n settings={{\n sortable: false,\n displayIndices: false,\n }}\n />\n }\n />\n </div>\n </ErrorBoundary>\n );\n }\n\n renderColumnGroups() {\n const {\n loaded,\n columnGroups,\n idmKind,\n path,\n loadAclData,\n cluster,\n nodeType,\n updateAclFilters,\n columnsFilter,\n columnGroupNameFilter,\n userPermissionsAccessColumns,\n } = this.props;\n const props = {\n path,\n loadAclDataFn: () => loadAclData({path, idmKind}),\n columnGroups,\n cluster,\n allowEdit: UIFactory.getAclApi().isAllowedToEditColumnGroups({nodeType}),\n updateAclFilters,\n columnsFilter,\n columnGroupNameFilter,\n userPermissionsAccessColumns,\n };\n return isIdmAclAvailable() && idmKind === IdmObjectType.PATH ? (\n <ColumnGroups loaded={loaded} {...props} />\n ) : null;\n }\n\n deletePermissionsFn = async (...args: Parameters<Props['deletePermissionsFn']>) => {\n const {deletePermissionsFn, loadAclData, idmKind, path} = this.props;\n const res = await deletePermissionsFn(...args);\n await loadAclData({path, idmKind});\n return res;\n };\n\n renderContent() {\n const {\n disableAclInheritance,\n visible,\n bossApproval,\n disableInheritanceResponsible,\n path,\n idmKind,\n version,\n userPermissionsRequestError,\n userPermissionsRequestFn,\n userPermissionsCancelRequestFn,\n isPermissionDeleted,\n deletePermissionsLastItemKey,\n deletePermissionsError,\n loadAclData,\n loading,\n loaded,\n error,\n errorData,\n auditors,\n readApprovers,\n responsible,\n userPermissionsUpdateAcl,\n userPermissionsUpdateAclError,\n userPermissionsCancelUpdateAcl,\n cluster,\n columnGroups,\n aclMode,\n updateAclFilters,\n } = this.props;\n const {deleteItem} = this.state;\n\n const hasColumns = Boolean(aclMode);\n const useColumns = aclMode === AclMode.COLUMN_GROUPS_PERMISSISONS;\n\n return (\n <Fragment>\n <Flex className={block('toolbar', {'has-columns': hasColumns})}>\n {hasColumns && (\n <Flex grow>\n <AclModeControl {...{aclMode, updateAclFilters}} />\n </Flex>\n )}\n {loaded && (\n <AclActions\n cluster={cluster}\n className={block('acl-actions')}\n path={path}\n idmKind={idmKind}\n version={version}\n requestPermissions={userPermissionsRequestFn}\n requestPermissionsError={userPermissionsRequestError}\n cancelRequestPermissions={userPermissionsCancelRequestFn}\n loadAclData={loadAclData}\n loading={loading}\n error={error}\n errorData={errorData}\n inheritAcl={!disableAclInheritance}\n bossApproval={bossApproval}\n disableInheritanceResponsible={disableInheritanceResponsible}\n auditors={auditors}\n readApprovers={readApprovers}\n responsible={responsible}\n updateAcl={userPermissionsUpdateAcl}\n updateAclError={userPermissionsUpdateAclError}\n cancelUpdateAcl={userPermissionsCancelUpdateAcl}\n columnGroups={columnGroups}\n aclMode={aclMode}\n />\n )}\n </Flex>\n {this.renderMeta()}\n\n {useColumns ? this.renderColumnGroups() : this.renderApprovers()}\n {this.renderObjectPermissions()}\n\n <DeletePermissionModal\n idmKind={idmKind}\n path={path}\n key={deleteItem?.key}\n visible={visible}\n itemToDelete={deleteItem}\n handleClose={this.handleCloseDeleteModal}\n isPermissionDeleted={isPermissionDeleted}\n lastItemKey={deletePermissionsLastItemKey}\n deletePermissions={this.deletePermissionsFn}\n error={deletePermissionsError}\n />\n </Fragment>\n );\n }\n\n renderMeta() {\n const {\n idmKind,\n disableAclInheritance,\n bossApproval,\n disableInheritanceResponsible,\n userPermissions,\n } = this.props;\n const {allowBossApprovals, allowInheritAcl, allowInheritResponsibles} =\n UIFactory.getAclPermissionsSettings()[idmKind];\n\n function toSegmentItem(name: string, role?: boolean | PreparedRole, invert?: boolean) {\n const value = isGranted(role);\n return {\n name,\n value: invert ? !value : value,\n url: 'boolean' === typeof role ? undefined : role?.idmLink,\n };\n }\n\n const segments: Array<SegmentControlItem> = compact_([\n allowInheritAcl && toSegmentItem('Inherit ACL', disableAclInheritance, true),\n isIdmAclAvailable() &&\n allowBossApprovals &&\n toSegmentItem('Boss approval', bossApproval),\n isIdmAclAvailable() &&\n allowInheritResponsibles &&\n toSegmentItem('Inherit responsibles', disableInheritanceResponsible, true),\n ]);\n\n const {mainPermissions, columnsPermissions, approversFiltered, columnGroups, aclMode} =\n this.props;\n\n const counters: Array<SegmentControlItem> =\n aclMode === AclMode.COLUMN_GROUPS_PERMISSISONS\n ? [\n {name: 'Column groups', value: columnGroups.length},\n {name: 'Column permissions', value: columnsPermissions.count},\n ]\n : [\n {name: 'Responsibles', value: approversFiltered.length},\n {name: 'Object permissions', value: mainPermissions.count},\n ];\n\n const hasColumns = Boolean(aclMode);\n return (\n <Flex className={block('meta')} wrap alignItems=\"center\">\n <SegmentControl\n className={block('meta-item')}\n background=\"neutral-light\"\n groups={[segments, counters].filter(({length}) => length > 0)}\n />\n {aclMode !== AclMode.COLUMN_GROUPS_PERMISSISONS && (\n <MyPermissions\n className={block('meta-item', {'with-buttons': !hasColumns})}\n userPermissions={userPermissions}\n />\n )}\n </Flex>\n );\n }\n\n render() {\n const {loading, loaded, className} = this.props;\n const initialLoading = loading && !loaded;\n\n return (\n <ErrorBoundary>\n <LoadDataHandler {...this.props}>\n <div className={block({loading: initialLoading}, className)}>\n {initialLoading ? <Loader /> : this.renderContent()}\n </div>\n </LoadDataHandler>\n </ErrorBoundary>\n );\n }\n}\n\nexport default withVisible(ACL);\n","import React from 'react';\nimport cn from 'bem-cn-lite';\n\nimport {Button} from '@gravity-ui/uikit';\n\nimport Icon from '../../components/Icon/Icon';\nimport {IdmKindType} from '../../utils/acl/acl-types';\nimport {AclRoleActionsType} from '../../UIFactory';\n\nimport './RoleActions.scss';\n\nconst block = cn('navigation-acl');\n\nexport interface Props {\n idmKind?: IdmKindType;\n role: AclRoleActionsType;\n onDelete?: (role: AclRoleActionsType) => void;\n}\n\nexport default function RoleActions(props: Props) {\n const {role, onDelete} = props;\n const {inherited} = role;\n\n const handleDelete = React.useCallback(() => {\n onDelete?.(role);\n }, [onDelete, role]);\n\n return (\n <React.Fragment>\n {!inherited && onDelete !== undefined && (\n <Button className={block('button')} onClick={() => handleDelete()}>\n <Icon awesome=\"trash-alt\" />\n </Button>\n )}\n </React.Fragment>\n );\n}\n","import {ConnectedProps, connect} from 'react-redux';\n\nimport {\n getAllAccessColumnsNames,\n getAllColumnGroupsActual,\n getAllUserPermissions,\n getApproversFilteredAndOrdered,\n getHasApprovers,\n getIdmManageAclRequestError,\n getIdmPathVersion,\n getIdmPermissionsRequestError,\n getLastDeletedPermissionKey,\n getNotInheritedAuditors,\n getNotInheritedReadApprovers,\n getNotInheritedResponsibles,\n getObjectPermissionsAggregated,\n isPermissionDeleted,\n permissionDeletionError,\n} from '../../store/selectors/acl';\n\nimport {getType} from '../../store/selectors/navigation';\n\nimport {\n getAclCurrentTab,\n getAclFilterColumnGroupName,\n getAclFilterColumns,\n} from '../../store/selectors/acl-filters';\n\nimport {\n cancelRequestPermissions,\n cancelUpdateAcl,\n deletePermissions,\n loadAclData,\n requestPermissions,\n updateAcl,\n} from '../../store/actions/acl';\n\nimport {getCluster} from '../../store/selectors/global';\nimport {normalizeIdmParams} from '../../utils/acl';\nimport {IdmObjectType} from '../../constants/acl';\nimport {IdmKindType} from '../../utils/acl/acl-types';\nimport {RootState} from '../../store/reducers';\nimport {toggleExpandAclSubject, updateAclFilters} from '../../store/actions/acl-filters';\n\nimport ACL from './ACL';\n\nexport type ACLOwnProps = {\n path: string;\n};\n\nconst makeAclMapStateToProps = (inputIdmKind: IdmKindType) => {\n return (state: RootState, ownProps: ACLOwnProps) => {\n const normalizedParams = normalizeIdmParams(inputIdmKind, ownProps.path);\n const {\n idmKind,\n path,\n pool_tree: normalizedPoolTree,\n userPermissionsPath,\n } = normalizedParams;\n\n const aclRequestOptions = {\n userPermissionsPath,\n };\n\n const {\n loaded,\n loading,\n error,\n errorData,\n disableAclInheritance,\n bossApproval,\n disableInheritanceResponsible,\n } = state.acl[idmKind];\n\n const hasApprovers = getHasApprovers(state, idmKind);\n const approversFiltered = getApproversFilteredAndOrdered(state, idmKind);\n const {mainPermissions, columnsPermissions} = getObjectPermissionsAggregated(\n state,\n idmKind,\n );\n const columnGroups = getAllColumnGroupsActual(state, idmKind);\n const userPermissions = getAllUserPermissions(state, idmKind);\n\n const columnsFilter = getAclFilterColumns(state);\n\n const auditors = getNotInheritedAuditors(state, idmKind);\n const readApprovers = getNotInheritedReadApprovers(state, idmKind);\n const responsible = getNotInheritedResponsibles(state, idmKind);\n\n const nodeType = getType(state);\n\n return {\n cluster: getCluster(state),\n\n loading,\n loaded,\n error,\n errorData,\n\n path,\n nodeType,\n version: getIdmPathVersion(state, idmKind),\n idmKind,\n disableAclInheritance,\n bossApproval,\n disableInheritanceResponsible,\n columnGroups,\n mainPermissions,\n columnsPermissions,\n hasApprovers,\n approversFiltered,\n auditors,\n readApprovers,\n responsible,\n\n userPermissions,\n userPermissionsRequestError: getIdmPermissionsRequestError(state, idmKind),\n userPermissionsAccessColumns: getAllAccessColumnsNames(state, idmKind),\n userPermissionsUpdateAclError: getIdmManageAclRequestError(state, idmKind),\n\n isPermissionDeleted: isPermissionDeleted(state, idmKind),\n deletePermissionsLastItemKey: getLastDeletedPermissionKey(state, idmKind),\n deletePermissionsError: permissionDeletionError(state, idmKind),\n\n columnsFilter,\n columnGroupNameFilter: getAclFilterColumnGroupName(state),\n\n normalizedPoolTree,\n aclRequestOptions,\n\n aclMode: idmKind !== 'path' ? undefined : getAclCurrentTab(state),\n };\n };\n};\n\nconst makeAclMapDispatchToProps = () => ({\n loadAclData,\n userPermissionsRequestFn: requestPermissions,\n userPermissionsCancelRequestFn: cancelRequestPermissions,\n userPermissionsUpdateAcl: updateAcl,\n userPermissionsCancelUpdateAcl: cancelUpdateAcl,\n deletePermissionsFn: deletePermissions,\n updateAclFilters,\n toggleExpandAclSubject,\n});\n\ntype StateProps = ReturnType<ReturnType<typeof makeAclMapStateToProps>>;\ntype DispatchProps = ReturnType<typeof makeAclMapDispatchToProps>;\n\nfunction mergeProps(stateProps: StateProps, dispatchProps: DispatchProps, ownProps: ACLOwnProps) {\n const {normalizedPoolTree, aclRequestOptions} = stateProps;\n const {\n loadAclData,\n deletePermissionsFn,\n userPermissionsRequestFn,\n userPermissionsUpdateAcl,\n ...restDispatchProps\n } = dispatchProps;\n return {\n ...ownProps,\n ...stateProps,\n ...restDispatchProps,\n loadAclData: (params: Parameters<typeof loadAclData>[0]) => {\n return loadAclData({...params}, {normalizedPoolTree}, aclRequestOptions);\n },\n deletePermissionsFn: (params: Parameters<typeof deletePermissionsFn>[0]) => {\n return deletePermissionsFn(params, {normalizedPoolTree});\n },\n userPermissionsRequestFn: (params: Parameters<typeof userPermissionsRequestFn>[0]) => {\n return userPermissionsRequestFn(params, {normalizedPoolTree});\n },\n userPermissionsUpdateAcl: (params: Parameters<typeof userPermissionsUpdateAcl>[0]) => {\n return userPermissionsUpdateAcl(params, {normalizedPoolTree});\n },\n };\n}\n\nfunction createACLConnector(idmKind: IdmKindType) {\n const mapStateToProps = makeAclMapStateToProps(idmKind);\n const mapDispatchToProps = makeAclMapDispatchToProps();\n return connect(mapStateToProps, mapDispatchToProps, mergeProps);\n}\n\nfunction createACLComponent(idmKind: IdmKindType) {\n return createACLConnector(idmKind)(ACL) as unknown as React.ComponentType<{path: string}>;\n}\n\ntype ConnectorType = ReturnType<typeof createACLConnector>;\n\nexport type ACLReduxProps = ConnectedProps<ConnectorType>;\n\nexport const AccessContentAcl = createACLComponent(IdmObjectType.ACCESS_CONTROL_OBJECT);\n\nexport const NavigationAcl = createACLComponent(IdmObjectType.PATH);\n\nexport const PoolAclPanel = createACLComponent(IdmObjectType.POOL);\n\nexport const AccountsAcl = createACLComponent(IdmObjectType.ACCOUNT);\n\nexport const BundleAcl = createACLComponent(IdmObjectType.TABLET_CELL_BUNDLE);\n\nexport {default as RoleActions} from './RoleActions';\n","import React, {Component} from 'react';\nimport cn from 'bem-cn-lite';\n\nimport indexOf_ from 'lodash/indexOf';\nimport isEmpty_ from 'lodash/isEmpty';\nimport map_ from 'lodash/map';\n\nimport {Checkbox} from '@gravity-ui/uikit';\n\nimport format from '../../../../common/hammer/format';\nimport {YTPermissionTypeUI} from '../../../../utils/acl/acl-api';\n\nimport './PermissionsControl.scss';\n\nconst block = cn('acl-permissions-control');\n\ninterface Props {\n value: Record<string, Array<YTPermissionTypeUI>>;\n onChange: (value: Props['value']) => void;\n disabled?: boolean;\n choices?: Array<Array<YTPermissionTypeUI>>;\n disabledChoices?: Array<number>; // array of indices\n validate?: (value: Props['value']) => string | undefined;\n\n error?: string;\n}\n\ninterface State {\n errorMessage?: string;\n}\n\nexport default class PermissionsControl extends Component<Props, State> {\n static getChoiceName(choice: Array<string>) {\n return choice.join('/');\n }\n\n // eslint-disable-next-line @typescript-eslint/member-ordering\n static hasErrorRenderer = true;\n\n static getDefaultValue = () => ({});\n static isEmpty(value: Props['value']) {\n return isEmpty_(value);\n }\n\n state: State = {};\n\n handleCheckboxChange = (\n permissionName: string,\n permissionsToSet: Array<YTPermissionTypeUI>,\n ) => {\n const {value, onChange} = this.props;\n const {[permissionName]: permissions, ...rest} = value || {};\n\n const updatedValue = permissions ? rest : {...rest, [permissionName]: permissionsToSet};\n onChange(updatedValue);\n };\n\n renderPermissionCheckbox(\n permissionName: string,\n permissionsToSet: Array<YTPermissionTypeUI>,\n index: number,\n ) {\n const {value, disabled, disabledChoices} = this.props;\n const itemDisabled = disabled || indexOf_(disabledChoices, index) !== -1;\n\n return (\n <Checkbox\n checked={Boolean(value?.[permissionName])}\n key={permissionName}\n content={format.ReadableField(permissionName)}\n onChange={() => this.handleCheckboxChange(permissionName, permissionsToSet)}\n disabled={itemDisabled}\n className={block('item')}\n />\n );\n }\n\n renderChoices(choices?: Required<Props>['choices']) {\n return map_(choices, (item, index) => {\n const name = PermissionsControl.getChoiceName(item);\n return (\n <React.Fragment key={index}>\n {this.renderPermissionCheckbox(name, item, index)}\n </React.Fragment>\n );\n });\n }\n\n render() {\n const {choices, error} = this.props;\n\n return (\n <div className={block()}>\n {this.renderChoices(choices)}\n {error && <div className={block('error-message')}>{error}</div>}\n </div>\n );\n }\n}\n","import {compose} from 'redux';\nimport cn from 'bem-cn-lite';\nimport React, {useCallback, useMemo} from 'react';\nimport {DialogField, FormApi, YTDFDialog, makeErrorFields} from '../../../components/Dialog';\nimport ErrorBoundary from '../../../components/ErrorBoundary/ErrorBoundary';\nimport {Button, ButtonProps} from '@gravity-ui/uikit';\nimport PermissionsControl from '../RequestPermissions/PermissionsControl/PermissionsControl';\n\nimport withVisible, {WithVisibleProps} from '../../../hocs/withVisible';\n\nimport './RequestPermissions.scss';\nimport {YTError} from '../../../types';\nimport {AclMode, INHERITANCE_MODE_TYPES, IdmObjectType} from '../../../constants/acl';\n\nimport UIFactory from '../../../UIFactory';\nimport hammer from '../../../common/hammer';\nimport map_ from 'lodash/map';\n\nimport {docsUrl} from '../../../config';\nimport {makeLink} from '../../../utils/utils';\nimport {AclColumnGroup, IdmKindType} from '../../../utils/acl/acl-types';\nimport {YTPermissionTypeUI} from '../../../utils/acl/acl-api';\nimport {PermissionToRequest} from '../../../store/actions/acl';\n\nconst block = cn('acl-request-permissions');\n\nconst FLAG_NAME_PREFIX = '##_flag_';\n\nexport type RequestPermissionsFieldsNames =\n | 'cluster'\n | 'path'\n | 'permissions'\n | 'subjects'\n | 'duration'\n | 'commentHeader'\n | 'comment'\n | 'inheritance_mode'\n | 'permissionFlags'\n | 'readColumns'\n | 'readColumnGroup';\n\nexport interface Props extends WithVisibleProps {\n className?: string;\n buttonClassName?: string;\n buttonProps?: ButtonProps;\n cluster?: string;\n normalizedPoolTree?: string;\n path: string;\n idmKind: IdmKindType;\n requestPermissions: (params: {\n values: PermissionToRequest;\n idmKind: IdmKindType;\n }) => Promise<void>;\n cancelRequestPermissions: (params: {idmKind: IdmKindType}) => unknown;\n error?: YTError;\n onSuccess?: () => void;\n columnGroups?: Array<AclColumnGroup>;\n aclMode?: AclMode;\n}\n\ntype FormValues = {\n path: string;\n cluster: string;\n permissions: {[x: string]: Array<YTPermissionTypeUI>} | null;\n subjects: Array<{\n value: string;\n type: 'users' | 'groups' | 'app';\n text?: string;\n }>;\n inheritance_mode?: string;\n duration?: Date;\n comment?: string;\n readColumnGroup?: string;\n} & Record<`${typeof FLAG_NAME_PREFIX}${string}`, boolean>;\n\nconst SHORT_TITLE: Partial<Record<IdmKindType, string>> = {\n access_control_object: 'ACO',\n};\n\nconst COLUMNS_FELDS = new Set<RequestPermissionsFieldsNames>(['readColumns', 'readColumnGroup']);\n\nfunction RequestPermissions(props: Props) {\n const {\n aclMode,\n visible,\n handleShow,\n handleClose,\n className,\n buttonClassName,\n path,\n idmKind,\n requestPermissions,\n cancelRequestPermissions,\n error,\n cluster,\n columnGroups,\n buttonProps,\n /*denyColumns,*/\n } = props;\n\n const onClose = useCallback(() => {\n handleClose();\n cancelRequestPermissions({idmKind});\n }, [handleClose, cancelRequestPermissions, idmKind]);\n\n const {\n requestPermissionsFields,\n requestPermissionsFlags = {},\n buttonsTitle,\n } = UIFactory.getAclApi();\n\n const onAdd = useCallback(\n (form: FormApi<FormValues, Partial<FormValues>>) => {\n const values = {...form.getState().values};\n const permissionFlags: Record<string, boolean> = {};\n Object.keys(requestPermissionsFlags).forEach((k) => {\n const key = `${FLAG_NAME_PREFIX}${k}` as keyof typeof values;\n permissionFlags[k] = Boolean(values[key]);\n\n delete values[key];\n });\n return requestPermissions({\n values: {...values, permissionFlags},\n idmKind,\n });\n },\n [requestPermissions, idmKind],\n );\n\n const currentCaption = `Current ${SHORT_TITLE[idmKind] ?? idmKind}`;\n const {permissionsToRequest, getAvailablePermissions} =\n UIFactory.getAclPermissionsSettings()[idmKind];\n\n const [availablePermissions, setAvailablePermissions] = React.useState<\n typeof permissionsToRequest | undefined\n >(undefined);\n\n const onShow = useCallback(async () => {\n try {\n const value = await getAvailablePermissions?.({path});\n setAvailablePermissions(value);\n } catch {\n setAvailablePermissions(undefined);\n } finally {\n handleShow();\n }\n }, [path, handleShow, getAvailablePermissions]);\n\n const firstItemDisabled = idmKind === IdmObjectType.ACCOUNT;\n\n const choices = availablePermissions ?? permissionsToRequest;\n const permissions = firstItemDisabled ? valueWithCheckedFirstChoice(choices) : null;\n\n const availableFields: Record<\n RequestPermissionsFieldsNames,\n Omit<DialogField, 'name'>\n > = useMemo(() => {\n const disabledChoices = idmKind === IdmObjectType.ACCOUNT ? [0] : undefined;\n return {\n cluster: {\n type: 'plain',\n caption: 'Cluster',\n extras: {\n className: block('cluster'),\n },\n },\n path: {\n type: 'text',\n caption: currentCaption,\n extras: {\n disabled: !error,\n },\n },\n permissions: {\n type: 'permissions',\n caption: 'Permissions',\n required: true,\n tooltip: (\n <>\n {docsUrl(\n makeLink(UIFactory.docsUrls['acl:permissions'], 'Permissions types'),\n 'Permissions types',\n )}\n </>\n ),\n extras: {\n choices: choices,\n disabledChoices,\n },\n },\n readColumns: {\n type: 'acl-columns',\n caption: 'Read columns',\n required: true,\n },\n readColumnGroup: {\n type: 'acl-column-group',\n caption: 'Read column group',\n required: true,\n extras: {\n columnGroups,\n },\n },\n subjects: {\n type: 'acl-subjects',\n caption: 'Subjects',\n required: false,\n extras: {\n placeholder: 'Enter group name, user name or login...',\n allowedTypes: ['users', 'groups', 'app'],\n },\n },\n duration: {\n type: 'before-date',\n caption: 'Duration',\n },\n commentHeader: {\n type: 'block',\n className: block('modal-comments-header'),\n extras: {\n children: (\n <React.Fragment>\n <div className={'is-dialog__label'}>Comment</div>\n <div className={block('comment-notice')}>\n Teams and people can be requested through the IDM after the access\n group is created. If you have a more complex case please describe it\n in the comments.\n </div>\n </React.Fragment>\n ),\n },\n },\n comment: {\n type: 'textarea',\n className: block('modal-comments'),\n },\n inheritance_mode: {\n type: 'yt-select-single',\n caption: 'Inheritance mode',\n extras: {\n items: map_(INHERITANCE_MODE_TYPES, (value) => ({\n value: value,\n text: hammer.format['ReadableField'](value),\n })),\n hideClear: true,\n hideFilter: true,\n with: 'max',\n },\n },\n permissionFlags: {\n type: 'block',\n caption: 'Permission flags',\n extras: {children: 'Not implemented'},\n },\n };\n }, [choices, currentCaption, error, idmKind]);\n\n const useColumns = aclMode === AclMode.COLUMN_GROUPS_PERMISSISONS;\n\n const dialogFields = useMemo(() => {\n let flagsIndex = -1;\n const res = requestPermissionsFields.reduce(\n (acc, field) => {\n const allowField = useColumns ? field !== 'permissions' : !COLUMNS_FELDS.has(field);\n if (!allowField) {\n return acc;\n }\n\n if (field === 'permissionFlags') {\n flagsIndex = acc.length;\n }\n\n acc.push({\n ...availableFields[field],\n name: field,\n } as DialogField<FormValues>);\n\n return acc;\n },\n [] as Array<DialogField<FormValues>>,\n );\n\n if (flagsIndex !== -1) {\n const flags: typeof res = Object.keys(requestPermissionsFlags ?? []).map((key) => {\n const flagInfo = requestPermissionsFlags[key];\n return {\n type: 'tumbler',\n caption: hammer.format.ReadableField(flagInfo?.title),\n name: `${FLAG_NAME_PREFIX}${key}`,\n tooltip: flagInfo.help,\n initialValue: flagInfo.initialValue,\n };\n });\n res.splice(flagsIndex, 1, ...flags);\n }\n return res;\n }, [availableFields, requestPermissionsFields, useColumns]);\n\n const {editAcl = 'Edit ACL', editColumnsAcl = 'Edit columns ACL'} = buttonsTitle ?? {};\n const title = useColumns ? editColumnsAcl : editAcl;\n\n return !choices?.length ? null : (\n <ErrorBoundary>\n <div className={block(null, className)}>\n <Button className={buttonClassName} view=\"action\" {...buttonProps} onClick={onShow}>\n {title}\n </Button>\n\n <YTDFDialog<FormValues>\n pristineSubmittable\n onClose={onClose}\n className={block('modal')}\n visible={Boolean(visible)}\n onAdd={onAdd}\n headerProps={{\n title,\n }}\n initialValues={{\n path,\n permissions,\n cluster,\n inheritance_mode: INHERITANCE_MODE_TYPES.OBJECT_AND_DESCENDANTS,\n }}\n validate={(values) => {\n const subjects = values.subjects;\n const validationError: Record<\n keyof Pick<FormValues, 'subjects'>,\n string | undefined\n > = {\n subjects: undefined,\n };\n\n if (!subjects.length) {\n const errorMessage = 'At least one subject should be selected.';\n validationError.subjects = errorMessage;\n }\n\n return validationError;\n }}\n fields={[...dialogFields, ...makeErrorFields([error])]}\n />\n </div>\n </ErrorBoundary>\n );\n}\n\nexport default compose(withVisible)(RequestPermissions) as unknown as React.ComponentType<\n Omit<Props, keyof WithVisibleProps>\n>;\n\nfunction valueWithCheckedFirstChoice(choices: string | any[]) {\n if (!choices || choices.length < 1) {\n return {};\n }\n\n return {\n [PermissionsControl.getChoiceName(choices[0])]: choices[0],\n };\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport {getDisplayName} from '../utils';\n\nexport interface WithVisibleProps {\n visible?: boolean;\n handleShow: () => void;\n handleClose: () => void;\n toggleVisible: () => void;\n}\n\nexport interface State {\n visible?: boolean;\n}\n\nexport default function withVisible<P extends WithVisibleProps>(Component: React.ComponentType<P>) {\n const ResComponent = class WithVisible extends React.Component<P, State> {\n static propTypes = {\n visible: PropTypes.bool,\n };\n\n static defaultProps = {\n visible: false,\n };\n\n static displayName = `WithVisible(${getDisplayName(Component)})`;\n\n state = {visible: this.props.visible};\n\n handleShow = () => this.setState({visible: true});\n handleClose = () => this.setState({visible: false});\n toggleVisible = () => this.setState((prevState) => ({visible: !prevState.visible}));\n\n render() {\n const {visible} = this.state;\n\n return (\n <Component\n {...this.props}\n visible={visible}\n handleShow={this.handleShow}\n handleClose={this.handleClose}\n toggleVisible={this.toggleVisible}\n />\n );\n }\n };\n return ResComponent as any as React.ComponentClass<P, State>;\n}\n","export const RumMeasureTypes = {\n CLUSTER_PARAMS: 'CLUSTER_PARAMS',\n\n ACCOUNTS: 'ACCOUNTS_',\n\n NAVIGATION_PRELOAD: 'NAVIGATION_PRELOAD',\n\n NAVIGATION_CONTENT_DOCUMENT: 'NAVIGATION_CONTENT_DOCUMENT',\n NAVIGATION_CONTENT_FILE: 'NAVIGATION_CONTENT_FILE',\n NAVIGATION_CONTENT_LINK: 'NAVIGATION_CONTENT_LINK',\n NAVIGATION_CONTENT_MAP_NODE: 'NAVIGATION_CONTENT_MAP_NODE_',\n NAVIGATION_CONTENT_REPLICATED_TABLE: 'NAVIGATION_CONTENT_REPLICATED_TABLE',\n NAVIGATION_CONTENT_TABLE_STATIC: 'NAVIGATION_CONTENT_TABLE_STATIC',\n NAVIGATION_CONTENT_TABLE_DYNAMIC: 'NAVIGATION_CONTENT_TABLE_DYNAMIC',\n NAVIGATION_CONTENT_TRANSACTION: 'NAVIGATION_CONTENT_TRANSACTION',\n NAVIGATION_CONTENT_TRANSACTION_MAP: 'NAVIGATION_CONTENT_TRANSACTION_MAP',\n\n NAVIGATION_TAB_ACL: 'NAVIGATION_TAB_ACL',\n NAVIGATION_TAB_ACL_ACCESS: 'NAVIGATION_TAB_ACL_ACCESS',\n NAVIGATION_TAB_ANNOTATION: 'NAVIGATION_TAB_ANNOTATION',\n NAVIGATION_TAB_ATTRIBUTES: 'NAVIGATION_TAB_ATTRIBUTES',\n NAVIGATION_TAB_USER_ATTRIBUTES: 'NAVIGATION_TAB_USER_ATTRIBUTES',\n NAVIGATION_TAB_LOCKS: 'NAVIGATION_TAB_LOCKS',\n NAVIGATION_TAB_SCHEMA: 'NAVIGATION_TAB_SCHEMA',\n NAVIGATION_TAB_TABLETS: 'NAVIGATION_TAB_TABLETS',\n NAVIGATION_TAB_TABLET_ERRORS: 'NAVIGATION_TAB_TABLET_ERRORS',\n\n OPERATIONS_LIST: 'OPERATIONS_LIST_',\n\n OPERATION: 'OPERATION',\n OPERATION_TAB_DETAILS: 'OPERATION_TAB_DETAILS',\n OPERATION_TAB_ATTRIBUTES: 'OPERATION_TAB_ATTRIBUTES',\n OPERATION_TAB_SPECIFICATION: 'OPERATION_TAB_SPECIFICATION',\n OPERATION_TAB_STATISTICS: 'OPERATION_TAB_STATISTICS',\n OPERATION_TAB_MONITOR: 'OPERATION_TAB_MONITOR',\n OPERATION_TAB_PARTITION_SIZES: 'OPERATION_TAB_PARTITION_SIZES',\n OPERATION_TAB_JOB_SIZES: 'OPERATION_TAB_JOB_SIZES',\n OPERATION_TAB_JOBS: 'OPERATION_TAB_JOBS',\n\n SCHEDULING: 'SCHEDULING_',\n SCHEDULING_OVERVIEW: 'SCHEDULING_OVERVIEW',\n SCHEDULING_DETAILS: 'SCHEDULING_DETAILS',\n SCHEDULING_MONITOR: 'SCHEDULING_MONITOR',\n SCHEDULING_ACL: 'SCHEDULING_ACL',\n\n YQL_KIT_WIDGET: 'YQL_KIT_WIDGET',\n} as const;\n","import {ThunkAction} from 'redux-thunk';\n\nimport flatten_ from 'lodash/flatten';\nimport forEach_ from 'lodash/forEach';\nimport map_ from 'lodash/map';\n\nimport {\n DELETE_PERMISSION,\n IdmObjectType,\n LOAD_DATA,\n REQUEST_PERMISSION,\n UPDATE_ACL,\n} from '../../constants/acl';\nimport {getTree} from '../../store/selectors/scheduling/scheduling';\nimport {\n YTPermissionTypeUI,\n checkUserPermissionsUI,\n getAcl,\n getResponsible,\n} from '../../utils/acl/acl-api';\nimport {convertFromUIPermissions, prepareAclSubject} from '../../utils/acl';\nimport UIFactory from '../../UIFactory';\nimport {AclAction, HasIdmKind} from '../../store/reducers/acl/acl';\nimport {isCancelled} from '../../utils/cancel-helper';\nimport {RootState} from '../../store/reducers';\nimport {\n IdmKindType,\n PreparedAclSubject,\n ResponsibleType,\n Role,\n UpdateAclParams,\n} from '../../utils/acl/acl-types';\nimport {CheckPermissionResult} from '../../../shared/utils/check-permission';\nimport {YTApiId, ytApiV3Id} from '../../rum/rum-wrap-api';\n\ntype ThunkAclAction<T = unknown> = ThunkAction<T, RootState, unknown, AclAction>;\n\nconst prepareUserPermissions = (\n userPermissions: Array<CheckPermissionResult>,\n idmKind: IdmKindType,\n) => {\n const {permissionTypes} = UIFactory.getAclPermissionsSettings()[idmKind];\n return map_(userPermissions, (item, index) => {\n return {\n type: permissionTypes[index],\n action: item.action,\n };\n });\n};\n\ntype HasNormPoolTree = {normalizedPoolTree?: string};\n\nasync function getPathToCheckPermissions(\n idmKind: IdmKindType,\n entityName: string,\n poolTree?: string,\n) {\n switch (idmKind) {\n case IdmObjectType.ACCESS_CONTROL_OBJECT:\n case IdmObjectType.UI_EFFECTIVE_ACL:\n case IdmObjectType.PATH:\n return entityName;\n case IdmObjectType.ACCOUNT:\n return `//sys/accounts/${entityName}`;\n case IdmObjectType.POOL: {\n const fullPath: string = await ytApiV3Id.get(YTApiId.schedulingPoolFullPath, {\n path: `//sys/scheduler/orchid/scheduler/pool_trees/${poolTree}/pools/${entityName}/full_path`,\n });\n return `//sys/pool_trees/${poolTree}${fullPath}`;\n }\n case IdmObjectType.TABLET_CELL_BUNDLE: {\n return `//sys/tablet_cell_bundles/${entityName}`;\n }\n }\n throw new Error('Unexpected value of parameter idmKind');\n}\n\nexport function loadAclData(\n {path, idmKind}: {path: string} & HasIdmKind,\n {normalizedPoolTree}: HasNormPoolTree = {},\n options: {userPermissionsPath?: string} = {userPermissionsPath: undefined},\n): ThunkAclAction {\n return async (dispatch, getState) => {\n const state = getState();\n const {login, cluster = ''} = state.global;\n\n dispatch({type: LOAD_DATA.REQUEST, idmKind});\n\n const poolTree =\n idmKind === IdmObjectType.POOL ? normalizedPoolTree || getTree(state) : undefined;\n const {permissionTypes} = UIFactory.getAclPermissionsSettings()[idmKind];\n\n const {userPermissionsPath} = options;\n\n try {\n const pathToCheckPermissions = await getPathToCheckPermissions(idmKind, path, poolTree);\n const pathToCheckUserPermissions = userPermissionsPath\n ? await getPathToCheckPermissions(idmKind, userPermissionsPath, poolTree)\n : pathToCheckPermissions;\n\n return await Promise.all([\n getAcl({\n cluster,\n path,\n kind: idmKind,\n poolTree,\n sysPath: pathToCheckPermissions,\n }),\n checkUserPermissionsUI(pathToCheckUserPermissions, login, permissionTypes),\n getResponsible({\n cluster,\n path,\n kind: idmKind,\n poolTree,\n sysPath: pathToCheckPermissions,\n }),\n ]).then(([acl, userPermissions, responsible]) => {\n dispatch({\n type: LOAD_DATA.SUCCESS,\n data: {\n path,\n version: responsible.version,\n auditors: responsible.auditors,\n objectPermissions: acl.permissions,\n columnGroups: acl.column_groups,\n responsible: responsible.responsible,\n userPermissions: prepareUserPermissions(userPermissions, idmKind),\n readApprovers: responsible.readApprovers,\n disableAclInheritance: responsible.disableAclInheritance,\n bossApproval: responsible.bossApproval,\n disableInheritanceResponsible: responsible.disableInheritanceResponsible,\n },\n idmKind,\n });\n });\n } catch (error: any) {\n dispatch({\n type: LOAD_DATA.FAILURE,\n data: {\n error,\n },\n idmKind,\n });\n }\n };\n}\n\nexport function deletePermissions(\n {\n roleKey,\n idmKind,\n path,\n itemToDelete,\n }: HasIdmKind & {path: string; roleKey: string; itemToDelete: PreparedAclSubject},\n {normalizedPoolTree}: HasNormPoolTree = {},\n): ThunkAclAction<Promise<void>> {\n return async (dispatch, getState) => {\n const {cluster = ''} = getState().global;\n const state = getState();\n\n dispatch({\n type: DELETE_PERMISSION.REQUEST,\n data: roleKey,\n idmKind,\n });\n\n const poolTree =\n idmKind === IdmObjectType.POOL ? normalizedPoolTree || getTree(state) : undefined;\n\n try {\n const deletePermissionsPath = await getPathToCheckPermissions(idmKind, path, poolTree);\n\n return await UIFactory.getAclApi()\n .deleteRole({\n idmKind,\n cluster,\n roleKey,\n path,\n sysPath: deletePermissionsPath,\n itemToDelete,\n })\n .then(() => {\n dispatch({\n type: DELETE_PERMISSION.SUCCESS,\n data: roleKey,\n idmKind,\n });\n });\n } catch (error: any) {\n if (isCancelled(error)) {\n dispatch({type: DELETE_PERMISSION.CANCELLED, idmKind});\n return undefined;\n } else {\n dispatch({\n type: DELETE_PERMISSION.FAILURE,\n data: error,\n idmKind,\n });\n return Promise.reject(error);\n }\n }\n };\n}\n\nfunction dateToDaysAfterNow(date?: Date) {\n if (!date) {\n return undefined;\n }\n\n return Math.round((date.getTime() - Date.now()) / 3600 / 24 / 1000);\n}\n\nexport type PermissionToRequest = {\n path: string;\n cluster: string;\n permissions: {[x: string]: Array<YTPermissionTypeUI>} | null;\n subjects: Array<ResponsibleType>;\n inheritance_mode?: string;\n duration?: Date;\n comment?: string;\n permissionFlags?: Record<string, boolean>;\n readColumnGroup?: string;\n readColumns?: Array<string>;\n};\n\nexport function requestPermissions(\n {values, idmKind}: {values: PermissionToRequest} & HasIdmKind,\n {normalizedPoolTree}: HasNormPoolTree = {},\n): ThunkAclAction {\n return async (dispatch, getState) => {\n const state = getState();\n const {\n global: {cluster = ''},\n } = state;\n\n dispatch({\n type: REQUEST_PERMISSION.REQUEST,\n idmKind,\n });\n\n const {requestPermissionsFlags = {}} = UIFactory.getAclApi();\n\n const daysAfter = dateToDaysAfterNow(values.duration);\n const roles: Array<Role> = [];\n const rolesGroupedBySubject = [];\n const {inheritance_mode, permissionFlags, readColumnGroup, readColumns} = values;\n for (const item of values.subjects) {\n const subject = prepareAclSubject(item);\n const commonPart = {\n subject,\n deprive_after_days: daysAfter,\n ...(inheritance_mode ? {inheritance_mode} : {}),\n };\n Object.entries(requestPermissionsFlags).forEach(([key, flagInfo]) => {\n flagInfo?.applyToRequestedRole(commonPart, permissionFlags?.[key]);\n });\n const flattenPermissions = flatten_(map_(values.permissions));\n if (flattenPermissions.length) {\n rolesGroupedBySubject.push({\n permissions: flattenPermissions,\n ...commonPart,\n });\n }\n if (readColumns?.length) {\n rolesGroupedBySubject.push({\n ...rolesGroupedBySubject[rolesGroupedBySubject.length - 1],\n ...commonPart,\n columns: readColumns,\n permissions: ['read' as const],\n });\n }\n forEach_(values.permissions, (permissions) => {\n roles.push({\n ...convertFromUIPermissions({permissions}),\n ...commonPart,\n });\n });\n if (readColumnGroup) {\n roles.push({\n role_type: 'column_read',\n column_group_id: readColumnGroup,\n ...commonPart,\n });\n }\n }\n\n const poolTree =\n idmKind === IdmObjectType.POOL ? normalizedPoolTree || getTree(state) : undefined;\n\n try {\n const requestPermissionsPath = await getPathToCheckPermissions(\n idmKind,\n values.path,\n poolTree,\n );\n\n //cluster, path, roles, comment, columns\n return UIFactory.getAclApi()\n .requestPermissions({\n cluster,\n path: values.path,\n sysPath: requestPermissionsPath,\n roles,\n roles_grouped: rolesGroupedBySubject.map(convertFromUIPermissions),\n comment: values.comment ?? '',\n kind: idmKind,\n poolTree,\n })\n .then(() => {\n dispatch({\n type: REQUEST_PERMISSION.SUCCESS,\n idmKind,\n });\n });\n } catch (error: any) {\n if (isCancelled(error)) {\n dispatch({type: REQUEST_PERMISSION.CANCELLED, idmKind});\n return undefined;\n } else {\n dispatch({\n type: REQUEST_PERMISSION.FAILURE,\n data: error,\n idmKind,\n });\n return Promise.reject(error);\n }\n }\n };\n}\n\nexport function cancelRequestPermissions({idmKind}: HasIdmKind) {\n return {type: REQUEST_PERMISSION.CANCELLED, idmKind};\n}\n\nexport interface UpdateAclValues {\n responsible: Array<ResponsibleType>;\n auditors: Array<ResponsibleType>;\n readApprovers: Array<ResponsibleType>;\n disableInheritance: boolean;\n bossApproval: boolean;\n inheritAcl: boolean;\n comment: string;\n}\n\nexport function updateAcl(\n {\n path,\n values,\n version,\n idmKind,\n mode,\n }: {\n path: string;\n values: Partial<UpdateAclValues>;\n version?: string;\n mode?: UpdateAclParams['mode'];\n } & HasIdmKind,\n {normalizedPoolTree}: HasNormPoolTree = {},\n): ThunkAclAction {\n return (dispatch, getState) => {\n const state = getState();\n const {\n global: {cluster = ''},\n } = getState();\n\n dispatch({\n type: UPDATE_ACL.REQUEST,\n idmKind,\n });\n\n const poolTree =\n idmKind === IdmObjectType.POOL ? normalizedPoolTree || getTree(state) : undefined;\n return UIFactory.getAclApi()\n .updateAcl(cluster, path, {\n ...values,\n version,\n idmKind,\n poolTree,\n mode,\n })\n .then(() => {\n dispatch({\n type: UPDATE_ACL.SUCCESS,\n idmKind,\n });\n })\n .catch((error) => {\n if (isCancelled(error)) {\n return dispatch({type: UPDATE_ACL.CANCELLED, idmKind});\n } else {\n const data = error?.response?.data || error?.response || error;\n dispatch({\n type: UPDATE_ACL.FAILURE,\n data,\n idmKind,\n });\n return Promise.reject(error);\n }\n });\n };\n}\n\nexport function cancelUpdateAcl({idmKind}: HasIdmKind): AclAction {\n return {type: UPDATE_ACL.CANCELLED, idmKind};\n}\n","import {RootState} from '../reducers';\n\nexport function getExecuteBatchState(state: RootState) {\n return state.executeBatch;\n}\n\nexport const getApproversSubjectFilter = (state: RootState) => state.aclFilters.approversSubject;\nexport const getObjectSubjectFilter = (state: RootState) => state.aclFilters.objectSubject;\nexport const getObjectPermissionsFilter = (state: RootState) => state.aclFilters.objectPermissions;\nexport const getAclFilterColumns = (state: RootState) => state.aclFilters.columnsFilter;\nexport const getAclFilterColumnGroupName = (state: RootState) =>\n state.aclFilters.columnGroupNameFilter;\nexport const getAclFilterExpandedSubjects = (state: RootState) => state.aclFilters.expandedSubjects;\nexport const getAclCurrentTab = (state: RootState) => state.aclFilters.aclCurrentTab;\n","import {createSelector} from 'reselect';\n\nimport compact_ from 'lodash/compact';\nimport filter_ from 'lodash/filter';\nimport flatten_ from 'lodash/flatten';\nimport forEach_ from 'lodash/forEach';\nimport map_ from 'lodash/map';\nimport sortBy_ from 'lodash/sortBy';\nimport uniq_ from 'lodash/uniq';\nimport partition_ from 'lodash/partition';\nimport isEqual_ from 'lodash/isEqual';\nimport some_ from 'lodash/some';\n\nimport {calculateLoadingStatus} from '../../utils/utils';\nimport {concatByAnd} from '../../common/hammer/predicate';\nimport {\n getAclFilterColumnGroupName,\n getAclFilterColumns,\n getAclFilterExpandedSubjects,\n getApproversSubjectFilter,\n getObjectPermissionsFilter,\n getObjectSubjectFilter,\n} from './acl-filters';\nimport UIFactory from '../../UIFactory';\nimport {RootState} from '../../store/reducers';\nimport {IdmKindType, PreparedAclSubject} from '../../utils/acl/acl-types';\nimport {YTPermissionTypeUI} from '../../utils/acl/acl-api';\nimport {PreparedRole} from '../../utils/acl';\n\nexport type PreparedAclSubjectColumn = Omit<PreparedAclSubject, 'type'> & {type: 'columns'};\n\nfunction prepareColumnsNames(columnsPermissions: Array<{columns?: Array<string>}>) {\n const columns = map_(columnsPermissions, (permission) => permission.columns);\n\n return compact_(uniq_(flatten_(columns))).sort();\n}\n\nfunction prepareApprovers(\n approvers: Array<PreparedRole> | undefined,\n type: 'read_approver' | 'responsible' | 'auditor',\n) {\n return map_(approvers, (subject) => {\n const extra = {\n type,\n subjects: [subject.value],\n subjectType: subject.type === 'users' ? ('user' as const) : ('group' as const),\n groupInfo:\n subject.type === 'groups'\n ? {name: subject.group_name, url: subject.url, group: undefined}\n : undefined,\n action: undefined,\n };\n return {\n ...subject,\n ...extra,\n };\n });\n}\n\nexport type PreparedApprover = ReturnType<typeof prepareApprovers>[number];\n\nexport const getAllUserPermissions = (state: RootState, idmKind: IdmKindType) =>\n state.acl[idmKind].userPermissions;\nconst getAllObjectPermissions = (state: RootState, idmKind: IdmKindType) =>\n state.acl[idmKind].objectPermissions;\n\nconst getAllObjectPermissionsWithSplittedSubjects = createSelector(\n [getAllObjectPermissions],\n splitSubjects,\n);\n\nexport const getObjectPermissionsTypesList = (idmKind: IdmKindType) => {\n return createSelector(\n [\n getObjectPermissionsFilter,\n (state) => getAllObjectPermissionsWithSplittedSubjects(state, idmKind),\n ],\n (permissionsFilter, items) => {\n const uniquePermisions = new Set<YTPermissionTypeUI>();\n const {permissionTypes} = UIFactory.getAclPermissionsSettings()[idmKind] || {};\n [...permissionTypes, ...permissionsFilter].forEach((permission) =>\n uniquePermisions.add(permission),\n );\n items.forEach((item) => {\n const {permissions} = item;\n permissions?.forEach((permission) => uniquePermisions.add(permission));\n });\n return sortBy_([...uniquePermisions], (permission) => permission);\n },\n );\n};\n\ntype HasSplitted = {\n isSplitted?: boolean;\n subjectIndex?: number;\n};\n\nfunction splitSubjects<T extends {subjects: Array<unknown>}>(items: Array<T>) {\n const res: Array<T & HasSplitted> = [];\n forEach_(items, (item) => {\n const {subjects} = item;\n if (subjects && subjects.length > 1) {\n forEach_(subjects, (subject, index) => {\n res.push({...item, subjects: [subject], isSplitted: true, subjectIndex: index});\n });\n } else {\n res.push(item);\n }\n });\n return res;\n}\n\nfunction subjectFilterPredicate<\n T extends {subjectType?: unknown; groupInfo?: unknown; subjects: Array<unknown>},\n>(item: T, filter: string) {\n const {subjectType, groupInfo} = item;\n if (subjectType === 'group') {\n return some_(Object.entries(groupInfo ?? {}), ([key, value]) => {\n let str: string | undefined = String(value);\n if (key === 'url') {\n if (str[str.length - 1] === '/') str = str.slice(0, -1);\n str = str.split('/').pop();\n }\n return -1 !== str?.toLowerCase().indexOf(filter);\n });\n }\n const value = String(item.subjects[0] ?? '');\n return -1 !== value.toLowerCase().indexOf(filter);\n}\n\nfunction FilterBySubject<\n T extends {subjectType?: unknown; groupInfo?: unknown; subjects: Array<unknown>},\n>(items: Array<T>, subjectFilter?: string) {\n if (!subjectFilter) return items;\n const lowerNameFilter = subjectFilter.toLowerCase();\n return filter_(items, (item) => subjectFilterPredicate(item, lowerNameFilter));\n}\n\nconst permissionsFilterPredicate = (item: PreparedAclSubject, filter: Set<YTPermissionTypeUI>) => {\n const {permissions} = item;\n let foundCount = 0;\n return permissions?.some((p) => {\n if (filter.has(p)) {\n foundCount++;\n }\n return foundCount >= filter.size;\n });\n};\n\ntype ObjectPermissionsRow = PreparedAclSubject & HasSplitted;\n\nexport const getAllObjectPermissionsFiltered = createSelector(\n [\n getAllObjectPermissionsWithSplittedSubjects,\n getObjectSubjectFilter,\n getObjectPermissionsFilter,\n getAclFilterColumns,\n ],\n (items, subjectFilter, permissionsFilter, columns) => {\n const [mainPermissions, columnPermissions] = partition_(\n items,\n (item) => !item.columns?.length,\n );\n\n const withColumns = columnPermissions.map((item) => {\n return {...item, columns: sortBy_(item.columns)};\n });\n\n const lowerNameFilter = subjectFilter?.toLocaleLowerCase();\n const filterBySubject = lowerNameFilter\n ? (item: ObjectPermissionsRow) => subjectFilterPredicate(item, lowerNameFilter)\n : undefined;\n\n const permissionsFilterSet = new Set<YTPermissionTypeUI>(permissionsFilter);\n const filterByPermissions = permissionsFilterSet.size\n ? (item: ObjectPermissionsRow) =>\n permissionsFilterPredicate(item, permissionsFilterSet) ?? false\n : undefined;\n\n const visibleColumns = new Set(columns);\n const filterByColumns = visibleColumns.size\n ? ({columns}: ObjectPermissionsRow) => {\n return columns?.some((colName) => visibleColumns.has(colName)) ?? false;\n }\n : undefined;\n\n const mainPredicates = compact_([filterBySubject, filterByPermissions]);\n const columnsPredicates = compact_([filterBySubject, filterByColumns]);\n return {\n mainPermissions: mainPredicates.length\n ? mainPermissions.filter(concatByAnd(...mainPredicates))\n : mainPermissions,\n columnsPermissions: columnsPredicates.length\n ? withColumns.filter(concatByAnd(...columnsPredicates))\n : withColumns,\n };\n },\n);\n\nexport const getObjectPermissionsAggregated = createSelector(\n [getAllObjectPermissionsFiltered, getAclFilterExpandedSubjects],\n ({mainPermissions, columnsPermissions}, expandedSubjects) => {\n return {\n mainPermissions: {\n ...aggregateBySubject(mainPermissions, expandedSubjects),\n count: mainPermissions.length,\n },\n columnsPermissions: {\n ...aggregateBySubject(columnsPermissions, expandedSubjects),\n count: columnsPermissions.length,\n },\n };\n },\n);\n\nclass AggregateBySubject {\n aggrKey: string;\n subject: ObjectPermissionsRow['subjects'][number];\n inherited: boolean;\n\n allPermissions = new Set<YTPermissionTypeUI>();\n columns = new Set<string>();\n first: ObjectPermissionsRow;\n children = new Array<ObjectPermissionsRow & {expanded?: boolean; level?: number}>();\n\n constructor(first: AggregateBySubject['first']) {\n if (first.subjects.length > 1) {\n throw new Error(\n `Unexpected behavior: more than one subject occured: ${first.subjects.join(',')}`,\n );\n }\n\n this.aggrKey = aggregationKey(first);\n this.inherited = Boolean(first.inherited);\n this.subject = first.subjects[0];\n this.first = {...first};\n this.add(first);\n }\n\n add(item: ObjectPermissionsRow) {\n const aggrKey = aggregationKey(item);\n if (this.aggrKey !== aggrKey) {\n throw new Error(\n `Unexpected behavior: aggregation keys are not queal: ${this.aggrKey} !== ${aggrKey}`,\n );\n }\n\n if (item.subjects.length !== 1) {\n throw new Error(\n `Unexpected behavior: item.subjects.length !== 1: ${JSON.stringify(item)}`,\n );\n }\n\n const child = {...item, permissions: [...(item.permissions ?? [])]};\n this.children.push(child);\n\n child.permissions?.sort();\n child.permissions?.forEach((p) => {\n this.allPermissions.add(p);\n });\n item.columns?.forEach((column) => this.columns.add(column));\n\n this.first.isMissing ||= Boolean(item.isMissing);\n this.first.isUnrecognized ||= Boolean(item.isUnrecognized);\n this.first.isApproved ||= Boolean(item.isApproved);\n this.first.isRequested ||= Boolean(item.isRequested);\n }\n\n getItems(expanded: boolean): {\n items: AggregateBySubject['children'];\n hasExpandable?: boolean;\n hasDenyAction?: boolean;\n hasInherited?: boolean;\n } {\n const hasInherited = this.inherited;\n if (this.children.length === 1) {\n return {items: this.children, hasInherited};\n }\n\n const first: typeof this.first & {level?: number; expanded?: boolean} = {\n ...this.first,\n level: 0,\n expanded,\n };\n first.permissions = [...this.allPermissions].sort();\n first.columns = [...this.columns].sort();\n\n let hasDenyAction = false;\n const items = !expanded\n ? [first]\n : [\n first,\n ...sortBy_(this.children, ['inheritance_mode', 'permissions']).map((i) => {\n hasDenyAction ||= i.action === 'deny';\n return {...i, level: 1};\n }),\n ];\n\n this.children.forEach((i) => {\n if (i.inheritance_mode !== first.inheritance_mode) {\n first.inheritance_mode = undefined;\n }\n if (!isEqual_(this.first.inheritedFrom, i.inheritedFrom)) {\n first.inheritedFrom = undefined;\n }\n });\n\n return {items, hasExpandable: true, hasDenyAction, hasInherited};\n }\n}\n\nexport type ObjectPermissionRowWithExpand = AggregateBySubject['children'][number];\n\nfunction aggregationKey(item: ObjectPermissionsRow) {\n const {\n inherited,\n subjects: [subject],\n } = item;\n return `subject:${subject}_inherited:${Boolean(inherited)}`;\n}\n\nfunction aggregateBySubject(\n objPermissions: Array<ObjectPermissionsRow>,\n expandedSubjects: Set<string | number>,\n) {\n const aggregated: Record<string, AggregateBySubject> = {};\n\n objPermissions.forEach((item) => {\n const aggKey = aggregationKey(item);\n const dst = aggregated[aggKey];\n if (!dst) {\n aggregated[aggKey] = new AggregateBySubject(item);\n } else {\n dst.add(item);\n }\n });\n\n const res = Object.values(aggregated).reduce(\n (acc, item) => {\n const {items, hasExpandable, hasInherited} = item.getItems(\n expandedSubjects.has(item.subject),\n );\n acc.items = acc.items.concat(items);\n acc.hasExpandable ||= hasExpandable;\n acc.hasInherited ||= hasInherited;\n return acc;\n },\n {items: []} as ReturnType<AggregateBySubject['getItems']>,\n );\n\n const [inherited, other] = partition_(res.items, (item) => item.inherited);\n\n return {\n ...res,\n items: [...inherited, ...other],\n };\n}\n\nexport const getAllObjectPermissionsOrderedByStatus = createSelector(\n [getAllObjectPermissions],\n OrderByRoleStatus,\n);\nexport const getAllColumnGroups = (state: RootState, idmKind: IdmKindType) =>\n state.acl[idmKind].columnGroups;\nexport const getAllColumnGroupsActual = createSelector(\n [getAllColumnGroups, getAclFilterColumns, getAclFilterColumnGroupName],\n (items, columnsFilter, nameFilter) => {\n const visibleColumns = new Set(columnsFilter);\n type ItemType = (typeof items)[number];\n const nameFilterLower = nameFilter?.toLowerCase();\n const predicates = compact_([\n (item: ItemType) => {\n return !item.removed;\n },\n visibleColumns.size > 0\n ? (item: ItemType) => {\n return item.columns?.some((name) => visibleColumns.has(name)) ?? false;\n }\n : undefined,\n nameFilterLower?.length\n ? (item: ItemType) =>\n -1 !== item.name?.toLowerCase().indexOf(nameFilterLower) ?? false\n : undefined,\n ]);\n const filtered = filter_(items, concatByAnd(...predicates)).map((item) => {\n return {...item, columns: sortBy_(item.columns)};\n });\n return sortBy_(filtered, ['name']);\n },\n);\n\nfunction OrderByRoleStatus<\n T extends {\n isDepriving?: boolean;\n isRequested?: boolean;\n isUnrecognized?: boolean;\n isApproved?: boolean;\n },\n>(items: Array<T>) {\n const unrecognized: typeof items = [];\n const requested: typeof items = [];\n const depriving: typeof items = [];\n const rest: typeof items = [];\n forEach_(items, (item) => {\n const {isDepriving, isRequested, isUnrecognized, isApproved} = item;\n if (isUnrecognized) {\n unrecognized.push(item);\n } else if (isDepriving) {\n depriving.push(item);\n } else if (isRequested || isApproved) {\n requested.push(item);\n } else {\n rest.push(item);\n }\n });\n return [...requested, ...depriving, ...unrecognized, ...rest];\n}\n\nfunction OrderByInheritanceAndSubject<T extends {inherited?: boolean; subjects: Array<unknown>}>(\n items: Array<T>,\n) {\n const res = sortBy_(items, [\n (item) => !item.inherited,\n (item) => (item.subjects && item.subjects[0]) || true,\n ]);\n return res;\n}\n\nconst getReadApprovers = (state: RootState, idmKind: IdmKindType) =>\n state.acl[idmKind].readApprovers;\nconst getResponsibles = (state: RootState, idmKind: IdmKindType) => state.acl[idmKind].responsible;\nconst getAuditors = (state: RootState, idmKind: IdmKindType) => state.acl[idmKind].auditors;\n\nexport const getNotInheritedReadApprovers = createSelector([getReadApprovers], (readApprovers) =>\n filter_(readApprovers, (readApprover) => !readApprover.inherited),\n);\nexport const getNotInheritedResponsibles = createSelector([getResponsibles], (responsibles) =>\n filter_(responsibles, (responsible) => !responsible.inherited),\n);\nexport const getNotInheritedAuditors = createSelector([getAuditors], (auditros) =>\n filter_(auditros, (auditro) => !auditro.inherited),\n);\n\nconst getAllApprovers = createSelector(\n [getReadApprovers, getResponsibles, getAuditors],\n (readApprovers, responsibles, auditros) => {\n return [\n ...prepareApprovers(readApprovers, 'read_approver'),\n ...prepareApprovers(responsibles, 'responsible'),\n ...prepareApprovers(auditros, 'auditor'),\n ];\n },\n);\n\nexport const getHasApprovers = createSelector([getAllApprovers], (items) => items.length > 0);\n\nexport const getApproversFiltered = createSelector(\n [getAllApprovers, getApproversSubjectFilter],\n FilterBySubject,\n);\n\nexport const getApproversFilteredAndOrdered = createSelector(\n [getApproversFiltered],\n OrderByInheritanceAndSubject,\n);\n\nexport const getApprovers = createSelector([getAllApprovers], OrderByRoleStatus);\n\nexport const getAllAccessColumnsPermissions = createSelector(\n [getAllObjectPermissions],\n (objectPermissions) => {\n const filteredPermissions = filter_(\n objectPermissions,\n (permission) => permission.action === 'allow' && permission.columns?.length! > 0,\n );\n\n return map_(filteredPermissions, (item) => {\n const tmp: typeof item = {...item};\n tmp.type = 'columns';\n return tmp;\n });\n },\n);\n\nconst getAllDenyColumnsPermissions = createSelector(\n [getAllObjectPermissions],\n (objectPermissions) => {\n const filteredPermissions = filter_(\n objectPermissions,\n (permission) => permission.action === 'deny' && permission.columns?.length! > 0,\n );\n\n return map_(\n filteredPermissions,\n (permission) =>\n ({\n ...permission,\n type: 'columns',\n }) as PreparedAclSubjectColumn,\n );\n },\n);\n\nexport const getAllAccessColumnsNames = createSelector(\n [getAllAccessColumnsPermissions],\n prepareColumnsNames,\n);\n\nexport const getAllDenyColumnsNames = createSelector(\n [getAllDenyColumnsPermissions],\n prepareColumnsNames,\n);\n\nexport const getDenyColumnsItems = createSelector([getAllDenyColumnsNames], (names) =>\n map_(names, (name) => ({key: name, value: name, title: name})),\n);\n\nexport const isPermissionDeleted = (state: RootState, idmKind: IdmKindType) =>\n state.acl[idmKind].isPermissionDeleted;\nexport const permissionDeletionError = (state: RootState, idmKind: IdmKindType) =>\n state.acl[idmKind].deletionError;\nexport const getLastDeletedPermissionKey = (state: RootState, idmKind: IdmKindType) =>\n state.acl[idmKind].deletedItemKey;\nexport const getIdmPermissionsRequestError = (state: RootState, idmKind: IdmKindType) =>\n state.acl[idmKind].idmPermissionsRequestError;\nexport const getIdmManageAclRequestError = (state: RootState, idmKind: IdmKindType) =>\n state.acl[idmKind].idmManageAclRequestError;\nexport const getIdmPathVersion = (state: RootState, idmKind: IdmKindType) =>\n state.acl[idmKind].version;\n\nconst getAclLoading = (state: RootState, idmKind: IdmKindType) => state.acl[idmKind].loading;\nconst getAclLoaded = (state: RootState, idmKind: IdmKindType) => state.acl[idmKind].loaded;\nconst getAclError = (state: RootState, idmKind: IdmKindType) => state.acl[idmKind].error;\n\nexport const getAclLoadState = createSelector(\n [getAclLoading, getAclLoaded, getAclError],\n (loading, loaded, error) => {\n return calculateLoadingStatus(loading, loaded, error);\n },\n);\n","import {Page} from '../../../shared/constants/settings';\nimport YT from '../../config/yt-config';\nimport type {Tab as NavigationTab} from '../../constants/navigation';\nimport {ValueOf} from '../../types';\n\nimport {TabletErrorsByPathState} from '../../store/reducers/navigation/tabs/tablet-errors/tablet-errors-by-path';\nimport {getNavigationParams} from '../../store/reducers/navigation/url-mapping';\nimport {makeURLSearchParams} from './utils';\n\nexport function makeNavigationLink(params: {\n path: string;\n cluster?: string;\n navmode?: ValueOf<typeof NavigationTab>;\n teMode?: 'request_errors';\n teTime?: TabletErrorsByPathState['timeRangeFilter'];\n teMethods?: Array<string>;\n}) {\n const {cluster, ...rest} = params;\n const res = `/${cluster || YT.cluster}/${Page.NAVIGATION}`;\n const search = makeURLSearchParams(rest, getNavigationParams()).toString();\n return search ? `${res}?${search}` : res;\n}\n","import {LocationParameters} from '../../store/location';\n\nexport function makeURLSearchParams<T extends object>(params: T, info: LocationParameters) {\n const res = new URLSearchParams();\n Object.keys(params).reduce((acc, k) => {\n const value = params[k as keyof T];\n if (k in info) {\n if (info[k].options?.serialize) {\n const tmp = info[k].options?.serialize?.(value);\n if (tmp !== undefined) {\n res.append(k, tmp + '');\n }\n } else {\n res.append(k, value + '');\n }\n }\n return acc;\n }, res);\n return res;\n}\n","import {Page} from '../../../shared/constants/settings';\nimport {Tab as ComponentsTab} from '../../constants/components/main';\nimport YT from '../../config/yt-config';\n\nexport * from './navigation';\n\nexport function makeComponentsNodesUrl({host, cluster}: {host?: string; cluster?: string} = {}) {\n return host\n ? `/${cluster || YT.cluster}/${Page.COMPONENTS}/${ComponentsTab.NODES}/${host}`\n : `/${cluster || YT.cluster}/${Page.COMPONENTS}/${ComponentsTab.NODES}`;\n}\n\nexport function makeProxyUrl(cluster: string, address: string) {\n return `/${cluster}/${Page.COMPONENTS}/${ComponentsTab.RPC_PROXIES}?host=${address}`;\n}\n\nexport function makeSchedulingUrl({\n pool,\n poolTree,\n cluster,\n}: {\n pool: string;\n poolTree: string;\n cluster?: string;\n}) {\n return `/${cluster || YT.cluster}/${Page.SCHEDULING}?pool=${pool}&poolTree=${poolTree}`;\n}\n\nexport function makeAccountsUrl(account: string, cluster?: string) {\n return `/${cluster || YT.cluster}/${Page.ACCOUNTS}?account=${account}`;\n}\n","const SvgChevronRight = props => <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 16 16\" {...props}><path fill=\"currentColor\" fillRule=\"evenodd\" d=\"M5.47 13.03a.75.75 0 0 1 0-1.06L9.44 8 5.47 4.03a.75.75 0 0 1 1.06-1.06l4.5 4.5a.75.75 0 0 1 0 1.06l-4.5 4.5a.75.75 0 0 1-1.06 0\" clipRule=\"evenodd\" /></svg>;\nexport default SvgChevronRight;","const PcNormalizeMap = {\n arrowup: 'up',\n arrowdown: 'down',\n arrowleft: 'left',\n arrowright: 'right',\n esc: 'escape',\n return: 'enter',\n mod: 'ctrl',\n control: 'ctrl',\n opt: 'alt',\n option: 'alt',\n cmd: 'ctrl',\n command: 'ctrl',\n};\nconst MacNormalizeMap = {\n arrowup: 'up',\n arrowdown: 'down',\n arrowleft: 'left',\n arrowright: 'right',\n esc: 'escape',\n enter: 'return',\n mod: 'command',\n ctrl: 'control',\n alt: 'option',\n opt: 'option',\n cmd: 'command',\n};\nconst PcDisplayName = {\n up: '↑',\n down: '↓',\n left: '←',\n right: '→',\n escape: 'Esc',\n plus: '+',\n enter: 'Enter',\n ctrl: 'Ctrl',\n alt: 'Alt',\n shift: 'Shift',\n tab: 'Tab',\n backspace: 'Backspace',\n};\nconst MacDisplayName = {\n up: '▲',\n down: '▼',\n left: '◀',\n right: '▶',\n escape: '⎋',\n plus: '+',\n return: '⏎',\n command: '⌘',\n option: '⌥',\n control: '⌃',\n shift: '⇧',\n backspace: '⌫',\n tab: '⇥',\n};\nconst PcKeyPriority = {\n shift: 200,\n alt: 300,\n ctrl: 400,\n};\nconst MacKeyPriority = {\n command: 100,\n shift: 200,\n option: 300,\n control: 400,\n};\nexport const defsByPlatform = {\n pc: {\n NormalizeMap: PcNormalizeMap,\n Priority: PcKeyPriority,\n DisplayName: PcDisplayName,\n },\n mac: {\n NormalizeMap: MacNormalizeMap,\n Priority: MacKeyPriority,\n DisplayName: MacDisplayName,\n },\n};\n","export const isMac = () => typeof navigator !== 'undefined' ? /Mac|iP(hone|[oa]d)/.test(navigator.platform) : false;\nexport function split(val, separator) {\n return val.trim().split(separator).filter(Boolean);\n}\n","import capitalize from 'lodash/capitalize';\nimport uniqBy from 'lodash/uniqBy';\nimport { split } from './utils';\nconst GROUPS_SEPARATOR = /\\s/;\nconst KEYS_SEPARATOR = '+';\nexport function parseKeyGroups(defs, value) {\n return split(value, GROUPS_SEPARATOR).map((keys) => uniqBy(split(keys, KEYS_SEPARATOR)\n .map(keyParser(defs))\n .sort((a, b) => b.priority - a.priority), // high to low\n (key) => key.id).map(renderKey));\n}\nfunction keyParser(defs) {\n return function (raw) {\n var _a;\n const keyId = getKeyId(defs, raw);\n return {\n raw,\n id: keyId,\n priority: (_a = defs.Priority[keyId]) !== null && _a !== void 0 ? _a : 0,\n displayName: defs.DisplayName[keyId],\n };\n };\n}\nfunction getKeyId(defs, val) {\n var _a;\n val = val.toLowerCase();\n return (_a = defs.NormalizeMap[val]) !== null && _a !== void 0 ? _a : val;\n}\nfunction renderKey(key) {\n var _a;\n return (_a = key.displayName) !== null && _a !== void 0 ? _a : capitalize(key.id);\n}\n","'use client';\nimport React from 'react';\nimport { block } from '../utils/cn';\nimport { defsByPlatform } from './definitions';\nimport { parseKeyGroups } from './parse';\nimport { isMac } from './utils';\nimport './Hotkey.css';\nconst b = block('hotkey');\nconst Spaces = {\n BetweenGroups: String.fromCharCode(160), // &nbsp;\n BetweenKeys: String.fromCharCode(8239), // Narrow No-Break Space\n};\nexport const Hotkey = React.forwardRef(function Hotkey(props, ref) {\n const { value, platform, view = 'light', qa, style, className } = props;\n const groups = parseHotkeys(value, { platform });\n const content = [];\n let hasGroups = false;\n groups.forEach((keys, groupIdx) => {\n if (keys.length === 0)\n return;\n if (hasGroups) {\n content.push(Spaces.BetweenGroups);\n }\n else {\n hasGroups = true;\n }\n keys.forEach((key, keyIdx) => {\n const isFirstKey = keyIdx === 0;\n if (!isFirstKey) {\n content.push(Spaces.BetweenKeys, React.createElement(\"span\", { key: `${key}_${groupIdx}_${keyIdx}_plus`, className: b('plus') }, \"+\"), Spaces.BetweenKeys);\n }\n content.push(React.createElement(\"kbd\", { key: `${key}_${groupIdx}_${keyIdx}` }, key));\n });\n });\n if (content.length === 0)\n return null;\n return (React.createElement(\"kbd\", { ref: ref, style: style, \"data-qa\": qa, className: b({ view }, className) }, content));\n});\nexport function parseHotkeys(value, opts) {\n var _a;\n const platform = (_a = opts.platform) !== null && _a !== void 0 ? _a : (isMac() ? 'mac' : 'pc');\n const defs = defsByPlatform[platform];\n return parseKeyGroups(defs, value);\n}\n","'use client';\nimport { __rest } from \"tslib\";\nimport React from 'react';\nimport { useForkRef } from '../../hooks';\nimport { useTooltipVisible } from '../../hooks/private';\nimport { Hotkey } from '../Hotkey';\nimport { Popup } from '../Popup';\nimport { block } from '../utils/cn';\nimport './ActionTooltip.css';\nconst DEFAULT_PLACEMENT = ['bottom', 'top'];\nconst b = block('action-tooltip');\nexport function ActionTooltip(props) {\n const { placement = DEFAULT_PLACEMENT, title, hotkey, children, className, contentClassName, description, disabled = false, style, qa, id, disablePortal } = props, delayProps = __rest(props, [\"placement\", \"title\", \"hotkey\", \"children\", \"className\", \"contentClassName\", \"description\", \"disabled\", \"style\", \"qa\", \"id\", \"disablePortal\"]);\n const [anchorElement, setAnchorElement] = React.useState(null);\n const tooltipVisible = useTooltipVisible(anchorElement, delayProps);\n const renderPopup = () => {\n return (React.createElement(Popup, { id: id, disablePortal: disablePortal, role: \"tooltip\", className: b(null, className), style: style, open: tooltipVisible && !disabled, placement: placement, anchorRef: { current: anchorElement }, disableEscapeKeyDown: true, disableOutsideClick: true, disableLayer: true, qa: qa },\n React.createElement(\"div\", { className: b('content', contentClassName) },\n React.createElement(\"div\", { className: b('heading') },\n React.createElement(\"div\", { className: b('title') }, title),\n hotkey && React.createElement(Hotkey, { view: \"dark\", value: hotkey, className: b('hotkey') })),\n description && React.createElement(\"div\", { className: b('description') }, description))));\n };\n const child = React.Children.only(children);\n const childRef = child.ref;\n const ref = useForkRef(setAnchorElement, childRef);\n return (React.createElement(React.Fragment, null,\n React.cloneElement(child, { ref }),\n anchorElement ? renderPopup() : null));\n}\n","import { addComponentKeysets } from '../../utils/addComponentKeysets';\nimport en from './en.json';\nimport ru from './ru.json';\nconst COMPONENT = 'ClipboardButton';\nexport default addComponentKeysets({ en, ru }, COMPONENT);\n","'use client';\nimport { __rest } from \"tslib\";\nimport React from 'react';\nimport { ActionTooltip } from '../ActionTooltip';\nimport { Button } from '../Button';\nimport { ClipboardIcon } from '../ClipboardIcon';\nimport { CopyToClipboard } from '../CopyToClipboard';\nimport i18n from './i18n';\nconst DEFAULT_TIMEOUT = 1000;\nconst ButtonSizeToIconSize = {\n xs: 12,\n s: 16,\n m: 16,\n l: 16,\n xl: 20,\n};\nconst ClipboardButtonComponent = (props) => {\n const { size = 'm', hasTooltip = true, tooltipInitialText = i18n('startCopy'), tooltipSuccessText = i18n('endCopy'), status, view = 'flat', extraProps = {} } = props, rest = __rest(props, [\"size\", \"hasTooltip\", \"tooltipInitialText\", \"tooltipSuccessText\", \"status\", \"view\", \"extraProps\"]);\n return (React.createElement(ActionTooltip, { disabled: !hasTooltip, title: status === 'success' ? tooltipSuccessText : tooltipInitialText },\n React.createElement(Button, Object.assign({ view: view, size: size, extraProps: Object.assign({ 'aria-label': tooltipInitialText }, extraProps) }, rest),\n React.createElement(Button.Icon, null,\n React.createElement(ClipboardIcon, { size: ButtonSizeToIconSize[size], status: status })))));\n};\nexport function ClipboardButton(props) {\n const { text, timeout = DEFAULT_TIMEOUT, onCopy, options } = props, buttonProps = __rest(props, [\"text\", \"timeout\", \"onCopy\", \"options\"]);\n return (React.createElement(CopyToClipboard, { text: text, timeout: timeout, onCopy: onCopy, options: options }, (status) => React.createElement(ClipboardButtonComponent, Object.assign({}, buttonProps, { status: status }))));\n}\n","import React from 'react';\nimport { KeyCode } from '../../../constants';\nimport { useBoolean } from '../useBoolean';\nexport const useTooltipVisible = (anchor, { openDelay = 250, closeDelay, preventTriggerOnFocus = false, }) => {\n const [tooltipVisible, showTooltip, hideTooltip] = useBoolean(false);\n const timeoutRef = React.useRef();\n const isFocusWithinRef = React.useRef(false);\n React.useEffect(() => {\n if (!anchor) {\n return undefined;\n }\n function handleMouseEnter() {\n clearTimeout(timeoutRef.current);\n timeoutRef.current = window.setTimeout(showTooltip, openDelay);\n }\n function handleMouseLeave() {\n clearTimeout(timeoutRef.current);\n timeoutRef.current = window.setTimeout(hideTooltip, closeDelay);\n }\n function handleFocusWithin(e) {\n if (!isFocusWithinRef.current && document.activeElement === e.target) {\n isFocusWithinRef.current = true;\n clearTimeout(timeoutRef.current);\n showTooltip();\n }\n }\n function handleBlurWithin(e) {\n if (isFocusWithinRef.current &&\n !e.currentTarget.contains(e.relatedTarget)) {\n isFocusWithinRef.current = false;\n clearTimeout(timeoutRef.current);\n hideTooltip();\n }\n }\n function handleKeyDown(e) {\n if (e.key === KeyCode.ESCAPE) {\n clearTimeout(timeoutRef.current);\n hideTooltip();\n }\n }\n anchor.addEventListener('mouseenter', handleMouseEnter);\n anchor.addEventListener('mouseleave', handleMouseLeave);\n anchor.addEventListener('keydown', handleKeyDown);\n if (!preventTriggerOnFocus) {\n anchor.addEventListener('focus', handleFocusWithin);\n anchor.addEventListener('blur', handleBlurWithin);\n }\n return () => {\n anchor.removeEventListener('mouseenter', handleMouseEnter);\n anchor.removeEventListener('mouseleave', handleMouseLeave);\n anchor.removeEventListener('focus', handleFocusWithin);\n anchor.removeEventListener('blur', handleBlurWithin);\n anchor.removeEventListener('keydown', handleKeyDown);\n };\n }, [anchor, showTooltip, hideTooltip, openDelay, closeDelay, preventTriggerOnFocus]);\n return tooltipVisible;\n};\n","import React from 'react';\nexport function useBoolean(initialState) {\n const [value, setValue] = React.useState(initialState);\n return [\n value,\n React.useCallback(() => setValue(true), []),\n React.useCallback(() => setValue(false), []),\n React.useCallback(() => setValue((val) => !val), []),\n ];\n}\n"],"names":["block","cn","prepareRoleListValue","roles","otherMembers","arguments","length","undefined","current","toAdd","toRemove","unrecognized","forEach_","item","isUnrecognized","isRequested","isApproved","isDepriving","push","currentArr","map","prepareItemOfCurrent","otherArr","title","data","frozen","newItems","concat","itemClassName","role","extraProps","_objectSpread","text","value","roleListValueToSubjectList","_toConsumableArray","manyListDataItemToSubjectList","manyListDataItem","map_","filter_","_ref2","removed","_ref3","_ref4","type","extractChangedSubjects","added","filter","_ref5","_ref6","user","group","_ref7","_ref8","DialogError","props","_jsx","Block","className","makeErrorFields","errors","compact_","error","index","name","extras","children","FORM_ERROR","makeFormSubmitError","validationErrors","_defineProperty","importYTDFDialog","Component","YTDFDialog","withLazyLoading","React","_asyncToGenerator","_regeneratorRuntime","_callee","_context","prev","next","t0","sent","YTDialog","abrupt","stop","_React$useState","_React$useState2","_slicedToArray","mounted","setMounted","visible","_callee2","_context2","RoleListControl","EditableList","_callee3","_context3","TabFieldVertical","_callee4","_context4","xmlns","fill","viewBox","fillRule","d","clipRule","ExpandButton","_ref","expanded","inline","toggleExpanded","all","showText","qa","titleExpanded","titleCollapsed","_jsxs","Button","view","onClick","Icon","doubleShevronRightSvg","shevronRightSvg","size","toaster","Toaster","LoadDataHandler","_Component","_inherits","_super","_createSuper","_classCallCheck","apply","_createClass","key","_this$props","this","loaded","errorData","add","theme","autoHiding","content","message","hammer","format","NO_VALUE","actions","label","showErrorPopup","_this$props2","_this$props2$alwaysSh","alwaysShowError","Error","SubjectCard","UIFactory","renderSubjectCard","TextInputWithDebounce","_props$debounce","debounce","_props$onUpdate","onUpdate","onBlur","onEnterKeyDown","onKeyDown","rest","_objectWithoutProperties","_excluded","input","setInput","handleChangeExt","throttle_","handleChange","handleKeyDown","e","handleBlur","TextInput","updateAclFilters","ACL_CHANGE_FILTERS","toggleExpandAclSubject","subject","dispatch","getState","expandedSubjects","Set","getAclFilterExpandedSubjects","has","Object","assign","width","height","EditColumnGroupModal","confirmText","handleClose","handleSubmit","initialData","_ref$disabledFields","disabledFields","_useState","useState","_useState2","setError","initialValues","useMemo","String","columns","enabled","Boolean","pristineSubmittable","modal","headerProps","footerProps","textApply","onClose","onAdd","form","_form$getState$values","values","err","fields","required","caption","placeholder","disabled","includes_","tooltip","ColumnGroups","columnGroups","path","loadAclDataFn","cluster","_ref$allowEdit","allowEdit","columnsFilter","columnGroupNameFilter","userPermissionsAccessColumns","setModalProps","prevProps","_value","Promise","resolve","modalProps","header","render","row","Power","align","_row$columns","renderText","column","join","_Fragment","delete","id","getAclApi","deleteColumnGroup","then","awesome","edit","editColumnGroup","ErrorBoundary","createColumnGroup","WithStickyToolbar","padding","bottomMargin","toolbar","Toolbar","itemsToWrap","node","ColumnGroupsFilter","shrinkable","DataTableYT","noItemsText","settings","sortable","displayIndices","options","Select","multiple","hasClear","filterable","items","maxVisibleValuesTextLength","DeletePermissionModal","_this","_len","args","Array","_key","call","state","confirm","checkConfirmDisabled","toggleConfirm","setState","prevState","deleteItem","idmKind","itemToDelete","deletePermissions","roleKey","_this$props3","isPermissionDeleted","lastItemKey","inherited","subjects","permissions","inheritanceMode","Modal","onConfirm","loading","onCancel","onOutsideClick","isConfirmDisabled","MetaTable","Checkbox","checked","onChange","Label","compose","withVisible","version","handleShow","bossApproval","disableInheritanceResponsible","auditors","responsible","readApprovers","manageAclError","loadAclData","cancelUpdateAcl","updateAcl","handleModalOpen","useCallback","handleUpdateAclClose","inheritanceResponsible","disableInheritance","mode","manageAclDialogFields","maxVisibleCount","comment","manageAclFields","dialogFields","permissionsSettings","getAclPermissionsSettings","idmKindConditions","allowBossApprovals","allowAuditors","allowReadApprovers","allowInheritResponsibles","CommonDialog","open","Header","Body","Loader","formExtras","initialValuesEqual","isEqual_","inheritAcl","hasWarning","setHasWarning","inheritAcl_warning","ErrorBlock","_UIFactory$getAclApi","manageInheritanceFields","buttonsTitle","allowInheritAcl","_ref$editInheritance","editInheritance","AclActions","_args","requestPermissions","_args2","_args3","aclMode","requestPermissionsError","cancelRequestPermissions","updateAclError","IdmObjectType","UI_EFFECTIVE_ACL","Flex","gap","RequestPermissions","AclMode","COLUMN_GROUPS_PERMISSISONS","ManageInheritance","ManageAcl","MyPermissions","userPermissions","groups","i","slice","PermissionsGroup","direction","action","alignItems","color","xMarkSvg","checkSvg","Readable","ApproversFilters","useDispatch","subjectFilter","useSelector","getApproversSubjectFilter","Filter","approversSubject","autofocus","ObjectPermissionsFilters","getObjectSubjectFilter","selectedPermissons","getObjectPermissionsFilter","permissionList","getObjectPermissionsTypesList","objectSubject","p","ReadableField","objectPermissions","SegmentControl","background","SegmentGroup","rowGap","SegmentValue","url","Value","isValidUrl","Link","target","href","_typeof","bool","ACL_MODE_OPTIONS","MAIN_PERMISSIONS","AclModeControl","RadioButton","aclCurrentTab","AclColumnsCell","_items$map","expanadable","VisibleValues","counter","v","unipika","decode","maxVisibleValues","maxTextLength","fillOpacity","InheritanceMessage","kind","PATH","makeNavigationLink","POOL","makeSchedulingUrl","pool","poolTree","ACCOUNT","makeAccountsUrl","urlFromData","routed","routedPreserveLocation","ACL","handleDeletePermissionClick","handleCloseDeleteModal","deletePermissionsFn","res","hasInherited","openDeleteModal","_this$props4","expand","_UIFactory$getAclApi$","requestPermissionsFlags","inheritedFrom","level","wrap","Popover","hidden","aclInheritedSvg","grow","renderSubjectLink","keys","flagInfo","renderIcon","_row$permissions","inheritance_mode","RoleActions","getComponentForAclRoleActions","onDelete","approve_type","_ref9","depriving","requested","approved","missing","isMissing","_this2","_this$props5","hasApprovers","approversFiltered","tableColumns","getColumnsTemplates","rowClassName","rowClassNameByFlags","_this3","_this$props6","mainPermissions","columnsPermissions","useColumns","_ref10","hasDenyAction","hasExpandable","extraColumns","_this$props7","nodeType","isAllowedToEditColumnGroups","isIdmAclAvailable","_this$props8","disableAclInheritance","userPermissionsRequestError","userPermissionsRequestFn","userPermissionsCancelRequestFn","deletePermissionsLastItemKey","deletePermissionsError","userPermissionsUpdateAcl","userPermissionsUpdateAclError","userPermissionsCancelUpdateAcl","hasColumns","Fragment","renderMeta","renderColumnGroups","renderApprovers","renderObjectPermissions","_this$props9","_UIFactory$getAclPerm","toSegmentItem","invert","isGranted","idmLink","segments","_this$props10","counters","count","_ref11","_this$props11","initialLoading","renderContent","internal","_item$types","_ref12","types","showIcon","subjectType","subjectUrl","username","_item$tvmInfo","tvmId","tvmInfo","_ref15","groupInfo","group_type","Tooltip","ClipboardButton","groupType","responsibles","read_approvers","sets","objectDefault","approvers","handleDelete","mergeProps","stateProps","dispatchProps","ownProps","normalizedPoolTree","aclRequestOptions","restDispatchProps","params","createACLComponent","inputIdmKind","mapStateToProps","normalizedParams","normalizeIdmParams","pool_tree","userPermissionsPath","_state$acl$idmKind","acl","getHasApprovers","getApproversFilteredAndOrdered","_getObjectPermissions","getObjectPermissionsAggregated","getAllColumnGroupsActual","getAllUserPermissions","getAclFilterColumns","getNotInheritedAuditors","getNotInheritedReadApprovers","getNotInheritedResponsibles","getType","getCluster","getIdmPathVersion","getIdmPermissionsRequestError","getAllAccessColumnsNames","getIdmManageAclRequestError","getLastDeletedPermissionKey","permissionDeletionError","getAclFilterColumnGroupName","getAclCurrentTab","mapDispatchToProps","connect","createACLConnector","AccessContentAcl","ACCESS_CONTROL_OBJECT","NavigationAcl","PoolAclPanel","AccountsAcl","BundleAcl","TABLET_CELL_BUNDLE","PermissionsControl","handleCheckboxChange","permissionName","permissionsToSet","_toPropertyKey","disabledChoices","itemDisabled","indexOf_","choices","getChoiceName","renderPermissionCheckbox","renderChoices","choice","isEmpty_","hasErrorRenderer","getDefaultValue","FLAG_NAME_PREFIX","SHORT_TITLE","access_control_object","COLUMNS_FELDS","_SHORT_TITLE$idmKind","buttonClassName","buttonProps","requestPermissionsFields","permissionFlags","forEach","k","currentCaption","permissionsToRequest","getAvailablePermissions","availablePermissions","setAvailablePermissions","onShow","finish","firstItemDisabled","valueWithCheckedFirstChoice","availableFields","docsUrl","makeLink","docsUrls","readColumns","readColumnGroup","allowedTypes","duration","commentHeader","INHERITANCE_MODE_TYPES","hideClear","hideFilter","with","flagsIndex","reduce","acc","field","flags","help","initialValue","splice","_ref2$editAcl","editAcl","_ref2$editColumnsAcl","editColumnsAcl","OBJECT_AND_DESCENDANTS","validate","validationError","_WithVisible","ResComponent","_React$Component","WithVisible","toggleVisible","defaultProps","displayName","getDisplayName","RumMeasureTypes","CLUSTER_PARAMS","ACCOUNTS","NAVIGATION_PRELOAD","NAVIGATION_CONTENT_DOCUMENT","NAVIGATION_CONTENT_FILE","NAVIGATION_CONTENT_LINK","NAVIGATION_CONTENT_MAP_NODE","NAVIGATION_CONTENT_REPLICATED_TABLE","NAVIGATION_CONTENT_TABLE_STATIC","NAVIGATION_CONTENT_TABLE_DYNAMIC","NAVIGATION_CONTENT_TRANSACTION","NAVIGATION_CONTENT_TRANSACTION_MAP","NAVIGATION_TAB_ACL","NAVIGATION_TAB_ACL_ACCESS","NAVIGATION_TAB_ANNOTATION","NAVIGATION_TAB_ATTRIBUTES","NAVIGATION_TAB_USER_ATTRIBUTES","NAVIGATION_TAB_LOCKS","NAVIGATION_TAB_SCHEMA","NAVIGATION_TAB_TABLETS","NAVIGATION_TAB_TABLET_ERRORS","OPERATIONS_LIST","OPERATION","OPERATION_TAB_DETAILS","OPERATION_TAB_ATTRIBUTES","OPERATION_TAB_SPECIFICATION","OPERATION_TAB_STATISTICS","OPERATION_TAB_MONITOR","OPERATION_TAB_PARTITION_SIZES","OPERATION_TAB_JOB_SIZES","OPERATION_TAB_JOBS","SCHEDULING","SCHEDULING_OVERVIEW","SCHEDULING_DETAILS","SCHEDULING_MONITOR","SCHEDULING_ACL","YQL_KIT_WIDGET","prepareUserPermissions","permissionTypes","getPathToCheckPermissions","_x","_x2","_x3","_getPathToCheckPermissions","entityName","fullPath","_context5","ytApiV3Id","get","YTApiId","schedulingPoolFullPath","_state$global","login","_state$global$cluster","pathToCheckPermissions","pathToCheckUserPermissions","global","LOAD_DATA","REQUEST","getTree","getAcl","sysPath","checkUserPermissionsUI","getResponsible","SUCCESS","column_groups","t1","FAILURE","_x4","_x5","_getState$global$clus","deletePermissionsPath","DELETE_PERMISSION","deleteRole","isCancelled","CANCELLED","reject","_x6","_x7","dateToDaysAfterNow","date","Math","round","getTime","Date","now","_state$global$cluster2","daysAfter","rolesGroupedBySubject","_iterator","_step","_loop","_values$comment","requestPermissionsPath","REQUEST_PERMISSION","_createForOfIteratorHelper","commonPart","flattenPermissions","prepareAclSubject","deprive_after_days","entries","_ref13","applyToRequestedRole","flatten_","convertFromUIPermissions","role_type","column_group_id","s","n","done","delegateYield","f","roles_grouped","t2","_x8","_x9","_ref14","_getState$global$clus2","UPDATE_ACL","_error$response","response","_ref17","aclFilters","prepareColumnsNames","permission","uniq_","sort","prepareApprovers","extra","group_name","getAllObjectPermissions","getAllObjectPermissionsWithSplittedSubjects","createSelector","isSplitted","subjectIndex","permissionsFilter","uniquePermisions","sortBy_","subjectFilterPredicate","_item$subjects$","some_","_str","str","split","pop","toLowerCase","indexOf","getAllObjectPermissionsFiltered","_partition_","partition_","_item$columns","_partition_2","withColumns","lowerNameFilter","toLocaleLowerCase","filterBySubject","permissionsFilterSet","filterByPermissions","_permissionsFilterPre","foundCount","some","permissionsFilterPredicate","visibleColumns","filterByColumns","_columns$some","colName","mainPredicates","columnsPredicates","concatByAnd","aggregateBySubject","AggregateBySubject","first","aggrKey","allPermissions","aggregationKey","_item$permissions","_child$permissions","_child$permissions2","_item$columns2","_this$first","_this$first2","_this$first3","_this$first4","JSON","stringify","child","objPermissions","aggregated","aggKey","dst","_item$getItems","getItems","_partition_3","_partition_4","other","OrderByRoleStatus","nameFilter","nameFilterLower","predicates","_item$columns$some","_item$columns3","_item$name","filtered","getReadApprovers","getResponsibles","getAuditors","readApprover","auditros","auditro","getAllApprovers","getApproversFiltered","getAllAccessColumnsPermissions","filteredPermissions","_permission$columns","tmp","getAllDenyColumnsPermissions","_permission$columns2","getAllDenyColumnsNames","getDenyColumnsItems","names","deletionError","deletedItemKey","idmPermissionsRequestError","idmManageAclRequestError","getAclLoadState","calculateLoadingStatus","YT","Page","NAVIGATION","search","info","URLSearchParams","_info$k$options","serialize","_info$k$options2","_info$k$options2$seri","append","makeURLSearchParams","getNavigationParams","toString","makeComponentsNodesUrl","host","COMPONENTS","ComponentsTab","NODES","makeProxyUrl","address","RPC_PROXIES","account","defsByPlatform","pc","NormalizeMap","arrowup","arrowdown","arrowleft","arrowright","esc","return","mod","control","opt","option","cmd","command","Priority","shift","alt","ctrl","DisplayName","up","down","left","right","escape","plus","enter","tab","backspace","mac","val","separator","trim","GROUPS_SEPARATOR","renderKey","_a","b","Spaces","BetweenGroups","fromCharCode","BetweenKeys","Hotkey","ref","platform","style","opts","navigator","test","defs","raw","keyId","getKeyId","priority","keyParser","a","parseKeyGroups","parseHotkeys","hasGroups","groupIdx","keyIdx","DEFAULT_PLACEMENT","ActionTooltip","placement","hotkey","contentClassName","description","disablePortal","delayProps","anchorElement","setAnchorElement","tooltipVisible","useTooltipVisible","only","childRef","useForkRef","Popup","anchorRef","disableEscapeKeyDown","disableOutsideClick","disableLayer","addComponentKeysets","en","DEFAULT_TIMEOUT","ButtonSizeToIconSize","xs","m","l","xl","ClipboardButtonComponent","hasTooltip","tooltipInitialText","i18n","tooltipSuccessText","status","ClipboardIcon","timeout","onCopy","CopyToClipboard","anchor","openDelay","closeDelay","preventTriggerOnFocus","showTooltip","hideTooltip","initialState","setValue","useBoolean","timeoutRef","isFocusWithinRef","addEventListener","handleMouseEnter","handleMouseLeave","handleFocusWithin","handleBlurWithin","removeEventListener","clearTimeout","window","setTimeout","document","activeElement","currentTarget","contains","relatedTarget","ESCAPE"],"sourceRoot":""}